@payloadcms/ui 4.0.0-internal.b6f3b9a → 4.0.0-internal.b8e7c89

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 (423) hide show
  1. package/dist/elements/AppHeader/index.css +1 -0
  2. package/dist/elements/AppHeader/index.js +1 -1
  3. package/dist/elements/AppHeader/index.js.map +1 -1
  4. package/dist/elements/ArrayAction/index.d.ts +1 -0
  5. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  6. package/dist/elements/ArrayAction/index.js +45 -32
  7. package/dist/elements/ArrayAction/index.js.map +1 -1
  8. package/dist/elements/Autosave/index.d.ts.map +1 -1
  9. package/dist/elements/Autosave/index.js +2 -3
  10. package/dist/elements/Autosave/index.js.map +1 -1
  11. package/dist/elements/BulkUpload/AddFilesView/index.css +10 -4
  12. package/dist/elements/BulkUpload/AddFilesView/index.d.ts.map +1 -1
  13. package/dist/elements/BulkUpload/AddFilesView/index.js +71 -51
  14. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  15. package/dist/elements/BulkUpload/FormsManager/index.d.ts.map +1 -1
  16. package/dist/elements/BulkUpload/FormsManager/index.js +2 -3
  17. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  18. package/dist/elements/Button/index.css +2 -2
  19. package/dist/elements/Button/index.d.ts.map +1 -1
  20. package/dist/elements/Button/index.js +2 -0
  21. package/dist/elements/Button/index.js.map +1 -1
  22. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts +10 -0
  23. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.d.ts.map +1 -1
  24. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js +65 -3
  25. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.js.map +1 -1
  26. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js +345 -1
  27. package/dist/elements/ClipboardAction/mergeFormStateFromClipboard.spec.js.map +1 -1
  28. package/dist/elements/CopyLocaleData/index.d.ts.map +1 -1
  29. package/dist/elements/CopyLocaleData/index.js +8 -9
  30. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  31. package/dist/elements/CopyToClipboard/index.d.ts +1 -0
  32. package/dist/elements/CopyToClipboard/index.d.ts.map +1 -1
  33. package/dist/elements/CopyToClipboard/index.js +10 -8
  34. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  35. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  36. package/dist/elements/DeleteMany/index.js +2 -3
  37. package/dist/elements/DeleteMany/index.js.map +1 -1
  38. package/dist/elements/Drawer/index.css +10 -4
  39. package/dist/elements/Dropzone/index.css +10 -4
  40. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +3 -2
  41. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  42. package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
  43. package/dist/elements/DuplicateDocument/index.js +2 -3
  44. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  45. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  46. package/dist/elements/EditMany/DrawerContent.js +2 -3
  47. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  48. package/dist/elements/FileManager/FileToolbar/index.d.ts.map +1 -1
  49. package/dist/elements/FileManager/FileToolbar/index.js +3 -0
  50. package/dist/elements/FileManager/FileToolbar/index.js.map +1 -1
  51. package/dist/elements/FileManager/index.css +0 -30
  52. package/dist/elements/FileManager/index.d.ts.map +1 -1
  53. package/dist/elements/FileManager/index.js +379 -287
  54. package/dist/elements/FileManager/index.js.map +1 -1
  55. package/dist/elements/Hierarchy/MoveMany/index.d.ts.map +1 -1
  56. package/dist/elements/Hierarchy/MoveMany/index.js +2 -3
  57. package/dist/elements/Hierarchy/MoveMany/index.js.map +1 -1
  58. package/dist/elements/Hierarchy/Search/useHierarchySearch.d.ts.map +1 -1
  59. package/dist/elements/Hierarchy/Search/useHierarchySearch.js +2 -3
  60. package/dist/elements/Hierarchy/Search/useHierarchySearch.js.map +1 -1
  61. package/dist/elements/IDLabel/index.css +6 -0
  62. package/dist/elements/IDLabel/index.d.ts +1 -1
  63. package/dist/elements/IDLabel/index.d.ts.map +1 -1
  64. package/dist/elements/IDLabel/index.js +16 -21
  65. package/dist/elements/IDLabel/index.js.map +1 -1
  66. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts +1 -7
  67. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.d.ts.map +1 -1
  68. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +26 -32
  69. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  70. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.d.ts.map +1 -1
  71. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +2 -3
  72. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  73. package/dist/elements/LivePreview/Window/index.js +1 -1
  74. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  75. package/dist/elements/Localizer/index.js +1 -1
  76. package/dist/elements/Localizer/index.js.map +1 -1
  77. package/dist/elements/Popup/PopupButtonList/index.css +1 -1
  78. package/dist/elements/Popup/index.js +1 -1
  79. package/dist/elements/Popup/index.js.map +1 -1
  80. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  81. package/dist/elements/PublishButton/ScheduleDrawer/index.js +9 -31
  82. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  83. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts +1 -1
  84. package/dist/elements/PublishButton/ScheduleDrawer/types.d.ts.map +1 -1
  85. package/dist/elements/PublishButton/ScheduleDrawer/types.js.map +1 -1
  86. package/dist/elements/PublishButton/index.d.ts.map +1 -1
  87. package/dist/elements/PublishButton/index.js +5 -6
  88. package/dist/elements/PublishButton/index.js.map +1 -1
  89. package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
  90. package/dist/elements/PublishMany/DrawerContent.js +2 -3
  91. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  92. package/dist/elements/QueryPresets/QueryPresetBar/index.js +1 -3
  93. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  94. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  95. package/dist/elements/RelationshipTable/index.js +5 -2
  96. package/dist/elements/RelationshipTable/index.js.map +1 -1
  97. package/dist/elements/RestoreMany/index.d.ts.map +1 -1
  98. package/dist/elements/RestoreMany/index.js +2 -3
  99. package/dist/elements/RestoreMany/index.js.map +1 -1
  100. package/dist/elements/SaveDraftButton/index.d.ts.map +1 -1
  101. package/dist/elements/SaveDraftButton/index.js +2 -3
  102. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  103. package/dist/elements/SortHeader/index.d.ts.map +1 -1
  104. package/dist/elements/SortHeader/index.js +29 -26
  105. package/dist/elements/SortHeader/index.js.map +1 -1
  106. package/dist/elements/Status/index.d.ts.map +1 -1
  107. package/dist/elements/Status/index.js +2 -3
  108. package/dist/elements/Status/index.js.map +1 -1
  109. package/dist/elements/StepNav/index.css +64 -14
  110. package/dist/elements/StepNav/index.d.ts.map +1 -1
  111. package/dist/elements/StepNav/index.js +143 -69
  112. package/dist/elements/StepNav/index.js.map +1 -1
  113. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  114. package/dist/elements/Table/DefaultCell/index.js +3 -11
  115. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  116. package/dist/elements/Table/OrderableTable.d.ts.map +1 -1
  117. package/dist/elements/Table/OrderableTable.js +2 -3
  118. package/dist/elements/Table/OrderableTable.js.map +1 -1
  119. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  120. package/dist/elements/Table/RelationshipProvider/index.js +2 -3
  121. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  122. package/dist/elements/UnpublishButton/index.d.ts.map +1 -1
  123. package/dist/elements/UnpublishButton/index.js +3 -4
  124. package/dist/elements/UnpublishButton/index.js.map +1 -1
  125. package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
  126. package/dist/elements/UnpublishMany/DrawerContent.js +2 -3
  127. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  128. package/dist/elements/Upload/UploadFromURLModal/index.d.ts +1 -1
  129. package/dist/elements/Upload/UploadFromURLModal/index.d.ts.map +1 -1
  130. package/dist/elements/Upload/UploadFromURLModal/index.js.map +1 -1
  131. package/dist/elements/Upload/index.css +39 -32
  132. package/dist/elements/Upload/index.d.ts.map +1 -1
  133. package/dist/elements/Upload/index.js +37 -99
  134. package/dist/elements/Upload/index.js.map +1 -1
  135. package/dist/elements/Upload/usePasteFromClipboard.d.ts +14 -0
  136. package/dist/elements/Upload/usePasteFromClipboard.d.ts.map +1 -0
  137. package/dist/elements/Upload/usePasteFromClipboard.js +93 -0
  138. package/dist/elements/Upload/usePasteFromClipboard.js.map +1 -0
  139. package/dist/elements/Upload/useUploadFromUrl.d.ts +20 -0
  140. package/dist/elements/Upload/useUploadFromUrl.d.ts.map +1 -0
  141. package/dist/elements/Upload/useUploadFromUrl.js +201 -0
  142. package/dist/elements/Upload/useUploadFromUrl.js.map +1 -0
  143. package/dist/elements/UploadDropzoneContent/index.css +31 -0
  144. package/dist/elements/UploadDropzoneContent/index.d.ts +17 -0
  145. package/dist/elements/UploadDropzoneContent/index.d.ts.map +1 -0
  146. package/dist/elements/UploadDropzoneContent/index.js +62 -0
  147. package/dist/elements/UploadDropzoneContent/index.js.map +1 -0
  148. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +1 -1
  149. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  150. package/dist/elements/WhereBuilder/conditionValue.d.ts +32 -0
  151. package/dist/elements/WhereBuilder/conditionValue.d.ts.map +1 -0
  152. package/dist/elements/WhereBuilder/conditionValue.js +32 -0
  153. package/dist/elements/WhereBuilder/conditionValue.js.map +1 -0
  154. package/dist/elements/WhereBuilder/conditionValue.spec.js +65 -0
  155. package/dist/elements/WhereBuilder/conditionValue.spec.js.map +1 -0
  156. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  157. package/dist/elements/WhereBuilder/index.js +15 -4
  158. package/dist/elements/WhereBuilder/index.js.map +1 -1
  159. package/dist/exports/client/index.d.ts +2 -1
  160. package/dist/exports/client/index.d.ts.map +1 -1
  161. package/dist/exports/client/index.js +1 -1
  162. package/dist/exports/client/index.js.map +3 -3
  163. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  164. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  165. package/dist/fields/Array/ArrayRow.js +2 -0
  166. package/dist/fields/Array/ArrayRow.js.map +1 -1
  167. package/dist/fields/Array/index.d.ts.map +1 -1
  168. package/dist/fields/Array/index.js +40 -13
  169. package/dist/fields/Array/index.js.map +1 -1
  170. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  171. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  172. package/dist/fields/Blocks/BlockRow.js +2 -0
  173. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  174. package/dist/fields/Blocks/RowActions.d.ts +1 -0
  175. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  176. package/dist/fields/Blocks/RowActions.js +22 -19
  177. package/dist/fields/Blocks/RowActions.js.map +1 -1
  178. package/dist/fields/Blocks/index.d.ts.map +1 -1
  179. package/dist/fields/Blocks/index.js +37 -10
  180. package/dist/fields/Blocks/index.js.map +1 -1
  181. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  182. package/dist/fields/FieldLabel/index.js +4 -5
  183. package/dist/fields/FieldLabel/index.js.map +1 -1
  184. package/dist/fields/Relationship/Input.d.ts.map +1 -1
  185. package/dist/fields/Relationship/Input.js +2 -3
  186. package/dist/fields/Relationship/Input.js.map +1 -1
  187. package/dist/fields/Slug/index.d.ts.map +1 -1
  188. package/dist/fields/Slug/index.js +2 -3
  189. package/dist/fields/Slug/index.js.map +1 -1
  190. package/dist/fields/Upload/Input.d.ts.map +1 -1
  191. package/dist/fields/Upload/Input.js +46 -19
  192. package/dist/fields/Upload/Input.js.map +1 -1
  193. package/dist/fields/Upload/Input.spec.js +242 -0
  194. package/dist/fields/Upload/Input.spec.js.map +1 -0
  195. package/dist/fields/shared/index.d.ts +1 -1
  196. package/dist/fields/shared/index.d.ts.map +1 -1
  197. package/dist/fields/shared/index.js.map +1 -1
  198. package/dist/forms/Form/index.d.ts.map +1 -1
  199. package/dist/forms/Form/index.js +6 -4
  200. package/dist/forms/Form/index.js.map +1 -1
  201. package/dist/forms/NullifyField/index.d.ts.map +1 -1
  202. package/dist/forms/NullifyField/index.js +2 -3
  203. package/dist/forms/NullifyField/index.js.map +1 -1
  204. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  205. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -0
  206. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  207. package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
  208. package/dist/hooks/usePayloadAPI.js +2 -3
  209. package/dist/hooks/usePayloadAPI.js.map +1 -1
  210. package/dist/icons/Edit/index.d.ts +0 -1
  211. package/dist/icons/Edit/index.d.ts.map +1 -1
  212. package/dist/icons/Edit/index.js +4 -4
  213. package/dist/icons/Edit/index.js.map +1 -1
  214. package/dist/providers/Actions/index.d.ts +1 -0
  215. package/dist/providers/Actions/index.d.ts.map +1 -1
  216. package/dist/providers/Actions/index.js +43 -11
  217. package/dist/providers/Actions/index.js.map +1 -1
  218. package/dist/providers/Auth/AuthSessionDebug/index.css +48 -0
  219. package/dist/providers/Auth/AuthSessionDebug/index.d.ts +13 -0
  220. package/dist/providers/Auth/AuthSessionDebug/index.d.ts.map +1 -0
  221. package/dist/providers/Auth/AuthSessionDebug/index.js +93 -0
  222. package/dist/providers/Auth/AuthSessionDebug/index.js.map +1 -0
  223. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts +21 -0
  224. package/dist/providers/Auth/AuthSessionDebug/utilities.d.ts.map +1 -0
  225. package/dist/providers/Auth/AuthSessionDebug/utilities.js +53 -0
  226. package/dist/providers/Auth/AuthSessionDebug/utilities.js.map +1 -0
  227. package/dist/providers/Auth/authSessionRequests.d.ts +27 -0
  228. package/dist/providers/Auth/authSessionRequests.d.ts.map +1 -0
  229. package/dist/providers/Auth/authSessionRequests.js +119 -0
  230. package/dist/providers/Auth/authSessionRequests.js.map +1 -0
  231. package/dist/providers/Auth/authSessionRequests.spec.js +121 -0
  232. package/dist/providers/Auth/authSessionRequests.spec.js.map +1 -0
  233. package/dist/providers/Auth/index.d.ts +2 -56
  234. package/dist/providers/Auth/index.d.ts.map +1 -1
  235. package/dist/providers/Auth/index.js +283 -135
  236. package/dist/providers/Auth/index.js.map +1 -1
  237. package/dist/providers/Auth/sessionActivity.d.ts +23 -0
  238. package/dist/providers/Auth/sessionActivity.d.ts.map +1 -0
  239. package/dist/providers/Auth/sessionActivity.js +49 -0
  240. package/dist/providers/Auth/sessionActivity.js.map +1 -0
  241. package/dist/providers/Auth/sessionActivity.spec.js +44 -0
  242. package/dist/providers/Auth/sessionActivity.spec.js.map +1 -0
  243. package/dist/providers/Auth/sessionTiming.d.ts +11 -0
  244. package/dist/providers/Auth/sessionTiming.d.ts.map +1 -0
  245. package/dist/providers/Auth/sessionTiming.js +18 -0
  246. package/dist/providers/Auth/sessionTiming.js.map +1 -0
  247. package/dist/providers/Auth/tabSessionSync/index.d.ts +17 -0
  248. package/dist/providers/Auth/tabSessionSync/index.d.ts.map +1 -0
  249. package/dist/providers/Auth/tabSessionSync/index.js +263 -0
  250. package/dist/providers/Auth/tabSessionSync/index.js.map +1 -0
  251. package/dist/providers/Auth/tabSessionSync/index.spec.js +463 -0
  252. package/dist/providers/Auth/tabSessionSync/index.spec.js.map +1 -0
  253. package/dist/providers/Auth/tabSessionSync/types.d.ts +107 -0
  254. package/dist/providers/Auth/tabSessionSync/types.d.ts.map +1 -0
  255. package/dist/providers/Auth/tabSessionSync/types.js +6 -0
  256. package/dist/providers/Auth/tabSessionSync/types.js.map +1 -0
  257. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts +11 -0
  258. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.d.ts.map +1 -0
  259. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js +90 -0
  260. package/dist/providers/Auth/tabSessionSync/useTabSessionSync.js.map +1 -0
  261. package/dist/providers/Auth/tabSessionSync/utilities.d.ts +26 -0
  262. package/dist/providers/Auth/tabSessionSync/utilities.d.ts.map +1 -0
  263. package/dist/providers/Auth/tabSessionSync/utilities.js +159 -0
  264. package/dist/providers/Auth/tabSessionSync/utilities.js.map +1 -0
  265. package/dist/providers/Auth/types.d.ts +65 -0
  266. package/dist/providers/Auth/types.d.ts.map +1 -0
  267. package/dist/providers/Auth/types.js +2 -0
  268. package/dist/providers/Auth/types.js.map +1 -0
  269. package/dist/providers/Auth/useAuthSessionTimers.d.ts +26 -0
  270. package/dist/providers/Auth/useAuthSessionTimers.d.ts.map +1 -0
  271. package/dist/providers/Auth/useAuthSessionTimers.js +203 -0
  272. package/dist/providers/Auth/useAuthSessionTimers.js.map +1 -0
  273. package/dist/providers/Auth/useAuthSessionTimers.spec.js +311 -0
  274. package/dist/providers/Auth/useAuthSessionTimers.spec.js.map +1 -0
  275. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  276. package/dist/providers/DocumentInfo/index.js +2 -3
  277. package/dist/providers/DocumentInfo/index.js.map +1 -1
  278. package/dist/providers/FormErrorHandler/index.d.ts +5 -1
  279. package/dist/providers/FormErrorHandler/index.d.ts.map +1 -1
  280. package/dist/providers/FormErrorHandler/index.js.map +1 -1
  281. package/dist/providers/LivePreview/index.d.ts.map +1 -1
  282. package/dist/providers/LivePreview/index.js +13 -6
  283. package/dist/providers/LivePreview/index.js.map +1 -1
  284. package/dist/providers/Locale/index.d.ts +1 -5
  285. package/dist/providers/Locale/index.d.ts.map +1 -1
  286. package/dist/providers/Locale/index.js +64 -137
  287. package/dist/providers/Locale/index.js.map +1 -1
  288. package/dist/providers/RouteTransition/ProgressBar/index.js +4 -1
  289. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  290. package/dist/providers/RouteTransition/ProgressBar/index.spec.js +44 -0
  291. package/dist/providers/RouteTransition/ProgressBar/index.spec.js.map +1 -0
  292. package/dist/providers/RouteTransition/index.d.ts +2 -2
  293. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  294. package/dist/providers/RouteTransition/index.js +10 -10
  295. package/dist/providers/RouteTransition/index.js.map +1 -1
  296. package/dist/providers/Selection/index.d.ts.map +1 -1
  297. package/dist/providers/Selection/index.js +2 -3
  298. package/dist/providers/Selection/index.js.map +1 -1
  299. package/dist/providers/ServerFunctions/index.d.ts +5 -1
  300. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  301. package/dist/providers/ServerFunctions/index.js +15 -0
  302. package/dist/providers/ServerFunctions/index.js.map +1 -1
  303. package/dist/providers/TableColumns/buildColumnState/index.d.ts.map +1 -1
  304. package/dist/providers/TableColumns/buildColumnState/index.js +0 -1
  305. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  306. package/dist/styles.css +1 -1
  307. package/dist/templates/Default/index.d.ts +1 -0
  308. package/dist/templates/Default/index.d.ts.map +1 -1
  309. package/dist/templates/Default/index.js +2 -0
  310. package/dist/templates/Default/index.js.map +1 -1
  311. package/dist/utilities/formatAbsoluteURL.d.ts +1 -1
  312. package/dist/utilities/formatAbsoluteURL.d.ts.map +1 -1
  313. package/dist/utilities/formatAbsoluteURL.js +18 -8
  314. package/dist/utilities/formatAbsoluteURL.js.map +1 -1
  315. package/dist/utilities/formatAbsoluteURL.spec.js +27 -0
  316. package/dist/utilities/formatAbsoluteURL.spec.js.map +1 -0
  317. package/dist/utilities/formatMetadata.d.ts.map +1 -1
  318. package/dist/utilities/formatMetadata.js +0 -5
  319. package/dist/utilities/formatMetadata.js.map +1 -1
  320. package/dist/utilities/getFilesFromClipboard.d.ts +10 -0
  321. package/dist/utilities/getFilesFromClipboard.d.ts.map +1 -0
  322. package/dist/utilities/getFilesFromClipboard.js +49 -0
  323. package/dist/utilities/getFilesFromClipboard.js.map +1 -0
  324. package/dist/utilities/getHasScheduledPublish.d.ts +2 -3
  325. package/dist/utilities/getHasScheduledPublish.d.ts.map +1 -1
  326. package/dist/utilities/getHasScheduledPublish.js +2 -5
  327. package/dist/utilities/getHasScheduledPublish.js.map +1 -1
  328. package/dist/utilities/isAbsoluteURL.d.ts +3 -0
  329. package/dist/utilities/isAbsoluteURL.d.ts.map +1 -0
  330. package/dist/utilities/isAbsoluteURL.js +15 -0
  331. package/dist/utilities/isAbsoluteURL.js.map +1 -0
  332. package/dist/utilities/isAbsoluteURL.spec.js +11 -0
  333. package/dist/utilities/isAbsoluteURL.spec.js.map +1 -0
  334. package/dist/utilities/isHttpURL.d.ts +3 -0
  335. package/dist/utilities/isHttpURL.d.ts.map +1 -0
  336. package/dist/utilities/isHttpURL.js +12 -0
  337. package/dist/utilities/isHttpURL.js.map +1 -0
  338. package/dist/utilities/isHttpURL.spec.js +25 -0
  339. package/dist/utilities/isHttpURL.spec.js.map +1 -0
  340. package/dist/utilities/schedulePublishHandler.d.ts +8 -1
  341. package/dist/utilities/schedulePublishHandler.d.ts.map +1 -1
  342. package/dist/utilities/schedulePublishHandler.js +68 -4
  343. package/dist/utilities/schedulePublishHandler.js.map +1 -1
  344. package/dist/utilities/serverFunctionRegistry.d.ts.map +1 -1
  345. package/dist/utilities/serverFunctionRegistry.js +2 -1
  346. package/dist/utilities/serverFunctionRegistry.js.map +1 -1
  347. package/dist/utilities/slugify.d.ts.map +1 -1
  348. package/dist/utilities/slugify.js +3 -0
  349. package/dist/utilities/slugify.js.map +1 -1
  350. package/dist/views/API/index.client.d.ts.map +1 -1
  351. package/dist/views/API/index.client.js +2 -3
  352. package/dist/views/API/index.client.js.map +1 -1
  353. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.d.ts.map +1 -1
  354. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js +3 -2
  355. package/dist/views/Dashboard/Default/ModularDashboard/DashboardStepNav.js.map +1 -1
  356. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.d.ts.map +1 -1
  357. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js +7 -7
  358. package/dist/views/Dashboard/Default/ModularDashboard/WidgetEditControl.js.map +1 -1
  359. package/dist/views/Dashboard/Default/ModularDashboard/index.client.d.ts.map +1 -1
  360. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js +104 -66
  361. package/dist/views/Dashboard/Default/ModularDashboard/index.client.js.map +1 -1
  362. package/dist/views/Dashboard/Default/ModularDashboard/index.css +33 -140
  363. package/dist/views/Document/index.d.ts.map +1 -1
  364. package/dist/views/Document/index.js +1 -2
  365. package/dist/views/Document/index.js.map +1 -1
  366. package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
  367. package/dist/views/Edit/SetDocumentTitle/index.js +4 -1
  368. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  369. package/dist/views/Edit/index.d.ts.map +1 -1
  370. package/dist/views/Edit/index.js +3 -2
  371. package/dist/views/Edit/index.js.map +1 -1
  372. package/dist/views/List/ListHeader/index.d.ts +1 -10
  373. package/dist/views/List/ListHeader/index.d.ts.map +1 -1
  374. package/dist/views/List/ListHeader/index.js +1 -3
  375. package/dist/views/List/ListHeader/index.js.map +1 -1
  376. package/dist/views/List/index.client.d.ts.map +1 -1
  377. package/dist/views/List/index.client.js +0 -14
  378. package/dist/views/List/index.client.js.map +1 -1
  379. package/dist/views/List/index.css +5 -0
  380. package/dist/views/Root/getCustomCollectionViewByRoute.d.ts.map +1 -1
  381. package/dist/views/Root/getCustomCollectionViewByRoute.js.map +1 -1
  382. package/dist/views/Root/getCustomGlobalViewByRoute.d.ts.map +1 -1
  383. package/dist/views/Root/getCustomGlobalViewByRoute.js.map +1 -1
  384. package/dist/views/Root/getCustomViewByKey.d.ts.map +1 -1
  385. package/dist/views/Root/getCustomViewByKey.js.map +1 -1
  386. package/dist/views/Root/index.d.ts.map +1 -1
  387. package/dist/views/Root/index.js +1 -0
  388. package/dist/views/Root/index.js.map +1 -1
  389. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  390. package/dist/views/Version/Default/SetStepNav.js +10 -13
  391. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  392. package/dist/views/Version/Default/index.d.ts.map +1 -1
  393. package/dist/views/Version/Default/index.js +12 -13
  394. package/dist/views/Version/Default/index.js.map +1 -1
  395. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts +1 -0
  396. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.d.ts.map +1 -1
  397. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js +56 -50
  398. package/dist/views/Version/RenderFieldsToDiff/DiffCollapser/index.js.map +1 -1
  399. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.d.ts.map +1 -1
  400. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js +41 -27
  401. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.js.map +1 -1
  402. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.spec.js +258 -0
  403. package/dist/views/Version/RenderFieldsToDiff/buildVersionFields.spec.js.map +1 -0
  404. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.d.ts.map +1 -1
  405. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +10 -0
  406. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  407. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.d.ts.map +1 -1
  408. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js +33 -1
  409. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.js.map +1 -1
  410. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js +56 -2
  411. package/dist/views/Version/RenderFieldsToDiff/utilities/countChangedFields.spec.js.map +1 -1
  412. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts +8 -2
  413. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.d.ts.map +1 -1
  414. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js +17 -19
  415. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.js.map +1 -1
  416. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js +3 -13
  417. package/dist/views/Version/RenderFieldsToDiff/utilities/getFieldsForRowComparison.spec.js.map +1 -1
  418. package/dist/views/Version/generateVersionViewMetadata.js.map +1 -1
  419. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.d.ts.map +1 -1
  420. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js +2 -3
  421. package/dist/views/Versions/VersionPillLabel/VersionPillLabel.js.map +1 -1
  422. package/dist/views/Versions/generateVersionsViewMetadata.js.map +1 -1
  423. package/package.json +5 -4
