@payloadcms/ui 3.29.0-canary.4 → 3.29.0-canary.6

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 (101) hide show
  1. package/dist/elements/BulkUpload/EditMany/DrawerContent.d.ts.map +1 -1
  2. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +143 -127
  3. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  4. package/dist/elements/BulkUpload/EditMany/index.d.ts.map +1 -1
  5. package/dist/elements/BulkUpload/EditMany/index.js +1 -1
  6. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  7. package/dist/elements/DocumentFields/index.d.ts.map +1 -1
  8. package/dist/elements/DocumentFields/index.js +1 -5
  9. package/dist/elements/DocumentFields/index.js.map +1 -1
  10. package/dist/elements/EditMany/DrawerContent.d.ts +2 -1
  11. package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
  12. package/dist/elements/EditMany/DrawerContent.js +107 -118
  13. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  14. package/dist/elements/EditMany/index.d.ts.map +1 -1
  15. package/dist/elements/EditMany/index.js +6 -5
  16. package/dist/elements/EditMany/index.js.map +1 -1
  17. package/dist/elements/FieldSelect/index.d.ts +12 -2
  18. package/dist/elements/FieldSelect/index.d.ts.map +1 -1
  19. package/dist/elements/FieldSelect/index.js +31 -48
  20. package/dist/elements/FieldSelect/index.js.map +1 -1
  21. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts +2 -1
  22. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.d.ts.map +1 -1
  23. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +4 -1
  24. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  25. package/dist/elements/PublishButton/ScheduleDrawer/index.d.ts.map +1 -1
  26. package/dist/elements/PublishButton/ScheduleDrawer/index.js +3 -3
  27. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  28. package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
  29. package/dist/elements/Table/DefaultCell/fields/File/index.js +24 -1
  30. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  31. package/dist/elements/Thumbnail/index.js +24 -22
  32. package/dist/elements/Thumbnail/index.js.map +1 -1
  33. package/dist/exports/client/index.js +23 -23
  34. package/dist/exports/client/index.js.map +4 -4
  35. package/dist/fields/Array/index.d.ts.map +1 -1
  36. package/dist/fields/Array/index.js +4 -3
  37. package/dist/fields/Array/index.js.map +1 -1
  38. package/dist/fields/Blocks/index.d.ts.map +1 -1
  39. package/dist/fields/Blocks/index.js +5 -4
  40. package/dist/fields/Blocks/index.js.map +1 -1
  41. package/dist/fields/Checkbox/index.d.ts +1 -1
  42. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  43. package/dist/fields/Checkbox/index.js +4 -3
  44. package/dist/fields/Checkbox/index.js.map +1 -1
  45. package/dist/fields/Code/index.d.ts.map +1 -1
  46. package/dist/fields/Code/index.js +4 -3
  47. package/dist/fields/Code/index.js.map +1 -1
  48. package/dist/fields/Collapsible/index.d.ts.map +1 -1
  49. package/dist/fields/Collapsible/index.js +3 -2
  50. package/dist/fields/Collapsible/index.js.map +1 -1
  51. package/dist/fields/ConfirmPassword/index.js +13 -11
  52. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  53. package/dist/fields/DateTime/index.d.ts.map +1 -1
  54. package/dist/fields/DateTime/index.js +5 -4
  55. package/dist/fields/DateTime/index.js.map +1 -1
  56. package/dist/fields/Email/index.d.ts.map +1 -1
  57. package/dist/fields/Email/index.js +3 -2
  58. package/dist/fields/Email/index.js.map +1 -1
  59. package/dist/fields/Group/index.d.ts.map +1 -1
  60. package/dist/fields/Group/index.js.map +1 -1
  61. package/dist/fields/JSON/index.d.ts.map +1 -1
  62. package/dist/fields/JSON/index.js +5 -4
  63. package/dist/fields/JSON/index.js.map +1 -1
  64. package/dist/fields/Number/index.d.ts.map +1 -1
  65. package/dist/fields/Number/index.js +6 -5
  66. package/dist/fields/Number/index.js.map +1 -1
  67. package/dist/fields/Password/index.d.ts.map +1 -1
  68. package/dist/fields/Password/index.js +2 -4
  69. package/dist/fields/Password/index.js.map +1 -1
  70. package/dist/fields/Point/index.d.ts.map +1 -1
  71. package/dist/fields/Point/index.js +4 -3
  72. package/dist/fields/Point/index.js.map +1 -1
  73. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  74. package/dist/fields/RadioGroup/index.js +4 -3
  75. package/dist/fields/RadioGroup/index.js.map +1 -1
  76. package/dist/fields/Relationship/index.d.ts.map +1 -1
  77. package/dist/fields/Relationship/index.js +5 -4
  78. package/dist/fields/Relationship/index.js.map +1 -1
  79. package/dist/fields/Select/index.d.ts.map +1 -1
  80. package/dist/fields/Select/index.js +4 -3
  81. package/dist/fields/Select/index.js.map +1 -1
  82. package/dist/fields/Tabs/index.js.map +1 -1
  83. package/dist/fields/Text/index.d.ts.map +1 -1
  84. package/dist/fields/Text/index.js +4 -3
  85. package/dist/fields/Text/index.js.map +1 -1
  86. package/dist/fields/Textarea/index.d.ts.map +1 -1
  87. package/dist/fields/Textarea/index.js +2 -1
  88. package/dist/fields/Textarea/index.js.map +1 -1
  89. package/dist/fields/Upload/index.d.ts.map +1 -1
  90. package/dist/fields/Upload/index.js +2 -1
  91. package/dist/fields/Upload/index.js.map +1 -1
  92. package/dist/forms/Form/fieldReducer.js +1 -1
  93. package/dist/forms/Form/fieldReducer.js.map +1 -1
  94. package/dist/forms/useField/index.d.ts.map +1 -1
  95. package/dist/forms/useField/index.js +70 -67
  96. package/dist/forms/useField/index.js.map +1 -1
  97. package/dist/forms/useField/types.d.ts +1 -0
  98. package/dist/forms/useField/types.d.ts.map +1 -1
  99. package/dist/forms/useField/types.js.map +1 -1
  100. package/dist/styles.css +1 -1
  101. package/package.json +5 -5
@@ -56,6 +56,7 @@ const SelectFieldComponent = props => {
56
56
  Error,
57
57
  Label
58
58
  } = {},
59
+ disabled,
59
60
  setValue,
60
61
  showError,
61
62
  value: value_0
@@ -64,7 +65,7 @@ const SelectFieldComponent = props => {
64
65
  validate: memoizedValidate
65
66
  });
66
67
  const onChange = useCallback(selectedOption => {
67
- if (!readOnly) {
68
+ if (!readOnly || disabled) {
68
69
  let newValue = null;
69
70
  if (selectedOption && hasMany) {
70
71
  if (Array.isArray(selectedOption)) {
@@ -80,7 +81,7 @@ const SelectFieldComponent = props => {
80
81
  }
81
82
  setValue(newValue);
82
83
  }
83
- }, [readOnly, hasMany, setValue, onChangeFromProps]);
84
+ }, [readOnly, disabled, hasMany, setValue, onChangeFromProps]);
84
85
  const styles = useMemo(() => mergeFieldStyles(field), [field]);
85
86
  return /*#__PURE__*/_jsx(SelectInput, {
86
87
  AfterInput: AfterInput,
@@ -99,7 +100,7 @@ const SelectFieldComponent = props => {
99
100
  onChange: onChange,
100
101
  options: options,
101
102
  path: path,
102
- readOnly: readOnly,
103
+ readOnly: readOnly || disabled,
103
104
  required: required,
104
105
  showError: showError,
105
106
  style: styles,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useMemo","useField","withCondition","mergeFieldStyles","SelectInput","formatOptions","options","map","option","value","label","SelectFieldComponent","props","field","name","admin","className","description","isClearable","isSortable","hasMany","localized","optionsFromProps","required","onChange","onChangeFromProps","path","readOnly","validate","memoizedValidate","validationOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","setValue","showError","selectedOption","newValue","Array","isArray","styles","_jsx","style","SelectField"],"sources":["../../../src/fields/Select/index.tsx"],"sourcesContent":["'use client'\nimport type {\n Option,\n OptionObject,\n SelectFieldClientComponent,\n SelectFieldClientProps,\n} from 'payload'\n\nimport React, { useCallback, useMemo } from 'react'\n\nimport type { ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\nimport type { SelectInputProps } from './Input.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { SelectInput } from './Input.js'\n\nconst formatOptions = (options: Option[]): OptionObject[] =>\n options.map((option) => {\n if (typeof option === 'object' && (option.value || option.value === '')) {\n return option\n }\n\n return {\n label: option,\n value: option,\n } as OptionObject\n })\n\nconst SelectFieldComponent: SelectFieldClientComponent = (props) => {\n const {\n field,\n field: {\n name,\n admin: {\n className,\n description,\n isClearable = true,\n isSortable = true,\n } = {} as SelectFieldClientProps['field']['admin'],\n hasMany = false,\n label,\n localized,\n options: optionsFromProps = [],\n required,\n },\n onChange: onChangeFromProps,\n path,\n readOnly,\n validate,\n } = props\n\n const options = React.useMemo(() => formatOptions(optionsFromProps), [optionsFromProps])\n\n const memoizedValidate = useCallback(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n return validate(value, { ...validationOptions, hasMany, options, required })\n }\n },\n [validate, required, hasMany, options],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n setValue,\n showError,\n value,\n } = useField({\n path,\n validate: memoizedValidate,\n })\n\n const onChange: ReactSelectAdapterProps['onChange'] = useCallback(\n (selectedOption: OptionObject | OptionObject[]) => {\n if (!readOnly) {\n let newValue: string | string[] = null\n if (selectedOption && hasMany) {\n if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value)\n } else {\n newValue = []\n }\n } else if (selectedOption && !Array.isArray(selectedOption)) {\n newValue = selectedOption.value\n }\n\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newValue)\n }\n\n setValue(newValue)\n }\n },\n [readOnly, hasMany, setValue, onChangeFromProps],\n )\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <SelectInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n Error={Error}\n hasMany={hasMany}\n isClearable={isClearable}\n isSortable={isSortable}\n Label={Label}\n label={label}\n localized={localized}\n name={name}\n onChange={onChange}\n options={options}\n path={path}\n readOnly={readOnly}\n required={required}\n showError={showError}\n style={styles}\n value={value as string | string[]}\n />\n )\n}\n\nexport const SelectField = withCondition(SelectFieldComponent)\n\nexport { SelectInput, type SelectInputProps }\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useMemo","useField","withCondition","mergeFieldStyles","SelectInput","formatOptions","options","map","option","value","label","SelectFieldComponent","props","field","name","admin","className","description","isClearable","isSortable","hasMany","localized","optionsFromProps","required","onChange","onChangeFromProps","path","readOnly","validate","memoizedValidate","validationOptions","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","selectedOption","newValue","Array","isArray","styles","_jsx","style","SelectField"],"sources":["../../../src/fields/Select/index.tsx"],"sourcesContent":["'use client'\nimport type {\n Option,\n OptionObject,\n SelectFieldClientComponent,\n SelectFieldClientProps,\n} from 'payload'\n\nimport React, { useCallback, useMemo } from 'react'\n\nimport type { ReactSelectAdapterProps } from '../../elements/ReactSelect/types.js'\nimport type { SelectInputProps } from './Input.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { SelectInput } from './Input.js'\n\nconst formatOptions = (options: Option[]): OptionObject[] =>\n options.map((option) => {\n if (typeof option === 'object' && (option.value || option.value === '')) {\n return option\n }\n\n return {\n label: option,\n value: option,\n } as OptionObject\n })\n\nconst SelectFieldComponent: SelectFieldClientComponent = (props) => {\n const {\n field,\n field: {\n name,\n admin: {\n className,\n description,\n isClearable = true,\n isSortable = true,\n } = {} as SelectFieldClientProps['field']['admin'],\n hasMany = false,\n label,\n localized,\n options: optionsFromProps = [],\n required,\n },\n onChange: onChangeFromProps,\n path,\n readOnly,\n validate,\n } = props\n\n const options = React.useMemo(() => formatOptions(optionsFromProps), [optionsFromProps])\n\n const memoizedValidate = useCallback(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n return validate(value, { ...validationOptions, hasMany, options, required })\n }\n },\n [validate, required, hasMany, options],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n setValue,\n showError,\n value,\n } = useField({\n path,\n validate: memoizedValidate,\n })\n\n const onChange: ReactSelectAdapterProps['onChange'] = useCallback(\n (selectedOption: OptionObject | OptionObject[]) => {\n if (!readOnly || disabled) {\n let newValue: string | string[] = null\n if (selectedOption && hasMany) {\n if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value)\n } else {\n newValue = []\n }\n } else if (selectedOption && !Array.isArray(selectedOption)) {\n newValue = selectedOption.value\n }\n\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newValue)\n }\n\n setValue(newValue)\n }\n },\n [readOnly, disabled, hasMany, setValue, onChangeFromProps],\n )\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <SelectInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n Error={Error}\n hasMany={hasMany}\n isClearable={isClearable}\n isSortable={isSortable}\n Label={Label}\n label={label}\n localized={localized}\n name={name}\n onChange={onChange}\n options={options}\n path={path}\n readOnly={readOnly || disabled}\n required={required}\n showError={showError}\n style={styles}\n value={value as string | string[]}\n />\n )\n}\n\nexport const SelectField = withCondition(SelectFieldComponent)\n\nexport { SelectInput, type SelectInputProps }\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
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":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAUA,SAASC,cAAc,QAAQ;AAC/B,SAASC,UAAU,EAAEC,WAAW,QAAQ;AACxC,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ;AAExD,SAASC,cAAc,QAAQ;AAC/B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,aAAa,QAAQ;AAC9B,SAASC,YAAY,QAAQ;AAC7B,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,eAAe,QAAQ;AAChC,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,cAAc,QAAQ;AAC/B,SAASC,YAAY,QAAQ;AAC7B,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,SAASF,YAAY;AAErB,SAASG,gBAAgB;EAAEC,eAAe;EAAEC;AAAI,CAAgD;EAC9F,IAAIC,OAAA,GAAUD,IAAA;EAEd,IAAItB,UAAA,CAAWqB,eAAA,KAAoBA,eAAA,CAAgBG,IAAI,EAAE;IACvD,IAAIF,IAAA,EAAM;MACRC,OAAA,GAAU,GAAGD,IAAA,IAAQD,eAAA,CAAgBG,IAAI,EAAE;IAC7C,OAAO;MACLD,OAAA,GAAUF,eAAA,CAAgBG,IAAI;IAChC;EACF;EAEA,OAAOD,OAAA;AACT;AAEA,MAAME,kBAAA,GAA+CC,KAAA;EAAA,MAAAC,CAAA,GAAA7B,EAAA;EACnD;IAAA8B,KAAA,EAAAC,EAAA;IAAAC,WAAA,EAAAC,EAAA;IAAAC,SAAA,EAAAC,EAAA;IAAAC,UAAA,EAAAC,EAAA;IAAAC,gBAAA,EAAAC,EAAA;IAAAf,IAAA,EAAAgB,EAAA;IAAAC,WAAA;IAAAC;EAAA,IASId,KAAA;EARK;IAAAe,KAAA,EAAAC,EAAA;IAAAC,IAAA,EAAAC;EAAA,IAAAf,EAAwC;EAAA,IAAAgB,EAAA;EAAA,IAAAlB,CAAA,QAAAe,EAAA;IAA/BG,EAAA,GAAAH,EAAkB,KAAAI,SAAA,QAAlBJ,EAAkB;IAAAf,CAAA,MAAAe,EAAA;IAAAf,CAAA,MAAAkB,EAAA;EAAA;IAAAA,EAAA,GAAAlB,CAAA;EAAA;EAAlB;IAAAoB;EAAA,IAAAF,EAAkB;EAAA,IAAAG,EAAA;EAAA,IAAArB,CAAA,QAAAiB,EAAA;IAAEI,EAAA,GAAAJ,EAAS,KAAAE,SAAA,QAATF,EAAS;IAAAjB,CAAA,MAAAiB,EAAA;IAAAjB,CAAA,MAAAqB,EAAA;EAAA;IAAAA,EAAA,GAAArB,CAAA;EAAA;EAAT,MAAAgB,IAAA,GAAAK,EAAS;EAC7C,MAAAlB,WAAA,GAAAC,EAAmB,KAAAe,SAAA,WAAnBf,EAAmB;EACnB,MAAAC,SAAA,GAAAC,EAAc,KAAAa,SAAA,GAAF,EAAE,GAAdb,EAAc;EACd,MAAAC,UAAA,GAAAC,EAAe,KAAAW,SAAA,GAAF,EAAE,GAAfX,EAAe;EACf,MAAAC,gBAAA,GAAAC,EAAqB,KAAAS,SAAA,GAAF,EAAE,GAArBT,EAAqB;EACrB,MAAAf,IAAA,GAAAgB,EAAS,KAAAQ,SAAA,GAAF,EAAE,GAATR,EAAS;EAKX;IAAAW,aAAA;IAAAC;EAAA,IAAyCrC,cAAA;EACzC;IAAAsC;EAAA,IAA2BvC,eAAA;EAC3B;IAAAwC;EAAA,IAAiBtC,cAAA;EACjB;IAAAuC;EAAA,IAAgC/C,cAAA;EAAA,IAAAgD,GAAA;EAAA,IAAA3B,CAAA,QAAAgB,IAAA;IAEAW,GAAA,GAAAC,GAAA;MAAC,OAAAC,MAAA,IAAAD,GAAQ;MAAA,OAChCZ,IAAA,CAAAc,GAAA,EAAAC,GAAA,EAAAC,KAAA;QACL,MAAAC,EAAA,GAAWF,GAAA,EAAAE,EAAA;QAAK;UAAAD,KAAA;UAAAE,eAAA,EAIGL,MAAA,GAASI,EAAA,GAAAC,eAAA,QAAwB;UAAAH;QAAA;MAAA,CAGtD;IAAA;IACF/B,CAAA,MAAAgB,IAAA;IAAAhB,CAAA,MAAA2B,GAAA;EAAA;IAAAA,GAAA,GAAA3B,CAAA;EAAA;EAVA,MAAAmC,SAAA,GAAkBtD,aAAA,CAAc8C,GAUhC;EAAA,IAAAC,GAAA;EAAA,IAAA5B,CAAA,QAAAmC,SAAA;IAGEP,GAAA,GAAAA,CAAA,KAAMO,SAAA,CAAAC,MAAA,CAAAC,KAA0C,QAAAL,KAAA,KAAgC;IAAAhC,CAAA,MAAAmC,SAAA;IAAAnC,CAAA,MAAA4B,GAAA;EAAA;IAAAA,GAAA,GAAA5B,CAAA;EAAA;EADlF,OAAAsC,cAAA,EAAAC,iBAAA,IAA4C7D,QAAA,CAC1CkD,GAAgF;EAGlF,MAAAY,WAAA,GAAoB,QAAQnC,SAAA,EAAW;EAAA,IAAAoC,GAAA;EAAA,IAAAzC,CAAA,QAAAsC,cAAA,IAAAtC,CAAA,QAAAO,UAAA,IAAAP,CAAA,SAAAgB,IAAA;IACoByB,GAAA,GAAAA,CAAA,KACzDhD,eAAA;MAAAC,eAAA,EAAmCsB,IAAI,CAACsB,cAAA;MAAA3C,IAAA,EAAuBY;IAAA,CAAW;IAAAP,CAAA,MAAAsC,cAAA;IAAAtC,CAAA,MAAAO,UAAA;IAAAP,CAAA,OAAAgB,IAAA;IAAAhB,CAAA,OAAAyC,GAAA;EAAA;IAAAA,GAAA,GAAAzC,CAAA;EAAA;EAD5E,OAAA0C,aAAA,EAAAC,gBAAA,IAA0CjE,QAAA,CAAiB+D,GACiB;EAAA,IAAAG,GAAA;EAAA,IAAA5C,CAAA,SAAAS,gBAAA,IAAAT,CAAA,SAAAgB,IAAA;IAGL4B,GAAA,GAAAA,CAAA,KACrEnD,eAAA;MAAAC,eAAA,EAAmCsB,IAAI;MAAArB,IAAA,EAAWc;IAAA,CAAiB;IAAAT,CAAA,OAAAS,gBAAA;IAAAT,CAAA,OAAAgB,IAAA;IAAAhB,CAAA,OAAA4C,GAAA;EAAA;IAAAA,GAAA,GAAA5C,CAAA;EAAA;EADrE,OAAA6C,mBAAA,EAAAC,sBAAA,IAAsDpE,QAAA,CAAiBkE,GACF;EAAA,IAAAG,GAAA;EAAA,IAAA/C,CAAA,SAAAsC,cAAA,IAAAtC,CAAA,SAAA0C,aAAA,IAAA1C,CAAA,SAAAO,UAAA,IAAAP,CAAA,SAAAgB,IAAA;IAGtC+B,GAAA,GAAA1E,UAAA,CAAW2C,IAAI,CAACsB,cAAA,CAAe,IAAII,aAAA,GAAgBnC,UAAA;IAAAP,CAAA,OAAAsC,cAAA;IAAAtC,CAAA,OAAA0C,aAAA;IAAA1C,CAAA,OAAAO,UAAA;IAAAP,CAAA,OAAAgB,IAAA;IAAAhB,CAAA,OAAA+C,GAAA;EAAA;IAAAA,GAAA,GAAA/C,CAAA;EAAA;EAAlF,MAAAgD,sBAAA,GAA+BD,GAAmD;EAClF,MAAAE,aAAA,GAAsBd,SAAS,CAACG,cAAA;EAChC,MAAA5C,eAAA,GAAwBuD,aAAA,EAAAlB,GAAA;EAAe,IAAAmB,GAAA;EAAA,IAAAlD,CAAA,SAAAsC,cAAA,IAAAtC,CAAA,SAAA6C,mBAAA,IAAA7C,CAAA,SAAAS,gBAAA,IAAAT,CAAA,SAAAgB,IAAA;IACFkC,GAAA,GAAA7E,UAAA,CAAW2C,IAAI,CAACsB,cAAA,CAAe,IAChEO,mBAAA,GACApC,gBAAA;IAAAT,CAAA,OAAAsC,cAAA;IAAAtC,CAAA,OAAA6C,mBAAA;IAAA7C,CAAA,OAAAS,gBAAA;IAAAT,CAAA,OAAAgB,IAAA;IAAAhB,CAAA,OAAAkD,GAAA;EAAA;IAAAA,GAAA,GAAAlD,CAAA;EAAA;EAFJ,MAAAmD,4BAAA,GAAqCD,GAEjC;EAEJ,MAAAE,oBAAA,GAA6B1D,eAAA,CAAAoB,KAAA,EAAAuC,WAAA,IAAsC3D,eAAA,CAAA2D,WAA2B;EAAA,IAAAC,GAAA;EAAA,IAAAtD,CAAA,SAAAoD,oBAAA,IAAApD,CAAA,SAAAyB,IAAA;IAG5F6B,GAAA,UAAOF,oBAAA,KAAyB,aAC5BA,oBAAA;MAAAG,CAAA,EAA0B9B,IAAA,CAAA8B;IAAA,CAAO,IACjCH,oBAAA;IAAApD,CAAA,OAAAoD,oBAAA;IAAApD,CAAA,OAAAyB,IAAA;IAAAzB,CAAA,OAAAsD,GAAA;EAAA;IAAAA,GAAA,GAAAtD,CAAA;EAAA;EAHN,MAAAwD,0BAAA,GACEF,GAEI;EAEN,MAAAG,cAAA,GAAuBtB,SAAA,CAAAuB,IAAA,CAAAC,MAAwC;EAAA,IAAAC,GAAA;EAAA,IAAA5D,CAAA,SAAAsB,aAAA,IAAAtB,CAAA,SAAAO,UAAA,IAAAP,CAAA,SAAAS,gBAAA,IAAAT,CAAA,SAAAL,IAAA,IAAAK,CAAA,SAAAwB,cAAA,IAAAxB,CAAA,SAAAuB,aAAA,IAAAvB,CAAA,SAAAgB,IAAA,IAAAhB,CAAA,SAAAwC,WAAA;IAG7DoB,GAAA,SAAAC,gBAAA;MACEtB,iBAAA,CAAkBsB,gBAAA;MAElBlB,gBAAA,CACElD,eAAA;QAAAC,eAAA,EAAmCsB,IAAI,CAAC6C,gBAAA;QAAAlE,IAAA,EAAyBY;MAAA,CAAW;MAE9EuC,sBAAA,CACErD,eAAA;QAAAC,eAAA,EAAmCsB,IAAI,CAAC6C,gBAAA;QAAAlE,IAAA,EAAyBc;MAAA,CAAiB;MAGpF,MAAAqD,mBAAA,SAAuDxC,aAAA,CAAcE,cAAA;MAAA,IAEjEA,cAAA;QACGD,aAAA,CAAcC,cAAA;UAAA,GACdsC,mBAAmB;UAAA,IAClBnE,IAAA;YAAAkC,MAAA;cAAA,IAGQiC,mBAAA,EAAAjC,MAAA,MAAiC;cAAA,CACpClC,IAAA;gBAAA,GACImE,mBAAA,EAAAjC,MAAA,GAA8BlC,IAAA;gBAAAoE,QAAA,EACvBF;cAAA;YAAA;UAAA;YAAAhC,MAAA;cAAA,GAMTiC,mBAAA,EAAAjC,MAAA;cAAA,CACFW,WAAA;gBAAA,GACIsB,mBAAA,EAAAjC,MAAA,GAA8BW,WAAA;gBAAAuB,QAAA,EACvBF;cAAA;YAAA;UAAA,CAGf;QAAA,CACP;MAAA;IAAA;IAEJ7D,CAAA,OAAAsB,aAAA;IAAAtB,CAAA,OAAAO,UAAA;IAAAP,CAAA,OAAAS,gBAAA;IAAAT,CAAA,OAAAL,IAAA;IAAAK,CAAA,OAAAwB,cAAA;IAAAxB,CAAA,OAAAuB,aAAA;IAAAvB,CAAA,OAAAgB,IAAA;IAAAhB,CAAA,OAAAwC,WAAA;IAAAxC,CAAA,OAAA4D,GAAA;EAAA;IAAAA,GAAA,GAAA5D,CAAA;EAAA;EArCF,MAAAgE,eAAA,GAAwBJ,GA+CrB;EAAA,IAAAK,GAAA;EAAA,IAAAC,GAAA;EAAA,IAAAlE,CAAA,SAAAsB,aAAA,IAAAtB,CAAA,SAAAO,UAAA,IAAAP,CAAA,SAAAS,gBAAA,IAAAT,CAAA,SAAAL,IAAA,IAAAK,CAAA,SAAAwB,cAAA,IAAAxB,CAAA,SAAAgB,IAAA,IAAAhB,CAAA,SAAAwC,WAAA;IAGOyB,GAAA,GAAAA,CAAA;MAAA,IACJzC,cAAA;QACF,MAAA2C,cAAA,SAAAA,CAAA;UACE,MAAAC,qBAAA,SAAuD9C,aAAA,CAAcE,cAAA;UACrE,MAAA6C,YAAA,GAAqB1E,IAAA,GACjBmE,qBAAA,EAAAjC,MAAA,GAA8BlC,IAAA,GAAAoE,QAAA,GAC9BD,qBAAA,EAAAjC,MAAA,GAA8BW,WAAA,GAAAuB,QAAc;UAEhD,MAAAO,QAAA,GAAiBD,YAAA,KAAgB;UACjC9B,iBAAA,CAAkB+B,QAAA;UAElB3B,gBAAA,CAAiBlD,eAAA;YAAAC,eAAA,EAAmCsB,IAAI,CAACsD,QAAA;YAAA3E,IAAA,EAAiBY;UAAA,CAAW;UACrFuC,sBAAA,CACErD,eAAA;YAAAC,eAAA,EAAmCsB,IAAI,CAACsD,QAAA;YAAA3E,IAAA,EAAiBc;UAAA,CAAiB;QAAA;QAGzE0D,cAAA;MAAA;IAAA;IAEND,GAAA,IAACvE,IAAA,EAAM2B,aAAA,EAAeE,cAAA,EAAgBgB,WAAA,EAAaxB,IAAA,EAAMT,UAAA,EAAYE,gBAAA;IAAiBT,CAAA,OAAAsB,aAAA;IAAAtB,CAAA,OAAAO,UAAA;IAAAP,CAAA,OAAAS,gBAAA;IAAAT,CAAA,OAAAL,IAAA;IAAAK,CAAA,OAAAwB,cAAA;IAAAxB,CAAA,OAAAgB,IAAA;IAAAhB,CAAA,OAAAwC,WAAA;IAAAxC,CAAA,OAAAiE,GAAA;IAAAjE,CAAA,OAAAkE,GAAA;EAAA;IAAAD,GAAA,GAAAjE,CAAA;IAAAkE,GAAA,GAAAlE,CAAA;EAAA;EAlBzFvB,SAAA,CAAUwF,GAkBV,EAAGC,GAAsF;EAAA,IAAAK,GAAA;EAAA,IAAAvE,CAAA,SAAAiD,aAAA,EAAAf,eAAA,IAAAlC,CAAA,SAAAgE,eAAA,IAAAhE,CAAA,SAAAmC,SAAA;IAE/EoC,GAAA,GAAAA,CAAA;MAAA,IACJtB,aAAA,EAAAf,eAAA,UAAmC;QACrC,MAAAsC,OAAA,GAAgBrC,SAAA,CAAAsC,IAAA,CAAAC,MAAwC;QAAA,IACpDF,OAAA;UACGR,eAAA,CAAgBQ,OAAA,CAAAxC,KAAa;QAAA;MAAA;IAAA;IAGxChC,CAAA,OAAAiD,aAAA,EAAAf,eAAA;IAAAlC,CAAA,OAAAgE,eAAA;IAAAhE,CAAA,OAAAmC,SAAA;IAAAnC,CAAA,OAAAuE,GAAA;EAAA;IAAAA,GAAA,GAAAvE,CAAA;EAAA;EAAA,IAAA2E,GAAA;EAAA,IAAA3E,CAAA,SAAAiD,aAAA,IAAAjD,CAAA,SAAAgE,eAAA,IAAAhE,CAAA,SAAAmC,SAAA;IAAGwC,GAAA,IAAC1B,aAAA,EAAed,SAAA,EAAW6B,eAAA;IAAgBhE,CAAA,OAAAiD,aAAA;IAAAjD,CAAA,OAAAgE,eAAA;IAAAhE,CAAA,OAAAmC,SAAA;IAAAnC,CAAA,OAAA2E,GAAA;EAAA;IAAAA,GAAA,GAAA3E,CAAA;EAAA;EAP9CvB,SAAA,CAAU8F,GAOV,EAAGI,GAA2C;EAQxC,MAAAC,GAAA,GAAAlD,mBAAA,IAAuB,GAAAlC,SAAA,sBAAkC;EACzD,MAAAqF,GAAA,IAACpB,cAAA,IAAkB,GAAAjE,SAAA,UAAsB;EAAA,IAAAsF,GAAA;EAAA,IAAA9E,CAAA,SAAAoB,SAAA,IAAApB,CAAA,SAAA4E,GAAA,IAAA5E,CAAA,SAAA6E,GAAA;IALhCC,GAAA,IAAAzF,cAAA,EAET+B,SAAA,EAAA5B,SAAA,EAEAoF,GAAyD,EACzDC,GAAyC,EAAAzC,MAAA,CAAA2C,OAEjC;IAAA/E,CAAA,OAAAoB,SAAA;IAAApB,CAAA,OAAA4E,GAAA;IAAA5E,CAAA,OAAA6E,GAAA;IAAA7E,CAAA,OAAA8E,GAAA;EAAA;IAAAA,GAAA,GAAA9E,CAAA;EAAA;EAPC,MAAAgF,GAAA,GAAAF,GAOD,CAAAG,IAAA,CACF;EAAA,IAAAC,GAAA;EAAA,IAAAlF,CAAA,SAAAgD,sBAAA,IAAAhD,CAAA,SAAAmD,4BAAA,IAAAnD,CAAA,SAAAN,eAAA,IAAAM,CAAA,SAAAsC,cAAA,IAAAtC,CAAA,SAAAiD,aAAA,IAAAjD,CAAA,SAAA0C,aAAA,IAAA1C,CAAA,SAAAwD,0BAAA,IAAAxD,CAAA,SAAAG,WAAA,IAAAH,CAAA,SAAAgE,eAAA,IAAAhE,CAAA,SAAAK,SAAA,IAAAL,CAAA,SAAAL,IAAA,IAAAK,CAAA,SAAAY,WAAA,IAAAZ,CAAA,SAAAa,QAAA,IAAAb,CAAA,SAAAgF,GAAA,IAAAhF,CAAA,SAAAmC,SAAA;IAAA,IAAAgD,GAAA;IAAA,IAAAnF,CAAA,SAAAsC,cAAA,IAAAtC,CAAA,SAAAgE,eAAA,IAAAhE,CAAA,SAAAL,IAAA;MAKawF,GAAA,GAAAC,GAAA;QAAC;UAAApD,KAAA,EAAAqD,OAAA;UAAAnD,eAAA,EAAAoD,iBAAA;UAAAvD,GAAA,EAAAwD;QAAA,IAAAH,GAA+B;QAAA,OAC7CI,IAAA,CAAAjG,YAAA;UAAAkG,MAAA,GACWvD,iBAAA;UAAAwD,QAAA,EACCpD,cAAA,KAAmBN,OAAA;UAAAzB,UAAA,EAEjBZ,IAAA;UAAAgG,WAAA,EAAAA,CAAA;YAEL3B,eAAA,CAAgBhC,OAAA;UAAA;UAAAD,GAAA,EAElBA;QAAA,GALAC,OAAA;MAAA;MAAAhC,CAAA,OAAAsC,cAAA;MAAAtC,CAAA,OAAAgE,eAAA;MAAAhE,CAAA,OAAAL,IAAA;MAAAK,CAAA,OAAAmF,GAAA;IAAA;MAAAA,GAAA,GAAAnF,CAAA;IAAA;IAAA,IAAAoF,GAAA;IAAA,IAAApF,CAAA,SAAAgD,sBAAA,IAAAhD,CAAA,SAAAmD,4BAAA,IAAAnD,CAAA,SAAAN,eAAA,IAAAM,CAAA,SAAAiD,aAAA,IAAAjD,CAAA,SAAA0C,aAAA,IAAA1C,CAAA,SAAAwD,0BAAA,IAAAxD,CAAA,SAAAG,WAAA,IAAAH,CAAA,SAAAK,SAAA,IAAAL,CAAA,SAAAY,WAAA,IAAAZ,CAAA,SAAAa,QAAA;MAWVuE,GAAA,GAAA1F,eAAA,IACC8F,IAAA,CAAAI,UAAA;QAAAvC,WAAA,EACeG,0BAAA;QAAA3B,MAAA,EACLnC,eAAA,CAAAmC,MAAA;QAAA1B,WAAA;QAAAsF,MAAA;QAAAI,eAAA,EAINxH,UAAA,CAAWqB,eAAA,IACP,KACA,GAAGW,SAAA,GAAYA,SAAA,GAAY,MAAM,IAAI,GAAGyF,MAAA,CAAO7C,aAAA,CAAAjB,KAAmB;QAAAzB,UAAA,EAE5DyC,sBAAA;QAAAvC,gBAAA,EACM0C,4BAAA;QAAAxD,IAAA,EACZ+C,aAAA;QAAA9B,WAAA,EAEJA,WAAA,IAAe,OAAOA,WAAA,KAAgB,YAAY,UAAUlB,eAAA,GACxDkB,WAAW,CAAClB,eAAA,CAAAG,IAAA,KACZ,OAAOe,WAAW,CAAClB,eAAA,CAAAG,IAAA,MAA0B,YAC7C,YAAYe,WAAW,CAAClB,eAAA,CAAAG,IAAA,CAAqB,GAC3Ce,WAAW,CAAClB,eAAA,CAAAG,IAAA,EAAAgC,MAAA,GACZjB,WAAW,CAAClB,eAAA,CAAAG,IAAA,CAAqB,GACnCe,WAAA;QAAAC;MAAA,C;;;;;;;;;;;;;;;IAlDhBqE,GAAA,GAAAM,IAAA,CAAC;MAAApE,SAAA,EACY4D,GAQH;MAAAe,QAAA,EAERC,KAAA,CAAA1G,YAAA;QAAAyG,QAAA,GACEP,IAAA,CAAC;UAAApE,SAAA,EAAe,GAAA5B,SAAA,aAAyB;UAAAuG,QAAA,EACvCP,IAAA,CAAC;YAAApE,SAAA,EAAe,GAAA5B,SAAA,QAAoB;YAAAuG,QAAA,EACjC5D,SAAA,CAAAL,GAAA,CAAcqD,GAIN;UAAA,C;YAUbK,IAAA,CAAC;UAAApE,SAAA,EAAe,GAAA5B,SAAA,gBAA4B;UAAAuG,QAAA,EACzCX;;;;;;;;;;;;;;;;;;;;;;;SA7BPF,G;CA2DJ;AAEA,OAAO,MAAMe,SAAA,GAAYjH,aAAA,CAAcc,kBAAA;AAevC,SAAA8F,WAAA1F,EAAA;EAAA,MAAAF,CAAA,GAAA7B,EAAA;EAAoB;IAAAkF,WAAA;IAAAxB,MAAA;IAAA1B,WAAA;IAAAsF,MAAA;IAAAS,KAAA;IAAAL,eAAA;IAAAtF,UAAA;IAAAE,gBAAA;IAAAd,IAAA;IAAAiB,WAAA;IAAAC;EAAA,IAAAX,EAYH;EACf;IAAAuB;EAAA,IAAiBtC,cAAA;EAAA,IAAAiB,EAAA;EAAA,IAAAJ,CAAA,QAAAL,IAAA;IAC2ES,EAAA;MAAAT;IAAA;IAE5FK,CAAA,MAAAL,IAAA;IAAAK,CAAA,MAAAI,EAAA;EAAA;IAAAA,EAAA,GAAAJ,CAAA;EAAA;EAFA;IAAAmG,gBAAA,EAAA7F;EAAA,IAAmFvB,QAAA,CAASqB,EAE5F;EAAA,IAAAI,EAAA;EAAA,IAAAR,CAAA,QAAAM,EAAA;IAF0BE,EAAA,GAAAF,EAAoD,KAAAa,SAAA,QAApDb,EAAoD;IAAAN,CAAA,MAAAM,EAAA;IAAAN,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAApD;IAAAoG,UAAA;IAAAC,WAAA;IAAAC,WAAA;IAAAC;EAAA,IAAA/F,EAAoD;EAAA,IAI1E+F,KAAA;IAAA,OACKA,KAAA;EAAA;EAMH,MAAA7F,EAAA,GAAA+E,MAAA,IAAU,GAAAjG,SAAA,eAA2B;EAErC,MAAAmB,EAAA,GAAAuF,KAAA,IAAS,GAAA1G,SAAA,oBAAgClB,WAAA,CAAYF,cAAA,CAAe8H,KAAA,EAAOzE,IAAA,IAAQ;EAAA,IAAAV,EAAA;EAAA,IAAAf,CAAA,QAAAU,EAAA,IAAAV,CAAA,QAAAW,EAAA;IAH1EI,EAAA,IACTL,EAAqC,EACrC,GAAAlB,SAAA,OAAmB,EACnBmB,EAAmF,EAAAyB,MAAA,CAAA2C,OAE3E;IAAA/E,CAAA,MAAAU,EAAA;IAAAV,CAAA,MAAAW,EAAA;IAAAX,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EALC,MAAAiB,EAAA,GAAAF,EAKD,CAAAkE,IAAA,CACF;EAAA,IAAA/D,EAAA;EAAA,IAAAlB,CAAA,QAAAoG,UAAA,IAAApG,CAAA,QAAAqG,WAAA,IAAArG,CAAA,QAAAsG,WAAA,IAAAtG,CAAA,SAAAqD,WAAA,IAAArD,CAAA,SAAA6B,MAAA,IAAA7B,CAAA,SAAAG,WAAA,IAAAH,CAAA,SAAA6F,eAAA,IAAA7F,CAAA,SAAAO,UAAA,IAAAP,CAAA,SAAAS,gBAAA,IAAAT,CAAA,SAAAL,IAAA,IAAAK,CAAA,SAAAY,WAAA,IAAAZ,CAAA,SAAAa,QAAA,IAAAb,CAAA,SAAAiB,EAAA;IAPVC,EAAA,GAAA8E,KAAA,CAAC;MAAA5E,SAAA,EACYH,EAMH;MAAA8E,QAAA,GAERP,IAAA,CAAA5G,qBAAA;QAAA4H,eAAA,EACmBF,WAAA;QAAAG,QAAA,EAEfjB,IAAA,CAAApG,gBAAA;UAAAiE,WAAA;UAAAqD,eAAA,EAA4D;UAAA/G;QAAA,C;UAG/D0G,WAAA,EACDb,IAAA,CAAA1G,YAAA;QAAA+C,MAAA;QAAA1B,WAAA;QAAA0F,eAAA;QAAAtF,UAAA;QAAAE,gBAAA;QAAAG,WAAA;QAAAC;MAAA,C,GASCuF,UAAA;IAAA,C;;;;;;;;;;;;;;;;;;SAzBHlF,E;;AA7OiD,SAAAmB,MAAAnC,EAAA;EA8BzB;IAAAgC;EAAA,IAAAhC,EAAmB;EAAA,OAAKgC,eAAA;AAAA;AA9BC,SAAAyB,OAAAzD,EAAA;EAwDZ;IAAAgC,eAAA,EAAAyE;EAAA,IAAAzG,EAAmB;EAAA,OAAKgC,iBAAA;AAAA;AAxDZ,SAAAwC,OAAAxE,EAAA;EAkIf;IAAAgC,eAAA,EAAA0E;EAAA,IAAA1G,EAAmB;EAAA,OAAKgC,iBAAA;AAAA","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}\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\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":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Text/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAGxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAQhD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;AAoIpC,eAAO,MAAM,SAAS;wBA/HlB,MAAI,SACJ;yBAA4C,MAAQ,oBAC7C;;;;;+EA6H+C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Text/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAGxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAQhD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,CAAA;AAqIpC,eAAO,MAAM,SAAS;wBAhIlB,MAAI,SACJ;yBAA4C,MAAQ,oBAC7C;;;;;+EA8H+C,CAAA"}
@@ -59,6 +59,7 @@ const TextFieldComponent = props => {
59
59
  Error,
60
60
  Label
61
61
  } = {},
