@kodaeditor/core 1.0.1 → 1.0.2
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/docx-import.d.ts +11 -11
- package/dist/editor.d.ts +109 -159
- package/dist/fallback.d.ts +7 -8
- package/dist/i18n.d.ts +15 -26
- package/dist/import-formats.d.ts +19 -17
- package/dist/index.d.ts +4 -4
- package/dist/kodaeditor-core.umd.cjs +1 -1
- package/dist/kodaeditor.js +1 -1
- package/dist/kodaeditor.umd.cjs +1 -1
- package/dist/license.d.ts +46 -50
- package/dist/schema.d.ts +7 -7
- package/dist/serialize.d.ts +11 -11
- package/dist/web-component.d.ts +71 -213
- package/package.json +2 -5
- package/dist/commands.d.ts +0 -15
- package/dist/docx-alignment.d.ts +0 -14
- package/dist/docx-breaks.d.ts +0 -31
- package/dist/docx-forms.d.ts +0 -28
- package/dist/docx-headers.d.ts +0 -22
- package/dist/docx-images.d.ts +0 -41
- package/dist/docx-math.d.ts +0 -18
- package/dist/docx-styles.d.ts +0 -53
- package/dist/docx-symbols.d.ts +0 -19
- package/dist/docx-text-styles.d.ts +0 -27
- package/dist/floatingToolbar.d.ts +0 -7
- package/dist/group-icons.d.ts +0 -17
- package/dist/icons.d.ts +0 -1
- package/dist/image-view.d.ts +0 -27
- package/dist/markdown.d.ts +0 -4
- package/dist/menubar.d.ts +0 -60
- package/dist/offline-license.d.ts +0 -36
- package/dist/pagination.d.ts +0 -11
- package/dist/paste.d.ts +0 -54
- package/dist/pdf-import-cdn.d.ts +0 -2
- package/dist/pdf-import.d.ts +0 -8
- package/dist/print.d.ts +0 -18
- package/dist/rtf-images.d.ts +0 -24
- package/dist/search.d.ts +0 -17
- package/dist/slashMenu.d.ts +0 -8
- package/dist/styles.d.ts +0 -8
- package/dist/table-split.d.ts +0 -26
- package/dist/table-view.d.ts +0 -34
- package/dist/tableColumnTrade.d.ts +0 -15
- package/dist/tableToolbar.d.ts +0 -14
- package/dist/toc-view.d.ts +0 -23
- package/dist/toolbar-editor.d.ts +0 -89
- package/dist/validate-signature.d.ts +0 -64
- package/dist/xlsx-import-cdn.d.ts +0 -1
- package/dist/xlsx-import.d.ts +0 -2
package/dist/docx-headers.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Извлечение колонтитулов (шапка/футер) из .docx при импорте.
|
|
3
|
-
*
|
|
4
|
-
* mammoth берёт только тело документа и ИГНОРИРУЕТ колонтитулы. Для ЭДО это
|
|
5
|
-
* потеря: фирменный бланк, реквизиты организации, «УТВЕРЖДАЮ», номера страниц
|
|
6
|
-
* часто лежат именно в шапке/футере (word/header*.xml, word/footer*.xml).
|
|
7
|
-
*
|
|
8
|
-
* Здесь шапка/футер читаются прямо из zip и конвертируются в простой HTML
|
|
9
|
-
* (абзацы с выравниванием/жирным + таблицы), чтобы летерхед не пропал.
|
|
10
|
-
* Шапка ставится в НАЧАЛО документа, футер — в КОНЕЦ (один раз, т.к. в
|
|
11
|
-
* потоковом редакторе нет постраничного повтора).
|
|
12
|
-
*/
|
|
13
|
-
export interface DocxHeaderFooter {
|
|
14
|
-
header: string;
|
|
15
|
-
footer: string;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Читает .docx и возвращает HTML шапки и футера (самые «насыщенные» из
|
|
19
|
-
* нескольких, т.к. часто есть default/first/even — летерхед обычно в одном).
|
|
20
|
-
* Безопасно к ошибкам — при сбое отдаёт пустые строки.
|
|
21
|
-
*/
|
|
22
|
-
export declare function extractDocxHeaderFooter(arrayBuffer: ArrayBuffer): Promise<DocxHeaderFooter>;
|
package/dist/docx-images.d.ts
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Извлечение картинок из .docx и вставка их в нужные ячейки таблиц.
|
|
3
|
-
*
|
|
4
|
-
* mammoth тащит только простые inline-картинки и теряет VML-фигуры (круглое
|
|
5
|
-
* фото в `v:oval`), плавающие рисунки и часть DrawingML. Для резюме/форм это
|
|
6
|
-
* критично — пропадает фото и логотипы. Здесь картинки достаются прямо из zip
|
|
7
|
-
* (`word/media/*`), сопоставляются с ячейками таблиц по позиции в OOXML и
|
|
8
|
-
* вставляются в соответствующие ячейки mammoth-вывода.
|
|
9
|
-
*/
|
|
10
|
-
/** Картинки по таблицам: cells[индекс ячейки row-major] = массив data-URI. */
|
|
11
|
-
export interface DocxTableImages {
|
|
12
|
-
cells: string[][];
|
|
13
|
-
}
|
|
14
|
-
/** Читает .docx и возвращает картинки по таблицам/ячейкам. Безопасно к ошибкам. */
|
|
15
|
-
export declare function extractDocxImages(arrayBuffer: ArrayBuffer): Promise<DocxTableImages[]>;
|
|
16
|
-
/** Вставляет извлечённые картинки в ячейки таблиц mammoth-вывода по позиции. */
|
|
17
|
-
export declare function applyDocxImages(root: HTMLElement, tables: DocxTableImages[]): void;
|
|
18
|
-
/**
|
|
19
|
-
* Размеры ОТОБРАЖЕНИЯ картинок, которые рендерит mammoth, в порядке документа.
|
|
20
|
-
* Источники (mammoth теряет размер — рисует в натуральную величину):
|
|
21
|
-
* - DrawingML инлайн: `<wp:inline>` → `<wp:extent cx cy>` (EMU);
|
|
22
|
-
* - VML-картинка: `<v:shape|rect|oval style="width:..pt;height:..pt">` c
|
|
23
|
-
* вложенным `<v:imagedata>` (pt). Чистые векторные фигуры (без imagedata,
|
|
24
|
-
* напр. блок-схемы) пропускаются — mammoth их всё равно не рендерит.
|
|
25
|
-
* Возвращает по элементу на каждый рисунок-картинку (null, если размера нет).
|
|
26
|
-
*/
|
|
27
|
-
export declare function extractInlineImageSizes(arrayBuffer: ArrayBuffer): Promise<({
|
|
28
|
-
w: number;
|
|
29
|
-
h: number;
|
|
30
|
-
} | null)[]>;
|
|
31
|
-
/**
|
|
32
|
-
* Проставляет размеры отображения на инлайн-картинки mammoth-вывода.
|
|
33
|
-
* Безопасно: применяет ТОЛЬКО когда число `<img>` совпадает с числом инлайн-
|
|
34
|
-
* рисунков (тогда соответствие 1:1 по порядку надёжно). Иначе — пропуск, чтобы
|
|
35
|
-
* не проставить чужой размер (mammoth мог потерять часть рисунков или это VML).
|
|
36
|
-
* Вызывать на сыром mammoth-выводе, ДО инъекции табличных картинок.
|
|
37
|
-
*/
|
|
38
|
-
export declare function applyInlineImageSizes(root: HTMLElement, sizes: ({
|
|
39
|
-
w: number;
|
|
40
|
-
h: number;
|
|
41
|
-
} | null)[]): void;
|
package/dist/docx-math.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OMML-формулы (Office Math) при импорте .docx.
|
|
3
|
-
*
|
|
4
|
-
* mammoth ПОЛНОСТЬЮ выкидывает математику (m:oMath) — формула пропадает без
|
|
5
|
-
* следа. Полноценный рендер (MathML) схема редактора не пропустит, поэтому
|
|
6
|
-
* здесь формула конвертируется в ЧИТАЕМЫЙ Unicode-текст (дроби, степени,
|
|
7
|
-
* индексы, корни, интегралы/суммы) и подставляется НА МЕСТО формулы прямо в
|
|
8
|
-
* document.xml ДО mammoth — так текст формулы встаёт в правильную позицию.
|
|
9
|
-
* Лучше «(a)/(b) + x²», чем пустота.
|
|
10
|
-
*/
|
|
11
|
-
/** oMath -> текст. */
|
|
12
|
-
export declare function omathToText(omath: Element): string;
|
|
13
|
-
/**
|
|
14
|
-
* Мутирует parsed document.xml: заменяет m:oMath/m:oMathPara на текстовые
|
|
15
|
-
* w:r-прогоны. Возвращает true, если что-то заменено. Чистая DOM-операция —
|
|
16
|
-
* чтобы препроцессинг (формулы + чекбоксы) делал ОДИН repack zip.
|
|
17
|
-
*/
|
|
18
|
-
export declare function replaceMathInDoc(doc: Document): boolean;
|
package/dist/docx-styles.d.ts
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Дочерпывание табличных стилей из OOXML при импорте .docx.
|
|
3
|
-
*
|
|
4
|
-
* mammoth даёт чистую семантику, но осознанно игнорирует оформление:
|
|
5
|
-
* - ширины колонок (`w:tblGrid`),
|
|
6
|
-
* - заливку ячеек (`w:shd` на ячейке),
|
|
7
|
-
* - заливку из СТИЛЯ таблицы (`w:tblStyle` + conditional formatting: шапка,
|
|
8
|
-
* бандинг строк/колонок) — частый кейс встроенных стилей Word (Light Shading,
|
|
9
|
-
* Grid Table и т.п.) и форм ЭДО.
|
|
10
|
-
* Всё это читается прямо из zip и накладывается на таблицы mammoth-вывода
|
|
11
|
-
* (порядок таблиц и ячеек совпадает с документным).
|
|
12
|
-
*/
|
|
13
|
-
export interface DocxTableStyle {
|
|
14
|
-
/** Ширины колонок в px (из w:tblGrid, twips -> px). */
|
|
15
|
-
colWidths: number[];
|
|
16
|
-
/**
|
|
17
|
-
* Заливки ячеек ПО СТРОКАМ (на каждую отрисованную mammoth-строку — список
|
|
18
|
-
* заливок слева направо). vMerge-continue ячейки пропущены (mammoth их не
|
|
19
|
-
* рендерит). Раскладка по строкам локализует рассинхрон рамками строки.
|
|
20
|
-
*/
|
|
21
|
-
cellFills: (string | null)[][];
|
|
22
|
-
}
|
|
23
|
-
/** Парсит theme1.xml -> Map слот(dk1/lt1/accent1…) -> hex(6). */
|
|
24
|
-
export declare function parseThemeColors(xml: string): Map<string, string>;
|
|
25
|
-
interface CondFills {
|
|
26
|
-
whole: string | null;
|
|
27
|
-
firstRow: string | null;
|
|
28
|
-
lastRow: string | null;
|
|
29
|
-
firstCol: string | null;
|
|
30
|
-
lastCol: string | null;
|
|
31
|
-
band1Horz: string | null;
|
|
32
|
-
band2Horz: string | null;
|
|
33
|
-
band1Vert: string | null;
|
|
34
|
-
band2Vert: string | null;
|
|
35
|
-
rowBandSize: number;
|
|
36
|
-
colBandSize: number;
|
|
37
|
-
}
|
|
38
|
-
type StyleMap = Map<string, CondFills>;
|
|
39
|
-
/** Парсит word/styles.xml -> Map styleId -> CondFills (с разрешением basedOn). */
|
|
40
|
-
export declare function parseTableStyleDefs(stylesXml: string, theme: Map<string, string>): StyleMap;
|
|
41
|
-
/**
|
|
42
|
-
* Разбор таблиц из XML. styles/theme опциональны (тесты могут передать xml без
|
|
43
|
-
* стилей; тогда работает только явный w:shd).
|
|
44
|
-
*/
|
|
45
|
-
export declare function parseTablesFromXml(xml: string, styles?: StyleMap, theme?: Map<string, string>): DocxTableStyle[];
|
|
46
|
-
/** Читает .docx и возвращает стили таблиц по порядку. Безопасно к ошибкам. */
|
|
47
|
-
export declare function extractDocxTableStyles(arrayBuffer: ArrayBuffer): Promise<DocxTableStyle[]>;
|
|
48
|
-
/**
|
|
49
|
-
* Накладывает стили на таблицы mammoth-вывода: ширины колонок (через
|
|
50
|
-
* `<colgroup>` — дальше их подхватит normalizeTableWidths) и заливку ячеек.
|
|
51
|
-
*/
|
|
52
|
-
export declare function applyDocxTableStyles(root: HTMLElement, styles: DocxTableStyle[]): void;
|
|
53
|
-
export {};
|
package/dist/docx-symbols.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Символьные прогоны Wingdings/Symbol (w:sym) при импорте .docx.
|
|
3
|
-
*
|
|
4
|
-
* Старые формы ЭДО ставят чекбоксы и маркеры символьным шрифтом: не текст ☐, а
|
|
5
|
-
* <w:sym w:font="Wingdings" w:char="F0A8"/> — код глифа В ШРИФТЕ. Без самого
|
|
6
|
-
* шрифта Wingdings (а сайт его не грузит) mammoth выдаёт либо пусто, либо
|
|
7
|
-
* нестандартный глиф (🞎/🗹), не совпадающий с ☐/☒ из обычных чекбоксов форм.
|
|
8
|
-
*
|
|
9
|
-
* Здесь известные коды Wingdings/Symbol заменяются НА МЕСТЕ в document.xml на
|
|
10
|
-
* корректный Unicode ДО mammoth: пустой чекбокс -> ☐, отмеченный -> ☒/☑,
|
|
11
|
-
* телефон -> ☎, греческие буквы Symbol -> α/β/… Неизвестные коды не трогаем —
|
|
12
|
-
* пусть их обрабатывает mammoth, чтобы ничего не сломать.
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* Мутирует parsed document.xml: w:sym с известным шрифтом/кодом -> текстовый
|
|
16
|
-
* прогон w:r/w:t с Unicode-символом. Неизвестные оставляет нетронутыми.
|
|
17
|
-
* Возвращает true, если что-то заменено. Общий repack с формулами/чекбоксами.
|
|
18
|
-
*/
|
|
19
|
-
export declare function replaceSymbolsInDoc(doc: Document): boolean;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Восстановление оформления текста при импорте .docx (цвет и размер).
|
|
3
|
-
*
|
|
4
|
-
* mammoth маппит «Heading 1/2/3» и «Title» в <h1>/<h2>/<h3>, но выбрасывает
|
|
5
|
-
* цвет и кегль, заданные в именованных стилях (word/styles.xml). Из-за этого
|
|
6
|
-
* синие заголовки резюме (#548AB7) и крупное имя (48pt) теряются. Здесь цвет и
|
|
7
|
-
* размер вычисляются для каждого абзаца (прямой run-стиль > стиль абзаца) и
|
|
8
|
-
* накладываются на блоки mammoth по тексту.
|
|
9
|
-
*/
|
|
10
|
-
interface TextStyle {
|
|
11
|
-
color?: string;
|
|
12
|
-
size?: string;
|
|
13
|
-
}
|
|
14
|
-
/** Читает .docx и возвращает оформление по тексту абзацев. Безопасно к ошибкам. */
|
|
15
|
-
export declare function extractDocxTextStyles(arrayBuffer: ArrayBuffer): Promise<Map<string, TextStyle>>;
|
|
16
|
-
/** Накладывает цвет/размер на блоки mammoth-вывода по тексту. */
|
|
17
|
-
export declare function applyDocxTextStyles(root: HTMLElement, styles: Map<string, TextStyle>): void;
|
|
18
|
-
interface StyledRun {
|
|
19
|
-
text: string;
|
|
20
|
-
color: string | null;
|
|
21
|
-
size: string | null;
|
|
22
|
-
font: string | null;
|
|
23
|
-
background: string | null;
|
|
24
|
-
}
|
|
25
|
-
export declare function extractDocxRunColors(arrayBuffer: ArrayBuffer): Promise<Map<string, StyledRun[]>>;
|
|
26
|
-
export declare function applyDocxRunColors(root: HTMLElement, map: Map<string, StyledRun[]>): void;
|
|
27
|
-
export {};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Floating toolbar (Notion-UX): по выделению текста всплывает мини-панель
|
|
3
|
-
* форматирования над выделением (жирный/курсив/подчёркнутый/зачёркнутый).
|
|
4
|
-
*/
|
|
5
|
-
import { Plugin } from 'prosemirror-state';
|
|
6
|
-
import type { Strings } from './i18n';
|
|
7
|
-
export declare function floatingToolbarPlugin(strings: Strings): Plugin;
|
package/dist/group-icons.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Нейтральные обложки-контейнеры (нарисованы в том же line-стиле, что и пакет
|
|
3
|
-
* панели). Их нет среди команд, поэтому держим здесь — для группы это
|
|
4
|
-
* естественнее, чем «B»/«ссылка» в роли обложки.
|
|
5
|
-
*/
|
|
6
|
-
export declare const GROUP_EXTRA_ICONS: Record<string, string>;
|
|
7
|
-
/** Популярные emoji для обложки группы (iconKind:'emoji', сам символ хранится). */
|
|
8
|
-
export declare const GROUP_EMOJI: string[];
|
|
9
|
-
/** Тип обложки кнопки-группы. */
|
|
10
|
-
export type GroupIconKind = 'builtin' | 'emoji' | 'image';
|
|
11
|
-
/**
|
|
12
|
-
* Ключи иконок для вкладки «Иконки» лого-пикера: сперва нейтральные обложки,
|
|
13
|
-
* затем все иконки панели (тот же пакет). Дедуп на случай пересечений.
|
|
14
|
-
*/
|
|
15
|
-
export declare function groupIconKeys(): string[];
|
|
16
|
-
/** Отрисовать обложку группы в HTML (для кнопки/превью). */
|
|
17
|
-
export declare function renderGroupIcon(kind: GroupIconKind, icon: string): string;
|
package/dist/icons.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const TOOLBAR_ICONS: Record<string, string>;
|
package/dist/image-view.d.ts
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* NodeView картинки с ручкой ресайза (правый-нижний угол). Тянем мышью —
|
|
3
|
-
* меняется ширина; по отпусканию ширина пишется в атрибут width узла (т.е.
|
|
4
|
-
* сохраняется в HTML как style="width:NNpx"). Ручка видна при наведении или
|
|
5
|
-
* когда картинка выделена.
|
|
6
|
-
*/
|
|
7
|
-
import type { Node as PMNode } from 'prosemirror-model';
|
|
8
|
-
import type { EditorView, NodeView } from 'prosemirror-view';
|
|
9
|
-
export declare class ImageNodeView implements NodeView {
|
|
10
|
-
dom: HTMLElement;
|
|
11
|
-
private img;
|
|
12
|
-
private node;
|
|
13
|
-
private view;
|
|
14
|
-
private getPos;
|
|
15
|
-
constructor(node: PMNode, view: EditorView, getPos: () => number | undefined);
|
|
16
|
-
/**
|
|
17
|
-
* Режим обрезки: накладывает слой поверх картинки, пользователь тянет рамку
|
|
18
|
-
* выделения (pointer = мышь/touch), затем «Применить» вырезает область через
|
|
19
|
-
* canvas в новый data-URL (client-side, на сервер не уходит).
|
|
20
|
-
*/
|
|
21
|
-
private enterCrop;
|
|
22
|
-
/** Вырезает область (в координатах отображения) через canvas -> новый src. */
|
|
23
|
-
private applyCrop;
|
|
24
|
-
private startResize;
|
|
25
|
-
update(node: PMNode): boolean;
|
|
26
|
-
ignoreMutation(): boolean;
|
|
27
|
-
}
|
package/dist/markdown.d.ts
DELETED
package/dist/menubar.d.ts
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Верхнее меню (menubar) — структурированный доступ к работе с компонентами
|
|
3
|
-
* документа: Файл / Правка / Вставка / Формат / Таблица / Вид. Каждое меню —
|
|
4
|
-
* выпадающая панель пунктов; пункт может иметь подменю (Таблица → Строка/Столбец/
|
|
5
|
-
* Ячейка). Действия переиспользуют те же методы редактора, что и тулбар, —
|
|
6
|
-
* поэтому menubar НИЧЕГО не дублирует по логике, только даёт второй способ доступа.
|
|
7
|
-
*
|
|
8
|
-
* Тот же модуль строит контекстное меню (правый клик) — это просто всплывающая
|
|
9
|
-
* панель из тех же MenuItemSpec в точке курсора.
|
|
10
|
-
*/
|
|
11
|
-
import type { Strings } from './i18n';
|
|
12
|
-
export interface MenuItemSpec {
|
|
13
|
-
label?: string;
|
|
14
|
-
icon?: string;
|
|
15
|
-
separator?: boolean;
|
|
16
|
-
action?: () => void;
|
|
17
|
-
submenu?: MenuItemSpec[];
|
|
18
|
-
enabled?: () => boolean;
|
|
19
|
-
}
|
|
20
|
-
export interface MenuSpec {
|
|
21
|
-
label: string;
|
|
22
|
-
items: MenuItemSpec[];
|
|
23
|
-
}
|
|
24
|
-
export interface MenubarHost {
|
|
25
|
-
shell: HTMLElement;
|
|
26
|
-
strings: Strings;
|
|
27
|
-
}
|
|
28
|
-
export declare class Menubar {
|
|
29
|
-
private menus;
|
|
30
|
-
private host;
|
|
31
|
-
private bar?;
|
|
32
|
-
private openPanels;
|
|
33
|
-
private activeTop?;
|
|
34
|
-
private tops;
|
|
35
|
-
private onAway;
|
|
36
|
-
private onKey;
|
|
37
|
-
constructor(menus: MenuSpec[], host: MenubarHost);
|
|
38
|
-
/** Полоса меню (для вставки над тулбаром). */
|
|
39
|
-
render(): HTMLElement;
|
|
40
|
-
/** Roving-фокус на верхний пункт i (обновляет tabindex). */
|
|
41
|
-
private focusTop;
|
|
42
|
-
private currentTopIndex;
|
|
43
|
-
/** Клавиатура на верхних пунктах menubar. */
|
|
44
|
-
private onTopKey;
|
|
45
|
-
private toggleTop;
|
|
46
|
-
private openTop;
|
|
47
|
-
/** Включённые пункты панели (для клавиатурной навигации). */
|
|
48
|
-
private itemsOf;
|
|
49
|
-
/** Фокус на пункт панели по индексу (отрицательный = с конца). */
|
|
50
|
-
private focusPanelItem;
|
|
51
|
-
/** Клавиатура внутри панели меню/подменю/контекста (WAI-ARIA menu). */
|
|
52
|
-
private onPanelKey;
|
|
53
|
-
/** Контекстное меню (правый клик): панель из items в точке (clientX, clientY). */
|
|
54
|
-
openContext(items: MenuItemSpec[], clientX: number, clientY: number): void;
|
|
55
|
-
private buildPanel;
|
|
56
|
-
private openSubmenu;
|
|
57
|
-
/** Закрыть все панели глубже указанной (для переключения подменю на одном уровне). */
|
|
58
|
-
private closeDeeperThan;
|
|
59
|
-
closeAll(): void;
|
|
60
|
-
}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Офлайн-активация: подписанный ECDSA (P-256) файл лицензии вместо живого
|
|
3
|
-
* запроса на license-сервер — для корпоративных клиентов без исходящего
|
|
4
|
-
* доступа в интернет (не грейс-кэш, а изначально нулевая сетевая
|
|
5
|
-
* зависимость от нашей инфраструктуры).
|
|
6
|
-
*
|
|
7
|
-
* Приватный ключ подписи НИКОГДА не попадает в этот бандл — генерируется и
|
|
8
|
-
* хранится отдельно (см. apps/license-server/src/offline-license-cli.mjs).
|
|
9
|
-
* Публичный ключ ниже — не секрет по своей природе (нужен только для
|
|
10
|
-
* проверки подписи, не для её создания), безопасно шить в открытый код.
|
|
11
|
-
*
|
|
12
|
-
* Формат подписи — raw IEEE-P1363 (r||s, 64 байта для P-256), НЕ DER: это
|
|
13
|
-
* то, что ждёт браузерный Web Crypto API. Node по умолчанию подписывает в
|
|
14
|
-
* DER — CLI обязан использовать { dsaEncoding: 'ieee-p1363' }, иначе
|
|
15
|
-
* подпись здесь не пройдёт верификацию (проверено сквозным тестом).
|
|
16
|
-
*/
|
|
17
|
-
export interface OfflineLicensePayload {
|
|
18
|
-
v: 1;
|
|
19
|
-
key: string;
|
|
20
|
-
customer: string;
|
|
21
|
-
domains: string[];
|
|
22
|
-
plugins: string[];
|
|
23
|
-
issuedAt: string;
|
|
24
|
-
expiresAt: string | null;
|
|
25
|
-
}
|
|
26
|
-
export interface OfflineLicenseResult {
|
|
27
|
-
valid: boolean;
|
|
28
|
-
plugins: string[];
|
|
29
|
-
reason?: string;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Проверяет содержимое офлайн-файла лицензии для текущего домена. Никогда
|
|
33
|
-
* не бросает исключение — любая проблема (битый файл, неверная подпись,
|
|
34
|
-
* домен не совпал, срок истёк) возвращается как `{valid:false, reason}`.
|
|
35
|
-
*/
|
|
36
|
-
export declare function verifyOfflineLicense(fileText: string, domain: string): Promise<OfflineLicenseResult>;
|
package/dist/pagination.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Страничный вид (pagination) — безопасный режим: НЕ меняет модель документа и
|
|
3
|
-
* не вмешивается в транзакции (исключает риск циклов/поломки редактирования).
|
|
4
|
-
* Плагин лишь рисует визуальные границы страниц A4 в отдельном DOM-оверлее
|
|
5
|
-
* поверх содержимого, измеряя реальную высоту блоков. Включается переключателем
|
|
6
|
-
* (stateRef.on); выключен по умолчанию.
|
|
7
|
-
*/
|
|
8
|
-
import { Plugin } from 'prosemirror-state';
|
|
9
|
-
export declare function paginationPlugin(stateRef: {
|
|
10
|
-
on: boolean;
|
|
11
|
-
}): Plugin;
|
package/dist/paste.d.ts
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Smart-paste: очистка HTML, вставленного из Microsoft Word / Excel / Google Docs.
|
|
3
|
-
*
|
|
4
|
-
* Главная боль ЭДО - пользователи копируют документы из Word, и обычные
|
|
5
|
-
* редакторы тащат за собой `mso-` стили, `<o:p>`, условные комментарии и
|
|
6
|
-
* мусорные span-ы. Здесь это вычищается ДО парсинга в модель документа,
|
|
7
|
-
* сохраняя реальную структуру (заголовки, списки, форматирование).
|
|
8
|
-
*
|
|
9
|
-
* Премиум-функция: включается лицензией (plugin "smart-paste").
|
|
10
|
-
*/
|
|
11
|
-
export declare function inertCreate<K extends keyof HTMLElementTagNameMap>(tag: K): HTMLElementTagNameMap[K];
|
|
12
|
-
/**
|
|
13
|
-
* Убирает дубль-таблицы Word `mc:AlternateContent`. Word кладёт в буфер ОДИН и
|
|
14
|
-
* тот же блок дважды - основная вёрстка (Choice) и запасная (Fallback, часто с
|
|
15
|
-
* упрощёнными/битыми ширинами). Здесь среди верхнеуровневых таблиц с идентичным
|
|
16
|
-
* текстом оставляем ПЕРВУЮ (Choice - она структурнее), последующие дубли убираем.
|
|
17
|
-
*/
|
|
18
|
-
export declare function dedupeAlternateTables(root: HTMLElement): void;
|
|
19
|
-
/**
|
|
20
|
-
* Удаляет узлы-комментарии из DOM. Безопасно для структуры: комментарий -
|
|
21
|
-
* отдельный узел и не может содержать элементы, поэтому вложенные таблицы не
|
|
22
|
-
* пострадают (в отличие от строкового regex `<!--…-->`, который мог «съесть»
|
|
23
|
-
* таблицу, оказавшуюся между двумя Word-комментариями).
|
|
24
|
-
*/
|
|
25
|
-
export declare function stripComments(root: HTMLElement): void;
|
|
26
|
-
export declare function cleanWordHTML(html: string): string;
|
|
27
|
-
export declare function normalizeWordWhitespace(root: HTMLElement): void;
|
|
28
|
-
export declare function inlineWordStyles(root: HTMLElement): void;
|
|
29
|
-
/** Переносит высоту строк (<tr height>) на ячейки - высота полей форм. */
|
|
30
|
-
export declare function copyRowHeights(root: HTMLElement): void;
|
|
31
|
-
export declare function normalizeTableWidths(root: HTMLElement): void;
|
|
32
|
-
export declare function reconstructWordFootnotes(root: HTMLElement): void;
|
|
33
|
-
/**
|
|
34
|
-
* Восстанавливает списки Word во ВСЁМ поддереве.
|
|
35
|
-
*
|
|
36
|
-
* Раньше обход шёл только по прямым детям root, и это молча теряло списки в
|
|
37
|
-
* двух совершенно обычных случаях:
|
|
38
|
-
*
|
|
39
|
-
* - абзацы внутри обёртки `<div class=WordSection1>`, которую Word кладёт
|
|
40
|
-
* вокруг документа: при вставке из буфера она доходит до нас (там же
|
|
41
|
-
* приезжает <style>, ради которого написан inlineWordStyles);
|
|
42
|
-
* - абзацы внутри ЯЧЕЕК ТАБЛИЦ - в договорах и актах это встречается
|
|
43
|
-
* постоянно.
|
|
44
|
-
*
|
|
45
|
-
* В обоих случаях пункты оставались абзацами вида «1.Первый пункт» с номером
|
|
46
|
-
* внутри текста. Корпусная проверка на 6000 документов этого не поймала,
|
|
47
|
-
* потому что шла через docx-import: там разметку порождает конвертер, обёрток
|
|
48
|
-
* Word в ней нет, а списки в ячейках приходят уже настоящими <ol>/<ul>.
|
|
49
|
-
* То есть 6000 документов проверили путь ИМПОРТА ФАЙЛА, а не путь БУФЕРА.
|
|
50
|
-
*
|
|
51
|
-
* Контейнеры собираются ДО правок: обработка переставляет узлы, и обход по
|
|
52
|
-
* живой коллекции пропускал бы элементы.
|
|
53
|
-
*/
|
|
54
|
-
export declare function reconstructWordLists(root: HTMLElement): void;
|
package/dist/pdf-import-cdn.d.ts
DELETED
package/dist/pdf-import.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Извлекает текст PDF в HTML-абзацы. Строки группируются по Y-координате,
|
|
3
|
-
* абзацы разделяются по увеличенному вертикальному промежутку (эвристика —
|
|
4
|
-
* качество зависит от PDF; сканы-картинки текста не дают).
|
|
5
|
-
*/
|
|
6
|
-
export declare function pdfToHtml(data: ArrayBuffer): Promise<string>;
|
|
7
|
-
/** Рендерит страницы PDF в PNG data-URL (scale: чёткость). */
|
|
8
|
-
export declare function pdfToImages(data: ArrayBuffer, scale?: number): Promise<string[]>;
|
package/dist/print.d.ts
DELETED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Экспорт документа в PDF средствами браузера (диалог печати → «Сохранить как
|
|
3
|
-
* PDF»). Полностью CLIENT-SIDE: содержимое НЕ покидает машину пользователя —
|
|
4
|
-
* важно для ЭДО (документы не уходят на сервер). Рендер выполняет движок самого
|
|
5
|
-
* браузера, поэтому PDF выглядит как контент в редакторе (WYSIWYG).
|
|
6
|
-
*
|
|
7
|
-
* Печать идёт в скрытом <iframe>, а не в текущей странице, чтобы напечатать
|
|
8
|
-
* ТОЛЬКО документ (без тулбара/UI хоста) и не зависеть от Shadow DOM.
|
|
9
|
-
*/
|
|
10
|
-
/** Собирает самостоятельный HTML-документ для печати из контента редактора. */
|
|
11
|
-
export declare function buildPrintHtml(contentHtml: string, lang?: string, title?: string): string;
|
|
12
|
-
/**
|
|
13
|
-
* Печатает HTML-контент через скрытый iframe. Дожидается загрузки картинок
|
|
14
|
-
* (data:/удалённых) перед вызовом print(), но не висит дольше таймаута. iframe
|
|
15
|
-
* снимается после закрытия диалога печати (afterprint) либо по страховочному
|
|
16
|
-
* таймауту.
|
|
17
|
-
*/
|
|
18
|
-
export declare function printDocument(ownerDoc: Document, contentHtml: string, lang?: string): void;
|
package/dist/rtf-images.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Восстановление картинок при вставке из Word через RTF-флейвор буфера.
|
|
3
|
-
*
|
|
4
|
-
* Боль: в `text/html` буфера Word кладёт картинки ссылками `file:///C:/...`
|
|
5
|
-
* (локальные пути, сайту недоступны) или VML-плейсхолдерами — поэтому при
|
|
6
|
-
* обычной вставке картинки теряются. Но тот же буфер содержит `text/rtf`, где
|
|
7
|
-
* изображения встроены hex-кодом в группах `{\pict ...}`. Этот же приём
|
|
8
|
-
* используют PowerPaste (TinyMCE) и PasteFromOffice (CKEditor).
|
|
9
|
-
*
|
|
10
|
-
* Здесь RTF разбирается, PNG/JPEG-картинки достаются как data-URI и
|
|
11
|
-
* подставляются в плейсхолдеры HTML по порядку. Метафайлы (WMF/EMF) браузер
|
|
12
|
-
* не рисует — такие позиции остаются null, чтобы не сбить порядок маппинга.
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* Извлекает картинки из RTF по порядку. Поддерживаются PNG и JPEG;
|
|
16
|
-
* неподдержанные форматы (метафайлы) дают null, сохраняя порядок.
|
|
17
|
-
*/
|
|
18
|
-
export declare function extractRtfImages(rtf: string): (string | null)[];
|
|
19
|
-
/**
|
|
20
|
-
* Подставляет извлечённые из RTF картинки в плейсхолдеры HTML по порядку.
|
|
21
|
-
* Обрабатывает и обычные `<img>`, и VML `<v:imagedata>` (Word рисует ими),
|
|
22
|
-
* конвертируя последние в `<img>`, чтобы пережить санитайзинг.
|
|
23
|
-
*/
|
|
24
|
-
export declare function mergeRtfImagesIntoHtml(root: HTMLElement, images: (string | null)[]): void;
|
package/dist/search.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Найти/заменить: плагин ProseMirror, который хранит запрос и подсвечивает
|
|
3
|
-
* совпадения декорациями (активное — отдельным классом). Поиск по тексту,
|
|
4
|
-
* регистронезависимый. Навигация/замена — методами Editor (см. editor.ts).
|
|
5
|
-
*/
|
|
6
|
-
import { Plugin, PluginKey } from 'prosemirror-state';
|
|
7
|
-
export interface Match {
|
|
8
|
-
from: number;
|
|
9
|
-
to: number;
|
|
10
|
-
}
|
|
11
|
-
export interface SearchState {
|
|
12
|
-
query: string;
|
|
13
|
-
matches: Match[];
|
|
14
|
-
active: number;
|
|
15
|
-
}
|
|
16
|
-
export declare const searchKey: PluginKey<SearchState>;
|
|
17
|
-
export declare function searchPlugin(): Plugin<SearchState>;
|
package/dist/slashMenu.d.ts
DELETED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Slash-меню (Notion-UX): по вводу «/» в начале блока всплывает меню блоков
|
|
3
|
-
* (заголовки, списки, цитата, код, таблица) с фильтрацией по тексту, выбором
|
|
4
|
-
* стрелками/Enter и кликом. Отличитель от TinyMCE.
|
|
5
|
-
*/
|
|
6
|
-
import { Plugin } from 'prosemirror-state';
|
|
7
|
-
import type { Strings } from './i18n';
|
|
8
|
-
export declare function slashMenuPlugin(strings: Strings): Plugin;
|