mirror of https://github.com/fantasticit/think.git
Merge pull request #177 from fantasticit/fix/0822
This commit is contained in:
commit
0f87f999fb
|
@ -13,6 +13,9 @@
|
||||||
"@douyinfe/semi-ui": "^2.3.1",
|
"@douyinfe/semi-ui": "^2.3.1",
|
||||||
"@excalidraw/excalidraw": "^0.12.0",
|
"@excalidraw/excalidraw": "^0.12.0",
|
||||||
"@hocuspocus/provider": "^1.0.0-alpha.29",
|
"@hocuspocus/provider": "^1.0.0-alpha.29",
|
||||||
|
"@react-pdf-viewer/core": "3.7.0",
|
||||||
|
"@react-pdf-viewer/default-layout": "3.7.0",
|
||||||
|
"@react-pdf-viewer/locales": "^1.0.0",
|
||||||
"@think/config": "workspace:^1.0.0",
|
"@think/config": "workspace:^1.0.0",
|
||||||
"@think/constants": "workspace:^1.0.0",
|
"@think/constants": "workspace:^1.0.0",
|
||||||
"@think/domains": "workspace:^1.0.0",
|
"@think/domains": "workspace:^1.0.0",
|
||||||
|
@ -69,6 +72,7 @@
|
||||||
"katex": "^0.15.2",
|
"katex": "^0.15.2",
|
||||||
"kity": "^2.0.4",
|
"kity": "^2.0.4",
|
||||||
"lib0": "^0.2.47",
|
"lib0": "^0.2.47",
|
||||||
|
"lodash.pick": "^4.4.0",
|
||||||
"lowlight": "^2.5.0",
|
"lowlight": "^2.5.0",
|
||||||
"markdown-it": "^12.3.2",
|
"markdown-it": "^12.3.2",
|
||||||
"markdown-it-anchor": "^8.4.1",
|
"markdown-it-anchor": "^8.4.1",
|
||||||
|
@ -78,6 +82,7 @@
|
||||||
"markdown-it-sup": "^1.0.0",
|
"markdown-it-sup": "^1.0.0",
|
||||||
"next": "12.1.0",
|
"next": "12.1.0",
|
||||||
"next-pwa": "^5.5.2",
|
"next-pwa": "^5.5.2",
|
||||||
|
"pdfjs-dist": "2.15.349",
|
||||||
"prosemirror-codemark": "^0.3.6",
|
"prosemirror-codemark": "^0.3.6",
|
||||||
"prosemirror-commands": "^1.3.0",
|
"prosemirror-commands": "^1.3.0",
|
||||||
"prosemirror-markdown": "^1.7.0",
|
"prosemirror-markdown": "^1.7.0",
|
||||||
|
@ -93,7 +98,6 @@
|
||||||
"react-full-screen": "^1.1.1",
|
"react-full-screen": "^1.1.1",
|
||||||
"react-helmet": "^6.1.0",
|
"react-helmet": "^6.1.0",
|
||||||
"react-lazy-load-image-component": "^1.5.4",
|
"react-lazy-load-image-component": "^1.5.4",
|
||||||
"react-pdf": "^5.7.2",
|
|
||||||
"react-query": "^3.39.0",
|
"react-query": "^3.39.0",
|
||||||
"react-split-pane": "^0.1.92",
|
"react-split-pane": "^0.1.92",
|
||||||
"react-visibility-sensor": "^5.1.1",
|
"react-visibility-sensor": "^5.1.1",
|
||||||
|
|
|
@ -1,13 +1,11 @@
|
||||||
import { Avatar, Button, Form, Toast, Typography } from '@douyinfe/semi-ui';
|
import { Avatar, Button, Form, Toast } from '@douyinfe/semi-ui';
|
||||||
import { FormApi } from '@douyinfe/semi-ui/lib/es/form';
|
import { FormApi } from '@douyinfe/semi-ui/lib/es/form';
|
||||||
import { ORGANIZATION_LOGOS } from '@think/constants';
|
import { ORGANIZATION_LOGOS } from '@think/constants';
|
||||||
import { IOrganization } from '@think/domains';
|
import { IOrganization } from '@think/domains';
|
||||||
import { DataRender } from 'components/data-render';
|
import { DataRender } from 'components/data-render';
|
||||||
import { ImageUploader } from 'components/image-uploader';
|
import { ImageUploader } from 'components/image-uploader';
|
||||||
import { useCreateOrganization, useOrganizationDetail } from 'data/organization';
|
import { useOrganizationDetail } from 'data/organization';
|
||||||
import { useToggle } from 'hooks/use-toggle';
|
import { useToggle } from 'hooks/use-toggle';
|
||||||
import { SingleColumnLayout } from 'layouts/single-column';
|
|
||||||
import Router from 'next/router';
|
|
||||||
import { useCallback, useEffect, useRef, useState } from 'react';
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
||||||
|
|
||||||
import styles from './index.module.scss';
|
import styles from './index.module.scss';
|
||||||
|
|
|
@ -3,7 +3,8 @@ import { FormApi } from '@douyinfe/semi-ui/lib/es/form';
|
||||||
import { WIKI_AVATARS } from '@think/constants';
|
import { WIKI_AVATARS } from '@think/constants';
|
||||||
import type { IWiki } from '@think/domains';
|
import type { IWiki } from '@think/domains';
|
||||||
import { ImageUploader } from 'components/image-uploader';
|
import { ImageUploader } from 'components/image-uploader';
|
||||||
import { useEffect, useRef, useState } from 'react';
|
import { pick } from 'helpers/pick';
|
||||||
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
||||||
|
|
||||||
import styles from './index.module.scss';
|
import styles from './index.module.scss';
|
||||||
|
|
||||||
|
@ -22,32 +23,36 @@ interface IProps {
|
||||||
update: (arg: IUpdateWIKI) => Promise<void>;
|
update: (arg: IUpdateWIKI) => Promise<void>;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const getFormValueFromWiki = (wiki) => {
|
||||||
|
return pick(wiki, ['name', 'description', 'avatar']);
|
||||||
|
};
|
||||||
|
|
||||||
export const Base: React.FC<IProps> = ({ wiki, update }) => {
|
export const Base: React.FC<IProps> = ({ wiki, update }) => {
|
||||||
const $form = useRef<FormApi>();
|
const $form = useRef<FormApi>();
|
||||||
const [currentCover, setCurrentCover] = useState('');
|
const [currentCover, setCurrentCover] = useState('');
|
||||||
|
|
||||||
const onSubmit = () => {
|
const onSubmit = useCallback(() => {
|
||||||
$form.current.validate().then((values) => {
|
$form.current.validate().then((values) => {
|
||||||
update(values).then(() => {
|
update(values).then(() => {
|
||||||
Toast.success('操作成功');
|
Toast.success('操作成功');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
};
|
}, [update]);
|
||||||
|
|
||||||
const setCover = (url) => {
|
const setCover = useCallback((url) => {
|
||||||
$form.current.setValue('avatar', url);
|
$form.current.setValue('avatar', url);
|
||||||
setCurrentCover(url);
|
setCurrentCover(url);
|
||||||
};
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!wiki) return;
|
if (!wiki) return;
|
||||||
$form.current.setValues(wiki);
|
$form.current.setValues(getFormValueFromWiki(wiki));
|
||||||
setCurrentCover(wiki.avatar);
|
setCurrentCover(wiki.avatar);
|
||||||
}, [wiki]);
|
}, [wiki]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Form
|
<Form
|
||||||
initValues={wiki}
|
initValues={getFormValueFromWiki(wiki)}
|
||||||
style={{ width: '100%' }}
|
style={{ width: '100%' }}
|
||||||
getFormApi={(formApi) => ($form.current = formApi)}
|
getFormApi={(formApi) => ($form.current = formApi)}
|
||||||
onSubmit={onSubmit}
|
onSubmit={onSubmit}
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
import pick from 'lodash.pick';
|
||||||
|
|
||||||
|
export { pick };
|
|
@ -2,7 +2,10 @@ import 'tiptap/fix-match-nodes';
|
||||||
import 'viewerjs/dist/viewer.css';
|
import 'viewerjs/dist/viewer.css';
|
||||||
import 'styles/globals.scss';
|
import 'styles/globals.scss';
|
||||||
import 'tiptap/core/styles/index.scss';
|
import 'tiptap/core/styles/index.scss';
|
||||||
|
import '@react-pdf-viewer/core/lib/styles/index.css';
|
||||||
|
import '@react-pdf-viewer/default-layout/lib/styles/index.css';
|
||||||
|
|
||||||
|
import { Worker } from '@react-pdf-viewer/core';
|
||||||
import { isMobile } from 'helpers/env';
|
import { isMobile } from 'helpers/env';
|
||||||
import { DocumentVersionControl } from 'hooks/use-document-version';
|
import { DocumentVersionControl } from 'hooks/use-document-version';
|
||||||
import { IsOnMobile } from 'hooks/use-on-mobile';
|
import { IsOnMobile } from 'hooks/use-on-mobile';
|
||||||
|
@ -84,17 +87,19 @@ class MyApp extends App<{ isMobile: boolean }> {
|
||||||
<link key={url} rel="dns-prefetch" href={url} />
|
<link key={url} rel="dns-prefetch" href={url} />
|
||||||
))}
|
))}
|
||||||
</Head>
|
</Head>
|
||||||
<QueryClientProvider client={queryClient}>
|
<Worker workerUrl="https://unpkg.com/pdfjs-dist@2.15.349/build/pdf.worker.js">
|
||||||
<Hydrate state={pageProps.dehydratedState}>
|
<QueryClientProvider client={queryClient}>
|
||||||
<Theme.Provider>
|
<Hydrate state={pageProps.dehydratedState}>
|
||||||
<IsOnMobile.Provider initialState={isMobile}>
|
<Theme.Provider>
|
||||||
<DocumentVersionControl.Provider initialState={false}>
|
<IsOnMobile.Provider initialState={isMobile}>
|
||||||
<Component {...pageProps} />
|
<DocumentVersionControl.Provider initialState={false}>
|
||||||
</DocumentVersionControl.Provider>
|
<Component {...pageProps} />
|
||||||
</IsOnMobile.Provider>
|
</DocumentVersionControl.Provider>
|
||||||
</Theme.Provider>
|
</IsOnMobile.Provider>
|
||||||
</Hydrate>
|
</Theme.Provider>
|
||||||
</QueryClientProvider>
|
</Hydrate>
|
||||||
|
</QueryClientProvider>
|
||||||
|
</Worker>
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,7 +47,7 @@ export const Status = Node.create({
|
||||||
parseHTML: getDatasetAttribute('borderColor'),
|
parseHTML: getDatasetAttribute('borderColor'),
|
||||||
},
|
},
|
||||||
text: {
|
text: {
|
||||||
default: '请设置状态内容',
|
default: '',
|
||||||
parseHTML: getDatasetAttribute('text'),
|
parseHTML: getDatasetAttribute('text'),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -52,7 +52,7 @@ export const ExcalidrawBubbleMenu = ({ editor }) => {
|
||||||
<BubbleMenu
|
<BubbleMenu
|
||||||
className={'bubble-menu'}
|
className={'bubble-menu'}
|
||||||
editor={editor}
|
editor={editor}
|
||||||
pluginKey="flow-bubble-menu"
|
pluginKey="excalidraw-bubble-menu"
|
||||||
shouldShow={shouldShow}
|
shouldShow={shouldShow}
|
||||||
tippyOptions={{ maxWidth: 'calc(100vw - 100px)' }}
|
tippyOptions={{ maxWidth: 'calc(100vw - 100px)' }}
|
||||||
>
|
>
|
||||||
|
|
|
@ -17,7 +17,10 @@ export const Insert: React.FC<{ editor: Editor }> = ({ editor }) => {
|
||||||
const [visible, toggleVisible] = useToggle(false);
|
const [visible, toggleVisible] = useToggle(false);
|
||||||
|
|
||||||
const renderedCommands = useMemo(
|
const renderedCommands = useMemo(
|
||||||
() => (recentUsed.length ? [{ title: '最近使用' }, ...recentUsed, ...COMMANDS] : COMMANDS),
|
() =>
|
||||||
|
(recentUsed.length ? [{ title: '最近使用' }, ...recentUsed, ...COMMANDS] : COMMANDS).filter((command) => {
|
||||||
|
return command.label === '表格' || command.label === '布局' ? 'custom' in command : true;
|
||||||
|
}),
|
||||||
[recentUsed]
|
[recentUsed]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ export const Redo: React.FC<{ editor: Editor }> = ({ editor }) => {
|
||||||
const redo = useCallback(() => editor.chain().focus().redo().run(), [editor]);
|
const redo = useCallback(() => editor.chain().focus().redo().run(), [editor]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Tooltip content="撤销">
|
<Tooltip content="重做">
|
||||||
<Button onClick={redo} icon={<IconRedo />} type="tertiary" theme="borderless" />
|
<Button onClick={redo} icon={<IconRedo />} type="tertiary" theme="borderless" />
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
);
|
);
|
||||||
|
|
|
@ -14,6 +14,7 @@ import { Image } from 'tiptap/core/extensions/image';
|
||||||
import { Katex } from 'tiptap/core/extensions/katex';
|
import { Katex } from 'tiptap/core/extensions/katex';
|
||||||
import { Link } from 'tiptap/core/extensions/link';
|
import { Link } from 'tiptap/core/extensions/link';
|
||||||
import { Mind } from 'tiptap/core/extensions/mind';
|
import { Mind } from 'tiptap/core/extensions/mind';
|
||||||
|
import { Status } from 'tiptap/core/extensions/status';
|
||||||
import { Table } from 'tiptap/core/extensions/table';
|
import { Table } from 'tiptap/core/extensions/table';
|
||||||
import { TableOfContents } from 'tiptap/core/extensions/table-of-contents';
|
import { TableOfContents } from 'tiptap/core/extensions/table-of-contents';
|
||||||
import { Title } from 'tiptap/core/extensions/title';
|
import { Title } from 'tiptap/core/extensions/title';
|
||||||
|
@ -45,19 +46,19 @@ const OTHER_BUBBLE_MENU_TYPES = [
|
||||||
DocumentChildren.name,
|
DocumentChildren.name,
|
||||||
Katex.name,
|
Katex.name,
|
||||||
HorizontalRule.name,
|
HorizontalRule.name,
|
||||||
|
Status.name,
|
||||||
];
|
];
|
||||||
|
|
||||||
export const Text = ({ editor }) => {
|
export const Text = ({ editor }) => {
|
||||||
const shouldShow = useCallback(
|
const shouldShow = useCallback(() => {
|
||||||
() => !editor.state.selection.empty && OTHER_BUBBLE_MENU_TYPES.every((type) => !editor.isActive(type)),
|
return !editor.state.selection.empty && OTHER_BUBBLE_MENU_TYPES.every((type) => !editor.isActive(type));
|
||||||
[editor]
|
}, [editor]);
|
||||||
);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<BubbleMenu
|
<BubbleMenu
|
||||||
className={'bubble-menu'}
|
className={'bubble-menu'}
|
||||||
editor={editor}
|
editor={editor}
|
||||||
pluginKey="code-block-bubble-menu"
|
pluginKey="text-bubble-menu"
|
||||||
shouldShow={shouldShow}
|
shouldShow={shouldShow}
|
||||||
tippyOptions={{ maxWidth: 'calc(100vw - 100px)' }}
|
tippyOptions={{ maxWidth: 'calc(100vw - 100px)' }}
|
||||||
>
|
>
|
||||||
|
|
|
@ -4,17 +4,19 @@ import { Tooltip } from 'components/tooltip';
|
||||||
import React, { useCallback } from 'react';
|
import React, { useCallback } from 'react';
|
||||||
import { Editor } from 'tiptap/core';
|
import { Editor } from 'tiptap/core';
|
||||||
import { Title } from 'tiptap/core/extensions/title';
|
import { Title } from 'tiptap/core/extensions/title';
|
||||||
|
import { Underline as UnderlineExtension } from 'tiptap/core/extensions/underline';
|
||||||
import { useActive } from 'tiptap/core/hooks/use-active';
|
import { useActive } from 'tiptap/core/hooks/use-active';
|
||||||
|
|
||||||
export const Underline: React.FC<{ editor: Editor }> = ({ editor }) => {
|
export const Underline: React.FC<{ editor: Editor }> = ({ editor }) => {
|
||||||
const isTitleActive = useActive(editor, Title.name);
|
const isTitleActive = useActive(editor, Title.name);
|
||||||
|
const isUnderlineActive = useActive(editor, UnderlineExtension.name);
|
||||||
|
|
||||||
const toggleUnderline = useCallback(() => editor.chain().focus().toggleUnderline().run(), [editor]);
|
const toggleUnderline = useCallback(() => editor.chain().focus().toggleUnderline().run(), [editor]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Tooltip content="下划线">
|
<Tooltip content="下划线">
|
||||||
<Button
|
<Button
|
||||||
theme={editor.isActive('underline') ? 'light' : 'borderless'}
|
theme={isUnderlineActive ? 'light' : 'borderless'}
|
||||||
type="tertiary"
|
type="tertiary"
|
||||||
icon={<IconUnderline />}
|
icon={<IconUnderline />}
|
||||||
onClick={toggleUnderline}
|
onClick={toggleUnderline}
|
||||||
|
|
|
@ -73,12 +73,10 @@
|
||||||
border: 1px solid rgb(232 235 237);
|
border: 1px solid rgb(232 235 237);
|
||||||
border-color: var(--semi-color-fill-2);
|
border-color: var(--semi-color-fill-2);
|
||||||
|
|
||||||
> * {
|
:not(a) {
|
||||||
margin-bottom: 0;
|
&:first-of-type {
|
||||||
}
|
margin-top: 0;
|
||||||
|
}
|
||||||
> p {
|
|
||||||
margin-top: 0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,37 +1,16 @@
|
||||||
.playerWrap {
|
.playerWrap {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
height: 65vh;
|
||||||
|
|
||||||
:global {
|
:global {
|
||||||
.react-pdf__Document {
|
.rpv-default-layout__sidebar-header {
|
||||||
display: flex;
|
&:nth-child(n + 2) {
|
||||||
flex-direction: column;
|
display: none;
|
||||||
align-items: center;
|
}
|
||||||
border-radius: 8px;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.react-pdf__Page {
|
.rpv-open__input-wrapper {
|
||||||
display: flex;
|
display: none;
|
||||||
justify-content: center;
|
|
||||||
width: 100%;
|
|
||||||
height: 420px;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.react-pdf__Page canvas {
|
|
||||||
height: auto !important;
|
|
||||||
max-width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.react-pdf__message {
|
|
||||||
padding: 20px;
|
|
||||||
color: white;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.paginationWrap {
|
|
||||||
display: flex;
|
|
||||||
margin-top: 1em;
|
|
||||||
text-align: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,31 +1,20 @@
|
||||||
import { Pagination } from '@douyinfe/semi-ui';
|
import { Viewer } from '@react-pdf-viewer/core';
|
||||||
import React, { useState } from 'react';
|
import { defaultLayoutPlugin } from '@react-pdf-viewer/default-layout';
|
||||||
import { Document, Page, pdfjs } from 'react-pdf';
|
import zhCN from '@react-pdf-viewer/locales/lib/zh_CN.json';
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
import styles from './index.module.scss';
|
import styles from './index.module.scss';
|
||||||
|
|
||||||
pdfjs.GlobalWorkerOptions.workerSrc = `//unpkg.com/pdfjs-dist@${pdfjs.version}/legacy/build/pdf.worker.min.js`;
|
|
||||||
|
|
||||||
interface IProps {
|
interface IProps {
|
||||||
url: string;
|
url: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
export const PDFPlayer: React.FC<IProps> = ({ url }) => {
|
export const PDFPlayer: React.FC<IProps> = ({ url }) => {
|
||||||
const [total, setTotal] = useState(1);
|
const defaultLayoutPluginInstance = defaultLayoutPlugin();
|
||||||
const [pageNumber, setPageNumber] = useState(1);
|
|
||||||
|
|
||||||
function onDocumentLoadSuccess({ numPages }) {
|
|
||||||
setTotal(numPages);
|
|
||||||
}
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={styles.playerWrap}>
|
<div className={styles.playerWrap}>
|
||||||
<Document file={url} onLoadSuccess={onDocumentLoadSuccess}>
|
<Viewer fileUrl={url} localization={zhCN} plugins={[defaultLayoutPluginInstance]} />
|
||||||
<Page pageNumber={pageNumber} />
|
|
||||||
</Document>
|
|
||||||
<div className={styles.paginationWrap}>
|
|
||||||
<Pagination total={total} pageSize={1} onChange={(page) => setPageNumber(page)} size="small"></Pagination>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
|
@ -58,13 +58,15 @@ export const StatusWrapper = ({ editor, node, updateAttributes }) => {
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (defaultShowPicker && user && user.id === createUser) {
|
if (defaultShowPicker && user && user.id === createUser) {
|
||||||
toggleVisible(true);
|
toggleVisible(true);
|
||||||
setTimeout(() => ref.current?.focus(), 100);
|
setTimeout(() => ref.current?.focus(), 200);
|
||||||
}
|
}
|
||||||
}, [defaultShowPicker, toggleVisible, createUser, user]);
|
}, [defaultShowPicker, toggleVisible, createUser, user]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (visible) {
|
if (visible) {
|
||||||
ref.current?.focus();
|
setTimeout(() => {
|
||||||
|
ref.current?.focus();
|
||||||
|
}, 200);
|
||||||
} else {
|
} else {
|
||||||
updateAttributes({ text: currentText });
|
updateAttributes({ text: currentText });
|
||||||
}
|
}
|
||||||
|
|
|
@ -165,7 +165,11 @@ export const EditorInstance = forwardRef((props: IProps, ref) => {
|
||||||
{(!online || status === 'disconnected') && (
|
{(!online || status === 'disconnected') && (
|
||||||
<Banner
|
<Banner
|
||||||
type="warning"
|
type="warning"
|
||||||
description="我们已与您断开连接,您可以继续编辑文档。一旦重新连接,我们会自动重新提交数据。"
|
description={
|
||||||
|
editable
|
||||||
|
? '我们已与您断开连接,您可以继续编辑文档。一旦重新连接,我们会自动重新提交数据。'
|
||||||
|
: '我们已与您断开连接,您可以继续阅读文档。一旦重新连接,我们会自动重新刷新数据。'
|
||||||
|
}
|
||||||
/>
|
/>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ import { Subscript } from 'tiptap/core/menus/subscript';
|
||||||
import { Superscript } from 'tiptap/core/menus/superscript';
|
import { Superscript } from 'tiptap/core/menus/superscript';
|
||||||
import { Table } from 'tiptap/core/menus/table';
|
import { Table } from 'tiptap/core/menus/table';
|
||||||
import { TaskList } from 'tiptap/core/menus/task-list';
|
import { TaskList } from 'tiptap/core/menus/task-list';
|
||||||
|
import { Text } from 'tiptap/core/menus/text';
|
||||||
import { TextColor } from 'tiptap/core/menus/text-color';
|
import { TextColor } from 'tiptap/core/menus/text-color';
|
||||||
import { Underline } from 'tiptap/core/menus/underline';
|
import { Underline } from 'tiptap/core/menus/underline';
|
||||||
import { Undo } from 'tiptap/core/menus/undo';
|
import { Undo } from 'tiptap/core/menus/undo';
|
||||||
|
@ -111,6 +112,8 @@ const _MenuBar: React.FC<{ editor: Editor }> = ({ editor }) => {
|
||||||
<Mind editor={editor} />
|
<Mind editor={editor} />
|
||||||
<Excalidraw editor={editor} />
|
<Excalidraw editor={editor} />
|
||||||
<Columns editor={editor} />
|
<Columns editor={editor} />
|
||||||
|
|
||||||
|
<Text editor={editor} />
|
||||||
</Space>
|
</Space>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
342
pnpm-lock.yaml
342
pnpm-lock.yaml
|
@ -46,6 +46,9 @@ importers:
|
||||||
'@douyinfe/semi-ui': ^2.3.1
|
'@douyinfe/semi-ui': ^2.3.1
|
||||||
'@excalidraw/excalidraw': ^0.12.0
|
'@excalidraw/excalidraw': ^0.12.0
|
||||||
'@hocuspocus/provider': ^1.0.0-alpha.29
|
'@hocuspocus/provider': ^1.0.0-alpha.29
|
||||||
|
'@react-pdf-viewer/core': 3.7.0
|
||||||
|
'@react-pdf-viewer/default-layout': 3.7.0
|
||||||
|
'@react-pdf-viewer/locales': ^1.0.0
|
||||||
'@think/config': workspace:^1.0.0
|
'@think/config': workspace:^1.0.0
|
||||||
'@think/constants': workspace:^1.0.0
|
'@think/constants': workspace:^1.0.0
|
||||||
'@think/domains': workspace:^1.0.0
|
'@think/domains': workspace:^1.0.0
|
||||||
|
@ -115,6 +118,7 @@ importers:
|
||||||
katex: ^0.15.2
|
katex: ^0.15.2
|
||||||
kity: ^2.0.4
|
kity: ^2.0.4
|
||||||
lib0: ^0.2.47
|
lib0: ^0.2.47
|
||||||
|
lodash.pick: ^4.4.0
|
||||||
lowlight: ^2.5.0
|
lowlight: ^2.5.0
|
||||||
markdown-it: ^12.3.2
|
markdown-it: ^12.3.2
|
||||||
markdown-it-anchor: ^8.4.1
|
markdown-it-anchor: ^8.4.1
|
||||||
|
@ -124,6 +128,7 @@ importers:
|
||||||
markdown-it-sup: ^1.0.0
|
markdown-it-sup: ^1.0.0
|
||||||
next: 12.1.0
|
next: 12.1.0
|
||||||
next-pwa: ^5.5.2
|
next-pwa: ^5.5.2
|
||||||
|
pdfjs-dist: 2.15.349
|
||||||
prosemirror-codemark: ^0.3.6
|
prosemirror-codemark: ^0.3.6
|
||||||
prosemirror-commands: ^1.3.0
|
prosemirror-commands: ^1.3.0
|
||||||
prosemirror-markdown: ^1.7.0
|
prosemirror-markdown: ^1.7.0
|
||||||
|
@ -139,7 +144,6 @@ importers:
|
||||||
react-full-screen: ^1.1.1
|
react-full-screen: ^1.1.1
|
||||||
react-helmet: ^6.1.0
|
react-helmet: ^6.1.0
|
||||||
react-lazy-load-image-component: ^1.5.4
|
react-lazy-load-image-component: ^1.5.4
|
||||||
react-pdf: ^5.7.2
|
|
||||||
react-query: ^3.39.0
|
react-query: ^3.39.0
|
||||||
react-split-pane: ^0.1.92
|
react-split-pane: ^0.1.92
|
||||||
react-visibility-sensor: ^5.1.1
|
react-visibility-sensor: ^5.1.1
|
||||||
|
@ -160,6 +164,9 @@ importers:
|
||||||
'@douyinfe/semi-ui': 2.3.1_wnecvl2xit6hykxlpfa3byfhr4
|
'@douyinfe/semi-ui': 2.3.1_wnecvl2xit6hykxlpfa3byfhr4
|
||||||
'@excalidraw/excalidraw': 0.12.0_sfoxds7t5ydpegc3knd667wn6m
|
'@excalidraw/excalidraw': 0.12.0_sfoxds7t5ydpegc3knd667wn6m
|
||||||
'@hocuspocus/provider': 1.0.0-alpha.29
|
'@hocuspocus/provider': 1.0.0-alpha.29
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/default-layout': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/locales': 1.0.0
|
||||||
'@think/config': link:../config
|
'@think/config': link:../config
|
||||||
'@think/constants': link:../constants
|
'@think/constants': link:../constants
|
||||||
'@think/domains': link:../domains
|
'@think/domains': link:../domains
|
||||||
|
@ -216,6 +223,7 @@ importers:
|
||||||
katex: 0.15.2
|
katex: 0.15.2
|
||||||
kity: 2.0.4
|
kity: 2.0.4
|
||||||
lib0: 0.2.47
|
lib0: 0.2.47
|
||||||
|
lodash.pick: 4.4.0
|
||||||
lowlight: 2.5.0
|
lowlight: 2.5.0
|
||||||
markdown-it: 12.3.2
|
markdown-it: 12.3.2
|
||||||
markdown-it-anchor: 8.4.1_markdown-it@12.3.2
|
markdown-it-anchor: 8.4.1_markdown-it@12.3.2
|
||||||
|
@ -225,6 +233,7 @@ importers:
|
||||||
markdown-it-sup: 1.0.0
|
markdown-it-sup: 1.0.0
|
||||||
next: 12.1.0_sfoxds7t5ydpegc3knd667wn6m
|
next: 12.1.0_sfoxds7t5ydpegc3knd667wn6m
|
||||||
next-pwa: 5.5.2_next@12.1.0
|
next-pwa: 5.5.2_next@12.1.0
|
||||||
|
pdfjs-dist: 2.15.349
|
||||||
prosemirror-codemark: 0.3.6_jtznnwvb5x34yeznhz5xjpvpju
|
prosemirror-codemark: 0.3.6_jtznnwvb5x34yeznhz5xjpvpju
|
||||||
prosemirror-commands: 1.3.0
|
prosemirror-commands: 1.3.0
|
||||||
prosemirror-markdown: 1.7.0
|
prosemirror-markdown: 1.7.0
|
||||||
|
@ -240,7 +249,6 @@ importers:
|
||||||
react-full-screen: 1.1.1_react@17.0.2
|
react-full-screen: 1.1.1_react@17.0.2
|
||||||
react-helmet: 6.1.0_react@17.0.2
|
react-helmet: 6.1.0_react@17.0.2
|
||||||
react-lazy-load-image-component: 1.5.4_sfoxds7t5ydpegc3knd667wn6m
|
react-lazy-load-image-component: 1.5.4_sfoxds7t5ydpegc3knd667wn6m
|
||||||
react-pdf: 5.7.2_sfoxds7t5ydpegc3knd667wn6m
|
|
||||||
react-query: 3.39.0_sfoxds7t5ydpegc3knd667wn6m
|
react-query: 3.39.0_sfoxds7t5ydpegc3knd667wn6m
|
||||||
react-split-pane: 0.1.92_sfoxds7t5ydpegc3knd667wn6m
|
react-split-pane: 0.1.92_sfoxds7t5ydpegc3knd667wn6m
|
||||||
react-visibility-sensor: 5.1.1_sfoxds7t5ydpegc3knd667wn6m
|
react-visibility-sensor: 5.1.1_sfoxds7t5ydpegc3knd667wn6m
|
||||||
|
@ -2691,6 +2699,259 @@ packages:
|
||||||
resolution: {integrity: sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==}
|
resolution: {integrity: sha512-92FRmppjjqz29VMJ2dn+xdyXZBrMlE42AV6Kq6BwjWV7CNUW1hs2FtxSNLQE+gJhaZ6AAmYuO9y8dshhcBl7vA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/attachment/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-qNzhOnyMfoRA+8uJOgxSVvix+yQKzDCEur7jLVQbqnvyu94k6hZI9h+JVC5TAb5SQ7q/AdVT7Upc6ZH9ayhUQQ==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/bookmark/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-pgFzlh8EzMICb7McIi0GiWwuXsc/ooSc4KTbb0NZaMHpT0LS36jYKgKBNIv9xgzhRu8Qbs0oJmN9LRbzzAoAJw==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/core/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-mMuG+bBNG+XdhK5QfdiC7h0wkXlleKCkGUmz53QIw/56ppmwTTqvK5u5JeAo/Tr7vS7wHpAgp26qCxL6NUHa4Q==}
|
||||||
|
peerDependencies:
|
||||||
|
pdfjs-dist: ^2.6.347
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
pdfjs-dist: 2.15.349
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/default-layout/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-JNXF5idSf5owcWgRXTLPBGHa1jHjUfDZjvUIK8HQACBWYVf8HqX1hoA8OwfcmSVdvyikfCohTg2nXwBVY7mDEw==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/attachment': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/bookmark': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/thumbnail': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/toolbar': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/full-screen/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-hBtdAIAkm3I8rhjWAivWAonect1tIdiBOY4ufXaTXapnLiTR/0qh+e5xNF7d9/viLfMeTl8aEpLkzhU5B4GWrw==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/get-file/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-mB94ryiiSud2moG0IFItzblgsB3H4VyfovHSVaqgSBabWjCsJSnk53Y81wuxtGY2goTfNcei93rso02ymj9R/w==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/locales/1.0.0:
|
||||||
|
resolution: {integrity: sha512-Q4ZGs4gQKFUk85hiDdPIEb4jHPTUdkPj9KZCZWpQZdKC37mkh/4EBZqMEUaYtm9lGuIEK3dE7oLAz/vxEMgvzg==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/open/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-hB4Y85eWTAR6I3jjy1klC3u1kq95shzcMKt33N2R+yrzxpcp56GIJbavVY5C4hEFMwpmzKaUJ0CwV9nb75b1gw==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/page-navigation/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-dtq6qCyfaCBXycBf+71PmK68OuFuTa4irbTiWD5+NY2LbWZW4+J5Talo+RuMr8fFPGPifi/Le0rdi7WPZLWNzA==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/print/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-C+cKpjNtewahVLX/boIUsGD09/MZ27d6j66DRlef/C51zViFNwyxVaKfyspu79zZVWCeaShp5o4w/FCvb1rzvQ==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/properties/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-ZxvZ0DZy4mvxo36vDhNVBlQ1NaVuNXKNa1QsdwMg9kNXM1mKNmXlEzyQidx1R2CDex9N8nqLrNgHisXdtJySUA==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/rotate/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-AMCy4hJLuHTbtEhgIJKpJn/qF8Nq+0xKPB0JpAQPNMzi3rG4GMBdPM8EtfyiyN/7K/cfw+WPVCiGKYSMKwWk0A==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/scroll-mode/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-GkOxElu9aN2o7XX9YhviFTGnhuHB391uqf4zYWT845Z4iBj+ZlchmorFMg1HKR0ym59kzKzkhj9T+R9BAGQT0A==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/search/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-5Sbeok3DL8BV8v/pl80kQQi6PqUJMobrAp6gcDKkJM1Y5HRH0B7/tzhY9ztAv4O+2RcqA4ODvKQZNeLnooxrYA==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/selection-mode/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-lM8HjFHecU53yqVtFX7ZORYzoR9aGwxZj1lQDaX6CwpYlM4IdOg11nfkgg0Gxyw8mrF3uCko7USEfSy38IbBog==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/theme/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-/ftM+8PeD1yyT8IvPIZDjCqrpHwO1LS8OvQzRpHK2gTUFqPMFCfVwb6ukaav/aTMav/1Un5TVK/vp50RsAVgYA==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/thumbnail/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-+NEoBRQI7h64Gm5vyRnJfYYCWqDaPcRd6ihQowauLjdJnbAWpKy1PYs/YGxzICCMo3p8qWIZJbyfS2XaA+q+SQ==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/toolbar/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-Gic7tSB68/ikTCKU2Rd7HuM65N6J9k708VGgQ1mj5dCpJvi+1fCTfuP7huF/T5cjfzkCTHCWDLCU5GkSKE2OSQ==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/full-screen': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/get-file': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/open': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/page-navigation': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/print': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/properties': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/rotate': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/scroll-mode': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/search': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/selection-mode': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/theme': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
'@react-pdf-viewer/zoom': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
/@react-pdf-viewer/zoom/3.7.0_2vj3zozgbzfehrv2inzxxqn2wq:
|
||||||
|
resolution: {integrity: sha512-EP95GvUDliJxvE5HcNMZAaqeTqs51SBl8ZDmyOEjkP3P67xMenKOEPXFyVhrqXnN0GMNv0TO2r8AVIOznwGgEQ==}
|
||||||
|
peerDependencies:
|
||||||
|
react: '>=16.8.0'
|
||||||
|
react-dom: '>=16.8.0'
|
||||||
|
dependencies:
|
||||||
|
'@react-pdf-viewer/core': 3.7.0_2vj3zozgbzfehrv2inzxxqn2wq
|
||||||
|
react: 17.0.2
|
||||||
|
react-dom: 17.0.2_react@17.0.2
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- pdfjs-dist
|
||||||
|
dev: false
|
||||||
|
|
||||||
/@rollup/plugin-babel/5.3.1_aqce4bebl2i3kiqaqbpijfme2q:
|
/@rollup/plugin-babel/5.3.1_aqce4bebl2i3kiqaqbpijfme2q:
|
||||||
resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==}
|
resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==}
|
||||||
engines: {node: '>= 10.0.0'}
|
engines: {node: '>= 10.0.0'}
|
||||||
|
@ -5418,6 +5679,10 @@ packages:
|
||||||
domelementtype: 1.3.1
|
domelementtype: 1.3.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/dommatrix/1.0.3:
|
||||||
|
resolution: {integrity: sha512-l32Xp/TLgWb8ReqbVJAFIvXmY7go4nTxxlWiAFyhoQw9RKEOHBZNnyGvJWqDVSPmq3Y9HlM4npqF/T6VMOXhww==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/dompurify/2.3.5:
|
/dompurify/2.3.5:
|
||||||
resolution: {integrity: sha512-kD+f8qEaa42+mjdOpKeztu9Mfx5bv9gVLO6K9jRx4uGvh6Wv06Srn4jr1wPNY2OOUGGSKHNFN+A8MA3v0E0QAQ==}
|
resolution: {integrity: sha512-kD+f8qEaa42+mjdOpKeztu9Mfx5bv9gVLO6K9jRx4uGvh6Wv06Srn4jr1wPNY2OOUGGSKHNFN+A8MA3v0E0QAQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
@ -6185,16 +6450,6 @@ packages:
|
||||||
flat-cache: 3.0.4
|
flat-cache: 3.0.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/file-loader/6.2.0:
|
|
||||||
resolution: {integrity: sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw==}
|
|
||||||
engines: {node: '>= 10.13.0'}
|
|
||||||
peerDependencies:
|
|
||||||
webpack: ^4.0.0 || ^5.0.0
|
|
||||||
dependencies:
|
|
||||||
loader-utils: 2.0.0
|
|
||||||
schema-utils: 3.1.1
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/file-uri-to-path/2.0.0:
|
/file-uri-to-path/2.0.0:
|
||||||
resolution: {integrity: sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==}
|
resolution: {integrity: sha512-hjPFI8oE/2iQPVe4gbrJ73Pp+Xfub2+WI2LlXDbsaJBwT5wuMh35WNWVYYTpnz895shtwfyutMFLFywpQAFdLg==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
|
@ -8245,6 +8500,10 @@ packages:
|
||||||
resolution: {integrity: sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=}
|
resolution: {integrity: sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
/lodash.pick/4.4.0:
|
||||||
|
resolution: {integrity: sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/lodash.sortby/4.7.0:
|
/lodash.sortby/4.7.0:
|
||||||
resolution: {integrity: sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=}
|
resolution: {integrity: sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=}
|
||||||
dev: false
|
dev: false
|
||||||
|
@ -8336,10 +8595,6 @@ packages:
|
||||||
dependencies:
|
dependencies:
|
||||||
sourcemap-codec: 1.4.8
|
sourcemap-codec: 1.4.8
|
||||||
|
|
||||||
/make-cancellable-promise/1.1.0:
|
|
||||||
resolution: {integrity: sha512-X5Opjm2xcZsOLuJ+Bnhb4t5yfu4ehlA3OKEYLtqUchgVzL/QaqW373ZUVxVHKwvJ38cmYuR4rAHD2yUvAIkTPA==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/make-dir/3.1.0:
|
/make-dir/3.1.0:
|
||||||
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
|
resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
@ -8350,10 +8605,6 @@ packages:
|
||||||
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
|
resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/make-event-props/1.3.0:
|
|
||||||
resolution: {integrity: sha512-oWiDZMcVB1/A487251hEWza1xzgCzl6MXxe9aF24l5Bt9N9UEbqTqKumEfuuLhmlhRZYnc+suVvW4vUs8bwO7Q==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/makeerror/1.0.12:
|
/makeerror/1.0.12:
|
||||||
resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
|
resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -8454,17 +8705,9 @@ packages:
|
||||||
yargs-parser: 20.2.9
|
yargs-parser: 20.2.9
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/merge-class-names/1.4.2:
|
|
||||||
resolution: {integrity: sha512-bOl98VzwCGi25Gcn3xKxnR5p/WrhWFQB59MS/aGENcmUc6iSm96yrFDF0XSNurX9qN4LbJm0R9kfvsQ17i8zCw==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/merge-descriptors/1.0.1:
|
/merge-descriptors/1.0.1:
|
||||||
resolution: {integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=}
|
resolution: {integrity: sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=}
|
||||||
|
|
||||||
/merge-refs/1.0.0:
|
|
||||||
resolution: {integrity: sha512-WZ4S5wqD9FCR9hxkLgvcHJCBxzXzy3VVE6p8W2OzxRzB+hLRlcadGE2bW9xp2KSzk10rvp4y+pwwKO6JQVguMg==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/merge-stream/2.0.0:
|
/merge-stream/2.0.0:
|
||||||
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
|
resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
|
||||||
|
|
||||||
|
@ -9189,13 +9432,16 @@ packages:
|
||||||
resolution: {integrity: sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=}
|
resolution: {integrity: sha1-HUCLP9t2kjuVQ9lvtMnf1TXZy10=}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/pdfjs-dist/2.12.313:
|
/pdfjs-dist/2.15.349:
|
||||||
resolution: {integrity: sha512-1x6iXO4Qnv6Eb+YFdN5JdUzt4pAkxSp3aLAYPX93eQCyg/m7QFzXVWJHJVtoW48CI8HCXju4dSkhQZwoheL5mA==}
|
resolution: {integrity: sha512-EeCfqj6xi4/aegKNS7Bs+TCg3Y5gmKmG0s/5xXI0PqWW66x+Nm7iFXBpVcup7HnR8sNDm+5NESfFr8T6DeWp9Q==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
worker-loader: ^3.0.8
|
worker-loader: ^3.0.8
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
worker-loader:
|
worker-loader:
|
||||||
optional: true
|
optional: true
|
||||||
|
dependencies:
|
||||||
|
dommatrix: 1.0.3
|
||||||
|
web-streams-polyfill: 3.2.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/performance-now/2.1.0:
|
/performance-now/2.1.0:
|
||||||
|
@ -9804,29 +10050,6 @@ packages:
|
||||||
resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==}
|
resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/react-pdf/5.7.2_sfoxds7t5ydpegc3knd667wn6m:
|
|
||||||
resolution: {integrity: sha512-hdDwvf007V0i2rPCqQVS1fa70CXut17SN3laJYlRHzuqcu8sLLjEoeXihty6c0Ev5g1mw31b8OT8EwRw1s8C4g==}
|
|
||||||
peerDependencies:
|
|
||||||
react: ^16.3.0 || ^17.0.0 || ^18.0.0
|
|
||||||
react-dom: ^16.3.0 || ^17.0.0 || ^18.0.0
|
|
||||||
dependencies:
|
|
||||||
'@babel/runtime': 7.16.7
|
|
||||||
file-loader: 6.2.0
|
|
||||||
make-cancellable-promise: 1.1.0
|
|
||||||
make-event-props: 1.3.0
|
|
||||||
merge-class-names: 1.4.2
|
|
||||||
merge-refs: 1.0.0
|
|
||||||
pdfjs-dist: 2.12.313
|
|
||||||
prop-types: 15.8.1
|
|
||||||
react: 17.0.2
|
|
||||||
react-dom: 17.0.2_react@17.0.2
|
|
||||||
tiny-invariant: 1.2.0
|
|
||||||
tiny-warning: 1.0.3
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- webpack
|
|
||||||
- worker-loader
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/react-query/3.39.0_sfoxds7t5ydpegc3knd667wn6m:
|
/react-query/3.39.0_sfoxds7t5ydpegc3knd667wn6m:
|
||||||
resolution: {integrity: sha512-Od0IkSuS79WJOhzWBx/ys0x13+7wFqgnn64vBqqAAnZ9whocVhl/y1padD5uuZ6EIkXbFbInax0qvY7zGM0thA==}
|
resolution: {integrity: sha512-Od0IkSuS79WJOhzWBx/ys0x13+7wFqgnn64vBqqAAnZ9whocVhl/y1padD5uuZ6EIkXbFbInax0qvY7zGM0thA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
|
@ -11227,14 +11450,6 @@ packages:
|
||||||
resolution: {integrity: sha512-a7wPxPdVlQL7lqvitHGGRsofhdwtkoSXPGATFuSOA2i1ZNQEPLrGnj68vOp2sOJTCFAQVXPeNMX/GctBaO9L2w==}
|
resolution: {integrity: sha512-a7wPxPdVlQL7lqvitHGGRsofhdwtkoSXPGATFuSOA2i1ZNQEPLrGnj68vOp2sOJTCFAQVXPeNMX/GctBaO9L2w==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/tiny-invariant/1.2.0:
|
|
||||||
resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/tiny-warning/1.0.3:
|
|
||||||
resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==}
|
|
||||||
dev: false
|
|
||||||
|
|
||||||
/tippy.js/6.3.7:
|
/tippy.js/6.3.7:
|
||||||
resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==}
|
resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -11846,6 +12061,11 @@ packages:
|
||||||
defaults: 1.0.3
|
defaults: 1.0.3
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
/web-streams-polyfill/3.2.1:
|
||||||
|
resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==}
|
||||||
|
engines: {node: '>= 8'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
/webidl-conversions/3.0.1:
|
/webidl-conversions/3.0.1:
|
||||||
resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=}
|
resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue