ipyvizzu icon indicating copy to clipboard operation
ipyvizzu copied to clipboard

support event handlers using pyodide

Open simzer opened this issue 2 years ago • 1 comments

Example: This is the example of event usage in the tutorial

click_handler_method = "alert(JSON.stringify(event.data));"
click_handler = click_chart.on("click", click_handler_method)

Which will generate something like this in JS:

click_handler_method = event => { alert(JSON.stringify(event.data)); }
click_handler = chart.on("click", click_handler_method)

The same could be supported with Python syntax:

click_handler_method = "js.alert(json.dumps(event.data))"
click_handler = click_chart.on("click", click_handler_method)

Which would generate something like this in JS:

<script src="https://cdn.jsdelivr.net/pyodide/v0.22.1/full/pyodide.js"></script>
let pyodide = await loadPyodide();
let click_handler_method = (event) => { 
  let handler = pyodide.runPython(`
    def handler(x):
        js.alert(json.dumps(event.data))
    handler
  `);
  handler(event);
};
click_handler = click_chart.on("click", click_handler_method)

simzer avatar Feb 24 '23 19:02 simzer

or micropython https://micropython.org/

simzer avatar Mar 02 '23 15:03 simzer