@payloadcms/ui 3.0.0-beta.9 → 3.0.0-canary.6041f49

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 (276) hide show
  1. package/dist/elements/ArrayAction/index.d.ts +1 -0
  2. package/dist/elements/ArrayAction/index.d.ts.map +1 -1
  3. package/dist/elements/ArrayAction/index.js +3 -3
  4. package/dist/elements/ArrayAction/index.js.map +1 -1
  5. package/dist/elements/Autosave/index.d.ts.map +1 -1
  6. package/dist/elements/Autosave/index.js +15 -3
  7. package/dist/elements/Autosave/index.js.map +1 -1
  8. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  9. package/dist/elements/ColumnSelector/index.js +8 -2
  10. package/dist/elements/ColumnSelector/index.js.map +1 -1
  11. package/dist/elements/DocumentControls/index.js +1 -1
  12. package/dist/elements/DocumentControls/index.js.map +1 -1
  13. package/dist/elements/DocumentControls/index.scss +2 -2
  14. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  15. package/dist/elements/DocumentDrawer/DrawerContent.js +7 -7
  16. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  17. package/dist/elements/DocumentFields/index.js +1 -1
  18. package/dist/elements/DocumentFields/index.js.map +1 -1
  19. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  20. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +3 -2
  21. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  22. package/dist/elements/DocumentHeader/Tabs/index.d.ts +2 -0
  23. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  24. package/dist/elements/DocumentHeader/Tabs/index.js +3 -2
  25. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  26. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  27. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +1 -1
  28. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  29. package/dist/elements/DocumentHeader/index.d.ts +2 -0
  30. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  31. package/dist/elements/DocumentHeader/index.js +3 -2
  32. package/dist/elements/DocumentHeader/index.js.map +1 -1
  33. package/dist/elements/EditMany/index.js +2 -2
  34. package/dist/elements/EditMany/index.js.map +1 -1
  35. package/dist/elements/EditUpload/index.d.ts +12 -0
  36. package/dist/elements/EditUpload/index.d.ts.map +1 -1
  37. package/dist/elements/EditUpload/index.js +25 -25
  38. package/dist/elements/EditUpload/index.js.map +1 -1
  39. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  40. package/dist/elements/FieldSelect/index.js +4 -1
  41. package/dist/elements/FieldSelect/index.js.map +1 -1
  42. package/dist/elements/HydrateClientUser/index.d.ts +2 -2
  43. package/dist/elements/HydrateClientUser/index.d.ts.map +1 -1
  44. package/dist/elements/HydrateClientUser/index.js.map +1 -1
  45. package/dist/elements/ListControls/index.d.ts.map +1 -1
  46. package/dist/elements/ListControls/index.js +16 -3
  47. package/dist/elements/ListControls/index.js.map +1 -1
  48. package/dist/elements/PublishMany/index.js +1 -1
  49. package/dist/elements/PublishMany/index.js.map +1 -1
  50. package/dist/elements/ReactSelect/index.d.ts.map +1 -1
  51. package/dist/elements/ReactSelect/index.js +4 -1
  52. package/dist/elements/ReactSelect/index.js.map +1 -1
  53. package/dist/elements/Save/index.d.ts.map +1 -1
  54. package/dist/elements/Save/index.js +7 -1
  55. package/dist/elements/Save/index.js.map +1 -1
  56. package/dist/elements/SaveDraft/index.d.ts.map +1 -1
  57. package/dist/elements/SaveDraft/index.js +8 -5
  58. package/dist/elements/SaveDraft/index.js.map +1 -1
  59. package/dist/elements/StayLoggedIn/index.d.ts +2 -4
  60. package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
  61. package/dist/elements/StayLoggedIn/index.js +7 -6
  62. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  63. package/dist/elements/StayLoggedIn/index.scss +1 -1
  64. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts.map +1 -1
  65. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +6 -2
  66. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  67. package/dist/elements/Table/DefaultCell/fields/JSON/index.js +1 -1
  68. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  69. package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
  70. package/dist/elements/Table/DefaultCell/index.js +1 -1
  71. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  72. package/dist/elements/Table/index.d.ts +1 -0
  73. package/dist/elements/Table/index.d.ts.map +1 -1
  74. package/dist/elements/Table/index.js.map +1 -1
  75. package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
  76. package/dist/elements/TableColumns/buildColumnState.js +7 -1
  77. package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
  78. package/dist/elements/Upload/index.d.ts.map +1 -1
  79. package/dist/elements/Upload/index.js +37 -1
  80. package/dist/elements/Upload/index.js.map +1 -1
  81. package/dist/elements/Upload/index.scss +12 -1
  82. package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -1
  83. package/dist/elements/WhereBuilder/reduceFieldMap.js +1 -0
  84. package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -1
  85. package/dist/{providers/ComponentMap/buildComponentMap/WithServerSideProps.d.ts → elements/WithServerSideProps/index.d.ts} +1 -1
  86. package/dist/elements/WithServerSideProps/index.d.ts.map +1 -0
  87. package/dist/{providers/ComponentMap/buildComponentMap/WithServerSideProps.js → elements/WithServerSideProps/index.js} +3 -3
  88. package/dist/elements/WithServerSideProps/index.js.map +1 -0
  89. package/dist/exports/elements.d.ts +3 -2
  90. package/dist/exports/elements.d.ts.map +1 -1
  91. package/dist/exports/elements.js +5 -2
  92. package/dist/exports/elements.js.map +1 -1
  93. package/dist/exports/fields.d.ts +2 -0
  94. package/dist/exports/fields.d.ts.map +1 -0
  95. package/dist/exports/fields.js +3 -0
  96. package/dist/exports/fields.js.map +1 -0
  97. package/dist/exports/providers.d.ts +2 -0
  98. package/dist/exports/providers.d.ts.map +1 -0
  99. package/dist/exports/providers.js +3 -0
  100. package/dist/exports/providers.js.map +1 -0
  101. package/dist/fields/Array/ArrayRow.d.ts +1 -0
  102. package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
  103. package/dist/fields/Array/ArrayRow.js +4 -3
  104. package/dist/fields/Array/ArrayRow.js.map +1 -1
  105. package/dist/fields/Array/index.d.ts +1 -2
  106. package/dist/fields/Array/index.d.ts.map +1 -1
  107. package/dist/fields/Array/index.js +4 -3
  108. package/dist/fields/Array/index.js.map +1 -1
  109. package/dist/fields/Blocks/BlockRow.d.ts +1 -0
  110. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  111. package/dist/fields/Blocks/BlockRow.js +4 -3
  112. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  113. package/dist/fields/Blocks/RowActions.d.ts +1 -0
  114. package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
  115. package/dist/fields/Blocks/RowActions.js +2 -1
  116. package/dist/fields/Blocks/RowActions.js.map +1 -1
  117. package/dist/fields/Blocks/index.d.ts +2 -2
  118. package/dist/fields/Blocks/index.d.ts.map +1 -1
  119. package/dist/fields/Blocks/index.js +3 -2
  120. package/dist/fields/Blocks/index.js.map +1 -1
  121. package/dist/fields/Checkbox/Input.d.ts +3 -3
  122. package/dist/fields/Checkbox/Input.d.ts.map +1 -1
  123. package/dist/fields/Checkbox/Input.js.map +1 -1
  124. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  125. package/dist/fields/Checkbox/index.js +3 -1
  126. package/dist/fields/Checkbox/index.js.map +1 -1
  127. package/dist/fields/Checkbox/types.d.ts +0 -2
  128. package/dist/fields/Checkbox/types.d.ts.map +1 -1
  129. package/dist/fields/Checkbox/types.js.map +1 -1
  130. package/dist/fields/Code/index.d.ts +1 -2
  131. package/dist/fields/Code/index.d.ts.map +1 -1
  132. package/dist/fields/Code/index.js.map +1 -1
  133. package/dist/fields/Collapsible/index.d.ts +0 -2
  134. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  135. package/dist/fields/Collapsible/index.js +2 -2
  136. package/dist/fields/Collapsible/index.js.map +1 -1
  137. package/dist/fields/ConfirmPassword/index.js +1 -1
  138. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  139. package/dist/fields/DateTime/index.d.ts +1 -2
  140. package/dist/fields/DateTime/index.d.ts.map +1 -1
  141. package/dist/fields/DateTime/index.js.map +1 -1
  142. package/dist/fields/Email/index.d.ts +1 -2
  143. package/dist/fields/Email/index.d.ts.map +1 -1
  144. package/dist/fields/Email/index.js.map +1 -1
  145. package/dist/fields/Group/index.d.ts +0 -2
  146. package/dist/fields/Group/index.d.ts.map +1 -1
  147. package/dist/fields/Group/index.js +3 -3
  148. package/dist/fields/Group/index.js.map +1 -1
  149. package/dist/fields/JSON/index.d.ts +2 -2
  150. package/dist/fields/JSON/index.d.ts.map +1 -1
  151. package/dist/fields/JSON/index.js +20 -1
  152. package/dist/fields/JSON/index.js.map +1 -1
  153. package/dist/fields/Number/index.d.ts +1 -2
  154. package/dist/fields/Number/index.d.ts.map +1 -1
  155. package/dist/fields/Number/index.js.map +1 -1
  156. package/dist/fields/Password/index.d.ts +0 -1
  157. package/dist/fields/Password/index.d.ts.map +1 -1
  158. package/dist/fields/Password/index.js.map +1 -1
  159. package/dist/fields/Point/index.d.ts +0 -2
  160. package/dist/fields/Point/index.d.ts.map +1 -1
  161. package/dist/fields/Point/index.js +2 -2
  162. package/dist/fields/Point/index.js.map +1 -1
  163. package/dist/fields/RadioGroup/Radio/index.d.ts.map +1 -1
  164. package/dist/fields/RadioGroup/Radio/index.js +3 -1
  165. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  166. package/dist/fields/RadioGroup/index.d.ts +1 -2
  167. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  168. package/dist/fields/RadioGroup/index.js.map +1 -1
  169. package/dist/fields/Relationship/types.d.ts +1 -2
  170. package/dist/fields/Relationship/types.d.ts.map +1 -1
  171. package/dist/fields/Relationship/types.js.map +1 -1
  172. package/dist/fields/RichText/index.d.ts +0 -2
  173. package/dist/fields/RichText/index.d.ts.map +1 -1
  174. package/dist/fields/RichText/index.js.map +1 -1
  175. package/dist/fields/Select/index.d.ts +1 -2
  176. package/dist/fields/Select/index.d.ts.map +1 -1
  177. package/dist/fields/Select/index.js.map +1 -1
  178. package/dist/fields/Text/index.d.ts.map +1 -1
  179. package/dist/fields/Text/index.js +2 -1
  180. package/dist/fields/Text/index.js.map +1 -1
  181. package/dist/fields/Text/types.d.ts +1 -2
  182. package/dist/fields/Text/types.d.ts.map +1 -1
  183. package/dist/fields/Text/types.js.map +1 -1
  184. package/dist/fields/Textarea/index.d.ts.map +1 -1
  185. package/dist/fields/Textarea/index.js +2 -1
  186. package/dist/fields/Textarea/index.js.map +1 -1
  187. package/dist/fields/Textarea/types.d.ts +1 -2
  188. package/dist/fields/Textarea/types.d.ts.map +1 -1
  189. package/dist/fields/Textarea/types.js.map +1 -1
  190. package/dist/fields/Upload/types.d.ts +0 -1
  191. package/dist/fields/Upload/types.d.ts.map +1 -1
  192. package/dist/fields/Upload/types.js.map +1 -1
  193. package/dist/fields/shared/index.d.ts +4 -2
  194. package/dist/fields/shared/index.d.ts.map +1 -1
  195. package/dist/fields/shared/index.js.map +1 -1
  196. package/dist/forms/FieldLabel/index.d.ts.map +1 -1
  197. package/dist/forms/FieldLabel/index.js +3 -1
  198. package/dist/forms/FieldLabel/index.js.map +1 -1
  199. package/dist/forms/FieldPropsProvider/index.d.ts +2 -0
  200. package/dist/forms/FieldPropsProvider/index.d.ts.map +1 -1
  201. package/dist/forms/FieldPropsProvider/index.js +5 -3
  202. package/dist/forms/FieldPropsProvider/index.js.map +1 -1
  203. package/dist/forms/RenderFields/RenderField.d.ts +1 -0
  204. package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
  205. package/dist/forms/RenderFields/RenderField.js +2 -1
  206. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  207. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  208. package/dist/forms/RenderFields/index.js +2 -1
  209. package/dist/forms/RenderFields/index.js.map +1 -1
  210. package/dist/forms/RowLabel/types.d.ts +2 -3
  211. package/dist/forms/RowLabel/types.d.ts.map +1 -1
  212. package/dist/forms/RowLabel/types.js +1 -4
  213. package/dist/forms/RowLabel/types.js.map +1 -1
  214. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts +3 -5
  215. package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
  216. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +2 -1
  217. package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
  218. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts +2 -2
  219. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts.map +1 -1
  220. package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js.map +1 -1
  221. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts +2 -2
  222. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts.map +1 -1
  223. package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js.map +1 -1
  224. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts +2 -2
  225. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -1
  226. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +1 -0
  227. package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -1
  228. package/dist/forms/buildStateFromSchema/index.d.ts +3 -5
  229. package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
  230. package/dist/forms/buildStateFromSchema/index.js.map +1 -1
  231. package/dist/forms/buildStateFromSchema/iterateFields.d.ts +3 -5
  232. package/dist/forms/buildStateFromSchema/iterateFields.d.ts.map +1 -1
  233. package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
  234. package/dist/forms/useField/index.d.ts.map +1 -1
  235. package/dist/forms/useField/index.js +3 -1
  236. package/dist/forms/useField/index.js.map +1 -1
  237. package/dist/graphics/Account/index.js +0 -9
  238. package/dist/graphics/Account/index.js.map +1 -1
  239. package/dist/providers/Auth/index.d.ts.map +1 -1
  240. package/dist/providers/Auth/index.js +2 -1
  241. package/dist/providers/Auth/index.js.map +1 -1
  242. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts +1 -1
  243. package/dist/providers/ComponentMap/buildComponentMap/collections.d.ts.map +1 -1
  244. package/dist/providers/ComponentMap/buildComponentMap/collections.js +16 -4
  245. package/dist/providers/ComponentMap/buildComponentMap/collections.js.map +1 -1
  246. package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
  247. package/dist/providers/ComponentMap/buildComponentMap/fields.js +52 -36
  248. package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
  249. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts +1 -1
  250. package/dist/providers/ComponentMap/buildComponentMap/globals.d.ts.map +1 -1
  251. package/dist/providers/ComponentMap/buildComponentMap/globals.js +16 -4
  252. package/dist/providers/ComponentMap/buildComponentMap/globals.js.map +1 -1
  253. package/dist/providers/ComponentMap/buildComponentMap/index.js +1 -1
  254. package/dist/providers/ComponentMap/buildComponentMap/index.js.map +1 -1
  255. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +4 -0
  256. package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
  257. package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
  258. package/dist/providers/ComponentMap/index.d.ts +0 -1
  259. package/dist/providers/ComponentMap/index.d.ts.map +1 -1
  260. package/dist/providers/ComponentMap/index.js +0 -1
  261. package/dist/providers/ComponentMap/index.js.map +1 -1
  262. package/dist/providers/DocumentInfo/index.js +8 -7
  263. package/dist/providers/DocumentInfo/index.js.map +1 -1
  264. package/dist/providers/EntityVisibility/index.d.ts +1 -1
  265. package/dist/providers/EntityVisibility/index.d.ts.map +1 -1
  266. package/dist/providers/EntityVisibility/index.js.map +1 -1
  267. package/dist/providers/Root/index.d.ts.map +1 -1
  268. package/dist/providers/Root/index.js +2 -1
  269. package/dist/providers/Root/index.js.map +1 -1
  270. package/dist/utilities/generateFieldID.d.ts +1 -1
  271. package/dist/utilities/generateFieldID.d.ts.map +1 -1
  272. package/dist/utilities/generateFieldID.js +2 -2
  273. package/dist/utilities/generateFieldID.js.map +1 -1
  274. package/package.json +32 -31
  275. package/dist/providers/ComponentMap/buildComponentMap/WithServerSideProps.d.ts.map +0 -1
  276. package/dist/providers/ComponentMap/buildComponentMap/WithServerSideProps.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAsB,KAAK,EAAE,MAAM,eAAe,CAAA;AAItF,OAAO,KAAmB,MAAM,OAAO,CAAA;AAQvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAA;AAgBpE,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CAC3C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAgIpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ListControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAIlE,OAAO,KAAsC,MAAM,OAAO,CAAA;AAQ1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAA;AAgBpE,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,gBAAgB,EAAE,sBAAsB,CAAA;IACxC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,QAAQ,EAAE,QAAQ,CAAA;IAClB,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAC7C,gBAAgB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAA;IACzC,iBAAiB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAA;CAC3C,CAAA;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA4IpD,CAAA"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import * as facelessUIImport from '@faceless-ui/window-info';
