import type { ControlType, DropdownOption, FieldColor } from '../domain/types';
|
|
export interface InsertTypedControlSpec {
|
alias: string;
|
color?: FieldColor;
|
controlType: Exclude<ControlType, 'text'>;
|
defaultChecked: boolean;
|
defaultValue: string;
|
options: DropdownOption[];
|
placeholder: string;
|
selectedIndex: number;
|
tag: string;
|
}
|
|
export interface WriteTextDefaultSpec {
|
tag: string;
|
value: string;
|
}
|
|
export interface OnlyOfficeRange {
|
GetText?: () => string;
|
}
|
|
export interface OnlyOfficeContentControl {
|
AddElement?: (value: unknown, index: number) => unknown;
|
GetAlias?: () => string;
|
GetInternalId?: () => string;
|
GetRange?: () => OnlyOfficeRange;
|
GetTag: () => string;
|
IsBlockLevel?: () => boolean;
|
IsCheckBox?: () => boolean;
|
IsComboBox?: () => boolean;
|
IsDatePicker?: () => boolean;
|
IsDropDownList?: () => boolean;
|
RemoveAllElements?: () => unknown;
|
SetAlias?: (value: string) => unknown;
|
SetAppearance?: (value: string) => unknown;
|
SetColor?: (value: unknown) => unknown;
|
SetDate?: (value: Date) => unknown;
|
SetLock?: (value: string) => unknown;
|
SetPlaceholderText?: (value: string) => unknown;
|
SetTag?: (value: string) => unknown;
|
}
|
|
export interface OnlyOfficeParagraph {
|
AddInlineLvlSdt: (control: OnlyOfficeContentControl) => unknown;
|
AddText: (value: string) => unknown;
|
}
|
|
export interface OnlyOfficeRun {
|
AddText?: (value: string) => unknown;
|
}
|
|
export interface OnlyOfficeDocument {
|
GetAllContentControls: () => OnlyOfficeContentControl[];
|
InsertContent?: (items: unknown[], replaceSelection: boolean) => unknown;
|
SetTrackRevisions?: (enabled: boolean) => unknown;
|
}
|
|
export interface OnlyOfficeApi {
|
CreateBlockLvlSdt?: () => OnlyOfficeContentControl;
|
CreateCheckBoxContentControl?: (properties: { checked: boolean; checkedSymbol: number; uncheckedSymbol: number }) => OnlyOfficeContentControl;
|
CreateComboBoxContentControl?: (options: DropdownOption[], selectedIndex: number) => OnlyOfficeContentControl;
|
CreateDatePickerContentControl?: (properties: { format: string; lang: string }) => OnlyOfficeContentControl;
|
CreateParagraph: () => OnlyOfficeParagraph;
|
CreateRGBColor?: (r: number, g: number, b: number) => unknown;
|
CreateRun: () => OnlyOfficeRun;
|
GetDocument: () => OnlyOfficeDocument;
|
}
|
|
export interface OnlyOfficeScope {
|
[key: string]: unknown;
|
elnTemplateInsert?: InsertTypedControlSpec;
|
elnTemplateList?: Record<string, never>;
|
elnTemplateReview?: Record<string, never>;
|
elnTemplateTextDefault?: WriteTextDefaultSpec;
|
}
|
|
export interface OfficeContentControl {
|
Alias?: string;
|
ControlType?: ControlType;
|
InternalId?: string;
|
Tag?: string;
|
}
|
|
export type OnlyOfficeCommand = () => string;
|
|
export interface AscPlugin {
|
button?: (id: number) => void;
|
callCommand: (command: OnlyOfficeCommand, isClose: boolean, isCalc: boolean, callback: (result: unknown) => void) => boolean | void;
|
executeCommand: (command: string, data: string) => unknown;
|
executeMethod: (name: string, args: unknown[], callback: (result: unknown) => void) => boolean | void;
|
info?: { options?: unknown };
|
init?: () => void;
|
onThemeChanged?: (theme: unknown) => void;
|
onThemeChangedBase: (theme: unknown) => void;
|
}
|
|
export interface AscGlobal {
|
plugin: AscPlugin;
|
scope: OnlyOfficeScope;
|
}
|
|
declare global {
|
const Api: OnlyOfficeApi;
|
const Asc: { scope: OnlyOfficeScope };
|
|
interface Window {
|
Asc?: AscGlobal;
|
}
|
}
|