@payloadcms/ui 3.56.0-internal.299316b → 3.56.0-internal.72f4fd2
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/BulkUpload/EditForm/index.js +18 -4
- package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
- package/dist/elements/ClipboardAction/index.js +74 -173
- package/dist/elements/ClipboardAction/index.js.map +1 -1
- package/dist/elements/CodeEditor/CodeEditor.js +67 -155
- package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
- package/dist/elements/Collapsible/index.js +7 -15
- package/dist/elements/Collapsible/index.js.map +1 -1
- package/dist/elements/ConfirmationModal/index.js +8 -44
- package/dist/elements/ConfirmationModal/index.js.map +1 -1
- package/dist/elements/CopyLocaleData/index.js +89 -97
- package/dist/elements/CopyLocaleData/index.js.map +1 -1
- package/dist/elements/CopyToClipboard/index.js +2 -22
- package/dist/elements/CopyToClipboard/index.js.map +1 -1
- package/dist/elements/DefaultListViewTabs/index.js +32 -47
- package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
- package/dist/elements/DeleteMany/index.js +47 -83
- package/dist/elements/DeleteMany/index.js.map +1 -1
- package/dist/elements/DocumentControls/index.js +27 -55
- package/dist/elements/DocumentControls/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js +2 -10
- package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
- package/dist/elements/DocumentDrawer/index.js +47 -99
- package/dist/elements/DocumentDrawer/index.js.map +1 -1
- package/dist/elements/Drawer/index.js +23 -57
- package/dist/elements/Drawer/index.js.map +1 -1
- package/dist/elements/DrawerActionHeader/index.js +3 -21
- package/dist/elements/DrawerActionHeader/index.js.map +1 -1
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +149 -225
- package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
- package/dist/elements/FolderView/FolderFileCard/index.js +19 -27
- package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
- package/dist/elements/FolderView/MoveDocToFolder/index.js +12 -23
- package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
- package/dist/elements/FullscreenModal/index.js +10 -20
- package/dist/elements/FullscreenModal/index.js.map +1 -1
- package/dist/elements/ListControls/getTextFieldsToBeSearched.d.ts.map +1 -1
- package/dist/elements/ListControls/getTextFieldsToBeSearched.js +9 -1
- package/dist/elements/ListControls/getTextFieldsToBeSearched.js.map +1 -1
- package/dist/elements/ListDrawer/index.js +18 -24
- package/dist/elements/ListDrawer/index.js.map +1 -1
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +19 -32
- package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
- package/dist/elements/ListSelection/index.js +11 -27
- package/dist/elements/ListSelection/index.js.map +1 -1
- package/dist/elements/LivePreview/Window/index.js +65 -144
- package/dist/elements/LivePreview/Window/index.js.map +1 -1
- package/dist/elements/Loading/index.js +2 -11
- package/dist/elements/Loading/index.js.map +1 -1
- package/dist/elements/LoadingOverlay/index.js +46 -102
- package/dist/elements/LoadingOverlay/index.js.map +1 -1
- package/dist/elements/Localizer/LocalizerLabel/index.js +23 -36
- package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
- package/dist/elements/QueryPresets/QueryPresetToggler/index.js +41 -139
- 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/SelectRow/index.js +39 -40
- package/dist/elements/SelectRow/index.js.map +1 -1
- package/dist/elements/ShimmerEffect/index.js +20 -12
- package/dist/elements/ShimmerEffect/index.js.map +1 -1
- package/dist/elements/SortColumn/index.js +21 -30
- package/dist/elements/SortColumn/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Date/index.js +9 -37
- package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +35 -37
- package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
- package/dist/elements/Table/DefaultCell/fields/Select/index.js +12 -27
- package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
- package/dist/elements/Thumbnail/index.js +35 -75
- package/dist/elements/Thumbnail/index.js.map +1 -1
- package/dist/elements/ThumbnailCard/index.js +17 -26
- package/dist/elements/ThumbnailCard/index.js.map +1 -1
- package/dist/elements/Tooltip/index.js +51 -127
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Upload/index.js +2 -10
- package/dist/elements/Upload/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/Select/index.js +31 -44
- package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
- package/dist/elements/WhereBuilder/Condition/index.d.ts +1 -1
- package/dist/elements/WhereBuilder/Condition/index.js +2 -2
- package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
- package/dist/elements/WhereBuilder/index.js +6 -6
- package/dist/elements/WhereBuilder/index.js.map +1 -1
- package/dist/exports/client/{CodeEditor-URFJPG6I.js → CodeEditor-RHQXPDK5.js} +2 -2
- package/dist/exports/client/{DatePicker-NMDEHPWL.js → DatePicker-F432AIH3.js} +2 -2
- package/dist/exports/client/{chunk-7RGKTZG2.js → chunk-AZDI6MW4.js} +1 -1
- package/dist/exports/client/{chunk-7RGKTZG2.js.map → chunk-AZDI6MW4.js.map} +1 -1
- package/dist/exports/client/{chunk-KPQQ5IUL.js → chunk-FKP64OEZ.js} +5 -5
- package/dist/exports/client/{chunk-KPQQ5IUL.js.map → chunk-FKP64OEZ.js.map} +3 -3
- package/dist/exports/client/index.d.ts +4 -2
- package/dist/exports/client/index.d.ts.map +1 -1
- package/dist/exports/client/index.js +12 -12
- 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 +2 -3
- package/dist/fields/Array/ArrayRow.d.ts.map +1 -1
- package/dist/fields/Array/ArrayRow.js +13 -23
- package/dist/fields/Array/ArrayRow.js.map +1 -1
- package/dist/fields/Array/index.js +273 -477
- package/dist/fields/Array/index.js.map +1 -1
- package/dist/fields/Checkbox/Input.js +2 -19
- package/dist/fields/Checkbox/Input.js.map +1 -1
- package/dist/fields/FieldError/index.js +30 -29
- package/dist/fields/FieldError/index.js.map +1 -1
- package/dist/fields/FieldLabel/index.js +12 -64
- package/dist/fields/FieldLabel/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +45 -103
- package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
- package/dist/fields/Relationship/select-components/SingleValue/index.js +29 -44
- package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
- package/dist/fields/Row/index.d.ts +1 -3
- package/dist/fields/Row/index.d.ts.map +1 -1
- package/dist/fields/Select/Input.js +18 -31
- package/dist/fields/Select/Input.js.map +1 -1
- package/dist/fields/Tabs/Tab/index.js +2 -11
- package/dist/fields/Tabs/Tab/index.js.map +1 -1
- package/dist/fields/Tabs/index.d.ts +2 -1
- package/dist/fields/Tabs/index.d.ts.map +1 -1
- package/dist/fields/Tabs/index.js +185 -225
- package/dist/fields/Tabs/index.js.map +1 -1
- package/dist/fields/Upload/RelationshipContent/index.js +79 -127
- package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
- package/dist/forms/RenderFields/RenderField.js +245 -237
- package/dist/forms/RenderFields/RenderField.js.map +1 -1
- package/dist/forms/RenderFields/types.d.ts +2 -10
- package/dist/forms/RenderFields/types.d.ts.map +1 -1
- package/dist/forms/RenderFields/types.js.map +1 -1
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts +35 -0
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.d.ts.map +1 -0
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js +83 -0
- package/dist/forms/fieldSchemasToFormState/serverFunctions/renderFieldServerFn.js.map +1 -0
- package/dist/forms/useField/index.d.ts +5 -0
- package/dist/forms/useField/index.d.ts.map +1 -1
- package/dist/forms/useField/index.js +74 -45
- package/dist/forms/useField/index.js.map +1 -1
- package/dist/hooks/useIntersect.js +35 -53
- package/dist/hooks/useIntersect.js.map +1 -1
- package/dist/hooks/usePayloadAPI.js +36 -44
- package/dist/hooks/usePayloadAPI.js.map +1 -1
- package/dist/providers/ServerFunctions/index.d.ts +4 -1
- package/dist/providers/ServerFunctions/index.d.ts.map +1 -1
- package/dist/providers/ServerFunctions/index.js +13 -0
- package/dist/providers/ServerFunctions/index.js.map +1 -1
- package/dist/utilities/reduceFieldsToOptions.d.ts +2 -2
- package/dist/utilities/reduceFieldsToOptions.js +2 -2
- package/dist/utilities/reduceFieldsToOptions.js.map +1 -1
- package/dist/views/BrowseByFolder/index.js +37 -55
- package/dist/views/BrowseByFolder/index.js.map +1 -1
- package/dist/views/CollectionFolder/index.js +13 -40
- package/dist/views/CollectionFolder/index.js.map +1 -1
- package/dist/views/Edit/Auth/index.js +93 -105
- package/dist/views/Edit/Auth/index.js.map +1 -1
- package/package.json +8 -8
- /package/dist/exports/client/{CodeEditor-URFJPG6I.js.map → CodeEditor-RHQXPDK5.js.map} +0 -0
- /package/dist/exports/client/{DatePicker-NMDEHPWL.js.map → DatePicker-F432AIH3.js.map} +0 -0
|
@@ -7,7 +7,7 @@ import { optionsAreObjects } from 'payload/shared';
|
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import { useTranslation } from '../../../../../providers/Translation/index.js';
|
|
9
9
|
export const SelectCell = t0 => {
|
|
10
|
-
const $ = _c(
|
|
10
|
+
const $ = _c(7);
|
|
11
11
|
const {
|
|
12
12
|
cellData,
|
|
13
13
|
field: t1
|
|
@@ -31,38 +31,23 @@ export const SelectCell = t0 => {
|
|
|
31
31
|
t2 = $[2];
|
|
32
32
|
}
|
|
33
33
|
const findLabel = t2;
|
|
34
|
-
let
|
|
35
|
-
if (
|
|
36
|
-
let
|
|
37
|
-
if (
|
|
38
|
-
|
|
39
|
-
$[3] = cellData;
|
|
40
|
-
$[4] = findLabel;
|
|
41
|
-
$[5] = t3;
|
|
42
|
-
} else {
|
|
43
|
-
t3 = $[5];
|
|
44
|
-
}
|
|
45
|
-
content = t3;
|
|
46
|
-
} else {
|
|
47
|
-
let t3;
|
|
48
|
-
if ($[6] !== cellData) {
|
|
49
|
-
t3 = Array.isArray(cellData) ? cellData.join(", ") : cellData;
|
|
50
|
-
$[6] = cellData;
|
|
51
|
-
$[7] = t3;
|
|
34
|
+
let t3;
|
|
35
|
+
if ($[3] !== cellData || $[4] !== findLabel || $[5] !== options) {
|
|
36
|
+
let content;
|
|
37
|
+
if (optionsAreObjects(options)) {
|
|
38
|
+
content = Array.isArray(cellData) ? findLabel(cellData) : findLabel([cellData]);
|
|
52
39
|
} else {
|
|
53
|
-
|
|
40
|
+
content = Array.isArray(cellData) ? cellData.join(", ") : cellData;
|
|
54
41
|
}
|
|
55
|
-
content = t3;
|
|
56
|
-
}
|
|
57
|
-
let t3;
|
|
58
|
-
if ($[8] !== content) {
|
|
59
42
|
t3 = _jsx("span", {
|
|
60
43
|
children: content
|
|
61
44
|
});
|
|
62
|
-
$[
|
|
63
|
-
$[
|
|
45
|
+
$[3] = cellData;
|
|
46
|
+
$[4] = findLabel;
|
|
47
|
+
$[5] = options;
|
|
48
|
+
$[6] = t3;
|
|
64
49
|
} else {
|
|
65
|
-
t3 = $[
|
|
50
|
+
t3 = $[6];
|
|
66
51
|
}
|
|
67
52
|
return t3;
|
|
68
53
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","getTranslation","optionsAreObjects","React","useTranslation","SelectCell","t0","$","cellData","field","t1","options","i18n","t2","items","map","i","found","filter","f","value","label","join","findLabel","
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","getTranslation","optionsAreObjects","React","useTranslation","SelectCell","t0","$","cellData","field","t1","options","i18n","t2","items","map","i","found","filter","f","value","label","join","findLabel","t3","content","_jsx","children"],"sources":["../../../../../../src/elements/Table/DefaultCell/fields/Select/index.tsx"],"sourcesContent":["'use client'\nimport type { DefaultCellComponentProps, OptionObject, SelectFieldClient } from 'payload'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { optionsAreObjects } from 'payload/shared'\nimport React from 'react'\n\nimport { useTranslation } from '../../../../../providers/Translation/index.js'\n\nexport interface SelectCellProps extends DefaultCellComponentProps<SelectFieldClient> {}\n\nexport const SelectCell: React.FC<SelectCellProps> = ({ cellData, field: { options } }) => {\n const { i18n } = useTranslation()\n\n const findLabel = (items: string[]) =>\n items\n .map((i) => {\n const found = (options as OptionObject[]).filter((f: OptionObject) => f.value === i)?.[0]\n ?.label\n return getTranslation(found, i18n)\n })\n .join(', ')\n\n let content = ''\n if (optionsAreObjects(options)) {\n content = Array.isArray(cellData)\n ? findLabel(cellData) // hasMany\n : findLabel([cellData])\n } else {\n content = Array.isArray(cellData)\n ? cellData.join(', ') // hasMany\n : cellData\n }\n\n return <span>{content}</span>\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,cAAc,QAAQ;AAC/B,SAASC,iBAAiB,QAAQ;AAClC,OAAOC,KAAA,MAAW;AAElB,SAASC,cAAc,QAAQ;AAI/B,OAAO,MAAMC,UAAA,GAAwCC,EAAA;EAAA,MAAAC,CAAA,GAAAP,EAAA;EAAC;IAAAQ,QAAA;IAAAC,KAAA,EAAAC;EAAA,IAAAJ,EAAgC;EAAb;IAAAK;EAAA,IAAAD,EAAW;EAClF;IAAAE;EAAA,IAAiBR,cAAA;EAAA,IAAAS,EAAA;EAAA,IAAAN,CAAA,QAAAK,IAAA,IAAAL,CAAA,QAAAI,OAAA;IAECE,EAAA,GAAAC,KAAA,IAChBA,KAAA,CAAAC,GAAA,CAAAC,CAAA;MAEI,MAAAC,KAAA,GAAcN,OAAC,CAAAO,MAAA,CAAAC,CAAA,IAAuDA,CAAA,CAAAC,KAAA,KAAYJ,CAAA,QAAAK,KAAA;MAC9E,OACGpB,cAAA,CAAegB,KAAA,EAAOL,IAAA;IAAA,CAC/B,EAAAU,IAAA,CACM;IAAAf,CAAA,MAAAK,IAAA;IAAAL,CAAA,MAAAI,OAAA;IAAAJ,CAAA,MAAAM,EAAA;EAAA;IAAAA,EAAA,GAAAN,CAAA;EAAA;EAPV,MAAAgB,SAAA,GAAkBV,EAOR;EAAA,IAAAW,EAAA;EAAA,IAAAjB,CAAA,QAAAC,QAAA,IAAAD,CAAA,QAAAgB,SAAA,IAAAhB,CAAA,QAAAI,OAAA;IAEV,IAAAc,OAAA;IAAc,IACVvB,iBAAA,CAAkBS,OAAA;MACpBc,OAAA,CAAAA,CAAA,CAAUA,cAAcjB,QAAA,IACpBe,SAAA,CAAUf,QAAA,IACVe,SAAA,EAAWf,QAAA,CAAS;IAFxB;MAIAiB,OAAA,CAAAA,CAAA,CAAUA,cAAcjB,QAAA,IACpBA,QAAA,CAAAc,IAAA,CAAc,QACdd,QAAA;IAFJ;IAKKgB,EAAA,GAAAE,IAAA,CAAC;MAAAC,QAAA,EAAMF;IAAA,C;;;;;;;;SAAPD,E;CACT","ignoreList":[]}
|
|
@@ -8,7 +8,7 @@ const baseClass = 'thumbnail';
|
|
|
8
8
|
import { File } from '../../graphics/File/index.js';
|
|
9
9
|
import { ShimmerEffect } from '../ShimmerEffect/index.js';
|
|
10
10
|
export const Thumbnail = props => {
|
|
11
|
-
const $ = _c(
|
|
11
|
+
const $ = _c(6);
|
|
12
12
|
const {
|
|
13
13
|
className: t0,
|
|
14
14
|
doc: t1,
|
|
@@ -17,33 +17,25 @@ export const Thumbnail = props => {
|
|
|
17
17
|
size
|
|
18
18
|
} = props;
|
|
19
19
|
const className = t0 === undefined ? "" : t0;
|
|
20
|
-
let t2;
|
|
21
|
-
if ($[0] !== t1) {
|
|
22
|
-
t2 = t1 === undefined ? {} : t1;
|
|
23
|
-
$[0] = t1;
|
|
24
|
-
$[1] = t2;
|
|
25
|
-
} else {
|
|
26
|
-
t2 = $[1];
|
|
27
|
-
}
|
|
28
20
|
const {
|
|
29
21
|
filename
|
|
30
|
-
} =
|
|
22
|
+
} = t1 === undefined ? {} : t1;
|
|
31
23
|
const [fileExists, setFileExists] = React.useState(undefined);
|
|
32
|
-
const
|
|
33
|
-
let
|
|
34
|
-
if ($[
|
|
35
|
-
|
|
36
|
-
$[
|
|
37
|
-
$[
|
|
38
|
-
$[
|
|
24
|
+
const t2 = `${baseClass}--size-${size || "medium"}`;
|
|
25
|
+
let t3;
|
|
26
|
+
if ($[0] !== className || $[1] !== t2) {
|
|
27
|
+
t3 = [baseClass, t2, className];
|
|
28
|
+
$[0] = className;
|
|
29
|
+
$[1] = t2;
|
|
30
|
+
$[2] = t3;
|
|
39
31
|
} else {
|
|
40
|
-
|
|
32
|
+
t3 = $[2];
|
|
41
33
|
}
|
|
42
|
-
const classNames =
|
|
34
|
+
const classNames = t3.join(" ");
|
|
35
|
+
let t4;
|
|
43
36
|
let t5;
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
t5 = () => {
|
|
37
|
+
if ($[3] !== fileSrc) {
|
|
38
|
+
t4 = () => {
|
|
47
39
|
if (!fileSrc) {
|
|
48
40
|
setFileExists(false);
|
|
49
41
|
return;
|
|
@@ -58,53 +50,32 @@ export const Thumbnail = props => {
|
|
|
58
50
|
setFileExists(false);
|
|
59
51
|
};
|
|
60
52
|
};
|
|
61
|
-
|
|
62
|
-
$[
|
|
63
|
-
$[
|
|
64
|
-
$[
|
|
53
|
+
t5 = [fileSrc];
|
|
54
|
+
$[3] = fileSrc;
|
|
55
|
+
$[4] = t4;
|
|
56
|
+
$[5] = t5;
|
|
65
57
|
} else {
|
|
66
|
-
|
|
67
|
-
|
|
58
|
+
t4 = $[4];
|
|
59
|
+
t5 = $[5];
|
|
68
60
|
}
|
|
69
|
-
React.useEffect(
|
|
61
|
+
React.useEffect(t4, t5);
|
|
70
62
|
let src = null;
|
|
71
63
|
if (fileSrc) {
|
|
72
64
|
const queryChar = fileSrc?.includes("?") ? "&" : "?";
|
|
73
65
|
src = imageCacheTag ? `${fileSrc}${queryChar}${encodeURIComponent(imageCacheTag)}` : fileSrc;
|
|
74
66
|
}
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
$[14] = filename;
|
|
85
|
-
$[15] = src;
|
|
86
|
-
$[16] = t8;
|
|
87
|
-
} else {
|
|
88
|
-
t8 = $[16];
|
|
89
|
-
}
|
|
90
|
-
t7 = _jsxs("div", {
|
|
91
|
-
className: classNames,
|
|
92
|
-
children: [fileExists === undefined && _jsx(ShimmerEffect, {
|
|
93
|
-
height: "100%"
|
|
94
|
-
}), t8, fileExists === false && _jsx(File, {})]
|
|
95
|
-
});
|
|
96
|
-
$[8] = classNames;
|
|
97
|
-
$[9] = fileExists;
|
|
98
|
-
$[10] = filename;
|
|
99
|
-
$[11] = src;
|
|
100
|
-
$[12] = t7;
|
|
101
|
-
} else {
|
|
102
|
-
t7 = $[12];
|
|
103
|
-
}
|
|
104
|
-
return t7;
|
|
67
|
+
return _jsxs("div", {
|
|
68
|
+
className: classNames,
|
|
69
|
+
children: [fileExists === undefined && _jsx(ShimmerEffect, {
|
|
70
|
+
height: "100%"
|
|
71
|
+
}), fileExists && _jsx("img", {
|
|
72
|
+
alt: filename,
|
|
73
|
+
src
|
|
74
|
+
}), fileExists === false && _jsx(File, {})]
|
|
75
|
+
});
|
|
105
76
|
};
|
|
106
77
|
export function ThumbnailComponent(props) {
|
|
107
|
-
const $ = _c(
|
|
78
|
+
const $ = _c(12);
|
|
108
79
|
const {
|
|
109
80
|
alt,
|
|
110
81
|
className: t0,
|
|
@@ -160,25 +131,14 @@ export function ThumbnailComponent(props) {
|
|
|
160
131
|
}
|
|
161
132
|
let t5;
|
|
162
133
|
if ($[6] !== alt || $[7] !== classNames || $[8] !== fileExists || $[9] !== filename || $[10] !== src) {
|
|
163
|
-
let t6;
|
|
164
|
-
if ($[12] !== alt || $[13] !== fileExists || $[14] !== filename || $[15] !== src) {
|
|
165
|
-
t6 = fileExists && _jsx("img", {
|
|
166
|
-
alt: alt || filename,
|
|
167
|
-
src
|
|
168
|
-
});
|
|
169
|
-
$[12] = alt;
|
|
170
|
-
$[13] = fileExists;
|
|
171
|
-
$[14] = filename;
|
|
172
|
-
$[15] = src;
|
|
173
|
-
$[16] = t6;
|
|
174
|
-
} else {
|
|
175
|
-
t6 = $[16];
|
|
176
|
-
}
|
|
177
134
|
t5 = _jsxs("div", {
|
|
178
135
|
className: classNames,
|
|
179
136
|
children: [fileExists === undefined && _jsx(ShimmerEffect, {
|
|
180
137
|
height: "100%"
|
|
181
|
-
}),
|
|
138
|
+
}), fileExists && _jsx("img", {
|
|
139
|
+
alt: alt || filename,
|
|
140
|
+
src
|
|
141
|
+
}), fileExists === false && _jsx(File, {})]
|
|
182
142
|
});
|
|
183
143
|
$[6] = alt;
|
|
184
144
|
$[7] = classNames;
|
|
@@ -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","
|
|
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","t2","t3","classNames","join","t4","t5","img","Image","src","onload","onerror","useEffect","queryChar","includes","encodeURIComponent","_jsxs","children","_jsx","height","alt","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(13);
|
|
13
13
|
const {
|
|
14
14
|
alignLabel,
|
|
15
15
|
className,
|
|
@@ -38,31 +38,18 @@ export const ThumbnailCard = props => {
|
|
|
38
38
|
t2 = $[3];
|
|
39
39
|
}
|
|
40
40
|
const classes = t2.join(" ");
|
|
41
|
-
let
|
|
42
|
-
if (
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
t4 = formatDocTitle({
|
|
41
|
+
let t3;
|
|
42
|
+
if ($[4] !== classes || $[5] !== collection || $[6] !== config || $[7] !== doc || $[8] !== i18n || $[9] !== labelFromProps || $[10] !== onClick || $[11] !== thumbnail) {
|
|
43
|
+
let title = labelFromProps;
|
|
44
|
+
if (!title) {
|
|
45
|
+
title = formatDocTitle({
|
|
47
46
|
collectionConfig: collection,
|
|
48
47
|
data: doc,
|
|
49
48
|
dateFormat: config.admin.dateFormat,
|
|
50
|
-
fallback:
|
|
49
|
+
fallback: doc?.filename,
|
|
51
50
|
i18n
|
|
52
51
|
});
|
|
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];
|
|
61
52
|
}
|
|
62
|
-
title = t4;
|
|
63
|
-
}
|
|
64
|
-
let t3;
|
|
65
|
-
if ($[10] !== classes || $[11] !== onClick || $[12] !== thumbnail || $[13] !== title) {
|
|
66
53
|
t3 = _jsxs("button", {
|
|
67
54
|
className: classes,
|
|
68
55
|
onClick,
|
|
@@ -76,13 +63,17 @@ export const ThumbnailCard = props => {
|
|
|
76
63
|
children: title
|
|
77
64
|
})]
|
|
78
65
|
});
|
|
79
|
-
$[
|
|
80
|
-
$[
|
|
81
|
-
$[
|
|
82
|
-
$[
|
|
83
|
-
$[
|
|
66
|
+
$[4] = classes;
|
|
67
|
+
$[5] = collection;
|
|
68
|
+
$[6] = config;
|
|
69
|
+
$[7] = doc;
|
|
70
|
+
$[8] = i18n;
|
|
71
|
+
$[9] = labelFromProps;
|
|
72
|
+
$[10] = onClick;
|
|
73
|
+
$[11] = thumbnail;
|
|
74
|
+
$[12] = t3;
|
|
84
75
|
} else {
|
|
85
|
-
t3 = $[
|
|
76
|
+
t3 = $[12];
|
|
86
77
|
}
|
|
87
78
|
return t3;
|
|
88
79
|
};
|
|
@@ -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","
|
|
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","title","data","dateFormat","admin","fallback","filename","_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;EAAA,IAAAC,EAAA;EAAA,IAAAlB,CAAA,QAAAgB,OAAA,IAAAhB,CAAA,QAAAG,UAAA,IAAAH,CAAA,QAAAS,MAAA,IAAAT,CAAA,QAAAI,GAAA,IAAAJ,CAAA,QAAAU,IAAA,IAAAV,CAAA,QAAAM,cAAA,IAAAN,CAAA,SAAAO,OAAA,IAAAP,CAAA,SAAAQ,SAAA;IAER,IAAAW,KAAA,GAAYb,cAAA;IAAA,KAEPa,KAAA;MACHA,KAAA,CAAAA,CAAA,CAAQA;QAAAA,iBAAA,CACYhB,UAAA;QAAAiB,IAAA,EACZhB,GAAA;QAAAiB,UAAA,EACMZ,MAAA,CAAAa,KAAA,CAAAD,UAAA;QAAAE,QAAA,EACFnB,GAAA,EAAAoB,QAAA;QAAAd;MAAA,CAEZ;IANA;IAUAQ,EAAA,GAAAO,KAAA,CAAC;MAAAvB,SAAA,EAAkBc,OAAA;MAAAT,OAAA;MAAAY,KAAA;MAAAO,IAAA,EAA8C;MAAAC,QAAA,GAC/DC,IAAA,CAAC;QAAA1B,SAAA,EAAe,GAAAL,SAAA,aAAyB;QAAA8B,QAAA,EAAGnB;MAAA,C,GAC5CoB,IAAA,CAAC;QAAA1B,SAAA,EAAe,GAAAL,SAAA,SAAqB;QAAA8B,QAAA,EAAGR;MAAA,C;;;;;;;;;;;;;;SAF1CD,E;CAKJ","ignoreList":[]}
|
|
@@ -1,147 +1,71 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import { c as _c } from "react/compiler-runtime";
|
|
4
3
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
5
4
|
import React, { useEffect } from 'react';
|
|
6
5
|
import { useIntersect } from '../../hooks/useIntersect.js';
|
|
7
6
|
import './index.scss';
|
|
8
7
|
export const Tooltip = props => {
|
|
9
|
-
const $ = _c(26);
|
|
10
8
|
const {
|
|
11
|
-
alignCaret
|
|
9
|
+
alignCaret = 'center',
|
|
12
10
|
boundingRef,
|
|
13
11
|
children,
|
|
14
12
|
className,
|
|
15
|
-
delay
|
|
13
|
+
delay = 350,
|
|
16
14
|
position: positionFromProps,
|
|
17
|
-
show:
|
|
18
|
-
staticPositioning
|
|
15
|
+
show: showFromProps = true,
|
|
16
|
+
staticPositioning = false
|
|
19
17
|
} = 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;
|
|
24
18
|
const [show, setShow] = React.useState(showFromProps);
|
|
25
|
-
const [position, setPosition] = React.useState(
|
|
26
|
-
const getTitleAttribute =
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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 {
|
|
19
|
+
const [position, setPosition] = React.useState('top');
|
|
20
|
+
const getTitleAttribute = content => typeof content === 'string' ? content : '';
|
|
21
|
+
const [ref, intersectionEntry] = useIntersect({
|
|
22
|
+
root: boundingRef?.current || null,
|
|
23
|
+
rootMargin: '-145px 0px 0px 100px',
|
|
24
|
+
threshold: 0
|
|
25
|
+
}, staticPositioning);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
let timerID;
|
|
28
|
+
// do not use the delay on transition-out
|
|
29
|
+
if (delay && showFromProps) {
|
|
30
|
+
timerID = setTimeout(() => {
|
|
51
31
|
setShow(showFromProps);
|
|
32
|
+
}, delay);
|
|
33
|
+
} else {
|
|
34
|
+
setShow(showFromProps);
|
|
35
|
+
}
|
|
36
|
+
return () => {
|
|
37
|
+
if (timerID) {
|
|
38
|
+
clearTimeout(timerID);
|
|
52
39
|
}
|
|
53
|
-
return () => {
|
|
54
|
-
if (timerID) {
|
|
55
|
-
clearTimeout(timerID);
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
};
|
|
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
40
|
};
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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];
|
|
41
|
+
}, [showFromProps, delay]);
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
if (staticPositioning) {
|
|
44
|
+
return;
|
|
108
45
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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;
|
|
46
|
+
setPosition(intersectionEntry?.isIntersecting ? 'top' : 'bottom');
|
|
47
|
+
}, [intersectionEntry, staticPositioning]);
|
|
48
|
+
// 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.
|
|
49
|
+
return /*#__PURE__*/_jsxs(React.Fragment, {
|
|
50
|
+
children: [!staticPositioning && /*#__PURE__*/_jsx("aside", {
|
|
51
|
+
"aria-hidden": "true",
|
|
52
|
+
className: ['tooltip', className, `tooltip--caret-${alignCaret}`, 'tooltip--position-top'].filter(Boolean).join(' '),
|
|
53
|
+
ref: ref,
|
|
54
|
+
style: {
|
|
55
|
+
opacity: '0'
|
|
56
|
+
},
|
|
57
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
58
|
+
className: "tooltip-content",
|
|
59
|
+
children: children
|
|
60
|
+
})
|
|
61
|
+
}), /*#__PURE__*/_jsx("aside", {
|
|
62
|
+
className: ['tooltip', className, show && 'tooltip--show', `tooltip--caret-${alignCaret}`, `tooltip--position-${positionFromProps || position}`].filter(Boolean).join(' '),
|
|
63
|
+
title: getTitleAttribute(children),
|
|
64
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
65
|
+
className: "tooltip-content",
|
|
66
|
+
children: children
|
|
67
|
+
})
|
|
68
|
+
})]
|
|
69
|
+
});
|
|
143
70
|
};
|
|
144
|
-
function _temp(content) {
|
|
145
|
-
return typeof content === "string" ? content : "";
|
|
146
|
-
}
|
|
147
71
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["
|
|
1
|
+
{"version":3,"file":"index.js","names":["React","useEffect","useIntersect","Tooltip","props","alignCaret","boundingRef","children","className","delay","position","positionFromProps","show","showFromProps","staticPositioning","setShow","useState","setPosition","getTitleAttribute","content","ref","intersectionEntry","root","current","rootMargin","threshold","timerID","setTimeout","clearTimeout","isIntersecting","_jsxs","Fragment","_jsx","filter","Boolean","join","style","opacity","title"],"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;;;AACA,OAAOA,KAAA,IAASC,SAAS,QAAQ;AAEjC,SAASC,YAAY,QAAQ;AAC7B,OAAO;AAgBP,OAAO,MAAMC,OAAA,GAA4BC,KAAA;EACvC,MAAM;IACJC,UAAA,GAAa,QAAQ;IACrBC,WAAW;IACXC,QAAQ;IACRC,SAAS;IACTC,KAAA,GAAQ,GAAG;IACXC,QAAA,EAAUC,iBAAiB;IAC3BC,IAAA,EAAMC,aAAA,GAAgB,IAAI;IAC1BC,iBAAA,GAAoB;EAAK,CAC1B,GAAGV,KAAA;EAEJ,MAAM,CAACQ,IAAA,EAAMG,OAAA,CAAQ,GAAGf,KAAA,CAAMgB,QAAQ,CAACH,aAAA;EACvC,MAAM,CAACH,QAAA,EAAUO,WAAA,CAAY,GAAGjB,KAAA,CAAMgB,QAAQ,CAAmB;EAEjE,MAAME,iBAAA,GAAqBC,OAAA,IAAa,OAAOA,OAAA,KAAY,WAAWA,OAAA,GAAU;EAEhF,MAAM,CAACC,GAAA,EAAKC,iBAAA,CAAkB,GAAGnB,YAAA,CAC/B;IACEoB,IAAA,EAAMhB,WAAA,EAAaiB,OAAA,IAAW;IAC9BC,UAAA,EAAY;IACZC,SAAA,EAAW;EACb,GACAX,iBAAA;EAGFb,SAAA,CAAU;IACR,IAAIyB,OAAA;IAEJ;IACA,IAAIjB,KAAA,IAASI,aAAA,EAAe;MAC1Ba,OAAA,GAAUC,UAAA,CAAW;QACnBZ,OAAA,CAAQF,aAAA;MACV,GAAGJ,KAAA;IACL,OAAO;MACLM,OAAA,CAAQF,aAAA;IACV;IAEA,OAAO;MACL,IAAIa,OAAA,EAAS;QACXE,YAAA,CAAaF,OAAA;MACf;IACF;EACF,GAAG,CAACb,aAAA,EAAeJ,KAAA,CAAM;EAEzBR,SAAA,CAAU;IACR,IAAIa,iBAAA,EAAmB;MACrB;IACF;IACAG,WAAA,CAAYI,iBAAA,EAAmBQ,cAAA,GAAiB,QAAQ;EAC1D,GAAG,CAACR,iBAAA,EAAmBP,iBAAA,CAAkB;EAEzC;EACA,oBACEgB,KAAA,CAAC9B,KAAA,CAAM+B,QAAQ;eACZ,CAACjB,iBAAA,iBACAkB,IAAA,CAAC;MACC,eAAY;MACZxB,SAAA,EAAW,CAAC,WAAWA,SAAA,EAAW,kBAAkBH,UAAA,EAAY,EAAE,wBAAwB,CACvF4B,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;MACRf,GAAA,EAAKA,GAAA;MACLgB,KAAA,EAAO;QAAEC,OAAA,EAAS;MAAI;gBAEtB,aAAAL,IAAA,CAAC;QAAIxB,SAAA,EAAU;kBAAmBD;;qBAGtCyB,IAAA,CAAC;MACCxB,SAAA,EAAW,CACT,WACAA,SAAA,EACAI,IAAA,IAAQ,iBACR,kBAAkBP,UAAA,EAAY,EAC9B,qBAAqBM,iBAAA,IAAqBD,QAAA,EAAU,CACrD,CACEuB,MAAM,CAACC,OAAA,EACPC,IAAI,CAAC;MACRG,KAAA,EAAOpB,iBAAA,CAAkBX,QAAA;gBAEzB,aAAAyB,IAAA,CAAC;QAAIxB,SAAA,EAAU;kBAAmBD;;;;AAI1C","ignoreList":[]}
|