62
+ disabled,
62
63
  setValue,
63
64
  showError,
64
65
  value: value_0
@@ -75,7 +76,7 @@ const TextFieldComponent = props => {
75
76
  const [valueToRender, setValueToRender] = useState([]) // Only for hasMany
76
77
  ;
77
78
  const handleHasManyChange = useCallback(selectedOption => {
78
- if (!readOnly) {
79
+ if (!(readOnly || disabled)) {
79
80
  let newValue;
80
81
  if (!selectedOption) {
81
82
  newValue = [];
@@ -86,7 +87,7 @@ const TextFieldComponent = props => {
86
87
  }
87
88
  setValue(newValue);
88
89
  }
89
- }, [readOnly, setValue]);
90
+ }, [readOnly, setValue, disabled]);
90
91
  // useEffect update valueToRender:
91
92
  useEffect(() => {
92
93
  if (hasMany && Array.isArray(value_0)) {
@@ -123,7 +124,7 @@ const TextFieldComponent = props => {
123
124
  },
124
125
  path: path,
125
126
  placeholder: placeholder,
126
- readOnly: readOnly,
127
+ readOnly: readOnly || disabled,
127
128
  required: required,
128
129
  rtl: renderRTL,
129
130
  showError: showError,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useEffect","useMemo","useState","useField","withCondition","useConfig","useLocale","mergeFieldStyles","isFieldRTL","TextInput","TextFieldComponent","props","field","admin","className","description","placeholder","rtl","hasMany","label","localized","maxLength","maxRows","minLength","minRows","required","inputRef","path","readOnly","validate","locale","config","localization","localizationConfig","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","setValue","showError","renderRTL","fieldLocalized","fieldRTL","undefined","valueToRender","setValueToRender","handleHasManyChange","selectedOption","newValue","Array","isArray","map","option","val","index","id","toString","styles","_jsx","onChange","e","target","style","TextField"],"sources":["../../../src/fields/Text/index.tsx"],"sourcesContent":["'use client'\nimport type { TextFieldClientComponent } from 'payload'\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { Option } from '../../elements/ReactSelect/types.js'\nimport type { TextInputProps } from './types.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { isFieldRTL } from '../shared/index.js'\nimport { TextInput } from './Input.js'\nimport './index.scss'\n\nexport { TextInput, TextInputProps }\n\nconst TextFieldComponent: TextFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { className, description, placeholder, rtl } = {},\n hasMany,\n label,\n localized,\n maxLength,\n maxRows,\n minLength,\n minRows,\n required,\n },\n inputRef,\n path,\n readOnly,\n validate,\n } = props\n\n const locale = useLocale()\n\n const {\n config: { localization: localizationConfig },\n } = useConfig()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxLength, minLength, required })\n }\n },\n [validate, minLength, maxLength, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n setValue,\n showError,\n value,\n } = useField({\n path,\n validate: memoizedValidate,\n })\n\n const renderRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localizationConfig || undefined,\n })\n\n const [valueToRender, setValueToRender] = useState<\n { id: string; label: string; value: { value: number } }[]\n >([]) // Only for hasMany\n\n const handleHasManyChange = useCallback(\n (selectedOption) => {\n if (!readOnly) {\n let newValue\n if (!selectedOption) {\n newValue = []\n } else if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value?.value || option.value)\n } else {\n newValue = [selectedOption.value?.value || selectedOption.value]\n }\n\n setValue(newValue)\n }\n },\n [readOnly, setValue],\n )\n\n // useEffect update valueToRender:\n useEffect(() => {\n if (hasMany && Array.isArray(value)) {\n setValueToRender(\n value.map((val, index) => {\n return {\n id: `${val}${index}`, // append index to avoid duplicate keys but allow duplicate numbers\n label: `${val}`,\n value: {\n // React-select automatically uses \"label-value\" as a key, so we will get that react duplicate key warning if we just pass in the value as multiple values can be the same. So we need to append the index to the toString() of the value to avoid that warning, as it uses that as the key.\n toString: () => `${val}${index}`,\n value: val?.value || val,\n },\n }\n }),\n )\n }\n }, [value, hasMany])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <TextInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n Error={Error}\n hasMany={hasMany}\n inputRef={inputRef}\n Label={Label}\n label={label}\n localized={localized}\n maxRows={maxRows}\n minRows={minRows}\n onChange={\n hasMany\n ? handleHasManyChange\n : (e) => {\n setValue(e.target.value)\n }\n }\n path={path}\n placeholder={placeholder}\n readOnly={readOnly}\n required={required}\n rtl={renderRTL}\n showError={showError}\n style={styles}\n value={(value as string) || ''}\n valueToRender={valueToRender as Option[]}\n />\n )\n}\n\nexport const TextField = withCondition(TextFieldComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useEffect","useMemo","useState","useField","withCondition","useConfig","useLocale","mergeFieldStyles","isFieldRTL","TextInput","TextFieldComponent","props","field","admin","className","description","placeholder","rtl","hasMany","label","localized","maxLength","maxRows","minLength","minRows","required","inputRef","path","readOnly","validate","locale","config","localization","localizationConfig","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","renderRTL","fieldLocalized","fieldRTL","undefined","valueToRender","setValueToRender","handleHasManyChange","selectedOption","newValue","Array","isArray","map","option","val","index","id","toString","styles","_jsx","onChange","e","target","style","TextField"],"sources":["../../../src/fields/Text/index.tsx"],"sourcesContent":["'use client'\nimport type { TextFieldClientComponent } from 'payload'\n\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { Option } from '../../elements/ReactSelect/types.js'\nimport type { TextInputProps } from './types.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { isFieldRTL } from '../shared/index.js'\nimport { TextInput } from './Input.js'\nimport './index.scss'\n\nexport { TextInput, TextInputProps }\n\nconst TextFieldComponent: TextFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { className, description, placeholder, rtl } = {},\n hasMany,\n label,\n localized,\n maxLength,\n maxRows,\n minLength,\n minRows,\n required,\n },\n inputRef,\n path,\n readOnly,\n validate,\n } = props\n\n const locale = useLocale()\n\n const {\n config: { localization: localizationConfig },\n } = useConfig()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxLength, minLength, required })\n }\n },\n [validate, minLength, maxLength, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n setValue,\n showError,\n value,\n } = useField({\n path,\n validate: memoizedValidate,\n })\n\n const renderRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localizationConfig || undefined,\n })\n\n const [valueToRender, setValueToRender] = useState<\n { id: string; label: string; value: { value: number } }[]\n >([]) // Only for hasMany\n\n const handleHasManyChange = useCallback(\n (selectedOption) => {\n if (!(readOnly || disabled)) {\n let newValue\n if (!selectedOption) {\n newValue = []\n } else if (Array.isArray(selectedOption)) {\n newValue = selectedOption.map((option) => option.value?.value || option.value)\n } else {\n newValue = [selectedOption.value?.value || selectedOption.value]\n }\n\n setValue(newValue)\n }\n },\n [readOnly, setValue, disabled],\n )\n\n // useEffect update valueToRender:\n useEffect(() => {\n if (hasMany && Array.isArray(value)) {\n setValueToRender(\n value.map((val, index) => {\n return {\n id: `${val}${index}`, // append index to avoid duplicate keys but allow duplicate numbers\n label: `${val}`,\n value: {\n // React-select automatically uses \"label-value\" as a key, so we will get that react duplicate key warning if we just pass in the value as multiple values can be the same. So we need to append the index to the toString() of the value to avoid that warning, as it uses that as the key.\n toString: () => `${val}${index}`,\n value: val?.value || val,\n },\n }\n }),\n )\n }\n }, [value, hasMany])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <TextInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n Error={Error}\n hasMany={hasMany}\n inputRef={inputRef}\n Label={Label}\n label={label}\n localized={localized}\n maxRows={maxRows}\n minRows={minRows}\n onChange={\n hasMany\n ? handleHasManyChange\n : (e) => {\n setValue(e.target.value)\n }\n }\n path={path}\n placeholder={placeholder}\n readOnly={readOnly || disabled}\n required={required}\n rtl={renderRTL}\n showError={showError}\n style={styles}\n value={(value as string) || ''}\n valueToRender={valueToRender as Option[]}\n />\n )\n}\n\nexport const TextField = withCondition(TextFieldComponent)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Textarea/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgC,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAGpF,OAAO,KAA+B,MAAM,OAAO,CAAA;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAQpD,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAA;AAiF5C,eAAO,MAAM,aAAa;wBA/EA,MAAO,GAAG;yBAC9B,MACF,oBACQ;;;;;+EA4EsD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Textarea/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAgC,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAGpF,OAAO,KAA+B,MAAM,OAAO,CAAA;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAQpD,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAA;AAkF5C,eAAO,MAAM,aAAa;wBAhFA,MAAO,GAAG;yBAC9B,MACF,oBACQ;;;;;+EA6EsD,CAAA"}
