@alxgrn/prose-editor 0.0.4
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/LICENSE +201 -0
- package/README.md +2 -0
- package/dist/index.css +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/lib/config.d.ts +9 -0
- package/dist/lib/index.d.ts +7 -0
- package/dist/lib/prose/ImageUpload.d.ts +6 -0
- package/dist/lib/prose/ProseEditor.d.ts +10 -0
- package/dist/lib/prose/ProseNotes.d.ts +12 -0
- package/dist/lib/prose/ProseViewer.d.ts +6 -0
- package/dist/lib/prose/ProseViewerDom.d.ts +6 -0
- package/dist/lib/prose/menubar/MenuBar.d.ts +10 -0
- package/dist/lib/prose/menubar/MenuBlock.d.ts +7 -0
- package/dist/lib/prose/menubar/MenuItem.d.ts +15 -0
- package/dist/lib/prose/menubar/SimpleMenuBar.d.ts +9 -0
- package/dist/lib/prose/menubar/elements/AlignMenu.d.ts +7 -0
- package/dist/lib/prose/menubar/elements/BlockCommands.d.ts +3 -0
- package/dist/lib/prose/menubar/elements/HeaderMenu.d.ts +7 -0
- package/dist/lib/prose/menubar/elements/InlineMarks.d.ts +7 -0
- package/dist/lib/prose/menubar/elements/InsertBlocks.d.ts +14 -0
- package/dist/lib/prose/menubar/elements/InsertImage.d.ts +11 -0
- package/dist/lib/prose/menubar/elements/InsertLink.d.ts +9 -0
- package/dist/lib/prose/menubar/elements/InsertVideo.d.ts +9 -0
- package/dist/lib/prose/menubar/elements/MakeBlockMenu.d.ts +7 -0
- package/dist/lib/prose/menubar/elements/SaveButton.d.ts +8 -0
- package/dist/lib/prose/menubar/elements/UndoRedo.d.ts +3 -0
- package/dist/lib/prose/menubar/elements/WrapBlockMenu.d.ts +7 -0
- package/dist/lib/prose/plugins/columnresizing.d.ts +49 -0
- package/dist/lib/prose/plugins/select.d.ts +2 -0
- package/dist/lib/prose/plugins.d.ts +7 -0
- package/dist/lib/prose/render/Blockquote.d.ts +7 -0
- package/dist/lib/prose/render/CodeBlock.d.ts +7 -0
- package/dist/lib/prose/render/Doc.d.ts +8 -0
- package/dist/lib/prose/render/HardBreak.d.ts +3 -0
- package/dist/lib/prose/render/Heading.d.ts +7 -0
- package/dist/lib/prose/render/HorizontalRule.d.ts +3 -0
- package/dist/lib/prose/render/Image.d.ts +7 -0
- package/dist/lib/prose/render/List.d.ts +7 -0
- package/dist/lib/prose/render/ListItem.d.ts +7 -0
- package/dist/lib/prose/render/Paragraph.d.ts +7 -0
- package/dist/lib/prose/render/ProseRender.d.ts +20 -0
- package/dist/lib/prose/render/Table.d.ts +7 -0
- package/dist/lib/prose/render/TableCell.d.ts +7 -0
- package/dist/lib/prose/render/TableRow.d.ts +7 -0
- package/dist/lib/prose/render/Text.d.ts +7 -0
- package/dist/lib/prose/render/Video.d.ts +7 -0
- package/dist/lib/prose/schema.d.ts +12 -0
- package/dist/lib/prose/utils.d.ts +19 -0
- package/dist/lib/prose/views/ImageView.d.ts +3 -0
- package/dist/lib/prose/views/TableCellMenu.d.ts +12 -0
- package/dist/lib/prose/views/TableCellResizer.d.ts +8 -0
- package/dist/lib/prose/views/TableCellView.d.ts +3 -0
- package/dist/lib/prose/views/TableView.d.ts +3 -0
- package/dist/lib/prose/views/VideoView.d.ts +3 -0
- package/dist/lib/types/index.d.ts +32 -0
- package/dist/lib/utils/link.d.ts +41 -0
- package/dist/prose-editor.es.js +18303 -0
- package/dist/prose-editor.es.js.map +1 -0
- package/dist/prose-editor.umd.js +66 -0
- package/dist/prose-editor.umd.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Schema, NodeSpec, MarkSpec, Node } from 'prosemirror-model';
|
|
2
|
+
export declare const simpleSchema: Schema<keyof import('orderedmap').default<NodeSpec>, keyof import('orderedmap').default<MarkSpec>>;
|
|
3
|
+
export declare const schema: Schema<keyof import('orderedmap').default<NodeSpec>, keyof import('orderedmap').default<MarkSpec>>;
|
|
4
|
+
/**
|
|
5
|
+
* Заменяет в документе все узлы, которых нет в простой схеме, на параграфы.
|
|
6
|
+
* По сути мы имитируем cut-and-paste HTML-документа в редактор, у которого
|
|
7
|
+
* в качестве схемы используется simpleSchema. Сам документ формируем из сериализованного
|
|
8
|
+
* контента сохраненного в БД.
|
|
9
|
+
* @param content сериализованный в строку контент документа, null или undefined.
|
|
10
|
+
* @returns документ, который содержит только узлы из простой схемы или undefined.
|
|
11
|
+
*/
|
|
12
|
+
export declare const toSimpleSchema: (content?: string | null) => Node | undefined;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { Node } from 'prosemirror-model';
|
|
2
|
+
/**
|
|
3
|
+
* Отдает список всех идентификаторов изображений из документа
|
|
4
|
+
* @param content сериализованный в строку контент в формате prose
|
|
5
|
+
* @returns массив цифровых идентификаторов изображений в статье
|
|
6
|
+
*/
|
|
7
|
+
export declare const getImageIdsFromProse: (content: string) => number[];
|
|
8
|
+
/**
|
|
9
|
+
* Обходит узел таблицы и вычисляет ширины столбцов
|
|
10
|
+
* @param node Узел таблицы
|
|
11
|
+
* @returns массив ширин столбцов в процентах или пустой массив в случае ошибки
|
|
12
|
+
*/
|
|
13
|
+
export declare const colsWidthFromNode: (node: Node) => number[];
|
|
14
|
+
/**
|
|
15
|
+
* Обходит всю таблицу и возвращает актуальные ширины столбцов в пикселях
|
|
16
|
+
* @param cell Ячейка таблицы от которой пляшем, нужна только для того чтобы найти саму таблицу
|
|
17
|
+
* @returns массив ширин столбцов в пикселах или пустой массив в случае ошибки
|
|
18
|
+
*/
|
|
19
|
+
export declare const colsWidthFromDOM: (cell: HTMLTableCellElement) => number[];
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FC } from 'react';
|
|
2
|
+
type Props = {
|
|
3
|
+
parent?: HTMLElement | null;
|
|
4
|
+
isRowMenuOpen: boolean;
|
|
5
|
+
isCellMenuOpen: boolean;
|
|
6
|
+
isColumnMenuOpen: boolean;
|
|
7
|
+
onRowMenuClose: () => void;
|
|
8
|
+
onCellMenuClose: () => void;
|
|
9
|
+
onColumnMenuClose: () => void;
|
|
10
|
+
};
|
|
11
|
+
declare const TableCellMenu: FC<Props>;
|
|
12
|
+
export default TableCellMenu;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Публикация
|
|
3
|
+
* Это то, что мы получаем из редактора
|
|
4
|
+
*/
|
|
5
|
+
export type TPublicationFormat = 'prose';
|
|
6
|
+
export type TPublication = {
|
|
7
|
+
format: TPublicationFormat;
|
|
8
|
+
name?: string;
|
|
9
|
+
info?: string;
|
|
10
|
+
cover?: File;
|
|
11
|
+
content: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Функция обновления содержимого статьи в большом редакторе
|
|
15
|
+
* Возвращает undefined или сообщение об ошибке
|
|
16
|
+
*/
|
|
17
|
+
export type TEditorSaver = (data: TPublication) => Promise<string | undefined>;
|
|
18
|
+
/**
|
|
19
|
+
* Функция обновления содержимого статьи в кратком редакторе
|
|
20
|
+
*/
|
|
21
|
+
export type TNotesSaver = (data: TPublication) => void;
|
|
22
|
+
/**
|
|
23
|
+
* Функция загрузки картинки на сервер
|
|
24
|
+
* Редактор дергает эту функцию, когда надо вставить картинку с диска
|
|
25
|
+
* Возвращает идентификатор созданного файла картинки или сообщение об ошибке
|
|
26
|
+
*/
|
|
27
|
+
export type TImageUploader = (image: File) => Promise<number | string>;
|
|
28
|
+
/**
|
|
29
|
+
* Функции создания и обновления публикации
|
|
30
|
+
*/
|
|
31
|
+
export type TCreatePublication = (data: TPublication) => void;
|
|
32
|
+
export type TUpdatePublication = (data: TPublication, publication_id: number) => void;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Валидация ссылки на VK Video
|
|
3
|
+
* @param stringURL URL для валидации
|
|
4
|
+
* @param getSanitized Флаг формата возвращаемого значения
|
|
5
|
+
* @returns Если не указан getSanitized или он false, вернет результат проверки как boolean.
|
|
6
|
+
* Если флаг указан как true, то в случае успеха вернет санитаризированный URL, иначе - пустую строку.
|
|
7
|
+
*/
|
|
8
|
+
export declare const validateVkvideoURL: (stringURL: string | URL, getSanitized?: boolean) => string | boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Валидация ссылки на RuTube
|
|
11
|
+
* @param stringURL URL для валидации
|
|
12
|
+
* @param getSanitized Флаг формата возвращаемого значения
|
|
13
|
+
* @returns Если не указан getSanitized или он false, вернет результат проверки как boolean.
|
|
14
|
+
* Если флаг указан как true, то в случае успеха вернет санитаризированный URL, иначе - пустую строку.
|
|
15
|
+
*/
|
|
16
|
+
export declare const validateRutubeURL: (stringURL: string | URL, getSanitized?: boolean) => string | boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Валидация ссылки на YouTube
|
|
19
|
+
* @param stringURL URL для валидации
|
|
20
|
+
* @param getSanitized Флаг формата возвращаемого значения
|
|
21
|
+
* @returns Если не указан getSanitized или он false, вернет результат проверки как boolean.
|
|
22
|
+
* Если флаг указан как true, то в случае успеха вернет санитаризированный URL, иначе - пустую строку.
|
|
23
|
+
*/
|
|
24
|
+
export declare const validateYoutubeURL: (stringURL: string | URL, getSanitized?: boolean) => string | boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Преобразовывает полученный URL в формат пригодный для embed
|
|
27
|
+
* @param stringURL
|
|
28
|
+
* @returns
|
|
29
|
+
*/
|
|
30
|
+
export declare const sanitizeVideoURL: (stringURL: string) => string;
|
|
31
|
+
/**
|
|
32
|
+
* Запрос ссылки на миниатюру видео
|
|
33
|
+
* @param videoURL ссылка на видеоплеер обработанная через sanitizeVideoURL
|
|
34
|
+
*/
|
|
35
|
+
export declare const getVideoPreview: (videoURL: string) => string;
|
|
36
|
+
/**
|
|
37
|
+
* Преобразует входные данные в URL пригодный для IMG
|
|
38
|
+
* @param url строка с URL или идентификатор картинки на сервере или NULL
|
|
39
|
+
* @returns URL картинки
|
|
40
|
+
*/
|
|
41
|
+
export declare const sanitizeImageURL: (url?: string | number | null) => string;
|