gpml2pvjson
Version:
convert GPML (XML) to pvjson (json)
95 lines • 6.39 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.supportedNamespaces = exports.sortByMap = exports.isGPMLAnchor = exports.isPvjsonEdgeOrBurr = exports.isPvjsonEdge = exports.isPvjsonNode = exports.isPvjsonSingleFreeNode = exports.isPvjsonGroup = exports.isPvjsonBurr = exports.isDefinedCXML = exports.isAttachablePoint = exports.insertIfNotExists = exports.generatePublicationXrefId = void 0;
var lodash_1 = require("lodash");
var fp_1 = require("lodash/fp");
var jsonld_utils_1 = require("./spinoffs/jsonld-utils");
__exportStar(require("./geom-utils"), exports);
__exportStar(require("./spinoffs/jsonld-utils"), exports);
/*
* This is needed because PublicationXref rdf:id values and
* GPML GraphId values are not necessarily mutually exclusive
* and unique within a given pathway.
* For example, WP306, version 80308, has rdf:id="d8a" and
* a DataNode with GraphId="d8a".
*/
function generatePublicationXrefId(originalId) {
return "publicationXref" + originalId;
}
exports.generatePublicationXrefId = generatePublicationXrefId;
exports.insertIfNotExists = fp_1.curry(function (item, list) {
if (list.indexOf(item) === -1) {
list.push(item);
}
return list;
});
function isAttachablePoint(pvjsonPoint) {
return pvjsonPoint.hasOwnProperty("attachmentDisplay");
}
exports.isAttachablePoint = isAttachablePoint;
function isDefinedCXML(x) {
// NOTE: we need the array checks to handle cases like this:
// [ XmlType { _exists: false, _extended: true } ]
return (typeof x !== "undefined" &&
x._exists !== false &&
(!lodash_1.isArray(x) || (x.length > 0 && x[0]._exists !== false)));
}
exports.isDefinedCXML = isDefinedCXML;
function isPvjsonBurr(entity) {
return jsonld_utils_1.intersectsLSV(entity.type, "Burr");
}
exports.isPvjsonBurr = isPvjsonBurr;
function isPvjsonGroup(entity) {
return (entity.hasOwnProperty("contains") && jsonld_utils_1.intersectsLSV(entity.type, "Group"));
}
exports.isPvjsonGroup = isPvjsonGroup;
function isPvjsonSingleFreeNode(entity) {
return entity.kaavioType === "SingleFreeNode";
}
exports.isPvjsonSingleFreeNode = isPvjsonSingleFreeNode;
function isPvjsonNode(entity) {
return ["SingleFreeNode", "Burr", "Group"].indexOf(entity.kaavioType) > -1;
/*
return (
entity.hasOwnProperty("x") &&
entity.hasOwnProperty("y") &&
entity.hasOwnProperty("width") &&
entity.hasOwnProperty("height")
);
//*/
}
exports.isPvjsonNode = isPvjsonNode;
function isPvjsonEdge(entity) {
return entity.hasOwnProperty("points");
}
exports.isPvjsonEdge = isPvjsonEdge;
function isPvjsonEdgeOrBurr(entity) {
return isPvjsonEdge(entity) || isPvjsonBurr(entity);
}
exports.isPvjsonEdgeOrBurr = isPvjsonEdgeOrBurr;
function isGPMLAnchor(entity) {
return entity.gpmlElementName === "Anchor";
}
exports.isGPMLAnchor = isGPMLAnchor;
exports.sortByMap = fp_1.curry(function (mapToSortBy, listToSort) {
return fp_1.sortBy(function (listItem) {
return mapToSortBy[listItem];
}, listToSort);
});
exports.supportedNamespaces = [
"http://pathvisio.org/GPML/2013a",
"http://genmapp.org/GPML/2010a",
"http://genmapp.org/GPML/2008a",
"http://genmapp.org/GPML/2007",
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3BtbC11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZ3BtbC11dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBLGlDQVNnQjtBQUNoQixnQ0FBMEM7QUFDMUMsd0RBQXdEO0FBYXhELCtDQUE2QjtBQUU3QiwwREFBd0M7QUFFeEM7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IseUJBQXlCLENBQUMsVUFBa0I7SUFDMUQsT0FBTyxpQkFBaUIsR0FBRyxVQUFVLENBQUM7QUFDeEMsQ0FBQztBQUZELDhEQUVDO0FBRVksUUFBQSxpQkFBaUIsR0FBRyxVQUFLLENBQUMsVUFBYSxJQUFPLEVBQUUsSUFBUztJQUNwRSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUNqQjtJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDLENBQUM7QUFFSCxTQUFnQixpQkFBaUIsQ0FDL0IsV0FBb0M7SUFFcEMsT0FBTyxXQUFXLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDekQsQ0FBQztBQUpELDhDQUlDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLENBQU07SUFDbEMsNERBQTREO0lBQzVELGtEQUFrRDtJQUNsRCxPQUFPLENBQ0wsT0FBTyxDQUFDLEtBQUssV0FBVztRQUN4QixDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUs7UUFDbkIsQ0FBQyxDQUFDLGdCQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQzFELENBQUM7QUFDSixDQUFDO0FBUkQsc0NBUUM7QUFFRCxTQUFnQixZQUFZLENBQUMsTUFBb0I7SUFDL0MsT0FBTyw0QkFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDNUMsQ0FBQztBQUZELG9DQUVDO0FBRUQsU0FBZ0IsYUFBYSxDQUFDLE1BQW9CO0lBQ2hELE9BQU8sQ0FDTCxNQUFNLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxJQUFJLDRCQUFhLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FDekUsQ0FBQztBQUNKLENBQUM7QUFKRCxzQ0FJQztBQUVELFNBQWdCLHNCQUFzQixDQUNwQyxNQUFvQjtJQUVwQixPQUFPLE1BQU0sQ0FBQyxVQUFVLEtBQUssZ0JBQWdCLENBQUM7QUFDaEQsQ0FBQztBQUpELHdEQUlDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLE1BQW9CO0lBQy9DLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMzRTs7Ozs7OztVQU9HO0FBQ0wsQ0FBQztBQVZELG9DQVVDO0FBRUQsU0FBZ0IsWUFBWSxDQUFDLE1BQW9CO0lBQy9DLE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRkQsb0NBRUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FDaEMsTUFBb0I7SUFFcEIsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3RELENBQUM7QUFKRCxnREFJQztBQUVELFNBQWdCLFlBQVksQ0FBQyxNQUFvQjtJQUMvQyxPQUFPLE1BQU0sQ0FBQyxlQUFlLEtBQUssUUFBUSxDQUFDO0FBQzdDLENBQUM7QUFGRCxvQ0FFQztBQUVZLFFBQUEsU0FBUyxHQUFHLFVBQUssQ0FBQyxVQUM3QixXQUFtQyxFQUNuQyxVQUFvQjtJQUVwQixPQUFPLFdBQU0sQ0FBQyxVQUFVLFFBQVE7UUFDOUIsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0IsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyxDQUFDO0FBRVUsUUFBQSxtQkFBbUIsR0FBRztJQUNqQyxpQ0FBaUM7SUFDakMsK0JBQStCO0lBQy9CLCtCQUErQjtJQUMvQiw4QkFBOEI7Q0FDL0IsQ0FBQyJ9