@payloadcms/ui 3.35.0-internal.b3d367c → 3.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/dist/elements/BulkUpload/ActionsBar/index.scss +0 -4
  2. package/dist/elements/Button/index.scss +1 -1
  3. package/dist/elements/ColumnSelector/index.d.ts +1 -0
  4. package/dist/elements/ColumnSelector/index.d.ts.map +1 -1
  5. package/dist/elements/ColumnSelector/index.js +37 -34
  6. package/dist/elements/ColumnSelector/index.js.map +1 -1
  7. package/dist/elements/{PillSelector → ColumnSelector}/index.scss +5 -5
  8. package/dist/elements/FieldDiffLabel/index.scss +1 -1
  9. package/dist/elements/Localizer/LocalizerLabel/index.js +1 -2
  10. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  11. package/dist/elements/Localizer/LocalizerLabel/index.scss +1 -2
  12. package/dist/elements/PerPage/index.scss +0 -4
  13. package/dist/elements/Pill/index.scss +2 -1
  14. package/dist/elements/Popup/PopupTrigger/index.scss +3 -3
  15. package/dist/elements/QueryPresets/fields/ColumnsField/index.d.ts.map +1 -1
  16. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +14 -24
  17. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  18. package/dist/elements/QueryPresets/fields/WhereField/index.d.ts.map +1 -1
  19. package/dist/elements/QueryPresets/fields/WhereField/index.js +3 -15
  20. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  21. package/dist/elements/ReactSelect/ValueContainer/index.d.ts.map +1 -1
  22. package/dist/elements/ReactSelect/ValueContainer/index.js +4 -7
  23. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  24. package/dist/elements/ReactSelect/ValueContainer/index.scss +0 -8
  25. package/dist/elements/ReactSelect/index.scss +0 -4
  26. package/dist/elements/ReactSelect/types.d.ts +0 -1
  27. package/dist/elements/ReactSelect/types.d.ts.map +1 -1
  28. package/dist/elements/ReactSelect/types.js.map +1 -1
  29. package/dist/elements/SortColumn/index.scss +1 -1
  30. package/dist/exports/client/index.d.ts +0 -4
  31. package/dist/exports/client/index.d.ts.map +1 -1
  32. package/dist/exports/client/index.js +11 -11
  33. package/dist/exports/client/index.js.map +4 -4
  34. package/dist/exports/rsc/index.d.ts +0 -2
  35. package/dist/exports/rsc/index.d.ts.map +1 -1
  36. package/dist/exports/rsc/index.js +0 -2
  37. package/dist/exports/rsc/index.js.map +1 -1
  38. package/dist/fields/Array/index.d.ts.map +1 -1
  39. package/dist/fields/Array/index.js +5 -4
  40. package/dist/fields/Array/index.js.map +1 -1
  41. package/dist/fields/Blocks/index.d.ts.map +1 -1
  42. package/dist/fields/Blocks/index.js +5 -4
  43. package/dist/fields/Blocks/index.js.map +1 -1
  44. package/dist/fields/Checkbox/index.d.ts.map +1 -1
  45. package/dist/fields/Checkbox/index.js +3 -2
  46. package/dist/fields/Checkbox/index.js.map +1 -1
  47. package/dist/fields/Checkbox/index.scss +1 -1
  48. package/dist/fields/Code/index.d.ts.map +1 -1
  49. package/dist/fields/Code/index.js +3 -2
  50. package/dist/fields/Code/index.js.map +1 -1
  51. package/dist/fields/DateTime/index.d.ts.map +1 -1
  52. package/dist/fields/DateTime/index.js +3 -2
  53. package/dist/fields/DateTime/index.js.map +1 -1
  54. package/dist/fields/Email/index.d.ts.map +1 -1
  55. package/dist/fields/Email/index.js +4 -3
  56. package/dist/fields/Email/index.js.map +1 -1
  57. package/dist/fields/FieldLabel/index.d.ts.map +1 -1
  58. package/dist/fields/FieldLabel/index.js +1 -1
  59. package/dist/fields/FieldLabel/index.js.map +1 -1
  60. package/dist/fields/Hidden/index.d.ts.map +1 -1
  61. package/dist/fields/Hidden/index.js +6 -4
  62. package/dist/fields/Hidden/index.js.map +1 -1
  63. package/dist/fields/JSON/index.d.ts.map +1 -1
  64. package/dist/fields/JSON/index.js +3 -2
  65. package/dist/fields/JSON/index.js.map +1 -1
  66. package/dist/fields/Join/index.d.ts.map +1 -1
  67. package/dist/fields/Join/index.js +3 -2
  68. package/dist/fields/Join/index.js.map +1 -1
  69. package/dist/fields/Number/index.d.ts.map +1 -1
  70. package/dist/fields/Number/index.js +3 -2
  71. package/dist/fields/Number/index.js.map +1 -1
  72. package/dist/fields/Point/index.d.ts.map +1 -1
  73. package/dist/fields/Point/index.js +3 -2
  74. package/dist/fields/Point/index.js.map +1 -1
  75. package/dist/fields/RadioGroup/index.d.ts.map +1 -1
  76. package/dist/fields/RadioGroup/index.js +3 -2
  77. package/dist/fields/RadioGroup/index.js.map +1 -1
  78. package/dist/fields/Relationship/index.d.ts.map +1 -1
  79. package/dist/fields/Relationship/index.js +85 -22
  80. package/dist/fields/Relationship/index.js.map +1 -1
  81. package/dist/fields/Select/index.d.ts.map +1 -1
  82. package/dist/fields/Select/index.js +3 -2
  83. package/dist/fields/Select/index.js.map +1 -1
  84. package/dist/fields/Tabs/index.js +41 -51
  85. package/dist/fields/Tabs/index.js.map +1 -1
  86. package/dist/fields/Text/index.d.ts.map +1 -1
  87. package/dist/fields/Text/index.js +3 -2
  88. package/dist/fields/Text/index.js.map +1 -1
  89. package/dist/fields/Textarea/index.d.ts.map +1 -1
  90. package/dist/fields/Textarea/index.js +3 -2
  91. package/dist/fields/Textarea/index.js.map +1 -1
  92. package/dist/fields/Upload/index.d.ts.map +1 -1
  93. package/dist/fields/Upload/index.js +3 -2
  94. package/dist/fields/Upload/index.js.map +1 -1
  95. package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
  96. package/dist/forms/Form/fieldReducer.js +3 -1
  97. package/dist/forms/Form/fieldReducer.js.map +1 -1
  98. package/dist/forms/RenderFields/context.d.ts +4 -0
  99. package/dist/forms/RenderFields/context.d.ts.map +1 -0
  100. package/dist/forms/RenderFields/context.js +11 -0
  101. package/dist/forms/RenderFields/context.js.map +1 -0
  102. package/dist/forms/RenderFields/index.d.ts.map +1 -1
  103. package/dist/forms/RenderFields/index.js +15 -11
  104. package/dist/forms/RenderFields/index.js.map +1 -1
  105. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.d.ts.map +1 -1
  106. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js +1 -0
  107. package/dist/forms/fieldSchemasToFormState/addFieldStatePromise.js.map +1 -1
  108. package/dist/forms/fieldSchemasToFormState/iterateFields.d.ts.map +1 -1
  109. package/dist/forms/fieldSchemasToFormState/iterateFields.js +1 -0
  110. package/dist/forms/fieldSchemasToFormState/iterateFields.js.map +1 -1
  111. package/dist/forms/useField/index.d.ts +1 -1
  112. package/dist/forms/useField/index.d.ts.map +1 -1
  113. package/dist/forms/useField/index.js +128 -116
  114. package/dist/forms/useField/index.js.map +1 -1
  115. package/dist/forms/useField/types.d.ts +22 -1
  116. package/dist/forms/useField/types.d.ts.map +1 -1
  117. package/dist/forms/useField/types.js.map +1 -1
  118. package/dist/icons/Chevron/index.js +2 -2
  119. package/dist/icons/Chevron/index.js.map +1 -1
  120. package/dist/icons/Chevron/index.scss +4 -4
  121. package/dist/styles.css +1 -1
  122. package/package.json +5 -5
  123. package/dist/elements/FieldDiffContainer/index.d.ts +0 -15
  124. package/dist/elements/FieldDiffContainer/index.d.ts.map +0 -1
  125. package/dist/elements/FieldDiffContainer/index.js +0 -40
  126. package/dist/elements/FieldDiffContainer/index.js.map +0 -1
  127. package/dist/elements/FieldDiffContainer/index.scss +0 -42
  128. package/dist/elements/HTMLDiff/colors.scss +0 -35
  129. package/dist/elements/HTMLDiff/diff/index.d.ts +0 -75
  130. package/dist/elements/HTMLDiff/diff/index.d.ts.map +0 -1
  131. package/dist/elements/HTMLDiff/diff/index.js +0 -536
  132. package/dist/elements/HTMLDiff/diff/index.js.map +0 -1
  133. package/dist/elements/HTMLDiff/index.d.ts +0 -11
  134. package/dist/elements/HTMLDiff/index.d.ts.map +0 -1
  135. package/dist/elements/HTMLDiff/index.js +0 -32
  136. package/dist/elements/HTMLDiff/index.js.map +0 -1
  137. package/dist/elements/HTMLDiff/index.scss +0 -158
  138. package/dist/elements/PillSelector/index.d.ts +0 -26
  139. package/dist/elements/PillSelector/index.d.ts.map +0 -1
  140. package/dist/elements/PillSelector/index.js +0 -71
  141. package/dist/elements/PillSelector/index.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["TZDateMini","TZDate","getTranslation","transpose","useCallback","useMemo","DatePickerField","RenderCustomComponent","TimezonePicker","FieldDescription","FieldError","FieldLabel","useForm","useFormFields","useField","withCondition","useConfig","useTranslation","mergeFieldStyles","fieldBaseClass","baseClass","DateTimeFieldComponent","props","field","admin","className","date","datePickerProps","description","placeholder","label","localized","required","timezone","path","readOnly","validate","pickerAppearance","userTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","config","i18n","dispatchFields","setModified","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","timezonePath","timezoneField","fields","_","supportedTimezones","timezones","isDateOnly","includes","selectedTimezone","displayedValue","DateWithOriginalTz","tz","DateWithUserTz","modifiedDate","withTimeZone","dateWithTimezone","dateWithUserTimezone","toISOString","styles","onChange","incomingDate","TZDateWithSelectedTz","incomingOffset","getTimezoneOffset","originalHour","getHours","setHours","dateToSelectedTz","dateToUserTz","onChangeTimezone","type","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","id","replace","overrides","length","DateTimeField"],"sources":["../../../src/fields/DateTime/index.tsx"],"sourcesContent":["'use client'\nimport type { DateFieldClientComponent, DateFieldValidation } from 'payload'\n\nimport { TZDateMini as TZDate } from '@date-fns/tz/date/mini'\nimport { getTranslation } from '@payloadcms/translations'\nimport { transpose } from 'date-fns'\nimport { useCallback, useMemo } from 'react'\n\nimport { DatePickerField } from '../../elements/DatePicker/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { TimezonePicker } from '../../elements/TimezonePicker/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm, useFormFields } from '../../forms/Form/context.js'\nimport { useField } from '../../forms/useField/index.js'\nimport './index.scss'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\n\nconst baseClass = 'date-time-field'\n\nconst DateTimeFieldComponent: DateFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { className, date: datePickerProps, description, placeholder } = {},\n label,\n localized,\n required,\n timezone,\n },\n path,\n readOnly,\n validate,\n } = props\n\n const pickerAppearance = datePickerProps?.pickerAppearance || 'default'\n\n // Get the user timezone so we can adjust the displayed value against it\n const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n\n const { config } = useConfig()\n const { i18n } = useTranslation()\n const { dispatchFields, setModified } = useForm()\n\n const memoizedValidate: DateFieldValidation = 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 setValue,\n showError,\n value,\n } = useField<string>({\n path,\n validate: memoizedValidate,\n })\n\n const timezonePath = path + '_tz'\n const timezoneField = useFormFields(([fields, _]) => fields?.[timezonePath])\n const supportedTimezones = config.admin.timezones.supportedTimezones\n /**\n * Date appearance doesn't include timestamps,\n * which means we need to pin the time to always 12:00 for the selected date\n */\n const isDateOnly = ['dayOnly', 'default', 'monthOnly'].includes(pickerAppearance)\n const selectedTimezone = timezoneField?.value as string\n\n // The displayed value should be the original value, adjusted to the user's timezone\n const displayedValue = useMemo(() => {\n if (timezone && selectedTimezone && userTimezone && value) {\n // Create TZDate instances for the selected timezone and the user's timezone\n // These instances allow us to transpose the date between timezones while keeping the same time value\n const DateWithOriginalTz = TZDate.tz(selectedTimezone)\n const DateWithUserTz = TZDate.tz(userTimezone)\n\n const modifiedDate = new TZDate(value).withTimeZone(selectedTimezone)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz)\n\n // Transpose the date to the user's timezone - this is necessary because the react-datepicker component insists on displaying the date in the user's timezone\n const dateWithUserTimezone = transpose(dateWithTimezone, DateWithUserTz)\n\n return dateWithUserTimezone.toISOString()\n }\n\n return value\n }, [timezone, selectedTimezone, value, userTimezone])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n const onChange = useCallback(\n (incomingDate: Date) => {\n if (!(readOnly || disabled)) {\n if (timezone && selectedTimezone && incomingDate) {\n // Create TZDate instances for the selected timezone\n const TZDateWithSelectedTz = TZDate.tz(selectedTimezone)\n\n if (isDateOnly) {\n // We need to offset this hardcoded hour offset from the DatePicker elemenent\n // this can be removed in 4.0 when we remove the hardcoded offset as it is a breaking change\n // const tzOffset = incomingDate.getTimezoneOffset() / 60\n const incomingOffset = incomingDate.getTimezoneOffset() / 60\n const originalHour = incomingDate.getHours() + incomingOffset\n incomingDate.setHours(originalHour)\n\n // Convert the original date as picked into the desired timezone.\n const dateToSelectedTz = transpose(incomingDate, TZDateWithSelectedTz)\n\n setValue(dateToSelectedTz.toISOString() || null)\n } else {\n // Creates a TZDate instance for the user's timezone — this is default behaviour of TZDate as it wraps the Date constructor\n const dateToUserTz = new TZDate(incomingDate)\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(dateToUserTz, TZDateWithSelectedTz)\n\n setValue(dateWithTimezone.toISOString() || null)\n }\n } else {\n setValue(incomingDate?.toISOString() || null)\n }\n }\n },\n [readOnly, disabled, timezone, selectedTimezone, isDateOnly, setValue],\n )\n\n const onChangeTimezone = useCallback(\n (timezone: string) => {\n if (timezonePath) {\n dispatchFields({\n type: 'UPDATE',\n path: timezonePath,\n value: timezone,\n })\n\n setModified(true)\n }\n },\n [dispatchFields, setModified, timezonePath],\n )\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && `${baseClass}--has-error`,\n (readOnly || disabled) && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={<FieldLabel label={label} localized={localized} required={required} />}\n />\n <div className={`${fieldBaseClass}__wrap`} id={`field-${path.replace(/\\./g, '__')}`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n <DatePickerField\n {...datePickerProps}\n onChange={onChange}\n overrides={{\n ...datePickerProps?.overrides,\n }}\n placeholder={getTranslation(placeholder, i18n)}\n readOnly={readOnly || disabled}\n value={displayedValue}\n />\n {timezone && supportedTimezones.length > 0 && (\n <TimezonePicker\n id={`${path}-timezone-picker`}\n onChange={onChangeTimezone}\n options={supportedTimezones}\n required={required}\n selectedTimezone={selectedTimezone}\n />\n )}\n {AfterInput}\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const DateTimeField = withCondition(DateTimeFieldComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["TZDateMini","TZDate","getTranslation","transpose","useCallback","useMemo","DatePickerField","RenderCustomComponent","TimezonePicker","FieldDescription","FieldError","FieldLabel","useForm","useFormFields","useField","withCondition","useConfig","useTranslation","mergeFieldStyles","fieldBaseClass","baseClass","DateTimeFieldComponent","props","field","admin","className","date","datePickerProps","description","placeholder","label","localized","required","timezone","path","pathFromProps","readOnly","validate","pickerAppearance","userTimezone","Intl","DateTimeFormat","resolvedOptions","timeZone","config","i18n","dispatchFields","setModified","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","potentiallyStalePath","timezonePath","timezoneField","fields","_","supportedTimezones","timezones","isDateOnly","includes","selectedTimezone","displayedValue","DateWithOriginalTz","tz","DateWithUserTz","modifiedDate","withTimeZone","dateWithTimezone","dateWithUserTimezone","toISOString","styles","onChange","incomingDate","TZDateWithSelectedTz","incomingOffset","getTimezoneOffset","originalHour","getHours","setHours","dateToSelectedTz","dateToUserTz","onChangeTimezone","type","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","id","replace","overrides","length","DateTimeField"],"sources":["../../../src/fields/DateTime/index.tsx"],"sourcesContent":["'use client'\nimport type { DateFieldClientComponent, DateFieldValidation } from 'payload'\n\nimport { TZDateMini as TZDate } from '@date-fns/tz/date/mini'\nimport { getTranslation } from '@payloadcms/translations'\nimport { transpose } from 'date-fns'\nimport { useCallback, useMemo } from 'react'\n\nimport { DatePickerField } from '../../elements/DatePicker/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { TimezonePicker } from '../../elements/TimezonePicker/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useForm, useFormFields } from '../../forms/Form/context.js'\nimport { useField } from '../../forms/useField/index.js'\nimport './index.scss'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\n\nconst baseClass = 'date-time-field'\n\nconst DateTimeFieldComponent: DateFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { className, date: datePickerProps, description, placeholder } = {},\n label,\n localized,\n required,\n timezone,\n },\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n\n const pickerAppearance = datePickerProps?.pickerAppearance || 'default'\n\n // Get the user timezone so we can adjust the displayed value against it\n const userTimezone = Intl.DateTimeFormat().resolvedOptions().timeZone\n\n const { config } = useConfig()\n const { i18n } = useTranslation()\n const { dispatchFields, setModified } = useForm()\n\n const memoizedValidate: DateFieldValidation = 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 path,\n setValue,\n showError,\n value,\n } = useField<string>({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const timezonePath = path + '_tz'\n const timezoneField = useFormFields(([fields, _]) => fields?.[timezonePath])\n const supportedTimezones = config.admin.timezones.supportedTimezones\n /**\n * Date appearance doesn't include timestamps,\n * which means we need to pin the time to always 12:00 for the selected date\n */\n const isDateOnly = ['dayOnly', 'default', 'monthOnly'].includes(pickerAppearance)\n const selectedTimezone = timezoneField?.value as string\n\n // The displayed value should be the original value, adjusted to the user's timezone\n const displayedValue = useMemo(() => {\n if (timezone && selectedTimezone && userTimezone && value) {\n // Create TZDate instances for the selected timezone and the user's timezone\n // These instances allow us to transpose the date between timezones while keeping the same time value\n const DateWithOriginalTz = TZDate.tz(selectedTimezone)\n const DateWithUserTz = TZDate.tz(userTimezone)\n\n const modifiedDate = new TZDate(value).withTimeZone(selectedTimezone)\n\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(modifiedDate, DateWithOriginalTz)\n\n // Transpose the date to the user's timezone - this is necessary because the react-datepicker component insists on displaying the date in the user's timezone\n const dateWithUserTimezone = transpose(dateWithTimezone, DateWithUserTz)\n\n return dateWithUserTimezone.toISOString()\n }\n\n return value\n }, [timezone, selectedTimezone, value, userTimezone])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n const onChange = useCallback(\n (incomingDate: Date) => {\n if (!(readOnly || disabled)) {\n if (timezone && selectedTimezone && incomingDate) {\n // Create TZDate instances for the selected timezone\n const TZDateWithSelectedTz = TZDate.tz(selectedTimezone)\n\n if (isDateOnly) {\n // We need to offset this hardcoded hour offset from the DatePicker elemenent\n // this can be removed in 4.0 when we remove the hardcoded offset as it is a breaking change\n // const tzOffset = incomingDate.getTimezoneOffset() / 60\n const incomingOffset = incomingDate.getTimezoneOffset() / 60\n const originalHour = incomingDate.getHours() + incomingOffset\n incomingDate.setHours(originalHour)\n\n // Convert the original date as picked into the desired timezone.\n const dateToSelectedTz = transpose(incomingDate, TZDateWithSelectedTz)\n\n setValue(dateToSelectedTz.toISOString() || null)\n } else {\n // Creates a TZDate instance for the user's timezone — this is default behaviour of TZDate as it wraps the Date constructor\n const dateToUserTz = new TZDate(incomingDate)\n // Transpose the date to the selected timezone\n const dateWithTimezone = transpose(dateToUserTz, TZDateWithSelectedTz)\n\n setValue(dateWithTimezone.toISOString() || null)\n }\n } else {\n setValue(incomingDate?.toISOString() || null)\n }\n }\n },\n [readOnly, disabled, timezone, selectedTimezone, isDateOnly, setValue],\n )\n\n const onChangeTimezone = useCallback(\n (timezone: string) => {\n if (timezonePath) {\n dispatchFields({\n type: 'UPDATE',\n path: timezonePath,\n value: timezone,\n })\n\n setModified(true)\n }\n },\n [dispatchFields, setModified, timezonePath],\n )\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && `${baseClass}--has-error`,\n (readOnly || disabled) && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={<FieldLabel label={label} localized={localized} required={required} />}\n />\n <div className={`${fieldBaseClass}__wrap`} id={`field-${path.replace(/\\./g, '__')}`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n <DatePickerField\n {...datePickerProps}\n onChange={onChange}\n overrides={{\n ...datePickerProps?.overrides,\n }}\n placeholder={getTranslation(placeholder, i18n)}\n readOnly={readOnly || disabled}\n value={displayedValue}\n />\n {timezone && supportedTimezones.length > 0 && (\n <TimezonePicker\n id={`${path}-timezone-picker`}\n onChange={onChangeTimezone}\n options={supportedTimezones}\n required={required}\n selectedTimezone={selectedTimezone}\n />\n )}\n {AfterInput}\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const DateTimeField = withCondition(DateTimeFieldComponent)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Email/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA+B,MAAM,OAAO,CAAA;AAUnD,OAAO,cAAc,CAAA;AA8FrB,eAAO,MAAM,UAAU;;;;;+EAAqC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Email/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAGV,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA+B,MAAM,OAAO,CAAA;AAWnD,OAAO,cAAc,CAAA;AA8FrB,eAAO,MAAM,UAAU;;;;;+EAAqC,CAAA"}
