@payloadcms/ui 3.29.0-canary.0 → 3.29.0-canary.2

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 (164) hide show
  1. package/dist/elements/BulkUpload/FormsManager/index.js +2 -2
  2. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  3. package/dist/elements/BulkUpload/index.d.ts.map +1 -1
  4. package/dist/elements/BulkUpload/index.js +2 -4
  5. package/dist/elements/BulkUpload/index.js.map +1 -1
  6. package/dist/elements/Collapsible/provider.d.ts.map +1 -1
  7. package/dist/elements/Collapsible/provider.js +3 -5
  8. package/dist/elements/Collapsible/provider.js.map +1 -1
  9. package/dist/elements/DocumentDrawer/Provider.d.ts.map +1 -1
  10. package/dist/elements/DocumentDrawer/Provider.js +3 -3
  11. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  12. package/dist/elements/Drawer/index.d.ts.map +1 -1
  13. package/dist/elements/Drawer/index.js +3 -5
  14. package/dist/elements/Drawer/index.js.map +1 -1
  15. package/dist/elements/EditMany/DrawerContent.js +1 -1
  16. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  17. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +1 -1
  18. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +2 -1
  19. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +1 -1
  20. package/dist/elements/ListDrawer/Provider.js +3 -3
  21. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  22. package/dist/elements/LoadingOverlay/index.js +3 -3
  23. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  24. package/dist/elements/Nav/context.d.ts.map +1 -1
  25. package/dist/elements/Nav/context.js +2 -4
  26. package/dist/elements/Nav/context.js.map +1 -1
  27. package/dist/elements/StepNav/context.d.ts.map +1 -1
  28. package/dist/elements/StepNav/context.js +3 -5
  29. package/dist/elements/StepNav/context.js.map +1 -1
  30. package/dist/elements/Table/RelationshipProvider/index.d.ts.map +1 -1
  31. package/dist/elements/Table/RelationshipProvider/index.js +3 -5
  32. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  33. package/dist/elements/TableColumns/RenderDefaultCell/index.d.ts.map +1 -1
  34. package/dist/elements/TableColumns/RenderDefaultCell/index.js +2 -4
  35. package/dist/elements/TableColumns/RenderDefaultCell/index.js.map +1 -1
  36. package/dist/elements/TableColumns/context.d.ts.map +1 -1
  37. package/dist/elements/TableColumns/context.js +2 -2
  38. package/dist/elements/TableColumns/context.js.map +1 -1
  39. package/dist/elements/TableColumns/index.js +1 -1
  40. package/dist/elements/TableColumns/index.js.map +1 -1
  41. package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
  42. package/dist/elements/Toasts/fieldErrors.js +2 -2
  43. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  44. package/dist/exports/client/{CodeEditor-TQ5ADFPC.js → CodeEditor-J4IKAVAK.js} +2 -2
  45. package/dist/exports/client/{DatePicker-HHQ6TPOW.js → DatePicker-DMHV2M2L.js} +2 -2
  46. package/dist/exports/client/{chunk-IMEQ6NKQ.js → chunk-3AA2TJQ5.js} +2 -2
  47. package/dist/exports/client/{chunk-IMEQ6NKQ.js.map → chunk-3AA2TJQ5.js.map} +3 -3
  48. package/dist/exports/client/{chunk-LMYT7O7U.js → chunk-PKQOCWZD.js} +2 -2
  49. package/dist/exports/client/{chunk-LMYT7O7U.js.map → chunk-PKQOCWZD.js.map} +3 -3
  50. package/dist/exports/client/index.js +23 -23
  51. package/dist/exports/client/index.js.map +4 -4
  52. package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
  53. package/dist/fields/Blocks/BlockRow.js +26 -20
  54. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  55. package/dist/fields/Group/provider.d.ts.map +1 -1
  56. package/dist/fields/Group/provider.js +3 -5
  57. package/dist/fields/Group/provider.js.map +1 -1
  58. package/dist/fields/Row/provider.d.ts.map +1 -1
  59. package/dist/fields/Row/provider.js +3 -5
  60. package/dist/fields/Row/provider.js.map +1 -1
  61. package/dist/fields/Tabs/Tab/index.d.ts +1 -0
  62. package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
  63. package/dist/fields/Tabs/Tab/index.js +29 -25
  64. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  65. package/dist/fields/Tabs/Tab/index.scss +4 -0
  66. package/dist/fields/Tabs/index.d.ts +1 -1
  67. package/dist/fields/Tabs/index.d.ts.map +1 -1
  68. package/dist/fields/Tabs/index.js +285 -194
  69. package/dist/fields/Tabs/index.js.map +1 -1
  70. package/dist/fields/Tabs/index.scss +8 -0
  71. package/dist/fields/Tabs/provider.d.ts.map +1 -1
  72. package/dist/fields/Tabs/provider.js +3 -5
  73. package/dist/fields/Tabs/provider.js.map +1 -1
  74. package/dist/forms/Form/context.d.ts.map +1 -1
  75. package/dist/forms/Form/context.js +9 -25
  76. package/dist/forms/Form/context.js.map +1 -1
  77. package/dist/forms/Form/index.d.ts.map +1 -1
  78. package/dist/forms/Form/index.js +8 -8
  79. package/dist/forms/Form/index.js.map +1 -1
  80. package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
  81. package/dist/forms/RowLabel/Context/index.js +2 -2
  82. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  83. package/dist/forms/RowLabel/index.d.ts.map +1 -1
  84. package/dist/forms/RowLabel/index.js +2 -2
  85. package/dist/forms/RowLabel/index.js.map +1 -1
  86. package/dist/forms/RowLabel/types.d.ts +1 -1
  87. package/dist/forms/RowLabel/types.d.ts.map +1 -1
  88. package/dist/forms/RowLabel/types.js.map +1 -1
  89. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  90. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +17 -1
  91. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  92. package/dist/hooks/useQueues.js +3 -3
  93. package/dist/hooks/useQueues.js.map +1 -1
  94. package/dist/providers/Actions/index.d.ts.map +1 -1
  95. package/dist/providers/Actions/index.js +3 -5
  96. package/dist/providers/Actions/index.js.map +1 -1
  97. package/dist/providers/Auth/index.d.ts.map +1 -1
  98. package/dist/providers/Auth/index.js +3 -5
  99. package/dist/providers/Auth/index.js.map +1 -1
  100. package/dist/providers/ClientFunction/index.d.ts.map +1 -1
  101. package/dist/providers/ClientFunction/index.js +4 -4
  102. package/dist/providers/ClientFunction/index.js.map +1 -1
  103. package/dist/providers/Config/index.d.ts.map +1 -1
  104. package/dist/providers/Config/index.js +3 -5
  105. package/dist/providers/Config/index.js.map +1 -1
  106. package/dist/providers/DocumentEvents/index.d.ts.map +1 -1
  107. package/dist/providers/DocumentEvents/index.js +3 -5
  108. package/dist/providers/DocumentEvents/index.js.map +1 -1
  109. package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
  110. package/dist/providers/DocumentInfo/index.js +3 -5
  111. package/dist/providers/DocumentInfo/index.js.map +1 -1
  112. package/dist/providers/EditDepth/index.d.ts.map +1 -1
  113. package/dist/providers/EditDepth/index.js +3 -5
  114. package/dist/providers/EditDepth/index.js.map +1 -1
  115. package/dist/providers/EntityVisibility/index.d.ts.map +1 -1
  116. package/dist/providers/EntityVisibility/index.js +3 -5
  117. package/dist/providers/EntityVisibility/index.js.map +1 -1
  118. package/dist/providers/ListQuery/context.d.ts.map +1 -1
  119. package/dist/providers/ListQuery/context.js +2 -2
  120. package/dist/providers/ListQuery/context.js.map +1 -1
  121. package/dist/providers/ListQuery/index.js +1 -1
  122. package/dist/providers/ListQuery/index.js.map +1 -1
  123. package/dist/providers/Locale/index.d.ts.map +1 -1
  124. package/dist/providers/Locale/index.js +5 -9
  125. package/dist/providers/Locale/index.js.map +1 -1
  126. package/dist/providers/Operation/index.d.ts.map +1 -1
  127. package/dist/providers/Operation/index.js +3 -5
  128. package/dist/providers/Operation/index.js.map +1 -1
  129. package/dist/providers/Params/index.d.ts.map +1 -1
  130. package/dist/providers/Params/index.js +3 -5
  131. package/dist/providers/Params/index.js.map +1 -1
  132. package/dist/providers/Preferences/index.d.ts.map +1 -1
  133. package/dist/providers/Preferences/index.js +3 -5
  134. package/dist/providers/Preferences/index.js.map +1 -1
  135. package/dist/providers/RouteCache/index.d.ts.map +1 -1
  136. package/dist/providers/RouteCache/index.js +3 -5
  137. package/dist/providers/RouteCache/index.js.map +1 -1
  138. package/dist/providers/RouteTransition/index.d.ts.map +1 -1
  139. package/dist/providers/RouteTransition/index.js +2 -4
  140. package/dist/providers/RouteTransition/index.js.map +1 -1
  141. package/dist/providers/SearchParams/index.d.ts.map +1 -1
  142. package/dist/providers/SearchParams/index.js +3 -5
  143. package/dist/providers/SearchParams/index.js.map +1 -1
  144. package/dist/providers/Selection/index.d.ts.map +1 -1
  145. package/dist/providers/Selection/index.js +3 -5
  146. package/dist/providers/Selection/index.js.map +1 -1
  147. package/dist/providers/ServerFunctions/index.js +2 -2
  148. package/dist/providers/ServerFunctions/index.js.map +1 -1
  149. package/dist/providers/Theme/index.d.ts.map +1 -1
  150. package/dist/providers/Theme/index.js +3 -5
  151. package/dist/providers/Theme/index.js.map +1 -1
  152. package/dist/providers/Translation/index.d.ts.map +1 -1
  153. package/dist/providers/Translation/index.js +3 -5
  154. package/dist/providers/Translation/index.js.map +1 -1
  155. package/dist/providers/UploadEdits/index.d.ts.map +1 -1
  156. package/dist/providers/UploadEdits/index.js +2 -4
  157. package/dist/providers/UploadEdits/index.js.map +1 -1
  158. package/dist/providers/UploadHandlers/index.d.ts.map +1 -1
  159. package/dist/providers/UploadHandlers/index.js +3 -3
  160. package/dist/providers/UploadHandlers/index.js.map +1 -1
  161. package/dist/styles.css +1 -1
  162. package/package.json +4 -4
  163. /package/dist/exports/client/{CodeEditor-TQ5ADFPC.js.map → CodeEditor-J4IKAVAK.js.map} +0 -0
  164. /package/dist/exports/client/{DatePicker-HHQ6TPOW.js.map → DatePicker-DMHV2M2L.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","tabHasName","toKebabCase","React","useCallback","useEffect","useState","useCollapsible","RenderCustomComponent","RenderFields","useField","withCondition","useDocumentInfo","usePreferences","useTranslation","FieldDescription","fieldBaseClass","TabsProvider","TabComponent","baseClass","generateTabPath","activeTabConfig","path","tabPath","name","TabsFieldComponent","props","$","field","t0","forceRender","t1","indexPath","t2","parentPath","t3","parentSchemaPath","t4","t5","permissions","readOnly","admin","t6","tabs","t7","t8","undefined","className","t9","getPreference","setPreference","preferencesKey","i18n","isWithinCollapsible","activeTabIndex","setActiveTabIndex","tabsPrefKey","t10","activeTabPath","setActiveTabPath","t11","activePathChildrenPath","t12","activeTabSchemaPath","setActiveTabSchemaPath","t13","activePathSchemaChildrenPath","t14","t15","getInitialPref","existingPreferences","initialIndex","fields","tabIndex","newIndex","t16","incomingTabIndex","existingPreferences_0","handleTabChange","activeTabDescription","description","t17","t","activeTabStaticDescription","t18","t19","filter","Boolean","t20","join","t21","t22","tab","_jsx","isActive","setIsActive","t23","ActiveTabContent","parentIndexPath","String","children","_jsxs","map","TabsField","label","customComponents","AfterInput","BeforeInput","Description","Field","CustomComponent","Fallback","marginPlacement"],"sources":["../../../src/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientField,\n ClientTab,\n DocumentPreferences,\n SanitizedFieldPermissions,\n StaticDescription,\n TabsFieldClientComponent,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { tabHasName, toKebabCase } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useCollapsible } from '../../elements/Collapsible/provider.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\nimport { TabsProvider } from './provider.js'\nimport { TabComponent } from './Tab/index.js'\n\nconst baseClass = 'tabs-field'\n\nexport { TabsProvider }\n\nfunction generateTabPath({ activeTabConfig, path }: { activeTabConfig: ClientTab; path: string }) {\n let tabPath = path\n\n if (tabHasName(activeTabConfig) && activeTabConfig.name) {\n if (path) {\n tabPath = `${path}.${activeTabConfig.name}`\n } else {\n tabPath = activeTabConfig.name\n }\n }\n\n return tabPath\n}\n\nconst TabsFieldComponent: TabsFieldClientComponent = (props) => {\n const {\n field: { admin: { className } = {}, tabs = [] },\n forceRender = false,\n indexPath = '',\n parentPath = '',\n parentSchemaPath = '',\n path = '',\n permissions,\n readOnly,\n } = props\n\n const { getPreference, setPreference } = usePreferences()\n const { preferencesKey } = useDocumentInfo()\n const { i18n } = useTranslation()\n const { isWithinCollapsible } = useCollapsible()\n const [activeTabIndex, setActiveTabIndex] = useState<number>(0)\n const tabsPrefKey = `tabs-${indexPath}`\n const [activeTabPath, setActiveTabPath] = useState<string>(() =>\n generateTabPath({ activeTabConfig: tabs[activeTabIndex], path: parentPath }),\n )\n\n const activePathChildrenPath = tabHasName(tabs[activeTabIndex]) ? activeTabPath : parentPath\n\n const [activeTabSchemaPath, setActiveTabSchemaPath] = useState<string>(() =>\n generateTabPath({ activeTabConfig: tabs[0], path: parentSchemaPath }),\n )\n\n const activePathSchemaChildrenPath = tabHasName(tabs[activeTabIndex])\n ? activeTabSchemaPath\n : parentSchemaPath\n\n useEffect(() => {\n if (preferencesKey) {\n const getInitialPref = async () => {\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n const initialIndex = path\n ? existingPreferences?.fields?.[path]?.tabIndex\n : existingPreferences?.fields?.[tabsPrefKey]?.tabIndex\n\n const newIndex = initialIndex || 0\n setActiveTabIndex(newIndex)\n\n setActiveTabPath(generateTabPath({ activeTabConfig: tabs[newIndex], path: parentPath }))\n setActiveTabSchemaPath(\n generateTabPath({ activeTabConfig: tabs[newIndex], path: parentSchemaPath }),\n )\n }\n void getInitialPref()\n }\n }, [path, getPreference, preferencesKey, tabsPrefKey, tabs, parentPath, parentSchemaPath])\n\n const handleTabChange = useCallback(\n async (incomingTabIndex: number): Promise<void> => {\n setActiveTabIndex(incomingTabIndex)\n setActiveTabPath(\n generateTabPath({ activeTabConfig: tabs[incomingTabIndex], path: parentPath }),\n )\n setActiveTabSchemaPath(\n generateTabPath({ activeTabConfig: tabs[incomingTabIndex], path: parentSchemaPath }),\n )\n\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n\n if (preferencesKey) {\n void setPreference(preferencesKey, {\n ...existingPreferences,\n ...(path\n ? {\n fields: {\n ...(existingPreferences?.fields || {}),\n [path]: {\n ...existingPreferences?.fields?.[path],\n tabIndex: incomingTabIndex,\n },\n },\n }\n : {\n fields: {\n ...existingPreferences?.fields,\n [tabsPrefKey]: {\n ...existingPreferences?.fields?.[tabsPrefKey],\n tabIndex: incomingTabIndex,\n },\n },\n }),\n })\n }\n },\n [\n tabs,\n parentPath,\n parentSchemaPath,\n getPreference,\n preferencesKey,\n setPreference,\n path,\n tabsPrefKey,\n ],\n )\n\n const activeTabConfig = tabs[activeTabIndex]\n\n const activeTabDescription = activeTabConfig.admin?.description ?? activeTabConfig.description\n\n const activeTabStaticDescription =\n typeof activeTabDescription === 'function'\n ? activeTabDescription({ t: i18n.t })\n : activeTabDescription\n\n return (\n <div\n className={[\n fieldBaseClass,\n className,\n baseClass,\n isWithinCollapsible && `${baseClass}--within-collapsible`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <TabsProvider>\n <div className={`${baseClass}__tabs-wrap`}>\n <div className={`${baseClass}__tabs`}>\n {tabs.map((tab, tabIndex) => {\n return (\n <TabComponent\n isActive={activeTabIndex === tabIndex}\n key={tabIndex}\n parentPath={path}\n setIsActive={() => {\n void handleTabChange(tabIndex)\n }}\n tab={tab}\n />\n )\n })}\n </div>\n </div>\n <div className={`${baseClass}__content-wrap`}>\n {activeTabConfig && (\n <ActiveTabContent\n description={activeTabStaticDescription}\n fields={activeTabConfig.fields}\n forceRender={forceRender}\n parentIndexPath={\n tabHasName(activeTabConfig)\n ? ''\n : `${indexPath ? indexPath + '-' : ''}` + String(activeTabIndex)\n }\n parentPath={activePathChildrenPath}\n parentSchemaPath={activePathSchemaChildrenPath}\n path={activeTabPath}\n permissions={\n permissions && typeof permissions === 'object' && 'name' in activeTabConfig\n ? permissions[activeTabConfig.name] &&\n typeof permissions[activeTabConfig.name] === 'object' &&\n 'fields' in permissions[activeTabConfig.name]\n ? permissions[activeTabConfig.name].fields\n : permissions[activeTabConfig.name]\n : permissions\n }\n readOnly={readOnly}\n />\n )}\n </div>\n </TabsProvider>\n </div>\n )\n}\n\nexport const TabsField = withCondition(TabsFieldComponent)\n\ntype ActiveTabProps = {\n description: StaticDescription\n fields: ClientField[]\n forceRender?: boolean\n label?: string\n parentIndexPath: string\n parentPath: string\n parentSchemaPath: string\n path: string\n permissions: SanitizedFieldPermissions\n readOnly: boolean\n}\nfunction ActiveTabContent({\n description,\n fields,\n forceRender,\n label,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n readOnly,\n}: ActiveTabProps) {\n const { i18n } = useTranslation()\n const { customComponents: { AfterInput, BeforeInput, Description, Field } = {} } = useField({\n path,\n })\n\n if (Field) {\n return Field\n }\n\n return (\n <div\n className={[\n `${baseClass}__tab`,\n label && `${baseClass}__tabConfigLabel-${toKebabCase(getTranslation(label, i18n))}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={\n <FieldDescription description={description} marginPlacement=\"bottom\" path={path} />\n }\n />\n {BeforeInput}\n <RenderFields\n fields={fields}\n forceRender={forceRender}\n parentIndexPath={parentIndexPath}\n parentPath={parentPath}\n parentSchemaPath={parentSchemaPath}\n permissions={permissions}\n readOnly={readOnly}\n />\n {AfterInput}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","tabHasName","toKebabCase","React","useCallback","useEffect","useState","useCollapsible","RenderCustomComponent","useFormFields","RenderFields","useField","withCondition","useDocumentInfo","usePreferences","useTranslation","FieldDescription","fieldBaseClass","TabsProvider","TabComponent","baseClass","generateTabPath","activeTabConfig","path","tabPath","name","TabsFieldComponent","props","$","field","t0","forceRender","t1","indexPath","t2","parentPath","t3","parentSchemaPath","t4","t5","permissions","readOnly","admin","t6","tabs","t7","t8","undefined","className","t9","getPreference","setPreference","preferencesKey","i18n","isWithinCollapsible","t10","t11","fields","map","tab","index","id","passesCondition","tabStates","filter","_temp","activeTabIndex","setActiveTabIndex","tabsPrefKey","t12","activeTabPath","setActiveTabPath","t13","activeTabSchemaPath","setActiveTabSchemaPath","t14","activePathChildrenPath","activeTabInfo","t15","activePathSchemaChildrenPath","activeTabDescription","description","t16","t","activeTabStaticDescription","hasVisibleTabs","some","_temp2","t17","incomingTabIndex","existingPreferences","tabIndex","handleTabChange","t18","t19","getInitialPref","existingPreferences_0","initialIndex","newIndex","t20","nextTab","find","_temp3","t21","t22","t23","t24","Boolean","t25","join","t26","t27","t28","index_0","passesCondition_2","tab_0","_jsx","hidden","isActive","setIsActive","TabContent","parentIndexPath","String","children","_jsxs","TabsField","label","customComponents","AfterInput","BeforeInput","Description","Field","CustomComponent","Fallback","marginPlacement","passesCondition_0","passesCondition_1"],"sources":["../../../src/fields/Tabs/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientField,\n ClientTab,\n DocumentPreferences,\n SanitizedFieldPermissions,\n StaticDescription,\n TabsFieldClientComponent,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { tabHasName, toKebabCase } from 'payload/shared'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { useCollapsible } from '../../elements/Collapsible/provider.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useFormFields } from '../../forms/Form/index.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { usePreferences } from '../../providers/Preferences/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { TabsProvider } from './provider.js'\nimport { TabComponent } from './Tab/index.js'\nimport './index.scss'\n\nconst baseClass = 'tabs-field'\n\nexport { TabsProvider }\n\nfunction generateTabPath({ activeTabConfig, path }: { activeTabConfig: ClientTab; path: string }) {\n let tabPath = path\n\n if (tabHasName(activeTabConfig) && activeTabConfig.name) {\n if (path) {\n tabPath = `${path}.${activeTabConfig.name}`\n } else {\n tabPath = activeTabConfig.name\n }\n }\n\n return tabPath\n}\n\nconst TabsFieldComponent: TabsFieldClientComponent = (props) => {\n const {\n field: { admin: { className } = {}, tabs = [] },\n forceRender = false,\n indexPath = '',\n parentPath = '',\n parentSchemaPath = '',\n path = '',\n permissions,\n readOnly,\n } = props\n\n const { getPreference, setPreference } = usePreferences()\n const { preferencesKey } = useDocumentInfo()\n const { i18n } = useTranslation()\n const { isWithinCollapsible } = useCollapsible()\n\n const tabStates = useFormFields(([fields]) => {\n return tabs.map((tab, index) => {\n const id = tab?.id\n\n return {\n index,\n passesCondition: fields?.[id]?.passesCondition ?? true,\n tab,\n }\n })\n })\n\n const [activeTabIndex, setActiveTabIndex] = useState<number>(\n () => tabStates.filter(({ passesCondition }) => passesCondition)?.[0]?.index ?? 0,\n )\n\n const tabsPrefKey = `tabs-${indexPath}`\n const [activeTabPath, setActiveTabPath] = useState<string>(() =>\n generateTabPath({ activeTabConfig: tabs[activeTabIndex], path: parentPath }),\n )\n\n const [activeTabSchemaPath, setActiveTabSchemaPath] = useState<string>(() =>\n generateTabPath({ activeTabConfig: tabs[0], path: parentSchemaPath }),\n )\n\n const activePathChildrenPath = tabHasName(tabs[activeTabIndex]) ? activeTabPath : parentPath\n const activeTabInfo = tabStates[activeTabIndex]\n const activeTabConfig = activeTabInfo?.tab\n const activePathSchemaChildrenPath = tabHasName(tabs[activeTabIndex])\n ? activeTabSchemaPath\n : parentSchemaPath\n\n const activeTabDescription = activeTabConfig.admin?.description ?? activeTabConfig.description\n\n const activeTabStaticDescription =\n typeof activeTabDescription === 'function'\n ? activeTabDescription({ t: i18n.t })\n : activeTabDescription\n\n const hasVisibleTabs = tabStates.some(({ passesCondition }) => passesCondition)\n\n const handleTabChange = useCallback(\n async (incomingTabIndex: number): Promise<void> => {\n setActiveTabIndex(incomingTabIndex)\n\n setActiveTabPath(\n generateTabPath({ activeTabConfig: tabs[incomingTabIndex], path: parentPath }),\n )\n setActiveTabSchemaPath(\n generateTabPath({ activeTabConfig: tabs[incomingTabIndex], path: parentSchemaPath }),\n )\n\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n\n if (preferencesKey) {\n void setPreference(preferencesKey, {\n ...existingPreferences,\n ...(path\n ? {\n fields: {\n ...(existingPreferences?.fields || {}),\n [path]: {\n ...existingPreferences?.fields?.[path],\n tabIndex: incomingTabIndex,\n },\n },\n }\n : {\n fields: {\n ...existingPreferences?.fields,\n [tabsPrefKey]: {\n ...existingPreferences?.fields?.[tabsPrefKey],\n tabIndex: incomingTabIndex,\n },\n },\n }),\n })\n }\n },\n [\n tabs,\n parentPath,\n parentSchemaPath,\n getPreference,\n preferencesKey,\n setPreference,\n path,\n tabsPrefKey,\n ],\n )\n\n useEffect(() => {\n if (preferencesKey) {\n const getInitialPref = async () => {\n const existingPreferences: DocumentPreferences = await getPreference(preferencesKey)\n const initialIndex = path\n ? existingPreferences?.fields?.[path]?.tabIndex\n : existingPreferences?.fields?.[tabsPrefKey]?.tabIndex\n\n const newIndex = initialIndex || 0\n setActiveTabIndex(newIndex)\n\n setActiveTabPath(generateTabPath({ activeTabConfig: tabs[newIndex], path: parentPath }))\n setActiveTabSchemaPath(\n generateTabPath({ activeTabConfig: tabs[newIndex], path: parentSchemaPath }),\n )\n }\n void getInitialPref()\n }\n }, [path, getPreference, preferencesKey, tabsPrefKey, tabs, parentPath, parentSchemaPath])\n\n useEffect(() => {\n if (activeTabInfo?.passesCondition === false) {\n const nextTab = tabStates.find(({ passesCondition }) => passesCondition)\n if (nextTab) {\n void handleTabChange(nextTab.index)\n }\n }\n }, [activeTabInfo, tabStates, handleTabChange])\n\n return (\n <div\n className={[\n fieldBaseClass,\n className,\n baseClass,\n isWithinCollapsible && `${baseClass}--within-collapsible`,\n !hasVisibleTabs && `${baseClass}--hidden`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <TabsProvider>\n <div className={`${baseClass}__tabs-wrap`}>\n <div className={`${baseClass}__tabs`}>\n {tabStates.map(({ index, passesCondition, tab }) => (\n <TabComponent\n hidden={!passesCondition}\n isActive={activeTabIndex === index}\n key={index}\n parentPath={path}\n setIsActive={() => {\n void handleTabChange(index)\n }}\n tab={tab}\n />\n ))}\n </div>\n </div>\n <div className={`${baseClass}__content-wrap`}>\n {activeTabConfig && (\n <TabContent\n description={activeTabStaticDescription}\n fields={activeTabConfig.fields}\n forceRender={forceRender}\n hidden={false}\n parentIndexPath={\n tabHasName(activeTabConfig)\n ? ''\n : `${indexPath ? indexPath + '-' : ''}` + String(activeTabInfo.index)\n }\n parentPath={activePathChildrenPath}\n parentSchemaPath={activePathSchemaChildrenPath}\n path={activeTabPath}\n permissions={\n permissions && typeof permissions === 'object' && 'name' in activeTabConfig\n ? permissions[activeTabConfig.name] &&\n typeof permissions[activeTabConfig.name] === 'object' &&\n 'fields' in permissions[activeTabConfig.name]\n ? permissions[activeTabConfig.name].fields\n : permissions[activeTabConfig.name]\n : permissions\n }\n readOnly={readOnly}\n />\n )}\n </div>\n </TabsProvider>\n </div>\n )\n}\n\nexport const TabsField = withCondition(TabsFieldComponent)\n\ntype ActiveTabProps = {\n readonly description: StaticDescription\n readonly fields: ClientField[]\n readonly forceRender?: boolean\n readonly hidden: boolean\n readonly label?: string\n readonly parentIndexPath: string\n readonly parentPath: string\n readonly parentSchemaPath: string\n readonly path: string\n readonly permissions: SanitizedFieldPermissions\n readonly readOnly: boolean\n}\nfunction TabContent({\n description,\n fields,\n forceRender,\n hidden,\n label,\n parentIndexPath,\n parentPath,\n parentSchemaPath,\n path,\n permissions,\n readOnly,\n}: ActiveTabProps) {\n const { i18n } = useTranslation()\n const { customComponents: { AfterInput, BeforeInput, Description, Field } = {} } = useField({\n path,\n })\n\n if (Field) {\n return Field\n }\n\n return (\n <div\n className={[\n hidden && `${baseClass}__tab--hidden`,\n `${baseClass}__tab`,\n label && `${baseClass}__tabConfigLabel-${toKebabCase(getTranslation(label, i18n))}`,\n ]\n .filter(Boolean)\n .join(' ')}\n >\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={\n <FieldDescription description={description} marginPlacement=\"bottom\" path={path} />\n }\n />\n {BeforeInput}\n <RenderFields\n fields={fields}\n forceRender={forceRender}\n parentIndexPath={parentIndexPath}\n parentPath={parentPath}\n parentSchemaPath={parentSchemaPath}\n permissions={permissions}\n readOnly={readOnly}\n />\n {AfterInput}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
@@ -6,6 +6,10 @@
6
6
  margin-left: calc(var(--gutter-h) * -1);
7
7
  margin-right: calc(var(--gutter-h) * -1);
8
8
 
9
+ &--hidden {
10
+ display: none;
11
+ }
12
+
9
13
  &__content-wrap {
10
14
  padding-left: var(--gutter-h);
11
15
  padding-right: var(--gutter-h);
@@ -50,6 +54,10 @@
50
54
  }
51
55
  }
52
56
 
57
+ &__tab--hidden {
58
+ display: none;
59
+ }
60
+
53
61
  &__description {
54
62
  margin-bottom: calc(var(--base) / 2);
55
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/fields/Tabs/provider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAoC,MAAM,OAAO,CAAA;AAIxD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAKtF,CAAA;AAED,eAAO,MAAM,OAAO,QAAO,OAA8B,CAAA"}
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/fields/Tabs/provider.tsx"],"names":[],"mappings":"AACA,OAAO,KAA6B,MAAM,OAAO,CAAA;AAIjD,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,CAKtF,CAAA;AAED,eAAO,MAAM,OAAO,QAAO,OAAuB,CAAA"}
@@ -1,18 +1,16 @@
1
1
  'use client';
2
2
 
3
3
  import { jsx as _jsx } from "react/jsx-runtime";
4
- import React, { createContext, useContext } from 'react';
4
+ import React, { createContext, use } from 'react';
5
5
  const Context = /*#__PURE__*/createContext(false);
6
6
  export const TabsProvider = ({
7
7
  children,
8
8
  withinTab = true
9
9
  }) => {
10
- return /*#__PURE__*/_jsx(Context.Provider, {
10
+ return /*#__PURE__*/_jsx(Context, {
11
11
  value: withinTab,
12
12
  children: children
13
13
  });
14
14
  };
15
- export const useTabs = () => {
16
- return useContext(Context);
17
- };
15
+ export const useTabs = () => use(Context);
18
16
  //# sourceMappingURL=provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","names":["React","createContext","useContext","Context","TabsProvider","children","withinTab","_jsx","Provider","value","useTabs"],"sources":["../../../src/fields/Tabs/provider.tsx"],"sourcesContent":["'use client'\nimport React, { createContext, useContext } from 'react'\n\nconst Context = createContext(false)\n\nexport const TabsProvider: React.FC<{ children?: React.ReactNode; withinTab?: boolean }> = ({\n children,\n withinTab = true,\n}) => {\n return <Context.Provider value={withinTab}>{children}</Context.Provider>\n}\n\nexport const useTabs = (): boolean => useContext(Context)\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,IAASC,aAAa,EAAEC,UAAU,QAAQ;AAEjD,MAAMC,OAAA,gBAAUF,aAAA,CAAc;AAE9B,OAAO,MAAMG,YAAA,GAA8EA,CAAC;EAC1FC,QAAQ;EACRC,SAAA,GAAY;AAAI,CACjB;EACC,oBAAOC,IAAA,CAACJ,OAAA,CAAQK,QAAQ;IAACC,KAAA,EAAOH,SAAA;cAAYD;;AAC9C;AAEA,OAAO,MAAMK,OAAA,GAAUA,CAAA;EAAA,OAAeR,UAAA,CAAAC,OAAW;AAAA","ignoreList":[]}
1
+ {"version":3,"file":"provider.js","names":["React","createContext","use","Context","TabsProvider","children","withinTab","_jsx","value","useTabs"],"sources":["../../../src/fields/Tabs/provider.tsx"],"sourcesContent":["'use client'\nimport React, { createContext, use } from 'react'\n\nconst Context = createContext(false)\n\nexport const TabsProvider: React.FC<{ children?: React.ReactNode; withinTab?: boolean }> = ({\n children,\n withinTab = true,\n}) => {\n return <Context value={withinTab}>{children}</Context>\n}\n\nexport const useTabs = (): boolean => use(Context)\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,IAASC,aAAa,EAAEC,GAAG,QAAQ;AAE1C,MAAMC,OAAA,gBAAUF,aAAA,CAAc;AAE9B,OAAO,MAAMG,YAAA,GAA8EA,CAAC;EAC1FC,QAAQ;EACRC,SAAA,GAAY;AAAI,CACjB;EACC,oBAAOC,IAAA,CAACJ,OAAA;IAAQK,KAAA,EAAOF,SAAA;cAAYD;;AACrC;AAEA,OAAO,MAAMI,OAAA,GAAUA,CAAA,KAAeP,GAAA,CAAIC,OAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAS5C,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAErF,QAAA,MAAM,WAAW,kCAA+B,CAAA;AAChD,QAAA,MAAM,mBAAmB,kCAA+B,CAAA;AACxD,QAAA,MAAM,gBAAgB,kCAA+B,CAAA;AACrD,QAAA,MAAM,gBAAgB,kCAAuB,CAAA;AAC7C,QAAA,MAAM,iBAAiB,kCAAuB,CAAA;AAC9C;;;GAGG;AACH,QAAA,MAAM,2BAA2B,kCAAuB,CAAA;AACxD,QAAA,MAAM,eAAe,kCAAuB,CAAA;AAC5C,QAAA,MAAM,mBAAmB,kCAAuB,CAAA;AAChD,QAAA,MAAM,iBAAiB,+DAAiE,CAAA;AAExF,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;AAE3D;;;;GAIG;AACH,QAAA,MAAM,OAAO,QAAO,OAAkC,CAAA;AACtD;;;GAGG;AACH,QAAA,MAAM,eAAe,QAAO,OAA0C,CAAA;AAEtE,QAAA,MAAM,YAAY,QAAO,OAAuC,CAAA;AAChE,QAAA,MAAM,gBAAgB,QAAO,OAAuC,CAAA;AACpE,QAAA,MAAM,iBAAiB,QAAO,OAAwC,CAAA;AACtE;;;GAGG;AACH,QAAA,MAAM,2BAA2B,QAAO,OAAkD,CAAA;AAC1F,QAAA,MAAM,eAAe,QAAO,OAAsC,CAAA;AAClE,QAAA,MAAM,mBAAmB,QAAO,OAA0C,CAAA;AAE1E;;;;GAIG;AACH,QAAA,MAAM,aAAa,GAAI,KAAK,sBAChB,CAAC,OAAO,EAAE,qBAAqB,KAAK,KAAK,KAClD,KAAwD,CAAA;AAE3D;;;;GAIG;AACH,QAAA,MAAM,gBAAgB,QAAO,qBAA0D,CAAA;AAEvF,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,2BAA2B,EAC3B,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,CAAA"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAS5C,OAAO,KAAK,EAAE,OAAO,EAAE,iBAAiB,IAAI,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAErF,QAAA,MAAM,WAAW,kCAA+B,CAAA;AAChD,QAAA,MAAM,mBAAmB,kCAA+B,CAAA;AACxD,QAAA,MAAM,gBAAgB,kCAA+B,CAAA;AACrD,QAAA,MAAM,gBAAgB,kCAAuB,CAAA;AAC7C,QAAA,MAAM,iBAAiB,kCAAuB,CAAA;AAC9C;;;GAGG;AACH,QAAA,MAAM,2BAA2B,kCAAuB,CAAA;AACxD,QAAA,MAAM,eAAe,kCAAuB,CAAA;AAC5C,QAAA,MAAM,mBAAmB,kCAAuB,CAAA;AAChD,QAAA,MAAM,iBAAiB,+DAAiE,CAAA;AAExF,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;AAE3D;;;;GAIG;AACH,QAAA,MAAM,OAAO,QAAO,OAA2B,CAAA;AAC/C;;;GAGG;AACH,QAAA,MAAM,eAAe,QAAO,OAAmC,CAAA;AAE/D,QAAA,MAAM,YAAY,QAAO,OAAgC,CAAA;AACzD,QAAA,MAAM,gBAAgB,QAAO,OAAgC,CAAA;AAC7D,QAAA,MAAM,iBAAiB,QAAO,OAAiC,CAAA;AAC/D;;;GAGG;AACH,QAAA,MAAM,2BAA2B,QAAO,OAA2C,CAAA;AACnF,QAAA,MAAM,eAAe,QAAO,OAA+B,CAAA;AAC3D,QAAA,MAAM,mBAAmB,QAAO,OAAmC,CAAA;AAEnE;;;;GAIG;AACH,QAAA,MAAM,aAAa,GAAI,KAAK,sBAChB,CAAC,OAAO,EAAE,qBAAqB,KAAK,KAAK,KAClD,KAAwD,CAAA;AAE3D;;;;GAIG;AACH,QAAA,MAAM,gBAAgB,QAAO,qBAA0D,CAAA;AAEvF,OAAO,EACL,2BAA2B,EAC3B,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,2BAA2B,EAC3B,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,CAAA"}
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
 
3
- import { createContext, useContext } from 'react';
3
+ import { createContext, use } from 'react';
4
4
  import { createContext as createSelectorContext, useContextSelector, useContext as useFullContext } from 'use-context-selector';
5
5
  const FormContext = createContext({});
6
6
  const DocumentFormContext = createContext({});
@@ -20,38 +20,22 @@ const FormFieldsContext = createSelectorContext([{}, () => null]);
20
20
  *
21
21
  * @see https://payloadcms.com/docs/admin/react-hooks#useform
22
22
  */
23
- const useForm = () => {
24
- return useContext(FormContext);
25
- };
23
+ const useForm = () => use(FormContext);
26
24
  /**
27
25
  * Get the state of the document-level form. This is useful if you need to access the document-level Form from within a child Form.
28
26
  * This is the case withing lexical Blocks, as each lexical blocks renders their own Form.
29
27
  */
30
- const useDocumentForm = () => {
31
- return useContext(DocumentFormContext);
32
- };
33
- const useWatchForm = () => {
34
- return useContext(FormWatchContext);
35
- };
36
- const useFormSubmitted = () => {
37
- return useContext(SubmittedContext);
38
- };
39
- const useFormProcessing = () => {
40
- return useContext(ProcessingContext);
41
- };
28
+ const useDocumentForm = () => use(DocumentFormContext);
29
+ const useWatchForm = () => use(FormWatchContext);
30
+ const useFormSubmitted = () => use(SubmittedContext);
31
+ const useFormProcessing = () => use(ProcessingContext);
42
32
  /**
43
33
  * If the form has started processing in the background (e.g.
44
34
  * if autosave is running), this will be true.
45
35
  */
46
- const useFormBackgroundProcessing = () => {
47
- return useContext(BackgroundProcessingContext);
48
- };
49
- const useFormModified = () => {
50
- return useContext(ModifiedContext);
51
- };
52
- const useFormInitializing = () => {
53
- return useContext(InitializingContext);
54
- };
36
+ const useFormBackgroundProcessing = () => use(BackgroundProcessingContext);
37
+ const useFormModified = () => use(ModifiedContext);
38
+ const useFormInitializing = () => use(InitializingContext);
55
39
  /**
56
40
  * Get and set the value of a form field based on a selector
57
41
  *
@@ -1 +1 @@
1
- {"version":3,"file":"context.js","names":["createContext","useContext","createSelectorContext","useContextSelector","useFullContext","FormContext","DocumentFormContext","FormWatchContext","SubmittedContext","ProcessingContext","BackgroundProcessingContext","ModifiedContext","InitializingContext","FormFieldsContext","useForm","useDocumentForm","useWatchForm","useFormSubmitted","useFormProcessing","useFormBackgroundProcessing","useFormModified","useFormInitializing","useFormFields","selector","useAllFormFields"],"sources":["../../../src/forms/Form/context.ts"],"sourcesContent":["'use client'\nimport type { RenderedField } from 'payload'\n\nimport { createContext, useContext } from 'react'\nimport {\n createContext as createSelectorContext,\n useContextSelector,\n useContext as useFullContext,\n} from 'use-context-selector'\n\nimport type { Context, FormFieldsContext as FormFieldsContextType } from './types.js'\n\nconst FormContext = createContext({} as Context)\nconst DocumentFormContext = createContext({} as Context)\nconst FormWatchContext = createContext({} as Context)\nconst SubmittedContext = createContext(false)\nconst ProcessingContext = createContext(false)\n/**\n * If the form has started processing in the background (e.g.\n * if autosave is running), this will be true.\n */\nconst BackgroundProcessingContext = createContext(false)\nconst ModifiedContext = createContext(false)\nconst InitializingContext = createContext(false)\nconst FormFieldsContext = createSelectorContext<FormFieldsContextType>([{}, () => null])\n\nexport type RenderedFieldSlots = Map<string, RenderedField>\n\n/**\n * Get the state of the form, can be used to submit & validate the form.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useform\n */\nconst useForm = (): Context => useContext(FormContext)\n/**\n * Get the state of the document-level form. This is useful if you need to access the document-level Form from within a child Form.\n * This is the case withing lexical Blocks, as each lexical blocks renders their own Form.\n */\nconst useDocumentForm = (): Context => useContext(DocumentFormContext)\n\nconst useWatchForm = (): Context => useContext(FormWatchContext)\nconst useFormSubmitted = (): boolean => useContext(SubmittedContext)\nconst useFormProcessing = (): boolean => useContext(ProcessingContext)\n/**\n * If the form has started processing in the background (e.g.\n * if autosave is running), this will be true.\n */\nconst useFormBackgroundProcessing = (): boolean => useContext(BackgroundProcessingContext)\nconst useFormModified = (): boolean => useContext(ModifiedContext)\nconst useFormInitializing = (): boolean => useContext(InitializingContext)\n\n/**\n * Get and set the value of a form field based on a selector\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useformfields\n */\nconst useFormFields = <Value = unknown>(\n selector: (context: FormFieldsContextType) => Value,\n): Value => useContextSelector(FormFieldsContext, selector)\n\n/**\n * Get the state of all form fields.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useallformfields\n */\nconst useAllFormFields = (): FormFieldsContextType => useFullContext(FormFieldsContext)\n\nexport {\n BackgroundProcessingContext,\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormBackgroundProcessing,\n useFormFields,\n useFormInitializing,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n}\n"],"mappings":"AAAA;;AAGA,SAASA,aAAa,EAAEC,UAAU,QAAQ;AAC1C,SACED,aAAA,IAAiBE,qBAAqB,EACtCC,kBAAkB,EAClBF,UAAA,IAAcG,cAAc,QACvB;AAIP,MAAMC,WAAA,GAAcL,aAAA,CAAc,CAAC;AACnC,MAAMM,mBAAA,GAAsBN,aAAA,CAAc,CAAC;AAC3C,MAAMO,gBAAA,GAAmBP,aAAA,CAAc,CAAC;AACxC,MAAMQ,gBAAA,GAAmBR,aAAA,CAAc;AACvC,MAAMS,iBAAA,GAAoBT,aAAA,CAAc;AACxC;;;;AAIA,MAAMU,2BAAA,GAA8BV,aAAA,CAAc;AAClD,MAAMW,eAAA,GAAkBX,aAAA,CAAc;AACtC,MAAMY,mBAAA,GAAsBZ,aAAA,CAAc;AAC1C,MAAMa,iBAAA,GAAoBX,qBAAA,CAA6C,CAAC,CAAC,GAAG,MAAM,KAAK;AAIvF;;;;;AAKA,MAAMY,OAAA,GAAUA,CAAA;EAAA,OAAeb,UAAA,CAAAI,WAAW;AAAA;AAC1C;;;;AAIA,MAAMU,eAAA,GAAkBA,CAAA;EAAA,OAAed,UAAA,CAAAK,mBAAW;AAAA;AAElD,MAAMU,YAAA,GAAeA,CAAA;EAAA,OAAef,UAAA,CAAAM,gBAAW;AAAA;AAC/C,MAAMU,gBAAA,GAAmBA,CAAA;EAAA,OAAehB,UAAA,CAAAO,gBAAW;AAAA;AACnD,MAAMU,iBAAA,GAAoBA,CAAA;EAAA,OAAejB,UAAA,CAAAQ,iBAAW;AAAA;AACpD;;;;AAIA,MAAMU,2BAAA,GAA8BA,CAAA;EAAA,OAAelB,UAAA,CAAAS,2BAAW;AAAA;AAC9D,MAAMU,eAAA,GAAkBA,CAAA;EAAA,OAAenB,UAAA,CAAAU,eAAW;AAAA;AAClD,MAAMU,mBAAA,GAAsBA,CAAA;EAAA,OAAepB,UAAA,CAAAW,mBAAW;AAAA;AAEtD;;;;;AAKA,MAAMU,aAAA,GAAgBC,QAAA;EAAA,OAEVpB,kBAAA,CAAAU,iBAAA,EAAsCU,QAAA;AAAA;AAElD;;;;;AAKA,MAAMC,gBAAA,GAAmBA,CAAA;EAAA,OAA6BpB,cAAA,CAAAS,iBAAe;AAAA;AAErE,SACEH,2BAA2B,EAC3BJ,mBAAmB,EACnBD,WAAW,EACXQ,iBAAiB,EACjBN,gBAAgB,EAChBK,mBAAmB,EACnBD,eAAe,EACfF,iBAAiB,EACjBD,gBAAgB,EAChBgB,gBAAgB,EAChBT,eAAe,EACfD,OAAO,EACPK,2BAA2B,EAC3BG,aAAa,EACbD,mBAAmB,EACnBD,eAAe,EACfF,iBAAiB,EACjBD,gBAAgB,EAChBD,YAAY","ignoreList":[]}
1
+ {"version":3,"file":"context.js","names":["createContext","use","createSelectorContext","useContextSelector","useContext","useFullContext","FormContext","DocumentFormContext","FormWatchContext","SubmittedContext","ProcessingContext","BackgroundProcessingContext","ModifiedContext","InitializingContext","FormFieldsContext","useForm","useDocumentForm","useWatchForm","useFormSubmitted","useFormProcessing","useFormBackgroundProcessing","useFormModified","useFormInitializing","useFormFields","selector","useAllFormFields"],"sources":["../../../src/forms/Form/context.ts"],"sourcesContent":["'use client'\nimport type { RenderedField } from 'payload'\n\nimport { createContext, use } from 'react'\nimport {\n createContext as createSelectorContext,\n useContextSelector,\n useContext as useFullContext,\n} from 'use-context-selector'\n\nimport type { Context, FormFieldsContext as FormFieldsContextType } from './types.js'\n\nconst FormContext = createContext({} as Context)\nconst DocumentFormContext = createContext({} as Context)\nconst FormWatchContext = createContext({} as Context)\nconst SubmittedContext = createContext(false)\nconst ProcessingContext = createContext(false)\n/**\n * If the form has started processing in the background (e.g.\n * if autosave is running), this will be true.\n */\nconst BackgroundProcessingContext = createContext(false)\nconst ModifiedContext = createContext(false)\nconst InitializingContext = createContext(false)\nconst FormFieldsContext = createSelectorContext<FormFieldsContextType>([{}, () => null])\n\nexport type RenderedFieldSlots = Map<string, RenderedField>\n\n/**\n * Get the state of the form, can be used to submit & validate the form.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useform\n */\nconst useForm = (): Context => use(FormContext)\n/**\n * Get the state of the document-level form. This is useful if you need to access the document-level Form from within a child Form.\n * This is the case withing lexical Blocks, as each lexical blocks renders their own Form.\n */\nconst useDocumentForm = (): Context => use(DocumentFormContext)\n\nconst useWatchForm = (): Context => use(FormWatchContext)\nconst useFormSubmitted = (): boolean => use(SubmittedContext)\nconst useFormProcessing = (): boolean => use(ProcessingContext)\n/**\n * If the form has started processing in the background (e.g.\n * if autosave is running), this will be true.\n */\nconst useFormBackgroundProcessing = (): boolean => use(BackgroundProcessingContext)\nconst useFormModified = (): boolean => use(ModifiedContext)\nconst useFormInitializing = (): boolean => use(InitializingContext)\n\n/**\n * Get and set the value of a form field based on a selector\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useformfields\n */\nconst useFormFields = <Value = unknown>(\n selector: (context: FormFieldsContextType) => Value,\n): Value => useContextSelector(FormFieldsContext, selector)\n\n/**\n * Get the state of all form fields.\n *\n * @see https://payloadcms.com/docs/admin/react-hooks#useallformfields\n */\nconst useAllFormFields = (): FormFieldsContextType => useFullContext(FormFieldsContext)\n\nexport {\n BackgroundProcessingContext,\n DocumentFormContext,\n FormContext,\n FormFieldsContext,\n FormWatchContext,\n InitializingContext,\n ModifiedContext,\n ProcessingContext,\n SubmittedContext,\n useAllFormFields,\n useDocumentForm,\n useForm,\n useFormBackgroundProcessing,\n useFormFields,\n useFormInitializing,\n useFormModified,\n useFormProcessing,\n useFormSubmitted,\n useWatchForm,\n}\n"],"mappings":"AAAA;;AAGA,SAASA,aAAa,EAAEC,GAAG,QAAQ;AACnC,SACED,aAAA,IAAiBE,qBAAqB,EACtCC,kBAAkB,EAClBC,UAAA,IAAcC,cAAc,QACvB;AAIP,MAAMC,WAAA,GAAcN,aAAA,CAAc,CAAC;AACnC,MAAMO,mBAAA,GAAsBP,aAAA,CAAc,CAAC;AAC3C,MAAMQ,gBAAA,GAAmBR,aAAA,CAAc,CAAC;AACxC,MAAMS,gBAAA,GAAmBT,aAAA,CAAc;AACvC,MAAMU,iBAAA,GAAoBV,aAAA,CAAc;AACxC;;;;AAIA,MAAMW,2BAAA,GAA8BX,aAAA,CAAc;AAClD,MAAMY,eAAA,GAAkBZ,aAAA,CAAc;AACtC,MAAMa,mBAAA,GAAsBb,aAAA,CAAc;AAC1C,MAAMc,iBAAA,GAAoBZ,qBAAA,CAA6C,CAAC,CAAC,GAAG,MAAM,KAAK;AAIvF;;;;;AAKA,MAAMa,OAAA,GAAUA,CAAA,KAAed,GAAA,CAAIK,WAAA;AACnC;;;;AAIA,MAAMU,eAAA,GAAkBA,CAAA,KAAef,GAAA,CAAIM,mBAAA;AAE3C,MAAMU,YAAA,GAAeA,CAAA,KAAehB,GAAA,CAAIO,gBAAA;AACxC,MAAMU,gBAAA,GAAmBA,CAAA,KAAejB,GAAA,CAAIQ,gBAAA;AAC5C,MAAMU,iBAAA,GAAoBA,CAAA,KAAelB,GAAA,CAAIS,iBAAA;AAC7C;;;;AAIA,MAAMU,2BAAA,GAA8BA,CAAA,KAAenB,GAAA,CAAIU,2BAAA;AACvD,MAAMU,eAAA,GAAkBA,CAAA,KAAepB,GAAA,CAAIW,eAAA;AAC3C,MAAMU,mBAAA,GAAsBA,CAAA,KAAerB,GAAA,CAAIY,mBAAA;AAE/C;;;;;AAKA,MAAMU,aAAA,GAAgBC,QAAA;EAAA,OAEVrB,kBAAA,CAAAW,iBAAA,EAAsCU,QAAA;AAAA;AAElD;;;;;AAKA,MAAMC,gBAAA,GAAmBA,CAAA;EAAA,OAA6BpB,cAAA,CAAAS,iBAAe;AAAA;AAErE,SACEH,2BAA2B,EAC3BJ,mBAAmB,EACnBD,WAAW,EACXQ,iBAAiB,EACjBN,gBAAgB,EAChBK,mBAAmB,EACnBD,eAAe,EACfF,iBAAiB,EACjBD,gBAAgB,EAChBgB,gBAAgB,EAChBT,eAAe,EACfD,OAAO,EACPK,2BAA2B,EAC3BG,aAAa,EACbD,mBAAmB,EACnBD,eAAe,EACfF,iBAAiB,EACjBD,gBAAgB,EAChBD,YAAY","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAwE,MAAM,OAAO,CAAA;AAG5F,OAAO,KAAK,EAGV,SAAS,EAGV,MAAM,YAAY,CAAA;AAqCnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CAyvBpC,CAAA;AAED,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAwE,MAAM,OAAO,CAAA;AAG5F,OAAO,KAAK,EAGV,SAAS,EAGV,MAAM,YAAY,CAAA;AAqCnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA0vBpC,CAAA;AAED,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}
@@ -623,7 +623,7 @@ export const Form = props => {
623
623
  prevFields.current = fields;
624
624
  isFirstRenderRef.current = false;
625
625
  }, [modified, submitted, fields, queueTask], 250);
626
- const DocumentFormContextComponent = isDocumentForm ? DocumentFormContext.Provider : React.Fragment;
626
+ const DocumentFormContextComponent = isDocumentForm ? DocumentFormContext : React.Fragment;
627
627
  const documentFormContextProps = isDocumentForm ? {
628
628
  value: contextRef.current
629
629
  } : {};
@@ -637,22 +637,22 @@ export const Form = props => {
637
637
  ref: formRef,
638
638
  children: /*#__PURE__*/_jsx(DocumentFormContextComponent, {
639
639
  ...documentFormContextProps,
640
- children: /*#__PURE__*/_jsx(FormContext.Provider, {
640
+ children: /*#__PURE__*/_jsx(FormContext, {
641
641
  value: contextRef.current,
642
- children: /*#__PURE__*/_jsx(FormWatchContext.Provider, {
642
+ children: /*#__PURE__*/_jsx(FormWatchContext, {
643
643
  value: {
644
644
  fields,
645
645
  ...contextRef.current
646
646
  },
647
- children: /*#__PURE__*/_jsx(SubmittedContext.Provider, {
647
+ children: /*#__PURE__*/_jsx(SubmittedContext, {
648
648
  value: submitted,
649
- children: /*#__PURE__*/_jsx(InitializingContext.Provider, {
649
+ children: /*#__PURE__*/_jsx(InitializingContext, {
650
650
  value: !isMounted || isMounted && initializing,
651
- children: /*#__PURE__*/_jsx(ProcessingContext.Provider, {
651
+ children: /*#__PURE__*/_jsx(ProcessingContext, {
652
652
  value: processing,
653
- children: /*#__PURE__*/_jsx(BackgroundProcessingContext.Provider, {
653
+ children: /*#__PURE__*/_jsx(BackgroundProcessingContext, {
654
654
  value: backgroundProcessing,
655
- children: /*#__PURE__*/_jsx(ModifiedContext.Provider, {
655
+ children: /*#__PURE__*/_jsx(ModifiedContext, {
656
656
  value: modified,
657
657
  children: /*#__PURE__*/_jsx(FormFieldsContext.Provider, {
658
658
  value: fieldsReducer,
@@ -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","FieldErrorsToast","useDebouncedEffect","useEffectEvent","useQueues","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","queueTask","getFormState","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","modified","setModified","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","backgroundProcessing","setBackgroundProcessing","setSubmitted","formRef","contextRef","abortResetFormRef","isFirstRenderRef","fieldsReducer","fields","dispatchFields","current","prevFields","validateForm","validatedFieldState","data","getData","validationPromises","Object","entries","map","path","field","validatedField","pathSegments","split","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","_jsx","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","aborted","changed","DocumentFormContextComponent","Provider","Fragment","documentFormContextProps","El","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, useMemo, 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 { FieldErrorsToast } from '../../elements/Toasts/fieldErrors.js'\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useQueues } from '../../hooks/useQueues.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 const { queueTask } = useQueues()\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 /**\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 const isFirstRenderRef = useRef(true)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const prevFields = useRef(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 const pathSegments = path ? path.split('.') : []\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 path: pathSegments,\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 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(<FieldErrorsToast errorMessage={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, signal: AbortSignal) => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n if (signal.aborted) {\n return\n }\n\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 && !signal.aborted) {\n prevFields.current = newState\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n })\n\n useDebouncedEffect(\n () => {\n if ((isFirstRenderRef.current || !dequal(fields, prevFields.current)) && modified) {\n queueTask(async (signal) => executeOnChange(submitted, signal))\n }\n\n prevFields.current = fields\n isFirstRenderRef.current = false\n },\n [modified, submitted, fields, queueTask],\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
+ {"version":3,"file":"index.js","names":["dequal","useRouter","serialize","deepCopyObjectSimpleWithoutReactComponents","getDataByPath","getDataByPathFunc","getSiblingData","getSiblingDataFunc","reduceFieldsToValues","wait","React","useCallback","useEffect","useReducer","useRef","useState","toast","FieldErrorsToast","useDebouncedEffect","useEffectEvent","useQueues","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","queueTask","getFormState","startRouteTransition","getUploadHandler","config","setDisabled","isMounted","setIsMounted","modified","setModified","isValid","setIsValid","initializing","setInitializing","processing","setProcessing","backgroundProcessing","setBackgroundProcessing","setSubmitted","formRef","contextRef","abortResetFormRef","isFirstRenderRef","fieldsReducer","fields","dispatchFields","current","prevFields","validateForm","validatedFieldState","data","getData","validationPromises","Object","entries","map","path","field","validatedField","pathSegments","split","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","_jsx","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","aborted","changed","DocumentFormContextComponent","Fragment","documentFormContextProps","El","noValidate","ref","Provider","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, useMemo, 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 { FieldErrorsToast } from '../../elements/Toasts/fieldErrors.js'\nimport { useDebouncedEffect } from '../../hooks/useDebouncedEffect.js'\nimport { useEffectEvent } from '../../hooks/useEffectEvent.js'\nimport { useQueues } from '../../hooks/useQueues.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 const { queueTask } = useQueues()\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 /**\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 const isFirstRenderRef = useRef(true)\n\n const fieldsReducer = useReducer(fieldReducer, {}, () => initialState)\n\n const [fields, dispatchFields] = fieldsReducer\n\n contextRef.current.fields = fields\n\n const prevFields = useRef(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 const pathSegments = path ? path.split('.') : []\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 path: pathSegments,\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 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(<FieldErrorsToast errorMessage={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, signal: AbortSignal) => {\n if (Array.isArray(onChange)) {\n let revalidatedFormState: FormState = contextRef.current.fields\n\n for (const onChangeFn of onChange) {\n if (signal.aborted) {\n return\n }\n\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 && !signal.aborted) {\n prevFields.current = newState\n\n dispatchFields({\n type: 'REPLACE_STATE',\n optimize: false,\n state: newState,\n })\n }\n }\n })\n\n useDebouncedEffect(\n () => {\n if ((isFirstRenderRef.current || !dequal(fields, prevFields.current)) && modified) {\n queueTask(async (signal) => executeOnChange(submitted, signal))\n }\n\n prevFields.current = fields\n isFirstRenderRef.current = false\n },\n [modified, submitted, fields, queueTask],\n 250,\n )\n\n const DocumentFormContextComponent: React.FC<any> = isDocumentForm\n ? DocumentFormContext\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 value={contextRef.current}>\n <FormWatchContext\n value={{\n fields,\n ...contextRef.current,\n }}\n >\n <SubmittedContext value={submitted}>\n <InitializingContext value={!isMounted || (isMounted && initializing)}>\n <ProcessingContext value={processing}>\n <BackgroundProcessingContext value={backgroundProcessing}>\n <ModifiedContext value={modified}>\n {/* eslint-disable-next-line @eslint-react/no-context-provider */}\n <FormFieldsContext.Provider value={fieldsReducer}>\n {children}\n </FormFieldsContext.Provider>\n </ModifiedContext>\n </BackgroundProcessingContext>\n </ProcessingContext>\n </InitializingContext>\n </SubmittedContext>\n </FormWatchContext>\n </FormContext>\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 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/forms/RowLabel/Context/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,KAAK,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI;IAC/B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA;AAQD,KAAK,KAAK,CAAC,CAAC,IAAI;IACd,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAEjC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CASrD,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,CAAC,OACU,YAAY,CAAC,CAAC,CACpD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/forms/RowLabel/Context/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,KAAK,YAAY,CAAC,CAAC,GAAG,OAAO,IAAI;IAC/B,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAChB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAC5B,CAAA;AAQD,KAAK,KAAK,CAAC,CAAC,IAAI;IACd,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CACnC,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;AAEjC,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CASrD,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,CAAC,OACG,YAAY,CAAC,CAAC,CAC7C,CAAA"}
@@ -22,7 +22,7 @@ export const RowLabelProvider = ({
22
22
  const collapsibleData = getSiblingData(path);
23
23
  const arrayData = getDataByPath(path);
24
24
  const data = arrayData || collapsibleData;
25
- return /*#__PURE__*/_jsx(RowLabel.Provider, {
25
+ return /*#__PURE__*/_jsx(RowLabel, {
26
26
  value: {
27
27
  data,
28
28
  path,
@@ -32,6 +32,6 @@ export const RowLabelProvider = ({
32
32
  });
33
33
  };
34
34
  export const useRowLabel = () => {
35
- return React.useContext(RowLabel);
35
+ return React.use(RowLabel);
36
36
  };
37
37
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useWatchForm","RowLabel","createContext","data","path","rowNumber","undefined","RowLabelProvider","children","getDataByPath","getSiblingData","collapsibleData","arrayData","_jsx","Provider","value","useRowLabel","useContext"],"sources":["../../../../src/forms/RowLabel/Context/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { useWatchForm } from '../../Form/context.js'\n\ntype RowLabelType<T = unknown> = {\n readonly data: T\n readonly path: string\n readonly rowNumber?: number\n}\n\nconst RowLabel = React.createContext<RowLabelType>({\n data: {},\n path: '',\n rowNumber: undefined,\n})\n\ntype Props<T> = {\n readonly children: React.ReactNode\n} & Omit<RowLabelType<T>, 'data'>\n\nexport const RowLabelProvider: React.FC<Props<unknown>> = ({ children, path, rowNumber }) => {\n 'use no memo'\n const { getDataByPath, getSiblingData } = useWatchForm()\n const collapsibleData = getSiblingData(path)\n const arrayData = getDataByPath(path)\n\n const data = arrayData || collapsibleData\n\n return <RowLabel.Provider value={{ data, path, rowNumber }}>{children}</RowLabel.Provider>\n}\n\nexport const useRowLabel = <T,>() => {\n return React.useContext(RowLabel) as RowLabelType<T>\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,MAAW;AAElB,SAASC,YAAY,QAAQ;AAQ7B,MAAMC,QAAA,gBAAWF,KAAA,CAAMG,aAAa,CAAe;EACjDC,IAAA,EAAM,CAAC;EACPC,IAAA,EAAM;EACNC,SAAA,EAAWC;AACb;AAMA,OAAO,MAAMC,gBAAA,GAA6CA,CAAC;EAAEC,QAAQ;EAAEJ,IAAI;EAAEC;AAAS,CAAE;EACtF;;EACA,MAAM;IAAEI,aAAa;IAAEC;EAAc,CAAE,GAAGV,YAAA;EAC1C,MAAMW,eAAA,GAAkBD,cAAA,CAAeN,IAAA;EACvC,MAAMQ,SAAA,GAAYH,aAAA,CAAcL,IAAA;EAEhC,MAAMD,IAAA,GAAOS,SAAA,IAAaD,eAAA;EAE1B,oBAAOE,IAAA,CAACZ,QAAA,CAASa,QAAQ;IAACC,KAAA,EAAO;MAAEZ,IAAA;MAAMC,IAAA;MAAMC;IAAU;cAAIG;;AAC/D;AAEA,OAAO,MAAMQ,WAAA,GAAcA,CAAA;EAAA,OAClBjB,KAAA,CAAAkB,UAAA,CAAAhB,QAAiB;AAAA,CAC1B","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useWatchForm","RowLabel","createContext","data","path","rowNumber","undefined","RowLabelProvider","children","getDataByPath","getSiblingData","collapsibleData","arrayData","_jsx","value","useRowLabel","use"],"sources":["../../../../src/forms/RowLabel/Context/index.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nimport { useWatchForm } from '../../Form/context.js'\n\ntype RowLabelType<T = unknown> = {\n readonly data: T\n readonly path: string\n readonly rowNumber?: number\n}\n\nconst RowLabel = React.createContext<RowLabelType>({\n data: {},\n path: '',\n rowNumber: undefined,\n})\n\ntype Props<T> = {\n readonly children: React.ReactNode\n} & Omit<RowLabelType<T>, 'data'>\n\nexport const RowLabelProvider: React.FC<Props<unknown>> = ({ children, path, rowNumber }) => {\n 'use no memo'\n const { getDataByPath, getSiblingData } = useWatchForm()\n const collapsibleData = getSiblingData(path)\n const arrayData = getDataByPath(path)\n\n const data = arrayData || collapsibleData\n\n return <RowLabel value={{ data, path, rowNumber }}>{children}</RowLabel>\n}\n\nexport const useRowLabel = <T,>() => {\n return React.use(RowLabel) as RowLabelType<T>\n}\n"],"mappings":"AAAA;;;AAEA,OAAOA,KAAA,MAAW;AAElB,SAASC,YAAY,QAAQ;AAQ7B,MAAMC,QAAA,gBAAWF,KAAA,CAAMG,aAAa,CAAe;EACjDC,IAAA,EAAM,CAAC;EACPC,IAAA,EAAM;EACNC,SAAA,EAAWC;AACb;AAMA,OAAO,MAAMC,gBAAA,GAA6CA,CAAC;EAAEC,QAAQ;EAAEJ,IAAI;EAAEC;AAAS,CAAE;EACtF;;EACA,MAAM;IAAEI,aAAa;IAAEC;EAAc,CAAE,GAAGV,YAAA;EAC1C,MAAMW,eAAA,GAAkBD,cAAA,CAAeN,IAAA;EACvC,MAAMQ,SAAA,GAAYH,aAAA,CAAcL,IAAA;EAEhC,MAAMD,IAAA,GAAOS,SAAA,IAAaD,eAAA;EAE1B,oBAAOE,IAAA,CAACZ,QAAA;IAASa,KAAA,EAAO;MAAEX,IAAA;MAAMC,IAAA;MAAMC;IAAU;cAAIG;;AACtD;AAEA,OAAO,MAAMO,WAAA,GAAcA,CAAA;EACzB,OAAOhB,KAAA,CAAMiB,GAAG,CAACf,QAAA;AACnB","ignoreList":[]}