@payloadcms/ui 3.0.0-beta.7 → 3.0.0-canary.92e4997
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/ArrayAction/index.d.ts +1 -0
- package/dist/elements/ArrayAction/index.d.ts.map +1 -1
- package/dist/elements/ArrayAction/index.js +3 -3
- 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 +15 -3
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.js +1 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.scss +2 -2
- package/dist/elements/DocumentDrawer/DrawerContent.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerContent.js +7 -7
- package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
- package/dist/elements/DocumentFields/index.js +1 -1
- package/dist/elements/DocumentFields/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js +3 -2
- package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.d.ts +2 -0
- package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/index.js +3 -2
- package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
- package/dist/elements/DocumentHeader/index.d.ts +2 -0
- package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/index.js +3 -2
- package/dist/elements/DocumentHeader/index.js.map +1 -1
- package/dist/elements/EditMany/index.js +2 -2
- package/dist/elements/EditMany/index.js.map +1 -1
- package/dist/elements/EditUpload/index.d.ts +12 -0
- package/dist/elements/EditUpload/index.d.ts.map +1 -1
- package/dist/elements/EditUpload/index.js +25 -25
- package/dist/elements/EditUpload/index.js.map +1 -1
- package/dist/elements/HydrateClientUser/index.d.ts +2 -2
- package/dist/elements/HydrateClientUser/index.d.ts.map +1 -1
- package/dist/elements/HydrateClientUser/index.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +16 -3
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/PublishMany/index.js +1 -1
- package/dist/elements/PublishMany/index.js.map +1 -1
- package/dist/elements/Save/index.d.ts.map +1 -1
- package/dist/elements/Save/index.js +7 -1
- package/dist/elements/Save/index.js.map +1 -1
- package/dist/elements/SaveDraft/index.d.ts.map +1 -1
- package/dist/elements/SaveDraft/index.js +8 -5
- package/dist/elements/SaveDraft/index.js.map +1 -1
- package/dist/elements/StayLoggedIn/index.d.ts +2 -4
- package/dist/elements/StayLoggedIn/index.d.ts.map +1 -1
- package/dist/elements/StayLoggedIn/index.js +7 -6
- package/dist/elements/StayLoggedIn/index.js.map +1 -1
- package/dist/elements/StayLoggedIn/index.scss +1 -1
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +6 -2
- package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/JSON/index.js +1 -1
- package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/index.js +1 -1
- package/dist/elements/Table/DefaultCell/index.js.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.d.ts.map +1 -1
- package/dist/elements/TableColumns/buildColumnState.js +1 -0
- package/dist/elements/TableColumns/buildColumnState.js.map +1 -1
- package/dist/elements/Upload/index.d.ts.map +1 -1
- package/dist/elements/Upload/index.js +37 -1
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/Upload/index.scss +12 -1
- package/dist/exports/elements.d.ts +3 -2
- package/dist/exports/elements.d.ts.map +1 -1
- package/dist/exports/elements.js +5 -2
- package/dist/exports/elements.js.map +1 -1
- package/dist/exports/fields.d.ts +2 -0
- package/dist/exports/fields.d.ts.map +1 -0
- package/dist/exports/fields.js +3 -0
- package/dist/exports/fields.js.map +1 -0
- package/dist/exports/providers.d.ts +2 -0
- package/dist/exports/providers.d.ts.map +1 -0
- package/dist/exports/providers.js +3 -0
- package/dist/exports/providers.js.map +1 -0
- package/dist/fields/Array/ArrayRow.d.ts +1 -0
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +4 -3
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.d.ts +1 -0
- package/dist/fields/Array/index.d.ts.map +1 -1
- package/dist/fields/Array/index.js +3 -2
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlockRow.d.ts +1 -0
- package/dist/fields/Blocks/BlockRow.d.ts.map +1 -1
- package/dist/fields/Blocks/BlockRow.js +4 -3
- package/dist/fields/Blocks/BlockRow.js.map +1 -1
- package/dist/fields/Blocks/RowActions.d.ts +1 -0
- package/dist/fields/Blocks/RowActions.d.ts.map +1 -1
- package/dist/fields/Blocks/RowActions.js +2 -1
- package/dist/fields/Blocks/RowActions.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts +1 -0
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js +3 -2
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/ConfirmPassword/index.js +1 -1
- package/dist/fields/ConfirmPassword/index.js.map +1 -1
- package/dist/fields/JSON/index.d.ts +1 -0
- package/dist/fields/JSON/index.d.ts.map +1 -1
- package/dist/fields/JSON/index.js +20 -1
- package/dist/fields/JSON/index.js.map +1 -1
- package/dist/fields/RichText/index.d.ts +1 -1
- package/dist/fields/RichText/index.d.ts.map +1 -1
- package/dist/fields/RichText/index.js.map +1 -1
- package/dist/fields/shared/index.d.ts +1 -0
- package/dist/fields/shared/index.d.ts.map +1 -1
- package/dist/fields/shared/index.js.map +1 -1
- package/dist/forms/FieldPropsProvider/index.d.ts +2 -0
- package/dist/forms/FieldPropsProvider/index.d.ts.map +1 -1
- package/dist/forms/FieldPropsProvider/index.js +5 -3
- package/dist/forms/FieldPropsProvider/index.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.d.ts +1 -0
- package/dist/forms/RenderFields/RenderField.d.ts.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +2 -1
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/RenderFields/index.d.ts.map +1 -1
- package/dist/forms/RenderFields/index.js +2 -1
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts +3 -5
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.js +2 -1
- package/dist/forms/buildStateFromSchema/addFieldStatePromise.js.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts +2 -2
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/index.js.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts +2 -2
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/iterateFields.js.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts +2 -2
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js +1 -0
- package/dist/forms/buildStateFromSchema/calculateDefaultValues/promise.js.map +1 -1
- package/dist/forms/buildStateFromSchema/index.d.ts +3 -5
- package/dist/forms/buildStateFromSchema/index.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/index.js.map +1 -1
- package/dist/forms/buildStateFromSchema/iterateFields.d.ts +3 -5
- package/dist/forms/buildStateFromSchema/iterateFields.d.ts.map +1 -1
- package/dist/forms/buildStateFromSchema/iterateFields.js.map +1 -1
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +3 -1
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/providers/Auth/index.d.ts.map +1 -1
- package/dist/providers/Auth/index.js +2 -1
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/fields.d.ts.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/fields.js +9 -0
- package/dist/providers/ComponentMap/buildComponentMap/fields.js.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/types.d.ts +2 -0
- package/dist/providers/ComponentMap/buildComponentMap/types.d.ts.map +1 -1
- package/dist/providers/ComponentMap/buildComponentMap/types.js.map +1 -1
- package/dist/providers/DocumentInfo/index.js +8 -7
- package/dist/providers/DocumentInfo/index.js.map +1 -1
- package/dist/providers/EntityVisibility/index.d.ts +1 -1
- package/dist/providers/EntityVisibility/index.d.ts.map +1 -1
- package/dist/providers/EntityVisibility/index.js.map +1 -1
- package/dist/providers/Root/index.d.ts.map +1 -1
- package/dist/providers/Root/index.js +2 -1
- package/dist/providers/Root/index.js.map +1 -1
- package/package.json +32 -31
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Upload/index.tsx"],"sourcesContent":["'use client'\nimport type { FormState, SanitizedCollectionConfig } from 'payload/types'\n\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { isImage } from 'payload/utilities'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { fieldBaseClass } from '../../fields/shared/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { reduceFieldsToValues } from '../../utilities/reduceFieldsToValues.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { Dropzone } from '../Dropzone/index.js'\nimport { EditUpload } from '../EditUpload/index.js'\nimport { FileDetails } from '../FileDetails/index.js'\nimport { PreviewSizes } from '../PreviewSizes/index.js'\nimport { Thumbnail } from '../Thumbnail/index.js'\nimport './index.scss'\n\nconst baseClass = 'file-field'\nexport const editDrawerSlug = 'edit-upload'\nexport const sizePreviewSlug = 'preview-sizes'\n\nconst validate = (value) => {\n if (!value && value !== undefined) {\n return 'A file is required.'\n }\n\n return true\n}\n\nexport const UploadActions = ({ canEdit, showSizePreviews }) => {\n const { t } = useTranslation()\n return (\n <div className={`${baseClass}__file-mutation`}>\n {showSizePreviews && (\n <DrawerToggler className={`${baseClass}__previewSizes`} slug={sizePreviewSlug}>\n {t('upload:previewSizes')}\n </DrawerToggler>\n )}\n {canEdit && (\n <DrawerToggler className={`${baseClass}__edit`} slug={editDrawerSlug}>\n {t('upload:editImage')}\n </DrawerToggler>\n )}\n </div>\n )\n}\n\nexport type UploadProps = {\n collectionSlug: string\n initialState?: FormState\n onChange?: (file?: File) => void\n updatedAt?: string\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const Upload: React.FC<UploadProps> = (props) => {\n const { collectionSlug, initialState, onChange, updatedAt, uploadConfig } = props\n\n const submitted = useFormSubmitted()\n const [replacingFile, setReplacingFile] = useState(false)\n const [fileSrc, setFileSrc] = useState<null | string>(null)\n const { t } = useTranslation()\n const [doc, setDoc] = useState(reduceFieldsToValues(initialState || {}, true))\n const { docPermissions } = useDocumentInfo()\n const { errorMessage, setValue, showError, value } = useField<File>({\n path: 'file',\n validate,\n })\n\n const handleFileNameChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const updatedFileName = e.target.value\n if (value) {\n const fileValue = value\n // Creating a new File object with updated properties\n const newFile = new File([fileValue], updatedFileName, { type: fileValue.type })\n setValue(newFile) // Updating the state with the new File object\n }\n }\n\n const handleFileSelection = React.useCallback(\n (files: FileList) => {\n const fileToUpload = files?.[0]\n setValue(fileToUpload)\n },\n [setValue],\n )\n\n const handleFileRemoval = useCallback(() => {\n setReplacingFile(true)\n setValue(null)\n setFileSrc('')\n }, [setValue])\n\n useEffect(() => {\n setDoc(reduceFieldsToValues(initialState || {}, true))\n setReplacingFile(false)\n }, [initialState])\n\n useEffect(() => {\n if (value instanceof File) {\n const fileReader = new FileReader()\n fileReader.onload = (e) => {\n const imgSrc = e.target?.result\n\n if (typeof imgSrc === 'string') {\n setFileSrc(imgSrc)\n }\n }\n fileReader.readAsDataURL(value)\n }\n\n if (typeof onChange === 'function') {\n onChange(value)\n }\n }, [value, onChange, updatedAt])\n\n const canRemoveUpload =\n docPermissions?.update?.permission &&\n 'delete' in docPermissions &&\n docPermissions?.delete?.permission\n\n const hasImageSizes = uploadConfig?.imageSizes?.length > 0\n const hasResizeOptions = Boolean(uploadConfig?.resizeOptions)\n\n const { crop: showCrop = true, focalPoint = true } = uploadConfig\n\n const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions)\n\n const lastSubmittedTime = submitted ? new Date().toISOString() : null\n\n return (\n <div className={[fieldBaseClass, baseClass].filter(Boolean).join(' ')}>\n <FieldError message={errorMessage} showError={showError} />\n {doc.filename && !replacingFile && (\n <FileDetails\n canEdit={showCrop || showFocalPoint}\n collectionSlug={collectionSlug}\n doc={doc}\n handleRemove={canRemoveUpload ? handleFileRemoval : undefined}\n hasImageSizes={hasImageSizes}\n imageCacheTag={lastSubmittedTime}\n uploadConfig={uploadConfig}\n />\n )}\n {(!doc.filename || replacingFile) && (\n <div className={`${baseClass}__upload`}>\n {!value && (\n <Dropzone\n className={`${baseClass}__dropzone`}\n mimeTypes={uploadConfig?.mimeTypes}\n onChange={handleFileSelection}\n />\n )}\n\n {value && (\n <React.Fragment>\n <div className={`${baseClass}__thumbnail-wrap`}>\n <Thumbnail\n collectionSlug={collectionSlug}\n fileSrc={isImage(value.type) ? fileSrc : null}\n />\n </div>\n <div className={`${baseClass}__file-adjustments`}>\n <input\n className={`${baseClass}__filename`}\n onChange={handleFileNameChange}\n type=\"text\"\n value={value.name}\n />\n\n {isImage(value.type) && value.type !== 'image/svg+xml' && (\n <UploadActions\n canEdit={showCrop || showFocalPoint}\n showSizePreviews={hasImageSizes && doc.filename && !replacingFile}\n />\n )}\n </div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={handleFileRemoval}\n round\n tooltip={t('general:cancel')}\n />\n </React.Fragment>\n )}\n </div>\n )}\n {(value || doc.filename) && (\n <Drawer Header={null} slug={editDrawerSlug}>\n <EditUpload\n doc={doc || undefined}\n fileName={value?.name || doc?.filename}\n fileSrc={fileSrc || doc?.url}\n imageCacheTag={lastSubmittedTime}\n showCrop={showCrop}\n showFocalPoint={showFocalPoint}\n />\n </Drawer>\n )}\n {doc && hasImageSizes && (\n <Drawer\n className={`${baseClass}__previewDrawer`}\n hoverTitle\n slug={sizePreviewSlug}\n title={t('upload:sizesFor', { label: doc?.filename })}\n >\n <PreviewSizes doc={doc} uploadConfig={uploadConfig} />\n </Drawer>\n )}\n </div>\n )\n}\n"],"names":["FieldError","isImage","React","useCallback","useEffect","useState","fieldBaseClass","useFormSubmitted","useField","useDocumentInfo","useTranslation","reduceFieldsToValues","Button","Drawer","DrawerToggler","Dropzone","EditUpload","FileDetails","PreviewSizes","Thumbnail","baseClass","editDrawerSlug","sizePreviewSlug","validate","value","undefined","UploadActions","canEdit","showSizePreviews","t","div","className","slug","Upload","props","collectionSlug","initialState","onChange","updatedAt","uploadConfig","submitted","replacingFile","setReplacingFile","fileSrc","setFileSrc","doc","setDoc","docPermissions","errorMessage","setValue","showError","path","handleFileNameChange","e","updatedFileName","target","fileValue","newFile","File","type","handleFileSelection","files","fileToUpload","handleFileRemoval","fileReader","FileReader","onload","imgSrc","result","readAsDataURL","canRemoveUpload","update","permission","delete","hasImageSizes","imageSizes","length","hasResizeOptions","Boolean","resizeOptions","crop","showCrop","focalPoint","showFocalPoint","lastSubmittedTime","Date","toISOString","filter","join","message","filename","handleRemove","imageCacheTag","mimeTypes","Fragment","input","name","buttonStyle","icon","iconStyle","onClick","round","tooltip","Header","fileName","url","hoverTitle","title","label"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Upload/index.tsx"],"sourcesContent":["'use client'\nimport type { FormState, SanitizedCollectionConfig } from 'payload/types'\n\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { useFormQueryParams } from '@payloadcms/ui/providers/FormQueryParams'\nimport { isImage } from 'payload/utilities'\nimport React, { useCallback, useEffect, useState } from 'react'\n\nimport { fieldBaseClass } from '../../fields/shared/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { reduceFieldsToValues } from '../../utilities/reduceFieldsToValues.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer, DrawerToggler } from '../Drawer/index.js'\nimport { Dropzone } from '../Dropzone/index.js'\nimport { EditUpload } from '../EditUpload/index.js'\nimport { FileDetails } from '../FileDetails/index.js'\nimport { PreviewSizes } from '../PreviewSizes/index.js'\nimport { Thumbnail } from '../Thumbnail/index.js'\nimport './index.scss'\n\nconst baseClass = 'file-field'\nexport const editDrawerSlug = 'edit-upload'\nexport const sizePreviewSlug = 'preview-sizes'\n\nconst validate = (value) => {\n if (!value && value !== undefined) {\n return 'A file is required.'\n }\n\n return true\n}\n\nexport const UploadActions = ({ canEdit, showSizePreviews }) => {\n const { t } = useTranslation()\n return (\n <div className={`${baseClass}__file-mutation`}>\n {showSizePreviews && (\n <DrawerToggler className={`${baseClass}__previewSizes`} slug={sizePreviewSlug}>\n {t('upload:previewSizes')}\n </DrawerToggler>\n )}\n {canEdit && (\n <DrawerToggler className={`${baseClass}__edit`} slug={editDrawerSlug}>\n {t('upload:editImage')}\n </DrawerToggler>\n )}\n </div>\n )\n}\n\nexport type UploadProps = {\n collectionSlug: string\n initialState?: FormState\n onChange?: (file?: File) => void\n updatedAt?: string\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const Upload: React.FC<UploadProps> = (props) => {\n const { collectionSlug, initialState, onChange, updatedAt, uploadConfig } = props\n\n const submitted = useFormSubmitted()\n const [replacingFile, setReplacingFile] = useState(false)\n const [fileSrc, setFileSrc] = useState<null | string>(null)\n const { t } = useTranslation()\n const { setModified } = useForm()\n const { dispatchFormQueryParams, formQueryParams } = useFormQueryParams()\n const [doc, setDoc] = useState(reduceFieldsToValues(initialState || {}, true))\n const { docPermissions } = useDocumentInfo()\n const { errorMessage, setValue, showError, value } = useField<File>({\n path: 'file',\n validate,\n })\n const [crop, setCrop] = useState({ x: 0, y: 0 })\n\n const handleFileNameChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const updatedFileName = e.target.value\n if (value) {\n const fileValue = value\n // Creating a new File object with updated properties\n const newFile = new File([fileValue], updatedFileName, { type: fileValue.type })\n setValue(newFile) // Updating the state with the new File object\n }\n }\n\n const handleFileSelection = React.useCallback(\n (files: FileList) => {\n const fileToUpload = files?.[0]\n setValue(fileToUpload)\n },\n [setValue],\n )\n\n const handleFileRemoval = useCallback(() => {\n setReplacingFile(true)\n setValue(null)\n setFileSrc('')\n }, [setValue])\n\n const onEditsSave = React.useCallback(\n ({ crop, pointPosition }) => {\n setCrop({\n x: crop.x || 0,\n y: crop.y || 0,\n })\n const zoomScale = 100 / Math.min(crop.width, crop.height)\n\n document.documentElement.style.setProperty('--file-details-thumbnail--zoom', `${zoomScale}`)\n document.documentElement.style.setProperty(\n '--file-details-thumbnail--top-offset',\n `${zoomScale * (50 - crop.height / 2 - crop.y)}%`,\n )\n document.documentElement.style.setProperty(\n '--file-details-thumbnail--left-offset',\n `${zoomScale * (50 - crop.width / 2 - crop.x)}%`,\n )\n setModified(true)\n dispatchFormQueryParams({\n type: 'SET',\n params: {\n uploadEdits:\n crop || pointPosition\n ? {\n crop: crop || null,\n focalPoint: pointPosition ? pointPosition : null,\n }\n : null,\n },\n })\n },\n [dispatchFormQueryParams, setModified],\n )\n\n useEffect(() => {\n setDoc(reduceFieldsToValues(initialState || {}, true))\n setReplacingFile(false)\n }, [initialState])\n\n useEffect(() => {\n if (value instanceof File) {\n const fileReader = new FileReader()\n fileReader.onload = (e) => {\n const imgSrc = e.target?.result\n\n if (typeof imgSrc === 'string') {\n setFileSrc(imgSrc)\n }\n }\n fileReader.readAsDataURL(value)\n }\n\n if (typeof onChange === 'function') {\n onChange(value)\n }\n }, [value, onChange, updatedAt])\n\n const canRemoveUpload =\n docPermissions?.update?.permission &&\n 'delete' in docPermissions &&\n docPermissions?.delete?.permission\n\n const hasImageSizes = uploadConfig?.imageSizes?.length > 0\n const hasResizeOptions = Boolean(uploadConfig?.resizeOptions)\n\n const { crop: showCrop = true, focalPoint = true } = uploadConfig\n\n const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions)\n\n const lastSubmittedTime = submitted ? new Date().toISOString() : null\n\n return (\n <div className={[fieldBaseClass, baseClass].filter(Boolean).join(' ')}>\n <FieldError message={errorMessage} showError={showError} />\n {doc.filename && !replacingFile && (\n <FileDetails\n canEdit={showCrop || showFocalPoint}\n collectionSlug={collectionSlug}\n doc={doc}\n handleRemove={canRemoveUpload ? handleFileRemoval : undefined}\n hasImageSizes={hasImageSizes}\n imageCacheTag={lastSubmittedTime}\n uploadConfig={uploadConfig}\n />\n )}\n {(!doc.filename || replacingFile) && (\n <div className={`${baseClass}__upload`}>\n {!value && (\n <Dropzone\n className={`${baseClass}__dropzone`}\n mimeTypes={uploadConfig?.mimeTypes}\n onChange={handleFileSelection}\n />\n )}\n\n {value && (\n <React.Fragment>\n <div className={`${baseClass}__thumbnail-wrap`}>\n <Thumbnail\n collectionSlug={collectionSlug}\n fileSrc={isImage(value.type) ? fileSrc : null}\n />\n </div>\n <div className={`${baseClass}__file-adjustments`}>\n <input\n className={`${baseClass}__filename`}\n onChange={handleFileNameChange}\n type=\"text\"\n value={value.name}\n />\n\n {isImage(value.type) && value.type !== 'image/svg+xml' && (\n <UploadActions\n canEdit={showCrop || showFocalPoint}\n showSizePreviews={hasImageSizes && doc.filename && !replacingFile}\n />\n )}\n </div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={handleFileRemoval}\n round\n tooltip={t('general:cancel')}\n />\n </React.Fragment>\n )}\n </div>\n )}\n {(value || doc.filename) && (\n <Drawer Header={null} slug={editDrawerSlug}>\n <EditUpload\n doc={doc || undefined}\n fileName={value?.name || doc?.filename}\n fileSrc={fileSrc || doc?.url}\n imageCacheTag={lastSubmittedTime}\n initialCrop={formQueryParams?.uploadEdits?.crop ?? {}}\n initialFocalPoint={{\n x: formQueryParams?.uploadEdits?.focalPoint.x || 0,\n y: formQueryParams?.uploadEdits?.focalPoint.y || 0,\n }}\n onSave={onEditsSave}\n showCrop={showCrop}\n showFocalPoint={showFocalPoint}\n />\n </Drawer>\n )}\n {doc && hasImageSizes && (\n <Drawer\n className={`${baseClass}__previewDrawer`}\n hoverTitle\n slug={sizePreviewSlug}\n title={t('upload:sizesFor', { label: doc?.filename })}\n >\n <PreviewSizes doc={doc} uploadConfig={uploadConfig} />\n </Drawer>\n )}\n </div>\n )\n}\n"],"names":["FieldError","useFormQueryParams","isImage","React","useCallback","useEffect","useState","fieldBaseClass","useForm","useFormSubmitted","useField","useDocumentInfo","useTranslation","reduceFieldsToValues","Button","Drawer","DrawerToggler","Dropzone","EditUpload","FileDetails","PreviewSizes","Thumbnail","baseClass","editDrawerSlug","sizePreviewSlug","validate","value","undefined","UploadActions","canEdit","showSizePreviews","t","div","className","slug","Upload","props","collectionSlug","initialState","onChange","updatedAt","uploadConfig","submitted","replacingFile","setReplacingFile","fileSrc","setFileSrc","setModified","dispatchFormQueryParams","formQueryParams","doc","setDoc","docPermissions","errorMessage","setValue","showError","path","crop","setCrop","x","y","handleFileNameChange","e","updatedFileName","target","fileValue","newFile","File","type","handleFileSelection","files","fileToUpload","handleFileRemoval","onEditsSave","pointPosition","zoomScale","Math","min","width","height","document","documentElement","style","setProperty","params","uploadEdits","focalPoint","fileReader","FileReader","onload","imgSrc","result","readAsDataURL","canRemoveUpload","update","permission","delete","hasImageSizes","imageSizes","length","hasResizeOptions","Boolean","resizeOptions","showCrop","showFocalPoint","lastSubmittedTime","Date","toISOString","filter","join","message","filename","handleRemove","imageCacheTag","mimeTypes","Fragment","input","name","buttonStyle","icon","iconStyle","onClick","round","tooltip","Header","fileName","url","initialCrop","initialFocalPoint","onSave","hoverTitle","title","label"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -23,13 +23,24 @@
|
|
|
23
23
|
width: 150px;
|
|
24
24
|
|
|
25
25
|
.thumbnail {
|
|
26
|
-
position:
|
|
26
|
+
position: relative;
|
|
27
27
|
width: 100%;
|
|
28
28
|
height: 100%;
|
|
29
29
|
object-fit: contain;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
+
.file-details {
|
|
34
|
+
img {
|
|
35
|
+
position: relative;
|
|
36
|
+
min-width: 100%;
|
|
37
|
+
height: 100%;
|
|
38
|
+
transform: scale(var(--file-details-thumbnail--zoom));
|
|
39
|
+
top: var(--file-details-thumbnail--top-offset);
|
|
40
|
+
left: var(--file-details-thumbnail--left-offset);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
33
44
|
&__remove {
|
|
34
45
|
margin: calc($baseline * 1.5) $baseline $baseline 0;
|
|
35
46
|
place-self: flex-start;
|
|
@@ -46,12 +46,13 @@ export { Tooltip } from '../elements/Tooltip/index.js';
|
|
|
46
46
|
export { Translation } from '../elements/Translation/index.js';
|
|
47
47
|
export { UnpublishMany } from '../elements/UnpublishMany/index.js';
|
|
48
48
|
export { Upload } from '../elements/Upload/index.js';
|
|
49
|
-
export { BlocksDrawer } from '../fields/Blocks/BlocksDrawer/index.js';
|
|
50
49
|
declare const Modal: import("react").FC<import("@faceless-ui/modal/dist/Modal/index.js").ModalProps & {
|
|
51
50
|
modal?: import("@faceless-ui/modal/dist/ModalProvider/context.js").IModalContext;
|
|
52
51
|
} & {
|
|
53
52
|
children?: import("react").ReactNode | import("@faceless-ui/modal/dist/Modal/index.js").ChildFunction;
|
|
54
53
|
}>;
|
|
55
54
|
export { Modal };
|
|
56
|
-
|
|
55
|
+
import * as reactToastifyImport from 'react-toastify';
|
|
56
|
+
declare const toast: typeof reactToastifyImport.toast;
|
|
57
|
+
export { toast };
|
|
57
58
|
//# sourceMappingURL=elements.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elements.d.ts","sourceRoot":"","sources":["../../src/exports/elements.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"elements.d.ts","sourceRoot":"","sources":["../../src/exports/elements.ts"],"names":[],"mappings":"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"}
|
package/dist/exports/elements.js
CHANGED
|
@@ -43,12 +43,15 @@ export { Tooltip } from '../elements/Tooltip/index.js';
|
|
|
43
43
|
export { Translation } from '../elements/Translation/index.js';
|
|
44
44
|
export { UnpublishMany } from '../elements/UnpublishMany/index.js';
|
|
45
45
|
export { Upload } from '../elements/Upload/index.js';
|
|
46
|
-
export { BlocksDrawer } from '../fields/Blocks/BlocksDrawer/index.js';
|
|
47
46
|
import * as facelessUIImport from '@faceless-ui/modal';
|
|
48
47
|
const { Modal } = facelessUIImport && 'Modal' in facelessUIImport ? facelessUIImport : {
|
|
49
48
|
Modal: undefined
|
|
50
49
|
};
|
|
51
50
|
export { Modal };
|
|
52
|
-
|
|
51
|
+
import * as reactToastifyImport from 'react-toastify';
|
|
52
|
+
const { toast } = reactToastifyImport && 'toast' in reactToastifyImport ? reactToastifyImport : {
|
|
53
|
+
toast: undefined
|
|
54
|
+
};
|
|
55
|
+
export { toast };
|
|
53
56
|
|
|
54
57
|
//# sourceMappingURL=elements.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/exports/elements.ts"],"sourcesContent":["export { Button } from '../elements/Button/index.js'\nexport { Card } from '../elements/Card/index.js'\nexport { Collapsible } from '../elements/Collapsible/index.js'\nexport { CopyToClipboard } from '../elements/CopyToClipboard/index.js'\nexport { DeleteMany } from '../elements/DeleteMany/index.js'\nexport { DocumentControls } from '../elements/DocumentControls/index.js'\nexport { useDocumentDrawer } from '../elements/DocumentDrawer/index.js'\nexport { DocumentFields } from '../elements/DocumentFields/index.js'\nexport { DocumentHeader } from '../elements/DocumentHeader/index.js'\nexport { Drawer, DrawerToggler, formatDrawerSlug } from '../elements/Drawer/index.js'\nexport { useDrawerSlug } from '../elements/Drawer/useDrawerSlug.js'\nexport { EditMany } from '../elements/EditMany/index.js'\nexport { ErrorPill } from '../elements/ErrorPill/index.js'\nexport { GenerateConfirmation } from '../elements/GenerateConfirmation/index.js'\nexport { Gutter } from '../elements/Gutter/index.js'\nexport { HydrateClientUser } from '../elements/HydrateClientUser/index.js'\nexport { ListControls } from '../elements/ListControls/index.js'\nexport { useListDrawer } from '../elements/ListDrawer/index.js'\nexport { ListSelection } from '../elements/ListSelection/index.js'\nexport { LoadingOverlayToggle } from '../elements/Loading/index.js'\nexport { FormLoadingOverlayToggle } from '../elements/Loading/index.js'\nexport { LoadingOverlay } from '../elements/Loading/index.js'\nexport { Pagination } from '../elements/Pagination/index.js'\nexport { PerPage } from '../elements/PerPage/index.js'\nexport { Pill } from '../elements/Pill/index.js'\nexport * as PopupList from '../elements/Popup/PopupButtonList/index.js'\nexport { Popup } from '../elements/Popup/index.js'\nexport { PublishMany } from '../elements/PublishMany/index.js'\nexport { ReactSelect } from '../elements/ReactSelect/index.js'\nexport type { Option } from '../elements/ReactSelect/types.js'\nexport { RenderCustomComponent } from '../elements/RenderCustomComponent/index.js'\nexport { ShimmerEffect } from '../elements/ShimmerEffect/index.js'\nexport { StaggeredShimmers } from '../elements/ShimmerEffect/index.js'\nexport { SortColumn } from '../elements/SortColumn/index.js'\nexport { SetStepNav } from '../elements/StepNav/SetStepNav.js'\nexport { useStepNav } from '../elements/StepNav/index.js'\nexport type { StepNavItem } from '../elements/StepNav/index.js'\nexport { RelationshipProvider } from '../elements/Table/RelationshipProvider/index.js'\nexport { TableCellProvider, useTableCell } from '../elements/Table/TableCellProvider/index.js'\nexport { Table } from '../elements/Table/index.js'\nexport type { Column } from '../elements/Table/index.js'\nexport { TableColumnsProvider } from '../elements/TableColumns/index.js'\nexport { Thumbnail } from '../elements/Thumbnail/index.js'\nexport { Tooltip } from '../elements/Tooltip/index.js'\n// export { useThumbnail } from '../elements/Upload/index.js'\nexport { Translation } from '../elements/Translation/index.js'\nexport { UnpublishMany } from '../elements/UnpublishMany/index.js'\nexport { Upload } from '../elements/Upload/index.js'\
|
|
1
|
+
{"version":3,"sources":["../../src/exports/elements.ts"],"sourcesContent":["export { Button } from '../elements/Button/index.js'\nexport { Card } from '../elements/Card/index.js'\nexport { Collapsible } from '../elements/Collapsible/index.js'\nexport { CopyToClipboard } from '../elements/CopyToClipboard/index.js'\nexport { DeleteMany } from '../elements/DeleteMany/index.js'\nexport { DocumentControls } from '../elements/DocumentControls/index.js'\nexport { useDocumentDrawer } from '../elements/DocumentDrawer/index.js'\nexport { DocumentFields } from '../elements/DocumentFields/index.js'\nexport { DocumentHeader } from '../elements/DocumentHeader/index.js'\nexport { Drawer, DrawerToggler, formatDrawerSlug } from '../elements/Drawer/index.js'\nexport { useDrawerSlug } from '../elements/Drawer/useDrawerSlug.js'\nexport { EditMany } from '../elements/EditMany/index.js'\nexport { ErrorPill } from '../elements/ErrorPill/index.js'\nexport { GenerateConfirmation } from '../elements/GenerateConfirmation/index.js'\nexport { Gutter } from '../elements/Gutter/index.js'\nexport { HydrateClientUser } from '../elements/HydrateClientUser/index.js'\nexport { ListControls } from '../elements/ListControls/index.js'\nexport { useListDrawer } from '../elements/ListDrawer/index.js'\nexport { ListSelection } from '../elements/ListSelection/index.js'\nexport { LoadingOverlayToggle } from '../elements/Loading/index.js'\nexport { FormLoadingOverlayToggle } from '../elements/Loading/index.js'\nexport { LoadingOverlay } from '../elements/Loading/index.js'\nexport { Pagination } from '../elements/Pagination/index.js'\nexport { PerPage } from '../elements/PerPage/index.js'\nexport { Pill } from '../elements/Pill/index.js'\nexport * as PopupList from '../elements/Popup/PopupButtonList/index.js'\nexport { Popup } from '../elements/Popup/index.js'\nexport { PublishMany } from '../elements/PublishMany/index.js'\nexport { ReactSelect } from '../elements/ReactSelect/index.js'\nexport type { Option } from '../elements/ReactSelect/types.js'\nexport { RenderCustomComponent } from '../elements/RenderCustomComponent/index.js'\nexport { ShimmerEffect } from '../elements/ShimmerEffect/index.js'\nexport { StaggeredShimmers } from '../elements/ShimmerEffect/index.js'\nexport { SortColumn } from '../elements/SortColumn/index.js'\nexport { SetStepNav } from '../elements/StepNav/SetStepNav.js'\nexport { useStepNav } from '../elements/StepNav/index.js'\nexport type { StepNavItem } from '../elements/StepNav/index.js'\nexport { RelationshipProvider } from '../elements/Table/RelationshipProvider/index.js'\nexport { TableCellProvider, useTableCell } from '../elements/Table/TableCellProvider/index.js'\nexport { Table } from '../elements/Table/index.js'\nexport type { Column } from '../elements/Table/index.js'\nexport { TableColumnsProvider } from '../elements/TableColumns/index.js'\nexport { Thumbnail } from '../elements/Thumbnail/index.js'\nexport { Tooltip } from '../elements/Tooltip/index.js'\n// export { useThumbnail } from '../elements/Upload/index.js'\nexport { Translation } from '../elements/Translation/index.js'\nexport { UnpublishMany } from '../elements/UnpublishMany/index.js'\nexport { Upload } from '../elements/Upload/index.js'\nimport * as facelessUIImport from '@faceless-ui/modal'\nconst { Modal } =\n facelessUIImport && 'Modal' in facelessUIImport ? facelessUIImport : { Modal: undefined }\nexport { Modal }\nimport * as reactToastifyImport from 'react-toastify'\nconst { toast } =\n reactToastifyImport && 'toast' in reactToastifyImport ? reactToastifyImport : { toast: undefined }\nexport { toast }\n"],"names":["Button","Card","Collapsible","CopyToClipboard","DeleteMany","DocumentControls","useDocumentDrawer","DocumentFields","DocumentHeader","Drawer","DrawerToggler","formatDrawerSlug","useDrawerSlug","EditMany","ErrorPill","GenerateConfirmation","Gutter","HydrateClientUser","ListControls","useListDrawer","ListSelection","LoadingOverlayToggle","FormLoadingOverlayToggle","LoadingOverlay","Pagination","PerPage","Pill","PopupList","Popup","PublishMany","ReactSelect","RenderCustomComponent","ShimmerEffect","StaggeredShimmers","SortColumn","SetStepNav","useStepNav","RelationshipProvider","TableCellProvider","useTableCell","Table","TableColumnsProvider","Thumbnail","Tooltip","Translation","UnpublishMany","Upload","facelessUIImport","Modal","undefined","reactToastifyImport","toast"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,MAAM,QAAQ,8BAA6B;AACpD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,SAASC,WAAW,QAAQ,mCAAkC;AAC9D,SAASC,eAAe,QAAQ,uCAAsC;AACtE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,iBAAiB,QAAQ,sCAAqC;AACvE,SAASC,cAAc,QAAQ,sCAAqC;AACpE,SAASC,cAAc,QAAQ,sCAAqC;AACpE,SAASC,MAAM,EAAEC,aAAa,EAAEC,gBAAgB,QAAQ,8BAA6B;AACrF,SAASC,aAAa,QAAQ,sCAAqC;AACnE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,SAAS,QAAQ,iCAAgC;AAC1D,SAASC,oBAAoB,QAAQ,4CAA2C;AAChF,SAASC,MAAM,QAAQ,8BAA6B;AACpD,SAASC,iBAAiB,QAAQ,yCAAwC;AAC1E,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,aAAa,QAAQ,kCAAiC;AAC/D,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,oBAAoB,QAAQ,+BAA8B;AACnE,SAASC,wBAAwB,QAAQ,+BAA8B;AACvE,SAASC,cAAc,QAAQ,+BAA8B;AAC7D,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,OAAO,QAAQ,+BAA8B;AACtD,SAASC,IAAI,QAAQ,4BAA2B;AAChD,OAAO,KAAKC,SAAS,MAAM,6CAA4C;AACvE,SAASC,KAAK,QAAQ,6BAA4B;AAClD,SAASC,WAAW,QAAQ,mCAAkC;AAC9D,SAASC,WAAW,QAAQ,mCAAkC;AAE9D,SAASC,qBAAqB,QAAQ,6CAA4C;AAClF,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,iBAAiB,QAAQ,qCAAoC;AACtE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,UAAU,QAAQ,oCAAmC;AAC9D,SAASC,UAAU,QAAQ,+BAA8B;AAEzD,SAASC,oBAAoB,QAAQ,kDAAiD;AACtF,SAASC,iBAAiB,EAAEC,YAAY,QAAQ,+CAA8C;AAC9F,SAASC,KAAK,QAAQ,6BAA4B;AAElD,SAASC,oBAAoB,QAAQ,oCAAmC;AACxE,SAASC,SAAS,QAAQ,iCAAgC;AAC1D,SAASC,OAAO,QAAQ,+BAA8B;AACtD,6DAA6D;AAC7D,SAASC,WAAW,QAAQ,mCAAkC;AAC9D,SAASC,aAAa,QAAQ,qCAAoC;AAClE,SAASC,MAAM,QAAQ,8BAA6B;AACpD,YAAYC,sBAAsB,qBAAoB;AACtD,MAAM,EAAEC,KAAK,EAAE,GACbD,oBAAoB,WAAWA,mBAAmBA,mBAAmB;IAAEC,OAAOC;AAAU;AAC1F,SAASD,KAAK,GAAE;AAChB,YAAYE,yBAAyB,iBAAgB;AACrD,MAAM,EAAEC,KAAK,EAAE,GACbD,uBAAuB,WAAWA,sBAAsBA,sBAAsB;IAAEC,OAAOF;AAAU;AACnG,SAASE,KAAK,GAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/exports/fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/exports/fields.ts"],"sourcesContent":["export { BlocksDrawer } from '../fields/Blocks/BlocksDrawer/index.js'\n"],"names":["BlocksDrawer"],"rangeMappings":"","mappings":"AAAA,SAASA,YAAY,QAAQ,yCAAwC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/exports/providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/exports/providers.ts"],"sourcesContent":["export { SetViewActions } from '../providers/Actions/SetViewActions/index.js'\n"],"names":["SetViewActions"],"rangeMappings":"","mappings":"AAAA,SAASA,cAAc,QAAQ,+CAA8C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArrayRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Array/ArrayRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAChH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AASvF,OAAO,cAAc,CAAA;AAIrB,KAAK,aAAa,GAAG,0BAA0B,GAAG;IAChD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC5B,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACzD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"ArrayRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Array/ArrayRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGpD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAChH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AASvF,OAAO,cAAc,CAAA;AAIrB,KAAK,aAAa,GAAG,0BAA0B,GAAG;IAChD,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC5B,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACzD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA4G5C,CAAA"}
|
|
@@ -8,7 +8,7 @@ import { RenderFields } from '../../forms/RenderFields/index.js';
|
|
|
8
8
|
import { RowLabel } from '../../forms/RowLabel/index.js';
|
|
9
9
|
import { useTranslation } from '../../providers/Translation/index.js';
|
|
10
10
|
const baseClass = 'array-field';
|
|
11
|
-
export const ArrayRow = ({ CustomRowLabel, addRow, attributes, duplicateRow, errorCount, fieldMap, forceRender = false, hasMaxRows, indexPath, labels, listeners, moveRow, path: parentPath, permissions, readOnly, removeRow, row, rowCount, rowIndex, schemaPath, setCollapse, setNodeRef, transform })=>{
|
|
11
|
+
export const ArrayRow = ({ CustomRowLabel, addRow, attributes, duplicateRow, errorCount, fieldMap, forceRender = false, hasMaxRows, indexPath, isSortable, labels, listeners, moveRow, path: parentPath, permissions, readOnly, removeRow, row, rowCount, rowIndex, schemaPath, setCollapse, setNodeRef, transform })=>{
|
|
12
12
|
const path = `${parentPath}.${rowIndex}`;
|
|
13
13
|
const { i18n } = useTranslation();
|
|
14
14
|
const hasSubmitted = useFormSubmitted();
|
|
@@ -31,17 +31,18 @@ export const ArrayRow = ({ CustomRowLabel, addRow, attributes, duplicateRow, err
|
|
|
31
31
|
duplicateRow: duplicateRow,
|
|
32
32
|
hasMaxRows: hasMaxRows,
|
|
33
33
|
index: rowIndex,
|
|
34
|
+
isSortable: isSortable,
|
|
34
35
|
moveRow: moveRow,
|
|
35
36
|
removeRow: removeRow,
|
|
36
37
|
rowCount: rowCount
|
|
37
38
|
}) : undefined,
|
|
38
39
|
className: classNames,
|
|
39
40
|
collapsibleStyle: fieldHasErrors ? 'error' : 'default',
|
|
40
|
-
dragHandleProps: {
|
|
41
|
+
dragHandleProps: isSortable ? {
|
|
41
42
|
id: row.id,
|
|
42
43
|
attributes,
|
|
43
44
|
listeners
|
|
44
|
-
},
|
|
45
|
+
} : undefined,
|
|
45
46
|
header: /*#__PURE__*/ React.createElement("div", {
|
|
46
47
|
className: `${baseClass}__row-header`
|
|
47
48
|
}, /*#__PURE__*/ React.createElement(RowLabel, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Array/ArrayRow.tsx"],"sourcesContent":["import type { FieldPermissions } from 'payload/auth'\nimport type { ArrayField, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { ArrayAction } from '../../elements/ArrayAction/index.js'\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\ntype ArrayRowProps = UseDraggableSortableReturn & {\n CustomRowLabel?: React.ReactNode\n addRow: (rowIndex: number) => void\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n fieldMap: FieldMap\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n labels: ArrayField['labels']\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\n readOnly?: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (rowID: string, collapsed: boolean) => void\n}\n\nexport const ArrayRow: React.FC<ArrayRowProps> = ({\n CustomRowLabel,\n addRow,\n attributes,\n duplicateRow,\n errorCount,\n fieldMap,\n forceRender = false,\n hasMaxRows,\n indexPath,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fallbackLabel = `${getTranslation(labels.singular, i18n)} ${String(rowIndex + 1).padStart(\n 2,\n '0',\n )}`\n\n const fieldHasErrors = errorCount > 0 && hasSubmitted\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div\n id={`${parentPath.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${row.id}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <ArrayAction\n addRow={addRow}\n duplicateRow={duplicateRow}\n hasMaxRows={hasMaxRows}\n index={rowIndex}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n />\n ) : undefined\n }\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={{\n
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Array/ArrayRow.tsx"],"sourcesContent":["import type { FieldPermissions } from 'payload/auth'\nimport type { ArrayField, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { ArrayAction } from '../../elements/ArrayAction/index.js'\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { RowLabel } from '../../forms/RowLabel/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\ntype ArrayRowProps = UseDraggableSortableReturn & {\n CustomRowLabel?: React.ReactNode\n addRow: (rowIndex: number) => void\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n fieldMap: FieldMap\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n isSortable?: boolean\n labels: ArrayField['labels']\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\n readOnly?: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (rowID: string, collapsed: boolean) => void\n}\n\nexport const ArrayRow: React.FC<ArrayRowProps> = ({\n CustomRowLabel,\n addRow,\n attributes,\n duplicateRow,\n errorCount,\n fieldMap,\n forceRender = false,\n hasMaxRows,\n indexPath,\n isSortable,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fallbackLabel = `${getTranslation(labels.singular, i18n)} ${String(rowIndex + 1).padStart(\n 2,\n '0',\n )}`\n\n const fieldHasErrors = errorCount > 0 && hasSubmitted\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div\n id={`${parentPath.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${row.id}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <ArrayAction\n addRow={addRow}\n duplicateRow={duplicateRow}\n hasMaxRows={hasMaxRows}\n index={rowIndex}\n isSortable={isSortable}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n />\n ) : undefined\n }\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={\n isSortable\n ? {\n id: row.id,\n attributes,\n listeners,\n }\n : undefined\n }\n header={\n <div className={`${baseClass}__row-header`}>\n <RowLabel\n RowLabelComponent={CustomRowLabel}\n i18n={i18n}\n path={path}\n rowLabel={fallbackLabel}\n rowNumber={rowIndex + 1}\n />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n }\n isCollapsed={row.collapsed}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={fieldMap}\n forceRender={forceRender}\n indexPath={indexPath}\n margins=\"small\"\n path={path}\n permissions={permissions?.fields}\n readOnly={readOnly}\n schemaPath={schemaPath}\n />\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","ArrayAction","Collapsible","ErrorPill","useFormSubmitted","RenderFields","RowLabel","useTranslation","baseClass","ArrayRow","CustomRowLabel","addRow","attributes","duplicateRow","errorCount","fieldMap","forceRender","hasMaxRows","indexPath","isSortable","labels","listeners","moveRow","path","parentPath","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fallbackLabel","singular","String","padStart","fieldHasErrors","classNames","filter","Boolean","join","div","id","split","key","ref","style","actions","index","undefined","className","collapsibleStyle","dragHandleProps","header","RowLabelComponent","rowLabel","rowNumber","count","withMessage","isCollapsed","collapsed","onToggle","margins","fields"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAGA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,OAAOC,WAAW,QAAO;AAKzB,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,WAAW,QAAQ,sCAAqC;AACjE,SAASC,SAAS,QAAQ,oCAAmC;AAC7D,SAASC,gBAAgB,QAAQ,8BAA6B;AAC9D,SAASC,YAAY,QAAQ,oCAAmC;AAChE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,cAAc,QAAQ,uCAAsC;AAGrE,MAAMC,YAAY;AAyBlB,OAAO,MAAMC,WAAoC,CAAC,EAChDC,cAAc,EACdC,MAAM,EACNC,UAAU,EACVC,YAAY,EACZC,UAAU,EACVC,QAAQ,EACRC,cAAc,KAAK,EACnBC,UAAU,EACVC,SAAS,EACTC,UAAU,EACVC,MAAM,EACNC,SAAS,EACTC,OAAO,EACPC,MAAMC,UAAU,EAChBC,WAAW,EACXC,QAAQ,EACRC,SAAS,EACTC,GAAG,EACHC,QAAQ,EACRC,QAAQ,EACRC,UAAU,EACVC,WAAW,EACXC,UAAU,EACVC,SAAS,EACV;IACC,MAAMX,OAAO,CAAC,EAAEC,WAAW,CAAC,EAAEM,SAAS,CAAC;IACxC,MAAM,EAAEK,IAAI,EAAE,GAAG5B;IACjB,MAAM6B,eAAehC;IAErB,MAAMiC,gBAAgB,CAAC,EAAEtC,eAAeqB,OAAOkB,QAAQ,EAAEH,MAAM,CAAC,EAAEI,OAAOT,WAAW,GAAGU,QAAQ,CAC7F,GACA,KACA,CAAC;IAEH,MAAMC,iBAAiB3B,aAAa,KAAKsB;IAEzC,MAAMM,aAAa;QACjB,CAAC,EAAElC,UAAU,KAAK,CAAC;QACnBiC,iBAAiB,CAAC,EAAEjC,UAAU,iBAAiB,CAAC,GAAG,CAAC,EAAEA,UAAU,gBAAgB,CAAC;KAClF,CACEmC,MAAM,CAACC,SACPC,IAAI,CAAC;IAER,qBACE,oBAACC;QACCC,IAAI,CAAC,EAAEvB,WAAWwB,KAAK,CAAC,KAAKH,IAAI,CAAC,KAAK,KAAK,EAAEf,SAAS,CAAC;QACxDmB,KAAK,CAAC,EAAEzB,WAAW,KAAK,EAAEI,IAAImB,EAAE,CAAC,CAAC;QAClCG,KAAKjB;QACLkB,OAAO;YACLjB;QACF;qBAEA,oBAAChC;QACCkD,SACE,CAAC1B,yBACC,oBAACzB;YACCU,QAAQA;YACRE,cAAcA;YACdI,YAAYA;YACZoC,OAAOvB;YACPX,YAAYA;YACZG,SAASA;YACTK,WAAWA;YACXE,UAAUA;aAEVyB;QAENC,WAAWb;QACXc,kBAAkBf,iBAAiB,UAAU;QAC7CgB,iBACEtC,aACI;YACE4B,IAAInB,IAAImB,EAAE;YACVnC;YACAS;QACF,IACAiC;QAENI,sBACE,oBAACZ;YAAIS,WAAW,CAAC,EAAE/C,UAAU,YAAY,CAAC;yBACxC,oBAACF;YACCqD,mBAAmBjD;YACnByB,MAAMA;YACNZ,MAAMA;YACNqC,UAAUvB;YACVwB,WAAW/B,WAAW;YAEvBW,gCAAkB,oBAACtC;YAAU2D,OAAOhD;YAAYqB,MAAMA;YAAM4B,aAAAA;;QAGjEC,aAAapC,IAAIqC,SAAS;QAC1BC,UAAU,CAACD,YAAcjC,YAAYJ,IAAImB,EAAE,EAAEkB;qBAE7C,oBAAC5D;QACCkD,WAAW,CAAC,EAAE/C,UAAU,QAAQ,CAAC;QACjCO,UAAUA;QACVC,aAAaA;QACbE,WAAWA;QACXiD,SAAQ;QACR5C,MAAMA;QACNE,aAAaA,aAAa2C;QAC1B1C,UAAUA;QACVK,YAAYA;;AAKtB,EAAC"}
|
|
@@ -9,6 +9,7 @@ export type ArrayFieldProps = FormFieldBase & {
|
|
|
9
9
|
CustomRowLabel?: React.ReactNode;
|
|
10
10
|
fieldMap: FieldMap;
|
|
11
11
|
forceRender?: boolean;
|
|
12
|
+
isSortable?: boolean;
|
|
12
13
|
label?: FieldBase['label'];
|
|
13
14
|
labels?: ArrayFieldType['labels'];
|
|
14
15
|
maxRows?: ArrayFieldType['maxRows'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Array/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,eAAe,CAAA;AAQjE,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAiBvD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC5C,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,gBAAgB,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/fields/Array/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,UAAU,IAAI,cAAc,EAAE,MAAM,eAAe,CAAA;AAQjE,OAAO,KAAsB,MAAM,OAAO,CAAA;AAE1C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yDAAyD,CAAA;AACvF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAiBvD,OAAO,cAAc,CAAA;AAIrB,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG;IAC5C,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;IAChC,QAAQ,EAAE,QAAQ,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAA;IAC1B,MAAM,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAA;IACjC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACnC,OAAO,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,gBAAgB,CAAA;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAwRjD,CAAA;AAED,eAAO,MAAM,UAAU,2BAA6B,CAAA"}
|
|
@@ -23,7 +23,7 @@ import { fieldBaseClass } from '../shared/index.js';
|
|
|
23
23
|
import { ArrayRow } from './ArrayRow.js';
|
|
24
24
|
const baseClass = 'array-field';
|
|
25
25
|
export const _ArrayField = (props)=>{
|
|
26
|
-
const { name, CustomDescription, CustomError, CustomLabel, CustomRowLabel, className, descriptionProps, errorProps, fieldMap, forceRender = false, label, labelProps, localized, maxRows, minRows: minRowsProp, path: pathFromProps, permissions, readOnly: readOnlyFromProps, required, validate } = props;
|
|
26
|
+
const { name, CustomDescription, CustomError, CustomLabel, CustomRowLabel, className, descriptionProps, errorProps, fieldMap, forceRender = false, isSortable = true, label, labelProps, localized, maxRows, minRows: minRowsProp, path: pathFromProps, permissions, readOnly: readOnlyFromProps, required, validate } = props;
|
|
27
27
|
const { indexPath, readOnly: readOnlyFromContext } = useFieldProps();
|
|
28
28
|
const readOnly = readOnlyFromProps || readOnlyFromContext;
|
|
29
29
|
const minRows = minRowsProp ?? required ? 1 : 0;
|
|
@@ -222,7 +222,7 @@ export const _ArrayField = (props)=>{
|
|
|
222
222
|
}, rows.map((row, i)=>{
|
|
223
223
|
const rowErrorCount = errorPaths?.filter((errorPath)=>errorPath.startsWith(`${path}.${i}.`)).length;
|
|
224
224
|
return /*#__PURE__*/ React.createElement(DraggableSortableItem, {
|
|
225
|
-
disabled: readOnly,
|
|
225
|
+
disabled: readOnly || !isSortable,
|
|
226
226
|
id: row.id,
|
|
227
227
|
key: row.id
|
|
228
228
|
}, (draggableSortableItemProps)=>/*#__PURE__*/ React.createElement(ArrayRow, {
|
|
@@ -235,6 +235,7 @@ export const _ArrayField = (props)=>{
|
|
|
235
235
|
forceRender: forceRender,
|
|
236
236
|
hasMaxRows: hasMaxRows,
|
|
237
237
|
indexPath: indexPath,
|
|
238
|
+
isSortable: isSortable,
|
|
238
239
|
labels: labels,
|
|
239
240
|
moveRow: moveRow,
|
|
240
241
|
path: path,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Array/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { FieldBase } from 'payload/types'\nimport type { ArrayField as ArrayFieldType } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'\nimport { withCondition } from '@payloadcms/ui/forms/withCondition'\nimport React, { useCallback } from 'react'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { ArrayRow } from './ArrayRow.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\nexport type ArrayFieldProps = FormFieldBase & {\n CustomRowLabel?: React.ReactNode\n fieldMap: FieldMap\n forceRender?: boolean\n label?: FieldBase['label']\n labels?: ArrayFieldType['labels']\n maxRows?: ArrayFieldType['maxRows']\n minRows?: ArrayFieldType['minRows']\n name?: string\n permissions: FieldPermissions\n width?: string\n}\n\nexport const _ArrayField: React.FC<ArrayFieldProps> = (props) => {\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n CustomRowLabel,\n className,\n descriptionProps,\n errorProps,\n fieldMap,\n forceRender = false,\n label,\n labelProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n path: pathFromProps,\n permissions,\n readOnly: readOnlyFromProps,\n required,\n validate,\n } = props\n\n const { indexPath, readOnly: readOnlyFromContext } = useFieldProps()\n const readOnly = readOnlyFromProps || readOnlyFromContext\n const minRows = minRowsProp ?? required ? 1 : 0\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const submitted = useFormSubmitted()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { localization } = useConfig()\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale || 'en'\n return locale === defaultLocale\n }\n\n return true\n })()\n\n // Handle labeling for Arrays, Global Arrays, and Blocks\n const getLabels = (p: ArrayFieldProps) => {\n if ('labels' in p && p?.labels) return p.labels\n if ('label' in p && p?.label) return { plural: undefined, singular: p.label }\n return { plural: t('general:rows'), singular: t('general:row') }\n }\n\n const labels = getLabels(props)\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const { path: pathFromContext } = useFieldProps()\n\n const {\n errorPaths,\n path,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n async (rowIndex: number) => {\n await addFieldRow({ path, rowIndex, schemaPath })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n dispatchFields({ type: 'MOVE_ROW', moveFromIndex, moveToIndex, path })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && errorPaths.length > 0\n\n const showRequired = readOnly && rows.length === 0\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n >\n {showError && (\n <div className={`${baseClass}__error-wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n </div>\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <FieldLabel\n CustomLabel={CustomLabel}\n as=\"span\"\n label={label}\n required={required}\n unstyled\n {...(labelProps || {})}\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n {rows.length > 0 && (\n <ul className={`${baseClass}__header-actions`}>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </ul>\n )}\n </div>\n <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((row, i) => {\n const rowErrorCount = errorPaths?.filter((errorPath) =>\n errorPath.startsWith(`${path}.${i}.`),\n ).length\n return (\n <DraggableSortableItem disabled={readOnly} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <ArrayRow\n {...draggableSortableItemProps}\n CustomRowLabel={CustomRowLabel}\n addRow={addRow}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fieldMap={fieldMap}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n })}\n {!valid && (\n <React.Fragment>\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n {showMinRows && (\n <Banner type=\"error\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label:\n getTranslation(minRows > 1 ? labels.plural : labels.singular, i18n) ||\n t(minRows > 1 ? 'general:row' : 'general:rows'),\n })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!readOnly && !hasMaxRows && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-row`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => addRow(value || 0)}\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n )}\n </div>\n )\n}\n\nexport const ArrayField = withCondition(_ArrayField)\n"],"names":["getTranslation","FieldDescription","FieldError","FieldLabel","useFieldProps","withCondition","React","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","ErrorPill","useForm","useFormSubmitted","NullifyLocaleField","useField","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","ArrayRow","baseClass","_ArrayField","props","name","CustomDescription","CustomError","CustomLabel","CustomRowLabel","className","descriptionProps","errorProps","fieldMap","forceRender","label","labelProps","localized","maxRows","minRows","minRowsProp","path","pathFromProps","permissions","readOnly","readOnlyFromProps","required","validate","indexPath","readOnlyFromContext","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","submitted","code","locale","i18n","t","localization","editingDefaultLocale","fallback","defaultLocale","getLabels","p","labels","plural","undefined","singular","memoizedValidate","value","options","pathFromContext","errorPaths","rows","schemaPath","showError","valid","hasRows","addRow","rowIndex","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showRequired","showMinRows","div","filter","Boolean","join","id","replace","header","h3","as","unstyled","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","row","onDragEnd","i","rowErrorCount","errorPath","startsWith","disabled","key","draggableSortableItemProps","errorCount","rowCount","Fragment","buttonStyle","icon","iconPosition","iconStyle","ArrayField"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Array/index.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { FieldBase } from 'payload/types'\nimport type { ArrayField as ArrayFieldType } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'\nimport { withCondition } from '@payloadcms/ui/forms/withCondition'\nimport React, { useCallback } from 'react'\n\nimport type { FieldMap } from '../../providers/ComponentMap/buildComponentMap/types.js'\nimport type { FormFieldBase } from '../shared/index.js'\n\nimport { Banner } from '../../elements/Banner/index.js'\nimport { Button } from '../../elements/Button/index.js'\nimport { DraggableSortableItem } from '../../elements/DraggableSortable/DraggableSortableItem/index.js'\nimport { DraggableSortable } from '../../elements/DraggableSortable/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { useForm, useFormSubmitted } from '../../forms/Form/context.js'\nimport { NullifyLocaleField } from '../../forms/NullifyField/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { useLocale } from '../../providers/Locale/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { scrollToID } from '../../utilities/scrollToID.js'\nimport { fieldBaseClass } from '../shared/index.js'\nimport { ArrayRow } from './ArrayRow.js'\nimport './index.scss'\n\nconst baseClass = 'array-field'\n\nexport type ArrayFieldProps = FormFieldBase & {\n CustomRowLabel?: React.ReactNode\n fieldMap: FieldMap\n forceRender?: boolean\n isSortable?: boolean\n label?: FieldBase['label']\n labels?: ArrayFieldType['labels']\n maxRows?: ArrayFieldType['maxRows']\n minRows?: ArrayFieldType['minRows']\n name?: string\n permissions: FieldPermissions\n width?: string\n}\n\nexport const _ArrayField: React.FC<ArrayFieldProps> = (props) => {\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n CustomRowLabel,\n className,\n descriptionProps,\n errorProps,\n fieldMap,\n forceRender = false,\n isSortable = true,\n label,\n labelProps,\n localized,\n maxRows,\n minRows: minRowsProp,\n path: pathFromProps,\n permissions,\n readOnly: readOnlyFromProps,\n required,\n validate,\n } = props\n\n const { indexPath, readOnly: readOnlyFromContext } = useFieldProps()\n const readOnly = readOnlyFromProps || readOnlyFromContext\n const minRows = minRowsProp ?? required ? 1 : 0\n\n const { setDocFieldPreferences } = useDocumentInfo()\n const { addFieldRow, dispatchFields, setModified } = useForm()\n const submitted = useFormSubmitted()\n const { code: locale } = useLocale()\n const { i18n, t } = useTranslation()\n const { localization } = useConfig()\n\n const editingDefaultLocale = (() => {\n if (localization && localization.fallback) {\n const defaultLocale = localization.defaultLocale || 'en'\n return locale === defaultLocale\n }\n\n return true\n })()\n\n // Handle labeling for Arrays, Global Arrays, and Blocks\n const getLabels = (p: ArrayFieldProps) => {\n if ('labels' in p && p?.labels) return p.labels\n if ('label' in p && p?.label) return { plural: undefined, singular: p.label }\n return { plural: t('general:rows'), singular: t('general:row') }\n }\n\n const labels = getLabels(props)\n\n const memoizedValidate = useCallback(\n (value, options) => {\n // alternative locales can be null\n if (!editingDefaultLocale && value === null) {\n return true\n }\n if (typeof validate === 'function') {\n return validate(value, { ...options, maxRows, minRows, required })\n }\n },\n [maxRows, minRows, required, validate, editingDefaultLocale],\n )\n\n const { path: pathFromContext } = useFieldProps()\n\n const {\n errorPaths,\n path,\n rows = [],\n schemaPath,\n showError,\n valid,\n value,\n } = useField<number>({\n hasRows: true,\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const addRow = useCallback(\n async (rowIndex: number) => {\n await addFieldRow({ path, rowIndex, schemaPath })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex + 1}`)\n }, 0)\n },\n [addFieldRow, path, setModified, schemaPath],\n )\n\n const duplicateRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'DUPLICATE_ROW', path, rowIndex })\n setModified(true)\n\n setTimeout(() => {\n scrollToID(`${path}-row-${rowIndex}`)\n }, 0)\n },\n [dispatchFields, path, setModified],\n )\n\n const removeRow = useCallback(\n (rowIndex: number) => {\n dispatchFields({ type: 'REMOVE_ROW', path, rowIndex })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const moveRow = useCallback(\n (moveFromIndex: number, moveToIndex: number) => {\n dispatchFields({ type: 'MOVE_ROW', moveFromIndex, moveToIndex, path })\n setModified(true)\n },\n [dispatchFields, path, setModified],\n )\n\n const toggleCollapseAll = useCallback(\n (collapsed: boolean) => {\n dispatchFields({ type: 'SET_ALL_ROWS_COLLAPSED', collapsed, path, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const setCollapse = useCallback(\n (rowID: string, collapsed: boolean) => {\n dispatchFields({ type: 'SET_ROW_COLLAPSED', collapsed, path, rowID, setDocFieldPreferences })\n },\n [dispatchFields, path, setDocFieldPreferences],\n )\n\n const hasMaxRows = maxRows && rows.length >= maxRows\n\n const fieldErrorCount = errorPaths.length\n const fieldHasErrors = submitted && errorPaths.length > 0\n\n const showRequired = readOnly && rows.length === 0\n const showMinRows = rows.length < minRows || (required && rows.length === 0)\n\n return (\n <div\n className={[\n fieldBaseClass,\n baseClass,\n className,\n fieldHasErrors ? `${baseClass}--has-error` : `${baseClass}--has-no-error`,\n ]\n .filter(Boolean)\n .join(' ')}\n id={`field-${path.replace(/\\./g, '__')}`}\n >\n {showError && (\n <div className={`${baseClass}__error-wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n </div>\n )}\n <header className={`${baseClass}__header`}>\n <div className={`${baseClass}__header-wrap`}>\n <div className={`${baseClass}__header-content`}>\n <h3 className={`${baseClass}__title`}>\n <FieldLabel\n CustomLabel={CustomLabel}\n as=\"span\"\n label={label}\n required={required}\n unstyled\n {...(labelProps || {})}\n />\n </h3>\n {fieldHasErrors && fieldErrorCount > 0 && (\n <ErrorPill count={fieldErrorCount} i18n={i18n} withMessage />\n )}\n </div>\n {rows.length > 0 && (\n <ul className={`${baseClass}__header-actions`}>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(true)}\n type=\"button\"\n >\n {t('fields:collapseAll')}\n </button>\n </li>\n <li>\n <button\n className={`${baseClass}__header-action`}\n onClick={() => toggleCollapseAll(false)}\n type=\"button\"\n >\n {t('fields:showAll')}\n </button>\n </li>\n </ul>\n )}\n </div>\n <FieldDescription CustomDescription={CustomDescription} {...(descriptionProps || {})} />\n </header>\n <NullifyLocaleField fieldValue={value} localized={localized} path={path} />\n {(rows.length > 0 || (!valid && (showRequired || showMinRows))) && (\n <DraggableSortable\n className={`${baseClass}__draggable-rows`}\n ids={rows.map((row) => row.id)}\n onDragEnd={({ moveFromIndex, moveToIndex }) => moveRow(moveFromIndex, moveToIndex)}\n >\n {rows.map((row, i) => {\n const rowErrorCount = errorPaths?.filter((errorPath) =>\n errorPath.startsWith(`${path}.${i}.`),\n ).length\n return (\n <DraggableSortableItem disabled={readOnly || !isSortable} id={row.id} key={row.id}>\n {(draggableSortableItemProps) => (\n <ArrayRow\n {...draggableSortableItemProps}\n CustomRowLabel={CustomRowLabel}\n addRow={addRow}\n duplicateRow={duplicateRow}\n errorCount={rowErrorCount}\n fieldMap={fieldMap}\n forceRender={forceRender}\n hasMaxRows={hasMaxRows}\n indexPath={indexPath}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n path={path}\n permissions={permissions}\n readOnly={readOnly}\n removeRow={removeRow}\n row={row}\n rowCount={rows.length}\n rowIndex={i}\n schemaPath={schemaPath}\n setCollapse={setCollapse}\n />\n )}\n </DraggableSortableItem>\n )\n })}\n {!valid && (\n <React.Fragment>\n {showRequired && (\n <Banner>\n {t('validation:fieldHasNo', { label: getTranslation(labels.plural, i18n) })}\n </Banner>\n )}\n {showMinRows && (\n <Banner type=\"error\">\n {t('validation:requiresAtLeast', {\n count: minRows,\n label:\n getTranslation(minRows > 1 ? labels.plural : labels.singular, i18n) ||\n t(minRows > 1 ? 'general:row' : 'general:rows'),\n })}\n </Banner>\n )}\n </React.Fragment>\n )}\n </DraggableSortable>\n )}\n {!readOnly && !hasMaxRows && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__add-row`}\n icon=\"plus\"\n iconPosition=\"left\"\n iconStyle=\"with-border\"\n onClick={() => addRow(value || 0)}\n >\n {t('fields:addLabel', { label: getTranslation(labels.singular, i18n) })}\n </Button>\n )}\n </div>\n )\n}\n\nexport const ArrayField = withCondition(_ArrayField)\n"],"names":["getTranslation","FieldDescription","FieldError","FieldLabel","useFieldProps","withCondition","React","useCallback","Banner","Button","DraggableSortableItem","DraggableSortable","ErrorPill","useForm","useFormSubmitted","NullifyLocaleField","useField","useConfig","useDocumentInfo","useLocale","useTranslation","scrollToID","fieldBaseClass","ArrayRow","baseClass","_ArrayField","props","name","CustomDescription","CustomError","CustomLabel","CustomRowLabel","className","descriptionProps","errorProps","fieldMap","forceRender","isSortable","label","labelProps","localized","maxRows","minRows","minRowsProp","path","pathFromProps","permissions","readOnly","readOnlyFromProps","required","validate","indexPath","readOnlyFromContext","setDocFieldPreferences","addFieldRow","dispatchFields","setModified","submitted","code","locale","i18n","t","localization","editingDefaultLocale","fallback","defaultLocale","getLabels","p","labels","plural","undefined","singular","memoizedValidate","value","options","pathFromContext","errorPaths","rows","schemaPath","showError","valid","hasRows","addRow","rowIndex","setTimeout","duplicateRow","type","removeRow","moveRow","moveFromIndex","moveToIndex","toggleCollapseAll","collapsed","setCollapse","rowID","hasMaxRows","length","fieldErrorCount","fieldHasErrors","showRequired","showMinRows","div","filter","Boolean","join","id","replace","header","h3","as","unstyled","count","withMessage","ul","li","button","onClick","fieldValue","ids","map","row","onDragEnd","i","rowErrorCount","errorPath","startsWith","disabled","key","draggableSortableItemProps","errorCount","rowCount","Fragment","buttonStyle","icon","iconPosition","iconStyle","ArrayField"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA;AAKA,SAASA,cAAc,QAAQ,2BAA0B;AACzD,SAASC,gBAAgB,QAAQ,wCAAuC;AACxE,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,UAAU,QAAQ,kCAAiC;AAC5D,SAASC,aAAa,QAAQ,0CAAyC;AACvE,SAASC,aAAa,QAAQ,qCAAoC;AAClE,OAAOC,SAASC,WAAW,QAAQ,QAAO;AAK1C,SAASC,MAAM,QAAQ,iCAAgC;AACvD,SAASC,MAAM,QAAQ,iCAAgC;AACvD,SAASC,qBAAqB,QAAQ,kEAAiE;AACvG,SAASC,iBAAiB,QAAQ,4CAA2C;AAC7E,SAASC,SAAS,QAAQ,oCAAmC;AAC7D,SAASC,OAAO,EAAEC,gBAAgB,QAAQ,8BAA6B;AACvE,SAASC,kBAAkB,QAAQ,oCAAmC;AACtE,SAASC,QAAQ,QAAQ,gCAA+B;AACxD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,UAAU,QAAQ,gCAA+B;AAC1D,SAASC,cAAc,QAAQ,qBAAoB;AACnD,SAASC,QAAQ,QAAQ,gBAAe;AAGxC,MAAMC,YAAY;AAgBlB,OAAO,MAAMC,cAAyC,CAACC;IACrD,MAAM,EACJC,IAAI,EACJC,iBAAiB,EACjBC,WAAW,EACXC,WAAW,EACXC,cAAc,EACdC,SAAS,EACTC,gBAAgB,EAChBC,UAAU,EACVC,QAAQ,EACRC,cAAc,KAAK,EACnBC,aAAa,IAAI,EACjBC,KAAK,EACLC,UAAU,EACVC,SAAS,EACTC,OAAO,EACPC,SAASC,WAAW,EACpBC,MAAMC,aAAa,EACnBC,WAAW,EACXC,UAAUC,iBAAiB,EAC3BC,QAAQ,EACRC,QAAQ,EACT,GAAGxB;IAEJ,MAAM,EAAEyB,SAAS,EAAEJ,UAAUK,mBAAmB,EAAE,GAAGhD;IACrD,MAAM2C,WAAWC,qBAAqBI;IACtC,MAAMV,UAAUC,eAAeM,WAAW,IAAI;IAE9C,MAAM,EAAEI,sBAAsB,EAAE,GAAGnC;IACnC,MAAM,EAAEoC,WAAW,EAAEC,cAAc,EAAEC,WAAW,EAAE,GAAG3C;IACrD,MAAM4C,YAAY3C;IAClB,MAAM,EAAE4C,MAAMC,MAAM,EAAE,GAAGxC;IACzB,MAAM,EAAEyC,IAAI,EAAEC,CAAC,EAAE,GAAGzC;IACpB,MAAM,EAAE0C,YAAY,EAAE,GAAG7C;IAEzB,MAAM8C,uBAAuB,AAAC,CAAA;QAC5B,IAAID,gBAAgBA,aAAaE,QAAQ,EAAE;YACzC,MAAMC,gBAAgBH,aAAaG,aAAa,IAAI;YACpD,OAAON,WAAWM;QACpB;QAEA,OAAO;IACT,CAAA;IAEA,wDAAwD;IACxD,MAAMC,YAAY,CAACC;QACjB,IAAI,YAAYA,KAAKA,GAAGC,QAAQ,OAAOD,EAAEC,MAAM;QAC/C,IAAI,WAAWD,KAAKA,GAAG7B,OAAO,OAAO;YAAE+B,QAAQC;YAAWC,UAAUJ,EAAE7B,KAAK;QAAC;QAC5E,OAAO;YAAE+B,QAAQR,EAAE;YAAiBU,UAAUV,EAAE;QAAe;IACjE;IAEA,MAAMO,SAASF,UAAUxC;IAEzB,MAAM8C,mBAAmBjE,YACvB,CAACkE,OAAOC;QACN,kCAAkC;QAClC,IAAI,CAACX,wBAAwBU,UAAU,MAAM;YAC3C,OAAO;QACT;QACA,IAAI,OAAOvB,aAAa,YAAY;YAClC,OAAOA,SAASuB,OAAO;gBAAE,GAAGC,OAAO;gBAAEjC;gBAASC;gBAASO;YAAS;QAClE;IACF,GACA;QAACR;QAASC;QAASO;QAAUC;QAAUa;KAAqB;IAG9D,MAAM,EAAEnB,MAAM+B,eAAe,EAAE,GAAGvE;IAElC,MAAM,EACJwE,UAAU,EACVhC,IAAI,EACJiC,OAAO,EAAE,EACTC,UAAU,EACVC,SAAS,EACTC,KAAK,EACLP,KAAK,EACN,GAAGzD,SAAiB;QACnBiE,SAAS;QACTrC,MAAM+B,mBAAmB9B,iBAAiBlB;QAC1CuB,UAAUsB;IACZ;IAEA,MAAMU,SAAS3E,YACb,OAAO4E;QACL,MAAM7B,YAAY;YAAEV;YAAMuC;YAAUL;QAAW;QAC/CtB,YAAY;QAEZ4B,WAAW;YACT/D,WAAW,CAAC,EAAEuB,KAAK,KAAK,EAAEuC,WAAW,EAAE,CAAC;QAC1C,GAAG;IACL,GACA;QAAC7B;QAAaV;QAAMY;QAAasB;KAAW;IAG9C,MAAMO,eAAe9E,YACnB,CAAC4E;QACC5B,eAAe;YAAE+B,MAAM;YAAiB1C;YAAMuC;QAAS;QACvD3B,YAAY;QAEZ4B,WAAW;YACT/D,WAAW,CAAC,EAAEuB,KAAK,KAAK,EAAEuC,SAAS,CAAC;QACtC,GAAG;IACL,GACA;QAAC5B;QAAgBX;QAAMY;KAAY;IAGrC,MAAM+B,YAAYhF,YAChB,CAAC4E;QACC5B,eAAe;YAAE+B,MAAM;YAAc1C;YAAMuC;QAAS;QACpD3B,YAAY;IACd,GACA;QAACD;QAAgBX;QAAMY;KAAY;IAGrC,MAAMgC,UAAUjF,YACd,CAACkF,eAAuBC;QACtBnC,eAAe;YAAE+B,MAAM;YAAYG;YAAeC;YAAa9C;QAAK;QACpEY,YAAY;IACd,GACA;QAACD;QAAgBX;QAAMY;KAAY;IAGrC,MAAMmC,oBAAoBpF,YACxB,CAACqF;QACCrC,eAAe;YAAE+B,MAAM;YAA0BM;YAAWhD;YAAMS;QAAuB;IAC3F,GACA;QAACE;QAAgBX;QAAMS;KAAuB;IAGhD,MAAMwC,cAActF,YAClB,CAACuF,OAAeF;QACdrC,eAAe;YAAE+B,MAAM;YAAqBM;YAAWhD;YAAMkD;YAAOzC;QAAuB;IAC7F,GACA;QAACE;QAAgBX;QAAMS;KAAuB;IAGhD,MAAM0C,aAAatD,WAAWoC,KAAKmB,MAAM,IAAIvD;IAE7C,MAAMwD,kBAAkBrB,WAAWoB,MAAM;IACzC,MAAME,iBAAiBzC,aAAamB,WAAWoB,MAAM,GAAG;IAExD,MAAMG,eAAepD,YAAY8B,KAAKmB,MAAM,KAAK;IACjD,MAAMI,cAAcvB,KAAKmB,MAAM,GAAGtD,WAAYO,YAAY4B,KAAKmB,MAAM,KAAK;IAE1E,qBACE,oBAACK;QACCrE,WAAW;YACTV;YACAE;YACAQ;YACAkE,iBAAiB,CAAC,EAAE1E,UAAU,WAAW,CAAC,GAAG,CAAC,EAAEA,UAAU,cAAc,CAAC;SAC1E,CACE8E,MAAM,CAACC,SACPC,IAAI,CAAC;QACRC,IAAI,CAAC,MAAM,EAAE7D,KAAK8D,OAAO,CAAC,OAAO,MAAM,CAAC;OAEvC3B,2BACC,oBAACsB;QAAIrE,WAAW,CAAC,EAAER,UAAU,YAAY,CAAC;qBACxC,oBAACtB;QAAW2B,aAAaA;QAAae,MAAMA;QAAO,GAAIV,cAAc,CAAC,CAAC;uBAG3E,oBAACyE;QAAO3E,WAAW,CAAC,EAAER,UAAU,QAAQ,CAAC;qBACvC,oBAAC6E;QAAIrE,WAAW,CAAC,EAAER,UAAU,aAAa,CAAC;qBACzC,oBAAC6E;QAAIrE,WAAW,CAAC,EAAER,UAAU,gBAAgB,CAAC;qBAC5C,oBAACoF;QAAG5E,WAAW,CAAC,EAAER,UAAU,OAAO,CAAC;qBAClC,oBAACrB;QACC2B,aAAaA;QACb+E,IAAG;QACHvE,OAAOA;QACPW,UAAUA;QACV6D,UAAAA;QACC,GAAIvE,cAAc,CAAC,CAAC;SAGxB2D,kBAAkBD,kBAAkB,mBACnC,oBAACrF;QAAUmG,OAAOd;QAAiBrC,MAAMA;QAAMoD,aAAAA;SAGlDnC,KAAKmB,MAAM,GAAG,mBACb,oBAACiB;QAAGjF,WAAW,CAAC,EAAER,UAAU,gBAAgB,CAAC;qBAC3C,oBAAC0F,0BACC,oBAACC;QACCnF,WAAW,CAAC,EAAER,UAAU,eAAe,CAAC;QACxC4F,SAAS,IAAMzB,kBAAkB;QACjCL,MAAK;OAEJzB,EAAE,uCAGP,oBAACqD,0BACC,oBAACC;QACCnF,WAAW,CAAC,EAAER,UAAU,eAAe,CAAC;QACxC4F,SAAS,IAAMzB,kBAAkB;QACjCL,MAAK;OAEJzB,EAAE,qCAMb,oBAAC5D;QAAiB2B,mBAAmBA;QAAoB,GAAIK,oBAAoB,CAAC,CAAC;uBAErF,oBAAClB;QAAmBsG,YAAY5C;QAAOjC,WAAWA;QAAWI,MAAMA;QAClE,AAACiC,CAAAA,KAAKmB,MAAM,GAAG,KAAM,CAAChB,SAAUmB,CAAAA,gBAAgBC,WAAU,CAAE,mBAC3D,oBAACzF;QACCqB,WAAW,CAAC,EAAER,UAAU,gBAAgB,CAAC;QACzC8F,KAAKzC,KAAK0C,GAAG,CAAC,CAACC,MAAQA,IAAIf,EAAE;QAC7BgB,WAAW,CAAC,EAAEhC,aAAa,EAAEC,WAAW,EAAE,GAAKF,QAAQC,eAAeC;OAErEb,KAAK0C,GAAG,CAAC,CAACC,KAAKE;QACd,MAAMC,gBAAgB/C,YAAY0B,OAAO,CAACsB,YACxCA,UAAUC,UAAU,CAAC,CAAC,EAAEjF,KAAK,CAAC,EAAE8E,EAAE,CAAC,CAAC,GACpC1B;QACF,qBACE,oBAACtF;YAAsBoH,UAAU/E,YAAY,CAACV;YAAYoE,IAAIe,IAAIf,EAAE;YAAEsB,KAAKP,IAAIf,EAAE;WAC9E,CAACuB,2CACA,oBAACzG;gBACE,GAAGyG,0BAA0B;gBAC9BjG,gBAAgBA;gBAChBmD,QAAQA;gBACRG,cAAcA;gBACd4C,YAAYN;gBACZxF,UAAUA;gBACVC,aAAaA;gBACb2D,YAAYA;gBACZ5C,WAAWA;gBACXd,YAAYA;gBACZ+B,QAAQA;gBACRoB,SAASA;gBACT5C,MAAMA;gBACNE,aAAaA;gBACbC,UAAUA;gBACVwC,WAAWA;gBACXiC,KAAKA;gBACLU,UAAUrD,KAAKmB,MAAM;gBACrBb,UAAUuC;gBACV5C,YAAYA;gBACZe,aAAaA;;IAKvB,IACC,CAACb,uBACA,oBAAC1E,MAAM6H,QAAQ,QACZhC,8BACC,oBAAC3F,cACEqD,EAAE,yBAAyB;QAAEvB,OAAOtC,eAAeoE,OAAOC,MAAM,EAAET;IAAM,KAG5EwC,6BACC,oBAAC5F;QAAO8E,MAAK;OACVzB,EAAE,8BAA8B;QAC/BkD,OAAOrE;QACPJ,OACEtC,eAAe0C,UAAU,IAAI0B,OAAOC,MAAM,GAAGD,OAAOG,QAAQ,EAAEX,SAC9DC,EAAEnB,UAAU,IAAI,gBAAgB;IACpC,OAOX,CAACK,YAAY,CAACgD,4BACb,oBAACtF;QACC2H,aAAY;QACZpG,WAAW,CAAC,EAAER,UAAU,SAAS,CAAC;QAClC6G,MAAK;QACLC,cAAa;QACbC,WAAU;QACVnB,SAAS,IAAMlC,OAAOT,SAAS;OAE9BZ,EAAE,mBAAmB;QAAEvB,OAAOtC,eAAeoE,OAAOG,QAAQ,EAAEX;IAAM;AAK/E,EAAC;AAED,OAAO,MAAM4E,aAAanI,cAAcoB,aAAY"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/BlockRow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAChH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAA;AAa3F,KAAK,eAAe,GAAG,0BAA0B,GAAG;IAClD,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACtD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"BlockRow.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/BlockRow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AACpD,OAAO,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAGhD,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,gEAAgE,CAAA;AAChH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yDAAyD,CAAA;AAa3F,KAAK,eAAe,GAAG,0BAA0B,GAAG;IAClD,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,gBAAgB,CAAA;IAC7B,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,GAAG,EAAE,GAAG,CAAA;IACR,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,KAAK,IAAI,CAAA;CACtD,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA6G9C,CAAA"}
|
|
@@ -10,7 +10,7 @@ import { useTranslation } from '../../providers/Translation/index.js';
|
|
|
10
10
|
import { RowActions } from './RowActions.js';
|
|
11
11
|
import { SectionTitle } from './SectionTitle/index.js';
|
|
12
12
|
const baseClass = 'blocks-field';
|
|
13
|
-
export const BlockRow = ({ addRow, attributes, block, blocks, duplicateRow, errorCount, forceRender, hasMaxRows, labels, listeners, moveRow, path: parentPath, permissions, readOnly, removeRow, row, rowCount, rowIndex, schemaPath, setCollapse, setNodeRef, transform })=>{
|
|
13
|
+
export const BlockRow = ({ addRow, attributes, block, blocks, duplicateRow, errorCount, forceRender, hasMaxRows, isSortable, labels, listeners, moveRow, path: parentPath, permissions, readOnly, removeRow, row, rowCount, rowIndex, schemaPath, setCollapse, setNodeRef, transform })=>{
|
|
14
14
|
const path = `${parentPath}.${rowIndex}`;
|
|
15
15
|
const { i18n } = useTranslation();
|
|
16
16
|
const hasSubmitted = useFormSubmitted();
|
|
@@ -34,6 +34,7 @@ export const BlockRow = ({ addRow, attributes, block, blocks, duplicateRow, erro
|
|
|
34
34
|
duplicateRow: duplicateRow,
|
|
35
35
|
fieldMap: block.fieldMap,
|
|
36
36
|
hasMaxRows: hasMaxRows,
|
|
37
|
+
isSortable: isSortable,
|
|
37
38
|
labels: labels,
|
|
38
39
|
moveRow: moveRow,
|
|
39
40
|
removeRow: removeRow,
|
|
@@ -42,11 +43,11 @@ export const BlockRow = ({ addRow, attributes, block, blocks, duplicateRow, erro
|
|
|
42
43
|
}) : undefined,
|
|
43
44
|
className: classNames,
|
|
44
45
|
collapsibleStyle: fieldHasErrors ? 'error' : 'default',
|
|
45
|
-
dragHandleProps: {
|
|
46
|
+
dragHandleProps: isSortable ? {
|
|
46
47
|
id: row.id,
|
|
47
48
|
attributes,
|
|
48
49
|
listeners
|
|
49
|
-
},
|
|
50
|
+
} : undefined,
|
|
50
51
|
header: /*#__PURE__*/ React.createElement("div", {
|
|
51
52
|
className: `${baseClass}__block-header`
|
|
52
53
|
}, /*#__PURE__*/ React.createElement("span", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/fields/Blocks/BlockRow.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { Labels, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { ReducedBlock } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { RowActions } from './RowActions.js'\nimport { SectionTitle } from './SectionTitle/index.js'\n\nconst baseClass = 'blocks-field'\n\ntype BlockFieldProps = UseDraggableSortableReturn & {\n addRow: (rowIndex: number, blockType: string) => void\n block: ReducedBlock\n blocks: ReducedBlock[]\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\n readOnly: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (id: string, collapsed: boolean) => void\n}\n\nexport const BlockRow: React.FC<BlockFieldProps> = ({\n addRow,\n attributes,\n block,\n blocks,\n duplicateRow,\n errorCount,\n forceRender,\n hasMaxRows,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div\n id={`${parentPath.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${rowIndex}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <RowActions\n addRow={addRow}\n blockType={row.blockType}\n blocks={blocks}\n duplicateRow={duplicateRow}\n fieldMap={block.fieldMap}\n hasMaxRows={hasMaxRows}\n labels={labels}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n rowIndex={rowIndex}\n />\n ) : undefined\n }\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={{\n
|
|
1
|
+
{"version":3,"sources":["../../../src/fields/Blocks/BlockRow.tsx"],"sourcesContent":["'use client'\nimport type { FieldPermissions } from 'payload/auth'\nimport type { Labels, Row } from 'payload/types'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React from 'react'\n\nimport type { UseDraggableSortableReturn } from '../../elements/DraggableSortable/useDraggableSortable/types.js'\nimport type { ReducedBlock } from '../../providers/ComponentMap/buildComponentMap/types.js'\n\nimport { Collapsible } from '../../elements/Collapsible/index.js'\nimport { ErrorPill } from '../../elements/ErrorPill/index.js'\nimport { Pill } from '../../elements/Pill/index.js'\nimport { useFormSubmitted } from '../../forms/Form/context.js'\nimport { RenderFields } from '../../forms/RenderFields/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { RowActions } from './RowActions.js'\nimport { SectionTitle } from './SectionTitle/index.js'\n\nconst baseClass = 'blocks-field'\n\ntype BlockFieldProps = UseDraggableSortableReturn & {\n addRow: (rowIndex: number, blockType: string) => void\n block: ReducedBlock\n blocks: ReducedBlock[]\n duplicateRow: (rowIndex: number) => void\n errorCount: number\n forceRender?: boolean\n hasMaxRows?: boolean\n indexPath: string\n isSortable?: boolean\n labels: Labels\n moveRow: (fromIndex: number, toIndex: number) => void\n path: string\n permissions: FieldPermissions\n readOnly: boolean\n removeRow: (rowIndex: number) => void\n row: Row\n rowCount: number\n rowIndex: number\n schemaPath: string\n setCollapse: (id: string, collapsed: boolean) => void\n}\n\nexport const BlockRow: React.FC<BlockFieldProps> = ({\n addRow,\n attributes,\n block,\n blocks,\n duplicateRow,\n errorCount,\n forceRender,\n hasMaxRows,\n isSortable,\n labels,\n listeners,\n moveRow,\n path: parentPath,\n permissions,\n readOnly,\n removeRow,\n row,\n rowCount,\n rowIndex,\n schemaPath,\n setCollapse,\n setNodeRef,\n transform,\n}) => {\n const path = `${parentPath}.${rowIndex}`\n const { i18n } = useTranslation()\n const hasSubmitted = useFormSubmitted()\n\n const fieldHasErrors = hasSubmitted && errorCount > 0\n\n const classNames = [\n `${baseClass}__row`,\n fieldHasErrors ? `${baseClass}__row--has-errors` : `${baseClass}__row--no-errors`,\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <div\n id={`${parentPath.split('.').join('-')}-row-${rowIndex}`}\n key={`${parentPath}-row-${rowIndex}`}\n ref={setNodeRef}\n style={{\n transform,\n }}\n >\n <Collapsible\n actions={\n !readOnly ? (\n <RowActions\n addRow={addRow}\n blockType={row.blockType}\n blocks={blocks}\n duplicateRow={duplicateRow}\n fieldMap={block.fieldMap}\n hasMaxRows={hasMaxRows}\n isSortable={isSortable}\n labels={labels}\n moveRow={moveRow}\n removeRow={removeRow}\n rowCount={rowCount}\n rowIndex={rowIndex}\n />\n ) : undefined\n }\n className={classNames}\n collapsibleStyle={fieldHasErrors ? 'error' : 'default'}\n dragHandleProps={\n isSortable\n ? {\n id: row.id,\n attributes,\n listeners,\n }\n : undefined\n }\n header={\n <div className={`${baseClass}__block-header`}>\n <span className={`${baseClass}__block-number`}>\n {String(rowIndex + 1).padStart(2, '0')}\n </span>\n <Pill\n className={`${baseClass}__block-pill ${baseClass}__block-pill-${row.blockType}`}\n pillStyle=\"white\"\n >\n {getTranslation(block.labels.singular, i18n)}\n </Pill>\n <SectionTitle path={`${path}.blockName`} readOnly={readOnly} />\n {fieldHasErrors && <ErrorPill count={errorCount} i18n={i18n} withMessage />}\n </div>\n }\n isCollapsed={row.collapsed}\n key={row.id}\n onToggle={(collapsed) => setCollapse(row.id, collapsed)}\n >\n <RenderFields\n className={`${baseClass}__fields`}\n fieldMap={block.fieldMap}\n forceRender={forceRender}\n margins=\"small\"\n path={path}\n permissions={permissions?.blocks?.[block.slug]?.fields}\n readOnly={readOnly}\n schemaPath={`${schemaPath}.${block.slug}`}\n />\n </Collapsible>\n </div>\n )\n}\n"],"names":["getTranslation","React","Collapsible","ErrorPill","Pill","useFormSubmitted","RenderFields","useTranslation","RowActions","SectionTitle","baseClass","BlockRow","addRow","attributes","block","blocks","duplicateRow","errorCount","forceRender","hasMaxRows","isSortable","labels","listeners","moveRow","path","parentPath","permissions","readOnly","removeRow","row","rowCount","rowIndex","schemaPath","setCollapse","setNodeRef","transform","i18n","hasSubmitted","fieldHasErrors","classNames","filter","Boolean","join","div","id","split","key","ref","style","actions","blockType","fieldMap","undefined","className","collapsibleStyle","dragHandleProps","header","span","String","padStart","pillStyle","singular","count","withMessage","isCollapsed","collapsed","onToggle","margins","slug","fields"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export declare const RowActions: React.FC<{
|
|
|
8
8
|
duplicateRow: (rowIndex: number, blockType: string) => void;
|
|
9
9
|
fieldMap: FieldMap;
|
|
10
10
|
hasMaxRows?: boolean;
|
|
11
|
+
isSortable?: boolean;
|
|
11
12
|
labels: Labels;
|
|
12
13
|
moveRow: (fromIndex: number, toIndex: number) => void;
|
|
13
14
|
removeRow: (rowIndex: number) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RowActions.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/RowActions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAG3C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACb,MAAM,yDAAyD,CAAA;AAMhE,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3D,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB,
|
|
1
|
+
{"version":3,"file":"RowActions.d.ts","sourceRoot":"","sources":["../../../src/fields/Blocks/RowActions.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAG3C,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EACV,QAAQ,EACR,YAAY,EACb,MAAM,yDAAyD,CAAA;AAMhE,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAA;IAC3D,QAAQ,EAAE,QAAQ,CAAA;IAClB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;IACrD,SAAS,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACrC,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;CACjB,CAkDA,CAAA"}
|