@contember/react-client 1.1.0-rc.4 → 1.1.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/development/ContemberClient.js +23 -42
- package/dist/development/ContemberClient.js.map +1 -1
- package/dist/development/apiRequest/apiRequestReducer.js.map +1 -1
- package/dist/development/components/RichTextRenderer/ElementRenderer.js +4 -13
- package/dist/development/components/RichTextRenderer/ElementRenderer.js.map +1 -1
- package/dist/development/components/RichTextRenderer/LeafRenderer.js +12 -11
- package/dist/development/components/RichTextRenderer/LeafRenderer.js.map +1 -1
- package/dist/development/components/RichTextRenderer/RenderElementFallback.js +65 -113
- package/dist/development/components/RichTextRenderer/RenderElementFallback.js.map +1 -1
- package/dist/development/components/RichTextRenderer/RenderLeafFallback.js +26 -38
- package/dist/development/components/RichTextRenderer/RenderLeafFallback.js.map +1 -1
- package/dist/development/components/RichTextRenderer/RichTextRenderer.js +55 -35
- package/dist/development/components/RichTextRenderer/RichTextRenderer.js.map +1 -1
- package/dist/development/components/RichTextRenderer/renderChildren.js +22 -28
- package/dist/development/components/RichTextRenderer/renderChildren.js.map +1 -1
- package/dist/development/upload/fileUploadReducer.js +31 -45
- package/dist/development/upload/fileUploadReducer.js.map +1 -1
- package/dist/development/upload/toFileId.js.map +1 -1
- package/dist/development/upload/useFileUpload.js +24 -64
- package/dist/development/upload/useFileUpload.js.map +1 -1
- package/dist/production/ContemberClient.js +2 -20
- package/dist/production/ContemberClient.js.map +1 -1
- package/dist/production/apiRequest/apiRequestReducer.js.map +1 -1
- package/dist/production/components/RichTextRenderer/ElementRenderer.js +3 -11
- package/dist/production/components/RichTextRenderer/ElementRenderer.js.map +1 -1
- package/dist/production/components/RichTextRenderer/LeafRenderer.js +11 -9
- package/dist/production/components/RichTextRenderer/LeafRenderer.js.map +1 -1
- package/dist/production/components/RichTextRenderer/RenderElementFallback.js +34 -89
- package/dist/production/components/RichTextRenderer/RenderElementFallback.js.map +1 -1
- package/dist/production/components/RichTextRenderer/RenderLeafFallback.js +13 -28
- package/dist/production/components/RichTextRenderer/RenderLeafFallback.js.map +1 -1
- package/dist/production/components/RichTextRenderer/RichTextRenderer.js +42 -32
- package/dist/production/components/RichTextRenderer/RichTextRenderer.js.map +1 -1
- package/dist/production/components/RichTextRenderer/renderChildren.js +10 -19
- package/dist/production/components/RichTextRenderer/renderChildren.js.map +1 -1
- package/dist/production/upload/fileUploadReducer.js +31 -45
- package/dist/production/upload/fileUploadReducer.js.map +1 -1
- package/dist/production/upload/toFileId.js.map +1 -1
- package/dist/production/upload/useFileUpload.js +24 -64
- package/dist/production/upload/useFileUpload.js.map +1 -1
- package/dist/types/apiRequest/ApiRequestAction.d.ts +1 -1
- package/dist/types/apiRequest/ApiRequestAction.d.ts.map +1 -1
- package/dist/types/apiRequest/ApiRequestState.d.ts +1 -1
- package/dist/types/apiRequest/ApiRequestState.d.ts.map +1 -1
- package/dist/types/apiRequest/apiRequestReducer.d.ts +1 -1
- package/dist/types/apiRequest/apiRequestReducer.d.ts.map +1 -1
- package/dist/types/apiRequest/useApiRequest.d.ts +1 -1
- package/dist/types/apiRequest/useApiRequest.d.ts.map +1 -1
- package/dist/types/components/RichTextRenderer/BuiltinElements.d.ts +1 -1
- package/dist/types/components/RichTextRenderer/BuiltinElements.d.ts.map +1 -1
- package/dist/types/components/RichTextRenderer/BuiltinLeaves.d.ts +1 -1
- package/dist/types/components/RichTextRenderer/BuiltinLeaves.d.ts.map +1 -1
- package/dist/types/components/RichTextRenderer/ElementRenderer.d.ts +1 -1
- package/dist/types/components/RichTextRenderer/ElementRenderer.d.ts.map +1 -1
- package/dist/types/components/RichTextRenderer/LeafRenderer.d.ts +1 -1
- package/dist/types/components/RichTextRenderer/LeafRenderer.d.ts.map +1 -1
- package/dist/types/components/RichTextRenderer/ReferenceRenderer.d.ts +2 -2
- package/dist/types/components/RichTextRenderer/ReferenceRenderer.d.ts.map +1 -1
- package/dist/types/components/RichTextRenderer/RichTextBlock.d.ts +1 -1
- package/dist/types/components/RichTextRenderer/RichTextBlock.d.ts.map +1 -1
- package/dist/types/components/RichTextRenderer/RichTextRenderer.d.ts +1 -1
- package/dist/types/components/RichTextRenderer/RichTextRenderer.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/upload/FileId.d.ts +1 -1
- package/dist/types/upload/FileId.d.ts.map +1 -1
- package/dist/types/upload/FileUploadAction.d.ts +1 -3
- package/dist/types/upload/FileUploadAction.d.ts.map +1 -1
- package/dist/types/upload/FileUploadCompoundState.d.ts +1 -1
- package/dist/types/upload/FileUploadCompoundState.d.ts.map +1 -1
- package/dist/types/upload/FileUploadMultiTemporalState.d.ts +1 -4
- package/dist/types/upload/FileUploadMultiTemporalState.d.ts.map +1 -1
- package/dist/types/upload/FileUploadOperations.d.ts +4 -4
- package/dist/types/upload/FileUploadOperations.d.ts.map +1 -1
- package/dist/types/upload/SingleFileUploadState.d.ts +1 -1
- package/dist/types/upload/SingleFileUploadState.d.ts.map +1 -1
- package/dist/types/upload/fileUploadReducer.d.ts.map +1 -1
- package/dist/types/upload/toFileId.d.ts.map +1 -1
- package/dist/types/upload/useFileUpload.d.ts +2 -3
- package/dist/types/upload/useFileUpload.d.ts.map +1 -1
- package/package.json +8 -9
- package/src/components/RichTextRenderer/RichTextRenderer.tsx +1 -1
- package/src/upload/FileUploadAction.ts +0 -3
- package/src/upload/FileUploadMultiTemporalState.ts +1 -4
- package/src/upload/fileUploadReducer.ts +33 -53
- package/src/upload/toFileId.ts +1 -1
- package/src/upload/useFileUpload.ts +23 -67
- package/LICENSE +0 -186
|
@@ -1,20 +1,12 @@
|
|
|
1
1
|
import { S3FileUploader } from "@contember/client";
|
|
2
|
-
import { useRef, useReducer, useMemo,
|
|
2
|
+
import { useRef, useReducer, useMemo, useCallback, useEffect } from "react";
|
|
3
3
|
import { fileUploadReducer, initializeFileUploadState } from "./fileUploadReducer.js";
|
|
4
|
-
import { toFileId } from "./toFileId.js";
|
|
5
4
|
import { useCurrentContentGraphQlClient } from "../content/useCurrentContentGraphQlClient.js";
|
|
6
|
-
const useFileUpload = (
|
|
7
|
-
const maxUpdateFrequency = options?.maxUpdateFrequency ?? 100;
|
|
5
|
+
const useFileUpload = ({} = {}) => {
|
|
8
6
|
const contentApiClient = useCurrentContentGraphQlClient();
|
|
9
|
-
const updateTimeoutRef = useRef(void 0);
|
|
10
|
-
const isFirstRenderRef = useRef(true);
|
|
11
7
|
const fileIdSeedRef = useRef(1);
|
|
12
|
-
const [
|
|
13
|
-
const multiTemporalStateRef = useRef(multiTemporalState);
|
|
8
|
+
const [internalState, dispatch] = useReducer(fileUploadReducer, void 0, initializeFileUploadState);
|
|
14
9
|
const defaultUploader = useMemo(() => new S3FileUploader(), []);
|
|
15
|
-
useEffect(() => {
|
|
16
|
-
multiTemporalStateRef.current = multiTemporalState;
|
|
17
|
-
});
|
|
18
10
|
const purgeUpload = useCallback((files) => {
|
|
19
11
|
dispatch({
|
|
20
12
|
type: "purge",
|
|
@@ -27,6 +19,9 @@ const useFileUpload = (options) => {
|
|
|
27
19
|
error
|
|
28
20
|
});
|
|
29
21
|
}, []);
|
|
22
|
+
const previewUrls = useRef(/* @__PURE__ */ new Set());
|
|
23
|
+
const fileIds = useRef(/* @__PURE__ */ new WeakMap());
|
|
24
|
+
const filesWithMetadataById = useRef(/* @__PURE__ */ new Map());
|
|
30
25
|
const initializeUpload = useCallback(
|
|
31
26
|
(files) => {
|
|
32
27
|
const newFileIds = /* @__PURE__ */ new Set();
|
|
@@ -45,13 +40,18 @@ const useFileUpload = (options) => {
|
|
|
45
40
|
abortController.signal.addEventListener("abort", () => {
|
|
46
41
|
purgeUpload([fileId]);
|
|
47
42
|
});
|
|
48
|
-
|
|
49
|
-
|
|
43
|
+
const previewUrl = URL.createObjectURL(file);
|
|
44
|
+
const fileWithMetadata = {
|
|
45
|
+
previewUrl,
|
|
50
46
|
abortController,
|
|
51
47
|
file,
|
|
52
48
|
fileId
|
|
53
|
-
}
|
|
49
|
+
};
|
|
50
|
+
fileWithMetadataByFileConfig.set(fileId, fileWithMetadata);
|
|
54
51
|
newFileIds.add(fileId);
|
|
52
|
+
previewUrls.current.add(previewUrl);
|
|
53
|
+
fileIds.current.set(file, fileId);
|
|
54
|
+
filesWithMetadataById.current.set(fileId, new WeakRef(fileWithMetadata));
|
|
55
55
|
}
|
|
56
56
|
if (fileWithMetadataByFileConfig.size === 0) {
|
|
57
57
|
return fileWithMetadataByFileConfig;
|
|
@@ -74,21 +74,20 @@ const useFileUpload = (options) => {
|
|
|
74
74
|
(files) => {
|
|
75
75
|
const filesById = /* @__PURE__ */ new Map();
|
|
76
76
|
const groupedByUploader = /* @__PURE__ */ new Map();
|
|
77
|
-
const currentState = multiTemporalStateRef.current;
|
|
78
77
|
for (const fileOrIdMaybeWithOptions of files) {
|
|
79
78
|
let fileOrId;
|
|
80
|
-
let
|
|
79
|
+
let options;
|
|
81
80
|
if (Array.isArray(fileOrIdMaybeWithOptions)) {
|
|
82
81
|
fileOrId = fileOrIdMaybeWithOptions[0];
|
|
83
|
-
|
|
82
|
+
options = fileOrIdMaybeWithOptions[1];
|
|
84
83
|
} else {
|
|
85
84
|
fileOrId = fileOrIdMaybeWithOptions;
|
|
86
|
-
|
|
85
|
+
options = {};
|
|
87
86
|
}
|
|
88
|
-
const { uploader = defaultUploader, metadata } =
|
|
89
|
-
const fileId =
|
|
90
|
-
const fileState =
|
|
91
|
-
if (
|
|
87
|
+
const { uploader = defaultUploader, metadata } = options;
|
|
88
|
+
const fileId = fileOrId instanceof File ? fileIds.current.get(fileOrId) : fileOrId;
|
|
89
|
+
const fileState = fileId ? filesWithMetadataById.current.get(fileId)?.deref() : void 0;
|
|
90
|
+
if (fileId === void 0 || fileState === void 0) {
|
|
92
91
|
throw new Error(
|
|
93
92
|
`Trying to startUpload a file that hasn't been previously initialized. This will be possible in future, but isn't yet.`
|
|
94
93
|
);
|
|
@@ -151,54 +150,15 @@ const useFileUpload = (options) => {
|
|
|
151
150
|
}),
|
|
152
151
|
[failUpload, initializeUpload, purgeUpload, startUpload]
|
|
153
152
|
);
|
|
154
|
-
useEffect(() => {
|
|
155
|
-
if (isFirstRenderRef.current) {
|
|
156
|
-
return;
|
|
157
|
-
}
|
|
158
|
-
if (multiTemporalState.isLiveStateDirty) {
|
|
159
|
-
const now = Date.now();
|
|
160
|
-
const timeDelta = Math.max(now - multiTemporalState.lastUpdateTime, 0);
|
|
161
|
-
if (timeDelta > maxUpdateFrequency) {
|
|
162
|
-
if (updateTimeoutRef.current !== void 0) {
|
|
163
|
-
clearTimeout(updateTimeoutRef.current);
|
|
164
|
-
}
|
|
165
|
-
dispatch({
|
|
166
|
-
type: "publishNewestState"
|
|
167
|
-
});
|
|
168
|
-
} else {
|
|
169
|
-
if (updateTimeoutRef.current !== void 0) {
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
updateTimeoutRef.current = window.setTimeout(() => {
|
|
173
|
-
dispatch({
|
|
174
|
-
type: "publishNewestState"
|
|
175
|
-
});
|
|
176
|
-
updateTimeoutRef.current = void 0;
|
|
177
|
-
}, maxUpdateFrequency - timeDelta);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}, [
|
|
181
|
-
multiTemporalState.isLiveStateDirty,
|
|
182
|
-
multiTemporalState.lastUpdateTime,
|
|
183
|
-
multiTemporalState.liveState,
|
|
184
|
-
multiTemporalState.publicState,
|
|
185
|
-
maxUpdateFrequency
|
|
186
|
-
]);
|
|
187
153
|
useEffect(
|
|
188
154
|
() => () => {
|
|
189
|
-
for (const
|
|
190
|
-
URL.revokeObjectURL(
|
|
191
|
-
}
|
|
192
|
-
for (const [, state] of multiTemporalStateRef.current.publicState) {
|
|
193
|
-
URL.revokeObjectURL(state.previewUrl);
|
|
155
|
+
for (const previewUrl of Array.from(previewUrls.current)) {
|
|
156
|
+
URL.revokeObjectURL(previewUrl);
|
|
194
157
|
}
|
|
195
158
|
},
|
|
196
159
|
[]
|
|
197
160
|
);
|
|
198
|
-
|
|
199
|
-
isFirstRenderRef.current = false;
|
|
200
|
-
}, []);
|
|
201
|
-
return [multiTemporalState.publicState, operations];
|
|
161
|
+
return [internalState.state, operations];
|
|
202
162
|
};
|
|
203
163
|
export {
|
|
204
164
|
useFileUpload
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFileUpload.js","sources":["../../../src/upload/useFileUpload.ts"],"sourcesContent":["import { FileUploader, S3FileUploader, UploadedFileMetadata } from '@contember/client'\nimport { Reducer, useCallback, useEffect, useMemo, useReducer, useRef } from 'react'\nimport { useCurrentContentGraphQlClient } from '../content'\nimport type { FileId } from './FileId'\nimport type { FileUploadAction } from './FileUploadAction'\nimport type { FileUploadCompoundState } from './FileUploadCompoundState'\nimport type { FileUploadMetadata } from './FileUploadMetadata'\nimport type { FileUploadMultiTemporalState } from './FileUploadMultiTemporalState'\nimport type {\n\tPurgeUpload,\n\tFileUploadOperations,\n\tInitializeUpload,\n\tStartUpload,\n\tStartUploadFileOptions,\n\tFailUpload,\n} from './FileUploadOperations'\nimport { fileUploadReducer, initializeFileUploadState } from './fileUploadReducer'\nimport type { FileWithMetadata } from './FileWithMetadata'\nimport { toFileId } from './toFileId'\n\nexport type FileUpload<Result = unknown, Metadata = undefined> = [\n\tFileUploadCompoundState<Result, Metadata>,\n\tFileUploadOperations<Metadata>,\n]\n\nexport interface FileUploadOptions {\n\tmaxUpdateFrequency?: number // This does NOT apply to all kinds of updates.\n}\n\nexport const useFileUpload = <Result = unknown, Metadata = undefined>(\n\toptions?: FileUploadOptions,\n): FileUpload<Result, Metadata> => {\n\tconst maxUpdateFrequency = options?.maxUpdateFrequency ?? 100\n\n\tconst contentApiClient = useCurrentContentGraphQlClient()\n\n\tconst updateTimeoutRef = useRef<number | undefined>(undefined)\n\tconst isFirstRenderRef = useRef(true)\n\tconst fileIdSeedRef = useRef(1)\n\n\tconst [multiTemporalState, dispatch] = useReducer<\n\t\tReducer<FileUploadMultiTemporalState<Result, Metadata>, FileUploadAction<Result, Metadata>>,\n\t\tundefined\n\t>(fileUploadReducer, undefined, initializeFileUploadState)\n\tconst multiTemporalStateRef = useRef(multiTemporalState)\n\n\tconst defaultUploader = useMemo(() => new S3FileUploader(), [])\n\n\tuseEffect(() => {\n\t\tmultiTemporalStateRef.current = multiTemporalState\n\t})\n\n\tconst purgeUpload = useCallback<PurgeUpload>(files => {\n\t\tdispatch({\n\t\t\ttype: 'purge',\n\t\t\tfiles,\n\t\t})\n\t}, [])\n\tconst failUpload = useCallback<FailUpload>(error => {\n\t\tdispatch({\n\t\t\ttype: 'finishWithError',\n\t\t\terror,\n\t\t})\n\t}, [])\n\tconst initializeUpload = useCallback<InitializeUpload>(\n\t\tfiles => {\n\t\t\tconst newFileIds = new Set<FileId>()\n\t\t\tconst fileWithMetadataByFileConfig = new Map<FileId, FileWithMetadata>()\n\n\t\t\tfor (const fileMaybeWithId of files) {\n\t\t\t\tconst abortController = new AbortController()\n\n\t\t\t\tlet fileId: FileId\n\t\t\t\tlet file: File\n\n\t\t\t\tif (fileMaybeWithId instanceof File) {\n\t\t\t\t\tfileId = `__contember__file-${fileIdSeedRef.current++}`\n\t\t\t\t\tfile = fileMaybeWithId\n\t\t\t\t} else {\n\t\t\t\t\tfileId = fileMaybeWithId[0]\n\t\t\t\t\tfile = fileMaybeWithId[1]\n\t\t\t\t}\n\n\t\t\t\tabortController.signal.addEventListener('abort', () => {\n\t\t\t\t\tpurgeUpload([fileId])\n\t\t\t\t})\n\n\t\t\t\tfileWithMetadataByFileConfig.set(fileId, {\n\t\t\t\t\tpreviewUrl: URL.createObjectURL(file),\n\t\t\t\t\tabortController,\n\t\t\t\t\tfile,\n\t\t\t\t\tfileId,\n\t\t\t\t})\n\n\t\t\t\tnewFileIds.add(fileId)\n\t\t\t}\n\t\t\tif (fileWithMetadataByFileConfig.size === 0) {\n\t\t\t\treturn fileWithMetadataByFileConfig\n\t\t\t}\n\n\t\t\tif (newFileIds.size) {\n\t\t\t\tdispatch({\n\t\t\t\t\ttype: 'purge',\n\t\t\t\t\tfiles: newFileIds,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tdispatch({\n\t\t\t\ttype: 'initialize',\n\t\t\t\tfiles: fileWithMetadataByFileConfig,\n\t\t\t})\n\n\t\t\treturn fileWithMetadataByFileConfig\n\t\t},\n\t\t[purgeUpload],\n\t)\n\tconst startUpload = useCallback<StartUpload<Metadata>>(\n\t\tfiles => {\n\t\t\tconst filesById = new Map<FileId, FileUploadMetadata<Metadata>>()\n\t\t\tconst groupedByUploader: Map<FileUploader, Map<File, UploadedFileMetadata>> = new Map()\n\n\t\t\tconst currentState = multiTemporalStateRef.current\n\n\t\t\tfor (const fileOrIdMaybeWithOptions of files) {\n\t\t\t\tlet fileOrId: File | FileId\n\t\t\t\tlet options: StartUploadFileOptions<Metadata>\n\n\t\t\t\tif (Array.isArray(fileOrIdMaybeWithOptions)) {\n\t\t\t\t\tfileOrId = fileOrIdMaybeWithOptions[0]\n\t\t\t\t\toptions = fileOrIdMaybeWithOptions[1]\n\t\t\t\t} else {\n\t\t\t\t\tfileOrId = fileOrIdMaybeWithOptions\n\t\t\t\t\toptions = {}\n\t\t\t\t}\n\t\t\t\tconst { uploader = defaultUploader, metadata } = options\n\n\t\t\t\tconst fileId = toFileId(currentState, fileOrId)\n\t\t\t\tconst fileState = currentState.liveState.get(fileId)\n\n\t\t\t\tif (fileState === undefined || fileState.readyState !== 'initializing') {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Trying to startUpload a file that hasn't been previously initialized. ` +\n\t\t\t\t\t\t\t`This will be possible in future, but isn't yet.`,\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\tfilesById.set(fileId, {\n\t\t\t\t\tuploader,\n\t\t\t\t\tmetadata,\n\t\t\t\t})\n\n\t\t\t\tlet filesWithSameUploader = groupedByUploader.get(uploader)\n\t\t\t\tif (filesWithSameUploader === undefined) {\n\t\t\t\t\tgroupedByUploader.set(uploader, (filesWithSameUploader = new Map()))\n\t\t\t\t}\n\t\t\t\tfilesWithSameUploader.set(fileState.file, {\n\t\t\t\t\tabortSignal: fileState.abortController.signal,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tdispatch({\n\t\t\t\ttype: 'startUploading',\n\t\t\t\tfiles: filesById,\n\t\t\t})\n\n\t\t\tfor (const [uploader, filesForUpload] of groupedByUploader) {\n\t\t\t\ttry {\n\t\t\t\t\tuploader.upload(filesForUpload, {\n\t\t\t\t\t\tonProgress: progress => {\n\t\t\t\t\t\t\tdispatch({\n\t\t\t\t\t\t\t\ttype: 'updateUploadProgress',\n\t\t\t\t\t\t\t\tprogress,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonSuccess: result => {\n\t\t\t\t\t\t\tdispatch({\n\t\t\t\t\t\t\t\ttype: 'finishSuccessfully',\n\t\t\t\t\t\t\t\tresult,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError: error => {\n\t\t\t\t\t\t\tdispatch({\n\t\t\t\t\t\t\t\ttype: 'finishWithError',\n\t\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcontentApiClient,\n\t\t\t\t\t})\n\t\t\t\t} catch (error) {\n\t\t\t\t\tdispatch({\n\t\t\t\t\t\ttype: 'finishWithError',\n\t\t\t\t\t\terror: Array.from(filesForUpload).map(([file]) => [file, error]),\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[contentApiClient, defaultUploader],\n\t)\n\n\tconst operations = useMemo<FileUploadOperations<Metadata>>(\n\t\t() => ({\n\t\t\tfailUpload,\n\t\t\tinitializeUpload,\n\t\t\tpurgeUpload,\n\t\t\tstartUpload,\n\t\t}),\n\t\t[failUpload, initializeUpload, purgeUpload, startUpload],\n\t)\n\n\tuseEffect(() => {\n\t\tif (isFirstRenderRef.current) {\n\t\t\treturn\n\t\t}\n\t\tif (multiTemporalState.isLiveStateDirty) {\n\t\t\tconst now = Date.now()\n\t\t\tconst timeDelta = Math.max(now - multiTemporalState.lastUpdateTime, 0) // The max is just a sanity check\n\t\t\tif (timeDelta > maxUpdateFrequency) {\n\t\t\t\tif (updateTimeoutRef.current !== undefined) {\n\t\t\t\t\tclearTimeout(updateTimeoutRef.current)\n\t\t\t\t}\n\t\t\t\tdispatch({\n\t\t\t\t\ttype: 'publishNewestState',\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tif (updateTimeoutRef.current !== undefined) {\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tupdateTimeoutRef.current = window.setTimeout(() => {\n\t\t\t\t\tdispatch({\n\t\t\t\t\t\ttype: 'publishNewestState',\n\t\t\t\t\t})\n\t\t\t\t\tupdateTimeoutRef.current = undefined\n\t\t\t\t}, maxUpdateFrequency - timeDelta)\n\t\t\t}\n\t\t}\n\t}, [\n\t\tmultiTemporalState.isLiveStateDirty,\n\t\tmultiTemporalState.lastUpdateTime,\n\t\tmultiTemporalState.liveState,\n\t\tmultiTemporalState.publicState,\n\t\tmaxUpdateFrequency,\n\t])\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\tfor (const [, state] of multiTemporalStateRef.current.liveState) {\n\t\t\t\tURL.revokeObjectURL(state.previewUrl)\n\t\t\t}\n\t\t\tfor (const [, state] of multiTemporalStateRef.current.publicState) {\n\t\t\t\tURL.revokeObjectURL(state.previewUrl)\n\t\t\t}\n\t\t},\n\t\t[],\n\t)\n\n\t// For this to work, this effect must be the last one to run.\n\tuseEffect(() => {\n\t\tisFirstRenderRef.current = false\n\t}, [])\n\n\treturn [multiTemporalState.publicState, operations]\n}\n"],"names":["options"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useFileUpload.js","sources":["../../../src/upload/useFileUpload.ts"],"sourcesContent":["import { FileUploader, S3FileUploader, UploadedFileMetadata } from '@contember/client'\nimport { Reducer, useCallback, useEffect, useMemo, useReducer, useRef } from 'react'\nimport { useCurrentContentGraphQlClient } from '../content'\nimport type { FileId } from './FileId'\nimport type { FileUploadAction } from './FileUploadAction'\nimport type { FileUploadCompoundState } from './FileUploadCompoundState'\nimport type { FileUploadMetadata } from './FileUploadMetadata'\nimport type { FileUploadMultiTemporalState } from './FileUploadMultiTemporalState'\nimport type {\n\tPurgeUpload,\n\tFileUploadOperations,\n\tInitializeUpload,\n\tStartUpload,\n\tStartUploadFileOptions,\n\tFailUpload,\n} from './FileUploadOperations'\nimport { fileUploadReducer, initializeFileUploadState } from './fileUploadReducer'\nimport type { FileWithMetadata } from './FileWithMetadata'\n\nexport type FileUpload<Result = unknown, Metadata = undefined> = [\n\tFileUploadCompoundState<Result, Metadata>,\n\tFileUploadOperations<Metadata>,\n]\n\nexport interface FileUploadOptions {\n}\n\nexport const useFileUpload = <Result = unknown, Metadata = undefined>({}: FileUploadOptions = {}): FileUpload<Result, Metadata> => {\n\tconst contentApiClient = useCurrentContentGraphQlClient()\n\n\tconst fileIdSeedRef = useRef(1)\n\n\tconst [internalState, dispatch] = useReducer<\n\t\tReducer<FileUploadMultiTemporalState<Result, Metadata>, FileUploadAction<Result, Metadata>>,\n\t\tundefined\n\t>(fileUploadReducer, undefined, initializeFileUploadState)\n\n\tconst defaultUploader = useMemo(() => new S3FileUploader(), [])\n\n\tconst purgeUpload = useCallback<PurgeUpload>(files => {\n\t\tdispatch({\n\t\t\ttype: 'purge',\n\t\t\tfiles,\n\t\t})\n\t}, [])\n\tconst failUpload = useCallback<FailUpload>(error => {\n\t\tdispatch({\n\t\t\ttype: 'finishWithError',\n\t\t\terror,\n\t\t})\n\t}, [])\n\n\tconst previewUrls = useRef(new Set<string>())\n\tconst fileIds = useRef(new WeakMap<File, FileId>())\n\tconst filesWithMetadataById = useRef(new Map<FileId, WeakRef<FileWithMetadata>>)\n\n\tconst initializeUpload = useCallback<InitializeUpload>(\n\t\tfiles => {\n\t\t\tconst newFileIds = new Set<FileId>()\n\t\t\tconst fileWithMetadataByFileConfig = new Map<FileId, FileWithMetadata>()\n\n\t\t\tfor (const fileMaybeWithId of files) {\n\t\t\t\tconst abortController = new AbortController()\n\n\t\t\t\tlet fileId: FileId\n\t\t\t\tlet file: File\n\n\t\t\t\tif (fileMaybeWithId instanceof File) {\n\t\t\t\t\tfileId = `__contember__file-${fileIdSeedRef.current++}`\n\t\t\t\t\tfile = fileMaybeWithId\n\t\t\t\t} else {\n\t\t\t\t\tfileId = fileMaybeWithId[0]\n\t\t\t\t\tfile = fileMaybeWithId[1]\n\t\t\t\t}\n\n\t\t\t\tabortController.signal.addEventListener('abort', () => {\n\t\t\t\t\tpurgeUpload([fileId])\n\t\t\t\t})\n\n\t\t\t\tconst previewUrl = URL.createObjectURL(file)\n\t\t\t\tconst fileWithMetadata: FileWithMetadata = {\n\t\t\t\t\tpreviewUrl: previewUrl,\n\t\t\t\t\tabortController,\n\t\t\t\t\tfile,\n\t\t\t\t\tfileId,\n\t\t\t\t}\n\t\t\t\tfileWithMetadataByFileConfig.set(fileId, fileWithMetadata)\n\n\t\t\t\tnewFileIds.add(fileId)\n\n\t\t\t\tpreviewUrls.current.add(previewUrl)\n\t\t\t\tfileIds.current.set(file, fileId)\n\t\t\t\tfilesWithMetadataById.current.set(fileId, new WeakRef(fileWithMetadata))\n\t\t\t}\n\t\t\tif (fileWithMetadataByFileConfig.size === 0) {\n\t\t\t\treturn fileWithMetadataByFileConfig\n\t\t\t}\n\n\t\t\tif (newFileIds.size) {\n\t\t\t\tdispatch({\n\t\t\t\t\ttype: 'purge',\n\t\t\t\t\tfiles: newFileIds,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tdispatch({\n\t\t\t\ttype: 'initialize',\n\t\t\t\tfiles: fileWithMetadataByFileConfig,\n\t\t\t})\n\n\t\t\treturn fileWithMetadataByFileConfig\n\t\t},\n\t\t[purgeUpload],\n\t)\n\tconst startUpload = useCallback<StartUpload<Metadata>>(\n\t\tfiles => {\n\t\t\tconst filesById = new Map<FileId, FileUploadMetadata<Metadata>>()\n\t\t\tconst groupedByUploader: Map<FileUploader, Map<File, UploadedFileMetadata>> = new Map()\n\n\t\t\tfor (const fileOrIdMaybeWithOptions of files) {\n\t\t\t\tlet fileOrId: File | FileId\n\t\t\t\tlet options: StartUploadFileOptions<Metadata>\n\n\t\t\t\tif (Array.isArray(fileOrIdMaybeWithOptions)) {\n\t\t\t\t\tfileOrId = fileOrIdMaybeWithOptions[0]\n\t\t\t\t\toptions = fileOrIdMaybeWithOptions[1]\n\t\t\t\t} else {\n\t\t\t\t\tfileOrId = fileOrIdMaybeWithOptions\n\t\t\t\t\toptions = {}\n\t\t\t\t}\n\t\t\t\tconst { uploader = defaultUploader, metadata } = options\n\n\t\t\t\tconst fileId = fileOrId instanceof File ? fileIds.current.get(fileOrId) : fileOrId\n\t\t\t\tconst fileState = fileId ? filesWithMetadataById.current.get(fileId)?.deref() : undefined\n\n\t\t\t\tif (fileId === undefined || fileState === undefined) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Trying to startUpload a file that hasn't been previously initialized. ` +\n\t\t\t\t\t\t\t`This will be possible in future, but isn't yet.`,\n\t\t\t\t\t)\n\t\t\t\t}\n\n\n\t\t\t\tfilesById.set(fileId, {\n\t\t\t\t\tuploader,\n\t\t\t\t\tmetadata,\n\t\t\t\t})\n\n\t\t\t\tlet filesWithSameUploader = groupedByUploader.get(uploader)\n\t\t\t\tif (filesWithSameUploader === undefined) {\n\t\t\t\t\tgroupedByUploader.set(uploader, (filesWithSameUploader = new Map()))\n\t\t\t\t}\n\t\t\t\tfilesWithSameUploader.set(fileState.file, {\n\t\t\t\t\tabortSignal: fileState.abortController.signal,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tdispatch({\n\t\t\t\ttype: 'startUploading',\n\t\t\t\tfiles: filesById,\n\t\t\t})\n\n\t\t\tfor (const [uploader, filesForUpload] of groupedByUploader) {\n\t\t\t\ttry {\n\t\t\t\t\tuploader.upload(filesForUpload, {\n\t\t\t\t\t\tonProgress: progress => {\n\t\t\t\t\t\t\tdispatch({\n\t\t\t\t\t\t\t\ttype: 'updateUploadProgress',\n\t\t\t\t\t\t\t\tprogress,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonSuccess: result => {\n\t\t\t\t\t\t\tdispatch({\n\t\t\t\t\t\t\t\ttype: 'finishSuccessfully',\n\t\t\t\t\t\t\t\tresult,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t},\n\t\t\t\t\t\tonError: error => {\n\t\t\t\t\t\t\tdispatch({\n\t\t\t\t\t\t\t\ttype: 'finishWithError',\n\t\t\t\t\t\t\t\terror,\n\t\t\t\t\t\t\t})\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcontentApiClient,\n\t\t\t\t\t})\n\t\t\t\t} catch (error) {\n\t\t\t\t\tdispatch({\n\t\t\t\t\t\ttype: 'finishWithError',\n\t\t\t\t\t\terror: Array.from(filesForUpload).map(([file]) => [file, error]),\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\t[contentApiClient, defaultUploader],\n\t)\n\n\tconst operations = useMemo<FileUploadOperations<Metadata>>(\n\t\t() => ({\n\t\t\tfailUpload,\n\t\t\tinitializeUpload,\n\t\t\tpurgeUpload,\n\t\t\tstartUpload,\n\t\t}),\n\t\t[failUpload, initializeUpload, purgeUpload, startUpload],\n\t)\n\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\tfor (const previewUrl of Array.from(previewUrls.current)) {\n\t\t\t\tURL.revokeObjectURL(previewUrl)\n\t\t\t}\n\t\t},\n\t\t[],\n\t)\n\n\treturn [internalState.state, operations]\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiRequestAction.d.ts","sourceRoot":"","sources":["../../../src/apiRequest/ApiRequestAction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAA;AAE3E,
|
|
1
|
+
{"version":3,"file":"ApiRequestAction.d.ts","sourceRoot":"","sources":["../../../src/apiRequest/ApiRequestAction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAA;AAE3E,MAAM,MAAM,gBAAgB,CAAC,WAAW,IACrC;IACA,IAAI,EAAE,cAAc,CAAA;CACnB,GACD;IACA,IAAI,EAAE,YAAY,CAAA;CACjB,GACD;IACA,IAAI,EAAE,qBAAqB,CAAA;IAC3B,IAAI,EAAE,WAAW,CAAA;CAChB,GACD;IACA,IAAI,EAAE,kBAAkB,CAAA;IACxB,KAAK,EAAE,kCAAkC,CAAA;CACxC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiRequestState.d.ts","sourceRoot":"","sources":["../../../src/apiRequest/ApiRequestState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAA;AAE3E,
|
|
1
|
+
{"version":3,"file":"ApiRequestState.d.ts","sourceRoot":"","sources":["../../../src/apiRequest/ApiRequestState.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,mBAAmB,CAAA;AAE3E,MAAM,MAAM,eAAe,CAAC,WAAW,IACpC;IACA,SAAS,EAAE,KAAK,CAAA;IAChB,UAAU,EAAE,KAAK,CAAA;IACjB,UAAU,EAAE,eAAe,CAAA;CAC1B,GACD;IACA,SAAS,EAAE,IAAI,CAAA;IACf,UAAU,EAAE,KAAK,CAAA;IACjB,UAAU,EAAE,SAAS,CAAA;CACpB,GACD;IACA,SAAS,EAAE,KAAK,CAAA;IAChB,UAAU,EAAE,IAAI,CAAA;IAChB,UAAU,EAAE,gBAAgB,CAAA;IAC5B,IAAI,EAAE,WAAW,CAAA;CAChB,GACD;IACA,SAAS,EAAE,KAAK,CAAA;IAChB,UAAU,EAAE,IAAI,CAAA;IAChB,UAAU,EAAE,cAAc,CAAA;IAC1B,IAAI,EAAE,kCAAkC,CAAA;CACvC,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ApiRequestAction } from './ApiRequestAction';
|
|
2
2
|
import type { ApiRequestState } from './ApiRequestState';
|
|
3
|
-
export
|
|
3
|
+
export type ApiRequestReducer<SuccessData> = (previousState: ApiRequestState<SuccessData>, action: ApiRequestAction<SuccessData>) => ApiRequestState<SuccessData>;
|
|
4
4
|
export declare const apiRequestReducer: <SuccessData>(previousState: ApiRequestState<SuccessData>, action: ApiRequestAction<SuccessData>) => ApiRequestState<SuccessData>;
|
|
5
5
|
//# sourceMappingURL=apiRequestReducer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiRequestReducer.d.ts","sourceRoot":"","sources":["../../../src/apiRequest/apiRequestReducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAExD,
|
|
1
|
+
{"version":3,"file":"apiRequestReducer.d.ts","sourceRoot":"","sources":["../../../src/apiRequest/apiRequestReducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAExD,MAAM,MAAM,iBAAiB,CAAC,WAAW,IAAI,CAC5C,aAAa,EAAE,eAAe,CAAC,WAAW,CAAC,EAC3C,MAAM,EAAE,gBAAgB,CAAC,WAAW,CAAC,KACjC,eAAe,CAAC,WAAW,CAAC,CAAA;AAEjC,eAAO,MAAM,iBAAiB,mIAgC7B,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { GraphQlClient, GraphQlClientRequestOptions, GraphQlClientVariables } from '@contember/client';
|
|
2
2
|
import type { ApiRequestState } from './ApiRequestState';
|
|
3
|
-
export
|
|
3
|
+
export type UseApiRequestResult<SuccessData> = [
|
|
4
4
|
ApiRequestState<SuccessData>,
|
|
5
5
|
(query: string, variables?: GraphQlClientVariables, options?: Omit<GraphQlClientRequestOptions, 'variables'>) => Promise<SuccessData>
|
|
6
6
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useApiRequest.d.ts","sourceRoot":"","sources":["../../../src/apiRequest/useApiRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EAEb,2BAA2B,EAC3B,sBAAsB,EACtB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAQxD,
|
|
1
|
+
{"version":3,"file":"useApiRequest.d.ts","sourceRoot":"","sources":["../../../src/apiRequest/useApiRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EAEb,2BAA2B,EAC3B,sBAAsB,EACtB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAQxD,MAAM,MAAM,mBAAmB,CAAC,WAAW,IAAI;IAC9C,eAAe,CAAC,WAAW,CAAC;IAC5B,CACC,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,sBAAsB,EAClC,OAAO,CAAC,EAAE,IAAI,CAAC,2BAA2B,EAAE,WAAW,CAAC,KACpD,OAAO,CAAC,WAAW,CAAC;CACzB,CAAA;AAED,eAAO,MAAM,aAAa,wBAAyB,aAAa,qCA+C/D,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { RichTextElement } from './RichTextElement';
|
|
2
2
|
import type { RichTextLeaf } from './RichTextLeaf';
|
|
3
|
-
export
|
|
3
|
+
export type BuiltinElements<CustomElements extends RichTextElement = never, CustomLeaves extends RichTextLeaf = never> = RichTextAnchorElement<CustomElements, CustomLeaves> | RichTextHeadingElement<CustomElements, CustomLeaves> | RichTextHorizontalRuleElement<CustomElements, CustomLeaves> | RichTextListItemElement<CustomElements, CustomLeaves> | RichTextOrderedListElement<CustomElements, CustomLeaves> | RichTextParagraphElement<CustomElements, CustomLeaves> | RichTextReferenceElement<CustomElements, CustomLeaves> | RichTextScrollTargetElement<CustomElements, CustomLeaves> | RichTextTableCellElement<CustomElements, CustomLeaves> | RichTextTableElement<CustomElements, CustomLeaves> | RichTextTableRowElement<CustomElements, CustomLeaves> | RichTextUnorderedListElement<CustomElements, CustomLeaves>;
|
|
4
4
|
export interface RichTextAnchorElement<CustomElements extends RichTextElement = never, CustomLeaves extends RichTextLeaf = never> extends RichTextElement<CustomElements, CustomLeaves> {
|
|
5
5
|
type: 'anchor';
|
|
6
6
|
href: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuiltinElements.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextRenderer/BuiltinElements.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,
|
|
1
|
+
{"version":3,"file":"BuiltinElements.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextRenderer/BuiltinElements.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { RichTextLeaf } from './RichTextLeaf';
|
|
2
|
-
export
|
|
2
|
+
export type BuiltinLeaves = RichTextBoldLeaf & RichTextCodeLeaf & RichTextHighlightLeaf & RichTextItalicLeaf & RichTextStrikeThroughLeaf & RichTextUnderlineLeaf;
|
|
3
3
|
export interface RichTextBoldLeaf extends RichTextLeaf {
|
|
4
4
|
isBold?: boolean;
|
|
5
5
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuiltinLeaves.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextRenderer/BuiltinLeaves.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,
|
|
1
|
+
{"version":3,"file":"BuiltinLeaves.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextRenderer/BuiltinLeaves.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAElD,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAC3C,gBAAgB,GAChB,qBAAqB,GACrB,kBAAkB,GAClB,yBAAyB,GACzB,qBAAqB,CAAA;AAEtB,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACrD,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACrD,MAAM,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IAC1D,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,kBAAmB,SAAQ,YAAY;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAA;CAClB;AAED,MAAM,WAAW,yBAA0B,SAAQ,YAAY;IAC9D,eAAe,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,MAAM,WAAW,qBAAsB,SAAQ,YAAY;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAA;CACtB"}
|
|
@@ -6,7 +6,7 @@ import type { RichTextElement } from './RichTextElement';
|
|
|
6
6
|
import type { RichTextElementMetadata } from './RichTextElementMetadata';
|
|
7
7
|
import type { RichTextLeaf } from './RichTextLeaf';
|
|
8
8
|
import type { RichTextReference } from './RichTextReference';
|
|
9
|
-
export
|
|
9
|
+
export type RenderElement<CustomElements extends RichTextElement = never, CustomLeaves extends RichTextLeaf = never, Reference extends RichTextReference = RichTextReference> = ComponentType<{
|
|
10
10
|
element: CustomElements | BuiltinElements<CustomElements, CustomLeaves>;
|
|
11
11
|
children: ReactElement;
|
|
12
12
|
fallback: ReactElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ElementRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextRenderer/ElementRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAG5D,
|
|
1
|
+
{"version":3,"file":"ElementRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextRenderer/ElementRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAI7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAG5D,MAAM,MAAM,aAAa,CACxB,cAAc,SAAS,eAAe,GAAG,KAAK,EAC9C,YAAY,SAAS,YAAY,GAAG,KAAK,EACzC,SAAS,SAAS,iBAAiB,GAAG,iBAAiB,IACpD,aAAa,CAChB;IACC,OAAO,EAAE,cAAc,GAAG,eAAe,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IACvE,QAAQ,EAAE,YAAY,CAAA;IAEtB,QAAQ,EAAE,YAAY,CAAA;IAEtB,cAAc,EAAE,CACf,QAAQ,EACL,cAAc,GACd,eAAe,CAAC,cAAc,EAAE,YAAY,CAAC,GAC7C,YAAY,GACZ,aAAa,GACb,KAAK,CAAC,cAAc,GAAG,eAAe,CAAC,cAAc,EAAE,YAAY,CAAC,GAAG,YAAY,GAAG,aAAa,CAAC,EACvG,OAAO,EAAE,qBAAqB,CAAC,cAAc,EAAE,YAAY,CAAC,KACxD,YAAY,CAAA;IACjB,qBAAqB,EAAE,qBAAqB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;CAC1E,GAAG,uBAAuB,CAAC,cAAc,EAAE,YAAY,EAAE,SAAS,CAAC,CACpE,CAAA;AAED,MAAM,WAAW,oBAAoB,CACpC,cAAc,SAAS,eAAe,GAAG,KAAK,EAC9C,YAAY,SAAS,YAAY,GAAG,KAAK;IAEzC,OAAO,EAAE,cAAc,GAAG,eAAe,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IACvE,QAAQ,EAAE,YAAY,CAAA;IACtB,OAAO,EAAE,qBAAqB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;CAC5D;AAED,wBAAgB,eAAe,CAC9B,cAAc,SAAS,eAAe,GAAG,KAAK,EAC9C,YAAY,SAAS,YAAY,GAAG,KAAK,EACxC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,oBAAoB,CAAC,cAAc,EAAE,YAAY,CAAC,eAoBnF"}
|
|
@@ -2,7 +2,7 @@ import type { ComponentType, ReactElement } from 'react';
|
|
|
2
2
|
import type { BuiltinLeaves } from './BuiltinLeaves';
|
|
3
3
|
import type { RichTextLeaf } from './RichTextLeaf';
|
|
4
4
|
import type { RichTextLeafMetadata } from './RichTextLeafMetadata';
|
|
5
|
-
export
|
|
5
|
+
export type RenderLeaf<CustomLeaves extends RichTextLeaf> = ComponentType<{
|
|
6
6
|
leaf: CustomLeaves | BuiltinLeaves;
|
|
7
7
|
fallback: ReactElement;
|
|
8
8
|
} & RichTextLeafMetadata>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LeafRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextRenderer/LeafRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAGlE,
|
|
1
|
+
{"version":3,"file":"LeafRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextRenderer/LeafRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAEpD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAGlE,MAAM,MAAM,UAAU,CAAC,YAAY,SAAS,YAAY,IAAI,aAAa,CACxE;IACC,IAAI,EAAE,YAAY,GAAG,aAAa,CAAA;IAClC,QAAQ,EAAE,YAAY,CAAA;CACtB,GAAG,oBAAoB,CACxB,CAAA;AAED,MAAM,WAAW,iBAAiB,CAAC,YAAY,SAAS,YAAY,GAAG,KAAK;IAC3E,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAA;IACrC,IAAI,EAAE,YAAY,GAAG,aAAa,CAAA;CAClC;AAED,wBAAgB,YAAY,CAAC,YAAY,SAAS,YAAY,GAAG,KAAK,EAAE,EACvE,IAAI,EACJ,UAAU,GACV,EAAE,iBAAiB,CAAC,YAAY,CAAC,eAejC"}
|
|
@@ -4,11 +4,11 @@ import type { RichTextElement } from './RichTextElement';
|
|
|
4
4
|
import type { RichTextElementMetadata } from './RichTextElementMetadata';
|
|
5
5
|
import type { RichTextLeaf } from './RichTextLeaf';
|
|
6
6
|
import type { RichTextReference } from './RichTextReference';
|
|
7
|
-
export
|
|
7
|
+
export type ReferenceRendererProps<Reference extends RichTextReference = RichTextReference, CustomElements extends RichTextElement = never, CustomLeaves extends RichTextLeaf = never> = {
|
|
8
8
|
element: CustomElements | BuiltinElements<CustomElements, CustomLeaves>;
|
|
9
9
|
children: ReactElement;
|
|
10
10
|
} & {
|
|
11
11
|
[Prop in keyof RichTextElementMetadata<CustomElements, CustomLeaves, Reference>]: Exclude<RichTextElementMetadata<CustomElements, CustomLeaves, Reference>[Prop], undefined>;
|
|
12
12
|
};
|
|
13
|
-
export
|
|
13
|
+
export type ReferenceRenderer<Reference extends RichTextReference = RichTextReference, CustomElements extends RichTextElement = never, CustomLeaves extends RichTextLeaf = never> = (props: ReferenceRendererProps<Reference, CustomElements, CustomLeaves>) => ReactNode;
|
|
14
14
|
//# sourceMappingURL=ReferenceRenderer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferenceRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextRenderer/ReferenceRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,
|
|
1
|
+
{"version":3,"file":"ReferenceRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextRenderer/ReferenceRenderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,MAAM,MAAM,sBAAsB,CACjC,SAAS,SAAS,iBAAiB,GAAG,iBAAiB,EACvD,cAAc,SAAS,eAAe,GAAG,KAAK,EAC9C,YAAY,SAAS,YAAY,GAAG,KAAK,IACtC;IACH,OAAO,EAAE,cAAc,GAAG,eAAe,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IACvE,QAAQ,EAAE,YAAY,CAAA;CACtB,GAAG;KACF,IAAI,IAAI,MAAM,uBAAuB,CAAC,cAAc,EAAE,YAAY,EAAE,SAAS,CAAC,GAAG,OAAO,CACxF,uBAAuB,CAAC,cAAc,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,EACtE,SAAS,CACT;CACD,CAAA;AAED,MAAM,MAAM,iBAAiB,CAC5B,SAAS,SAAS,iBAAiB,GAAG,iBAAiB,EACvD,cAAc,SAAS,eAAe,GAAG,KAAK,EAC9C,YAAY,SAAS,YAAY,GAAG,KAAK,IACtC,CAAC,KAAK,EAAE,sBAAsB,CAAC,SAAS,EAAE,cAAc,EAAE,YAAY,CAAC,KAAK,SAAS,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type RichTextBlock = Record<string, unknown>;
|
|
2
2
|
//# sourceMappingURL=RichTextBlock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextBlock.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextRenderer/RichTextBlock.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"RichTextBlock.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextRenderer/RichTextBlock.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA"}
|
|
@@ -16,7 +16,7 @@ export interface RichTextRendererBlockProps<CustomElements extends RichTextEleme
|
|
|
16
16
|
referencesField?: string;
|
|
17
17
|
referenceDiscriminationField?: string;
|
|
18
18
|
}
|
|
19
|
-
export
|
|
19
|
+
export type RichTextRendererProps<CustomElements extends RichTextElement = never, CustomLeaves extends RichTextLeaf = never> = {
|
|
20
20
|
deserialize?: (source: string) => RootEditorNode<CustomElements, CustomLeaves>;
|
|
21
21
|
renderElement?: RenderElement<CustomElements, CustomLeaves>;
|
|
22
22
|
renderLeaf?: RenderLeaf<CustomLeaves>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RichTextRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextRenderer/RichTextRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuB,YAAY,EAAE,SAAS,EAAW,MAAM,OAAO,CAAA;AAE5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAIlD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,MAAM,WAAW,0BAA0B;IAC1C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,0BAA0B,CAC1C,cAAc,SAAS,eAAe,GAAG,KAAK,EAC9C,YAAY,SAAS,YAAY,GAAG,KAAK;IAEzC,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAA;IACzF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,4BAA4B,CAAC,EAAE,MAAM,CAAA;CACrC;AAED,
|
|
1
|
+
{"version":3,"file":"RichTextRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/RichTextRenderer/RichTextRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAuB,YAAY,EAAE,SAAS,EAAW,MAAM,OAAO,CAAA;AAE5F,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEhD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAIlD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEtD,MAAM,WAAW,0BAA0B;IAC1C,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACrB;AAED,MAAM,WAAW,0BAA0B,CAC1C,cAAc,SAAS,eAAe,GAAG,KAAK,EAC9C,YAAY,SAAS,YAAY,GAAG,KAAK;IAEzC,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,YAAY,CAAC,CAAC,CAAA;IACzF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,4BAA4B,CAAC,EAAE,MAAM,CAAA;CACrC;AAED,MAAM,MAAM,qBAAqB,CAChC,cAAc,SAAS,eAAe,GAAG,KAAK,EAC9C,YAAY,SAAS,YAAY,GAAG,KAAK,IACtC;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,cAAc,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IAC9E,aAAa,CAAC,EAAE,aAAa,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;IAC3D,UAAU,CAAC,EAAE,UAAU,CAAC,YAAY,CAAC,CAAA;IACrC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,WAAW,CAAC,EAAE,aAAa,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,SAAS,CAAA;KAAE,CAAC,CAAA;CACrE,GAAG,CAAC,0BAA0B,GAAG,0BAA0B,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC,CAAA;AAE3F,eAAO,MAAM,gBAAgB,2KA2HxB,YAAY,CAAA"}
|