@payloadcms/ui 3.55.0-internal.f8c92b5 → 3.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/elements/AppHeader/index.scss +1 -0
- package/dist/elements/Autosave/index.js +2 -2
- package/dist/elements/Autosave/index.js.map +1 -1
- package/dist/elements/BulkUpload/EditForm/index.js +4 -18
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/ClipboardAction/index.js +173 -74
- package/dist/elements/ClipboardAction/index.js.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.js +155 -67
- package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
- package/dist/elements/Collapsible/index.js +15 -7
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/ConfirmationModal/index.js +44 -8
- package/dist/elements/ConfirmationModal/index.js.map +1 -1
- package/dist/elements/CopyLocaleData/index.js +97 -89
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/CopyToClipboard/index.js +22 -2
- package/dist/elements/CopyToClipboard/index.js.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.d.ts +12 -0
- package/dist/elements/DefaultListViewTabs/index.d.ts.map +1 -0
- package/dist/elements/DefaultListViewTabs/index.js +161 -0
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -0
- package/dist/elements/{ListHeaderTabs → DefaultListViewTabs}/index.scss +1 -1
- package/dist/elements/DeleteMany/index.js +83 -47
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.js +55 -27
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js +10 -2
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/Provider.d.ts +2 -1
- package/dist/elements/DocumentDrawer/Provider.d.ts.map +1 -1
- package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +99 -47
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/DocumentFields/index.scss +1 -1
- package/dist/elements/Drawer/index.js +57 -23
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.js +21 -3
- package/dist/elements/DrawerActionHeader/index.js.map +1 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.js +1 -1
- package/dist/elements/FieldSelect/reduceFieldOptions.js.map +1 -1
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +225 -149
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
- package/dist/elements/FolderView/FolderFileCard/index.js +27 -19
- package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
- package/dist/elements/FolderView/MoveDocToFolder/index.js +23 -12
- package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
- package/dist/elements/FullscreenModal/index.js +20 -10
- package/dist/elements/FullscreenModal/index.js.map +1 -1
- package/dist/elements/ListControls/index.d.ts.map +1 -1
- package/dist/elements/ListControls/index.js +69 -78
- package/dist/elements/ListControls/index.js.map +1 -1
- package/dist/elements/ListControls/index.scss +2 -82
- package/dist/elements/ListDrawer/index.js +24 -18
- package/dist/elements/ListDrawer/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +32 -19
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
- package/dist/elements/ListSelection/index.js +27 -11
- package/dist/elements/ListSelection/index.js.map +1 -1
- package/dist/elements/LivePreview/Window/index.d.ts.map +1 -1
- package/dist/elements/LivePreview/Window/index.js +152 -71
- package/dist/elements/LivePreview/Window/index.js.map +1 -1
- package/dist/elements/Loading/index.js +11 -2
- package/dist/elements/Loading/index.js.map +1 -1
- package/dist/elements/LoadingOverlay/index.js +102 -46
- package/dist/elements/LoadingOverlay/index.js.map +1 -1
- package/dist/elements/Localizer/LocalizerLabel/index.js +36 -23
- package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
- package/dist/elements/PublishButton/index.d.ts.map +1 -1
- package/dist/elements/PublishButton/index.js +22 -11
- package/dist/elements/PublishButton/index.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetToggler/index.js +139 -41
- package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
- package/dist/elements/RenderIfInViewport/index.d.ts +2 -2
- package/dist/elements/RenderIfInViewport/index.d.ts.map +1 -1
- package/dist/elements/RenderIfInViewport/index.js.map +1 -1
- package/dist/elements/SearchBar/index.d.ts +2 -3
- package/dist/elements/SearchBar/index.d.ts.map +1 -1
- package/dist/elements/SearchBar/index.js +2 -3
- package/dist/elements/SearchBar/index.js.map +1 -1
- package/dist/elements/SearchBar/index.scss +56 -7
- package/dist/elements/SearchFilter/index.d.ts +2 -33
- package/dist/elements/SearchFilter/index.d.ts.map +1 -1
- package/dist/elements/SearchFilter/index.js +7 -5
- package/dist/elements/SearchFilter/index.js.map +1 -1
- package/dist/elements/SearchFilter/types.d.ts +33 -0
- package/dist/elements/SearchFilter/types.d.ts.map +1 -0
- package/dist/elements/SearchFilter/types.js +2 -0
- package/dist/elements/SearchFilter/types.js.map +1 -0
- package/dist/elements/SelectRow/index.js +40 -39
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/ShimmerEffect/index.js +12 -20
- package/dist/elements/ShimmerEffect/index.js.map +1 -1
- package/dist/elements/SortColumn/index.js +30 -21
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/Status/index.d.ts.map +1 -1
- package/dist/elements/Status/index.js +19 -9
- package/dist/elements/Status/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js +37 -9
- package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +37 -35
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Select/index.js +27 -12
- package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.js +75 -35
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.js +26 -17
- package/dist/elements/ThumbnailCard/index.js.map +1 -1
- package/dist/elements/Tooltip/index.js +127 -51
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Upload/index.js +10 -2
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/index.js +44 -31
- package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-O6BWJHD2.js → CodeEditor-URFJPG6I.js} +2 -2
- package/dist/exports/client/{DatePicker-F432AIH3.js → DatePicker-NMDEHPWL.js} +2 -2
- package/dist/exports/client/{chunk-AZDI6MW4.js → chunk-7RGKTZG2.js} +1 -1
- package/dist/exports/client/{chunk-AZDI6MW4.js.map → chunk-7RGKTZG2.js.map} +1 -1
- package/dist/exports/client/chunk-KPQQ5IUL.js +26 -0
- package/dist/exports/client/{chunk-FXAFULZQ.js.map → chunk-KPQQ5IUL.js.map} +4 -4
- package/dist/exports/client/index.d.ts +2 -3
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +24 -24
- package/dist/exports/client/index.js.map +4 -4
- package/dist/exports/rsc/index.d.ts +1 -0
- package/dist/exports/rsc/index.d.ts.map +1 -1
- package/dist/exports/rsc/index.js +1 -0
- package/dist/exports/rsc/index.js.map +1 -1
- package/dist/fields/Array/ArrayRow.d.ts +3 -2
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +23 -13
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.js +477 -273
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/index.d.ts.map +1 -1
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.js +19 -2
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/FieldError/index.js +29 -30
- package/dist/fields/FieldError/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.js +64 -12
- package/dist/fields/FieldLabel/index.js.map +1 -1
- package/dist/fields/Join/index.js +1 -1
- package/dist/fields/Join/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +103 -45
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/SingleValue/index.js +44 -29
- package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
- package/dist/fields/Row/index.d.ts +3 -1
- package/dist/fields/Row/index.d.ts.map +1 -1
- package/dist/fields/Select/Input.js +31 -18
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Tabs/Tab/index.js +11 -2
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Tabs/index.d.ts +1 -2
- package/dist/fields/Tabs/index.d.ts.map +1 -1
- package/dist/fields/Tabs/index.js +225 -185
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.js +127 -79
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
- package/dist/forms/Form/fieldReducer.d.ts.map +1 -1
- package/dist/forms/Form/fieldReducer.js +15 -13
- package/dist/forms/Form/fieldReducer.js.map +1 -1
- package/dist/forms/Form/types.d.ts +6 -3
- package/dist/forms/Form/types.d.ts.map +1 -1
- package/dist/forms/Form/types.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +237 -245
- 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 +1 -1
- package/dist/forms/RenderFields/index.js.map +1 -1
- package/dist/forms/RenderFields/types.d.ts +10 -2
- package/dist/forms/RenderFields/types.d.ts.map +1 -1
- package/dist/forms/RenderFields/types.js.map +1 -1
- package/dist/forms/RowLabel/Context/index.d.ts.map +1 -1
- package/dist/forms/RowLabel/Context/index.js +17 -31
- package/dist/forms/RowLabel/Context/index.js.map +1 -1
- package/dist/forms/useField/index.d.ts +0 -5
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +45 -74
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/hooks/useIntersect.js +53 -35
- package/dist/hooks/useIntersect.js.map +1 -1
- package/dist/hooks/usePayloadAPI.js +44 -36
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/providers/Auth/index.d.ts +2 -1
- package/dist/providers/Auth/index.d.ts.map +1 -1
- package/dist/providers/Auth/index.js +74 -83
- package/dist/providers/Auth/index.js.map +1 -1
- package/dist/providers/Config/index.d.ts.map +1 -1
- package/dist/providers/Config/index.js +6 -3
- package/dist/providers/Config/index.js.map +1 -1
- package/dist/providers/LivePreview/context.d.ts +0 -2
- package/dist/providers/LivePreview/context.d.ts.map +1 -1
- package/dist/providers/LivePreview/context.js +0 -1
- package/dist/providers/LivePreview/context.js.map +1 -1
- package/dist/providers/LivePreview/index.d.ts.map +1 -1
- package/dist/providers/LivePreview/index.js +0 -12
- package/dist/providers/LivePreview/index.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +1 -1
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/utilities/buildFormState.d.ts.map +1 -1
- package/dist/utilities/buildFormState.js +7 -1
- package/dist/utilities/buildFormState.js.map +1 -1
- package/dist/utilities/buildTableState.d.ts.map +1 -1
- package/dist/utilities/buildTableState.js +12 -4
- package/dist/utilities/buildTableState.js.map +1 -1
- package/dist/utilities/getClientConfig.d.ts +2 -7
- package/dist/utilities/getClientConfig.d.ts.map +1 -1
- package/dist/utilities/getClientConfig.js +19 -8
- package/dist/utilities/getClientConfig.js.map +1 -1
- package/dist/utilities/getColumns.d.ts +10 -0
- package/dist/utilities/getColumns.d.ts.map +1 -0
- package/dist/utilities/getColumns.js +36 -0
- package/dist/utilities/getColumns.js.map +1 -0
- package/dist/utilities/reduceFieldsToOptions.d.ts.map +1 -1
- package/dist/utilities/reduceFieldsToOptions.js +16 -1
- package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
- package/dist/utilities/renderTable.d.ts +3 -3
- package/dist/utilities/renderTable.d.ts.map +1 -1
- package/dist/utilities/renderTable.js +2 -11
- package/dist/utilities/renderTable.js.map +1 -1
- package/dist/utilities/traverseForLocalizedFields.d.ts +3 -0
- package/dist/utilities/traverseForLocalizedFields.d.ts.map +1 -0
- package/dist/utilities/traverseForLocalizedFields.js +40 -0
- package/dist/utilities/traverseForLocalizedFields.js.map +1 -0
- package/dist/views/BrowseByFolder/index.js +56 -38
- package/dist/views/BrowseByFolder/index.js.map +1 -1
- package/dist/views/CollectionFolder/index.d.ts.map +1 -1
- package/dist/views/CollectionFolder/index.js +45 -28
- package/dist/views/CollectionFolder/index.js.map +1 -1
- package/dist/views/Edit/Auth/index.d.ts.map +1 -1
- package/dist/views/Edit/Auth/index.js +106 -94
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/dist/views/List/ListHeader/index.d.ts.map +1 -1
- package/dist/views/List/ListHeader/index.js +5 -13
- package/dist/views/List/ListHeader/index.js.map +1 -1
- package/package.json +7 -7
- package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts +0 -10
- package/dist/elements/ListHeaderTabs/ByFolderPill.d.ts.map +0 -1
- package/dist/elements/ListHeaderTabs/ByFolderPill.js +0 -70
- package/dist/elements/ListHeaderTabs/ByFolderPill.js.map +0 -1
- package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts +0 -9
- package/dist/elements/ListHeaderTabs/DefaultListPill.d.ts.map +0 -1
- package/dist/elements/ListHeaderTabs/DefaultListPill.js +0 -75
- package/dist/elements/ListHeaderTabs/DefaultListPill.js.map +0 -1
- package/dist/elements/ListHeaderTabs/TrashPill.d.ts +0 -6
- package/dist/elements/ListHeaderTabs/TrashPill.d.ts.map +0 -1
- package/dist/elements/ListHeaderTabs/TrashPill.js +0 -53
- package/dist/elements/ListHeaderTabs/TrashPill.js.map +0 -1
- package/dist/exports/client/chunk-FXAFULZQ.js +0 -26
- /package/dist/exports/client/{CodeEditor-O6BWJHD2.js.map → CodeEditor-URFJPG6I.js.map} +0 -0
- /package/dist/exports/client/{DatePicker-F432AIH3.js.map → DatePicker-NMDEHPWL.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","baseClass","File","ShimmerEffect","Thumbnail","props","$","className","t0","doc","t1","fileSrc","imageCacheTag","size","undefined","filename","fileExists","setFileExists","useState","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","baseClass","File","ShimmerEffect","Thumbnail","props","$","className","t0","doc","t1","fileSrc","imageCacheTag","size","undefined","t2","filename","fileExists","setFileExists","useState","t3","t4","classNames","join","t5","t6","img","Image","src","onload","onerror","useEffect","queryChar","includes","encodeURIComponent","t7","t8","_jsx","alt","_jsxs","children","height","ThumbnailComponent"],"sources":["../../../src/elements/Thumbnail/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\n\nconst baseClass = 'thumbnail'\n\nimport type { SanitizedCollectionConfig } from 'payload'\n\nimport { File } from '../../graphics/File/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\n\nexport type ThumbnailProps = {\n className?: string\n collectionSlug?: string\n doc?: Record<string, unknown>\n fileSrc?: string\n imageCacheTag?: string\n size?: 'expand' | 'large' | 'medium' | 'small'\n uploadConfig?: SanitizedCollectionConfig['upload']\n}\n\nexport const Thumbnail: React.FC<ThumbnailProps> = (props) => {\n const { className = '', doc: { filename } = {}, fileSrc, imageCacheTag, size } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n React.useEffect(() => {\n if (!fileSrc) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = fileSrc\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [fileSrc])\n\n let src: null | string = null\n\n /**\n * If an imageCacheTag is provided, append it to the fileSrc\n * Check if the fileSrc already has a query string, if it does, append the imageCacheTag with an ampersand\n */\n if (fileSrc) {\n const queryChar = fileSrc?.includes('?') ? '&' : '?'\n src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc\n }\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={filename as string} src={src} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n\ntype ThumbnailComponentProps = {\n readonly alt?: string\n readonly className?: string\n readonly filename: string\n readonly fileSrc: string\n readonly imageCacheTag?: string\n readonly size?: 'expand' | 'large' | 'medium' | 'small'\n}\nexport function ThumbnailComponent(props: ThumbnailComponentProps) {\n const { alt, className = '', filename, fileSrc, imageCacheTag, size } = props\n const [fileExists, setFileExists] = React.useState(undefined)\n\n const classNames = [baseClass, `${baseClass}--size-${size || 'medium'}`, className].join(' ')\n\n React.useEffect(() => {\n if (!fileSrc) {\n setFileExists(false)\n return\n }\n setFileExists(undefined)\n\n const img = new Image()\n img.src = fileSrc\n img.onload = () => {\n setFileExists(true)\n }\n img.onerror = () => {\n setFileExists(false)\n }\n }, [fileSrc])\n\n let src: string = ''\n\n /**\n * If an imageCacheTag is provided, append it to the fileSrc\n * Check if the fileSrc already has a query string, if it does, append the imageCacheTag with an ampersand\n */\n if (fileSrc) {\n const queryChar = fileSrc?.includes('?') ? '&' : '?'\n src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc\n }\n\n return (\n <div className={classNames}>\n {fileExists === undefined && <ShimmerEffect height=\"100%\" />}\n {fileExists && <img alt={alt || filename} src={src} />}\n {fileExists === false && <File />}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -9,7 +9,7 @@ import { formatDocTitle } from '../../utilities/formatDocTitle/index.js';
|
|
|
9
9
|
import './index.scss';
|
|
10
10
|
const baseClass = 'thumbnail-card';
|
|
11
11
|
export const ThumbnailCard = props => {
|
|
12
|
-
const $ = _c(
|
|
12
|
+
const $ = _c(15);
|
|
13
13
|
const {
|
|
14
14
|
alignLabel,
|
|
15
15
|
className,
|
|
@@ -38,18 +38,31 @@ export const ThumbnailCard = props => {
|
|
|
38
38
|
t2 = $[3];
|
|
39
39
|
}
|
|
40
40
|
const classes = t2.join(" ");
|
|
41
|
-
let
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
let title = labelFromProps;
|
|
42
|
+
if (!title) {
|
|
43
|
+
const t3 = doc?.filename;
|
|
44
|
+
let t4;
|
|
45
|
+
if ($[4] !== collection || $[5] !== config.admin.dateFormat || $[6] !== doc || $[7] !== i18n || $[8] !== t3) {
|
|
46
|
+
t4 = formatDocTitle({
|
|
46
47
|
collectionConfig: collection,
|
|
47
48
|
data: doc,
|
|
48
49
|
dateFormat: config.admin.dateFormat,
|
|
49
|
-
fallback:
|
|
50
|
+
fallback: t3,
|
|
50
51
|
i18n
|
|
51
52
|
});
|
|
53
|
+
$[4] = collection;
|
|
54
|
+
$[5] = config.admin.dateFormat;
|
|
55
|
+
$[6] = doc;
|
|
56
|
+
$[7] = i18n;
|
|
57
|
+
$[8] = t3;
|
|
58
|
+
$[9] = t4;
|
|
59
|
+
} else {
|
|
60
|
+
t4 = $[9];
|
|
52
61
|
}
|
|
62
|
+
title = t4;
|
|
63
|
+
}
|
|
64
|
+
let t3;
|
|
65
|
+
if ($[10] !== classes || $[11] !== onClick || $[12] !== thumbnail || $[13] !== title) {
|
|
53
66
|
t3 = _jsxs("button", {
|
|
54
67
|
className: classes,
|
|
55
68
|
onClick,
|
|
@@ -63,17 +76,13 @@ export const ThumbnailCard = props => {
|
|
|
63
76
|
children: title
|
|
64
77
|
})]
|
|
65
78
|
});
|
|
66
|
-
$[
|
|
67
|
-
$[
|
|
68
|
-
$[
|
|
69
|
-
$[
|
|
70
|
-
$[
|
|
71
|
-
$[9] = labelFromProps;
|
|
72
|
-
$[10] = onClick;
|
|
73
|
-
$[11] = thumbnail;
|
|
74
|
-
$[12] = t3;
|
|
79
|
+
$[10] = classes;
|
|
80
|
+
$[11] = onClick;
|
|
81
|
+
$[12] = thumbnail;
|
|
82
|
+
$[13] = title;
|
|
83
|
+
$[14] = t3;
|
|
75
84
|
} else {
|
|
76
|
-
t3 = $[
|
|
85
|
+
t3 = $[14];
|
|
77
86
|
}
|
|
78
87
|
return t3;
|
|
79
88
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","React","useConfig","useTranslation","formatDocTitle","baseClass","ThumbnailCard","props","$","alignLabel","className","collection","doc","label","labelFromProps","onClick","thumbnail","config","i18n","t0","t1","t2","filter","Boolean","classes","join","t3","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useConfig","useTranslation","formatDocTitle","baseClass","ThumbnailCard","props","$","alignLabel","className","collection","doc","label","labelFromProps","onClick","thumbnail","config","i18n","t0","t1","t2","filter","Boolean","classes","join","title","t3","filename","t4","admin","dateFormat","collectionConfig","data","fallback","_jsxs","type","children","_jsx"],"sources":["../../../src/elements/ThumbnailCard/index.tsx"],"sourcesContent":["'use client'\nimport type { ClientCollectionConfig, TypeWithID } from 'payload'\n\nimport React from 'react'\n\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDocTitle } from '../../utilities/formatDocTitle/index.js'\nimport './index.scss'\n\nexport type ThumbnailCardProps = {\n alignLabel?: 'center' | 'left'\n className?: string\n collection?: ClientCollectionConfig\n doc?: { filename?: string } & TypeWithID\n label?: string\n onClick?: () => void\n onKeyDown?: () => void\n thumbnail: React.ReactNode\n}\n\nconst baseClass = 'thumbnail-card'\n\nexport const ThumbnailCard: React.FC<ThumbnailCardProps> = (props) => {\n const {\n alignLabel,\n className,\n collection,\n doc,\n label: labelFromProps,\n onClick,\n thumbnail,\n } = props\n\n const { config } = useConfig()\n\n const { i18n } = useTranslation()\n\n const classes = [\n baseClass,\n className,\n typeof onClick === 'function' && `${baseClass}--has-on-click`,\n alignLabel && `${baseClass}--align-label-${alignLabel}`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let title = labelFromProps\n\n if (!title) {\n title = formatDocTitle({\n collectionConfig: collection,\n data: doc,\n dateFormat: config.admin.dateFormat,\n fallback: doc?.filename,\n i18n,\n })\n }\n\n return (\n <button className={classes} onClick={onClick} title={title} type=\"button\">\n <div className={`${baseClass}__thumbnail`}>{thumbnail}</div>\n <div className={`${baseClass}__label`}>{title}</div>\n </button>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,OAAOC,KAAA,MAAW;AAElB,SAASC,SAAS,QAAQ;AAC1B,SAASC,cAAc,QAAQ;AAC/B,SAASC,cAAc,QAAQ;AAC/B,OAAO;AAaP,MAAMC,SAAA,GAAY;AAElB,OAAO,MAAMC,aAAA,GAA8CC,KAAA;EAAA,MAAAC,CAAA,GAAAR,EAAA;EACzD;IAAAS,UAAA;IAAAC,SAAA;IAAAC,UAAA;IAAAC,GAAA;IAAAC,KAAA,EAAAC,cAAA;IAAAC,OAAA;IAAAC;EAAA,IAQIT,KAAA;EAEJ;IAAAU;EAAA,IAAmBf,SAAA;EAEnB;IAAAgB;EAAA,IAAiBf,cAAA;EAKf,MAAAgB,EAAA,UAAOJ,OAAA,KAAY,cAAc,GAAAV,SAAA,gBAA4B;EAC7D,MAAAe,EAAA,GAAAX,UAAA,IAAc,GAAAJ,SAAA,iBAA6BI,UAAA,EAAY;EAAA,IAAAY,EAAA;EAAA,IAAAb,CAAA,QAAAE,SAAA,IAAAF,CAAA,QAAAW,EAAA,IAAAX,CAAA,QAAAY,EAAA;IAJzCC,EAAA,IAAAhB,SAAA,EAEdK,SAAA,EACAS,EAA6D,EAC7DC,EAAuD,EAAAE,MAAA,CAAAC,OAE/C;IAAAf,CAAA,MAAAE,SAAA;IAAAF,CAAA,MAAAW,EAAA;IAAAX,CAAA,MAAAY,EAAA;IAAAZ,CAAA,MAAAa,EAAA;EAAA;IAAAA,EAAA,GAAAb,CAAA;EAAA;EANV,MAAAgB,OAAA,GAAgBH,EAMN,CAAAI,IAAA,CACF;EAER,IAAAC,KAAA,GAAYZ,cAAA;EAAA,KAEPY,KAAA;IAKS,MAAAC,EAAA,GAAAf,GAAA,EAAAgB,QAAA;IAAK,IAAAC,EAAA;IAAA,IAAArB,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAS,MAAA,CAAAa,KAAA,CAAAC,UAAA,IAAAvB,CAAA,QAAAI,GAAA,IAAAJ,CAAA,QAAAU,IAAA,IAAAV,CAAA,QAAAmB,EAAA;MAJTE,EAAA,GAAAzB,cAAA;QAAA4B,gBAAA,EACYrB,UAAA;QAAAsB,IAAA,EACZrB,GAAA;QAAAmB,UAAA,EACMd,MAAA,CAAAa,KAAA,CAAAC,UAAA;QAAAG,QAAA,EACFP,EAAK;QAAAT;MAAA,CAEjB;MAAAV,CAAA,MAAAG,UAAA;MAAAH,CAAA,MAAAS,MAAA,CAAAa,KAAA,CAAAC,UAAA;MAAAvB,CAAA,MAAAI,GAAA;MAAAJ,CAAA,MAAAU,IAAA;MAAAV,CAAA,MAAAmB,EAAA;MAAAnB,CAAA,MAAAqB,EAAA;IAAA;MAAAA,EAAA,GAAArB,CAAA;IAAA;IANAkB,KAAA,CAAAA,CAAA,CAAQA,EAMR;EANA;EAAA,IAAAC,EAAA;EAAA,IAAAnB,CAAA,SAAAgB,OAAA,IAAAhB,CAAA,SAAAO,OAAA,IAAAP,CAAA,SAAAQ,SAAA,IAAAR,CAAA,SAAAkB,KAAA;IAUAC,EAAA,GAAAQ,KAAA,CAAC;MAAAzB,SAAA,EAAkBc,OAAA;MAAAT,OAAA;MAAAW,KAAA;MAAAU,IAAA,EAA8C;MAAAC,QAAA,GAC/DC,IAAA,CAAC;QAAA5B,SAAA,EAAe,GAAAL,SAAA,aAAyB;QAAAgC,QAAA,EAAGrB;MAAA,C,GAC5CsB,IAAA,CAAC;QAAA5B,SAAA,EAAe,GAAAL,SAAA,SAAqB;QAAAgC,QAAA,EAAGX;MAAA,C;;;;;;;;;;SAF1CC,E;CAKJ","ignoreList":[]}
|
|
@@ -1,71 +1,147 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
+
import { c as _c } from "react/compiler-runtime";
|
|
3
4
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
4
5
|
import React, { useEffect } from 'react';
|
|
5
6
|
import { useIntersect } from '../../hooks/useIntersect.js';
|
|
6
7
|
import './index.scss';
|
|
7
8
|
export const Tooltip = props => {
|
|
9
|
+
const $ = _c(26);
|
|
8
10
|
const {
|
|
9
|
-
alignCaret
|
|
11
|
+
alignCaret: t0,
|
|
10
12
|
boundingRef,
|
|
11
13
|
children,
|
|
12
14
|
className,
|
|
13
|
-
delay
|
|
15
|
+
delay: t1,
|
|
14
16
|
position: positionFromProps,
|
|
15
|
-
show:
|
|
16
|
-
staticPositioning
|
|
17
|
+
show: t2,
|
|
18
|
+
staticPositioning: t3
|
|
17
19
|
} = props;
|
|
20
|
+
const alignCaret = t0 === undefined ? "center" : t0;
|
|
21
|
+
const delay = t1 === undefined ? 350 : t1;
|
|
22
|
+
const showFromProps = t2 === undefined ? true : t2;
|
|
23
|
+
const staticPositioning = t3 === undefined ? false : t3;
|
|
18
24
|
const [show, setShow] = React.useState(showFromProps);
|
|
19
|
-
const [position, setPosition] = React.useState(
|
|
20
|
-
const getTitleAttribute =
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
const [position, setPosition] = React.useState("top");
|
|
26
|
+
const getTitleAttribute = _temp;
|
|
27
|
+
const t4 = boundingRef?.current || null;
|
|
28
|
+
let t5;
|
|
29
|
+
if ($[0] !== t4) {
|
|
30
|
+
t5 = {
|
|
31
|
+
root: t4,
|
|
32
|
+
rootMargin: "-145px 0px 0px 100px",
|
|
33
|
+
threshold: 0
|
|
34
|
+
};
|
|
35
|
+
$[0] = t4;
|
|
36
|
+
$[1] = t5;
|
|
37
|
+
} else {
|
|
38
|
+
t5 = $[1];
|
|
39
|
+
}
|
|
40
|
+
const [ref, intersectionEntry] = useIntersect(t5, staticPositioning);
|
|
41
|
+
let t6;
|
|
42
|
+
let t7;
|
|
43
|
+
if ($[2] !== delay || $[3] !== showFromProps) {
|
|
44
|
+
t6 = () => {
|
|
45
|
+
let timerID;
|
|
46
|
+
if (delay && showFromProps) {
|
|
47
|
+
timerID = setTimeout(() => {
|
|
48
|
+
setShow(showFromProps);
|
|
49
|
+
}, delay);
|
|
50
|
+
} else {
|
|
31
51
|
setShow(showFromProps);
|
|
32
|
-
}, delay);
|
|
33
|
-
} else {
|
|
34
|
-
setShow(showFromProps);
|
|
35
|
-
}
|
|
36
|
-
return () => {
|
|
37
|
-
if (timerID) {
|
|
38
|
-
clearTimeout(timerID);
|
|
39
52
|
}
|
|
53
|
+
return () => {
|
|
54
|
+
if (timerID) {
|
|
55
|
+
clearTimeout(timerID);
|
|
56
|
+
}
|
|
57
|
+
};
|
|
40
58
|
};
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
59
|
+
t7 = [showFromProps, delay];
|
|
60
|
+
$[2] = delay;
|
|
61
|
+
$[3] = showFromProps;
|
|
62
|
+
$[4] = t6;
|
|
63
|
+
$[5] = t7;
|
|
64
|
+
} else {
|
|
65
|
+
t6 = $[4];
|
|
66
|
+
t7 = $[5];
|
|
67
|
+
}
|
|
68
|
+
useEffect(t6, t7);
|
|
69
|
+
let t8;
|
|
70
|
+
if ($[6] !== intersectionEntry?.isIntersecting || $[7] !== staticPositioning) {
|
|
71
|
+
t8 = () => {
|
|
72
|
+
if (staticPositioning) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
setPosition(intersectionEntry?.isIntersecting ? "top" : "bottom");
|
|
76
|
+
};
|
|
77
|
+
$[6] = intersectionEntry?.isIntersecting;
|
|
78
|
+
$[7] = staticPositioning;
|
|
79
|
+
$[8] = t8;
|
|
80
|
+
} else {
|
|
81
|
+
t8 = $[8];
|
|
82
|
+
}
|
|
83
|
+
let t9;
|
|
84
|
+
if ($[9] !== intersectionEntry || $[10] !== staticPositioning) {
|
|
85
|
+
t9 = [intersectionEntry, staticPositioning];
|
|
86
|
+
$[9] = intersectionEntry;
|
|
87
|
+
$[10] = staticPositioning;
|
|
88
|
+
$[11] = t9;
|
|
89
|
+
} else {
|
|
90
|
+
t9 = $[11];
|
|
91
|
+
}
|
|
92
|
+
useEffect(t8, t9);
|
|
93
|
+
let t10;
|
|
94
|
+
if ($[12] !== alignCaret || $[13] !== children || $[14] !== className || $[15] !== position || $[16] !== positionFromProps || $[17] !== ref || $[18] !== show || $[19] !== staticPositioning) {
|
|
95
|
+
const t11 = show && "tooltip--show";
|
|
96
|
+
const t12 = `tooltip--caret-${alignCaret}`;
|
|
97
|
+
const t13 = `tooltip--position-${positionFromProps || position}`;
|
|
98
|
+
let t14;
|
|
99
|
+
if ($[21] !== className || $[22] !== t11 || $[23] !== t12 || $[24] !== t13) {
|
|
100
|
+
t14 = ["tooltip", className, t11, t12, t13].filter(Boolean);
|
|
101
|
+
$[21] = className;
|
|
102
|
+
$[22] = t11;
|
|
103
|
+
$[23] = t12;
|
|
104
|
+
$[24] = t13;
|
|
105
|
+
$[25] = t14;
|
|
106
|
+
} else {
|
|
107
|
+
t14 = $[25];
|
|
45
108
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
109
|
+
t10 = _jsxs(React.Fragment, {
|
|
110
|
+
children: [!staticPositioning && _jsx("aside", {
|
|
111
|
+
"aria-hidden": "true",
|
|
112
|
+
className: ["tooltip", className, `tooltip--caret-${alignCaret}`, "tooltip--position-top"].filter(Boolean).join(" "),
|
|
113
|
+
ref,
|
|
114
|
+
style: {
|
|
115
|
+
opacity: "0"
|
|
116
|
+
},
|
|
117
|
+
children: _jsx("div", {
|
|
118
|
+
className: "tooltip-content",
|
|
119
|
+
children
|
|
120
|
+
})
|
|
121
|
+
}), _jsx("aside", {
|
|
122
|
+
className: t14.join(" "),
|
|
123
|
+
title: getTitleAttribute(children),
|
|
124
|
+
children: _jsx("div", {
|
|
125
|
+
className: "tooltip-content",
|
|
126
|
+
children
|
|
127
|
+
})
|
|
128
|
+
})]
|
|
129
|
+
});
|
|
130
|
+
$[12] = alignCaret;
|
|
131
|
+
$[13] = children;
|
|
132
|
+
$[14] = className;
|
|
133
|
+
$[15] = position;
|
|
134
|
+
$[16] = positionFromProps;
|
|
135
|
+
$[17] = ref;
|
|
136
|
+
$[18] = show;
|
|
137
|
+
$[19] = staticPositioning;
|
|
138
|
+
$[20] = t10;
|
|
139
|
+
} else {
|
|
140
|
+
t10 = $[20];
|
|
141
|
+
}
|
|
142
|
+
return t10;
|
|
70
143
|
};
|
|
144
|
+
function _temp(content) {
|
|
145
|
+
return typeof content === "string" ? content : "";
|
|
146
|
+
}
|
|
71
147
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","useEffect","useIntersect","Tooltip","props","alignCaret","boundingRef","children","className","delay","position","positionFromProps","show","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","React","useEffect","useIntersect","Tooltip","props","$","alignCaret","t0","boundingRef","children","className","delay","t1","position","positionFromProps","show","t2","staticPositioning","t3","undefined","showFromProps","setShow","useState","setPosition","getTitleAttribute","_temp","t4","current","t5","root","rootMargin","threshold","ref","intersectionEntry","t6","t7","timerID","clearTimeout","t8","isIntersecting","t9","t10","t11","t12","t13","t14","filter","Boolean","_jsxs","Fragment","_jsx","join","style","opacity","title","content"],"sources":["../../../src/elements/Tooltip/index.tsx"],"sourcesContent":["'use client'\nimport React, { useEffect } from 'react'\n\nimport { useIntersect } from '../../hooks/useIntersect.js'\nimport './index.scss'\n\nexport type Props = {\n alignCaret?: 'center' | 'left' | 'right'\n boundingRef?: React.RefObject<HTMLElement | null>\n children: React.ReactNode\n className?: string\n delay?: number\n position?: 'bottom' | 'top'\n show?: boolean\n /**\n * If the tooltip position should not change depending on if the toolbar is outside the boundingRef. @default false\n */\n staticPositioning?: boolean\n}\n\nexport const Tooltip: React.FC<Props> = (props) => {\n const {\n alignCaret = 'center',\n boundingRef,\n children,\n className,\n delay = 350,\n position: positionFromProps,\n show: showFromProps = true,\n staticPositioning = false,\n } = props\n\n const [show, setShow] = React.useState(showFromProps)\n const [position, setPosition] = React.useState<'bottom' | 'top'>('top')\n\n const getTitleAttribute = (content) => (typeof content === 'string' ? content : '')\n\n const [ref, intersectionEntry] = useIntersect(\n {\n root: boundingRef?.current || null,\n rootMargin: '-145px 0px 0px 100px',\n threshold: 0,\n },\n staticPositioning,\n )\n\n useEffect(() => {\n let timerID: NodeJS.Timeout\n\n // do not use the delay on transition-out\n if (delay && showFromProps) {\n timerID = setTimeout(() => {\n setShow(showFromProps)\n }, delay)\n } else {\n setShow(showFromProps)\n }\n\n return () => {\n if (timerID) {\n clearTimeout(timerID)\n }\n }\n }, [showFromProps, delay])\n\n useEffect(() => {\n if (staticPositioning) {\n return\n }\n setPosition(intersectionEntry?.isIntersecting ? 'top' : 'bottom')\n }, [intersectionEntry, staticPositioning])\n\n // The first aside is always on top. The purpose of that is that it can reliably be used for the interaction observer (as it's not moving around), to calculate the position of the actual tooltip.\n return (\n <React.Fragment>\n {!staticPositioning && (\n <aside\n aria-hidden=\"true\"\n className={['tooltip', className, `tooltip--caret-${alignCaret}`, 'tooltip--position-top']\n .filter(Boolean)\n .join(' ')}\n ref={ref}\n style={{ opacity: '0' }}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n )}\n <aside\n className={[\n 'tooltip',\n className,\n show && 'tooltip--show',\n `tooltip--caret-${alignCaret}`,\n `tooltip--position-${positionFromProps || position}`,\n ]\n .filter(Boolean)\n .join(' ')}\n title={getTitleAttribute(children)}\n >\n <div className=\"tooltip-content\">{children}</div>\n </aside>\n </React.Fragment>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,IAASC,SAAS,QAAQ;AAEjC,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAgBP,OAAO,MAAMC,OAAA,GAA2BC,KAAA;EAAA,MAAAC,CAAA,GAAAN,EAAA;EACtC;IAAAO,UAAA,EAAAC,EAAA;IAAAC,WAAA;IAAAC,QAAA;IAAAC,SAAA;IAAAC,KAAA,EAAAC,EAAA;IAAAC,QAAA,EAAAC,iBAAA;IAAAC,IAAA,EAAAC,EAAA;IAAAC,iBAAA,EAAAC;EAAA,IASId,KAAA;EARF,MAAAE,UAAA,GAAAC,EAAqB,KAAAY,SAAA,GAAR,QAAQ,GAArBZ,EAAqB;EAIrB,MAAAI,KAAA,GAAAC,EAAW,KAAAO,SAAA,SAAXP,EAAW;EAEL,MAAAQ,aAAA,GAAAJ,EAAoB,KAAAG,SAAA,UAApBH,EAAoB;EAC1B,MAAAC,iBAAA,GAAAC,EAAyB,KAAAC,SAAA,WAAzBD,EAAyB;EAG3B,OAAAH,IAAA,EAAAM,OAAA,IAAwBrB,KAAA,CAAAsB,QAAA,CAAeF,aAAA;EACvC,OAAAP,QAAA,EAAAU,WAAA,IAAgCvB,KAAA,CAAAsB,QAAA,CAAiC;EAEjE,MAAAE,iBAAA,GAAAC,KAAA;EAIU,MAAAC,EAAA,GAAAlB,WAAA,EAAAmB,OAAA,QAAwB;EAAA,IAAAC,EAAA;EAAA,IAAAvB,CAAA,QAAAqB,EAAA;IADhCE,EAAA;MAAAC,IAAA,EACQH,EAAwB;MAAAI,UAAA,EAClB;MAAAC,SAAA;IAAA;IAEd1B,CAAA,MAAAqB,EAAA;IAAArB,CAAA,MAAAuB,EAAA;EAAA;IAAAA,EAAA,GAAAvB,CAAA;EAAA;EALF,OAAA2B,GAAA,EAAAC,iBAAA,IAAiC/B,YAAA,CAC/B0B,EAIA,EACAX,iBAAA;EAAA,IAAAiB,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAA9B,CAAA,QAAAM,KAAA,IAAAN,CAAA,QAAAe,aAAA;IAGQc,EAAA,GAAAA,CAAA;MACJE,GAAA,CAAAA,OAAA;MAAA,IAGAzB,KAAA,IAASS,aAAA;QACXgB,OAAA,CAAAA,CAAA,CAAUA,aAAA,CAAAA,EAAA,CAAAA;UACRf,OAAA,CAAQD,aAAA;QAAA,GACPT,KAAA;MAFH;QAIAU,OAAA,CAAQD,aAAA;MAAA;MAAA;QAAA,IAIJgB,OAAA;UACFC,YAAA,CAAaD,OAAA;QAAA;MAAA;IAAA;IAGhBD,EAAA,IAACf,aAAA,EAAeT,KAAA;IAAMN,CAAA,MAAAM,KAAA;IAAAN,CAAA,MAAAe,aAAA;IAAAf,CAAA,MAAA6B,EAAA;IAAA7B,CAAA,MAAA8B,EAAA;EAAA;IAAAD,EAAA,GAAA7B,CAAA;IAAA8B,EAAA,GAAA9B,CAAA;EAAA;EAjBzBJ,SAAA,CAAUiC,EAiBV,EAAGC,EAAsB;EAAA,IAAAG,EAAA;EAAA,IAAAjC,CAAA,QAAA4B,iBAAA,EAAAM,cAAA,IAAAlC,CAAA,QAAAY,iBAAA;IAEfqB,EAAA,GAAAA,CAAA;MAAA,IACJrB,iBAAA;QAAA;MAAA;MAGJM,WAAA,CAAYU,iBAAA,EAAAM,cAAA,GAAoC,QAAQ;IAAA;IAC1DlC,CAAA,MAAA4B,iBAAA,EAAAM,cAAA;IAAAlC,CAAA,MAAAY,iBAAA;IAAAZ,CAAA,MAAAiC,EAAA;EAAA;IAAAA,EAAA,GAAAjC,CAAA;EAAA;EAAA,IAAAmC,EAAA;EAAA,IAAAnC,CAAA,QAAA4B,iBAAA,IAAA5B,CAAA,SAAAY,iBAAA;IAAGuB,EAAA,IAACP,iBAAA,EAAmBhB,iBAAA;IAAkBZ,CAAA,MAAA4B,iBAAA;IAAA5B,CAAA,OAAAY,iBAAA;IAAAZ,CAAA,OAAAmC,EAAA;EAAA;IAAAA,EAAA,GAAAnC,CAAA;EAAA;EALzCJ,SAAA,CAAUqC,EAKV,EAAGE,EAAsC;EAAA,IAAAC,GAAA;EAAA,IAAApC,CAAA,SAAAC,UAAA,IAAAD,CAAA,SAAAI,QAAA,IAAAJ,CAAA,SAAAK,SAAA,IAAAL,CAAA,SAAAQ,QAAA,IAAAR,CAAA,SAAAS,iBAAA,IAAAT,CAAA,SAAA2B,GAAA,IAAA3B,CAAA,SAAAU,IAAA,IAAAV,CAAA,SAAAY,iBAAA;IAqBjC,MAAAyB,GAAA,GAAA3B,IAAA,IAAQ;IACR,MAAA4B,GAAA,qBAAkBrC,UAAA,EAAY;IAC9B,MAAAsC,GAAA,wBAAqB9B,iBAAA,IAAqBD,QAAA,EAAU;IAAA,IAAAgC,GAAA;IAAA,IAAAxC,CAAA,SAAAK,SAAA,IAAAL,CAAA,SAAAqC,GAAA,IAAArC,CAAA,SAAAsC,GAAA,IAAAtC,CAAA,SAAAuC,GAAA;MAL3CC,GAAA,IACT,WACAnC,SAAA,EACAgC,GAAQ,EACRC,GAA8B,EAC9BC,GAAoD,EAAAE,MAAA,CAAAC,OAE5C;MAAA1C,CAAA,OAAAK,SAAA;MAAAL,CAAA,OAAAqC,GAAA;MAAArC,CAAA,OAAAsC,GAAA;MAAAtC,CAAA,OAAAuC,GAAA;MAAAvC,CAAA,OAAAwC,GAAA;IAAA;MAAAA,GAAA,GAAAxC,CAAA;IAAA;IArBdoC,GAAA,GAAAO,KAAA,CAAAhD,KAAA,CAAAiD,QAAA;MAAAxC,QAAA,GACG,CAACQ,iBAAA,IACAiC,IAAA,CAAC;QAAA,eACa;QAAAxC,SAAA,EACD,CAAC,WAAWA,SAAA,EAAW,kBAAkBJ,UAAA,EAAY,EAAE,yBAAAwC,MAAA,CAAAC,OACxD,EAAAI,IAAA,CACF;QAAAnB,GAAA;QAAAoB,KAAA;UAAAC,OAAA,EAEU;QAAA;QAAA5C,QAAA,EAElByC,IAAA,CAAC;UAAAxC,SAAA,EAAc;UAAAD;QAAA,C;UAGnByC,IAAA,CAAC;QAAAxC,SAAA,EACYmC,GAOD,CAAAM,IAAA,CACF;QAAAG,KAAA,EACD9B,iBAAA,CAAkBf,QAAA;QAAAA,QAAA,EAEzByC,IAAA,CAAC;UAAAxC,SAAA,EAAc;UAAAD;QAAA,C;;;;;;;;;;;;;;;SAzBnBgC,G;CA6BJ;AAnFwC,SAAAhB,MAAA8B,OAAA;EAAA,OAeE,OAAOA,OAAA,KAAY,WAAWA,OAAA,GAAU;AAAA","ignoreList":[]}
|
|
@@ -37,7 +37,7 @@ const validate = value => {
|
|
|
37
37
|
return true;
|
|
38
38
|
};
|
|
39
39
|
export const UploadActions = t0 => {
|
|
40
|
-
const $ = _c(
|
|
40
|
+
const $ = _c(10);
|
|
41
41
|
const {
|
|
42
42
|
customActions,
|
|
43
43
|
enableAdjustments,
|
|
@@ -60,6 +60,14 @@ export const UploadActions = t0 => {
|
|
|
60
60
|
t2 = null;
|
|
61
61
|
break bb0;
|
|
62
62
|
}
|
|
63
|
+
let t3;
|
|
64
|
+
if ($[8] !== customActions) {
|
|
65
|
+
t3 = customActions && customActions.map(_temp);
|
|
66
|
+
$[8] = customActions;
|
|
67
|
+
$[9] = t3;
|
|
68
|
+
} else {
|
|
69
|
+
t3 = $[9];
|
|
70
|
+
}
|
|
63
71
|
t1 = _jsxs("div", {
|
|
64
72
|
className: `${baseClass}__upload-actions`,
|
|
65
73
|
children: [fileTypeIsAdjustable && _jsxs(React.Fragment, {
|
|
@@ -82,7 +90,7 @@ export const UploadActions = t0 => {
|
|
|
82
90
|
size: "small",
|
|
83
91
|
children: t("upload:editImage")
|
|
84
92
|
})]
|
|
85
|
-
}),
|
|
93
|
+
}), t3]
|
|
86
94
|
});
|
|
87
95
|
}
|
|
88
96
|
$[0] = customActions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useModal","isImage","React","Fragment","useCallback","useEffect","useRef","useState","toast","FieldError","fieldBaseClass","useForm","useFormProcessing","useField","useConfig","useDocumentInfo","EditDepthProvider","useTranslation","UploadControlsProvider","useUploadControls","useUploadEdits","Button","Drawer","Dropzone","EditUpload","FileDetails","PreviewSizes","Thumbnail","baseClass","editDrawerSlug","sizePreviewSlug","validate","value","undefined","name","UploadActions","t0","$","customActions","enableAdjustments","enablePreviewSizes","mimeType","t","openModal","t1","t2","Symbol","for","bb0","fileTypeIsAdjustable","length","_jsxs","className","children","_jsx","buttonStyle","margin","onClick","size","map","_temp","Upload","props","resetUploadEdits","updateUploadEdits","uploadEdits","Upload_v4","collectionSlug","initialState","onChange","uploadConfig","UploadControls","setUploadControlFile","setUploadControlFileName","setUploadControlFileUrl","uploadControlFile","uploadControlFileName","uploadControlFileUrl","config","routes","api","serverURL","setModified","id","data","docPermissions","setUploadStatus","isFormSubmitting","errorMessage","setValue","showError","path","fileSrc","setFileSrc","removedFile","setRemovedFile","filename","setFilename","showUrlInput","setShowUrlInput","fileUrl","setFileUrl","urlInputRef","inputRef","useServerSideFetch","pasteURL","allowList","handleFileChange","file","isNewFile","File","URL","createObjectURL","renameFile","fileToChange","newName","newFile","type","lastModified","handleFileNameChange","e","updatedFileName","target","handleFileSelection","files","fileToUpload","handleFileRemoval","onEditsSave","args","handleUrlSubmit","clientResponse","fetch","ok","Error","status","blob","fileName","decodeURIComponent","split","pop","_clientError","error","encodeURIComponent","serverResponse","_serverError","current","canRemoveUpload","update","hasImageSizes","imageSizes","hasResizeOptions","Boolean","resizeOptions","focalPointEnabled","focalPoint","crop","showCrop","showFocalPoint","acceptMimeTypes","mimeTypes","join","imageCacheTag","cacheTags","updatedAt","handleControlFileUrl","handleControlFile","filter","message","customUploadActions","doc","handleRemove","hideRemoveFile","hideFileInputOnCreate","click","accept","hidden","ref","title","icon","iconStyle","round","tooltip","Header","slug","url","initialCrop","initialFocalPoint","x","focalX","y","focalY","onSave","hoverTitle","label","CustomAction","i"],"sources":["../../../src/elements/Upload/index.tsx"],"sourcesContent":["'use client'\nimport type { FormState, SanitizedCollectionConfig, UploadEdits } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { isImage } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { fieldBaseClass } from '../../fields/shared/index.js'\nimport { useForm, useFormProcessing } from '../../forms/Form/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { UploadControlsProvider, useUploadControls } from '../../providers/UploadControls/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { Dropzone } from '../Dropzone/index.js'\nimport { EditUpload } from '../EditUpload/index.js'\nimport './index.scss'\nimport { FileDetails } from '../FileDetails/index.js'\nimport { PreviewSizes } from '../PreviewSizes/index.js'\nimport { Thumbnail } from '../Thumbnail/index.js'\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 if (value && (!value.name || value.name === '')) {\n return 'A file name is required.'\n }\n\n return true\n}\n\ntype UploadActionsArgs = {\n readonly customActions?: React.ReactNode[]\n readonly enableAdjustments: boolean\n readonly enablePreviewSizes: boolean\n readonly mimeType: string\n}\n\nexport const UploadActions = ({\n customActions,\n enableAdjustments,\n enablePreviewSizes,\n mimeType,\n}: UploadActionsArgs) => {\n const { t } = useTranslation()\n const { openModal } = useModal()\n\n const fileTypeIsAdjustable =\n isImage(mimeType) && mimeType !== 'image/svg+xml' && mimeType !== 'image/jxl'\n\n if (!fileTypeIsAdjustable && (!customActions || customActions.length === 0)) {\n return null\n }\n\n return (\n <div className={`${baseClass}__upload-actions`}>\n {fileTypeIsAdjustable && (\n <React.Fragment>\n {enablePreviewSizes && (\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__previewSizes`}\n margin={false}\n onClick={() => {\n openModal(sizePreviewSlug)\n }}\n size=\"small\"\n >\n {t('upload:previewSizes')}\n </Button>\n )}\n {enableAdjustments && (\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__edit`}\n margin={false}\n onClick={() => {\n openModal(editDrawerSlug)\n }}\n size=\"small\"\n >\n {t('upload:editImage')}\n </Button>\n )}\n </React.Fragment>\n )}\n\n {customActions &&\n customActions.map((CustomAction, i) => {\n return <React.Fragment key={i}>{CustomAction}</React.Fragment>\n })}\n </div>\n )\n}\n\nexport type UploadProps = {\n readonly collectionSlug: string\n readonly customActions?: React.ReactNode[]\n readonly initialState?: FormState\n readonly onChange?: (file?: File) => void\n readonly uploadConfig: SanitizedCollectionConfig['upload']\n readonly UploadControls?: React.ReactNode\n}\n\nexport const Upload: React.FC<UploadProps> = (props) => {\n const { resetUploadEdits, updateUploadEdits, uploadEdits } = useUploadEdits()\n return (\n <UploadControlsProvider>\n <Upload_v4\n {...props}\n resetUploadEdits={resetUploadEdits}\n updateUploadEdits={updateUploadEdits}\n uploadEdits={uploadEdits}\n />\n </UploadControlsProvider>\n )\n}\n\nexport type UploadProps_v4 = {\n readonly resetUploadEdits?: () => void\n readonly updateUploadEdits?: (args: UploadEdits) => void\n readonly uploadEdits?: UploadEdits\n} & UploadProps\n\nexport const Upload_v4: React.FC<UploadProps_v4> = (props) => {\n const {\n collectionSlug,\n customActions,\n initialState,\n onChange,\n resetUploadEdits,\n updateUploadEdits,\n uploadConfig,\n UploadControls,\n uploadEdits,\n } = props\n\n const {\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n uploadControlFile,\n uploadControlFileName,\n uploadControlFileUrl,\n } = useUploadControls()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { t } = useTranslation()\n const { setModified } = useForm()\n const { id, data, docPermissions, setUploadStatus } = useDocumentInfo()\n const isFormSubmitting = useFormProcessing()\n const { errorMessage, setValue, showError, value } = useField<File>({\n path: 'file',\n validate,\n })\n\n const [fileSrc, setFileSrc] = useState<null | string>(null)\n const [removedFile, setRemovedFile] = useState(false)\n const [filename, setFilename] = useState<string>(value?.name || '')\n const [showUrlInput, setShowUrlInput] = useState(false)\n const [fileUrl, setFileUrl] = useState<string>('')\n\n const urlInputRef = useRef<HTMLInputElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n\n const useServerSideFetch =\n typeof uploadConfig?.pasteURL === 'object' && uploadConfig.pasteURL.allowList?.length > 0\n\n const handleFileChange = useCallback(\n ({ file, isNewFile = true }: { file: File | null; isNewFile?: boolean }) => {\n if (isNewFile && file instanceof File) {\n setFileSrc(URL.createObjectURL(file))\n }\n\n setValue(file)\n setShowUrlInput(false)\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n\n if (typeof onChange === 'function') {\n onChange(file)\n }\n },\n [onChange, setValue, setUploadControlFile, setUploadControlFileName, setUploadControlFileUrl],\n )\n\n const renameFile = (fileToChange: File, newName: string): File => {\n // Creating a new File object with updated properties\n const newFile = new File([fileToChange], newName, {\n type: fileToChange.type,\n lastModified: fileToChange.lastModified,\n })\n return newFile\n }\n\n const handleFileNameChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const updatedFileName = e.target.value\n\n if (value) {\n handleFileChange({ file: renameFile(value, updatedFileName), isNewFile: false })\n setFilename(updatedFileName)\n }\n },\n [handleFileChange, value],\n )\n\n const handleFileSelection = useCallback(\n (files: FileList) => {\n const fileToUpload = files?.[0]\n handleFileChange({ file: fileToUpload })\n },\n [handleFileChange],\n )\n\n const handleFileRemoval = useCallback(() => {\n setRemovedFile(true)\n handleFileChange({ file: null })\n setFileSrc('')\n setFileUrl('')\n resetUploadEdits()\n setShowUrlInput(false)\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n }, [\n handleFileChange,\n resetUploadEdits,\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n ])\n\n const onEditsSave = useCallback(\n (args: UploadEdits) => {\n setModified(true)\n updateUploadEdits(args)\n },\n [setModified, updateUploadEdits],\n )\n\n const handleUrlSubmit = useCallback(async () => {\n if (!fileUrl || uploadConfig?.pasteURL === false) {\n return\n }\n\n setUploadStatus('uploading')\n try {\n // Attempt client-side fetch\n const clientResponse = await fetch(fileUrl)\n\n if (!clientResponse.ok) {\n throw new Error(`Fetch failed with status: ${clientResponse.status}`)\n }\n\n const blob = await clientResponse.blob()\n const fileName = uploadControlFileName || decodeURIComponent(fileUrl.split('/').pop() || '')\n const file = new File([blob], fileName, { type: blob.type })\n\n handleFileChange({ file })\n setUploadStatus('idle')\n return // Exit if client-side fetch succeeds\n } catch (_clientError) {\n if (!useServerSideFetch) {\n // If server-side fetch is not enabled, show client-side error\n toast.error('Failed to fetch the file.')\n setUploadStatus('failed')\n return\n }\n }\n\n // Attempt server-side fetch if client-side fetch fails and useServerSideFetch is true\n try {\n const pasteURL = `/${collectionSlug}/paste-url${id ? `/${id}?` : '?'}src=${encodeURIComponent(fileUrl)}`\n const serverResponse = await fetch(`${serverURL}${api}${pasteURL}`)\n\n if (!serverResponse.ok) {\n throw new Error(`Fetch failed with status: ${serverResponse.status}`)\n }\n\n const blob = await serverResponse.blob()\n const fileName = decodeURIComponent(fileUrl.split('/').pop() || '')\n const file = new File([blob], fileName, { type: blob.type })\n\n handleFileChange({ file })\n setUploadStatus('idle')\n } catch (_serverError) {\n toast.error('The provided URL is not allowed.')\n setUploadStatus('failed')\n }\n }, [\n api,\n collectionSlug,\n fileUrl,\n handleFileChange,\n id,\n serverURL,\n setUploadStatus,\n uploadConfig,\n uploadControlFileName,\n useServerSideFetch,\n ])\n\n useEffect(() => {\n if (initialState?.file?.value instanceof File) {\n setFileSrc(URL.createObjectURL(initialState.file.value))\n setRemovedFile(false)\n }\n }, [initialState])\n\n useEffect(() => {\n if (showUrlInput && urlInputRef.current) {\n // urlInputRef.current.focus() // Focus on the remote-url input field when showUrlInput is true\n }\n }, [showUrlInput])\n\n useEffect(() => {\n if (isFormSubmitting) {\n setRemovedFile(false)\n }\n }, [isFormSubmitting])\n\n const canRemoveUpload = docPermissions?.update\n\n const hasImageSizes = uploadConfig?.imageSizes?.length > 0\n const hasResizeOptions = Boolean(uploadConfig?.resizeOptions)\n // Explicity check if set to true, default is undefined\n const focalPointEnabled = uploadConfig?.focalPoint === true\n\n const { crop: showCrop = true, focalPoint = true } = uploadConfig\n\n const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions || focalPointEnabled)\n\n const acceptMimeTypes = uploadConfig.mimeTypes?.join(', ')\n\n const imageCacheTag = uploadConfig?.cacheTags && data?.updatedAt\n\n useEffect(() => {\n const handleControlFileUrl = async () => {\n if (uploadControlFileUrl) {\n setFileUrl(uploadControlFileUrl)\n await handleUrlSubmit()\n }\n }\n\n void handleControlFileUrl()\n }, [uploadControlFileUrl, handleUrlSubmit])\n\n useEffect(() => {\n const handleControlFile = () => {\n if (uploadControlFile) {\n handleFileChange({ file: uploadControlFile })\n }\n }\n\n void handleControlFile()\n }, [uploadControlFile, handleFileChange])\n\n return (\n <div className={[fieldBaseClass, baseClass].filter(Boolean).join(' ')}>\n <FieldError message={errorMessage} showError={showError} />\n {data && data.filename && !removedFile && (\n <FileDetails\n collectionSlug={collectionSlug}\n customUploadActions={customActions}\n doc={data}\n enableAdjustments={showCrop || showFocalPoint}\n handleRemove={canRemoveUpload ? handleFileRemoval : undefined}\n hasImageSizes={hasImageSizes}\n hideRemoveFile={uploadConfig.hideRemoveFile}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n )}\n {((!uploadConfig.hideFileInputOnCreate && !data?.filename) || removedFile) && (\n <div className={`${baseClass}__upload`}>\n {!value && !showUrlInput && (\n <Dropzone onChange={handleFileSelection}>\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneButtons`}>\n <Button\n buttonStyle=\"pill\"\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.click()\n }\n }}\n size=\"small\"\n >\n {t('upload:selectFile')}\n </Button>\n <input\n accept={acceptMimeTypes}\n aria-hidden=\"true\"\n className={`${baseClass}__hidden-input`}\n hidden\n onChange={(e) => {\n if (e.target.files && e.target.files.length > 0) {\n handleFileSelection(e.target.files)\n }\n }}\n ref={inputRef}\n type=\"file\"\n />\n {uploadConfig?.pasteURL !== false && (\n <Fragment>\n <span className={`${baseClass}__orText`}>{t('general:or')}</span>\n <Button\n buttonStyle=\"pill\"\n onClick={() => {\n setShowUrlInput(true)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n setUploadControlFileName(null)\n }}\n size=\"small\"\n >\n {t('upload:pasteURL')}\n </Button>\n </Fragment>\n )}\n\n {UploadControls ? UploadControls : null}\n </div>\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n </div>\n </Dropzone>\n )}\n {showUrlInput && (\n <React.Fragment>\n <div className={`${baseClass}__remote-file-wrap`}>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <input\n className={`${baseClass}__remote-file`}\n onChange={(e) => {\n setFileUrl(e.target.value)\n }}\n ref={urlInputRef}\n title={fileUrl}\n type=\"text\"\n value={fileUrl}\n />\n <div className={`${baseClass}__add-file-wrap`}>\n <button\n className={`${baseClass}__add-file`}\n onClick={() => {\n void handleUrlSubmit()\n }}\n type=\"button\"\n >\n {t('upload:addFile')}\n </button>\n </div>\n </div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={() => {\n setShowUrlInput(false)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n setUploadControlFileName(null)\n }}\n round\n tooltip={t('general:cancel')}\n />\n </React.Fragment>\n )}\n {value && fileSrc && (\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 {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <input\n className={`${baseClass}__filename`}\n onChange={handleFileNameChange}\n title={filename || value.name}\n type=\"text\"\n value={filename || value.name}\n />\n <UploadActions\n customActions={customActions}\n enableAdjustments={showCrop || showFocalPoint}\n enablePreviewSizes={hasImageSizes && data?.filename && !removedFile}\n mimeType={value.type}\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 || data?.filename) && (\n <EditDepthProvider>\n <Drawer Header={null} slug={editDrawerSlug}>\n <EditUpload\n fileName={value?.name || data?.filename}\n fileSrc={data?.url || fileSrc}\n imageCacheTag={imageCacheTag}\n initialCrop={uploadEdits?.crop ?? undefined}\n initialFocalPoint={{\n x: uploadEdits?.focalPoint?.x || data?.focalX || 50,\n y: uploadEdits?.focalPoint?.y || data?.focalY || 50,\n }}\n onSave={onEditsSave}\n showCrop={showCrop}\n showFocalPoint={showFocalPoint}\n />\n </Drawer>\n </EditDepthProvider>\n )}\n {data && hasImageSizes && (\n <Drawer\n className={`${baseClass}__previewDrawer`}\n hoverTitle\n slug={sizePreviewSlug}\n title={t('upload:sizesFor', { label: data.filename })}\n >\n <PreviewSizes doc={data} imageCacheTag={imageCacheTag} uploadConfig={uploadConfig} />\n </Drawer>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useModal","isImage","React","Fragment","useCallback","useEffect","useRef","useState","toast","FieldError","fieldBaseClass","useForm","useFormProcessing","useField","useConfig","useDocumentInfo","EditDepthProvider","useTranslation","UploadControlsProvider","useUploadControls","useUploadEdits","Button","Drawer","Dropzone","EditUpload","FileDetails","PreviewSizes","Thumbnail","baseClass","editDrawerSlug","sizePreviewSlug","validate","value","undefined","name","UploadActions","t0","$","customActions","enableAdjustments","enablePreviewSizes","mimeType","t","openModal","t1","t2","Symbol","for","bb0","fileTypeIsAdjustable","length","t3","map","_temp","_jsxs","className","children","_jsx","buttonStyle","margin","onClick","size","Upload","props","resetUploadEdits","updateUploadEdits","uploadEdits","Upload_v4","collectionSlug","initialState","onChange","uploadConfig","UploadControls","setUploadControlFile","setUploadControlFileName","setUploadControlFileUrl","uploadControlFile","uploadControlFileName","uploadControlFileUrl","config","routes","api","serverURL","setModified","id","data","docPermissions","setUploadStatus","isFormSubmitting","errorMessage","setValue","showError","path","fileSrc","setFileSrc","removedFile","setRemovedFile","filename","setFilename","showUrlInput","setShowUrlInput","fileUrl","setFileUrl","urlInputRef","inputRef","useServerSideFetch","pasteURL","allowList","handleFileChange","file","isNewFile","File","URL","createObjectURL","renameFile","fileToChange","newName","newFile","type","lastModified","handleFileNameChange","e","updatedFileName","target","handleFileSelection","files","fileToUpload","handleFileRemoval","onEditsSave","args","handleUrlSubmit","clientResponse","fetch","ok","Error","status","blob","fileName","decodeURIComponent","split","pop","_clientError","error","encodeURIComponent","serverResponse","_serverError","current","canRemoveUpload","update","hasImageSizes","imageSizes","hasResizeOptions","Boolean","resizeOptions","focalPointEnabled","focalPoint","crop","showCrop","showFocalPoint","acceptMimeTypes","mimeTypes","join","imageCacheTag","cacheTags","updatedAt","handleControlFileUrl","handleControlFile","filter","message","customUploadActions","doc","handleRemove","hideRemoveFile","hideFileInputOnCreate","click","accept","hidden","ref","title","icon","iconStyle","round","tooltip","Header","slug","url","initialCrop","initialFocalPoint","x","focalX","y","focalY","onSave","hoverTitle","label","CustomAction","i"],"sources":["../../../src/elements/Upload/index.tsx"],"sourcesContent":["'use client'\nimport type { FormState, SanitizedCollectionConfig, UploadEdits } from 'payload'\n\nimport { useModal } from '@faceless-ui/modal'\nimport { isImage } from 'payload/shared'\nimport React, { Fragment, useCallback, useEffect, useRef, useState } from 'react'\nimport { toast } from 'sonner'\n\nimport { FieldError } from '../../fields/FieldError/index.js'\nimport { fieldBaseClass } from '../../fields/shared/index.js'\nimport { useForm, useFormProcessing } from '../../forms/Form/index.js'\nimport { useField } from '../../forms/useField/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { EditDepthProvider } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { UploadControlsProvider, useUploadControls } from '../../providers/UploadControls/index.js'\nimport { useUploadEdits } from '../../providers/UploadEdits/index.js'\nimport { Button } from '../Button/index.js'\nimport { Drawer } from '../Drawer/index.js'\nimport { Dropzone } from '../Dropzone/index.js'\nimport { EditUpload } from '../EditUpload/index.js'\nimport './index.scss'\nimport { FileDetails } from '../FileDetails/index.js'\nimport { PreviewSizes } from '../PreviewSizes/index.js'\nimport { Thumbnail } from '../Thumbnail/index.js'\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 if (value && (!value.name || value.name === '')) {\n return 'A file name is required.'\n }\n\n return true\n}\n\ntype UploadActionsArgs = {\n readonly customActions?: React.ReactNode[]\n readonly enableAdjustments: boolean\n readonly enablePreviewSizes: boolean\n readonly mimeType: string\n}\n\nexport const UploadActions = ({\n customActions,\n enableAdjustments,\n enablePreviewSizes,\n mimeType,\n}: UploadActionsArgs) => {\n const { t } = useTranslation()\n const { openModal } = useModal()\n\n const fileTypeIsAdjustable =\n isImage(mimeType) && mimeType !== 'image/svg+xml' && mimeType !== 'image/jxl'\n\n if (!fileTypeIsAdjustable && (!customActions || customActions.length === 0)) {\n return null\n }\n\n return (\n <div className={`${baseClass}__upload-actions`}>\n {fileTypeIsAdjustable && (\n <React.Fragment>\n {enablePreviewSizes && (\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__previewSizes`}\n margin={false}\n onClick={() => {\n openModal(sizePreviewSlug)\n }}\n size=\"small\"\n >\n {t('upload:previewSizes')}\n </Button>\n )}\n {enableAdjustments && (\n <Button\n buttonStyle=\"pill\"\n className={`${baseClass}__edit`}\n margin={false}\n onClick={() => {\n openModal(editDrawerSlug)\n }}\n size=\"small\"\n >\n {t('upload:editImage')}\n </Button>\n )}\n </React.Fragment>\n )}\n\n {customActions &&\n customActions.map((CustomAction, i) => {\n return <React.Fragment key={i}>{CustomAction}</React.Fragment>\n })}\n </div>\n )\n}\n\nexport type UploadProps = {\n readonly collectionSlug: string\n readonly customActions?: React.ReactNode[]\n readonly initialState?: FormState\n readonly onChange?: (file?: File) => void\n readonly uploadConfig: SanitizedCollectionConfig['upload']\n readonly UploadControls?: React.ReactNode\n}\n\nexport const Upload: React.FC<UploadProps> = (props) => {\n const { resetUploadEdits, updateUploadEdits, uploadEdits } = useUploadEdits()\n return (\n <UploadControlsProvider>\n <Upload_v4\n {...props}\n resetUploadEdits={resetUploadEdits}\n updateUploadEdits={updateUploadEdits}\n uploadEdits={uploadEdits}\n />\n </UploadControlsProvider>\n )\n}\n\nexport type UploadProps_v4 = {\n readonly resetUploadEdits?: () => void\n readonly updateUploadEdits?: (args: UploadEdits) => void\n readonly uploadEdits?: UploadEdits\n} & UploadProps\n\nexport const Upload_v4: React.FC<UploadProps_v4> = (props) => {\n const {\n collectionSlug,\n customActions,\n initialState,\n onChange,\n resetUploadEdits,\n updateUploadEdits,\n uploadConfig,\n UploadControls,\n uploadEdits,\n } = props\n\n const {\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n uploadControlFile,\n uploadControlFileName,\n uploadControlFileUrl,\n } = useUploadControls()\n\n const {\n config: {\n routes: { api },\n serverURL,\n },\n } = useConfig()\n\n const { t } = useTranslation()\n const { setModified } = useForm()\n const { id, data, docPermissions, setUploadStatus } = useDocumentInfo()\n const isFormSubmitting = useFormProcessing()\n const { errorMessage, setValue, showError, value } = useField<File>({\n path: 'file',\n validate,\n })\n\n const [fileSrc, setFileSrc] = useState<null | string>(null)\n const [removedFile, setRemovedFile] = useState(false)\n const [filename, setFilename] = useState<string>(value?.name || '')\n const [showUrlInput, setShowUrlInput] = useState(false)\n const [fileUrl, setFileUrl] = useState<string>('')\n\n const urlInputRef = useRef<HTMLInputElement>(null)\n const inputRef = useRef<HTMLInputElement>(null)\n\n const useServerSideFetch =\n typeof uploadConfig?.pasteURL === 'object' && uploadConfig.pasteURL.allowList?.length > 0\n\n const handleFileChange = useCallback(\n ({ file, isNewFile = true }: { file: File | null; isNewFile?: boolean }) => {\n if (isNewFile && file instanceof File) {\n setFileSrc(URL.createObjectURL(file))\n }\n\n setValue(file)\n setShowUrlInput(false)\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n\n if (typeof onChange === 'function') {\n onChange(file)\n }\n },\n [onChange, setValue, setUploadControlFile, setUploadControlFileName, setUploadControlFileUrl],\n )\n\n const renameFile = (fileToChange: File, newName: string): File => {\n // Creating a new File object with updated properties\n const newFile = new File([fileToChange], newName, {\n type: fileToChange.type,\n lastModified: fileToChange.lastModified,\n })\n return newFile\n }\n\n const handleFileNameChange = React.useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const updatedFileName = e.target.value\n\n if (value) {\n handleFileChange({ file: renameFile(value, updatedFileName), isNewFile: false })\n setFilename(updatedFileName)\n }\n },\n [handleFileChange, value],\n )\n\n const handleFileSelection = useCallback(\n (files: FileList) => {\n const fileToUpload = files?.[0]\n handleFileChange({ file: fileToUpload })\n },\n [handleFileChange],\n )\n\n const handleFileRemoval = useCallback(() => {\n setRemovedFile(true)\n handleFileChange({ file: null })\n setFileSrc('')\n setFileUrl('')\n resetUploadEdits()\n setShowUrlInput(false)\n setUploadControlFileUrl('')\n setUploadControlFileName(null)\n setUploadControlFile(null)\n }, [\n handleFileChange,\n resetUploadEdits,\n setUploadControlFile,\n setUploadControlFileName,\n setUploadControlFileUrl,\n ])\n\n const onEditsSave = useCallback(\n (args: UploadEdits) => {\n setModified(true)\n updateUploadEdits(args)\n },\n [setModified, updateUploadEdits],\n )\n\n const handleUrlSubmit = useCallback(async () => {\n if (!fileUrl || uploadConfig?.pasteURL === false) {\n return\n }\n\n setUploadStatus('uploading')\n try {\n // Attempt client-side fetch\n const clientResponse = await fetch(fileUrl)\n\n if (!clientResponse.ok) {\n throw new Error(`Fetch failed with status: ${clientResponse.status}`)\n }\n\n const blob = await clientResponse.blob()\n const fileName = uploadControlFileName || decodeURIComponent(fileUrl.split('/').pop() || '')\n const file = new File([blob], fileName, { type: blob.type })\n\n handleFileChange({ file })\n setUploadStatus('idle')\n return // Exit if client-side fetch succeeds\n } catch (_clientError) {\n if (!useServerSideFetch) {\n // If server-side fetch is not enabled, show client-side error\n toast.error('Failed to fetch the file.')\n setUploadStatus('failed')\n return\n }\n }\n\n // Attempt server-side fetch if client-side fetch fails and useServerSideFetch is true\n try {\n const pasteURL = `/${collectionSlug}/paste-url${id ? `/${id}?` : '?'}src=${encodeURIComponent(fileUrl)}`\n const serverResponse = await fetch(`${serverURL}${api}${pasteURL}`)\n\n if (!serverResponse.ok) {\n throw new Error(`Fetch failed with status: ${serverResponse.status}`)\n }\n\n const blob = await serverResponse.blob()\n const fileName = decodeURIComponent(fileUrl.split('/').pop() || '')\n const file = new File([blob], fileName, { type: blob.type })\n\n handleFileChange({ file })\n setUploadStatus('idle')\n } catch (_serverError) {\n toast.error('The provided URL is not allowed.')\n setUploadStatus('failed')\n }\n }, [\n api,\n collectionSlug,\n fileUrl,\n handleFileChange,\n id,\n serverURL,\n setUploadStatus,\n uploadConfig,\n uploadControlFileName,\n useServerSideFetch,\n ])\n\n useEffect(() => {\n if (initialState?.file?.value instanceof File) {\n setFileSrc(URL.createObjectURL(initialState.file.value))\n setRemovedFile(false)\n }\n }, [initialState])\n\n useEffect(() => {\n if (showUrlInput && urlInputRef.current) {\n // urlInputRef.current.focus() // Focus on the remote-url input field when showUrlInput is true\n }\n }, [showUrlInput])\n\n useEffect(() => {\n if (isFormSubmitting) {\n setRemovedFile(false)\n }\n }, [isFormSubmitting])\n\n const canRemoveUpload = docPermissions?.update\n\n const hasImageSizes = uploadConfig?.imageSizes?.length > 0\n const hasResizeOptions = Boolean(uploadConfig?.resizeOptions)\n // Explicity check if set to true, default is undefined\n const focalPointEnabled = uploadConfig?.focalPoint === true\n\n const { crop: showCrop = true, focalPoint = true } = uploadConfig\n\n const showFocalPoint = focalPoint && (hasImageSizes || hasResizeOptions || focalPointEnabled)\n\n const acceptMimeTypes = uploadConfig.mimeTypes?.join(', ')\n\n const imageCacheTag = uploadConfig?.cacheTags && data?.updatedAt\n\n useEffect(() => {\n const handleControlFileUrl = async () => {\n if (uploadControlFileUrl) {\n setFileUrl(uploadControlFileUrl)\n await handleUrlSubmit()\n }\n }\n\n void handleControlFileUrl()\n }, [uploadControlFileUrl, handleUrlSubmit])\n\n useEffect(() => {\n const handleControlFile = () => {\n if (uploadControlFile) {\n handleFileChange({ file: uploadControlFile })\n }\n }\n\n void handleControlFile()\n }, [uploadControlFile, handleFileChange])\n\n return (\n <div className={[fieldBaseClass, baseClass].filter(Boolean).join(' ')}>\n <FieldError message={errorMessage} showError={showError} />\n {data && data.filename && !removedFile && (\n <FileDetails\n collectionSlug={collectionSlug}\n customUploadActions={customActions}\n doc={data}\n enableAdjustments={showCrop || showFocalPoint}\n handleRemove={canRemoveUpload ? handleFileRemoval : undefined}\n hasImageSizes={hasImageSizes}\n hideRemoveFile={uploadConfig.hideRemoveFile}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n )}\n {((!uploadConfig.hideFileInputOnCreate && !data?.filename) || removedFile) && (\n <div className={`${baseClass}__upload`}>\n {!value && !showUrlInput && (\n <Dropzone onChange={handleFileSelection}>\n <div className={`${baseClass}__dropzoneContent`}>\n <div className={`${baseClass}__dropzoneButtons`}>\n <Button\n buttonStyle=\"pill\"\n onClick={() => {\n if (inputRef.current) {\n inputRef.current.click()\n }\n }}\n size=\"small\"\n >\n {t('upload:selectFile')}\n </Button>\n <input\n accept={acceptMimeTypes}\n aria-hidden=\"true\"\n className={`${baseClass}__hidden-input`}\n hidden\n onChange={(e) => {\n if (e.target.files && e.target.files.length > 0) {\n handleFileSelection(e.target.files)\n }\n }}\n ref={inputRef}\n type=\"file\"\n />\n {uploadConfig?.pasteURL !== false && (\n <Fragment>\n <span className={`${baseClass}__orText`}>{t('general:or')}</span>\n <Button\n buttonStyle=\"pill\"\n onClick={() => {\n setShowUrlInput(true)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n setUploadControlFileName(null)\n }}\n size=\"small\"\n >\n {t('upload:pasteURL')}\n </Button>\n </Fragment>\n )}\n\n {UploadControls ? UploadControls : null}\n </div>\n <p className={`${baseClass}__dragAndDropText`}>\n {t('general:or')} {t('upload:dragAndDrop')}\n </p>\n </div>\n </Dropzone>\n )}\n {showUrlInput && (\n <React.Fragment>\n <div className={`${baseClass}__remote-file-wrap`}>\n {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <input\n className={`${baseClass}__remote-file`}\n onChange={(e) => {\n setFileUrl(e.target.value)\n }}\n ref={urlInputRef}\n title={fileUrl}\n type=\"text\"\n value={fileUrl}\n />\n <div className={`${baseClass}__add-file-wrap`}>\n <button\n className={`${baseClass}__add-file`}\n onClick={() => {\n void handleUrlSubmit()\n }}\n type=\"button\"\n >\n {t('upload:addFile')}\n </button>\n </div>\n </div>\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={() => {\n setShowUrlInput(false)\n setUploadControlFileUrl('')\n setUploadControlFile(null)\n setUploadControlFileName(null)\n }}\n round\n tooltip={t('general:cancel')}\n />\n </React.Fragment>\n )}\n {value && fileSrc && (\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 {/* eslint-disable-next-line jsx-a11y/control-has-associated-label */}\n <input\n className={`${baseClass}__filename`}\n onChange={handleFileNameChange}\n title={filename || value.name}\n type=\"text\"\n value={filename || value.name}\n />\n <UploadActions\n customActions={customActions}\n enableAdjustments={showCrop || showFocalPoint}\n enablePreviewSizes={hasImageSizes && data?.filename && !removedFile}\n mimeType={value.type}\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 || data?.filename) && (\n <EditDepthProvider>\n <Drawer Header={null} slug={editDrawerSlug}>\n <EditUpload\n fileName={value?.name || data?.filename}\n fileSrc={data?.url || fileSrc}\n imageCacheTag={imageCacheTag}\n initialCrop={uploadEdits?.crop ?? undefined}\n initialFocalPoint={{\n x: uploadEdits?.focalPoint?.x || data?.focalX || 50,\n y: uploadEdits?.focalPoint?.y || data?.focalY || 50,\n }}\n onSave={onEditsSave}\n showCrop={showCrop}\n showFocalPoint={showFocalPoint}\n />\n </Drawer>\n </EditDepthProvider>\n )}\n {data && hasImageSizes && (\n <Drawer\n className={`${baseClass}__previewDrawer`}\n hoverTitle\n slug={sizePreviewSlug}\n title={t('upload:sizesFor', { label: data.filename })}\n >\n <PreviewSizes doc={data} imageCacheTag={imageCacheTag} uploadConfig={uploadConfig} />\n </Drawer>\n )}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|