API générale
La Facade API racine associe l’environnement Univer commun aux plugins Slides enregistrés par cette application. Cette page présente les commandes, les événements, l’historique et le cycle de vie des unités sans supposer une expérience d’un autre type de document Univer. Pour les objets de présentation, poursuivez avec API Univer Slides.
Créer l’objet API
Créez un wrapper FUniver après avoir enregistré l’instance Univer et les plugins requis :
import { FUniver } from '@univerjs/core/facade'const univerAPI = FUniver.newAPI(univer)Les entrées Facade importées avant cet appel ajoutent les méthodes Slides au même objet.
Commandes
executeCommand() exécute une commande enregistrée de façon asynchrone. N’utilisez syncExecuteCommand() que si cette commande prend explicitement en charge l’exécution synchrone. Préférez les méthodes Facade pour les opérations Slides courantes.
Événements
const commandLog = univerAPI.addEvent( univerAPI.Event.CommandExecuted, ({ id }) => console.log('Executed:', id))// Supprimez ensuite l’écouteur.commandLog.dispose()Utilisez BeforeCommandExecute pour inspecter ou annuler une commande. LifeCycleChanged indique lorsque l’éditeur atteint des étapes telles que Rendered et Steady.
Annuler et rétablir
Ces opérations ciblent l’unité Univer actuellement active et renvoient des promesses :
await univerAPI.undo()await univerAPI.redo()Les mutations de la Facade Slides empruntent le pipeline de commandes et participent donc au même historique lorsqu’elles sont prises en charge.
Presse-papiers système
Avec UniverSlidesUIPlugin enregistré et le focus sur le canevas Slides, copy() copie la sélection courante et paste() insère le contenu du presse-papiers via les commandes UI de Slides.
import '@univerjs/ui/facade'await univerAPI.copy()await univerAPI.paste()Le menu contextuel du canevas propose le collage normal, en texte et en image. Le mode texte crée une zone de texte modifiable. Le mode image utilise les fichiers image ou les ressources image du HTML du presse-papiers ; il ne convertit pas un contenu quelconque en image.
Pendant l’édition de texte dans une forme ou un tableau, l’éditeur propose Conserver la mise en forme source, Adapter à la destination et Conserver uniquement le texte, ainsi qu’un menu de format après collage.
Ces opérations nécessitent le focus dans un éditeur du navigateur et les permissions du presse-papiers. Elles ne fonctionnent pas dans un environnement Node.js limité au modèle. Si la lecture est bloquée, utilisez le raccourci système de collage.
UI
La Facade UI peut afficher un message, ouvrir une boîte de dialogue ou une barre latérale, enregistrer des composants et contrôler les zones intégrées :
univerAPI .showMessage({ content: 'Presentation saved', type: 'success' }) .setUIVisible(univerAPI.Enum.BuiltInUIPart.TOOLBAR, true)Ces méthodes nécessitent UniverUIPlugin ; les commandes d’édition Slides nécessitent aussi UniverSlidesUIPlugin.
WebSocket
WebSocket est une capacité facultative de la 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'))Le protocole, l’authentification, la reconnexion et les conflits restent à la charge de l’application hôte.
Énumérations
univerAPI.Enum expose les énumérations communes et celles ajoutées par Slides :
const lifecycle = univerAPI.Enum.LifecycleStages.Steadyconst transition = univerAPI.Enum.SlideTransitionTypeEnum.Fadeconst elementType = univerAPI.Enum.SlidePageElementTypeEnum.ShapeUtilitaires
univerAPI.Util expose des aides partagées, notamment le formatage des nombres, les opérations sur les rectangles et les outils communs :
const payload = univerAPI.Util.tools.deepClone({ slideId: 'slide-1', selectedElementIds: ['element-1'],})Que pensez-vous de ce guide ?