gpml2pvjson
Version:
convert GPML (XML) to pvjson (json)
147 lines • 6.16 kB
JavaScript
import { defaultsDeepAll } from "lodash/fp";
const FontAttributes = {
Align: "Center",
FontDecoration: "Normal",
FontName: "Arial",
FontSize: 12,
FontStrikethru: "Normal",
FontStyle: "Normal",
FontWeight: "Normal",
lineHeight: 1.1,
overflow: "hidden",
textOverflow: "clip",
Valign: "Top",
whiteSpace: "pre"
};
const ShapeStyleAttributes = {
Color: "Black",
LineStyle: "Solid",
LineThickness: 1,
// the following is/are not in the XSD
Padding: 8
};
/* TODO look at using something like this:
import * as GPML2013a from "../xmlns/pathvisio.org/GPML/2013a";
export class DataNode extends GPML2013a.DataNodeType {
constructor() {
super();
}
Type = "Unknown";
Graphics = defaultsDeepAll([
{
FillColor: "White",
ShapeType: "Rectangle"
},
FontAttributes,
ShapeStyleAttributes
]);
}
//*/
/* or this:
import * as GPML2013a from "../xmlns/pathvisio.org/GPML/2013a";
export class DataNode extends GPML2013a.document.Pathway.DataNode[0]
.constructor {
constructor() {
super();
}
Type = "Unknown";
Graphics = defaultsDeepAll([
{
FillColor: "White",
ShapeType: "Rectangle"
},
FontAttributes,
ShapeStyleAttributes
]);
}
//*/
export const Pathway = {
// These not in the XSD
BoardHeight: 500,
Name: "Untitled Pathway"
};
export const DataNode = {
Type: "Unknown",
Graphics: defaultsDeepAll([
{
FillColor: "White",
ShapeType: "Rectangle"
},
FontAttributes,
ShapeStyleAttributes
])
};
export const Group = {
// these aren't explicitly set in the XSD but maybe should be.
Graphics: {
Align: "Center",
Color: "808080",
Valign: "Middle",
FontSize: 1,
FontWeight: "Bold",
LineThickness: 1,
FillOpacity: 0.1
},
Style: "None"
};
export const Anchor = {
Shape: "None",
Graphics: {
// this isn't explicitly set in the XSD but maybe should be.
LineThickness: 0
}
};
export const GPMLEdge = {
Graphics: {
Color: "Black",
LineStyle: "Solid",
ConnectorType: "Straight",
// This is part of the XSD, but it's equivalent to no Arrowhead.
/*
Point: {
ArrowHead: "Line"
},
//*/
// these aren't explicitly set in the XSD but maybe should be.
FillColor: "None",
LineThickness: 1
}
};
export const GraphicalLine = GPMLEdge;
export const Interaction = GPMLEdge;
export const Label = {
Graphics: defaultsDeepAll([
{
FillColor: "Transparent",
ShapeType: "None"
},
FontAttributes,
ShapeStyleAttributes
])
};
export const Shape = {
Graphics: defaultsDeepAll([
{
FillColor: "Transparent",
FontSize: 10,
Rotation: "Top"
},
FontAttributes,
ShapeStyleAttributes
])
};
export const State = {
StateType: "Unknown",
Graphics: defaultsDeepAll([
{
Align: "Center",
Padding: 1,
FillColor: "White",
FontSize: 10,
ShapeType: "Rectangle",
Valign: "Middle"
},
ShapeStyleAttributes
])
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR1BNTERlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL0dQTUxEZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTVDLE1BQU0sY0FBYyxHQUFHO0lBQ3JCLEtBQUssRUFBRSxRQUFRO0lBQ2YsY0FBYyxFQUFFLFFBQVE7SUFDeEIsUUFBUSxFQUFFLE9BQU87SUFDakIsUUFBUSxFQUFFLEVBQUU7SUFDWixjQUFjLEVBQUUsUUFBUTtJQUN4QixTQUFTLEVBQUUsUUFBUTtJQUNuQixVQUFVLEVBQUUsUUFBUTtJQUNwQixVQUFVLEVBQUUsR0FBRztJQUNmLFFBQVEsRUFBRSxRQUFRO0lBQ2xCLFlBQVksRUFBRSxNQUFNO0lBQ3BCLE1BQU0sRUFBRSxLQUFLO0lBQ2IsVUFBVSxFQUFFLEtBQUs7Q0FDbEIsQ0FBQztBQUVGLE1BQU0sb0JBQW9CLEdBQUc7SUFDM0IsS0FBSyxFQUFFLE9BQU87SUFDZCxTQUFTLEVBQUUsT0FBTztJQUNsQixhQUFhLEVBQUUsQ0FBQztJQUNoQixzQ0FBc0M7SUFDdEMsT0FBTyxFQUFFLENBQUM7Q0FDWCxDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7SUFnQkk7QUFDSjs7Ozs7Ozs7Ozs7Ozs7Ozs7SUFpQkk7QUFFSixNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckIsdUJBQXVCO0lBQ3ZCLFdBQVcsRUFBRSxHQUFHO0lBQ2hCLElBQUksRUFBRSxrQkFBa0I7Q0FDekIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUN0QixJQUFJLEVBQUUsU0FBUztJQUNmLFFBQVEsRUFBRSxlQUFlLENBQUM7UUFDeEI7WUFDRSxTQUFTLEVBQUUsT0FBTztZQUNsQixTQUFTLEVBQUUsV0FBVztTQUN2QjtRQUNELGNBQWM7UUFDZCxvQkFBb0I7S0FDckIsQ0FBQztDQUNILENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsOERBQThEO0lBQzlELFFBQVEsRUFBRTtRQUNSLEtBQUssRUFBRSxRQUFRO1FBQ2YsS0FBSyxFQUFFLFFBQVE7UUFDZixNQUFNLEVBQUUsUUFBUTtRQUNoQixRQUFRLEVBQUUsQ0FBQztRQUNYLFVBQVUsRUFBRSxNQUFNO1FBQ2xCLGFBQWEsRUFBRSxDQUFDO1FBQ2hCLFdBQVcsRUFBRSxHQUFHO0tBQ2pCO0lBQ0QsS0FBSyxFQUFFLE1BQU07Q0FDZCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHO0lBQ3BCLEtBQUssRUFBRSxNQUFNO0lBQ2IsUUFBUSxFQUFFO1FBQ1IsNERBQTREO1FBQzVELGFBQWEsRUFBRSxDQUFDO0tBQ2pCO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUN0QixRQUFRLEVBQUU7UUFDUixLQUFLLEVBQUUsT0FBTztRQUNkLFNBQVMsRUFBRSxPQUFPO1FBQ2xCLGFBQWEsRUFBRSxVQUFVO1FBQ3pCLGdFQUFnRTtRQUNoRTs7OztnQkFJRTtRQUNGLDhEQUE4RDtRQUM5RCxTQUFTLEVBQUUsTUFBTTtRQUNqQixhQUFhLEVBQUUsQ0FBQztLQUNqQjtDQUNGLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsUUFBUSxDQUFDO0FBQ3RDLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUM7QUFFcEMsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ25CLFFBQVEsRUFBRSxlQUFlLENBQUM7UUFDeEI7WUFDRSxTQUFTLEVBQUUsYUFBYTtZQUN4QixTQUFTLEVBQUUsTUFBTTtTQUNsQjtRQUNELGNBQWM7UUFDZCxvQkFBb0I7S0FDckIsQ0FBQztDQUNILENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDbkIsUUFBUSxFQUFFLGVBQWUsQ0FBQztRQUN4QjtZQUNFLFNBQVMsRUFBRSxhQUFhO1lBQ3hCLFFBQVEsRUFBRSxFQUFFO1lBQ1osUUFBUSxFQUFFLEtBQUs7U0FDaEI7UUFDRCxjQUFjO1FBQ2Qsb0JBQW9CO0tBQ3JCLENBQUM7Q0FDSCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ25CLFNBQVMsRUFBRSxTQUFTO0lBQ3BCLFFBQVEsRUFBRSxlQUFlLENBQUM7UUFDeEI7WUFDRSxLQUFLLEVBQUUsUUFBUTtZQUNmLE9BQU8sRUFBRSxDQUFDO1lBQ1YsU0FBUyxFQUFFLE9BQU87WUFDbEIsUUFBUSxFQUFFLEVBQUU7WUFDWixTQUFTLEVBQUUsV0FBVztZQUN0QixNQUFNLEVBQUUsUUFBUTtTQUNqQjtRQUNELG9CQUFvQjtLQUNyQixDQUFDO0NBQ0gsQ0FBQyJ9