Общий API
Корневой Facade API объединяет общий рантайм Univer с плагинами Slides, зарегистрированными в приложении. На этой странице описаны команды, события, история и жизненный цикл Unit без предположения, что читатель знаком с другим типом документов Univer. Объекты презентации описаны в разделе API Univer Slides.
Создание объекта API
Создайте обёртку FUniver после регистрации экземпляра Univer и необходимых плагинов:
import { FUniver } from '@univerjs/core/facade'const univerAPI = FUniver.newAPI(univer)Импортированные до этого вызова Facade-модули добавляют методы Slides в тот же объект.
Команды
executeCommand() асинхронно выполняет зарегистрированную команду. Используйте syncExecuteCommand() только для команд, которые явно поддерживают синхронное выполнение. Для обычных операций Slides предпочтительны методы Facade.
События
const commandLog = univerAPI.addEvent( univerAPI.Event.CommandExecuted, ({ id }) => console.log('Executed:', id))// Удалите слушатель, когда он больше не нужен.commandLog.dispose()Событие BeforeCommandExecute позволяет проверить или отменить команду. LifeCycleChanged сообщает о достижении редактором этапов Rendered, Steady и других.
Отмена и повтор
Отмена и повтор действуют на текущий Unit Univer в фокусе и возвращают Promise:
await univerAPI.undo()await univerAPI.redo()Изменения Slides Facade проходят через командный конвейер, поэтому поддерживаемые операции входят в ту же историю.
Системный буфер обмена
После регистрации UniverSlidesUIPlugin, когда фокус находится на холсте Slides, copy() копирует выделение, а paste() вставляет содержимое буфера обмена через команды UI Slides.
import '@univerjs/ui/facade'await univerAPI.copy()await univerAPI.paste()Контекстное меню холста поддерживает обычную вставку, вставку как текста и как изображения. Текстовый режим создаёт редактируемое текстовое поле. Режим изображения использует файлы изображений или изображения из HTML буфера обмена; он не превращает произвольное содержимое в картинку.
При редактировании текста в фигуре или таблице доступны Сохранить исходное форматирование, Использовать форматирование назначения, Сохранить только текст, а также меню форматирования после вставки.
Требуются фокус в браузерном редакторе и разрешения буфера обмена; в Node.js без UI эти операции недоступны. Если чтение буфера заблокировано, используйте системное сочетание клавиш для вставки.
UI
Facade UI умеет показывать сообщения, открывать диалоги и боковые панели, регистрировать компоненты и управлять встроенными областями:
univerAPI .showMessage({ content: 'Presentation saved', type: 'success' }) .setUIVisible(univerAPI.Enum.BuiltInUIPart.TOOLBAR, true)Эти методы требуют UniverUIPlugin, а элементы редактирования Slides — также UniverSlidesUIPlugin.
WebSocket
WebSocket — необязательная возможность Network Facade:
import { UniverNetworkPlugin } from '@univerjs/network'import '@univerjs/network/facade'univer.registerPlugin(UniverNetworkPlugin)const socket = univerAPI.createSocket('wss://example.com/slides')socket.open$.subscribe(() => socket.send('ready'))Протокол, аутентификация, переподключение и конфликты остаются ответственностью приложения.
Перечисления
univerAPI.Enum содержит общие перечисления и перечисления Slides:
const lifecycle = univerAPI.Enum.LifecycleStages.Steadyconst transition = univerAPI.Enum.SlideTransitionTypeEnum.Fadeconst elementType = univerAPI.Enum.SlidePageElementTypeEnum.ShapeУтилиты
univerAPI.Util предоставляет общие средства форматирования чисел, операций с прямоугольниками и другие инструменты:
const payload = univerAPI.Util.tools.deepClone({ slideId: 'slide-1', selectedElementIds: ['element-1'],})Насколько полезно это руководство?