UNPKG

5.12 kBJavaScriptView Raw
1import { isArray, } from "lodash";
2import { curry, sortBy } from "lodash/fp";
3import { intersectsLSV } from "./spinoffs/jsonld-utils";
4export * from "./geom-utils";
5export * from "./spinoffs/jsonld-utils";
6/*
7 * This is needed because PublicationXref rdf:id values and
8 * GPML GraphId values are not necessarily mutually exclusive
9 * and unique within a given pathway.
10 * For example, WP306, version 80308, has rdf:id="d8a" and
11 * a DataNode with GraphId="d8a".
12 */
13export function generatePublicationXrefId(originalId) {
14 return "publicationXref" + originalId;
15}
16export const insertIfNotExists = curry(function (item, list) {
17 if (list.indexOf(item) === -1) {
18 list.push(item);
19 }
20 return list;
21});
22export function isAttachablePoint(pvjsonPoint) {
23 return pvjsonPoint.hasOwnProperty("attachmentDisplay");
24}
25export function isDefinedCXML(x) {
26 // NOTE: we need the array checks to handle cases like this:
27 // [ XmlType { _exists: false, _extended: true } ]
28 return (typeof x !== "undefined" &&
29 x._exists !== false &&
30 (!isArray(x) || (x.length > 0 && x[0]._exists !== false)));
31}
32export function isPvjsonBurr(entity) {
33 return intersectsLSV(entity.type, "Burr");
34}
35export function isPvjsonGroup(entity) {
36 return (entity.hasOwnProperty("contains") && intersectsLSV(entity.type, "Group"));
37}
38export function isPvjsonSingleFreeNode(entity) {
39 return entity.kaavioType === "SingleFreeNode";
40}
41export function isPvjsonNode(entity) {
42 return ["SingleFreeNode", "Burr", "Group"].indexOf(entity.kaavioType) > -1;
43 /*
44 return (
45 entity.hasOwnProperty("x") &&
46 entity.hasOwnProperty("y") &&
47 entity.hasOwnProperty("width") &&
48 entity.hasOwnProperty("height")
49 );
50 //*/
51}
52export function isPvjsonEdge(entity) {
53 return entity.hasOwnProperty("points");
54}
55export function isPvjsonEdgeOrBurr(entity) {
56 return isPvjsonEdge(entity) || isPvjsonBurr(entity);
57}
58export function isGPMLAnchor(entity) {
59 return entity.gpmlElementName === "Anchor";
60}
61export const sortByMap = curry(function (mapToSortBy, listToSort) {
62 return sortBy(function (listItem) {
63 return mapToSortBy[listItem];
64 }, listToSort);
65});
66export const supportedNamespaces = [
67 "http://pathvisio.org/GPML/2013a",
68 "http://genmapp.org/GPML/2010a",
69 "http://genmapp.org/GPML/2008a",
70 "http://genmapp.org/GPML/2007",
71];
72//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3BtbC11dGlsaXRpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvZ3BtbC11dGlsaXRpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLE9BQU8sR0FNUixNQUFNLFFBQVEsQ0FBQztBQUNoQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFheEQsY0FBYyxjQUFjLENBQUM7QUFFN0IsY0FBYyx5QkFBeUIsQ0FBQztBQUV4Qzs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUseUJBQXlCLENBQUMsVUFBa0I7SUFDMUQsT0FBTyxpQkFBaUIsR0FBRyxVQUFVLENBQUM7QUFDeEMsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxVQUFhLElBQU8sRUFBRSxJQUFTO0lBQ3BFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0tBQ2pCO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUMsQ0FBQztBQUVILE1BQU0sVUFBVSxpQkFBaUIsQ0FDL0IsV0FBb0M7SUFFcEMsT0FBTyxXQUFXLENBQUMsY0FBYyxDQUFDLG1CQUFtQixDQUFDLENBQUM7QUFDekQsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsQ0FBTTtJQUNsQyw0REFBNEQ7SUFDNUQsa0RBQWtEO0lBQ2xELE9BQU8sQ0FDTCxPQUFPLENBQUMsS0FBSyxXQUFXO1FBQ3hCLENBQUMsQ0FBQyxPQUFPLEtBQUssS0FBSztRQUNuQixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUMxRCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBb0I7SUFDL0MsT0FBTyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUFvQjtJQUNoRCxPQUFPLENBQ0wsTUFBTSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsSUFBSSxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FDekUsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQ3BDLE1BQW9CO0lBRXBCLE9BQU8sTUFBTSxDQUFDLFVBQVUsS0FBSyxnQkFBZ0IsQ0FBQztBQUNoRCxDQUFDO0FBRUQsTUFBTSxVQUFVLFlBQVksQ0FBQyxNQUFvQjtJQUMvQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDM0U7Ozs7Ozs7VUFPRztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLE1BQW9CO0lBQy9DLE9BQU8sTUFBTSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUNoQyxNQUFvQjtJQUVwQixPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsTUFBb0I7SUFDL0MsT0FBTyxNQUFNLENBQUMsZUFBZSxLQUFLLFFBQVEsQ0FBQztBQUM3QyxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxVQUM3QixXQUFtQyxFQUNuQyxVQUFvQjtJQUVwQixPQUFPLE1BQU0sQ0FBQyxVQUFVLFFBQVE7UUFDOUIsT0FBTyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDL0IsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQ2pCLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUc7SUFDakMsaUNBQWlDO0lBQ2pDLCtCQUErQjtJQUMvQiwrQkFBK0I7SUFDL0IsOEJBQThCO0NBQy9CLENBQUMifQ==
\No newline at end of file