mermaid: fix broken zoom since update to v10 #608

This commit is contained in:
Sören Weber 2023-08-07 23:32:38 +02:00
parent 3dada8b058
commit e837822172
No known key found for this signature in database
GPG key ID: BEC6D55545451B6D

View file

@ -277,18 +277,23 @@ function initMermaid( update, attrs ) {
var is_initialized = ( update ? update_func( attrs ) : init_func( attrs ) );
if( is_initialized ){
mermaid.initialize( Object.assign( { "securityLevel": "antiscript", "startOnLoad": false }, window.relearn.mermaidConfig, { theme: attrs.theme } ) );
mermaid.run();
// zoom for Mermaid
// https://github.com/mermaid-js/mermaid/issues/1860#issuecomment-1345440607
var svgs = d3.selectAll( '.mermaid.zoom svg' );
svgs.each( function(){
var svg = d3.select( this );
svg.html( '<g>' + svg.html() + '</g>' );
var inner = svg.select( 'g' );
var zoom = d3.zoom().on( 'zoom', function( e ){
inner.attr( 'transform', e.transform);
});
svg.call( zoom );
mermaid.run({
postRenderCallback: function(){
// zoom for Mermaid
// https://github.com/mermaid-js/mermaid/issues/1860#issuecomment-1345440607
var svgs = d3.selectAll( '.mermaid.zoom svg' );
svgs.each( function(){
var svg = d3.select( this );
svg.html( '<g>' + svg.html() + '</g>' );
var inner = svg.select( 'g' );
var zoom = d3.zoom().on( 'zoom', function( e ){
inner.attr( 'transform', e.transform);
});
svg.call( zoom );
});
},
querySelector: '.mermaid',
suppressErrors: true
});
}
if( update && search && search.length ){