📄️ Architecture
This project is structured as a pnpm monorepo as follows:
📄️ Dependencies
Development stack
📄️ Rendering
OpenSeadragon is used for displaying images and labels. OpenSeadragon was chosen over other alternatives for maturity (stability, large community, active development) and legacy (TissUUmaps 3) reasons.
📄️ Plugins
The entire Zustand store is exposed to plugins via window.TissUUmaps. Plugins can for example get the current value of myProperty using window.TissUUmaps.getState().myProperty, set its value to myValue using window.TissUUmaps.setState((state) => { state.myProperty = myValue; }), or call the action myFunction using window.TissUUmaps.getState().myFunction(...).