@@ -67,6 +67,7 @@ const TextareaFieldComponent = props => {
67
67
  Error,
68
68
  Label
69
69
  } = {},
70
+ disabled,
70
71
  setValue,
71
72
  showError,
72
73
  value: value_0
@@ -90,7 +91,7 @@ const TextareaFieldComponent = props => {
90
91
  },
91
92
  path: path,
92
93
  placeholder: getTranslation(placeholder, i18n),
93
- readOnly: readOnly,
94
+ readOnly: readOnly || disabled,
94
95
  required: required,
95
96
  rows: rows,
96
97
  rtl: isRTL,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","useCallback","useMemo","useField","withCondition","useConfig","useLocale","useTranslation","mergeFieldStyles","isFieldRTL","TextareaInput","TextareaFieldComponent","props","field","admin","className","description","placeholder","rows","rtl","label","localized","maxLength","minLength","required","path","readOnly","validate","i18n","config","localization","locale","isRTL","fieldLocalized","fieldRTL","localizationConfig","undefined","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","setValue","showError","styles","_jsx","onChange","e","target","style","TextareaField"],"sources":["../../../src/fields/Textarea/index.tsx"],"sourcesContent":["'use client'\nimport type { TextareaFieldClientComponent, TextareaFieldValidation } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useMemo } from 'react'\n\nimport type { TextAreaInputProps } from './types.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport './index.scss'\nimport { isFieldRTL } from '../shared/index.js'\nimport { TextareaInput } from './Input.js'\n\nexport { TextareaInput, TextAreaInputProps }\n\nconst TextareaFieldComponent: TextareaFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { className, description, placeholder, rows, rtl } = {},\n label,\n localized,\n maxLength,\n minLength,\n required,\n },\n path,\n readOnly,\n validate,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: { localization },\n } = useConfig()\n\n const locale = useLocale()\n\n const isRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localization || undefined,\n })\n\n const memoizedValidate: TextareaFieldValidation = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxLength, minLength, required })\n }\n },\n [validate, required, maxLength, minLength],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n setValue,\n showError,\n value,\n } = useField<string>({\n path,\n validate: memoizedValidate,\n })\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <TextareaInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n Error={Error}\n Label={Label}\n label={label}\n localized={localized}\n onChange={(e) => {\n setValue(e.target.value)\n }}\n path={path}\n placeholder={getTranslation(placeholder, i18n)}\n readOnly={readOnly}\n required={required}\n rows={rows}\n rtl={isRTL}\n showError={showError}\n style={styles}\n value={value}\n />\n )\n}\n\nexport const TextareaField = withCondition(TextareaFieldComponent)\n"],"mappings":"AAAA;;;AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAI5C,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ;AACjC,OAAO;AACP,SAASC,UAAU,QAAQ;AAC3B,SAASC,aAAa,QAAQ;AAE9B,SAASA,aAAa;AAEtB,MAAMC,sBAAA,GAAwDC,KAAA;EAC5D,MAAM;IACJC,KAAK;IACLA,KAAA,EAAO;MACLC,KAAA,EAAO;QAAEC,SAAS;QAAEC,WAAW;QAAEC,WAAW;QAAEC,IAAI;QAAEC;MAAG,CAAE,GAAG,CAAC,CAAC;MAC9DC,KAAK;MACLC,SAAS;MACTC,SAAS;MACTC,SAAS;MACTC;IAAQ,CACT;IACDC,IAAI;IACJC,QAAQ;IACRC;EAAQ,CACT,GAAGf,KAAA;EAEJ,MAAM;IAAEgB;EAAI,CAAE,GAAGrB,cAAA;EAEjB,MAAM;IACJsB,MAAA,EAAQ;MAAEC;IAAY;EAAE,CACzB,GAAGzB,SAAA;EAEJ,MAAM0B,MAAA,GAASzB,SAAA;EAEf,MAAM0B,KAAA,GAAQvB,UAAA,CAAW;IACvBwB,cAAA,EAAgBZ,SAAA;IAChBa,QAAA,EAAUf,GAAA;IACVY,MAAA;IACAI,kBAAA,EAAoBL,YAAA,IAAgBM;EACtC;EAEA,MAAMC,gBAAA,GAA4CpC,WAAA,CAChD,CAACqC,KAAA,EAAOC,OAAA;IACN,IAAI,OAAOZ,QAAA,KAAa,YAAY;MAClC,OAAOA,QAAA,CAASW,KAAA,EAAO;QAAE,GAAGC,OAAO;QAAEjB,SAAA;QAAWC,SAAA;QAAWC;MAAS;IACtE;EACF,GACA,CAACG,QAAA,EAAUH,QAAA,EAAUF,SAAA,EAAWC,SAAA,CAAU;EAG5C,MAAM;IACJiB,gBAAA,EAAkB;MAAEC,UAAU;MAAEC,WAAW;MAAEC,WAAW;MAAEC,KAAK;MAAEC;IAAK,CAAE,GAAG,CAAC,CAAC;IAC7EC,QAAQ;IACRC,SAAS;IACTT,KAAK,EAALA;EAAK,CACN,GAAGnC,QAAA,CAAiB;IACnBsB,IAAA;IACAE,QAAA,EAAUU;EACZ;EAEA,MAAMW,MAAA,GAAS9C,OAAA,CAAQ,MAAMM,gBAAA,CAAiBK,KAAA,GAAQ,CAACA,KAAA,CAAM;EAE7D,oBACEoC,IAAA,CAACvC,aAAA;IACC+B,UAAA,EAAYA,UAAA;IACZC,WAAA,EAAaA,WAAA;IACb3B,SAAA,EAAWA,SAAA;IACX4B,WAAA,EAAaA,WAAA;IACb3B,WAAA,EAAaA,WAAA;IACb4B,KAAA,EAAOA,KAAA;IACPC,KAAA,EAAOA,KAAA;IACPzB,KAAA,EAAOA,KAAA;IACPC,SAAA,EAAWA,SAAA;IACX6B,QAAA,EAAWC,CAAA;MACTL,QAAA,CAASK,CAAA,CAAEC,MAAM,CAACd,KAAK;IACzB;IACAb,IAAA,EAAMA,IAAA;IACNR,WAAA,EAAalB,cAAA,CAAekB,WAAA,EAAaW,IAAA;IACzCF,QAAA,EAAUA,QAAA;IACVF,QAAA,EAAUA,QAAA;IACVN,IAAA,EAAMA,IAAA;IACNC,GAAA,EAAKa,KAAA;IACLe,SAAA,EAAWA,SAAA;IACXM,KAAA,EAAOL,MAAA;IACPV,KAAA,EAAOA;;AAGb;AAEA,OAAO,MAAMgB,aAAA,GAAgBlD,aAAA,CAAcO,sBAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","useCallback","useMemo","useField","withCondition","useConfig","useLocale","useTranslation","mergeFieldStyles","isFieldRTL","TextareaInput","TextareaFieldComponent","props","field","admin","className","description","placeholder","rows","rtl","label","localized","maxLength","minLength","required","path","readOnly","validate","i18n","config","localization","locale","isRTL","fieldLocalized","fieldRTL","localizationConfig","undefined","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","styles","_jsx","onChange","e","target","style","TextareaField"],"sources":["../../../src/fields/Textarea/index.tsx"],"sourcesContent":["'use client'\nimport type { TextareaFieldClientComponent, TextareaFieldValidation } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useMemo } from 'react'\n\nimport type { TextAreaInputProps } from './types.js'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport './index.scss'\nimport { isFieldRTL } from '../shared/index.js'\nimport { TextareaInput } from './Input.js'\n\nexport { TextareaInput, TextAreaInputProps }\n\nconst TextareaFieldComponent: TextareaFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { className, description, placeholder, rows, rtl } = {},\n label,\n localized,\n maxLength,\n minLength,\n required,\n },\n path,\n readOnly,\n validate,\n } = props\n\n const { i18n } = useTranslation()\n\n const {\n config: { localization },\n } = useConfig()\n\n const locale = useLocale()\n\n const isRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localization || undefined,\n })\n\n const memoizedValidate: TextareaFieldValidation = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxLength, minLength, required })\n }\n },\n [validate, required, maxLength, minLength],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n setValue,\n showError,\n value,\n } = useField<string>({\n path,\n validate: memoizedValidate,\n })\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <TextareaInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n Error={Error}\n Label={Label}\n label={label}\n localized={localized}\n onChange={(e) => {\n setValue(e.target.value)\n }}\n path={path}\n placeholder={getTranslation(placeholder, i18n)}\n readOnly={readOnly || disabled}\n required={required}\n rows={rows}\n rtl={isRTL}\n showError={showError}\n style={styles}\n value={value}\n />\n )\n}\n\nexport const TextareaField = withCondition(TextareaFieldComponent)\n"],"mappings":"AAAA;;;AAGA,SAASA,cAAc,QAAQ;AAC/B,OAAOC,KAAA,IAASC,WAAW,EAAEC,OAAO,QAAQ;AAI5C,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,SAAS,QAAQ;AAC1B,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ;AACjC,OAAO;AACP,SAASC,UAAU,QAAQ;AAC3B,SAASC,aAAa,QAAQ;AAE9B,SAASA,aAAa;AAEtB,MAAMC,sBAAA,GAAwDC,KAAA;EAC5D,MAAM;IACJC,KAAK;IACLA,KAAA,EAAO;MACLC,KAAA,EAAO;QAAEC,SAAS;QAAEC,WAAW;QAAEC,WAAW;QAAEC,IAAI;QAAEC;MAAG,CAAE,GAAG,CAAC,CAAC;MAC9DC,KAAK;MACLC,SAAS;MACTC,SAAS;MACTC,SAAS;MACTC;IAAQ,CACT;IACDC,IAAI;IACJC,QAAQ;IACRC;EAAQ,CACT,GAAGf,KAAA;EAEJ,MAAM;IAAEgB;EAAI,CAAE,GAAGrB,cAAA;EAEjB,MAAM;IACJsB,MAAA,EAAQ;MAAEC;IAAY;EAAE,CACzB,GAAGzB,SAAA;EAEJ,MAAM0B,MAAA,GAASzB,SAAA;EAEf,MAAM0B,KAAA,GAAQvB,UAAA,CAAW;IACvBwB,cAAA,EAAgBZ,SAAA;IAChBa,QAAA,EAAUf,GAAA;IACVY,MAAA;IACAI,kBAAA,EAAoBL,YAAA,IAAgBM;EACtC;EAEA,MAAMC,gBAAA,GAA4CpC,WAAA,CAChD,CAACqC,KAAA,EAAOC,OAAA;IACN,IAAI,OAAOZ,QAAA,KAAa,YAAY;MAClC,OAAOA,QAAA,CAASW,KAAA,EAAO;QAAE,GAAGC,OAAO;QAAEjB,SAAA;QAAWC,SAAA;QAAWC;MAAS;IACtE;EACF,GACA,CAACG,QAAA,EAAUH,QAAA,EAAUF,SAAA,EAAWC,SAAA,CAAU;EAG5C,MAAM;IACJiB,gBAAA,EAAkB;MAAEC,UAAU;MAAEC,WAAW;MAAEC,WAAW;MAAEC,KAAK;MAAEC;IAAK,CAAE,GAAG,CAAC,CAAC;IAC7EC,QAAQ;IACRC,QAAQ;IACRC,SAAS;IACTV,KAAK,EAALA;EAAK,CACN,GAAGnC,QAAA,CAAiB;IACnBsB,IAAA;IACAE,QAAA,EAAUU;EACZ;EAEA,MAAMY,MAAA,GAAS/C,OAAA,CAAQ,MAAMM,gBAAA,CAAiBK,KAAA,GAAQ,CAACA,KAAA,CAAM;EAE7D,oBACEqC,IAAA,CAACxC,aAAA;IACC+B,UAAA,EAAYA,UAAA;IACZC,WAAA,EAAaA,WAAA;IACb3B,SAAA,EAAWA,SAAA;IACX4B,WAAA,EAAaA,WAAA;IACb3B,WAAA,EAAaA,WAAA;IACb4B,KAAA,EAAOA,KAAA;IACPC,KAAA,EAAOA,KAAA;IACPzB,KAAA,EAAOA,KAAA;IACPC,SAAA,EAAWA,SAAA;IACX8B,QAAA,EAAWC,CAAA;MACTL,QAAA,CAASK,CAAA,CAAEC,MAAM,CAACf,KAAK;IACzB;IACAb,IAAA,EAAMA,IAAA;IACNR,WAAA,EAAalB,cAAA,CAAekB,WAAA,EAAaW,IAAA;IACzCF,QAAA,EAAUA,QAAA,IAAYoB,QAAA;IACtBtB,QAAA,EAAUA,QAAA;IACVN,IAAA,EAAMA,IAAA;IACNC,GAAA,EAAKa,KAAA;IACLgB,SAAA,EAAWA,SAAA;IACXM,KAAA,EAAOL,MAAA;IACPX,KAAA,EAAOA;;AAGb;AAEA,OAAO,MAAMiB,aAAA,GAAgBnD,aAAA,CAAcO,sBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAErD,OAAO,KAAkB,MAAM,OAAO,CAAA;AAKtC,OAAO,cAAc,CAAA;AAIrB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,eAAO,MAAM,SAAS,WAAW,CAAA;AAEjC,wBAAgB,eAAe,CAAC,KAAK,EAAE,sBAAsB,qBAwE5D;AAED,eAAO,MAAM,WAAW,kCAAiC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAErD,OAAO,KAAkB,MAAM,OAAO,CAAA;AAKtC,OAAO,cAAc,CAAA;AAIrB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,eAAO,MAAM,SAAS,WAAW,CAAA;AAEjC,wBAAgB,eAAe,CAAC,KAAK,EAAE,sBAAsB,qBAyE5D;AAED,eAAO,MAAM,WAAW,kCAAiC,CAAA"}
