@wsdot/geospatial-metadata
Version:
A library for parsing and converting Geospatial metadata XML
88 lines (87 loc) • 3.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var edomProps = {
edomv: "Value",
edomvd: "Definition",
edomvds: "Definition Source"
};
var rdomProps = {
rdommin: "Minimum",
rdommax: "Maximum",
attrunit: "Units of Measure",
attrmres: "Measurement Resolution"
};
var codesetd = {
codesetn: "Name",
codesets: "Source"
};
function formatElementAsTable(rootElement, columns) {
var e_1, _a, e_2, _b;
if (!columns) {
if (rootElement.nodeName === "attrdomv") {
columns = {
edomv: "Value",
edomvd: "Definition",
edomvds: "Definition Source"
};
}
else {
throw Error("Cannot autodetect columns for " + rootElement.nodeName);
}
}
var table = document.createElement("table");
var head = table.createTHead();
var tbody = table.createTBody();
var row = document.createElement("tr");
head.appendChild(row);
var colElementNames = new Array();
for (var colName in columns) {
if (columns.hasOwnProperty(colName)) {
var colText = columns[colName];
var th = document.createElement("th");
th.scope = "col";
th.textContent = colText;
row.appendChild(th);
colElementNames.push(colName);
}
}
if (rootElement.hasChildNodes()) {
try {
for (var _c = tslib_1.__values(Array.from(rootElement.childNodes)), _d = _c.next(); !_d.done; _d = _c.next()) {
var domain = _d.value;
row = table.insertRow(-1);
var cellNodes = Array.from(domain.childNodes);
var _loop_1 = function (name_1) {
var cell = row.insertCell(-1);
var node = cellNodes.find(function (n) { return n.nodeName === name_1; });
if (node) {
cell.textContent = node.textContent;
}
};
try {
for (var colElementNames_1 = tslib_1.__values(colElementNames), colElementNames_1_1 = colElementNames_1.next(); !colElementNames_1_1.done; colElementNames_1_1 = colElementNames_1.next()) {
var name_1 = colElementNames_1_1.value;
_loop_1(name_1);
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (colElementNames_1_1 && !colElementNames_1_1.done && (_b = colElementNames_1.return)) _b.call(colElementNames_1);
}
finally { if (e_2) throw e_2.error; }
}
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
}
finally { if (e_1) throw e_1.error; }
}
}
return table;
}
exports.formatElementAsTable = formatElementAsTable;