3
3
  import { getTranslation } from '@payloadcms/translations';
4
- import React, { useState } from 'react';
4
+ import React, { useEffect, useRef, useState } from 'react';
5
5
  import AnimateHeightImport from 'react-animate-height';
6
6
  const AnimateHeight = AnimateHeightImport.default || AnimateHeightImport;
7
7
  import { useUseTitleField } from '@payloadcms/ui/hooks/useUseAsTitle';
@@ -32,15 +32,27 @@ const baseClass = 'list-controls';
32
32
  const titleField = useUseTitleField(collectionConfig, fieldMap);
33
33
  const { i18n, t } = useTranslation();
34
34
  const { breakpoints: { s: smallBreak } } = useWindowInfo();
35
+ const hasWhereParam = useRef(Boolean(searchParams?.where));
35
36
  const shouldInitializeWhereOpened = validateWhereQuery(searchParams?.where);
36
37
  const [visibleDrawer, setVisibleDrawer] = useState(shouldInitializeWhereOpened ? 'where' : undefined);
38
+ useEffect(()=>{
39
+ if (hasWhereParam.current && !searchParams?.where) {
40
+ setVisibleDrawer(undefined);
41
+ hasWhereParam.current = false;
42
+ } else if (searchParams?.where) {
43
+ hasWhereParam.current = true;
44
+ }
45
+ }, [
46
+ setVisibleDrawer,
47
+ searchParams?.where
48
+ ]);
37
49
  return /*#__PURE__*/ React.createElement("div", {
38
50
  className: baseClass
39
51
  }, /*#__PURE__*/ React.createElement("div", {
40
52
  className: `${baseClass}__wrap`
41
53
  }, /*#__PURE__*/ React.createElement(SearchFilter, {
42
54
  fieldLabel: (titleField && getTranslation('label' in titleField.fieldComponentProps && typeof titleField.fieldComponentProps.label === 'string' ? titleField.fieldComponentProps.label : titleField.name, i18n)) ?? undefined,
43
- fieldName: titleField.name,
55
+ fieldName: titleField?.name,
44
56
  handleChange: handleSearchChange,
45
57
  listSearchableFields: getTextFieldsToBeSearched(collectionConfig.admin.listSearchableFields, fieldMap)
46
58
  }), /*#__PURE__*/ React.createElement("div", {
@@ -89,7 +101,8 @@ const baseClass = 'list-controls';
89
101
  id: `${baseClass}-where`
90
102
  }, /*#__PURE__*/ React.createElement(WhereBuilder, {
91
103
  collectionPluralLabel: collectionConfig?.labels?.plural,
92
- collectionSlug: collectionConfig.slug
104
+ collectionSlug: collectionConfig.slug,
105
+ key: String(hasWhereParam.current && !searchParams?.where)
93
106
  })), enableSort && /*#__PURE__*/ React.createElement(AnimateHeight, {
94
107
  className: `${baseClass}__sort`,
95
108
  height: visibleDrawer === 'sort' ? 'auto' : 0,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, FieldAffectingData, Where } from 'payload/types'\n\nimport * as facelessUIImport from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useState } from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nconst AnimateHeight = (AnimateHeightImport.default ||\n AnimateHeightImport) as typeof AnimateHeightImport.default\n\nimport { useUseTitleField } from '@payloadcms/ui/hooks/useUseAsTitle'\n\nimport type { FieldMap } from '../../utilities/buildComponentMap.js'\n\nimport { Chevron } from '../../icons/Chevron/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { DeleteMany } from '../DeleteMany/index.js'\nimport { EditMany } from '../EditMany/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { PublishMany } from '../PublishMany/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { UnpublishMany } from '../UnpublishMany/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport validateWhereQuery from '../WhereBuilder/validateWhereQuery.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport './index.scss'\n\nconst baseClass = 'list-controls'\n\nexport type ListControlsProps = {\n collectionConfig: ClientCollectionConfig\n enableColumns?: boolean\n enableSort?: boolean\n fieldMap: FieldMap\n handleSearchChange?: (search: string) => void\n handleSortChange?: (sort: string) => void\n handleWhereChange?: (where: Where) => void\n}\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const { collectionConfig, enableColumns = true, enableSort = false, fieldMap } = props\n\n const { useWindowInfo } = facelessUIImport\n\n const { handleSearchChange } = useListQuery()\n const { searchParams } = useSearchParams()\n const titleField = useUseTitleField(collectionConfig, fieldMap)\n const { i18n, t } = useTranslation()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const shouldInitializeWhereOpened = validateWhereQuery(searchParams?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchFilter\n fieldLabel={\n (titleField &&\n getTranslation(\n 'label' in titleField.fieldComponentProps &&\n typeof titleField.fieldComponentProps.label === 'string'\n ? titleField.fieldComponentProps.label\n : titleField.name,\n i18n,\n )) ??\n undefined\n }\n fieldName={titleField.name}\n handleChange={handleSearchChange}\n listSearchableFields={getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n fieldMap,\n )}\n />\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && (\n <React.Fragment>\n <EditMany collection={collectionConfig} fieldMap={fieldMap} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n <DeleteMany collection={collectionConfig} />\n </React.Fragment>\n )}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns ${\n visibleDrawer === 'columns' ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<Chevron />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where ${\n visibleDrawer === 'where' ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<Chevron />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<Chevron />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n />\n </AnimateHeight>\n {enableSort && (\n <AnimateHeight\n className={`${baseClass}__sort`}\n height={visibleDrawer === 'sort' ? 'auto' : 0}\n id={`${baseClass}-sort`}\n >\n <p>Sort Complex</p>\n {/* <SortComplex\n collection={collection}\n handleChange={handleSortChange}\n modifySearchQuery={modifySearchQuery}\n /> */}\n </AnimateHeight>\n )}\n </div>\n )\n}\n"],"names":["facelessUIImport","getTranslation","React","useState","AnimateHeightImport","AnimateHeight","default","useUseTitleField","Chevron","useListQuery","useSearchParams","useTranslation","ColumnSelector","DeleteMany","EditMany","Pill","PublishMany","SearchFilter","UnpublishMany","WhereBuilder","validateWhereQuery","getTextFieldsToBeSearched","baseClass","ListControls","props","collectionConfig","enableColumns","enableSort","fieldMap","useWindowInfo","handleSearchChange","searchParams","titleField","i18n","t","breakpoints","s","smallBreak","shouldInitializeWhereOpened","where","visibleDrawer","setVisibleDrawer","undefined","div","className","fieldLabel","fieldComponentProps","label","name","fieldName","handleChange","listSearchableFields","admin","Fragment","collection","aria-controls","aria-expanded","icon","onClick","pillStyle","height","id","collectionSlug","slug","collectionPluralLabel","labels","plural","p"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/ListControls/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, Where } from 'payload/types'\n\nimport * as facelessUIImport from '@faceless-ui/window-info'\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useRef, useState } from 'react'\nimport AnimateHeightImport from 'react-animate-height'\n\nconst AnimateHeight = (AnimateHeightImport.default ||\n AnimateHeightImport) as typeof AnimateHeightImport.default\n\nimport { useUseTitleField } from '@payloadcms/ui/hooks/useUseAsTitle'\n\nimport type { FieldMap } from '../../utilities/buildComponentMap.js'\n\nimport { Chevron } from '../../icons/Chevron/index.js'\nimport { useListQuery } from '../../providers/ListQuery/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ColumnSelector } from '../ColumnSelector/index.js'\nimport { DeleteMany } from '../DeleteMany/index.js'\nimport { EditMany } from '../EditMany/index.js'\nimport { Pill } from '../Pill/index.js'\nimport { PublishMany } from '../PublishMany/index.js'\nimport { SearchFilter } from '../SearchFilter/index.js'\nimport { UnpublishMany } from '../UnpublishMany/index.js'\nimport { WhereBuilder } from '../WhereBuilder/index.js'\nimport validateWhereQuery from '../WhereBuilder/validateWhereQuery.js'\nimport { getTextFieldsToBeSearched } from './getTextFieldsToBeSearched.js'\nimport './index.scss'\n\nconst baseClass = 'list-controls'\n\nexport type ListControlsProps = {\n collectionConfig: ClientCollectionConfig\n enableColumns?: boolean\n enableSort?: boolean\n fieldMap: FieldMap\n handleSearchChange?: (search: string) => void\n handleSortChange?: (sort: string) => void\n handleWhereChange?: (where: Where) => void\n}\n\n/**\n * The ListControls component is used to render the controls (search, filter, where)\n * for a collection's list view. You can find those directly above the table which lists\n * the collection's documents.\n */\nexport const ListControls: React.FC<ListControlsProps> = (props) => {\n const { collectionConfig, enableColumns = true, enableSort = false, fieldMap } = props\n\n const { useWindowInfo } = facelessUIImport\n\n const { handleSearchChange } = useListQuery()\n const { searchParams } = useSearchParams()\n const titleField = useUseTitleField(collectionConfig, fieldMap)\n const { i18n, t } = useTranslation()\n const {\n breakpoints: { s: smallBreak },\n } = useWindowInfo()\n\n const hasWhereParam = useRef(Boolean(searchParams?.where))\n\n const shouldInitializeWhereOpened = validateWhereQuery(searchParams?.where)\n const [visibleDrawer, setVisibleDrawer] = useState<'columns' | 'sort' | 'where'>(\n shouldInitializeWhereOpened ? 'where' : undefined,\n )\n\n useEffect(() => {\n if (hasWhereParam.current && !searchParams?.where) {\n setVisibleDrawer(undefined)\n hasWhereParam.current = false\n } else if (searchParams?.where) {\n hasWhereParam.current = true\n }\n }, [setVisibleDrawer, searchParams?.where])\n\n return (\n <div className={baseClass}>\n <div className={`${baseClass}__wrap`}>\n <SearchFilter\n fieldLabel={\n (titleField &&\n getTranslation(\n 'label' in titleField.fieldComponentProps &&\n typeof titleField.fieldComponentProps.label === 'string'\n ? titleField.fieldComponentProps.label\n : titleField.name,\n i18n,\n )) ??\n undefined\n }\n fieldName={titleField?.name}\n handleChange={handleSearchChange}\n listSearchableFields={getTextFieldsToBeSearched(\n collectionConfig.admin.listSearchableFields,\n fieldMap,\n )}\n />\n <div className={`${baseClass}__buttons`}>\n <div className={`${baseClass}__buttons-wrap`}>\n {!smallBreak && (\n <React.Fragment>\n <EditMany collection={collectionConfig} fieldMap={fieldMap} />\n <PublishMany collection={collectionConfig} />\n <UnpublishMany collection={collectionConfig} />\n <DeleteMany collection={collectionConfig} />\n </React.Fragment>\n )}\n {enableColumns && (\n <Pill\n aria-controls={`${baseClass}-columns`}\n aria-expanded={visibleDrawer === 'columns'}\n className={`${baseClass}__toggle-columns ${\n visibleDrawer === 'columns' ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<Chevron />}\n onClick={() =>\n setVisibleDrawer(visibleDrawer !== 'columns' ? 'columns' : undefined)\n }\n pillStyle=\"light\"\n >\n {t('general:columns')}\n </Pill>\n )}\n <Pill\n aria-controls={`${baseClass}-where`}\n aria-expanded={visibleDrawer === 'where'}\n className={`${baseClass}__toggle-where ${\n visibleDrawer === 'where' ? `${baseClass}__buttons-active` : ''\n }`}\n icon={<Chevron />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'where' ? 'where' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:filters')}\n </Pill>\n {enableSort && (\n <Pill\n aria-controls={`${baseClass}-sort`}\n aria-expanded={visibleDrawer === 'sort'}\n className={`${baseClass}__toggle-sort`}\n icon={<Chevron />}\n onClick={() => setVisibleDrawer(visibleDrawer !== 'sort' ? 'sort' : undefined)}\n pillStyle=\"light\"\n >\n {t('general:sort')}\n </Pill>\n )}\n </div>\n </div>\n </div>\n {enableColumns && (\n <AnimateHeight\n className={`${baseClass}__columns`}\n height={visibleDrawer === 'columns' ? 'auto' : 0}\n id={`${baseClass}-columns`}\n >\n <ColumnSelector collectionSlug={collectionConfig.slug} />\n </AnimateHeight>\n )}\n <AnimateHeight\n className={`${baseClass}__where`}\n height={visibleDrawer === 'where' ? 'auto' : 0}\n id={`${baseClass}-where`}\n >\n <WhereBuilder\n collectionPluralLabel={collectionConfig?.labels?.plural}\n collectionSlug={collectionConfig.slug}\n key={String(hasWhereParam.current && !searchParams?.where)}\n />\n </AnimateHeight>\n {enableSort && (\n <AnimateHeight\n className={`${baseClass}__sort`}\n height={visibleDrawer === 'sort' ? 'auto' : 0}\n id={`${baseClass}-sort`}\n >\n <p>Sort Complex</p>\n {/* <SortComplex\n collection={collection}\n handleChange={handleSortChange}\n modifySearchQuery={modifySearchQuery}\n /> */}\n </AnimateHeight>\n )}\n </div>\n )\n}\n"],"names":["facelessUIImport","getTranslation","React","useEffect","useRef","useState","AnimateHeightImport","AnimateHeight","default","useUseTitleField","Chevron","useListQuery","useSearchParams","useTranslation","ColumnSelector","DeleteMany","EditMany","Pill","PublishMany","SearchFilter","UnpublishMany","WhereBuilder","validateWhereQuery","getTextFieldsToBeSearched","baseClass","ListControls","props","collectionConfig","enableColumns","enableSort","fieldMap","useWindowInfo","handleSearchChange","searchParams","titleField","i18n","t","breakpoints","s","smallBreak","hasWhereParam","Boolean","where","shouldInitializeWhereOpened","visibleDrawer","setVisibleDrawer","undefined","current","div","className","fieldLabel","fieldComponentProps","label","name","fieldName","handleChange","listSearchableFields","admin","Fragment","collection","aria-controls","aria-expanded","icon","onClick","pillStyle","height","id","collectionSlug","slug","collectionPluralLabel","labels","plural","key","String","p"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -41,7 +41,7 @@ export const PublishMany = (props)=>{
41
41
  _status: {
42
42
  not_equals: 'published'
43
43
  }
44
- })}`, {
44
+ })}&draft=true`, {
45
45
  body: JSON.stringify({
46
46
  _status: 'published'
47
47
  }),
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/PublishMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload/types'\n\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'publish-many'\n\nexport type PublishManyProps = {\n collection: ClientCollectionConfig\n}\n\nexport const PublishMany: React.FC<PublishManyProps> = (props) => {\n const { Modal, useModal } = facelessUIImport\n const { clearRouteCache } = useRouteCache()\n\n const { collection: { slug, labels: { plural }, versions } = {} } = props\n\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const { permissions } = useAuth()\n const { toggleModal } = useModal()\n const { i18n, t } = useTranslation()\n const { getQueryParams, selectAll } = useSelection()\n const [submitted, setSubmitted] = useState(false)\n const router = useRouter()\n const { stringifyParams } = useSearchParams()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasPermission = collectionPermissions?.update?.permission\n\n const modalSlug = `publish-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handlePublish = useCallback(async () => {\n setSubmitted(true)\n await requests\n .patch(\n `${serverURL}${api}/${slug}${getQueryParams({ _status: { not_equals: 'published' } })}`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n },\n )\n .then(async (res) => {\n try {\n const json = await res.json()\n toggleModal(modalSlug)\n if (res.status < 400) {\n toast.success(t('general:updatedSuccessfully'))\n router.replace(\n stringifyParams({\n params: {\n page: selectAll ? '1' : undefined,\n },\n }),\n )\n\n clearRouteCache()\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n }, [\n addDefaultError,\n api,\n getQueryParams,\n i18n.language,\n modalSlug,\n selectAll,\n serverURL,\n slug,\n t,\n toggleModal,\n router,\n stringifyParams,\n clearRouteCache,\n ])\n\n if (!versions?.drafts || selectAll === SelectAllStatus.None || !hasPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSubmitted(false)\n toggleModal(modalSlug)\n }}\n >\n {t('version:publish')}\n </Pill>\n <Modal className={baseClass} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__template`}>\n <h1>{t('version:confirmPublish')}</h1>\n <p>{t('version:aboutToPublishSelection', { label: getTranslation(plural, i18n) })}</p>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={submitted ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-publish\" onClick={submitted ? undefined : handlePublish}>\n {submitted ? t('version:publishing') : t('general:confirm')}\n </Button>\n </MinimalTemplate>\n </Modal>\n </React.Fragment>\n )\n}\n"],"names":["facelessUIImport","getTranslation","useRouter","React","useCallback","useState","toast","useAuth","useConfig","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","MinimalTemplate","requests","Button","Pill","baseClass","PublishMany","props","Modal","useModal","clearRouteCache","collection","slug","labels","plural","versions","routes","api","serverURL","permissions","toggleModal","i18n","t","getQueryParams","selectAll","submitted","setSubmitted","router","stringifyParams","collectionPermissions","collections","hasPermission","update","permission","modalSlug","addDefaultError","error","handlePublish","patch","_status","not_equals","body","JSON","stringify","headers","language","then","res","json","status","success","replace","params","page","undefined","errors","forEach","message","e","drafts","None","Fragment","className","onClick","h1","p","label","buttonStyle","id","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/PublishMany/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig } from 'payload/types'\n\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport { getTranslation } from '@payloadcms/translations'\nimport { useRouter } from 'next/navigation.js'\nimport React, { useCallback, useState } from 'react'\nimport { toast } from 'react-toastify'\n\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useRouteCache } from '../../providers/RouteCache/index.js'\nimport { useSearchParams } from '../../providers/SearchParams/index.js'\nimport { SelectAllStatus, useSelection } from '../../providers/Selection/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { MinimalTemplate } from '../../templates/Minimal/index.js'\nimport { requests } from '../../utilities/api.js'\nimport { Button } from '../Button/index.js'\nimport { Pill } from '../Pill/index.js'\nimport './index.scss'\n\nconst baseClass = 'publish-many'\n\nexport type PublishManyProps = {\n collection: ClientCollectionConfig\n}\n\nexport const PublishMany: React.FC<PublishManyProps> = (props) => {\n const { Modal, useModal } = facelessUIImport\n const { clearRouteCache } = useRouteCache()\n\n const { collection: { slug, labels: { plural }, versions } = {} } = props\n\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const { permissions } = useAuth()\n const { toggleModal } = useModal()\n const { i18n, t } = useTranslation()\n const { getQueryParams, selectAll } = useSelection()\n const [submitted, setSubmitted] = useState(false)\n const router = useRouter()\n const { stringifyParams } = useSearchParams()\n\n const collectionPermissions = permissions?.collections?.[slug]\n const hasPermission = collectionPermissions?.update?.permission\n\n const modalSlug = `publish-${slug}`\n\n const addDefaultError = useCallback(() => {\n toast.error(t('error:unknown'))\n }, [t])\n\n const handlePublish = useCallback(async () => {\n setSubmitted(true)\n await requests\n .patch(\n `${serverURL}${api}/${slug}${getQueryParams({ _status: { not_equals: 'published' } })}&draft=true`,\n {\n body: JSON.stringify({\n _status: 'published',\n }),\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/json',\n },\n },\n )\n .then(async (res) => {\n try {\n const json = await res.json()\n toggleModal(modalSlug)\n if (res.status < 400) {\n toast.success(t('general:updatedSuccessfully'))\n router.replace(\n stringifyParams({\n params: {\n page: selectAll ? '1' : undefined,\n },\n }),\n )\n\n clearRouteCache()\n return null\n }\n\n if (json.errors) {\n json.errors.forEach((error) => toast.error(error.message))\n } else {\n addDefaultError()\n }\n return false\n } catch (e) {\n return addDefaultError()\n }\n })\n }, [\n addDefaultError,\n api,\n getQueryParams,\n i18n.language,\n modalSlug,\n selectAll,\n serverURL,\n slug,\n t,\n toggleModal,\n router,\n stringifyParams,\n clearRouteCache,\n ])\n\n if (!versions?.drafts || selectAll === SelectAllStatus.None || !hasPermission) {\n return null\n }\n\n return (\n <React.Fragment>\n <Pill\n className={`${baseClass}__toggle`}\n onClick={() => {\n setSubmitted(false)\n toggleModal(modalSlug)\n }}\n >\n {t('version:publish')}\n </Pill>\n <Modal className={baseClass} slug={modalSlug}>\n <MinimalTemplate className={`${baseClass}__template`}>\n <h1>{t('version:confirmPublish')}</h1>\n <p>{t('version:aboutToPublishSelection', { label: getTranslation(plural, i18n) })}</p>\n <Button\n buttonStyle=\"secondary\"\n id=\"confirm-cancel\"\n onClick={submitted ? undefined : () => toggleModal(modalSlug)}\n type=\"button\"\n >\n {t('general:cancel')}\n </Button>\n <Button id=\"confirm-publish\" onClick={submitted ? undefined : handlePublish}>\n {submitted ? t('version:publishing') : t('general:confirm')}\n </Button>\n </MinimalTemplate>\n </Modal>\n </React.Fragment>\n )\n}\n"],"names":["facelessUIImport","getTranslation","useRouter","React","useCallback","useState","toast","useAuth","useConfig","useRouteCache","useSearchParams","SelectAllStatus","useSelection","useTranslation","MinimalTemplate","requests","Button","Pill","baseClass","PublishMany","props","Modal","useModal","clearRouteCache","collection","slug","labels","plural","versions","routes","api","serverURL","permissions","toggleModal","i18n","t","getQueryParams","selectAll","submitted","setSubmitted","router","stringifyParams","collectionPermissions","collections","hasPermission","update","permission","modalSlug","addDefaultError","error","handlePublish","patch","_status","not_equals","body","JSON","stringify","headers","language","then","res","json","status","success","replace","params","page","undefined","errors","forEach","message","e","drafts","None","Fragment","className","onClick","h1","p","label","buttonStyle","id","type"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAGA,YAAYA,sBAAsB,qBAAoB;AACtD,SAASC,cAAc,QAAQ,2BAA0B;AACzD,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,SAASC,WAAW,EAAEC,QAAQ,QAAQ,QAAO;AACpD,SAASC,KAAK,QAAQ,iBAAgB;AAEtC,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,aAAa,QAAQ,sCAAqC;AACnE,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,eAAe,EAAEC,YAAY,QAAQ,qCAAoC;AAClF,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,QAAQ,QAAQ,yBAAwB;AACjD,SAASC,MAAM,QAAQ,qBAAoB;AAC3C,SAASC,IAAI,QAAQ,mBAAkB;AAGvC,MAAMC,YAAY;AAMlB,OAAO,MAAMC,cAA0C,CAACC;IACtD,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAGtB;IAC5B,MAAM,EAAEuB,eAAe,EAAE,GAAGd;IAE5B,MAAM,EAAEe,YAAY,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,MAAM,EAAE,EAAEC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAE,GAAGR;IAEpE,MAAM,EACJS,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAGvB;IACJ,MAAM,EAAEwB,WAAW,EAAE,GAAGzB;IACxB,MAAM,EAAE0B,WAAW,EAAE,GAAGX;IACxB,MAAM,EAAEY,IAAI,EAAEC,CAAC,EAAE,GAAGtB;IACpB,MAAM,EAAEuB,cAAc,EAAEC,SAAS,EAAE,GAAGzB;IACtC,MAAM,CAAC0B,WAAWC,aAAa,GAAGlC,SAAS;IAC3C,MAAMmC,SAAStC;IACf,MAAM,EAAEuC,eAAe,EAAE,GAAG/B;IAE5B,MAAMgC,wBAAwBV,aAAaW,aAAa,CAAClB,KAAK;IAC9D,MAAMmB,gBAAgBF,uBAAuBG,QAAQC;IAErD,MAAMC,YAAY,CAAC,QAAQ,EAAEtB,KAAK,CAAC;IAEnC,MAAMuB,kBAAkB5C,YAAY;QAClCE,MAAM2C,KAAK,CAACd,EAAE;IAChB,GAAG;QAACA;KAAE;IAEN,MAAMe,gBAAgB9C,YAAY;QAChCmC,aAAa;QACb,MAAMxB,SACHoC,KAAK,CACJ,CAAC,EAAEpB,UAAU,EAAED,IAAI,CAAC,EAAEL,KAAK,EAAEW,eAAe;YAAEgB,SAAS;gBAAEC,YAAY;YAAY;QAAE,GAAG,WAAW,CAAC,EAClG;YACEC,MAAMC,KAAKC,SAAS,CAAC;gBACnBJ,SAAS;YACX;YACAK,SAAS;gBACP,mBAAmBvB,KAAKwB,QAAQ;gBAChC,gBAAgB;YAClB;QACF,GAEDC,IAAI,CAAC,OAAOC;YACX,IAAI;gBACF,MAAMC,OAAO,MAAMD,IAAIC,IAAI;gBAC3B5B,YAAYc;gBACZ,IAAIa,IAAIE,MAAM,GAAG,KAAK;oBACpBxD,MAAMyD,OAAO,CAAC5B,EAAE;oBAChBK,OAAOwB,OAAO,CACZvB,gBAAgB;wBACdwB,QAAQ;4BACNC,MAAM7B,YAAY,MAAM8B;wBAC1B;oBACF;oBAGF5C;oBACA,OAAO;gBACT;gBAEA,IAAIsC,KAAKO,MAAM,EAAE;oBACfP,KAAKO,MAAM,CAACC,OAAO,CAAC,CAACpB,QAAU3C,MAAM2C,KAAK,CAACA,MAAMqB,OAAO;gBAC1D,OAAO;oBACLtB;gBACF;gBACA,OAAO;YACT,EAAE,OAAOuB,GAAG;gBACV,OAAOvB;YACT;QACF;IACJ,GAAG;QACDA;QACAlB;QACAM;QACAF,KAAKwB,QAAQ;QACbX;QACAV;QACAN;QACAN;QACAU;QACAF;QACAO;QACAC;QACAlB;KACD;IAED,IAAI,CAACK,UAAU4C,UAAUnC,cAAc1B,gBAAgB8D,IAAI,IAAI,CAAC7B,eAAe;QAC7E,OAAO;IACT;IAEA,qBACE,oBAACzC,MAAMuE,QAAQ,sBACb,oBAACzD;QACC0D,WAAW,CAAC,EAAEzD,UAAU,QAAQ,CAAC;QACjC0D,SAAS;YACPrC,aAAa;YACbN,YAAYc;QACd;OAECZ,EAAE,mCAEL,oBAACd;QAAMsD,WAAWzD;QAAWO,MAAMsB;qBACjC,oBAACjC;QAAgB6D,WAAW,CAAC,EAAEzD,UAAU,UAAU,CAAC;qBAClD,oBAAC2D,YAAI1C,EAAE,0CACP,oBAAC2C,WAAG3C,EAAE,mCAAmC;QAAE4C,OAAO9E,eAAe0B,QAAQO;IAAM,mBAC/E,oBAAClB;QACCgE,aAAY;QACZC,IAAG;QACHL,SAAStC,YAAY6B,YAAY,IAAMlC,YAAYc;QACnDmC,MAAK;OAEJ/C,EAAE,kCAEL,oBAACnB;QAAOiE,IAAG;QAAkBL,SAAStC,YAAY6B,YAAYjB;OAC3DZ,YAAYH,EAAE,wBAAwBA,EAAE;AAMrD,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAAE,KAAK,IAAI,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAClE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAYxC,OAAO,cAAc,CAAA;AA4KrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQzD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/ReactSelect/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAAE,KAAK,IAAI,uBAAuB,EAAE,MAAM,YAAY,CAAA;AAClE,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAYxC,OAAO,cAAc,CAAA;AAgLrB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAQzD,CAAA"}
@@ -22,7 +22,8 @@ const SelectAdapter = (props)=>{
22
22
  const { i18n, t } = useTranslation();
23
23
  const [inputValue, setInputValue] = React.useState('') // for creatable select
24
24
  ;
25
- const { className, components, customProps, disabled = false, filterOption = undefined, getOptionValue, isClearable = true, isCreatable, isLoading, isSearchable = true, noOptionsMessage, numberOnly = false, onChange, onMenuClose, onMenuOpen, options, placeholder = t('general:selectValue'), showError, value } = props;
25
+ const { className, components, customProps, disabled = false, filterOption = undefined, getOptionValue, isClearable = true, isCreatable, isLoading, isSearchable = true, noOptionsMessage = ()=>t('general:noOptions'), numberOnly = false, onChange, onMenuClose, onMenuOpen, options, placeholder = t('general:selectValue'), showError, value } = props;
26
+ const loadingMessage = ()=>t('general:loading') + '...';
26
27
  const classes = [
27
28
  className,
28
29
  'react-select',
@@ -53,6 +54,7 @@ const SelectAdapter = (props)=>{
53
54
  isClearable: isClearable,
54
55
  isDisabled: disabled,
55
56
  isSearchable: isSearchable,
57
+ loadingMessage: loadingMessage,
56
58
  menuPlacement: "auto",
57
59
  noOptionsMessage: noOptionsMessage,
58
60
  onChange: onChange,
@@ -123,6 +125,7 @@ const SelectAdapter = (props)=>{
123
125
  isClearable: isClearable,
124
126
  isDisabled: disabled,
125
127
  isSearchable: isSearchable,
128
+ loadingMessage: loadingMessage,
126
129
  menuPlacement: "auto",
127
130
  noOptionsMessage: noOptionsMessage,
128
131
  onChange: onChange,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { KeyboardEventHandler } from 'react'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\nimport Select from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option } from './types.js'\nimport type { Props as ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { Chevron } from '../../icons/Chevron/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { MultiValue } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\nimport './index.scss'\n\nconst createOption = (label: string) => ({\n label,\n value: label,\n})\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = React.useState('') // for creatable select\n\n const {\n className,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n noOptionsMessage,\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n value,\n } = props\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator: Chevron,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n // eslint-disable-next-line no-restricted-globals\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n if (!value || !inputValue || inputValue.trim() === '') return\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([...(value as Option[]), createOption(inputValue)])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <CreatableSelect\n captureMenuScroll\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator: Chevron,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { onChange, value } = props\n\n let ids: string[] = []\n if (value)\n ids = Array.isArray(value)\n ? value.map((item) => item?.id ?? `${item?.value}`)\n : [value?.id || `${value?.value}`]\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={ids}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"names":["arrayMove","getTranslation","React","Select","CreatableSelect","Chevron","useTranslation","DraggableSortable","ClearIndicator","Control","MultiValue","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","className","components","customProps","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","classes","filter","Boolean","join","captureMenuScroll","classNamePrefix","DropdownIndicator","isDisabled","menuPlacement","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","onInputChange","newValue","onKeyDown","SortableSelect","ids","Array","isArray","map","item","id","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../../src/elements/ReactSelect/index.tsx"],"sourcesContent":["'use client'\nimport type { KeyboardEventHandler } from 'react'\n\nimport { arrayMove } from '@dnd-kit/sortable'\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\nimport Select from 'react-select'\nimport CreatableSelect from 'react-select/creatable'\n\nimport type { Option } from './types.js'\nimport type { Props as ReactSelectAdapterProps } from './types.js'\nexport type { Option } from './types.js'\n\nimport { Chevron } from '../../icons/Chevron/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { DraggableSortable } from '../DraggableSortable/index.js'\nimport { ClearIndicator } from './ClearIndicator/index.js'\nimport { Control } from './Control/index.js'\nimport { MultiValue } from './MultiValue/index.js'\nimport { MultiValueLabel } from './MultiValueLabel/index.js'\nimport { MultiValueRemove } from './MultiValueRemove/index.js'\nimport { SingleValue } from './SingleValue/index.js'\nimport { ValueContainer } from './ValueContainer/index.js'\nimport './index.scss'\n\nconst createOption = (label: string) => ({\n label,\n value: label,\n})\n\nconst SelectAdapter: React.FC<ReactSelectAdapterProps> = (props) => {\n const { i18n, t } = useTranslation()\n const [inputValue, setInputValue] = React.useState('') // for creatable select\n\n const {\n className,\n components,\n customProps,\n disabled = false,\n filterOption = undefined,\n getOptionValue,\n isClearable = true,\n isCreatable,\n isLoading,\n isSearchable = true,\n noOptionsMessage = () => t('general:noOptions'),\n numberOnly = false,\n onChange,\n onMenuClose,\n onMenuOpen,\n options,\n placeholder = t('general:selectValue'),\n showError,\n value,\n } = props\n\n const loadingMessage = () => t('general:loading') + '...'\n\n const classes = [className, 'react-select', showError && 'react-select--error']\n .filter(Boolean)\n .join(' ')\n\n if (!isCreatable) {\n return (\n <Select\n captureMenuScroll\n customProps={customProps}\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator: Chevron,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n getOptionValue={getOptionValue}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n }\n const handleKeyDown: KeyboardEventHandler = (event) => {\n // eslint-disable-next-line no-restricted-globals\n if (numberOnly === true) {\n const acceptableKeys = [\n 'Tab',\n 'Escape',\n 'Backspace',\n 'Enter',\n 'ArrowRight',\n 'ArrowLeft',\n 'ArrowUp',\n 'ArrowDown',\n ]\n const isNumber = !/\\D/.test(event.key)\n const isActionKey = acceptableKeys.includes(event.key)\n if (!isNumber && !isActionKey) {\n event.preventDefault()\n return\n }\n }\n if (!value || !inputValue || inputValue.trim() === '') return\n if (filterOption && !filterOption(null, inputValue)) {\n return\n }\n switch (event.key) {\n case 'Enter':\n case 'Tab':\n onChange([...(value as Option[]), createOption(inputValue)])\n setInputValue('')\n event.preventDefault()\n break\n default:\n break\n }\n }\n\n return (\n <CreatableSelect\n captureMenuScroll\n isLoading={isLoading}\n placeholder={getTranslation(placeholder, i18n)}\n {...props}\n className={classes}\n classNamePrefix=\"rs\"\n components={{\n ClearIndicator,\n Control,\n DropdownIndicator: Chevron,\n MultiValue,\n MultiValueLabel,\n MultiValueRemove,\n SingleValue,\n ValueContainer,\n ...components,\n }}\n filterOption={filterOption}\n inputValue={inputValue}\n isClearable={isClearable}\n isDisabled={disabled}\n isSearchable={isSearchable}\n loadingMessage={loadingMessage}\n menuPlacement=\"auto\"\n noOptionsMessage={noOptionsMessage}\n onChange={onChange}\n onInputChange={(newValue) => setInputValue(newValue)}\n onKeyDown={handleKeyDown}\n onMenuClose={onMenuClose}\n onMenuOpen={onMenuOpen}\n options={options}\n value={value}\n />\n )\n}\n\nconst SortableSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { onChange, value } = props\n\n let ids: string[] = []\n if (value)\n ids = Array.isArray(value)\n ? value.map((item) => item?.id ?? `${item?.value}`)\n : [value?.id || `${value?.value}`]\n\n return (\n <DraggableSortable\n className=\"react-select-container\"\n ids={ids}\n onDragEnd={({ moveFromIndex, moveToIndex }) => {\n let sorted = value\n if (value && Array.isArray(value)) {\n sorted = arrayMove(value, moveFromIndex, moveToIndex)\n }\n onChange(sorted)\n }}\n >\n <SelectAdapter {...props} />\n </DraggableSortable>\n )\n}\n\nexport const ReactSelect: React.FC<ReactSelectAdapterProps> = (props) => {\n const { isMulti, isSortable } = props\n\n if (isMulti && isSortable) {\n return <SortableSelect {...props} />\n }\n\n return <SelectAdapter {...props} />\n}\n"],"names":["arrayMove","getTranslation","React","Select","CreatableSelect","Chevron","useTranslation","DraggableSortable","ClearIndicator","Control","MultiValue","MultiValueLabel","MultiValueRemove","SingleValue","ValueContainer","createOption","label","value","SelectAdapter","props","i18n","t","inputValue","setInputValue","useState","className","components","customProps","disabled","filterOption","undefined","getOptionValue","isClearable","isCreatable","isLoading","isSearchable","noOptionsMessage","numberOnly","onChange","onMenuClose","onMenuOpen","options","placeholder","showError","loadingMessage","classes","filter","Boolean","join","captureMenuScroll","classNamePrefix","DropdownIndicator","isDisabled","menuPlacement","handleKeyDown","event","acceptableKeys","isNumber","test","key","isActionKey","includes","preventDefault","trim","onInputChange","newValue","onKeyDown","SortableSelect","ids","Array","isArray","map","item","id","onDragEnd","moveFromIndex","moveToIndex","sorted","ReactSelect","isMulti","isSortable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Save/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiB,MAAM,OAAO,CAAA;AAQrC,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CA0B1D,CAAA;AAED,KAAK,KAAK,GAAG;IACX,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAIhC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Save/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiB,MAAM,OAAO,CAAA;AASrC,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAiC1D,CAAA;AAED,KAAK,KAAK,GAAG;IACX,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAIhC,CAAA"}
@@ -1,16 +1,20 @@
1
1
  'use client';
2
2
  import React, { useRef } from 'react';
3
- import { useForm } from '../../forms/Form/context.js';
3
+ import { useForm, useFormModified } from '../../forms/Form/context.js';
4
4
  import { FormSubmit } from '../../forms/Submit/index.js';
5
5
  import { useHotkey } from '../../hooks/useHotkey.js';
6
6
  import { useEditDepth } from '../../providers/EditDepth/index.js';
7
+ import { useOperation } from '../../providers/Operation/index.js';
7
8
  import { useTranslation } from '../../providers/Translation/index.js';
8
9
  export const DefaultSaveButton = ({ label: labelProp })=>{
9
10
  const { t } = useTranslation();
10
11
  const { submit } = useForm();
12
+ const modified = useFormModified();
11
13
  const label = labelProp || t('general:save');
12
14
  const ref = useRef(null);
13
15
  const editDepth = useEditDepth();
16
+ const operation = useOperation();
17
+ const forceDisable = operation === 'update' && !modified;
14
18
  useHotkey({
15
19
  cmdCtrlKey: true,
16
20
  editDepth,
@@ -18,6 +22,7 @@ export const DefaultSaveButton = ({ label: labelProp })=>{
18
22
  's'
19
23
  ]
20
24
  }, (e)=>{
25
+ if (forceDisable) return;
21
26
  e.preventDefault();
22
27
  e.stopPropagation();
23
28
  if (ref?.current) {
@@ -26,6 +31,7 @@ export const DefaultSaveButton = ({ label: labelProp })=>{
26
31
  });
27
32
  return /*#__PURE__*/ React.createElement(FormSubmit, {
28
33
  buttonId: "action-save",
34
+ disabled: forceDisable,
29
35
  onClick: ()=>submit(),
30
36
  ref: ref,
31
37
  size: "small",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Save/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useRef } from 'react'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nexport const DefaultSaveButton: React.FC<{ label?: string }> = ({ label: labelProp }) => {\n const { t } = useTranslation()\n const { submit } = useForm()\n const label = labelProp || t('general:save')\n const ref = useRef<HTMLButtonElement>(null)\n const editDepth = useEditDepth()\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n e.preventDefault()\n e.stopPropagation()\n if (ref?.current) {\n ref.current.click()\n }\n })\n\n return (\n <FormSubmit\n buttonId=\"action-save\"\n onClick={() => submit()}\n ref={ref}\n size=\"small\"\n type=\"button\"\n >\n {label}\n </FormSubmit>\n )\n}\n\ntype Props = {\n CustomComponent?: React.ReactNode\n}\n\nexport const Save: React.FC<Props> = ({ CustomComponent }) => {\n if (CustomComponent) return CustomComponent\n\n return <DefaultSaveButton />\n}\n"],"names":["React","useRef","useForm","FormSubmit","useHotkey","useEditDepth","useTranslation","DefaultSaveButton","label","labelProp","t","submit","ref","editDepth","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","current","click","buttonId","onClick","size","type","Save","CustomComponent"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAEA,OAAOA,SAASC,MAAM,QAAQ,QAAO;AAErC,SAASC,OAAO,QAAQ,8BAA6B;AACrD,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,SAAS,QAAQ,2BAA0B;AACpD,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,cAAc,QAAQ,uCAAsC;AAErE,OAAO,MAAMC,oBAAkD,CAAC,EAAEC,OAAOC,SAAS,EAAE;IAClF,MAAM,EAAEC,CAAC,EAAE,GAAGJ;IACd,MAAM,EAAEK,MAAM,EAAE,GAAGT;IACnB,MAAMM,QAAQC,aAAaC,EAAE;IAC7B,MAAME,MAAMX,OAA0B;IACtC,MAAMY,YAAYR;IAElBD,UAAU;QAAEU,YAAY;QAAMD;QAAWE,UAAU;YAAC;SAAI;IAAC,GAAG,CAACC;QAC3DA,EAAEC,cAAc;QAChBD,EAAEE,eAAe;QACjB,IAAIN,KAAKO,SAAS;YAChBP,IAAIO,OAAO,CAACC,KAAK;QACnB;IACF;IAEA,qBACE,oBAACjB;QACCkB,UAAS;QACTC,SAAS,IAAMX;QACfC,KAAKA;QACLW,MAAK;QACLC,MAAK;OAEJhB;AAGP,EAAC;AAMD,OAAO,MAAMiB,OAAwB,CAAC,EAAEC,eAAe,EAAE;IACvD,IAAIA,iBAAiB,OAAOA;IAE5B,qBAAO,oBAACnB;AACV,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/Save/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useRef } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nexport const DefaultSaveButton: React.FC<{ label?: string }> = ({ label: labelProp }) => {\n const { t } = useTranslation()\n const { submit } = useForm()\n const modified = useFormModified()\n const label = labelProp || t('general:save')\n const ref = useRef<HTMLButtonElement>(null)\n const editDepth = useEditDepth()\n const operation = useOperation()\n\n const forceDisable = operation === 'update' && !modified\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n if (forceDisable) return\n\n e.preventDefault()\n e.stopPropagation()\n if (ref?.current) {\n ref.current.click()\n }\n })\n\n return (\n <FormSubmit\n buttonId=\"action-save\"\n disabled={forceDisable}\n onClick={() => submit()}\n ref={ref}\n size=\"small\"\n type=\"button\"\n >\n {label}\n </FormSubmit>\n )\n}\n\ntype Props = {\n CustomComponent?: React.ReactNode\n}\n\nexport const Save: React.FC<Props> = ({ CustomComponent }) => {\n if (CustomComponent) return CustomComponent\n\n return <DefaultSaveButton />\n}\n"],"names":["React","useRef","useForm","useFormModified","FormSubmit","useHotkey","useEditDepth","useOperation","useTranslation","DefaultSaveButton","label","labelProp","t","submit","modified","ref","editDepth","operation","forceDisable","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","current","click","buttonId","disabled","onClick","size","type","Save","CustomComponent"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAEA,OAAOA,SAASC,MAAM,QAAQ,QAAO;AAErC,SAASC,OAAO,EAAEC,eAAe,QAAQ,8BAA6B;AACtE,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,SAAS,QAAQ,2BAA0B;AACpD,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,cAAc,QAAQ,uCAAsC;AAErE,OAAO,MAAMC,oBAAkD,CAAC,EAAEC,OAAOC,SAAS,EAAE;IAClF,MAAM,EAAEC,CAAC,EAAE,GAAGJ;IACd,MAAM,EAAEK,MAAM,EAAE,GAAGX;IACnB,MAAMY,WAAWX;IACjB,MAAMO,QAAQC,aAAaC,EAAE;IAC7B,MAAMG,MAAMd,OAA0B;IACtC,MAAMe,YAAYV;IAClB,MAAMW,YAAYV;IAElB,MAAMW,eAAeD,cAAc,YAAY,CAACH;IAEhDT,UAAU;QAAEc,YAAY;QAAMH;QAAWI,UAAU;YAAC;SAAI;IAAC,GAAG,CAACC;QAC3D,IAAIH,cAAc;QAElBG,EAAEC,cAAc;QAChBD,EAAEE,eAAe;QACjB,IAAIR,KAAKS,SAAS;YAChBT,IAAIS,OAAO,CAACC,KAAK;QACnB;IACF;IAEA,qBACE,oBAACrB;QACCsB,UAAS;QACTC,UAAUT;QACVU,SAAS,IAAMf;QACfE,KAAKA;QACLc,MAAK;QACLC,MAAK;OAEJpB;AAGP,EAAC;AAMD,OAAO,MAAMqB,OAAwB,CAAC,EAAEC,eAAe,EAAE;IACvD,IAAIA,iBAAiB,OAAOA;IAE5B,qBAAO,oBAACvB;AACV,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SaveDraft/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAA;AA8ElD,KAAK,KAAK,GAAG;IACX,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAIrC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/SaveDraft/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAA;AAkFlD,KAAK,KAAK,GAAG;IACX,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAClC,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAIrC,CAAA"}
@@ -7,6 +7,7 @@ import { useConfig } from '../../providers/Config/index.js';
7
7
  import { useDocumentInfo } from '../../providers/DocumentInfo/index.js';
8
8
  import { useEditDepth } from '../../providers/EditDepth/index.js';
9
9
  import { useLocale } from '../../providers/Locale/index.js';
10
+ import { useOperation } from '../../providers/Operation/index.js';
10
11
  import { useTranslation } from '../../providers/Translation/index.js';
11
12
  const baseClass = 'save-draft';
12
13
  const DefaultSaveDraftButton = ()=>{
@@ -18,7 +19,10 @@ const DefaultSaveDraftButton = ()=>{
18
19
  const editDepth = useEditDepth();
19
20
  const { t } = useTranslation();
20
21
  const { submit } = useForm();
22
+ const operation = useOperation();
23
+ const forceDisable = operation === 'update' && !modified;
21
24
  const saveDraft = useCallback(async ()=>{
25
+ if (forceDisable) return;
22
26
  const search = `?locale=${locale}&depth=0&fallback-locale=null&draft=true`;
23
27
  let action;
24
28
  let method = 'POST';
@@ -44,7 +48,8 @@ const DefaultSaveDraftButton = ()=>{
44
48
  serverURL,
45
49
  api,
46
50
  locale,
47
- id
51
+ id,
52
+ forceDisable
48
53
  ]);
49
54
  useHotkey({
50
55
  cmdCtrlKey: true,
@@ -53,9 +58,7 @@ const DefaultSaveDraftButton = ()=>{
53
58
  's'
54
59
  ]
55
60
  }, (e)=>{
56
- if (!modified) {
57
- return;
58
- }
61
+ if (forceDisable) return;
59
62
  e.preventDefault();
60
63
  e.stopPropagation();
61
64
  if (ref?.current) {
@@ -66,7 +69,7 @@ const DefaultSaveDraftButton = ()=>{
66
69
  buttonId: "action-save-draft",
67
70
  buttonStyle: "secondary",
68
71
  className: baseClass,
69
- disabled: !modified,
72
+ disabled: forceDisable,
70
73
  onClick: saveDraft,
71
74
  ref: ref,
72
75
  size: "small",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/SaveDraft/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useRef } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nconst baseClass = 'save-draft'\n\nconst DefaultSaveDraftButton: React.FC = () => {\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const modified = useFormModified()\n const { code: locale } = useLocale()\n const ref = useRef<HTMLButtonElement>(null)\n const editDepth = useEditDepth()\n const { t } = useTranslation()\n const { submit } = useForm()\n\n const saveDraft = useCallback(async () => {\n const search = `?locale=${locale}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) method = 'PATCH'\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [submit, collectionSlug, globalSlug, serverURL, api, locale, id])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n if (!modified) {\n return\n }\n\n e.preventDefault()\n e.stopPropagation()\n if (ref?.current) {\n ref.current.click()\n }\n })\n\n return (\n <FormSubmit\n buttonId=\"action-save-draft\"\n buttonStyle=\"secondary\"\n className={baseClass}\n disabled={!modified}\n onClick={saveDraft}\n ref={ref}\n size=\"small\"\n type=\"button\"\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n\ntype Props = {\n CustomComponent?: React.ReactNode\n}\n\nexport const SaveDraft: React.FC<Props> = ({ CustomComponent }) => {\n if (CustomComponent) return CustomComponent\n\n return <DefaultSaveDraftButton />\n}\n"],"names":["React","useCallback","useRef","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useTranslation","baseClass","DefaultSaveDraftButton","routes","api","serverURL","id","collectionSlug","globalSlug","modified","code","locale","ref","editDepth","t","submit","saveDraft","search","action","method","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","current","click","buttonId","buttonStyle","className","disabled","onClick","size","type","SaveDraft","CustomComponent"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAEA,OAAOA,SAASC,WAAW,EAAEC,MAAM,QAAQ,QAAO;AAElD,SAASC,OAAO,EAAEC,eAAe,QAAQ,8BAA6B;AACtE,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,SAAS,QAAQ,2BAA0B;AACpD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AAErE,MAAMC,YAAY;AAElB,MAAMC,yBAAmC;IACvC,MAAM,EACJC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAGT;IACJ,MAAM,EAAEU,EAAE,EAAEC,cAAc,EAAEC,UAAU,EAAE,GAAGX;IAC3C,MAAMY,WAAWhB;IACjB,MAAM,EAAEiB,MAAMC,MAAM,EAAE,GAAGZ;IACzB,MAAMa,MAAMrB,OAA0B;IACtC,MAAMsB,YAAYf;IAClB,MAAM,EAAEgB,CAAC,EAAE,GAAGd;IACd,MAAM,EAAEe,MAAM,EAAE,GAAGvB;IAEnB,MAAMwB,YAAY1B,YAAY;QAC5B,MAAM2B,SAAS,CAAC,QAAQ,EAAEN,OAAO,wCAAwC,CAAC;QAC1E,IAAIO;QACJ,IAAIC,SAAS;QAEb,IAAIZ,gBAAgB;YAClBW,SAAS,CAAC,EAAEb,UAAU,EAAED,IAAI,CAAC,EAAEG,eAAe,EAAED,KAAK,CAAC,CAAC,EAAEA,GAAG,CAAC,GAAG,GAAG,EAAEW,OAAO,CAAC;YAC7E,IAAIX,IAAIa,SAAS;QACnB;QAEA,IAAIX,YAAY;YACdU,SAAS,CAAC,EAAEb,UAAU,EAAED,IAAI,SAAS,EAAEI,WAAW,EAAES,OAAO,CAAC;QAC9D;QAEA,MAAMF,OAAO;YACXG;YACAC;YACAC,WAAW;gBACTC,SAAS;YACX;YACAC,gBAAgB;QAClB;IACF,GAAG;QAACP;QAAQR;QAAgBC;QAAYH;QAAWD;QAAKO;QAAQL;KAAG;IAEnEX,UAAU;QAAE4B,YAAY;QAAMV;QAAWW,UAAU;YAAC;SAAI;IAAC,GAAG,CAACC;QAC3D,IAAI,CAAChB,UAAU;YACb;QACF;QAEAgB,EAAEC,cAAc;QAChBD,EAAEE,eAAe;QACjB,IAAIf,KAAKgB,SAAS;YAChBhB,IAAIgB,OAAO,CAACC,KAAK;QACnB;IACF;IAEA,qBACE,oBAACnC;QACCoC,UAAS;QACTC,aAAY;QACZC,WAAW/B;QACXgC,UAAU,CAACxB;QACXyB,SAASlB;QACTJ,KAAKA;QACLuB,MAAK;QACLC,MAAK;OAEJtB,EAAE;AAGT;AAMA,OAAO,MAAMuB,YAA6B,CAAC,EAAEC,eAAe,EAAE;IAC5D,IAAIA,iBAAiB,OAAOA;IAE5B,qBAAO,oBAACpC;AACV,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/SaveDraft/index.tsx"],"sourcesContent":["'use client'\n\nimport React, { useCallback, useRef } from 'react'\n\nimport { useForm, useFormModified } from '../../forms/Form/context.js'\nimport { FormSubmit } from '../../forms/Submit/index.js'\nimport { useHotkey } from '../../hooks/useHotkey.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\n\nconst baseClass = 'save-draft'\n\nconst DefaultSaveDraftButton: React.FC = () => {\n const {\n routes: { api },\n serverURL,\n } = useConfig()\n const { id, collectionSlug, globalSlug } = useDocumentInfo()\n const modified = useFormModified()\n const { code: locale } = useLocale()\n const ref = useRef<HTMLButtonElement>(null)\n const editDepth = useEditDepth()\n const { t } = useTranslation()\n const { submit } = useForm()\n const operation = useOperation()\n\n const forceDisable = operation === 'update' && !modified\n\n const saveDraft = useCallback(async () => {\n if (forceDisable) return\n\n const search = `?locale=${locale}&depth=0&fallback-locale=null&draft=true`\n let action\n let method = 'POST'\n\n if (collectionSlug) {\n action = `${serverURL}${api}/${collectionSlug}${id ? `/${id}` : ''}${search}`\n if (id) method = 'PATCH'\n }\n\n if (globalSlug) {\n action = `${serverURL}${api}/globals/${globalSlug}${search}`\n }\n\n await submit({\n action,\n method,\n overrides: {\n _status: 'draft',\n },\n skipValidation: true,\n })\n }, [submit, collectionSlug, globalSlug, serverURL, api, locale, id, forceDisable])\n\n useHotkey({ cmdCtrlKey: true, editDepth, keyCodes: ['s'] }, (e) => {\n if (forceDisable) return\n\n e.preventDefault()\n e.stopPropagation()\n if (ref?.current) {\n ref.current.click()\n }\n })\n\n return (\n <FormSubmit\n buttonId=\"action-save-draft\"\n buttonStyle=\"secondary\"\n className={baseClass}\n disabled={forceDisable}\n onClick={saveDraft}\n ref={ref}\n size=\"small\"\n type=\"button\"\n >\n {t('version:saveDraft')}\n </FormSubmit>\n )\n}\n\ntype Props = {\n CustomComponent?: React.ReactNode\n}\n\nexport const SaveDraft: React.FC<Props> = ({ CustomComponent }) => {\n if (CustomComponent) return CustomComponent\n\n return <DefaultSaveDraftButton />\n}\n"],"names":["React","useCallback","useRef","useForm","useFormModified","FormSubmit","useHotkey","useConfig","useDocumentInfo","useEditDepth","useLocale","useOperation","useTranslation","baseClass","DefaultSaveDraftButton","routes","api","serverURL","id","collectionSlug","globalSlug","modified","code","locale","ref","editDepth","t","submit","operation","forceDisable","saveDraft","search","action","method","overrides","_status","skipValidation","cmdCtrlKey","keyCodes","e","preventDefault","stopPropagation","current","click","buttonId","buttonStyle","className","disabled","onClick","size","type","SaveDraft","CustomComponent"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAEA,OAAOA,SAASC,WAAW,EAAEC,MAAM,QAAQ,QAAO;AAElD,SAASC,OAAO,EAAEC,eAAe,QAAQ,8BAA6B;AACtE,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,SAAS,QAAQ,2BAA0B;AACpD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,YAAY,QAAQ,qCAAoC;AACjE,SAASC,cAAc,QAAQ,uCAAsC;AAErE,MAAMC,YAAY;AAElB,MAAMC,yBAAmC;IACvC,MAAM,EACJC,QAAQ,EAAEC,GAAG,EAAE,EACfC,SAAS,EACV,GAAGV;IACJ,MAAM,EAAEW,EAAE,EAAEC,cAAc,EAAEC,UAAU,EAAE,GAAGZ;IAC3C,MAAMa,WAAWjB;IACjB,MAAM,EAAEkB,MAAMC,MAAM,EAAE,GAAGb;IACzB,MAAMc,MAAMtB,OAA0B;IACtC,MAAMuB,YAAYhB;IAClB,MAAM,EAAEiB,CAAC,EAAE,GAAGd;IACd,MAAM,EAAEe,MAAM,EAAE,GAAGxB;IACnB,MAAMyB,YAAYjB;IAElB,MAAMkB,eAAeD,cAAc,YAAY,CAACP;IAEhD,MAAMS,YAAY7B,YAAY;QAC5B,IAAI4B,cAAc;QAElB,MAAME,SAAS,CAAC,QAAQ,EAAER,OAAO,wCAAwC,CAAC;QAC1E,IAAIS;QACJ,IAAIC,SAAS;QAEb,IAAId,gBAAgB;YAClBa,SAAS,CAAC,EAAEf,UAAU,EAAED,IAAI,CAAC,EAAEG,eAAe,EAAED,KAAK,CAAC,CAAC,EAAEA,GAAG,CAAC,GAAG,GAAG,EAAEa,OAAO,CAAC;YAC7E,IAAIb,IAAIe,SAAS;QACnB;QAEA,IAAIb,YAAY;YACdY,SAAS,CAAC,EAAEf,UAAU,EAAED,IAAI,SAAS,EAAEI,WAAW,EAAEW,OAAO,CAAC;QAC9D;QAEA,MAAMJ,OAAO;YACXK;YACAC;YACAC,WAAW;gBACTC,SAAS;YACX;YACAC,gBAAgB;QAClB;IACF,GAAG;QAACT;QAAQR;QAAgBC;QAAYH;QAAWD;QAAKO;QAAQL;QAAIW;KAAa;IAEjFvB,UAAU;QAAE+B,YAAY;QAAMZ;QAAWa,UAAU;YAAC;SAAI;IAAC,GAAG,CAACC;QAC3D,IAAIV,cAAc;QAElBU,EAAEC,cAAc;QAChBD,EAAEE,eAAe;QACjB,IAAIjB,KAAKkB,SAAS;YAChBlB,IAAIkB,OAAO,CAACC,KAAK;QACnB;IACF;IAEA,qBACE,oBAACtC;QACCuC,UAAS;QACTC,aAAY;QACZC,WAAWjC;QACXkC,UAAUlB;QACVmB,SAASlB;QACTN,KAAKA;QACLyB,MAAK;QACLC,MAAK;OAEJxB,EAAE;AAGT;AAMA,OAAO,MAAMyB,YAA6B,CAAC,EAAEC,eAAe,EAAE;IAC5D,IAAIA,iBAAiB,OAAOA;IAE5B,qBAAO,oBAACtC;AACV,EAAC"}
@@ -1,7 +1,5 @@
1
1
  import React from 'react';
2
- export type StayLoggedInProps = {
3
- refreshCookie: () => void;
4
- };
5
2
  import './index.scss';
6
- export declare const StayLoggedInModal: React.FC<StayLoggedInProps>;
3
+ export declare const stayLoggedInModalSlug = "stay-logged-in";
4
+ export declare const StayLoggedInModal: React.FC;
7
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/StayLoggedIn/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,MAAM,IAAI,CAAA;CAC1B,CAAA;AAKD,OAAO,cAAc,CAAA;AAMrB,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA0CzD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/StayLoggedIn/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,qBAAqB,mBAAmB,CAAA;AAErD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EA2CrC,CAAA"}
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
  import * as facelessUIImport from '@faceless-ui/modal';
3
+ import { useAuth } from '@payloadcms/ui/providers/Auth';
3
4
  // TODO: abstract the `next/navigation` dependency out from this component
4
5
  import { useRouter } from 'next/navigation.js';
5
6
  import React from 'react';
@@ -7,10 +8,10 @@ import { Button } from '../../elements/Button/index.js';
7
8
  import { useConfig } from '../../providers/Config/index.js';
8
9
  import { useTranslation } from '../../providers/Translation/index.js';
9
10
  const baseClass = 'stay-logged-in';
10
- const modalSlug = 'stay-logged-in';
11
- export const StayLoggedInModal = (props)=>{
11
+ export const stayLoggedInModalSlug = 'stay-logged-in';
12
+ export const StayLoggedInModal = ()=>{
12
13
  const { Modal, useModal } = facelessUIImport;
13
- const { refreshCookie } = props;
14
+ const { refreshCookie } = useAuth();
14
15
  const router = useRouter();
15
16
  const config = useConfig();
16
17
  const { admin: { logoutRoute }, routes: { admin } } = config;
@@ -18,7 +19,7 @@ export const StayLoggedInModal = (props)=>{
18
19
  const { t } = useTranslation();
19
20
  return /*#__PURE__*/ React.createElement(Modal, {
20
21
  className: baseClass,
21
- slug: "stay-logged-in"
22
+ slug: stayLoggedInModalSlug
22
23
  }, /*#__PURE__*/ React.createElement("div", {
23
24
  className: `${baseClass}__wrapper`
24
25
  }, /*#__PURE__*/ React.createElement("div", {
@@ -28,13 +29,13 @@ export const StayLoggedInModal = (props)=>{
28
29
  }, /*#__PURE__*/ React.createElement(Button, {
29
30
  buttonStyle: "secondary",
30
31
  onClick: ()=>{
31
- toggleModal(modalSlug);
32
+ toggleModal(stayLoggedInModalSlug);
32
33
  router.push(`${admin}${logoutRoute}`);
33
34
  }
34
35
  }, t('authentication:logOut')), /*#__PURE__*/ React.createElement(Button, {
35
36
  onClick: ()=>{
36
37
  refreshCookie();
37
- toggleModal(modalSlug);
38
+ toggleModal(stayLoggedInModalSlug);
38
39
  }
39
40
  }, t('authentication:stayLoggedIn')))));
40
41
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/StayLoggedIn/index.tsx"],"sourcesContent":["'use client'\nimport * as facelessUIImport from '@faceless-ui/modal'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport { useRouter } from 'next/navigation.js'\nimport React from 'react'\n\nexport type StayLoggedInProps = {\n refreshCookie: () => void\n}\n\nimport { Button } from '../../elements/Button/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'stay-logged-in'\n\nconst modalSlug = 'stay-logged-in'\n\nexport const StayLoggedInModal: React.FC<StayLoggedInProps> = (props) => {\n const { Modal, useModal } = facelessUIImport\n\n const { refreshCookie } = props\n const router = useRouter()\n const config = useConfig()\n const {\n admin: { logoutRoute },\n routes: { admin },\n } = config\n const { toggleModal } = useModal()\n const { t } = useTranslation()\n\n return (\n <Modal className={baseClass} slug=\"stay-logged-in\">\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('authentication:stayLoggedIn')}</h1>\n <p>{t('authentication:youAreInactive')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={() => {\n toggleModal(modalSlug)\n router.push(`${admin}${logoutRoute}`)\n }}\n >\n {t('authentication:logOut')}\n </Button>\n <Button\n onClick={() => {\n refreshCookie()\n toggleModal(modalSlug)\n }}\n >\n {t('authentication:stayLoggedIn')}\n </Button>\n </div>\n </div>\n </Modal>\n )\n}\n"],"names":["facelessUIImport","useRouter","React","Button","useConfig","useTranslation","baseClass","modalSlug","StayLoggedInModal","props","Modal","useModal","refreshCookie","router","config","admin","logoutRoute","routes","toggleModal","t","className","slug","div","h1","p","buttonStyle","onClick","push"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AACA,YAAYA,sBAAsB,qBAAoB;AACtD,0EAA0E;AAC1E,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,WAAW,QAAO;AAMzB,SAASC,MAAM,QAAQ,iCAAgC;AACvD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AAGrE,MAAMC,YAAY;AAElB,MAAMC,YAAY;AAElB,OAAO,MAAMC,oBAAiD,CAACC;IAC7D,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAGX;IAE5B,MAAM,EAAEY,aAAa,EAAE,GAAGH;IAC1B,MAAMI,SAASZ;IACf,MAAMa,SAASV;IACf,MAAM,EACJW,OAAO,EAAEC,WAAW,EAAE,EACtBC,QAAQ,EAAEF,KAAK,EAAE,EAClB,GAAGD;IACJ,MAAM,EAAEI,WAAW,EAAE,GAAGP;IACxB,MAAM,EAAEQ,CAAC,EAAE,GAAGd;IAEd,qBACE,oBAACK;QAAMU,WAAWd;QAAWe,MAAK;qBAChC,oBAACC;QAAIF,WAAW,CAAC,EAAEd,UAAU,SAAS,CAAC;qBACrC,oBAACgB;QAAIF,WAAW,CAAC,EAAEd,UAAU,SAAS,CAAC;qBACrC,oBAACiB,YAAIJ,EAAE,+CACP,oBAACK,WAAGL,EAAE,kDAER,oBAACG;QAAIF,WAAW,CAAC,EAAEd,UAAU,UAAU,CAAC;qBACtC,oBAACH;QACCsB,aAAY;QACZC,SAAS;YACPR,YAAYX;YACZM,OAAOc,IAAI,CAAC,CAAC,EAAEZ,MAAM,EAAEC,YAAY,CAAC;QACtC;OAECG,EAAE,yCAEL,oBAAChB;QACCuB,SAAS;YACPd;YACAM,YAAYX;QACd;OAECY,EAAE;AAMf,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/StayLoggedIn/index.tsx"],"sourcesContent":["'use client'\nimport * as facelessUIImport from '@faceless-ui/modal'\nimport { useAuth } from '@payloadcms/ui/providers/Auth'\n// TODO: abstract the `next/navigation` dependency out from this component\nimport { useRouter } from 'next/navigation.js'\nimport React from 'react'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'stay-logged-in'\n\nexport const stayLoggedInModalSlug = 'stay-logged-in'\n\nexport const StayLoggedInModal: React.FC = () => {\n const { Modal, useModal } = facelessUIImport\n const { refreshCookie } = useAuth()\n\n const router = useRouter()\n const config = useConfig()\n\n const {\n admin: { logoutRoute },\n routes: { admin },\n } = config\n const { toggleModal } = useModal()\n const { t } = useTranslation()\n\n return (\n <Modal className={baseClass} slug={stayLoggedInModalSlug}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <h1>{t('authentication:stayLoggedIn')}</h1>\n <p>{t('authentication:youAreInactive')}</p>\n </div>\n <div className={`${baseClass}__controls`}>\n <Button\n buttonStyle=\"secondary\"\n onClick={() => {\n toggleModal(stayLoggedInModalSlug)\n router.push(`${admin}${logoutRoute}`)\n }}\n >\n {t('authentication:logOut')}\n </Button>\n <Button\n onClick={() => {\n refreshCookie()\n toggleModal(stayLoggedInModalSlug)\n }}\n >\n {t('authentication:stayLoggedIn')}\n </Button>\n </div>\n </div>\n </Modal>\n )\n}\n"],"names":["facelessUIImport","useAuth","useRouter","React","Button","useConfig","useTranslation","baseClass","stayLoggedInModalSlug","StayLoggedInModal","Modal","useModal","refreshCookie","router","config","admin","logoutRoute","routes","toggleModal","t","className","slug","div","h1","p","buttonStyle","onClick","push"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AACA,YAAYA,sBAAsB,qBAAoB;AACtD,SAASC,OAAO,QAAQ,gCAA+B;AACvD,0EAA0E;AAC1E,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,WAAW,QAAO;AAEzB,SAASC,MAAM,QAAQ,iCAAgC;AACvD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AAGrE,MAAMC,YAAY;AAElB,OAAO,MAAMC,wBAAwB,iBAAgB;AAErD,OAAO,MAAMC,oBAA8B;IACzC,MAAM,EAAEC,KAAK,EAAEC,QAAQ,EAAE,GAAGX;IAC5B,MAAM,EAAEY,aAAa,EAAE,GAAGX;IAE1B,MAAMY,SAASX;IACf,MAAMY,SAAST;IAEf,MAAM,EACJU,OAAO,EAAEC,WAAW,EAAE,EACtBC,QAAQ,EAAEF,KAAK,EAAE,EAClB,GAAGD;IACJ,MAAM,EAAEI,WAAW,EAAE,GAAGP;IACxB,MAAM,EAAEQ,CAAC,EAAE,GAAGb;IAEd,qBACE,oBAACI;QAAMU,WAAWb;QAAWc,MAAMb;qBACjC,oBAACc;QAAIF,WAAW,CAAC,EAAEb,UAAU,SAAS,CAAC;qBACrC,oBAACe;QAAIF,WAAW,CAAC,EAAEb,UAAU,SAAS,CAAC;qBACrC,oBAACgB,YAAIJ,EAAE,+CACP,oBAACK,WAAGL,EAAE,kDAER,oBAACG;QAAIF,WAAW,CAAC,EAAEb,UAAU,UAAU,CAAC;qBACtC,oBAACH;QACCqB,aAAY;QACZC,SAAS;YACPR,YAAYV;YACZK,OAAOc,IAAI,CAAC,CAAC,EAAEZ,MAAM,EAAEC,YAAY,CAAC;QACtC;OAECG,EAAE,yCAEL,oBAACf;QACCsB,SAAS;YACPd;YACAM,YAAYV;QACd;OAECW,EAAE;AAMf,EAAC"}
@@ -1,4 +1,4 @@
1
- @import '../../../scss/styles.scss';
1
+ @import '../../scss/styles.scss';
2
2
 
3
3
  .stay-logged-in {
4
4
  @include blur-bg;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/Table/DefaultCell/fields/Checkbox/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAE9D,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAIrE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/Table/DefaultCell/fields/Checkbox/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAA;AAG9D,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAOrE,CAAA"}
@@ -1,7 +1,11 @@
1
1
  'use client';
2
+ import { useTranslation } from '@payloadcms/ui/providers/Translation';
2
3
  import React from 'react';
3
- export const CheckboxCell = ({ cellData })=>/*#__PURE__*/ React.createElement("code", {
4
+ export const CheckboxCell = ({ cellData })=>{
5
+ const { t } = useTranslation();
6
+ return /*#__PURE__*/ React.createElement("code", {
4
7
  className: "bool-cell"
5
- }, /*#__PURE__*/ React.createElement("span", null, JSON.stringify(cellData)));
8
+ }, /*#__PURE__*/ React.createElement("span", null, t(`general:${cellData}`).toLowerCase()));
9
+ };
6
10
 
7
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Checkbox/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps } from 'payload/types'\n\nimport React from 'react'\n\nimport './index.scss'\n\nexport const CheckboxCell: React.FC<DefaultCellComponentProps<boolean>> = ({ cellData }) => (\n <code className=\"bool-cell\">\n <span>{JSON.stringify(cellData)}</span>\n </code>\n)\n"],"names":["React","CheckboxCell","cellData","code","className","span","JSON","stringify"],"rangeMappings":";;;;","mappings":"AAAA;AAGA,OAAOA,WAAW,QAAO;AAIzB,OAAO,MAAMC,eAA6D,CAAC,EAAEC,QAAQ,EAAE,iBACrF,oBAACC;QAAKC,WAAU;qBACd,oBAACC,cAAMC,KAAKC,SAAS,CAACL,YAEzB"}
1
+ {"version":3,"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Checkbox/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps } from 'payload/types'\n\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport React from 'react'\n\nimport './index.scss'\n\nexport const CheckboxCell: React.FC<DefaultCellComponentProps<boolean>> = ({ cellData }) => {\n const { t } = useTranslation()\n return (\n <code className=\"bool-cell\">\n <span>{t(`general:${cellData}`).toLowerCase()}</span>\n </code>\n )\n}\n"],"names":["useTranslation","React","CheckboxCell","cellData","t","code","className","span","toLowerCase"],"rangeMappings":";;;;;;;;","mappings":"AAAA;AAGA,SAASA,cAAc,QAAQ,uCAAsC;AACrE,OAAOC,WAAW,QAAO;AAIzB,OAAO,MAAMC,eAA6D,CAAC,EAAEC,QAAQ,EAAE;IACrF,MAAM,EAAEC,CAAC,EAAE,GAAGJ;IACd,qBACE,oBAACK;QAAKC,WAAU;qBACd,oBAACC,cAAMH,EAAE,CAAC,QAAQ,EAAED,SAAS,CAAC,EAAEK,WAAW;AAGjD,EAAC"}
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import React from 'react';
3
3
  export const JSONCell = ({ cellData })=>{
4
- const textToShow = cellData.length > 100 ? `${cellData.substring(0, 100)}\u2026` : cellData;
4
+ const textToShow = cellData?.length > 100 ? `${cellData.substring(0, 100)}\u2026` : cellData;
5
5
  return /*#__PURE__*/ React.createElement("code", {
6
6
  className: "json-cell"
7
7
  }, /*#__PURE__*/ React.createElement("span", null, JSON.stringify(textToShow)));
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../src/elements/Table/DefaultCell/fields/JSON/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps } from 'payload/types'\n\nimport React from 'react'\n\nimport './index.scss'\n\nexport const JSONCell: React.FC<DefaultCellComponentProps<string>> = ({ cellData }) => {\n const textToShow = cellData.length > 100 ? `${cellData.substring(0, 100)}\\u2026` : cellData\n\n return (\n <code className=\"json-cell\">\n <span>{JSON.stringify(textToShow)}</span>\n </code>\n )\n}\n"],"names":["React","JSONCell","cellData","textToShow","length","substring","code","className","span","JSON","stringify"],"rangeMappings":";;;;;;;","mappings":"AAAA;AAGA,OAAOA,WAAW,QAAO;AAIzB,OAAO,MAAMC,WAAwD,CAAC,EAAEC,QAAQ,EAAE;IAChF,MAAMC,aAAaD,SAASE,MAAM,GAAG,MAAM,CAAC,EAAEF,SAASG,SAAS,CAAC,GAAG,KAAK,MAAM,CAAC,GAAGH;IAEnF,qBACE,oBAACI;QAAKC,WAAU;qBACd,oBAACC,cAAMC,KAAKC,SAAS,CAACP;AAG5B,EAAC"}
1
+ {"version":3,"sources":["../../../../../../src/elements/Table/DefaultCell/fields/JSON/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps } from 'payload/types'\n\nimport React from 'react'\n\nimport './index.scss'\n\nexport const JSONCell: React.FC<DefaultCellComponentProps<string>> = ({ cellData }) => {\n const textToShow = cellData?.length > 100 ? `${cellData.substring(0, 100)}\\u2026` : cellData\n\n return (\n <code className=\"json-cell\">\n <span>{JSON.stringify(textToShow)}</span>\n </code>\n )\n}\n"],"names":["React","JSONCell","cellData","textToShow","length","substring","code","className","span","JSON","stringify"],"rangeMappings":";;;;;;;","mappings":"AAAA;AAGA,OAAOA,WAAW,QAAO;AAIzB,OAAO,MAAMC,WAAwD,CAAC,EAAEC,QAAQ,EAAE;IAChF,MAAMC,aAAaD,UAAUE,SAAS,MAAM,CAAC,EAAEF,SAASG,SAAS,CAAC,GAAG,KAAK,MAAM,CAAC,GAAGH;IAEpF,qBACE,oBAACI;QAAKC,WAAU;qBACd,oBAACC,cAAMC,KAAKC,SAAS,CAACP;AAG5B,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAA6B,MAAM,eAAe,CAAA;AAYlF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoHpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/Table/DefaultCell/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAA6B,MAAM,eAAe,CAAA;AAYlF,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAqHpD,CAAA"}
@@ -45,7 +45,7 @@ export const DefaultCell = (props)=>{
45
45
  rowData: rowData
46
46
  }));
47
47
  }
48
- const DefaultCellComponent = cellComponents[fieldType];
48
+ const DefaultCellComponent = typeof cellData !== 'undefined' && cellComponents[fieldType];
49
49
  let CellComponent = cellData && (CellComponentOverride ? /*#__PURE__*/ React.createElement(TableCellProvider, {
50
50
  richTextComponentMap: richTextComponentMap
51
51
  }, CellComponentOverride) : null);