@payloadcms/richtext-lexical 3.57.0-internal.f26caed → 3.57.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/exports/client/{Field-PKJPWZJL.js → Field-D5RCNN4A.js} +2 -2
- package/dist/exports/client/Field-D5RCNN4A.js.map +7 -0
- package/dist/exports/client/bundled.css +1 -1
- package/dist/exports/client/component-VDJI45F2.js +2 -0
- package/dist/exports/client/component-VDJI45F2.js.map +7 -0
- package/dist/exports/client/index.js +10 -10
- package/dist/exports/client/index.js.map +4 -4
- package/dist/features/align/server/i18n.d.ts.map +1 -1
- package/dist/features/align/server/i18n.js +6 -0
- package/dist/features/align/server/i18n.js.map +1 -1
- package/dist/features/blockquote/server/i18n.d.ts.map +1 -1
- package/dist/features/blockquote/server/i18n.js +3 -0
- package/dist/features/blockquote/server/i18n.js.map +1 -1
- package/dist/features/blocks/server/i18n.d.ts.map +1 -1
- package/dist/features/blocks/server/i18n.js +9 -0
- package/dist/features/blocks/server/i18n.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/link.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/async/converters/link.js +2 -6
- package/dist/features/converters/lexicalToHtml/async/converters/link.js.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/link.d.ts.map +1 -1
- package/dist/features/converters/lexicalToHtml/sync/converters/link.js +2 -6
- package/dist/features/converters/lexicalToHtml/sync/converters/link.js.map +1 -1
- package/dist/features/heading/server/i18n.d.ts.map +1 -1
- package/dist/features/heading/server/i18n.js +3 -0
- package/dist/features/heading/server/i18n.js.map +1 -1
- package/dist/features/horizontalRule/server/i18n.d.ts.map +1 -1
- package/dist/features/horizontalRule/server/i18n.js +3 -0
- package/dist/features/horizontalRule/server/i18n.js.map +1 -1
- package/dist/features/indent/server/i18n.d.ts.map +1 -1
- package/dist/features/indent/server/i18n.js +4 -0
- package/dist/features/indent/server/i18n.js.map +1 -1
- package/dist/features/link/server/i18n.d.ts.map +1 -1
- package/dist/features/link/server/i18n.js +4 -0
- package/dist/features/link/server/i18n.js.map +1 -1
- package/dist/features/lists/checklist/server/i18n.d.ts.map +1 -1
- package/dist/features/lists/checklist/server/i18n.js +3 -0
- package/dist/features/lists/checklist/server/i18n.js.map +1 -1
- package/dist/features/lists/orderedList/server/i18n.d.ts.map +1 -1
- package/dist/features/lists/orderedList/server/i18n.js +3 -0
- package/dist/features/lists/orderedList/server/i18n.js.map +1 -1
- package/dist/features/lists/unorderedList/server/i18n.d.ts.map +1 -1
- package/dist/features/lists/unorderedList/server/i18n.js +3 -0
- package/dist/features/lists/unorderedList/server/i18n.js.map +1 -1
- package/dist/features/paragraph/server/i18n.d.ts.map +1 -1
- package/dist/features/paragraph/server/i18n.js +4 -0
- package/dist/features/paragraph/server/i18n.js.map +1 -1
- package/dist/features/relationship/server/i18n.d.ts.map +1 -1
- package/dist/features/relationship/server/i18n.js +3 -0
- package/dist/features/relationship/server/i18n.js.map +1 -1
- package/dist/features/textState/i18n.d.ts.map +1 -1
- package/dist/features/textState/i18n.js +3 -0
- package/dist/features/textState/i18n.js.map +1 -1
- package/dist/features/upload/client/component/index.d.ts +2 -0
- package/dist/features/upload/client/component/index.d.ts.map +1 -1
- package/dist/features/upload/client/component/index.js +28 -24
- package/dist/features/upload/client/component/index.js.map +1 -1
- package/dist/features/upload/client/component/pending/index.d.ts +3 -0
- package/dist/features/upload/client/component/pending/index.d.ts.map +1 -0
- package/dist/features/upload/client/component/pending/index.js +14 -0
- package/dist/features/upload/client/component/pending/index.js.map +1 -0
- package/dist/features/upload/client/nodes/UploadNode.d.ts +2 -7
- package/dist/features/upload/client/nodes/UploadNode.d.ts.map +1 -1
- package/dist/features/upload/client/nodes/UploadNode.js +9 -27
- package/dist/features/upload/client/nodes/UploadNode.js.map +1 -1
- package/dist/features/upload/client/plugin/index.d.ts +6 -0
- package/dist/features/upload/client/plugin/index.d.ts.map +1 -1
- package/dist/features/upload/client/plugin/index.js +306 -23
- package/dist/features/upload/client/plugin/index.js.map +1 -1
- package/dist/features/upload/server/i18n.d.ts.map +1 -1
- package/dist/features/upload/server/i18n.js +3 -0
- package/dist/features/upload/server/i18n.js.map +1 -1
- package/dist/features/upload/server/nodes/UploadNode.d.ts +16 -1
- package/dist/features/upload/server/nodes/UploadNode.d.ts.map +1 -1
- package/dist/features/upload/server/nodes/UploadNode.js +12 -39
- package/dist/features/upload/server/nodes/UploadNode.js.map +1 -1
- package/dist/features/upload/server/nodes/conversions.d.ts +6 -0
- package/dist/features/upload/server/nodes/conversions.d.ts.map +1 -0
- package/dist/features/upload/server/nodes/conversions.js +53 -0
- package/dist/features/upload/server/nodes/conversions.js.map +1 -0
- package/dist/field/Field.d.ts.map +1 -1
- package/dist/field/Field.js +1 -1
- package/dist/field/Field.js.map +1 -1
- package/dist/field/bundled.css +1 -1
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js +6 -0
- package/dist/i18n.js.map +1 -1
- package/package.json +6 -6
- package/dist/exports/client/Field-PKJPWZJL.js.map +0 -7
- package/dist/exports/client/component-3PENNOM3.js +0 -2
- package/dist/exports/client/component-3PENNOM3.js.map +0 -7
|
@@ -3,30 +3,172 @@
|
|
|
3
3
|
import { c as _c } from "react/compiler-runtime";
|
|
4
4
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
5
5
|
import { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js';
|
|
6
|
-
import { $insertNodeToNearestRoot, mergeRegister } from '@lexical/utils';
|
|
7
|
-
import { useConfig } from '@payloadcms/ui';
|
|
8
|
-
import
|
|
6
|
+
import { $dfsIterator, $insertNodeToNearestRoot, mergeRegister } from '@lexical/utils';
|
|
7
|
+
import { useBulkUpload, useConfig, useEffectEvent, useModal } from '@payloadcms/ui';
|
|
8
|
+
import ObjectID from 'bson-objectid';
|
|
9
|
+
import { $createRangeSelection, $getPreviousSelection, $getSelection, $isParagraphNode, $isRangeSelection, $setSelection, COMMAND_PRIORITY_EDITOR, COMMAND_PRIORITY_LOW, createCommand, DROP_COMMAND, getDOMSelectionFromTarget, isHTMLElement, PASTE_COMMAND } from 'lexical';
|
|
9
10
|
import React, { useEffect } from 'react';
|
|
10
11
|
import { UploadDrawer } from '../drawer/index.js';
|
|
11
|
-
import { $createUploadNode, UploadNode } from '../nodes/UploadNode.js';
|
|
12
|
+
import { $createUploadNode, $isUploadNode, UploadNode } from '../nodes/UploadNode.js';
|
|
13
|
+
function canDropImage(event) {
|
|
14
|
+
const target = event.target;
|
|
15
|
+
return !!(isHTMLElement(target) && !target.closest('code, span.editor-image') && isHTMLElement(target.parentElement) && target.parentElement.closest('div.ContentEditable__root'));
|
|
16
|
+
}
|
|
17
|
+
function getDragSelection(event) {
|
|
18
|
+
// Source: https://github.com/AlessioGr/lexical/blob/main/packages/lexical-playground/src/plugins/ImagesPlugin/index.tsx
|
|
19
|
+
let range;
|
|
20
|
+
const domSelection = getDOMSelectionFromTarget(event.target);
|
|
21
|
+
if (document.caretRangeFromPoint) {
|
|
22
|
+
range = document.caretRangeFromPoint(event.clientX, event.clientY);
|
|
23
|
+
} else if (event.rangeParent && domSelection !== null) {
|
|
24
|
+
domSelection.collapse(event.rangeParent, event.rangeOffset || 0);
|
|
25
|
+
range = domSelection.getRangeAt(0);
|
|
26
|
+
} else {
|
|
27
|
+
throw Error(`Cannot get the selection when dragging`);
|
|
28
|
+
}
|
|
29
|
+
return range;
|
|
30
|
+
}
|
|
12
31
|
export const INSERT_UPLOAD_COMMAND = createCommand('INSERT_UPLOAD_COMMAND');
|
|
13
|
-
export const UploadPlugin =
|
|
14
|
-
const $ = _c(
|
|
32
|
+
export const UploadPlugin = () => {
|
|
33
|
+
const $ = _c(18);
|
|
15
34
|
const [editor] = useLexicalComposerContext();
|
|
16
35
|
const {
|
|
17
|
-
config:
|
|
36
|
+
config: t0
|
|
18
37
|
} = useConfig();
|
|
19
38
|
const {
|
|
20
39
|
collections
|
|
21
|
-
} =
|
|
40
|
+
} = t0;
|
|
41
|
+
const {
|
|
42
|
+
drawerSlug: bulkUploadDrawerSlug,
|
|
43
|
+
setCollectionSlug,
|
|
44
|
+
setInitialForms,
|
|
45
|
+
setOnCancel,
|
|
46
|
+
setOnSuccess,
|
|
47
|
+
setSelectableCollections
|
|
48
|
+
} = useBulkUpload();
|
|
49
|
+
const {
|
|
50
|
+
isModalOpen,
|
|
51
|
+
openModal
|
|
52
|
+
} = useModal();
|
|
53
|
+
let t1;
|
|
54
|
+
if ($[0] !== bulkUploadDrawerSlug || $[1] !== collections || $[2] !== editor || $[3] !== isModalOpen || $[4] !== openModal || $[5] !== setCollectionSlug || $[6] !== setInitialForms || $[7] !== setOnCancel || $[8] !== setOnSuccess || $[9] !== setSelectableCollections) {
|
|
55
|
+
t1 = t2 => {
|
|
56
|
+
const {
|
|
57
|
+
files
|
|
58
|
+
} = t2;
|
|
59
|
+
if (files?.length === 0) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
setInitialForms(initialForms => [...(initialForms ?? []), ...files.map(_temp)]);
|
|
63
|
+
if (!isModalOpen(bulkUploadDrawerSlug)) {
|
|
64
|
+
const uploadCollections = collections.filter(_temp2).map(_temp3);
|
|
65
|
+
if (!uploadCollections.length || !uploadCollections[0]) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
setCollectionSlug(uploadCollections[0]);
|
|
69
|
+
setSelectableCollections(uploadCollections);
|
|
70
|
+
setOnCancel(() => {
|
|
71
|
+
editor.update(_temp4);
|
|
72
|
+
});
|
|
73
|
+
setOnSuccess(newDocs => {
|
|
74
|
+
const newDocsMap = new Map(newDocs.map(_temp5));
|
|
75
|
+
editor.update(() => {
|
|
76
|
+
for (const dfsNode_0 of $dfsIterator()) {
|
|
77
|
+
const node_0 = dfsNode_0.node;
|
|
78
|
+
if ($isUploadNode(node_0)) {
|
|
79
|
+
const nodeData_0 = node_0.getData();
|
|
80
|
+
if (nodeData_0?.pending) {
|
|
81
|
+
const newDoc = newDocsMap.get(nodeData_0.pending?.formID);
|
|
82
|
+
if (newDoc) {
|
|
83
|
+
node_0.replace($createUploadNode({
|
|
84
|
+
data: {
|
|
85
|
+
id: new ObjectID.default().toHexString(),
|
|
86
|
+
fields: {},
|
|
87
|
+
relationTo: newDoc.collectionSlug,
|
|
88
|
+
value: newDoc.doc.id
|
|
89
|
+
}
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
openModal(bulkUploadDrawerSlug);
|
|
98
|
+
}
|
|
99
|
+
};
|
|
100
|
+
$[0] = bulkUploadDrawerSlug;
|
|
101
|
+
$[1] = collections;
|
|
102
|
+
$[2] = editor;
|
|
103
|
+
$[3] = isModalOpen;
|
|
104
|
+
$[4] = openModal;
|
|
105
|
+
$[5] = setCollectionSlug;
|
|
106
|
+
$[6] = setInitialForms;
|
|
107
|
+
$[7] = setOnCancel;
|
|
108
|
+
$[8] = setOnSuccess;
|
|
109
|
+
$[9] = setSelectableCollections;
|
|
110
|
+
$[10] = t1;
|
|
111
|
+
} else {
|
|
112
|
+
t1 = $[10];
|
|
113
|
+
}
|
|
114
|
+
const openBulkUpload = useEffectEvent(t1);
|
|
22
115
|
let t2;
|
|
23
|
-
|
|
24
|
-
if ($[0] !== editor) {
|
|
116
|
+
if ($[11] !== editor || $[12] !== openBulkUpload) {
|
|
25
117
|
t2 = () => {
|
|
26
118
|
if (!editor.hasNodes([UploadNode])) {
|
|
27
119
|
throw new Error("UploadPlugin: UploadNode not registered on editor");
|
|
28
120
|
}
|
|
29
|
-
return mergeRegister(editor.
|
|
121
|
+
return mergeRegister(editor.registerNodeTransform(UploadNode, node_1 => {
|
|
122
|
+
const nodeData_1 = node_1.getData();
|
|
123
|
+
if (!nodeData_1?.pending) {
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const upload_0 = async function upload() {
|
|
127
|
+
let transformedImage = null;
|
|
128
|
+
const src = nodeData_1?.pending?.src;
|
|
129
|
+
const formID = nodeData_1?.pending?.formID;
|
|
130
|
+
if (src?.startsWith("data:")) {
|
|
131
|
+
const mimeMatch = src.match(/data:(image\/[a-zA-Z]+);base64,/);
|
|
132
|
+
const mimeType = mimeMatch ? mimeMatch[1] : "image/png";
|
|
133
|
+
const base64Data = src.replace(/^data:image\/[a-zA-Z]+;base64,/, "");
|
|
134
|
+
const byteCharacters = atob(base64Data);
|
|
135
|
+
const byteNumbers = new Array(byteCharacters.length);
|
|
136
|
+
for (let i = 0; i < byteCharacters.length; i++) {
|
|
137
|
+
byteNumbers[i] = byteCharacters.charCodeAt(i);
|
|
138
|
+
}
|
|
139
|
+
const byteArray = new Uint8Array(byteNumbers);
|
|
140
|
+
const file_0 = new File([byteArray], "pasted-image." + mimeType?.split("/")[1], {
|
|
141
|
+
type: mimeType
|
|
142
|
+
});
|
|
143
|
+
transformedImage = {
|
|
144
|
+
alt: undefined,
|
|
145
|
+
file: file_0,
|
|
146
|
+
formID
|
|
147
|
+
};
|
|
148
|
+
} else {
|
|
149
|
+
if (src?.startsWith("http") || src?.startsWith("https")) {
|
|
150
|
+
const res = await fetch(src);
|
|
151
|
+
const blob = await res.blob();
|
|
152
|
+
const inferredFileName = src.split("/").pop() || "pasted-image" + blob.type.split("/")[1];
|
|
153
|
+
const file_1 = new File([blob], inferredFileName, {
|
|
154
|
+
type: blob.type
|
|
155
|
+
});
|
|
156
|
+
transformedImage = {
|
|
157
|
+
alt: undefined,
|
|
158
|
+
file: file_1,
|
|
159
|
+
formID
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
if (!transformedImage) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
openBulkUpload({
|
|
167
|
+
files: [transformedImage]
|
|
168
|
+
});
|
|
169
|
+
};
|
|
170
|
+
upload_0();
|
|
171
|
+
}), editor.registerCommand(INSERT_UPLOAD_COMMAND, payload => {
|
|
30
172
|
editor.update(() => {
|
|
31
173
|
const selection = $getSelection() || $getPreviousSelection();
|
|
32
174
|
if ($isRangeSelection(selection)) {
|
|
@@ -49,33 +191,174 @@ export const UploadPlugin = t0 => {
|
|
|
49
191
|
}
|
|
50
192
|
});
|
|
51
193
|
return true;
|
|
52
|
-
}, COMMAND_PRIORITY_EDITOR)
|
|
194
|
+
}, COMMAND_PRIORITY_EDITOR), editor.registerCommand(PASTE_COMMAND, event => {
|
|
195
|
+
if (!(event instanceof ClipboardEvent)) {
|
|
196
|
+
return false;
|
|
197
|
+
}
|
|
198
|
+
const clipboardData = event.clipboardData;
|
|
199
|
+
if (!clipboardData?.types?.length || clipboardData?.types?.includes("text/html")) {
|
|
200
|
+
return false;
|
|
201
|
+
}
|
|
202
|
+
const files_0 = [];
|
|
203
|
+
if (clipboardData?.files?.length) {
|
|
204
|
+
Array.from(clipboardData.files).forEach(file_2 => {
|
|
205
|
+
files_0.push({
|
|
206
|
+
alt: "",
|
|
207
|
+
file: file_2,
|
|
208
|
+
formID: new ObjectID.default().toHexString()
|
|
209
|
+
});
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
if (files_0.length) {
|
|
213
|
+
editor.update(() => {
|
|
214
|
+
const selection_0 = $getSelection() || $getPreviousSelection();
|
|
215
|
+
if ($isRangeSelection(selection_0)) {
|
|
216
|
+
for (const file_3 of files_0) {
|
|
217
|
+
const pendingUploadNode = new UploadNode({
|
|
218
|
+
data: {
|
|
219
|
+
pending: {
|
|
220
|
+
formID: file_3.formID,
|
|
221
|
+
src: URL.createObjectURL(file_3.file)
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
const {
|
|
226
|
+
focus: focus_0
|
|
227
|
+
} = selection_0;
|
|
228
|
+
const focusNode_0 = focus_0.getNode();
|
|
229
|
+
$insertNodeToNearestRoot(pendingUploadNode);
|
|
230
|
+
if ($isParagraphNode(focusNode_0) && !focusNode_0.__first) {
|
|
231
|
+
focusNode_0.remove();
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
});
|
|
236
|
+
openBulkUpload({
|
|
237
|
+
files: files_0
|
|
238
|
+
});
|
|
239
|
+
return true;
|
|
240
|
+
}
|
|
241
|
+
return false;
|
|
242
|
+
}, COMMAND_PRIORITY_LOW), editor.registerCommand(DROP_COMMAND, event_0 => {
|
|
243
|
+
if (!(event_0 instanceof DragEvent)) {
|
|
244
|
+
return false;
|
|
245
|
+
}
|
|
246
|
+
const dt = event_0.dataTransfer;
|
|
247
|
+
if (!dt?.types?.length) {
|
|
248
|
+
return false;
|
|
249
|
+
}
|
|
250
|
+
const files_1 = [];
|
|
251
|
+
if (dt?.files?.length) {
|
|
252
|
+
Array.from(dt.files).forEach(file_4 => {
|
|
253
|
+
files_1.push({
|
|
254
|
+
alt: "",
|
|
255
|
+
file: file_4,
|
|
256
|
+
formID: new ObjectID.default().toHexString()
|
|
257
|
+
});
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
if (files_1.length) {
|
|
261
|
+
event_0.preventDefault();
|
|
262
|
+
event_0.stopPropagation();
|
|
263
|
+
editor.update(() => {
|
|
264
|
+
if (canDropImage(event_0)) {
|
|
265
|
+
const range = getDragSelection(event_0);
|
|
266
|
+
const selection_1 = $createRangeSelection();
|
|
267
|
+
if (range !== null && range !== undefined) {
|
|
268
|
+
selection_1.applyDOMRange(range);
|
|
269
|
+
}
|
|
270
|
+
$setSelection(selection_1);
|
|
271
|
+
for (const file_5 of files_1) {
|
|
272
|
+
const pendingUploadNode_0 = new UploadNode({
|
|
273
|
+
data: {
|
|
274
|
+
pending: {
|
|
275
|
+
formID: file_5.formID,
|
|
276
|
+
src: URL.createObjectURL(file_5.file)
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
});
|
|
280
|
+
const {
|
|
281
|
+
focus: focus_1
|
|
282
|
+
} = selection_1;
|
|
283
|
+
const focusNode_1 = focus_1.getNode();
|
|
284
|
+
$insertNodeToNearestRoot(pendingUploadNode_0);
|
|
285
|
+
if ($isParagraphNode(focusNode_1) && !focusNode_1.__first) {
|
|
286
|
+
focusNode_1.remove();
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
openBulkUpload({
|
|
292
|
+
files: files_1
|
|
293
|
+
});
|
|
294
|
+
return true;
|
|
295
|
+
}
|
|
296
|
+
return false;
|
|
297
|
+
}, COMMAND_PRIORITY_LOW));
|
|
53
298
|
};
|
|
299
|
+
$[11] = editor;
|
|
300
|
+
$[12] = openBulkUpload;
|
|
301
|
+
$[13] = t2;
|
|
302
|
+
} else {
|
|
303
|
+
t2 = $[13];
|
|
304
|
+
}
|
|
305
|
+
let t3;
|
|
306
|
+
if ($[14] !== editor) {
|
|
54
307
|
t3 = [editor];
|
|
55
|
-
$[
|
|
56
|
-
$[
|
|
57
|
-
$[2] = t3;
|
|
308
|
+
$[14] = editor;
|
|
309
|
+
$[15] = t3;
|
|
58
310
|
} else {
|
|
59
|
-
|
|
60
|
-
t3 = $[2];
|
|
311
|
+
t3 = $[15];
|
|
61
312
|
}
|
|
62
313
|
useEffect(t2, t3);
|
|
63
314
|
let t4;
|
|
64
|
-
if ($[
|
|
315
|
+
if ($[16] !== collections) {
|
|
65
316
|
t4 = _jsx(UploadDrawer, {
|
|
66
|
-
enabledCollectionSlugs: collections.map(
|
|
317
|
+
enabledCollectionSlugs: collections.map(_temp6)
|
|
67
318
|
});
|
|
68
|
-
$[
|
|
69
|
-
$[
|
|
319
|
+
$[16] = collections;
|
|
320
|
+
$[17] = t4;
|
|
70
321
|
} else {
|
|
71
|
-
t4 = $[
|
|
322
|
+
t4 = $[17];
|
|
72
323
|
}
|
|
73
324
|
return t4;
|
|
74
325
|
};
|
|
75
|
-
function _temp(
|
|
326
|
+
function _temp(file) {
|
|
327
|
+
return {
|
|
328
|
+
file: file.file,
|
|
329
|
+
formID: file.formID
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
function _temp2(t0) {
|
|
333
|
+
const {
|
|
334
|
+
upload
|
|
335
|
+
} = t0;
|
|
336
|
+
return !!upload;
|
|
337
|
+
}
|
|
338
|
+
function _temp3(t0) {
|
|
76
339
|
const {
|
|
77
340
|
slug
|
|
78
341
|
} = t0;
|
|
79
342
|
return slug;
|
|
80
343
|
}
|
|
344
|
+
function _temp4() {
|
|
345
|
+
for (const dfsNode of $dfsIterator()) {
|
|
346
|
+
const node = dfsNode.node;
|
|
347
|
+
if ($isUploadNode(node)) {
|
|
348
|
+
const nodeData = node.getData();
|
|
349
|
+
if (nodeData?.pending) {
|
|
350
|
+
node.remove();
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
function _temp5(doc) {
|
|
356
|
+
return [doc.formID, doc];
|
|
357
|
+
}
|
|
358
|
+
function _temp6(t0) {
|
|
359
|
+
const {
|
|
360
|
+
slug: slug_0
|
|
361
|
+
} = t0;
|
|
362
|
+
return slug_0;
|
|
363
|
+
}
|
|
81
364
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","$insertNodeToNearestRoot","mergeRegister","useConfig","$getPreviousSelection","$getSelection","$isParagraphNode","$isRangeSelection","COMMAND_PRIORITY_EDITOR","createCommand","React","useEffect","UploadDrawer","$createUploadNode","UploadNode","INSERT_UPLOAD_COMMAND","UploadPlugin","t0","$","editor","config","t1","collections","t2","t3","hasNodes","Error","registerCommand","payload","update","selection","uploadNode","data","id","fields","relationTo","value","focus","focusNode","getNode","__first","remove","t4","_jsx","enabledCollectionSlugs","map","_temp","slug"],"sources":["../../../../../src/features/upload/client/plugin/index.tsx"],"sourcesContent":["'use client'\nimport type { LexicalCommand } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $insertNodeToNearestRoot, mergeRegister } from '@lexical/utils'\nimport { useConfig } from '@payloadcms/ui'\nimport {\n $getPreviousSelection,\n $getSelection,\n $isParagraphNode,\n $isRangeSelection,\n COMMAND_PRIORITY_EDITOR,\n createCommand,\n} from 'lexical'\nimport React, { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\nimport type { UploadData } from '../../server/nodes/UploadNode.js'\nimport type { UploadFeaturePropsClient } from '../index.js'\n\nimport { UploadDrawer } from '../drawer/index.js'\nimport { $createUploadNode, UploadNode } from '../nodes/UploadNode.js'\n\nexport type InsertUploadPayload = Readonly<Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>>\n\nexport const INSERT_UPLOAD_COMMAND: LexicalCommand<InsertUploadPayload> =\n createCommand('INSERT_UPLOAD_COMMAND')\n\nexport const UploadPlugin: PluginComponent<UploadFeaturePropsClient> = ({ clientProps }) => {\n const [editor] = useLexicalComposerContext()\n const {\n config: { collections },\n } = useConfig()\n\n useEffect(() => {\n if (!editor.hasNodes([UploadNode])) {\n throw new Error('UploadPlugin: UploadNode not registered on editor')\n }\n\n return mergeRegister(\n editor.registerCommand<InsertUploadPayload>(\n INSERT_UPLOAD_COMMAND,\n (payload: InsertUploadPayload) => {\n editor.update(() => {\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n const uploadNode = $createUploadNode({\n data: {\n id: payload.id,\n fields: payload.fields,\n relationTo: payload.relationTo,\n value: payload.value,\n },\n })\n // we need to get the focus node before inserting the block node, as $insertNodeToNearestRoot can change the focus node\n const { focus } = selection\n const focusNode = focus.getNode()\n // Insert upload node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(uploadNode)\n\n // Delete the node it it's an empty paragraph\n if ($isParagraphNode(focusNode) && !focusNode.__first) {\n focusNode.remove()\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n )\n }, [editor])\n\n return <UploadDrawer enabledCollectionSlugs={collections.map(({ slug }) => slug)} />\n}\n"],"mappings":"AAAA;;AAAA,SAAAA,CAAA,IAAAC,EAAA;;AAGA,SAASC,yBAAyB,QAAQ;AAC1C,SAASC,wBAAwB,EAAEC,aAAa,QAAQ;AACxD,SAASC,SAAS,QAAQ;AAC1B,SACEC,qBAAqB,EACrBC,aAAa,EACbC,gBAAgB,EAChBC,iBAAiB,EACjBC,uBAAuB,EACvBC,aAAa,QACR;AACP,OAAOC,KAAA,IAASC,SAAS,QAAQ;AAMjC,SAASC,YAAY,QAAQ;AAC7B,SAASC,iBAAiB,EAAEC,UAAU,QAAQ;AAI9C,OAAO,MAAMC,qBAAA,GACXN,aAAA,CAAc;AAEhB,OAAO,MAAMO,YAAA,GAA0DC,EAAA;EAAA,MAAAC,CAAA,GAAAnB,EAAA;EACrE,OAAAoB,MAAA,IAAiBnB,yBAAA;EACjB;IAAAoB,MAAA,EAAAC;EAAA,IAEIlB,SAAA;EADM;IAAAmB;EAAA,IAAAD,EAAe;EAAA,IAAAE,EAAA;EAAA,IAAAC,EAAA;EAAA,IAAAN,CAAA,QAAAC,MAAA;IAGfI,EAAA,GAAAA,CAAA;MAAA,KACHJ,MAAA,CAAAM,QAAA,EAAAX,UAAA,CAA4B;QAAA,UAAAY,KAAA,CACf;MAAA;MAAA,OAGXxB,aAAA,CACLiB,MAAA,CAAAQ,eAAA,CAAAZ,qBAAA,EAAAa,OAAA;QAGIT,MAAA,CAAAU,MAAA;UACE,MAAAC,SAAA,GAAkBzB,aAAA,MAAmBD,qBAAA;UAAA,IAEjCG,iBAAA,CAAkBuB,SAAA;YACpB,MAAAC,UAAA,GAAmBlB,iBAAA;cAAAmB,IAAA;gBAAAC,EAAA,EAEXL,OAAA,CAAAK,EAAA;gBAAAC,MAAA,EACIN,OAAA,CAAAM,MAAA;gBAAAC,UAAA,EACIP,OAAA,CAAAO,UAAA;gBAAAC,KAAA,EACLR,OAAA,CAAAQ;cAAA;YAAA,CAEX;YAEA;cAAAC;YAAA,IAAkBP,SAAA;YAClB,MAAAQ,SAAA,GAAkBD,KAAA,CAAAE,OAAA,CAAa;YAE/BtC,wBAAA,CAAyB8B,UAAA;YAAA,IAGrBzB,gBAAA,CAAiBgC,SAAA,MAAeA,SAAA,CAAAE,OAAiB;cACnDF,SAAA,CAAAG,MAAA,CAAgB;YAAA;UAAA;QAAA,CAGtB;QAAA;MAAA,GAAAjC,uBAIF;IAAA;IAGHgB,EAAA,IAACL,MAAA;IAAOD,CAAA,MAAAC,MAAA;IAAAD,CAAA,MAAAK,EAAA;IAAAL,CAAA,MAAAM,EAAA;EAAA;IAAAD,EAAA,GAAAL,CAAA;IAAAM,EAAA,GAAAN,CAAA;EAAA;EAvCXP,SAAA,CAAUY,EAuCV,EAAGC,EAAQ;EAAA,IAAAkB,EAAA;EAAA,IAAAxB,CAAA,QAAAI,WAAA;IAEJoB,EAAA,GAAAC,IAAA,CAAA/B,YAAA;MAAAgC,sBAAA,EAAsCtB,WAAA,CAAAuB,GAAA,CAAAC,KAA8B;IAAA,C;;;;;;SAApEJ,E;CACT;AAhDuE,SAAAI,MAAA7B,EAAA;EA+CP;IAAA8B;EAAA,IAAA9B,EAAQ;EAAA,OAAK8B,IAAA;AAAA","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"index.js","names":["c","_c","useLexicalComposerContext","$dfsIterator","$insertNodeToNearestRoot","mergeRegister","useBulkUpload","useConfig","useEffectEvent","useModal","ObjectID","$createRangeSelection","$getPreviousSelection","$getSelection","$isParagraphNode","$isRangeSelection","$setSelection","COMMAND_PRIORITY_EDITOR","COMMAND_PRIORITY_LOW","createCommand","DROP_COMMAND","getDOMSelectionFromTarget","isHTMLElement","PASTE_COMMAND","React","useEffect","UploadDrawer","$createUploadNode","$isUploadNode","UploadNode","canDropImage","event","target","closest","parentElement","getDragSelection","range","domSelection","document","caretRangeFromPoint","clientX","clientY","rangeParent","collapse","rangeOffset","getRangeAt","Error","INSERT_UPLOAD_COMMAND","UploadPlugin","$","editor","config","t0","collections","drawerSlug","bulkUploadDrawerSlug","setCollectionSlug","setInitialForms","setOnCancel","setOnSuccess","setSelectableCollections","isModalOpen","openModal","t1","t2","files","length","initialForms","map","_temp","uploadCollections","filter","_temp2","_temp3","update","_temp4","newDocs","newDocsMap","Map","_temp5","dfsNode_0","node_0","dfsNode","node","nodeData_0","getData","nodeData","pending","newDoc","get","formID","replace","data","id","default","toHexString","fields","relationTo","collectionSlug","value","doc","openBulkUpload","hasNodes","registerNodeTransform","node_1","nodeData_1","upload_0","upload","transformedImage","src","startsWith","mimeMatch","match","mimeType","base64Data","byteCharacters","atob","byteNumbers","Array","i","charCodeAt","byteArray","Uint8Array","file_0","File","split","type","file","res","fetch","blob","inferredFileName","pop","file_1","registerCommand","payload","selection","uploadNode","focus","focusNode","getNode","__first","remove","ClipboardEvent","clipboardData","types","includes","files_0","from","forEach","file_2","push","alt","selection_0","file_3","pendingUploadNode","URL","createObjectURL","focus_0","focusNode_0","event_0","DragEvent","dt","dataTransfer","files_1","file_4","preventDefault","stopPropagation","selection_1","undefined","applyDOMRange","file_5","pendingUploadNode_0","focus_1","focusNode_1","t3","t4","_jsx","enabledCollectionSlugs","_temp6","slug","slug_0"],"sources":["../../../../../src/features/upload/client/plugin/index.tsx"],"sourcesContent":["'use client'\nimport type { LexicalCommand } from 'lexical'\n\nimport { useLexicalComposerContext } from '@lexical/react/LexicalComposerContext.js'\nimport { $dfsIterator, $insertNodeToNearestRoot, mergeRegister } from '@lexical/utils'\nimport { useBulkUpload, useConfig, useEffectEvent, useModal } from '@payloadcms/ui'\nimport ObjectID from 'bson-objectid'\nimport {\n $createRangeSelection,\n $getPreviousSelection,\n $getSelection,\n $isParagraphNode,\n $isRangeSelection,\n $setSelection,\n COMMAND_PRIORITY_EDITOR,\n COMMAND_PRIORITY_LOW,\n createCommand,\n DROP_COMMAND,\n getDOMSelectionFromTarget,\n isHTMLElement,\n PASTE_COMMAND,\n} from 'lexical'\nimport React, { useEffect } from 'react'\n\nimport type { PluginComponent } from '../../../typesClient.js'\nimport type { Internal_UploadData, UploadData } from '../../server/nodes/UploadNode.js'\nimport type { UploadFeaturePropsClient } from '../index.js'\n\nimport { UploadDrawer } from '../drawer/index.js'\nimport { $createUploadNode, $isUploadNode, UploadNode } from '../nodes/UploadNode.js'\n\nexport type InsertUploadPayload = Readonly<Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>>\n\ndeclare global {\n interface DragEvent {\n rangeOffset?: number\n rangeParent?: Node\n }\n}\n\nfunction canDropImage(event: DragEvent): boolean {\n const target = event.target\n return !!(\n isHTMLElement(target) &&\n !target.closest('code, span.editor-image') &&\n isHTMLElement(target.parentElement) &&\n target.parentElement.closest('div.ContentEditable__root')\n )\n}\n\nfunction getDragSelection(event: DragEvent): null | Range | undefined {\n // Source: https://github.com/AlessioGr/lexical/blob/main/packages/lexical-playground/src/plugins/ImagesPlugin/index.tsx\n let range\n const domSelection = getDOMSelectionFromTarget(event.target)\n if (document.caretRangeFromPoint) {\n range = document.caretRangeFromPoint(event.clientX, event.clientY)\n } else if (event.rangeParent && domSelection !== null) {\n domSelection.collapse(event.rangeParent, event.rangeOffset || 0)\n range = domSelection.getRangeAt(0)\n } else {\n throw Error(`Cannot get the selection when dragging`)\n }\n\n return range\n}\n\nexport const INSERT_UPLOAD_COMMAND: LexicalCommand<InsertUploadPayload> =\n createCommand('INSERT_UPLOAD_COMMAND')\n\ntype FileToUpload = {\n alt?: string\n file: File\n /**\n * Bulk Upload Form ID that should be created, which can then be matched\n * against the node formID if the upload is successful\n */\n formID: string\n}\n\nexport const UploadPlugin: PluginComponent<UploadFeaturePropsClient> = () => {\n const [editor] = useLexicalComposerContext()\n const {\n config: { collections },\n } = useConfig()\n\n const {\n drawerSlug: bulkUploadDrawerSlug,\n setCollectionSlug,\n setInitialForms,\n setOnCancel,\n setOnSuccess,\n setSelectableCollections,\n } = useBulkUpload()\n\n const { isModalOpen, openModal } = useModal()\n\n const openBulkUpload = useEffectEvent(({ files }: { files: FileToUpload[] }) => {\n if (files?.length === 0) {\n return\n }\n\n setInitialForms((initialForms) => [\n ...(initialForms ?? []),\n ...files.map((file) => ({\n file: file.file,\n formID: file.formID,\n })),\n ])\n\n if (!isModalOpen(bulkUploadDrawerSlug)) {\n const uploadCollections = collections.filter(({ upload }) => !!upload).map(({ slug }) => slug)\n if (!uploadCollections.length || !uploadCollections[0]) {\n return\n }\n\n setCollectionSlug(uploadCollections[0])\n setSelectableCollections(uploadCollections)\n\n setOnCancel(() => {\n // Remove all the pending upload nodes that were added but not uploaded\n editor.update(() => {\n for (const dfsNode of $dfsIterator()) {\n const node = dfsNode.node\n\n if ($isUploadNode(node)) {\n const nodeData = node.getData()\n if ((nodeData as Internal_UploadData)?.pending) {\n node.remove()\n }\n }\n }\n })\n })\n\n setOnSuccess((newDocs) => {\n const newDocsMap = new Map(newDocs.map((doc) => [doc.formID, doc]))\n editor.update(() => {\n for (const dfsNode of $dfsIterator()) {\n const node = dfsNode.node\n if ($isUploadNode(node)) {\n const nodeData: Internal_UploadData = node.getData()\n\n if (nodeData?.pending) {\n const newDoc = newDocsMap.get(nodeData.pending?.formID)\n if (newDoc) {\n node.replace(\n $createUploadNode({\n data: {\n id: new ObjectID.default().toHexString(),\n fields: {},\n relationTo: newDoc.collectionSlug,\n value: newDoc.doc.id,\n } as UploadData,\n }),\n )\n }\n }\n }\n }\n })\n })\n\n openModal(bulkUploadDrawerSlug)\n }\n })\n\n useEffect(() => {\n if (!editor.hasNodes([UploadNode])) {\n throw new Error('UploadPlugin: UploadNode not registered on editor')\n }\n\n return mergeRegister(\n /**\n * Handle auto-uploading files if you copy & paste an image dom element from the clipboard\n */\n editor.registerNodeTransform(UploadNode, (node) => {\n const nodeData: Internal_UploadData = node.getData()\n if (!nodeData?.pending) {\n return\n }\n\n async function upload() {\n let transformedImage: FileToUpload | null = null\n\n const src = nodeData?.pending?.src\n const formID = nodeData?.pending?.formID as string\n\n if (src?.startsWith('data:')) {\n // It's a base64-encoded image\n const mimeMatch = src.match(/data:(image\\/[a-zA-Z]+);base64,/)\n const mimeType = mimeMatch ? mimeMatch[1] : 'image/png' // Default to PNG if MIME type not found\n const base64Data = src.replace(/^data:image\\/[a-zA-Z]+;base64,/, '')\n const byteCharacters = atob(base64Data)\n const byteNumbers = new Array(byteCharacters.length)\n for (let i = 0; i < byteCharacters.length; i++) {\n byteNumbers[i] = byteCharacters.charCodeAt(i)\n }\n const byteArray = new Uint8Array(byteNumbers)\n const file = new File([byteArray], 'pasted-image.' + mimeType?.split('/')[1], {\n type: mimeType,\n })\n transformedImage = { alt: undefined, file, formID }\n } else if (src?.startsWith('http') || src?.startsWith('https')) {\n // It's an image URL\n const res = await fetch(src)\n const blob = await res.blob()\n const inferredFileName =\n src.split('/').pop() || 'pasted-image' + blob.type.split('/')[1]\n const file = new File([blob], inferredFileName, {\n type: blob.type,\n })\n\n transformedImage = { alt: undefined, file, formID }\n }\n\n if (!transformedImage) {\n return\n }\n\n openBulkUpload({ files: [transformedImage] })\n }\n void upload()\n }),\n editor.registerCommand<InsertUploadPayload>(\n INSERT_UPLOAD_COMMAND,\n (payload: InsertUploadPayload) => {\n editor.update(() => {\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n const uploadNode = $createUploadNode({\n data: {\n id: payload.id,\n fields: payload.fields,\n relationTo: payload.relationTo,\n value: payload.value,\n },\n })\n // we need to get the focus node before inserting the block node, as $insertNodeToNearestRoot can change the focus node\n const { focus } = selection\n const focusNode = focus.getNode()\n // Insert upload node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(uploadNode)\n\n // Delete the node it it's an empty paragraph\n if ($isParagraphNode(focusNode) && !focusNode.__first) {\n focusNode.remove()\n }\n }\n })\n\n return true\n },\n COMMAND_PRIORITY_EDITOR,\n ),\n editor.registerCommand(\n PASTE_COMMAND,\n (event) => {\n // Pending UploadNodes are automatically created when importDOM is called. However, if you paste a file from your computer\n // directly, importDOM won't be called, as it's not a HTML dom element. So we need to handle that case here.\n\n if (!(event instanceof ClipboardEvent)) {\n return false\n }\n const clipboardData = event.clipboardData\n\n if (!clipboardData?.types?.length || clipboardData?.types?.includes('text/html')) {\n // HTML is handled through importDOM => registerNodeTransform for pending UploadNode\n return false\n }\n\n const files: FileToUpload[] = []\n if (clipboardData?.files?.length) {\n Array.from(clipboardData.files).forEach((file) => {\n files.push({\n alt: '',\n file,\n formID: new ObjectID.default().toHexString(),\n })\n })\n }\n\n if (files.length) {\n // Insert a pending UploadNode for each image\n editor.update(() => {\n const selection = $getSelection() || $getPreviousSelection()\n\n if ($isRangeSelection(selection)) {\n for (const file of files) {\n const pendingUploadNode = new UploadNode({\n data: {\n pending: {\n formID: file.formID,\n src: URL.createObjectURL(file.file),\n },\n } as Internal_UploadData,\n })\n // we need to get the focus node before inserting the upload node, as $insertNodeToNearestRoot can change the focus node\n const { focus } = selection\n const focusNode = focus.getNode()\n // Insert upload node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(pendingUploadNode)\n\n // Delete the node it it's an empty paragraph\n if ($isParagraphNode(focusNode) && !focusNode.__first) {\n focusNode.remove()\n }\n }\n }\n })\n\n // Open the bulk drawer - the node transform will not open it for us, as it does not handle blob/file uploads\n openBulkUpload({ files })\n\n return true\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n // Handle drag & drop of files from the desktop into the editor\n editor.registerCommand(\n DROP_COMMAND,\n (event) => {\n if (!(event instanceof DragEvent)) {\n return false\n }\n\n const dt = event.dataTransfer\n\n if (!dt?.types?.length) {\n return false\n }\n\n const files: FileToUpload[] = []\n if (dt?.files?.length) {\n Array.from(dt.files).forEach((file) => {\n files.push({\n alt: '',\n file,\n formID: new ObjectID.default().toHexString(),\n })\n })\n }\n\n if (files.length) {\n // Prevent the default browser drop handling, which would open the file in the browser\n event.preventDefault()\n event.stopPropagation()\n\n // Insert a PendingUploadNode for each image\n editor.update(() => {\n if (canDropImage(event)) {\n const range = getDragSelection(event)\n const selection = $createRangeSelection()\n if (range !== null && range !== undefined) {\n selection.applyDOMRange(range)\n }\n $setSelection(selection)\n\n for (const file of files) {\n const pendingUploadNode = new UploadNode({\n data: {\n pending: {\n formID: file.formID,\n src: URL.createObjectURL(file.file),\n },\n } as Internal_UploadData,\n })\n // we need to get the focus node before inserting the upload node, as $insertNodeToNearestRoot can change the focus node\n const { focus } = selection\n const focusNode = focus.getNode()\n // Insert upload node BEFORE potentially removing focusNode, as $insertNodeToNearestRoot errors if the focusNode doesn't exist\n $insertNodeToNearestRoot(pendingUploadNode)\n\n // Delete the node it it's an empty paragraph\n if ($isParagraphNode(focusNode) && !focusNode.__first) {\n focusNode.remove()\n }\n }\n }\n })\n\n // Open the bulk drawer - the node transform will not open it for us, as it does not handle blob/file uploads\n openBulkUpload({ files })\n\n return true\n }\n\n return false\n },\n COMMAND_PRIORITY_LOW,\n ),\n )\n }, [editor])\n\n return <UploadDrawer enabledCollectionSlugs={collections.map(({ slug }) => slug)} />\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/features/upload/server/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,eAAO,MAAM,IAAI,EAAE,OAAO,CAAC,gBAAgB,
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../../src/features/upload/server/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAA;AAEhE,eAAO,MAAM,IAAI,EAAE,OAAO,CAAC,gBAAgB,CA6G1C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","names":["i18n","ar","label","az","bg","cs","da","de","en","es","et","fa","fr","he","hr","hu","it","ja","ko","my","nb","nl","pl","pt","ro","rs","ru","sk","sl","sv","th","tr","uk","vi","zh"],"sources":["../../../../src/features/upload/server/i18n.ts"],"sourcesContent":["import type { GenericLanguages } from '@payloadcms/translations'\n\nexport const i18n: Partial<GenericLanguages> = {\n ar: {\n label: 'تحميل',\n },\n az: {\n label: 'Yükləyin',\n },\n bg: {\n label: 'Качване',\n },\n cs: {\n label: 'Nahrát',\n },\n da: {\n label: 'Upload',\n },\n de: {\n label: 'Datei',\n },\n en: {\n label: 'Upload',\n },\n es: {\n label: 'Subir',\n },\n et: {\n label: 'Lae üles',\n },\n fa: {\n label: 'بارگذاری',\n },\n fr: {\n label: 'Télécharger',\n },\n he: {\n label: 'העלה',\n },\n hr: {\n label: 'Prenesi',\n },\n hu: {\n label: 'Feltöltés',\n },\n it: {\n label: 'Carica',\n },\n ja: {\n label: 'アップロード',\n },\n ko: {\n label: '업로드',\n },\n my: {\n label: 'တင်ပြီး',\n },\n nb: {\n label: 'Last opp',\n },\n nl: {\n label: 'Uploaden',\n },\n pl: {\n label: 'Prześlij',\n },\n pt: {\n label: 'Carregar',\n },\n ro: {\n label: 'Încarcă',\n },\n rs: {\n label: 'Отпреми',\n },\n 'rs-latin': {\n label: 'Otpremi',\n },\n ru: {\n label: 'Загрузить',\n },\n sk: {\n label: 'Nahrať',\n },\n sl: {\n label: 'Naloži',\n },\n sv: {\n label: 'Ladda upp',\n },\n th: {\n label: 'อัปโหลด',\n },\n tr: {\n label: 'Yükle',\n },\n uk: {\n label: 'Завантажити',\n },\n vi: {\n label: 'Tải lên',\n },\n zh: {\n label: '上传',\n },\n 'zh-TW': {\n label: '上傳',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,IAAA,GAAkC;EAC7CC,EAAA,EAAI;IACFC,KAAA,EAAO;EACT;EACAC,EAAA,EAAI;IACFD,KAAA,EAAO;EACT;EACAE,EAAA,EAAI;IACFF,KAAA,EAAO;EACT;EACAG,EAAA,EAAI;IACFH,KAAA,EAAO;EACT;EACAI,EAAA,EAAI;IACFJ,KAAA,EAAO;EACT;EACAK,EAAA,EAAI;IACFL,KAAA,EAAO;EACT;EACAM,EAAA,EAAI;IACFN,KAAA,EAAO;EACT;EACAO,EAAA,EAAI;IACFP,KAAA,EAAO;EACT;EACAQ,EAAA,EAAI;IACFR,KAAA,EAAO;EACT;EACAS,EAAA,EAAI;IACFT,KAAA,EAAO;EACT;EACAU,EAAA,EAAI;IACFV,KAAA,EAAO;EACT;EACAW,EAAA,EAAI;IACFX,KAAA,EAAO;EACT;EACAY,EAAA,EAAI;IACFZ,KAAA,EAAO;EACT;EACAa,EAAA,EAAI;IACFb,KAAA,EAAO;EACT;EACAc,EAAA,EAAI;IACFd,KAAA,EAAO;EACT;EACAe,EAAA,EAAI;IACFf,KAAA,EAAO;EACT;EACAgB,EAAA,EAAI;IACFhB,KAAA,EAAO;EACT;EACAiB,EAAA,EAAI;IACFjB,KAAA,EAAO;EACT;EACAkB,EAAA,EAAI;IACFlB,KAAA,EAAO;EACT;EACAmB,EAAA,EAAI;IACFnB,KAAA,EAAO;EACT;EACAoB,EAAA,EAAI;IACFpB,KAAA,EAAO;EACT;EACAqB,EAAA,EAAI;IACFrB,KAAA,EAAO;EACT;EACAsB,EAAA,EAAI;IACFtB,KAAA,EAAO;EACT;EACAuB,EAAA,EAAI;IACFvB,KAAA,EAAO;EACT;EACA,YAAY;IACVA,KAAA,EAAO;EACT;EACAwB,EAAA,EAAI;IACFxB,KAAA,EAAO;EACT;EACAyB,EAAA,EAAI;IACFzB,KAAA,EAAO;EACT;EACA0B,EAAA,EAAI;IACF1B,KAAA,EAAO;EACT;EACA2B,EAAA,EAAI;IACF3B,KAAA,EAAO;EACT;EACA4B,EAAA,EAAI;IACF5B,KAAA,EAAO;EACT;EACA6B,EAAA,EAAI;IACF7B,KAAA,EAAO;EACT;EACA8B,EAAA,EAAI;IACF9B,KAAA,EAAO;EACT;EACA+B,EAAA,EAAI;IACF/B,KAAA,EAAO;EACT;EACAgC,EAAA,EAAI;IACFhC,KAAA,EAAO;EACT;EACA,SAAS;IACPA,KAAA,EAAO;EACT;AACF","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"i18n.js","names":["i18n","ar","label","az","bg","cs","da","de","en","es","et","fa","fr","he","hr","hu","it","ja","ko","my","nb","nl","pl","pt","ro","rs","ru","sk","sl","sv","ta","th","tr","uk","vi","zh"],"sources":["../../../../src/features/upload/server/i18n.ts"],"sourcesContent":["import type { GenericLanguages } from '@payloadcms/translations'\n\nexport const i18n: Partial<GenericLanguages> = {\n ar: {\n label: 'تحميل',\n },\n az: {\n label: 'Yükləyin',\n },\n bg: {\n label: 'Качване',\n },\n cs: {\n label: 'Nahrát',\n },\n da: {\n label: 'Upload',\n },\n de: {\n label: 'Datei',\n },\n en: {\n label: 'Upload',\n },\n es: {\n label: 'Subir',\n },\n et: {\n label: 'Lae üles',\n },\n fa: {\n label: 'بارگذاری',\n },\n fr: {\n label: 'Télécharger',\n },\n he: {\n label: 'העלה',\n },\n hr: {\n label: 'Prenesi',\n },\n hu: {\n label: 'Feltöltés',\n },\n it: {\n label: 'Carica',\n },\n ja: {\n label: 'アップロード',\n },\n ko: {\n label: '업로드',\n },\n my: {\n label: 'တင်ပြီး',\n },\n nb: {\n label: 'Last opp',\n },\n nl: {\n label: 'Uploaden',\n },\n pl: {\n label: 'Prześlij',\n },\n pt: {\n label: 'Carregar',\n },\n ro: {\n label: 'Încarcă',\n },\n rs: {\n label: 'Отпреми',\n },\n 'rs-latin': {\n label: 'Otpremi',\n },\n ru: {\n label: 'Загрузить',\n },\n sk: {\n label: 'Nahrať',\n },\n sl: {\n label: 'Naloži',\n },\n sv: {\n label: 'Ladda upp',\n },\n ta: {\n label: 'பதிவேற்றம்',\n },\n th: {\n label: 'อัปโหลด',\n },\n tr: {\n label: 'Yükle',\n },\n uk: {\n label: 'Завантажити',\n },\n vi: {\n label: 'Tải lên',\n },\n zh: {\n label: '上传',\n },\n 'zh-TW': {\n label: '上傳',\n },\n}\n"],"mappings":"AAEA,OAAO,MAAMA,IAAA,GAAkC;EAC7CC,EAAA,EAAI;IACFC,KAAA,EAAO;EACT;EACAC,EAAA,EAAI;IACFD,KAAA,EAAO;EACT;EACAE,EAAA,EAAI;IACFF,KAAA,EAAO;EACT;EACAG,EAAA,EAAI;IACFH,KAAA,EAAO;EACT;EACAI,EAAA,EAAI;IACFJ,KAAA,EAAO;EACT;EACAK,EAAA,EAAI;IACFL,KAAA,EAAO;EACT;EACAM,EAAA,EAAI;IACFN,KAAA,EAAO;EACT;EACAO,EAAA,EAAI;IACFP,KAAA,EAAO;EACT;EACAQ,EAAA,EAAI;IACFR,KAAA,EAAO;EACT;EACAS,EAAA,EAAI;IACFT,KAAA,EAAO;EACT;EACAU,EAAA,EAAI;IACFV,KAAA,EAAO;EACT;EACAW,EAAA,EAAI;IACFX,KAAA,EAAO;EACT;EACAY,EAAA,EAAI;IACFZ,KAAA,EAAO;EACT;EACAa,EAAA,EAAI;IACFb,KAAA,EAAO;EACT;EACAc,EAAA,EAAI;IACFd,KAAA,EAAO;EACT;EACAe,EAAA,EAAI;IACFf,KAAA,EAAO;EACT;EACAgB,EAAA,EAAI;IACFhB,KAAA,EAAO;EACT;EACAiB,EAAA,EAAI;IACFjB,KAAA,EAAO;EACT;EACAkB,EAAA,EAAI;IACFlB,KAAA,EAAO;EACT;EACAmB,EAAA,EAAI;IACFnB,KAAA,EAAO;EACT;EACAoB,EAAA,EAAI;IACFpB,KAAA,EAAO;EACT;EACAqB,EAAA,EAAI;IACFrB,KAAA,EAAO;EACT;EACAsB,EAAA,EAAI;IACFtB,KAAA,EAAO;EACT;EACAuB,EAAA,EAAI;IACFvB,KAAA,EAAO;EACT;EACA,YAAY;IACVA,KAAA,EAAO;EACT;EACAwB,EAAA,EAAI;IACFxB,KAAA,EAAO;EACT;EACAyB,EAAA,EAAI;IACFzB,KAAA,EAAO;EACT;EACA0B,EAAA,EAAI;IACF1B,KAAA,EAAO;EACT;EACA2B,EAAA,EAAI;IACF3B,KAAA,EAAO;EACT;EACA4B,EAAA,EAAI;IACF5B,KAAA,EAAO;EACT;EACA6B,EAAA,EAAI;IACF7B,KAAA,EAAO;EACT;EACA8B,EAAA,EAAI;IACF9B,KAAA,EAAO;EACT;EACA+B,EAAA,EAAI;IACF/B,KAAA,EAAO;EACT;EACAgC,EAAA,EAAI;IACFhC,KAAA,EAAO;EACT;EACAiC,EAAA,EAAI;IACFjC,KAAA,EAAO;EACT;EACA,SAAS;IACPA,KAAA,EAAO;EACT;AACF","ignoreList":[]}
|
|
@@ -17,6 +17,22 @@ export type UploadData<TUploadExtraFieldsData extends JsonObject = JsonObject> =
|
|
|
17
17
|
value: DataFromCollectionSlug<TCollectionSlug> | number | string;
|
|
18
18
|
};
|
|
19
19
|
}[CollectionSlug];
|
|
20
|
+
/**
|
|
21
|
+
* Internal use only - UploadData type that can contain a pending state
|
|
22
|
+
* @internal
|
|
23
|
+
*/
|
|
24
|
+
export type Internal_UploadData<TUploadExtraFieldsData extends JsonObject = JsonObject> = {
|
|
25
|
+
pending?: {
|
|
26
|
+
/**
|
|
27
|
+
* ID that corresponds to the bulk upload form ID
|
|
28
|
+
*/
|
|
29
|
+
formID: string;
|
|
30
|
+
/**
|
|
31
|
+
* src value of the image dom element
|
|
32
|
+
*/
|
|
33
|
+
src: string;
|
|
34
|
+
};
|
|
35
|
+
} & UploadData<TUploadExtraFieldsData>;
|
|
20
36
|
/**
|
|
21
37
|
* UploadDataImproved is a more precise type, and will replace UploadData in Payload v4.
|
|
22
38
|
* This type is for internal use only as it will be deprecated in the future.
|
|
@@ -38,7 +54,6 @@ export type UploadDataImproved<TUploadExtraFieldsData extends JsonObject = JsonO
|
|
|
38
54
|
value: number | string | TypedUploadCollection[TCollectionSlug];
|
|
39
55
|
};
|
|
40
56
|
}[UploadCollectionSlug];
|
|
41
|
-
export declare function isGoogleDocCheckboxImg(img: HTMLImageElement): boolean;
|
|
42
57
|
export type SerializedUploadNode = {
|
|
43
58
|
children?: never;
|
|
44
59
|
type: 'upload';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"UploadNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/upload/server/nodes/UploadNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAA;AAC/F,OAAO,KAAK,EACV,gBAAgB,
|
|
1
|
+
{"version":3,"file":"UploadNode.d.ts","sourceRoot":"","sources":["../../../../../src/features/upload/server/nodes/UploadNode.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,6CAA6C,CAAA;AAC/F,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,OAAO,EACP,MAAM,EACP,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EACtB,UAAU,EACV,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,SAAS,CAAA;AAChB,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,OAAO,CAAA;AAEhC,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAA;AAMhF,MAAM,MAAM,UAAU,CAAC,sBAAsB,SAAS,UAAU,GAAG,UAAU,IAAI;KAC9E,eAAe,IAAI,cAAc,GAAG;QACnC,MAAM,EAAE,sBAAsB,CAAA;QAC9B;;WAEG;QACH,EAAE,EAAE,MAAM,CAAA;QACV,UAAU,EAAE,eAAe,CAAA;QAC3B;;WAEG;QACH,KAAK,EAAE,sBAAsB,CAAC,eAAe,CAAC,GAAG,MAAM,GAAG,MAAM,CAAA;KACjE;CACF,CAAC,cAAc,CAAC,CAAA;AAEjB;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAAC,sBAAsB,SAAS,UAAU,GAAG,UAAU,IAAI;IACxF,OAAO,CAAC,EAAE;QACR;;WAEG;QACH,MAAM,EAAE,MAAM,CAAA;QACd;;WAEG;QACH,GAAG,EAAE,MAAM,CAAA;KACZ,CAAA;CACF,GAAG,UAAU,CAAC,sBAAsB,CAAC,CAAA;AAEtC;;;;;;GAMG;AACH,MAAM,MAAM,kBAAkB,CAAC,sBAAsB,SAAS,UAAU,GAAG,UAAU,IAAI;KACtF,eAAe,IAAI,oBAAoB,GAAG;QACzC,MAAM,EAAE,sBAAsB,CAAA;QAC9B;;WAEG;QACH,EAAE,EAAE,MAAM,CAAA;QACV,UAAU,EAAE,eAAe,CAAA;QAC3B;;WAEG;QACH,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,qBAAqB,CAAC,eAAe,CAAC,CAAA;KAChE;CACF,CAAC,oBAAoB,CAAC,CAAA;AAEvB,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,CAAC,EAAE,KAAK,CAAA;IAChB,IAAI,EAAE,QAAQ,CAAA;CACf,GAAG,MAAM,CAAC,UAAU,EAAE,4BAA4B,CAAC,CAAA;AAEpD,qBAAa,gBAAiB,SAAQ,kBAAkB;IACtD,MAAM,EAAE,UAAU,CAAA;gBAEN,EACV,IAAI,EACJ,MAAM,EACN,GAAG,GACJ,EAAE;QACD,IAAI,EAAE,UAAU,CAAA;QAChB,MAAM,CAAC,EAAE,iBAAiB,CAAA;QAC1B,GAAG,CAAC,EAAE,OAAO,CAAA;KACd;WAKe,KAAK,CAAC,IAAI,EAAE,gBAAgB,GAAG,gBAAgB;WAQ/C,OAAO,IAAI,MAAM;WAIjB,SAAS,IAAI,gBAAgB,CAAC,gBAAgB,CAAC;WAS/C,UAAU,CAAC,cAAc,EAAE,oBAAoB,GAAG,gBAAgB;IAuBlF,MAAM,CAAC,QAAQ,IAAI,KAAK;IAIf,QAAQ,IAAI,GAAG,CAAC,OAAO;IAIvB,SAAS,IAAI,eAAe;IAc5B,UAAU,IAAI,oBAAoB;IAS3C,OAAO,IAAI,UAAU;IAIrB,OAAO,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAKtB,SAAS,IAAI,KAAK;CAG5B;AAED,wBAAgB,uBAAuB,CAAC,EACtC,IAAI,GACL,EAAE;IACD,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAA;CAC/D,GAAG,gBAAgB,CAKnB;AAED,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GACnC,IAAI,IAAI,gBAAgB,CAE1B"}
|
|
@@ -1,36 +1,7 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
1
|
import { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js';
|
|
3
2
|
import ObjectID from 'bson-objectid';
|
|
4
3
|
import { $applyNodeReplacement } from 'lexical';
|
|
5
|
-
import
|
|
6
|
-
export function isGoogleDocCheckboxImg(img) {
|
|
7
|
-
return img.parentElement != null && img.parentElement.tagName === 'LI' && img.previousSibling === null && img.getAttribute('aria-roledescription') === 'checkbox';
|
|
8
|
-
}
|
|
9
|
-
function $convertUploadServerElement(domNode) {
|
|
10
|
-
if (domNode.hasAttribute('data-lexical-upload-relation-to') && domNode.hasAttribute('data-lexical-upload-id')) {
|
|
11
|
-
const id = domNode.getAttribute('data-lexical-upload-id');
|
|
12
|
-
const relationTo = domNode.getAttribute('data-lexical-upload-relation-to');
|
|
13
|
-
if (id != null && relationTo != null) {
|
|
14
|
-
const node = $createUploadServerNode({
|
|
15
|
-
data: {
|
|
16
|
-
fields: {},
|
|
17
|
-
relationTo,
|
|
18
|
-
value: id
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
return {
|
|
22
|
-
node
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
const img = domNode;
|
|
27
|
-
if (img.src.startsWith('file:///') || isGoogleDocCheckboxImg(img)) {
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
// TODO: Auto-upload functionality here!
|
|
31
|
-
//}
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
4
|
+
import { $convertUploadElement } from './conversions.js';
|
|
34
5
|
export class UploadServerNode extends DecoratorBlockNode {
|
|
35
6
|
__data;
|
|
36
7
|
constructor({
|
|
@@ -54,7 +25,7 @@ export class UploadServerNode extends DecoratorBlockNode {
|
|
|
54
25
|
static importDOM() {
|
|
55
26
|
return {
|
|
56
27
|
img: node => ({
|
|
57
|
-
conversion: $
|
|
28
|
+
conversion: domNode => $convertUploadElement(domNode, $createUploadServerNode),
|
|
58
29
|
priority: 0
|
|
59
30
|
})
|
|
60
31
|
};
|
|
@@ -70,6 +41,7 @@ export class UploadServerNode extends DecoratorBlockNode {
|
|
|
70
41
|
const importedData = {
|
|
71
42
|
id: serializedNode.id,
|
|
72
43
|
fields: serializedNode.fields,
|
|
44
|
+
pending: serializedNode.pending,
|
|
73
45
|
relationTo: serializedNode.relationTo,
|
|
74
46
|
value: serializedNode.value
|
|
75
47
|
};
|
|
@@ -83,17 +55,18 @@ export class UploadServerNode extends DecoratorBlockNode {
|
|
|
83
55
|
return false;
|
|
84
56
|
}
|
|
85
57
|
decorate() {
|
|
86
|
-
|
|
87
|
-
return /*#__PURE__*/_jsx(RawUploadComponent, {
|
|
88
|
-
data: this.__data,
|
|
89
|
-
format: this.__format,
|
|
90
|
-
nodeKey: this.getKey()
|
|
91
|
-
});
|
|
58
|
+
return null;
|
|
92
59
|
}
|
|
93
60
|
exportDOM() {
|
|
94
61
|
const element = document.createElement('img');
|
|
95
|
-
|
|
96
|
-
|
|
62
|
+
const data = this.__data;
|
|
63
|
+
if (data.pending) {
|
|
64
|
+
element.setAttribute('data-lexical-pending-upload-form-id', String(data?.pending?.formID));
|
|
65
|
+
element.setAttribute('src', data?.pending?.src || '');
|
|
66
|
+
} else {
|
|
67
|
+
element.setAttribute('data-lexical-upload-id', String(data?.value));
|
|
68
|
+
element.setAttribute('data-lexical-upload-relation-to', data?.relationTo);
|
|
69
|
+
}
|
|
97
70
|
return {
|
|
98
71
|
element
|
|
99
72
|
};
|