in themes/tfjs/source/js/codeSnippets.js [134:179]
function initCodeBlocks(selector) {
// Find all the code blocks.
var jsBlocks =
Array.prototype.slice.call(document.querySelectorAll(selector));
jsBlocks.forEach(function(block) {
var consoleElement = document.createElement('div');
consoleElement.className = 'snippet-console';
var consoleRunElement = document.createElement('button');
consoleRunElement.innerText = 'Run';
consoleRunElement.className = 'snippet-run-button';
var consoleEditElement = document.createElement('button');
consoleEditElement.innerText = 'Edit';
consoleEditElement.className = 'snippet-edit-button';
var consoleLogElement = document.createElement('div');
consoleLogElement.className = 'snippet-console-log';
consoleElement.appendChild(consoleLogElement);
consoleElement.appendChild(consoleEditElement);
consoleElement.appendChild(consoleRunElement);
block.parentElement.insertAdjacentElement('afterend', consoleElement);
consoleRunElement.addEventListener('click', function() {
var consoleLogElement =
this.parentElement.querySelector('.snippet-console-log');
var snippetText;
if (block.codeMirror) {
snippetText = block.codeMirror.getValue();
} else {
snippetText = this.parentElement.previousElementSibling.innerText;
}
executeCodeSnippet(consoleLogElement, snippetText);
});
consoleEditElement.addEventListener('click', function() {
makeEditable(block);
this.disabled = true;
});
});
}