@@ -11,8 +11,8 @@ import { withCondition } from '../../forms/withCondition/index.js';
11
11
  import { useTranslation } from '../../providers/Translation/index.js';
12
12
  import { FieldLabel } from '../FieldLabel/index.js';
13
13
  import { mergeFieldStyles } from '../mergeFieldStyles.js';
14
- import './index.scss';
15
14
  import { fieldBaseClass } from '../shared/index.js';
15
+ import './index.scss';
16
16
  const EmailFieldComponent = props => {
17
17
  const {
18
18
  field,
@@ -27,7 +27,7 @@ const EmailFieldComponent = props => {
27
27
  localized,
28
28
  required
29
29
  } = {},
30
- path,
30
+ path: pathFromProps,
31
31
  readOnly,
32
32
  validate
33
33
  } = props;
@@ -51,11 +51,12 @@ const EmailFieldComponent = props => {
51
51
  Label
52
52
  } = {},
53
53
  disabled,
54
+ path,
54
55
  setValue,
55
56
  showError,
56
57
  value: value_0
57
58
  } = useField({
58
- path,
59
+ potentiallyStalePath: pathFromProps,
59
60
  validate: memoizedValidate
60
61
  });
61
62
  const styles = useMemo(() => mergeFieldStyles(field), [field]);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","React","useCallback","useMemo","RenderCustomComponent","FieldDescription","FieldError","useField","withCondition","useTranslation","FieldLabel","mergeFieldStyles","fieldBaseClass","EmailFieldComponent","props","field","admin","autoComplete","className","description","placeholder","label","localized","required","path","readOnly","validate","i18n","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","styles","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","id","replace","name","onChange","type","EmailField"],"sources":["../../../src/fields/Email/index.tsx"],"sourcesContent":["'use client'\nimport type {\n EmailFieldClientComponent,\n EmailFieldClientProps,\n EmailFieldValidation,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useMemo } from 'react'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport './index.scss'\nimport { fieldBaseClass } from '../shared/index.js'\n\nconst EmailFieldComponent: EmailFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: {\n autoComplete,\n className,\n description,\n placeholder,\n } = {} as EmailFieldClientProps['field']['admin'],\n label,\n localized,\n required,\n } = {} as EmailFieldClientProps['field'],\n path,\n readOnly,\n validate,\n } = props\n\n const { i18n } = useTranslation()\n\n const memoizedValidate: EmailFieldValidation = 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 setValue,\n showError,\n value,\n } = useField({\n path,\n validate: memoizedValidate,\n })\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'email',\n className,\n showError && 'error',\n (readOnly || disabled) && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n {/* disable eslint here because the label is dynamic */}\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <input\n autoComplete={autoComplete}\n disabled={readOnly || disabled}\n id={`field-${path.replace(/\\./g, '__')}`}\n name={path}\n onChange={setValue}\n placeholder={getTranslation(placeholder, i18n)}\n required={required}\n type=\"email\"\n value={(value as string) || ''}\n />\n {AfterInput}\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const EmailField = withCondition(EmailFieldComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","React","useCallback","useMemo","RenderCustomComponent","FieldDescription","FieldError","useField","withCondition","useTranslation","FieldLabel","mergeFieldStyles","fieldBaseClass","EmailFieldComponent","props","field","admin","autoComplete","className","description","placeholder","label","localized","required","path","pathFromProps","readOnly","validate","i18n","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","potentiallyStalePath","styles","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","id","replace","name","onChange","type","EmailField"],"sources":["../../../src/fields/Email/index.tsx"],"sourcesContent":["'use client'\nimport type {\n EmailFieldClientComponent,\n EmailFieldClientProps,\n EmailFieldValidation,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useMemo } from 'react'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nconst EmailFieldComponent: EmailFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: {\n autoComplete,\n className,\n description,\n placeholder,\n } = {} as EmailFieldClientProps['field']['admin'],\n label,\n localized,\n required,\n } = {} as EmailFieldClientProps['field'],\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n\n const { i18n } = useTranslation()\n\n const memoizedValidate: EmailFieldValidation = 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 path,\n setValue,\n showError,\n value,\n } = useField({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'email',\n className,\n showError && 'error',\n (readOnly || disabled) && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n {/* disable eslint here because the label is dynamic */}\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <input\n autoComplete={autoComplete}\n disabled={readOnly || disabled}\n id={`field-${path.replace(/\\./g, '__')}`}\n name={path}\n onChange={setValue}\n placeholder={getTranslation(placeholder, i18n)}\n required={required}\n type=\"email\"\n value={(value as string) || ''}\n />\n {AfterInput}\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const EmailField = withCondition(EmailFieldComponent)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/FieldLabel/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAGhD,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAqClD,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/FieldLabel/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAGhD,OAAO,KAAK,MAAM,OAAO,CAAA;AAOzB,OAAO,cAAc,CAAA;AAErB,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAiClD,CAAA"}
