Interaction Extension Profile
Контракт для пилота: семантическая цель, минимальный session API и события, которые фиксируются до начала интеграции.
| Статус раздела Ниже — рекомендуемый публичный контракт, который следует включить в спецификацию и заморозить версиями. Это не утверждение, что все методы уже экспортированы текущим bounded Surface Host. |
|---|
6.1. Семантическая цель
Заголовок раздела «6.1. Семантическая цель»ПРЕДЛАГАЕМАЯ ПУБЛИЧНАЯ СХЕМА V1
export interface DocumentTarget { kind: "paragraph" | "run" | "table" | "tableCell" | "image" | "comment" | "field" | "header" | "footer" | "hostObject"; nodeId: string; // стабильный ID в пределах revision revision: number; ancestors: Array<{ kind: string; nodeId: string }>; capabilities: string[]; // read, editText, insertRow, openProperties... hostData?: { type: string; id: string };}6.2. Минимальный session API
Заголовок раздела «6.2. Минимальный session API»ПРЕДЛАГАЕМЫЙ ВНЕШНИЙ TYPESCRIPT API
interface A4DocumentSession { getDocumentSnapshot(options?: { depth: "semantic" }): Promise<Model>; getProjection(request: ProjectionRequest): Promise<Projection>; hitTest(point: PagePoint): Promise<HitResult>; getSelection(): Promise<SelectionSnapshot>; getCommandState(target: DocumentTarget): Promise<CommandState>; execute(request: ExecuteRequest): Promise<CommandReceipt>; executeBatch(request: AtomicBatchRequest): Promise<BatchReceipt>; save(request: SaveRequest): Promise<SaveReceipt>;}6.3. События
Заголовок раздела «6.3. События»| Событие | Когда | Обязательные поля |
|---|---|---|
| selectionChanged | Изменилось выделение/caret | selection, revision, source |
| elementActivated | Click, double-click или клавиатурная активация | gesture, target, hit, selection |
| contextMenuRequested | Перед показом меню | requestId, target, point, builtInItems |
| contentChanged | Принята документная команда | revision, receipt, changedNodeIds |
| commandStateChanged | Изменились enabled/visible/check state | target, states |
| dirtyChanged / saved / error | Lifecycle и persistence | revision/path/error envelope |