-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Andreas Blätte
authored and
Andreas Blätte
committed
Dec 14, 2023
1 parent
eb4ae8d
commit 44955c2
Showing
25 changed files
with
4,795 additions
and
21 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
.DiagrammeR,.grViz pre { | ||
white-space: pre-wrap; /* CSS 3 */ | ||
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ | ||
white-space: -pre-wrap; /* Opera 4-6 */ | ||
white-space: -o-pre-wrap; /* Opera 7 */ | ||
word-wrap: break-word; /* Internet Explorer 5.5+ */ | ||
} | ||
|
||
.DiagrammeR g .label { | ||
font-family: Helvetica; | ||
font-size: 14px; | ||
color: #333333; | ||
} | ||
|
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
HTMLWidgets.widget({ | ||
|
||
name: 'grViz', | ||
|
||
type: 'output', | ||
|
||
initialize: function(el, width, height) { | ||
|
||
return { | ||
// TODO: add instance fields as required | ||
}; | ||
}, | ||
|
||
renderValue: function(el, x, instance) { | ||
// Use this to sort of make our diagram responsive | ||
// or at a minimum fit within the bounds set by htmlwidgets | ||
// for the parent container | ||
function makeResponsive(el){ | ||
var svg = el.getElementsByTagName("svg")[0]; | ||
if (svg) { | ||
if (svg.width) {svg.removeAttribute("width")} | ||
if (svg.height) {svg.removeAttribute("height")} | ||
svg.style.width = "100%"; | ||
svg.style.height = "100%"; | ||
} | ||
} | ||
|
||
if (x.diagram !== "") { | ||
|
||
if (typeof x.config === "undefined"){ | ||
x.config = {}; | ||
x.config.engine = "dot"; | ||
x.config.options = {}; | ||
} | ||
|
||
try { | ||
|
||
el.innerHTML = Viz(x.diagram, format="svg", engine=x.config.engine, options=x.config.options); | ||
|
||
makeResponsive(el); | ||
|
||
if (HTMLWidgets.shinyMode) { | ||
// Get widget id | ||
var id = el.id; | ||
|
||
$("#" + id + " .node").click(function(e) { | ||
// Get node id | ||
var nodeid = e.currentTarget.id; | ||
// Get node text object and make an array | ||
var node_texts = $("#" + id + " #" + nodeid + " text"); | ||
//var node_path = $("#" + nodeid + " path")[0]; | ||
var text_array = node_texts.map(function() {return $(this).text(); }).toArray(); | ||
// Build return object *obj* with node-id, node text values and node fill | ||
var obj = { | ||
id: nodeid, | ||
//fill: node_path.attributes.fill.nodeValue, | ||
//outerHMTL: node_path.outerHTML, | ||
nodeValues: text_array | ||
}; | ||
// Send *obj* to Shiny's inputs (input$[id]+_click e.g.: input$vtree_click)) | ||
Shiny.setInputValue(id + "_click", obj, {priority: "event"}); | ||
}); | ||
} | ||
|
||
// set up a container for tasks to perform after completion | ||
// one example would be add callbacks for event handling | ||
// styling | ||
if (typeof x.tasks !== "undefined") { | ||
if ((typeof x.tasks.length === "undefined") || | ||
(typeof x.tasks === "function")) { | ||
// handle a function not enclosed in array | ||
// should be able to remove once using jsonlite | ||
x.tasks = [x.tasks]; | ||
} | ||
x.tasks.map(function(t){ | ||
// for each tasks add it to the mermaid.tasks with el | ||
t.call(el); | ||
}); | ||
} | ||
} catch(e){ | ||
var p = document.createElement("pre"); | ||
p.innerText = e; | ||
el.appendChild(p); | ||
} | ||
} | ||
|
||
}, | ||
|
||
resize: function(el, width, height, instance) { | ||
} | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
// Pandoc 2.9 adds attributes on both header and div. We remove the former (to | ||
// be compatible with the behavior of Pandoc < 2.8). | ||
document.addEventListener('DOMContentLoaded', function(e) { | ||
var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); | ||
var i, h, a; | ||
for (i = 0; i < hs.length; i++) { | ||
h = hs[i]; | ||
if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 | ||
a = h.attributes; | ||
while (a.length > 0) h.removeAttribute(a[0].name); | ||
} | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
// Pandoc 2.9 adds attributes on both header and div. We remove the former (to | ||
// be compatible with the behavior of Pandoc < 2.8). | ||
document.addEventListener('DOMContentLoaded', function(e) { | ||
var hs = document.querySelectorAll("div.section[class*='level'] > :first-child"); | ||
var i, h, a; | ||
for (i = 0; i < hs.length; i++) { | ||
h = hs[i]; | ||
if (!/^h[1-6]$/i.test(h.tagName)) continue; // it should be a header h1-h6 | ||
a = h.attributes; | ||
while (a.length > 0) h.removeAttribute(a[0].name); | ||
} | ||
}); |
Oops, something went wrong.