@payloadcms/ui 3.0.0-canary.ef0a8d0 → 3.0.0-canary.f1f97ff
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/AppHeader/index.d.ts.map +1 -1
- package/dist/elements/AppHeader/index.js +5 -1
- package/dist/elements/AppHeader/index.js.map +1 -1
- package/dist/elements/ArrayAction/index.d.ts +1 -1
- package/dist/elements/ArrayAction/index.d.ts.map +1 -1
- package/dist/elements/ArrayAction/index.js +1 -1
- package/dist/elements/ArrayAction/index.js.map +1 -1
- package/dist/elements/Autosave/index.d.ts.map +1 -1
- package/dist/elements/Autosave/index.js +53 -28
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/Collapsible/index.d.ts +1 -1
- package/dist/elements/Collapsible/index.d.ts.map +1 -1
- package/dist/elements/Collapsible/index.js +1 -1
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/DatePicker/index.scss +3 -1
- package/dist/elements/DeleteDocument/index.d.ts.map +1 -1
- package/dist/elements/DeleteDocument/index.js +7 -3
- package/dist/elements/DeleteDocument/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.d.ts.map +1 -1
- package/dist/elements/DeleteMany/index.js +4 -2
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +5 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +0 -6
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentFields/index.d.ts +1 -2
- package/dist/elements/DocumentFields/index.d.ts.map +1 -1
- package/dist/elements/DocumentFields/index.js +46 -48
- package/dist/elements/DocumentFields/index.js.map +1 -1
- package/dist/elements/Drawer/index.d.ts.map +1 -1
- package/dist/elements/Drawer/index.js +3 -0
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/Drawer/index.scss +2 -1
- package/dist/elements/DuplicateDocument/index.d.ts.map +1 -1
- package/dist/elements/DuplicateDocument/index.js +10 -6
- package/dist/elements/DuplicateDocument/index.js.map +1 -1
- package/dist/elements/EditMany/index.d.ts +1 -2
- package/dist/elements/EditMany/index.d.ts.map +1 -1
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/EditUpload/index.d.ts +3 -6
- package/dist/elements/EditUpload/index.d.ts.map +1 -1
- package/dist/elements/EditUpload/index.js +20 -25
- package/dist/elements/EditUpload/index.js.map +1 -1
- package/dist/elements/FieldSelect/index.d.ts +1 -2
- package/dist/elements/FieldSelect/index.d.ts.map +1 -1
- package/dist/elements/FieldSelect/index.js.map +1 -1
- package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts +1 -1
- package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts.map +1 -1
- package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts +1 -2
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +38 -3
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/Localizer/index.d.ts.map +1 -1
- package/dist/elements/Localizer/index.js +6 -13
- package/dist/elements/Localizer/index.js.map +1 -1
- package/dist/elements/Logout/index.d.ts.map +1 -1
- package/dist/elements/Logout/index.js +6 -3
- package/dist/elements/Logout/index.js.map +1 -1
- package/dist/elements/SearchFilter/index.d.ts +5 -3
- package/dist/elements/SearchFilter/index.d.ts.map +1 -1
- package/dist/elements/SearchFilter/index.js +14 -53
- package/dist/elements/SearchFilter/index.js.map +1 -1
- package/dist/elements/SortColumn/index.d.ts +2 -2
- package/dist/elements/SortColumn/index.d.ts.map +1 -1
- package/dist/elements/SortColumn/index.js +4 -4
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
- package/dist/elements/StayLoggedIn/index.js +6 -2
- package/dist/elements/StayLoggedIn/index.js.map +1 -1
- package/dist/elements/StepNav/types.d.ts +2 -2
- package/dist/elements/StepNav/types.d.ts.map +1 -1
- package/dist/elements/StepNav/types.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +5 -1
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/Table/index.d.ts +1 -2
- package/dist/elements/Table/index.d.ts.map +1 -1
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.d.ts +1 -2
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
- package/dist/elements/TableColumns/filterFields.d.ts +1 -1
- package/dist/elements/TableColumns/filterFields.d.ts.map +1 -1
- package/dist/elements/TableColumns/filterFields.js.map +1 -1
- package/dist/elements/TableColumns/getInitialColumns.d.ts +1 -1
- package/dist/elements/TableColumns/getInitialColumns.d.ts.map +1 -1
- package/dist/elements/TableColumns/getInitialColumns.js.map +1 -1
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +13 -28
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js +11 -5
- package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +4 -2
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/index.js +7 -4
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/elements/WhereBuilder/reduceFieldMap.d.ts +1 -1
- package/dist/elements/WhereBuilder/reduceFieldMap.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/reduceFieldMap.js +3 -3
- package/dist/elements/WhereBuilder/reduceFieldMap.js.map +1 -1
- package/dist/elements/WhereBuilder/types.d.ts +1 -2
- package/dist/elements/WhereBuilder/types.d.ts.map +1 -1
- package/dist/elements/WhereBuilder/types.js.map +1 -1
- package/dist/elements/withMergedProps/index.js +8 -2
- package/dist/elements/withMergedProps/index.js.map +1 -1
- package/dist/exports/client/index.d.ts +6 -7
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +19 -18
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/shared/index.d.ts +1 -0
- package/dist/exports/shared/index.d.ts.map +1 -1
- package/dist/exports/shared/index.js +2 -2
- package/dist/exports/shared/index.js.map +4 -4
- package/dist/fields/Array/ArrayRow.d.ts +2 -3
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.d.ts +2 -15
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +25 -8
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.d.ts +2 -3
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +5 -1
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.d.ts +2 -3
- package/dist/fields/Blocks/BlocksDrawer/index.d.ts.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.js +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
- package/dist/fields/Blocks/RowActions.d.ts +2 -3
- package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
- package/dist/fields/Blocks/RowActions.js +1 -1
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts +1 -14
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +22 -9
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.d.ts +1 -1
- package/dist/fields/Checkbox/Input.d.ts.map +1 -1
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/Checkbox/index.d.ts +1 -1
- package/dist/fields/Checkbox/index.d.ts.map +1 -1
- package/dist/fields/Checkbox/index.js +2 -2
- package/dist/fields/Checkbox/index.js.map +1 -1
- package/dist/fields/Code/index.d.ts +1 -9
- package/dist/fields/Code/index.d.ts.map +1 -1
- package/dist/fields/Code/index.js +2 -2
- package/dist/fields/Code/index.js.map +1 -1
- package/dist/fields/Collapsible/index.d.ts +1 -7
- package/dist/fields/Collapsible/index.d.ts.map +1 -1
- package/dist/fields/Collapsible/index.js +2 -2
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/DateTime/index.d.ts +1 -9
- package/dist/fields/DateTime/index.d.ts.map +1 -1
- package/dist/fields/DateTime/index.js +2 -2
- package/dist/fields/DateTime/index.js.map +1 -1
- package/dist/fields/Email/index.d.ts +1 -9
- package/dist/fields/Email/index.d.ts.map +1 -1
- package/dist/fields/Email/index.js +2 -2
- package/dist/fields/Email/index.js.map +1 -1
- package/dist/fields/FieldDescription/index.d.ts +2 -2
- package/dist/fields/FieldDescription/index.d.ts.map +1 -1
- package/dist/fields/FieldDescription/index.js.map +1 -1
- package/dist/fields/FieldError/index.d.ts +2 -2
- package/dist/fields/FieldError/index.d.ts.map +1 -1
- package/dist/fields/FieldError/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.d.ts +2 -2
- package/dist/fields/FieldLabel/index.d.ts.map +1 -1
- package/dist/fields/FieldLabel/index.js.map +1 -1
- package/dist/fields/Group/index.d.ts +2 -10
- package/dist/fields/Group/index.d.ts.map +1 -1
- package/dist/fields/Group/index.js +2 -2
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/Hidden/index.d.ts +2 -9
- package/dist/fields/Hidden/index.d.ts.map +1 -1
- package/dist/fields/Hidden/index.js +2 -2
- package/dist/fields/Hidden/index.js.map +1 -1
- package/dist/fields/JSON/index.d.ts +1 -9
- package/dist/fields/JSON/index.d.ts.map +1 -1
- package/dist/fields/JSON/index.js +2 -2
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/Number/index.d.ts +1 -14
- package/dist/fields/Number/index.d.ts.map +1 -1
- package/dist/fields/Number/index.js +2 -2
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/Password/index.d.ts +1 -2
- package/dist/fields/Password/index.d.ts.map +1 -1
- package/dist/fields/Password/index.js +2 -2
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/fields/Point/index.d.ts +2 -9
- package/dist/fields/Point/index.d.ts.map +1 -1
- package/dist/fields/Point/index.js +2 -2
- package/dist/fields/Point/index.js.map +1 -1
- package/dist/fields/RadioGroup/Radio/index.d.ts +2 -3
- package/dist/fields/RadioGroup/Radio/index.d.ts.map +1 -1
- package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
- package/dist/fields/RadioGroup/index.d.ts +1 -12
- package/dist/fields/RadioGroup/index.d.ts.map +1 -1
- package/dist/fields/RadioGroup/index.js +2 -2
- package/dist/fields/RadioGroup/index.js.map +1 -1
- package/dist/fields/Relationship/index.d.ts +1 -2
- package/dist/fields/Relationship/index.d.ts.map +1 -1
- package/dist/fields/Relationship/index.js +2 -2
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Relationship/types.d.ts +1 -11
- package/dist/fields/Relationship/types.d.ts.map +1 -1
- package/dist/fields/Relationship/types.js.map +1 -1
- package/dist/fields/RichText/index.d.ts +2 -8
- package/dist/fields/RichText/index.d.ts.map +1 -1
- package/dist/fields/RichText/index.js.map +1 -1
- package/dist/fields/Row/index.d.ts +1 -2
- package/dist/fields/Row/index.d.ts.map +1 -1
- package/dist/fields/Row/index.js +2 -2
- package/dist/fields/Row/index.js.map +1 -1
- package/dist/fields/Row/index.scss +1 -5
- package/dist/fields/Select/Input.d.ts +1 -2
- package/dist/fields/Select/Input.d.ts.map +1 -1
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Select/index.d.ts +1 -13
- package/dist/fields/Select/index.d.ts.map +1 -1
- package/dist/fields/Select/index.js +2 -2
- package/dist/fields/Select/index.js.map +1 -1
- package/dist/fields/Tabs/Tab/index.d.ts +1 -1
- package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Tabs/index.d.ts +1 -9
- package/dist/fields/Tabs/index.d.ts.map +1 -1
- package/dist/fields/Tabs/index.js +24 -24
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Text/index.d.ts +3 -2
- package/dist/fields/Text/index.d.ts.map +1 -1
- package/dist/fields/Text/index.js +2 -2
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Text/types.d.ts +1 -15
- package/dist/fields/Text/types.d.ts.map +1 -1
- package/dist/fields/Text/types.js.map +1 -1
- package/dist/fields/Textarea/index.d.ts +3 -2
- package/dist/fields/Textarea/index.d.ts.map +1 -1
- package/dist/fields/Textarea/index.js +2 -2
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/fields/Textarea/types.d.ts +1 -11
- package/dist/fields/Textarea/types.d.ts.map +1 -1
- package/dist/fields/Textarea/types.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts +5 -2
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +2 -2
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/index.d.ts +1 -1
- package/dist/fields/Upload/index.d.ts.map +1 -1
- package/dist/fields/Upload/index.js +20 -5
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/fields/shared/index.d.ts +1 -25
- package/dist/fields/shared/index.d.ts.map +1 -1
- package/dist/fields/shared/index.js.map +1 -1
- package/dist/forms/Form/createNestedFieldPath.d.ts +1 -2
- package/dist/forms/Form/createNestedFieldPath.d.ts.map +1 -1
- package/dist/forms/Form/createNestedFieldPath.js.map +1 -1
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +11 -38
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +5 -15
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/rowHelpers.d.ts +17 -0
- package/dist/forms/Form/rowHelpers.d.ts.map +1 -0
- package/dist/forms/Form/rowHelpers.js +24 -0
- package/dist/forms/Form/rowHelpers.js.map +1 -0
- package/dist/forms/Form/types.d.ts +3 -10
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.d.ts +4 -3
- package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/RenderFields/types.d.ts +1 -2
- package/dist/forms/RenderFields/types.d.ts.map +1 -1
- package/dist/forms/RenderFields/types.js.map +1 -1
- package/dist/forms/WatchChildErrors/buildPathSegments.d.ts +1 -1
- package/dist/forms/WatchChildErrors/buildPathSegments.d.ts.map +1 -1
- package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
- package/dist/forms/WatchChildErrors/index.d.ts +1 -1
- package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
- package/dist/forms/WatchChildErrors/index.js.map +1 -1
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +39 -18
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
- package/dist/graphics/Account/index.d.ts.map +1 -1
- package/dist/graphics/Account/index.js +5 -1
- package/dist/graphics/Account/index.js.map +1 -1
- package/dist/hooks/usePayloadAPI.d.ts.map +1 -1
- package/dist/hooks/usePayloadAPI.js +5 -1
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/hooks/useUseAsTitle.d.ts +1 -2
- package/dist/hooks/useUseAsTitle.d.ts.map +1 -1
- package/dist/hooks/useUseAsTitle.js.map +1 -1
- package/dist/providers/Auth/index.d.ts +1 -1
- package/dist/providers/Auth/index.d.ts.map +1 -1
- package/dist/providers/Auth/index.js +47 -76
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts +1 -2
- package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/fields.js +128 -95
- package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +1 -55
- package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
- package/dist/providers/ComponentMap/index.d.ts +2 -1
- package/dist/providers/ComponentMap/index.d.ts.map +1 -1
- package/dist/providers/ComponentMap/index.js.map +1 -1
- package/dist/providers/DocumentInfo/index.d.ts.map +1 -1
- package/dist/providers/DocumentInfo/index.js +58 -16
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/ListQuery/index.d.ts +16 -9
- package/dist/providers/ListQuery/index.d.ts.map +1 -1
- package/dist/providers/ListQuery/index.js +8 -6
- package/dist/providers/ListQuery/index.js.map +1 -1
- package/dist/providers/UploadEdits/index.d.ts +12 -0
- package/dist/providers/UploadEdits/index.d.ts.map +1 -0
- package/dist/providers/UploadEdits/index.js +30 -0
- package/dist/providers/UploadEdits/index.js.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +3 -2
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/flattenFieldMap.d.ts +1 -1
- package/dist/utilities/flattenFieldMap.d.ts.map +1 -1
- package/dist/utilities/flattenFieldMap.js.map +1 -1
- package/dist/utilities/formatAdminURL.d.ts +8 -0
- package/dist/utilities/formatAdminURL.d.ts.map +1 -0
- package/dist/utilities/formatAdminURL.js +15 -0
- package/dist/utilities/formatAdminURL.js.map +1 -0
- package/package.json +4 -4
- package/dist/fields/Checkbox/types.d.ts +0 -12
- package/dist/fields/Checkbox/types.d.ts.map +0 -1
- package/dist/fields/Checkbox/types.js +0 -3
- package/dist/fields/Checkbox/types.js.map +0 -1
- package/dist/fields/Row/types.d.ts +0 -12
- package/dist/fields/Row/types.d.ts.map +0 -1
- package/dist/fields/Row/types.js +0 -3
- package/dist/fields/Row/types.js.map +0 -1
- package/dist/fields/Upload/types.d.ts +0 -10
- package/dist/fields/Upload/types.d.ts.map +0 -1
- package/dist/fields/Upload/types.js +0 -3
- package/dist/fields/Upload/types.js.map +0 -1
- package/dist/providers/FormQueryParams/index.d.ts +0 -13
- package/dist/providers/FormQueryParams/index.d.ts.map +0 -1
- package/dist/providers/FormQueryParams/index.js +0 -53
- package/dist/providers/FormQueryParams/index.js.map +0 -1
- package/dist/providers/FormQueryParams/types.d.ts +0 -16
- package/dist/providers/FormQueryParams/types.d.ts.map +0 -1
- package/dist/providers/FormQueryParams/types.js +0 -3
- package/dist/providers/FormQueryParams/types.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Textarea/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientValidate } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback } from 'react'\n\nimport type { TextAreaInputProps
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Textarea/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientValidate, TextareaFieldProps } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback } from 'react'\n\nimport type { TextAreaInputProps } from './types.js'\n\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { isFieldRTL } from '../shared/index.js'\nimport { TextareaInput } from './Input.js'\nimport './index.scss'\n\nexport { TextAreaInputProps, TextareaInput }\n\nconst TextareaFieldComponent: React.FC<TextareaFieldProps> = (props) => {\n const {\n name,\n AfterInput,\n BeforeInput,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n errorProps,\n label,\n labelProps,\n locale,\n localized,\n maxLength,\n minLength,\n path: pathFromProps,\n placeholder,\n readOnly: readOnlyFromProps,\n required,\n rows,\n rtl,\n style,\n validate,\n width,\n } = props\n\n const { i18n } = useTranslation()\n\n const { localization } = useConfig()\n\n const isRTL = isFieldRTL({\n fieldLocalized: localized,\n fieldRTL: rtl,\n locale,\n localizationConfig: localization || undefined,\n })\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function')\n return validate(value, { ...options, maxLength, minLength, required })\n },\n [validate, required, maxLength, minLength],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n\n const { formInitializing, formProcessing, path, setValue, showError, value } = useField<string>({\n path: pathFromContext ?? pathFromProps ?? name,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing\n\n return (\n <TextareaInput\n AfterInput={AfterInput}\n BeforeInput={BeforeInput}\n CustomDescription={CustomDescription}\n CustomError={CustomError}\n CustomLabel={CustomLabel}\n className={className}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n label={label}\n labelProps={labelProps}\n onChange={(e) => {\n setValue(e.target.value)\n }}\n path={path}\n placeholder={getTranslation(placeholder, i18n)}\n readOnly={disabled}\n required={required}\n rows={rows}\n rtl={isRTL}\n showError={showError}\n style={style}\n value={value}\n width={width}\n />\n )\n}\n\nexport const TextareaField = withCondition(TextareaFieldComponent)\n"],"names":["getTranslation","React","useCallback","useFieldProps","useField","withCondition","useConfig","useTranslation","isFieldRTL","TextareaInput","TextareaFieldComponent","props","name","AfterInput","BeforeInput","CustomDescription","CustomError","CustomLabel","className","descriptionProps","errorProps","label","labelProps","locale","localized","maxLength","minLength","path","pathFromProps","placeholder","readOnly","readOnlyFromProps","required","rows","rtl","style","validate","width","i18n","localization","isRTL","fieldLocalized","fieldRTL","localizationConfig","undefined","memoizedValidate","value","options","pathFromContext","readOnlyFromContext","formInitializing","formProcessing","setValue","showError","disabled","onChange","e","target","TextareaField"],"mappings":"AAAA;;AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,SAASC,WAAW,QAAQ,QAAO;AAI1C,SAASC,aAAa,QAAQ,0CAAyC;AACvE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,UAAU,QAAQ,qBAAoB;AAC/C,SAASC,aAAa,QAAQ,aAAY;AAC1C,OAAO,eAAc;AAErB,SAA6BA,aAAa,GAAE;AAE5C,MAAMC,yBAAuD,CAACC;IAC5D,MAAM,EACJC,IAAI,EACJC,UAAU,EACVC,WAAW,EACXC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,gBAAgB,EAChBC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,MAAM,EACNC,SAAS,EACTC,SAAS,EACTC,SAAS,EACTC,MAAMC,aAAa,EACnBC,WAAW,EACXC,UAAUC,iBAAiB,EAC3BC,QAAQ,EACRC,IAAI,EACJC,GAAG,EACHC,KAAK,EACLC,QAAQ,EACRC,KAAK,EACN,GAAG1B;IAEJ,MAAM,EAAE2B,IAAI,EAAE,GAAG/B;IAEjB,MAAM,EAAEgC,YAAY,EAAE,GAAGjC;IAEzB,MAAMkC,QAAQhC,WAAW;QACvBiC,gBAAgBjB;QAChBkB,UAAUR;QACVX;QACAoB,oBAAoBJ,gBAAgBK;IACtC;IAEA,MAAMC,mBAAmC3C,YACvC,CAAC4C,OAAOC;QACN,IAAI,OAAOX,aAAa,YACtB,OAAOA,SAASU,OAAO;YAAE,GAAGC,OAAO;YAAEtB;YAAWC;YAAWM;QAAS;IACxE,GACA;QAACI;QAAUJ;QAAUP;QAAWC;KAAU;IAG5C,MAAM,EAAEC,MAAMqB,eAAe,EAAElB,UAAUmB,mBAAmB,EAAE,GAAG9C;IAEjE,MAAM,EAAE+C,gBAAgB,EAAEC,cAAc,EAAExB,IAAI,EAAEyB,QAAQ,EAAEC,SAAS,EAAEP,KAAK,EAAE,GAAG1C,SAAiB;QAC9FuB,MAAMqB,mBAAmBpB,iBAAiBhB;QAC1CwB,UAAUS;IACZ;IAEA,MAAMS,WAAWvB,qBAAqBkB,uBAAuBE,kBAAkBD;IAE/E,qBACE,KAACzC;QACCI,YAAYA;QACZC,aAAaA;QACbC,mBAAmBA;QACnBC,aAAaA;QACbC,aAAaA;QACbC,WAAWA;QACXC,kBAAkBA;QAClBC,YAAYA;QACZC,OAAOA;QACPC,YAAYA;QACZiC,UAAU,CAACC;YACTJ,SAASI,EAAEC,MAAM,CAACX,KAAK;QACzB;QACAnB,MAAMA;QACNE,aAAa7B,eAAe6B,aAAaS;QACzCR,UAAUwB;QACVtB,UAAUA;QACVC,MAAMA;QACNC,KAAKM;QACLa,WAAWA;QACXlB,OAAOA;QACPW,OAAOA;QACPT,OAAOA;;AAGb;AAEA,OAAO,MAAMqB,gBAAgBrD,cAAcK,wBAAuB"}
|
|
@@ -1,15 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { TextareaFieldProps } from 'payload';
|
|
2
2
|
import { type ChangeEvent } from 'react';
|
|
3
|
-
import type { FormFieldBase } from '../shared/index.js';
|
|
4
|
-
export type TextareaFieldProps = {
|
|
5
|
-
maxLength?: number;
|
|
6
|
-
minLength?: number;
|
|
7
|
-
name?: string;
|
|
8
|
-
path?: string;
|
|
9
|
-
placeholder?: TextareaFieldType['admin']['placeholder'];
|
|
10
|
-
rows?: number;
|
|
11
|
-
width?: string;
|
|
12
|
-
} & FormFieldBase;
|
|
13
3
|
export type TextAreaInputProps = {
|
|
14
4
|
onChange?: (e: ChangeEvent<HTMLTextAreaElement>) => void;
|
|
15
5
|
rows?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/Textarea/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/fields/Textarea/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAEjD,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,OAAO,CAAA;AAExC,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,mBAAmB,CAAC,KAAK,IAAI,CAAA;IACxD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,kBAAkB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Textarea/types.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Textarea/types.ts"],"sourcesContent":["import type { TextareaFieldProps } from 'payload'\n\nimport { type ChangeEvent } from 'react'\n\nexport type TextAreaInputProps = {\n onChange?: (e: ChangeEvent<HTMLTextAreaElement>) => void\n rows?: number\n showError?: boolean\n value?: string\n} & TextareaFieldProps\n"],"names":[],"mappings":"AAIA,WAKsB"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import type { ClientCollectionConfig, FilterOptionsResult, UploadField } from 'payload';
|
|
1
|
+
import type { ClientCollectionConfig, FilterOptionsResult, UploadField, UploadFieldProps } from 'payload';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
import type { UploadFieldProps } from './types.js';
|
|
4
3
|
import './index.scss';
|
|
5
4
|
export type UploadInputProps = {
|
|
5
|
+
/**
|
|
6
|
+
* Controls the visibility of the "Create new collection" button
|
|
7
|
+
*/
|
|
8
|
+
allowNewUpload?: boolean;
|
|
6
9
|
api?: string;
|
|
7
10
|
collection?: ClientCollectionConfig;
|
|
8
11
|
customUploadActions?: React.ReactNode[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Input.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/Input.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EACjB,MAAM,SAAS,CAAA;AAGhB,OAAO,KAA2C,MAAM,OAAO,CAAA;AAc/D,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,gBAAgB,GAAG;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,sBAAsB,CAAA;IACnC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,aAAa,CAAC,EAAE,mBAAmB,CAAA;IACnC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAA,KAAK,IAAI,CAAA;IACtB,UAAU,CAAC,EAAE,WAAW,CAAC,YAAY,CAAC,CAAA;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,IAAI,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAA;AAE3C,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAsKlD,CAAA"}
|
|
@@ -14,7 +14,7 @@ import { fieldBaseClass } from '../shared/index.js';
|
|
|
14
14
|
import './index.scss';
|
|
15
15
|
const baseClass = 'upload';
|
|
16
16
|
export const UploadInput = (props)=>{
|
|
17
|
-
const { CustomDescription, CustomError, CustomLabel, api = '/api', className, collection, customUploadActions, descriptionProps, errorProps, filterOptions, label, labelProps, onChange, readOnly, relationTo, required, serverURL, showError, style, value, width } = props;
|
|
17
|
+
const { CustomDescription, CustomError, CustomLabel, allowNewUpload, api = '/api', className, collection, customUploadActions, descriptionProps, errorProps, filterOptions, label, labelProps, onChange, readOnly, relationTo, required, serverURL, showError, style, value, width } = props;
|
|
18
18
|
const { i18n, t } = useTranslation();
|
|
19
19
|
const [fileDoc, setFileDoc] = useState(undefined);
|
|
20
20
|
const [missingFile, setMissingFile] = useState(false);
|
|
@@ -117,7 +117,7 @@ export const UploadInput = (props)=>{
|
|
|
117
117
|
children: /*#__PURE__*/ _jsxs("div", {
|
|
118
118
|
className: `${baseClass}__buttons`,
|
|
119
119
|
children: [
|
|
120
|
-
/*#__PURE__*/ _jsx(DocumentDrawerToggler, {
|
|
120
|
+
allowNewUpload && /*#__PURE__*/ _jsx(DocumentDrawerToggler, {
|
|
121
121
|
className: `${baseClass}__toggler`,
|
|
122
122
|
disabled: readOnly,
|
|
123
123
|
children: /*#__PURE__*/ _jsx(Button, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type { ClientCollectionConfig, FilterOptionsResult, UploadField } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../../elements/DocumentDrawer/types.js'\nimport type { ListDrawerProps } from '../../elements/ListDrawer/types.js'\nimport type { UploadFieldProps } from './types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { FileDetails } from '../../elements/FileDetails/index.js'\nimport { useListDrawer } from '../../elements/ListDrawer/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 { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nconst baseClass = 'upload'\n\nexport type UploadInputProps = {\n api?: string\n collection?: ClientCollectionConfig\n customUploadActions?: React.ReactNode[]\n filterOptions?: FilterOptionsResult\n onChange?: (e) => void\n relationTo?: UploadField['relationTo']\n serverURL?: string\n showError?: boolean\n value?: string\n} & Omit<UploadFieldProps, 'filterOptions'>\n\nexport const UploadInput: React.FC<UploadInputProps> = (props) => {\n const {\n CustomDescription,\n CustomError,\n CustomLabel,\n api = '/api',\n className,\n collection,\n customUploadActions,\n descriptionProps,\n errorProps,\n filterOptions,\n label,\n labelProps,\n onChange,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n width,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const [fileDoc, setFileDoc] = useState(undefined)\n const [missingFile, setMissingFile] = useState(false)\n const [collectionSlugs] = useState([collection?.slug])\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer }] = useDocumentDrawer({\n collectionSlug: collectionSlugs[0],\n })\n\n const [ListDrawer, ListDrawerToggler, { closeDrawer: closeListDrawer }] = useListDrawer({\n collectionSlugs,\n filterOptions,\n })\n\n useEffect(() => {\n if (value !== null && typeof value !== 'undefined' && value !== '') {\n const fetchFile = async () => {\n const response = await fetch(`${serverURL}${api}/${relationTo}/${value}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n if (response.ok) {\n const json = await response.json()\n setFileDoc(json)\n } else {\n setMissingFile(true)\n setFileDoc(undefined)\n }\n }\n\n void fetchFile()\n } else {\n setFileDoc(undefined)\n }\n }, [value, relationTo, api, serverURL, i18n])\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n setMissingFile(false)\n onChange(args.doc)\n closeDrawer()\n },\n [onChange, closeDrawer],\n )\n\n const onSelect = useCallback<ListDrawerProps['onSelect']>(\n (args) => {\n setMissingFile(false)\n onChange({\n id: args.docID,\n })\n closeListDrawer()\n },\n [onChange, closeListDrawer],\n )\n\n if (collection.upload) {\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldLabel\n CustomLabel={CustomLabel}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <FieldError CustomError={CustomError} {...(errorProps || {})} />\n\n {collection?.upload && (\n <React.Fragment>\n {fileDoc && !missingFile && (\n <FileDetails\n collectionSlug={relationTo}\n customUploadActions={customUploadActions}\n doc={fileDoc}\n handleRemove={\n readOnly\n ? undefined\n : () => {\n onChange(null)\n }\n }\n uploadConfig={collection.upload}\n />\n )}\n {(!fileDoc || missingFile) && (\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__buttons`}>\n <DocumentDrawerToggler className={`${baseClass}__toggler`} disabled={readOnly}>\n <Button buttonStyle=\"secondary\" disabled={readOnly} el=\"div\">\n {t('fields:uploadNewLabel', {\n label: getTranslation(collection.labels.singular, i18n),\n })}\n </Button>\n </DocumentDrawerToggler>\n <ListDrawerToggler className={`${baseClass}__toggler`} disabled={readOnly}>\n <Button buttonStyle=\"secondary\" disabled={readOnly} el=\"div\">\n {t('fields:chooseFromExisting')}\n </Button>\n </ListDrawerToggler>\n </div>\n </div>\n )}\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </React.Fragment>\n )}\n {!readOnly && <DocumentDrawer onSave={onSave} />}\n {!readOnly && <ListDrawer onSelect={onSelect} />}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"names":["getTranslation","React","useCallback","useEffect","useState","Button","useDocumentDrawer","FileDetails","useListDrawer","useTranslation","FieldDescription","FieldError","FieldLabel","fieldBaseClass","baseClass","UploadInput","props","CustomDescription","CustomError","CustomLabel","api","className","collection","customUploadActions","descriptionProps","errorProps","filterOptions","label","labelProps","onChange","readOnly","relationTo","required","serverURL","showError","style","value","width","i18n","t","fileDoc","setFileDoc","undefined","missingFile","setMissingFile","collectionSlugs","slug","DocumentDrawer","DocumentDrawerToggler","closeDrawer","collectionSlug","ListDrawer","ListDrawerToggler","closeListDrawer","fetchFile","response","fetch","credentials","headers","language","ok","json","onSave","args","doc","onSelect","id","docID","upload","div","filter","Boolean","join","Fragment","handleRemove","uploadConfig","disabled","buttonStyle","el","labels","singular"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientCollectionConfig,\n FilterOptionsResult,\n UploadField,\n UploadFieldProps,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport type { DocumentDrawerProps } from '../../elements/DocumentDrawer/types.js'\nimport type { ListDrawerProps } from '../../elements/ListDrawer/types.js'\n\nimport { Button } from '../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { FileDetails } from '../../elements/FileDetails/index.js'\nimport { useListDrawer } from '../../elements/ListDrawer/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 { fieldBaseClass } from '../shared/index.js'\nimport './index.scss'\n\nconst baseClass = 'upload'\n\nexport type UploadInputProps = {\n /**\n * Controls the visibility of the \"Create new collection\" button\n */\n allowNewUpload?: boolean\n api?: string\n collection?: ClientCollectionConfig\n customUploadActions?: React.ReactNode[]\n filterOptions?: FilterOptionsResult\n onChange?: (e) => void\n relationTo?: UploadField['relationTo']\n serverURL?: string\n showError?: boolean\n value?: string\n} & Omit<UploadFieldProps, 'filterOptions'>\n\nexport const UploadInput: React.FC<UploadInputProps> = (props) => {\n const {\n CustomDescription,\n CustomError,\n CustomLabel,\n allowNewUpload,\n api = '/api',\n className,\n collection,\n customUploadActions,\n descriptionProps,\n errorProps,\n filterOptions,\n label,\n labelProps,\n onChange,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n width,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const [fileDoc, setFileDoc] = useState(undefined)\n const [missingFile, setMissingFile] = useState(false)\n const [collectionSlugs] = useState([collection?.slug])\n\n const [DocumentDrawer, DocumentDrawerToggler, { closeDrawer }] = useDocumentDrawer({\n collectionSlug: collectionSlugs[0],\n })\n\n const [ListDrawer, ListDrawerToggler, { closeDrawer: closeListDrawer }] = useListDrawer({\n collectionSlugs,\n filterOptions,\n })\n\n useEffect(() => {\n if (value !== null && typeof value !== 'undefined' && value !== '') {\n const fetchFile = async () => {\n const response = await fetch(`${serverURL}${api}/${relationTo}/${value}`, {\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n },\n })\n if (response.ok) {\n const json = await response.json()\n setFileDoc(json)\n } else {\n setMissingFile(true)\n setFileDoc(undefined)\n }\n }\n\n void fetchFile()\n } else {\n setFileDoc(undefined)\n }\n }, [value, relationTo, api, serverURL, i18n])\n\n const onSave = useCallback<DocumentDrawerProps['onSave']>(\n (args) => {\n setMissingFile(false)\n onChange(args.doc)\n closeDrawer()\n },\n [onChange, closeDrawer],\n )\n\n const onSelect = useCallback<ListDrawerProps['onSelect']>(\n (args) => {\n setMissingFile(false)\n onChange({\n id: args.docID,\n })\n closeListDrawer()\n },\n [onChange, closeListDrawer],\n )\n\n if (collection.upload) {\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n showError && 'error',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')}\n style={{\n ...style,\n width,\n }}\n >\n <FieldLabel\n CustomLabel={CustomLabel}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n <div className={`${fieldBaseClass}__wrap`}>\n <FieldError CustomError={CustomError} {...(errorProps || {})} />\n\n {collection?.upload && (\n <React.Fragment>\n {fileDoc && !missingFile && (\n <FileDetails\n collectionSlug={relationTo}\n customUploadActions={customUploadActions}\n doc={fileDoc}\n handleRemove={\n readOnly\n ? undefined\n : () => {\n onChange(null)\n }\n }\n uploadConfig={collection.upload}\n />\n )}\n {(!fileDoc || missingFile) && (\n <div className={`${baseClass}__wrap`}>\n <div className={`${baseClass}__buttons`}>\n {allowNewUpload && (\n <DocumentDrawerToggler\n className={`${baseClass}__toggler`}\n disabled={readOnly}\n >\n <Button buttonStyle=\"secondary\" disabled={readOnly} el=\"div\">\n {t('fields:uploadNewLabel', {\n label: getTranslation(collection.labels.singular, i18n),\n })}\n </Button>\n </DocumentDrawerToggler>\n )}\n <ListDrawerToggler className={`${baseClass}__toggler`} disabled={readOnly}>\n <Button buttonStyle=\"secondary\" disabled={readOnly} el=\"div\">\n {t('fields:chooseFromExisting')}\n </Button>\n </ListDrawerToggler>\n </div>\n </div>\n )}\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </React.Fragment>\n )}\n {!readOnly && <DocumentDrawer onSave={onSave} />}\n {!readOnly && <ListDrawer onSelect={onSelect} />}\n </div>\n </div>\n )\n }\n\n return null\n}\n"],"names":["getTranslation","React","useCallback","useEffect","useState","Button","useDocumentDrawer","FileDetails","useListDrawer","useTranslation","FieldDescription","FieldError","FieldLabel","fieldBaseClass","baseClass","UploadInput","props","CustomDescription","CustomError","CustomLabel","allowNewUpload","api","className","collection","customUploadActions","descriptionProps","errorProps","filterOptions","label","labelProps","onChange","readOnly","relationTo","required","serverURL","showError","style","value","width","i18n","t","fileDoc","setFileDoc","undefined","missingFile","setMissingFile","collectionSlugs","slug","DocumentDrawer","DocumentDrawerToggler","closeDrawer","collectionSlug","ListDrawer","ListDrawerToggler","closeListDrawer","fetchFile","response","fetch","credentials","headers","language","ok","json","onSave","args","doc","onSelect","id","docID","upload","div","filter","Boolean","join","Fragment","handleRemove","uploadConfig","disabled","buttonStyle","el","labels","singular"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import type { UploadFieldProps } from 'payload';
|
|
1
2
|
import React from 'react';
|
|
2
3
|
import type { UploadInputProps } from './Input.js';
|
|
3
|
-
import type { UploadFieldProps } from './types.js';
|
|
4
4
|
import { UploadInput } from './Input.js';
|
|
5
5
|
import './index.scss';
|
|
6
6
|
export { UploadFieldProps, UploadInput };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/index.tsx"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/C,OAAO,KAA+B,MAAM,OAAO,CAAA;AAEnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAOlD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,cAAc,CAAA;AAErB,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,CAAA;AAqGhC,eAAO,MAAM,WAAW,4BAAiC,CAAA"}
|
|
@@ -1,16 +1,18 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
-
import React, { useCallback } from 'react';
|
|
3
|
+
import React, { useCallback, useMemo } from 'react';
|
|
4
4
|
import { useFieldProps } from '../../forms/FieldPropsProvider/index.js';
|
|
5
5
|
import { useField } from '../../forms/useField/index.js';
|
|
6
6
|
import { withCondition } from '../../forms/withCondition/index.js';
|
|
7
|
+
import { useAuth } from '../../providers/Auth/index.js';
|
|
7
8
|
import { useConfig } from '../../providers/Config/index.js';
|
|
8
9
|
import { UploadInput } from './Input.js';
|
|
9
10
|
import './index.scss';
|
|
10
11
|
export { UploadInput };
|
|
11
|
-
const
|
|
12
|
+
const UploadComponent = (props)=>{
|
|
12
13
|
const { CustomDescription, CustomError, CustomLabel, className, descriptionProps, errorProps, label, labelProps, path: pathFromProps, readOnly: readOnlyFromProps, relationTo, required, style, validate, width } = props;
|
|
13
|
-
const { collections, routes: { api }, serverURL } = useConfig();
|
|
14
|
+
const { collections, routes: { api: apiRoute }, serverURL } = useConfig();
|
|
15
|
+
const { permissions } = useAuth();
|
|
14
16
|
const collection = collections.find((coll)=>coll.slug === relationTo);
|
|
15
17
|
const memoizedValidate = useCallback((value, options)=>{
|
|
16
18
|
if (typeof validate === 'function') {
|
|
@@ -24,6 +26,18 @@ const _Upload = (props)=>{
|
|
|
24
26
|
required
|
|
25
27
|
]);
|
|
26
28
|
const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps();
|
|
29
|
+
// Checks if the user has permissions to create a new document in the related collection
|
|
30
|
+
const canCreate = useMemo(()=>{
|
|
31
|
+
if (permissions?.collections && permissions.collections?.[relationTo]?.create) {
|
|
32
|
+
if (permissions.collections[relationTo].create?.permission === true) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return false;
|
|
37
|
+
}, [
|
|
38
|
+
relationTo,
|
|
39
|
+
permissions
|
|
40
|
+
]);
|
|
27
41
|
const { filterOptions, formInitializing, formProcessing, path, setValue, showError, value } = useField({
|
|
28
42
|
path: pathFromContext ?? pathFromProps,
|
|
29
43
|
validate: memoizedValidate
|
|
@@ -40,7 +54,8 @@ const _Upload = (props)=>{
|
|
|
40
54
|
CustomDescription: CustomDescription,
|
|
41
55
|
CustomError: CustomError,
|
|
42
56
|
CustomLabel: CustomLabel,
|
|
43
|
-
|
|
57
|
+
allowNewUpload: canCreate,
|
|
58
|
+
api: apiRoute,
|
|
44
59
|
className: className,
|
|
45
60
|
collection: collection,
|
|
46
61
|
descriptionProps: descriptionProps,
|
|
@@ -62,6 +77,6 @@ const _Upload = (props)=>{
|
|
|
62
77
|
}
|
|
63
78
|
return null;
|
|
64
79
|
};
|
|
65
|
-
export const UploadField = withCondition(
|
|
80
|
+
export const UploadField = withCondition(UploadComponent);
|
|
66
81
|
|
|
67
82
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Upload/index.tsx"],"sourcesContent":["'use client'\n\nimport
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Upload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UploadFieldProps } from 'payload'\n\nimport React, { useCallback, useMemo } from 'react'\n\nimport type { UploadInputProps } from './Input.js'\n\nimport { useFieldProps } from '../../forms/FieldPropsProvider/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { UploadInput } from './Input.js'\nimport './index.scss'\n\nexport { UploadFieldProps, UploadInput }\nexport type { UploadInputProps }\n\nconst UploadComponent: React.FC<UploadFieldProps> = (props) => {\n const {\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n errorProps,\n label,\n labelProps,\n path: pathFromProps,\n readOnly: readOnlyFromProps,\n relationTo,\n required,\n style,\n validate,\n width,\n } = props\n\n const {\n collections,\n routes: { api: apiRoute },\n serverURL,\n } = useConfig()\n\n const { permissions } = useAuth()\n\n const collection = collections.find((coll) => coll.slug === relationTo)\n\n const memoizedValidate = useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const { path: pathFromContext, readOnly: readOnlyFromContext } = useFieldProps()\n\n // Checks if the user has permissions to create a new document in the related collection\n const canCreate = useMemo(() => {\n if (permissions?.collections && permissions.collections?.[relationTo]?.create) {\n if (permissions.collections[relationTo].create?.permission === true) {\n return true\n }\n }\n\n return false\n }, [relationTo, permissions])\n\n const { filterOptions, formInitializing, formProcessing, path, setValue, showError, value } =\n useField<string>({\n path: pathFromContext ?? pathFromProps,\n validate: memoizedValidate,\n })\n\n const disabled = readOnlyFromProps || readOnlyFromContext || formProcessing || formInitializing\n\n const onChange = useCallback(\n (incomingValue) => {\n const incomingID = incomingValue?.id || incomingValue\n setValue(incomingID)\n },\n [setValue],\n )\n\n if (collection.upload) {\n return (\n <UploadInput\n CustomDescription={CustomDescription}\n CustomError={CustomError}\n CustomLabel={CustomLabel}\n allowNewUpload={canCreate}\n api={apiRoute}\n className={className}\n collection={collection}\n descriptionProps={descriptionProps}\n errorProps={errorProps}\n filterOptions={filterOptions}\n label={label}\n labelProps={labelProps}\n onChange={onChange}\n path={path}\n readOnly={disabled}\n relationTo={relationTo}\n required={required}\n serverURL={serverURL}\n showError={showError}\n style={style}\n value={value}\n width={width}\n />\n )\n }\n\n return null\n}\n\nexport const UploadField = withCondition(UploadComponent)\n"],"names":["React","useCallback","useMemo","useFieldProps","useField","withCondition","useAuth","useConfig","UploadInput","UploadComponent","props","CustomDescription","CustomError","CustomLabel","className","descriptionProps","errorProps","label","labelProps","path","pathFromProps","readOnly","readOnlyFromProps","relationTo","required","style","validate","width","collections","routes","api","apiRoute","serverURL","permissions","collection","find","coll","slug","memoizedValidate","value","options","pathFromContext","readOnlyFromContext","canCreate","create","permission","filterOptions","formInitializing","formProcessing","setValue","showError","disabled","onChange","incomingValue","incomingID","id","upload","allowNewUpload","UploadField"],"mappings":"AAAA;;AAIA,OAAOA,SAASC,WAAW,EAAEC,OAAO,QAAQ,QAAO;AAInD,SAASC,aAAa,QAAQ,0CAAyC;AACvE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,WAAW,QAAQ,aAAY;AACxC,OAAO,eAAc;AAErB,SAA2BA,WAAW,GAAE;AAGxC,MAAMC,kBAA8C,CAACC;IACnD,MAAM,EACJC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,SAAS,EACTC,gBAAgB,EAChBC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,MAAMC,aAAa,EACnBC,UAAUC,iBAAiB,EAC3BC,UAAU,EACVC,QAAQ,EACRC,KAAK,EACLC,QAAQ,EACRC,KAAK,EACN,GAAGjB;IAEJ,MAAM,EACJkB,WAAW,EACXC,QAAQ,EAAEC,KAAKC,QAAQ,EAAE,EACzBC,SAAS,EACV,GAAGzB;IAEJ,MAAM,EAAE0B,WAAW,EAAE,GAAG3B;IAExB,MAAM4B,aAAaN,YAAYO,IAAI,CAAC,CAACC,OAASA,KAAKC,IAAI,KAAKd;IAE5D,MAAMe,mBAAmBrC,YACvB,CAACsC,OAAOC;QACN,IAAI,OAAOd,aAAa,YAAY;YAClC,OAAOA,SAASa,OAAO;gBAAE,GAAGC,OAAO;gBAAEhB;YAAS;QAChD;IACF,GACA;QAACE;QAAUF;KAAS;IAGtB,MAAM,EAAEL,MAAMsB,eAAe,EAAEpB,UAAUqB,mBAAmB,EAAE,GAAGvC;IAEjE,wFAAwF;IACxF,MAAMwC,YAAYzC,QAAQ;QACxB,IAAI+B,aAAaL,eAAeK,YAAYL,WAAW,EAAE,CAACL,WAAW,EAAEqB,QAAQ;YAC7E,IAAIX,YAAYL,WAAW,CAACL,WAAW,CAACqB,MAAM,EAAEC,eAAe,MAAM;gBACnE,OAAO;YACT;QACF;QAEA,OAAO;IACT,GAAG;QAACtB;QAAYU;KAAY;IAE5B,MAAM,EAAEa,aAAa,EAAEC,gBAAgB,EAAEC,cAAc,EAAE7B,IAAI,EAAE8B,QAAQ,EAAEC,SAAS,EAAEX,KAAK,EAAE,GACzFnC,SAAiB;QACfe,MAAMsB,mBAAmBrB;QACzBM,UAAUY;IACZ;IAEF,MAAMa,WAAW7B,qBAAqBoB,uBAAuBM,kBAAkBD;IAE/E,MAAMK,WAAWnD,YACf,CAACoD;QACC,MAAMC,aAAaD,eAAeE,MAAMF;QACxCJ,SAASK;IACX,GACA;QAACL;KAAS;IAGZ,IAAIf,WAAWsB,MAAM,EAAE;QACrB,qBACE,KAAChD;YACCG,mBAAmBA;YACnBC,aAAaA;YACbC,aAAaA;YACb4C,gBAAgBd;YAChBb,KAAKC;YACLjB,WAAWA;YACXoB,YAAYA;YACZnB,kBAAkBA;YAClBC,YAAYA;YACZ8B,eAAeA;YACf7B,OAAOA;YACPC,YAAYA;YACZkC,UAAUA;YACVjC,MAAMA;YACNE,UAAU8B;YACV5B,YAAYA;YACZC,UAAUA;YACVQ,WAAWA;YACXkB,WAAWA;YACXzB,OAAOA;YACPc,OAAOA;YACPZ,OAAOA;;IAGb;IAEA,OAAO;AACT;AAEA,OAAO,MAAM+B,cAAcrD,cAAcI,iBAAgB"}
|
|
@@ -1,29 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Locale, SanitizedLocalizationConfig } from 'payload';
|
|
2
2
|
export declare const fieldBaseClass = "field-type";
|
|
3
|
-
export type FormFieldBase = {
|
|
4
|
-
AfterInput?: React.ReactNode;
|
|
5
|
-
BeforeInput?: React.ReactNode;
|
|
6
|
-
CustomDescription?: React.ReactNode;
|
|
7
|
-
CustomError?: React.ReactNode;
|
|
8
|
-
CustomLabel?: React.ReactNode;
|
|
9
|
-
className?: string;
|
|
10
|
-
custom?: Record<string, any>;
|
|
11
|
-
descriptionProps?: FieldDescriptionProps;
|
|
12
|
-
disabled?: boolean;
|
|
13
|
-
docPreferences?: DocumentPreferences;
|
|
14
|
-
errorProps?: ErrorProps;
|
|
15
|
-
label?: LabelProps['label'];
|
|
16
|
-
labelProps?: SanitizedLabelProps;
|
|
17
|
-
locale?: Locale;
|
|
18
|
-
localized?: boolean;
|
|
19
|
-
path?: string;
|
|
20
|
-
readOnly?: boolean;
|
|
21
|
-
required?: boolean;
|
|
22
|
-
rtl?: boolean;
|
|
23
|
-
style?: React.CSSProperties;
|
|
24
|
-
user?: User;
|
|
25
|
-
validate?: Validate;
|
|
26
|
-
};
|
|
27
3
|
/**
|
|
28
4
|
* Determines whether a field should be displayed as right-to-left (RTL) based on its configuration, payload's localization configuration and the adming user's currently enabled locale.
|
|
29
5
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/shared/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/shared/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,2BAA2B,EAAE,MAAM,SAAS,CAAA;AAElE,eAAO,MAAM,cAAc,eAAe,CAAA;AAE1C;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,EACzB,cAAc,EACd,QAAQ,EACR,MAAM,EACN,kBAAkB,GACnB,EAAE;IACD,cAAc,EAAE,OAAO,CAAA;IACvB,QAAQ,EAAE,OAAO,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,kBAAkB,CAAC,EAAE,2BAA2B,CAAA;CACjD,WAiBA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/shared/index.tsx"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/shared/index.tsx"],"sourcesContent":["import type { Locale, SanitizedLocalizationConfig } from 'payload'\n\nexport const fieldBaseClass = 'field-type'\n\n/**\n * Determines whether a field should be displayed as right-to-left (RTL) based on its configuration, payload's localization configuration and the adming user's currently enabled locale.\n\n * @returns Whether the field should be displayed as RTL.\n */\nexport function isFieldRTL({\n fieldLocalized,\n fieldRTL,\n locale,\n localizationConfig,\n}: {\n fieldLocalized: boolean\n fieldRTL: boolean\n locale: Locale\n localizationConfig?: SanitizedLocalizationConfig\n}) {\n const hasMultipleLocales =\n locale &&\n localizationConfig &&\n localizationConfig.locales &&\n localizationConfig.locales.length > 1\n\n const isCurrentLocaleDefaultLocale = locale?.code === localizationConfig?.defaultLocale\n\n return (\n (fieldRTL !== false &&\n locale?.rtl === true &&\n (fieldLocalized ||\n (!fieldLocalized && !hasMultipleLocales) || // If there is only one locale which is also rtl, that field is rtl too\n (!fieldLocalized && isCurrentLocaleDefaultLocale))) || // If the current locale is the default locale, but the field is not localized, that field is rtl too\n fieldRTL === true\n ) // If fieldRTL is true. This should be useful for when no localization is set at all in the payload config, but you still want fields to be rtl.\n}\n"],"names":["fieldBaseClass","isFieldRTL","fieldLocalized","fieldRTL","locale","localizationConfig","hasMultipleLocales","locales","length","isCurrentLocaleDefaultLocale","code","defaultLocale","rtl"],"mappings":"AAEA,OAAO,MAAMA,iBAAiB,aAAY;AAE1C;;;;CAIC,GACD,OAAO,SAASC,WAAW,EACzBC,cAAc,EACdC,QAAQ,EACRC,MAAM,EACNC,kBAAkB,EAMnB;IACC,MAAMC,qBACJF,UACAC,sBACAA,mBAAmBE,OAAO,IAC1BF,mBAAmBE,OAAO,CAACC,MAAM,GAAG;IAEtC,MAAMC,+BAA+BL,QAAQM,SAASL,oBAAoBM;IAE1E,OACE,AAACR,aAAa,SACZC,QAAQQ,QAAQ,QACfV,CAAAA,kBACE,CAACA,kBAAkB,CAACI,sBAAuB,uEAAuE;IAClH,CAACJ,kBAAkBO,4BAA4B,KAAO,qGAAqG;IAChKN,aAAa,KACb,gJAAgJ;;AACpJ"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { Field } from 'payload';
|
|
2
|
-
import type { MappedField } from '../../providers/ComponentMap/buildComponentMap/types.js';
|
|
1
|
+
import type { Field, MappedField } from 'payload';
|
|
3
2
|
export declare const createNestedFieldPath: (parentPath: string, field: Field) => string;
|
|
4
3
|
export declare const createNestedClientFieldPath: (parentPath: string, field: MappedField) => string;
|
|
5
4
|
//# sourceMappingURL=createNestedFieldPath.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createNestedFieldPath.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/createNestedFieldPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"createNestedFieldPath.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/createNestedFieldPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAIjD,eAAO,MAAM,qBAAqB,eAAgB,MAAM,SAAS,KAAK,KAAG,MAcxE,CAAA;AAED,eAAO,MAAM,2BAA2B,eAAgB,MAAM,SAAS,WAAW,KAAG,MAYpF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/forms/Form/createNestedFieldPath.ts"],"sourcesContent":["import type { Field } from 'payload'\n\nimport { fieldAffectsData } from 'payload/shared'\n\
|
|
1
|
+
{"version":3,"sources":["../../../src/forms/Form/createNestedFieldPath.ts"],"sourcesContent":["import type { Field, MappedField } from 'payload'\n\nimport { fieldAffectsData } from 'payload/shared'\n\nexport const createNestedFieldPath = (parentPath: string, field: Field): string => {\n if (parentPath) {\n if (fieldAffectsData(field)) {\n return `${parentPath}.${field.name}`\n }\n\n return parentPath\n }\n\n if (fieldAffectsData(field)) {\n return field.name\n }\n\n return ''\n}\n\nexport const createNestedClientFieldPath = (parentPath: string, field: MappedField): string => {\n if (parentPath) {\n if (field.isFieldAffectingData) {\n return `${parentPath}.${field.name}`\n }\n }\n\n if (field.isFieldAffectingData) {\n return field.name\n }\n\n return field.name\n}\n"],"names":["fieldAffectsData","createNestedFieldPath","parentPath","field","name","createNestedClientFieldPath","isFieldAffectingData"],"mappings":"AAEA,SAASA,gBAAgB,QAAQ,iBAAgB;AAEjD,OAAO,MAAMC,wBAAwB,CAACC,YAAoBC;IACxD,IAAID,YAAY;QACd,IAAIF,iBAAiBG,QAAQ;YAC3B,OAAO,CAAC,EAAED,WAAW,CAAC,EAAEC,MAAMC,IAAI,CAAC,CAAC;QACtC;QAEA,OAAOF;IACT;IAEA,IAAIF,iBAAiBG,QAAQ;QAC3B,OAAOA,MAAMC,IAAI;IACnB;IAEA,OAAO;AACT,EAAC;AAED,OAAO,MAAMC,8BAA8B,CAACH,YAAoBC;IAC9D,IAAID,YAAY;QACd,IAAIC,MAAMG,oBAAoB,EAAE;YAC9B,OAAO,CAAC,EAAEJ,WAAW,CAAC,EAAEC,MAAMC,IAAI,CAAC,CAAC;QACtC;IACF;IAEA,IAAID,MAAMG,oBAAoB,EAAE;QAC9B,OAAOH,MAAMC,IAAI;IACnB;IAEA,OAAOD,MAAMC,IAAI;AACnB,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldReducer.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/fieldReducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,SAAS,EAAO,MAAM,SAAS,CAAA;AAMxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAO7C;;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":"AAAA,OAAO,KAAK,EAAa,SAAS,EAAO,MAAM,SAAS,CAAA;AAMxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAO7C;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,GAAG,SAAS,CAoU7E"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ObjectIdImport from 'bson-objectid';
|
|
2
2
|
import { dequal } from 'dequal/lite'; // lite: no need for Map and Set support
|
|
3
|
-
import { deepCopyObject } from 'payload/shared';
|
|
3
|
+
import { deepCopyObject, deepCopyObjectSimple } from 'payload/shared';
|
|
4
4
|
import { flattenRows, separateRows } from './rows.js';
|
|
5
5
|
const ObjectId = ObjectIdImport.default || ObjectIdImport;
|
|
6
6
|
/**
|
|
@@ -213,10 +213,13 @@ const ObjectId = ObjectIdImport.default || ObjectIdImport;
|
|
|
213
213
|
const rowsMetadata = [
|
|
214
214
|
...state[path].rows || []
|
|
215
215
|
];
|
|
216
|
-
const duplicateRowMetadata =
|
|
216
|
+
const duplicateRowMetadata = deepCopyObjectSimple(rowsMetadata[rowIndex]);
|
|
217
217
|
if (duplicateRowMetadata.id) duplicateRowMetadata.id = new ObjectId().toHexString();
|
|
218
218
|
const duplicateRowState = deepCopyObject(rows[rowIndex]);
|
|
219
|
-
if (duplicateRowState.id)
|
|
219
|
+
if (duplicateRowState.id) {
|
|
220
|
+
duplicateRowState.id.value = new ObjectId().toHexString();
|
|
221
|
+
duplicateRowState.id.initialValue = new ObjectId().toHexString();
|
|
222
|
+
}
|
|
220
223
|
// If there are subfields
|
|
221
224
|
if (Object.keys(duplicateRowState).length > 0) {
|
|
222
225
|
// Add new object containing subfield names to unflattenedRows array
|
|
@@ -266,54 +269,24 @@ const ObjectId = ObjectIdImport.default || ObjectIdImport;
|
|
|
266
269
|
}
|
|
267
270
|
case 'SET_ROW_COLLAPSED':
|
|
268
271
|
{
|
|
269
|
-
const {
|
|
270
|
-
const arrayState = state[path];
|
|
271
|
-
const { collapsedRowIDs, matchedIndex } = state[path].rows.reduce((acc, row, index)=>{
|
|
272
|
-
const isMatchingRow = row.id === rowID;
|
|
273
|
-
if (isMatchingRow) acc.matchedIndex = index;
|
|
274
|
-
if (!isMatchingRow && row.collapsed) acc.collapsedRowIDs.push(row.id);
|
|
275
|
-
else if (isMatchingRow && collapsed) acc.collapsedRowIDs.push(row.id);
|
|
276
|
-
return acc;
|
|
277
|
-
}, {
|
|
278
|
-
collapsedRowIDs: [],
|
|
279
|
-
matchedIndex: undefined
|
|
280
|
-
});
|
|
281
|
-
if (matchedIndex > -1) {
|
|
282
|
-
arrayState.rows[matchedIndex].collapsed = collapsed;
|
|
283
|
-
setDocFieldPreferences(path, {
|
|
284
|
-
collapsed: collapsedRowIDs
|
|
285
|
-
});
|
|
286
|
-
}
|
|
272
|
+
const { path, updatedRows } = action;
|
|
287
273
|
const newState = {
|
|
288
274
|
...state,
|
|
289
275
|
[path]: {
|
|
290
|
-
...
|
|
276
|
+
...state[path],
|
|
277
|
+
rows: updatedRows
|
|
291
278
|
}
|
|
292
279
|
};
|
|
293
280
|
return newState;
|
|
294
281
|
}
|
|
295
282
|
case 'SET_ALL_ROWS_COLLAPSED':
|
|
296
283
|
{
|
|
297
|
-
const {
|
|
298
|
-
const { collapsedRowIDs, rows } = state[path].rows.reduce((acc, row)=>{
|
|
299
|
-
if (collapsed) acc.collapsedRowIDs.push(row.id);
|
|
300
|
-
acc.rows.push({
|
|
301
|
-
...row,
|
|
302
|
-
collapsed
|
|
303
|
-
});
|
|
304
|
-
return acc;
|
|
305
|
-
}, {
|
|
306
|
-
collapsedRowIDs: [],
|
|
307
|
-
rows: []
|
|
308
|
-
});
|
|
309
|
-
setDocFieldPreferences(path, {
|
|
310
|
-
collapsed: collapsedRowIDs
|
|
311
|
-
});
|
|
284
|
+
const { path, updatedRows } = action;
|
|
312
285
|
return {
|
|
313
286
|
...state,
|
|
314
287
|
[path]: {
|
|
315
288
|
...state[path],
|
|
316
|
-
rows
|
|
289
|
+
rows: updatedRows
|
|
317
290
|
}
|
|
318
291
|
};
|
|
319
292
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/forms/Form/fieldReducer.ts"],"sourcesContent":["import 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 { deepCopyObject } from 'payload/shared'\n\nimport type { FieldAction } from './types.js'\n\nimport { flattenRows, separateRows } from './rows.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\n/**\n * Reducer which modifies the form field state (all the current data of the fields in the form). When called using dispatch, it will return a new state object.\n */\nexport function fieldReducer(state: FormState, action: FieldAction): FormState {\n switch (action.type) {\n case '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 = {}\n\n Object.entries(action.state).forEach(([path, field]) => {\n const oldField = state[path]\n const newField = field\n\n if (!dequal(oldField, newField)) {\n newState[path] = newField\n } else if (oldField) {\n newState[path] = oldField\n }\n })\n return newState\n }\n // If we're not optimizing, just set the state to the new state\n return action.state\n }\n\n case 'REMOVE': {\n const newState = { ...state }\n if (newState[action.path]) delete newState[action.path]\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(({ field, message }) => {\n newState[field] = {\n ...(newState[field] || {\n initialValue: null,\n value: null,\n }),\n errorMessage: message,\n valid: false,\n }\n\n const segments = field.split('.')\n if (segments.length > 1) {\n errorPaths.push({\n fieldErrorPath: field,\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 '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 '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 'ADD_ROW': {\n const { blockType, path, rowIndex: rowIndexFromArgs, subFieldState = {} } = action\n\n const rowIndex =\n typeof rowIndexFromArgs === 'number' ? rowIndexFromArgs : state[path]?.rows?.length || 0\n\n const withNewRow = [...(state[path]?.rows || [])]\n\n const newRow: Row = {\n id: (subFieldState?.id?.value as string) || new ObjectId().toHexString(),\n blockType: blockType || undefined,\n collapsed: false,\n }\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 siblingRows.splice(rowIndex, 0, subFieldState)\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\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 '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 'DUPLICATE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n const rowsMetadata = [...(state[path].rows || [])]\n\n const duplicateRowMetadata = deepCopyObject(rowsMetadata[rowIndex])\n if (duplicateRowMetadata.id) duplicateRowMetadata.id = new ObjectId().toHexString()\n\n const duplicateRowState = deepCopyObject(rows[rowIndex])\n if (duplicateRowState.id) duplicateRowState.id = new ObjectId().toHexString()\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 'MOVE_ROW': {\n const { moveFromIndex, moveToIndex, path } = action\n const { remainingFields, rows } = separateRows(path, state)\n\n // copy the row to move\n const copyOfMovingRow = rows[moveFromIndex]\n // delete the row by index\n rows.splice(moveFromIndex, 1)\n // insert row copyOfMovingRow back in\n rows.splice(moveToIndex, 0, copyOfMovingRow)\n\n // modify array/block internal row state (i.e. collapsed, blockType)\n const rowStateCopy = [...(state[path]?.rows || [])]\n const movingRowState = { ...rowStateCopy[moveFromIndex] }\n rowStateCopy.splice(moveFromIndex, 1)\n rowStateCopy.splice(moveToIndex, 0, movingRowState)\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, rows),\n [path]: {\n ...state[path],\n rows: rowStateCopy,\n },\n }\n\n return newState\n }\n\n case 'SET_ROW_COLLAPSED': {\n const { collapsed, path, rowID, setDocFieldPreferences } = action\n\n const arrayState = state[path]\n\n const { collapsedRowIDs, matchedIndex } = state[path].rows.reduce(\n (acc, row, index) => {\n const isMatchingRow = row.id === rowID\n if (isMatchingRow) acc.matchedIndex = index\n\n if (!isMatchingRow && row.collapsed) acc.collapsedRowIDs.push(row.id)\n else if (isMatchingRow && collapsed) acc.collapsedRowIDs.push(row.id)\n\n return acc\n },\n {\n collapsedRowIDs: [],\n matchedIndex: undefined,\n },\n )\n\n if (matchedIndex > -1) {\n arrayState.rows[matchedIndex].collapsed = collapsed\n setDocFieldPreferences(path, { collapsed: collapsedRowIDs })\n }\n\n const newState = {\n ...state,\n [path]: {\n ...arrayState,\n },\n }\n\n return newState\n }\n\n case 'SET_ALL_ROWS_COLLAPSED': {\n const { collapsed, path, setDocFieldPreferences } = action\n\n const { collapsedRowIDs, rows } = state[path].rows.reduce(\n (acc, row) => {\n if (collapsed) acc.collapsedRowIDs.push(row.id)\n\n acc.rows.push({\n ...row,\n collapsed,\n })\n\n return acc\n },\n {\n collapsedRowIDs: [],\n rows: [],\n },\n )\n\n setDocFieldPreferences(path, { collapsed: collapsedRowIDs })\n\n return {\n ...state,\n [path]: {\n ...state[path],\n rows,\n },\n }\n }\n\n default: {\n return state\n }\n }\n}\n"],"names":["ObjectIdImport","dequal","deepCopyObject","flattenRows","separateRows","ObjectId","default","fieldReducer","state","action","type","optimize","newState","Object","entries","forEach","path","field","oldField","newField","errorPaths","errors","message","initialValue","value","errorMessage","valid","segments","split","length","push","fieldErrorPath","parentPath","slice","join","reduce","acc","fieldState","fieldErrorPaths","errorACC","startsWith","changed","newErrorPaths","Array","isArray","includes","key","rowIndex","remainingFields","rows","rowsMetadata","splice","disableFormData","blockType","rowIndexFromArgs","subFieldState","withNewRow","newRow","id","toHexString","undefined","collapsed","siblingRows","rowIndexArg","Math","max","min","duplicateRowMetadata","duplicateRowState","keys","moveFromIndex","moveToIndex","copyOfMovingRow","rowStateCopy","movingRowState","rowID","setDocFieldPreferences","arrayState","collapsedRowIDs","matchedIndex","row","index","isMatchingRow"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/forms/Form/fieldReducer.ts"],"sourcesContent":["import 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 { deepCopyObject, deepCopyObjectSimple } from 'payload/shared'\n\nimport type { FieldAction } from './types.js'\n\nimport { flattenRows, separateRows } from './rows.js'\n\nconst ObjectId = (ObjectIdImport.default ||\n ObjectIdImport) as unknown as typeof ObjectIdImport.default\n\n/**\n * Reducer which modifies the form field state (all the current data of the fields in the form). When called using dispatch, it will return a new state object.\n */\nexport function fieldReducer(state: FormState, action: FieldAction): FormState {\n switch (action.type) {\n case '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 = {}\n\n Object.entries(action.state).forEach(([path, field]) => {\n const oldField = state[path]\n const newField = field\n\n if (!dequal(oldField, newField)) {\n newState[path] = newField\n } else if (oldField) {\n newState[path] = oldField\n }\n })\n return newState\n }\n // If we're not optimizing, just set the state to the new state\n return action.state\n }\n\n case 'REMOVE': {\n const newState = { ...state }\n if (newState[action.path]) delete newState[action.path]\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(({ field, message }) => {\n newState[field] = {\n ...(newState[field] || {\n initialValue: null,\n value: null,\n }),\n errorMessage: message,\n valid: false,\n }\n\n const segments = field.split('.')\n if (segments.length > 1) {\n errorPaths.push({\n fieldErrorPath: field,\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 '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 '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 'ADD_ROW': {\n const { blockType, path, rowIndex: rowIndexFromArgs, subFieldState = {} } = action\n\n const rowIndex =\n typeof rowIndexFromArgs === 'number' ? rowIndexFromArgs : state[path]?.rows?.length || 0\n\n const withNewRow = [...(state[path]?.rows || [])]\n\n const newRow: Row = {\n id: (subFieldState?.id?.value as string) || new ObjectId().toHexString(),\n blockType: blockType || undefined,\n collapsed: false,\n }\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 siblingRows.splice(rowIndex, 0, subFieldState)\n\n const newState: FormState = {\n ...remainingFields,\n ...flattenRows(path, siblingRows),\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 '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 'DUPLICATE_ROW': {\n const { path, rowIndex } = action\n const { remainingFields, rows } = separateRows(path, state)\n const rowsMetadata = [...(state[path].rows || [])]\n\n const duplicateRowMetadata = deepCopyObjectSimple(rowsMetadata[rowIndex])\n if (duplicateRowMetadata.id) duplicateRowMetadata.id = new ObjectId().toHexString()\n\n const duplicateRowState = deepCopyObject(rows[rowIndex])\n if (duplicateRowState.id) {\n duplicateRowState.id.value = new ObjectId().toHexString()\n duplicateRowState.id.initialValue = new ObjectId().toHexString()\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 'MOVE_ROW': {\n const { moveFromIndex, moveToIndex, path } = action\n const { remainingFields, rows } = separateRows(path, state)\n\n // copy the row to move\n const copyOfMovingRow = rows[moveFromIndex]\n // delete the row by index\n rows.splice(moveFromIndex, 1)\n // insert row copyOfMovingRow back in\n rows.splice(moveToIndex, 0, copyOfMovingRow)\n\n // modify array/block internal row state (i.e. collapsed, blockType)\n const rowStateCopy = [...(state[path]?.rows || [])]\n const movingRowState = { ...rowStateCopy[moveFromIndex] }\n rowStateCopy.splice(moveFromIndex, 1)\n rowStateCopy.splice(moveToIndex, 0, movingRowState)\n\n const newState = {\n ...remainingFields,\n ...flattenRows(path, rows),\n [path]: {\n ...state[path],\n rows: rowStateCopy,\n },\n }\n\n return newState\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 '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 default: {\n return state\n }\n }\n}\n"],"names":["ObjectIdImport","dequal","deepCopyObject","deepCopyObjectSimple","flattenRows","separateRows","ObjectId","default","fieldReducer","state","action","type","optimize","newState","Object","entries","forEach","path","field","oldField","newField","errorPaths","errors","message","initialValue","value","errorMessage","valid","segments","split","length","push","fieldErrorPath","parentPath","slice","join","reduce","acc","fieldState","fieldErrorPaths","errorACC","startsWith","changed","newErrorPaths","Array","isArray","includes","key","rowIndex","remainingFields","rows","rowsMetadata","splice","disableFormData","blockType","rowIndexFromArgs","subFieldState","withNewRow","newRow","id","toHexString","undefined","collapsed","siblingRows","rowIndexArg","Math","max","min","duplicateRowMetadata","duplicateRowState","keys","moveFromIndex","moveToIndex","copyOfMovingRow","rowStateCopy","movingRowState","updatedRows"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/forms/Form/index.tsx"],"names":[],"mappings":"AAYA,OAAO,KAA+D,MAAM,OAAO,CAAA;AAGnF,OAAO,KAAK,EAEV,SAAS,EAGV,MAAM,YAAY,CAAA;AA4BnB,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,CA4lBpC,CAAA;AAED,OAAO,EACL,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,OAAO,EACP,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,GACb,MAAM,cAAc,CAAA;AAErB,OAAO,EAAE,SAAS,EAAE,CAAA"}
|