@@ -51,6 +51,7 @@ export function UploadComponent(props) {
51
51
  Error,
52
52
  Label
53
53
  } = {},
54
+ disabled,
54
55
  filterOptions,
55
56
  setValue,
56
57
  showError,
@@ -79,7 +80,7 @@ export function UploadComponent(props) {
79
80
  maxRows: maxRows,
80
81
  onChange: setValue,
81
82
  path: path,
82
- readOnly: readOnly,
83
+ readOnly: readOnly || disabled,
83
84
  relationTo: relationTo,
84
85
  required: required,
85
86
  serverURL: config.serverURL,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useMemo","useField","withCondition","useConfig","mergeFieldStyles","UploadInput","baseClass","UploadComponent","props","field","admin","allowCreate","className","description","isSortable","hasMany","label","localized","maxRows","relationTo","required","path","readOnly","validate","config","displayPreview","memoizedValidate","useCallback","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","filterOptions","setValue","showError","styles","_jsx","api","routes","onChange","serverURL","style","UploadField"],"sources":["../../../src/fields/Upload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UploadFieldClientProps } from 'payload'\n\nimport React, { useMemo } from 'react'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport './index.scss'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { UploadInput } from './Input.js'\n\nexport { UploadInput } from './Input.js'\nexport type { UploadInputProps } from './Input.js'\n\nexport const baseClass = 'upload'\n\nexport function UploadComponent(props: UploadFieldClientProps) {\n const {\n field,\n field: {\n admin: { allowCreate, className, description, isSortable } = {},\n hasMany,\n label,\n localized,\n maxRows,\n relationTo,\n required,\n },\n path,\n readOnly,\n validate,\n } = props\n\n const { config } = useConfig()\n\n const displayPreview = field.displayPreview\n\n const memoizedValidate = React.useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n filterOptions,\n setValue,\n showError,\n value,\n } = useField<string | string[]>({\n path,\n validate: memoizedValidate,\n })\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <UploadInput\n AfterInput={AfterInput}\n allowCreate={allowCreate !== false}\n api={config.routes.api}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n displayPreview={displayPreview}\n Error={Error}\n filterOptions={filterOptions}\n hasMany={hasMany}\n isSortable={isSortable}\n label={label}\n Label={Label}\n localized={localized}\n maxRows={maxRows}\n onChange={setValue}\n path={path}\n readOnly={readOnly}\n relationTo={relationTo}\n required={required}\n serverURL={config.serverURL}\n showError={showError}\n style={styles}\n value={value}\n />\n )\n}\n\nexport const UploadField = withCondition(UploadComponent)\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,IAASC,OAAO,QAAQ;AAE/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,SAAS,QAAQ;AAC1B,OAAO;AACP,SAASC,gBAAgB,QAAQ;AACjC,SAASC,WAAW,QAAQ;AAE5B,SAASA,WAAW,QAAQ;AAG5B,OAAO,MAAMC,SAAA,GAAY;AAEzB,OAAO,SAASC,gBAAgBC,KAA6B;EAC3D,MAAM;IACJC,KAAK;IACLA,KAAA,EAAO;MACLC,KAAA,EAAO;QAAEC,WAAW;QAAEC,SAAS;QAAEC,WAAW;QAAEC;MAAU,CAAE,GAAG,CAAC,CAAC;MAC/DC,OAAO;MACPC,KAAK;MACLC,SAAS;MACTC,OAAO;MACPC,UAAU;MACVC;IAAQ,CACT;IACDC,IAAI;IACJC,QAAQ;IACRC;EAAQ,CACT,GAAGf,KAAA;EAEJ,MAAM;IAAEgB;EAAM,CAAE,GAAGrB,SAAA;EAEnB,MAAMsB,cAAA,GAAiBhB,KAAA,CAAMgB,cAAc;EAE3C,MAAMC,gBAAA,GAAmB3B,KAAA,CAAM4B,WAAW,CACxC,CAACC,KAAA,EAAOC,OAAA;IACN,IAAI,OAAON,QAAA,KAAa,YAAY;MAClC,OAAOA,QAAA,CAASK,KAAA,EAAO;QAAE,GAAGC,OAAO;QAAET;MAAS;IAChD;EACF,GACA,CAACG,QAAA,EAAUH,QAAA,CAAS;EAGtB,MAAM;IACJU,gBAAA,EAAkB;MAAEC,UAAU;MAAEC,WAAW;MAAEC,WAAW;MAAEC,KAAK;MAAEC;IAAK,CAAE,GAAG,CAAC,CAAC;IAC7EC,aAAa;IACbC,QAAQ;IACRC,SAAS;IACTV,KAAK,EAALA;EAAK,CACN,GAAG3B,QAAA,CAA4B;IAC9BoB,IAAA;IACAE,QAAA,EAAUG;EACZ;EAEA,MAAMa,MAAA,GAASvC,OAAA,CAAQ,MAAMI,gBAAA,CAAiBK,KAAA,GAAQ,CAACA,KAAA,CAAM;EAE7D,oBACE+B,IAAA,CAACnC,WAAA;IACC0B,UAAA,EAAYA,UAAA;IACZpB,WAAA,EAAaA,WAAA,KAAgB;IAC7B8B,GAAA,EAAKjB,MAAA,CAAOkB,MAAM,CAACD,GAAG;IACtBT,WAAA,EAAaA,WAAA;IACbpB,SAAA,EAAWA,SAAA;IACXqB,WAAA,EAAaA,WAAA;IACbpB,WAAA,EAAaA,WAAA;IACbY,cAAA,EAAgBA,cAAA;IAChBS,KAAA,EAAOA,KAAA;IACPE,aAAA,EAAeA,aAAA;IACfrB,OAAA,EAASA,OAAA;IACTD,UAAA,EAAYA,UAAA;IACZE,KAAA,EAAOA,KAAA;IACPmB,KAAA,EAAOA,KAAA;IACPlB,SAAA,EAAWA,SAAA;IACXC,OAAA,EAASA,OAAA;IACTyB,QAAA,EAAUN,QAAA;IACVhB,IAAA,EAAMA,IAAA;IACNC,QAAA,EAAUA,QAAA;IACVH,UAAA,EAAYA,UAAA;IACZC,QAAA,EAAUA,QAAA;IACVwB,SAAA,EAAWpB,MAAA,CAAOoB,SAAS;IAC3BN,SAAA,EAAWA,SAAA;IACXO,KAAA,EAAON,MAAA;IACPX,KAAA,EAAOA;;AAGb;AAEA,OAAO,MAAMkB,WAAA,GAAc5C,aAAA,CAAcK,eAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useMemo","useField","withCondition","useConfig","mergeFieldStyles","UploadInput","baseClass","UploadComponent","props","field","admin","allowCreate","className","description","isSortable","hasMany","label","localized","maxRows","relationTo","required","path","readOnly","validate","config","displayPreview","memoizedValidate","useCallback","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","filterOptions","setValue","showError","styles","_jsx","api","routes","onChange","serverURL","style","UploadField"],"sources":["../../../src/fields/Upload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UploadFieldClientProps } from 'payload'\n\nimport React, { useMemo } from 'react'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport './index.scss'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { UploadInput } from './Input.js'\n\nexport { UploadInput } from './Input.js'\nexport type { UploadInputProps } from './Input.js'\n\nexport const baseClass = 'upload'\n\nexport function UploadComponent(props: UploadFieldClientProps) {\n const {\n field,\n field: {\n admin: { allowCreate, className, description, isSortable } = {},\n hasMany,\n label,\n localized,\n maxRows,\n relationTo,\n required,\n },\n path,\n readOnly,\n validate,\n } = props\n\n const { config } = useConfig()\n\n const displayPreview = field.displayPreview\n\n const memoizedValidate = React.useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n filterOptions,\n setValue,\n showError,\n value,\n } = useField<string | string[]>({\n path,\n validate: memoizedValidate,\n })\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <UploadInput\n AfterInput={AfterInput}\n allowCreate={allowCreate !== false}\n api={config.routes.api}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n displayPreview={displayPreview}\n Error={Error}\n filterOptions={filterOptions}\n hasMany={hasMany}\n isSortable={isSortable}\n label={label}\n Label={Label}\n localized={localized}\n maxRows={maxRows}\n onChange={setValue}\n path={path}\n readOnly={readOnly || disabled}\n relationTo={relationTo}\n required={required}\n serverURL={config.serverURL}\n showError={showError}\n style={styles}\n value={value}\n />\n )\n}\n\nexport const UploadField = withCondition(UploadComponent)\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,IAASC,OAAO,QAAQ;AAE/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,SAAS,QAAQ;AAC1B,OAAO;AACP,SAASC,gBAAgB,QAAQ;AACjC,SAASC,WAAW,QAAQ;AAE5B,SAASA,WAAW,QAAQ;AAG5B,OAAO,MAAMC,SAAA,GAAY;AAEzB,OAAO,SAASC,gBAAgBC,KAA6B;EAC3D,MAAM;IACJC,KAAK;IACLA,KAAA,EAAO;MACLC,KAAA,EAAO;QAAEC,WAAW;QAAEC,SAAS;QAAEC,WAAW;QAAEC;MAAU,CAAE,GAAG,CAAC,CAAC;MAC/DC,OAAO;MACPC,KAAK;MACLC,SAAS;MACTC,OAAO;MACPC,UAAU;MACVC;IAAQ,CACT;IACDC,IAAI;IACJC,QAAQ;IACRC;EAAQ,CACT,GAAGf,KAAA;EAEJ,MAAM;IAAEgB;EAAM,CAAE,GAAGrB,SAAA;EAEnB,MAAMsB,cAAA,GAAiBhB,KAAA,CAAMgB,cAAc;EAE3C,MAAMC,gBAAA,GAAmB3B,KAAA,CAAM4B,WAAW,CACxC,CAACC,KAAA,EAAOC,OAAA;IACN,IAAI,OAAON,QAAA,KAAa,YAAY;MAClC,OAAOA,QAAA,CAASK,KAAA,EAAO;QAAE,GAAGC,OAAO;QAAET;MAAS;IAChD;EACF,GACA,CAACG,QAAA,EAAUH,QAAA,CAAS;EAGtB,MAAM;IACJU,gBAAA,EAAkB;MAAEC,UAAU;MAAEC,WAAW;MAAEC,WAAW;MAAEC,KAAK;MAAEC;IAAK,CAAE,GAAG,CAAC,CAAC;IAC7EC,QAAQ;IACRC,aAAa;IACbC,QAAQ;IACRC,SAAS;IACTX,KAAK,EAALA;EAAK,CACN,GAAG3B,QAAA,CAA4B;IAC9BoB,IAAA;IACAE,QAAA,EAAUG;EACZ;EAEA,MAAMc,MAAA,GAASxC,OAAA,CAAQ,MAAMI,gBAAA,CAAiBK,KAAA,GAAQ,CAACA,KAAA,CAAM;EAE7D,oBACEgC,IAAA,CAACpC,WAAA;IACC0B,UAAA,EAAYA,UAAA;IACZpB,WAAA,EAAaA,WAAA,KAAgB;IAC7B+B,GAAA,EAAKlB,MAAA,CAAOmB,MAAM,CAACD,GAAG;IACtBV,WAAA,EAAaA,WAAA;IACbpB,SAAA,EAAWA,SAAA;IACXqB,WAAA,EAAaA,WAAA;IACbpB,WAAA,EAAaA,WAAA;IACbY,cAAA,EAAgBA,cAAA;IAChBS,KAAA,EAAOA,KAAA;IACPG,aAAA,EAAeA,aAAA;IACftB,OAAA,EAASA,OAAA;IACTD,UAAA,EAAYA,UAAA;IACZE,KAAA,EAAOA,KAAA;IACPmB,KAAA,EAAOA,KAAA;IACPlB,SAAA,EAAWA,SAAA;IACXC,OAAA,EAASA,OAAA;IACT0B,QAAA,EAAUN,QAAA;IACVjB,IAAA,EAAMA,IAAA;IACNC,QAAA,EAAUA,QAAA,IAAYc,QAAA;IACtBjB,UAAA,EAAYA,UAAA;IACZC,QAAA,EAAUA,QAAA;IACVyB,SAAA,EAAWrB,MAAA,CAAOqB,SAAS;IAC3BN,SAAA,EAAWA,SAAA;IACXO,KAAA,EAAON,MAAA;IACPZ,KAAA,EAAOA;;AAGb;AAEA,OAAO,MAAMmB,WAAA,GAAc7C,aAAA,CAAcK,eAAA","ignoreList":[]}
