@makhmudov.kay/az-editor 0.1.0-beta.13 → 0.1.0-beta.14
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/CHANGELOG.md +7 -0
- package/dist/az-editor.css +1 -1
- package/dist/az-editor.js +1009 -427
- package/dist/library/ImageControls.d.ts +5 -0
- package/dist/library/ImageManipulationOverlay.d.ts +8 -0
- package/dist/library/image-management.d.ts +30 -0
- package/docs/inline-images.ru.md +12 -0
- package/package.json +1 -1
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { type RefObject } from 'react';
|
|
2
|
+
export declare function ImageManipulationOverlay({ host, disabled, aspect, onError, documentKey }: {
|
|
3
|
+
host: RefObject<HTMLDivElement | null>;
|
|
4
|
+
disabled: boolean;
|
|
5
|
+
aspect: boolean;
|
|
6
|
+
onError: (error: string) => void;
|
|
7
|
+
documentKey: unknown;
|
|
8
|
+
}): import("react").ReactPortal | null;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { type OoxmlNode, type OoxmlParagraphNode } from '@docx-editor.dev/core/store';
|
|
2
|
+
import type { PaginatedSurface } from '@docx-editor.dev/core/editor';
|
|
3
|
+
import { type SemanticPosition } from '@docx-editor.dev/core/layout';
|
|
4
|
+
export declare const EMU_PER_CM = 360000;
|
|
5
|
+
export declare const EMU_PER_PT = 12700;
|
|
6
|
+
export declare const formatCm: (emu: number) => string;
|
|
7
|
+
export declare function drawingSource(surface: PaginatedSurface, id: string): {
|
|
8
|
+
drawing: Extract<OoxmlNode, {
|
|
9
|
+
kind: 'drawing';
|
|
10
|
+
}>;
|
|
11
|
+
paragraph: OoxmlParagraphNode;
|
|
12
|
+
span: {
|
|
13
|
+
start: number;
|
|
14
|
+
end: number;
|
|
15
|
+
};
|
|
16
|
+
alone: boolean;
|
|
17
|
+
} | null;
|
|
18
|
+
export declare function imageSizeLimit(surface: PaginatedSurface, id: string): {
|
|
19
|
+
width: number;
|
|
20
|
+
height: number;
|
|
21
|
+
};
|
|
22
|
+
export declare function selectInlineImage(surface: PaginatedSurface, id: string, paragraphId: string): boolean;
|
|
23
|
+
/** Delete and insert the same OOXML node in one guarded, undoable transaction. */
|
|
24
|
+
export declare function moveInlineImage(surface: PaginatedSurface, id: string, target: SemanticPosition): import("@docx-editor.dev/core/editor").TreeApplyResult | {
|
|
25
|
+
rejected: boolean;
|
|
26
|
+
reason: string;
|
|
27
|
+
} | {
|
|
28
|
+
reason?: undefined;
|
|
29
|
+
rejected: boolean;
|
|
30
|
+
};
|
package/docs/inline-images.ru.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# Вставка изображений
|
|
2
2
|
|
|
3
|
+
## Управление изображением
|
|
4
|
+
|
|
5
|
+
Нажмите на изображение, чтобы открыть панель параметров и рамку с восемью маркерами. Размер можно менять за маркеры мышью либо задать ширину и высоту в сантиметрах и нажать «Применить размер». По умолчанию пропорции сохраняются; флажок позволяет менять стороны независимо. При вводе проверяется, что изображение помещается в область текста страницы или ячейки. Исходные размеры не округляются при одном лишь открытии панели.
|
|
6
|
+
|
|
7
|
+
Чтобы перенести изображение, потяните его за середину рамки к нужной позиции текста. Синяя вертикальная линия показывает место вставки. Перенос выполняется внутри основного текста документа, в том числе между абзацами; запрет перемещения из исходного DOCX учитывается. Escape отменяет незавершённый жест. Каждый завершённый перенос или жест изменения размера отменяется одним Ctrl+Z и возвращается Ctrl+Y.
|
|
8
|
+
|
|
9
|
+
В панели доступны выравнивание слева / по центру / справа (для изображения в отдельном абзаце), описание до 500 символов, замена PNG/JPEG с сохранением размеров и описания, удаление. При изменении размера или переносе байты изображения сохраняются; нормализация файла выполняется только при вставке и замене.
|
|
10
|
+
|
|
11
|
+
Размеры сохраняются в HTML в pt, выравнивание — на абзаце, описание — в `alt`. Используется существующий контракт Hujjat, дополнительных endpoints и изменений БД для этих действий не требуется. Свободное размещение, обтекание, поворот и обрезка в эту панель не входят.
|
|
12
|
+
|
|
13
|
+
## Загрузка и хранение
|
|
14
|
+
|
|
3
15
|
Кнопка «Вставить изображение» добавляет PNG/JPEG в текущую позицию курсора. Вставка работает в абзацах, ячейках и полноэкранном редакторе, поддерживает отмену/повтор. Файл нормализуется перед вставкой: уменьшается разрешение и размер, удаляются метаданные; прозрачность PNG сохраняется.
|
|
4
16
|
|
|
5
17
|
В текущем движке вставка внутри некоторых текстовых фрагментов ячейки ограничена. В таком случае редактор просит установить курсор в начале или конце текста ячейки; самопроизвольного перемещения изображения нет.
|