@@ -1,4 +1,62 @@
1
- import { canAccessAdmin } from 'payload';
1
+ import { canAccessAdmin, Forbidden } from 'payload';
2
+ import { hasScheduledPublishEnabled } from 'payload/shared';
3
+ import { buildUpcomingScheduleWhere } from '../elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js';
4
+ import { getDocumentPermissions } from './getDocumentPermissions.js';
5
+ export const getUpcomingScheduledPublishHandler = async ({
6
+ id,
7
+ collectionSlug,
8
+ globalSlug,
9
+ req
10
+ }) => {
11
+ const {
12
+ payload
13
+ } = req;
14
+ await canAccessAdmin({
15
+ req
16
+ });
17
+ const collectionConfig = collectionSlug ? payload.collections[collectionSlug]?.config : undefined;
18
+ const globalConfig = globalSlug ? payload.config.globals.find(({
19
+ slug
20
+ }) => slug === globalSlug) : undefined;
21
+ const entityConfig = collectionConfig || globalConfig;
22
+ const hasValidTarget = Boolean(entityConfig && hasScheduledPublishEnabled(entityConfig) && (collectionConfig && id !== undefined && !globalSlug || globalConfig && !collectionSlug));
23
+ if (!hasValidTarget) {
24
+ throw new Forbidden(req.t);
25
+ }
26
+ const {
27
+ hasPublishPermission
28
+ } = await getDocumentPermissions({
29
+ id,
30
+ collectionConfig,
31
+ data: {},
32
+ globalConfig,
33
+ req
34
+ });
35
+ if (!hasPublishPermission) {
36
+ throw new Forbidden(req.t);
37
+ }
38
+ const {
39
+ docs
40
+ } = await payload.db.find({
41
+ collection: 'payload-jobs',
42
+ limit: 0,
43
+ sort: 'waitUntil',
44
+ where: buildUpcomingScheduleWhere({
45
+ id,
46
+ collectionSlug,
47
+ globalSlug
48
+ })
49
+ });
50
+ return docs.map(job => ({
51
+ id: job.id,
52
+ input: {
53
+ type: job.input?.type === 'unpublish' ? 'unpublish' : 'publish',
54
+ locale: job.input?.locale,
55
+ timezone: job.input?.timezone
56
+ },
57
+ waitUntil: job.waitUntil
58
+ }));
59
+ };
2
60
  export const schedulePublishHandler = async ({
3
61
  type,
4
62
  date,
@@ -23,9 +81,15 @@ export const schedulePublishHandler = async ({
23
81
  collection: 'payload-jobs',
24
82
  req,
25
83
  where: {
26
- id: {
27
- equals: deleteID
28
- }
84
+ and: [{
85
+ id: {
86
+ equals: deleteID
87
+ }
88
+ }, {
89
+ taskSlug: {
90
+ equals: 'schedulePublish'
91
+ }
92
+ }]
29
93
  }
30
94
  });
31
95
  }
@@ -1 +1 @@
1
- {"version":3,"file":"schedulePublishHandler.js","names":["canAccessAdmin","schedulePublishHandler","type","date","deleteID","doc","global","localeToPublish","req","timezone","i18n","payload","user","delete","collection","where","id","equals","jobs","queue","input","locale","task","waitUntil","err","error","value","relationTo","logger","message","t"],"sources":["../../src/utilities/schedulePublishHandler.ts"],"sourcesContent":["import { canAccessAdmin, type SchedulePublishTaskInput, type ServerFunction } from 'payload'\n\nexport type SchedulePublishHandlerArgs = {\n date?: Date\n /**\n * The job id to delete to remove a scheduled publish event\n */\n deleteID?: number | string\n localeToPublish?: string\n timezone?: string\n} & Pick<SchedulePublishTaskInput, 'doc' | 'global' | 'type'>\n\nexport const schedulePublishHandler: ServerFunction<SchedulePublishHandlerArgs> = async ({\n type,\n date,\n deleteID,\n doc,\n global,\n localeToPublish,\n req,\n timezone,\n}) => {\n const { i18n, payload, user } = req\n\n await canAccessAdmin({ req })\n\n try {\n if (deleteID) {\n await payload.delete({\n collection: 'payload-jobs',\n req,\n where: { id: { equals: deleteID } },\n })\n }\n\n await payload.jobs.queue({\n input: {\n type,\n doc,\n global,\n locale: localeToPublish,\n timezone,\n user: user.id,\n },\n task: 'schedulePublish',\n waitUntil: date,\n })\n } catch (err) {\n let error\n\n if (deleteID) {\n error = `Error deleting scheduled publish event with ID ${deleteID}`\n } else {\n error = `Error scheduling ${type} for `\n if (doc) {\n error += `document with ID ${doc.value} in collection ${doc.relationTo}`\n }\n }\n\n payload.logger.error({ err }, error)\n\n return {\n error,\n }\n }\n\n return { message: i18n.t('general:success') }\n}\n"],"mappings":"AAAA,SAASA,cAAc,QAA4D;AAYnF,OAAO,MAAMC,sBAAA,GAAqE,MAAAA,CAAO;EACvFC,IAAI;EACJC,IAAI;EACJC,QAAQ;EACRC,GAAG;EACHC,MAAM;EACNC,eAAe;EACfC,GAAG;EACHC;AAAQ,CACT;EACC,MAAM;IAAEC,IAAI;IAAEC,OAAO;IAAEC;EAAI,CAAE,GAAGJ,GAAA;EAEhC,MAAMR,cAAA,CAAe;IAAEQ;EAAI;EAE3B,IAAI;IACF,IAAIJ,QAAA,EAAU;MACZ,MAAMO,OAAA,CAAQE,MAAM,CAAC;QACnBC,UAAA,EAAY;QACZN,GAAA;QACAO,KAAA,EAAO;UAAEC,EAAA,EAAI;YAAEC,MAAA,EAAQb;UAAS;QAAE;MACpC;IACF;IAEA,MAAMO,OAAA,CAAQO,IAAI,CAACC,KAAK,CAAC;MACvBC,KAAA,EAAO;QACLlB,IAAA;QACAG,GAAA;QACAC,MAAA;QACAe,MAAA,EAAQd,eAAA;QACRE,QAAA;QACAG,IAAA,EAAMA,IAAA,CAAKI;MACb;MACAM,IAAA,EAAM;MACNC,SAAA,EAAWpB;IACb;EACF,EAAE,OAAOqB,GAAA,EAAK;IACZ,IAAIC,KAAA;IAEJ,IAAIrB,QAAA,EAAU;MACZqB,KAAA,GAAQ,kDAAkDrB,QAAA,EAAU;IACtE,OAAO;MACLqB,KAAA,GAAQ,oBAAoBvB,IAAA,OAAW;MACvC,IAAIG,GAAA,EAAK;QACPoB,KAAA,IAAS,oBAAoBpB,GAAA,CAAIqB,KAAK,kBAAkBrB,GAAA,CAAIsB,UAAU,EAAE;MAC1E;IACF;IAEAhB,OAAA,CAAQiB,MAAM,CAACH,KAAK,CAAC;MAAED;IAAI,GAAGC,KAAA;IAE9B,OAAO;MACLA;IACF;EACF;EAEA,OAAO;IAAEI,OAAA,EAASnB,IAAA,CAAKoB,CAAC,CAAC;EAAmB;AAC9C","ignoreList":[]}
1
+ {"version":3,"file":"schedulePublishHandler.js","names":["canAccessAdmin","Forbidden","hasScheduledPublishEnabled","buildUpcomingScheduleWhere","getDocumentPermissions","getUpcomingScheduledPublishHandler","id","collectionSlug","globalSlug","req","payload","collectionConfig","collections","config","undefined","globalConfig","globals","find","slug","entityConfig","hasValidTarget","Boolean","t","hasPublishPermission","data","docs","db","collection","limit","sort","where","map","job","input","type","locale","timezone","waitUntil","schedulePublishHandler","date","deleteID","doc","global","localeToPublish","i18n","user","delete","and","equals","taskSlug","jobs","queue","task","err","error","value","relationTo","logger","message"],"sources":["../../src/utilities/schedulePublishHandler.ts"],"sourcesContent":["import type { SchedulePublishTaskInput, ServerFunction } from 'payload'\n\nimport { canAccessAdmin, Forbidden } from 'payload'\nimport { hasScheduledPublishEnabled } from 'payload/shared'\n\nimport type { UpcomingEvent } from '../elements/PublishButton/ScheduleDrawer/types.js'\n\nimport { buildUpcomingScheduleWhere } from '../elements/PublishButton/ScheduleDrawer/buildUpcomingScheduleWhere.js'\nimport { getDocumentPermissions } from './getDocumentPermissions.js'\n\nexport type SchedulePublishHandlerArgs = {\n date?: Date\n /**\n * The job id to delete to remove a scheduled publish event\n */\n deleteID?: number | string\n localeToPublish?: string\n timezone?: string\n} & Pick<SchedulePublishTaskInput, 'doc' | 'global' | 'type'>\n\nexport type GetUpcomingScheduledPublishHandlerArgs = {\n collectionSlug?: string\n globalSlug?: string\n id?: number | string\n}\n\nexport const getUpcomingScheduledPublishHandler: ServerFunction<\n GetUpcomingScheduledPublishHandlerArgs,\n Promise<UpcomingEvent[]>\n> = async ({ id, collectionSlug, globalSlug, req }) => {\n const { payload } = req\n\n await canAccessAdmin({ req })\n\n const collectionConfig = collectionSlug ? payload.collections[collectionSlug]?.config : undefined\n const globalConfig = globalSlug\n ? payload.config.globals.find(({ slug }) => slug === globalSlug)\n : undefined\n const entityConfig = collectionConfig || globalConfig\n const hasValidTarget = Boolean(\n entityConfig &&\n hasScheduledPublishEnabled(entityConfig) &&\n ((collectionConfig && id !== undefined && !globalSlug) || (globalConfig && !collectionSlug)),\n )\n\n if (!hasValidTarget) {\n throw new Forbidden(req.t)\n }\n\n const { hasPublishPermission } = await getDocumentPermissions({\n id,\n collectionConfig,\n data: {},\n globalConfig,\n req,\n })\n\n if (!hasPublishPermission) {\n throw new Forbidden(req.t)\n }\n\n const { docs } = await payload.db.find<UpcomingEvent>({\n collection: 'payload-jobs',\n limit: 0,\n sort: 'waitUntil',\n where: buildUpcomingScheduleWhere({ id, collectionSlug, globalSlug }),\n })\n\n return docs.map((job) => ({\n id: job.id,\n input: {\n type: job.input?.type === 'unpublish' ? 'unpublish' : 'publish',\n locale: job.input?.locale,\n timezone: job.input?.timezone,\n },\n waitUntil: job.waitUntil,\n }))\n}\n\nexport const schedulePublishHandler: ServerFunction<SchedulePublishHandlerArgs> = async ({\n type,\n date,\n deleteID,\n doc,\n global,\n localeToPublish,\n req,\n timezone,\n}) => {\n const { i18n, payload, user } = req\n\n await canAccessAdmin({ req })\n\n try {\n if (deleteID) {\n await payload.delete({\n collection: 'payload-jobs',\n req,\n where: {\n and: [{ id: { equals: deleteID } }, { taskSlug: { equals: 'schedulePublish' } }],\n },\n })\n }\n\n await payload.jobs.queue({\n input: {\n type,\n doc,\n global,\n locale: localeToPublish,\n timezone,\n user: user.id,\n },\n task: 'schedulePublish',\n waitUntil: date,\n })\n } catch (err) {\n let error\n\n if (deleteID) {\n error = `Error deleting scheduled publish event with ID ${deleteID}`\n } else {\n error = `Error scheduling ${type} for `\n if (doc) {\n error += `document with ID ${doc.value} in collection ${doc.relationTo}`\n }\n }\n\n payload.logger.error({ err }, error)\n\n return {\n error,\n }\n }\n\n return { message: i18n.t('general:success') }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"serverFunctionRegistry.d.ts","sourceRoot":"","sources":["../../src/utilities/serverFunctionRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAe7C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAc1E,CAAA"}
1
+ {"version":3,"file":"serverFunctionRegistry.d.ts","sourceRoot":"","sources":["../../src/utilities/serverFunctionRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAkB7C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAe1E,CAAA"}
@@ -7,7 +7,7 @@ import { renderListHandler } from '../views/List/handleServerFunction.js';
7
7
  import { buildFormStateHandler } from './buildFormState.js';
8
8
  import { buildTableStateHandler } from './buildTableState.js';
9
9
  import { copyDataFromLocaleHandler } from './copyDataFromLocale.js';
10
- import { schedulePublishHandler } from './schedulePublishHandler.js';
10
+ import { getUpcomingScheduledPublishHandler, schedulePublishHandler } from './schedulePublishHandler.js';
11
11
  import { slugifyHandler } from './slugify.js';
12
12
  import { switchLanguageHandler } from './switchLanguageHandler.js';
13
13
  /**
@@ -29,6 +29,7 @@ export const sharedServerFunctions = {
29
29
  'copy-data-from-locale': copyDataFromLocaleHandler,
30
30
  'form-state': buildFormStateHandler,
31
31
  'get-default-layout': getDefaultLayoutHandler,
32
+ 'get-upcoming-scheduled-publish': getUpcomingScheduledPublishHandler,
32
33
  'render-document': renderDocumentHandler,
33
34
  'render-document-slots': renderDocumentSlotsHandler,
34
35
  'render-field': _internal_renderFieldHandler,
@@ -1 +1 @@
1
- {"version":3,"file":"serverFunctionRegistry.js","names":["renderTabHandler","_internal_renderFieldHandler","getDefaultLayoutHandler","renderWidgetHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","buildFormStateHandler","buildTableStateHandler","copyDataFromLocaleHandler","schedulePublishHandler","slugifyHandler","switchLanguageHandler","sharedServerFunctions","slugify"],"sources":["../../src/utilities/serverFunctionRegistry.ts"],"sourcesContent":["import type { ServerFunction } from 'payload'\n\nimport { renderTabHandler } from '../elements/Nav/SidebarTabs/renderTabServerFn.js'\nimport { _internal_renderFieldHandler } from '../forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js'\nimport { getDefaultLayoutHandler, renderWidgetHandler } from '../views/Dashboard/serverFunctions.js'\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { buildFormStateHandler } from './buildFormState.js'\nimport { buildTableStateHandler } from './buildTableState.js'\nimport { copyDataFromLocaleHandler } from './copyDataFromLocale.js'\nimport { schedulePublishHandler } from './schedulePublishHandler.js'\nimport { slugifyHandler } from './slugify.js'\nimport { switchLanguageHandler } from './switchLanguageHandler.js'\n\n/**\n * The complete, framework-agnostic set of Payload server functions.\n *\n * Every adapter (`@payloadcms/next`, `@payloadcms/tanstack-start`) dispatches\n * from this single registry via `createServerFunctionHandler`, so a handler\n * added here reaches every framework and the adapter lists can't drift.\n *\n * Handlers may return values containing React elements (e.g. `customComponents`\n * inside form state, the `Document` / `List` nodes from render-document /\n * render-list, the render-field / render-widget output). Adapters ship those\n * over the wire as RSC payloads: Next.js does this natively, while the TanStack\n * Start adapter passes a `transformResult` (`serializeForRsc`) to\n * `createServerFunctionHandler` that converts elements into\n * `renderServerComponent` handles.\n */\nexport const sharedServerFunctions: Record<string, ServerFunction<any, any>> = {\n 'copy-data-from-locale': copyDataFromLocaleHandler,\n 'form-state': buildFormStateHandler,\n 'get-default-layout': getDefaultLayoutHandler,\n 'render-document': renderDocumentHandler,\n 'render-document-slots': renderDocumentSlotsHandler,\n 'render-field': _internal_renderFieldHandler,\n 'render-list': renderListHandler,\n 'render-tab': renderTabHandler,\n 'render-widget': renderWidgetHandler,\n 'schedule-publish': schedulePublishHandler,\n slugify: slugifyHandler,\n 'switch-language': switchLanguageHandler,\n 'table-state': buildTableStateHandler,\n}\n"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ;AACjC,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,uBAAuB,EAAEC,mBAAmB,QAAQ;AAC7D,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,sBAAsB,QAAQ;AACvC,SAASC,cAAc,QAAQ;AAC/B,SAASC,qBAAqB,QAAQ;AAEtC;;;;;;;;;;;;;;;AAeA,OAAO,MAAMC,qBAAA,GAAkE;EAC7E,yBAAyBJ,yBAAA;EACzB,cAAcF,qBAAA;EACd,sBAAsBL,uBAAA;EACtB,mBAAmBE,qBAAA;EACnB,yBAAyBC,0BAAA;EACzB,gBAAgBJ,4BAAA;EAChB,eAAeK,iBAAA;EACf,cAAcN,gBAAA;EACd,iBAAiBG,mBAAA;EACjB,oBAAoBO,sBAAA;EACpBI,OAAA,EAASH,cAAA;EACT,mBAAmBC,qBAAA;EACnB,eAAeJ;AACjB","ignoreList":[]}
1
+ {"version":3,"file":"serverFunctionRegistry.js","names":["renderTabHandler","_internal_renderFieldHandler","getDefaultLayoutHandler","renderWidgetHandler","renderDocumentHandler","renderDocumentSlotsHandler","renderListHandler","buildFormStateHandler","buildTableStateHandler","copyDataFromLocaleHandler","getUpcomingScheduledPublishHandler","schedulePublishHandler","slugifyHandler","switchLanguageHandler","sharedServerFunctions","slugify"],"sources":["../../src/utilities/serverFunctionRegistry.ts"],"sourcesContent":["import type { ServerFunction } from 'payload'\n\nimport { renderTabHandler } from '../elements/Nav/SidebarTabs/renderTabServerFn.js'\nimport { _internal_renderFieldHandler } from '../forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js'\nimport { getDefaultLayoutHandler, renderWidgetHandler } from '../views/Dashboard/serverFunctions.js'\nimport { renderDocumentHandler } from '../views/Document/handleServerFunction.js'\nimport { renderDocumentSlotsHandler } from '../views/Document/renderDocumentSlots.js'\nimport { renderListHandler } from '../views/List/handleServerFunction.js'\nimport { buildFormStateHandler } from './buildFormState.js'\nimport { buildTableStateHandler } from './buildTableState.js'\nimport { copyDataFromLocaleHandler } from './copyDataFromLocale.js'\nimport {\n getUpcomingScheduledPublishHandler,\n schedulePublishHandler,\n} from './schedulePublishHandler.js'\nimport { slugifyHandler } from './slugify.js'\nimport { switchLanguageHandler } from './switchLanguageHandler.js'\n\n/**\n * The complete, framework-agnostic set of Payload server functions.\n *\n * Every adapter (`@payloadcms/next`, `@payloadcms/tanstack-start`) dispatches\n * from this single registry via `createServerFunctionHandler`, so a handler\n * added here reaches every framework and the adapter lists can't drift.\n *\n * Handlers may return values containing React elements (e.g. `customComponents`\n * inside form state, the `Document` / `List` nodes from render-document /\n * render-list, the render-field / render-widget output). Adapters ship those\n * over the wire as RSC payloads: Next.js does this natively, while the TanStack\n * Start adapter passes a `transformResult` (`serializeForRsc`) to\n * `createServerFunctionHandler` that converts elements into\n * `renderServerComponent` handles.\n */\nexport const sharedServerFunctions: Record<string, ServerFunction<any, any>> = {\n 'copy-data-from-locale': copyDataFromLocaleHandler,\n 'form-state': buildFormStateHandler,\n 'get-default-layout': getDefaultLayoutHandler,\n 'get-upcoming-scheduled-publish': getUpcomingScheduledPublishHandler,\n 'render-document': renderDocumentHandler,\n 'render-document-slots': renderDocumentSlotsHandler,\n 'render-field': _internal_renderFieldHandler,\n 'render-list': renderListHandler,\n 'render-tab': renderTabHandler,\n 'render-widget': renderWidgetHandler,\n 'schedule-publish': schedulePublishHandler,\n slugify: slugifyHandler,\n 'switch-language': switchLanguageHandler,\n 'table-state': buildTableStateHandler,\n}\n"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ;AACjC,SAASC,4BAA4B,QAAQ;AAC7C,SAASC,uBAAuB,EAAEC,mBAAmB,QAAQ;AAC7D,SAASC,qBAAqB,QAAQ;AACtC,SAASC,0BAA0B,QAAQ;AAC3C,SAASC,iBAAiB,QAAQ;AAClC,SAASC,qBAAqB,QAAQ;AACtC,SAASC,sBAAsB,QAAQ;AACvC,SAASC,yBAAyB,QAAQ;AAC1C,SACEC,kCAAkC,EAClCC,sBAAsB,QACjB;AACP,SAASC,cAAc,QAAQ;AAC/B,SAASC,qBAAqB,QAAQ;AAEtC;;;;;;;;;;;;;;;AAeA,OAAO,MAAMC,qBAAA,GAAkE;EAC7E,yBAAyBL,yBAAA;EACzB,cAAcF,qBAAA;EACd,sBAAsBL,uBAAA;EACtB,kCAAkCQ,kCAAA;EAClC,mBAAmBN,qBAAA;EACnB,yBAAyBC,0BAAA;EACzB,gBAAgBJ,4BAAA;EAChB,eAAeK,iBAAA;EACf,cAAcN,gBAAA;EACd,iBAAiBG,mBAAA;EACjB,oBAAoBQ,sBAAA;EACpBI,OAAA,EAASH,cAAA;EACT,mBAAmBC,qBAAA;EACnB,eAAeL;AACjB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"slugify.d.ts","sourceRoot":"","sources":["../../src/utilities/slugify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAE/B,MAAM,SAAS,CAAA;AAGhB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,EAAE,cAAc,CACzC,yBAAyB,EACzB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAkF7B,CAAA"}
1
+ {"version":3,"file":"slugify.d.ts","sourceRoot":"","sources":["../../src/utilities/slugify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAE7C,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAE/B,MAAM,SAAS,CAAA;AAGhB;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,EAAE,cAAc,CACzC,yBAAyB,EACzB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAuF7B,CAAA"}
@@ -53,6 +53,7 @@ export const slugifyHandler = async args => {
53
53
  // a row-filtered (`Where`) result is treated as not allowed, since scoping the probe to readable
54
54
  // rows would break uniqueness.
55
55
  const canRead = await executeAccess({
56
+ slug: collectionConfig.slug,
56
57
  disableErrors: true,
57
58
  req
58
59
  }, collectionConfig.access.read);
@@ -74,6 +75,7 @@ export const slugifyHandler = async args => {
74
75
  draftsEnabled: hasDraftsEnabled(collectionConfig),
75
76
  field: field.name,
76
77
  locale: localeToScope,
78
+ overrideAccess: true,
77
79
  req,
78
80
  value: result
79
81
  });
@@ -83,6 +85,7 @@ export const slugifyHandler = async args => {
83
85
  collection: collectionConfig,
84
86
  field: field.name,
85
87
  locale: localeToScope,
88
+ overrideAccess: true,
86
89
  req,
87
90
  slugify
88
91
  });
@@ -1 +1 @@
1
- {"version":3,"file":"slugify.js","names":["executeAccess","getFieldByPath","getSlugFallbackValue","getUniqueFieldValue","hasDraftsEnabled","UnauthorizedError","slugify","defaultSlugify","slugifyHandler","args","id","collectionSlug","data","globalSlug","locale","path","req","valueToSlugify","user","docConfig","payload","collections","config","globals","find","g","slug","Error","field","fields","flattenedFields","customSlugify","custom","undefined","result","collectionConfig","type","canRead","disableErrors","access","read","localeToScope","localized","excludeId","collection","draftsEnabled","name","value"],"sources":["../../src/utilities/slugify.ts"],"sourcesContent":["import type { Slugify } from 'payload/shared'\n\nimport {\n executeAccess,\n getFieldByPath,\n getSlugFallbackValue,\n getUniqueFieldValue,\n hasDraftsEnabled,\n type ServerFunction,\n type SlugifyServerFunctionArgs,\n UnauthorizedError,\n} from 'payload'\nimport { slugify as defaultSlugify } from 'payload/shared'\n\n/**\n * This server function is directly related to the {@link https://payloadcms.com/docs/fields/slug | Slug Field}.\n * This is a server function that is used to invoke the user's custom slugify function from the client.\n * This pattern is required, as there is no other way for us to pass their function across the client-server boundary.\n * - Not through props\n * - Not from a server function defined within a server component (see below)\n * When a server function contains non-serializable data within its closure, it gets passed through the boundary (and breaks).\n * The only way to pass server functions to the client (that contain non-serializable data) is if it is globally defined.\n * But we also cannot define this function alongside the server component, as we will not have access to their custom slugify function.\n * See `ServerFunctionsProvider` for more details.\n */\nexport const slugifyHandler: ServerFunction<\n SlugifyServerFunctionArgs,\n Promise<ReturnType<Slugify>>\n> = async (args) => {\n const { id, collectionSlug, data, globalSlug, locale, path, req, valueToSlugify } = args\n\n if (!req.user) {\n throw new UnauthorizedError()\n }\n\n const docConfig = collectionSlug\n ? req.payload.collections[collectionSlug]?.config\n : globalSlug\n ? req.payload.config.globals.find((g) => g.slug === globalSlug)\n : null\n\n if (!docConfig) {\n throw new Error()\n }\n\n const { field } = getFieldByPath({\n config: req.payload.config,\n fields: docConfig.flattenedFields,\n path,\n })\n\n const customSlugify = (\n typeof field?.custom?.slugify === 'function' ? field.custom.slugify : undefined\n ) as Slugify\n\n const slugify = (valueToSlugify: unknown) =>\n customSlugify\n ? customSlugify({ data, req, valueToSlugify })\n : defaultSlugify(valueToSlugify as string)\n\n const result = await slugify(valueToSlugify)\n\n const collectionConfig = collectionSlug ? req.payload.collections[collectionSlug]?.config : null\n\n // Uniqueness dedupe only applies to a collection's slug field. Globals have no collection to\n // dedupe against, so their result is returned as-is.\n if (!collectionConfig || !field || field.type !== 'slug' || !('name' in field)) {\n return result\n }\n\n // Probing reads across the whole collection with the raw db, so require unrestricted read access —\n // a row-filtered (`Where`) result is treated as not allowed, since scoping the probe to readable\n // rows would break uniqueness.\n const canRead = await executeAccess({ disableErrors: true, req }, collectionConfig.access.read)\n\n if (canRead !== true) {\n return result\n }\n\n // A localized slug is unique per-locale, so scope the probe to the current locale — otherwise it\n // dedupes against the default locale and can hand back a colliding value. The client passes the\n // active admin locale; fall back to the request's own locale.\n const localeToScope = field.localized ? (locale ?? req.locale ?? undefined) : undefined\n\n // The current doc is excluded so a regenerate can reuse its own value rather than bump past it.\n const excludeId = typeof id === 'string' || typeof id === 'number' ? id : undefined\n\n // A source resolved to a value: dedupe it the same way the next save would, so the generate button\n // can't hand back a slug that's already taken. With no source, return the `<singular>-N` fallback.\n if (result) {\n return getUniqueFieldValue({\n id: excludeId,\n collection: collectionConfig.slug,\n draftsEnabled: hasDraftsEnabled(collectionConfig),\n field: field.name,\n locale: localeToScope,\n req,\n value: result,\n })\n }\n\n return getSlugFallbackValue({\n id: excludeId,\n collection: collectionConfig,\n field: field.name,\n locale: localeToScope,\n req,\n slugify,\n })\n}\n"],"mappings":"AAEA,SACEA,aAAa,EACbC,cAAc,EACdC,oBAAoB,EACpBC,mBAAmB,EACnBC,gBAAgB,EAGhBC,iBAAiB,QACZ;AACP,SAASC,OAAA,IAAWC,cAAc,QAAQ;AAE1C;;;;;;;;;;;AAWA,OAAO,MAAMC,cAAA,GAGT,MAAOC,IAAA;EACT,MAAM;IAAEC,EAAE;IAAEC,cAAc;IAAEC,IAAI;IAAEC,UAAU;IAAEC,MAAM;IAAEC,IAAI;IAAEC,GAAG;IAAEC;EAAc,CAAE,GAAGR,IAAA;EAEpF,IAAI,CAACO,GAAA,CAAIE,IAAI,EAAE;IACb,MAAM,IAAIb,iBAAA;EACZ;EAEA,MAAMc,SAAA,GAAYR,cAAA,GACdK,GAAA,CAAII,OAAO,CAACC,WAAW,CAACV,cAAA,CAAe,EAAEW,MAAA,GACzCT,UAAA,GACEG,GAAA,CAAII,OAAO,CAACE,MAAM,CAACC,OAAO,CAACC,IAAI,CAAEC,CAAA,IAAMA,CAAA,CAAEC,IAAI,KAAKb,UAAA,IAClD;EAEN,IAAI,CAACM,SAAA,EAAW;IACd,MAAM,IAAIQ,KAAA;EACZ;EAEA,MAAM;IAAEC;EAAK,CAAE,GAAG3B,cAAA,CAAe;IAC/BqB,MAAA,EAAQN,GAAA,CAAII,OAAO,CAACE,MAAM;IAC1BO,MAAA,EAAQV,SAAA,CAAUW,eAAe;IACjCf;EACF;EAEA,MAAMgB,aAAA,GACJ,OAAOH,KAAA,EAAOI,MAAA,EAAQ1B,OAAA,KAAY,aAAasB,KAAA,CAAMI,MAAM,CAAC1B,OAAO,GAAG2B,SAAA;EAGxE,MAAM3B,OAAA,GAAWW,cAAA,IACfc,aAAA,GACIA,aAAA,CAAc;IAAEnB,IAAA;IAAMI,GAAA;IAAKC;EAAe,KAC1CV,cAAA,CAAeU,cAAA;EAErB,MAAMiB,MAAA,GAAS,MAAM5B,OAAA,CAAQW,cAAA;EAE7B,MAAMkB,gBAAA,GAAmBxB,cAAA,GAAiBK,GAAA,CAAII,OAAO,CAACC,WAAW,CAACV,cAAA,CAAe,EAAEW,MAAA,GAAS;EAE5F;EACA;EACA,IAAI,CAACa,gBAAA,IAAoB,CAACP,KAAA,IAASA,KAAA,CAAMQ,IAAI,KAAK,UAAU,EAAE,UAAUR,KAAI,GAAI;IAC9E,OAAOM,MAAA;EACT;EAEA;EACA;EACA;EACA,MAAMG,OAAA,GAAU,MAAMrC,aAAA,CAAc;IAAEsC,aAAA,EAAe;IAAMtB;EAAI,GAAGmB,gBAAA,CAAiBI,MAAM,CAACC,IAAI;EAE9F,IAAIH,OAAA,KAAY,MAAM;IACpB,OAAOH,MAAA;EACT;EAEA;EACA;EACA;EACA,MAAMO,aAAA,GAAgBb,KAAA,CAAMc,SAAS,GAAI5B,MAAA,IAAUE,GAAA,CAAIF,MAAM,IAAImB,SAAA,GAAaA,SAAA;EAE9E;EACA,MAAMU,SAAA,GAAY,OAAOjC,EAAA,KAAO,YAAY,OAAOA,EAAA,KAAO,WAAWA,EAAA,GAAKuB,SAAA;EAE1E;EACA;EACA,IAAIC,MAAA,EAAQ;IACV,OAAO/B,mBAAA,CAAoB;MACzBO,EAAA,EAAIiC,SAAA;MACJC,UAAA,EAAYT,gBAAA,CAAiBT,IAAI;MACjCmB,aAAA,EAAezC,gBAAA,CAAiB+B,gBAAA;MAChCP,KAAA,EAAOA,KAAA,CAAMkB,IAAI;MACjBhC,MAAA,EAAQ2B,aAAA;MACRzB,GAAA;MACA+B,KAAA,EAAOb;IACT;EACF;EAEA,OAAOhC,oBAAA,CAAqB;IAC1BQ,EAAA,EAAIiC,SAAA;IACJC,UAAA,EAAYT,gBAAA;IACZP,KAAA,EAAOA,KAAA,CAAMkB,IAAI;IACjBhC,MAAA,EAAQ2B,aAAA;IACRzB,GAAA;IACAV;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"slugify.js","names":["executeAccess","getFieldByPath","getSlugFallbackValue","getUniqueFieldValue","hasDraftsEnabled","UnauthorizedError","slugify","defaultSlugify","slugifyHandler","args","id","collectionSlug","data","globalSlug","locale","path","req","valueToSlugify","user","docConfig","payload","collections","config","globals","find","g","slug","Error","field","fields","flattenedFields","customSlugify","custom","undefined","result","collectionConfig","type","canRead","disableErrors","access","read","localeToScope","localized","excludeId","collection","draftsEnabled","name","overrideAccess","value"],"sources":["../../src/utilities/slugify.ts"],"sourcesContent":["import type { Slugify } from 'payload/shared'\n\nimport {\n executeAccess,\n getFieldByPath,\n getSlugFallbackValue,\n getUniqueFieldValue,\n hasDraftsEnabled,\n type ServerFunction,\n type SlugifyServerFunctionArgs,\n UnauthorizedError,\n} from 'payload'\nimport { slugify as defaultSlugify } from 'payload/shared'\n\n/**\n * This server function is directly related to the {@link https://payloadcms.com/docs/fields/slug | Slug Field}.\n * This is a server function that is used to invoke the user's custom slugify function from the client.\n * This pattern is required, as there is no other way for us to pass their function across the client-server boundary.\n * - Not through props\n * - Not from a server function defined within a server component (see below)\n * When a server function contains non-serializable data within its closure, it gets passed through the boundary (and breaks).\n * The only way to pass server functions to the client (that contain non-serializable data) is if it is globally defined.\n * But we also cannot define this function alongside the server component, as we will not have access to their custom slugify function.\n * See `ServerFunctionsProvider` for more details.\n */\nexport const slugifyHandler: ServerFunction<\n SlugifyServerFunctionArgs,\n Promise<ReturnType<Slugify>>\n> = async (args) => {\n const { id, collectionSlug, data, globalSlug, locale, path, req, valueToSlugify } = args\n\n if (!req.user) {\n throw new UnauthorizedError()\n }\n\n const docConfig = collectionSlug\n ? req.payload.collections[collectionSlug]?.config\n : globalSlug\n ? req.payload.config.globals.find((g) => g.slug === globalSlug)\n : null\n\n if (!docConfig) {\n throw new Error()\n }\n\n const { field } = getFieldByPath({\n config: req.payload.config,\n fields: docConfig.flattenedFields,\n path,\n })\n\n const customSlugify = (\n typeof field?.custom?.slugify === 'function' ? field.custom.slugify : undefined\n ) as Slugify\n\n const slugify = (valueToSlugify: unknown) =>\n customSlugify\n ? customSlugify({ data, req, valueToSlugify })\n : defaultSlugify(valueToSlugify as string)\n\n const result = await slugify(valueToSlugify)\n\n const collectionConfig = collectionSlug ? req.payload.collections[collectionSlug]?.config : null\n\n // Uniqueness dedupe only applies to a collection's slug field. Globals have no collection to\n // dedupe against, so their result is returned as-is.\n if (!collectionConfig || !field || field.type !== 'slug' || !('name' in field)) {\n return result\n }\n\n // Probing reads across the whole collection with the raw db, so require unrestricted read access —\n // a row-filtered (`Where`) result is treated as not allowed, since scoping the probe to readable\n // rows would break uniqueness.\n const canRead = await executeAccess(\n { slug: collectionConfig.slug, disableErrors: true, req },\n collectionConfig.access.read,\n )\n\n if (canRead !== true) {\n return result\n }\n\n // A localized slug is unique per-locale, so scope the probe to the current locale — otherwise it\n // dedupes against the default locale and can hand back a colliding value. The client passes the\n // active admin locale; fall back to the request's own locale.\n const localeToScope = field.localized ? (locale ?? req.locale ?? undefined) : undefined\n\n // The current doc is excluded so a regenerate can reuse its own value rather than bump past it.\n const excludeId = typeof id === 'string' || typeof id === 'number' ? id : undefined\n\n // A source resolved to a value: dedupe it the same way the next save would, so the generate button\n // can't hand back a slug that's already taken. With no source, return the `<singular>-N` fallback.\n if (result) {\n return getUniqueFieldValue({\n id: excludeId,\n collection: collectionConfig.slug,\n draftsEnabled: hasDraftsEnabled(collectionConfig),\n field: field.name,\n locale: localeToScope,\n overrideAccess: true,\n req,\n value: result,\n })\n }\n\n return getSlugFallbackValue({\n id: excludeId,\n collection: collectionConfig,\n field: field.name,\n locale: localeToScope,\n overrideAccess: true,\n req,\n slugify,\n })\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/API/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiB9B,OAAO,aAAa,CAAA;AAKpB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAkPjC,CAAA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../src/views/API/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAiB9B,OAAO,aAAa,CAAA;AAKpB,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAmPjC,CAAA"}
@@ -34,9 +34,8 @@ export const APIViewClient = () => {
34
34
  i18n,
35
35
  t
36
36
  } = useTranslation();
37
- const {
38
- code
39
- } = useLocale();
37
+ const currentLocale = useLocale();
38
+ const code = currentLocale?.code;
40
39
  const {
41
40
  config: {
42
41
  defaultDepth,
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.js","names":["formatAdminURL","hasDraftsEnabled","React","toast","Button","CodeEditor","CodeEditorLazy","CheckboxField","NumberField","TextInput","Form","MinimizeMaximizeIcon","NewTabIcon","useConfig","useDocumentInfo","useLocale","useSearchParams","useTranslation","SetDocumentStepNav","LocaleSelector","baseClass","APIViewClient","id","collectionSlug","globalSlug","initialData","isTrashed","searchParams","i18n","t","code","config","defaultDepth","localization","routes","api","apiRoute","serverURL","getEntityConfig","collectionConfig","globalConfig","localeOptions","locales","map","locale","label","value","draftsEnabled","docEndpoint","undefined","data","setData","useState","draft","setDraft","get","setLocale","depth","setDepth","toString","authenticated","setAuthenticated","fullscreen","setFullscreen","origin","setOrigin","jsonString","useMemo","JSON","stringify","recalculatedHeightAt","setRecalculatedHeightAt","useEffect","count","window","location","trashParam","deletedAt","params","URLSearchParams","String","trash","fetchURL","path","fetchData","res","fetch","credentials","headers","language","method","json","error","console","_jsxs","className","filter","Boolean","join","_jsx","globalLabel","pluralLabel","labels","plural","useAsTitle","admin","view","initialState","initialValue","valid","Number","onChange","field","name","step","max","min","htmlAttributes","readOnly","buttonStyle","el","icon","size","margin","newTab","url","isMinimized","onClick","defaultLanguage","height","options","fixedOverflowWidgets","folding","lineNumbers","stickyScroll","enabled","wordWrap"],"sources":["../../../src/views/API/index.client.tsx"],"sourcesContent":["'use client'\n\nimport { formatAdminURL, hasDraftsEnabled } from 'payload/shared'\nimport * as React from 'react'\nimport { toast } from 'sonner'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { CodeEditor as CodeEditorLazy } from '../../elements/CodeEditor/index.js'\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { NumberField } from '../../fields/Number/index.js'\nimport { TextInput } from '../../fields/Text/Input.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { MinimizeMaximizeIcon } from '../../icons/MinimizeMaximize/index.js'\nimport { NewTabIcon } from '../../icons/NewTab/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useSearchParams } from '../../providers/RouterAdapter/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { SetDocumentStepNav } from '../../views/Edit/SetDocumentStepNav/index.js'\nimport './index.css'\nimport { LocaleSelector } from './LocaleSelector/index.js'\n\nconst baseClass = 'query-inspector'\n\nexport const APIViewClient: React.FC = () => {\n const { id, collectionSlug, globalSlug, initialData, isTrashed } = useDocumentInfo()\n\n const searchParams = useSearchParams()\n const { i18n, t } = useTranslation()\n const { code } = useLocale()\n\n const {\n config: {\n defaultDepth,\n localization,\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const localeOptions =\n localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))\n\n let draftsEnabled: boolean = false\n let docEndpoint: `/${string}` = undefined\n\n if (collectionConfig) {\n draftsEnabled = hasDraftsEnabled(collectionConfig)\n docEndpoint = `/${collectionSlug}/${id}`\n }\n\n if (globalConfig) {\n draftsEnabled = hasDraftsEnabled(globalConfig)\n docEndpoint = `/globals/${globalSlug}`\n }\n\n const [data, setData] = React.useState<any>(initialData)\n const [draft, setDraft] = React.useState<boolean>(searchParams.get('draft') === 'true')\n const [locale, setLocale] = React.useState<string>(searchParams?.get('locale') || code)\n const [depth, setDepth] = React.useState<string>(\n searchParams.get('depth') || defaultDepth.toString(),\n )\n const [authenticated, setAuthenticated] = React.useState<boolean>(true)\n const [fullscreen, setFullscreen] = React.useState<boolean>(false)\n const [origin, setOrigin] = React.useState<string>(serverURL || '')\n\n const jsonString = React.useMemo(\n () => (data === undefined ? '' : JSON.stringify(data, null, 2)),\n [data],\n )\n\n // readOnly editors never fire onChange, so bump a counter to re-fit height on data change\n const [recalculatedHeightAt, setRecalculatedHeightAt] = React.useState(0)\n React.useEffect(() => {\n setRecalculatedHeightAt((count) => count + 1)\n }, [jsonString])\n\n // Set the origin to the window.location.origin in useEffect to avoid hydration errors\n React.useEffect(() => {\n if (!serverURL) {\n setOrigin(window.location.origin)\n }\n }, [serverURL])\n\n const trashParam = typeof initialData?.deletedAt === 'string'\n\n const params = new URLSearchParams({\n depth,\n draft: String(draft),\n locale,\n trash: trashParam ? 'true' : 'false',\n }).toString()\n\n const fetchURL = formatAdminURL({\n apiRoute,\n path: `${docEndpoint}?${params}`,\n serverURL: origin,\n })\n\n React.useEffect(() => {\n const fetchData = async () => {\n try {\n const res = await fetch(fetchURL, {\n credentials: authenticated ? 'include' : 'omit',\n headers: {\n 'Accept-Language': i18n.language,\n },\n method: 'GET',\n })\n\n try {\n const json = await res.json()\n setData(json)\n } catch (error) {\n toast.error('Error parsing response')\n console.error(error) // eslint-disable-line no-console\n }\n } catch (error) {\n toast.error('Error making request')\n console.error(error) // eslint-disable-line no-console\n }\n }\n\n void fetchData()\n }, [i18n.language, fetchURL, authenticated])\n\n return (\n <div\n className={[baseClass, fullscreen && `${baseClass}--fullscreen`].filter(Boolean).join(' ')}\n >\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n isTrashed={isTrashed}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view=\"API\"\n />\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__configuration`}>\n <Form\n initialState={{\n authenticated: {\n initialValue: authenticated || false,\n valid: true,\n value: authenticated || false,\n },\n depth: {\n initialValue: Number(depth || 0),\n valid: true,\n value: Number(depth || 0),\n },\n draft: {\n initialValue: draft || false,\n valid: true,\n value: draft || false,\n },\n locale: {\n initialValue: locale,\n valid: true,\n value: locale,\n },\n }}\n >\n <div className={`${baseClass}__form-fields`}>\n {localeOptions && (\n <LocaleSelector localeOptions={localeOptions} onChange={setLocale} />\n )}\n <NumberField\n field={{\n name: 'depth',\n admin: {\n step: 1,\n },\n label: t('general:depth'),\n max: 10,\n min: 0,\n }}\n onChange={(value) => setDepth(value?.toString())}\n path=\"depth\"\n />\n {draftsEnabled && (\n <CheckboxField\n field={{\n name: 'draft',\n label: t('version:draft'),\n }}\n onChange={() => setDraft(!draft)}\n path=\"draft\"\n />\n )}\n <CheckboxField\n field={{\n name: 'authenticated',\n label: t('authentication:authenticated'),\n }}\n onChange={() => setAuthenticated(!authenticated)}\n path=\"authenticated\"\n />\n </div>\n </Form>\n </div>\n <div className={`${baseClass}__results-wrapper`}>\n <div className={`${baseClass}__results-bar`}>\n <div className={`${baseClass}__api-url-field`}>\n <TextInput\n className={`${baseClass}__api-url-input`}\n htmlAttributes={{\n 'aria-label': 'API URL',\n readOnly: true,\n }}\n path=\"api-url\"\n readOnly={false}\n value={fetchURL}\n />\n </div>\n <div className={`${baseClass}__results-bar-actions`}>\n <Button\n aria-label={t('general:openInNewWindow')}\n buttonStyle=\"secondary\"\n className={`${baseClass}__api-url-open-button`}\n el=\"anchor\"\n icon={<NewTabIcon size={16} />}\n margin={false}\n newTab\n size=\"large\"\n url={fetchURL}\n />\n <Button\n aria-label=\"toggle fullscreen\"\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-fullscreen-button`}\n icon={<MinimizeMaximizeIcon isMinimized={!fullscreen} />}\n margin={false}\n onClick={() => setFullscreen(!fullscreen)}\n size=\"large\"\n />\n </div>\n </div>\n <div className={`${baseClass}__results`}>\n <CodeEditorLazy\n defaultLanguage=\"json\"\n height=\"100%\"\n options={{\n fixedOverflowWidgets: true,\n folding: true,\n lineNumbers: 'on',\n stickyScroll: { enabled: false },\n wordWrap: 'off',\n }}\n readOnly\n recalculatedHeightAt={recalculatedHeightAt}\n value={jsonString}\n />\n </div>\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.client.js","names":["formatAdminURL","hasDraftsEnabled","React","toast","Button","CodeEditor","CodeEditorLazy","CheckboxField","NumberField","TextInput","Form","MinimizeMaximizeIcon","NewTabIcon","useConfig","useDocumentInfo","useLocale","useSearchParams","useTranslation","SetDocumentStepNav","LocaleSelector","baseClass","APIViewClient","id","collectionSlug","globalSlug","initialData","isTrashed","searchParams","i18n","t","currentLocale","code","config","defaultDepth","localization","routes","api","apiRoute","serverURL","getEntityConfig","collectionConfig","globalConfig","localeOptions","locales","map","locale","label","value","draftsEnabled","docEndpoint","undefined","data","setData","useState","draft","setDraft","get","setLocale","depth","setDepth","toString","authenticated","setAuthenticated","fullscreen","setFullscreen","origin","setOrigin","jsonString","useMemo","JSON","stringify","recalculatedHeightAt","setRecalculatedHeightAt","useEffect","count","window","location","trashParam","deletedAt","params","URLSearchParams","String","trash","fetchURL","path","fetchData","res","fetch","credentials","headers","language","method","json","error","console","_jsxs","className","filter","Boolean","join","_jsx","globalLabel","pluralLabel","labels","plural","useAsTitle","admin","view","initialState","initialValue","valid","Number","onChange","field","name","step","max","min","htmlAttributes","readOnly","buttonStyle","el","icon","size","margin","newTab","url","isMinimized","onClick","defaultLanguage","height","options","fixedOverflowWidgets","folding","lineNumbers","stickyScroll","enabled","wordWrap"],"sources":["../../../src/views/API/index.client.tsx"],"sourcesContent":["'use client'\n\nimport { formatAdminURL, hasDraftsEnabled } from 'payload/shared'\nimport * as React from 'react'\nimport { toast } from 'sonner'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { CodeEditor as CodeEditorLazy } from '../../elements/CodeEditor/index.js'\nimport { CheckboxField } from '../../fields/Checkbox/index.js'\nimport { NumberField } from '../../fields/Number/index.js'\nimport { TextInput } from '../../fields/Text/Input.js'\nimport { Form } from '../../forms/Form/index.js'\nimport { MinimizeMaximizeIcon } from '../../icons/MinimizeMaximize/index.js'\nimport { NewTabIcon } from '../../icons/NewTab/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useSearchParams } from '../../providers/RouterAdapter/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { SetDocumentStepNav } from '../../views/Edit/SetDocumentStepNav/index.js'\nimport './index.css'\nimport { LocaleSelector } from './LocaleSelector/index.js'\n\nconst baseClass = 'query-inspector'\n\nexport const APIViewClient: React.FC = () => {\n const { id, collectionSlug, globalSlug, initialData, isTrashed } = useDocumentInfo()\n\n const searchParams = useSearchParams()\n const { i18n, t } = useTranslation()\n const currentLocale = useLocale()\n const code = currentLocale?.code\n\n const {\n config: {\n defaultDepth,\n localization,\n routes: { api: apiRoute },\n serverURL,\n },\n getEntityConfig,\n } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug })\n const globalConfig = getEntityConfig({ globalSlug })\n\n const localeOptions =\n localization &&\n localization.locales.map((locale) => ({ label: locale.label, value: locale.code }))\n\n let draftsEnabled: boolean = false\n let docEndpoint: `/${string}` = undefined\n\n if (collectionConfig) {\n draftsEnabled = hasDraftsEnabled(collectionConfig)\n docEndpoint = `/${collectionSlug}/${id}`\n }\n\n if (globalConfig) {\n draftsEnabled = hasDraftsEnabled(globalConfig)\n docEndpoint = `/globals/${globalSlug}`\n }\n\n const [data, setData] = React.useState<any>(initialData)\n const [draft, setDraft] = React.useState<boolean>(searchParams.get('draft') === 'true')\n const [locale, setLocale] = React.useState<string>(searchParams?.get('locale') || code)\n const [depth, setDepth] = React.useState<string>(\n searchParams.get('depth') || defaultDepth.toString(),\n )\n const [authenticated, setAuthenticated] = React.useState<boolean>(true)\n const [fullscreen, setFullscreen] = React.useState<boolean>(false)\n const [origin, setOrigin] = React.useState<string>(serverURL || '')\n\n const jsonString = React.useMemo(\n () => (data === undefined ? '' : JSON.stringify(data, null, 2)),\n [data],\n )\n\n // readOnly editors never fire onChange, so bump a counter to re-fit height on data change\n const [recalculatedHeightAt, setRecalculatedHeightAt] = React.useState(0)\n React.useEffect(() => {\n setRecalculatedHeightAt((count) => count + 1)\n }, [jsonString])\n\n // Set the origin to the window.location.origin in useEffect to avoid hydration errors\n React.useEffect(() => {\n if (!serverURL) {\n setOrigin(window.location.origin)\n }\n }, [serverURL])\n\n const trashParam = typeof initialData?.deletedAt === 'string'\n\n const params = new URLSearchParams({\n depth,\n draft: String(draft),\n locale,\n trash: trashParam ? 'true' : 'false',\n }).toString()\n\n const fetchURL = formatAdminURL({\n apiRoute,\n path: `${docEndpoint}?${params}`,\n serverURL: origin,\n })\n\n React.useEffect(() => {\n const fetchData = async () => {\n try {\n const res = await fetch(fetchURL, {\n credentials: authenticated ? 'include' : 'omit',\n headers: {\n 'Accept-Language': i18n.language,\n },\n method: 'GET',\n })\n\n try {\n const json = await res.json()\n setData(json)\n } catch (error) {\n toast.error('Error parsing response')\n console.error(error) // eslint-disable-line no-console\n }\n } catch (error) {\n toast.error('Error making request')\n console.error(error) // eslint-disable-line no-console\n }\n }\n\n void fetchData()\n }, [i18n.language, fetchURL, authenticated])\n\n return (\n <div\n className={[baseClass, fullscreen && `${baseClass}--fullscreen`].filter(Boolean).join(' ')}\n >\n <SetDocumentStepNav\n collectionSlug={collectionSlug}\n globalLabel={globalConfig?.label}\n globalSlug={globalSlug}\n id={id}\n isTrashed={isTrashed}\n pluralLabel={collectionConfig ? collectionConfig?.labels?.plural : undefined}\n useAsTitle={collectionConfig ? collectionConfig?.admin?.useAsTitle : undefined}\n view=\"API\"\n />\n <div className={`${baseClass}__content`}>\n <div className={`${baseClass}__configuration`}>\n <Form\n initialState={{\n authenticated: {\n initialValue: authenticated || false,\n valid: true,\n value: authenticated || false,\n },\n depth: {\n initialValue: Number(depth || 0),\n valid: true,\n value: Number(depth || 0),\n },\n draft: {\n initialValue: draft || false,\n valid: true,\n value: draft || false,\n },\n locale: {\n initialValue: locale,\n valid: true,\n value: locale,\n },\n }}\n >\n <div className={`${baseClass}__form-fields`}>\n {localeOptions && (\n <LocaleSelector localeOptions={localeOptions} onChange={setLocale} />\n )}\n <NumberField\n field={{\n name: 'depth',\n admin: {\n step: 1,\n },\n label: t('general:depth'),\n max: 10,\n min: 0,\n }}\n onChange={(value) => setDepth(value?.toString())}\n path=\"depth\"\n />\n {draftsEnabled && (\n <CheckboxField\n field={{\n name: 'draft',\n label: t('version:draft'),\n }}\n onChange={() => setDraft(!draft)}\n path=\"draft\"\n />\n )}\n <CheckboxField\n field={{\n name: 'authenticated',\n label: t('authentication:authenticated'),\n }}\n onChange={() => setAuthenticated(!authenticated)}\n path=\"authenticated\"\n />\n </div>\n </Form>\n </div>\n <div className={`${baseClass}__results-wrapper`}>\n <div className={`${baseClass}__results-bar`}>\n <div className={`${baseClass}__api-url-field`}>\n <TextInput\n className={`${baseClass}__api-url-input`}\n htmlAttributes={{\n 'aria-label': 'API URL',\n readOnly: true,\n }}\n path=\"api-url\"\n readOnly={false}\n value={fetchURL}\n />\n </div>\n <div className={`${baseClass}__results-bar-actions`}>\n <Button\n aria-label={t('general:openInNewWindow')}\n buttonStyle=\"secondary\"\n className={`${baseClass}__api-url-open-button`}\n el=\"anchor\"\n icon={<NewTabIcon size={16} />}\n margin={false}\n newTab\n size=\"large\"\n url={fetchURL}\n />\n <Button\n aria-label=\"toggle fullscreen\"\n buttonStyle=\"secondary\"\n className={`${baseClass}__toggle-fullscreen-button`}\n icon={<MinimizeMaximizeIcon isMinimized={!fullscreen} />}\n margin={false}\n onClick={() => setFullscreen(!fullscreen)}\n size=\"large\"\n />\n </div>\n </div>\n <div className={`${baseClass}__results`}>\n <CodeEditorLazy\n defaultLanguage=\"json\"\n height=\"100%\"\n options={{\n fixedOverflowWidgets: true,\n folding: true,\n lineNumbers: 'on',\n stickyScroll: { enabled: false },\n wordWrap: 'off',\n }}\n readOnly\n recalculatedHeightAt={recalculatedHeightAt}\n value={jsonString}\n />\n </div>\n </div>\n </div>\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardStepNav.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/DashboardStepNav.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAa3C,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,OAAO,GACR,EAAE;IACD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IAC1C,OAAO,EAAE,YAAY,EAAE,CAAA;CACxB,+BAoCA;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;CAC1B,+BAmEA"}
1
+ {"version":3,"file":"DashboardStepNav.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/DashboardStepNav.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAa3C,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,MAAM,EACN,SAAS,EACT,WAAW,EACX,UAAU,EACV,YAAY,EACZ,OAAO,GACR,EAAE;IACD,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACjC,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;IAClB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAChC,UAAU,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC/B,YAAY,EAAE,CAAC,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;IAC1C,OAAO,EAAE,YAAY,EAAE,CAAA;CACxB,+BAoCA;AAED,wBAAgB,2BAA2B,CAAC,KAAK,EAAE;IACjD,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,MAAM,IAAI,CAAA;IACpB,WAAW,EAAE,MAAM,IAAI,CAAA;IACvB,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,aAAa,EAAE,MAAM,IAAI,CAAA;IACzB,iBAAiB,EAAE,MAAM,CAAA;CAC1B,+BAoEA"}
@@ -169,7 +169,7 @@ export function DashboardBreadcrumbDropdown(props) {
169
169
  if ($[9] !== t) {
170
170
  t1 = t2 => {
171
171
  const {
172
- active: _active,
172
+ active,
173
173
  onClick,
174
174
  onKeyDown,
175
175
  ...ariaProps
@@ -181,6 +181,7 @@ export function DashboardBreadcrumbDropdown(props) {
181
181
  onKeyDown
182
182
  },
183
183
  onClick,
184
+ selected: active,
184
185
  ...ariaProps,
185
186
  children: _jsxs("span", {
186
187
  className: "dashboard-breadcrumb-dropdown__label",
@@ -203,7 +204,7 @@ export function DashboardBreadcrumbDropdown(props) {
203
204
  horizontalAlign: "left",
204
205
  render: t0,
205
206
  renderButton: t1,
206
- size: "large"
207
+ size: "fit-content"
207
208
  });
208
209
  $[11] = t0;
209
210
  $[12] = t1;
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardStepNav.js","names":["c","_c","useEffect","useId","Button","DrawerToggler","ItemsDrawer","Popup","PopupList","useStepNav","ChevronIcon","useTranslation","DashboardStepNav","t0","$","addWidget","cancel","isEditing","resetLayout","saveLayout","setIsEditing","widgets","t","setStepNav","uuid","drawerSlug","t1","t2","label","_jsx","DashboardBreadcrumbDropdown","onCancel","onEditClick","onResetLayout","onSaveChanges","widgetsDrawerSlug","t3","_Fragment","children","items","onItemClick","widget","slug","searchPlaceholder","title","props","_jsxs","className","buttonStyle","el","size","onClick","close","ButtonGroup","active","_active","onKeyDown","ariaProps","extraButtonProps","direction","horizontalAlign","render"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/DashboardStepNav.tsx"],"sourcesContent":["'use client'\nimport type { ClientWidget } from 'payload'\n\nimport { useEffect, useId } from 'react'\n\nimport { Button } from '../../../../elements/Button/index.js'\nimport { DrawerToggler } from '../../../../elements/Drawer/index.js'\nimport { ItemsDrawer } from '../../../../elements/ItemsDrawer/index.js'\nimport { Popup } from '../../../../elements/Popup/index.js'\nimport * as PopupList from '../../../../elements/Popup/PopupButtonList/index.js'\nimport { useStepNav } from '../../../../elements/StepNav/index.js'\nimport { ChevronIcon } from '../../../../icons/Chevron/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\n\nexport function DashboardStepNav({\n addWidget,\n cancel,\n isEditing,\n resetLayout,\n saveLayout,\n setIsEditing,\n widgets,\n}: {\n addWidget: (slug: string) => void\n cancel: () => void\n isEditing: boolean\n resetLayout: () => Promise<void>\n saveLayout: () => Promise<void>\n setIsEditing: (isEditing: boolean) => void\n widgets: ClientWidget[]\n}) {\n const { t } = useTranslation()\n const { setStepNav } = useStepNav()\n const uuid = useId()\n const drawerSlug = `widgets-drawer-${uuid}`\n\n useEffect(() => {\n setStepNav([\n {\n label: (\n <DashboardBreadcrumbDropdown\n isEditing={isEditing}\n onCancel={cancel}\n onEditClick={() => setIsEditing(true)}\n onResetLayout={resetLayout}\n onSaveChanges={saveLayout}\n widgetsDrawerSlug={drawerSlug}\n />\n ),\n },\n ])\n }, [isEditing, drawerSlug, cancel, resetLayout, saveLayout, setIsEditing, setStepNav])\n\n return (\n <>\n {isEditing && (\n <ItemsDrawer\n drawerSlug={drawerSlug}\n items={widgets}\n onItemClick={(widget) => addWidget(widget.slug)}\n searchPlaceholder={t('dashboard:searchWidgets')}\n title={t('dashboard:addWidget')}\n />\n )}\n </>\n )\n}\n\nexport function DashboardBreadcrumbDropdown(props: {\n isEditing: boolean\n onCancel: () => void\n onEditClick: () => void\n onResetLayout: () => void\n onSaveChanges: () => void\n widgetsDrawerSlug: string\n}) {\n const { isEditing, onCancel, onEditClick, onResetLayout, onSaveChanges, widgetsDrawerSlug } =\n props\n const { t } = useTranslation()\n\n if (isEditing) {\n return (\n <div className=\"dashboard-breadcrumb-dropdown__editing\">\n <span>{t('dashboard:editingDashboard')}</span>\n <div className=\"dashboard-breadcrumb-dropdown__actions\">\n <DrawerToggler className=\"drawer-toggler--unstyled\" slug={widgetsDrawerSlug}>\n <Button buttonStyle=\"primary\" el=\"span\" size=\"medium\">\n {t('dashboard:addButton')}\n </Button>\n </DrawerToggler>\n <Button buttonStyle=\"pill\" onClick={onSaveChanges} size=\"medium\">\n {t('fields:saveChanges')}\n </Button>\n <Button buttonStyle=\"pill\" onClick={onCancel} size=\"medium\">\n {t('general:cancel')}\n </Button>\n </div>\n </div>\n )\n }\n\n return (\n <Popup\n className=\"dashboard-breadcrumb-dropdown\"\n horizontalAlign=\"left\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <PopupList.Button\n onClick={() => {\n close()\n onEditClick()\n }}\n >\n {t('dashboard:editDashboard')}\n </PopupList.Button>\n <PopupList.Button\n onClick={() => {\n close()\n onResetLayout()\n }}\n >\n {t('dashboard:resetLayout')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n renderButton={({ active: _active, onClick, onKeyDown, ...ariaProps }) => (\n <Button\n aria-label={t('general:dashboard')}\n buttonStyle=\"ghost\"\n extraButtonProps={{ onKeyDown }}\n onClick={onClick}\n {...ariaProps}\n >\n <span className=\"dashboard-breadcrumb-dropdown__label\">\n {t('general:dashboard')}\n <ChevronIcon direction=\"down\" size={16} />\n </span>\n </Button>\n )}\n size=\"large\"\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DashboardStepNav.js","names":["c","_c","useEffect","useId","Button","DrawerToggler","ItemsDrawer","Popup","PopupList","useStepNav","ChevronIcon","useTranslation","DashboardStepNav","t0","$","addWidget","cancel","isEditing","resetLayout","saveLayout","setIsEditing","widgets","t","setStepNav","uuid","drawerSlug","t1","t2","label","_jsx","DashboardBreadcrumbDropdown","onCancel","onEditClick","onResetLayout","onSaveChanges","widgetsDrawerSlug","t3","_Fragment","children","items","onItemClick","widget","slug","searchPlaceholder","title","props","_jsxs","className","buttonStyle","el","size","onClick","close","ButtonGroup","active","onKeyDown","ariaProps","extraButtonProps","selected","direction","horizontalAlign","render"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/DashboardStepNav.tsx"],"sourcesContent":["'use client'\nimport type { ClientWidget } from 'payload'\n\nimport { useEffect, useId } from 'react'\n\nimport { Button } from '../../../../elements/Button/index.js'\nimport { DrawerToggler } from '../../../../elements/Drawer/index.js'\nimport { ItemsDrawer } from '../../../../elements/ItemsDrawer/index.js'\nimport { Popup } from '../../../../elements/Popup/index.js'\nimport * as PopupList from '../../../../elements/Popup/PopupButtonList/index.js'\nimport { useStepNav } from '../../../../elements/StepNav/index.js'\nimport { ChevronIcon } from '../../../../icons/Chevron/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\n\nexport function DashboardStepNav({\n addWidget,\n cancel,\n isEditing,\n resetLayout,\n saveLayout,\n setIsEditing,\n widgets,\n}: {\n addWidget: (slug: string) => void\n cancel: () => void\n isEditing: boolean\n resetLayout: () => Promise<void>\n saveLayout: () => Promise<void>\n setIsEditing: (isEditing: boolean) => void\n widgets: ClientWidget[]\n}) {\n const { t } = useTranslation()\n const { setStepNav } = useStepNav()\n const uuid = useId()\n const drawerSlug = `widgets-drawer-${uuid}`\n\n useEffect(() => {\n setStepNav([\n {\n label: (\n <DashboardBreadcrumbDropdown\n isEditing={isEditing}\n onCancel={cancel}\n onEditClick={() => setIsEditing(true)}\n onResetLayout={resetLayout}\n onSaveChanges={saveLayout}\n widgetsDrawerSlug={drawerSlug}\n />\n ),\n },\n ])\n }, [isEditing, drawerSlug, cancel, resetLayout, saveLayout, setIsEditing, setStepNav])\n\n return (\n <>\n {isEditing && (\n <ItemsDrawer\n drawerSlug={drawerSlug}\n items={widgets}\n onItemClick={(widget) => addWidget(widget.slug)}\n searchPlaceholder={t('dashboard:searchWidgets')}\n title={t('dashboard:addWidget')}\n />\n )}\n </>\n )\n}\n\nexport function DashboardBreadcrumbDropdown(props: {\n isEditing: boolean\n onCancel: () => void\n onEditClick: () => void\n onResetLayout: () => void\n onSaveChanges: () => void\n widgetsDrawerSlug: string\n}) {\n const { isEditing, onCancel, onEditClick, onResetLayout, onSaveChanges, widgetsDrawerSlug } =\n props\n const { t } = useTranslation()\n\n if (isEditing) {\n return (\n <div className=\"dashboard-breadcrumb-dropdown__editing\">\n <span>{t('dashboard:editingDashboard')}</span>\n <div className=\"dashboard-breadcrumb-dropdown__actions\">\n <DrawerToggler className=\"drawer-toggler--unstyled\" slug={widgetsDrawerSlug}>\n <Button buttonStyle=\"primary\" el=\"span\" size=\"medium\">\n {t('dashboard:addButton')}\n </Button>\n </DrawerToggler>\n <Button buttonStyle=\"pill\" onClick={onSaveChanges} size=\"medium\">\n {t('fields:saveChanges')}\n </Button>\n <Button buttonStyle=\"pill\" onClick={onCancel} size=\"medium\">\n {t('general:cancel')}\n </Button>\n </div>\n </div>\n )\n }\n\n return (\n <Popup\n className=\"dashboard-breadcrumb-dropdown\"\n horizontalAlign=\"left\"\n render={({ close }) => (\n <PopupList.ButtonGroup>\n <PopupList.Button\n onClick={() => {\n close()\n onEditClick()\n }}\n >\n {t('dashboard:editDashboard')}\n </PopupList.Button>\n <PopupList.Button\n onClick={() => {\n close()\n onResetLayout()\n }}\n >\n {t('dashboard:resetLayout')}\n </PopupList.Button>\n </PopupList.ButtonGroup>\n )}\n renderButton={({ active, onClick, onKeyDown, ...ariaProps }) => (\n <Button\n aria-label={t('general:dashboard')}\n buttonStyle=\"ghost\"\n extraButtonProps={{ onKeyDown }}\n onClick={onClick}\n selected={active}\n {...ariaProps}\n >\n <span className=\"dashboard-breadcrumb-dropdown__label\">\n {t('general:dashboard')}\n <ChevronIcon direction=\"down\" size={16} />\n </span>\n </Button>\n )}\n size=\"fit-content\"\n />\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetEditControl.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/WidgetEditControl.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAEnC,OAAO,KAAgB,MAAM,OAAO,CAAA;AAWpC,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,UAAU,EACV,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAA;CACjB,qBAsCA"}
1
+ {"version":3,"file":"WidgetEditControl.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/WidgetEditControl.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAEnC,OAAO,KAAgB,MAAM,OAAO,CAAA;AAYpC,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,UAAU,EACV,QAAQ,GACT,EAAE;IACD,MAAM,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACpC,QAAQ,EAAE,MAAM,CAAA;CACjB,qBAoCA"}
@@ -3,6 +3,7 @@
3
3
  import { c as _c } from "react/compiler-runtime";
4
4
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
5
5
  import React, { useId } from 'react';
6
+ import { Button } from '../../../../elements/Button/index.js';
6
7
  import { useModal } from '../../../../elements/Modal/index.js';
7
8
  import { EditIcon } from '../../../../icons/Edit/index.js';
8
9
  import { useConfig } from '../../../../providers/Config/index.js';
@@ -62,14 +63,13 @@ export function WidgetEditControl(t0) {
62
63
  t4 = $[6];
63
64
  }
64
65
  return _jsxs(_Fragment, {
65
- children: [_jsxs("button", {
66
+ children: [_jsx(Button, {
67
+ "aria-label": `${t("general:edit")} ${widgetID}`,
68
+ buttonStyle: "secondary",
66
69
  className: "widget-wrapper__edit-btn",
67
- onClick: t4,
68
- type: "button",
69
- children: [_jsxs("span", {
70
- className: "sr-only",
71
- children: [t("general:edit"), " ", widgetID]
72
- }), _jsx(EditIcon, {})]
70
+ icon: _jsx(EditIcon, {}),
71
+ margin: false,
72
+ onClick: t4
73
73
  }), _jsx(WidgetConfigDrawer, {
74
74
  drawerSlug,
75
75
  onSave,
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetEditControl.js","names":["c","_c","React","useId","useModal","EditIcon","useConfig","useTranslation","WidgetConfigDrawer","getWidgetSlugFromID","widgetID","slice","lastIndexOf","WidgetEditControl","t0","$","onSave","widgetData","t","openModal","widgets","t1","config","admin","dashboard","configWidgets","undefined","t2","widgetSlug","t3","widget","slug","widgetConfig","find","hasEditableFields","Boolean","fields","length","drawerID","drawerSlug","t4","_jsxs","_Fragment","children","className","onClick","type","_jsx"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/WidgetEditControl.tsx"],"sourcesContent":["'use client'\n\nimport type { Data } from 'payload'\n\nimport React, { useId } from 'react'\n\nimport { useModal } from '../../../../elements/Modal/index.js'\nimport { EditIcon } from '../../../../icons/Edit/index.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { WidgetConfigDrawer } from './WidgetConfigDrawer.js'\n\nconst getWidgetSlugFromID = (widgetID: string): string =>\n widgetID.slice(0, widgetID.lastIndexOf('-'))\n\nexport function WidgetEditControl({\n onSave,\n widgetData,\n widgetID,\n}: {\n onSave: (data: Data) => void\n widgetData?: Record<string, unknown>\n widgetID: string\n}) {\n const { t } = useTranslation()\n const { openModal } = useModal()\n const { widgets: configWidgets = [] } = useConfig().config.admin.dashboard ?? {}\n\n const widgetSlug = getWidgetSlugFromID(widgetID)\n const widgetConfig = configWidgets.find((widget) => widget.slug === widgetSlug)\n const hasEditableFields = Boolean(widgetConfig?.fields?.length)\n\n const drawerID = useId()\n const drawerSlug = `widget-editor-${drawerID}`\n\n if (!hasEditableFields) {\n return null\n }\n\n return (\n <>\n <button\n className=\"widget-wrapper__edit-btn\"\n onClick={() => {\n openModal(drawerSlug)\n }}\n type=\"button\"\n >\n <span className=\"sr-only\">\n {t('general:edit')} {widgetID}\n </span>\n <EditIcon />\n </button>\n <WidgetConfigDrawer\n drawerSlug={drawerSlug}\n onSave={onSave}\n widget={widgetConfig}\n widgetData={widgetData}\n />\n </>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,OAAOC,KAAA,IAASC,KAAK,QAAQ;AAE7B,SAASC,QAAQ,QAAQ;AACzB,SAASC,QAAQ,QAAQ;AACzB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ;AAEnC,MAAMC,mBAAA,GAAuBC,QAAA,IAC3BA,QAAA,CAASC,KAAK,CAAC,GAAGD,QAAA,CAASE,WAAW,CAAC;AAEzC,OAAO,SAAAC,kBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAd,EAAA;EAA2B;IAAAe,MAAA;IAAAC,UAAA;IAAAP;EAAA,IAAAI,EAQjC;EACC;IAAAI;EAAA,IAAcX,cAAA;EACd;IAAAY;EAAA,IAAsBf,QAAA;EACtB;IAAAgB,OAAA,EAAAC;EAAA,IAAwCf,SAAA,GAAAgB,MAAA,CAAAC,KAAA,CAAAC,SAAA,MAAuC;EAA9D,MAAAC,aAAA,GAAAJ,EAAkB,KAAAK,SAAA,QAAlBL,EAAkB;EAAA,IAAAM,EAAA;EAAA,IAAAZ,CAAA,QAAAL,QAAA;IAEhBiB,EAAA,GAAAlB,mBAAA,CAAoBC,QAAA;IAAAK,CAAA,MAAAL,QAAA;IAAAK,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAAvC,MAAAa,UAAA,GAAmBD,EAAoB;EAAA,IAAAE,EAAA;EAAA,IAAAd,CAAA,QAAAa,UAAA;IACCC,EAAA,GAAAC,MAAA,IAAYA,MAAA,CAAAC,IAAA,KAAgBH,UAAA;IAAAb,CAAA,MAAAa,UAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAApE,MAAAiB,YAAA,GAAqBP,aAAA,CAAAQ,IAAA,CAAmBJ,EAA4B;EACpE,MAAAK,iBAAA,GAA0BC,OAAA,CAAQH,YAAA,EAAAI,MAAA,EAAAC,MAAsB;EAExD,MAAAC,QAAA,GAAiBnC,KAAA;EACjB,MAAAoC,UAAA,GAAmB,iBAAiBD,QAAA,EAAU;EAAA,KAEzCJ,iBAAA;IAAA;EAAA;EAAA,IAAAM,EAAA;EAAA,IAAAzB,CAAA,QAAAwB,UAAA,IAAAxB,CAAA,QAAAI,SAAA;IAQUqB,EAAA,GAAAA,CAAA;MACPrB,SAAA,CAAUoB,UAAA;IAAA;IACZxB,CAAA,MAAAwB,UAAA;IAAAxB,CAAA,MAAAI,SAAA;IAAAJ,CAAA,MAAAyB,EAAA;EAAA;IAAAA,EAAA,GAAAzB,CAAA;EAAA;EAAA,OALJ0B,KAAA,CAAAC,SAAA;IAAAC,QAAA,GACEF,KAAA,CAAC;MAAAG,SAAA,EACW;MAAAC,OAAA,EACDL,EAET;MAAAM,IAAA,EACK;MAAAH,QAAA,GAELF,KAAA,CAAC;QAAAG,SAAA,EAAe;QAAAD,QAAA,GACbzB,CAAA,CAAE,iBAAgB,KAAER,QAAA;MAAA,C,GAEvBqC,IAAA,CAAA1C,QAAA,IAAC;IAAA,C,GAEH0C,IAAA,CAAAvC,kBAAA;MAAA+B,UAAA;MAAAvB,MAAA;MAAAc,MAAA,EAGUE,YAAA;MAAAf;IAAA,C","ignoreList":[]}
1
+ {"version":3,"file":"WidgetEditControl.js","names":["c","_c","React","useId","Button","useModal","EditIcon","useConfig","useTranslation","WidgetConfigDrawer","getWidgetSlugFromID","widgetID","slice","lastIndexOf","WidgetEditControl","t0","$","onSave","widgetData","t","openModal","widgets","t1","config","admin","dashboard","configWidgets","undefined","t2","widgetSlug","t3","widget","slug","widgetConfig","find","hasEditableFields","Boolean","fields","length","drawerID","drawerSlug","t4","_jsxs","_Fragment","children","_jsx","buttonStyle","className","icon","margin","onClick"],"sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/WidgetEditControl.tsx"],"sourcesContent":["'use client'\n\nimport type { Data } from 'payload'\n\nimport React, { useId } from 'react'\n\nimport { Button } from '../../../../elements/Button/index.js'\nimport { useModal } from '../../../../elements/Modal/index.js'\nimport { EditIcon } from '../../../../icons/Edit/index.js'\nimport { useConfig } from '../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../providers/Translation/index.js'\nimport { WidgetConfigDrawer } from './WidgetConfigDrawer.js'\n\nconst getWidgetSlugFromID = (widgetID: string): string =>\n widgetID.slice(0, widgetID.lastIndexOf('-'))\n\nexport function WidgetEditControl({\n onSave,\n widgetData,\n widgetID,\n}: {\n onSave: (data: Data) => void\n widgetData?: Record<string, unknown>\n widgetID: string\n}) {\n const { t } = useTranslation()\n const { openModal } = useModal()\n const { widgets: configWidgets = [] } = useConfig().config.admin.dashboard ?? {}\n\n const widgetSlug = getWidgetSlugFromID(widgetID)\n const widgetConfig = configWidgets.find((widget) => widget.slug === widgetSlug)\n const hasEditableFields = Boolean(widgetConfig?.fields?.length)\n\n const drawerID = useId()\n const drawerSlug = `widget-editor-${drawerID}`\n\n if (!hasEditableFields) {\n return null\n }\n\n return (\n <>\n <Button\n aria-label={`${t('general:edit')} ${widgetID}`}\n buttonStyle=\"secondary\"\n className=\"widget-wrapper__edit-btn\"\n icon={<EditIcon />}\n margin={false}\n onClick={() => {\n openModal(drawerSlug)\n }}\n />\n <WidgetConfigDrawer\n drawerSlug={drawerSlug}\n onSave={onSave}\n widget={widgetConfig}\n widgetData={widgetData}\n />\n </>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,OAAOC,KAAA,IAASC,KAAK,QAAQ;AAE7B,SAASC,MAAM,QAAQ;AACvB,SAASC,QAAQ,QAAQ;AACzB,SAASC,QAAQ,QAAQ;AACzB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ;AAEnC,MAAMC,mBAAA,GAAuBC,QAAA,IAC3BA,QAAA,CAASC,KAAK,CAAC,GAAGD,QAAA,CAASE,WAAW,CAAC;AAEzC,OAAO,SAAAC,kBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAf,EAAA;EAA2B;IAAAgB,MAAA;IAAAC,UAAA;IAAAP;EAAA,IAAAI,EAQjC;EACC;IAAAI;EAAA,IAAcX,cAAA;EACd;IAAAY;EAAA,IAAsBf,QAAA;EACtB;IAAAgB,OAAA,EAAAC;EAAA,IAAwCf,SAAA,GAAAgB,MAAA,CAAAC,KAAA,CAAAC,SAAA,MAAuC;EAA9D,MAAAC,aAAA,GAAAJ,EAAkB,KAAAK,SAAA,QAAlBL,EAAkB;EAAA,IAAAM,EAAA;EAAA,IAAAZ,CAAA,QAAAL,QAAA;IAEhBiB,EAAA,GAAAlB,mBAAA,CAAoBC,QAAA;IAAAK,CAAA,MAAAL,QAAA;IAAAK,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAAvC,MAAAa,UAAA,GAAmBD,EAAoB;EAAA,IAAAE,EAAA;EAAA,IAAAd,CAAA,QAAAa,UAAA;IACCC,EAAA,GAAAC,MAAA,IAAYA,MAAA,CAAAC,IAAA,KAAgBH,UAAA;IAAAb,CAAA,MAAAa,UAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAA,EAAA,GAAAd,CAAA;EAAA;EAApE,MAAAiB,YAAA,GAAqBP,aAAA,CAAAQ,IAAA,CAAmBJ,EAA4B;EACpE,MAAAK,iBAAA,GAA0BC,OAAA,CAAQH,YAAA,EAAAI,MAAA,EAAAC,MAAsB;EAExD,MAAAC,QAAA,GAAiBpC,KAAA;EACjB,MAAAqC,UAAA,GAAmB,iBAAiBD,QAAA,EAAU;EAAA,KAEzCJ,iBAAA;IAAA;EAAA;EAAA,IAAAM,EAAA;EAAA,IAAAzB,CAAA,QAAAwB,UAAA,IAAAxB,CAAA,QAAAI,SAAA;IAYUqB,EAAA,GAAAA,CAAA;MACPrB,SAAA,CAAUoB,UAAA;IAAA;IACZxB,CAAA,MAAAwB,UAAA;IAAAxB,CAAA,MAAAI,SAAA;IAAAJ,CAAA,MAAAyB,EAAA;EAAA;IAAAA,EAAA,GAAAzB,CAAA;EAAA;EAAA,OATJ0B,KAAA,CAAAC,SAAA;IAAAC,QAAA,GACEC,IAAA,CAAAzC,MAAA;MAAA,cACc,GAAGe,CAAA,CAAE,mBAAmBR,QAAA,EAAU;MAAAmC,WAAA,EAClC;MAAAC,SAAA,EACF;MAAAC,IAAA,EACJH,IAAA,CAAAvC,QAAA,IAAC;MAAA2C,MAAA;MAAAC,OAAA,EAEET;IAET,C,GAEFI,IAAA,CAAApC,kBAAA;MAAA+B,UAAA;MAAAvB,MAAA;MAAAc,MAAA,EAGUE,YAAA;MAAAf;IAAA,C","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIxD,OAAO,KAA4B,MAAM,OAAO,CAAA;AA6BhD,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,WAAW,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;IACrB,KAAK,EAAE,WAAW,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAA;IAC5B,MAAM,EAAE,oBAAoB,CAAA;CAC7B,GAAG,IAAI,CAAA;AAYR,wBAAgB,sBAAsB,CAAC,EACrC,YAAY,EAAE,aAAa,EAC3B,OAAO,GACR,EAAE;IACD,YAAY,EAAE,oBAAoB,EAAE,CAAA;IACpC,OAAO,EAAE,YAAY,EAAE,CAAA;CACxB,qBA6KA"}
1
+ {"version":3,"file":"index.client.d.ts","sourceRoot":"","sources":["../../../../../src/views/Dashboard/Default/ModularDashboard/index.client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIxD,OAAO,KAAuC,MAAM,OAAO,CAAA;AA6B3D,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC9B,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,WAAW,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;IACrB,KAAK,EAAE,WAAW,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAA;IAC1B,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,OAAO,GAAG,QAAQ,CAAA;IAC5B,MAAM,EAAE,oBAAoB,CAAA;CAC7B,GAAG,IAAI,CAAA;AAYR,wBAAgB,sBAAsB,CAAC,EACrC,YAAY,EAAE,aAAa,EAC3B,OAAO,GACR,EAAE;IACD,YAAY,EAAE,oBAAoB,EAAE,CAAA;IACpC,OAAO,EAAE,YAAY,EAAE,CAAA;CACxB,qBAiMA"}