JSFiddle - React, Tailwind, and code Playground
HTML
<script src=" //static.tumblr.com/lxn1yld/5COo5p2zr/fireworks.js"></script>
<link rel="stylesheet" href=" //static.tumblr.com/lxn1yld/IaIo5p31k/app.css">
JavaScript
(function(){
if (!window.addEventListener || !window.localStorage || !window.requestAnimationFrame)
return;
var options = INSTALL_OPTIONS;
function ensureProtocol(url) {
if (!url || url === '') {
return url;
}
if (!/^https?:\/\//i.test(url) && /^[^\/]+\.[^\/]+\//.test(url)) {
return 'http://' + url;
}
return url;
}
function setOptions(opts) {
options = opts;
render();
if (!shown)
show();
}
var backdrop = document.createElement('eager-fireworks-backdrop');
document.body.appendChild(backdrop);
var dialog = document.createElement('eager-fireworks-dialog');
document.body.appendChild(dialog);
var content = document.createElement('eager-fireworks-dialog-content');
dialog.appendChild(content);
var closeButton = document.createElement('eager-fireworks-dialog-close');
closeButton.addEventListener('click', hide);
function render() {
dialog.setAttribute('eager-fireworks-theme', options.theme);
var html = '';
if (options.image) {
if (options.link) {
html += '<a href="' + ensureProtocol(options.link) + '">';
}
html += '<img src="' + options.image + '">';
if (options.link) {
html += '</a>';
}
}
if (options.heading || options.message.html !== '') {
html += '<eager-fireworks-dialog-content-text>';
if (options.heading) {
html += '<h2>' + options.heading + '</h2>';
}
html += options.message.html;
html += '</eager-fireworks-dialog-content-text>';
}
content.innerHTML = html;
content.appendChild(closeButton);
}
var boundEls = [backdrop, dialog];
for (var i=boundEls.length; i--;){
(function(i){
boundEls[i].addEventListener('click', function(e){
if (e.target === boundEls[i] && shown){
hide();
e.preventDefault();
}
});
})(i);
}
var shown = false;
function show() {
INSTALL_SCOPE.fireworks.start();
...