Перейти к содержимому
FastOffice

Interaction Extension Profile

Контракт для пилота: семантическая цель, минимальный session API и события, которые фиксируются до начала интеграции.

Статус раздела Ниже — рекомендуемый публичный контракт, который следует включить в спецификацию и заморозить версиями. Это не утверждение, что все методы уже экспортированы текущим bounded Surface Host.

ПРЕДЛАГАЕМАЯ ПУБЛИЧНАЯ СХЕМА 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 };
}

ПРЕДЛАГАЕМЫЙ ВНЕШНИЙ 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>;
}
Событие Когда Обязательные поля
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

Ассистент документации

Ответ собран из документации и может быть неточным — сверяйтесь с источниками.