@payloadcms/ui 3.0.0-beta.134 → 3.0.0-beta.135
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/assets/payload-favicon-dark.png +0 -0
- package/dist/assets/payload-favicon-light.png +0 -0
- package/dist/assets/payload-favicon.svg +4 -4
- package/dist/assets/payload-logo-dark.svg +1 -23
- package/dist/assets/payload-logo-light.svg +1 -23
- package/dist/assets/static-og-image.png +0 -0
- package/dist/elements/RenderServerComponent/index.d.ts +0 -6
- package/dist/elements/RenderServerComponent/index.d.ts.map +1 -1
- package/dist/elements/RenderServerComponent/index.js +1 -24
- package/dist/elements/RenderServerComponent/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +1 -1
- package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
- package/dist/exports/client/index.js +22 -22
- 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/Checkbox/index.d.ts.map +1 -1
- package/dist/fields/Checkbox/index.js +71 -183
- package/dist/fields/Checkbox/index.js.map +1 -1
- package/dist/fields/Code/index.d.ts.map +1 -1
- package/dist/fields/Code/index.js +68 -170
- package/dist/fields/Code/index.js.map +1 -1
- package/dist/fields/Collapsible/index.d.ts.map +1 -1
- package/dist/fields/Collapsible/index.js +100 -207
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/DateTime/index.d.ts.map +1 -1
- package/dist/fields/DateTime/index.js +72 -162
- package/dist/fields/DateTime/index.js.map +1 -1
- package/dist/fields/Email/index.d.ts.map +1 -1
- package/dist/fields/Email/index.js +72 -161
- package/dist/fields/Email/index.js.map +1 -1
- package/dist/fields/Group/index.d.ts.map +1 -1
- package/dist/fields/Group/index.js +64 -152
- package/dist/fields/Group/index.js.map +1 -1
- package/dist/fields/JSON/index.d.ts.map +1 -1
- package/dist/fields/JSON/index.js +7 -10
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/Join/index.d.ts.map +1 -1
- package/dist/fields/Join/index.js +0 -1
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/fields/Number/index.d.ts.map +1 -1
- package/dist/fields/Number/index.js +143 -275
- package/dist/fields/Number/index.js.map +1 -1
- package/dist/fields/Password/index.d.ts.map +1 -1
- package/dist/fields/Password/index.js +79 -166
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/fields/Point/index.d.ts.map +1 -1
- package/dist/fields/Point/index.js +110 -235
- package/dist/fields/Point/index.js.map +1 -1
- package/dist/fields/RadioGroup/index.d.ts.map +1 -1
- package/dist/fields/RadioGroup/index.js +93 -209
- package/dist/fields/RadioGroup/index.js.map +1 -1
- package/dist/fields/Relationship/index.d.ts.map +1 -1
- package/dist/fields/Relationship/index.js +7 -10
- package/dist/fields/Relationship/index.js.map +1 -1
- package/dist/fields/Select/Input.d.ts +0 -1
- package/dist/fields/Select/Input.d.ts.map +1 -1
- package/dist/fields/Select/Input.js +45 -50
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Select/index.d.ts.map +1 -1
- package/dist/fields/Select/index.js +7 -7
- package/dist/fields/Select/index.js.map +1 -1
- package/dist/fields/Text/Input.d.ts.map +1 -1
- package/dist/fields/Text/Input.js +31 -36
- package/dist/fields/Text/Input.js.map +1 -1
- package/dist/fields/Text/index.d.ts +1 -1
- package/dist/fields/Text/index.d.ts.map +1 -1
- package/dist/fields/Text/index.js +93 -171
- package/dist/fields/Text/index.js.map +1 -1
- package/dist/fields/Text/types.d.ts +0 -1
- package/dist/fields/Text/types.d.ts.map +1 -1
- package/dist/fields/Text/types.js.map +1 -1
- package/dist/fields/Textarea/Input.d.ts.map +1 -1
- package/dist/fields/Textarea/Input.js +26 -31
- package/dist/fields/Textarea/Input.js.map +1 -1
- package/dist/fields/Textarea/index.d.ts.map +1 -1
- package/dist/fields/Textarea/index.js +62 -112
- package/dist/fields/Textarea/index.js.map +1 -1
- package/dist/fields/Textarea/types.d.ts +0 -1
- 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 +0 -1
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +41 -46
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/index.d.ts.map +1 -1
- package/dist/fields/Upload/index.js +63 -135
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/fields/mergeFieldStyles.d.ts +3 -0
- package/dist/fields/mergeFieldStyles.d.ts.map +1 -0
- package/dist/fields/mergeFieldStyles.js +13 -0
- package/dist/fields/mergeFieldStyles.js.map +1 -0
- package/dist/forms/fieldSchemasToFormState/renderField.d.ts.map +1 -1
- package/dist/forms/fieldSchemasToFormState/renderField.js +10 -8
- package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
- package/dist/graphics/Icon/index.d.ts.map +1 -1
- package/dist/graphics/Icon/index.js +2 -2
- package/dist/graphics/Icon/index.js.map +1 -1
- package/dist/graphics/Logo/index.d.ts.map +1 -1
- package/dist/graphics/Logo/index.js +30 -21
- package/dist/graphics/Logo/index.js.map +1 -1
- package/dist/utilities/buildFormState.d.ts +0 -4
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +1 -15
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/buildTableState.d.ts +2 -1
- package/dist/utilities/buildTableState.d.ts.map +1 -1
- package/dist/utilities/buildTableState.js +6 -3
- package/dist/utilities/buildTableState.js.map +1 -1
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","names":["c","_c","useModal","qs","React","useCallback","useEffect","useMemo","useBulkUpload","Button","useDocumentDrawer","Dropzone","useListDrawer","RenderCustomComponent","ShimmerEffect","FieldDescription","FieldError","FieldLabel","useAuth","useLocale","useTranslation","fieldBaseClass","UploadComponentHasMany","UploadComponentHasOne","baseClass","UploadInput","props","$","AfterInput","allowCreate","api","BeforeInput","className","Description","description","Error","filterOptions","filterOptionsFromProps","hasMany","isSortable","Label","label","localized","maxRows","onChange","onChangeFromProps","path","readOnly","relationTo","required","serverURL","showError","style","value","width","populatedDocs","setPopulatedDocs","useState","activeRelationTo","Array","isArray","openModal","drawerSlug","setCollectionSlug","setInitialFiles","setMaxFiles","setOnSuccess","permissions","code","i18n","t","t0","t1","t2","id","t3","not_in","t4","concat","t5","t6","t7","t8","t9","collectionSlugs","ListDrawer","t10","closeDrawer","closeListDrawer","openDrawer","openListDrawer","t11","collectionSlug","CreateDocDrawer","t12","closeCreateDocDrawer","openCreateDocDrawer","loadedValueDocsRef","useRef","t13","bb0","collections","create","canCreate","t14","newValue","t15","language","ids","relatedCollectionSlug","query","depth","draft","limit","length","locale","where","and","in","response","fetch","body","stringify","credentials","headers","method","ok","json","sortedDocs","map","docs","find","doc","String","populateDocs","t16","newDocs","mergedValue","doc_0","currentDocs","doc_1","firstDoc","onUploadSuccess","t17","fileList","fileListToUse","dataTransfer","DataTransfer","items","add","files","onLocalFileSelection","t18","selectedDocIDs","id_0","isSelected","push","loadedDocs","currentDocs_0","doc_2","onListBulkSelect","t19","data","currentDocs_1","onDocCreate","t20","t21","docID","loadedDocs_0","selectedDoc","currentDocs_2","onListSelect","docID_0","collectionSlug_0","docs_0","currentDocs_3","existingDocIndex","findIndex","doc_3","updatedDocs","reloadDoc","t22","newValue_0","newValueIDs","t23","value_0","onReorder","newValue_1","newValueIDs_0","t24","value_1","onRemove","t25","loadInitialDocs","current","loadedDocs_1","doc_4","showDropzone","t26","t27","t28","filter","Boolean","t29","join","t30","replace","t31","_jsxs","children","_jsx","CustomComponent","Fallback","_Fragment","fileDocs","readonly","_temp","fileDoc","height","disabled","multipleFiles","buttonStyle","onClick","size","onSave","enableRowSelections","onBulkSelect","onSelect","id_1"],"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientCollectionConfig,\n FieldLabelClientProps,\n FilterOptionsResult,\n JsonObject,\n StaticDescription,\n StaticLabel,\n UploadFieldClient,\n UploadField as UploadFieldType,\n Where,\n} from 'payload'\nimport type { MarkOptional } from 'ts-essentials'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo } from 'react'\n\nimport type { ListDrawerProps } from '../../elements/ListDrawer/types.js'\nimport type { PopulateDocs, ReloadDoc } from './types.js'\n\nimport { useBulkUpload } from '../../elements/BulkUpload/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { Dropzone } from '../../elements/Dropzone/index.js'\nimport { useListDrawer } from '../../elements/ListDrawer/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { UploadComponentHasMany } from './HasMany/index.js'\nimport { UploadComponentHasOne } from './HasOne/index.js'\nimport './index.scss'\n\nexport const baseClass = 'upload'\n\ntype PopulatedDocs = { relationTo: string; value: JsonObject }[]\n\nexport type UploadInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n /**\n * Controls the visibility of the \"Create new collection\" button\n */\n readonly api?: string\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly collection?: ClientCollectionConfig\n readonly customUploadActions?: React.ReactNode[]\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly filterOptions?: FilterOptionsResult\n readonly hasMany?: boolean\n readonly isSortable?: boolean\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly labelProps?: FieldLabelClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly localized?: boolean\n readonly maxRows?: number\n readonly onChange?: (e) => void\n readonly path: string\n readonly readOnly?: boolean\n readonly relationTo: UploadFieldType['relationTo']\n readonly required?: boolean\n readonly serverURL?: string\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: (number | string)[] | (number | string)\n readonly width?: React.CSSProperties['width']\n}\n\nexport function UploadInput(props: UploadInputProps) {\n const {\n AfterInput,\n allowCreate,\n api,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n filterOptions: filterOptionsFromProps,\n hasMany,\n isSortable,\n Label,\n label,\n localized,\n maxRows,\n onChange: onChangeFromProps,\n path,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n width,\n } = props\n\n const [populatedDocs, setPopulatedDocs] = React.useState<\n {\n relationTo: string\n value: JsonObject\n }[]\n >()\n\n const [activeRelationTo, setActiveRelationTo] = React.useState<string>(\n Array.isArray(relationTo) ? relationTo[0] : relationTo,\n )\n\n const { openModal } = useModal()\n const { drawerSlug, setCollectionSlug, setInitialFiles, setMaxFiles, setOnSuccess } =\n useBulkUpload()\n const { permissions } = useAuth()\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const filterOptions: FilterOptionsResult = useMemo(() => {\n return {\n ...filterOptionsFromProps,\n [activeRelationTo]: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any) || {}),\n id: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any)?.id || {}),\n not_in: ((filterOptionsFromProps?.[activeRelationTo] as any)?.id?.not_in || []).concat(\n ...(Array.isArray(value) || value ? [value] : []),\n ),\n },\n },\n }\n }, [value, activeRelationTo, filterOptionsFromProps])\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: typeof relationTo === 'string' ? [relationTo] : relationTo,\n filterOptions,\n })\n\n const [\n CreateDocDrawer,\n ,\n { closeDrawer: closeCreateDocDrawer, openDrawer: openCreateDocDrawer },\n ] = useDocumentDrawer({\n collectionSlug: activeRelationTo,\n })\n\n /**\n * Prevent initial retrieval of documents from running more than once\n */\n const loadedValueDocsRef = React.useRef<boolean>(false)\n\n const canCreate = useMemo(() => {\n if (!allowCreate) {\n return false\n }\n\n if (typeof activeRelationTo === 'string') {\n if (permissions?.collections && permissions.collections?.[activeRelationTo]?.create) {\n return true\n }\n }\n\n return false\n }, [activeRelationTo, permissions, readOnly, allowCreate])\n\n const onChange = React.useCallback(\n (newValue) => {\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newValue)\n }\n },\n [onChangeFromProps],\n )\n\n const populateDocs = React.useCallback<PopulateDocs>(\n async (ids, relatedCollectionSlug) => {\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n limit: ids.length,\n locale: code,\n where: {\n and: [\n {\n id: {\n in: ids,\n },\n },\n ],\n },\n }\n\n const response = await fetch(`${serverURL}${api}/${relatedCollectionSlug}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n if (response.ok) {\n const json = await response.json()\n const sortedDocs = ids.map((id) =>\n json.docs.find((doc) => {\n return String(doc.id) === String(id)\n }),\n )\n\n return { ...json, docs: sortedDocs }\n }\n\n return null\n },\n [code, serverURL, api, i18n.language],\n )\n\n const onUploadSuccess = useCallback(\n (newDocs: JsonObject[]) => {\n if (hasMany) {\n const mergedValue = [\n ...(Array.isArray(value) ? value : []),\n ...newDocs.map((doc) => doc.id),\n ]\n onChange(mergedValue)\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...newDocs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n } else {\n const firstDoc = newDocs[0]\n onChange(firstDoc.id)\n setPopulatedDocs([\n {\n relationTo: activeRelationTo,\n value: firstDoc,\n },\n ])\n }\n },\n [value, onChange, activeRelationTo, hasMany],\n )\n\n const onLocalFileSelection = React.useCallback(\n (fileList?: FileList) => {\n let fileListToUse = fileList\n if (!hasMany && fileList && fileList.length > 1) {\n const dataTransfer = new DataTransfer()\n dataTransfer.items.add(fileList[0])\n fileListToUse = dataTransfer.files\n }\n if (fileListToUse) {\n setInitialFiles(fileListToUse)\n }\n setCollectionSlug(relationTo)\n setOnSuccess(onUploadSuccess)\n if (typeof maxRows === 'number') {\n setMaxFiles(maxRows)\n }\n openModal(drawerSlug)\n },\n [\n drawerSlug,\n hasMany,\n onUploadSuccess,\n openModal,\n relationTo,\n setCollectionSlug,\n setInitialFiles,\n setOnSuccess,\n maxRows,\n setMaxFiles,\n ],\n )\n\n // only hasMany can bulk select\n const onListBulkSelect = React.useCallback<NonNullable<ListDrawerProps['onBulkSelect']>>(\n async (docs) => {\n const selectedDocIDs = []\n\n for (const [id, isSelected] of docs) {\n if (isSelected) {\n selectedDocIDs.push(id)\n }\n }\n\n const loadedDocs = await populateDocs(selectedDocIDs, activeRelationTo)\n if (loadedDocs) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...loadedDocs.docs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n }\n onChange([...(Array.isArray(value) ? value : []), ...selectedDocIDs])\n closeListDrawer()\n },\n [activeRelationTo, closeListDrawer, onChange, populateDocs, value],\n )\n\n const onDocCreate = React.useCallback(\n (data) => {\n if (data.doc) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: data.doc,\n },\n ])\n\n onChange(data.doc.id)\n }\n closeCreateDocDrawer()\n },\n [closeCreateDocDrawer, activeRelationTo, onChange],\n )\n\n const onListSelect = React.useCallback<NonNullable<ListDrawerProps['onSelect']>>(\n async ({ collectionSlug, docID }) => {\n const loadedDocs = await populateDocs([docID], collectionSlug)\n const selectedDoc = loadedDocs ? loadedDocs.docs?.[0] : null\n setPopulatedDocs((currentDocs) => {\n if (selectedDoc) {\n if (hasMany) {\n return [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return [\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return currentDocs\n })\n if (hasMany) {\n onChange([...(Array.isArray(value) ? value : []), docID])\n } else {\n onChange(docID)\n }\n closeListDrawer()\n },\n [closeListDrawer, hasMany, populateDocs, onChange, value, activeRelationTo],\n )\n\n const reloadDoc = React.useCallback<ReloadDoc>(\n async (docID, collectionSlug) => {\n const { docs } = await populateDocs([docID], collectionSlug)\n\n if (docs[0]) {\n setPopulatedDocs((currentDocs) => {\n const existingDocIndex = currentDocs?.findIndex((doc) => {\n return doc.value.id === docs[0].id && doc.relationTo === collectionSlug\n })\n if (existingDocIndex > -1) {\n const updatedDocs = [...currentDocs]\n updatedDocs[existingDocIndex] = {\n relationTo: collectionSlug,\n value: docs[0],\n }\n return updatedDocs\n }\n })\n }\n },\n [populateDocs],\n )\n\n // only hasMany can reorder\n const onReorder = React.useCallback(\n (newValue) => {\n const newValueIDs = newValue.map(({ value }) => value.id)\n onChange(newValueIDs)\n setPopulatedDocs(newValue)\n },\n [onChange],\n )\n\n const onRemove = React.useCallback(\n (newValue?: PopulatedDocs) => {\n const newValueIDs = newValue ? newValue.map(({ value }) => value.id) : null\n onChange(hasMany ? newValueIDs : newValueIDs ? newValueIDs[0] : null)\n setPopulatedDocs(newValue ? newValue : [])\n },\n [onChange, hasMany],\n )\n\n useEffect(() => {\n async function loadInitialDocs() {\n if (value) {\n loadedValueDocsRef.current = true\n const loadedDocs = await populateDocs(\n Array.isArray(value) ? value : [value],\n activeRelationTo,\n )\n if (loadedDocs) {\n setPopulatedDocs(\n loadedDocs.docs.map((doc) => ({ relationTo: activeRelationTo, value: doc })),\n )\n }\n }\n }\n\n if (!loadedValueDocsRef.current) {\n void loadInitialDocs()\n }\n }, [populateDocs, activeRelationTo, value])\n\n const showDropzone =\n !value ||\n (hasMany && Array.isArray(value) && (typeof maxRows !== 'number' || value.length < maxRows)) ||\n (!hasMany && populatedDocs?.[0] && typeof populatedDocs[0].value === 'undefined')\n\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 id={`field-${path?.replace(/\\./g, '__')}`}\n style={{\n ...style,\n width,\n }}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${baseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n </div>\n {BeforeInput}\n <div className={`${baseClass}__dropzoneAndUpload`}>\n {hasMany && Array.isArray(value) && value.length > 0 ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 ? (\n <UploadComponentHasMany\n fileDocs={populatedDocs}\n isSortable={isSortable && !readOnly}\n onRemove={onRemove}\n onReorder={onReorder}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : (\n <div className={`${baseClass}__loadingRows`}>\n {value.map((id) => (\n <ShimmerEffect height=\"40px\" key={id} />\n ))}\n </div>\n )}\n </>\n ) : null}\n {!hasMany && value ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 && populatedDocs[0].value ? (\n <UploadComponentHasOne\n fileDoc={populatedDocs[0]}\n onRemove={onRemove}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : populatedDocs && value && !populatedDocs?.[0]?.value ? (\n <>\n {t('general:untitled')} - ID: {value}\n </>\n ) : (\n <ShimmerEffect height=\"62px\" />\n )}\n </>\n ) : null}\n {showDropzone ? (\n <Dropzone\n disabled={readOnly || !canCreate}\n multipleFiles={hasMany}\n onChange={onLocalFileSelection}\n >\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneContent__buttons`}>\n {canCreate && (\n <>\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__createNewToggler`}\n disabled={readOnly || !canCreate}\n onClick={() => {\n if (!readOnly) {\n if (hasMany) {\n onLocalFileSelection()\n } else {\n openCreateDocDrawer()\n }\n }\n }}\n size=\"small\"\n >\n {t('general:createNew')}\n </Button>\n <span className={`${baseClass}__dropzoneContent__orText`}>\n {t('general:or')}\n </span>\n </>\n )}\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__listToggler`}\n disabled={readOnly}\n onClick={openListDrawer}\n size=\"small\"\n >\n {t('fields:chooseFromExisting')}\n </Button>\n <CreateDocDrawer onSave={onDocCreate} />\n <ListDrawer\n allowCreate={canCreate}\n enableRowSelections={hasMany}\n onBulkSelect={onListBulkSelect}\n onSelect={onListSelect}\n />\n </div>\n\n {canCreate && !readOnly && (\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n )}\n </div>\n </Dropzone>\n ) : (\n <>\n {!readOnly &&\n !populatedDocs &&\n (!value ||\n typeof maxRows !== 'number' ||\n (Array.isArray(value) && value.length < maxRows)) ? (\n <ShimmerEffect height=\"40px\" />\n ) : null}\n </>\n )}\n </div>\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Input.js","names":["c","_c","useModal","qs","React","useCallback","useEffect","useMemo","useBulkUpload","Button","useDocumentDrawer","Dropzone","useListDrawer","RenderCustomComponent","ShimmerEffect","FieldDescription","FieldError","FieldLabel","useAuth","useLocale","useTranslation","fieldBaseClass","UploadComponentHasMany","UploadComponentHasOne","baseClass","UploadInput","props","$","AfterInput","allowCreate","api","BeforeInput","className","Description","description","Error","filterOptions","filterOptionsFromProps","hasMany","isSortable","Label","label","localized","maxRows","onChange","onChangeFromProps","path","readOnly","relationTo","required","serverURL","showError","style","value","populatedDocs","setPopulatedDocs","useState","activeRelationTo","Array","isArray","openModal","drawerSlug","setCollectionSlug","setInitialFiles","setMaxFiles","setOnSuccess","permissions","code","i18n","t","t0","t1","t2","id","t3","not_in","t4","concat","t5","t6","t7","t8","t9","collectionSlugs","ListDrawer","t10","closeDrawer","closeListDrawer","openDrawer","openListDrawer","t11","collectionSlug","CreateDocDrawer","t12","closeCreateDocDrawer","openCreateDocDrawer","loadedValueDocsRef","useRef","t13","bb0","collections","create","canCreate","t14","newValue","t15","language","ids","relatedCollectionSlug","query","depth","draft","limit","length","locale","where","and","in","response","fetch","body","stringify","credentials","headers","method","ok","json","sortedDocs","map","docs","find","doc","String","populateDocs","t16","newDocs","mergedValue","doc_0","currentDocs","doc_1","firstDoc","onUploadSuccess","t17","fileList","fileListToUse","dataTransfer","DataTransfer","items","add","files","onLocalFileSelection","t18","selectedDocIDs","id_0","isSelected","push","loadedDocs","currentDocs_0","doc_2","onListBulkSelect","t19","data","currentDocs_1","onDocCreate","t20","t21","docID","loadedDocs_0","selectedDoc","currentDocs_2","onListSelect","docID_0","collectionSlug_0","docs_0","currentDocs_3","existingDocIndex","findIndex","doc_3","updatedDocs","reloadDoc","t22","newValue_0","newValueIDs","t23","value_0","onReorder","newValue_1","newValueIDs_0","t24","value_1","onRemove","t25","loadInitialDocs","current","loadedDocs_1","doc_4","showDropzone","t26","t27","t28","filter","Boolean","t29","join","t30","replace","t31","_jsxs","children","_jsx","CustomComponent","Fallback","_Fragment","fileDocs","readonly","_temp","fileDoc","height","disabled","multipleFiles","buttonStyle","onClick","size","onSave","enableRowSelections","onBulkSelect","onSelect","id_1"],"sources":["../../../src/fields/Upload/Input.tsx"],"sourcesContent":["'use client'\n\nimport type {\n ClientCollectionConfig,\n FieldLabelClientProps,\n FilterOptionsResult,\n JsonObject,\n StaticDescription,\n StaticLabel,\n UploadFieldClient,\n UploadField as UploadFieldType,\n Where,\n} from 'payload'\nimport type { MarkOptional } from 'ts-essentials'\n\nimport { useModal } from '@faceless-ui/modal'\nimport * as qs from 'qs-esm'\nimport React, { useCallback, useEffect, useMemo } from 'react'\n\nimport type { ListDrawerProps } from '../../elements/ListDrawer/types.js'\nimport type { PopulateDocs, ReloadDoc } from './types.js'\n\nimport { useBulkUpload } from '../../elements/BulkUpload/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { useDocumentDrawer } from '../../elements/DocumentDrawer/index.js'\nimport { Dropzone } from '../../elements/Dropzone/index.js'\nimport { useListDrawer } from '../../elements/ListDrawer/index.js'\nimport { RenderCustomComponent } from '../../elements/RenderCustomComponent/index.js'\nimport { ShimmerEffect } from '../../elements/ShimmerEffect/index.js'\nimport { FieldDescription } from '../../fields/FieldDescription/index.js'\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { FieldLabel } from '../../fields/FieldLabel/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { UploadComponentHasMany } from './HasMany/index.js'\nimport { UploadComponentHasOne } from './HasOne/index.js'\nimport './index.scss'\n\nexport const baseClass = 'upload'\n\ntype PopulatedDocs = { relationTo: string; value: JsonObject }[]\n\nexport type UploadInputProps = {\n readonly AfterInput?: React.ReactNode\n readonly allowCreate?: boolean\n /**\n * Controls the visibility of the \"Create new collection\" button\n */\n readonly api?: string\n readonly BeforeInput?: React.ReactNode\n readonly className?: string\n readonly collection?: ClientCollectionConfig\n readonly customUploadActions?: React.ReactNode[]\n readonly Description?: React.ReactNode\n readonly description?: StaticDescription\n readonly Error?: React.ReactNode\n readonly filterOptions?: FilterOptionsResult\n readonly hasMany?: boolean\n readonly isSortable?: boolean\n readonly Label?: React.ReactNode\n readonly label?: StaticLabel\n readonly labelProps?: FieldLabelClientProps<MarkOptional<UploadFieldClient, 'type'>>\n readonly localized?: boolean\n readonly maxRows?: number\n readonly onChange?: (e) => void\n readonly path: string\n readonly readOnly?: boolean\n readonly relationTo: UploadFieldType['relationTo']\n readonly required?: boolean\n readonly serverURL?: string\n readonly showError?: boolean\n readonly style?: React.CSSProperties\n readonly value?: (number | string)[] | (number | string)\n}\n\nexport function UploadInput(props: UploadInputProps) {\n const {\n AfterInput,\n allowCreate,\n api,\n BeforeInput,\n className,\n Description,\n description,\n Error,\n filterOptions: filterOptionsFromProps,\n hasMany,\n isSortable,\n Label,\n label,\n localized,\n maxRows,\n onChange: onChangeFromProps,\n path,\n readOnly,\n relationTo,\n required,\n serverURL,\n showError,\n style,\n value,\n } = props\n\n const [populatedDocs, setPopulatedDocs] = React.useState<\n {\n relationTo: string\n value: JsonObject\n }[]\n >()\n\n const [activeRelationTo, setActiveRelationTo] = React.useState<string>(\n Array.isArray(relationTo) ? relationTo[0] : relationTo,\n )\n\n const { openModal } = useModal()\n const { drawerSlug, setCollectionSlug, setInitialFiles, setMaxFiles, setOnSuccess } =\n useBulkUpload()\n const { permissions } = useAuth()\n const { code } = useLocale()\n const { i18n, t } = useTranslation()\n\n const filterOptions: FilterOptionsResult = useMemo(() => {\n return {\n ...filterOptionsFromProps,\n [activeRelationTo]: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any) || {}),\n id: {\n ...((filterOptionsFromProps?.[activeRelationTo] as any)?.id || {}),\n not_in: ((filterOptionsFromProps?.[activeRelationTo] as any)?.id?.not_in || []).concat(\n ...(Array.isArray(value) || value ? [value] : []),\n ),\n },\n },\n }\n }, [value, activeRelationTo, filterOptionsFromProps])\n\n const [ListDrawer, , { closeDrawer: closeListDrawer, openDrawer: openListDrawer }] =\n useListDrawer({\n collectionSlugs: typeof relationTo === 'string' ? [relationTo] : relationTo,\n filterOptions,\n })\n\n const [\n CreateDocDrawer,\n ,\n { closeDrawer: closeCreateDocDrawer, openDrawer: openCreateDocDrawer },\n ] = useDocumentDrawer({\n collectionSlug: activeRelationTo,\n })\n\n /**\n * Prevent initial retrieval of documents from running more than once\n */\n const loadedValueDocsRef = React.useRef<boolean>(false)\n\n const canCreate = useMemo(() => {\n if (!allowCreate) {\n return false\n }\n\n if (typeof activeRelationTo === 'string') {\n if (permissions?.collections && permissions.collections?.[activeRelationTo]?.create) {\n return true\n }\n }\n\n return false\n }, [activeRelationTo, permissions, allowCreate])\n\n const onChange = React.useCallback(\n (newValue) => {\n if (typeof onChangeFromProps === 'function') {\n onChangeFromProps(newValue)\n }\n },\n [onChangeFromProps],\n )\n\n const populateDocs = React.useCallback<PopulateDocs>(\n async (ids, relatedCollectionSlug) => {\n const query: {\n [key: string]: unknown\n where: Where\n } = {\n depth: 0,\n draft: true,\n limit: ids.length,\n locale: code,\n where: {\n and: [\n {\n id: {\n in: ids,\n },\n },\n ],\n },\n }\n\n const response = await fetch(`${serverURL}${api}/${relatedCollectionSlug}`, {\n body: qs.stringify(query),\n credentials: 'include',\n headers: {\n 'Accept-Language': i18n.language,\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'X-HTTP-Method-Override': 'GET',\n },\n method: 'POST',\n })\n if (response.ok) {\n const json = await response.json()\n const sortedDocs = ids.map((id) =>\n json.docs.find((doc) => {\n return String(doc.id) === String(id)\n }),\n )\n\n return { ...json, docs: sortedDocs }\n }\n\n return null\n },\n [code, serverURL, api, i18n.language],\n )\n\n const onUploadSuccess = useCallback(\n (newDocs: JsonObject[]) => {\n if (hasMany) {\n const mergedValue = [\n ...(Array.isArray(value) ? value : []),\n ...newDocs.map((doc) => doc.id),\n ]\n onChange(mergedValue)\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...newDocs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n } else {\n const firstDoc = newDocs[0]\n onChange(firstDoc.id)\n setPopulatedDocs([\n {\n relationTo: activeRelationTo,\n value: firstDoc,\n },\n ])\n }\n },\n [value, onChange, activeRelationTo, hasMany],\n )\n\n const onLocalFileSelection = React.useCallback(\n (fileList?: FileList) => {\n let fileListToUse = fileList\n if (!hasMany && fileList && fileList.length > 1) {\n const dataTransfer = new DataTransfer()\n dataTransfer.items.add(fileList[0])\n fileListToUse = dataTransfer.files\n }\n if (fileListToUse) {\n setInitialFiles(fileListToUse)\n }\n setCollectionSlug(relationTo)\n setOnSuccess(onUploadSuccess)\n if (typeof maxRows === 'number') {\n setMaxFiles(maxRows)\n }\n openModal(drawerSlug)\n },\n [\n drawerSlug,\n hasMany,\n onUploadSuccess,\n openModal,\n relationTo,\n setCollectionSlug,\n setInitialFiles,\n setOnSuccess,\n maxRows,\n setMaxFiles,\n ],\n )\n\n // only hasMany can bulk select\n const onListBulkSelect = React.useCallback<NonNullable<ListDrawerProps['onBulkSelect']>>(\n async (docs) => {\n const selectedDocIDs = []\n\n for (const [id, isSelected] of docs) {\n if (isSelected) {\n selectedDocIDs.push(id)\n }\n }\n\n const loadedDocs = await populateDocs(selectedDocIDs, activeRelationTo)\n if (loadedDocs) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n ...loadedDocs.docs.map((doc) => ({\n relationTo: activeRelationTo,\n value: doc,\n })),\n ])\n }\n onChange([...(Array.isArray(value) ? value : []), ...selectedDocIDs])\n closeListDrawer()\n },\n [activeRelationTo, closeListDrawer, onChange, populateDocs, value],\n )\n\n const onDocCreate = React.useCallback(\n (data) => {\n if (data.doc) {\n setPopulatedDocs((currentDocs) => [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: data.doc,\n },\n ])\n\n onChange(data.doc.id)\n }\n closeCreateDocDrawer()\n },\n [closeCreateDocDrawer, activeRelationTo, onChange],\n )\n\n const onListSelect = React.useCallback<NonNullable<ListDrawerProps['onSelect']>>(\n async ({ collectionSlug, docID }) => {\n const loadedDocs = await populateDocs([docID], collectionSlug)\n const selectedDoc = loadedDocs ? loadedDocs.docs?.[0] : null\n setPopulatedDocs((currentDocs) => {\n if (selectedDoc) {\n if (hasMany) {\n return [\n ...(currentDocs || []),\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return [\n {\n relationTo: activeRelationTo,\n value: selectedDoc,\n },\n ]\n }\n return currentDocs\n })\n if (hasMany) {\n onChange([...(Array.isArray(value) ? value : []), docID])\n } else {\n onChange(docID)\n }\n closeListDrawer()\n },\n [closeListDrawer, hasMany, populateDocs, onChange, value, activeRelationTo],\n )\n\n const reloadDoc = React.useCallback<ReloadDoc>(\n async (docID, collectionSlug) => {\n const { docs } = await populateDocs([docID], collectionSlug)\n\n if (docs[0]) {\n setPopulatedDocs((currentDocs) => {\n const existingDocIndex = currentDocs?.findIndex((doc) => {\n return doc.value.id === docs[0].id && doc.relationTo === collectionSlug\n })\n if (existingDocIndex > -1) {\n const updatedDocs = [...currentDocs]\n updatedDocs[existingDocIndex] = {\n relationTo: collectionSlug,\n value: docs[0],\n }\n return updatedDocs\n }\n })\n }\n },\n [populateDocs],\n )\n\n // only hasMany can reorder\n const onReorder = React.useCallback(\n (newValue) => {\n const newValueIDs = newValue.map(({ value }) => value.id)\n onChange(newValueIDs)\n setPopulatedDocs(newValue)\n },\n [onChange],\n )\n\n const onRemove = React.useCallback(\n (newValue?: PopulatedDocs) => {\n const newValueIDs = newValue ? newValue.map(({ value }) => value.id) : null\n onChange(hasMany ? newValueIDs : newValueIDs ? newValueIDs[0] : null)\n setPopulatedDocs(newValue ? newValue : [])\n },\n [onChange, hasMany],\n )\n\n useEffect(() => {\n async function loadInitialDocs() {\n if (value) {\n loadedValueDocsRef.current = true\n const loadedDocs = await populateDocs(\n Array.isArray(value) ? value : [value],\n activeRelationTo,\n )\n if (loadedDocs) {\n setPopulatedDocs(\n loadedDocs.docs.map((doc) => ({ relationTo: activeRelationTo, value: doc })),\n )\n }\n }\n }\n\n if (!loadedValueDocsRef.current) {\n void loadInitialDocs()\n }\n }, [populateDocs, activeRelationTo, value])\n\n const showDropzone =\n !value ||\n (hasMany && Array.isArray(value) && (typeof maxRows !== 'number' || value.length < maxRows)) ||\n (!hasMany && populatedDocs?.[0] && typeof populatedDocs[0].value === 'undefined')\n\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 id={`field-${path?.replace(/\\./g, '__')}`}\n style={style}\n >\n <RenderCustomComponent\n CustomComponent={Label}\n Fallback={\n <FieldLabel label={label} localized={localized} path={path} required={required} />\n }\n />\n <div className={`${baseClass}__wrap`}>\n <RenderCustomComponent\n CustomComponent={Error}\n Fallback={<FieldError path={path} showError={showError} />}\n />\n </div>\n {BeforeInput}\n <div className={`${baseClass}__dropzoneAndUpload`}>\n {hasMany && Array.isArray(value) && value.length > 0 ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 ? (\n <UploadComponentHasMany\n fileDocs={populatedDocs}\n isSortable={isSortable && !readOnly}\n onRemove={onRemove}\n onReorder={onReorder}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : (\n <div className={`${baseClass}__loadingRows`}>\n {value.map((id) => (\n <ShimmerEffect height=\"40px\" key={id} />\n ))}\n </div>\n )}\n </>\n ) : null}\n {!hasMany && value ? (\n <>\n {populatedDocs && populatedDocs?.length > 0 && populatedDocs[0].value ? (\n <UploadComponentHasOne\n fileDoc={populatedDocs[0]}\n onRemove={onRemove}\n readonly={readOnly}\n reloadDoc={reloadDoc}\n serverURL={serverURL}\n />\n ) : populatedDocs && value && !populatedDocs?.[0]?.value ? (\n <>\n {t('general:untitled')} - ID: {value}\n </>\n ) : (\n <ShimmerEffect height=\"62px\" />\n )}\n </>\n ) : null}\n {showDropzone ? (\n <Dropzone\n disabled={readOnly || !canCreate}\n multipleFiles={hasMany}\n onChange={onLocalFileSelection}\n >\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneContent__buttons`}>\n {canCreate && (\n <>\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__createNewToggler`}\n disabled={readOnly || !canCreate}\n onClick={() => {\n if (!readOnly) {\n if (hasMany) {\n onLocalFileSelection()\n } else {\n openCreateDocDrawer()\n }\n }\n }}\n size=\"small\"\n >\n {t('general:createNew')}\n </Button>\n <span className={`${baseClass}__dropzoneContent__orText`}>\n {t('general:or')}\n </span>\n </>\n )}\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__listToggler`}\n disabled={readOnly}\n onClick={openListDrawer}\n size=\"small\"\n >\n {t('fields:chooseFromExisting')}\n </Button>\n <CreateDocDrawer onSave={onDocCreate} />\n <ListDrawer\n allowCreate={canCreate}\n enableRowSelections={hasMany}\n onBulkSelect={onListBulkSelect}\n onSelect={onListSelect}\n />\n </div>\n\n {canCreate && !readOnly && (\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n )}\n </div>\n </Dropzone>\n ) : (\n <>\n {!readOnly &&\n !populatedDocs &&\n (!value ||\n typeof maxRows !== 'number' ||\n (Array.isArray(value) && value.length < maxRows)) ? (\n <ShimmerEffect height=\"40px\" />\n ) : null}\n </>\n )}\n </div>\n {AfterInput}\n <RenderCustomComponent\n CustomComponent={Description}\n Fallback={<FieldDescription description={description} path={path} />}\n />\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAErD,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Upload/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAErD,OAAO,KAAkB,MAAM,OAAO,CAAA;AAKtC,OAAO,cAAc,CAAA;AAIrB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAElD,eAAO,MAAM,SAAS,WAAW,CAAA;AAEjC,wBAAgB,eAAe,CAAC,KAAK,EAAE,sBAAsB,qBAqE5D;AAED,eAAO,MAAM,WAAW,kCAAiC,CAAA"}
|
|
@@ -1,162 +1,90 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { c as _c } from "react/compiler-runtime";
|
|
4
3
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
|
-
import React from 'react';
|
|
4
|
+
import React, { useMemo } from 'react';
|
|
6
5
|
import { useField } from '../../forms/useField/index.js';
|
|
7
6
|
import { withCondition } from '../../forms/withCondition/index.js';
|
|
8
7
|
import { useConfig } from '../../providers/Config/index.js';
|
|
9
8
|
import './index.scss';
|
|
9
|
+
import { mergeFieldStyles } from '../mergeFieldStyles.js';
|
|
10
10
|
import { UploadInput } from './Input.js';
|
|
11
11
|
export { UploadInput } from './Input.js';
|
|
12
12
|
export const baseClass = 'upload';
|
|
13
13
|
export function UploadComponent(props) {
|
|
14
|
-
const $ = _c(36);
|
|
15
14
|
const {
|
|
16
|
-
field
|
|
15
|
+
field,
|
|
16
|
+
field: {
|
|
17
|
+
admin: {
|
|
18
|
+
allowCreate,
|
|
19
|
+
className,
|
|
20
|
+
description,
|
|
21
|
+
isSortable
|
|
22
|
+
} = {},
|
|
23
|
+
hasMany,
|
|
24
|
+
label,
|
|
25
|
+
localized,
|
|
26
|
+
maxRows,
|
|
27
|
+
relationTo,
|
|
28
|
+
required
|
|
29
|
+
},
|
|
17
30
|
path,
|
|
18
31
|
readOnly,
|
|
19
32
|
validate
|
|
20
33
|
} = props;
|
|
21
|
-
const {
|
|
22
|
-
admin: t1,
|
|
23
|
-
hasMany,
|
|
24
|
-
label,
|
|
25
|
-
localized,
|
|
26
|
-
maxRows,
|
|
27
|
-
relationTo,
|
|
28
|
-
required
|
|
29
|
-
} = t0;
|
|
30
|
-
let t2;
|
|
31
|
-
if ($[0] !== t1) {
|
|
32
|
-
t2 = t1 === undefined ? {} : t1;
|
|
33
|
-
$[0] = t1;
|
|
34
|
-
$[1] = t2;
|
|
35
|
-
} else {
|
|
36
|
-
t2 = $[1];
|
|
37
|
-
}
|
|
38
|
-
const {
|
|
39
|
-
allowCreate,
|
|
40
|
-
className,
|
|
41
|
-
description,
|
|
42
|
-
isSortable,
|
|
43
|
-
style,
|
|
44
|
-
width
|
|
45
|
-
} = t2;
|
|
46
34
|
const {
|
|
47
35
|
config
|
|
48
36
|
} = useConfig();
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
}
|
|
58
|
-
};
|
|
59
|
-
$[2] = validate;
|
|
60
|
-
$[3] = required;
|
|
61
|
-
$[4] = t3;
|
|
62
|
-
} else {
|
|
63
|
-
t3 = $[4];
|
|
64
|
-
}
|
|
65
|
-
const memoizedValidate = t3;
|
|
66
|
-
let t4;
|
|
67
|
-
if ($[5] !== path || $[6] !== memoizedValidate) {
|
|
68
|
-
t4 = {
|
|
69
|
-
path,
|
|
70
|
-
validate: memoizedValidate
|
|
71
|
-
};
|
|
72
|
-
$[5] = path;
|
|
73
|
-
$[6] = memoizedValidate;
|
|
74
|
-
$[7] = t4;
|
|
75
|
-
} else {
|
|
76
|
-
t4 = $[7];
|
|
77
|
-
}
|
|
78
|
-
const {
|
|
79
|
-
customComponents: t5,
|
|
80
|
-
filterOptions,
|
|
81
|
-
setValue,
|
|
82
|
-
showError,
|
|
83
|
-
value: value_0
|
|
84
|
-
} = useField(t4);
|
|
85
|
-
let t6;
|
|
86
|
-
if ($[8] !== t5) {
|
|
87
|
-
t6 = t5 === undefined ? {} : t5;
|
|
88
|
-
$[8] = t5;
|
|
89
|
-
$[9] = t6;
|
|
90
|
-
} else {
|
|
91
|
-
t6 = $[9];
|
|
92
|
-
}
|
|
37
|
+
const memoizedValidate = React.useCallback((value, options) => {
|
|
38
|
+
if (typeof validate === 'function') {
|
|
39
|
+
return validate(value, {
|
|
40
|
+
...options,
|
|
41
|
+
required
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
}, [validate, required]);
|
|
93
45
|
const {
|
|
94
|
-
|
|
95
|
-
BeforeInput,
|
|
96
|
-
Description,
|
|
97
|
-
Error,
|
|
98
|
-
Label
|
|
99
|
-
} = t6;
|
|
100
|
-
const t7 = allowCreate !== false;
|
|
101
|
-
let t8;
|
|
102
|
-
if ($[10] !== AfterInput || $[11] !== t7 || $[12] !== config.routes.api || $[13] !== config.serverURL || $[14] !== BeforeInput || $[15] !== className || $[16] !== Description || $[17] !== description || $[18] !== Error || $[19] !== filterOptions || $[20] !== hasMany || $[21] !== isSortable || $[22] !== label || $[23] !== Label || $[24] !== localized || $[25] !== maxRows || $[26] !== setValue || $[27] !== path || $[28] !== readOnly || $[29] !== relationTo || $[30] !== required || $[31] !== showError || $[32] !== style || $[33] !== value_0 || $[34] !== width) {
|
|
103
|
-
t8 = _jsx(UploadInput, {
|
|
46
|
+
customComponents: {
|
|
104
47
|
AfterInput,
|
|
105
|
-
allowCreate: t7,
|
|
106
|
-
api: config.routes.api,
|
|
107
48
|
BeforeInput,
|
|
108
|
-
className,
|
|
109
49
|
Description,
|
|
110
|
-
description,
|
|
111
50
|
Error,
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
$[29] = relationTo;
|
|
150
|
-
$[30] = required;
|
|
151
|
-
$[31] = showError;
|
|
152
|
-
$[32] = style;
|
|
153
|
-
$[33] = value_0;
|
|
154
|
-
$[34] = width;
|
|
155
|
-
$[35] = t8;
|
|
156
|
-
} else {
|
|
157
|
-
t8 = $[35];
|
|
158
|
-
}
|
|
159
|
-
return t8;
|
|
51
|
+
Label
|
|
52
|
+
} = {},
|
|
53
|
+
filterOptions,
|
|
54
|
+
setValue,
|
|
55
|
+
showError,
|
|
56
|
+
value: value_0
|
|
57
|
+
} = useField({
|
|
58
|
+
path,
|
|
59
|
+
validate: memoizedValidate
|
|
60
|
+
});
|
|
61
|
+
const styles = useMemo(() => mergeFieldStyles(field), [field]);
|
|
62
|
+
return /*#__PURE__*/_jsx(UploadInput, {
|
|
63
|
+
AfterInput: AfterInput,
|
|
64
|
+
allowCreate: allowCreate !== false,
|
|
65
|
+
api: config.routes.api,
|
|
66
|
+
BeforeInput: BeforeInput,
|
|
67
|
+
className: className,
|
|
68
|
+
Description: Description,
|
|
69
|
+
description: description,
|
|
70
|
+
Error: Error,
|
|
71
|
+
filterOptions: filterOptions,
|
|
72
|
+
hasMany: hasMany,
|
|
73
|
+
isSortable: isSortable,
|
|
74
|
+
label: label,
|
|
75
|
+
Label: Label,
|
|
76
|
+
localized: localized,
|
|
77
|
+
maxRows: maxRows,
|
|
78
|
+
onChange: setValue,
|
|
79
|
+
path: path,
|
|
80
|
+
readOnly: readOnly,
|
|
81
|
+
relationTo: relationTo,
|
|
82
|
+
required: required,
|
|
83
|
+
serverURL: config.serverURL,
|
|
84
|
+
showError: showError,
|
|
85
|
+
style: styles,
|
|
86
|
+
value: value_0
|
|
87
|
+
});
|
|
160
88
|
}
|
|
161
89
|
export const UploadField = withCondition(UploadComponent);
|
|
162
90
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useMemo","useField","withCondition","useConfig","mergeFieldStyles","UploadInput","baseClass","UploadComponent","props","field","admin","allowCreate","className","description","isSortable","hasMany","label","localized","maxRows","relationTo","required","path","readOnly","validate","config","memoizedValidate","useCallback","value","options","customComponents","AfterInput","BeforeInput","Description","Error","Label","filterOptions","setValue","showError","styles","_jsx","api","routes","onChange","serverURL","style","UploadField"],"sources":["../../../src/fields/Upload/index.tsx"],"sourcesContent":["'use client'\n\nimport type { UploadFieldClientProps } from 'payload'\n\nimport React, { useMemo } from 'react'\n\nimport { useField } from '../../forms/useField/index.js'\nimport { withCondition } from '../../forms/withCondition/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport './index.scss'\nimport { mergeFieldStyles } from '../mergeFieldStyles.js'\nimport { UploadInput } from './Input.js'\n\nexport { UploadInput } from './Input.js'\nexport type { UploadInputProps } from './Input.js'\n\nexport const baseClass = 'upload'\n\nexport function UploadComponent(props: UploadFieldClientProps) {\n const {\n field,\n field: {\n admin: { allowCreate, className, description, isSortable } = {},\n hasMany,\n label,\n localized,\n maxRows,\n relationTo,\n required,\n },\n path,\n readOnly,\n validate,\n } = props\n\n const { config } = useConfig()\n\n const memoizedValidate = React.useCallback(\n (value, options) => {\n if (typeof validate === 'function') {\n return validate(value, { ...options, required })\n }\n },\n [validate, required],\n )\n\n const {\n customComponents: { AfterInput, BeforeInput, Description, Error, Label } = {},\n filterOptions,\n setValue,\n showError,\n value,\n } = useField<string | string[]>({\n path,\n validate: memoizedValidate,\n })\n\n const styles = useMemo(() => mergeFieldStyles(field), [field])\n\n return (\n <UploadInput\n AfterInput={AfterInput}\n allowCreate={allowCreate !== false}\n api={config.routes.api}\n BeforeInput={BeforeInput}\n className={className}\n Description={Description}\n description={description}\n Error={Error}\n filterOptions={filterOptions}\n hasMany={hasMany}\n isSortable={isSortable}\n label={label}\n Label={Label}\n localized={localized}\n maxRows={maxRows}\n onChange={setValue}\n path={path}\n readOnly={readOnly}\n relationTo={relationTo}\n required={required}\n serverURL={config.serverURL}\n showError={showError}\n style={styles}\n value={value}\n />\n )\n}\n\nexport const UploadField = withCondition(UploadComponent)\n"],"mappings":"AAAA;;;AAIA,OAAOA,KAAA,IAASC,OAAO,QAAQ;AAE/B,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,SAASC,SAAS,QAAQ;AAC1B,OAAO;AACP,SAASC,gBAAgB,QAAQ;AACjC,SAASC,WAAW,QAAQ;AAE5B,SAASA,WAAW,QAAQ;AAG5B,OAAO,MAAMC,SAAA,GAAY;AAEzB,OAAO,SAASC,gBAAgBC,KAA6B;EAC3D,MAAM;IACJC,KAAK;IACLA,KAAA,EAAO;MACLC,KAAA,EAAO;QAAEC,WAAW;QAAEC,SAAS;QAAEC,WAAW;QAAEC;MAAU,CAAE,GAAG,CAAC,CAAC;MAC/DC,OAAO;MACPC,KAAK;MACLC,SAAS;MACTC,OAAO;MACPC,UAAU;MACVC;IAAQ,CACT;IACDC,IAAI;IACJC,QAAQ;IACRC;EAAQ,CACT,GAAGf,KAAA;EAEJ,MAAM;IAAEgB;EAAM,CAAE,GAAGrB,SAAA;EAEnB,MAAMsB,gBAAA,GAAmB1B,KAAA,CAAM2B,WAAW,CACxC,CAACC,KAAA,EAAOC,OAAA;IACN,IAAI,OAAOL,QAAA,KAAa,YAAY;MAClC,OAAOA,QAAA,CAASI,KAAA,EAAO;QAAE,GAAGC,OAAO;QAAER;MAAS;IAChD;EACF,GACA,CAACG,QAAA,EAAUH,QAAA,CAAS;EAGtB,MAAM;IACJS,gBAAA,EAAkB;MAAEC,UAAU;MAAEC,WAAW;MAAEC,WAAW;MAAEC,KAAK;MAAEC;IAAK,CAAE,GAAG,CAAC,CAAC;IAC7EC,aAAa;IACbC,QAAQ;IACRC,SAAS;IACTV,KAAK,EAALA;EAAK,CACN,GAAG1B,QAAA,CAA4B;IAC9BoB,IAAA;IACAE,QAAA,EAAUE;EACZ;EAEA,MAAMa,MAAA,GAAStC,OAAA,CAAQ,MAAMI,gBAAA,CAAiBK,KAAA,GAAQ,CAACA,KAAA,CAAM;EAE7D,oBACE8B,IAAA,CAAClC,WAAA;IACCyB,UAAA,EAAYA,UAAA;IACZnB,WAAA,EAAaA,WAAA,KAAgB;IAC7B6B,GAAA,EAAKhB,MAAA,CAAOiB,MAAM,CAACD,GAAG;IACtBT,WAAA,EAAaA,WAAA;IACbnB,SAAA,EAAWA,SAAA;IACXoB,WAAA,EAAaA,WAAA;IACbnB,WAAA,EAAaA,WAAA;IACboB,KAAA,EAAOA,KAAA;IACPE,aAAA,EAAeA,aAAA;IACfpB,OAAA,EAASA,OAAA;IACTD,UAAA,EAAYA,UAAA;IACZE,KAAA,EAAOA,KAAA;IACPkB,KAAA,EAAOA,KAAA;IACPjB,SAAA,EAAWA,SAAA;IACXC,OAAA,EAASA,OAAA;IACTwB,QAAA,EAAUN,QAAA;IACVf,IAAA,EAAMA,IAAA;IACNC,QAAA,EAAUA,QAAA;IACVH,UAAA,EAAYA,UAAA;IACZC,QAAA,EAAUA,QAAA;IACVuB,SAAA,EAAWnB,MAAA,CAAOmB,SAAS;IAC3BN,SAAA,EAAWA,SAAA;IACXO,KAAA,EAAON,MAAA;IACPX,KAAA,EAAOA;;AAGb;AAEA,OAAO,MAAMkB,WAAA,GAAc3C,aAAA,CAAcK,eAAA","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeFieldStyles.d.ts","sourceRoot":"","sources":["../../src/fields/mergeFieldStyles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE1C,eAAO,MAAM,gBAAgB,UACpB,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,KAC7C,KAAK,CAAC,aAeP,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const mergeFieldStyles = field => ({
|
|
2
|
+
...(field?.admin?.style || {}),
|
|
3
|
+
...(field?.admin?.width ? {
|
|
4
|
+
'--field-width': field.admin.width
|
|
5
|
+
} : {
|
|
6
|
+
flex: '1 1 auto'
|
|
7
|
+
}),
|
|
8
|
+
// allow flex overrides to still take precedence over the fallback
|
|
9
|
+
...(field?.admin?.style?.flex ? {
|
|
10
|
+
flex: field.admin.style.flex
|
|
11
|
+
} : {})
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=mergeFieldStyles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mergeFieldStyles.js","names":["mergeFieldStyles","field","admin","style","width","flex"],"sources":["../../src/fields/mergeFieldStyles.ts"],"sourcesContent":["import type { ClientField } from 'payload'\n\nexport const mergeFieldStyles = (\n field: ClientField | Omit<ClientField, 'type'>,\n): React.CSSProperties => ({\n ...(field?.admin?.style || {}),\n ...(field?.admin?.width\n ? {\n '--field-width': field.admin.width,\n }\n : {\n flex: '1 1 auto',\n }),\n // allow flex overrides to still take precedence over the fallback\n ...(field?.admin?.style?.flex\n ? {\n flex: field.admin.style.flex,\n }\n : {}),\n})\n"],"mappings":"AAEA,OAAO,MAAMA,gBAAA,GACXC,KAAA,KACyB;EACzB,IAAIA,KAAA,EAAOC,KAAA,EAAOC,KAAA,IAAS,CAAC,CAAC;EAC7B,IAAIF,KAAA,EAAOC,KAAA,EAAOE,KAAA,GACd;IACE,iBAAiBH,KAAA,CAAMC,KAAK,CAACE;EAC/B,IACA;IACEC,IAAA,EAAM;EACR,CAAC;EACL;EACA,IAAIJ,KAAA,EAAOC,KAAA,EAAOC,KAAA,EAAOE,IAAA,GACrB;IACEA,IAAA,EAAMJ,KAAA,CAAMC,KAAK,CAACC,KAAK,CAACE;EAC1B,IACA,CAAC,CAAC;AACR","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderField.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAanD,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"renderField.d.ts","sourceRoot":"","sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAanD,eAAO,MAAM,WAAW,EAAE,iBAyQzB,CAAA"}
|
|
@@ -32,7 +32,8 @@ export const renderField = ({
|
|
|
32
32
|
clientField: deepCopyObjectSimple(fieldConfig),
|
|
33
33
|
defaultIDType: req.payload.config.db.defaultIDType,
|
|
34
34
|
field: fieldConfig,
|
|
35
|
-
i18n: req.i18n
|
|
35
|
+
i18n: req.i18n,
|
|
36
|
+
importMap: req.payload.importMap
|
|
36
37
|
});
|
|
37
38
|
const permissions = incomingPermissions === true ? true : fieldAffectsData(fieldConfig) ? incomingPermissions?.[fieldConfig.name] : {};
|
|
38
39
|
const clientProps = {
|
|
@@ -157,13 +158,14 @@ export const renderField = ({
|
|
|
157
158
|
}
|
|
158
159
|
if (fieldConfig.admin) {
|
|
159
160
|
if ('description' in fieldConfig.admin) {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
161
|
+
if (typeof fieldConfig.admin?.description === 'function') {
|
|
162
|
+
fieldState.customComponents.Description = /*#__PURE__*/_jsx(FieldDescription, {
|
|
163
|
+
description: fieldConfig.admin?.description({
|
|
164
|
+
t: req.i18n.t
|
|
165
|
+
}),
|
|
166
|
+
path: path
|
|
167
|
+
});
|
|
168
|
+
}
|
|
167
169
|
}
|
|
168
170
|
if (fieldConfig.admin?.components) {
|
|
169
171
|
if ('afterInput' in fieldConfig.admin.components) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderField.js","names":["getTranslation","createClientField","deepCopyObjectSimple","MissingEditorProp","fieldAffectsData","RenderServerComponent","FieldDescription","defaultUIFieldComponentKeys","renderField","id","collectionSlug","data","fieldConfig","fieldSchemaMap","fieldState","formState","indexPath","operation","parentPath","parentSchemaPath","path","permissions","incomingPermissions","preferences","req","schemaPath","siblingData","clientField","defaultIDType","payload","config","db","field","i18n","name","clientProps","customComponents","readOnly","includes","type","serverProps","user","rows","forEach","row","rowIndex","admin","components","RowLabels","_jsx","Component","RowLabel","importMap","rowLabel","labels","singular","String","padStart","rowNumber","editor","Error","FieldComponent","Field","Fallback","undefined","key","Description","description","t","AfterInput","afterInput","BeforeInput","beforeInput","Label"],"sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"sourcesContent":["import type {\n ClientComponentProps,\n ClientField,\n FieldPaths,\n PayloadComponent,\n SanitizedFieldPermissions,\n ServerComponentProps,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { createClientField, deepCopyObjectSimple, MissingEditorProp } from 'payload'\nimport { fieldAffectsData } from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- need this to reference already existing bundle. Otherwise, bundle size increases., payload/no-imports-from-exports-dir\nimport { FieldDescription } from '../../exports/client/index.js'\n\nconst defaultUIFieldComponentKeys: Array<'Cell' | 'Description' | 'Field' | 'Filter'> = [\n 'Cell',\n 'Description',\n 'Field',\n 'Filter',\n]\n\nexport const renderField: RenderFieldMethod = ({\n id,\n collectionSlug,\n data,\n fieldConfig,\n fieldSchemaMap,\n fieldState,\n formState,\n indexPath,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions: incomingPermissions,\n preferences,\n req,\n schemaPath,\n siblingData,\n}) => {\n // TODO (ALESSIO): why are we passing the fieldConfig twice?\n // and especially, why are we deepCopyObject -here- instead of inside the createClientField func,\n // so no one screws this up in the future?\n const clientField = createClientField({\n clientField: deepCopyObjectSimple(fieldConfig) as ClientField,\n defaultIDType: req.payload.config.db.defaultIDType,\n field: fieldConfig,\n i18n: req.i18n,\n })\n\n const permissions =\n incomingPermissions === true\n ? true\n : fieldAffectsData(fieldConfig)\n ? incomingPermissions?.[fieldConfig.name]\n : ({} as SanitizedFieldPermissions)\n\n const clientProps: ClientComponentProps & Partial<FieldPaths> = {\n customComponents: fieldState?.customComponents || {},\n field: clientField,\n path,\n readOnly: permissions !== true && !permissions?.[operation],\n schemaPath,\n }\n\n // fields with subfields\n if (['array', 'blocks', 'collapsible', 'group', 'row', 'tabs'].includes(fieldConfig.type)) {\n clientProps.indexPath = indexPath\n clientProps.parentPath = parentPath\n clientProps.parentSchemaPath = parentSchemaPath\n }\n\n const serverProps: ServerComponentProps = {\n id,\n clientField,\n data,\n field: fieldConfig,\n fieldSchemaMap,\n permissions,\n // TODO: Should we pass explicit values? initialValue, value, valid\n // value and initialValue should be typed\n collectionSlug,\n formState,\n i18n: req.i18n,\n operation,\n payload: req.payload,\n preferences,\n req,\n siblingData,\n user: req.user,\n }\n\n if (!fieldState?.customComponents) {\n fieldState.customComponents = {}\n }\n\n switch (fieldConfig.type) {\n // TODO: handle block row labels as well in a similar fashion\n case 'array': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n if (fieldConfig.admin?.components && 'RowLabel' in fieldConfig.admin.components) {\n if (!fieldState.customComponents.RowLabels) {\n fieldState.customComponents.RowLabels = []\n }\n\n fieldState.customComponents.RowLabels[rowIndex] = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={fieldConfig.admin.components.RowLabel}\n importMap={req.payload.importMap}\n serverProps={{\n ...serverProps,\n rowLabel: `${getTranslation(fieldConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n }}\n />\n )\n }\n })\n\n break\n }\n\n case 'richText': {\n if (!fieldConfig?.editor) {\n throw new MissingEditorProp(fieldConfig) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof fieldConfig?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!fieldConfig.admin) {\n fieldConfig.admin = {}\n }\n\n if (!fieldConfig.admin.components) {\n fieldConfig.admin.components = {}\n }\n\n /**\n * We have to deep copy all the props we send to the client (= FieldComponent.clientProps).\n * That way, every editor's field / cell props we send to the client have their own object references.\n *\n * If we send the same object reference to the client twice (e.g. through some configurations where 2 or more fields\n * reference the same editor object, like the root editor), the admin panel may hang indefinitely. This has been happening since\n * a newer Next.js update that made it break when sending the same object reference to the client twice.\n *\n * We can use deepCopyObjectSimple as client props should be JSON-serializable.\n */\n const FieldComponent: PayloadComponent = fieldConfig.editor.FieldComponent\n if (typeof FieldComponent === 'object' && FieldComponent.clientProps) {\n FieldComponent.clientProps = deepCopyObjectSimple(FieldComponent.clientProps)\n }\n\n fieldState.customComponents.Field = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={FieldComponent}\n Fallback={undefined}\n importMap={req.payload.importMap}\n serverProps={serverProps}\n />\n )\n\n break\n }\n\n case 'ui': {\n if (fieldConfig?.admin?.components) {\n // Render any extra, untyped components\n for (const key in fieldConfig.admin.components) {\n if (key in defaultUIFieldComponentKeys) {\n continue\n }\n const Component = fieldConfig.admin.components[key]\n fieldState.customComponents[key] = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={Component}\n importMap={req.payload.importMap}\n key={`field.admin.components.${key}`}\n serverProps={serverProps}\n />\n )\n }\n }\n break\n }\n\n default: {\n break\n }\n }\n\n if (fieldConfig.admin) {\n if ('description' in fieldConfig.admin) {\n // @TODO move this to client, only render if it is a function\n fieldState.customComponents.Description = (\n <FieldDescription\n description={\n typeof fieldConfig.admin?.description === 'string' ||\n typeof fieldConfig.admin?.description === 'object'\n ? fieldConfig.admin.description\n : typeof fieldConfig.admin?.description === 'function'\n ? fieldConfig.admin?.description({ t: req.i18n.t })\n : ''\n }\n path={path}\n />\n )\n }\n\n if (fieldConfig.admin?.components) {\n if ('afterInput' in fieldConfig.admin.components) {\n fieldState.customComponents.AfterInput = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={fieldConfig.admin.components.afterInput}\n importMap={req.payload.importMap}\n key=\"field.admin.components.afterInput\"\n serverProps={serverProps}\n />\n )\n }\n\n if ('beforeInput' in fieldConfig.admin.components) {\n fieldState.customComponents.BeforeInput = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={fieldConfig.admin.components.beforeInput}\n importMap={req.payload.importMap}\n key=\"field.admin.components.beforeInput\"\n serverProps={serverProps}\n />\n )\n }\n\n if ('Description' in fieldConfig.admin.components) {\n fieldState.customComponents.Description = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={fieldConfig.admin.components.Description}\n importMap={req.payload.importMap}\n key=\"field.admin.components.Description\"\n serverProps={serverProps}\n />\n )\n }\n\n if ('Error' in fieldConfig.admin.components) {\n fieldState.customComponents.Error = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={fieldConfig.admin.components.Error}\n importMap={req.payload.importMap}\n key=\"field.admin.components.Error\"\n serverProps={serverProps}\n />\n )\n }\n\n if ('Label' in fieldConfig.admin.components) {\n fieldState.customComponents.Label = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={fieldConfig.admin.components.Label}\n importMap={req.payload.importMap}\n key=\"field.admin.components.Label\"\n serverProps={serverProps}\n />\n )\n }\n\n if ('Field' in fieldConfig.admin.components) {\n fieldState.customComponents.Field = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={fieldConfig.admin.components.Field}\n importMap={req.payload.importMap}\n key=\"field.admin.components.Field\"\n serverProps={serverProps}\n />\n )\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"renderField.js","names":["getTranslation","createClientField","deepCopyObjectSimple","MissingEditorProp","fieldAffectsData","RenderServerComponent","FieldDescription","defaultUIFieldComponentKeys","renderField","id","collectionSlug","data","fieldConfig","fieldSchemaMap","fieldState","formState","indexPath","operation","parentPath","parentSchemaPath","path","permissions","incomingPermissions","preferences","req","schemaPath","siblingData","clientField","defaultIDType","payload","config","db","field","i18n","importMap","name","clientProps","customComponents","readOnly","includes","type","serverProps","user","rows","forEach","row","rowIndex","admin","components","RowLabels","_jsx","Component","RowLabel","rowLabel","labels","singular","String","padStart","rowNumber","editor","Error","FieldComponent","Field","Fallback","undefined","key","description","Description","t","AfterInput","afterInput","BeforeInput","beforeInput","Label"],"sources":["../../../src/forms/fieldSchemasToFormState/renderField.tsx"],"sourcesContent":["import type {\n ClientComponentProps,\n ClientField,\n FieldPaths,\n PayloadComponent,\n SanitizedFieldPermissions,\n ServerComponentProps,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { createClientField, deepCopyObjectSimple, MissingEditorProp } from 'payload'\nimport { fieldAffectsData } from 'payload/shared'\n\nimport type { RenderFieldMethod } from './types.js'\n\nimport { RenderServerComponent } from '../../elements/RenderServerComponent/index.js'\n// eslint-disable-next-line payload/no-imports-from-exports-dir -- need this to reference already existing bundle. Otherwise, bundle size increases., payload/no-imports-from-exports-dir\nimport { FieldDescription } from '../../exports/client/index.js'\n\nconst defaultUIFieldComponentKeys: Array<'Cell' | 'Description' | 'Field' | 'Filter'> = [\n 'Cell',\n 'Description',\n 'Field',\n 'Filter',\n]\n\nexport const renderField: RenderFieldMethod = ({\n id,\n collectionSlug,\n data,\n fieldConfig,\n fieldSchemaMap,\n fieldState,\n formState,\n indexPath,\n operation,\n parentPath,\n parentSchemaPath,\n path,\n permissions: incomingPermissions,\n preferences,\n req,\n schemaPath,\n siblingData,\n}) => {\n // TODO (ALESSIO): why are we passing the fieldConfig twice?\n // and especially, why are we deepCopyObject -here- instead of inside the createClientField func,\n // so no one screws this up in the future?\n const clientField = createClientField({\n clientField: deepCopyObjectSimple(fieldConfig) as ClientField,\n defaultIDType: req.payload.config.db.defaultIDType,\n field: fieldConfig,\n i18n: req.i18n,\n importMap: req.payload.importMap,\n })\n\n const permissions =\n incomingPermissions === true\n ? true\n : fieldAffectsData(fieldConfig)\n ? incomingPermissions?.[fieldConfig.name]\n : ({} as SanitizedFieldPermissions)\n\n const clientProps: ClientComponentProps & Partial<FieldPaths> = {\n customComponents: fieldState?.customComponents || {},\n field: clientField,\n path,\n readOnly: permissions !== true && !permissions?.[operation],\n schemaPath,\n }\n\n // fields with subfields\n if (['array', 'blocks', 'collapsible', 'group', 'row', 'tabs'].includes(fieldConfig.type)) {\n clientProps.indexPath = indexPath\n clientProps.parentPath = parentPath\n clientProps.parentSchemaPath = parentSchemaPath\n }\n\n const serverProps: ServerComponentProps = {\n id,\n clientField,\n data,\n field: fieldConfig,\n fieldSchemaMap,\n permissions,\n // TODO: Should we pass explicit values? initialValue, value, valid\n // value and initialValue should be typed\n collectionSlug,\n formState,\n i18n: req.i18n,\n operation,\n payload: req.payload,\n preferences,\n req,\n siblingData,\n user: req.user,\n }\n\n if (!fieldState?.customComponents) {\n fieldState.customComponents = {}\n }\n\n switch (fieldConfig.type) {\n // TODO: handle block row labels as well in a similar fashion\n case 'array': {\n fieldState?.rows?.forEach((row, rowIndex) => {\n if (fieldConfig.admin?.components && 'RowLabel' in fieldConfig.admin.components) {\n if (!fieldState.customComponents.RowLabels) {\n fieldState.customComponents.RowLabels = []\n }\n\n fieldState.customComponents.RowLabels[rowIndex] = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={fieldConfig.admin.components.RowLabel}\n importMap={req.payload.importMap}\n serverProps={{\n ...serverProps,\n rowLabel: `${getTranslation(fieldConfig.labels.singular, req.i18n)} ${String(\n rowIndex + 1,\n ).padStart(2, '0')}`,\n rowNumber: rowIndex + 1,\n }}\n />\n )\n }\n })\n\n break\n }\n\n case 'richText': {\n if (!fieldConfig?.editor) {\n throw new MissingEditorProp(fieldConfig) // while we allow disabling editor functionality, you should not have any richText fields defined if you do not have an editor\n }\n\n if (typeof fieldConfig?.editor === 'function') {\n throw new Error('Attempted to access unsanitized rich text editor.')\n }\n\n if (!fieldConfig.admin) {\n fieldConfig.admin = {}\n }\n\n if (!fieldConfig.admin.components) {\n fieldConfig.admin.components = {}\n }\n\n /**\n * We have to deep copy all the props we send to the client (= FieldComponent.clientProps).\n * That way, every editor's field / cell props we send to the client have their own object references.\n *\n * If we send the same object reference to the client twice (e.g. through some configurations where 2 or more fields\n * reference the same editor object, like the root editor), the admin panel may hang indefinitely. This has been happening since\n * a newer Next.js update that made it break when sending the same object reference to the client twice.\n *\n * We can use deepCopyObjectSimple as client props should be JSON-serializable.\n */\n const FieldComponent: PayloadComponent = fieldConfig.editor.FieldComponent\n if (typeof FieldComponent === 'object' && FieldComponent.clientProps) {\n FieldComponent.clientProps = deepCopyObjectSimple(FieldComponent.clientProps)\n }\n\n fieldState.customComponents.Field = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={FieldComponent}\n Fallback={undefined}\n importMap={req.payload.importMap}\n serverProps={serverProps}\n />\n )\n\n break\n }\n\n case 'ui': {\n if (fieldConfig?.admin?.components) {\n // Render any extra, untyped components\n for (const key in fieldConfig.admin.components) {\n if (key in defaultUIFieldComponentKeys) {\n continue\n }\n const Component = fieldConfig.admin.components[key]\n fieldState.customComponents[key] = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={Component}\n importMap={req.payload.importMap}\n key={`field.admin.components.${key}`}\n serverProps={serverProps}\n />\n )\n }\n }\n break\n }\n\n default: {\n break\n }\n }\n\n if (fieldConfig.admin) {\n if ('description' in fieldConfig.admin) {\n if (typeof fieldConfig.admin?.description === 'function') {\n fieldState.customComponents.Description = (\n <FieldDescription\n description={fieldConfig.admin?.description({\n t: req.i18n.t,\n })}\n path={path}\n />\n )\n }\n }\n\n if (fieldConfig.admin?.components) {\n if ('afterInput' in fieldConfig.admin.components) {\n fieldState.customComponents.AfterInput = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={fieldConfig.admin.components.afterInput}\n importMap={req.payload.importMap}\n key=\"field.admin.components.afterInput\"\n serverProps={serverProps}\n />\n )\n }\n\n if ('beforeInput' in fieldConfig.admin.components) {\n fieldState.customComponents.BeforeInput = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={fieldConfig.admin.components.beforeInput}\n importMap={req.payload.importMap}\n key=\"field.admin.components.beforeInput\"\n serverProps={serverProps}\n />\n )\n }\n\n if ('Description' in fieldConfig.admin.components) {\n fieldState.customComponents.Description = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={fieldConfig.admin.components.Description}\n importMap={req.payload.importMap}\n key=\"field.admin.components.Description\"\n serverProps={serverProps}\n />\n )\n }\n\n if ('Error' in fieldConfig.admin.components) {\n fieldState.customComponents.Error = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={fieldConfig.admin.components.Error}\n importMap={req.payload.importMap}\n key=\"field.admin.components.Error\"\n serverProps={serverProps}\n />\n )\n }\n\n if ('Label' in fieldConfig.admin.components) {\n fieldState.customComponents.Label = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={fieldConfig.admin.components.Label}\n importMap={req.payload.importMap}\n key=\"field.admin.components.Label\"\n serverProps={serverProps}\n />\n )\n }\n\n if ('Field' in fieldConfig.admin.components) {\n fieldState.customComponents.Field = (\n <RenderServerComponent\n clientProps={clientProps}\n Component={fieldConfig.admin.components.Field}\n importMap={req.payload.importMap}\n key=\"field.admin.components.Field\"\n serverProps={serverProps}\n />\n )\n }\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphics/Icon/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/graphics/Icon/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd,CAqBA,CAAA"}
|