@@ -370,7 +370,7 @@ export function fieldReducer(state, action) {
370
370
  };
371
371
  }
372
372
  return field;
373
- }, state[action.path] || {});
373
+ }, state?.[action.path] || {});
374
374
  const newState = {
375
375
  ...state,
376
376
  [action.path]: newField
@@ -1 +1 @@
1
- {"version":3,"file":"fieldReducer.js","names":["ObjectIdImport","dequal","deepCopyObjectSimple","deepCopyObjectSimpleWithoutReactComponents","flattenRows","separateRows","ObjectId","default","fieldReducer","state","action","type","blockType","path","rowIndex","rowIndexFromArgs","subFieldState","rows","length","withNewRow","newRow","id","value","toHexString","undefined","collapsed","isLoading","splice","initialValue","valid","remainingFields","siblingRows","newState","passesCondition","requiresRender","disableFormData","errorPaths","errors","forEach","message","fieldPath","errorMessage","segments","split","push","fieldErrorPath","parentPath","slice","join","Object","entries","reduce","acc","fieldState","fieldErrorPaths","errorACC","startsWith","changed","newErrorPaths","Array","isArray","includes","rowsMetadata","duplicateRowMetadata","duplicateRowState","key","keys","filter","endsWith","idState","isValid","moveFromIndex","moveToIndex","topLevelRows","copyOfMovingRow","rowsWithinField","copyOfMovingRow2","customComponents","RowLabels","copyOfMovingLabel","rowIndexArg","Math","max","min","optimize","newField","oldField","sanitize","field","values","updatedRows","formState"],"sources":["../../../src/forms/Form/fieldReducer.ts"],"sourcesContent":["'use client'\nimport type { FormField, FormState, Row } from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { deepCopyObjectSimple, deepCopyObjectSimpleWithoutReactComponents } from 'payload/shared'\n\nimport type { FieldAction } from './types.js'\n\nimport { flattenRows, separateRows } from './rows.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\n/**\n * Reducer which modifies the form field state (all the current data of the fields in the form). When called using dispatch, it will return a new state object.\n */\nexport function fieldReducer(state: FormState, action: FieldAction): FormState {\n switch (action.type) {\n case 'ADD_ROW': {\n const { blockType, path, rowIndex: rowIndexFromArgs, subFieldState = {} } = action\n\n const rowIndex =\n typeof rowIndexFromArgs === 'number' ? rowIndexFromArgs : state[path]?.rows?.length || 0\n\n const withNewRow = [...(state[path]?.rows || [])]\n\n const newRow: Row = {\n id: (subFieldState?.id?.value as string) || new ObjectId().toHexString(),\n blockType: blockType || undefined,\n collapsed: false,\n isLoading: true,\n }\n\n withNewRow.splice(rowIndex, 0, newRow)\n\n if (blockType) {\n subFieldState.blockType = {\n initialValue: blockType,\n valid: true,\n value: blockType,\n }\n }\n\n // add new row to array _field state_\n const { remainingFields, rows: siblingRows } = separateRows(path, state)\n\n siblingRows.splice(rowIndex, 0, subFieldState)\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [`${path}.${rowIndex}.id`]: {\n initialValue: newRow.id,\n passesCondition: true,\n requiresRender: true,\n valid: true,\n value: newRow.id,\n },\n [path]: {\n ...state[path],\n disableFormData: true,\n requiresRender: true,\n rows: withNewRow,\n value: siblingRows.length,\n },\n }\n\n return newState\n }\n\n case 'ADD_SERVER_ERRORS': {\n let newState = { ...state }\n\n const errorPaths: { fieldErrorPath: string; parentPath: string }[] = []\n\n action.errors.forEach(({ message, path: fieldPath }) => {\n newState[fieldPath] = {\n ...(newState[fieldPath] || {\n initialValue: null,\n value: null,\n }),\n errorMessage: message,\n valid: false,\n }\n\n const segments = fieldPath.split('.')\n if (segments.length > 1) {\n errorPaths.push({\n fieldErrorPath: fieldPath,\n parentPath: segments.slice(0, segments.length - 1).join('.'),\n })\n }\n })\n\n newState = Object.entries(newState).reduce((acc, [path, fieldState]) => {\n const fieldErrorPaths = errorPaths.reduce((errorACC, { fieldErrorPath, parentPath }) => {\n if (parentPath.startsWith(path)) {\n errorACC.push(fieldErrorPath)\n }\n return errorACC\n }, [])\n\n let changed = false\n\n if (fieldErrorPaths.length > 0) {\n const newErrorPaths = Array.isArray(fieldState.errorPaths) ? fieldState.errorPaths : []\n\n fieldErrorPaths.forEach((fieldErrorPath) => {\n if (!newErrorPaths.includes(fieldErrorPath)) {\n newErrorPaths.push(fieldErrorPath)\n changed = true\n }\n })\n\n if (changed) {\n acc[path] = {\n ...fieldState,\n errorPaths: newErrorPaths,\n }\n }\n }\n\n if (!changed) {\n acc[path] = fieldState\n }\n\n return acc\n }, {})\n\n return newState\n }\n\n case 'DUPLICATE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n const rowsMetadata = [...(state[path].rows || [])]\n\n const duplicateRowMetadata = deepCopyObjectSimple(rowsMetadata[rowIndex])\n if (duplicateRowMetadata.id) {\n duplicateRowMetadata.id = new ObjectId().toHexString()\n }\n\n const duplicateRowState = deepCopyObjectSimpleWithoutReactComponents(rows[rowIndex])\n if (duplicateRowState.id) {\n duplicateRowState.id.value = new ObjectId().toHexString()\n duplicateRowState.id.initialValue = new ObjectId().toHexString()\n }\n\n for (const key of Object.keys(duplicateRowState).filter((key) => key.endsWith('.id'))) {\n const idState = duplicateRowState[key]\n\n if (idState && typeof idState.value === 'string' && ObjectId.isValid(idState.value)) {\n duplicateRowState[key].value = new ObjectId().toHexString()\n duplicateRowState[key].initialValue = new ObjectId().toHexString()\n }\n }\n\n // If there are subfields\n if (Object.keys(duplicateRowState).length > 0) {\n // Add new object containing subfield names to unflattenedRows array\n rows.splice(rowIndex + 1, 0, duplicateRowState)\n rowsMetadata.splice(rowIndex + 1, 0, duplicateRowMetadata)\n }\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, rows),\n [path]: {\n ...state[path],\n disableFormData: true,\n requiresRender: true,\n rows: rowsMetadata,\n value: rows.length,\n },\n }\n\n return newState\n }\n\n case 'MOVE_ROW': {\n const { moveFromIndex, moveToIndex, path } = action\n\n // Handle moving rows on the top-level, i.e. `array.0.text` -> `array.1.text`\n const { remainingFields, rows: topLevelRows } = separateRows(path, state)\n const copyOfMovingRow = topLevelRows[moveFromIndex]\n topLevelRows.splice(moveFromIndex, 1)\n topLevelRows.splice(moveToIndex, 0, copyOfMovingRow)\n\n // modify array/block internal row state (i.e. collapsed, blockType)\n const rowsWithinField = [...(state[path]?.rows || [])]\n const copyOfMovingRow2 = { ...rowsWithinField[moveFromIndex] }\n rowsWithinField.splice(moveFromIndex, 1)\n rowsWithinField.splice(moveToIndex, 0, copyOfMovingRow2)\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, topLevelRows),\n [path]: {\n ...state[path],\n requiresRender: true,\n rows: rowsWithinField,\n },\n }\n\n // Do the same for custom components, i.e. `array.customComponents.RowLabels[0]` -> `array.customComponents.RowLabels[1]`\n // Do this _after_ initializing `newState` to avoid adding the `customComponents` key to the state if it doesn't exist\n if (newState[path]?.customComponents?.RowLabels) {\n const customComponents = {\n ...newState[path].customComponents,\n RowLabels: [...newState[path].customComponents.RowLabels],\n }\n\n // Ensure the array grows if necessary\n if (moveToIndex >= customComponents.RowLabels.length) {\n customComponents.RowLabels.length = moveToIndex + 1\n }\n\n const copyOfMovingLabel = customComponents.RowLabels[moveFromIndex]\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n customComponents.RowLabels.splice(moveFromIndex, 1)\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n customComponents.RowLabels.splice(moveToIndex, 0, copyOfMovingLabel)\n\n newState[path].customComponents = customComponents\n }\n\n return newState\n }\n\n case 'REMOVE': {\n const newState = { ...state }\n if (newState[action.path]) {\n delete newState[action.path]\n }\n return newState\n }\n\n case 'REMOVE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n const rowsMetadata = [...(state[path]?.rows || [])]\n\n rows.splice(rowIndex, 1)\n rowsMetadata.splice(rowIndex, 1)\n\n const newState: FormState = {\n ...remainingFields,\n [path]: {\n ...state[path],\n disableFormData: rows.length > 0,\n requiresRender: true,\n rows: rowsMetadata,\n value: rows.length,\n },\n ...flattenRows(path, rows),\n }\n\n return newState\n }\n\n case 'REPLACE_ROW': {\n const { blockType, path, rowIndex: rowIndexArg, subFieldState = {} } = action\n\n const { remainingFields, rows: siblingRows } = separateRows(path, state)\n const rowIndex = Math.max(0, Math.min(rowIndexArg, siblingRows?.length - 1 || 0))\n\n const rowsMetadata = [...(state[path]?.rows || [])]\n rowsMetadata[rowIndex] = {\n id: new ObjectId().toHexString(),\n blockType: blockType || undefined,\n collapsed: false,\n }\n\n if (blockType) {\n subFieldState.blockType = {\n initialValue: blockType,\n valid: true,\n value: blockType,\n }\n }\n\n // replace form _field state_\n siblingRows[rowIndex] = subFieldState\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: rowsMetadata,\n value: siblingRows.length,\n },\n }\n\n return newState\n }\n\n case 'REPLACE_STATE': {\n if (action.optimize !== false) {\n // Only update fields that have changed\n // by comparing old value / initialValue to new\n // ..\n // This is a performance enhancement for saving\n // large documents with hundreds of fields\n const newState: FormState = {}\n\n for (const [path, newField] of Object.entries(action.state)) {\n const oldField = state[path]\n\n if (newField.valid !== false) {\n newField.valid = true\n }\n if (newField.passesCondition !== false) {\n newField.passesCondition = true\n }\n\n if (!dequal(oldField, newField)) {\n newState[path] = newField\n } else if (oldField) {\n newState[path] = oldField\n }\n }\n\n return newState\n }\n\n //TODO: Remove this in 4.0 - this is a temporary fix to prevent a breaking change\n if (action.sanitize) {\n for (const field of Object.values(action.state)) {\n if (field.valid !== false) {\n field.valid = true\n }\n if (field.passesCondition !== false) {\n field.passesCondition = true\n }\n }\n }\n // If we're not optimizing, just set the state to the new state\n return action.state\n }\n\n case 'SET_ALL_ROWS_COLLAPSED': {\n const { path, updatedRows } = action\n\n return {\n ...state,\n [path]: {\n ...state[path],\n rows: updatedRows,\n },\n }\n }\n\n case 'SET_ROW_COLLAPSED': {\n const { path, updatedRows } = action\n\n const newState = {\n ...state,\n [path]: {\n ...state[path],\n rows: updatedRows,\n },\n }\n\n return newState\n }\n\n case 'UPDATE': {\n const newField = Object.entries(action).reduce(\n (field, [key, value]) => {\n if (\n [\n 'disableFormData',\n 'errorMessage',\n 'initialValue',\n 'rows',\n 'valid',\n 'validate',\n 'value',\n ].includes(key)\n ) {\n return {\n ...field,\n [key]: value,\n }\n }\n\n return field\n },\n state[action.path] || ({} as FormField),\n )\n\n const newState = {\n ...state,\n [action.path]: newField,\n }\n\n return newState\n }\n\n case 'UPDATE_MANY': {\n const newState = { ...state }\n\n Object.entries(action.formState).forEach(([path, field]) => {\n newState[path] = field\n })\n\n return newState\n }\n\n default: {\n return state\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"fieldReducer.js","names":["ObjectIdImport","dequal","deepCopyObjectSimple","deepCopyObjectSimpleWithoutReactComponents","flattenRows","separateRows","ObjectId","default","fieldReducer","state","action","type","blockType","path","rowIndex","rowIndexFromArgs","subFieldState","rows","length","withNewRow","newRow","id","value","toHexString","undefined","collapsed","isLoading","splice","initialValue","valid","remainingFields","siblingRows","newState","passesCondition","requiresRender","disableFormData","errorPaths","errors","forEach","message","fieldPath","errorMessage","segments","split","push","fieldErrorPath","parentPath","slice","join","Object","entries","reduce","acc","fieldState","fieldErrorPaths","errorACC","startsWith","changed","newErrorPaths","Array","isArray","includes","rowsMetadata","duplicateRowMetadata","duplicateRowState","key","keys","filter","endsWith","idState","isValid","moveFromIndex","moveToIndex","topLevelRows","copyOfMovingRow","rowsWithinField","copyOfMovingRow2","customComponents","RowLabels","copyOfMovingLabel","rowIndexArg","Math","max","min","optimize","newField","oldField","sanitize","field","values","updatedRows","formState"],"sources":["../../../src/forms/Form/fieldReducer.ts"],"sourcesContent":["'use client'\nimport type { FormField, FormState, Row } from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { deepCopyObjectSimple, deepCopyObjectSimpleWithoutReactComponents } from 'payload/shared'\n\nimport type { FieldAction } from './types.js'\n\nimport { flattenRows, separateRows } from './rows.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\n/**\n * Reducer which modifies the form field state (all the current data of the fields in the form). When called using dispatch, it will return a new state object.\n */\nexport function fieldReducer(state: FormState, action: FieldAction): FormState {\n switch (action.type) {\n case 'ADD_ROW': {\n const { blockType, path, rowIndex: rowIndexFromArgs, subFieldState = {} } = action\n\n const rowIndex =\n typeof rowIndexFromArgs === 'number' ? rowIndexFromArgs : state[path]?.rows?.length || 0\n\n const withNewRow = [...(state[path]?.rows || [])]\n\n const newRow: Row = {\n id: (subFieldState?.id?.value as string) || new ObjectId().toHexString(),\n blockType: blockType || undefined,\n collapsed: false,\n isLoading: true,\n }\n\n withNewRow.splice(rowIndex, 0, newRow)\n\n if (blockType) {\n subFieldState.blockType = {\n initialValue: blockType,\n valid: true,\n value: blockType,\n }\n }\n\n // add new row to array _field state_\n const { remainingFields, rows: siblingRows } = separateRows(path, state)\n\n siblingRows.splice(rowIndex, 0, subFieldState)\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [`${path}.${rowIndex}.id`]: {\n initialValue: newRow.id,\n passesCondition: true,\n requiresRender: true,\n valid: true,\n value: newRow.id,\n },\n [path]: {\n ...state[path],\n disableFormData: true,\n requiresRender: true,\n rows: withNewRow,\n value: siblingRows.length,\n },\n }\n\n return newState\n }\n\n case 'ADD_SERVER_ERRORS': {\n let newState = { ...state }\n\n const errorPaths: { fieldErrorPath: string; parentPath: string }[] = []\n\n action.errors.forEach(({ message, path: fieldPath }) => {\n newState[fieldPath] = {\n ...(newState[fieldPath] || {\n initialValue: null,\n value: null,\n }),\n errorMessage: message,\n valid: false,\n }\n\n const segments = fieldPath.split('.')\n if (segments.length > 1) {\n errorPaths.push({\n fieldErrorPath: fieldPath,\n parentPath: segments.slice(0, segments.length - 1).join('.'),\n })\n }\n })\n\n newState = Object.entries(newState).reduce((acc, [path, fieldState]) => {\n const fieldErrorPaths = errorPaths.reduce((errorACC, { fieldErrorPath, parentPath }) => {\n if (parentPath.startsWith(path)) {\n errorACC.push(fieldErrorPath)\n }\n return errorACC\n }, [])\n\n let changed = false\n\n if (fieldErrorPaths.length > 0) {\n const newErrorPaths = Array.isArray(fieldState.errorPaths) ? fieldState.errorPaths : []\n\n fieldErrorPaths.forEach((fieldErrorPath) => {\n if (!newErrorPaths.includes(fieldErrorPath)) {\n newErrorPaths.push(fieldErrorPath)\n changed = true\n }\n })\n\n if (changed) {\n acc[path] = {\n ...fieldState,\n errorPaths: newErrorPaths,\n }\n }\n }\n\n if (!changed) {\n acc[path] = fieldState\n }\n\n return acc\n }, {})\n\n return newState\n }\n\n case 'DUPLICATE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n const rowsMetadata = [...(state[path].rows || [])]\n\n const duplicateRowMetadata = deepCopyObjectSimple(rowsMetadata[rowIndex])\n if (duplicateRowMetadata.id) {\n duplicateRowMetadata.id = new ObjectId().toHexString()\n }\n\n const duplicateRowState = deepCopyObjectSimpleWithoutReactComponents(rows[rowIndex])\n if (duplicateRowState.id) {\n duplicateRowState.id.value = new ObjectId().toHexString()\n duplicateRowState.id.initialValue = new ObjectId().toHexString()\n }\n\n for (const key of Object.keys(duplicateRowState).filter((key) => key.endsWith('.id'))) {\n const idState = duplicateRowState[key]\n\n if (idState && typeof idState.value === 'string' && ObjectId.isValid(idState.value)) {\n duplicateRowState[key].value = new ObjectId().toHexString()\n duplicateRowState[key].initialValue = new ObjectId().toHexString()\n }\n }\n\n // If there are subfields\n if (Object.keys(duplicateRowState).length > 0) {\n // Add new object containing subfield names to unflattenedRows array\n rows.splice(rowIndex + 1, 0, duplicateRowState)\n rowsMetadata.splice(rowIndex + 1, 0, duplicateRowMetadata)\n }\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, rows),\n [path]: {\n ...state[path],\n disableFormData: true,\n requiresRender: true,\n rows: rowsMetadata,\n value: rows.length,\n },\n }\n\n return newState\n }\n\n case 'MOVE_ROW': {\n const { moveFromIndex, moveToIndex, path } = action\n\n // Handle moving rows on the top-level, i.e. `array.0.text` -> `array.1.text`\n const { remainingFields, rows: topLevelRows } = separateRows(path, state)\n const copyOfMovingRow = topLevelRows[moveFromIndex]\n topLevelRows.splice(moveFromIndex, 1)\n topLevelRows.splice(moveToIndex, 0, copyOfMovingRow)\n\n // modify array/block internal row state (i.e. collapsed, blockType)\n const rowsWithinField = [...(state[path]?.rows || [])]\n const copyOfMovingRow2 = { ...rowsWithinField[moveFromIndex] }\n rowsWithinField.splice(moveFromIndex, 1)\n rowsWithinField.splice(moveToIndex, 0, copyOfMovingRow2)\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, topLevelRows),\n [path]: {\n ...state[path],\n requiresRender: true,\n rows: rowsWithinField,\n },\n }\n\n // Do the same for custom components, i.e. `array.customComponents.RowLabels[0]` -> `array.customComponents.RowLabels[1]`\n // Do this _after_ initializing `newState` to avoid adding the `customComponents` key to the state if it doesn't exist\n if (newState[path]?.customComponents?.RowLabels) {\n const customComponents = {\n ...newState[path].customComponents,\n RowLabels: [...newState[path].customComponents.RowLabels],\n }\n\n // Ensure the array grows if necessary\n if (moveToIndex >= customComponents.RowLabels.length) {\n customComponents.RowLabels.length = moveToIndex + 1\n }\n\n const copyOfMovingLabel = customComponents.RowLabels[moveFromIndex]\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n customComponents.RowLabels.splice(moveFromIndex, 1)\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n customComponents.RowLabels.splice(moveToIndex, 0, copyOfMovingLabel)\n\n newState[path].customComponents = customComponents\n }\n\n return newState\n }\n\n case 'REMOVE': {\n const newState = { ...state }\n if (newState[action.path]) {\n delete newState[action.path]\n }\n return newState\n }\n\n case 'REMOVE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n const rowsMetadata = [...(state[path]?.rows || [])]\n\n rows.splice(rowIndex, 1)\n rowsMetadata.splice(rowIndex, 1)\n\n const newState: FormState = {\n ...remainingFields,\n [path]: {\n ...state[path],\n disableFormData: rows.length > 0,\n requiresRender: true,\n rows: rowsMetadata,\n value: rows.length,\n },\n ...flattenRows(path, rows),\n }\n\n return newState\n }\n\n case 'REPLACE_ROW': {\n const { blockType, path, rowIndex: rowIndexArg, subFieldState = {} } = action\n\n const { remainingFields, rows: siblingRows } = separateRows(path, state)\n const rowIndex = Math.max(0, Math.min(rowIndexArg, siblingRows?.length - 1 || 0))\n\n const rowsMetadata = [...(state[path]?.rows || [])]\n rowsMetadata[rowIndex] = {\n id: new ObjectId().toHexString(),\n blockType: blockType || undefined,\n collapsed: false,\n }\n\n if (blockType) {\n subFieldState.blockType = {\n initialValue: blockType,\n valid: true,\n value: blockType,\n }\n }\n\n // replace form _field state_\n siblingRows[rowIndex] = subFieldState\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: rowsMetadata,\n value: siblingRows.length,\n },\n }\n\n return newState\n }\n\n case 'REPLACE_STATE': {\n if (action.optimize !== false) {\n // Only update fields that have changed\n // by comparing old value / initialValue to new\n // ..\n // This is a performance enhancement for saving\n // large documents with hundreds of fields\n const newState: FormState = {}\n\n for (const [path, newField] of Object.entries(action.state)) {\n const oldField = state[path]\n\n if (newField.valid !== false) {\n newField.valid = true\n }\n if (newField.passesCondition !== false) {\n newField.passesCondition = true\n }\n\n if (!dequal(oldField, newField)) {\n newState[path] = newField\n } else if (oldField) {\n newState[path] = oldField\n }\n }\n\n return newState\n }\n\n //TODO: Remove this in 4.0 - this is a temporary fix to prevent a breaking change\n if (action.sanitize) {\n for (const field of Object.values(action.state)) {\n if (field.valid !== false) {\n field.valid = true\n }\n if (field.passesCondition !== false) {\n field.passesCondition = true\n }\n }\n }\n // If we're not optimizing, just set the state to the new state\n return action.state\n }\n\n case 'SET_ALL_ROWS_COLLAPSED': {\n const { path, updatedRows } = action\n\n return {\n ...state,\n [path]: {\n ...state[path],\n rows: updatedRows,\n },\n }\n }\n\n case 'SET_ROW_COLLAPSED': {\n const { path, updatedRows } = action\n\n const newState = {\n ...state,\n [path]: {\n ...state[path],\n rows: updatedRows,\n },\n }\n\n return newState\n }\n\n case 'UPDATE': {\n const newField = Object.entries(action).reduce(\n (field, [key, value]) => {\n if (\n [\n 'disableFormData',\n 'errorMessage',\n 'initialValue',\n 'rows',\n 'valid',\n 'validate',\n 'value',\n ].includes(key)\n ) {\n return {\n ...field,\n [key]: value,\n }\n }\n\n return field\n },\n state?.[action.path] || ({} as FormField),\n )\n\n const newState = {\n ...state,\n [action.path]: newField,\n }\n\n return newState\n }\n\n case 'UPDATE_MANY': {\n const newState = { ...state }\n\n Object.entries(action.formState).forEach(([path, field]) => {\n newState[path] = field\n })\n\n return newState\n }\n\n default: {\n return state\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpD,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AAkBlC;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,WAAY,OAAO,KAAG,SAAS,CAAC,MAAM,CAqMpE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/useField/index.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAEpD,YAAY,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AAkBlC;;;;GAIG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,WAAY,OAAO,KAAG,SAAS,CAAC,MAAM,CAsMpE,CAAA"}