@payloadcms/ui 3.28.0-internal.b3cf0a3 → 3.28.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/CodeEditor/CodeEditor.d.ts.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.js +19 -16
- package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
- package/dist/elements/DocumentControls/index.d.ts.map +1 -1
- package/dist/elements/DocumentControls/index.js +2 -1
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.d.ts.map +1 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js +2 -1
- package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.d.ts.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/File/index.js +26 -17
- package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +2 -2
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.d.ts.map +1 -1
- package/dist/elements/Thumbnail/index.js +2 -0
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.scss +2 -1
- package/dist/elements/Toasts/fieldErrors.d.ts.map +1 -1
- package/dist/elements/Toasts/fieldErrors.js +2 -1
- package/dist/elements/Toasts/fieldErrors.js.map +1 -1
- package/dist/exports/client/{CodeEditor-L6GW2VQ6.js → CodeEditor-TQ5ADFPC.js} +2 -2
- package/dist/exports/client/{chunk-ZZDNSFEW.js → chunk-LMYT7O7U.js} +6 -6
- package/dist/exports/client/chunk-LMYT7O7U.js.map +7 -0
- package/dist/exports/client/index.js +23 -23
- package/dist/exports/client/index.js.map +4 -4
- package/dist/fields/Array/index.js +1 -1
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.js +5 -5
- package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
- package/dist/fields/Blocks/BlocksDrawer/index.scss +11 -2
- package/dist/fields/Blocks/index.js +1 -1
- package/dist/fields/Blocks/index.js.map +1 -1
- package/dist/fields/Collapsible/index.d.ts.map +1 -1
- package/dist/fields/Collapsible/index.js +2 -1
- package/dist/fields/Collapsible/index.js.map +1 -1
- package/dist/fields/Password/index.d.ts.map +1 -1
- package/dist/fields/Password/index.js +3 -1
- package/dist/fields/Password/index.js.map +1 -1
- package/dist/fields/Row/index.d.ts.map +1 -1
- package/dist/fields/Row/index.js +3 -1
- package/dist/fields/Row/index.js.map +1 -1
- package/dist/fields/Row/index.scss +7 -0
- package/dist/fields/Tabs/Tab/index.d.ts.map +1 -1
- package/dist/fields/Tabs/Tab/index.js +35 -61
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Upload/HasMany/index.d.ts +1 -0
- package/dist/fields/Upload/HasMany/index.d.ts.map +1 -1
- package/dist/fields/Upload/HasMany/index.js +28 -24
- package/dist/fields/Upload/HasMany/index.js.map +1 -1
- package/dist/fields/Upload/HasOne/index.d.ts +1 -0
- package/dist/fields/Upload/HasOne/index.d.ts.map +1 -1
- package/dist/fields/Upload/HasOne/index.js +2 -0
- package/dist/fields/Upload/HasOne/index.js.map +1 -1
- package/dist/fields/Upload/Input.d.ts +1 -0
- package/dist/fields/Upload/Input.d.ts.map +1 -1
- package/dist/fields/Upload/Input.js +34 -30
- package/dist/fields/Upload/Input.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.d.ts +1 -0
- package/dist/fields/Upload/RelationshipContent/index.d.ts.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.js +102 -77
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
- package/dist/fields/Upload/index.d.ts.map +1 -1
- package/dist/fields/Upload/index.js +2 -0
- package/dist/fields/Upload/index.js.map +1 -1
- package/dist/forms/Form/index.d.ts.map +1 -1
- package/dist/forms/Form/index.js +18 -22
- package/dist/forms/Form/index.js.map +1 -1
- package/dist/forms/Form/mergeServerFormState.d.ts.map +1 -1
- package/dist/forms/Form/mergeServerFormState.js +1 -1
- package/dist/forms/Form/mergeServerFormState.js.map +1 -1
- package/dist/forms/NullifyField/index.d.ts.map +1 -1
- package/dist/forms/NullifyField/index.js +4 -2
- package/dist/forms/NullifyField/index.js.map +1 -1
- package/dist/forms/WatchChildErrors/buildPathSegments.d.ts +1 -1
- package/dist/forms/WatchChildErrors/buildPathSegments.d.ts.map +1 -1
- package/dist/forms/WatchChildErrors/buildPathSegments.js +8 -11
- package/dist/forms/WatchChildErrors/buildPathSegments.js.map +1 -1
- package/dist/forms/WatchChildErrors/index.d.ts +6 -0
- package/dist/forms/WatchChildErrors/index.d.ts.map +1 -1
- package/dist/forms/WatchChildErrors/index.js +29 -17
- package/dist/forms/WatchChildErrors/index.js.map +1 -1
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +102 -91
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/graphics/DefaultBlockImage/index.d.ts.map +1 -1
- package/dist/graphics/DefaultBlockImage/index.js +54 -24
- package/dist/graphics/DefaultBlockImage/index.js.map +1 -1
- package/dist/hooks/useQueues.d.ts +4 -0
- package/dist/hooks/useQueues.d.ts.map +1 -0
- package/dist/hooks/useQueues.js +43 -0
- package/dist/hooks/useQueues.js.map +1 -0
- package/dist/providers/Locale/index.d.ts.map +1 -1
- package/dist/providers/Locale/index.js +8 -6
- package/dist/providers/Locale/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/views/Edit/Auth/APIKey.d.ts.map +1 -1
- package/dist/views/Edit/Auth/APIKey.js +1 -0
- package/dist/views/Edit/Auth/APIKey.js.map +1 -1
- package/package.json +4 -4
- package/dist/exports/client/chunk-ZZDNSFEW.js.map +0 -7
- package/dist/forms/WatchChildErrors/getFieldStateFromPaths.d.ts +0 -9
- package/dist/forms/WatchChildErrors/getFieldStateFromPaths.d.ts.map +0 -1
- package/dist/forms/WatchChildErrors/getFieldStateFromPaths.js +0 -29
- package/dist/forms/WatchChildErrors/getFieldStateFromPaths.js.map +0 -1
- package/dist/forms/WatchChildErrors/getNestedFieldState.d.ts +0 -12
- package/dist/forms/WatchChildErrors/getNestedFieldState.d.ts.map +0 -1
- package/dist/forms/WatchChildErrors/getNestedFieldState.js +0 -24
- package/dist/forms/WatchChildErrors/getNestedFieldState.js.map +0 -1
- /package/dist/exports/client/{CodeEditor-L6GW2VQ6.js.map → CodeEditor-TQ5ADFPC.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../../src/elements/CodeEditor/CodeEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIvC,OAAO,cAAc,CAAA;AAMrB,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"CodeEditor.d.ts","sourceRoot":"","sources":["../../../src/elements/CodeEditor/CodeEditor.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAA;AAIvC,OAAO,cAAc,CAAA;AAMrB,QAAA,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CA0D/B,CAAA;AAGD,eAAe,UAAU,CAAA"}
|
|
@@ -10,7 +10,7 @@ import './index.scss';
|
|
|
10
10
|
const Editor = EditorImport.default || EditorImport;
|
|
11
11
|
const baseClass = 'code-editor';
|
|
12
12
|
const CodeEditor = props => {
|
|
13
|
-
const $ = _c(
|
|
13
|
+
const $ = _c(26);
|
|
14
14
|
let className;
|
|
15
15
|
let maxHeight;
|
|
16
16
|
let minHeight;
|
|
@@ -42,6 +42,7 @@ const CodeEditor = props => {
|
|
|
42
42
|
rest = $[6];
|
|
43
43
|
}
|
|
44
44
|
const MIN_HEIGHT = minHeight ?? 56;
|
|
45
|
+
const paddingFromProps = options?.padding ? (options.padding.top || 0) + (options.padding?.bottom || 0) : 0;
|
|
45
46
|
const [dynamicHeight, setDynamicHeight] = useState(MIN_HEIGHT);
|
|
46
47
|
const {
|
|
47
48
|
theme
|
|
@@ -60,25 +61,26 @@ const CodeEditor = props => {
|
|
|
60
61
|
}
|
|
61
62
|
const classes = t2.join(" ");
|
|
62
63
|
let t3;
|
|
63
|
-
if ($[11] !== MIN_HEIGHT || $[12] !== classes || $[13] !== dynamicHeight || $[14] !== maxHeight || $[15] !== options || $[16] !==
|
|
64
|
+
if ($[11] !== MIN_HEIGHT || $[12] !== classes || $[13] !== dynamicHeight || $[14] !== maxHeight || $[15] !== options || $[16] !== paddingFromProps || $[17] !== readOnly || $[18] !== rest || $[19] !== theme) {
|
|
64
65
|
let t4;
|
|
65
66
|
let t5;
|
|
66
|
-
if ($[
|
|
67
|
+
if ($[21] !== MIN_HEIGHT || $[22] !== paddingFromProps || $[23] !== rest) {
|
|
67
68
|
t4 = (value, ev) => {
|
|
68
69
|
rest.onChange?.(value, ev);
|
|
69
|
-
setDynamicHeight(Math.max(MIN_HEIGHT, value.split("\n").length * 18 + 2));
|
|
70
|
+
setDynamicHeight(Math.max(MIN_HEIGHT, value.split("\n").length * 18 + 2 + paddingFromProps));
|
|
70
71
|
};
|
|
71
72
|
t5 = (editor, monaco) => {
|
|
72
73
|
rest.onMount?.(editor, monaco);
|
|
73
|
-
setDynamicHeight(Math.max(MIN_HEIGHT, editor.getValue().split("\n").length * 18 + 2));
|
|
74
|
+
setDynamicHeight(Math.max(MIN_HEIGHT, editor.getValue().split("\n").length * 18 + 2 + paddingFromProps));
|
|
74
75
|
};
|
|
75
|
-
$[
|
|
76
|
-
$[
|
|
77
|
-
$[
|
|
78
|
-
$[
|
|
76
|
+
$[21] = MIN_HEIGHT;
|
|
77
|
+
$[22] = paddingFromProps;
|
|
78
|
+
$[23] = rest;
|
|
79
|
+
$[24] = t4;
|
|
80
|
+
$[25] = t5;
|
|
79
81
|
} else {
|
|
80
|
-
t4 = $[
|
|
81
|
-
t5 = $[
|
|
82
|
+
t4 = $[24];
|
|
83
|
+
t5 = $[25];
|
|
82
84
|
}
|
|
83
85
|
t3 = _jsx(Editor, {
|
|
84
86
|
className: classes,
|
|
@@ -112,12 +114,13 @@ const CodeEditor = props => {
|
|
|
112
114
|
$[13] = dynamicHeight;
|
|
113
115
|
$[14] = maxHeight;
|
|
114
116
|
$[15] = options;
|
|
115
|
-
$[16] =
|
|
116
|
-
$[17] =
|
|
117
|
-
$[18] =
|
|
118
|
-
$[19] =
|
|
117
|
+
$[16] = paddingFromProps;
|
|
118
|
+
$[17] = readOnly;
|
|
119
|
+
$[18] = rest;
|
|
120
|
+
$[19] = theme;
|
|
121
|
+
$[20] = t3;
|
|
119
122
|
} else {
|
|
120
|
-
t3 = $[
|
|
123
|
+
t3 = $[20];
|
|
121
124
|
}
|
|
122
125
|
return t3;
|
|
123
126
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CodeEditor.js","names":["c","_c","EditorImport","React","useState","useTheme","ShimmerEffect","Editor","default","baseClass","CodeEditor","props","$","className","maxHeight","minHeight","options","readOnly","rest","MIN_HEIGHT","dynamicHeight","setDynamicHeight","theme","t0","defaultLanguage","t1","t2","filter","Boolean","classes","join","t3","t4","t5","value","ev","onChange","Math","max","split","length","editor","monaco","onMount","getValue","_jsx","loading","height","scrollbar","alwaysConsumeMouseWheel","scrollBeyondLastLine","tabSize","wordWrap","min"],"sources":["../../../src/elements/CodeEditor/CodeEditor.tsx"],"sourcesContent":["'use client'\nimport EditorImport from '@monaco-editor/react'\nimport React, { useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useTheme } from '../../providers/Theme/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport './index.scss'\n\nconst Editor = (EditorImport.default || EditorImport) as unknown as typeof EditorImport.default\n\nconst baseClass = 'code-editor'\n\nconst CodeEditor: React.FC<Props> = (props) => {\n const { className, maxHeight, minHeight, options, readOnly, ...rest } = props\n const MIN_HEIGHT = minHeight ?? 56 // equivalent to 3 lines\n\n const [dynamicHeight, setDynamicHeight] = useState(MIN_HEIGHT)\n const { theme } = useTheme()\n\n const classes = [\n baseClass,\n className,\n rest?.defaultLanguage ? `language--${rest.defaultLanguage}` : '',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <Editor\n className={classes}\n loading={<ShimmerEffect height={dynamicHeight} />}\n options={{\n detectIndentation: true,\n hideCursorInOverviewRuler: true,\n minimap: {\n enabled: false,\n },\n overviewRulerBorder: false,\n readOnly: Boolean(readOnly),\n scrollbar: {\n alwaysConsumeMouseWheel: false,\n },\n scrollBeyondLastLine: false,\n tabSize: 2,\n wordWrap: 'on',\n ...options,\n }}\n theme={theme === 'dark' ? 'vs-dark' : 'vs'}\n {...rest}\n // Since we are not building an IDE and the container\n // can already have scrolling, we want the height of the\n // editor to fit its content.\n // See: https://github.com/microsoft/monaco-editor/discussions/3677\n height={maxHeight ? Math.min(dynamicHeight, maxHeight) : dynamicHeight}\n onChange={(value, ev) => {\n rest.onChange?.(value, ev)\n setDynamicHeight(Math.max(MIN_HEIGHT, value.split('\\n').length * 18 + 2))\n }}\n onMount={(editor, monaco) => {\n rest.onMount?.(editor, monaco)\n setDynamicHeight(Math.max(MIN_HEIGHT, editor.getValue().split('\\n').length * 18 + 2))\n }}\n />\n )\n}\n\n// eslint-disable-next-line no-restricted-exports\nexport default CodeEditor\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,YAAA,MAAkB;AACzB,OAAOC,KAAA,IAASC,QAAQ,QAAQ;AAIhC,SAASC,QAAQ,QAAQ;AACzB,SAASC,aAAa,QAAQ;AAC9B,OAAO;AAEP,MAAMC,MAAA,GAAUL,YAAA,CAAaM,OAAO,IAAIN,YAAA;AAExC,MAAMO,SAAA,GAAY;AAElB,MAAMC,UAAA,GAA8BC,KAAA;EAAA,MAAAC,CAAA,GAAAX,EAAA;EAAA,IAAAY,SAAA;EAAA,IAAAC,SAAA;EAAA,IAAAC,SAAA;EAAA,IAAAC,OAAA;EAAA,IAAAC,QAAA;EAAA,IAAAC,IAAA;EAAA,IAAAN,CAAA,QAAAD,KAAA;IAClC;MAAAE,SAAA;MAAAC,SAAA;MAAAC,SAAA;MAAAC,OAAA;MAAAC,QAAA;MAAA,GAAAC;IAAA,IAAwEP,KAAA;IAAAC,CAAA,MAAAD,KAAA;IAAAC,CAAA,MAAAC,SAAA;IAAAD,CAAA,MAAAE,SAAA;IAAAF,CAAA,MAAAG,SAAA;IAAAH,CAAA,MAAAI,OAAA;IAAAJ,CAAA,MAAAK,QAAA;IAAAL,CAAA,MAAAM,IAAA;EAAA;IAAAL,SAAA,GAAAD,CAAA;IAAAE,SAAA,GAAAF,CAAA;IAAAG,SAAA,GAAAH,CAAA;IAAAI,OAAA,GAAAJ,CAAA;IAAAK,QAAA,GAAAL,CAAA;IAAAM,IAAA,GAAAN,CAAA;EAAA;EACxE,MAAAO,UAAA,GAAmBJ,SAAA,MAAa;
|
|
1
|
+
{"version":3,"file":"CodeEditor.js","names":["c","_c","EditorImport","React","useState","useTheme","ShimmerEffect","Editor","default","baseClass","CodeEditor","props","$","className","maxHeight","minHeight","options","readOnly","rest","MIN_HEIGHT","paddingFromProps","padding","top","bottom","dynamicHeight","setDynamicHeight","theme","t0","defaultLanguage","t1","t2","filter","Boolean","classes","join","t3","t4","t5","value","ev","onChange","Math","max","split","length","editor","monaco","onMount","getValue","_jsx","loading","height","scrollbar","alwaysConsumeMouseWheel","scrollBeyondLastLine","tabSize","wordWrap","min"],"sources":["../../../src/elements/CodeEditor/CodeEditor.tsx"],"sourcesContent":["'use client'\nimport EditorImport from '@monaco-editor/react'\nimport React, { useState } from 'react'\n\nimport type { Props } from './types.js'\n\nimport { useTheme } from '../../providers/Theme/index.js'\nimport { ShimmerEffect } from '../ShimmerEffect/index.js'\nimport './index.scss'\n\nconst Editor = (EditorImport.default || EditorImport) as unknown as typeof EditorImport.default\n\nconst baseClass = 'code-editor'\n\nconst CodeEditor: React.FC<Props> = (props) => {\n const { className, maxHeight, minHeight, options, readOnly, ...rest } = props\n const MIN_HEIGHT = minHeight ?? 56 // equivalent to 3 lines\n const paddingFromProps = options?.padding\n ? (options.padding.top || 0) + (options.padding?.bottom || 0)\n : 0\n\n const [dynamicHeight, setDynamicHeight] = useState(MIN_HEIGHT)\n const { theme } = useTheme()\n\n const classes = [\n baseClass,\n className,\n rest?.defaultLanguage ? `language--${rest.defaultLanguage}` : '',\n readOnly && 'read-only',\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <Editor\n className={classes}\n loading={<ShimmerEffect height={dynamicHeight} />}\n options={{\n detectIndentation: true,\n hideCursorInOverviewRuler: true,\n minimap: {\n enabled: false,\n },\n overviewRulerBorder: false,\n readOnly: Boolean(readOnly),\n scrollbar: {\n alwaysConsumeMouseWheel: false,\n },\n scrollBeyondLastLine: false,\n tabSize: 2,\n wordWrap: 'on',\n ...options,\n }}\n theme={theme === 'dark' ? 'vs-dark' : 'vs'}\n {...rest}\n // Since we are not building an IDE and the container\n // can already have scrolling, we want the height of the\n // editor to fit its content.\n // See: https://github.com/microsoft/monaco-editor/discussions/3677\n height={maxHeight ? Math.min(dynamicHeight, maxHeight) : dynamicHeight}\n onChange={(value, ev) => {\n rest.onChange?.(value, ev)\n setDynamicHeight(Math.max(MIN_HEIGHT, value.split('\\n').length * 18 + 2 + paddingFromProps))\n }}\n onMount={(editor, monaco) => {\n rest.onMount?.(editor, monaco)\n setDynamicHeight(\n Math.max(MIN_HEIGHT, editor.getValue().split('\\n').length * 18 + 2 + paddingFromProps),\n )\n }}\n />\n )\n}\n\n// eslint-disable-next-line no-restricted-exports\nexport default CodeEditor\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAIhB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAqB9E,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3C,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAA;IACnB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAEvC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,6BAA6B,GAAG,yBAAyB,CAAA;IACtF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAC3B,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/DocumentControls/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,yBAAyB,EACzB,6BAA6B,EAC7B,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAIhB,OAAO,KAA8B,MAAM,OAAO,CAAA;AAElD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAA;AAqB9E,OAAO,cAAc,CAAA;AAIrB,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,aAAa,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;QACrC,QAAQ,CAAC,eAAe,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;KAC3C,CAAA;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAA;IACnB,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAA;IACjC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,OAAO,CAAA;IACvC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAA;IAChC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAA;IACzD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAA;IAEvC,QAAQ,CAAC,WAAW,CAAC,EAAE,yBAAyB,CAAC,aAAa,CAAC,CAAA;IAC/D,QAAQ,CAAC,MAAM,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACrD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAA;IAChC,QAAQ,CAAC,WAAW,EAAE,IAAI,GAAG,6BAA6B,GAAG,yBAAyB,CAAA;IACtF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAA;IAC1C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAA;IACtC,QAAQ,CAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;IACzC,QAAQ,CAAC,IAAI,EAAE,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAChD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAA;CAC3B,CA8PA,CAAA"}
|
|
@@ -127,6 +127,7 @@ export const DocumentControls = props => {
|
|
|
127
127
|
const showDotMenu = Boolean(collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission));
|
|
128
128
|
const unsavedDraftWithValidations = !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate;
|
|
129
129
|
const autosaveEnabled = collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave || globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave;
|
|
130
|
+
const showCopyToLocale = localization && !collectionConfig?.admin?.disableCopyToLocale;
|
|
130
131
|
let t6;
|
|
131
132
|
if ($[7] !== readOnlyForIncomingUser || $[8] !== user) {
|
|
132
133
|
t6 = user && readOnlyForIncomingUser && _jsx(Locked, {
|
|
@@ -242,7 +243,7 @@ export const DocumentControls = props => {
|
|
|
242
243
|
size: "large",
|
|
243
244
|
verticalAlign: "bottom",
|
|
244
245
|
children: _jsxs(PopupList.ButtonGroup, {
|
|
245
|
-
children: [
|
|
246
|
+
children: [showCopyToLocale && _jsx(CopyLocaleData, {}), hasCreatePermission && _jsxs(React.Fragment, {
|
|
246
247
|
children: [!disableCreate && _jsx(Fragment, {
|
|
247
248
|
children: editDepth > 1 ? _jsx(PopupList.Button, {
|
|
248
249
|
id: "action-create",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","formatAdminURL","React","Fragment","useEffect","useFormInitializing","useFormProcessing","useConfig","useEditDepth","useTranslation","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","Gutter","Locked","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","customComponents","t0","data","disableActions","disableCreate","hasSavePermission","isAccountView","isEditing","onDelete","onDrawerCreateNew","onDuplicate","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","user","t1","undefined","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","admin","t2","localization","routes","t3","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","processing","initializing","t4","t5","date","pattern","hasCreatePermission","create","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","autosaveEnabled","autosave","t6","_jsx","className","t7","buttonStyle","onClick","size","type","children","_jsxs","label","labels","singular","filter","join","collection","global","publishedDocUpdatedAt","timestamps","title","preview","CustomComponent","Fallback","button","disabled","horizontalAlign","verticalAlign","ButtonGroup","href","path","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate } from '../../utilities/formatDate.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n }\n readonly data?: any\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n}> = (props) => {\n const {\n id,\n slug,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n hasSavePermission,\n isAccountView,\n isEditing,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n user,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const globalConfig = getEntityConfig({ globalSlug: slug })\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const autosaveEnabled =\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {user && readOnlyForIncomingUser && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {hasSavePermission && autosaveEnabled && !unsavedDraftWithValidations && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:lastModified')}: </p>\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}: </p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasSavePermission && (\n <Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <Fragment>\n {(unsavedDraftWithValidations || !autosaveEnabled) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {localization && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","formatAdminURL","React","Fragment","useEffect","useFormInitializing","useFormProcessing","useConfig","useEditDepth","useTranslation","formatDate","Autosave","Button","CopyLocaleData","DeleteDocument","DuplicateDocument","Gutter","Locked","Popup","PopupList","PreviewButton","PublishButton","RenderCustomComponent","SaveButton","SaveDraftButton","Status","baseClass","DocumentControls","props","$","id","slug","customComponents","t0","data","disableActions","disableCreate","hasSavePermission","isAccountView","isEditing","onDelete","onDrawerCreateNew","onDuplicate","onTakeOver","permissions","readOnlyForIncomingUser","redirectAfterDelete","redirectAfterDuplicate","user","t1","undefined","CustomPreviewButton","CustomPublishButton","CustomSaveButton","CustomSaveDraftButton","i18n","t","editDepth","config","getEntityConfig","collectionConfig","collectionSlug","globalConfig","globalSlug","admin","t2","localization","routes","t3","dateFormat","adminRoute","updatedAt","setUpdatedAt","useState","createdAt","setCreatedAt","processing","initializing","t4","t5","date","pattern","hasCreatePermission","create","hasDeletePermission","delete","showDotMenu","Boolean","unsavedDraftWithValidations","versions","drafts","validate","autosaveEnabled","autosave","showCopyToLocale","disableCopyToLocale","t6","_jsx","className","t7","buttonStyle","onClick","size","type","children","_jsxs","label","labels","singular","filter","join","collection","global","publishedDocUpdatedAt","timestamps","title","preview","CustomComponent","Fallback","button","disabled","horizontalAlign","verticalAlign","ButtonGroup","href","path","disableDuplicate","toString","singularLabel","buttonId","useAsTitle"],"sources":["../../../src/elements/DocumentControls/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientUser,\n SanitizedCollectionConfig,\n SanitizedCollectionPermission,\n SanitizedGlobalPermission,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { formatAdminURL } from 'payload/shared'\nimport React, { Fragment, useEffect } from 'react'\n\nimport type { DocumentDrawerContextType } from '../DocumentDrawer/Provider.js'\n\nimport { useFormInitializing, useFormProcessing } from '../../forms/Form/context.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useEditDepth } from '../../providers/EditDepth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { formatDate } from '../../utilities/formatDate.js'\nimport { Autosave } from '../Autosave/index.js'\nimport { Button } from '../Button/index.js'\nimport { CopyLocaleData } from '../CopyLocaleData/index.js'\nimport { DeleteDocument } from '../DeleteDocument/index.js'\nimport { DuplicateDocument } from '../DuplicateDocument/index.js'\nimport { Gutter } from '../Gutter/index.js'\nimport { Locked } from '../Locked/index.js'\nimport { Popup, PopupList } from '../Popup/index.js'\nimport { PreviewButton } from '../PreviewButton/index.js'\nimport { PublishButton } from '../PublishButton/index.js'\nimport { RenderCustomComponent } from '../RenderCustomComponent/index.js'\nimport { SaveButton } from '../SaveButton/index.js'\nimport { SaveDraftButton } from '../SaveDraftButton/index.js'\nimport { Status } from '../Status/index.js'\nimport './index.scss'\n\nconst baseClass = 'doc-controls'\n\nexport const DocumentControls: React.FC<{\n readonly apiURL: string\n readonly customComponents?: {\n readonly PreviewButton?: React.ReactNode\n readonly PublishButton?: React.ReactNode\n readonly SaveButton?: React.ReactNode\n readonly SaveDraftButton?: React.ReactNode\n }\n readonly data?: any\n readonly disableActions?: boolean\n readonly disableCreate?: boolean\n readonly hasPublishPermission?: boolean\n readonly hasSavePermission?: boolean\n readonly id?: number | string\n readonly isAccountView?: boolean\n readonly isEditing?: boolean\n readonly onDelete?: DocumentDrawerContextType['onDelete']\n readonly onDrawerCreateNew?: () => void\n /* Only available if `redirectAfterDuplicate` is `false` */\n readonly onDuplicate?: DocumentDrawerContextType['onDuplicate']\n readonly onSave?: DocumentDrawerContextType['onSave']\n readonly onTakeOver?: () => void\n readonly permissions: null | SanitizedCollectionPermission | SanitizedGlobalPermission\n readonly readOnlyForIncomingUser?: boolean\n readonly redirectAfterDelete?: boolean\n readonly redirectAfterDuplicate?: boolean\n readonly slug: SanitizedCollectionConfig['slug']\n readonly user?: ClientUser\n}> = (props) => {\n const {\n id,\n slug,\n customComponents: {\n PreviewButton: CustomPreviewButton,\n PublishButton: CustomPublishButton,\n SaveButton: CustomSaveButton,\n SaveDraftButton: CustomSaveDraftButton,\n } = {},\n data,\n disableActions,\n disableCreate,\n hasSavePermission,\n isAccountView,\n isEditing,\n onDelete,\n onDrawerCreateNew,\n onDuplicate,\n onTakeOver,\n permissions,\n readOnlyForIncomingUser,\n redirectAfterDelete,\n redirectAfterDuplicate,\n user,\n } = props\n\n const { i18n, t } = useTranslation()\n\n const editDepth = useEditDepth()\n\n const { config, getEntityConfig } = useConfig()\n\n const collectionConfig = getEntityConfig({ collectionSlug: slug })\n\n const globalConfig = getEntityConfig({ globalSlug: slug })\n\n const {\n admin: { dateFormat },\n localization,\n routes: { admin: adminRoute },\n } = config\n\n // Settings these in state to avoid hydration issues if there is a mismatch between the server and client\n const [updatedAt, setUpdatedAt] = React.useState<string>('')\n const [createdAt, setCreatedAt] = React.useState<string>('')\n\n const processing = useFormProcessing()\n const initializing = useFormInitializing()\n\n useEffect(() => {\n if (data?.updatedAt) {\n setUpdatedAt(formatDate({ date: data.updatedAt, i18n, pattern: dateFormat }))\n }\n if (data?.createdAt) {\n setCreatedAt(formatDate({ date: data.createdAt, i18n, pattern: dateFormat }))\n }\n }, [data, i18n, dateFormat])\n\n const hasCreatePermission = permissions && 'create' in permissions && permissions.create\n\n const hasDeletePermission = permissions && 'delete' in permissions && permissions.delete\n\n const showDotMenu = Boolean(\n collectionConfig && id && !disableActions && (hasCreatePermission || hasDeletePermission),\n )\n\n const unsavedDraftWithValidations =\n !id && collectionConfig?.versions?.drafts && collectionConfig.versions?.drafts.validate\n\n const autosaveEnabled =\n (collectionConfig?.versions?.drafts && collectionConfig?.versions?.drafts?.autosave) ||\n (globalConfig?.versions?.drafts && globalConfig?.versions?.drafts?.autosave)\n\n const showCopyToLocale = localization && !collectionConfig?.admin?.disableCopyToLocale\n\n return (\n <Gutter className={baseClass}>\n <div className={`${baseClass}__wrapper`}>\n <div className={`${baseClass}__content`}>\n <ul className={`${baseClass}__meta`}>\n {collectionConfig && !isEditing && !isAccountView && (\n <li className={`${baseClass}__list-item`}>\n <p className={`${baseClass}__value`}>\n {i18n.t('general:creatingNewLabel', {\n label: getTranslation(\n collectionConfig?.labels?.singular ?? i18n.t('general:document'),\n i18n,\n ),\n })}\n </p>\n </li>\n )}\n {user && readOnlyForIncomingUser && (\n <Locked className={`${baseClass}__locked-controls`} user={user} />\n )}\n {(collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts) && (\n <Fragment>\n {(globalConfig || (collectionConfig && isEditing)) && (\n <li\n className={[`${baseClass}__status`, `${baseClass}__list-item`]\n .filter(Boolean)\n .join(' ')}\n >\n <Status />\n </li>\n )}\n {hasSavePermission && autosaveEnabled && !unsavedDraftWithValidations && (\n <li className={`${baseClass}__list-item`}>\n <Autosave\n collection={collectionConfig}\n global={globalConfig}\n id={id}\n publishedDocUpdatedAt={data?.createdAt}\n />\n </li>\n )}\n </Fragment>\n )}\n {collectionConfig?.timestamps && (isEditing || isAccountView) && (\n <Fragment>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.updatedAt ? updatedAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:lastModified')}: </p>\n {data?.updatedAt && <p className={`${baseClass}__value`}>{updatedAt}</p>}\n </li>\n <li\n className={[`${baseClass}__list-item`, `${baseClass}__value-wrap`]\n .filter(Boolean)\n .join(' ')}\n title={data?.createdAt ? createdAt : ''}\n >\n <p className={`${baseClass}__label`}>{i18n.t('general:created')}: </p>\n {data?.createdAt && <p className={`${baseClass}__value`}>{createdAt}</p>}\n </li>\n </Fragment>\n )}\n </ul>\n </div>\n <div className={`${baseClass}__controls-wrapper`}>\n <div className={`${baseClass}__controls`}>\n {(collectionConfig?.admin.preview || globalConfig?.admin.preview) && (\n <RenderCustomComponent\n CustomComponent={CustomPreviewButton}\n Fallback={<PreviewButton />}\n />\n )}\n {hasSavePermission && (\n <Fragment>\n {collectionConfig?.versions?.drafts || globalConfig?.versions?.drafts ? (\n <Fragment>\n {(unsavedDraftWithValidations || !autosaveEnabled) && (\n <RenderCustomComponent\n CustomComponent={CustomSaveDraftButton}\n Fallback={<SaveDraftButton />}\n />\n )}\n <RenderCustomComponent\n CustomComponent={CustomPublishButton}\n Fallback={<PublishButton />}\n />\n </Fragment>\n ) : (\n <RenderCustomComponent\n CustomComponent={CustomSaveButton}\n Fallback={<SaveButton />}\n />\n )}\n </Fragment>\n )}\n {user && readOnlyForIncomingUser && (\n <Button\n buttonStyle=\"secondary\"\n id=\"take-over\"\n onClick={onTakeOver}\n size=\"medium\"\n type=\"button\"\n >\n {t('general:takeOver')}\n </Button>\n )}\n </div>\n {showDotMenu && !readOnlyForIncomingUser && (\n <Popup\n button={\n <div className={`${baseClass}__dots`}>\n <div />\n <div />\n <div />\n </div>\n }\n className={`${baseClass}__popup`}\n disabled={initializing || processing}\n horizontalAlign=\"right\"\n size=\"large\"\n verticalAlign=\"bottom\"\n >\n <PopupList.ButtonGroup>\n {showCopyToLocale && <CopyLocaleData />}\n {hasCreatePermission && (\n <React.Fragment>\n {!disableCreate && (\n <Fragment>\n {editDepth > 1 ? (\n <PopupList.Button id=\"action-create\" onClick={onDrawerCreateNew}>\n {i18n.t('general:createNew')}\n </PopupList.Button>\n ) : (\n <PopupList.Button\n href={formatAdminURL({\n adminRoute,\n path: `/collections/${collectionConfig?.slug}/create`,\n })}\n id=\"action-create\"\n >\n {i18n.t('general:createNew')}\n </PopupList.Button>\n )}\n </Fragment>\n )}\n {collectionConfig.disableDuplicate !== true && isEditing && (\n <DuplicateDocument\n id={id.toString()}\n onDuplicate={onDuplicate}\n redirectAfterDuplicate={redirectAfterDuplicate}\n singularLabel={collectionConfig?.labels?.singular}\n slug={collectionConfig?.slug}\n />\n )}\n </React.Fragment>\n )}\n {hasDeletePermission && (\n <DeleteDocument\n buttonId=\"action-delete\"\n collectionSlug={collectionConfig?.slug}\n id={id.toString()}\n onDelete={onDelete}\n redirectAfterDelete={redirectAfterDelete}\n singularLabel={collectionConfig?.labels?.singular}\n useAsTitle={collectionConfig?.admin?.useAsTitle}\n />\n )}\n </PopupList.ButtonGroup>\n </Popup>\n )}\n </div>\n </div>\n <div className={`${baseClass}__divider`} />\n </Gutter>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/StaticFileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEzE,MAAM,MAAM,sBAAsB,GAAG;IACnC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,GAAG,EAAE;QACH,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,GAAG,IAAI,CAAA;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/elements/FileDetails/StaticFileDetails/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAMzB,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAEzE,MAAM,MAAM,sBAAsB,GAAG;IACnC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,EAAE,CAAA;IACvC,GAAG,EAAE;QACH,KAAK,CAAC,EAAE,SAAS,CAAA;KAClB,GAAG,IAAI,CAAA;IACR,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAA;IACzB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CAClD,CAAA;AAED,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CA6D9D,CAAA"}
|
|
@@ -28,10 +28,11 @@ export const StaticFileDetails = props => {
|
|
|
28
28
|
url,
|
|
29
29
|
width
|
|
30
30
|
} = doc;
|
|
31
|
+
const previewAllowed = uploadConfig.displayPreview ?? true;
|
|
31
32
|
return /*#__PURE__*/_jsx("div", {
|
|
32
33
|
className: baseClass,
|
|
33
34
|
children: /*#__PURE__*/_jsxs("header", {
|
|
34
|
-
children: [/*#__PURE__*/_jsx(Thumbnail, {
|
|
35
|
+
children: [previewAllowed && /*#__PURE__*/_jsx(Thumbnail, {
|
|
35
36
|
// size="small"
|
|
36
37
|
className: `${baseClass}__thumbnail`,
|
|
37
38
|
doc: doc,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","Button","Thumbnail","UploadActions","FileMeta","baseClass","StaticFileDetails","props","customUploadActions","doc","enableAdjustments","handleRemove","hasImageSizes","hideRemoveFile","imageCacheTag","uploadConfig","filename","filesize","height","mimeType","thumbnailURL","url","width","_jsx","className","_jsxs","fileSrc","customActions","Boolean","enablePreviewSizes","buttonStyle","icon","iconStyle","onClick","round"],"sources":["../../../../src/elements/FileDetails/StaticFileDetails/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { Button } from '../../Button/index.js'\nimport { Thumbnail } from '../../Thumbnail/index.js'\nimport { UploadActions } from '../../Upload/index.js'\nimport { FileMeta } from '../FileMeta/index.js'\nimport './index.scss'\n\nconst baseClass = 'file-details'\n\nimport type { Data, FileSizes, SanitizedCollectionConfig } from 'payload'\n\nexport type StaticFileDetailsProps = {\n customUploadActions?: React.ReactNode[]\n doc: {\n sizes?: FileSizes\n } & Data\n enableAdjustments?: boolean\n handleRemove?: () => void\n hasImageSizes?: boolean\n hideRemoveFile?: boolean\n imageCacheTag?: string\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const StaticFileDetails: React.FC<StaticFileDetailsProps> = (props) => {\n const {\n customUploadActions,\n doc,\n enableAdjustments,\n handleRemove,\n hasImageSizes,\n hideRemoveFile,\n imageCacheTag,\n uploadConfig,\n } = props\n\n const { filename, filesize, height, mimeType, thumbnailURL, url, width } = doc\n\n return (\n <div className={baseClass}>\n <header>\n <Thumbnail\n
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","Button","Thumbnail","UploadActions","FileMeta","baseClass","StaticFileDetails","props","customUploadActions","doc","enableAdjustments","handleRemove","hasImageSizes","hideRemoveFile","imageCacheTag","uploadConfig","filename","filesize","height","mimeType","thumbnailURL","url","width","previewAllowed","displayPreview","_jsx","className","_jsxs","fileSrc","customActions","Boolean","enablePreviewSizes","buttonStyle","icon","iconStyle","onClick","round"],"sources":["../../../../src/elements/FileDetails/StaticFileDetails/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { Button } from '../../Button/index.js'\nimport { Thumbnail } from '../../Thumbnail/index.js'\nimport { UploadActions } from '../../Upload/index.js'\nimport { FileMeta } from '../FileMeta/index.js'\nimport './index.scss'\n\nconst baseClass = 'file-details'\n\nimport type { Data, FileSizes, SanitizedCollectionConfig } from 'payload'\n\nexport type StaticFileDetailsProps = {\n customUploadActions?: React.ReactNode[]\n doc: {\n sizes?: FileSizes\n } & Data\n enableAdjustments?: boolean\n handleRemove?: () => void\n hasImageSizes?: boolean\n hideRemoveFile?: boolean\n imageCacheTag?: string\n uploadConfig: SanitizedCollectionConfig['upload']\n}\n\nexport const StaticFileDetails: React.FC<StaticFileDetailsProps> = (props) => {\n const {\n customUploadActions,\n doc,\n enableAdjustments,\n handleRemove,\n hasImageSizes,\n hideRemoveFile,\n imageCacheTag,\n uploadConfig,\n } = props\n\n const { filename, filesize, height, mimeType, thumbnailURL, url, width } = doc\n\n const previewAllowed = uploadConfig.displayPreview ?? true\n\n return (\n <div className={baseClass}>\n <header>\n {previewAllowed && (\n <Thumbnail\n // size=\"small\"\n className={`${baseClass}__thumbnail`}\n doc={doc}\n fileSrc={thumbnailURL || url}\n imageCacheTag={imageCacheTag}\n uploadConfig={uploadConfig}\n />\n )}\n <div className={`${baseClass}__main-detail`}>\n <FileMeta\n filename={filename as string}\n filesize={filesize as number}\n height={height as number}\n mimeType={mimeType as string}\n url={url as string}\n width={width as number}\n />\n\n {(enableAdjustments || customUploadActions) && (\n <UploadActions\n customActions={customUploadActions}\n enableAdjustments={Boolean(enableAdjustments)}\n enablePreviewSizes={hasImageSizes && doc.filename}\n mimeType={mimeType}\n />\n )}\n </div>\n {!hideRemoveFile && handleRemove && (\n <Button\n buttonStyle=\"icon-label\"\n className={`${baseClass}__remove`}\n icon=\"x\"\n iconStyle=\"with-border\"\n onClick={handleRemove}\n round\n />\n )}\n </header>\n </div>\n )\n}\n"],"mappings":"AAAA;;;AACA,OAAOA,KAAA,MAAW;AAElB,SAASC,MAAM,QAAQ;AACvB,SAASC,SAAS,QAAQ;AAC1B,SAASC,aAAa,QAAQ;AAC9B,SAASC,QAAQ,QAAQ;AACzB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAiBlB,OAAO,MAAMC,iBAAA,GAAuDC,KAAA;EAClE,MAAM;IACJC,mBAAmB;IACnBC,GAAG;IACHC,iBAAiB;IACjBC,YAAY;IACZC,aAAa;IACbC,cAAc;IACdC,aAAa;IACbC;EAAY,CACb,GAAGR,KAAA;EAEJ,MAAM;IAAES,QAAQ;IAAEC,QAAQ;IAAEC,MAAM;IAAEC,QAAQ;IAAEC,YAAY;IAAEC,GAAG;IAAEC;EAAK,CAAE,GAAGb,GAAA;EAE3E,MAAMc,cAAA,GAAiBR,YAAA,CAAaS,cAAc,IAAI;EAEtD,oBACEC,IAAA,CAAC;IAAIC,SAAA,EAAWrB,SAAA;cACd,aAAAsB,KAAA,CAAC;iBACEJ,cAAA,iBACCE,IAAA,CAACvB,SAAA;QACC;QACAwB,SAAA,EAAW,GAAGrB,SAAA,aAAsB;QACpCI,GAAA,EAAKA,GAAA;QACLmB,OAAA,EAASR,YAAA,IAAgBC,GAAA;QACzBP,aAAA,EAAeA,aAAA;QACfC,YAAA,EAAcA;uBAGlBY,KAAA,CAAC;QAAID,SAAA,EAAW,GAAGrB,SAAA,eAAwB;gCACzCoB,IAAA,CAACrB,QAAA;UACCY,QAAA,EAAUA,QAAA;UACVC,QAAA,EAAUA,QAAA;UACVC,MAAA,EAAQA,MAAA;UACRC,QAAA,EAAUA,QAAA;UACVE,GAAA,EAAKA,GAAA;UACLC,KAAA,EAAOA;YAGP,CAAAZ,iBAAA,IAAqBF,mBAAkB,kBACvCiB,IAAA,CAACtB,aAAA;UACC0B,aAAA,EAAerB,mBAAA;UACfE,iBAAA,EAAmBoB,OAAA,CAAQpB,iBAAA;UAC3BqB,kBAAA,EAAoBnB,aAAA,IAAiBH,GAAA,CAAIO,QAAQ;UACjDG,QAAA,EAAUA;;UAIf,CAACN,cAAA,IAAkBF,YAAA,iBAClBc,IAAA,CAACxB,MAAA;QACC+B,WAAA,EAAY;QACZN,SAAA,EAAW,GAAGrB,SAAA,UAAmB;QACjC4B,IAAA,EAAK;QACLC,SAAA,EAAU;QACVC,OAAA,EAASxB,YAAA;QACTyB,KAAK;;;;AAMjB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/Table/DefaultCell/fields/File/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAIrB,MAAM,WAAW,aACf,SAAQ,yBAAyB,CAAC,eAAe,GAAG,iBAAiB,CAAC;IACtE,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;CAClD;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/elements/Table/DefaultCell/fields/File/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,sBAAsB,EACtB,yBAAyB,EACzB,eAAe,EACf,iBAAiB,EAClB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,cAAc,CAAA;AAIrB,MAAM,WAAW,aACf,SAAQ,yBAAyB,CAAC,eAAe,GAAG,iBAAiB,CAAC;IACtE,QAAQ,CAAC,gBAAgB,EAAE,sBAAsB,CAAA;CAClD;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA6B5C,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
4
4
|
import React from 'react';
|
|
5
5
|
import { Thumbnail } from '../../../../Thumbnail/index.js';
|
|
6
6
|
import './index.scss';
|
|
@@ -8,24 +8,33 @@ const baseClass = 'file';
|
|
|
8
8
|
export const FileCell = ({
|
|
9
9
|
cellData: filename,
|
|
10
10
|
collectionConfig,
|
|
11
|
+
field,
|
|
11
12
|
rowData
|
|
12
13
|
}) => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
14
|
+
const fieldPreviewAllowed = 'displayPreview' in field ? field.displayPreview : undefined;
|
|
15
|
+
const previewAllowed = fieldPreviewAllowed ?? collectionConfig.upload?.displayPreview ?? true;
|
|
16
|
+
if (previewAllowed) {
|
|
17
|
+
return /*#__PURE__*/_jsxs("div", {
|
|
18
|
+
className: baseClass,
|
|
19
|
+
children: [/*#__PURE__*/_jsx(Thumbnail, {
|
|
20
|
+
className: `${baseClass}__thumbnail`,
|
|
21
|
+
collectionSlug: collectionConfig?.slug,
|
|
22
|
+
doc: {
|
|
23
|
+
...rowData,
|
|
24
|
+
filename
|
|
25
|
+
},
|
|
26
|
+
fileSrc: rowData?.thumbnailURL || rowData?.url,
|
|
27
|
+
size: "small",
|
|
28
|
+
uploadConfig: collectionConfig?.upload
|
|
29
|
+
}), /*#__PURE__*/_jsx("span", {
|
|
30
|
+
className: `${baseClass}__filename`,
|
|
31
|
+
children: String(filename)
|
|
32
|
+
})]
|
|
33
|
+
});
|
|
34
|
+
} else {
|
|
35
|
+
return /*#__PURE__*/_jsx(_Fragment, {
|
|
27
36
|
children: String(filename)
|
|
28
|
-
})
|
|
29
|
-
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
30
39
|
};
|
|
31
40
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["React","Thumbnail","baseClass","FileCell","cellData","filename","collectionConfig","rowData","_jsxs","className","_jsx","collectionSlug","slug","doc","fileSrc","thumbnailURL","url","size","uploadConfig","
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","Thumbnail","baseClass","FileCell","cellData","filename","collectionConfig","field","rowData","fieldPreviewAllowed","displayPreview","undefined","previewAllowed","upload","_jsxs","className","_jsx","collectionSlug","slug","doc","fileSrc","thumbnailURL","url","size","uploadConfig","String","_Fragment"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/File/index.tsx"],"sourcesContent":["'use client'\nimport type {\n ClientCollectionConfig,\n DefaultCellComponentProps,\n TextFieldClient,\n UploadFieldClient,\n} from 'payload'\n\nimport React from 'react'\n\nimport { Thumbnail } from '../../../../Thumbnail/index.js'\nimport './index.scss'\n\nconst baseClass = 'file'\n\nexport interface FileCellProps\n extends DefaultCellComponentProps<TextFieldClient | UploadFieldClient> {\n readonly collectionConfig: ClientCollectionConfig\n}\n\nexport const FileCell: React.FC<FileCellProps> = ({\n cellData: filename,\n collectionConfig,\n field,\n rowData,\n}) => {\n const fieldPreviewAllowed = 'displayPreview' in field ? field.displayPreview : undefined\n const previewAllowed = fieldPreviewAllowed ?? collectionConfig.upload?.displayPreview ?? true\n\n if (previewAllowed) {\n return (\n <div className={baseClass}>\n <Thumbnail\n className={`${baseClass}__thumbnail`}\n collectionSlug={collectionConfig?.slug}\n doc={{\n ...rowData,\n filename,\n }}\n fileSrc={rowData?.thumbnailURL || rowData?.url}\n size=\"small\"\n uploadConfig={collectionConfig?.upload}\n />\n <span className={`${baseClass}__filename`}>{String(filename)}</span>\n </div>\n )\n } else {\n return <>{String(filename)}</>\n }\n}\n"],"mappings":"AAAA;;;AAQA,OAAOA,KAAA,MAAW;AAElB,SAASC,SAAS,QAAQ;AAC1B,OAAO;AAEP,MAAMC,SAAA,GAAY;AAOlB,OAAO,MAAMC,QAAA,GAAoCA,CAAC;EAChDC,QAAA,EAAUC,QAAQ;EAClBC,gBAAgB;EAChBC,KAAK;EACLC;AAAO,CACR;EACC,MAAMC,mBAAA,GAAsB,oBAAoBF,KAAA,GAAQA,KAAA,CAAMG,cAAc,GAAGC,SAAA;EAC/E,MAAMC,cAAA,GAAiBH,mBAAA,IAAuBH,gBAAA,CAAiBO,MAAM,EAAEH,cAAA,IAAkB;EAEzF,IAAIE,cAAA,EAAgB;IAClB,oBACEE,KAAA,CAAC;MAAIC,SAAA,EAAWb,SAAA;8BACdc,IAAA,CAACf,SAAA;QACCc,SAAA,EAAW,GAAGb,SAAA,aAAsB;QACpCe,cAAA,EAAgBX,gBAAA,EAAkBY,IAAA;QAClCC,GAAA,EAAK;UACH,GAAGX,OAAO;UACVH;QACF;QACAe,OAAA,EAASZ,OAAA,EAASa,YAAA,IAAgBb,OAAA,EAASc,GAAA;QAC3CC,IAAA,EAAK;QACLC,YAAA,EAAclB,gBAAA,EAAkBO;uBAElCG,IAAA,CAAC;QAAKD,SAAA,EAAW,GAAGb,SAAA,YAAqB;kBAAGuB,MAAA,CAAOpB,QAAA;;;EAGzD,OAAO;IACL,oBAAOW,IAAA,CAAAU,SAAA;gBAAGD,MAAA,CAAOpB,QAAA;;EACnB;AACF","ignoreList":[]}
|
|
@@ -145,8 +145,8 @@ export const RelationshipCell = t0 => {
|
|
|
145
145
|
});
|
|
146
146
|
let fileField = null;
|
|
147
147
|
if (field.type === "upload") {
|
|
148
|
-
const
|
|
149
|
-
const previewAllowed =
|
|
148
|
+
const fieldPreviewAllowed = "displayPreview" in field ? field.displayPreview : undefined;
|
|
149
|
+
const previewAllowed = fieldPreviewAllowed ?? relatedCollection.upload?.displayPreview ?? true;
|
|
150
150
|
if (previewAllowed && document) {
|
|
151
151
|
fileField = _jsx(FileCell, {
|
|
152
152
|
cellData: label_0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useEffect","useMemo","useState","useIntersect","useConfig","useTranslation","canUseDOM","formatDocTitle","useListRelationships","FileCell","baseClass","totalToShow","RelationshipCell","t0","$","cellData","cellDataFromProps","customCellProps","customCellContext","field","t1","label","relationTo","collection","t2","docs","config","getEntityConfig","collections","routes","intersectionRef","entry","t3","Symbol","for","values","setValues","documents","getRelationships","hasRequested","setHasRequested","i18n","t","isAboveViewport","boundingClientRect","top","window","innerHeight","t4","formattedValues","arrayCellData","Array","isArray","slice","length","forEach","cell","push","value","t5","api","t6","t7","t8","admin","dateFormat","t9","t10","i","relationTo_0","document","relatedCollection","collectionSlug","label_0","collectionConfig","data","fallback","fileField","type","relatedCollectionPreview","upload","displayPreview","previewAllowed","slug","rowData","_jsxs","Fragment","children","className","ref","map","count","items"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type {\n DefaultCellComponentProps,\n JoinFieldClient,\n RelationshipFieldClient,\n UploadFieldClient,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport { useIntersect } from '../../../../../hooks/useIntersect.js'\nimport { useConfig } from '../../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\nimport { canUseDOM } from '../../../../../utilities/canUseDOM.js'\nimport { formatDocTitle } from '../../../../../utilities/formatDocTitle.js'\nimport { useListRelationships } from '../../../RelationshipProvider/index.js'\nimport { FileCell } from '../File/index.js'\nimport './index.scss'\n\ntype Value = { relationTo: string; value: number | string }\nconst baseClass = 'relationship-cell'\nconst totalToShow = 3\n\nexport type RelationshipCellProps = DefaultCellComponentProps<\n JoinFieldClient | RelationshipFieldClient | UploadFieldClient\n>\n\nexport const RelationshipCell: React.FC<RelationshipCellProps> = ({\n cellData: cellDataFromProps,\n customCellProps: customCellContext,\n field,\n field: { label },\n}) => {\n // conditionally extract relationTo both both relationship and join fields\n const relationTo =\n ('relationTo' in field && field.relationTo) || ('collection' in field && field.collection)\n\n // conditionally extract docs from join fields\n const cellData = useMemo(() => {\n return 'collection' in field ? cellDataFromProps?.docs : cellDataFromProps\n }, [cellDataFromProps, field])\n\n const { config, getEntityConfig } = useConfig()\n const { collections, routes } = config\n const [intersectionRef, entry] = useIntersect()\n const [values, setValues] = useState<Value[]>([])\n const { documents, getRelationships } = useListRelationships()\n const [hasRequested, setHasRequested] = useState(false)\n const { i18n, t } = useTranslation()\n\n const isAboveViewport = canUseDOM ? entry?.boundingClientRect?.top < window.innerHeight : false\n\n useEffect(() => {\n if ((cellData || typeof cellData === 'number') && isAboveViewport && !hasRequested) {\n const formattedValues: Value[] = []\n const arrayCellData = Array.isArray(cellData) ? cellData : [cellData]\n arrayCellData\n .slice(0, arrayCellData.length < totalToShow ? arrayCellData.length : totalToShow)\n .forEach((cell) => {\n if (typeof cell === 'object' && 'relationTo' in cell && 'value' in cell) {\n formattedValues.push(cell)\n }\n if (\n (typeof cell === 'number' || typeof cell === 'string') &&\n typeof relationTo === 'string'\n ) {\n formattedValues.push({\n relationTo,\n value: cell,\n })\n }\n })\n getRelationships(formattedValues)\n setHasRequested(true)\n setValues(formattedValues)\n }\n }, [\n cellData,\n relationTo,\n collections,\n isAboveViewport,\n routes.api,\n hasRequested,\n getRelationships,\n ])\n\n useEffect(() => {\n if (hasRequested) {\n setHasRequested(false)\n }\n }, [cellData])\n\n return (\n <div className={baseClass} ref={intersectionRef}>\n {values.map(({ relationTo, value }, i) => {\n const document = documents[relationTo][value]\n const relatedCollection = getEntityConfig({\n collectionSlug: relationTo,\n })\n\n const label = formatDocTitle({\n collectionConfig: relatedCollection,\n data: document || null,\n dateFormat: config.admin.dateFormat,\n fallback: `${t('general:untitled')} - ID: ${value}`,\n i18n,\n })\n\n let fileField = null\n\n if (field.type === 'upload') {\n const relatedCollectionPreview = !!relatedCollection.upload.displayPreview\n const previewAllowed =\n field.displayPreview || (relatedCollectionPreview && field.displayPreview !== false)\n\n if (previewAllowed && document) {\n fileField = (\n <FileCell\n cellData={label}\n collectionConfig={relatedCollection}\n collectionSlug={relatedCollection.slug}\n customCellProps={customCellContext}\n field={field}\n rowData={document}\n />\n )\n }\n }\n\n return (\n <React.Fragment key={i}>\n {document === false && `${t('general:untitled')} - ID: ${value}`}\n {document === null && `${t('general:loading')}...`}\n {document ? fileField || label : null}\n {values.length > i + 1 && ', '}\n </React.Fragment>\n )\n })}\n {Array.isArray(cellData) &&\n cellData.length > totalToShow &&\n t('fields:itemsAndMore', { count: cellData.length - totalToShow, items: '' })}\n {values.length === 0 && t('general:noLabel', { label: getTranslation(label || '', i18n) })}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","React","useEffect","useMemo","useState","useIntersect","useConfig","useTranslation","canUseDOM","formatDocTitle","useListRelationships","FileCell","baseClass","totalToShow","RelationshipCell","t0","$","cellData","cellDataFromProps","customCellProps","customCellContext","field","t1","label","relationTo","collection","t2","docs","config","getEntityConfig","collections","routes","intersectionRef","entry","t3","Symbol","for","values","setValues","documents","getRelationships","hasRequested","setHasRequested","i18n","t","isAboveViewport","boundingClientRect","top","window","innerHeight","t4","formattedValues","arrayCellData","Array","isArray","slice","length","forEach","cell","push","value","t5","api","t6","t7","t8","admin","dateFormat","t9","t10","i","relationTo_0","document","relatedCollection","collectionSlug","label_0","collectionConfig","data","fallback","fileField","type","fieldPreviewAllowed","displayPreview","undefined","previewAllowed","upload","slug","rowData","_jsxs","Fragment","children","className","ref","map","count","items"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Relationship/index.tsx"],"sourcesContent":["'use client'\nimport type {\n DefaultCellComponentProps,\n JoinFieldClient,\n RelationshipFieldClient,\n UploadFieldClient,\n} from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport React, { useEffect, useMemo, useState } from 'react'\n\nimport { useIntersect } from '../../../../../hooks/useIntersect.js'\nimport { useConfig } from '../../../../../providers/Config/index.js'\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\nimport { canUseDOM } from '../../../../../utilities/canUseDOM.js'\nimport { formatDocTitle } from '../../../../../utilities/formatDocTitle.js'\nimport { useListRelationships } from '../../../RelationshipProvider/index.js'\nimport { FileCell } from '../File/index.js'\nimport './index.scss'\n\ntype Value = { relationTo: string; value: number | string }\nconst baseClass = 'relationship-cell'\nconst totalToShow = 3\n\nexport type RelationshipCellProps = DefaultCellComponentProps<\n JoinFieldClient | RelationshipFieldClient | UploadFieldClient\n>\n\nexport const RelationshipCell: React.FC<RelationshipCellProps> = ({\n cellData: cellDataFromProps,\n customCellProps: customCellContext,\n field,\n field: { label },\n}) => {\n // conditionally extract relationTo both both relationship and join fields\n const relationTo =\n ('relationTo' in field && field.relationTo) || ('collection' in field && field.collection)\n\n // conditionally extract docs from join fields\n const cellData = useMemo(() => {\n return 'collection' in field ? cellDataFromProps?.docs : cellDataFromProps\n }, [cellDataFromProps, field])\n\n const { config, getEntityConfig } = useConfig()\n const { collections, routes } = config\n const [intersectionRef, entry] = useIntersect()\n const [values, setValues] = useState<Value[]>([])\n const { documents, getRelationships } = useListRelationships()\n const [hasRequested, setHasRequested] = useState(false)\n const { i18n, t } = useTranslation()\n\n const isAboveViewport = canUseDOM ? entry?.boundingClientRect?.top < window.innerHeight : false\n\n useEffect(() => {\n if ((cellData || typeof cellData === 'number') && isAboveViewport && !hasRequested) {\n const formattedValues: Value[] = []\n const arrayCellData = Array.isArray(cellData) ? cellData : [cellData]\n arrayCellData\n .slice(0, arrayCellData.length < totalToShow ? arrayCellData.length : totalToShow)\n .forEach((cell) => {\n if (typeof cell === 'object' && 'relationTo' in cell && 'value' in cell) {\n formattedValues.push(cell)\n }\n if (\n (typeof cell === 'number' || typeof cell === 'string') &&\n typeof relationTo === 'string'\n ) {\n formattedValues.push({\n relationTo,\n value: cell,\n })\n }\n })\n getRelationships(formattedValues)\n setHasRequested(true)\n setValues(formattedValues)\n }\n }, [\n cellData,\n relationTo,\n collections,\n isAboveViewport,\n routes.api,\n hasRequested,\n getRelationships,\n ])\n\n useEffect(() => {\n if (hasRequested) {\n setHasRequested(false)\n }\n }, [cellData])\n\n return (\n <div className={baseClass} ref={intersectionRef}>\n {values.map(({ relationTo, value }, i) => {\n const document = documents[relationTo][value]\n const relatedCollection = getEntityConfig({\n collectionSlug: relationTo,\n })\n\n const label = formatDocTitle({\n collectionConfig: relatedCollection,\n data: document || null,\n dateFormat: config.admin.dateFormat,\n fallback: `${t('general:untitled')} - ID: ${value}`,\n i18n,\n })\n\n let fileField = null\n\n if (field.type === 'upload') {\n const fieldPreviewAllowed = 'displayPreview' in field ? field.displayPreview : undefined\n const previewAllowed =\n fieldPreviewAllowed ?? relatedCollection.upload?.displayPreview ?? true\n\n if (previewAllowed && document) {\n fileField = (\n <FileCell\n cellData={label}\n collectionConfig={relatedCollection}\n collectionSlug={relatedCollection.slug}\n customCellProps={customCellContext}\n field={field}\n rowData={document}\n />\n )\n }\n }\n\n return (\n <React.Fragment key={i}>\n {document === false && `${t('general:untitled')} - ID: ${value}`}\n {document === null && `${t('general:loading')}...`}\n {document ? fileField || label : null}\n {values.length > i + 1 && ', '}\n </React.Fragment>\n )\n })}\n {Array.isArray(cellData) &&\n cellData.length > totalToShow &&\n t('fields:itemsAndMore', { count: cellData.length - totalToShow, items: '' })}\n {values.length === 0 && t('general:noLabel', { label: getTranslation(label || '', i18n) })}\n </div>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Thumbnail/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC9C,YAAY,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CACnD,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/elements/Thumbnail/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAA;AAKxD,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC9C,YAAY,CAAC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAA;CACnD,CAAA;AAED,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAyC9C,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAA;CACxD,CAAA;AACD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,qBAyChE"}
|
|
@@ -48,6 +48,7 @@ export const Thumbnail = props => {
|
|
|
48
48
|
setFileExists(false);
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
51
|
+
setFileExists(undefined);
|
|
51
52
|
const img = new Image();
|
|
52
53
|
img.src = fileSrc;
|
|
53
54
|
img.onload = () => {
|
|
@@ -133,6 +134,7 @@ export function ThumbnailComponent(props) {
|
|
|
133
134
|
setFileExists(false);
|
|
134
135
|
return;
|
|
135
136
|
}
|
|
137
|
+
setFileExists(undefined);
|
|
136
138
|
const img = new Image();
|
|
137
139
|
img.src = fileSrc;
|
|
138
140
|
img.onload = () => {
|
|
@@ -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","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\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={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\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":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AACA,OAAOC,KAAA,MAAW;AAElB,OAAO;AAEP,MAAMC,SAAA,GAAY;AAIlB,SAASC,IAAI,QAAQ;AACrB,SAASC,aAAa,QAAQ;AAY9B,OAAO,MAAMC,SAAA,GAAsCC,KAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EACjD;IAAAQ,SAAA,EAAAC,EAAA;IAAAC,GAAA,EAAAC,EAAA;IAAAC,OAAA;IAAAC,aAAA;IAAAC;EAAA,IAAiFR,KAAA;EAAzE,MAAAE,SAAA,GAAAC,EAAc,KAAAM,SAAA,GAAF,EAAE,GAAdN,EAAc;EAAA,IAAAO,EAAA;EAAA,IAAAT,CAAA,QAAAI,EAAA;IAAOK,EAAA,GAAAL,EAAiB,KAAAI,SAAA,QAAjBJ,EAAiB;IAAAJ,CAAA,MAAAI,EAAA;IAAAJ,CAAA,MAAAS,EAAA;EAAA;IAAAA,EAAA,GAAAT,CAAA;EAAA;EAAjB;IAAAU;EAAA,IAAAD,EAAiB;EAC9C,OAAAE,UAAA,EAAAC,aAAA,IAAoClB,KAAA,CAAAmB,QAAA,CAAAL,SAAe;EAEpB,MAAAM,EAAA,MAAAnB,SAAA,UAAsBY,IAAA,IAAQ,UAAU;EAAA,IAAAQ,EAAA;EAAA,IAAAf,CAAA,QAAAC,SAAA,IAAAD,CAAA,QAAAc,EAAA;IAApDC,EAAA,IAAApB,SAAA,EAAYmB,EAAwC,EAAEb,SAAA;IAAUD,CAAA,MAAAC,SAAA;IAAAD,CAAA,MAAAc,EAAA;IAAAd,CAAA,MAAAe,EAAA;EAAA;IAAAA,EAAA,GAAAf,CAAA;EAAA;EAAnF,MAAAgB,UAAA,GAAmBD,EAAgE,CAAAE,IAAA,CAAM;EAAA,IAAAC,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAnB,CAAA,QAAAK,OAAA;IAEzEa,EAAA,GAAAA,CAAA;MAAA,KACTb,OAAA;QACHO,aAAA,MAAc;QAAA;MAAA;
|
|
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: 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={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,9 +9,10 @@
|
|
|
9
9
|
border: 1px solid var(--theme-border-color);
|
|
10
10
|
border-radius: var(--style-radius-m);
|
|
11
11
|
transition: border 100ms cubic-bezier(0, 0.2, 0.2, 1);
|
|
12
|
+
padding: base(0.5);
|
|
12
13
|
|
|
13
14
|
&__label {
|
|
14
|
-
padding: base(0.5);
|
|
15
|
+
padding: base(0.75) base(0.5) base(0.25) base(0.5);
|
|
15
16
|
overflow: hidden;
|
|
16
17
|
text-overflow: ellipsis;
|
|
17
18
|
white-space: nowrap;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldErrors.d.ts","sourceRoot":"","sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"fieldErrors.d.ts","sourceRoot":"","sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AAyDzB,wBAAgB,gBAAgB,CAAC,EAAE,YAAY,EAAE;;CAAA,qBAehD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fieldErrors.js","names":["c","_c","React","groupSimilarErrors","items","result","item","parts","split","inserted","i","length","startsWith","splice","push","createErrorsFromMessage","message","intro","errorsString","errors","map","error","replaceAll","trim","FieldErrorsToast","t0","$","errorMessage","t1","t2","useState","t3","_jsxs","children","Array","isArray","_jsx","_temp","index"],"sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nfunction groupSimilarErrors(items: string[]): string[] {\n const result: string[] = []\n\n for (const item of items) {\n if (item) {\n const parts = item.split(' → ')\n let inserted = false\n\n // Find a place where a similar path exists\n for (let i = 0; i < result.length; i++) {\n if (result[i].startsWith(parts[0])) {\n result.splice(i + 1, 0, item)\n inserted = true\n break\n }\n }\n\n // If no similar path was found, add to the end\n if (!inserted) {\n result.push(item)\n }\n }\n }\n\n return result\n}\n\nfunction createErrorsFromMessage(message: string): {\n errors?: string[]\n message: string\n} {\n const [intro, errorsString] = message.split(':')\n const errors = (errorsString || '')\n .split(',')\n .map((error) => error.replaceAll(' > ', ' → ').trim())\n\n if (errors.length === 0) {\n return {\n message: intro,\n }\n }\n\n if (errors.length === 1) {\n return {\n message: `${intro}
|
|
1
|
+
{"version":3,"file":"fieldErrors.js","names":["c","_c","React","groupSimilarErrors","items","result","item","parts","split","inserted","i","length","startsWith","splice","push","createErrorsFromMessage","message","intro","errorsString","errors","map","error","replaceAll","trim","FieldErrorsToast","t0","$","errorMessage","t1","t2","useState","t3","_jsxs","children","Array","isArray","_jsx","_temp","index"],"sources":["../../../src/elements/Toasts/fieldErrors.tsx"],"sourcesContent":["'use client'\n\nimport React from 'react'\n\nfunction groupSimilarErrors(items: string[]): string[] {\n const result: string[] = []\n\n for (const item of items) {\n if (item) {\n const parts = item.split(' → ')\n let inserted = false\n\n // Find a place where a similar path exists\n for (let i = 0; i < result.length; i++) {\n if (result[i].startsWith(parts[0])) {\n result.splice(i + 1, 0, item)\n inserted = true\n break\n }\n }\n\n // If no similar path was found, add to the end\n if (!inserted) {\n result.push(item)\n }\n }\n }\n\n return result\n}\n\nfunction createErrorsFromMessage(message: string): {\n errors?: string[]\n message: string\n} {\n const [intro, errorsString] = message.split(':')\n const errors = (errorsString || '')\n .split(',')\n .map((error) => error.replaceAll(' > ', ' → ').trim())\n\n if (errors.length === 0) {\n return {\n message: intro,\n }\n }\n\n if (errors.length === 1) {\n return {\n errors,\n message: `${intro}:`,\n }\n }\n\n return {\n errors: groupSimilarErrors(errors),\n message: `${intro} (${errors.length}):`,\n }\n}\n\nexport function FieldErrorsToast({ errorMessage }) {\n const [{ errors, message }] = React.useState(() => createErrorsFromMessage(errorMessage))\n\n return (\n <div>\n {message}\n {Array.isArray(errors) && errors.length > 0 ? (\n <ul data-testid=\"field-errors\">\n {errors.map((error, index) => {\n return <li key={index}>{error}</li>\n })}\n </ul>\n ) : null}\n </div>\n )\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAEA,OAAOC,KAAA,MAAW;AAElB,SAASC,mBAAmBC,KAAe;EACzC,MAAMC,MAAA,GAAmB,EAAE;EAE3B,KAAK,MAAMC,IAAA,IAAQF,KAAA,EAAO;IACxB,IAAIE,IAAA,EAAM;MACR,MAAMC,KAAA,GAAQD,IAAA,CAAKE,KAAK,CAAC;MACzB,IAAIC,QAAA,GAAW;MAEf;MACA,KAAK,IAAIC,CAAA,GAAI,GAAGA,CAAA,GAAIL,MAAA,CAAOM,MAAM,EAAED,CAAA,IAAK;QACtC,IAAIL,MAAM,CAACK,CAAA,CAAE,CAACE,UAAU,CAACL,KAAK,CAAC,EAAE,GAAG;UAClCF,MAAA,CAAOQ,MAAM,CAACH,CAAA,GAAI,GAAG,GAAGJ,IAAA;UACxBG,QAAA,GAAW;UACX;QACF;MACF;MAEA;MACA,IAAI,CAACA,QAAA,EAAU;QACbJ,MAAA,CAAOS,IAAI,CAACR,IAAA;MACd;IACF;EACF;EAEA,OAAOD,MAAA;AACT;AAEA,SAASU,wBAAwBC,OAAe;EAI9C,MAAM,CAACC,KAAA,EAAOC,YAAA,CAAa,GAAGF,OAAA,CAAQR,KAAK,CAAC;EAC5C,MAAMW,MAAA,GAAS,CAACD,YAAA,IAAgB,EAAC,EAC9BV,KAAK,CAAC,KACNY,GAAG,CAAEC,KAAA,IAAUA,KAAA,CAAMC,UAAU,CAAC,OAAO,OAAOC,IAAI;EAErD,IAAIJ,MAAA,CAAOR,MAAM,KAAK,GAAG;IACvB,OAAO;MACLK,OAAA,EAASC;IACX;EACF;EAEA,IAAIE,MAAA,CAAOR,MAAM,KAAK,GAAG;IACvB,OAAO;MACLQ,MAAA;MACAH,OAAA,EAAS,GAAGC,KAAA;IACd;EACF;EAEA,OAAO;IACLE,MAAA,EAAQhB,kBAAA,CAAmBgB,MAAA;IAC3BH,OAAA,EAAS,GAAGC,KAAA,KAAUE,MAAA,CAAOR,MAAM;EACrC;AACF;AAEA,OAAO,SAAAa,iBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAzB,EAAA;EAA0B;IAAA0B;EAAA,IAAAF,EAAgB;EAAA,IAAAG,EAAA;EAAA,IAAAF,CAAA,QAAAC,YAAA;IACFC,EAAA,GAAAA,CAAA,KAAMb,uBAAA,CAAwBY,YAAA;IAAAD,CAAA,MAAAC,YAAA;IAAAD,CAAA,MAAAE,EAAA;EAAA;IAAAA,EAAA,GAAAF,CAAA;EAAA;EAA3E,OAAAG,EAAA,IAA8B3B,KAAA,CAAA4B,QAAA,CAAeF,EAA8B;EAApE;IAAAT,MAAA;IAAAH;EAAA,IAAAa,EAAmB;EAAA,IAAAE,EAAA;EAAA,IAAAL,CAAA,QAAAP,MAAA,IAAAO,CAAA,QAAAV,OAAA;IAGxBe,EAAA,GAAAC,KAAA,CAAC;MAAAC,QAAA,GACEjB,OAAA,EACAkB,KAAA,CAAAC,OAAA,CAAchB,MAAA,KAAWA,MAAA,CAAAR,MAAA,IAAgB,GACxCyB,IAAA,CAAC;QAAA,eAAe;QAAAH,QAAA,EACbd,MAAA,CAAAC,GAAA,CAAAiB,KAED;MAAA,C,QAEA;IAAA,C;;;;;;;SARNN,E;;AAJG,SAAAM,MAAAhB,KAAA,EAAAiB,KAAA;EAAA,OASYF,IAAA,CAAC;IAAAH,QAAA,EAAgBZ;EAAA,GAARiB,KAAA;AAAA","ignoreList":[]}
|