mirror of
				https://github.com/mermaid-js/mermaid.git
				synced 2025-11-04 12:54:08 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
import { Base64 } from 'js-base64';
 | 
						|
import mermaid2 from '../../src/mermaid';
 | 
						|
 | 
						|
/**
 | 
						|
 * ##contentLoaded
 | 
						|
 * Callback function that is called when page is loaded. This functions fetches configuration for mermaid rendering and
 | 
						|
 * calls init for rendering the mermaid diagrams on the page.
 | 
						|
 */
 | 
						|
const contentLoaded = function() {
 | 
						|
  let pos = document.location.href.indexOf('?graph=');
 | 
						|
  if (pos > 0) {
 | 
						|
    pos = pos + 7;
 | 
						|
    const graphBase64 = document.location.href.substr(pos);
 | 
						|
    const graphObj = JSON.parse(Base64.decode(graphBase64));
 | 
						|
    // const graph = 'hello'
 | 
						|
    console.log(graphObj);
 | 
						|
    const div = document.createElement('div');
 | 
						|
    div.id = 'block';
 | 
						|
    div.className = 'mermaid';
 | 
						|
    div.innerHTML = graphObj.code;
 | 
						|
    document.getElementsByTagName('body')[0].appendChild(div);
 | 
						|
    global.mermaid.initialize(graphObj.mermaid);
 | 
						|
    // console.log('graphObj.mermaid', graphObj.mermaid)
 | 
						|
    global.mermaid.init();
 | 
						|
  }
 | 
						|
};
 | 
						|
const contentLoadedApi = function() {
 | 
						|
  let pos = document.location.href.indexOf('?graph=');
 | 
						|
  if (pos > 0) {
 | 
						|
    pos = pos + 7;
 | 
						|
    const graphBase64 = document.location.href.substr(pos);
 | 
						|
    const graphObj = JSON.parse(Base64.decode(graphBase64));
 | 
						|
    // const graph = 'hello'
 | 
						|
    const div = document.createElement('div');
 | 
						|
    div.id = 'block';
 | 
						|
    div.className = 'mermaid';
 | 
						|
    // div.innerHTML = graphObj.code
 | 
						|
    document.getElementsByTagName('body')[0].appendChild(div);
 | 
						|
    global.mermaid.initialize(graphObj.mermaid);
 | 
						|
 | 
						|
    mermaid2.render(
 | 
						|
      'newid',
 | 
						|
      graphObj.code,
 | 
						|
      (svgCode, bindFunctions) => {
 | 
						|
        div.innerHTML = svgCode;
 | 
						|
 | 
						|
        bindFunctions(div);
 | 
						|
      },
 | 
						|
      div
 | 
						|
    );
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
if (typeof document !== 'undefined') {
 | 
						|
  /*!
 | 
						|
   * Wait for document loaded before starting the execution
 | 
						|
   */
 | 
						|
  window.addEventListener(
 | 
						|
    'load',
 | 
						|
    function() {
 | 
						|
      if (this.location.href.match('xss.html')) {
 | 
						|
        this.console.log('Using api');
 | 
						|
        contentLoadedApi();
 | 
						|
      } else {
 | 
						|
        this.console.log('Not using api');
 | 
						|
        contentLoaded();
 | 
						|
      }
 | 
						|
    },
 | 
						|
    false
 | 
						|
  );
 | 
						|
}
 |