@payloadcms/ui 3.2.3-canary.673b4b5 → 3.3.0

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 (342) hide show
  1. package/dist/elements/AddNewRelation/index.js +40 -40
  2. package/dist/elements/AddNewRelation/index.js.map +1 -1
  3. package/dist/elements/AddNewRelation/useRelatedCollections.js +3 -3
  4. package/dist/elements/AddNewRelation/useRelatedCollections.js.map +1 -1
  5. package/dist/elements/AnimateHeight/index.d.ts.map +1 -1
  6. package/dist/elements/AnimateHeight/index.js +4 -1
  7. package/dist/elements/AnimateHeight/index.js.map +1 -1
  8. package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts +2 -1
  9. package/dist/elements/AnimateHeight/usePatchAnimateHeight.d.ts.map +1 -1
  10. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js +67 -79
  11. package/dist/elements/AnimateHeight/usePatchAnimateHeight.js.map +1 -1
  12. package/dist/elements/ArrayAction/index.js +10 -10
  13. package/dist/elements/ArrayAction/index.js.map +1 -1
  14. package/dist/elements/BulkUpload/ActionsBar/index.js +13 -13
  15. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  16. package/dist/elements/BulkUpload/AddingFilesView/index.js +14 -14
  17. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  18. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +4 -4
  19. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  20. package/dist/elements/BulkUpload/DrawerCloseButton/index.js +3 -3
  21. package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -1
  22. package/dist/elements/BulkUpload/FileSidebar/index.js +29 -26
  23. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  24. package/dist/elements/BulkUpload/FormsManager/index.js +2 -0
  25. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  26. package/dist/elements/BulkUpload/index.js +8 -8
  27. package/dist/elements/BulkUpload/index.js.map +1 -1
  28. package/dist/elements/CodeEditor/CodeEditor.js +28 -32
  29. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  30. package/dist/elements/Collapsible/index.js +13 -13
  31. package/dist/elements/Collapsible/index.js.map +1 -1
  32. package/dist/elements/ColumnSelector/index.js +10 -10
  33. package/dist/elements/ColumnSelector/index.js.map +1 -1
  34. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  35. package/dist/elements/DatePicker/DatePicker.js +4 -4
  36. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  37. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  38. package/dist/elements/DeleteMany/index.js +10 -14
  39. package/dist/elements/DeleteMany/index.js.map +1 -1
  40. package/dist/elements/DocumentControls/index.js +9 -9
  41. package/dist/elements/DocumentControls/index.js.map +1 -1
  42. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +4 -4
  43. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  44. package/dist/elements/DocumentDrawer/index.js +47 -47
  45. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  46. package/dist/elements/DocumentLocked/index.js +21 -21
  47. package/dist/elements/DocumentLocked/index.js.map +1 -1
  48. package/dist/elements/DocumentTakeOver/index.js +10 -10
  49. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  50. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +9 -9
  51. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  52. package/dist/elements/DraggableSortable/index.js +11 -11
  53. package/dist/elements/DraggableSortable/index.js.map +1 -1
  54. package/dist/elements/DraggableSortable/useDraggableSortable/index.js +8 -8
  55. package/dist/elements/DraggableSortable/useDraggableSortable/index.js.map +1 -1
  56. package/dist/elements/Drawer/index.js +38 -38
  57. package/dist/elements/Drawer/index.js.map +1 -1
  58. package/dist/elements/Drawer/useDrawerSlug.js +3 -3
  59. package/dist/elements/Drawer/useDrawerSlug.js.map +1 -1
  60. package/dist/elements/EditMany/index.d.ts.map +1 -1
  61. package/dist/elements/EditMany/index.js +32 -33
  62. package/dist/elements/EditMany/index.js.map +1 -1
  63. package/dist/elements/FieldSelect/index.js +17 -16
  64. package/dist/elements/FieldSelect/index.js.map +1 -1
  65. package/dist/elements/FileDetails/DraggableFileDetails/index.js +15 -15
  66. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  67. package/dist/elements/FileDetails/FileMeta/index.js +15 -15
  68. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  69. package/dist/elements/FullscreenModal/index.js +4 -4
  70. package/dist/elements/FullscreenModal/index.js.map +1 -1
  71. package/dist/elements/Hamburger/index.js +4 -4
  72. package/dist/elements/Hamburger/index.js.map +1 -1
  73. package/dist/elements/HydrateAuthProvider/index.js +3 -3
  74. package/dist/elements/HydrateAuthProvider/index.js.map +1 -1
  75. package/dist/elements/LeaveWithoutSaving/index.js +11 -11
  76. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  77. package/dist/elements/ListDrawer/index.js +19 -18
  78. package/dist/elements/ListDrawer/index.js.map +1 -1
  79. package/dist/elements/ListSelection/index.js +3 -3
  80. package/dist/elements/ListSelection/index.js.map +1 -1
  81. package/dist/elements/Loading/index.js +15 -15
  82. package/dist/elements/Loading/index.js.map +1 -1
  83. package/dist/elements/LoadingOverlay/index.js +18 -16
  84. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  85. package/dist/elements/Localizer/LocalizerLabel/index.js +5 -5
  86. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  87. package/dist/elements/Localizer/index.d.ts.map +1 -1
  88. package/dist/elements/Localizer/index.js +20 -19
  89. package/dist/elements/Localizer/index.js.map +1 -1
  90. package/dist/elements/Locked/index.js +3 -3
  91. package/dist/elements/Locked/index.js.map +1 -1
  92. package/dist/elements/Logout/index.js +7 -7
  93. package/dist/elements/Logout/index.js.map +1 -1
  94. package/dist/elements/Nav/NavToggler/index.js +13 -13
  95. package/dist/elements/Nav/NavToggler/index.js.map +1 -1
  96. package/dist/elements/NavGroup/index.js +12 -12
  97. package/dist/elements/NavGroup/index.js.map +1 -1
  98. package/dist/elements/PerPage/index.js +7 -7
  99. package/dist/elements/PerPage/index.js.map +1 -1
  100. package/dist/elements/Pill/index.js +8 -8
  101. package/dist/elements/Pill/index.js.map +1 -1
  102. package/dist/elements/Popup/index.js +1 -0
  103. package/dist/elements/Popup/index.js.map +1 -1
  104. package/dist/elements/PreviewButton/index.js +3 -3
  105. package/dist/elements/PreviewButton/index.js.map +1 -1
  106. package/dist/elements/PublishButton/index.js +28 -28
  107. package/dist/elements/PublishButton/index.js.map +1 -1
  108. package/dist/elements/PublishMany/index.d.ts.map +1 -1
  109. package/dist/elements/PublishMany/index.js +10 -10
  110. package/dist/elements/PublishMany/index.js.map +1 -1
  111. package/dist/elements/ReactSelect/Input/index.d.ts +2 -2
  112. package/dist/elements/ReactSelect/Input/index.d.ts.map +1 -1
  113. package/dist/elements/ReactSelect/Input/index.js.map +1 -1
  114. package/dist/elements/ReactSelect/MultiValue/index.js +10 -10
  115. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  116. package/dist/elements/ReactSelect/MultiValueRemove/index.js +5 -5
  117. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  118. package/dist/elements/ReactSelect/index.js.map +1 -1
  119. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +4 -4
  120. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  121. package/dist/elements/RelationshipTable/index.js +278 -142
  122. package/dist/elements/RelationshipTable/index.js.map +1 -1
  123. package/dist/elements/RenderIfInViewport/index.js +3 -3
  124. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  125. package/dist/elements/RenderTitle/index.js +6 -6
  126. package/dist/elements/RenderTitle/index.js.map +1 -1
  127. package/dist/elements/SelectAll/index.js +3 -3
  128. package/dist/elements/SelectAll/index.js.map +1 -1
  129. package/dist/elements/SelectRow/index.js +6 -6
  130. package/dist/elements/SelectRow/index.js.map +1 -1
  131. package/dist/elements/ShimmerEffect/index.js +7 -7
  132. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  133. package/dist/elements/SortColumn/index.js +16 -16
  134. package/dist/elements/SortColumn/index.js.map +1 -1
  135. package/dist/elements/SortComplex/index.d.ts.map +1 -1
  136. package/dist/elements/SortComplex/index.js +38 -51
  137. package/dist/elements/SortComplex/index.js.map +1 -1
  138. package/dist/elements/Status/index.js +38 -35
  139. package/dist/elements/Status/index.js.map +1 -1
  140. package/dist/elements/StayLoggedIn/index.js +12 -12
  141. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  142. package/dist/elements/StepNav/SetStepNav.js +3 -3
  143. package/dist/elements/StepNav/SetStepNav.js.map +1 -1
  144. package/dist/elements/StepNav/context.js +3 -3
  145. package/dist/elements/StepNav/context.js.map +1 -1
  146. package/dist/elements/StepNav/index.js +9 -9
  147. package/dist/elements/StepNav/index.js.map +1 -1
  148. package/dist/elements/Table/DefaultCell/fields/Date/index.js +3 -3
  149. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  150. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +31 -31
  151. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  152. package/dist/elements/Table/DefaultCell/fields/Select/index.js +3 -3
  153. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  154. package/dist/elements/Table/DefaultCell/index.js +15 -15
  155. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  156. package/dist/elements/Table/RelationshipProvider/index.js +12 -9
  157. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  158. package/dist/elements/TableColumns/RenderDefaultCell/index.js +6 -6
  159. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
  160. package/dist/elements/Thumbnail/index.js +27 -27
  161. package/dist/elements/Thumbnail/index.js.map +1 -1
  162. package/dist/elements/ThumbnailCard/index.js +10 -10
  163. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  164. package/dist/elements/Tooltip/index.js +29 -24
  165. package/dist/elements/Tooltip/index.js.map +1 -1
  166. package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
  167. package/dist/elements/UnpublishMany/index.js +11 -11
  168. package/dist/elements/UnpublishMany/index.js.map +1 -1
  169. package/dist/elements/Upload/index.js +5 -5
  170. package/dist/elements/Upload/index.js.map +1 -1
  171. package/dist/elements/WhereBuilder/Condition/Number/index.js +3 -3
  172. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  173. package/dist/elements/WhereBuilder/Condition/Select/index.js +13 -10
  174. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  175. package/dist/elements/WhereBuilder/Condition/Text/index.js +5 -5
  176. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  177. package/dist/elements/WhereBuilder/Condition/index.js +45 -45
  178. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  179. package/dist/elements/WhereBuilder/index.js +11 -11
  180. package/dist/elements/WhereBuilder/index.js.map +1 -1
  181. package/dist/exports/client/{DatePicker-QST7QHAX.js → CodeEditor-RZ32B2QF.js} +2 -2
  182. package/dist/exports/client/DatePicker-QW5V4BQV.js +14 -0
  183. package/dist/exports/client/DatePicker-QW5V4BQV.js.map +8 -0
  184. package/dist/exports/client/chunk-CKHKQPOO.js +26 -0
  185. package/dist/exports/client/{CodeEditor-5MCGR4GL.js.map → chunk-CKHKQPOO.js.map} +4 -4
  186. package/dist/exports/client/chunk-KZPVHMBR.js +29 -0
  187. package/dist/exports/client/chunk-KZPVHMBR.js.map +8 -0
  188. package/dist/exports/client/index.d.ts +4 -1
  189. package/dist/exports/client/index.d.ts.map +1 -1
  190. package/dist/exports/client/index.js +16 -16
  191. package/dist/exports/client/index.js.map +4 -4
  192. package/dist/fields/Array/ArrayRow.js +38 -38
  193. package/dist/fields/Array/ArrayRow.js.map +1 -1
  194. package/dist/fields/Array/index.d.ts.map +1 -1
  195. package/dist/fields/Array/index.js +27 -25
  196. package/dist/fields/Array/index.js.map +1 -1
  197. package/dist/fields/Blocks/BlockRow.js +51 -49
  198. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  199. package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.js +3 -3
  200. package/dist/fields/Blocks/BlocksDrawer/BlockSearch/index.js.map +1 -1
  201. package/dist/fields/Blocks/BlocksDrawer/index.js +13 -13
  202. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  203. package/dist/fields/Blocks/RowActions.js +25 -25
  204. package/dist/fields/Blocks/RowActions.js.map +1 -1
  205. package/dist/fields/Blocks/SectionTitle/index.js +8 -8
  206. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  207. package/dist/fields/Blocks/index.d.ts.map +1 -1
  208. package/dist/fields/Blocks/index.js +26 -24
  209. package/dist/fields/Blocks/index.js.map +1 -1
  210. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  211. package/dist/fields/Collapsible/index.js +4 -2
  212. package/dist/fields/Collapsible/index.js.map +1 -1
  213. package/dist/fields/ConfirmPassword/index.js +6 -6
  214. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  215. package/dist/fields/FieldLabel/index.js +18 -18
  216. package/dist/fields/FieldLabel/index.js.map +1 -1
  217. package/dist/fields/Group/index.d.ts.map +1 -1
  218. package/dist/fields/Group/index.js +6 -4
  219. package/dist/fields/Group/index.js.map +1 -1
  220. package/dist/fields/Hidden/index.js +7 -7
  221. package/dist/fields/Hidden/index.js.map +1 -1
  222. package/dist/fields/Number/index.js +5 -5
  223. package/dist/fields/Number/index.js.map +1 -1
  224. package/dist/fields/Password/input.js +24 -24
  225. package/dist/fields/Password/input.js.map +1 -1
  226. package/dist/fields/RadioGroup/Radio/index.js +9 -9
  227. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  228. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  229. package/dist/fields/RadioGroup/index.js +4 -2
  230. package/dist/fields/RadioGroup/index.js.map +1 -1
  231. package/dist/fields/Relationship/index.d.ts.map +1 -1
  232. package/dist/fields/Relationship/index.js +4 -2
  233. package/dist/fields/Relationship/index.js.map +1 -1
  234. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +18 -18
  235. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  236. package/dist/fields/Relationship/select-components/SingleValue/index.js +18 -18
  237. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  238. package/dist/fields/Select/Input.js +28 -28
  239. package/dist/fields/Select/Input.js.map +1 -1
  240. package/dist/fields/Tabs/Tab/index.js +10 -10
  241. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  242. package/dist/fields/Tabs/index.js +69 -69
  243. package/dist/fields/Tabs/index.js.map +1 -1
  244. package/dist/fields/Text/Input.js +24 -24
  245. package/dist/fields/Text/Input.js.map +1 -1
  246. package/dist/fields/Textarea/Input.js +19 -19
  247. package/dist/fields/Textarea/Input.js.map +1 -1
  248. package/dist/fields/Upload/HasMany/index.js +11 -11
  249. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  250. package/dist/fields/Upload/Input.js +109 -104
  251. package/dist/fields/Upload/Input.js.map +1 -1
  252. package/dist/fields/Upload/RelationshipContent/index.js +20 -20
  253. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  254. package/dist/forms/NullifyField/index.js +3 -3
  255. package/dist/forms/NullifyField/index.js.map +1 -1
  256. package/dist/forms/RenderFields/RenderField.js +9 -9
  257. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  258. package/dist/forms/RenderFields/index.js +16 -16
  259. package/dist/forms/RenderFields/index.js.map +1 -1
  260. package/dist/forms/WatchChildErrors/index.js +10 -10
  261. package/dist/forms/WatchChildErrors/index.js.map +1 -1
  262. package/dist/forms/useField/index.js +44 -44
  263. package/dist/forms/useField/index.js.map +1 -1
  264. package/dist/hooks/useDebounce.js +3 -3
  265. package/dist/hooks/useDebounce.js.map +1 -1
  266. package/dist/hooks/useDebouncedEffect.js +6 -6
  267. package/dist/hooks/useDebouncedEffect.js.map +1 -1
  268. package/dist/hooks/useDelay.js +3 -3
  269. package/dist/hooks/useDelay.js.map +1 -1
  270. package/dist/hooks/useHotkey.js +18 -14
  271. package/dist/hooks/useHotkey.js.map +1 -1
  272. package/dist/hooks/usePayloadAPI.js +13 -13
  273. package/dist/hooks/usePayloadAPI.js.map +1 -1
  274. package/dist/hooks/useThrottledEffect.js +3 -3
  275. package/dist/hooks/useThrottledEffect.js.map +1 -1
  276. package/dist/providers/Actions/index.js +4 -4
  277. package/dist/providers/Actions/index.js.map +1 -1
  278. package/dist/providers/ClientFunction/index.js +3 -3
  279. package/dist/providers/ClientFunction/index.js.map +1 -1
  280. package/dist/providers/Config/index.js +9 -10
  281. package/dist/providers/Config/index.js.map +1 -1
  282. package/dist/providers/DocumentEvents/index.js +3 -3
  283. package/dist/providers/DocumentEvents/index.js.map +1 -1
  284. package/dist/providers/EditDepth/index.js +3 -3
  285. package/dist/providers/EditDepth/index.js.map +1 -1
  286. package/dist/providers/EntityVisibility/index.js +9 -10
  287. package/dist/providers/EntityVisibility/index.js.map +1 -1
  288. package/dist/providers/ListQuery/index.js +2 -2
  289. package/dist/providers/ListQuery/index.js.map +1 -1
  290. package/dist/providers/Locale/index.d.ts.map +1 -1
  291. package/dist/providers/Locale/index.js +65 -59
  292. package/dist/providers/Locale/index.js.map +1 -1
  293. package/dist/providers/Params/index.d.ts +16 -0
  294. package/dist/providers/Params/index.d.ts.map +1 -1
  295. package/dist/providers/Params/index.js +19 -4
  296. package/dist/providers/Params/index.js.map +1 -1
  297. package/dist/providers/RouteCache/index.js +6 -6
  298. package/dist/providers/RouteCache/index.js.map +1 -1
  299. package/dist/providers/SearchParams/index.d.ts +22 -4
  300. package/dist/providers/SearchParams/index.d.ts.map +1 -1
  301. package/dist/providers/SearchParams/index.js +28 -14
  302. package/dist/providers/SearchParams/index.js.map +1 -1
  303. package/dist/providers/Selection/index.d.ts.map +1 -1
  304. package/dist/providers/Selection/index.js +7 -8
  305. package/dist/providers/Selection/index.js.map +1 -1
  306. package/dist/providers/Theme/index.js +7 -7
  307. package/dist/providers/Theme/index.js.map +1 -1
  308. package/dist/providers/Translation/index.js +12 -12
  309. package/dist/providers/Translation/index.js.map +1 -1
  310. package/dist/providers/UploadEdits/index.js +3 -3
  311. package/dist/providers/UploadEdits/index.js.map +1 -1
  312. package/dist/styles.css +1 -1
  313. package/dist/utilities/buildClientFieldSchemaMap/index.js +2 -0
  314. package/dist/utilities/buildClientFieldSchemaMap/index.js.map +1 -1
  315. package/dist/utilities/buildFieldSchemaMap/index.js +2 -0
  316. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
  317. package/dist/utilities/groupNavItems.js +3 -3
  318. package/dist/utilities/groupNavItems.js.map +1 -1
  319. package/dist/utilities/parseSearchParams.d.ts +4 -0
  320. package/dist/utilities/parseSearchParams.d.ts.map +1 -0
  321. package/dist/utilities/parseSearchParams.js +9 -0
  322. package/dist/utilities/parseSearchParams.js.map +1 -0
  323. package/dist/views/Edit/Auth/index.js +47 -47
  324. package/dist/views/Edit/Auth/index.js.map +1 -1
  325. package/dist/views/Edit/Auth/types.d.ts +1 -1
  326. package/dist/views/Edit/Auth/types.d.ts.map +1 -1
  327. package/dist/views/Edit/Auth/types.js.map +1 -1
  328. package/dist/views/Edit/SetDocumentStepNav/index.js +14 -14
  329. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  330. package/dist/views/Edit/SetDocumentTitle/index.js +5 -5
  331. package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
  332. package/dist/views/Edit/index.js +1 -1
  333. package/dist/views/Edit/index.js.map +1 -1
  334. package/dist/views/List/index.js +20 -24
  335. package/dist/views/List/index.js.map +1 -1
  336. package/package.json +16 -17
  337. package/dist/exports/client/CodeEditor-5MCGR4GL.js +0 -26
  338. package/dist/exports/client/chunk-4SO5UCQD.js +0 -14
  339. package/dist/exports/client/chunk-4SO5UCQD.js.map +0 -8
  340. package/dist/exports/client/chunk-5LUHGAPX.js +0 -30
  341. package/dist/exports/client/chunk-5LUHGAPX.js.map +0 -8
  342. /package/dist/exports/client/{DatePicker-QST7QHAX.js.map → CodeEditor-RZ32B2QF.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useThrottledEffect","useAllFormFields","useFormSubmitted","buildPathSegments","getFieldStateFromPaths","WatchChildErrors","t0","$","fields","path","setErrorCount","formState","hasSubmitted","t1","pathSegments","t2","errorCount","t3"],"sources":["../../../src/forms/WatchChildErrors/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField } from 'payload'\nimport type React from 'react'\n\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAllFormFields, useFormSubmitted } from '../Form/context.js'\nimport { buildPathSegments } from './buildPathSegments.js'\nimport { getFieldStateFromPaths } from './getFieldStateFromPaths.js'\n\ntype TrackSubSchemaErrorCountProps = {\n fields?: ClientField[]\n path: (number | string)[]\n setErrorCount: (count: number) => void\n}\n\nexport const WatchChildErrors: React.FC<TrackSubSchemaErrorCountProps> = ({\n fields,\n path,\n setErrorCount,\n}) => {\n const [formState] = useAllFormFields()\n const hasSubmitted = useFormSubmitted()\n\n const pathSegments = buildPathSegments(path, fields)\n\n useThrottledEffect(\n () => {\n if (hasSubmitted) {\n const { errorCount } = getFieldStateFromPaths({ formState, pathSegments })\n setErrorCount(errorCount)\n }\n },\n 250,\n [formState, hasSubmitted, fields],\n )\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,kBAAkB,QAAQ;AACnC,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ;AACnD,SAASC,iBAAiB,QAAQ;AAClC,SAASC,sBAAsB,QAAQ;AAQvC,OAAO,MAAMC,gBAAA,GAA4DC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAC;IAAAS,MAAA;IAAAC,IAAA;IAAAC;EAAA,IAAAJ,EAIzE;EACC,OAAAK,SAAA,IAAoBV,gBAAA;EACpB,MAAAW,YAAA,GAAqBV,gBAAA;EAAA,IAAAW,EAAA;EAAA,IAAAN,CAAA,QAAAE,IAAA,IAAAF,CAAA,QAAAC,MAAA;IAEAK,EAAA,GAAAV,iBAAA,CAAkBM,IAAA,EAAMD,MAAA;IAAAD,CAAA,MAAAE,IAAA;IAAAF,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAA7C,MAAAO,YAAA,GAAqBD,EAAwB;EAAA,IAAAE,EAAA;EAAA,IAAAR,CAAA,QAAAK,YAAA,IAAAL,CAAA,QAAAI,SAAA,IAAAJ,CAAA,QAAAO,YAAA,IAAAP,CAAA,QAAAG,aAAA;IAG3CK,EAAA,GAAAA,CAAA;MAAA,IACMH,YAAA;QACF;UAAAI;QAAA,IAAuBZ,sBAAA;UAAAO,SAAA;UAAAG;QAAA,CAAiD;QACxEJ,aAAA,CAAcM,UAAA;MAAA;IAAA;IAElBT,CAAA,MAAAK,YAAA;IAAAL,CAAA,MAAAI,SAAA;IAAAJ,CAAA,MAAAO,YAAA;IAAAP,CAAA,MAAAG,aAAA;IAAAH,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAAA,IAAAU,EAAA;EAAA,IAAAV,CAAA,QAAAI,SAAA,IAAAJ,CAAA,QAAAK,YAAA,IAAAL,CAAA,SAAAC,MAAA;IAEAS,EAAA,IAACN,SAAA,EAAWC,YAAA,EAAcJ,MAAA;IAAOD,CAAA,MAAAI,SAAA;IAAAJ,CAAA,MAAAK,YAAA;IAAAL,CAAA,OAAAC,MAAA;IAAAD,CAAA,OAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EARnCP,kBAAA,CACEe,EAKA,OAEAE,EAAiC;EAAA;AAAA,CAIrC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useThrottledEffect","useAllFormFields","useFormSubmitted","buildPathSegments","getFieldStateFromPaths","WatchChildErrors","t0","$","fields","path","setErrorCount","formState","hasSubmitted","t1","pathSegments","t2","errorCount","t3"],"sources":["../../../src/forms/WatchChildErrors/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientField } from 'payload'\nimport type React from 'react'\n\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAllFormFields, useFormSubmitted } from '../Form/context.js'\nimport { buildPathSegments } from './buildPathSegments.js'\nimport { getFieldStateFromPaths } from './getFieldStateFromPaths.js'\n\ntype TrackSubSchemaErrorCountProps = {\n fields?: ClientField[]\n path: (number | string)[]\n setErrorCount: (count: number) => void\n}\n\nexport const WatchChildErrors: React.FC<TrackSubSchemaErrorCountProps> = ({\n fields,\n path,\n setErrorCount,\n}) => {\n const [formState] = useAllFormFields()\n const hasSubmitted = useFormSubmitted()\n\n const pathSegments = buildPathSegments(path, fields)\n\n useThrottledEffect(\n () => {\n if (hasSubmitted) {\n const { errorCount } = getFieldStateFromPaths({ formState, pathSegments })\n setErrorCount(errorCount)\n }\n },\n 250,\n [formState, hasSubmitted, fields],\n )\n\n return null\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAIA,SAASC,kBAAkB,QAAQ;AACnC,SAASC,gBAAgB,EAAEC,gBAAgB,QAAQ;AACnD,SAASC,iBAAiB,QAAQ;AAClC,SAASC,sBAAsB,QAAQ;AAQvC,OAAO,MAAMC,gBAAA,GAA4DC,EAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EAAC;IAAAS,MAAA;IAAAC,IAAA;IAAAC;EAAA,IAAAJ,EAIzE;EACC,OAAAK,SAAA,IAAoBV,gBAAA;EACpB,MAAAW,YAAA,GAAqBV,gBAAA;EAAA,IAAAW,EAAA;EAAA,IAAAN,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAE,IAAA;IAEAI,EAAA,GAAAV,iBAAA,CAAkBM,IAAA,EAAMD,MAAA;IAAAD,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAE,IAAA;IAAAF,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAA7C,MAAAO,YAAA,GAAqBD,EAAwB;EAAA,IAAAE,EAAA;EAAA,IAAAR,CAAA,QAAAI,SAAA,IAAAJ,CAAA,QAAAK,YAAA,IAAAL,CAAA,QAAAO,YAAA,IAAAP,CAAA,QAAAG,aAAA;IAG3CK,EAAA,GAAAA,CAAA;MAAA,IACMH,YAAA;QACF;UAAAI;QAAA,IAAuBZ,sBAAA;UAAAO,SAAA;UAAAG;QAAA,CAAiD;QACxEJ,aAAA,CAAcM,UAAA;MAAA;IAAA;IAElBT,CAAA,MAAAI,SAAA;IAAAJ,CAAA,MAAAK,YAAA;IAAAL,CAAA,MAAAO,YAAA;IAAAP,CAAA,MAAAG,aAAA;IAAAH,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAAA,IAAAU,EAAA;EAAA,IAAAV,CAAA,QAAAC,MAAA,IAAAD,CAAA,QAAAI,SAAA,IAAAJ,CAAA,SAAAK,YAAA;IAEAK,EAAA,IAACN,SAAA,EAAWC,YAAA,EAAcJ,MAAA;IAAOD,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAI,SAAA;IAAAJ,CAAA,OAAAK,YAAA;IAAAL,CAAA,OAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EARnCP,kBAAA,CACEe,EAKA,OAEAE,EAAiC;EAAA;AAAA,CAIrC","ignoreList":[]}
@@ -73,7 +73,7 @@ export const useField = options => {
73
73
  const prevValid = useRef(valid);
74
74
  const prevErrorMessage = useRef(field?.errorMessage);
75
75
  let t2;
76
- if ($[2] !== dispatchField || $[3] !== disableFormData || $[4] !== hasRows || $[5] !== path || $[6] !== setModified || $[7] !== modified) {
76
+ if ($[2] !== disableFormData || $[3] !== dispatchField || $[4] !== hasRows || $[5] !== modified || $[6] !== path || $[7] !== setModified) {
77
77
  t2 = (e, t3) => {
78
78
  const disableModifyingForm = t3 === undefined ? false : t3;
79
79
  const val = e && e.target ? e.target.value : e;
@@ -93,12 +93,12 @@ export const useField = options => {
93
93
  }
94
94
  }
95
95
  };
96
- $[2] = dispatchField;
97
- $[3] = disableFormData;
96
+ $[2] = disableFormData;
97
+ $[3] = dispatchField;
98
98
  $[4] = hasRows;
99
- $[5] = path;
100
- $[6] = setModified;
101
- $[7] = modified;
99
+ $[5] = modified;
100
+ $[6] = path;
101
+ $[7] = setModified;
102
102
  $[8] = t2;
103
103
  } else {
104
104
  t2 = $[8];
@@ -123,7 +123,7 @@ export const useField = options => {
123
123
  const t7 = field?.rows;
124
124
  const t8 = field?.valid;
125
125
  let t9;
126
- if ($[11] !== t4 || $[12] !== t5 || $[13] !== t6 || $[14] !== filterOptions || $[15] !== initializing || $[16] !== processing || $[17] !== submitted || $[18] !== initialValue || $[19] !== path || $[20] !== t7 || $[21] !== setValue || $[22] !== showError || $[23] !== t8 || $[24] !== value) {
126
+ if ($[11] !== filterOptions || $[12] !== initialValue || $[13] !== initializing || $[14] !== path || $[15] !== processing || $[16] !== setValue || $[17] !== showError || $[18] !== submitted || $[19] !== t4 || $[20] !== t5 || $[21] !== t6 || $[22] !== t7 || $[23] !== t8 || $[24] !== value) {
127
127
  t9 = {
128
128
  customComponents: t4,
129
129
  errorMessage: t5,
@@ -140,18 +140,18 @@ export const useField = options => {
140
140
  valid: t8,
141
141
  value
142
142
  };
143
- $[11] = t4;
144
- $[12] = t5;
145
- $[13] = t6;
146
- $[14] = filterOptions;
147
- $[15] = initializing;
148
- $[16] = processing;
149
- $[17] = submitted;
150
- $[18] = initialValue;
151
- $[19] = path;
152
- $[20] = t7;
153
- $[21] = setValue;
154
- $[22] = showError;
143
+ $[11] = filterOptions;
144
+ $[12] = initialValue;
145
+ $[13] = initializing;
146
+ $[14] = path;
147
+ $[15] = processing;
148
+ $[16] = setValue;
149
+ $[17] = showError;
150
+ $[18] = submitted;
151
+ $[19] = t4;
152
+ $[20] = t5;
153
+ $[21] = t6;
154
+ $[22] = t7;
155
155
  $[23] = t8;
156
156
  $[24] = value;
157
157
  $[25] = t9;
@@ -161,7 +161,7 @@ export const useField = options => {
161
161
  t3 = t9;
162
162
  const result = t3;
163
163
  let t10;
164
- if ($[26] !== value || $[27] !== field || $[28] !== getDataByPath || $[29] !== path || $[30] !== validate || $[31] !== id || $[32] !== collectionSlug || $[33] !== getData || $[34] !== operation || $[35] !== config || $[36] !== t || $[37] !== user || $[38] !== getSiblingData || $[39] !== disableFormData || $[40] !== hasRows || $[41] !== dispatchField) {
164
+ if ($[26] !== collectionSlug || $[27] !== config || $[28] !== disableFormData || $[29] !== dispatchField || $[30] !== field || $[31] !== getData || $[32] !== getDataByPath || $[33] !== getSiblingData || $[34] !== hasRows || $[35] !== id || $[36] !== operation || $[37] !== path || $[38] !== t || $[39] !== user || $[40] !== validate || $[41] !== value) {
165
165
  t10 = () => {
166
166
  const validateField = async () => {
167
167
  let valueToValidate = value;
@@ -216,43 +216,43 @@ export const useField = options => {
216
216
  };
217
217
  validateField();
218
218
  };
219
- $[26] = value;
220
- $[27] = field;
221
- $[28] = getDataByPath;
222
- $[29] = path;
223
- $[30] = validate;
224
- $[31] = id;
225
- $[32] = collectionSlug;
226
- $[33] = getData;
227
- $[34] = operation;
228
- $[35] = config;
229
- $[36] = t;
230
- $[37] = user;
231
- $[38] = getSiblingData;
232
- $[39] = disableFormData;
233
- $[40] = hasRows;
234
- $[41] = dispatchField;
219
+ $[26] = collectionSlug;
220
+ $[27] = config;
221
+ $[28] = disableFormData;
222
+ $[29] = dispatchField;
223
+ $[30] = field;
224
+ $[31] = getData;
225
+ $[32] = getDataByPath;
226
+ $[33] = getSiblingData;
227
+ $[34] = hasRows;
228
+ $[35] = id;
229
+ $[36] = operation;
230
+ $[37] = path;
231
+ $[38] = t;
232
+ $[39] = user;
233
+ $[40] = validate;
234
+ $[41] = value;
235
235
  $[42] = t10;
236
236
  } else {
237
237
  t10 = $[42];
238
238
  }
239
239
  const t11 = field?.rows;
240
240
  let t12;
241
- if ($[43] !== value || $[44] !== disableFormData || $[45] !== dispatchField || $[46] !== getData || $[47] !== getSiblingData || $[48] !== getDataByPath || $[49] !== id || $[50] !== operation || $[51] !== path || $[52] !== user || $[53] !== validate || $[54] !== t11 || $[55] !== collectionSlug) {
241
+ if ($[43] !== collectionSlug || $[44] !== disableFormData || $[45] !== dispatchField || $[46] !== getData || $[47] !== getDataByPath || $[48] !== getSiblingData || $[49] !== id || $[50] !== operation || $[51] !== path || $[52] !== t11 || $[53] !== user || $[54] !== validate || $[55] !== value) {
242
242
  t12 = [value, disableFormData, dispatchField, getData, getSiblingData, getDataByPath, id, operation, path, user, validate, t11, collectionSlug];
243
- $[43] = value;
243
+ $[43] = collectionSlug;
244
244
  $[44] = disableFormData;
245
245
  $[45] = dispatchField;
246
246
  $[46] = getData;
247
- $[47] = getSiblingData;
248
- $[48] = getDataByPath;
247
+ $[47] = getDataByPath;
248
+ $[48] = getSiblingData;
249
249
  $[49] = id;
250
250
  $[50] = operation;
251
251
  $[51] = path;
252
- $[52] = user;
253
- $[53] = validate;
254
- $[54] = t11;
255
- $[55] = collectionSlug;
252
+ $[52] = t11;
253
+ $[53] = user;
254
+ $[54] = validate;
255
+ $[55] = value;
256
256
  $[56] = t12;
257
257
  } else {
258
258
  t12 = $[56];
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","useCallback","useMemo","useRef","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useOperation","useTranslation","useForm","useFormFields","useFormInitializing","useFormModified","useFormProcessing","useFormSubmitted","useField","options","$","disableFormData","t0","hasRows","path","validate","undefined","submitted","processing","initializing","user","id","collectionSlug","operation","t1","t2","fields","dispatch","dispatchField","field","t","config","getData","getDataByPath","getSiblingData","setModified","modified","filterOptions","value","initialValue","valid","showError","prevValid","prevErrorMessage","errorMessage","e","t3","disableModifyingForm","val","target","type","setTimeout","setValue","rows","errorPaths","customComponents","t4","t5","t6","t7","t8","t9","formInitializing","formProcessing","formSubmitted","result","t10","validateField","valueToValidate","Array","isArray","current","valid_0","isValid","data","preferences","req","payload","siblingData","update","t11","t12"],"sources":["../../../src/forms/useField/index.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest } from 'payload'\n\nimport { useCallback, useMemo, useRef } from 'react'\n\nimport type { UPDATE } from '../Form/types.js'\nimport type { FieldType, Options } from './types.js'\n\nexport type { FieldType, Options }\n\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport {\n useForm,\n useFormFields,\n useFormInitializing,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n} from '../Form/context.js'\n\n/**\n * Get and set the value of a form field.\n *\n * @see https://payloadcms.com/docs/admin/hooks#usefield\n */\nexport const useField = <TValue,>(options: Options): FieldType<TValue> => {\n const { disableFormData = false, hasRows, path, validate } = options\n\n const submitted = useFormSubmitted()\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n const { user } = useAuth()\n const { id, collectionSlug } = useDocumentInfo()\n const operation = useOperation()\n\n const { dispatchField, field } = useFormFields(([fields, dispatch]) => ({\n dispatchField: dispatch,\n field: (fields && fields?.[path]) || null,\n }))\n\n const { t } = useTranslation()\n const { config } = useConfig()\n\n const { getData, getDataByPath, getSiblingData, setModified } = useForm()\n const modified = useFormModified()\n\n const filterOptions = field?.filterOptions\n const value = field?.value as TValue\n const initialValue = field?.initialValue as TValue\n const valid = typeof field?.valid === 'boolean' ? field.valid : true\n const showError = valid === false && submitted\n\n const prevValid = useRef(valid)\n const prevErrorMessage = useRef(field?.errorMessage)\n\n // Method to return from `useField`, used to\n // update field values from field component(s)\n const setValue = useCallback(\n (e, disableModifyingForm = false) => {\n const val = e && e.target ? e.target.value : e\n dispatchField({\n type: 'UPDATE',\n disableFormData: disableFormData || (hasRows && val > 0),\n path,\n value: val,\n })\n\n if (!disableModifyingForm) {\n if (typeof setModified === 'function') {\n // Only update setModified to true if the form is not already set to modified. Otherwise the following could happen:\n // 1. Text field: someone types in it in an unmodified form\n // 2. After setTimeout triggers setModified(true): form is set to modified. Save Button becomes available. Good!\n // 3. Type something in text field\n // 4. Click on save button before setTimeout in useField has finished (so setModified(true) has not been run yet)\n // 5. Form is saved, setModified(false) is set in the Form/index.tsx `submit` function, \"saved successfully\" toast appears\n // 6. setModified(true) inside the timeout is run, form is set to modified again, even though it was already saved and thus set to unmodified. Bad! This should have happened before the form is saved. Now the form should be unmodified and stay that way\n // until a NEW change happens. Due to this, the \"Leave without saving\" modal appears even though it should not when leaving the page fast immediately after saving the document.\n // This is only an issue for forms which have already been set to modified true, as that causes the save button to be enabled. If we prevent this setTimeout to be run\n // for already-modified forms first place (which is unnecessary), we can avoid this issue. As for unmodified forms, this race issue will not happen, because you cannot click the save button faster\n // than the timeout in useField is run. That's because the save button won't even be enabled for clicking until the setTimeout in useField has run.\n // This fixes e2e test flakes, as e2e tests were often so fast that they were saving the form before the timeout in useField has run.\n // Specifically, this fixes the 'should not warn about unsaved changes when navigating to lexical editor with blocks node and then leaving the page after making a change and saving' lexical e2e test.\n if (modified === false) {\n // Update modified state after field value comes back\n // to avoid cursor jump caused by state value / DOM mismatch\n setTimeout(() => {\n setModified(true)\n }, 10)\n }\n }\n }\n },\n [setModified, path, dispatchField, disableFormData, hasRows, modified],\n )\n\n // Store result from hook as ref\n // to prevent unnecessary rerenders\n const result: FieldType<TValue> = useMemo(\n () => ({\n customComponents: field?.customComponents,\n errorMessage: field?.errorMessage,\n errorPaths: field?.errorPaths || [],\n filterOptions,\n formInitializing: initializing,\n formProcessing: processing,\n formSubmitted: submitted,\n initialValue,\n path,\n rows: field?.rows,\n setValue,\n showError,\n valid: field?.valid,\n value,\n }),\n [\n field?.errorMessage,\n field?.rows,\n field?.valid,\n field?.errorPaths,\n processing,\n setValue,\n showError,\n submitted,\n value,\n initialValue,\n path,\n filterOptions,\n initializing,\n field?.customComponents,\n ],\n )\n\n // Throttle the validate function\n useThrottledEffect(\n () => {\n const validateField = async () => {\n let valueToValidate = value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = getDataByPath(path)\n }\n\n let errorMessage: string | undefined = prevErrorMessage.current\n let valid: boolean | string = prevValid.current\n\n const isValid =\n typeof validate === 'function'\n ? await validate(valueToValidate, {\n id,\n collectionSlug,\n data: getData(),\n operation,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: getSiblingData(path),\n })\n : typeof prevErrorMessage.current === 'string'\n ? prevErrorMessage.current\n : prevValid.current\n\n if (typeof isValid === 'string') {\n valid = false\n errorMessage = isValid\n } else if (typeof isValid === 'boolean') {\n valid = isValid\n errorMessage = undefined\n }\n\n // Only dispatch if the validation result has changed\n // This will prevent unnecessary rerenders\n if (valid !== prevValid.current || errorMessage !== prevErrorMessage.current) {\n prevValid.current = valid\n prevErrorMessage.current = errorMessage\n\n const update: UPDATE = {\n type: 'UPDATE',\n errorMessage,\n path,\n rows: field?.rows,\n valid,\n validate,\n value,\n }\n\n if (disableFormData || (hasRows ? typeof value === 'number' && value > 0 : false)) {\n update.disableFormData = true\n }\n\n if (typeof dispatchField === 'function') {\n dispatchField(update)\n }\n }\n }\n\n void validateField()\n },\n 150,\n [\n value,\n disableFormData,\n dispatchField,\n getData,\n getSiblingData,\n getDataByPath,\n id,\n operation,\n path,\n user,\n validate,\n field?.rows,\n collectionSlug,\n ],\n )\n\n return result\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","useCallback","useMemo","useRef","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useOperation","useTranslation","useForm","useFormFields","useFormInitializing","useFormModified","useFormProcessing","useFormSubmitted","useField","options","$","disableFormData","t0","hasRows","path","validate","undefined","submitted","processing","initializing","user","id","collectionSlug","operation","t1","t2","fields","dispatch","dispatchField","field","t","config","getData","getDataByPath","getSiblingData","setModified","modified","filterOptions","value","initialValue","valid","showError","prevValid","prevErrorMessage","errorMessage","e","t3","disableModifyingForm","val","target","type","setTimeout","setValue","rows","errorPaths","customComponents","t4","t5","t6","t7","t8","t9","formInitializing","formProcessing","formSubmitted","result","t10","validateField","valueToValidate","Array","isArray","current","valid_0","isValid","data","preferences","req","payload","siblingData","update","t11","t12"],"sources":["../../../src/forms/useField/index.tsx"],"sourcesContent":["'use client'\nimport type { PayloadRequest } from 'payload'\n\nimport { useCallback, useMemo, useRef } from 'react'\n\nimport type { UPDATE } from '../Form/types.js'\nimport type { FieldType, Options } from './types.js'\n\nexport type { FieldType, Options }\n\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport {\n useForm,\n useFormFields,\n useFormInitializing,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n} from '../Form/context.js'\n\n/**\n * Get and set the value of a form field.\n *\n * @see https://payloadcms.com/docs/admin/hooks#usefield\n */\nexport const useField = <TValue,>(options: Options): FieldType<TValue> => {\n const { disableFormData = false, hasRows, path, validate } = options\n\n const submitted = useFormSubmitted()\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n const { user } = useAuth()\n const { id, collectionSlug } = useDocumentInfo()\n const operation = useOperation()\n\n const { dispatchField, field } = useFormFields(([fields, dispatch]) => ({\n dispatchField: dispatch,\n field: (fields && fields?.[path]) || null,\n }))\n\n const { t } = useTranslation()\n const { config } = useConfig()\n\n const { getData, getDataByPath, getSiblingData, setModified } = useForm()\n const modified = useFormModified()\n\n const filterOptions = field?.filterOptions\n const value = field?.value as TValue\n const initialValue = field?.initialValue as TValue\n const valid = typeof field?.valid === 'boolean' ? field.valid : true\n const showError = valid === false && submitted\n\n const prevValid = useRef(valid)\n const prevErrorMessage = useRef(field?.errorMessage)\n\n // Method to return from `useField`, used to\n // update field values from field component(s)\n const setValue = useCallback(\n (e, disableModifyingForm = false) => {\n const val = e && e.target ? e.target.value : e\n dispatchField({\n type: 'UPDATE',\n disableFormData: disableFormData || (hasRows && val > 0),\n path,\n value: val,\n })\n\n if (!disableModifyingForm) {\n if (typeof setModified === 'function') {\n // Only update setModified to true if the form is not already set to modified. Otherwise the following could happen:\n // 1. Text field: someone types in it in an unmodified form\n // 2. After setTimeout triggers setModified(true): form is set to modified. Save Button becomes available. Good!\n // 3. Type something in text field\n // 4. Click on save button before setTimeout in useField has finished (so setModified(true) has not been run yet)\n // 5. Form is saved, setModified(false) is set in the Form/index.tsx `submit` function, \"saved successfully\" toast appears\n // 6. setModified(true) inside the timeout is run, form is set to modified again, even though it was already saved and thus set to unmodified. Bad! This should have happened before the form is saved. Now the form should be unmodified and stay that way\n // until a NEW change happens. Due to this, the \"Leave without saving\" modal appears even though it should not when leaving the page fast immediately after saving the document.\n // This is only an issue for forms which have already been set to modified true, as that causes the save button to be enabled. If we prevent this setTimeout to be run\n // for already-modified forms first place (which is unnecessary), we can avoid this issue. As for unmodified forms, this race issue will not happen, because you cannot click the save button faster\n // than the timeout in useField is run. That's because the save button won't even be enabled for clicking until the setTimeout in useField has run.\n // This fixes e2e test flakes, as e2e tests were often so fast that they were saving the form before the timeout in useField has run.\n // Specifically, this fixes the 'should not warn about unsaved changes when navigating to lexical editor with blocks node and then leaving the page after making a change and saving' lexical e2e test.\n if (modified === false) {\n // Update modified state after field value comes back\n // to avoid cursor jump caused by state value / DOM mismatch\n setTimeout(() => {\n setModified(true)\n }, 10)\n }\n }\n }\n },\n [setModified, path, dispatchField, disableFormData, hasRows, modified],\n )\n\n // Store result from hook as ref\n // to prevent unnecessary rerenders\n const result: FieldType<TValue> = useMemo(\n () => ({\n customComponents: field?.customComponents,\n errorMessage: field?.errorMessage,\n errorPaths: field?.errorPaths || [],\n filterOptions,\n formInitializing: initializing,\n formProcessing: processing,\n formSubmitted: submitted,\n initialValue,\n path,\n rows: field?.rows,\n setValue,\n showError,\n valid: field?.valid,\n value,\n }),\n [\n field?.errorMessage,\n field?.rows,\n field?.valid,\n field?.errorPaths,\n processing,\n setValue,\n showError,\n submitted,\n value,\n initialValue,\n path,\n filterOptions,\n initializing,\n field?.customComponents,\n ],\n )\n\n // Throttle the validate function\n useThrottledEffect(\n () => {\n const validateField = async () => {\n let valueToValidate = value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = getDataByPath(path)\n }\n\n let errorMessage: string | undefined = prevErrorMessage.current\n let valid: boolean | string = prevValid.current\n\n const isValid =\n typeof validate === 'function'\n ? await validate(valueToValidate, {\n id,\n collectionSlug,\n data: getData(),\n operation,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: getSiblingData(path),\n })\n : typeof prevErrorMessage.current === 'string'\n ? prevErrorMessage.current\n : prevValid.current\n\n if (typeof isValid === 'string') {\n valid = false\n errorMessage = isValid\n } else if (typeof isValid === 'boolean') {\n valid = isValid\n errorMessage = undefined\n }\n\n // Only dispatch if the validation result has changed\n // This will prevent unnecessary rerenders\n if (valid !== prevValid.current || errorMessage !== prevErrorMessage.current) {\n prevValid.current = valid\n prevErrorMessage.current = errorMessage\n\n const update: UPDATE = {\n type: 'UPDATE',\n errorMessage,\n path,\n rows: field?.rows,\n valid,\n validate,\n value,\n }\n\n if (disableFormData || (hasRows ? typeof value === 'number' && value > 0 : false)) {\n update.disableFormData = true\n }\n\n if (typeof dispatchField === 'function') {\n dispatchField(update)\n }\n }\n }\n\n void validateField()\n },\n 150,\n [\n value,\n disableFormData,\n dispatchField,\n getData,\n getSiblingData,\n getDataByPath,\n id,\n operation,\n path,\n user,\n validate,\n field?.rows,\n collectionSlug,\n ],\n )\n\n return result\n}\n"],"mappings":"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","ignoreList":[]}
@@ -7,7 +7,7 @@ export function useDebounce(value, delay) {
7
7
  const [debouncedValue, setDebouncedValue] = useState(value);
8
8
  let t0;
9
9
  let t1;
10
- if ($[0] !== value || $[1] !== delay) {
10
+ if ($[0] !== delay || $[1] !== value) {
11
11
  t0 = () => {
12
12
  const handler = setTimeout(() => {
13
13
  setDebouncedValue(value);
@@ -17,8 +17,8 @@ export function useDebounce(value, delay) {
17
17
  };
18
18
  };
19
19
  t1 = [value, delay];
20
- $[0] = value;
21
- $[1] = delay;
20
+ $[0] = delay;
21
+ $[1] = value;
22
22
  $[2] = t0;
23
23
  $[3] = t1;
24
24
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"useDebounce.js","names":["c","_c","useEffect","useState","useDebounce","value","delay","$","debouncedValue","setDebouncedValue","t0","t1","handler","setTimeout","clearTimeout"],"sources":["../../src/hooks/useDebounce.ts"],"sourcesContent":["'use client'\nimport { useEffect, useState } from 'react'\n\nexport function useDebounce<T = unknown>(value: T, delay: number): T {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState(value)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n\n return () => {\n clearTimeout(handler)\n }\n }, [value, delay])\n\n return debouncedValue\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,SAAS,EAAEC,QAAQ,QAAQ;AAEpC,OAAO,SAAAC,YAAAC,KAAA,EAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EAEL,OAAAO,cAAA,EAAAC,iBAAA,IAA4CN,QAAA,CAASE,KAAA;EAAA,IAAAK,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAAF,KAAA,IAAAE,CAAA,QAAAD,KAAA;IAE3CI,EAAA,GAAAA,CAAA;MACR,MAAAE,OAAA,GAAgBC,UAAA;QACdJ,iBAAA,CAAkBJ,KAAA;MAAA,GACjBC,KAAA;MAAA;QAGDQ,YAAA,CAAaF,OAAA;MAAA;IAAA;IAEdD,EAAA,IAACN,KAAA,EAAOC,KAAA;IAAMC,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAD,KAAA;IAAAC,CAAA,MAAAG,EAAA;IAAAH,CAAA,MAAAI,EAAA;EAAA;IAAAD,EAAA,GAAAH,CAAA;IAAAI,EAAA,GAAAJ,CAAA;EAAA;EARjBL,SAAA,CAAUQ,EAQV,EAAGC,EAAc;EAAA,OAEVH,cAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"useDebounce.js","names":["c","_c","useEffect","useState","useDebounce","value","delay","$","debouncedValue","setDebouncedValue","t0","t1","handler","setTimeout","clearTimeout"],"sources":["../../src/hooks/useDebounce.ts"],"sourcesContent":["'use client'\nimport { useEffect, useState } from 'react'\n\nexport function useDebounce<T = unknown>(value: T, delay: number): T {\n // State and setters for debounced value\n const [debouncedValue, setDebouncedValue] = useState(value)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedValue(value)\n }, delay)\n\n return () => {\n clearTimeout(handler)\n }\n }, [value, delay])\n\n return debouncedValue\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,SAASC,SAAS,EAAEC,QAAQ,QAAQ;AAEpC,OAAO,SAAAC,YAAAC,KAAA,EAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EAEL,OAAAO,cAAA,EAAAC,iBAAA,IAA4CN,QAAA,CAASE,KAAA;EAAA,IAAAK,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAJ,CAAA,QAAAD,KAAA,IAAAC,CAAA,QAAAF,KAAA;IAE3CK,EAAA,GAAAA,CAAA;MACR,MAAAE,OAAA,GAAgBC,UAAA;QACdJ,iBAAA,CAAkBJ,KAAA;MAAA,GACjBC,KAAA;MAAA;QAGDQ,YAAA,CAAaF,OAAA;MAAA;IAAA;IAEdD,EAAA,IAACN,KAAA,EAAOC,KAAA;IAAMC,CAAA,MAAAD,KAAA;IAAAC,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAG,EAAA;IAAAH,CAAA,MAAAI,EAAA;EAAA;IAAAD,EAAA,GAAAH,CAAA;IAAAI,EAAA,GAAAJ,CAAA;EAAA;EARjBL,SAAA,CAAUQ,EAQV,EAAGC,EAAc;EAAA,OAEVH,cAAA;AAAA","ignoreList":[]}
@@ -14,7 +14,7 @@ export function useDebouncedEffect(effect, deps, delay) {
14
14
  }
15
15
  const [debouncedEffect, setDebouncedEffect] = useState(t0);
16
16
  let t1;
17
- if ($[2] !== effect || $[3] !== delay) {
17
+ if ($[2] !== delay || $[3] !== effect) {
18
18
  t1 = () => {
19
19
  const handler = setTimeout(() => {
20
20
  setDebouncedEffect(() => effect);
@@ -23,17 +23,17 @@ export function useDebouncedEffect(effect, deps, delay) {
23
23
  clearTimeout(handler);
24
24
  };
25
25
  };
26
- $[2] = effect;
27
- $[3] = delay;
26
+ $[2] = delay;
27
+ $[3] = effect;
28
28
  $[4] = t1;
29
29
  } else {
30
30
  t1 = $[4];
31
31
  }
32
32
  let t2;
33
- if ($[5] !== deps || $[6] !== delay) {
33
+ if ($[5] !== delay || $[6] !== deps) {
34
34
  t2 = [...deps, delay];
35
- $[5] = deps;
36
- $[6] = delay;
35
+ $[5] = delay;
36
+ $[6] = deps;
37
37
  $[7] = t2;
38
38
  } else {
39
39
  t2 = $[7];
@@ -1 +1 @@
1
- {"version":3,"file":"useDebouncedEffect.js","names":["c","_c","useEffect","useState","useDebouncedEffect","effect","deps","delay","$","t0","debouncedEffect","setDebouncedEffect","t1","handler","setTimeout","clearTimeout","t2","t3","t4"],"sources":["../../src/hooks/useDebouncedEffect.ts"],"sourcesContent":["'use client'\nimport type { DependencyList } from 'react'\n\nimport { useEffect, useState } from 'react'\n\nexport function useDebouncedEffect(effect: () => void, deps: DependencyList, delay: number): void {\n const [debouncedEffect, setDebouncedEffect] = useState<() => void>(() => effect)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedEffect(() => effect)\n }, delay)\n\n return () => {\n clearTimeout(handler)\n }\n }, [...deps, delay])\n\n useEffect(() => {\n debouncedEffect()\n }, [debouncedEffect])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,SAAS,EAAEC,QAAQ,QAAQ;AAEpC,OAAO,SAAAC,mBAAAC,MAAA,EAAAC,IAAA,EAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAD,CAAA,QAAAH,MAAA;IAC8DI,EAAA,GAAAA,CAAA,KAAMJ,MAAA;IAAAG,CAAA,MAAAH,MAAA;IAAAG,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAzE,OAAAE,eAAA,EAAAC,kBAAA,IAA8CR,QAAA,CAAqBM,EAAM;EAAA,IAAAG,EAAA;EAAA,IAAAJ,CAAA,QAAAH,MAAA,IAAAG,CAAA,QAAAD,KAAA;IAE/DK,EAAA,GAAAA,CAAA;MACR,MAAAC,OAAA,GAAgBC,UAAA;QACdH,kBAAA,OAAyBN,MAAA;MAAA,GACxBE,KAAA;MAAA;QAGDQ,YAAA,CAAaF,OAAA;MAAA;IAAA;IAEjBL,CAAA,MAAAH,MAAA;IAAAG,CAAA,MAAAD,KAAA;IAAAC,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAR,CAAA,QAAAF,IAAA,IAAAE,CAAA,QAAAD,KAAA;IAAGS,EAAA,OAAIV,IAAA,EAAMC,KAAA;IAAMC,CAAA,MAAAF,IAAA;IAAAE,CAAA,MAAAD,KAAA;IAAAC,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EARnBN,SAAA,CAAUU,EAQV,EAAGI,EAAgB;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAV,CAAA,QAAAE,eAAA;IAETO,EAAA,GAAAA,CAAA;MACRP,eAAA;IAAA;IACCQ,EAAA,IAACR,eAAA;IAAgBF,CAAA,MAAAE,eAAA;IAAAF,CAAA,MAAAS,EAAA;IAAAT,CAAA,OAAAU,EAAA;EAAA;IAAAD,EAAA,GAAAT,CAAA;IAAAU,EAAA,GAAAV,CAAA;EAAA;EAFpBN,SAAA,CAAUe,EAEV,EAAGC,EAAiB;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"useDebouncedEffect.js","names":["c","_c","useEffect","useState","useDebouncedEffect","effect","deps","delay","$","t0","debouncedEffect","setDebouncedEffect","t1","handler","setTimeout","clearTimeout","t2","t3","t4"],"sources":["../../src/hooks/useDebouncedEffect.ts"],"sourcesContent":["'use client'\nimport type { DependencyList } from 'react'\n\nimport { useEffect, useState } from 'react'\n\nexport function useDebouncedEffect(effect: () => void, deps: DependencyList, delay: number): void {\n const [debouncedEffect, setDebouncedEffect] = useState<() => void>(() => effect)\n\n useEffect(() => {\n const handler = setTimeout(() => {\n setDebouncedEffect(() => effect)\n }, delay)\n\n return () => {\n clearTimeout(handler)\n }\n }, [...deps, delay])\n\n useEffect(() => {\n debouncedEffect()\n }, [debouncedEffect])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,SAAS,EAAEC,QAAQ,QAAQ;AAEpC,OAAO,SAAAC,mBAAAC,MAAA,EAAAC,IAAA,EAAAC,KAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAD,CAAA,QAAAH,MAAA;IAC8DI,EAAA,GAAAA,CAAA,KAAMJ,MAAA;IAAAG,CAAA,MAAAH,MAAA;IAAAG,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAzE,OAAAE,eAAA,EAAAC,kBAAA,IAA8CR,QAAA,CAAqBM,EAAM;EAAA,IAAAG,EAAA;EAAA,IAAAJ,CAAA,QAAAD,KAAA,IAAAC,CAAA,QAAAH,MAAA;IAE/DO,EAAA,GAAAA,CAAA;MACR,MAAAC,OAAA,GAAgBC,UAAA;QACdH,kBAAA,OAAyBN,MAAA;MAAA,GACxBE,KAAA;MAAA;QAGDQ,YAAA,CAAaF,OAAA;MAAA;IAAA;IAEjBL,CAAA,MAAAD,KAAA;IAAAC,CAAA,MAAAH,MAAA;IAAAG,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAR,CAAA,QAAAD,KAAA,IAAAC,CAAA,QAAAF,IAAA;IAAGU,EAAA,OAAIV,IAAA,EAAMC,KAAA;IAAMC,CAAA,MAAAD,KAAA;IAAAC,CAAA,MAAAF,IAAA;IAAAE,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EARnBN,SAAA,CAAUU,EAQV,EAAGI,EAAgB;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAV,CAAA,QAAAE,eAAA;IAETO,EAAA,GAAAA,CAAA;MACRP,eAAA;IAAA;IACCQ,EAAA,IAACR,eAAA;IAAgBF,CAAA,MAAAE,eAAA;IAAAF,CAAA,MAAAS,EAAA;IAAAT,CAAA,OAAAU,EAAA;EAAA;IAAAD,EAAA,GAAAT,CAAA;IAAAU,EAAA,GAAAV,CAAA;EAAA;EAFpBN,SAAA,CAAUe,EAEV,EAAGC,EAAiB;AAAA","ignoreList":[]}
@@ -27,15 +27,15 @@ export const useDelay = (delay, t0) => {
27
27
  const triggerDelay = t1;
28
28
  let t2;
29
29
  let t3;
30
- if ($[2] !== triggerOnMount || $[3] !== triggerDelay) {
30
+ if ($[2] !== triggerDelay || $[3] !== triggerOnMount) {
31
31
  t2 = () => {
32
32
  if (triggerOnMount) {
33
33
  triggerDelay();
34
34
  }
35
35
  };
36
36
  t3 = [triggerDelay, triggerOnMount];
37
- $[2] = triggerOnMount;
38
- $[3] = triggerDelay;
37
+ $[2] = triggerDelay;
38
+ $[3] = triggerOnMount;
39
39
  $[4] = t2;
40
40
  $[5] = t3;
41
41
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"useDelay.js","names":["c","_c","React","useDelay","delay","t0","$","triggerOnMount","undefined","hasDelayed","setHasDelayed","useState","triggerTimeoutRef","useRef","t1","clearTimeout","current","setTimeout","triggerDelay","t2","t3","useEffect","t4"],"sources":["../../src/hooks/useDelay.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\ntype Result = [boolean, () => void]\nexport const useDelay = (delay: number, triggerOnMount = false): Result => {\n const [hasDelayed, setHasDelayed] = React.useState(false)\n const triggerTimeoutRef = React.useRef<NodeJS.Timeout>(undefined)\n\n const triggerDelay = React.useCallback(() => {\n setHasDelayed(false)\n clearTimeout(triggerTimeoutRef.current)\n triggerTimeoutRef.current = setTimeout(() => {\n setHasDelayed(true)\n }, delay)\n\n return () => {\n clearTimeout(triggerTimeoutRef.current)\n }\n }, [delay])\n\n React.useEffect(() => {\n if (triggerOnMount) {\n triggerDelay()\n }\n }, [triggerDelay, triggerOnMount])\n\n return [hasDelayed, triggerDelay]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,YAAYC,KAAA,MAAW;AAGvB,OAAO,MAAMC,QAAA,GAAWA,CAAAC,KAAA,EAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EAAgB,MAAAM,cAAA,GAAAF,EAAsB,KAAAG,SAAA,WAAtBH,EAAsB;EAC5D,OAAAI,UAAA,EAAAC,aAAA,IAAoCR,KAAA,CAAAS,QAAA,MAAe;EACnD,MAAAC,iBAAA,GAA0BV,KAAA,CAAAW,MAAA,CAAAL,SAA6B;EAAA,IAAAM,EAAA;EAAA,IAAAR,CAAA,QAAAF,KAAA;IAEhBU,EAAA,GAAAA,CAAA;MACrCJ,aAAA,MAAc;MACdK,YAAA,CAAaH,iBAAA,CAAAI,OAAyB;MACtCJ,iBAAA,CAAAI,OAAA,GAA4BC,UAAA;QAC1BP,aAAA,KAAc;MAAA,GACbN,KAAA;MAAA;QAGDW,YAAA,CAAaH,iBAAA,CAAAI,OAAyB;MAAA;IAAA;IAE1CV,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAVA,MAAAY,YAAA,GAAqBJ,EAUX;EAAA,IAAAK,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAd,CAAA,QAAAC,cAAA,IAAAD,CAAA,QAAAY,YAAA;IAEMC,EAAA,GAAAA,CAAA;MAAA,IACVZ,cAAA;QACFW,YAAA;MAAA;IAAA;IAEDE,EAAA,IAACF,YAAA,EAAcX,cAAA;IAAeD,CAAA,MAAAC,cAAA;IAAAD,CAAA,MAAAY,YAAA;IAAAZ,CAAA,MAAAa,EAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAD,EAAA,GAAAb,CAAA;IAAAc,EAAA,GAAAd,CAAA;EAAA;EAJjCJ,KAAA,CAAAmB,SAAA,CAAgBF,EAIhB,EAAGC,EAA8B;EAAA,IAAAE,EAAA;EAAA,IAAAhB,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAY,YAAA;IAE1BI,EAAA,IAACb,UAAA,EAAYS,YAAA;IAAaZ,CAAA,MAAAG,UAAA;IAAAH,CAAA,MAAAY,YAAA;IAAAZ,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,OAA1BgB,EAA0B;AAAA,CACnC","ignoreList":[]}
1
+ {"version":3,"file":"useDelay.js","names":["c","_c","React","useDelay","delay","t0","$","triggerOnMount","undefined","hasDelayed","setHasDelayed","useState","triggerTimeoutRef","useRef","t1","clearTimeout","current","setTimeout","triggerDelay","t2","t3","useEffect","t4"],"sources":["../../src/hooks/useDelay.ts"],"sourcesContent":["'use client'\nimport * as React from 'react'\n\ntype Result = [boolean, () => void]\nexport const useDelay = (delay: number, triggerOnMount = false): Result => {\n const [hasDelayed, setHasDelayed] = React.useState(false)\n const triggerTimeoutRef = React.useRef<NodeJS.Timeout>(undefined)\n\n const triggerDelay = React.useCallback(() => {\n setHasDelayed(false)\n clearTimeout(triggerTimeoutRef.current)\n triggerTimeoutRef.current = setTimeout(() => {\n setHasDelayed(true)\n }, delay)\n\n return () => {\n clearTimeout(triggerTimeoutRef.current)\n }\n }, [delay])\n\n React.useEffect(() => {\n if (triggerOnMount) {\n triggerDelay()\n }\n }, [triggerDelay, triggerOnMount])\n\n return [hasDelayed, triggerDelay]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AACA,YAAYC,KAAA,MAAW;AAGvB,OAAO,MAAMC,QAAA,GAAWA,CAAAC,KAAA,EAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAL,EAAA;EAAgB,MAAAM,cAAA,GAAAF,EAAsB,KAAAG,SAAA,WAAtBH,EAAsB;EAC5D,OAAAI,UAAA,EAAAC,aAAA,IAAoCR,KAAA,CAAAS,QAAA,MAAe;EACnD,MAAAC,iBAAA,GAA0BV,KAAA,CAAAW,MAAA,CAAAL,SAA6B;EAAA,IAAAM,EAAA;EAAA,IAAAR,CAAA,QAAAF,KAAA;IAEhBU,EAAA,GAAAA,CAAA;MACrCJ,aAAA,MAAc;MACdK,YAAA,CAAaH,iBAAA,CAAAI,OAAyB;MACtCJ,iBAAA,CAAAI,OAAA,GAA4BC,UAAA;QAC1BP,aAAA,KAAc;MAAA,GACbN,KAAA;MAAA;QAGDW,YAAA,CAAaH,iBAAA,CAAAI,OAAyB;MAAA;IAAA;IAE1CV,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAVA,MAAAY,YAAA,GAAqBJ,EAUX;EAAA,IAAAK,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAd,CAAA,QAAAY,YAAA,IAAAZ,CAAA,QAAAC,cAAA;IAEMY,EAAA,GAAAA,CAAA;MAAA,IACVZ,cAAA;QACFW,YAAA;MAAA;IAAA;IAEDE,EAAA,IAACF,YAAA,EAAcX,cAAA;IAAeD,CAAA,MAAAY,YAAA;IAAAZ,CAAA,MAAAC,cAAA;IAAAD,CAAA,MAAAa,EAAA;IAAAb,CAAA,MAAAc,EAAA;EAAA;IAAAD,EAAA,GAAAb,CAAA;IAAAc,EAAA,GAAAd,CAAA;EAAA;EAJjCJ,KAAA,CAAAmB,SAAA,CAAgBF,EAIhB,EAAGC,EAA8B;EAAA,IAAAE,EAAA;EAAA,IAAAhB,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAY,YAAA;IAE1BI,EAAA,IAACb,UAAA,EAAYS,YAAA;IAAaZ,CAAA,MAAAG,UAAA;IAAAH,CAAA,MAAAY,YAAA;IAAAZ,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAA,OAA1BgB,EAA0B;AAAA,CACnC","ignoreList":[]}
@@ -66,22 +66,18 @@ export const useHotkey = (options, func) => {
66
66
  modalState
67
67
  } = useModal();
68
68
  let t0;
69
- if ($[0] !== keyCodes || $[1] !== cmdCtrlKey || $[2] !== modalState || $[3] !== editDepth || $[4] !== func) {
69
+ if ($[0] !== cmdCtrlKey || $[1] !== editDepth || $[2] !== func || $[3] !== keyCodes || $[4] !== modalState) {
70
70
  t0 = event => {
71
71
  const e = event.detail?.key ? event.detail : event;
72
72
  if (e.key === undefined) {
73
73
  return;
74
74
  }
75
- pressedKeys.forEach((time, key) => {
76
- if (Date.now() - time > 3000) {
77
- pressedKeys.delete(key);
78
- }
79
- });
75
+ pressedKeys.forEach(_temp);
80
76
  if (e.code) {
81
77
  pushToKeys(e.code);
82
78
  }
83
79
  const hasCmd = window.navigator.userAgent.includes("Mac OS X");
84
- const pressedWithoutModifier = [...pressedKeys.keys()].filter(key_0 => !["alt", "ctrl", "meta", "shift"].includes(key_0));
80
+ const pressedWithoutModifier = [...pressedKeys.keys()].filter(_temp2);
85
81
  if (setsAreEqual(new Set(pressedWithoutModifier), new Set(keyCodes)) && (!cmdCtrlKey || hasCmd && pressedKeys.has("meta") || !hasCmd && e.ctrlKey)) {
86
82
  const maxEditDepth = Object.keys(modalState).filter(key_1 => modalState[key_1]?.isOpen)?.length + 1 || 1;
87
83
  if (maxEditDepth !== editDepth) {
@@ -90,17 +86,17 @@ export const useHotkey = (options, func) => {
90
86
  func(e);
91
87
  }
92
88
  };
93
- $[0] = keyCodes;
94
- $[1] = cmdCtrlKey;
95
- $[2] = modalState;
96
- $[3] = editDepth;
97
- $[4] = func;
89
+ $[0] = cmdCtrlKey;
90
+ $[1] = editDepth;
91
+ $[2] = func;
92
+ $[3] = keyCodes;
93
+ $[4] = modalState;
98
94
  $[5] = t0;
99
95
  } else {
100
96
  t0 = $[5];
101
97
  }
102
98
  const keydown = t0;
103
- const keyup = _temp;
99
+ const keyup = _temp3;
104
100
  let t1;
105
101
  let t2;
106
102
  if ($[6] !== keydown) {
@@ -124,7 +120,15 @@ export const useHotkey = (options, func) => {
124
120
  }
125
121
  useEffect(t1, t2);
126
122
  };
127
- function _temp(e_0) {
123
+ function _temp(time, key) {
124
+ if (Date.now() - time > 3000) {
125
+ pressedKeys.delete(key);
126
+ }
127
+ }
128
+ function _temp2(key_0) {
129
+ return !["alt", "ctrl", "meta", "shift"].includes(key_0);
130
+ }
131
+ function _temp3(e_0) {
128
132
  if (e_0.code) {
129
133
  removeFromKeys(e_0.code);
130
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useHotkey.js","names":["c","_c","useModal","setsAreEqual","useCallback","useEffect","pressedKeys","Map","map","altleft","altright","controlleft","controlright","ctrlleft","ctrlright","escape","metaleft","metaright","osleft","osright","shiftleft","shiftright","stripKey","key","toLowerCase","trim","replace","pushToKeys","code","forEach","time","pressedKey","delete","set","Date","now","removeFromKeys","clear","useHotkey","options","func","$","cmdCtrlKey","editDepth","keyCodes","modalState","t0","event","e","detail","undefined","hasCmd","window","navigator","userAgent","includes","pressedWithoutModifier","keys","filter","key_0","Set","has","ctrlKey","maxEditDepth","Object","key_1","isOpen","length","keydown","keyup","_temp","t1","t2","document","addEventListener","removeEventListener","e_0"],"sources":["../../src/hooks/useHotkey.ts"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { setsAreEqual } from 'payload/shared'\nimport { useCallback, useEffect } from 'react'\n\n// Required to be outside of hook, else debounce would be necessary\n// and then one could not prevent the default behaviour.\n\n// It maps the pressed keys with the time they were pressed, in order to implement a maximum time\n// for the user to press the next key in the sequence\n\n// This is necessary to prevent a bug where the keyup event, which unsets the key as pressed\n// is not fired when the window is not focused.\n// When the user then comes back to the window, the key is still registered as pressed, even though it's not.\nconst pressedKeys = new Map<string, number>([])\n\nconst map = {\n altleft: 'alt',\n altright: 'alt',\n controlleft: 'ctrl',\n controlright: 'ctrl',\n ctrlleft: 'ctrl',\n ctrlright: 'ctrl',\n escape: 'esc',\n metaleft: 'meta',\n metaright: 'meta',\n osleft: 'meta',\n osright: 'meta',\n shiftleft: 'shift',\n shiftright: 'shift',\n}\n\nconst stripKey = (key: string) => {\n return (map[key.toLowerCase()] || key).trim().toLowerCase().replace('key', '')\n}\n\nconst pushToKeys = (code: string) => {\n const key = stripKey(code)\n\n // There is a weird bug with macos that if the keys are not cleared they remain in the\n // pressed keys set.\n if (key === 'meta') {\n pressedKeys.forEach(\n (time, pressedKey) => pressedKey !== 'meta' && pressedKeys.delete(pressedKey),\n )\n }\n\n pressedKeys.set(key, Date.now())\n}\n\nconst removeFromKeys = (code: string) => {\n const key = stripKey(code)\n // There is a weird bug with macos that if the keys are not cleared they remain in the\n // pressed keys set.\n if (key === 'meta') {\n pressedKeys.clear()\n }\n pressedKeys.delete(key)\n}\n\n/**\n * Hook function to work with hotkeys.\n * @param param0.keyCode {string[]} The keys to listen for (`Event.code` without `'Key'` and lowercased)\n * @param param0.cmdCtrlKey {boolean} Whether Ctrl on windows or Cmd on mac must be pressed\n * @param param0.editDepth {boolean} This ensures that the hotkey is only triggered for the most top-level drawer in case there are nested drawers\n * @param func The callback function\n */\nexport const useHotkey = (\n options: {\n cmdCtrlKey: boolean\n editDepth: number\n keyCodes: string[]\n },\n func: (e: KeyboardEvent) => void,\n): void => {\n const { cmdCtrlKey, editDepth, keyCodes } = options\n\n const { modalState } = useModal()\n\n const keydown = useCallback(\n (event: CustomEvent | KeyboardEvent) => {\n const e: KeyboardEvent = event.detail?.key ? event.detail : event\n if (e.key === undefined) {\n // Autofill events, or other synthetic events, can be ignored\n return\n }\n\n // Filter out pressed keys which have been pressed > 3 seconds ago\n pressedKeys.forEach((time, key) => {\n if (Date.now() - time > 3000) {\n pressedKeys.delete(key)\n }\n })\n\n if (e.code) {\n pushToKeys(e.code)\n }\n\n // Check for Mac and iPad\n const hasCmd = window.navigator.userAgent.includes('Mac OS X')\n const pressedWithoutModifier = [...pressedKeys.keys()].filter(\n (key) => !['alt', 'ctrl', 'meta', 'shift'].includes(key),\n )\n\n // Check whether arrays contain the same values (regardless of number of occurrences)\n if (\n setsAreEqual(new Set(pressedWithoutModifier), new Set(keyCodes)) &&\n (!cmdCtrlKey || (hasCmd && pressedKeys.has('meta')) || (!hasCmd && e.ctrlKey))\n ) {\n // get the maximum edit depth by counting the number of open drawers. modalState is and object which contains the state of all drawers.\n const maxEditDepth =\n Object.keys(modalState).filter((key) => modalState[key]?.isOpen)?.length + 1 || 1\n\n if (maxEditDepth !== editDepth) {\n // We only want to execute the hotkey from the most top-level drawer / edit depth.\n return\n }\n // execute the function associated with the maximum edit depth\n func(e)\n }\n },\n [keyCodes, cmdCtrlKey, editDepth, modalState, func],\n )\n\n const keyup = useCallback((e: KeyboardEvent) => {\n if (e.code) {\n removeFromKeys(e.code)\n }\n }, [])\n\n useEffect(() => {\n document.addEventListener('keydown', keydown, false)\n document.addEventListener('bypassKeyDown', keydown, false) // this is called if the keydown event's propagation is stopped by react-select\n document.addEventListener('keyup', keyup, false)\n\n return () => {\n document.removeEventListener('keydown', keydown)\n document.removeEventListener('bypassKeyDown', keydown)\n document.removeEventListener('keyup', keyup)\n }\n }, [keydown, keyup])\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useHotkey.js","names":["c","_c","useModal","setsAreEqual","useCallback","useEffect","pressedKeys","Map","map","altleft","altright","controlleft","controlright","ctrlleft","ctrlright","escape","metaleft","metaright","osleft","osright","shiftleft","shiftright","stripKey","key","toLowerCase","trim","replace","pushToKeys","code","forEach","time","pressedKey","delete","set","Date","now","removeFromKeys","clear","useHotkey","options","func","$","cmdCtrlKey","editDepth","keyCodes","modalState","t0","event","e","detail","undefined","_temp","hasCmd","window","navigator","userAgent","includes","pressedWithoutModifier","keys","filter","_temp2","Set","has","ctrlKey","maxEditDepth","Object","key_1","isOpen","length","keydown","keyup","_temp3","t1","t2","document","addEventListener","removeEventListener","key_0","e_0"],"sources":["../../src/hooks/useHotkey.ts"],"sourcesContent":["'use client'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { setsAreEqual } from 'payload/shared'\nimport { useCallback, useEffect } from 'react'\n\n// Required to be outside of hook, else debounce would be necessary\n// and then one could not prevent the default behaviour.\n\n// It maps the pressed keys with the time they were pressed, in order to implement a maximum time\n// for the user to press the next key in the sequence\n\n// This is necessary to prevent a bug where the keyup event, which unsets the key as pressed\n// is not fired when the window is not focused.\n// When the user then comes back to the window, the key is still registered as pressed, even though it's not.\nconst pressedKeys = new Map<string, number>([])\n\nconst map = {\n altleft: 'alt',\n altright: 'alt',\n controlleft: 'ctrl',\n controlright: 'ctrl',\n ctrlleft: 'ctrl',\n ctrlright: 'ctrl',\n escape: 'esc',\n metaleft: 'meta',\n metaright: 'meta',\n osleft: 'meta',\n osright: 'meta',\n shiftleft: 'shift',\n shiftright: 'shift',\n}\n\nconst stripKey = (key: string) => {\n return (map[key.toLowerCase()] || key).trim().toLowerCase().replace('key', '')\n}\n\nconst pushToKeys = (code: string) => {\n const key = stripKey(code)\n\n // There is a weird bug with macos that if the keys are not cleared they remain in the\n // pressed keys set.\n if (key === 'meta') {\n pressedKeys.forEach(\n (time, pressedKey) => pressedKey !== 'meta' && pressedKeys.delete(pressedKey),\n )\n }\n\n pressedKeys.set(key, Date.now())\n}\n\nconst removeFromKeys = (code: string) => {\n const key = stripKey(code)\n // There is a weird bug with macos that if the keys are not cleared they remain in the\n // pressed keys set.\n if (key === 'meta') {\n pressedKeys.clear()\n }\n pressedKeys.delete(key)\n}\n\n/**\n * Hook function to work with hotkeys.\n * @param param0.keyCode {string[]} The keys to listen for (`Event.code` without `'Key'` and lowercased)\n * @param param0.cmdCtrlKey {boolean} Whether Ctrl on windows or Cmd on mac must be pressed\n * @param param0.editDepth {boolean} This ensures that the hotkey is only triggered for the most top-level drawer in case there are nested drawers\n * @param func The callback function\n */\nexport const useHotkey = (\n options: {\n cmdCtrlKey: boolean\n editDepth: number\n keyCodes: string[]\n },\n func: (e: KeyboardEvent) => void,\n): void => {\n const { cmdCtrlKey, editDepth, keyCodes } = options\n\n const { modalState } = useModal()\n\n const keydown = useCallback(\n (event: CustomEvent | KeyboardEvent) => {\n const e: KeyboardEvent = event.detail?.key ? event.detail : event\n if (e.key === undefined) {\n // Autofill events, or other synthetic events, can be ignored\n return\n }\n\n // Filter out pressed keys which have been pressed > 3 seconds ago\n pressedKeys.forEach((time, key) => {\n if (Date.now() - time > 3000) {\n pressedKeys.delete(key)\n }\n })\n\n if (e.code) {\n pushToKeys(e.code)\n }\n\n // Check for Mac and iPad\n const hasCmd = window.navigator.userAgent.includes('Mac OS X')\n const pressedWithoutModifier = [...pressedKeys.keys()].filter(\n (key) => !['alt', 'ctrl', 'meta', 'shift'].includes(key),\n )\n\n // Check whether arrays contain the same values (regardless of number of occurrences)\n if (\n setsAreEqual(new Set(pressedWithoutModifier), new Set(keyCodes)) &&\n (!cmdCtrlKey || (hasCmd && pressedKeys.has('meta')) || (!hasCmd && e.ctrlKey))\n ) {\n // get the maximum edit depth by counting the number of open drawers. modalState is and object which contains the state of all drawers.\n const maxEditDepth =\n Object.keys(modalState).filter((key) => modalState[key]?.isOpen)?.length + 1 || 1\n\n if (maxEditDepth !== editDepth) {\n // We only want to execute the hotkey from the most top-level drawer / edit depth.\n return\n }\n // execute the function associated with the maximum edit depth\n func(e)\n }\n },\n [keyCodes, cmdCtrlKey, editDepth, modalState, func],\n )\n\n const keyup = useCallback((e: KeyboardEvent) => {\n if (e.code) {\n removeFromKeys(e.code)\n }\n }, [])\n\n useEffect(() => {\n document.addEventListener('keydown', keydown, false)\n document.addEventListener('bypassKeyDown', keydown, false) // this is called if the keydown event's propagation is stopped by react-select\n document.addEventListener('keyup', keyup, false)\n\n return () => {\n document.removeEventListener('keydown', keydown)\n document.removeEventListener('bypassKeyDown', keydown)\n document.removeEventListener('keyup', keyup)\n }\n }, [keydown, keyup])\n}\n"],"mappings":"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","ignoreList":[]}
@@ -50,7 +50,7 @@ export const usePayloadAPI = (url, t0) => {
50
50
  } = useLocale();
51
51
  const hasInitialized = useRef(false);
52
52
  let t5;
53
- if ($[6] !== params || $[7] !== locale) {
53
+ if ($[6] !== locale || $[7] !== params) {
54
54
  let t6;
55
55
  if ($[9] !== params) {
56
56
  t6 = typeof params === "object" ? params : {};
@@ -65,15 +65,15 @@ export const usePayloadAPI = (url, t0) => {
65
65
  }, {
66
66
  addQueryPrefix: true
67
67
  });
68
- $[6] = params;
69
- $[7] = locale;
68
+ $[6] = locale;
69
+ $[7] = params;
70
70
  $[8] = t5;
71
71
  } else {
72
72
  t5 = $[8];
73
73
  }
74
74
  const search = t5;
75
75
  let t6;
76
- if ($[11] !== initialData || $[12] !== url || $[13] !== search || $[14] !== i18n.language) {
76
+ if ($[11] !== i18n.language || $[12] !== initialData || $[13] !== search || $[14] !== url) {
77
77
  t6 = () => {
78
78
  if (initialData && !hasInitialized.current) {
79
79
  hasInitialized.current = true;
@@ -119,22 +119,22 @@ export const usePayloadAPI = (url, t0) => {
119
119
  }
120
120
  };
121
121
  };
122
- $[11] = initialData;
123
- $[12] = url;
122
+ $[11] = i18n.language;
123
+ $[12] = initialData;
124
124
  $[13] = search;
125
- $[14] = i18n.language;
125
+ $[14] = url;
126
126
  $[15] = t6;
127
127
  } else {
128
128
  t6 = $[15];
129
129
  }
130
130
  let t7;
131
- if ($[16] !== url || $[17] !== locale || $[18] !== search || $[19] !== i18n.language || $[20] !== initialData) {
131
+ if ($[16] !== i18n.language || $[17] !== initialData || $[18] !== locale || $[19] !== search || $[20] !== url) {
132
132
  t7 = [url, locale, search, i18n.language, initialData];
133
- $[16] = url;
134
- $[17] = locale;
135
- $[18] = search;
136
- $[19] = i18n.language;
137
- $[20] = initialData;
133
+ $[16] = i18n.language;
134
+ $[17] = initialData;
135
+ $[18] = locale;
136
+ $[19] = search;
137
+ $[20] = url;
138
138
  $[21] = t7;
139
139
  } else {
140
140
  t7 = $[21];
@@ -1 +1 @@
1
- {"version":3,"file":"usePayloadAPI.js","names":["c","_c","qs","useEffect","useRef","useState","useLocale","useTranslation","requests","usePayloadAPI","url","t0","$","t1","undefined","options","initialData","initialParams","t2","t3","i18n","t4","data","setData","params","setParams","isLoading","setIsLoading","isError","setIsError","code","locale","hasInitialized","t5","t6","stringify","addQueryPrefix","search","language","current","abortController","AbortController","fetchData","response","get","headers","signal","status","json","t7","aborted","abort","t8","_err","t9","t10","t11","Symbol","for","t12"],"sources":["../../src/hooks/usePayloadAPI.ts"],"sourcesContent":["'use client'\nimport type React from 'react'\n\nimport * as qs from 'qs-esm'\nimport { useEffect, useRef, useState } from 'react'\n\nimport { useLocale } from '../providers/Locale/index.js'\nimport { useTranslation } from '../providers/Translation/index.js'\nimport { requests } from '../utilities/api.js'\n\ntype Result = [\n {\n data: any\n isError: boolean\n isLoading: boolean\n },\n {\n setParams: React.Dispatch<unknown>\n },\n]\n\ntype Options = {\n initialData?: any\n initialParams?: unknown\n}\n\ntype UsePayloadAPI = (url: string, options?: Options) => Result\n\nexport const usePayloadAPI: UsePayloadAPI = (url, options = {}) => {\n const { initialData, initialParams = {} } = options\n\n const { i18n } = useTranslation()\n const [data, setData] = useState(initialData || {})\n const [params, setParams] = useState(initialParams)\n const [isLoading, setIsLoading] = useState(!initialData)\n const [isError, setIsError] = useState(false)\n const { code: locale } = useLocale()\n const hasInitialized = useRef(false)\n\n const search = qs.stringify(\n {\n locale,\n ...(typeof params === 'object' ? params : {}),\n },\n {\n addQueryPrefix: true,\n },\n )\n\n // If `initialData`, no need to make a request\n useEffect(() => {\n if (initialData && !hasInitialized.current) {\n hasInitialized.current = true\n return\n }\n\n const abortController = new AbortController()\n\n const fetchData = async () => {\n setIsError(false)\n setIsLoading(true)\n\n try {\n const response = await requests.get(`${url}${search}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n })\n\n if (response.status > 201) {\n setIsError(true)\n }\n\n const json = await response.json()\n\n setData(json)\n setIsLoading(false)\n } catch (error) {\n if (!abortController.signal.aborted) {\n setIsError(true)\n setIsLoading(false)\n }\n }\n }\n\n if (url) {\n void fetchData()\n } else {\n setIsError(false)\n setIsLoading(false)\n }\n\n return () => {\n try {\n abortController.abort()\n } catch (_err) {\n // swallow error\n }\n }\n }, [url, locale, search, i18n.language, initialData])\n\n // If `initialData` changes, reset the state\n useEffect(() => {\n if (initialData && hasInitialized.current) {\n setData(initialData)\n }\n }, [initialData])\n\n return [{ data, isError, isLoading }, { setParams }]\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,YAAYC,EAAA,MAAQ;AACpB,SAASC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAE5C,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AAoBzB,OAAO,MAAMC,aAAA,GAA+BA,CAAAC,GAAA,EAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAA,IAAAY,EAAA;EAAA,IAAAD,CAAA,QAAAD,EAAA;IAAME,EAAA,GAAAF,EAAY,KAAAG,SAAA,QAAZH,EAAY;IAAAC,CAAA,MAAAD,EAAA;IAAAC,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAZ,MAAAG,OAAA,GAAAF,EAAY;EAC5D;IAAAG,WAAA;IAAAC,aAAA,EAAAC;EAAA,IAA4CH,OAAA;EAAA,IAAAI,EAAA;EAAA,IAAAP,CAAA,QAAAM,EAAA;IAAvBC,EAAA,GAAAD,EAAkB,KAAAJ,SAAA,QAAlBI,EAAkB;IAAAN,CAAA,MAAAM,EAAA;IAAAN,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAAlB,MAAAK,aAAA,GAAAE,EAAkB;EAEvC;IAAAC;EAAA,IAAiBb,cAAA;EAAA,IAAAc,EAAA;EAAA,IAAAT,CAAA,QAAAI,WAAA;IACgBK,EAAA,GAAAL,WAAA,MAAgB;IAAAJ,CAAA,MAAAI,WAAA;IAAAJ,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAAjD,OAAAU,IAAA,EAAAC,OAAA,IAAwBlB,QAAA,CAASgB,EAAgB;EACjD,OAAAG,MAAA,EAAAC,SAAA,IAA4BpB,QAAA,CAASY,aAAA;EACrC,OAAAS,SAAA,EAAAC,YAAA,IAAkCtB,QAAA,EAAUW,WAAA;EAC5C,OAAAY,OAAA,EAAAC,UAAA,IAA8BxB,QAAA,MAAS;EACvC;IAAAyB,IAAA,EAAAC;EAAA,IAAyBzB,SAAA;EACzB,MAAA0B,cAAA,GAAuB5B,MAAA,MAAO;EAAA,IAAA6B,EAAA;EAAA,IAAArB,CAAA,QAAAY,MAAA,IAAAZ,CAAA,QAAAmB,MAAA;IAAA,IAAAG,EAAA;IAAA,IAAAtB,CAAA,QAAAY,MAAA;MAKtBU,EAAA,UAAOV,MAAA,KAAW,WAAWA,MAAA,KAAW;MAAAZ,CAAA,MAAAY,MAAA;MAAAZ,CAAA,OAAAsB,EAAA;IAAA;MAAAA,EAAA,GAAAtB,CAAA;IAAA;IAHjCqB,EAAA,GAAA/B,EAAA,CAAAiC,SAAA;MAAAJ,MAAA;MAAA,GAGPG;IAAwC;MAAAE,cAAA;IAAA,CAI9C;IAAAxB,CAAA,MAAAY,MAAA;IAAAZ,CAAA,MAAAmB,MAAA;IAAAnB,CAAA,MAAAqB,EAAA;EAAA;IAAAA,EAAA,GAAArB,CAAA;EAAA;EAPF,MAAAyB,MAAA,GAAeJ,EAOb;EAAA,IAAAC,EAAA;EAAA,IAAAtB,CAAA,SAAAI,WAAA,IAAAJ,CAAA,SAAAF,GAAA,IAAAE,CAAA,SAAAyB,MAAA,IAAAzB,CAAA,SAAAQ,IAAA,CAAAkB,QAAA;IAIQJ,EAAA,GAAAA,CAAA;MAAA,IACJlB,WAAA,KAAgBgB,cAAA,CAAAO,OAAsB;QACxCP,cAAA,CAAAO,OAAA;QAAA;MAAA;MAIF,MAAAC,eAAA,OAAAC,eAAA;MAEA,MAAAC,SAAA,SAAAA,CAAA;QACEb,UAAA,MAAW;QACXF,YAAA,KAAa;QAAA;QAAA;UAGX,MAAAgB,QAAA,SAAuBnC,QAAA,CAAAoC,GAAA,CAAa,GAAGlC,GAAA,GAAM2B,MAAA,EAAQ;YAAAQ,OAAA;cAAA,mBAE9BzB,IAAA,CAAAkB;YAAA;YAAAQ,MAAA,EAEbN,eAAA,CAAAM;UAAA,CACV;UAAA,IAEIH,QAAA,CAAAI,MAAA,MAAkB;YACpBlB,UAAA,KAAW;UAAA;UAGb,MAAAmB,IAAA,SAAmBL,QAAA,CAAAK,IAAA,CAAa;UAEhCzB,OAAA,CAAQyB,IAAA;UACRrB,YAAA,MAAa;QAAA,SAAAsB,EAAA;UAAA,KAERT,eAAA,CAAAM,MAAA,CAAAI,OAAA;YACHrB,UAAA,KAAW;YACXF,YAAA,MAAa;UAAA;QAAA;MAAA;MAGnB,IAEIjB,GAAA;QACGgC,SAAA;MAAA;QAELb,UAAA,MAAW;QACXF,YAAA,MAAa;MAAA;MAAA;QAAA;QAAA;UAKXa,eAAA,CAAAW,KAAA,CAAqB;QAAA,SAAAC,EAAA;UACdC,KAAA,CAAAA,IAAA,CAAAA,CAAA,CAAAA,EAAA;QAAA;MAAA;IAAA;IAIbzC,CAAA,OAAAI,WAAA;IAAAJ,CAAA,OAAAF,GAAA;IAAAE,CAAA,OAAAyB,MAAA;IAAAzB,CAAA,OAAAQ,IAAA,CAAAkB,QAAA;IAAA1B,CAAA,OAAAsB,EAAA;EAAA;IAAAA,EAAA,GAAAtB,CAAA;EAAA;EAAA,IAAAqC,EAAA;EAAA,IAAArC,CAAA,SAAAF,GAAA,IAAAE,CAAA,SAAAmB,MAAA,IAAAnB,CAAA,SAAAyB,MAAA,IAAAzB,CAAA,SAAAQ,IAAA,CAAAkB,QAAA,IAAA1B,CAAA,SAAAI,WAAA;IAAGiC,EAAA,IAACvC,GAAA,EAAKqB,MAAA,EAAQM,MAAA,EAAQjB,IAAA,CAAAkB,QAAA,EAAetB,WAAA;IAAYJ,CAAA,OAAAF,GAAA;IAAAE,CAAA,OAAAmB,MAAA;IAAAnB,CAAA,OAAAyB,MAAA;IAAAzB,CAAA,OAAAQ,IAAA,CAAAkB,QAAA;IAAA1B,CAAA,OAAAI,WAAA;IAAAJ,CAAA,OAAAqC,EAAA;EAAA;IAAAA,EAAA,GAAArC,CAAA;EAAA;EAlDpDT,SAAA,CAAU+B,EAkDV,EAAGe,EAAiD;EAAA,IAAAG,EAAA;EAAA,IAAAE,EAAA;EAAA,IAAA1C,CAAA,SAAAI,WAAA;IAG1CoC,EAAA,GAAAA,CAAA;MAAA,IACJpC,WAAA,IAAegB,cAAA,CAAAO,OAAsB;QACvChB,OAAA,CAAQP,WAAA;MAAA;IAAA;IAETsC,EAAA,IAACtC,WAAA;IAAYJ,CAAA,OAAAI,WAAA;IAAAJ,CAAA,OAAAwC,EAAA;IAAAxC,CAAA,OAAA0C,EAAA;EAAA;IAAAF,EAAA,GAAAxC,CAAA;IAAA0C,EAAA,GAAA1C,CAAA;EAAA;EAJhBT,SAAA,CAAUiD,EAIV,EAAGE,EAAa;EAAA,IAAAC,GAAA;EAAA,IAAA3C,CAAA,SAAAU,IAAA,IAAAV,CAAA,SAAAgB,OAAA,IAAAhB,CAAA,SAAAc,SAAA;IAER6B,GAAA;MAAAjC,IAAA;MAAAM,OAAA;MAAAF;IAAA;IAA2Bd,CAAA,OAAAU,IAAA;IAAAV,CAAA,OAAAgB,OAAA;IAAAhB,CAAA,OAAAc,SAAA;IAAAd,CAAA,OAAA2C,GAAA;EAAA;IAAAA,GAAA,GAAA3C,CAAA;EAAA;EAAA,IAAA4C,GAAA;EAAA,IAAA5C,CAAA,SAAA6C,MAAA,CAAAC,GAAA;IAAGF,GAAA;MAAA/B;IAAA;IAAYb,CAAA,OAAA4C,GAAA;EAAA;IAAAA,GAAA,GAAA5C,CAAA;EAAA;EAAA,IAAA+C,GAAA;EAAA,IAAA/C,CAAA,SAAA2C,GAAA;IAA3CI,GAAA,IAACJ,GAA2B,EAAGC,GAAY;IAAE5C,CAAA,OAAA2C,GAAA;IAAA3C,CAAA,OAAA+C,GAAA;EAAA;IAAAA,GAAA,GAAA/C,CAAA;EAAA;EAAA,OAA7C+C,GAA6C;AAAA,CACtD","ignoreList":[]}
1
+ {"version":3,"file":"usePayloadAPI.js","names":["c","_c","qs","useEffect","useRef","useState","useLocale","useTranslation","requests","usePayloadAPI","url","t0","$","t1","undefined","options","initialData","initialParams","t2","t3","i18n","t4","data","setData","params","setParams","isLoading","setIsLoading","isError","setIsError","code","locale","hasInitialized","t5","t6","stringify","addQueryPrefix","search","language","current","abortController","AbortController","fetchData","response","get","headers","signal","status","json","t7","aborted","abort","t8","_err","t9","t10","t11","Symbol","for","t12"],"sources":["../../src/hooks/usePayloadAPI.ts"],"sourcesContent":["'use client'\nimport type React from 'react'\n\nimport * as qs from 'qs-esm'\nimport { useEffect, useRef, useState } from 'react'\n\nimport { useLocale } from '../providers/Locale/index.js'\nimport { useTranslation } from '../providers/Translation/index.js'\nimport { requests } from '../utilities/api.js'\n\ntype Result = [\n {\n data: any\n isError: boolean\n isLoading: boolean\n },\n {\n setParams: React.Dispatch<unknown>\n },\n]\n\ntype Options = {\n initialData?: any\n initialParams?: unknown\n}\n\ntype UsePayloadAPI = (url: string, options?: Options) => Result\n\nexport const usePayloadAPI: UsePayloadAPI = (url, options = {}) => {\n const { initialData, initialParams = {} } = options\n\n const { i18n } = useTranslation()\n const [data, setData] = useState(initialData || {})\n const [params, setParams] = useState(initialParams)\n const [isLoading, setIsLoading] = useState(!initialData)\n const [isError, setIsError] = useState(false)\n const { code: locale } = useLocale()\n const hasInitialized = useRef(false)\n\n const search = qs.stringify(\n {\n locale,\n ...(typeof params === 'object' ? params : {}),\n },\n {\n addQueryPrefix: true,\n },\n )\n\n // If `initialData`, no need to make a request\n useEffect(() => {\n if (initialData && !hasInitialized.current) {\n hasInitialized.current = true\n return\n }\n\n const abortController = new AbortController()\n\n const fetchData = async () => {\n setIsError(false)\n setIsLoading(true)\n\n try {\n const response = await requests.get(`${url}${search}`, {\n headers: {\n 'Accept-Language': i18n.language,\n },\n signal: abortController.signal,\n })\n\n if (response.status > 201) {\n setIsError(true)\n }\n\n const json = await response.json()\n\n setData(json)\n setIsLoading(false)\n } catch (error) {\n if (!abortController.signal.aborted) {\n setIsError(true)\n setIsLoading(false)\n }\n }\n }\n\n if (url) {\n void fetchData()\n } else {\n setIsError(false)\n setIsLoading(false)\n }\n\n return () => {\n try {\n abortController.abort()\n } catch (_err) {\n // swallow error\n }\n }\n }, [url, locale, search, i18n.language, initialData])\n\n // If `initialData` changes, reset the state\n useEffect(() => {\n if (initialData && hasInitialized.current) {\n setData(initialData)\n }\n }, [initialData])\n\n return [{ data, isError, isLoading }, { setParams }]\n}\n"],"mappings":"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","ignoreList":[]}
@@ -29,7 +29,7 @@ export const useThrottledEffect = (callback, delay, t0) => {
29
29
  }
30
30
  const lastRan = useRef(t2);
31
31
  let t3;
32
- if ($[3] !== delay || $[4] !== callback) {
32
+ if ($[3] !== callback || $[4] !== delay) {
33
33
  t3 = () => {
34
34
  const handler = setTimeout(() => {
35
35
  if (Date.now() - lastRan.current >= delay) {
@@ -41,8 +41,8 @@ export const useThrottledEffect = (callback, delay, t0) => {
41
41
  clearTimeout(handler);
42
42
  };
43
43
  };
44
- $[3] = delay;
45
- $[4] = callback;
44
+ $[3] = callback;
45
+ $[4] = delay;
46
46
  $[5] = t3;
47
47
  } else {
48
48
  t3 = $[5];
@@ -1 +1 @@
1
- {"version":3,"file":"useThrottledEffect.js","names":["c","_c","useEffect","useRef","useThrottledEffect","callback","delay","t0","$","t1","undefined","deps","t2","Symbol","for","Date","now","lastRan","t3","handler","setTimeout","current","clearTimeout","t4"],"sources":["../../src/hooks/useThrottledEffect.ts"],"sourcesContent":["'use client'\nimport type React from 'react'\n\nimport { useEffect, useRef } from 'react'\n\ntype useThrottledEffect = (\n callback: React.EffectCallback,\n delay: number,\n deps: React.DependencyList,\n) => void\n\n/**\n * A hook that will throttle the execution of a callback function inside a useEffect.\n * This is useful for things like throttling loading states or other UI updates.\n * @param callback The callback function to be executed.\n * @param delay The delay in milliseconds to throttle the callback.\n * @param deps The dependencies to watch for changes.\n */\nexport const useThrottledEffect: useThrottledEffect = (callback, delay, deps = []) => {\n const lastRan = useRef(Date.now())\n\n useEffect(() => {\n const handler = setTimeout(\n () => {\n if (Date.now() - lastRan.current >= delay) {\n callback()\n lastRan.current = Date.now()\n }\n },\n delay - (Date.now() - lastRan.current),\n )\n\n return () => {\n clearTimeout(handler)\n }\n }, [delay, ...deps])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,SAAS,EAAEC,MAAM,QAAQ;AAQlC;;;;;;;AAOA,OAAO,MAAMC,kBAAA,GAAyCA,CAAAC,QAAA,EAAAC,KAAA,EAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAD,CAAA,QAAAD,EAAA;IAAkBE,EAAA,GAAAF,EAAS,KAAAG,SAAA,QAATH,EAAS;IAAAC,CAAA,MAAAD,EAAA;IAAAC,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAT,MAAAG,IAAA,GAAAF,EAAS;EAAA,IAAAG,EAAA;EAAA,IAAAJ,CAAA,QAAAK,MAAA,CAAAC,GAAA;IACxDF,EAAA,GAAAG,IAAA,CAAAC,GAAA,CAAQ;IAAAR,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAA/B,MAAAS,OAAA,GAAgBd,MAAA,CAAOS,EAAQ;EAAA,IAAAM,EAAA;EAAA,IAAAV,CAAA,QAAAF,KAAA,IAAAE,CAAA,QAAAH,QAAA;IAErBa,EAAA,GAAAA,CAAA;MACR,MAAAC,OAAA,GAAgBC,UAAA;QAAA,IAERL,IAAA,CAAAC,GAAA,CAAQ,IAAKC,OAAA,CAAAI,OAAe,IAAIf,KAAA;UAClCD,QAAA;UACAY,OAAA,CAAAI,OAAA,GAAkBN,IAAA,CAAAC,GAAA,CAAQ;QAAA;MAAA,GAG9BV,KAAA,IAASS,IAAA,CAAAC,GAAA,CAAQ,IAAKC,OAAA,CAAAI,OAAe,CAAD;MAAA;QAIpCC,YAAA,CAAaH,OAAA;MAAA;IAAA;IAEjBX,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAH,QAAA;IAAAG,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAA,IAAAe,EAAA;EAAA,IAAAf,CAAA,QAAAF,KAAA,IAAAE,CAAA,QAAAG,IAAA;IAAGY,EAAA,IAACjB,KAAA,KAAUK,IAAA;IAAKH,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAG,IAAA;IAAAH,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAdnBN,SAAA,CAAUgB,EAcV,EAAGK,EAAgB;AAAA,CACrB","ignoreList":[]}
1
+ {"version":3,"file":"useThrottledEffect.js","names":["c","_c","useEffect","useRef","useThrottledEffect","callback","delay","t0","$","t1","undefined","deps","t2","Symbol","for","Date","now","lastRan","t3","handler","setTimeout","current","clearTimeout","t4"],"sources":["../../src/hooks/useThrottledEffect.ts"],"sourcesContent":["'use client'\nimport type React from 'react'\n\nimport { useEffect, useRef } from 'react'\n\ntype useThrottledEffect = (\n callback: React.EffectCallback,\n delay: number,\n deps: React.DependencyList,\n) => void\n\n/**\n * A hook that will throttle the execution of a callback function inside a useEffect.\n * This is useful for things like throttling loading states or other UI updates.\n * @param callback The callback function to be executed.\n * @param delay The delay in milliseconds to throttle the callback.\n * @param deps The dependencies to watch for changes.\n */\nexport const useThrottledEffect: useThrottledEffect = (callback, delay, deps = []) => {\n const lastRan = useRef(Date.now())\n\n useEffect(() => {\n const handler = setTimeout(\n () => {\n if (Date.now() - lastRan.current >= delay) {\n callback()\n lastRan.current = Date.now()\n }\n },\n delay - (Date.now() - lastRan.current),\n )\n\n return () => {\n clearTimeout(handler)\n }\n }, [delay, ...deps])\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;AAGA,SAASC,SAAS,EAAEC,MAAM,QAAQ;AAQlC;;;;;;;AAOA,OAAO,MAAMC,kBAAA,GAAyCA,CAAAC,QAAA,EAAAC,KAAA,EAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAA,IAAAQ,EAAA;EAAA,IAAAD,CAAA,QAAAD,EAAA;IAAkBE,EAAA,GAAAF,EAAS,KAAAG,SAAA,QAATH,EAAS;IAAAC,CAAA,MAAAD,EAAA;IAAAC,CAAA,MAAAC,EAAA;EAAA;IAAAA,EAAA,GAAAD,CAAA;EAAA;EAAT,MAAAG,IAAA,GAAAF,EAAS;EAAA,IAAAG,EAAA;EAAA,IAAAJ,CAAA,QAAAK,MAAA,CAAAC,GAAA;IACxDF,EAAA,GAAAG,IAAA,CAAAC,GAAA,CAAQ;IAAAR,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAA/B,MAAAS,OAAA,GAAgBd,MAAA,CAAOS,EAAQ;EAAA,IAAAM,EAAA;EAAA,IAAAV,CAAA,QAAAH,QAAA,IAAAG,CAAA,QAAAF,KAAA;IAErBY,EAAA,GAAAA,CAAA;MACR,MAAAC,OAAA,GAAgBC,UAAA;QAAA,IAERL,IAAA,CAAAC,GAAA,CAAQ,IAAKC,OAAA,CAAAI,OAAe,IAAIf,KAAA;UAClCD,QAAA;UACAY,OAAA,CAAAI,OAAA,GAAkBN,IAAA,CAAAC,GAAA,CAAQ;QAAA;MAAA,GAG9BV,KAAA,IAASS,IAAA,CAAAC,GAAA,CAAQ,IAAKC,OAAA,CAAAI,OAAe,CAAD;MAAA;QAIpCC,YAAA,CAAaH,OAAA;MAAA;IAAA;IAEjBX,CAAA,MAAAH,QAAA;IAAAG,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAU,EAAA;EAAA;IAAAA,EAAA,GAAAV,CAAA;EAAA;EAAA,IAAAe,EAAA;EAAA,IAAAf,CAAA,QAAAF,KAAA,IAAAE,CAAA,QAAAG,IAAA;IAAGY,EAAA,IAACjB,KAAA,KAAUK,IAAA;IAAKH,CAAA,MAAAF,KAAA;IAAAE,CAAA,MAAAG,IAAA;IAAAH,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAdnBN,SAAA,CAAUgB,EAcV,EAAGK,EAAgB;AAAA,CACrB","ignoreList":[]}