@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.
Files changed (61) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +2 -0
  3. package/dist/index.css +1 -0
  4. package/dist/index.d.ts +2 -0
  5. package/dist/lib/config.d.ts +9 -0
  6. package/dist/lib/index.d.ts +7 -0
  7. package/dist/lib/prose/ImageUpload.d.ts +6 -0
  8. package/dist/lib/prose/ProseEditor.d.ts +10 -0
  9. package/dist/lib/prose/ProseNotes.d.ts +12 -0
  10. package/dist/lib/prose/ProseViewer.d.ts +6 -0
  11. package/dist/lib/prose/ProseViewerDom.d.ts +6 -0
  12. package/dist/lib/prose/menubar/MenuBar.d.ts +10 -0
  13. package/dist/lib/prose/menubar/MenuBlock.d.ts +7 -0
  14. package/dist/lib/prose/menubar/MenuItem.d.ts +15 -0
  15. package/dist/lib/prose/menubar/SimpleMenuBar.d.ts +9 -0
  16. package/dist/lib/prose/menubar/elements/AlignMenu.d.ts +7 -0
  17. package/dist/lib/prose/menubar/elements/BlockCommands.d.ts +3 -0
  18. package/dist/lib/prose/menubar/elements/HeaderMenu.d.ts +7 -0
  19. package/dist/lib/prose/menubar/elements/InlineMarks.d.ts +7 -0
  20. package/dist/lib/prose/menubar/elements/InsertBlocks.d.ts +14 -0
  21. package/dist/lib/prose/menubar/elements/InsertImage.d.ts +11 -0
  22. package/dist/lib/prose/menubar/elements/InsertLink.d.ts +9 -0
  23. package/dist/lib/prose/menubar/elements/InsertVideo.d.ts +9 -0
  24. package/dist/lib/prose/menubar/elements/MakeBlockMenu.d.ts +7 -0
  25. package/dist/lib/prose/menubar/elements/SaveButton.d.ts +8 -0
  26. package/dist/lib/prose/menubar/elements/UndoRedo.d.ts +3 -0
  27. package/dist/lib/prose/menubar/elements/WrapBlockMenu.d.ts +7 -0
  28. package/dist/lib/prose/plugins/columnresizing.d.ts +49 -0
  29. package/dist/lib/prose/plugins/select.d.ts +2 -0
  30. package/dist/lib/prose/plugins.d.ts +7 -0
  31. package/dist/lib/prose/render/Blockquote.d.ts +7 -0
  32. package/dist/lib/prose/render/CodeBlock.d.ts +7 -0
  33. package/dist/lib/prose/render/Doc.d.ts +8 -0
  34. package/dist/lib/prose/render/HardBreak.d.ts +3 -0
  35. package/dist/lib/prose/render/Heading.d.ts +7 -0
  36. package/dist/lib/prose/render/HorizontalRule.d.ts +3 -0
  37. package/dist/lib/prose/render/Image.d.ts +7 -0
  38. package/dist/lib/prose/render/List.d.ts +7 -0
  39. package/dist/lib/prose/render/ListItem.d.ts +7 -0
  40. package/dist/lib/prose/render/Paragraph.d.ts +7 -0
  41. package/dist/lib/prose/render/ProseRender.d.ts +20 -0
  42. package/dist/lib/prose/render/Table.d.ts +7 -0
  43. package/dist/lib/prose/render/TableCell.d.ts +7 -0
  44. package/dist/lib/prose/render/TableRow.d.ts +7 -0
  45. package/dist/lib/prose/render/Text.d.ts +7 -0
  46. package/dist/lib/prose/render/Video.d.ts +7 -0
  47. package/dist/lib/prose/schema.d.ts +12 -0
  48. package/dist/lib/prose/utils.d.ts +19 -0
  49. package/dist/lib/prose/views/ImageView.d.ts +3 -0
  50. package/dist/lib/prose/views/TableCellMenu.d.ts +12 -0
  51. package/dist/lib/prose/views/TableCellResizer.d.ts +8 -0
  52. package/dist/lib/prose/views/TableCellView.d.ts +3 -0
  53. package/dist/lib/prose/views/TableView.d.ts +3 -0
  54. package/dist/lib/prose/views/VideoView.d.ts +3 -0
  55. package/dist/lib/types/index.d.ts +32 -0
  56. package/dist/lib/utils/link.d.ts +41 -0
  57. package/dist/prose-editor.es.js +18303 -0
  58. package/dist/prose-editor.es.js.map +1 -0
  59. package/dist/prose-editor.umd.js +66 -0
  60. package/dist/prose-editor.umd.js.map +1 -0
  61. package/package.json +67 -0
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ import { Node } from './ProseRender';
3
+ type Props = {
4
+ node: Node;
5
+ };
6
+ declare const TableCell: FC<Props>;
7
+ export default TableCell;
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ import { Node } from './ProseRender';
3
+ type Props = {
4
+ node: Node;
5
+ };
6
+ declare const TableRow: FC<Props>;
7
+ export default TableRow;
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ import { Node } from './ProseRender';
3
+ type Props = {
4
+ node: Node;
5
+ };
6
+ declare const Text: FC<Props>;
7
+ export default Text;
@@ -0,0 +1,7 @@
1
+ import { FC } from 'react';
2
+ import { Node } from './ProseRender';
3
+ type Props = {
4
+ node: Node;
5
+ };
6
+ declare const Video: FC<Props>;
7
+ export default Video;
@@ -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,3 @@
1
+ import { NodeViewComponentProps } from '@handlewithcare/react-prosemirror';
2
+ declare const ImageView: import('react').ForwardRefExoticComponent<Omit<NodeViewComponentProps, "ref"> & import('react').RefAttributes<HTMLTableElement>>;
3
+ export default ImageView;
@@ -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,8 @@
1
+ import { FC } from 'react';
2
+ type Props = {
3
+ parent?: HTMLTableCellElement | null;
4
+ isResizible?: boolean;
5
+ onWidth?: (width: number) => void;
6
+ };
7
+ declare const TableCellResizer: FC<Props>;
8
+ export default TableCellResizer;
@@ -0,0 +1,3 @@
1
+ import { NodeViewComponentProps } from '@handlewithcare/react-prosemirror';
2
+ declare const TableCellView: import('react').ForwardRefExoticComponent<Omit<NodeViewComponentProps, "ref"> & import('react').RefAttributes<HTMLTableCellElement>>;
3
+ export default TableCellView;
@@ -0,0 +1,3 @@
1
+ import { NodeViewComponentProps } from '@handlewithcare/react-prosemirror';
2
+ declare const TableView: import('react').ForwardRefExoticComponent<Omit<NodeViewComponentProps, "ref"> & import('react').RefAttributes<HTMLTableElement>>;
3
+ export default TableView;
@@ -0,0 +1,3 @@
1
+ import { NodeViewComponentProps } from '@handlewithcare/react-prosemirror';
2
+ declare const VideoView: import('react').ForwardRefExoticComponent<Omit<NodeViewComponentProps, "ref"> & import('react').RefAttributes<HTMLTableElement>>;
3
+ export default VideoView;
@@ -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;