@@ -33,7 +33,7 @@ export const FieldLabel = props => {
33
33
  const editDepth = useEditDepth();
34
34
  let t5;
35
35
  if ($[0] !== editDepth || $[1] !== htmlForFromProps || $[2] !== path || $[3] !== uuid) {
36
- t5 = htmlForFromProps || (path && typeof editDepth !== "undefined" && uuid ? generateFieldID(path, editDepth, uuid) : undefined);
36
+ t5 = htmlForFromProps || generateFieldID(path, editDepth, uuid);
37
37
  $[0] = editDepth;
38
38
  $[1] = htmlForFromProps;
39
39
  $[2] = path;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useForm","useEditDepth","useLocale","useTranslation","generateFieldID","FieldLabel","props","$","as","t0","hideLocale","t1","htmlFor","htmlForFromProps","label","localized","t2","path","required","t3","unstyled","t4","Element","undefined","uuid","editDepth","t5","i18n","code","localLabel","t6","t7","t8","_jsx","className","children","t9","_jsxs"],"sources":["../../../src/fields/FieldLabel/index.tsx"],"sourcesContent":["'use client'\n\nimport type { GenericLabelProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { generateFieldID } from '../../utilities/generateFieldID.js'\nimport './index.scss'\n\nexport const FieldLabel: React.FC<GenericLabelProps> = (props) => {\n const {\n as: Element = 'label',\n hideLocale = false,\n htmlFor: htmlForFromProps,\n label,\n localized = false,\n path,\n required = false,\n unstyled = false,\n } = props\n\n const { uuid } = useForm()\n const editDepth = useEditDepth()\n const htmlFor =\n htmlForFromProps ||\n (path && typeof editDepth !== 'undefined' && uuid\n ? generateFieldID(path, editDepth, uuid)\n : undefined)\n const { i18n } = useTranslation()\n const { code, label: localLabel } = useLocale()\n\n if (label) {\n return (\n <Element className={`field-label ${unstyled ? 'unstyled' : ''}`} htmlFor={htmlFor}>\n {getTranslation(label, i18n)}\n {required && !unstyled && <span className=\"required\">*</span>}\n {localized && !hideLocale && (\n <span className=\"localized\">\n &mdash; {typeof localLabel === 'string' ? localLabel : code}\n </span>\n )}\n </Element>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useForm","useEditDepth","useLocale","useTranslation","generateFieldID","FieldLabel","props","$","as","t0","hideLocale","t1","htmlFor","htmlForFromProps","label","localized","t2","path","required","t3","unstyled","t4","Element","undefined","uuid","editDepth","t5","i18n","code","localLabel","t6","t7","t8","_jsx","className","children","t9","_jsxs"],"sources":["../../../src/fields/FieldLabel/index.tsx"],"sourcesContent":["'use client'\n\nimport type { GenericLabelProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport { useForm } from '../../forms/Form/context.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { generateFieldID } from '../../utilities/generateFieldID.js'\nimport './index.scss'\n\nexport const FieldLabel: React.FC<GenericLabelProps> = (props) => {\n const {\n as: Element = 'label',\n hideLocale = false,\n htmlFor: htmlForFromProps,\n label,\n localized = false,\n path,\n required = false,\n unstyled = false,\n } = props\n\n const { uuid } = useForm()\n const editDepth = useEditDepth()\n const htmlFor = htmlForFromProps || generateFieldID(path, editDepth, uuid)\n const { i18n } = useTranslation()\n const { code, label: localLabel } = useLocale()\n\n if (label) {\n return (\n <Element className={`field-label ${unstyled ? 'unstyled' : ''}`} htmlFor={htmlFor}>\n {getTranslation(label, i18n)}\n {required && !unstyled && <span className=\"required\">*</span>}\n {localized && !hideLocale && (\n <span className=\"localized\">\n &mdash; {typeof localLabel === 'string' ? localLabel : code}\n </span>\n )}\n </Element>\n )\n }\n\n return null\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Hidden/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,OAAO,KAAoB,MAAM,OAAO,CAAA;AAiCxC,eAAO,MAAM,WAAW,4BAAsC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Hidden/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,OAAO,KAAoB,MAAM,OAAO,CAAA;AAkCxC,eAAO,MAAM,WAAW,4BAAsC,CAAA"}
@@ -6,6 +6,7 @@ import React, { useEffect } from 'react';
6
6
  import { useField } from '../../forms/useField/index.js';
7
7
  import { withCondition } from '../../forms/withCondition/index.js';
8
8
  /**
9
+ * Renders an input with `type="hidden"`.
9
10
  * This is mainly used to save a value on the form that is not visible to the user.
10
11
  * For example, this sets the `ìd` property of a block in the Blocks field.
11
12
  */
@@ -13,21 +14,22 @@ const HiddenFieldComponent = props => {
13
14
  const $ = _c(12);
14
15
  const {
15
16
  disableModifyingForm: t0,
16
- path,
17
+ path: pathFromProps,
17
18
  value: valueFromProps
18
19
  } = props;
19
20
  const disableModifyingForm = t0 === undefined ? true : t0;
20
21
  let t1;
21
- if ($[0] !== path) {
22
+ if ($[0] !== pathFromProps) {
22
23
  t1 = {
23
- path
24
+ potentiallyStalePath: pathFromProps
24
25
  };
25
- $[0] = path;
26
+ $[0] = pathFromProps;
26
27
  $[1] = t1;
27
28
  } else {
28
29
  t1 = $[1];
29
30
  }
30
31
  const {
32
+ path,
31
33
  setValue,
32
34
  value
33
35
  } = useField(t1);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useField","withCondition","HiddenFieldComponent","props","$","disableModifyingForm","t0","path","value","valueFromProps","undefined","t1","setValue","t2","t3","t4","replace","t5","t6","_jsx","id","name","onChange","type","HiddenField"],"sources":["../../../src/fields/Hidden/index.tsx"],"sourcesContent":["'use client'\n\nimport type { HiddenFieldProps } from 'payload'\n\nimport React, { useEffect } from 'react'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\n\n/**\n * This is mainly used to save a value on the form that is not visible to the user.\n * For example, this sets the `ìd` property of a block in the Blocks field.\n */\nconst HiddenFieldComponent: React.FC<HiddenFieldProps> = (props) => {\n const { disableModifyingForm = true, path, value: valueFromProps } = props\n\n const { setValue, value } = useField({\n path,\n })\n\n useEffect(() => {\n if (valueFromProps !== undefined) {\n setValue(valueFromProps, disableModifyingForm)\n }\n }, [valueFromProps, setValue, disableModifyingForm])\n\n return (\n <input\n id={`field-${path?.replace(/\\./g, '__')}`}\n name={path}\n onChange={setValue}\n type=\"hidden\"\n value={(value as string) || ''}\n />\n )\n}\n\nexport const HiddenField = withCondition(HiddenFieldComponent)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,OAAOC,KAAA,IAASC,SAAS,QAAQ;AAEjC,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAE9B;;;;AAIA,MAAMC,oBAAA,GAAmDC,KAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EACvD;IAAAQ,oBAAA,EAAAC,EAAA;IAAAC,IAAA;IAAAC,KAAA,EAAAC;EAAA,IAAqEN,KAAA;EAA7D,MAAAE,oBAAA,GAAAC,EAA2B,KAAAI,SAAA,UAA3BJ,EAA2B;EAAA,IAAAK,EAAA;EAAA,IAAAP,CAAA,QAAAG,IAAA;IAEEI,EAAA;MAAAJ;IAAA;IAErCH,CAAA,MAAAG,IAAA;IAAAH,CAAA,MAAAO,EAAA;EAAA;IAAAA,EAAA,GAAAP,CAAA;EAAA;EAFA;IAAAQ,QAAA;IAAAJ;EAAA,IAA4BR,QAAA,CAASW,EAErC;EAAA,IAAAE,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAV,CAAA,QAAAC,oBAAA,IAAAD,CAAA,QAAAQ,QAAA,IAAAR,CAAA,QAAAK,cAAA;IAEUI,EAAA,GAAAA,CAAA;MAAA,IACJJ,cAAA,KAAAC,SAAmB;QACrBE,QAAA,CAASH,cAAA,EAAgBJ,oBAAA;MAAA;IAAA;IAE1BS,EAAA,IAACL,cAAA,EAAgBG,QAAA,EAAUP,oBAAA;IAAqBD,CAAA,MAAAC,oBAAA;IAAAD,CAAA,MAAAQ,QAAA;IAAAR,CAAA,MAAAK,cAAA;IAAAL,CAAA,MAAAS,EAAA;IAAAT,CAAA,MAAAU,EAAA;EAAA;IAAAD,EAAA,GAAAT,CAAA;IAAAU,EAAA,GAAAV,CAAA;EAAA;EAJnDL,SAAA,CAAUc,EAIV,EAAGC,EAAgD;EAI3C,MAAAC,EAAA,YAASR,IAAA,EAAAS,OAAA,QAAqB,OAAO;EAIlC,MAAAC,EAAA,GAAAT,KAAC,IAAoB;EAAA,IAAAU,EAAA;EAAA,IAAAd,CAAA,QAAAG,IAAA,IAAAH,CAAA,QAAAQ,QAAA,IAAAR,CAAA,QAAAW,EAAA,IAAAX,CAAA,SAAAa,EAAA;IAL9BC,EAAA,GAAAC,IAAA,CAAC;MAAAC,EAAA,EACKL,EAAqC;MAAAM,IAAA,EACnCd,IAAA;MAAAe,QAAA,EACIV,QAAA;MAAAW,IAAA,EACL;MAAAf,KAAA,EACES;IAAqB,C;;;;;;;;;SAL9BC,E;CAQJ;AAEA,OAAO,MAAMM,WAAA,GAAcvB,aAAA,CAAcC,oBAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["c","_c","React","useEffect","useField","withCondition","HiddenFieldComponent","props","$","disableModifyingForm","t0","path","pathFromProps","value","valueFromProps","undefined","t1","potentiallyStalePath","setValue","t2","t3","t4","replace","t5","t6","_jsx","id","name","onChange","type","HiddenField"],"sources":["../../../src/fields/Hidden/index.tsx"],"sourcesContent":["'use client'\n\nimport type { HiddenFieldProps } from 'payload'\n\nimport React, { useEffect } from 'react'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\n\n/**\n * Renders an input with `type=\"hidden\"`.\n * This is mainly used to save a value on the form that is not visible to the user.\n * For example, this sets the `ìd` property of a block in the Blocks field.\n */\nconst HiddenFieldComponent: React.FC<HiddenFieldProps> = (props) => {\n const { disableModifyingForm = true, path: pathFromProps, value: valueFromProps } = props\n\n const { path, setValue, value } = useField({\n potentiallyStalePath: pathFromProps,\n })\n\n useEffect(() => {\n if (valueFromProps !== undefined) {\n setValue(valueFromProps, disableModifyingForm)\n }\n }, [valueFromProps, setValue, disableModifyingForm])\n\n return (\n <input\n id={`field-${path?.replace(/\\./g, '__')}`}\n name={path}\n onChange={setValue}\n type=\"hidden\"\n value={(value as string) || ''}\n />\n )\n}\n\nexport const HiddenField = withCondition(HiddenFieldComponent)\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAIA,OAAOC,KAAA,IAASC,SAAS,QAAQ;AAEjC,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAE9B;;;;;AAKA,MAAMC,oBAAA,GAAmDC,KAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EACvD;IAAAQ,oBAAA,EAAAC,EAAA;IAAAC,IAAA,EAAAC,aAAA;IAAAC,KAAA,EAAAC;EAAA,IAAoFP,KAAA;EAA5E,MAAAE,oBAAA,GAAAC,EAA2B,KAAAK,SAAA,UAA3BL,EAA2B;EAAA,IAAAM,EAAA;EAAA,IAAAR,CAAA,QAAAI,aAAA;IAEQI,EAAA;MAAAC,oBAAA,EACnBL;IAAA;IACxBJ,CAAA,MAAAI,aAAA;IAAAJ,CAAA,MAAAQ,EAAA;EAAA;IAAAA,EAAA,GAAAR,CAAA;EAAA;EAFA;IAAAG,IAAA;IAAAO,QAAA;IAAAL;EAAA,IAAkCT,QAAA,CAASY,EAE3C;EAAA,IAAAG,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAZ,CAAA,QAAAC,oBAAA,IAAAD,CAAA,QAAAU,QAAA,IAAAV,CAAA,QAAAM,cAAA;IAEUK,EAAA,GAAAA,CAAA;MAAA,IACJL,cAAA,KAAAC,SAAmB;QACrBG,QAAA,CAASJ,cAAA,EAAgBL,oBAAA;MAAA;IAAA;IAE1BW,EAAA,IAACN,cAAA,EAAgBI,QAAA,EAAUT,oBAAA;IAAqBD,CAAA,MAAAC,oBAAA;IAAAD,CAAA,MAAAU,QAAA;IAAAV,CAAA,MAAAM,cAAA;IAAAN,CAAA,MAAAW,EAAA;IAAAX,CAAA,MAAAY,EAAA;EAAA;IAAAD,EAAA,GAAAX,CAAA;IAAAY,EAAA,GAAAZ,CAAA;EAAA;EAJnDL,SAAA,CAAUgB,EAIV,EAAGC,EAAgD;EAI3C,MAAAC,EAAA,YAASV,IAAA,EAAAW,OAAA,QAAqB,OAAO;EAIlC,MAAAC,EAAA,GAAAV,KAAC,IAAoB;EAAA,IAAAW,EAAA;EAAA,IAAAhB,CAAA,QAAAG,IAAA,IAAAH,CAAA,QAAAU,QAAA,IAAAV,CAAA,QAAAa,EAAA,IAAAb,CAAA,SAAAe,EAAA;IAL9BC,EAAA,GAAAC,IAAA,CAAC;MAAAC,EAAA,EACKL,EAAqC;MAAAM,IAAA,EACnChB,IAAA;MAAAiB,QAAA,EACIV,QAAA;MAAAW,IAAA,EACL;MAAAhB,KAAA,EACEU;IAAqB,C;;;;;;;;;SAL9BC,E;CAQJ;AAEA,OAAO,MAAMM,WAAA,GAAczB,aAAA,CAAcC,oBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/JSON/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAYxE,OAAO,cAAc,CAAA;AA8JrB,eAAO,MAAM,SAAS;;;;;+EAAoC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/JSON/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAYxE,OAAO,cAAc,CAAA;AA+JrB,eAAO,MAAM,SAAS;;;;;+EAAoC,CAAA"}
@@ -29,7 +29,7 @@ const JSONFieldComponent = props => {
29
29
  localized,
30
30
  required
31
31
  },
32
- path,
32
+ path: pathFromProps,
33
33
  readOnly,
34
34
  validate
35
35
  } = props;
@@ -55,11 +55,12 @@ const JSONFieldComponent = props => {
55
55
  } = {},
56
56
  disabled,
57
57
  initialValue,
58
+ path,
58
59
  setValue,
59
60
  showError,
60
61
  value: value_0
61
62
  } = useField({
62
- path,
63
+ potentiallyStalePath: pathFromProps,
63
64
  validate: memoizedValidate
64
65
  });
65
66
  const [initialStringValue, setInitialStringValue] = useState(() => (value_0 || initialValue) !== undefined ? JSON.stringify(value_0 ?? initialValue, null, 2) : undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["React","useCallback","useEffect","useMemo","useState","v4","uuidv4","CodeEditor","RenderCustomComponent","useField","withCondition","FieldDescription","FieldError","FieldLabel","mergeFieldStyles","fieldBaseClass","baseClass","JSONFieldComponent","props","field","admin","className","description","editorOptions","maxHeight","jsonSchema","label","localized","required","path","readOnly","validate","jsonError","setJsonError","inputChangeFromRef","useRef","editorKey","setEditorKey","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","initialValue","setValue","showError","initialStringValue","setInitialStringValue","undefined","JSON","stringify","handleMount","editor","monaco","languages","json","jsonDefaults","setDiagnosticsOptions","enableSchemaRequest","schemas","diagnosticsOptions","uri","newUri","includes","crypto","randomUUID","setModel","createModel","Uri","parse","handleChange","val","current","e","Date","toString","styles","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","message","defaultLanguage","onChange","onMount","wrapperProps","id","replace","JSONField"],"sources":["../../../src/fields/JSON/index.tsx"],"sourcesContent":["'use client'\nimport type { JSONFieldClientComponent } from 'payload'\n\nimport { type OnMount } from '@monaco-editor/react'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { CodeEditor } from '../../elements/CodeEditor/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nconst baseClass = 'json-field'\n\nconst JSONFieldComponent: JSONFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { className, description, editorOptions, maxHeight } = {},\n jsonSchema,\n label,\n localized,\n required,\n },\n path,\n readOnly,\n validate,\n } = props\n\n const [jsonError, setJsonError] = useState<string>()\n const inputChangeFromRef = React.useRef<'system' | 'user'>('system')\n const [editorKey, setEditorKey] = useState<string>('')\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, jsonError, required })\n }\n },\n [validate, required, jsonError],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n initialValue,\n setValue,\n showError,\n value,\n } = useField<string>({\n path,\n validate: memoizedValidate,\n })\n\n const [initialStringValue, setInitialStringValue] = useState<string | undefined>(() =>\n (value || initialValue) !== undefined\n ? JSON.stringify(value ?? initialValue, null, 2)\n : undefined,\n )\n\n const handleMount = useCallback<OnMount>(\n (editor, monaco) => {\n if (!jsonSchema) {\n return\n }\n\n monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\n enableSchemaRequest: true,\n schemas: [\n ...(monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas || []),\n jsonSchema,\n ],\n validate: true,\n })\n\n const uri = jsonSchema.uri\n const newUri = uri.includes('?')\n ? `${uri}&${crypto.randomUUID ? crypto.randomUUID() : uuidv4()}`\n : `${uri}?${crypto.randomUUID ? crypto.randomUUID() : uuidv4()}`\n\n editor.setModel(\n monaco.editor.createModel(JSON.stringify(value, null, 2), 'json', monaco.Uri.parse(newUri)),\n )\n },\n [jsonSchema, value],\n )\n\n const handleChange = useCallback(\n (val) => {\n if (readOnly || disabled) {\n return\n }\n inputChangeFromRef.current = 'user'\n\n try {\n setValue(val ? JSON.parse(val) : null)\n setJsonError(undefined)\n } catch (e) {\n setValue(val ? val : null)\n setJsonError(e)\n }\n },\n [readOnly, disabled, setValue],\n )\n\n useEffect(() => {\n if (inputChangeFromRef.current === 'system') {\n setInitialStringValue(\n (value || initialValue) !== undefined\n ? JSON.stringify(value ?? initialValue, null, 2)\n : undefined,\n )\n setEditorKey(new Date().toString())\n }\n\n inputChangeFromRef.current = 'system'\n }, [initialValue, value])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n (readOnly || disabled) && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError message={jsonError} path={path} showError={showError} />}\n />\n {BeforeInput}\n <CodeEditor\n defaultLanguage=\"json\"\n key={editorKey}\n maxHeight={maxHeight}\n onChange={handleChange}\n onMount={handleMount}\n options={editorOptions}\n readOnly={readOnly || disabled}\n value={initialStringValue}\n wrapperProps={{\n id: `field-${path?.replace(/\\./g, '__')}`,\n }}\n />\n {AfterInput}\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const JSONField = withCondition(JSONFieldComponent)\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ;AACjE,SAASC,EAAA,IAAMC,MAAM,QAAQ;AAE7B,SAASC,UAAU,QAAQ;AAC3B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,UAAU,QAAQ;AAC3B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAElB,MAAMC,kBAAA,GAAgDC,KAAA;EACpD,MAAM;IACJC,KAAK;IACLA,KAAA,EAAO;MACLC,KAAA,EAAO;QAAEC,SAAS;QAAEC,WAAW;QAAEC,aAAa;QAAEC;MAAS,CAAE,GAAG,CAAC,CAAC;MAChEC,UAAU;MACVC,KAAK;MACLC,SAAS;MACTC;IAAQ,CACT;IACDC,IAAI;IACJC,QAAQ;IACRC;EAAQ,CACT,GAAGb,KAAA;EAEJ,MAAM,CAACc,SAAA,EAAWC,YAAA,CAAa,GAAG7B,QAAA;EAClC,MAAM8B,kBAAA,GAAqBlC,KAAA,CAAMmC,MAAM,CAAoB;EAC3D,MAAM,CAACC,SAAA,EAAWC,YAAA,CAAa,GAAGjC,QAAA,CAAiB;EAEnD,MAAMkC,gBAAA,GAAmBrC,WAAA,CACvB,CAACsC,KAAA,EAAOC,OAAA;IACN,IAAI,OAAOT,QAAA,KAAa,YAAY;MAClC,OAAOA,QAAA,CAASQ,KAAA,EAAO;QAAE,GAAGC,OAAO;QAAER,SAAA;QAAWJ;MAAS;IAC3D;EACF,GACA,CAACG,QAAA,EAAUH,QAAA,EAAUI,SAAA,CAAU;EAGjC,MAAM;IACJS,gBAAA,EAAkB;MAAEC,UAAU;MAAEC,WAAW;MAAEC,WAAW;MAAEC,KAAK;MAAEC;IAAK,CAAE,GAAG,CAAC,CAAC;IAC7EC,QAAQ;IACRC,YAAY;IACZC,QAAQ;IACRC,SAAS;IACTX,KAAK,EAALA;EAAK,CACN,GAAG9B,QAAA,CAAiB;IACnBoB,IAAA;IACAE,QAAA,EAAUO;EACZ;EAEA,MAAM,CAACa,kBAAA,EAAoBC,qBAAA,CAAsB,GAAGhD,QAAA,CAA6B,MAC/E,CAACmC,OAAA,IAASS,YAAW,MAAOK,SAAA,GACxBC,IAAA,CAAKC,SAAS,CAAChB,OAAA,IAASS,YAAA,EAAc,MAAM,KAC5CK,SAAA;EAGN,MAAMG,WAAA,GAAcvD,WAAA,CAClB,CAACwD,MAAA,EAAQC,MAAA;IACP,IAAI,CAACjC,UAAA,EAAY;MACf;IACF;IAEAiC,MAAA,CAAOC,SAAS,CAACC,IAAI,CAACC,YAAY,CAACC,qBAAqB,CAAC;MACvDC,mBAAA,EAAqB;MACrBC,OAAA,EAAS,C,IACHN,MAAA,CAAOC,SAAS,CAACC,IAAI,CAACC,YAAY,CAACI,kBAAkB,CAACD,OAAO,IAAI,EAAE,GACvEvC,UAAA,CACD;MACDM,QAAA,EAAU;IACZ;IAEA,MAAMmC,GAAA,GAAMzC,UAAA,CAAWyC,GAAG;IAC1B,MAAMC,MAAA,GAASD,GAAA,CAAIE,QAAQ,CAAC,OACxB,GAAGF,GAAA,IAAOG,MAAA,CAAOC,UAAU,GAAGD,MAAA,CAAOC,UAAU,KAAKhE,MAAA,IAAU,GAC9D,GAAG4D,GAAA,IAAOG,MAAA,CAAOC,UAAU,GAAGD,MAAA,CAAOC,UAAU,KAAKhE,MAAA,IAAU;IAElEmD,MAAA,CAAOc,QAAQ,CACbb,MAAA,CAAOD,MAAM,CAACe,WAAW,CAAClB,IAAA,CAAKC,SAAS,CAAChB,OAAA,EAAO,MAAM,IAAI,QAAQmB,MAAA,CAAOe,GAAG,CAACC,KAAK,CAACP,MAAA;EAEvF,GACA,CAAC1C,UAAA,EAAYc,OAAA,CAAM;EAGrB,MAAMoC,YAAA,GAAe1E,WAAA,CAClB2E,GAAA;IACC,IAAI9C,QAAA,IAAYiB,QAAA,EAAU;MACxB;IACF;IACAb,kBAAA,CAAmB2C,OAAO,GAAG;IAE7B,IAAI;MACF5B,QAAA,CAAS2B,GAAA,GAAMtB,IAAA,CAAKoB,KAAK,CAACE,GAAA,IAAO;MACjC3C,YAAA,CAAaoB,SAAA;IACf,EAAE,OAAOyB,CAAA,EAAG;MACV7B,QAAA,CAAS2B,GAAA,GAAMA,GAAA,GAAM;MACrB3C,YAAA,CAAa6C,CAAA;IACf;EACF,GACA,CAAChD,QAAA,EAAUiB,QAAA,EAAUE,QAAA,CAAS;EAGhC/C,SAAA,CAAU;IACR,IAAIgC,kBAAA,CAAmB2C,OAAO,KAAK,UAAU;MAC3CzB,qBAAA,CACE,CAACb,OAAA,IAASS,YAAW,MAAOK,SAAA,GACxBC,IAAA,CAAKC,SAAS,CAAChB,OAAA,IAASS,YAAA,EAAc,MAAM,KAC5CK,SAAA;MAENhB,YAAA,CAAa,IAAI0C,IAAA,GAAOC,QAAQ;IAClC;IAEA9C,kBAAA,CAAmB2C,OAAO,GAAG;EAC/B,GAAG,CAAC7B,YAAA,EAAcT,OAAA,CAAM;EAExB,MAAM0C,MAAA,GAAS9E,OAAA,CAAQ,MAAMW,gBAAA,CAAiBK,KAAA,GAAQ,CAACA,KAAA,CAAM;EAE7D,oBACE+D,KAAA,CAAC;IACC7D,SAAA,EAAW,CACTN,cAAA,EACAC,SAAA,EACAK,SAAA,EACA6B,SAAA,IAAa,SACZ,CAAApB,QAAA,IAAYiB,QAAO,KAAM,YAC3B,CACEoC,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;IACRC,KAAA,EAAOL,MAAA;4BAEPM,IAAA,CAAC/E,qBAAA;MACCgF,eAAA,EAAiB1C,KAAA;MACjB2C,QAAA,eACEF,IAAA,CAAC1E,UAAA;QAAWa,KAAA,EAAOA,KAAA;QAAOC,SAAA,EAAWA,SAAA;QAAWE,IAAA,EAAMA,IAAA;QAAMD,QAAA,EAAUA;;qBAG1EsD,KAAA,CAAC;MAAI7D,SAAA,EAAW,GAAGN,cAAA,QAAsB;8BACvCwE,IAAA,CAAC/E,qBAAA;QACCgF,eAAA,EAAiB3C,KAAA;QACjB4C,QAAA,eAAUF,IAAA,CAAC3E,UAAA;UAAW8E,OAAA,EAAS1D,SAAA;UAAWH,IAAA,EAAMA,IAAA;UAAMqB,SAAA,EAAWA;;UAElEP,WAAA,E,aACD4C,IAAA,CAAChF,UAAA;QACCoF,eAAA,EAAgB;QAEhBnE,SAAA,EAAWA,SAAA;QACXoE,QAAA,EAAUjB,YAAA;QACVkB,OAAA,EAASrC,WAAA;QACThB,OAAA,EAASjB,aAAA;QACTO,QAAA,EAAUA,QAAA,IAAYiB,QAAA;QACtBR,KAAA,EAAOY,kBAAA;QACP2C,YAAA,EAAc;UACZC,EAAA,EAAI,SAASlE,IAAA,EAAMmE,OAAA,CAAQ,OAAO;QACpC;SATK5D,SAAA,GAWNM,UAAA;qBAEH6C,IAAA,CAAC/E,qBAAA;MACCgF,eAAA,EAAiB5C,WAAA;MACjB6C,QAAA,eAAUF,IAAA,CAAC5E,gBAAA;QAAiBW,WAAA,EAAaA,WAAA;QAAaO,IAAA,EAAMA;;;;AAIpE;AAEA,OAAO,MAAMoE,SAAA,GAAYvF,aAAA,CAAcO,kBAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["React","useCallback","useEffect","useMemo","useState","v4","uuidv4","CodeEditor","RenderCustomComponent","useField","withCondition","FieldDescription","FieldError","FieldLabel","mergeFieldStyles","fieldBaseClass","baseClass","JSONFieldComponent","props","field","admin","className","description","editorOptions","maxHeight","jsonSchema","label","localized","required","path","pathFromProps","readOnly","validate","jsonError","setJsonError","inputChangeFromRef","useRef","editorKey","setEditorKey","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","initialValue","setValue","showError","potentiallyStalePath","initialStringValue","setInitialStringValue","undefined","JSON","stringify","handleMount","editor","monaco","languages","json","jsonDefaults","setDiagnosticsOptions","enableSchemaRequest","schemas","diagnosticsOptions","uri","newUri","includes","crypto","randomUUID","setModel","createModel","Uri","parse","handleChange","val","current","e","Date","toString","styles","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","message","defaultLanguage","onChange","onMount","wrapperProps","id","replace","JSONField"],"sources":["../../../src/fields/JSON/index.tsx"],"sourcesContent":["'use client'\nimport type { JSONFieldClientComponent } from 'payload'\n\nimport { type OnMount } from '@monaco-editor/react'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\nimport { v4 as uuidv4 } from 'uuid'\n\nimport { CodeEditor } from '../../elements/CodeEditor/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nconst baseClass = 'json-field'\n\nconst JSONFieldComponent: JSONFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { className, description, editorOptions, maxHeight } = {},\n jsonSchema,\n label,\n localized,\n required,\n },\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n\n const [jsonError, setJsonError] = useState<string>()\n const inputChangeFromRef = React.useRef<'system' | 'user'>('system')\n const [editorKey, setEditorKey] = useState<string>('')\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, jsonError, required })\n }\n },\n [validate, required, jsonError],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n initialValue,\n path,\n setValue,\n showError,\n value,\n } = useField<string>({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const [initialStringValue, setInitialStringValue] = useState<string | undefined>(() =>\n (value || initialValue) !== undefined\n ? JSON.stringify(value ?? initialValue, null, 2)\n : undefined,\n )\n\n const handleMount = useCallback<OnMount>(\n (editor, monaco) => {\n if (!jsonSchema) {\n return\n }\n\n monaco.languages.json.jsonDefaults.setDiagnosticsOptions({\n enableSchemaRequest: true,\n schemas: [\n ...(monaco.languages.json.jsonDefaults.diagnosticsOptions.schemas || []),\n jsonSchema,\n ],\n validate: true,\n })\n\n const uri = jsonSchema.uri\n const newUri = uri.includes('?')\n ? `${uri}&${crypto.randomUUID ? crypto.randomUUID() : uuidv4()}`\n : `${uri}?${crypto.randomUUID ? crypto.randomUUID() : uuidv4()}`\n\n editor.setModel(\n monaco.editor.createModel(JSON.stringify(value, null, 2), 'json', monaco.Uri.parse(newUri)),\n )\n },\n [jsonSchema, value],\n )\n\n const handleChange = useCallback(\n (val) => {\n if (readOnly || disabled) {\n return\n }\n inputChangeFromRef.current = 'user'\n\n try {\n setValue(val ? JSON.parse(val) : null)\n setJsonError(undefined)\n } catch (e) {\n setValue(val ? val : null)\n setJsonError(e)\n }\n },\n [readOnly, disabled, setValue],\n )\n\n useEffect(() => {\n if (inputChangeFromRef.current === 'system') {\n setInitialStringValue(\n (value || initialValue) !== undefined\n ? JSON.stringify(value ?? initialValue, null, 2)\n : undefined,\n )\n setEditorKey(new Date().toString())\n }\n\n inputChangeFromRef.current = 'system'\n }, [initialValue, value])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n (readOnly || disabled) && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError message={jsonError} path={path} showError={showError} />}\n />\n {BeforeInput}\n <CodeEditor\n defaultLanguage=\"json\"\n key={editorKey}\n maxHeight={maxHeight}\n onChange={handleChange}\n onMount={handleMount}\n options={editorOptions}\n readOnly={readOnly || disabled}\n value={initialStringValue}\n wrapperProps={{\n id: `field-${path?.replace(/\\./g, '__')}`,\n }}\n />\n {AfterInput}\n </div>\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const JSONField = withCondition(JSONFieldComponent)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Join/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,eAAe,EAIhB,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAkB,MAAM,OAAO,CAAA;AAoOtC,eAAO,MAAM,SAAS;;;;+EAAoC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Join/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,eAAe,EAIhB,MAAM,SAAS,CAAA;AAIhB,OAAO,KAAkB,MAAM,OAAO,CAAA;AAqOtC,eAAO,MAAM,SAAS;;;;+EAAoC,CAAA"}
@@ -102,7 +102,7 @@ const JoinFieldComponent = props => {
102
102
  on,
103
103
  required
104
104
  },
105
- path
105
+ path: pathFromProps
106
106
  } = props;
107
107
  const {
108
108
  id: docID,
@@ -120,10 +120,11 @@ const JoinFieldComponent = props => {
120
120
  Error,
121
121
  Label
122
122
  } = {},
123
+ path,
123
124
  showError,
124
125
  value
125
126
  } = useField({
126
- path
127
+ potentiallyStalePath: pathFromProps
127
128
  });
128
129
  const filterOptions = useMemo(() => {
129
130
  if (!docID) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["ObjectIdImport","flattenTopLevelFields","React","useMemo","RelationshipTable","RenderCustomComponent","useField","withCondition","useConfig","useDocumentInfo","FieldDescription","FieldError","FieldLabel","fieldBaseClass","ObjectId","default","getInitialDrawerData","collectionSlug","config","docID","fields","segments","flattenedFields","path","field","find","name","type","value","Array","isArray","relationTo","hasMany","nextSegments","slice","length","initialData","id","toHexString","_block","blockReferences","blocks","block","blocksMap","blockInitialData","blockType","slug","JoinFieldComponent","props","admin","allowCreate","description","collection","label","localized","on","required","docConfig","getEntityConfig","customComponents","AfterInput","BeforeInput","Description","Error","Label","showError","filterOptions","targetField","where","equals","and","initialDrawerData","relatedCollection","split","_jsxs","className","filter","Boolean","join","replace","_jsx","CustomComponent","Fallback","disableTable","docs","style","margin","parent","joinPath","undefined","JoinField"],"sources":["../../../src/fields/Join/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientConfig,\n ClientField,\n JoinFieldClient,\n JoinFieldClientComponent,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { flattenTopLevelFields } from 'payload/shared'\nimport React, { useMemo } from 'react'\n\nimport { RelationshipTable } from '../../elements/RelationshipTable/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { fieldBaseClass } from '../index.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\n/**\n * Recursively builds the default data for joined collection\n */\nconst getInitialDrawerData = ({\n collectionSlug,\n config,\n docID,\n fields,\n segments,\n}: {\n collectionSlug: string\n config: ClientConfig\n docID: number | string\n fields: ClientField[]\n segments: string[]\n}) => {\n const flattenedFields = flattenTopLevelFields(fields)\n\n const path = segments[0]\n\n const field = flattenedFields.find((field) => field.name === path)\n\n if (!field) {\n return null\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n let value: { relationTo: string; value: number | string } | number | string = docID\n if (Array.isArray(field.relationTo)) {\n value = {\n relationTo: collectionSlug,\n value: docID,\n }\n }\n return {\n [field.name]: field.hasMany ? [value] : value,\n }\n }\n\n const nextSegments = segments.slice(1, segments.length)\n\n if (field.type === 'tab' || field.type === 'group') {\n return {\n [field.name]: getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: field.fields,\n segments: nextSegments,\n }),\n }\n }\n\n if (field.type === 'array') {\n const initialData = getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: field.fields,\n segments: nextSegments,\n })\n\n initialData.id = ObjectId().toHexString()\n\n return {\n [field.name]: [initialData],\n }\n }\n\n if (field.type === 'blocks') {\n for (const _block of field.blockReferences ?? field.blocks) {\n const block = typeof _block === 'string' ? config.blocksMap[_block] : _block\n\n const blockInitialData = getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: block.fields,\n segments: nextSegments,\n })\n\n if (blockInitialData) {\n blockInitialData.id = ObjectId().toHexString()\n blockInitialData.blockType = block.slug\n\n return {\n [field.name]: [blockInitialData],\n }\n }\n }\n }\n}\n\nconst JoinFieldComponent: JoinFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { allowCreate, description },\n collection,\n label,\n localized,\n on,\n required,\n },\n path,\n } = props\n\n const { id: docID, docConfig } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n showError,\n value,\n } = useField<PaginatedDocs>({\n path,\n })\n\n const filterOptions: null | Where = useMemo(() => {\n if (!docID) {\n return null\n }\n\n let value: { relationTo: string; value: number | string } | number | string = docID\n\n if (Array.isArray(field.targetField.relationTo)) {\n value = {\n relationTo: docConfig.slug,\n value,\n }\n }\n\n const where = Array.isArray(collection)\n ? {}\n : {\n [on]: {\n equals: value,\n },\n }\n\n if (field.where) {\n return {\n and: [where, field.where],\n }\n }\n\n return where\n }, [docID, collection, field.targetField.relationTo, field.where, on, docConfig?.slug])\n\n const initialDrawerData = useMemo(() => {\n const relatedCollection = getEntityConfig({\n collectionSlug: Array.isArray(field.collection) ? field.collection[0] : field.collection,\n })\n\n return getInitialDrawerData({\n collectionSlug: docConfig?.slug,\n config,\n docID,\n fields: relatedCollection.fields,\n segments: field.on.split('.'),\n })\n }, [getEntityConfig, field.collection, field.on, docConfig?.slug, docID, config])\n\n if (!docConfig) {\n return null\n }\n\n return (\n <div\n className={[fieldBaseClass, showError && 'error', 'join'].filter(Boolean).join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n >\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n <RelationshipTable\n AfterInput={AfterInput}\n allowCreate={typeof docID !== 'undefined' && allowCreate}\n BeforeInput={BeforeInput}\n disableTable={filterOptions === null}\n field={field as JoinFieldClient}\n filterOptions={filterOptions}\n initialData={docID && value ? value : ({ docs: [] } as PaginatedDocs)}\n initialDrawerData={initialDrawerData}\n Label={\n <h4 style={{ margin: 0 }}>\n {Label || (\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n )}\n </h4>\n }\n parent={\n Array.isArray(collection)\n ? {\n id: docID,\n collectionSlug: docConfig.slug,\n joinPath: path,\n }\n : undefined\n }\n relationTo={collection}\n />\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const JoinField = withCondition(JoinFieldComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["ObjectIdImport","flattenTopLevelFields","React","useMemo","RelationshipTable","RenderCustomComponent","useField","withCondition","useConfig","useDocumentInfo","FieldDescription","FieldError","FieldLabel","fieldBaseClass","ObjectId","default","getInitialDrawerData","collectionSlug","config","docID","fields","segments","flattenedFields","path","field","find","name","type","value","Array","isArray","relationTo","hasMany","nextSegments","slice","length","initialData","id","toHexString","_block","blockReferences","blocks","block","blocksMap","blockInitialData","blockType","slug","JoinFieldComponent","props","admin","allowCreate","description","collection","label","localized","on","required","pathFromProps","docConfig","getEntityConfig","customComponents","AfterInput","BeforeInput","Description","Error","Label","showError","potentiallyStalePath","filterOptions","targetField","where","equals","and","initialDrawerData","relatedCollection","split","_jsxs","className","filter","Boolean","join","replace","_jsx","CustomComponent","Fallback","disableTable","docs","style","margin","parent","joinPath","undefined","JoinField"],"sources":["../../../src/fields/Join/index.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientConfig,\n ClientField,\n JoinFieldClient,\n JoinFieldClientComponent,\n PaginatedDocs,\n Where,\n} from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { flattenTopLevelFields } from 'payload/shared'\nimport React, { useMemo } from 'react'\n\nimport { RelationshipTable } from '../../elements/RelationshipTable/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { fieldBaseClass } from '../index.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\n/**\n * Recursively builds the default data for joined collection\n */\nconst getInitialDrawerData = ({\n collectionSlug,\n config,\n docID,\n fields,\n segments,\n}: {\n collectionSlug: string\n config: ClientConfig\n docID: number | string\n fields: ClientField[]\n segments: string[]\n}) => {\n const flattenedFields = flattenTopLevelFields(fields)\n\n const path = segments[0]\n\n const field = flattenedFields.find((field) => field.name === path)\n\n if (!field) {\n return null\n }\n\n if (field.type === 'relationship' || field.type === 'upload') {\n let value: { relationTo: string; value: number | string } | number | string = docID\n if (Array.isArray(field.relationTo)) {\n value = {\n relationTo: collectionSlug,\n value: docID,\n }\n }\n return {\n [field.name]: field.hasMany ? [value] : value,\n }\n }\n\n const nextSegments = segments.slice(1, segments.length)\n\n if (field.type === 'tab' || field.type === 'group') {\n return {\n [field.name]: getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: field.fields,\n segments: nextSegments,\n }),\n }\n }\n\n if (field.type === 'array') {\n const initialData = getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: field.fields,\n segments: nextSegments,\n })\n\n initialData.id = ObjectId().toHexString()\n\n return {\n [field.name]: [initialData],\n }\n }\n\n if (field.type === 'blocks') {\n for (const _block of field.blockReferences ?? field.blocks) {\n const block = typeof _block === 'string' ? config.blocksMap[_block] : _block\n\n const blockInitialData = getInitialDrawerData({\n collectionSlug,\n config,\n docID,\n fields: block.fields,\n segments: nextSegments,\n })\n\n if (blockInitialData) {\n blockInitialData.id = ObjectId().toHexString()\n blockInitialData.blockType = block.slug\n\n return {\n [field.name]: [blockInitialData],\n }\n }\n }\n }\n}\n\nconst JoinFieldComponent: JoinFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: { allowCreate, description },\n collection,\n label,\n localized,\n on,\n required,\n },\n path: pathFromProps,\n } = props\n\n const { id: docID, docConfig } = useDocumentInfo()\n\n const { config, getEntityConfig } = useConfig()\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n path,\n showError,\n value,\n } = useField<PaginatedDocs>({\n potentiallyStalePath: pathFromProps,\n })\n\n const filterOptions: null | Where = useMemo(() => {\n if (!docID) {\n return null\n }\n\n let value: { relationTo: string; value: number | string } | number | string = docID\n\n if (Array.isArray(field.targetField.relationTo)) {\n value = {\n relationTo: docConfig.slug,\n value,\n }\n }\n\n const where = Array.isArray(collection)\n ? {}\n : {\n [on]: {\n equals: value,\n },\n }\n\n if (field.where) {\n return {\n and: [where, field.where],\n }\n }\n\n return where\n }, [docID, collection, field.targetField.relationTo, field.where, on, docConfig?.slug])\n\n const initialDrawerData = useMemo(() => {\n const relatedCollection = getEntityConfig({\n collectionSlug: Array.isArray(field.collection) ? field.collection[0] : field.collection,\n })\n\n return getInitialDrawerData({\n collectionSlug: docConfig?.slug,\n config,\n docID,\n fields: relatedCollection.fields,\n segments: field.on.split('.'),\n })\n }, [getEntityConfig, field.collection, field.on, docConfig?.slug, docID, config])\n\n if (!docConfig) {\n return null\n }\n\n return (\n <div\n className={[fieldBaseClass, showError && 'error', 'join'].filter(Boolean).join(' ')}\n id={`field-${path?.replace(/\\./g, '__')}`}\n >\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n <RelationshipTable\n AfterInput={AfterInput}\n allowCreate={typeof docID !== 'undefined' && allowCreate}\n BeforeInput={BeforeInput}\n disableTable={filterOptions === null}\n field={field as JoinFieldClient}\n filterOptions={filterOptions}\n initialData={docID && value ? value : ({ docs: [] } as PaginatedDocs)}\n initialDrawerData={initialDrawerData}\n Label={\n <h4 style={{ margin: 0 }}>\n {Label || (\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n )}\n </h4>\n }\n parent={\n Array.isArray(collection)\n ? {\n id: docID,\n collectionSlug: docConfig.slug,\n joinPath: path,\n }\n : undefined\n }\n relationTo={collection}\n />\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const JoinField = withCondition(JoinFieldComponent)\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Number/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAaxE,OAAO,cAAc,CAAA;AA+LrB,eAAO,MAAM,WAAW;;;;;;+EAAsC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Number/index.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAaxE,OAAO,cAAc,CAAA;AAgMrB,eAAO,MAAM,WAAW;;;;;;+EAAsC,CAAA"}
@@ -34,7 +34,7 @@ const NumberFieldComponent = props => {
34
34
  required
35
35
  },
36
36
  onChange: onChangeFromProps,
37
- path,
37
+ path: pathFromProps,
38
38
  readOnly,
39
39
  validate
40
40
  } = props;
@@ -61,11 +61,12 @@ const NumberFieldComponent = props => {
61
61
  Label
62
62
  } = {},
63
63
  disabled,
64
+ path,
64
65
  setValue,
65
66
  showError,
66
67
  value: value_0
67
68
  } = useField({
68
- path,
69
+ potentiallyStalePath: pathFromProps,
69
70
  validate: memoizedValidate
70
71
  });
71
72
  const handleChange = useCallback(e => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["getTranslation","isNumber","React","useCallback","useEffect","useMemo","useState","ReactSelect","RenderCustomComponent","useField","withCondition","useTranslation","FieldDescription","FieldError","FieldLabel","mergeFieldStyles","fieldBaseClass","NumberFieldComponent","props","field","admin","className","description","placeholder","step","hasMany","label","localized","max","Infinity","maxRows","min","required","onChange","onChangeFromProps","path","readOnly","validate","i18n","t","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","handleChange","e","val","parseFloat","target","newVal","Number","isNaN","valueToRender","setValueToRender","handleHasManyChange","selectedOption","newValue","Array","isArray","map","option","index","id","toString","styles","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","replace","filterOption","_","rawInput","isOverHasMany","length","isClearable","isCreatable","isMulti","isSortable","noOptionsMessage","name","onWheel","blur","type","NumberField"],"sources":["../../../src/fields/Number/index.tsx"],"sourcesContent":["'use client'\nimport type { NumberFieldClientComponent, NumberFieldClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { isNumber } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { Option } from '../../elements/ReactSelect/types.js'\n\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport './index.scss'\nimport { fieldBaseClass } from '../shared/index.js'\n\nconst NumberFieldComponent: NumberFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: {\n className,\n description,\n placeholder,\n step = 1,\n } = {} as NumberFieldClientProps['field']['admin'],\n hasMany = false,\n label,\n localized,\n max = Infinity,\n maxRows = Infinity,\n min = -Infinity,\n required,\n },\n onChange: onChangeFromProps,\n path,\n readOnly,\n validate,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, max, min, required })\n }\n },\n [validate, min, max, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n setValue,\n showError,\n value,\n } = useField<number | number[]>({\n path,\n validate: memoizedValidate,\n })\n\n const handleChange = useCallback(\n (e) => {\n const val = parseFloat(e.target.value)\n let newVal = val\n\n if (Number.isNaN(val)) {\n newVal = null\n }\n\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newVal)\n }\n\n setValue(newVal)\n },\n [onChangeFromProps, setValue],\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) => Number(option.value?.value || option.value))\n } else {\n newValue = [Number(selectedOption.value?.value || selectedOption.value)]\n }\n\n setValue(newValue)\n }\n },\n [readOnly, disabled, 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 toString: () => `${val}${index}`,\n value: (val as unknown as Record<string, number>)?.value || val,\n }, // You're probably wondering, why the hell is this done that way? Well, 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 }\n }),\n )\n }\n }, [value, hasMany])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'number',\n className,\n showError && 'error',\n (readOnly || disabled) && 'read-only',\n hasMany && 'has-many',\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n {hasMany ? (\n <ReactSelect\n className={`field-${path.replace(/\\./g, '__')}`}\n disabled={readOnly || disabled}\n filterOption={(_, rawInput) => {\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n return isNumber(rawInput) && !isOverHasMany\n }}\n isClearable\n isCreatable\n isMulti\n isSortable\n noOptionsMessage={() => {\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n if (isOverHasMany) {\n return t('validation:limitReached', { max: maxRows, value: value.length + 1 })\n }\n return null\n }}\n // numberOnly\n onChange={handleHasManyChange}\n options={[]}\n placeholder={t('general:enterAValue')}\n showError={showError}\n value={valueToRender as Option[]}\n />\n ) : (\n <div>\n <input\n disabled={readOnly || disabled}\n id={`field-${path.replace(/\\./g, '__')}`}\n max={max}\n min={min}\n name={path}\n onChange={handleChange}\n onWheel={(e) => {\n // @ts-expect-error\n e.target.blur()\n }}\n placeholder={getTranslation(placeholder, i18n)}\n step={step}\n type=\"number\"\n value={typeof value === 'number' ? value : ''}\n />\n </div>\n )}\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n </div>\n )\n}\n\nexport const NumberField = withCondition(NumberFieldComponent)\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["getTranslation","isNumber","React","useCallback","useEffect","useMemo","useState","ReactSelect","RenderCustomComponent","useField","withCondition","useTranslation","FieldDescription","FieldError","FieldLabel","mergeFieldStyles","fieldBaseClass","NumberFieldComponent","props","field","admin","className","description","placeholder","step","hasMany","label","localized","max","Infinity","maxRows","min","required","onChange","onChangeFromProps","path","pathFromProps","readOnly","validate","i18n","t","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","potentiallyStalePath","handleChange","e","val","parseFloat","target","newVal","Number","isNaN","valueToRender","setValueToRender","handleHasManyChange","selectedOption","newValue","Array","isArray","map","option","index","id","toString","styles","_jsxs","filter","Boolean","join","style","_jsx","CustomComponent","Fallback","replace","filterOption","_","rawInput","isOverHasMany","length","isClearable","isCreatable","isMulti","isSortable","noOptionsMessage","name","onWheel","blur","type","NumberField"],"sources":["../../../src/fields/Number/index.tsx"],"sourcesContent":["'use client'\nimport type { NumberFieldClientComponent, NumberFieldClientProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { isNumber } from 'payload/shared'\nimport React, { useCallback, useEffect, useMemo, useState } from 'react'\n\nimport type { Option } from '../../elements/ReactSelect/types.js'\n\nimport { ReactSelect } from '../../elements/ReactSelect/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { FieldDescription } from '../FieldDescription/index.js'\nimport { FieldError } from '../FieldError/index.js'\nimport { FieldLabel } from '../FieldLabel/index.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport './index.scss'\nimport { fieldBaseClass } from '../shared/index.js'\n\nconst NumberFieldComponent: NumberFieldClientComponent = (props) => {\n const {\n field,\n field: {\n admin: {\n className,\n description,\n placeholder,\n step = 1,\n } = {} as NumberFieldClientProps['field']['admin'],\n hasMany = false,\n label,\n localized,\n max = Infinity,\n maxRows = Infinity,\n min = -Infinity,\n required,\n },\n onChange: onChangeFromProps,\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, max, min, required })\n }\n },\n [validate, min, max, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n disabled,\n path,\n setValue,\n showError,\n value,\n } = useField<number | number[]>({\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const handleChange = useCallback(\n (e) => {\n const val = parseFloat(e.target.value)\n let newVal = val\n\n if (Number.isNaN(val)) {\n newVal = null\n }\n\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newVal)\n }\n\n setValue(newVal)\n },\n [onChangeFromProps, setValue],\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) => Number(option.value?.value || option.value))\n } else {\n newValue = [Number(selectedOption.value?.value || selectedOption.value)]\n }\n\n setValue(newValue)\n }\n },\n [readOnly, disabled, 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 toString: () => `${val}${index}`,\n value: (val as unknown as Record<string, number>)?.value || val,\n }, // You're probably wondering, why the hell is this done that way? Well, 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 }\n }),\n )\n }\n }, [value, hasMany])\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n 'number',\n className,\n showError && 'error',\n (readOnly || disabled) && 'read-only',\n hasMany && 'has-many',\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n {BeforeInput}\n {hasMany ? (\n <ReactSelect\n className={`field-${path.replace(/\\./g, '__')}`}\n disabled={readOnly || disabled}\n filterOption={(_, rawInput) => {\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n return isNumber(rawInput) && !isOverHasMany\n }}\n isClearable\n isCreatable\n isMulti\n isSortable\n noOptionsMessage={() => {\n const isOverHasMany = Array.isArray(value) && value.length >= maxRows\n if (isOverHasMany) {\n return t('validation:limitReached', { max: maxRows, value: value.length + 1 })\n }\n return null\n }}\n // numberOnly\n onChange={handleHasManyChange}\n options={[]}\n placeholder={t('general:enterAValue')}\n showError={showError}\n value={valueToRender as Option[]}\n />\n ) : (\n <div>\n <input\n disabled={readOnly || disabled}\n id={`field-${path.replace(/\\./g, '__')}`}\n max={max}\n min={min}\n name={path}\n onChange={handleChange}\n onWheel={(e) => {\n // @ts-expect-error\n e.target.blur()\n }}\n placeholder={getTranslation(placeholder, i18n)}\n step={step}\n type=\"number\"\n value={typeof value === 'number' ? value : ''}\n />\n </div>\n )}\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n </div>\n )\n}\n\nexport const NumberField = withCondition(NumberFieldComponent)\n"],"mappings":"AAAA;;;AAGA,SAASA,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,OAAOC,KAAA,IAASC,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,QAAQ,QAAQ;AAIjE,SAASC,WAAW,QAAQ;AAC5B,SAASC,qBAAqB,QAAQ;AACtC,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,cAAc,QAAQ;AAC/B,SAASC,gBAAgB,QAAQ;AACjC,SAASC,UAAU,QAAQ;AAC3B,SAASC,UAAU,QAAQ;AAC3B,SAASC,gBAAgB,QAAQ;AACjC,OAAO;AACP,SAASC,cAAc,QAAQ;AAE/B,MAAMC,oBAAA,GAAoDC,KAAA;EACxD,MAAM;IACJC,KAAK;IACLA,KAAA,EAAO;MACLC,KAAA,EAAO;QACLC,SAAS;QACTC,WAAW;QACXC,WAAW;QACXC,IAAA,GAAO;MAAC,CACT,GAAG,CAAC,CAA6C;MAClDC,OAAA,GAAU,KAAK;MACfC,KAAK;MACLC,SAAS;MACTC,GAAA,GAAMC,QAAQ;MACdC,OAAA,GAAUD,QAAQ;MAClBE,GAAA,GAAM,CAACF,QAAQ;MACfG;IAAQ,CACT;IACDC,QAAA,EAAUC,iBAAiB;IAC3BC,IAAA,EAAMC,aAAa;IACnBC,QAAQ;IACRC;EAAQ,CACT,GAAGpB,KAAA;EAEJ,MAAM;IAAEqB,IAAI;IAAEC;EAAC,CAAE,GAAG7B,cAAA;EAEpB,MAAM8B,gBAAA,GAAmBtC,WAAA,CACvB,CAACuC,KAAA,EAAOC,OAAA;IACN,IAAI,OAAOL,QAAA,KAAa,YAAY;MAClC,OAAOA,QAAA,CAASI,KAAA,EAAO;QAAE,GAAGC,OAAO;QAAEf,GAAA;QAAKG,GAAA;QAAKC;MAAS;IAC1D;EACF,GACA,CAACM,QAAA,EAAUP,GAAA,EAAKH,GAAA,EAAKI,QAAA,CAAS;EAGhC,MAAM;IACJY,gBAAA,EAAkB;MAAEC,UAAU;MAAEC,WAAW;MAAEC,WAAW;MAAEC,KAAK;MAAEC;IAAK,CAAE,GAAG,CAAC,CAAC;IAC7EC,QAAQ;IACRf,IAAI;IACJgB,QAAQ;IACRC,SAAS;IACTV,KAAK,EAALA;EAAK,CACN,GAAGjC,QAAA,CAA4B;IAC9B4C,oBAAA,EAAsBjB,aAAA;IACtBE,QAAA,EAAUG;EACZ;EAEA,MAAMa,YAAA,GAAenD,WAAA,CAClBoD,CAAA;IACC,MAAMC,GAAA,GAAMC,UAAA,CAAWF,CAAA,CAAEG,MAAM,CAAChB,KAAK;IACrC,IAAIiB,MAAA,GAASH,GAAA;IAEb,IAAII,MAAA,CAAOC,KAAK,CAACL,GAAA,GAAM;MACrBG,MAAA,GAAS;IACX;IAEA,IAAI,OAAOzB,iBAAA,KAAsB,YAAY;MAC3CA,iBAAA,CAAkByB,MAAA;IACpB;IAEAR,QAAA,CAASQ,MAAA;EACX,GACA,CAACzB,iBAAA,EAAmBiB,QAAA,CAAS;EAG/B,MAAM,CAACW,aAAA,EAAeC,gBAAA,CAAiB,GAAGzD,QAAA,CAExC,EAAE,EAAE;EAAA;EAEN,MAAM0D,mBAAA,GAAsB7D,WAAA,CACzB8D,cAAA;IACC,IAAI,EAAE5B,QAAA,IAAYa,QAAO,GAAI;MAC3B,IAAIgB,QAAA;MACJ,IAAI,CAACD,cAAA,EAAgB;QACnBC,QAAA,GAAW,EAAE;MACf,OAAO,IAAIC,KAAA,CAAMC,OAAO,CAACH,cAAA,GAAiB;QACxCC,QAAA,GAAWD,cAAA,CAAeI,GAAG,CAAEC,MAAA,IAAWV,MAAA,CAAOU,MAAA,CAAO5B,KAAK,EAAEA,KAAA,IAAS4B,MAAA,CAAO5B,KAAK;MACtF,OAAO;QACLwB,QAAA,GAAW,CAACN,MAAA,CAAOK,cAAA,CAAevB,KAAK,EAAEA,KAAA,IAASuB,cAAA,CAAevB,KAAK,EAAE;MAC1E;MAEAS,QAAA,CAASe,QAAA;IACX;EACF,GACA,CAAC7B,QAAA,EAAUa,QAAA,EAAUC,QAAA,CAAS;EAGhC;EACA/C,SAAA,CAAU;IACR,IAAIqB,OAAA,IAAW0C,KAAA,CAAMC,OAAO,CAAC1B,OAAA,GAAQ;MACnCqB,gBAAA,CACErB,OAAA,CAAM2B,GAAG,CAAC,CAACb,KAAA,EAAKe,KAAA;QACd,OAAO;UACLC,EAAA,EAAI,GAAGhB,KAAA,GAAMe,KAAA,EAAO;UACpB7C,KAAA,EAAO,GAAG8B,KAAA,EAAK;UACfd,KAAA,EAAO;YACL+B,QAAA,EAAUA,CAAA,KAAM,GAAGjB,KAAA,GAAMe,KAAA,EAAO;YAChC7B,KAAA,EAAOc,KAAC,EAA2Cd,KAAA,IAASc;UAC9D;QACF;MACF;IAEJ;EACF,GAAG,CAACd,OAAA,EAAOjB,OAAA,CAAQ;EAEnB,MAAMiD,MAAA,GAASrE,OAAA,CAAQ,MAAMU,gBAAA,CAAiBI,KAAA,GAAQ,CAACA,KAAA,CAAM;EAE7D,oBACEwD,KAAA,CAAC;IACCtD,SAAA,EAAW,CACTL,cAAA,EACA,UACAK,SAAA,EACA+B,SAAA,IAAa,SACZ,CAAAf,QAAA,IAAYa,QAAO,KAAM,aAC1BzB,OAAA,IAAW,WACZ,CACEmD,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;IACRC,KAAA,EAAOL,MAAA;4BAEPM,IAAA,CAACxE,qBAAA;MACCyE,eAAA,EAAiBhC,KAAA;MACjBiC,QAAA,eACEF,IAAA,CAAClE,UAAA;QAAWY,KAAA,EAAOA,KAAA;QAAOC,SAAA,EAAWA,SAAA;QAAWQ,IAAA,EAAMA,IAAA;QAAMH,QAAA,EAAUA;;qBAG1E2C,KAAA,CAAC;MAAItD,SAAA,EAAW,GAAGL,cAAA,QAAsB;8BACvCgE,IAAA,CAACxE,qBAAA;QACCyE,eAAA,EAAiBjC,KAAA;QACjBkC,QAAA,eAAUF,IAAA,CAACnE,UAAA;UAAWsB,IAAA,EAAMA,IAAA;UAAMiB,SAAA,EAAWA;;UAE9CN,WAAA,EACArB,OAAA,gBACCuD,IAAA,CAACzE,WAAA;QACCc,SAAA,EAAW,SAASc,IAAA,CAAKgD,OAAO,CAAC,OAAO,OAAO;QAC/CjC,QAAA,EAAUb,QAAA,IAAYa,QAAA;QACtBkC,YAAA,EAAcA,CAACC,CAAA,EAAGC,QAAA;UAChB,MAAMC,aAAA,GAAgBpB,KAAA,CAAMC,OAAO,CAAC1B,OAAA,KAAUA,OAAA,CAAM8C,MAAM,IAAI1D,OAAA;UAC9D,OAAO7B,QAAA,CAASqF,QAAA,KAAa,CAACC,aAAA;QAChC;QACAE,WAAW;QACXC,WAAW;QACXC,OAAO;QACPC,UAAU;QACVC,gBAAA,EAAkBA,CAAA;UAChB,MAAMN,eAAA,GAAgBpB,KAAA,CAAMC,OAAO,CAAC1B,OAAA,KAAUA,OAAA,CAAM8C,MAAM,IAAI1D,OAAA;UAC9D,IAAIyD,eAAA,EAAe;YACjB,OAAO/C,CAAA,CAAE,2BAA2B;cAAEZ,GAAA,EAAKE,OAAA;cAASY,KAAA,EAAOA,OAAA,CAAM8C,MAAM,GAAG;YAAE;UAC9E;UACA,OAAO;QACT;QACA;QACAvD,QAAA,EAAU+B,mBAAA;QACVrB,OAAA,EAAS,EAAE;QACXpB,WAAA,EAAaiB,CAAA,CAAE;QACfY,SAAA,EAAWA,SAAA;QACXV,KAAA,EAAOoB;wBAGTkB,IAAA,CAAC;kBACC,aAAAA,IAAA,CAAC;UACC9B,QAAA,EAAUb,QAAA,IAAYa,QAAA;UACtBsB,EAAA,EAAI,SAASrC,IAAA,CAAKgD,OAAO,CAAC,OAAO,OAAO;UACxCvD,GAAA,EAAKA,GAAA;UACLG,GAAA,EAAKA,GAAA;UACL+D,IAAA,EAAM3D,IAAA;UACNF,QAAA,EAAUqB,YAAA;UACVyC,OAAA,EAAUxC,GAAA;YACR;YACAA,GAAA,CAAEG,MAAM,CAACsC,IAAI;UACf;UACAzE,WAAA,EAAavB,cAAA,CAAeuB,WAAA,EAAagB,IAAA;UACzCf,IAAA,EAAMA,IAAA;UACNyE,IAAA,EAAK;UACLvD,KAAA,EAAO,OAAOA,OAAA,KAAU,WAAWA,OAAA,GAAQ;;UAIhDG,UAAA,E,aACDmC,IAAA,CAACxE,qBAAA;QACCyE,eAAA,EAAiBlC,WAAA;QACjBmC,QAAA,eAAUF,IAAA,CAACpE,gBAAA;UAAiBU,WAAA,EAAaA,WAAA;UAAaa,IAAA,EAAMA;;;;;AAKtE;AAEA,OAAO,MAAM+D,WAAA,GAAcxF,aAAA,CAAcO,oBAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Point/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAG9E,OAAO,KAA+B,MAAM,OAAO,CAAA;AAUnD,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,mBAAmB,EAAE,yBA6IjC,CAAA;AAED,eAAO,MAAM,UAAU;;;;;+EAAqC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Point/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,yBAAyB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAG9E,OAAO,KAA+B,MAAM,OAAO,CAAA;AAUnD,OAAO,cAAc,CAAA;AAKrB,eAAO,MAAM,mBAAmB,EAAE,yBA8IjC,CAAA;AAED,eAAO,MAAM,UAAU;;;;;+EAAqC,CAAA"}
@@ -28,7 +28,7 @@ export const PointFieldComponent = props => {
28
28
  localized,
29
29
  required
30
30
  },
31
- path,
31
+ path: pathFromProps,
32
32
  readOnly,
33
33
  validate
34
34
  } = props;
@@ -53,11 +53,12 @@ export const PointFieldComponent = props => {
53
53
  Label
54
54
  } = {},
55
55
  disabled,
56
+ path,
56
57
  setValue,
57
58
  showError,
58
59
  value: value_0 = [null, null]
59
60
  } = useField({
60
- path,
61
+ potentiallyStalePath: pathFromProps,
61
62
  validate: memoizedValidate
62
63
  });
63
64
  const handleChange = useCallback((e, index) => {