solid-ui
Version:
UI library for writing Solid read-write-web applications
121 lines (93 loc) • 3.68 kB
JavaScript
;
document.addEventListener('DOMContentLoaded', function () {
/// ///////////////////////////////////////////
var UI = panes.UI;
var kb = UI.store;
var dom = document;
var uri = window.location.href;
var base = window.document.title = uri.slice(0, uri.lastIndexOf('/') + 1);
var testDocURI = base + 'test.ttl'; // imaginary doc - just use its URL
var testDoc = $rdf.sym(testDocURI); // var subject_uri = testDocURI + '#event1'
// var me_uri = testDocURI + '#a0'
// var me = kb.sym(me_uri)
// var forms_uri = window.document.title = base+ 'forms.ttl';
// var subject = kb.sym(subject_uri)
var div = dom.getElementById('UITestArea');
var showResults = function showResults() {
var prologue = dom.getElementById('Prologue').textContent;
var tests = dom.getElementById('TestData').children;
var inputText = function inputText(tr) {
return tr.children[0].children[0].textContent;
};
var testClass = function testClass(tr) {
return tr.children[0].getAttribute('class');
};
var output = function output(tr) {
return tr.children[1];
};
var t = 0;
try {
$rdf.parse(prologue + inputText(tests[t]), kb, testDocURI, 'text/turtle'); // str, kb, base, contentType
} catch (e) {
output(tests[t]).textContent = e;
}
var options = {
dom: dom
};
var target;
var createFreshWidget = function createFreshWidget() {
target = kb.the(undefined, UI.ns.rdf('type'), UI.ns.ui('Tabs'));
options.predicate = kb.the(target, UI.ns.ui('predicate'));
options.subject = kb.the(target, UI.ns.ui('subject'));
options.ordered = kb.the(target, UI.ns.ui('ordered')).value === '1';
options.orientation = kb.the(target, UI.ns.ui('orientation')).value;
options.onClose = function (e) {}; // Test it can make a close button is a good place
// todo: test both cases
var tabs = div.appendChild(UI.tabs.tabWidget(options));
return tabs;
}; // @@ Give other combos too-- see schedule ontology
// var dataPointForNT = []
// var doc = testDoc
var tabContentCache = [];
options.renderMain = function (container, subject) {
container.innerHTML = '';
if (tabContentCache[subject.uri]) {
container.appendChild(tabContentCache[subject.uri]);
console.log(' used cached copy for ' + subject.uri);
return;
}
var iframe = container.appendChild(dom.createElement('iframe'));
iframe.setAttribute('src', subject.uri);
iframe.setAttribute('style', 'border: 1em solid pink; margin: 2em; padding: 2em; padding-color: green;');
tabContentCache[subject.uri] = iframe;
};
var tabs = div.appendChild(createFreshWidget());
var agenda = [];
var nextTest = function nextTest() {
// First take a copy of the DOM the klast test produced
output(tests[t]).appendChild(tabs.cloneNode(true));
t += 1;
var test = tests[t];
if (!test) return; // var tClass =
kb.removeMany(undefined, undefined, undefined, testDoc); // Flush out previous test data
try {
$rdf.parse(prologue + inputText(tests[t]), kb, testDocURI, 'text/turtle');
} catch (e) {
output(test).textContent = e;
}
if (testClass(test) === 'restart') {
div.removeChild(tabs);
tabs = div.appendChild(createFreshWidget());
} else {
tabs.refresh();
}
setTimeout(nextTest, 2000);
};
agenda.push(nextTest);
setTimeout(function () {
agenda.shift()();
}, 2000);
}; // showResults
showResults();
});
//# sourceMappingURL=test-tabs.js.map