@payloadcms/ui 3.27.0-canary.672dace → 3.27.0-canary.7f71c2e

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 (218) hide show
  1. package/dist/elements/BulkUpload/FormsManager/createFormData.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/FormsManager/createFormData.js +2 -3
  3. package/dist/elements/BulkUpload/FormsManager/createFormData.js.map +1 -1
  4. package/dist/elements/ColumnSelector/index.js +1 -1
  5. package/dist/elements/ColumnSelector/index.js.map +1 -1
  6. package/dist/elements/ColumnSelector/index.scss +2 -3
  7. package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
  8. package/dist/elements/DeleteDocument/index.js +1 -2
  9. package/dist/elements/DeleteDocument/index.js.map +1 -1
  10. package/dist/elements/DeleteMany/index.d.ts.map +1 -1
  11. package/dist/elements/DeleteMany/index.js +1 -1
  12. package/dist/elements/DeleteMany/index.js.map +1 -1
  13. package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
  14. package/dist/elements/DocumentDrawer/DrawerContent.js +2 -1
  15. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  16. package/dist/elements/DocumentDrawer/types.d.ts +4 -0
  17. package/dist/elements/DocumentDrawer/types.d.ts.map +1 -1
  18. package/dist/elements/DocumentDrawer/types.js.map +1 -1
  19. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  20. package/dist/elements/EditMany/DrawerContent.js +1 -1
  21. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  22. package/dist/elements/ListControls/ActiveListPreset/index.d.ts +8 -0
  23. package/dist/elements/ListControls/ActiveListPreset/index.d.ts.map +1 -0
  24. package/dist/elements/ListControls/ActiveListPreset/index.js +102 -0
  25. package/dist/elements/ListControls/ActiveListPreset/index.js.map +1 -0
  26. package/dist/elements/ListControls/ActiveListPreset/index.scss +21 -0
  27. package/dist/elements/ListControls/index.d.ts +1 -24
  28. package/dist/elements/ListControls/index.d.ts.map +1 -1
  29. package/dist/elements/ListControls/index.js +115 -86
  30. package/dist/elements/ListControls/index.js.map +1 -1
  31. package/dist/elements/ListControls/index.scss +5 -9
  32. package/dist/elements/ListControls/types.d.ts +28 -0
  33. package/dist/elements/ListControls/types.d.ts.map +1 -0
  34. package/dist/elements/ListControls/types.js.map +1 -0
  35. package/dist/elements/ListControls/useListPresets.d.ts +17 -0
  36. package/dist/elements/ListControls/useListPresets.d.ts.map +1 -0
  37. package/dist/elements/ListControls/useListPresets.js +264 -0
  38. package/dist/elements/ListControls/useListPresets.js.map +1 -0
  39. package/dist/elements/ListDrawer/DrawerContent.d.ts.map +1 -1
  40. package/dist/elements/ListDrawer/DrawerContent.js +4 -2
  41. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  42. package/dist/elements/ListDrawer/types.d.ts +3 -2
  43. package/dist/elements/ListDrawer/types.d.ts.map +1 -1
  44. package/dist/elements/ListDrawer/types.js.map +1 -1
  45. package/dist/elements/ListPresets/cells/AccessCell/index.d.ts +4 -0
  46. package/dist/elements/ListPresets/cells/AccessCell/index.d.ts.map +1 -0
  47. package/dist/elements/ListPresets/cells/AccessCell/index.js +25 -0
  48. package/dist/elements/ListPresets/cells/AccessCell/index.js.map +1 -0
  49. package/dist/elements/ListPresets/cells/ColumnsCell/index.d.ts +4 -0
  50. package/dist/elements/ListPresets/cells/ColumnsCell/index.d.ts.map +1 -0
  51. package/dist/elements/ListPresets/cells/ColumnsCell/index.js +11 -0
  52. package/dist/elements/ListPresets/cells/ColumnsCell/index.js.map +1 -0
  53. package/dist/elements/ListPresets/cells/WhereCell/index.d.ts +4 -0
  54. package/dist/elements/ListPresets/cells/WhereCell/index.d.ts.map +1 -0
  55. package/dist/elements/ListPresets/cells/WhereCell/index.js +23 -0
  56. package/dist/elements/ListPresets/cells/WhereCell/index.js.map +1 -0
  57. package/dist/elements/ListPresets/fields/AccessLabel/index.d.ts +3 -0
  58. package/dist/elements/ListPresets/fields/AccessLabel/index.d.ts.map +1 -0
  59. package/dist/elements/ListPresets/fields/AccessLabel/index.js +19 -0
  60. package/dist/elements/ListPresets/fields/AccessLabel/index.js.map +1 -0
  61. package/dist/elements/ListPresets/fields/ColumnsField/index.d.ts +4 -0
  62. package/dist/elements/ListPresets/fields/ColumnsField/index.d.ts.map +1 -0
  63. package/dist/elements/ListPresets/fields/ColumnsField/index.js +64 -0
  64. package/dist/elements/ListPresets/fields/ColumnsField/index.js.map +1 -0
  65. package/dist/elements/ListPresets/fields/ColumnsField/index.scss +28 -0
  66. package/dist/elements/ListPresets/fields/WhereField/index.d.ts +4 -0
  67. package/dist/elements/ListPresets/fields/WhereField/index.d.ts.map +1 -0
  68. package/dist/elements/ListPresets/fields/WhereField/index.js +118 -0
  69. package/dist/elements/ListPresets/fields/WhereField/index.js.map +1 -0
  70. package/dist/elements/ListPresets/fields/WhereField/index.scss +23 -0
  71. package/dist/elements/Pill/index.d.ts +1 -1
  72. package/dist/elements/Pill/index.d.ts.map +1 -1
  73. package/dist/elements/Pill/index.js +2 -0
  74. package/dist/elements/Pill/index.js.map +1 -1
  75. package/dist/elements/Pill/index.scss +29 -6
  76. package/dist/elements/Popup/PopupButtonList/index.d.ts +1 -1
  77. package/dist/elements/Popup/PopupButtonList/index.d.ts.map +1 -1
  78. package/dist/elements/Popup/PopupButtonList/index.js +1 -0
  79. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  80. package/dist/elements/Popup/PopupDivider/index.d.ts +4 -0
  81. package/dist/elements/Popup/PopupDivider/index.d.ts.map +1 -0
  82. package/dist/elements/Popup/PopupDivider/index.js +10 -0
  83. package/dist/elements/Popup/PopupDivider/index.js.map +1 -0
  84. package/dist/elements/Popup/PopupDivider/index.scss +10 -0
  85. package/dist/elements/Popup/index.d.ts.map +1 -1
  86. package/dist/elements/Popup/index.js +1 -1
  87. package/dist/elements/Popup/index.js.map +1 -1
  88. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +1 -1
  89. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  90. package/dist/elements/RelationshipTable/index.d.ts.map +1 -1
  91. package/dist/elements/RelationshipTable/index.js +3 -4
  92. package/dist/elements/RelationshipTable/index.js.map +1 -1
  93. package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
  94. package/dist/elements/WhereBuilder/index.js +1 -2
  95. package/dist/elements/WhereBuilder/index.js.map +1 -1
  96. package/dist/exports/client/index.d.ts +8 -2
  97. package/dist/exports/client/index.d.ts.map +1 -1
  98. package/dist/exports/client/index.js +23 -23
  99. package/dist/exports/client/index.js.map +4 -4
  100. package/dist/exports/shared/index.d.ts +8 -3
  101. package/dist/exports/shared/index.d.ts.map +1 -1
  102. package/dist/exports/shared/index.js +2 -2
  103. package/dist/exports/shared/index.js.map +4 -4
  104. package/dist/forms/Form/index.d.ts.map +1 -1
  105. package/dist/forms/Form/index.js +2 -3
  106. package/dist/forms/Form/index.js.map +1 -1
  107. package/dist/icons/Chevron/index.d.ts +1 -0
  108. package/dist/icons/Chevron/index.d.ts.map +1 -1
  109. package/dist/icons/Chevron/index.js +2 -0
  110. package/dist/icons/Chevron/index.js.map +1 -1
  111. package/dist/icons/Dots/index.d.ts +2 -0
  112. package/dist/icons/Dots/index.d.ts.map +1 -1
  113. package/dist/icons/Dots/index.js +5 -2
  114. package/dist/icons/Dots/index.js.map +1 -1
  115. package/dist/icons/Dots/index.scss +14 -0
  116. package/dist/icons/People/index.d.ts +6 -0
  117. package/dist/icons/People/index.d.ts.map +1 -0
  118. package/dist/icons/People/index.js +18 -0
  119. package/dist/icons/People/index.js.map +1 -0
  120. package/dist/icons/People/index.scss +11 -0
  121. package/dist/providers/DocumentInfo/types.d.ts +1 -0
  122. package/dist/providers/DocumentInfo/types.d.ts.map +1 -1
  123. package/dist/providers/DocumentInfo/types.js.map +1 -1
  124. package/dist/providers/ListQuery/context.d.ts +2 -0
  125. package/dist/providers/ListQuery/context.d.ts.map +1 -1
  126. package/dist/providers/ListQuery/context.js +2 -0
  127. package/dist/providers/ListQuery/context.js.map +1 -1
  128. package/dist/providers/ListQuery/index.d.ts.map +1 -1
  129. package/dist/providers/ListQuery/index.js +25 -13
  130. package/dist/providers/ListQuery/index.js.map +1 -1
  131. package/dist/providers/ListQuery/types.d.ts +5 -2
  132. package/dist/providers/ListQuery/types.d.ts.map +1 -1
  133. package/dist/providers/ListQuery/types.js.map +1 -1
  134. package/dist/providers/Preferences/index.d.ts.map +1 -1
  135. package/dist/providers/Preferences/index.js.map +1 -1
  136. package/dist/providers/ServerFunctions/index.d.ts +1 -0
  137. package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
  138. package/dist/providers/ServerFunctions/index.js.map +1 -1
  139. package/dist/providers/TableColumns/RenderDefaultCell/index.d.ts.map +1 -0
  140. package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.js +2 -2
  141. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -0
  142. package/dist/{elements → providers}/TableColumns/buildColumnState.d.ts +1 -1
  143. package/dist/providers/TableColumns/buildColumnState.d.ts.map +1 -0
  144. package/dist/{elements → providers}/TableColumns/buildColumnState.js +1 -1
  145. package/dist/providers/TableColumns/buildColumnState.js.map +1 -0
  146. package/dist/{elements → providers}/TableColumns/buildPolymorphicColumnState.d.ts +1 -1
  147. package/dist/providers/TableColumns/buildPolymorphicColumnState.d.ts.map +1 -0
  148. package/dist/{elements → providers}/TableColumns/buildPolymorphicColumnState.js +1 -1
  149. package/dist/providers/TableColumns/buildPolymorphicColumnState.js.map +1 -0
  150. package/dist/{elements → providers}/TableColumns/context.d.ts +2 -0
  151. package/dist/providers/TableColumns/context.d.ts.map +1 -0
  152. package/dist/providers/TableColumns/context.js +6 -0
  153. package/dist/providers/TableColumns/context.js.map +1 -0
  154. package/dist/providers/TableColumns/filterFields.d.ts.map +1 -0
  155. package/dist/providers/TableColumns/filterFields.js.map +1 -0
  156. package/dist/providers/TableColumns/getInitialColumns.d.ts.map +1 -0
  157. package/dist/providers/TableColumns/getInitialColumns.js.map +1 -0
  158. package/dist/providers/TableColumns/index.d.ts.map +1 -0
  159. package/dist/{elements → providers}/TableColumns/index.js +20 -6
  160. package/dist/providers/TableColumns/index.js.map +1 -0
  161. package/dist/{elements → providers}/TableColumns/types.d.ts +3 -1
  162. package/dist/providers/TableColumns/types.d.ts.map +1 -0
  163. package/dist/providers/TableColumns/types.js +2 -0
  164. package/dist/providers/TableColumns/types.js.map +1 -0
  165. package/dist/styles.css +1 -1
  166. package/dist/utilities/renderTable.js +4 -4
  167. package/dist/utilities/renderTable.js.map +1 -1
  168. package/dist/utilities/upsertPreferences.d.ts +7 -2
  169. package/dist/utilities/upsertPreferences.d.ts.map +1 -1
  170. package/dist/utilities/upsertPreferences.js +11 -5
  171. package/dist/utilities/upsertPreferences.js.map +1 -1
  172. package/dist/views/Edit/SetDocumentStepNav/index.d.ts.map +1 -1
  173. package/dist/views/Edit/SetDocumentStepNav/index.js +20 -25
  174. package/dist/views/Edit/SetDocumentStepNav/index.js.map +1 -1
  175. package/dist/views/Edit/index.d.ts.map +1 -1
  176. package/dist/views/Edit/index.js +4 -3
  177. package/dist/views/Edit/index.js.map +1 -1
  178. package/dist/views/List/index.d.ts.map +1 -1
  179. package/dist/views/List/index.js +9 -5
  180. package/dist/views/List/index.js.map +1 -1
  181. package/package.json +4 -4
  182. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +0 -1
  183. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +0 -1
  184. package/dist/elements/TableColumns/buildColumnState.d.ts.map +0 -1
  185. package/dist/elements/TableColumns/buildColumnState.js.map +0 -1
  186. package/dist/elements/TableColumns/buildPolymorphicColumnState.d.ts.map +0 -1
  187. package/dist/elements/TableColumns/buildPolymorphicColumnState.js.map +0 -1
  188. package/dist/elements/TableColumns/context.d.ts.map +0 -1
  189. package/dist/elements/TableColumns/context.js +0 -4
  190. package/dist/elements/TableColumns/context.js.map +0 -1
  191. package/dist/elements/TableColumns/filterFields.d.ts.map +0 -1
  192. package/dist/elements/TableColumns/filterFields.js.map +0 -1
  193. package/dist/elements/TableColumns/getInitialColumns.d.ts.map +0 -1
  194. package/dist/elements/TableColumns/getInitialColumns.js.map +0 -1
  195. package/dist/elements/TableColumns/index.d.ts.map +0 -1
  196. package/dist/elements/TableColumns/index.js.map +0 -1
  197. package/dist/elements/TableColumns/types.d.ts.map +0 -1
  198. package/dist/elements/TableColumns/types.js.map +0 -1
  199. package/dist/elements/WhereBuilder/transformWhereQuery.d.ts +0 -8
  200. package/dist/elements/WhereBuilder/transformWhereQuery.d.ts.map +0 -1
  201. package/dist/elements/WhereBuilder/transformWhereQuery.js +0 -45
  202. package/dist/elements/WhereBuilder/transformWhereQuery.js.map +0 -1
  203. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts +0 -4
  204. package/dist/elements/WhereBuilder/validateWhereQuery.d.ts.map +0 -1
  205. package/dist/elements/WhereBuilder/validateWhereQuery.js +0 -36
  206. package/dist/elements/WhereBuilder/validateWhereQuery.js.map +0 -1
  207. package/dist/utilities/mergeListSearchAndWhere.d.ts +0 -10
  208. package/dist/utilities/mergeListSearchAndWhere.d.ts.map +0 -1
  209. package/dist/utilities/mergeListSearchAndWhere.js +0 -47
  210. package/dist/utilities/mergeListSearchAndWhere.js.map +0 -1
  211. /package/dist/elements/{TableColumns → ListControls}/types.js +0 -0
  212. /package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.d.ts +0 -0
  213. /package/dist/{elements → providers}/TableColumns/RenderDefaultCell/index.scss +0 -0
  214. /package/dist/{elements → providers}/TableColumns/filterFields.d.ts +0 -0
  215. /package/dist/{elements → providers}/TableColumns/filterFields.js +0 -0
  216. /package/dist/{elements → providers}/TableColumns/getInitialColumns.d.ts +0 -0
  217. /package/dist/{elements → providers}/TableColumns/getInitialColumns.js +0 -0
  218. /package/dist/{elements → providers}/TableColumns/index.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["dequal","useRouter","serialize","deepCopyObjectSimpleWithoutReactComponents","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","reduceFieldsToValues","wait","React","useCallback","useEffect","useReducer","useRef","useState","toast","useDebouncedEffect","useEffectEvent","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useRouteTransition","useServerFunctions","useTranslation","useUploadHandlers","abortAndIgnore","handleAbortRef","requests","BackgroundProcessingContext","DocumentFormContext","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","useDocumentForm","errorMessages","fieldReducer","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","docPermissions","getDocPreferences","globalSlug","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","el","handleResponse","initialState","isDocumentForm","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","documentForm","code","locale","i18n","t","refreshCookie","user","operation","getFormState","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","modified","setModified","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","backgroundProcessing","setBackgroundProcessing","setSubmitted","formRef","contextRef","abortResetFormRef","fieldsReducer","fields","dispatchFields","current","validateForm","validatedFieldState","data","getData","validationPromises","Object","entries","map","path","field","validatedField","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","blockData","event","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","overridesFromArgs","skipValidation","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","revalidatedFormState","serializableFields","reduce","priorOnChange","beforeSubmitFn","result","formState","every","key","formData","createFormData","mergeOverrideData","Boolean","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","newState","mergedFormState","acceptValues","existingState","incomingState","optimize","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","console","getFields","getField","file","handler","clientUploadContext","filename","name","updateFilename","JSON","stringify","mimeType","size","dataToSerialize","_payload","indices","nullsAsUndefineds","reset","controller","docPreferences","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","abortOnChange","sanitize","classes","filter","join","executeOnChange","onChangeFn","changed","prevFields","isFirstRenderRef","DocumentFormContextComponent","Provider","Fragment","documentFormContextProps","El","_jsx","noValidate","ref","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { type FormState, type PayloadRequest } from 'payload'\nimport {\n deepCopyObjectSimpleWithoutReactComponents,\n getDataByPath as getDataByPathFunc,\n getSiblingData as getSiblingDataFunc,\n reduceFieldsToValues,\n wait,\n} from 'payload/shared'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../providers/UploadHandlers/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n BackgroundProcessingContext,\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useDocumentForm,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { initContextState } from './initContextState.js'\nimport { mergeServerFormState } from './mergeServerFormState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, docPermissions, getDocPreferences, globalSlug } = useDocumentInfo()\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disabled: disabledFromProps,\n disableSuccessStatus,\n disableValidationOnSubmit,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n el,\n handleResponse,\n initialState, // fully formed initial field state\n isDocumentForm,\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const documentForm = useDocumentForm()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { getUploadHandler } = useUploadHandlers()\n\n const { config } = useConfig()\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n const [modified, setModified] = useState(false)\n /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n const [isValid, setIsValid] = useState(true)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [backgroundProcessing, setBackgroundProcessing] = useState(false)\n\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const abortResetFormRef = useRef<AbortController>(null)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n /**\n * `fields` is the current, up-to-date state/data of all fields in the form. It can be modified by using dispatchFields,\n * which calls the fieldReducer, which then updates the state.\n */\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const data = contextRef.current.getData()\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if ('validate' in field && typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n collectionSlug,\n // If there is a parent document form, we can get the data from that form\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'submit',\n operation,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: contextRef.current.getSiblingData(path),\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!dequal(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n setIsValid(isValid)\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user, documentForm])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg = action,\n method: methodToUse = method,\n overrides: overridesFromArgs = {},\n skipValidation,\n } = options\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let errorToast, successToast\n const promise = new Promise((resolve, reject) => {\n successToast = resolve\n errorToast = reject\n })\n\n const hasFormSubmitAction =\n actionArg || typeof action === 'string' || typeof action === 'function'\n\n if (redirect || disableSuccessStatus || !hasFormSubmitAction) {\n // Do not show submitting toast, as the promise toast may never disappear under these conditions.\n // Instead, make successToast() or errorToast() throw toast.success / toast.error\n successToast = (data) => toast.success(data)\n errorToast = (data) => toast.error(data)\n } else {\n toast.promise(promise, {\n error: (data) => {\n return data as string\n },\n loading: t('general:submitting'),\n success: (data) => {\n return data as string\n },\n })\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n setProcessing(true)\n setDisabled(true)\n\n if (waitForAutocomplete) {\n await wait(100)\n }\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: serializableFields,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(\n ([, field]) => field.valid !== false,\n )\n\n setIsValid(isValid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n setIsValid(isValid)\n // If not valid, prevent submission\n if (!isValid) {\n errorToast(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n let overrides = {}\n\n if (typeof overridesFromArgs === 'function') {\n overrides = overridesFromArgs(contextRef.current.fields)\n } else if (typeof overridesFromArgs === 'object') {\n overrides = overridesFromArgs\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n const data = reduceFieldsToValues(serializableFields, true)\n\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n\n onSubmit(serializableFields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n const formData = await contextRef.current.createFormData(overrides, {\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\n\n try {\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n setModified(false)\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n if (res.status < 400) {\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json)\n if (newFormState) {\n const { newState: mergedFormState } = mergeServerFormState({\n acceptValues: true,\n existingState: contextRef.current.fields || {},\n incomingState: newFormState,\n })\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: mergedFormState,\n })\n }\n }\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n startRouteTransition(() => router.push(redirect))\n } else if (!disableSuccessStatus) {\n successToast(json.message || t('general:submissionSuccessful'))\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n if (json.message) {\n errorToast(json.message)\n\n return\n }\n\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n setIsValid(false)\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(err.message || t('error:unknown'))\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n errorToast(message)\n }\n } catch (err) {\n console.error('Error submitting form', err) // eslint-disable-line no-console\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n errorToast(err.message)\n }\n },\n [\n beforeSubmit,\n startRouteTransition,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n waitForAutocomplete,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n const createFormData = useCallback<CreateFormData>(\n async (overrides, { mergeOverrideData = true }) => {\n let data = reduceFieldsToValues(contextRef.current.fields, true)\n\n let file = data?.file\n\n if (file) {\n delete data.file\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const handler = getUploadHandler({ collectionSlug })\n\n if (typeof handler === 'function') {\n let clientUploadContext = null\n let filename = file.name\n clientUploadContext = await handler({\n file,\n updateFilename: (value) => {\n filename = value\n },\n })\n\n file = JSON.stringify({\n clientUploadContext,\n collectionSlug,\n filename,\n mimeType: file.type,\n size: file.size,\n })\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(data),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n },\n [collectionSlug, getUploadHandler],\n )\n\n const reset = useCallback(\n async (data: unknown) => {\n const controller = handleAbortRef(abortResetFormRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newState } = await getFormState({\n id,\n collectionSlug,\n data,\n docPermissions,\n docPreferences,\n globalSlug,\n locale,\n operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n skipValidation: true,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n\n abortResetFormRef.current = null\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\n locale,\n ],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const newRows: unknown[] = getDataByPath(path) || []\n const rowIndex = rowIndexArg === undefined ? newRows.length : rowIndexArg\n\n // dispatch ADD_ROW that sets requiresRender: true and adds a blank row to local form state.\n // This performs no form state request, as the debounced onChange effect will do that for us.\n dispatchFields({\n type: 'ADD_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n },\n [dispatchFields],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const currentRows: unknown[] = getDataByPath(path)\n const rowIndex = rowIndexArg === undefined ? currentRows.length : rowIndexArg\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n useEffect(() => {\n const abortOnChange = abortResetFormRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setBackgroundProcessing = setBackgroundProcessing\n\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.setIsValid = setIsValid\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n contextRef.current.isValid = isValid\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') {\n setDisabled(disabledFromProps)\n }\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') {\n setSubmitted(submittedFromProps)\n }\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n sanitize: true,\n state: initialState,\n })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [fields],\n )\n\n useEffect(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n const executeOnChange = useEffectEvent(async (submitted: boolean) => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n // Edit view default onChange is in packages/ui/src/views/Edit/index.tsx. This onChange usually sends a form state request\n revalidatedFormState = await onChangeFn({\n formState: deepCopyObjectSimpleWithoutReactComponents(contextRef.current.fields),\n submitted,\n })\n }\n\n if (!revalidatedFormState) {\n return\n }\n\n const { changed, newState } = mergeServerFormState({\n existingState: contextRef.current.fields || {},\n incomingState: revalidatedFormState,\n })\n\n if (changed) {\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n })\n\n const prevFields = useRef(contextRef.current.fields)\n const isFirstRenderRef = useRef(true)\n\n useDebouncedEffect(\n () => {\n if (isFirstRenderRef.current || !dequal(contextRef.current.fields, prevFields.current)) {\n if (modified) {\n void executeOnChange(submitted)\n }\n }\n\n isFirstRenderRef.current = false\n prevFields.current = contextRef.current.fields\n },\n /*\n Make sure we trigger this whenever modified changes (not just when `fields` changes),\n otherwise we will miss merging server form state for the first form update/onChange.\n\n Here's why:\n `fields` updates before `modified`, because setModified is in a setTimeout.\n So on the first change, modified is false, so we don't trigger the effect even though we should.\n **/\n [modified, submitted, contextRef.current.fields],\n 250,\n )\n\n const DocumentFormContextComponent: React.FC<any> = isDocumentForm\n ? DocumentFormContext.Provider\n : React.Fragment\n\n const documentFormContextProps = isDocumentForm\n ? {\n value: contextRef.current,\n }\n : {}\n\n const El: 'form' = (el as unknown as 'form') || 'form'\n\n return (\n <El\n action={typeof action === 'function' ? void action : action}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => void contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <DocumentFormContextComponent {...documentFormContextProps}>\n <FormContext.Provider value={contextRef.current}>\n <FormWatchContext.Provider\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext.Provider value={submitted}>\n <InitializingContext.Provider value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext.Provider value={processing}>\n <BackgroundProcessingContext.Provider value={backgroundProcessing}>\n <ModifiedContext.Provider value={modified}>\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext.Provider>\n </BackgroundProcessingContext.Provider>\n </ProcessingContext.Provider>\n </InitializingContext.Provider>\n </SubmittedContext.Provider>\n </FormWatchContext.Provider>\n </FormContext.Provider>\n </DocumentFormContextComponent>\n </El>\n )\n}\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"mappings":"AAAA;;;AACA,SAASA,MAAM,QAAQ,cAAa,CAAC;AACrC,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAE1B,SACEC,0CAA0C,EAC1CC,aAAA,IAAiBC,iBAAiB,EAClCC,cAAA,IAAkBC,kBAAkB,EACpCC,oBAAoB,EACpBC,IAAI,QACC;AACP,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,UAAU,EAAEC,MAAM,EAAEC,QAAQ,QAAQ;AAC5E,SAASC,KAAK,QAAQ;AAUtB,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,OAAO,QAAQ;AACxB,SAASC,SAAS,QAAQ;AAC1B,SAASC,eAAe,QAAQ;AAChC,SAASC,SAAS,QAAQ;AAC1B,SAASC,YAAY,QAAQ;AAC7B,SAASC,kBAAkB,QAAQ;AACnC,SAASC,kBAAkB,QAAQ;AACnC,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,SAASC,cAAc,EAAEC,cAAc,QAAQ;AAC/C,SAASC,QAAQ,QAAQ;AACzB,SACEC,2BAA2B,EAC3BC,mBAAmB,EACnBC,WAAW,EACXC,iBAAiB,EACjBC,gBAAgB,EAChBC,mBAAmB,EACnBC,eAAe,EACfC,iBAAiB,EACjBC,gBAAgB,EAChBC,eAAe,QACV;AACP,SAASC,aAAa,QAAQ;AAC9B,SAASC,YAAY,QAAQ;AAC7B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,oBAAoB,QAAQ;AAErC,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,IAAA,GAA6BC,KAAA;EACxC,MAAM;IAAEC,EAAE;IAAEC,cAAc;IAAEC,cAAc;IAAEC,iBAAiB;IAAEC;EAAU,CAAE,GAAG/B,eAAA;EAE9E,MAAM;IACJgC,MAAM;IACNC,YAAY;IACZC,QAAQ;IACRC,SAAS;IACTC,QAAA,EAAUC,iBAAiB;IAC3BC,oBAAoB;IACpBC,yBAAyB;IACzB;IACAC,EAAE;IACFC,cAAc;IACdC,YAAY;IACZC,cAAc;IACdC,cAAA,EAAgBC,qBAAqB;IACrCC,QAAQ;IACRC,QAAQ;IACRC,SAAS;IACTC,QAAQ;IACRC,SAAA,EAAWC,kBAAkB;IAC7BC,IAAI;IACJC;EAAmB,CACpB,GAAG3B,KAAA;EAEJ,MAAM4B,MAAA,GAAS,YAAY5B,KAAA,GAAQA,KAAA,EAAO4B,MAAA,GAASC,SAAA;EAEnD,MAAMC,MAAA,GAAS7E,SAAA;EAEf,MAAM8E,YAAA,GAAetC,eAAA;EAErB,MAAM;IAAEuC,IAAA,EAAMC;EAAM,CAAE,GAAG1D,SAAA;EACzB,MAAM;IAAE2D,IAAI;IAAEC;EAAC,CAAE,GAAGxD,cAAA;EACpB,MAAM;IAAEyD,aAAa;IAAEC;EAAI,CAAE,GAAGjE,OAAA;EAChC,MAAMkE,SAAA,GAAY9D,YAAA;EAElB,MAAM;IAAE+D;EAAY,CAAE,GAAG7D,kBAAA;EACzB,MAAM;IAAE8D;EAAoB,CAAE,GAAG/D,kBAAA;EACjC,MAAM;IAAEgE;EAAgB,CAAE,GAAG7D,iBAAA;EAE7B,MAAM;IAAE8D;EAAM,CAAE,GAAGrE,SAAA;EAEnB,MAAM,CAACqC,QAAA,EAAUiC,WAAA,CAAY,GAAG5E,QAAA,CAAS4C,iBAAA,IAAqB;EAC9D,MAAM,CAACiC,SAAA,EAAWC,YAAA,CAAa,GAAG9E,QAAA,CAAS;EAC3C,MAAM,CAAC+E,QAAA,EAAUC,WAAA,CAAY,GAAGhF,QAAA,CAAS;EACzC;;;;EAIA,MAAM,CAACiF,OAAA,EAASC,UAAA,CAAW,GAAGlF,QAAA,CAAS;EACvC,MAAM,CAACmF,YAAA,EAAcC,eAAA,CAAgB,GAAGpF,QAAA,CAASoD,qBAAA;EACjD,MAAM,CAACiC,UAAA,EAAYC,aAAA,CAAc,GAAGtF,QAAA,CAAS;EAC7C,MAAM,CAACuF,oBAAA,EAAsBC,uBAAA,CAAwB,GAAGxF,QAAA,CAAS;EAEjE,MAAM,CAACyD,SAAA,EAAWgC,YAAA,CAAa,GAAGzF,QAAA,CAAS;EAC3C,MAAM0F,OAAA,GAAU3F,MAAA,CAAwB;EACxC,MAAM4F,UAAA,GAAa5F,MAAA,CAAO,CAAC;EAC3B,MAAM6F,iBAAA,GAAoB7F,MAAA,CAAwB;EAElD,MAAM8F,aAAA,GAAgB/F,UAAA,CAAW8B,YAAA,EAAc,CAAC,GAAG,MAAMqB,YAAA;EAEzD;;;;EAIA,MAAM,CAAC6C,MAAA,EAAQC,cAAA,CAAe,GAAGF,aAAA;EAEjCF,UAAA,CAAWK,OAAO,CAACF,MAAM,GAAGA,MAAA;EAE5B,MAAMG,YAAA,GAAerG,WAAA,CAAY;IAC/B,MAAMsG,mBAAA,GAAsB,CAAC;IAC7B,IAAIjB,SAAA,GAAU;IAEd,MAAMkB,IAAA,GAAOR,UAAA,CAAWK,OAAO,CAACI,OAAO;IAEvC,MAAMC,kBAAA,GAAqBC,MAAA,CAAOC,OAAO,CAACZ,UAAA,CAAWK,OAAO,CAACF,MAAM,EAAEU,GAAG,CACtE,OAAO,CAACC,IAAA,EAAMC,KAAA,CAAM;MAClB,MAAMC,cAAA,GAAiBD,KAAA;MAEvB,IAAIA,KAAA,CAAME,eAAe,KAAK,OAAO;QACnC,IAAIC,gBAAA,GAAqCF,cAAA,CAAeG,KAAK;QAE7D,IAAI,cAAcJ,KAAA,IAAS,OAAOA,KAAA,CAAMK,QAAQ,KAAK,YAAY;UAC/D,IAAIC,eAAA,GAAkBN,KAAA,CAAMO,KAAK;UAEjC,IAAIP,KAAA,EAAOQ,IAAA,IAAQC,KAAA,CAAMC,OAAO,CAACV,KAAA,CAAMQ,IAAI,GAAG;YAC5CF,eAAA,GAAkBrB,UAAA,CAAWK,OAAO,CAAC3G,aAAa,CAACoH,IAAA;UACrD;UAEAI,gBAAA,GAAmB,MAAMH,KAAA,CAAMK,QAAQ,CAACC,eAAA,EAAiB;YACvD,GAAGN,KAAK;YACRxE,EAAA;YACAC,cAAA;YACA;YACAkF,SAAA,EAAWvD,SAAA;YACXqC,IAAA,EAAMnC,YAAA,EAAcoC,OAAA,GAAUpC,YAAA,CAAaoC,OAAO,KAAKD,IAAA;YACvDmB,KAAA,EAAO;YACP/C,SAAA;YACAgD,WAAA,EAAa,CAAC;YACdC,GAAA,EAAK;cACHC,OAAA,EAAS;gBACP9C;cACF;cACAP,CAAA;cACAE;YACF;YACAoD,WAAA,EAAa/B,UAAA,CAAWK,OAAO,CAACzG,cAAc,CAACkH,IAAA;UACjD;UAEA,IAAI,OAAOI,gBAAA,KAAqB,UAAU;YACxCF,cAAA,CAAegB,YAAY,GAAGd,gBAAA;YAC9BF,cAAA,CAAeG,KAAK,GAAG;UACzB,OAAO;YACLH,cAAA,CAAeG,KAAK,GAAG;YACvBH,cAAA,CAAegB,YAAY,GAAG7D,SAAA;UAChC;QACF;QAEA,IAAI6C,cAAA,CAAeG,KAAK,KAAK,OAAO;UAClC7B,SAAA,GAAU;QACZ;MACF;MAEAiB,mBAAmB,CAACO,IAAA,CAAK,GAAGE,cAAA;IAC9B;IAGF,MAAMiB,OAAA,CAAQC,GAAG,CAACxB,kBAAA;IAElB,IAAI,CAACpH,MAAA,CAAO0G,UAAA,CAAWK,OAAO,CAACF,MAAM,EAAEI,mBAAA,GAAsB;MAC3DH,cAAA,CAAe;QAAE+B,IAAA,EAAM;QAAiBC,KAAA,EAAO7B;MAAoB;IACrE;IAEAhB,UAAA,CAAWD,SAAA;IAEX,OAAOA,SAAA;EACT,GAAG,CAAC9C,cAAA,EAAgBwC,MAAA,EAAQoB,cAAA,EAAgB7D,EAAA,EAAIqC,SAAA,EAAWH,CAAA,EAAGE,IAAA,EAAMN,YAAA,CAAa;EAEjF,MAAMgE,MAAA,GAASpI,WAAA,CACb,OAAOqI,OAAA,GAAyB,CAAC,CAAC,EAAEC,CAAA;IAClC,MAAM;MACJ3F,MAAA,EAAQ4F,SAAA,GAAY5F,MAAM;MAC1BsB,MAAA,EAAQuE,WAAA,GAAcvE,MAAM;MAC5BwE,SAAA,EAAWC,iBAAA,GAAoB,CAAC,CAAC;MACjCC;IAAc,CACf,GAAGN,OAAA;IAEJ,IAAItF,QAAA,EAAU;MACZ,IAAIuF,CAAA,EAAG;QACLA,CAAA,CAAEM,cAAc;MAClB;MACA;IACF;IAEA;IACA,IAAIC,UAAA,EAAYC,YAAA;IAChB,MAAMC,OAAA,GAAU,IAAIf,OAAA,CAAQ,CAACgB,OAAA,EAASC,MAAA;MACpCH,YAAA,GAAeE,OAAA;MACfH,UAAA,GAAaI,MAAA;IACf;IAEA,MAAMC,mBAAA,GACJX,SAAA,IAAa,OAAO5F,MAAA,KAAW,YAAY,OAAOA,MAAA,KAAW;IAE/D,IAAIiB,QAAA,IAAYX,oBAAA,IAAwB,CAACiG,mBAAA,EAAqB;MAC5D;MACA;MACAJ,YAAA,GAAgBvC,MAAA,IAASlG,KAAA,CAAM8I,OAAO,CAAC5C,MAAA;MACvCsC,UAAA,GAActC,MAAA,IAASlG,KAAA,CAAM+I,KAAK,CAAC7C,MAAA;IACrC,OAAO;MACLlG,KAAA,CAAM0I,OAAO,CAACA,OAAA,EAAS;QACrBK,KAAA,EAAQ7C,MAAA;UACN,OAAOA,MAAA;QACT;QACA8C,OAAA,EAAS7E,CAAA,CAAE;QACX2E,OAAA,EAAU5C,MAAA;UACR,OAAOA,MAAA;QACT;MACF;IACF;IAEA,IAAI+B,CAAA,EAAG;MACLA,CAAA,CAAEgB,eAAe;MACjBhB,CAAA,CAAEM,cAAc;IAClB;IAEAlD,aAAA,CAAc;IACdV,WAAA,CAAY;IAEZ,IAAIhB,mBAAA,EAAqB;MACvB,MAAMlE,IAAA,CAAK;IACb;IAEA;IACA,IAAIyH,KAAA,CAAMC,OAAO,CAAC5E,YAAA,GAAe;MAC/B,IAAI2G,oBAAA;MAEJ,MAAMC,kBAAA,GAAqBhK,0CAAA,CACzBuG,UAAA,CAAWK,OAAO,CAACF,MAAM;MAG3B,MAAMtD,YAAA,CAAa6G,MAAM,CAAC,OAAOC,aAAA,EAAeC,cAAA;QAC9C,MAAMD,aAAA;QAEN,MAAME,MAAA,GAAS,MAAMD,cAAA,CAAe;UAClCE,SAAA,EAAWL;QACb;QAEAD,oBAAA,GAAuBK,MAAA;MACzB,GAAG5B,OAAA,CAAQgB,OAAO;MAElB,MAAM3D,SAAA,GAAUqB,MAAA,CAAOC,OAAO,CAAC4C,oBAAA,EAAsBO,KAAK,CACxD,CAAC,GAAGhD,OAAA,CAAM,KAAKA,OAAA,CAAMI,KAAK,KAAK;MAGjC5B,UAAA,CAAWD,SAAA;MAEX,IAAI,CAACA,SAAA,EAAS;QACZK,aAAA,CAAc;QACdG,YAAA,CAAa;QACbb,WAAA,CAAY;QACZ,OAAOmB,cAAA,CAAe;UAAE+B,IAAA,EAAM;UAAiBC,KAAA,EAAOoB;QAAqB;MAC7E;IACF;IAEA,MAAMlE,SAAA,GACJsD,cAAA,IAAkBzF,yBAAA,GAA4B,OAAO,MAAM6C,UAAA,CAAWK,OAAO,CAACC,YAAY;IAE5Ff,UAAA,CAAWD,SAAA;IACX;IACA,IAAI,CAACA,SAAA,EAAS;MACZwD,UAAA,CAAWrE,CAAA,CAAE;MACbkB,aAAA,CAAc;MACdG,YAAA,CAAa;MACbb,WAAA,CAAY;MACZ;IACF;IAEA,IAAIyD,SAAA,GAAY,CAAC;IAEjB,IAAI,OAAOC,iBAAA,KAAsB,YAAY;MAC3CD,SAAA,GAAYC,iBAAA,CAAkB3C,UAAA,CAAWK,OAAO,CAACF,MAAM;IACzD,OAAO,IAAI,OAAOwC,iBAAA,KAAsB,UAAU;MAChDD,SAAA,GAAYC,iBAAA;IACd;IAEA;IACA,IAAIhF,QAAA,EAAU;MACZ,MAAM8F,oBAAA,GAAqBhK,0CAAA,CACzBuG,UAAA,CAAWK,OAAO,CAACF,MAAM;MAG3B,MAAMK,MAAA,GAAO1G,oBAAA,CAAqB2J,oBAAA,EAAoB;MAEtD,KAAK,MAAM,CAACO,GAAA,EAAK1C,KAAA,CAAM,IAAIX,MAAA,CAAOC,OAAO,CAAC8B,SAAA,GAAY;QACpDlC,MAAI,CAACwD,GAAA,CAAI,GAAG1C,KAAA;MACd;MAEA3D,QAAA,CAAS8F,oBAAA,EAAoBjD,MAAA;IAC/B;IAEA,IAAI,CAAC2C,mBAAA,EAAqB;MACxB;MACA;MACAxD,aAAA,CAAc;MACdG,YAAA,CAAa;MACbb,WAAA,CAAY;MACZ;IACF;IAEA,MAAMgF,QAAA,GAAW,MAAMjE,UAAA,CAAWK,OAAO,CAAC6D,cAAc,CAACxB,SAAA,EAAW;MAClEyB,iBAAA,EAAmBC,OAAA,CAAQ,OAAOzB,iBAAA,KAAsB;IAC1D;IAEA,IAAI;MACF,IAAI0B,GAAA;MAEJ,IAAI,OAAO7B,SAAA,KAAc,UAAU;QACjC6B,GAAA,GAAM,MAAMhJ,QAAQ,CAACoH,WAAA,CAAY6B,WAAW,GAAG,CAAC9B,SAAA,EAAW;UACzD+B,IAAA,EAAMN,QAAA;UACNO,OAAA,EAAS;YACP,mBAAmBhG,IAAA,CAAKiG;UAC1B;QACF;MACF,OAAO,IAAI,OAAO7H,MAAA,KAAW,YAAY;QACvCyH,GAAA,GAAM,MAAMzH,MAAA,CAAOqH,QAAA;MACrB;MAEA5E,WAAA,CAAY;MACZJ,WAAA,CAAY;MAEZ,IAAI,OAAO5B,cAAA,KAAmB,YAAY;QACxCA,cAAA,CAAegH,GAAA,EAAKtB,YAAA,EAAcD,UAAA;QAClC;MACF;MAEA,MAAM4B,WAAA,GAAcL,GAAA,CAAIG,OAAO,CAACG,GAAG,CAAC;MACpC,MAAMC,MAAA,GAASF,WAAA,IAAeA,WAAA,CAAYG,OAAO,CAAC,wBAAwB,CAAC;MAE3E;MACA,IAAIC,IAAA,GAA4B,CAAC;MAEjC,IAAIF,MAAA,EAAQ;QACVE,IAAA,GAAO,MAAMT,GAAA,CAAIS,IAAI;MACvB;MACA,IAAIT,GAAA,CAAIU,MAAM,GAAG,KAAK;QACpB,IAAI,OAAOnH,SAAA,KAAc,YAAY;UACnC,MAAMoH,YAAA,GAAe,MAAMpH,SAAA,CAAUkH,IAAA;UACrC,IAAIE,YAAA,EAAc;YAChB,MAAM;cAAEC,QAAA,EAAUC;YAAe,CAAE,GAAG/I,oBAAA,CAAqB;cACzDgJ,YAAA,EAAc;cACdC,aAAA,EAAepF,UAAA,CAAWK,OAAO,CAACF,MAAM,IAAI,CAAC;cAC7CkF,aAAA,EAAeL;YACjB;YAEA5E,cAAA,CAAe;cACb+B,IAAA,EAAM;cACNmD,QAAA,EAAU;cACVlD,KAAA,EAAO8C;YACT;UACF;QACF;QACApF,YAAA,CAAa;QACbH,aAAA,CAAc;QAEd,IAAI9B,QAAA,EAAU;UACZiB,oBAAA,CAAqB,MAAMV,MAAA,CAAOmH,IAAI,CAAC1H,QAAA;QACzC,OAAO,IAAI,CAACX,oBAAA,EAAsB;UAChC6F,YAAA,CAAa+B,IAAA,CAAKU,OAAO,IAAI/G,CAAA,CAAE;QACjC;MACF,OAAO;QACLkB,aAAA,CAAc;QACdG,YAAA,CAAa;QAEbE,UAAA,CAAWK,OAAO,GAAG;UAAE,GAAGL,UAAA,CAAWK;QAAQ,EAAE;QAAA;QAC/C,IAAIyE,IAAA,CAAKU,OAAO,EAAE;UAChB1C,UAAA,CAAWgC,IAAA,CAAKU,OAAO;UAEvB;QACF;QAEA,IAAIhE,KAAA,CAAMC,OAAO,CAACqD,IAAA,CAAKW,MAAM,GAAG;UAC9B,MAAM,CAACC,WAAA,EAAaC,cAAA,CAAe,GAAGb,IAAA,CAAKW,MAAM,CAAC/B,MAAM,CACtD,CAAC,CAACkC,SAAA,EAAWC,YAAA,CAAa,EAAEC,KAAA;YAC1B,MAAMC,YAAA,GAAe,EAAE;YACvB,MAAMC,eAAA,GAAkB,EAAE;YAE1B,IAAIF,KAAA,EAAKN,OAAA,EAAS;cAChBQ,eAAA,CAAgBT,IAAI,CAACO,KAAA;YACvB;YAEA,IAAItE,KAAA,CAAMC,OAAO,CAACqE,KAAA,EAAKtF,IAAA,EAAMiF,MAAA,GAAS;cACpCK,KAAA,CAAItF,IAAI,EAAEiF,MAAA,CAAOQ,OAAA,CAASC,SAAA;gBACxB,IAAIA,SAAA,EAAWpF,IAAA,EAAM;kBACnBiF,YAAA,CAAaR,IAAI,CAACW,SAAA;gBACpB,OAAO;kBACLF,eAAA,CAAgBT,IAAI,CAACW,SAAA;gBACvB;cACF;YACF;YAEA,OAAO,CACL,C,GAAIN,SAAA,E,GAAcG,YAAA,CAAa,EAC/B,C,GAAIF,YAAA,E,GAAiBG,eAAA,CAAgB,CACtC;UACH,GACA,CAAC,EAAE,EAAE,EAAE,CAAC;UAGVzG,UAAA,CAAW;UAEXa,cAAA,CAAe;YACb+B,IAAA,EAAM;YACNsD,MAAA,EAAQC;UACV;UAEAC,cAAA,CAAeM,OAAO,CAAEH,KAAA;YACtBhD,UAAA,CAAWgD,KAAA,CAAIN,OAAO,IAAI/G,CAAA,CAAE;UAC9B;UAEA;QACF;QAEA,MAAM+G,OAAA,GAAUxJ,aAAA,GAAgBqI,GAAA,CAAIU,MAAM,CAAC,IAAIV,GAAA,EAAK8B,UAAA,IAAc1H,CAAA,CAAE;QAEpEqE,UAAA,CAAW0C,OAAA;MACb;IACF,EAAE,OAAOM,GAAA,EAAK;MACZM,OAAA,CAAQ/C,KAAK,CAAC,yBAAyByC,GAAA,EAAK;MAAA;MAC5CnG,aAAA,CAAc;MACdG,YAAA,CAAa;MACbb,WAAA,CAAY;MACZ6D,UAAA,CAAWgD,GAAA,CAAIN,OAAO;IACxB;EACF,GACA,CACE3I,YAAA,EACAiC,oBAAA,EACAlC,MAAA,EACAM,oBAAA,EACAC,yBAAA,EACAH,QAAA,EACAoD,cAAA,EACA/C,cAAA,EACAa,MAAA,EACAP,QAAA,EACAC,SAAA,EACAC,QAAA,EACAO,MAAA,EACAK,CAAA,EACAD,IAAA,EACAP,mBAAA,CACD;EAGH,MAAMoI,SAAA,GAAYpM,WAAA,CAAY,MAAM+F,UAAA,CAAWK,OAAO,CAACF,MAAM,EAAE,EAAE;EAEjE,MAAMmG,QAAA,GAAWrM,WAAA,CAAa6G,MAAA,IAAiBd,UAAA,CAAWK,OAAO,CAACF,MAAM,CAACW,MAAA,CAAK,EAAE,EAAE;EAElF,MAAML,OAAA,GAAUxG,WAAA,CAAY,MAAMH,oBAAA,CAAqBkG,UAAA,CAAWK,OAAO,CAACF,MAAM,EAAE,OAAO,EAAE;EAE3F,MAAMvG,cAAA,GAAiBK,WAAA,CACpB6G,MAAA,IAAiBjH,kBAAA,CAAmBmG,UAAA,CAAWK,OAAO,CAACF,MAAM,EAAEW,MAAA,GAChE,EAAE;EAGJ,MAAMpH,aAAA,GAAgBO,WAAA,CACnB6G,MAAA,IAAiBnH,iBAAA,CAAkBqG,UAAA,CAAWK,OAAO,CAACF,MAAM,EAAEW,MAAA,GAC/D,EAAE;EAGJ,MAAMoD,cAAA,GAAiBjK,WAAA,CACrB,OAAOyI,WAAA,EAAW;IAAEyB,iBAAA,GAAoB;EAAI,CAAE;IAC5C,IAAI3D,MAAA,GAAO1G,oBAAA,CAAqBkG,UAAA,CAAWK,OAAO,CAACF,MAAM,EAAE;IAE3D,IAAIoG,IAAA,GAAO/F,MAAA,EAAM+F,IAAA;IAEjB,IAAIA,IAAA,EAAM;MACR,OAAO/F,MAAA,CAAK+F,IAAI;IAClB;IAEA,IAAIpC,iBAAA,EAAmB;MACrB3D,MAAA,GAAO;QACL,GAAGA,MAAI;QACP,GAAGkC;MACL;IACF,OAAO;MACLlC,MAAA,GAAOkC,WAAA;IACT;IAEA,MAAM8D,OAAA,GAAUzH,gBAAA,CAAiB;MAAEvC;IAAe;IAElD,IAAI,OAAOgK,OAAA,KAAY,YAAY;MACjC,IAAIC,mBAAA,GAAsB;MAC1B,IAAIC,QAAA,GAAWH,IAAA,CAAKI,IAAI;MACxBF,mBAAA,GAAsB,MAAMD,OAAA,CAAQ;QAClCD,IAAA;QACAK,cAAA,EAAiBtF,OAAA;UACfoF,QAAA,GAAWpF,OAAA;QACb;MACF;MAEAiF,IAAA,GAAOM,IAAA,CAAKC,SAAS,CAAC;QACpBL,mBAAA;QACAjK,cAAA;QACAkK,QAAA;QACAK,QAAA,EAAUR,IAAA,CAAKpE,IAAI;QACnB6E,IAAA,EAAMT,IAAA,CAAKS;MACb;IACF;IAEA,MAAMC,eAAA,GAAkB;MACtBC,QAAA,EAAUL,IAAA,CAAKC,SAAS,CAACtG,MAAA;MACzB+F;IACF;IAEA;IACA,MAAMtC,UAAA,GAAWzK,SAAA,CAAUyN,eAAA,EAAiB;MAAEE,OAAA,EAAS;MAAMC,iBAAA,EAAmB;IAAM;IAEtF,OAAOnD,UAAA;EACT,GACA,CAACzH,cAAA,EAAgBuC,gBAAA,CAAiB;EAGpC,MAAMsI,KAAA,GAAQpN,WAAA,CACZ,MAAOuG,MAAA;IACL,MAAM8G,UAAA,GAAalM,cAAA,CAAe6E,iBAAA;IAElC,MAAMsH,cAAA,GAAiB,MAAM7K,iBAAA;IAE7B,MAAM;MAAE0F,KAAA,EAAO6C;IAAQ,CAAE,GAAG,MAAMpG,YAAA,CAAa;MAC7CtC,EAAA;MACAC,cAAA;MACAgE,IAAA,EAAAA,MAAA;MACA/D,cAAA;MACA8K,cAAA;MACA5K,UAAA;MACA4B,MAAA;MACAK,SAAA;MACA4I,eAAA,EAAiB;MACjBC,UAAA,EAAYjL,cAAA,GAAiBA,cAAA,GAAiBG,UAAA;MAC9C+K,MAAA,EAAQJ,UAAA,CAAWI,MAAM;MACzB9E,cAAA,EAAgB;IAClB;IAEA5C,UAAA,CAAWK,OAAO,GAAG;MAAE,GAAGnE;IAAiB;IAC3CmD,WAAA,CAAY;IACZe,cAAA,CAAe;MAAE+B,IAAA,EAAM;MAAiBC,KAAA,EAAO6C;IAAS;IAExDhF,iBAAA,CAAkBI,OAAO,GAAG;EAC9B,GACA,CACE7D,cAAA,EACA4D,cAAA,EACAzD,UAAA,EACAJ,EAAA,EACAqC,SAAA,EACAC,YAAA,EACApC,cAAA,EACAC,iBAAA,EACA6B,MAAA,CACD;EAGH,MAAMoJ,YAAA,GAAe1N,WAAA,CAClBmI,KAAA;IACCpC,UAAA,CAAWK,OAAO,GAAG;MAAE,GAAGnE;IAAiB;IAC3CmD,WAAA,CAAY;IACZe,cAAA,CAAe;MAAE+B,IAAA,EAAM;MAAiBC;IAAM;EAChD,GACA,CAAChC,cAAA,CAAe;EAGlB,MAAMwH,WAAA,GAA8C3N,WAAA,CAClD,CAAC;IAAE4N,SAAS;IAAE/G,IAAI,EAAJA,MAAI;IAAEgH,QAAA,EAAUC,WAAW;IAAEC;EAAa,CAAE;IACxD,MAAMC,OAAA,GAAqBvO,aAAA,CAAcoH,MAAA,KAAS,EAAE;IACpD,MAAMgH,QAAA,GAAWC,WAAA,KAAgB5J,SAAA,GAAY8J,OAAA,CAAQC,MAAM,GAAGH,WAAA;IAE9D;IACA;IACA3H,cAAA,CAAe;MACb+B,IAAA,EAAM;MACN0F,SAAA;MACA/G,IAAA,EAAAA,MAAA;MACAgH,QAAA;MACAE;IACF;IAEA3I,WAAA,CAAY;EACd,GACA,CAACe,cAAA,EAAgB1G,aAAA,CAAc;EAGjC,MAAMyO,cAAA,GAAoDlO,WAAA,CACxD,CAAC;IAAE6G,IAAI,EAAJA,MAAI;IAAEgH,QAAQ,EAARA;EAAQ,CAAE;IACjB1H,cAAA,CAAe;MAAE+B,IAAA,EAAM;MAAcrB,IAAA,EAAAA,MAAA;MAAMgH,QAAA,EAAAA;IAAS;EACtD,GACA,CAAC1H,cAAA,CAAe;EAGlB,MAAMgI,eAAA,GAAsDnO,WAAA,CAC1D,CAAC;IAAE4N,SAAS,EAATA,WAAS;IAAE/G,IAAI,EAAJA,MAAI;IAAEgH,QAAA,EAAUC,aAAW;IAAEC,aAAa,EAAbA;EAAa,CAAE;IACxD,MAAMK,WAAA,GAAyB3O,aAAA,CAAcoH,MAAA;IAC7C,MAAMgH,UAAA,GAAWC,aAAA,KAAgB5J,SAAA,GAAYkK,WAAA,CAAYH,MAAM,GAAGH,aAAA;IAElE3H,cAAA,CAAe;MACb+B,IAAA,EAAM;MACN0F,SAAA,EAAAA,WAAA;MACA/G,IAAA,EAAAA,MAAA;MACAgH,QAAA,EAAAA,UAAA;MACAE,aAAA,EAAAA;IACF;IAEA3I,WAAA,CAAY;EACd,GACA,CAACe,cAAA,EAAgB1G,aAAA,CAAc;EAGjCQ,SAAA,CAAU;IACR,MAAMoO,aAAA,GAAgBrI,iBAAA,CAAkBI,OAAO;IAE/C,OAAO;MACLlF,cAAA,CAAemN,aAAA;IACjB;EACF,GAAG,EAAE;EAELpO,SAAA,CAAU;IACR,IAAIuD,qBAAA,KAA0BU,SAAA,EAAW;MACvCsB,eAAA,CAAgBhC,qBAAA;IAClB;EACF,GAAG,CAACA,qBAAA,CAAsB;EAE1BuC,UAAA,CAAWK,OAAO,CAACgC,MAAM,GAAGA,MAAA;EAC5BrC,UAAA,CAAWK,OAAO,CAACgG,SAAS,GAAGA,SAAA;EAC/BrG,UAAA,CAAWK,OAAO,CAACiG,QAAQ,GAAGA,QAAA;EAC9BtG,UAAA,CAAWK,OAAO,CAACI,OAAO,GAAGA,OAAA;EAC7BT,UAAA,CAAWK,OAAO,CAACzG,cAAc,GAAGA,cAAA;EACpCoG,UAAA,CAAWK,OAAO,CAAC3G,aAAa,GAAGA,aAAA;EACnCsG,UAAA,CAAWK,OAAO,CAACC,YAAY,GAAGA,YAAA;EAClCN,UAAA,CAAWK,OAAO,CAAC6D,cAAc,GAAGA,cAAA;EACpClE,UAAA,CAAWK,OAAO,CAAChB,WAAW,GAAGA,WAAA;EACjCW,UAAA,CAAWK,OAAO,CAACV,aAAa,GAAGA,aAAA;EACnCK,UAAA,CAAWK,OAAO,CAACR,uBAAuB,GAAGA,uBAAA;EAE7CG,UAAA,CAAWK,OAAO,CAACP,YAAY,GAAGA,YAAA;EAClCE,UAAA,CAAWK,OAAO,CAACd,UAAU,GAAGA,UAAA;EAChCS,UAAA,CAAWK,OAAO,CAACrD,QAAQ,GAAGA,QAAA;EAC9BgD,UAAA,CAAWK,OAAO,CAACpB,WAAW,GAAGA,WAAA;EACjCe,UAAA,CAAWK,OAAO,CAACN,OAAO,GAAGA,OAAA;EAC7BC,UAAA,CAAWK,OAAO,CAACgH,KAAK,GAAGA,KAAA;EAC3BrH,UAAA,CAAWK,OAAO,CAACsH,YAAY,GAAGA,YAAA;EAClC3H,UAAA,CAAWK,OAAO,CAACD,cAAc,GAAGA,cAAA;EACpCJ,UAAA,CAAWK,OAAO,CAACuH,WAAW,GAAGA,WAAA;EACjC5H,UAAA,CAAWK,OAAO,CAAC8H,cAAc,GAAGA,cAAA;EACpCnI,UAAA,CAAWK,OAAO,CAAC+H,eAAe,GAAGA,eAAA;EACrCpI,UAAA,CAAWK,OAAO,CAACrC,IAAI,GAAGA,IAAA;EAC1BgC,UAAA,CAAWK,OAAO,CAACb,YAAY,GAAGA,YAAA;EAClCQ,UAAA,CAAWK,OAAO,CAACf,OAAO,GAAGA,OAAA;EAE7BpF,SAAA,CAAU;IACRiF,YAAA,CAAa;EACf,GAAG,EAAE;EAELjF,SAAA,CAAU;IACR,IAAI,OAAO+C,iBAAA,KAAsB,WAAW;MAC1CgC,WAAA,CAAYhC,iBAAA;IACd;EACF,GAAG,CAACA,iBAAA,CAAkB;EAEtB/C,SAAA,CAAU;IACR,IAAI,OAAO6D,kBAAA,KAAuB,WAAW;MAC3C+B,YAAA,CAAa/B,kBAAA;IACf;EACF,GAAG,CAACA,kBAAA,CAAmB;EAEvB7D,SAAA,CAAU;IACR,IAAIoD,YAAA,EAAc;MAChB0C,UAAA,CAAWK,OAAO,GAAG;QAAE,GAAGnE;MAAiB;MAC3CkE,cAAA,CAAe;QACb+B,IAAA,EAAM;QACNmD,QAAA,EAAU;QACViD,QAAA,EAAU;QACVnG,KAAA,EAAO9E;MACT;IACF;EACF,GAAG,CAACA,YAAA,EAAc8C,cAAA,CAAe;EAEjC3F,kBAAA,CACE;IACEiE,aAAA;EACF,GACA,OACA,CAACyB,MAAA,CAAO;EAGVjG,SAAA,CAAU;IACR8F,UAAA,CAAWK,OAAO,GAAG;MAAE,GAAGL,UAAA,CAAWK;IAAQ,EAAE;IAAA;IAC/ChB,WAAA,CAAY;EACd,GAAG,CAACd,MAAA,CAAO;EAEX,MAAMiK,OAAA,GAAU,CAACzL,SAAA,EAAWX,SAAA,CAAU,CAACqM,MAAM,CAACrE,OAAA,EAASsE,IAAI,CAAC;EAE5D,MAAMC,eAAA,GAAkBnO,cAAA,CAAe,MAAOsD,WAAA;IAC5C,IAAI0D,KAAA,CAAMC,OAAO,CAAC/D,QAAA,GAAW;MAC3B,IAAI8F,sBAAA,GAAkCxD,UAAA,CAAWK,OAAO,CAACF,MAAM;MAE/D,KAAK,MAAMyI,UAAA,IAAclL,QAAA,EAAU;QACjC;QACA8F,sBAAA,GAAuB,MAAMoF,UAAA,CAAW;UACtC9E,SAAA,EAAWrK,0CAAA,CAA2CuG,UAAA,CAAWK,OAAO,CAACF,MAAM;UAC/ErC,SAAA,EAAAA;QACF;MACF;MAEA,IAAI,CAAC0F,sBAAA,EAAsB;QACzB;MACF;MAEA,MAAM;QAAEqF,OAAO;QAAE5D,QAAQ,EAARA;MAAQ,CAAE,GAAG9I,oBAAA,CAAqB;QACjDiJ,aAAA,EAAepF,UAAA,CAAWK,OAAO,CAACF,MAAM,IAAI,CAAC;QAC7CkF,aAAA,EAAe7B;MACjB;MAEA,IAAIqF,OAAA,EAAS;QACXzI,cAAA,CAAe;UACb+B,IAAA,EAAM;UACNmD,QAAA,EAAU;UACVlD,KAAA,EAAO6C;QACT;MACF;IACF;EACF;EAEA,MAAM6D,UAAA,GAAa1O,MAAA,CAAO4F,UAAA,CAAWK,OAAO,CAACF,MAAM;EACnD,MAAM4I,gBAAA,GAAmB3O,MAAA,CAAO;EAEhCG,kBAAA,CACE;IACE,IAAIwO,gBAAA,CAAiB1I,OAAO,IAAI,CAAC/G,MAAA,CAAO0G,UAAA,CAAWK,OAAO,CAACF,MAAM,EAAE2I,UAAA,CAAWzI,OAAO,GAAG;MACtF,IAAIjB,QAAA,EAAU;QACZ,KAAKuJ,eAAA,CAAgB7K,SAAA;MACvB;IACF;IAEAiL,gBAAA,CAAiB1I,OAAO,GAAG;IAC3ByI,UAAA,CAAWzI,OAAO,GAAGL,UAAA,CAAWK,OAAO,CAACF,MAAM;EAChD;EACA;;;;;;;EAQA,CAACf,QAAA,EAAUtB,SAAA,EAAWkC,UAAA,CAAWK,OAAO,CAACF,MAAM,CAAC,EAChD;EAGF,MAAM6I,4BAAA,GAA8CzL,cAAA,GAChDhC,mBAAA,CAAoB0N,QAAQ,GAC5BjP,KAAA,CAAMkP,QAAQ;EAElB,MAAMC,wBAAA,GAA2B5L,cAAA,GAC7B;IACE+D,KAAA,EAAOtB,UAAA,CAAWK;EACpB,IACA,CAAC;EAEL,MAAM+I,EAAA,GAAahM,EAAC,IAA4B;EAEhD,oBACEiM,IAAA,CAACD,EAAA;IACCxM,MAAA,EAAQ,OAAOA,MAAA,KAAW,aAAa,KAAKA,MAAA,GAASA,MAAA;IACrDG,SAAA,EAAWyL,OAAA;IACXtK,MAAA,EAAQA,MAAA;IACRoL,UAAU;IACV3L,QAAA,EAAW4E,GAAA,IAAM,KAAKvC,UAAA,CAAWK,OAAO,CAACgC,MAAM,CAAC,CAAC,GAAGE,GAAA;IACpDgH,GAAA,EAAKxJ,OAAA;cAEL,aAAAsJ,IAAA,CAACL,4BAAA;MAA8B,GAAGG,wBAAwB;gBACxD,aAAAE,IAAA,CAAC7N,WAAA,CAAYyN,QAAQ;QAAC3H,KAAA,EAAOtB,UAAA,CAAWK,OAAO;kBAC7C,aAAAgJ,IAAA,CAAC3N,gBAAA,CAAiBuN,QAAQ;UACxB3H,KAAA,EAAO;YACLnB,MAAA;YACA,GAAGH,UAAA,CAAWK;UAChB;oBAEA,aAAAgJ,IAAA,CAACvN,gBAAA,CAAiBmN,QAAQ;YAAC3H,KAAA,EAAOxD,SAAA;sBAChC,aAAAuL,IAAA,CAAC1N,mBAAA,CAAoBsN,QAAQ;cAAC3H,KAAA,EAAO,CAACpC,SAAA,IAAcA,SAAA,IAAaM,YAAA;wBAC/D,aAAA6J,IAAA,CAACxN,iBAAA,CAAkBoN,QAAQ;gBAAC3H,KAAA,EAAO5B,UAAA;0BACjC,aAAA2J,IAAA,CAAC/N,2BAAA,CAA4B2N,QAAQ;kBAAC3H,KAAA,EAAO1B,oBAAA;4BAC3C,aAAAyJ,IAAA,CAACzN,eAAA,CAAgBqN,QAAQ;oBAAC3H,KAAA,EAAOlC,QAAA;8BAC/B,aAAAiK,IAAA,CAAC5N,iBAAA,CAAkBwN,QAAQ;sBAAC3H,KAAA,EAAOpB,aAAA;gCAChCpD;;;;;;;;;;;AAYzB;AAEA,SACEvB,mBAAmB,EACnBC,WAAW,EACXC,iBAAiB,EACjBC,gBAAgB,EAChBE,eAAe,EACfC,iBAAiB,EACjBC,gBAAgB,EAChB0N,gBAAgB,EAChBzN,eAAe,EACf0N,OAAO,EACPC,aAAa,EACbC,eAAe,EACfC,iBAAiB,EACjBC,gBAAgB,EAChBC,YAAY,QACP","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["dequal","useRouter","serialize","deepCopyObjectSimpleWithoutReactComponents","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","reduceFieldsToValues","wait","React","useCallback","useEffect","useReducer","useRef","useState","toast","useDebouncedEffect","useEffectEvent","useThrottledEffect","useAuth","useConfig","useDocumentInfo","useLocale","useOperation","useRouteTransition","useServerFunctions","useTranslation","useUploadHandlers","abortAndIgnore","handleAbortRef","requests","BackgroundProcessingContext","DocumentFormContext","FormContext","FormFieldsContext","FormWatchContext","InitializingContext","ModifiedContext","ProcessingContext","SubmittedContext","useDocumentForm","errorMessages","fieldReducer","initContextState","mergeServerFormState","baseClass","Form","props","id","collectionSlug","docPermissions","getDocPreferences","globalSlug","action","beforeSubmit","children","className","disabled","disabledFromProps","disableSuccessStatus","disableValidationOnSubmit","el","handleResponse","initialState","isDocumentForm","isInitializing","initializingFromProps","onChange","onSubmit","onSuccess","redirect","submitted","submittedFromProps","uuid","waitForAutocomplete","method","undefined","router","documentForm","code","locale","i18n","t","refreshCookie","user","operation","getFormState","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","modified","setModified","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","backgroundProcessing","setBackgroundProcessing","setSubmitted","formRef","contextRef","abortResetFormRef","fieldsReducer","fields","dispatchFields","current","validateForm","validatedFieldState","data","getData","validationPromises","Object","entries","map","path","field","validatedField","passesCondition","validationResult","valid","validate","valueToValidate","value","rows","Array","isArray","blockData","event","preferences","req","payload","siblingData","errorMessage","Promise","all","type","state","submit","options","e","actionArg","methodToUse","overrides","overridesFromArgs","skipValidation","preventDefault","errorToast","successToast","promise","resolve","reject","hasFormSubmitAction","success","error","loading","stopPropagation","revalidatedFormState","serializableFields","reduce","priorOnChange","beforeSubmitFn","result","formState","every","key","formData","createFormData","mergeOverrideData","Boolean","res","toLowerCase","body","headers","language","contentType","get","isJSON","indexOf","json","status","newFormState","newState","mergedFormState","acceptValues","existingState","incomingState","optimize","push","message","errors","fieldErrors","nonFieldErrors","fieldErrs","nonFieldErrs","err","newFieldErrs","newNonFieldErrs","forEach","dataError","statusText","console","getFields","getField","file","handler","filename","name","clientUploadContext","updateFilename","JSON","stringify","mimeType","size","dataToSerialize","_payload","indices","nullsAsUndefineds","reset","controller","docPreferences","renderAllFields","schemaPath","signal","replaceState","addFieldRow","blockType","rowIndex","rowIndexArg","subFieldState","newRows","length","removeFieldRow","replaceFieldRow","currentRows","abortOnChange","sanitize","classes","filter","join","executeOnChange","onChangeFn","changed","prevFields","isFirstRenderRef","DocumentFormContextComponent","Provider","Fragment","documentFormContextProps","El","_jsx","noValidate","ref","useAllFormFields","useForm","useFormFields","useFormModified","useFormProcessing","useFormSubmitted","useWatchForm"],"sources":["../../../src/forms/Form/index.tsx"],"sourcesContent":["'use client'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { useRouter } from 'next/navigation.js'\nimport { serialize } from 'object-to-formdata'\nimport { type FormState, type PayloadRequest } from 'payload'\nimport {\n deepCopyObjectSimpleWithoutReactComponents,\n getDataByPath as getDataByPathFunc,\n getSiblingData as getSiblingDataFunc,\n reduceFieldsToValues,\n wait,\n} from 'payload/shared'\nimport React, { useCallback, useEffect, useReducer, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport type {\n CreateFormData,\n Context as FormContextType,\n FormProps,\n GetDataByPath,\n SubmitOptions,\n} from './types.js'\n\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useThrottledEffect } from '../../hooks/useThrottledEffect.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useOperation } from '../../providers/Operation/index.js'\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { useServerFunctions } from '../../providers/ServerFunctions/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { useUploadHandlers } from '../../providers/UploadHandlers/index.js'\nimport { abortAndIgnore, handleAbortRef } from '../../utilities/abortAndIgnore.js'\nimport { requests } from '../../utilities/api.js'\nimport {\n BackgroundProcessingContext,\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useDocumentForm,\n} from './context.js'\nimport { errorMessages } from './errorMessages.js'\nimport { fieldReducer } from './fieldReducer.js'\nimport { initContextState } from './initContextState.js'\nimport { mergeServerFormState } from './mergeServerFormState.js'\n\nconst baseClass = 'form'\n\nexport const Form: React.FC<FormProps> = (props) => {\n const { id, collectionSlug, docPermissions, getDocPreferences, globalSlug } = useDocumentInfo()\n\n const {\n action,\n beforeSubmit,\n children,\n className,\n disabled: disabledFromProps,\n disableSuccessStatus,\n disableValidationOnSubmit,\n // fields: fieldsFromProps = collection?.fields || global?.fields,\n el,\n handleResponse,\n initialState, // fully formed initial field state\n isDocumentForm,\n isInitializing: initializingFromProps,\n onChange,\n onSubmit,\n onSuccess,\n redirect,\n submitted: submittedFromProps,\n uuid,\n waitForAutocomplete,\n } = props\n\n const method = 'method' in props ? props?.method : undefined\n\n const router = useRouter()\n\n const documentForm = useDocumentForm()\n\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { refreshCookie, user } = useAuth()\n const operation = useOperation()\n\n const { getFormState } = useServerFunctions()\n const { startRouteTransition } = useRouteTransition()\n const { getUploadHandler } = useUploadHandlers()\n\n const { config } = useConfig()\n\n const [disabled, setDisabled] = useState(disabledFromProps || false)\n const [isMounted, setIsMounted] = useState(false)\n const [modified, setModified] = useState(false)\n /**\n * Tracks wether the form state passes validation.\n * For example the state could be submitted but invalid as field errors have been returned.\n */\n const [isValid, setIsValid] = useState(true)\n const [initializing, setInitializing] = useState(initializingFromProps)\n const [processing, setProcessing] = useState(false)\n const [backgroundProcessing, setBackgroundProcessing] = useState(false)\n\n const [submitted, setSubmitted] = useState(false)\n const formRef = useRef<HTMLFormElement>(null)\n const contextRef = useRef({} as FormContextType)\n const abortResetFormRef = useRef<AbortController>(null)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n /**\n * `fields` is the current, up-to-date state/data of all fields in the form. It can be modified by using dispatchFields,\n * which calls the fieldReducer, which then updates the state.\n */\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const validateForm = useCallback(async () => {\n const validatedFieldState = {}\n let isValid = true\n\n const data = contextRef.current.getData()\n\n const validationPromises = Object.entries(contextRef.current.fields).map(\n async ([path, field]) => {\n const validatedField = field\n\n if (field.passesCondition !== false) {\n let validationResult: boolean | string = validatedField.valid\n\n if ('validate' in field && typeof field.validate === 'function') {\n let valueToValidate = field.value\n\n if (field?.rows && Array.isArray(field.rows)) {\n valueToValidate = contextRef.current.getDataByPath(path)\n }\n\n validationResult = await field.validate(valueToValidate, {\n ...field,\n id,\n collectionSlug,\n // If there is a parent document form, we can get the data from that form\n blockData: undefined, // Will be expensive to get - not worth to pass to client-side validation, as this can be obtained by the user using `useFormFields()`\n data: documentForm?.getData ? documentForm.getData() : data,\n event: 'submit',\n operation,\n preferences: {} as any,\n req: {\n payload: {\n config,\n },\n t,\n user,\n } as unknown as PayloadRequest,\n siblingData: contextRef.current.getSiblingData(path),\n })\n\n if (typeof validationResult === 'string') {\n validatedField.errorMessage = validationResult\n validatedField.valid = false\n } else {\n validatedField.valid = true\n validatedField.errorMessage = undefined\n }\n }\n\n if (validatedField.valid === false) {\n isValid = false\n }\n }\n\n validatedFieldState[path] = validatedField\n },\n )\n\n await Promise.all(validationPromises)\n\n if (!dequal(contextRef.current.fields, validatedFieldState)) {\n dispatchFields({ type: 'REPLACE_STATE', state: validatedFieldState })\n }\n\n setIsValid(isValid)\n\n return isValid\n }, [collectionSlug, config, dispatchFields, id, operation, t, user, documentForm])\n\n const submit = useCallback(\n async (options: SubmitOptions = {}, e): Promise<void> => {\n const {\n action: actionArg = action,\n method: methodToUse = method,\n overrides: overridesFromArgs = {},\n skipValidation,\n } = options\n\n if (disabled) {\n if (e) {\n e.preventDefault()\n }\n return\n }\n\n // create new toast promise which will resolve manually later\n let errorToast, successToast\n const promise = new Promise((resolve, reject) => {\n successToast = resolve\n errorToast = reject\n })\n\n const hasFormSubmitAction =\n actionArg || typeof action === 'string' || typeof action === 'function'\n\n if (redirect || disableSuccessStatus || !hasFormSubmitAction) {\n // Do not show submitting toast, as the promise toast may never disappear under these conditions.\n // Instead, make successToast() or errorToast() throw toast.success / toast.error\n successToast = (data) => toast.success(data)\n errorToast = (data) => toast.error(data)\n } else {\n toast.promise(promise, {\n error: (data) => {\n return data as string\n },\n loading: t('general:submitting'),\n success: (data) => {\n return data as string\n },\n })\n }\n\n if (e) {\n e.stopPropagation()\n e.preventDefault()\n }\n\n setProcessing(true)\n setDisabled(true)\n\n if (waitForAutocomplete) {\n await wait(100)\n }\n\n // Execute server side validations\n if (Array.isArray(beforeSubmit)) {\n let revalidatedFormState: FormState\n\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n await beforeSubmit.reduce(async (priorOnChange, beforeSubmitFn) => {\n await priorOnChange\n\n const result = await beforeSubmitFn({\n formState: serializableFields,\n })\n\n revalidatedFormState = result\n }, Promise.resolve())\n\n const isValid = Object.entries(revalidatedFormState).every(\n ([, field]) => field.valid !== false,\n )\n\n setIsValid(isValid)\n\n if (!isValid) {\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return dispatchFields({ type: 'REPLACE_STATE', state: revalidatedFormState })\n }\n }\n\n const isValid =\n skipValidation || disableValidationOnSubmit ? true : await contextRef.current.validateForm()\n\n setIsValid(isValid)\n // If not valid, prevent submission\n if (!isValid) {\n errorToast(t('error:correctInvalidFields'))\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n let overrides = {}\n\n if (typeof overridesFromArgs === 'function') {\n overrides = overridesFromArgs(contextRef.current.fields)\n } else if (typeof overridesFromArgs === 'object') {\n overrides = overridesFromArgs\n }\n\n // If submit handler comes through via props, run that\n if (onSubmit) {\n const serializableFields = deepCopyObjectSimpleWithoutReactComponents(\n contextRef.current.fields,\n )\n\n const data = reduceFieldsToValues(serializableFields, true)\n\n for (const [key, value] of Object.entries(overrides)) {\n data[key] = value\n }\n\n onSubmit(serializableFields, data)\n }\n\n if (!hasFormSubmitAction) {\n // No action provided, so we should return. An example where this happens are lexical link drawers. Upon submitting the drawer, we\n // want to close it without submitting the form. Stuff like validation would be handled by lexical before this, through beforeSubmit\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n return\n }\n\n const formData = await contextRef.current.createFormData(overrides, {\n mergeOverrideData: Boolean(typeof overridesFromArgs !== 'function'),\n })\n\n try {\n let res\n\n if (typeof actionArg === 'string') {\n res = await requests[methodToUse.toLowerCase()](actionArg, {\n body: formData,\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n } else if (typeof action === 'function') {\n res = await action(formData)\n }\n\n setModified(false)\n setDisabled(false)\n\n if (typeof handleResponse === 'function') {\n handleResponse(res, successToast, errorToast)\n return\n }\n\n const contentType = res.headers.get('content-type')\n const isJSON = contentType && contentType.indexOf('application/json') !== -1\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let json: Record<string, any> = {}\n\n if (isJSON) {\n json = await res.json()\n }\n if (res.status < 400) {\n if (typeof onSuccess === 'function') {\n const newFormState = await onSuccess(json)\n if (newFormState) {\n const { newState: mergedFormState } = mergeServerFormState({\n acceptValues: true,\n existingState: contextRef.current.fields || {},\n incomingState: newFormState,\n })\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: mergedFormState,\n })\n }\n }\n setSubmitted(false)\n setProcessing(false)\n\n if (redirect) {\n startRouteTransition(() => router.push(redirect))\n } else if (!disableSuccessStatus) {\n successToast(json.message || t('general:submissionSuccessful'))\n }\n } else {\n setProcessing(false)\n setSubmitted(true)\n\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n if (json.message) {\n errorToast(json.message)\n\n return\n }\n\n if (Array.isArray(json.errors)) {\n const [fieldErrors, nonFieldErrors] = json.errors.reduce(\n ([fieldErrs, nonFieldErrs], err) => {\n const newFieldErrs = []\n const newNonFieldErrs = []\n\n if (err?.message) {\n newNonFieldErrs.push(err)\n }\n\n if (Array.isArray(err?.data?.errors)) {\n err.data?.errors.forEach((dataError) => {\n if (dataError?.path) {\n newFieldErrs.push(dataError)\n } else {\n newNonFieldErrs.push(dataError)\n }\n })\n }\n\n return [\n [...fieldErrs, ...newFieldErrs],\n [...nonFieldErrs, ...newNonFieldErrs],\n ]\n },\n [[], []],\n )\n\n setIsValid(false)\n\n dispatchFields({\n type: 'ADD_SERVER_ERRORS',\n errors: fieldErrors,\n })\n\n nonFieldErrors.forEach((err) => {\n errorToast(err.message || t('error:unknown'))\n })\n\n return\n }\n\n const message = errorMessages?.[res.status] || res?.statusText || t('error:unknown')\n\n errorToast(message)\n }\n } catch (err) {\n console.error('Error submitting form', err) // eslint-disable-line no-console\n setProcessing(false)\n setSubmitted(true)\n setDisabled(false)\n errorToast(err.message)\n }\n },\n [\n beforeSubmit,\n startRouteTransition,\n action,\n disableSuccessStatus,\n disableValidationOnSubmit,\n disabled,\n dispatchFields,\n handleResponse,\n method,\n onSubmit,\n onSuccess,\n redirect,\n router,\n t,\n i18n,\n waitForAutocomplete,\n ],\n )\n\n const getFields = useCallback(() => contextRef.current.fields, [])\n\n const getField = useCallback((path: string) => contextRef.current.fields[path], [])\n\n const getData = useCallback(() => reduceFieldsToValues(contextRef.current.fields, true), [])\n\n const getSiblingData = useCallback(\n (path: string) => getSiblingDataFunc(contextRef.current.fields, path),\n [],\n )\n\n const getDataByPath = useCallback<GetDataByPath>(\n (path: string) => getDataByPathFunc(contextRef.current.fields, path),\n [],\n )\n\n const createFormData = useCallback<CreateFormData>(\n async (overrides, { mergeOverrideData = true }) => {\n let data = reduceFieldsToValues(contextRef.current.fields, true)\n\n let file = data?.file\n\n if (file) {\n delete data.file\n }\n\n if (mergeOverrideData) {\n data = {\n ...data,\n ...overrides,\n }\n } else {\n data = overrides\n }\n\n const handler = getUploadHandler({ collectionSlug })\n\n if (file && typeof handler === 'function') {\n let filename = file.name\n const clientUploadContext = await handler({\n file,\n updateFilename: (value) => {\n filename = value\n },\n })\n\n file = JSON.stringify({\n clientUploadContext,\n collectionSlug,\n filename,\n mimeType: file.type,\n size: file.size,\n })\n }\n\n const dataToSerialize = {\n _payload: JSON.stringify(data),\n file,\n }\n\n // nullAsUndefineds is important to allow uploads and relationship fields to clear themselves\n const formData = serialize(dataToSerialize, { indices: true, nullsAsUndefineds: false })\n\n return formData\n },\n [collectionSlug, getUploadHandler],\n )\n\n const reset = useCallback(\n async (data: unknown) => {\n const controller = handleAbortRef(abortResetFormRef)\n\n const docPreferences = await getDocPreferences()\n\n const { state: newState } = await getFormState({\n id,\n collectionSlug,\n data,\n docPermissions,\n docPreferences,\n globalSlug,\n locale,\n operation,\n renderAllFields: true,\n schemaPath: collectionSlug ? collectionSlug : globalSlug,\n signal: controller.signal,\n skipValidation: true,\n })\n\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state: newState })\n\n abortResetFormRef.current = null\n },\n [\n collectionSlug,\n dispatchFields,\n globalSlug,\n id,\n operation,\n getFormState,\n docPermissions,\n getDocPreferences,\n locale,\n ],\n )\n\n const replaceState = useCallback(\n (state: FormState) => {\n contextRef.current = { ...initContextState } as FormContextType\n setModified(false)\n dispatchFields({ type: 'REPLACE_STATE', state })\n },\n [dispatchFields],\n )\n\n const addFieldRow: FormContextType['addFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const newRows: unknown[] = getDataByPath(path) || []\n const rowIndex = rowIndexArg === undefined ? newRows.length : rowIndexArg\n\n // dispatch ADD_ROW that sets requiresRender: true and adds a blank row to local form state.\n // This performs no form state request, as the debounced onChange effect will do that for us.\n dispatchFields({\n type: 'ADD_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n const removeFieldRow: FormContextType['removeFieldRow'] = useCallback(\n ({ path, rowIndex }) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n },\n [dispatchFields],\n )\n\n const replaceFieldRow: FormContextType['replaceFieldRow'] = useCallback(\n ({ blockType, path, rowIndex: rowIndexArg, subFieldState }) => {\n const currentRows: unknown[] = getDataByPath(path)\n const rowIndex = rowIndexArg === undefined ? currentRows.length : rowIndexArg\n\n dispatchFields({\n type: 'REPLACE_ROW',\n blockType,\n path,\n rowIndex,\n subFieldState,\n })\n\n setModified(true)\n },\n [dispatchFields, getDataByPath],\n )\n\n useEffect(() => {\n const abortOnChange = abortResetFormRef.current\n\n return () => {\n abortAndIgnore(abortOnChange)\n }\n }, [])\n\n useEffect(() => {\n if (initializingFromProps !== undefined) {\n setInitializing(initializingFromProps)\n }\n }, [initializingFromProps])\n\n contextRef.current.submit = submit\n contextRef.current.getFields = getFields\n contextRef.current.getField = getField\n contextRef.current.getData = getData\n contextRef.current.getSiblingData = getSiblingData\n contextRef.current.getDataByPath = getDataByPath\n contextRef.current.validateForm = validateForm\n contextRef.current.createFormData = createFormData\n contextRef.current.setModified = setModified\n contextRef.current.setProcessing = setProcessing\n contextRef.current.setBackgroundProcessing = setBackgroundProcessing\n\n contextRef.current.setSubmitted = setSubmitted\n contextRef.current.setIsValid = setIsValid\n contextRef.current.disabled = disabled\n contextRef.current.setDisabled = setDisabled\n contextRef.current.formRef = formRef\n contextRef.current.reset = reset\n contextRef.current.replaceState = replaceState\n contextRef.current.dispatchFields = dispatchFields\n contextRef.current.addFieldRow = addFieldRow\n contextRef.current.removeFieldRow = removeFieldRow\n contextRef.current.replaceFieldRow = replaceFieldRow\n contextRef.current.uuid = uuid\n contextRef.current.initializing = initializing\n contextRef.current.isValid = isValid\n\n useEffect(() => {\n setIsMounted(true)\n }, [])\n\n useEffect(() => {\n if (typeof disabledFromProps === 'boolean') {\n setDisabled(disabledFromProps)\n }\n }, [disabledFromProps])\n\n useEffect(() => {\n if (typeof submittedFromProps === 'boolean') {\n setSubmitted(submittedFromProps)\n }\n }, [submittedFromProps])\n\n useEffect(() => {\n if (initialState) {\n contextRef.current = { ...initContextState } as FormContextType\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n sanitize: true,\n state: initialState,\n })\n }\n }, [initialState, dispatchFields])\n\n useThrottledEffect(\n () => {\n refreshCookie()\n },\n 15000,\n [fields],\n )\n\n useEffect(() => {\n contextRef.current = { ...contextRef.current } // triggers rerender of all components that subscribe to form\n setModified(false)\n }, [locale])\n\n const classes = [className, baseClass].filter(Boolean).join(' ')\n\n const executeOnChange = useEffectEvent(async (submitted: boolean) => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n // Edit view default onChange is in packages/ui/src/views/Edit/index.tsx. This onChange usually sends a form state request\n revalidatedFormState = await onChangeFn({\n formState: deepCopyObjectSimpleWithoutReactComponents(contextRef.current.fields),\n submitted,\n })\n }\n\n if (!revalidatedFormState) {\n return\n }\n\n const { changed, newState } = mergeServerFormState({\n existingState: contextRef.current.fields || {},\n incomingState: revalidatedFormState,\n })\n\n if (changed) {\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n })\n\n const prevFields = useRef(contextRef.current.fields)\n const isFirstRenderRef = useRef(true)\n\n useDebouncedEffect(\n () => {\n if (isFirstRenderRef.current || !dequal(contextRef.current.fields, prevFields.current)) {\n if (modified) {\n void executeOnChange(submitted)\n }\n }\n\n isFirstRenderRef.current = false\n prevFields.current = contextRef.current.fields\n },\n /*\n Make sure we trigger this whenever modified changes (not just when `fields` changes),\n otherwise we will miss merging server form state for the first form update/onChange.\n\n Here's why:\n `fields` updates before `modified`, because setModified is in a setTimeout.\n So on the first change, modified is false, so we don't trigger the effect even though we should.\n **/\n [modified, submitted, contextRef.current.fields],\n 250,\n )\n\n const DocumentFormContextComponent: React.FC<any> = isDocumentForm\n ? DocumentFormContext.Provider\n : React.Fragment\n\n const documentFormContextProps = isDocumentForm\n ? {\n value: contextRef.current,\n }\n : {}\n\n const El: 'form' = (el as unknown as 'form') || 'form'\n\n return (\n <El\n action={typeof action === 'function' ? void action : action}\n className={classes}\n method={method}\n noValidate\n onSubmit={(e) => void contextRef.current.submit({}, e)}\n ref={formRef}\n >\n <DocumentFormContextComponent {...documentFormContextProps}>\n <FormContext.Provider value={contextRef.current}>\n <FormWatchContext.Provider\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext.Provider value={submitted}>\n <InitializingContext.Provider value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext.Provider value={processing}>\n <BackgroundProcessingContext.Provider value={backgroundProcessing}>\n <ModifiedContext.Provider value={modified}>\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext.Provider>\n </BackgroundProcessingContext.Provider>\n </ProcessingContext.Provider>\n </InitializingContext.Provider>\n </SubmittedContext.Provider>\n </FormWatchContext.Provider>\n </FormContext.Provider>\n </DocumentFormContextComponent>\n </El>\n )\n}\n\nexport {\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormFields,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n} from './context.js'\n\nexport { FormProps }\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import './index.scss';
3
3
  export declare const ChevronIcon: React.FC<{
4
+ readonly ariaLabel?: string;
4
5
  readonly className?: string;
5
6
  readonly direction?: 'down' | 'left' | 'right' | 'up';
6
7
  readonly size?: 'large' | 'small';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/Chevron/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;IACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CAClC,CAsBA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/Chevron/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,CAAA;IACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAA;CAClC,CAuBA,CAAA"}
@@ -2,10 +2,12 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import React from 'react';
3
3
  import './index.scss';
4
4
  export const ChevronIcon = ({
5
+ ariaLabel,
5
6
  className,
6
7
  direction,
7
8
  size
8
9
  }) => /*#__PURE__*/_jsx("svg", {
10
+ "aria-label": ariaLabel,
9
11
  className: ['icon icon--chevron', className, size && `icon--size-${size}`].filter(Boolean).join(' '),
10
12
  height: "100%",
11
13
  style: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","ChevronIcon","className","direction","size","_jsx","filter","Boolean","join","height","style","transform","undefined","viewBox","width","xmlns","d","strokeLinecap"],"sources":["../../../src/icons/Chevron/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nexport const ChevronIcon: React.FC<{\n readonly className?: string\n readonly direction?: 'down' | 'left' | 'right' | 'up'\n readonly size?: 'large' | 'small'\n}> = ({ className, direction, size }) => (\n <svg\n className={['icon icon--chevron', className, size && `icon--size-${size}`]\n .filter(Boolean)\n .join(' ')}\n height=\"100%\"\n style={{\n transform:\n direction === 'left'\n ? 'rotate(90deg)'\n : direction === 'right'\n ? 'rotate(-90deg)'\n : direction === 'up'\n ? 'rotate(180deg)'\n : undefined,\n }}\n viewBox=\"0 0 22 12\"\n width=\"100%\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path className=\"stroke\" d=\"M1 1.12109L11 11.1211L21 1.12109\" strokeLinecap=\"square\" />\n </svg>\n)\n"],"mappings":";AAAA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,OAAO,MAAMC,WAAA,GAIRA,CAAC;EAAEC,SAAS;EAAEC,SAAS;EAAEC;AAAI,CAAE,kBAClCC,IAAA,CAAC;EACCH,SAAA,EAAW,CAAC,sBAAsBA,SAAA,EAAWE,IAAA,IAAQ,cAAcA,IAAA,EAAM,CAAC,CACvEE,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EACRC,MAAA,EAAO;EACPC,KAAA,EAAO;IACLC,SAAA,EACER,SAAA,KAAc,SACV,kBACAA,SAAA,KAAc,UACZ,mBACAA,SAAA,KAAc,OACZ,mBACAS;EACZ;EACAC,OAAA,EAAQ;EACRC,KAAA,EAAM;EACNC,KAAA,EAAM;YAEN,aAAAV,IAAA,CAAC;IAAKH,SAAA,EAAU;IAASc,CAAA,EAAE;IAAmCC,aAAA,EAAc","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","ChevronIcon","ariaLabel","className","direction","size","_jsx","filter","Boolean","join","height","style","transform","undefined","viewBox","width","xmlns","d","strokeLinecap"],"sources":["../../../src/icons/Chevron/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nexport const ChevronIcon: React.FC<{\n readonly ariaLabel?: string\n readonly className?: string\n readonly direction?: 'down' | 'left' | 'right' | 'up'\n readonly size?: 'large' | 'small'\n}> = ({ ariaLabel, className, direction, size }) => (\n <svg\n aria-label={ariaLabel}\n className={['icon icon--chevron', className, size && `icon--size-${size}`]\n .filter(Boolean)\n .join(' ')}\n height=\"100%\"\n style={{\n transform:\n direction === 'left'\n ? 'rotate(90deg)'\n : direction === 'right'\n ? 'rotate(-90deg)'\n : direction === 'up'\n ? 'rotate(180deg)'\n : undefined,\n }}\n viewBox=\"0 0 22 12\"\n width=\"100%\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path className=\"stroke\" d=\"M1 1.12109L11 11.1211L21 1.12109\" strokeLinecap=\"square\" />\n </svg>\n)\n"],"mappings":";AAAA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,OAAO,MAAMC,WAAA,GAKRA,CAAC;EAAEC,SAAS;EAAEC,SAAS;EAAEC,SAAS;EAAEC;AAAI,CAAE,kBAC7CC,IAAA,CAAC;EACC,cAAYJ,SAAA;EACZC,SAAA,EAAW,CAAC,sBAAsBA,SAAA,EAAWE,IAAA,IAAQ,cAAcA,IAAA,EAAM,CAAC,CACvEE,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;EACRC,MAAA,EAAO;EACPC,KAAA,EAAO;IACLC,SAAA,EACER,SAAA,KAAc,SACV,kBACAA,SAAA,KAAc,UACZ,mBACAA,SAAA,KAAc,OACZ,mBACAS;EACZ;EACAC,OAAA,EAAQ;EACRC,KAAA,EAAM;EACNC,KAAA,EAAM;YAEN,aAAAV,IAAA,CAAC;IAAKH,SAAA,EAAU;IAASc,CAAA,EAAE;IAAmCC,aAAA,EAAc","ignoreList":[]}
@@ -3,5 +3,7 @@ import './index.scss';
3
3
  export declare const Dots: React.FC<{
4
4
  ariaLabel?: string;
5
5
  className?: string;
6
+ noBackground?: boolean;
7
+ orientation?: 'horizontal' | 'vertical';
6
8
  }>;
7
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/Dots/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAYrE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/Dots/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAA;CACxC,CAgBA,CAAA"}
@@ -1,12 +1,15 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import React from 'react';
3
3
  import './index.scss';
4
+ const baseClass = 'dots';
4
5
  export const Dots = ({
5
6
  ariaLabel,
6
- className
7
+ className,
8
+ noBackground,
9
+ orientation = 'vertical'
7
10
  }) => /*#__PURE__*/_jsxs("div", {
8
11
  "aria-label": ariaLabel,
9
- className: [className && className, 'dots'].filter(Boolean).join(' '),
12
+ className: [className, baseClass, noBackground && `${baseClass}--no-background`, orientation && `${baseClass}--${orientation}`].filter(Boolean).join(' '),
10
13
  children: [/*#__PURE__*/_jsx("div", {}), /*#__PURE__*/_jsx("div", {}), /*#__PURE__*/_jsx("div", {})]
11
14
  });
12
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","Dots","ariaLabel","className","_jsxs","filter","Boolean","join","_jsx"],"sources":["../../../src/icons/Dots/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nexport const Dots: React.FC<{ ariaLabel?: string; className?: string }> = ({\n ariaLabel,\n className,\n}) => (\n <div\n aria-label={ariaLabel}\n className={[className && className, 'dots'].filter(Boolean).join(' ')}\n >\n <div />\n <div />\n <div />\n </div>\n)\n"],"mappings":";AAAA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,OAAO,MAAMC,IAAA,GAA6DA,CAAC;EACzEC,SAAS;EACTC;AAAS,CACV,kBACCC,KAAA,CAAC;EACC,cAAYF,SAAA;EACZC,SAAA,EAAW,CAACA,SAAA,IAAaA,SAAA,EAAW,OAAO,CAACE,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;0BAEjEC,IAAA,CAAC,Y,aACDA,IAAA,CAAC,Y,aACDA,IAAA,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","baseClass","Dots","ariaLabel","className","noBackground","orientation","_jsxs","filter","Boolean","join","_jsx"],"sources":["../../../src/icons/Dots/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'dots'\n\nexport const Dots: React.FC<{\n ariaLabel?: string\n className?: string\n noBackground?: boolean\n orientation?: 'horizontal' | 'vertical'\n}> = ({ ariaLabel, className, noBackground, orientation = 'vertical' }) => (\n <div\n aria-label={ariaLabel}\n className={[\n className,\n baseClass,\n noBackground && `${baseClass}--no-background`,\n orientation && `${baseClass}--${orientation}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <div />\n <div />\n <div />\n </div>\n)\n"],"mappings":";AAAA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,IAAA,GAKRA,CAAC;EAAEC,SAAS;EAAEC,SAAS;EAAEC,YAAY;EAAEC,WAAA,GAAc;AAAU,CAAE,kBACpEC,KAAA,CAAC;EACC,cAAYJ,SAAA;EACZC,SAAA,EAAW,CACTA,SAAA,EACAH,SAAA,EACAI,YAAA,IAAgB,GAAGJ,SAAA,iBAA0B,EAC7CK,WAAA,IAAe,GAAGL,SAAA,KAAcK,WAAA,EAAa,CAC9C,CACEE,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;0BAERC,IAAA,CAAC,Y,aACDA,IAAA,CAAC,Y,aACDA,IAAA,CAAC","ignoreList":[]}
@@ -17,6 +17,20 @@
17
17
  background-color: var(--theme-elevation-100);
18
18
  }
19
19
 
20
+ &--no-background {
21
+ background-color: transparent;
22
+ width: auto;
23
+ height: auto;
24
+
25
+ &:hover {
26
+ background-color: transparent;
27
+ }
28
+ }
29
+
30
+ &--horizontal {
31
+ flex-direction: row;
32
+ }
33
+
20
34
  > div {
21
35
  width: 2.5px;
22
36
  height: 2.5px;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import './index.scss';
3
+ export declare const PeopleIcon: React.FC<{
4
+ className: string;
5
+ }>;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/icons/People/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,SAAS,EAAE,MAAM,CAAA;CAClB,CAcA,CAAA"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import './index.scss';
4
+ export const PeopleIcon = ({
5
+ className
6
+ }) => /*#__PURE__*/_jsx("svg", {
7
+ className: ['icon', 'icon--people', className].filter(Boolean).join(' '),
8
+ height: "14",
9
+ viewBox: "0 0 16 14",
10
+ width: "16",
11
+ xmlns: "http://www.w3.org/2000/svg",
12
+ children: /*#__PURE__*/_jsx("path", {
13
+ className: "stroke",
14
+ d: "M12.0002 13C12.0002 11.5855 11.4383 10.229 10.4381 9.22876C9.43787 8.22857 8.08132 7.66667 6.66683 7.66667M6.66683 7.66667C5.25234 7.66667 3.89579 8.22857 2.89559 9.22876C1.8954 10.229 1.3335 11.5855 1.3335 13M6.66683 7.66667C8.50778 7.66667 10.0002 6.17428 10.0002 4.33333C10.0002 2.49238 8.50778 1 6.66683 1C4.82588 1 3.3335 2.49238 3.3335 4.33333C3.3335 6.17428 4.82588 7.66667 6.66683 7.66667ZM14.6668 12.3333C14.6668 10.0867 13.3335 8 12.0002 7C12.4384 6.67118 12.7889 6.23939 13.0205 5.74285C13.2522 5.2463 13.3578 4.70031 13.3282 4.1532C13.2985 3.60609 13.1344 3.07472 12.8505 2.60613C12.5665 2.13754 12.1714 1.74617 11.7002 1.46667",
15
+ strokeLinecap: "square"
16
+ })
17
+ });
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["React","PeopleIcon","className","_jsx","filter","Boolean","join","height","viewBox","width","xmlns","d","strokeLinecap"],"sources":["../../../src/icons/People/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport './index.scss'\n\nexport const PeopleIcon: React.FC<{\n className: string\n}> = ({ className }) => (\n <svg\n className={['icon', 'icon--people', className].filter(Boolean).join(' ')}\n height=\"14\"\n viewBox=\"0 0 16 14\"\n width=\"16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n className=\"stroke\"\n d=\"M12.0002 13C12.0002 11.5855 11.4383 10.229 10.4381 9.22876C9.43787 8.22857 8.08132 7.66667 6.66683 7.66667M6.66683 7.66667C5.25234 7.66667 3.89579 8.22857 2.89559 9.22876C1.8954 10.229 1.3335 11.5855 1.3335 13M6.66683 7.66667C8.50778 7.66667 10.0002 6.17428 10.0002 4.33333C10.0002 2.49238 8.50778 1 6.66683 1C4.82588 1 3.3335 2.49238 3.3335 4.33333C3.3335 6.17428 4.82588 7.66667 6.66683 7.66667ZM14.6668 12.3333C14.6668 10.0867 13.3335 8 12.0002 7C12.4384 6.67118 12.7889 6.23939 13.0205 5.74285C13.2522 5.2463 13.3578 4.70031 13.3282 4.1532C13.2985 3.60609 13.1344 3.07472 12.8505 2.60613C12.5665 2.13754 12.1714 1.74617 11.7002 1.46667\"\n strokeLinecap=\"square\"\n />\n </svg>\n)\n"],"mappings":";AAAA,OAAOA,KAAA,MAAW;AAElB,OAAO;AAEP,OAAO,MAAMC,UAAA,GAERA,CAAC;EAAEC;AAAS,CAAE,kBACjBC,IAAA,CAAC;EACCD,SAAA,EAAW,CAAC,QAAQ,gBAAgBA,SAAA,CAAU,CAACE,MAAM,CAACC,OAAA,EAASC,IAAI,CAAC;EACpEC,MAAA,EAAO;EACPC,OAAA,EAAQ;EACRC,KAAA,EAAM;EACNC,KAAA,EAAM;YAEN,aAAAP,IAAA,CAAC;IACCD,SAAA,EAAU;IACVS,CAAA,EAAE;IACFC,aAAA,EAAc","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ @import '../../scss/styles';
2
+
3
+ @layer payload-default {
4
+ .icon--people {
5
+ .stroke {
6
+ stroke: currentColor;
7
+ stroke-width: $style-stroke-width;
8
+ fill: none;
9
+ }
10
+ }
11
+ }
@@ -23,6 +23,7 @@ export type DocumentInfoProps = {
23
23
  readonly isLocked: boolean;
24
24
  readonly lastUpdateTime: number;
25
25
  readonly mostRecentVersionIsAutosaved: boolean;
26
+ readonly redirectAfterCreate?: boolean;
26
27
  readonly redirectAfterDelete?: boolean;
27
28
  readonly redirectAfterDuplicate?: boolean;
28
29
  readonly unpublishedVersionCount: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentInfo/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/providers/DocumentInfo/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","names":[],"sources":["../../../src/providers/DocumentInfo/types.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n ClientUser,\n Data,\n DocumentPreferences,\n FormState,\n InsideFieldsPreferences,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n TypedUser,\n} from 'payload'\nimport type React from 'react'\n\nexport type DocumentInfoProps = {\n readonly action?: string\n readonly AfterDocument?: React.ReactNode\n readonly AfterFields?: React.ReactNode\n readonly apiURL?: string\n readonly BeforeFields?: React.ReactNode\n readonly collectionSlug?: SanitizedCollectionConfig['slug']\n readonly currentEditor: TypedUser\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly disableLeaveWithoutSaving?: boolean\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly globalSlug?: SanitizedGlobalConfig['slug']\n readonly hasPublishedDoc: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly initialData?: Data\n readonly initialState?: FormState\n readonly isEditing?: boolean\n readonly isLocked: boolean\n readonly lastUpdateTime: number\n readonly mostRecentVersionIsAutosaved: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly unpublishedVersionCount: number\n readonly Upload?: React.ReactNode\n readonly versionCount: number\n}\n\nexport type DocumentInfoContext = {\n currentEditor?: ClientUser | null | number | string\n docConfig?: ClientCollectionConfig | ClientGlobalConfig\n documentIsLocked?: boolean\n getDocPermissions: (data?: Data) => Promise<void>\n getDocPreferences: () => Promise<DocumentPreferences>\n incrementVersionCount: () => void\n isInitializing: boolean\n preferencesKey?: string\n savedDocumentData?: Data\n setCurrentEditor?: React.Dispatch<React.SetStateAction<ClientUser>>\n setDocFieldPreferences: (\n field: string,\n fieldPreferences: { [key: string]: unknown } & Partial<InsideFieldsPreferences>,\n ) => void\n setDocumentIsLocked?: React.Dispatch<React.SetStateAction<boolean>>\n setDocumentTitle: (title: string) => void\n setHasPublishedDoc: React.Dispatch<React.SetStateAction<boolean>>\n setLastUpdateTime: React.Dispatch<React.SetStateAction<number>>\n setMostRecentVersionIsAutosaved: React.Dispatch<React.SetStateAction<boolean>>\n setUnpublishedVersionCount: React.Dispatch<React.SetStateAction<number>>\n setUploadStatus?: (status: 'failed' | 'idle' | 'uploading') => void\n title: string\n unlockDocument: (docID: number | string, slug: string) => Promise<void>\n unpublishedVersionCount: number\n updateDocumentEditor: (docID: number | string, slug: string, user: ClientUser) => Promise<void>\n updateSavedDocumentData: (data: Data) => void\n uploadStatus?: 'failed' | 'idle' | 'uploading'\n versionCount: number\n} & DocumentInfoProps\n"],"mappings":"AA6CA","ignoreList":[]}
1
+ {"version":3,"file":"types.js","names":[],"sources":["../../../src/providers/DocumentInfo/types.ts"],"sourcesContent":["import type {\n ClientCollectionConfig,\n ClientGlobalConfig,\n ClientUser,\n Data,\n DocumentPreferences,\n FormState,\n InsideFieldsPreferences,\n SanitizedCollectionConfig,\n SanitizedDocumentPermissions,\n SanitizedGlobalConfig,\n TypedUser,\n} from 'payload'\nimport type React from 'react'\n\nexport type DocumentInfoProps = {\n readonly action?: string\n readonly AfterDocument?: React.ReactNode\n readonly AfterFields?: React.ReactNode\n readonly apiURL?: string\n readonly BeforeFields?: React.ReactNode\n readonly collectionSlug?: SanitizedCollectionConfig['slug']\n readonly currentEditor: TypedUser\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly disableLeaveWithoutSaving?: boolean\n readonly docPermissions?: SanitizedDocumentPermissions\n readonly globalSlug?: SanitizedGlobalConfig['slug']\n readonly hasPublishedDoc: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly initialData?: Data\n readonly initialState?: FormState\n readonly isEditing?: boolean\n readonly isLocked: boolean\n readonly lastUpdateTime: number\n readonly mostRecentVersionIsAutosaved: boolean\n readonly redirectAfterCreate?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly unpublishedVersionCount: number\n readonly Upload?: React.ReactNode\n readonly versionCount: number\n}\n\nexport type DocumentInfoContext = {\n currentEditor?: ClientUser | null | number | string\n docConfig?: ClientCollectionConfig | ClientGlobalConfig\n documentIsLocked?: boolean\n getDocPermissions: (data?: Data) => Promise<void>\n getDocPreferences: () => Promise<DocumentPreferences>\n incrementVersionCount: () => void\n isInitializing: boolean\n preferencesKey?: string\n savedDocumentData?: Data\n setCurrentEditor?: React.Dispatch<React.SetStateAction<ClientUser>>\n setDocFieldPreferences: (\n field: string,\n fieldPreferences: { [key: string]: unknown } & Partial<InsideFieldsPreferences>,\n ) => void\n setDocumentIsLocked?: React.Dispatch<React.SetStateAction<boolean>>\n setDocumentTitle: (title: string) => void\n setHasPublishedDoc: React.Dispatch<React.SetStateAction<boolean>>\n setLastUpdateTime: React.Dispatch<React.SetStateAction<number>>\n setMostRecentVersionIsAutosaved: React.Dispatch<React.SetStateAction<boolean>>\n setUnpublishedVersionCount: React.Dispatch<React.SetStateAction<number>>\n setUploadStatus?: (status: 'failed' | 'idle' | 'uploading') => void\n title: string\n unlockDocument: (docID: number | string, slug: string) => Promise<void>\n unpublishedVersionCount: number\n updateDocumentEditor: (docID: number | string, slug: string, user: ClientUser) => Promise<void>\n updateSavedDocumentData: (data: Data) => void\n uploadStatus?: 'failed' | 'idle' | 'uploading'\n versionCount: number\n} & DocumentInfoProps\n"],"mappings":"AA8CA","ignoreList":[]}
@@ -1,4 +1,6 @@
1
1
  import type { IListQueryContext } from './types.js';
2
2
  export declare const ListQueryContext: import("react").Context<IListQueryContext>;
3
3
  export declare const useListQuery: () => IListQueryContext;
4
+ export declare const ListQueryModifiedContext: import("react").Context<boolean>;
5
+ export declare const useListQueryModified: () => boolean;
4
6
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,eAAO,MAAM,gBAAgB,4CAAyC,CAAA;AAEtE,eAAO,MAAM,YAAY,QAAO,iBAAiD,CAAA"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/context.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAEnD,eAAO,MAAM,gBAAgB,4CAAyC,CAAA;AAEtE,eAAO,MAAM,YAAY,QAAO,iBAAiD,CAAA;AAEjF,eAAO,MAAM,wBAAwB,kCAAuB,CAAA;AAE5D,eAAO,MAAM,oBAAoB,QAAO,OAA+C,CAAA"}
@@ -1,4 +1,6 @@
1
1
  import { createContext, useContext } from 'react';
2
2
  export const ListQueryContext = createContext({});
3
3
  export const useListQuery = () => useContext(ListQueryContext);
4
+ export const ListQueryModifiedContext = createContext(false);
5
+ export const useListQueryModified = () => useContext(ListQueryModifiedContext);
4
6
  //# sourceMappingURL=context.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":["createContext","useContext","ListQueryContext","useListQuery"],"sources":["../../../src/providers/ListQuery/context.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport type { IListQueryContext } from './types.js'\n\nexport const ListQueryContext = createContext({} as IListQueryContext)\n\nexport const useListQuery = (): IListQueryContext => useContext(ListQueryContext)\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ;AAI1C,OAAO,MAAMC,gBAAA,GAAmBF,aAAA,CAAc,CAAC;AAE/C,OAAO,MAAMG,YAAA,GAAeA,CAAA,KAAyBF,UAAA,CAAWC,gBAAA","ignoreList":[]}
1
+ {"version":3,"file":"context.js","names":["createContext","useContext","ListQueryContext","useListQuery","ListQueryModifiedContext","useListQueryModified"],"sources":["../../../src/providers/ListQuery/context.ts"],"sourcesContent":["import { createContext, useContext } from 'react'\n\nimport type { IListQueryContext } from './types.js'\n\nexport const ListQueryContext = createContext({} as IListQueryContext)\n\nexport const useListQuery = (): IListQueryContext => useContext(ListQueryContext)\n\nexport const ListQueryModifiedContext = createContext(false)\n\nexport const useListQueryModified = (): boolean => useContext(ListQueryModifiedContext)\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,UAAU,QAAQ;AAI1C,OAAO,MAAMC,gBAAA,GAAmBF,aAAA,CAAc,CAAC;AAE/C,OAAO,MAAMG,YAAA,GAAeA,CAAA,KAAyBF,UAAA,CAAWC,gBAAA;AAEhE,OAAO,MAAME,wBAAA,GAA2BJ,aAAA,CAAc;AAEtD,OAAO,MAAMK,oBAAA,GAAuBA,CAAA,KAAeJ,UAAA,CAAWG,wBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAExE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAQhD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAkLtD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/ListQuery/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAA4D,MAAM,OAAO,CAAA;AAEhF,OAAO,KAAK,EAAqB,cAAc,EAAE,MAAM,YAAY,CAAA;AAQnE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE3C,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAuMtD,CAAA"}
@@ -4,15 +4,16 @@ import { jsx as _jsx } from "react/jsx-runtime";
4
4
  import { useRouter, useSearchParams } from 'next/navigation.js';
5
5
  import { isNumber, transformColumnsToSearchParams } from 'payload/shared';
6
6
  import * as qs from 'qs-esm';
7
- import React, { useCallback, useEffect, useMemo, useState } from 'react';
7
+ import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
8
8
  import { useListDrawerContext } from '../../elements/ListDrawer/Provider.js';
9
9
  import { useEffectEvent } from '../../hooks/useEffectEvent.js';
10
10
  import { useRouteTransition } from '../../providers/RouteTransition/index.js';
11
11
  import { parseSearchParams } from '../../utilities/parseSearchParams.js';
12
- import { ListQueryContext } from './context.js';
12
+ import { ListQueryContext, ListQueryModifiedContext } from './context.js';
13
13
  export { useListQuery } from './context.js';
14
14
  export const ListQueryProvider = ({
15
15
  children,
16
+ collectionSlug,
16
17
  columns,
17
18
  data,
18
19
  defaultLimit,
@@ -28,7 +29,10 @@ export const ListQueryProvider = ({
28
29
  const {
29
30
  startRouteTransition
30
31
  } = useRouteTransition();
32
+ const [modified, setModified] = useState(false);
31
33
  const searchParams = useMemo(() => parseSearchParams(rawSearchParams), [rawSearchParams]);
34
+ const contextRef = useRef({});
35
+ contextRef.current.modified = modified;
32
36
  const {
33
37
  onQueryChange
34
38
  } = useListDrawerContext();
@@ -41,18 +45,20 @@ export const ListQueryProvider = ({
41
45
  });
42
46
  const refineListData = useCallback(
43
47
  // eslint-disable-next-line @typescript-eslint/require-await
44
- async query => {
45
- let page = 'page' in query ? query.page : currentQuery?.page;
46
- if ('where' in query || 'search' in query) {
48
+ async incomingQuery => {
49
+ setModified(true);
50
+ let page = 'page' in incomingQuery ? incomingQuery.page : currentQuery?.page;
51
+ if ('where' in incomingQuery || 'search' in incomingQuery) {
47
52
  page = '1';
48
53
  }
49
54
  const newQuery = {
50
- columns: 'columns' in query ? query.columns : currentQuery.columns,
51
- limit: 'limit' in query ? query.limit : currentQuery?.limit ?? String(defaultLimit),
55
+ columns: 'columns' in incomingQuery ? incomingQuery.columns : currentQuery.columns,
56
+ limit: 'limit' in incomingQuery ? incomingQuery.limit : currentQuery?.limit ?? String(defaultLimit),
52
57
  page,
53
- search: 'search' in query ? query.search : currentQuery?.search,
54
- sort: 'sort' in query ? query.sort : currentQuery?.sort ?? defaultSort,
55
- where: 'where' in query ? query.where : currentQuery?.where
58
+ preset: 'preset' in incomingQuery ? incomingQuery.preset : currentQuery?.preset,
59
+ search: 'search' in incomingQuery ? incomingQuery.search : currentQuery?.search,
60
+ sort: 'sort' in incomingQuery ? incomingQuery.sort : currentQuery?.sort ?? defaultSort,
61
+ where: 'where' in incomingQuery ? incomingQuery.where : currentQuery?.where
56
62
  };
57
63
  if (modifySearchParams) {
58
64
  startRouteTransition(() => router.replace(`${qs.stringify({
@@ -66,7 +72,7 @@ export const ListQueryProvider = ({
66
72
  onChangeFn(newQuery);
67
73
  }
68
74
  setCurrentQuery(newQuery);
69
- }, [currentQuery?.columns, currentQuery?.limit, currentQuery?.page, currentQuery?.search, currentQuery?.sort, currentQuery?.where, startRouteTransition, defaultLimit, defaultSort, modifySearchParams, onQueryChange, onQueryChangeFromProps, router]);
75
+ }, [currentQuery?.columns, currentQuery?.limit, currentQuery?.page, currentQuery?.search, currentQuery?.sort, currentQuery?.where, currentQuery?.preset, startRouteTransition, defaultLimit, defaultSort, modifySearchParams, onQueryChange, onQueryChangeFromProps, router]);
70
76
  const handlePageChange = useCallback(async arg => {
71
77
  await refineListData({
72
78
  page: String(arg)
@@ -133,6 +139,7 @@ export const ListQueryProvider = ({
133
139
  }, [defaultSort, defaultLimit, modifySearchParams, columns]);
134
140
  return /*#__PURE__*/_jsx(ListQueryContext.Provider, {
135
141
  value: {
142
+ collectionSlug,
136
143
  data,
137
144
  handlePageChange,
138
145
  handlePerPageChange,
@@ -140,9 +147,14 @@ export const ListQueryProvider = ({
140
147
  handleSortChange,
141
148
  handleWhereChange,
142
149
  query: currentQuery,
143
- refineListData
150
+ refineListData,
151
+ setModified,
152
+ ...contextRef.current
144
153
  },
145
- children: children
154
+ children: /*#__PURE__*/_jsx(ListQueryModifiedContext.Provider, {
155
+ value: modified,
156
+ children: children
157
+ })
146
158
  });
147
159
  };
148
160
  //# sourceMappingURL=index.js.map