@payloadcms/ui 3.44.0-canary.8 → 3.44.0-internal.6b79dc2
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.
- package/dist/elements/EditMany/DrawerContent.d.ts +5 -1
- package/dist/elements/EditMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/EditMany/DrawerContent.js +5 -1
- package/dist/elements/EditMany/DrawerContent.js.map +1 -1
- package/dist/elements/EditMany/index.d.ts +1 -0
- package/dist/elements/EditMany/index.d.ts.map +1 -1
- package/dist/elements/EditMany/index.js +32 -18
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/EmailAndUsername/index.d.ts +1 -0
- package/dist/elements/EmailAndUsername/index.d.ts.map +1 -1
- package/dist/elements/EmailAndUsername/index.js +64 -30
- package/dist/elements/EmailAndUsername/index.js.map +1 -1
- package/dist/elements/EmailAndUsername/index.scss +9 -0
- package/dist/elements/PublishMany/DrawerContent.d.ts +1 -0
- package/dist/elements/PublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/PublishMany/DrawerContent.js +5 -1
- package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/PublishMany/index.d.ts +1 -0
- package/dist/elements/PublishMany/index.d.ts.map +1 -1
- package/dist/elements/PublishMany/index.js +31 -17
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.d.ts +1 -0
- package/dist/elements/UnpublishMany/DrawerContent.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/DrawerContent.js +5 -1
- package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
- package/dist/elements/UnpublishMany/index.d.ts +1 -0
- package/dist/elements/UnpublishMany/index.d.ts.map +1 -1
- package/dist/elements/UnpublishMany/index.js +31 -17
- package/dist/elements/UnpublishMany/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +2 -0
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +16 -16
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Checkbox/index.d.ts.map +1 -1
- package/dist/fields/Checkbox/index.js +9 -0
- package/dist/fields/Checkbox/index.js.map +1 -1
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +5 -0
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/getFolderResultsComponentAndData.d.ts.map +1 -1
- package/dist/utilities/getFolderResultsComponentAndData.js +1 -2
- package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
- package/dist/views/Edit/Auth/index.d.ts.map +1 -1
- package/dist/views/Edit/Auth/index.js +163 -136
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.d.ts.map +1 -1
- package/dist/views/Edit/SetDocumentTitle/index.js +24 -21
- package/dist/views/Edit/SetDocumentTitle/index.js.map +1 -1
- package/dist/views/List/ListSelection/index.d.ts.map +1 -1
- package/dist/views/List/ListSelection/index.js +31 -18
- package/dist/views/List/ListSelection/index.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Checkbox/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Checkbox/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA+B,MAAM,OAAO,CAAA;AAEnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAapD,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,cAAc,CAAA;AAIrB,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,CAAA;AA4G3E,eAAO,MAAM,aAAa;;;;;;;;;;+EAAwC,CAAA"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
|
+
import { rtlLanguages } from '@payloadcms/translations';
|
|
4
5
|
import React, { useCallback, useMemo } from 'react';
|
|
5
6
|
import { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js';
|
|
6
7
|
import { FieldDescription } from '../../fields/FieldDescription/index.js';
|
|
@@ -9,6 +10,7 @@ import { useForm } from '../../forms/Form/context.js';
|
|
|
9
10
|
import { useField } from '../../forms/useField/index.js';
|
|
10
11
|
import { withCondition } from '../../forms/withCondition/index.js';
|
|
11
12
|
import { useEditDepth } from '../../providers/EditDepth/index.js';
|
|
13
|
+
import { useTranslation } from '../../providers/Translation/index.js';
|
|
12
14
|
import { generateFieldID } from '../../utilities/generateFieldID.js';
|
|
13
15
|
import { mergeFieldStyles } from '../mergeFieldStyles.js';
|
|
14
16
|
import { fieldBaseClass } from '../shared/index.js';
|
|
@@ -40,6 +42,12 @@ const CheckboxFieldComponent = props => {
|
|
|
40
42
|
uuid
|
|
41
43
|
} = useForm();
|
|
42
44
|
const editDepth = useEditDepth();
|
|
45
|
+
const {
|
|
46
|
+
i18n: {
|
|
47
|
+
language
|
|
48
|
+
}
|
|
49
|
+
} = useTranslation();
|
|
50
|
+
const isRTL = rtlLanguages.includes(language);
|
|
43
51
|
const memoizedValidate = useCallback((value, options) => {
|
|
44
52
|
if (typeof validate === 'function') {
|
|
45
53
|
return validate(value, {
|
|
@@ -83,6 +91,7 @@ const CheckboxFieldComponent = props => {
|
|
|
83
91
|
children: [/*#__PURE__*/_jsx(RenderCustomComponent, {
|
|
84
92
|
CustomComponent: Error,
|
|
85
93
|
Fallback: /*#__PURE__*/_jsx(FieldError, {
|
|
94
|
+
alignCaret: isRTL ? 'right' : 'left',
|
|
86
95
|
path: path,
|
|
87
96
|
showError: showError
|
|
88
97
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useCallback","useMemo","RenderCustomComponent","FieldDescription","FieldError","useForm","useField","withCondition","useEditDepth","generateFieldID","mergeFieldStyles","fieldBaseClass","CheckboxInput","baseClass","CheckboxFieldComponent","props","id","checked","checkedFromProps","disableFormData","field","admin","className","description","label","required","onChange","onChangeFromProps","partialChecked","path","pathFromProps","readOnly","validate","uuid","editDepth","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","potentiallyStalePath","onToggle","Boolean","fieldID","styles","_jsxs","filter","join","style","_jsx","CustomComponent","Fallback","inputRef","name","CheckboxField"],"sources":["../../../src/fields/Checkbox/index.tsx"],"sourcesContent":["'use client'\nimport type {\n CheckboxFieldClientComponent,\n CheckboxFieldClientProps,\n CheckboxFieldValidation,\n} from 'payload'\n\nimport React, { useCallback, useMemo } from 'react'\n\nimport type { CheckboxInputProps } from './Input.js'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { generateFieldID } from '../../utilities/generateFieldID.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { CheckboxInput } from './Input.js'\nimport './index.scss'\n\nconst baseClass = 'checkbox'\n\nexport { CheckboxFieldClientProps, CheckboxInput, type CheckboxInputProps }\n\nconst CheckboxFieldComponent: CheckboxFieldClientComponent = (props) => {\n const {\n id,\n checked: checkedFromProps,\n disableFormData,\n field,\n field: {\n admin: { className, description } = {} as CheckboxFieldClientProps['field']['admin'],\n label,\n required,\n } = {} as CheckboxFieldClientProps['field'],\n onChange: onChangeFromProps,\n partialChecked,\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n\n const { uuid } = useForm()\n\n const editDepth = useEditDepth()\n\n const memoizedValidate: CheckboxFieldValidation = 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 disableFormData,\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const onToggle = useCallback(() => {\n if (!readOnly) {\n setValue(!value)\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(!value)\n }\n }\n }, [onChangeFromProps, readOnly, setValue, value])\n\n const checked = checkedFromProps || Boolean(value)\n\n const fieldID = id || generateFieldID(path, editDepth, uuid)\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n showError && 'error',\n className,\n value && `${baseClass}--checked`,\n (readOnly || disabled) && `${baseClass}--read-only`,\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError}
|
|
1
|
+
{"version":3,"file":"index.js","names":["rtlLanguages","React","useCallback","useMemo","RenderCustomComponent","FieldDescription","FieldError","useForm","useField","withCondition","useEditDepth","useTranslation","generateFieldID","mergeFieldStyles","fieldBaseClass","CheckboxInput","baseClass","CheckboxFieldComponent","props","id","checked","checkedFromProps","disableFormData","field","admin","className","description","label","required","onChange","onChangeFromProps","partialChecked","path","pathFromProps","readOnly","validate","uuid","editDepth","i18n","language","isRTL","includes","memoizedValidate","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","disabled","setValue","showError","potentiallyStalePath","onToggle","Boolean","fieldID","styles","_jsxs","filter","join","style","_jsx","CustomComponent","Fallback","alignCaret","inputRef","name","CheckboxField"],"sources":["../../../src/fields/Checkbox/index.tsx"],"sourcesContent":["'use client'\nimport type {\n CheckboxFieldClientComponent,\n CheckboxFieldClientProps,\n CheckboxFieldValidation,\n} from 'payload'\n\nimport { rtlLanguages } from '@payloadcms/translations'\nimport React, { useCallback, useMemo } from 'react'\n\nimport type { CheckboxInputProps } from './Input.js'\n\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { useForm } from '../../forms/Form/context.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { generateFieldID } from '../../utilities/generateFieldID.js'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { CheckboxInput } from './Input.js'\nimport './index.scss'\n\nconst baseClass = 'checkbox'\n\nexport { CheckboxFieldClientProps, CheckboxInput, type CheckboxInputProps }\n\nconst CheckboxFieldComponent: CheckboxFieldClientComponent = (props) => {\n const {\n id,\n checked: checkedFromProps,\n disableFormData,\n field,\n field: {\n admin: { className, description } = {} as CheckboxFieldClientProps['field']['admin'],\n label,\n required,\n } = {} as CheckboxFieldClientProps['field'],\n onChange: onChangeFromProps,\n partialChecked,\n path: pathFromProps,\n readOnly,\n validate,\n } = props\n\n const { uuid } = useForm()\n\n const editDepth = useEditDepth()\n\n const {\n i18n: { language },\n } = useTranslation()\n const isRTL = (rtlLanguages as readonly string[]).includes(language)\n\n const memoizedValidate: CheckboxFieldValidation = 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 disableFormData,\n potentiallyStalePath: pathFromProps,\n validate: memoizedValidate,\n })\n\n const onToggle = useCallback(() => {\n if (!readOnly) {\n setValue(!value)\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(!value)\n }\n }\n }, [onChangeFromProps, readOnly, setValue, value])\n\n const checked = checkedFromProps || Boolean(value)\n\n const fieldID = id || generateFieldID(path, editDepth, uuid)\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n showError && 'error',\n className,\n value && `${baseClass}--checked`,\n (readOnly || disabled) && `${baseClass}--read-only`,\n ]\n .filter(Boolean)\n .join(' ')}\n style={styles}\n >\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={\n <FieldError alignCaret={isRTL ? 'right' : 'left'} path={path} showError={showError} />\n }\n />\n <CheckboxInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n checked={checked}\n id={fieldID}\n inputRef={null}\n Label={Label}\n label={label}\n name={path}\n onToggle={onToggle}\n partialChecked={partialChecked}\n readOnly={readOnly || disabled}\n required={required}\n />\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n\nexport const CheckboxField = withCondition(CheckboxFieldComponent)\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldReducer.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/fieldReducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,SAAS,EAAO,MAAM,SAAS,CAAA;AAMxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAQ7C;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"fieldReducer.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/fieldReducer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,SAAS,EAAO,MAAM,SAAS,CAAA;AAMxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAQ7C;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,CA+Y7E"}
|
|
@@ -135,6 +135,11 @@ export function fieldReducer(state, action) {
|
|
|
135
135
|
if (duplicateRowMetadata.id) {
|
|
136
136
|
duplicateRowMetadata.id = new ObjectId().toHexString();
|
|
137
137
|
}
|
|
138
|
+
if (rowsMetadata[rowIndex]?.customComponents?.RowLabel) {
|
|
139
|
+
duplicateRowMetadata.customComponents = {
|
|
140
|
+
RowLabel: rowsMetadata[rowIndex].customComponents.RowLabel
|
|
141
|
+
};
|
|
142
|
+
}
|
|
138
143
|
const duplicateRowState = deepCopyObjectSimpleWithoutReactComponents(rows[rowIndex]);
|
|
139
144
|
if (duplicateRowState.id) {
|
|
140
145
|
duplicateRowState.id.value = new ObjectId().toHexString();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldReducer.js","names":["ObjectIdImport","dequal","deepCopyObjectSimpleWithoutReactComponents","mergeServerFormState","flattenRows","separateRows","ObjectId","default","fieldReducer","state","action","type","blockType","path","rowIndex","rowIndexFromArgs","subFieldState","rows","length","withNewRow","newRow","id","value","toHexString","collapsed","isLoading","splice","initialValue","valid","remainingFields","siblingRows","newState","passesCondition","disableFormData","errorPaths","errors","forEach","message","fieldPath","errorMessage","segments","split","push","fieldErrorPath","parentPath","slice","join","Object","entries","reduce","acc","fieldState","fieldErrorPaths","errorACC","startsWith","changed","newErrorPaths","Array","isArray","includes","rowsMetadata","duplicateRowMetadata","duplicateRowState","key","keys","filter","endsWith","idState","isValid","acceptValues","prevStateRef","serverState","currentState","incomingState","current","moveFromIndex","moveToIndex","topLevelRows","copyOfMovingRow","rowsWithinField","copyOfMovingRow2","rowIndexArg","Math","max","min","undefined","optimize","newField","oldField","sanitize","field","values","updatedRows","formState"],"sources":["../../../src/forms/Form/fieldReducer.ts"],"sourcesContent":["'use client'\nimport type { FormField, FormState, Row } from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { deepCopyObjectSimpleWithoutReactComponents } from 'payload/shared'\n\nimport type { FieldAction } from './types.js'\n\nimport { mergeServerFormState } from './mergeServerFormState.js'\nimport { flattenRows, separateRows } from './rows.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\n/**\n * Reducer which modifies the form field state (all the current data of the fields in the form). When called using dispatch, it will return a new state object.\n */\nexport function fieldReducer(state: FormState, action: FieldAction): FormState {\n switch (action.type) {\n case 'ADD_ROW': {\n const { blockType, path, rowIndex: rowIndexFromArgs, subFieldState = {} } = action\n\n const rowIndex =\n typeof rowIndexFromArgs === 'number' ? rowIndexFromArgs : state[path]?.rows?.length || 0\n\n const withNewRow = [...(state[path]?.rows || [])]\n\n const newRow: Row = {\n id: (subFieldState?.id?.value as string) || new ObjectId().toHexString(),\n collapsed: false,\n isLoading: true,\n }\n\n if (blockType) {\n newRow.blockType = blockType\n }\n\n withNewRow.splice(rowIndex, 0, newRow)\n\n if (blockType) {\n subFieldState.blockType = {\n initialValue: blockType,\n valid: true,\n value: blockType,\n }\n }\n\n // add new row to array _field state_\n const { remainingFields, rows: siblingRows } = separateRows(path, state)\n\n siblingRows.splice(rowIndex, 0, subFieldState)\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [`${path}.${rowIndex}.id`]: {\n initialValue: newRow.id,\n passesCondition: true,\n valid: true,\n value: newRow.id,\n },\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: withNewRow,\n value: siblingRows.length,\n },\n }\n\n return newState\n }\n\n case 'ADD_SERVER_ERRORS': {\n let newState = { ...state }\n\n const errorPaths: { fieldErrorPath: string; parentPath: string }[] = []\n\n action.errors.forEach(({ message, path: fieldPath }) => {\n newState[fieldPath] = {\n ...(newState[fieldPath] || {\n initialValue: null,\n value: null,\n }),\n errorMessage: message,\n valid: false,\n }\n\n const segments = fieldPath.split('.')\n if (segments.length > 1) {\n errorPaths.push({\n fieldErrorPath: fieldPath,\n parentPath: segments.slice(0, segments.length - 1).join('.'),\n })\n }\n })\n\n newState = Object.entries(newState).reduce((acc, [path, fieldState]) => {\n const fieldErrorPaths = errorPaths.reduce((errorACC, { fieldErrorPath, parentPath }) => {\n if (parentPath.startsWith(path)) {\n errorACC.push(fieldErrorPath)\n }\n return errorACC\n }, [])\n\n let changed = false\n\n if (fieldErrorPaths.length > 0) {\n const newErrorPaths = Array.isArray(fieldState.errorPaths) ? fieldState.errorPaths : []\n\n fieldErrorPaths.forEach((fieldErrorPath) => {\n if (!newErrorPaths.includes(fieldErrorPath)) {\n newErrorPaths.push(fieldErrorPath)\n changed = true\n }\n })\n\n if (changed) {\n acc[path] = {\n ...fieldState,\n errorPaths: newErrorPaths,\n }\n }\n }\n\n if (!changed) {\n acc[path] = fieldState\n }\n\n return acc\n }, {})\n\n return newState\n }\n\n case 'DUPLICATE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n const rowsMetadata = [...(state[path].rows || [])]\n\n const duplicateRowMetadata = deepCopyObjectSimpleWithoutReactComponents(\n rowsMetadata[rowIndex],\n )\n\n if (duplicateRowMetadata.id) {\n duplicateRowMetadata.id = new ObjectId().toHexString()\n }\n\n const duplicateRowState = deepCopyObjectSimpleWithoutReactComponents(rows[rowIndex])\n\n if (duplicateRowState.id) {\n duplicateRowState.id.value = new ObjectId().toHexString()\n duplicateRowState.id.initialValue = new ObjectId().toHexString()\n }\n\n for (const key of Object.keys(duplicateRowState).filter((key) => key.endsWith('.id'))) {\n const idState = duplicateRowState[key]\n\n if (idState && typeof idState.value === 'string' && ObjectId.isValid(idState.value)) {\n duplicateRowState[key].value = new ObjectId().toHexString()\n duplicateRowState[key].initialValue = new ObjectId().toHexString()\n }\n }\n\n // If there are subfields\n if (Object.keys(duplicateRowState).length > 0) {\n // Add new object containing subfield names to unflattenedRows array\n rows.splice(rowIndex + 1, 0, duplicateRowState)\n rowsMetadata.splice(rowIndex + 1, 0, duplicateRowMetadata)\n }\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, rows),\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: rowsMetadata,\n value: rows.length,\n },\n }\n\n return newState\n }\n\n case 'MERGE_SERVER_STATE': {\n const { acceptValues, prevStateRef, serverState } = action\n\n const newState = mergeServerFormState({\n acceptValues,\n currentState: state || {},\n incomingState: serverState,\n })\n\n prevStateRef.current = newState\n\n return newState\n }\n\n case 'MOVE_ROW': {\n const { moveFromIndex, moveToIndex, path } = action\n\n // Handle moving rows on the top-level, i.e. `array.0.text` -> `array.1.text`\n const { remainingFields, rows: topLevelRows } = separateRows(path, state)\n const copyOfMovingRow = topLevelRows[moveFromIndex]\n topLevelRows.splice(moveFromIndex, 1)\n topLevelRows.splice(moveToIndex, 0, copyOfMovingRow)\n\n // modify array/block internal row state (i.e. collapsed, blockType)\n const rowsWithinField = [...(state[path]?.rows || [])]\n const copyOfMovingRow2 = { ...rowsWithinField[moveFromIndex] }\n rowsWithinField.splice(moveFromIndex, 1)\n rowsWithinField.splice(moveToIndex, 0, copyOfMovingRow2)\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, topLevelRows),\n [path]: {\n ...state[path],\n rows: rowsWithinField,\n },\n }\n\n return newState\n }\n\n case 'REMOVE': {\n const newState = { ...state }\n if (newState[action.path]) {\n delete newState[action.path]\n }\n return newState\n }\n\n case 'REMOVE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n const rowsMetadata = [...(state[path]?.rows || [])]\n\n rows.splice(rowIndex, 1)\n rowsMetadata.splice(rowIndex, 1)\n\n const newState: FormState = {\n ...remainingFields,\n [path]: {\n ...state[path],\n disableFormData: rows.length > 0,\n rows: rowsMetadata,\n value: rows.length,\n },\n ...flattenRows(path, rows),\n }\n\n return newState\n }\n\n case 'REPLACE_ROW': {\n const { blockType, path, rowIndex: rowIndexArg, subFieldState = {} } = action\n\n const { remainingFields, rows: siblingRows } = separateRows(path, state)\n const rowIndex = Math.max(0, Math.min(rowIndexArg, siblingRows?.length - 1 || 0))\n\n const rowsMetadata = [...(state[path]?.rows || [])]\n rowsMetadata[rowIndex] = {\n id: new ObjectId().toHexString(),\n blockType: blockType || undefined,\n collapsed: false,\n }\n\n if (blockType) {\n subFieldState.blockType = {\n initialValue: blockType,\n valid: true,\n value: blockType,\n }\n }\n\n // replace form _field state_\n siblingRows[rowIndex] = subFieldState\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: rowsMetadata,\n value: siblingRows.length,\n },\n }\n\n return newState\n }\n\n case 'REPLACE_STATE': {\n if (action.optimize !== false) {\n // Only update fields that have changed\n // by comparing old value / initialValue to new\n // ..\n // This is a performance enhancement for saving\n // large documents with hundreds of fields\n const newState: FormState = {}\n\n for (const [path, newField] of Object.entries(action.state)) {\n const oldField = state[path]\n\n if (newField.valid !== false) {\n newField.valid = true\n }\n if (newField.passesCondition !== false) {\n newField.passesCondition = true\n }\n\n if (!dequal(oldField, newField)) {\n newState[path] = newField\n } else if (oldField) {\n newState[path] = oldField\n }\n }\n\n return newState\n }\n\n // TODO: Remove this in 4.0 - this is a temporary fix to prevent a breaking change\n if (action.sanitize) {\n for (const field of Object.values(action.state)) {\n if (field.valid !== false) {\n field.valid = true\n }\n if (field.passesCondition !== false) {\n field.passesCondition = true\n }\n }\n }\n // If we're not optimizing, just set the state to the new state\n return action.state\n }\n\n case 'SET_ALL_ROWS_COLLAPSED': {\n const { path, updatedRows } = action\n\n return {\n ...state,\n [path]: {\n ...state[path],\n rows: updatedRows,\n },\n }\n }\n\n case 'SET_ROW_COLLAPSED': {\n const { path, updatedRows } = action\n\n const newState = {\n ...state,\n [path]: {\n ...state[path],\n rows: updatedRows,\n },\n }\n\n return newState\n }\n\n case 'UPDATE': {\n const newField = Object.entries(action).reduce(\n (field, [key, value]) => {\n if (\n [\n 'disableFormData',\n 'errorMessage',\n 'initialValue',\n 'rows',\n 'valid',\n 'validate',\n 'value',\n ].includes(key)\n ) {\n return {\n ...field,\n [key]: value,\n }\n }\n\n return field\n },\n state?.[action.path] || ({} as FormField),\n )\n\n const newState = {\n ...state,\n [action.path]: newField,\n }\n\n return newState\n }\n\n case 'UPDATE_MANY': {\n const newState = { ...state }\n\n Object.entries(action.formState).forEach(([path, field]) => {\n newState[path] = field\n })\n\n return newState\n }\n\n default: {\n return state\n }\n }\n}\n"],"mappings":"AAAA;;AAGA,OAAOA,cAAA,MAAoB;AAC3B,SAASC,MAAM,QAAQ,cAAa,CAAC;AACrC,SAASC,0CAA0C,QAAQ;AAI3D,SAASC,oBAAoB,QAAQ;AACrC,SAASC,WAAW,EAAEC,YAAY,QAAQ;AAE1C,MAAMC,QAAA,GAAYN,cAAA,CAAeO,OAAO,IACtCP,cAAA;AAEF;;;AAGA,OAAO,SAASQ,aAAaC,KAAgB,EAAEC,MAAmB;EAChE,QAAQA,MAAA,CAAOC,IAAI;IACjB,KAAK;MAAW;QACd,MAAM;UAAEC,SAAS;UAAEC,IAAI;UAAEC,QAAA,EAAUC,gBAAgB;UAAEC,aAAA,GAAgB,CAAC;QAAC,CAAE,GAAGN,MAAA;QAE5E,MAAMI,QAAA,GACJ,OAAOC,gBAAA,KAAqB,WAAWA,gBAAA,GAAmBN,KAAK,CAACI,IAAA,CAAK,EAAEI,IAAA,EAAMC,MAAA,IAAU;QAEzF,MAAMC,UAAA,GAAa,C,IAAKV,KAAK,CAACI,IAAA,CAAK,EAAEI,IAAA,IAAQ,EAAE,EAAE;QAEjD,MAAMG,MAAA,GAAc;UAClBC,EAAA,EAAIL,aAAC,EAAeK,EAAA,EAAIC,KAAA,IAAoB,IAAIhB,QAAA,GAAWiB,WAAW;UACtEC,SAAA,EAAW;UACXC,SAAA,EAAW;QACb;QAEA,IAAIb,SAAA,EAAW;UACbQ,MAAA,CAAOR,SAAS,GAAGA,SAAA;QACrB;QAEAO,UAAA,CAAWO,MAAM,CAACZ,QAAA,EAAU,GAAGM,MAAA;QAE/B,IAAIR,SAAA,EAAW;UACbI,aAAA,CAAcJ,SAAS,GAAG;YACxBe,YAAA,EAAcf,SAAA;YACdgB,KAAA,EAAO;YACPN,KAAA,EAAOV;UACT;QACF;QAEA;QACA,MAAM;UAAEiB,eAAe;UAAEZ,IAAA,EAAMa;QAAW,CAAE,GAAGzB,YAAA,CAAaQ,IAAA,EAAMJ,KAAA;QAElEqB,WAAA,CAAYJ,MAAM,CAACZ,QAAA,EAAU,GAAGE,aAAA;QAEhC,MAAMe,QAAA,GAAsB;UAC1B,GAAGF,eAAe;UAClB,GAAGzB,WAAA,CAAYS,IAAA,EAAMiB,WAAA,CAAY;UACjC,CAAC,GAAGjB,IAAA,IAAQC,QAAA,KAAa,GAAG;YAC1Ba,YAAA,EAAcP,MAAA,CAAOC,EAAE;YACvBW,eAAA,EAAiB;YACjBJ,KAAA,EAAO;YACPN,KAAA,EAAOF,MAAA,CAAOC;UAChB;UACA,CAACR,IAAA,GAAO;YACN,GAAGJ,KAAK,CAACI,IAAA,CAAK;YACdoB,eAAA,EAAiB;YACjBhB,IAAA,EAAME,UAAA;YACNG,KAAA,EAAOQ,WAAA,CAAYZ;UACrB;QACF;QAEA,OAAOa,QAAA;MACT;IAEA,KAAK;MAAqB;QACxB,IAAIA,QAAA,GAAW;UAAE,GAAGtB;QAAM;QAE1B,MAAMyB,UAAA,GAA+D,EAAE;QAEvExB,MAAA,CAAOyB,MAAM,CAACC,OAAO,CAAC,CAAC;UAAEC,OAAO;UAAExB,IAAA,EAAMyB;QAAS,CAAE;UACjDP,QAAQ,CAACO,SAAA,CAAU,GAAG;YACpB,IAAIP,QAAQ,CAACO,SAAA,CAAU,IAAI;cACzBX,YAAA,EAAc;cACdL,KAAA,EAAO;YACT,CAAC;YACDiB,YAAA,EAAcF,OAAA;YACdT,KAAA,EAAO;UACT;UAEA,MAAMY,QAAA,GAAWF,SAAA,CAAUG,KAAK,CAAC;UACjC,IAAID,QAAA,CAAStB,MAAM,GAAG,GAAG;YACvBgB,UAAA,CAAWQ,IAAI,CAAC;cACdC,cAAA,EAAgBL,SAAA;cAChBM,UAAA,EAAYJ,QAAA,CAASK,KAAK,CAAC,GAAGL,QAAA,CAAStB,MAAM,GAAG,GAAG4B,IAAI,CAAC;YAC1D;UACF;QACF;QAEAf,QAAA,GAAWgB,MAAA,CAAOC,OAAO,CAACjB,QAAA,EAAUkB,MAAM,CAAC,CAACC,GAAA,EAAK,CAACrC,IAAA,EAAMsC,UAAA,CAAW;UACjE,MAAMC,eAAA,GAAkBlB,UAAA,CAAWe,MAAM,CAAC,CAACI,QAAA,EAAU;YAAEV,cAAc;YAAEC;UAAU,CAAE;YACjF,IAAIA,UAAA,CAAWU,UAAU,CAACzC,IAAA,GAAO;cAC/BwC,QAAA,CAASX,IAAI,CAACC,cAAA;YAChB;YACA,OAAOU,QAAA;UACT,GAAG,EAAE;UAEL,IAAIE,OAAA,GAAU;UAEd,IAAIH,eAAA,CAAgBlC,MAAM,GAAG,GAAG;YAC9B,MAAMsC,aAAA,GAAgBC,KAAA,CAAMC,OAAO,CAACP,UAAA,CAAWjB,UAAU,IAAIiB,UAAA,CAAWjB,UAAU,GAAG,EAAE;YAEvFkB,eAAA,CAAgBhB,OAAO,CAAEO,cAAA;cACvB,IAAI,CAACa,aAAA,CAAcG,QAAQ,CAAChB,cAAA,GAAiB;gBAC3Ca,aAAA,CAAcd,IAAI,CAACC,cAAA;gBACnBY,OAAA,GAAU;cACZ;YACF;YAEA,IAAIA,OAAA,EAAS;cACXL,GAAG,CAACrC,IAAA,CAAK,GAAG;gBACV,GAAGsC,UAAU;gBACbjB,UAAA,EAAYsB;cACd;YACF;UACF;UAEA,IAAI,CAACD,OAAA,EAAS;YACZL,GAAG,CAACrC,IAAA,CAAK,GAAGsC,UAAA;UACd;UAEA,OAAOD,GAAA;QACT,GAAG,CAAC;QAEJ,OAAOnB,QAAA;MACT;IAEA,KAAK;MAAiB;QACpB,MAAM;UAAElB,IAAI;UAAEC;QAAQ,CAAE,GAAGJ,MAAA;QAC3B,MAAM;UAAEmB,eAAe;UAAEZ;QAAI,CAAE,GAAGZ,YAAA,CAAaQ,IAAA,EAAMJ,KAAA;QACrD,MAAMmD,YAAA,GAAe,C,IAAKnD,KAAK,CAACI,IAAA,CAAK,CAACI,IAAI,IAAI,EAAE,EAAE;QAElD,MAAM4C,oBAAA,GAAuB3D,0CAAA,CAC3B0D,YAAY,CAAC9C,QAAA,CAAS;QAGxB,IAAI+C,oBAAA,CAAqBxC,EAAE,EAAE;UAC3BwC,oBAAA,CAAqBxC,EAAE,GAAG,IAAIf,QAAA,GAAWiB,WAAW;QACtD;QAEA,MAAMuC,iBAAA,GAAoB5D,0CAAA,CAA2Ce,IAAI,CAACH,QAAA,CAAS;QAEnF,IAAIgD,iBAAA,CAAkBzC,EAAE,EAAE;UACxByC,iBAAA,CAAkBzC,EAAE,CAACC,KAAK,GAAG,IAAIhB,QAAA,GAAWiB,WAAW;UACvDuC,iBAAA,CAAkBzC,EAAE,CAACM,YAAY,GAAG,IAAIrB,QAAA,GAAWiB,WAAW;QAChE;QAEA,KAAK,MAAMwC,GAAA,IAAOhB,MAAA,CAAOiB,IAAI,CAACF,iBAAA,EAAmBG,MAAM,CAAEF,GAAA,IAAQA,GAAA,CAAIG,QAAQ,CAAC,SAAS;UACrF,MAAMC,OAAA,GAAUL,iBAAiB,CAACC,GAAA,CAAI;UAEtC,IAAII,OAAA,IAAW,OAAOA,OAAA,CAAQ7C,KAAK,KAAK,YAAYhB,QAAA,CAAS8D,OAAO,CAACD,OAAA,CAAQ7C,KAAK,GAAG;YACnFwC,iBAAiB,CAACC,GAAA,CAAI,CAACzC,KAAK,GAAG,IAAIhB,QAAA,GAAWiB,WAAW;YACzDuC,iBAAiB,CAACC,GAAA,CAAI,CAACpC,YAAY,GAAG,IAAIrB,QAAA,GAAWiB,WAAW;UAClE;QACF;QAEA;QACA,IAAIwB,MAAA,CAAOiB,IAAI,CAACF,iBAAA,EAAmB5C,MAAM,GAAG,GAAG;UAC7C;UACAD,IAAA,CAAKS,MAAM,CAACZ,QAAA,GAAW,GAAG,GAAGgD,iBAAA;UAC7BF,YAAA,CAAalC,MAAM,CAACZ,QAAA,GAAW,GAAG,GAAG+C,oBAAA;QACvC;QAEA,MAAM9B,QAAA,GAAW;UACf,GAAGF,eAAe;UAClB,GAAGzB,WAAA,CAAYS,IAAA,EAAMI,IAAA,CAAK;UAC1B,CAACJ,IAAA,GAAO;YACN,GAAGJ,KAAK,CAACI,IAAA,CAAK;YACdoB,eAAA,EAAiB;YACjBhB,IAAA,EAAM2C,YAAA;YACNtC,KAAA,EAAOL,IAAA,CAAKC;UACd;QACF;QAEA,OAAOa,QAAA;MACT;IAEA,KAAK;MAAsB;QACzB,MAAM;UAAEsC,YAAY;UAAEC,YAAY;UAAEC;QAAW,CAAE,GAAG7D,MAAA;QAEpD,MAAMqB,QAAA,GAAW5B,oBAAA,CAAqB;UACpCkE,YAAA;UACAG,YAAA,EAAc/D,KAAA,IAAS,CAAC;UACxBgE,aAAA,EAAeF;QACjB;QAEAD,YAAA,CAAaI,OAAO,GAAG3C,QAAA;QAEvB,OAAOA,QAAA;MACT;IAEA,KAAK;MAAY;QACf,MAAM;UAAE4C,aAAa;UAAEC,WAAW;UAAE/D;QAAI,CAAE,GAAGH,MAAA;QAE7C;QACA,MAAM;UAAEmB,eAAe;UAAEZ,IAAA,EAAM4D;QAAY,CAAE,GAAGxE,YAAA,CAAaQ,IAAA,EAAMJ,KAAA;QACnE,MAAMqE,eAAA,GAAkBD,YAAY,CAACF,aAAA,CAAc;QACnDE,YAAA,CAAanD,MAAM,CAACiD,aAAA,EAAe;QACnCE,YAAA,CAAanD,MAAM,CAACkD,WAAA,EAAa,GAAGE,eAAA;QAEpC;QACA,MAAMC,eAAA,GAAkB,C,IAAKtE,KAAK,CAACI,IAAA,CAAK,EAAEI,IAAA,IAAQ,EAAE,EAAE;QACtD,MAAM+D,gBAAA,GAAmB;UAAE,GAAGD,eAAe,CAACJ,aAAA;QAAe;QAC7DI,eAAA,CAAgBrD,MAAM,CAACiD,aAAA,EAAe;QACtCI,eAAA,CAAgBrD,MAAM,CAACkD,WAAA,EAAa,GAAGI,gBAAA;QAEvC,MAAMjD,QAAA,GAAW;UACf,GAAGF,eAAe;UAClB,GAAGzB,WAAA,CAAYS,IAAA,EAAMgE,YAAA,CAAa;UAClC,CAAChE,IAAA,GAAO;YACN,GAAGJ,KAAK,CAACI,IAAA,CAAK;YACdI,IAAA,EAAM8D;UACR;QACF;QAEA,OAAOhD,QAAA;MACT;IAEA,KAAK;MAAU;QACb,MAAMA,QAAA,GAAW;UAAE,GAAGtB;QAAM;QAC5B,IAAIsB,QAAQ,CAACrB,MAAA,CAAOG,IAAI,CAAC,EAAE;UACzB,OAAOkB,QAAQ,CAACrB,MAAA,CAAOG,IAAI,CAAC;QAC9B;QACA,OAAOkB,QAAA;MACT;IAEA,KAAK;MAAc;QACjB,MAAM;UAAElB,IAAI;UAAEC;QAAQ,CAAE,GAAGJ,MAAA;QAC3B,MAAM;UAAEmB,eAAe;UAAEZ;QAAI,CAAE,GAAGZ,YAAA,CAAaQ,IAAA,EAAMJ,KAAA;QACrD,MAAMmD,YAAA,GAAe,C,IAAKnD,KAAK,CAACI,IAAA,CAAK,EAAEI,IAAA,IAAQ,EAAE,EAAE;QAEnDA,IAAA,CAAKS,MAAM,CAACZ,QAAA,EAAU;QACtB8C,YAAA,CAAalC,MAAM,CAACZ,QAAA,EAAU;QAE9B,MAAMiB,QAAA,GAAsB;UAC1B,GAAGF,eAAe;UAClB,CAAChB,IAAA,GAAO;YACN,GAAGJ,KAAK,CAACI,IAAA,CAAK;YACdoB,eAAA,EAAiBhB,IAAA,CAAKC,MAAM,GAAG;YAC/BD,IAAA,EAAM2C,YAAA;YACNtC,KAAA,EAAOL,IAAA,CAAKC;UACd;UACA,GAAGd,WAAA,CAAYS,IAAA,EAAMI,IAAA;QACvB;QAEA,OAAOc,QAAA;MACT;IAEA,KAAK;MAAe;QAClB,MAAM;UAAEnB,SAAS;UAAEC,IAAI;UAAEC,QAAA,EAAUmE,WAAW;UAAEjE,aAAA,GAAgB,CAAC;QAAC,CAAE,GAAGN,MAAA;QAEvE,MAAM;UAAEmB,eAAe;UAAEZ,IAAA,EAAMa;QAAW,CAAE,GAAGzB,YAAA,CAAaQ,IAAA,EAAMJ,KAAA;QAClE,MAAMK,QAAA,GAAWoE,IAAA,CAAKC,GAAG,CAAC,GAAGD,IAAA,CAAKE,GAAG,CAACH,WAAA,EAAanD,WAAA,EAAaZ,MAAA,GAAS,KAAK;QAE9E,MAAM0C,YAAA,GAAe,C,IAAKnD,KAAK,CAACI,IAAA,CAAK,EAAEI,IAAA,IAAQ,EAAE,EAAE;QACnD2C,YAAY,CAAC9C,QAAA,CAAS,GAAG;UACvBO,EAAA,EAAI,IAAIf,QAAA,GAAWiB,WAAW;UAC9BX,SAAA,EAAWA,SAAA,IAAayE,SAAA;UACxB7D,SAAA,EAAW;QACb;QAEA,IAAIZ,SAAA,EAAW;UACbI,aAAA,CAAcJ,SAAS,GAAG;YACxBe,YAAA,EAAcf,SAAA;YACdgB,KAAA,EAAO;YACPN,KAAA,EAAOV;UACT;QACF;QAEA;QACAkB,WAAW,CAAChB,QAAA,CAAS,GAAGE,aAAA;QAExB,MAAMe,QAAA,GAAsB;UAC1B,GAAGF,eAAe;UAClB,GAAGzB,WAAA,CAAYS,IAAA,EAAMiB,WAAA,CAAY;UACjC,CAACjB,IAAA,GAAO;YACN,GAAGJ,KAAK,CAACI,IAAA,CAAK;YACdoB,eAAA,EAAiB;YACjBhB,IAAA,EAAM2C,YAAA;YACNtC,KAAA,EAAOQ,WAAA,CAAYZ;UACrB;QACF;QAEA,OAAOa,QAAA;MACT;IAEA,KAAK;MAAiB;QACpB,IAAIrB,MAAA,CAAO4E,QAAQ,KAAK,OAAO;UAC7B;UACA;UACA;UACA;UACA;UACA,MAAMvD,QAAA,GAAsB,CAAC;UAE7B,KAAK,MAAM,CAAClB,IAAA,EAAM0E,QAAA,CAAS,IAAIxC,MAAA,CAAOC,OAAO,CAACtC,MAAA,CAAOD,KAAK,GAAG;YAC3D,MAAM+E,QAAA,GAAW/E,KAAK,CAACI,IAAA,CAAK;YAE5B,IAAI0E,QAAA,CAAS3D,KAAK,KAAK,OAAO;cAC5B2D,QAAA,CAAS3D,KAAK,GAAG;YACnB;YACA,IAAI2D,QAAA,CAASvD,eAAe,KAAK,OAAO;cACtCuD,QAAA,CAASvD,eAAe,GAAG;YAC7B;YAEA,IAAI,CAAC/B,MAAA,CAAOuF,QAAA,EAAUD,QAAA,GAAW;cAC/BxD,QAAQ,CAAClB,IAAA,CAAK,GAAG0E,QAAA;YACnB,OAAO,IAAIC,QAAA,EAAU;cACnBzD,QAAQ,CAAClB,IAAA,CAAK,GAAG2E,QAAA;YACnB;UACF;UAEA,OAAOzD,QAAA;QACT;QAEA;QACA,IAAIrB,MAAA,CAAO+E,QAAQ,EAAE;UACnB,KAAK,MAAMC,KAAA,IAAS3C,MAAA,CAAO4C,MAAM,CAACjF,MAAA,CAAOD,KAAK,GAAG;YAC/C,IAAIiF,KAAA,CAAM9D,KAAK,KAAK,OAAO;cACzB8D,KAAA,CAAM9D,KAAK,GAAG;YAChB;YACA,IAAI8D,KAAA,CAAM1D,eAAe,KAAK,OAAO;cACnC0D,KAAA,CAAM1D,eAAe,GAAG;YAC1B;UACF;QACF;QACA;QACA,OAAOtB,MAAA,CAAOD,KAAK;MACrB;IAEA,KAAK;MAA0B;QAC7B,MAAM;UAAEI,IAAI;UAAE+E;QAAW,CAAE,GAAGlF,MAAA;QAE9B,OAAO;UACL,GAAGD,KAAK;UACR,CAACI,IAAA,GAAO;YACN,GAAGJ,KAAK,CAACI,IAAA,CAAK;YACdI,IAAA,EAAM2E;UACR;QACF;MACF;IAEA,KAAK;MAAqB;QACxB,MAAM;UAAE/E,IAAI;UAAE+E;QAAW,CAAE,GAAGlF,MAAA;QAE9B,MAAMqB,QAAA,GAAW;UACf,GAAGtB,KAAK;UACR,CAACI,IAAA,GAAO;YACN,GAAGJ,KAAK,CAACI,IAAA,CAAK;YACdI,IAAA,EAAM2E;UACR;QACF;QAEA,OAAO7D,QAAA;MACT;IAEA,KAAK;MAAU;QACb,MAAMwD,QAAA,GAAWxC,MAAA,CAAOC,OAAO,CAACtC,MAAA,EAAQuC,MAAM,CAC5C,CAACyC,KAAA,EAAO,CAAC3B,GAAA,EAAKzC,KAAA,CAAM;UAClB,IACE,CACE,mBACA,gBACA,gBACA,QACA,SACA,YACA,QACD,CAACqC,QAAQ,CAACI,GAAA,GACX;YACA,OAAO;cACL,GAAG2B,KAAK;cACR,CAAC3B,GAAA,GAAMzC;YACT;UACF;UAEA,OAAOoE,KAAA;QACT,GACAjF,KAAA,GAAQC,MAAA,CAAOG,IAAI,CAAC,IAAK,CAAC;QAG5B,MAAMkB,QAAA,GAAW;UACf,GAAGtB,KAAK;UACR,CAACC,MAAA,CAAOG,IAAI,GAAG0E;QACjB;QAEA,OAAOxD,QAAA;MACT;IAEA,KAAK;MAAe;QAClB,MAAMA,QAAA,GAAW;UAAE,GAAGtB;QAAM;QAE5BsC,MAAA,CAAOC,OAAO,CAACtC,MAAA,CAAOmF,SAAS,EAAEzD,OAAO,CAAC,CAAC,CAACvB,IAAA,EAAM6E,KAAA,CAAM;UACrD3D,QAAQ,CAAClB,IAAA,CAAK,GAAG6E,KAAA;QACnB;QAEA,OAAO3D,QAAA;MACT;IAEA;MAAS;QACP,OAAOtB,KAAA;MACT;EACF;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"fieldReducer.js","names":["ObjectIdImport","dequal","deepCopyObjectSimpleWithoutReactComponents","mergeServerFormState","flattenRows","separateRows","ObjectId","default","fieldReducer","state","action","type","blockType","path","rowIndex","rowIndexFromArgs","subFieldState","rows","length","withNewRow","newRow","id","value","toHexString","collapsed","isLoading","splice","initialValue","valid","remainingFields","siblingRows","newState","passesCondition","disableFormData","errorPaths","errors","forEach","message","fieldPath","errorMessage","segments","split","push","fieldErrorPath","parentPath","slice","join","Object","entries","reduce","acc","fieldState","fieldErrorPaths","errorACC","startsWith","changed","newErrorPaths","Array","isArray","includes","rowsMetadata","duplicateRowMetadata","customComponents","RowLabel","duplicateRowState","key","keys","filter","endsWith","idState","isValid","acceptValues","prevStateRef","serverState","currentState","incomingState","current","moveFromIndex","moveToIndex","topLevelRows","copyOfMovingRow","rowsWithinField","copyOfMovingRow2","rowIndexArg","Math","max","min","undefined","optimize","newField","oldField","sanitize","field","values","updatedRows","formState"],"sources":["../../../src/forms/Form/fieldReducer.ts"],"sourcesContent":["'use client'\nimport type { FormField, FormState, Row } from 'payload'\n\nimport ObjectIdImport from 'bson-objectid'\nimport { dequal } from 'dequal/lite' // lite: no need for Map and Set support\nimport { deepCopyObjectSimpleWithoutReactComponents } from 'payload/shared'\n\nimport type { FieldAction } from './types.js'\n\nimport { mergeServerFormState } from './mergeServerFormState.js'\nimport { flattenRows, separateRows } from './rows.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\n/**\n * Reducer which modifies the form field state (all the current data of the fields in the form). When called using dispatch, it will return a new state object.\n */\nexport function fieldReducer(state: FormState, action: FieldAction): FormState {\n switch (action.type) {\n case 'ADD_ROW': {\n const { blockType, path, rowIndex: rowIndexFromArgs, subFieldState = {} } = action\n\n const rowIndex =\n typeof rowIndexFromArgs === 'number' ? rowIndexFromArgs : state[path]?.rows?.length || 0\n\n const withNewRow = [...(state[path]?.rows || [])]\n\n const newRow: Row = {\n id: (subFieldState?.id?.value as string) || new ObjectId().toHexString(),\n collapsed: false,\n isLoading: true,\n }\n\n if (blockType) {\n newRow.blockType = blockType\n }\n\n withNewRow.splice(rowIndex, 0, newRow)\n\n if (blockType) {\n subFieldState.blockType = {\n initialValue: blockType,\n valid: true,\n value: blockType,\n }\n }\n\n // add new row to array _field state_\n const { remainingFields, rows: siblingRows } = separateRows(path, state)\n\n siblingRows.splice(rowIndex, 0, subFieldState)\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [`${path}.${rowIndex}.id`]: {\n initialValue: newRow.id,\n passesCondition: true,\n valid: true,\n value: newRow.id,\n },\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: withNewRow,\n value: siblingRows.length,\n },\n }\n\n return newState\n }\n\n case 'ADD_SERVER_ERRORS': {\n let newState = { ...state }\n\n const errorPaths: { fieldErrorPath: string; parentPath: string }[] = []\n\n action.errors.forEach(({ message, path: fieldPath }) => {\n newState[fieldPath] = {\n ...(newState[fieldPath] || {\n initialValue: null,\n value: null,\n }),\n errorMessage: message,\n valid: false,\n }\n\n const segments = fieldPath.split('.')\n if (segments.length > 1) {\n errorPaths.push({\n fieldErrorPath: fieldPath,\n parentPath: segments.slice(0, segments.length - 1).join('.'),\n })\n }\n })\n\n newState = Object.entries(newState).reduce((acc, [path, fieldState]) => {\n const fieldErrorPaths = errorPaths.reduce((errorACC, { fieldErrorPath, parentPath }) => {\n if (parentPath.startsWith(path)) {\n errorACC.push(fieldErrorPath)\n }\n return errorACC\n }, [])\n\n let changed = false\n\n if (fieldErrorPaths.length > 0) {\n const newErrorPaths = Array.isArray(fieldState.errorPaths) ? fieldState.errorPaths : []\n\n fieldErrorPaths.forEach((fieldErrorPath) => {\n if (!newErrorPaths.includes(fieldErrorPath)) {\n newErrorPaths.push(fieldErrorPath)\n changed = true\n }\n })\n\n if (changed) {\n acc[path] = {\n ...fieldState,\n errorPaths: newErrorPaths,\n }\n }\n }\n\n if (!changed) {\n acc[path] = fieldState\n }\n\n return acc\n }, {})\n\n return newState\n }\n\n case 'DUPLICATE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n const rowsMetadata = [...(state[path].rows || [])]\n\n const duplicateRowMetadata = deepCopyObjectSimpleWithoutReactComponents(\n rowsMetadata[rowIndex],\n )\n\n if (duplicateRowMetadata.id) {\n duplicateRowMetadata.id = new ObjectId().toHexString()\n }\n\n if (rowsMetadata[rowIndex]?.customComponents?.RowLabel) {\n duplicateRowMetadata.customComponents = {\n RowLabel: rowsMetadata[rowIndex].customComponents.RowLabel,\n }\n }\n\n const duplicateRowState = deepCopyObjectSimpleWithoutReactComponents(rows[rowIndex])\n\n if (duplicateRowState.id) {\n duplicateRowState.id.value = new ObjectId().toHexString()\n duplicateRowState.id.initialValue = new ObjectId().toHexString()\n }\n\n for (const key of Object.keys(duplicateRowState).filter((key) => key.endsWith('.id'))) {\n const idState = duplicateRowState[key]\n\n if (idState && typeof idState.value === 'string' && ObjectId.isValid(idState.value)) {\n duplicateRowState[key].value = new ObjectId().toHexString()\n duplicateRowState[key].initialValue = new ObjectId().toHexString()\n }\n }\n\n // If there are subfields\n if (Object.keys(duplicateRowState).length > 0) {\n // Add new object containing subfield names to unflattenedRows array\n rows.splice(rowIndex + 1, 0, duplicateRowState)\n rowsMetadata.splice(rowIndex + 1, 0, duplicateRowMetadata)\n }\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, rows),\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: rowsMetadata,\n value: rows.length,\n },\n }\n\n return newState\n }\n\n case 'MERGE_SERVER_STATE': {\n const { acceptValues, prevStateRef, serverState } = action\n\n const newState = mergeServerFormState({\n acceptValues,\n currentState: state || {},\n incomingState: serverState,\n })\n\n prevStateRef.current = newState\n\n return newState\n }\n\n case 'MOVE_ROW': {\n const { moveFromIndex, moveToIndex, path } = action\n\n // Handle moving rows on the top-level, i.e. `array.0.text` -> `array.1.text`\n const { remainingFields, rows: topLevelRows } = separateRows(path, state)\n const copyOfMovingRow = topLevelRows[moveFromIndex]\n topLevelRows.splice(moveFromIndex, 1)\n topLevelRows.splice(moveToIndex, 0, copyOfMovingRow)\n\n // modify array/block internal row state (i.e. collapsed, blockType)\n const rowsWithinField = [...(state[path]?.rows || [])]\n const copyOfMovingRow2 = { ...rowsWithinField[moveFromIndex] }\n rowsWithinField.splice(moveFromIndex, 1)\n rowsWithinField.splice(moveToIndex, 0, copyOfMovingRow2)\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, topLevelRows),\n [path]: {\n ...state[path],\n rows: rowsWithinField,\n },\n }\n\n return newState\n }\n\n case 'REMOVE': {\n const newState = { ...state }\n if (newState[action.path]) {\n delete newState[action.path]\n }\n return newState\n }\n\n case 'REMOVE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n const rowsMetadata = [...(state[path]?.rows || [])]\n\n rows.splice(rowIndex, 1)\n rowsMetadata.splice(rowIndex, 1)\n\n const newState: FormState = {\n ...remainingFields,\n [path]: {\n ...state[path],\n disableFormData: rows.length > 0,\n rows: rowsMetadata,\n value: rows.length,\n },\n ...flattenRows(path, rows),\n }\n\n return newState\n }\n\n case 'REPLACE_ROW': {\n const { blockType, path, rowIndex: rowIndexArg, subFieldState = {} } = action\n\n const { remainingFields, rows: siblingRows } = separateRows(path, state)\n const rowIndex = Math.max(0, Math.min(rowIndexArg, siblingRows?.length - 1 || 0))\n\n const rowsMetadata = [...(state[path]?.rows || [])]\n rowsMetadata[rowIndex] = {\n id: new ObjectId().toHexString(),\n blockType: blockType || undefined,\n collapsed: false,\n }\n\n if (blockType) {\n subFieldState.blockType = {\n initialValue: blockType,\n valid: true,\n value: blockType,\n }\n }\n\n // replace form _field state_\n siblingRows[rowIndex] = subFieldState\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\n [path]: {\n ...state[path],\n disableFormData: true,\n rows: rowsMetadata,\n value: siblingRows.length,\n },\n }\n\n return newState\n }\n\n case 'REPLACE_STATE': {\n if (action.optimize !== false) {\n // Only update fields that have changed\n // by comparing old value / initialValue to new\n // ..\n // This is a performance enhancement for saving\n // large documents with hundreds of fields\n const newState: FormState = {}\n\n for (const [path, newField] of Object.entries(action.state)) {\n const oldField = state[path]\n\n if (newField.valid !== false) {\n newField.valid = true\n }\n if (newField.passesCondition !== false) {\n newField.passesCondition = true\n }\n\n if (!dequal(oldField, newField)) {\n newState[path] = newField\n } else if (oldField) {\n newState[path] = oldField\n }\n }\n\n return newState\n }\n\n // TODO: Remove this in 4.0 - this is a temporary fix to prevent a breaking change\n if (action.sanitize) {\n for (const field of Object.values(action.state)) {\n if (field.valid !== false) {\n field.valid = true\n }\n if (field.passesCondition !== false) {\n field.passesCondition = true\n }\n }\n }\n // If we're not optimizing, just set the state to the new state\n return action.state\n }\n\n case 'SET_ALL_ROWS_COLLAPSED': {\n const { path, updatedRows } = action\n\n return {\n ...state,\n [path]: {\n ...state[path],\n rows: updatedRows,\n },\n }\n }\n\n case 'SET_ROW_COLLAPSED': {\n const { path, updatedRows } = action\n\n const newState = {\n ...state,\n [path]: {\n ...state[path],\n rows: updatedRows,\n },\n }\n\n return newState\n }\n\n case 'UPDATE': {\n const newField = Object.entries(action).reduce(\n (field, [key, value]) => {\n if (\n [\n 'disableFormData',\n 'errorMessage',\n 'initialValue',\n 'rows',\n 'valid',\n 'validate',\n 'value',\n ].includes(key)\n ) {\n return {\n ...field,\n [key]: value,\n }\n }\n\n return field\n },\n state?.[action.path] || ({} as FormField),\n )\n\n const newState = {\n ...state,\n [action.path]: newField,\n }\n\n return newState\n }\n\n case 'UPDATE_MANY': {\n const newState = { ...state }\n\n Object.entries(action.formState).forEach(([path, field]) => {\n newState[path] = field\n })\n\n return newState\n }\n\n default: {\n return state\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|