diff --git a/dist/ueblueprint.js b/dist/ueblueprint.js index fc671fc..2508c66 100644 --- a/dist/ueblueprint.js +++ b/dist/ueblueprint.js @@ -829,7 +829,7 @@ class GuidEntity extends Entity { } let guid = ""; values.forEach(n => { - guid += ('00000000' + n.toString(16).toUpperCase()).slice(-8); + guid += ("0".repeat(8) + n.toString(16).toUpperCase()).slice(-8); }); return new GuidEntity({ valud: guid }) } @@ -2097,6 +2097,34 @@ class Blueprint extends GraphElement { customElements.define('u-blueprint', Blueprint); +class GraphLink extends GraphElement { + + /** + * + * @typedef {{ + * node: String, + * pin: String + * }} PinReference + * @param {?PinReference} source + * @param {?PinReference} destination + */ + constructor(source, destination) { + super(); + this.source = source; + this.destination = destination; + } + + render() { + return ` + + + + ` + } +} + +customElements.define('u-link', GraphLink); + class GeneralSerializer extends Serializer { constructor(wrap, entityType, prefix, separator, trailingSeparator, attributeValueConjunctionSign, attributeKeyPrinter) { @@ -2133,34 +2161,6 @@ class CustomSerializer extends GeneralSerializer { } } -class GraphLink extends GraphElement { - - /** - * - * @typedef {{ - * node: String, - * pin: String - * }} PinReference - * @param {?PinReference} source - * @param {?PinReference} destination - */ - constructor(source, destination) { - super(); - this.source = source; - this.destination = destination; - } - - render() { - return ` - - - - ` - } -} - -customElements.define('u-link', GraphLink); - class ToStringSerializer extends GeneralSerializer { constructor(entityType) { @@ -2173,38 +2173,42 @@ class ToStringSerializer extends GeneralSerializer { } } -SerializerFactory.registerSerializer( - ObjectEntity, - new ObjectSerializer() -); -SerializerFactory.registerSerializer( - PinEntity, - new GeneralSerializer(v => `Pin (${v})`, PinEntity, "", ",", true) -); -SerializerFactory.registerSerializer( - FunctionReferenceEntity, - new GeneralSerializer(v => `(${v})`, FunctionReferenceEntity, "", ",", false) -); -SerializerFactory.registerSerializer( - LocalizedTextEntity, - new GeneralSerializer(v => `NSLOCTEXT(${v})`, LocalizedTextEntity, "", ",", false, "", _ => "") -); -SerializerFactory.registerSerializer( - PinReferenceEntity, - new GeneralSerializer(v => v, PinReferenceEntity, "", " ", false, "", _ => "") -); -SerializerFactory.registerSerializer( - ObjectReferenceEntity, - new CustomSerializer( - /** @param {ObjectReferenceEntity} objectReference */ - objectReference => (objectReference.type ?? "") + ( - objectReference.path - ? objectReference.type ? `'"${objectReference.path}"'` : objectReference.path - : "" - )) -); -SerializerFactory.registerSerializer(PathSymbolEntity, new ToStringSerializer(PathSymbolEntity)); -SerializerFactory.registerSerializer(GuidEntity, new ToStringSerializer(GuidEntity)); -SerializerFactory.registerSerializer(IntegerEntity, new ToStringSerializer(IntegerEntity)); +function initializeSerializerFactory() { + SerializerFactory.registerSerializer( + ObjectEntity, + new ObjectSerializer() + ); + SerializerFactory.registerSerializer( + PinEntity, + new GeneralSerializer(v => `Pin (${v})`, PinEntity, "", ",", true) + ); + SerializerFactory.registerSerializer( + FunctionReferenceEntity, + new GeneralSerializer(v => `(${v})`, FunctionReferenceEntity, "", ",", false) + ); + SerializerFactory.registerSerializer( + LocalizedTextEntity, + new GeneralSerializer(v => `NSLOCTEXT(${v})`, LocalizedTextEntity, "", ",", false, "", _ => "") + ); + SerializerFactory.registerSerializer( + PinReferenceEntity, + new GeneralSerializer(v => v, PinReferenceEntity, "", " ", false, "", _ => "") + ); + SerializerFactory.registerSerializer( + ObjectReferenceEntity, + new CustomSerializer( + /** @param {ObjectReferenceEntity} objectReference */ + objectReference => (objectReference.type ?? "") + ( + objectReference.path + ? objectReference.type ? `'"${objectReference.path}"'` : objectReference.path + : "" + )) + ); + SerializerFactory.registerSerializer(PathSymbolEntity, new ToStringSerializer(PathSymbolEntity)); + SerializerFactory.registerSerializer(GuidEntity, new ToStringSerializer(GuidEntity)); + SerializerFactory.registerSerializer(IntegerEntity, new ToStringSerializer(IntegerEntity)); +} + +initializeSerializerFactory(); export { Blueprint, GraphLink, GraphNode }; diff --git a/js/entity/GuidEntity.js b/js/entity/GuidEntity.js index 05b085e..0622393 100755 --- a/js/entity/GuidEntity.js +++ b/js/entity/GuidEntity.js @@ -13,7 +13,7 @@ export default class GuidEntity extends Entity { } let guid = "" values.forEach(n => { - guid += ('00000000' + n.toString(16).toUpperCase()).slice(-8) + guid += ("0".repeat(8) + n.toString(16).toUpperCase()).slice(-8) }) return new GuidEntity({ valud: guid }) } diff --git a/js/export.js b/js/export.js index 0d6cd6c..49494e8 100755 --- a/js/export.js +++ b/js/export.js @@ -1,53 +1,9 @@ import Blueprint from "./Blueprint" -import CustomSerializer from "./serialization/CustomSerializer" -import FunctionReferenceEntity from "./entity/FunctionReferenceEntity" -import GeneralSerializer from "./serialization/GeneralSerializer" import GraphLink from "./graph/GraphLink" import GraphNode from "./graph/GraphNode" -import GuidEntity from "./entity/GuidEntity" -import IntegerEntity from "./entity/IntegerEntity" -import LocalizedTextEntity from "./entity/LocalizedTextEntity" -import ObjectEntity from "./entity/ObjectEntity" -import ObjectReferenceEntity from "./entity/ObjectReferenceEntity" -import ObjectSerializer from "./serialization/ObjectSerializer" -import PathSymbolEntity from "./entity/PathSymbolEntity" -import PinEntity from "./entity/PinEntity" -import PinReferenceEntity from "./entity/PinReferenceEntity" -import SerializerFactory from "./serialization/SerializerFactory" -import ToStringSerializer from "./serialization/ToStringSerializer" -SerializerFactory.registerSerializer( - ObjectEntity, - new ObjectSerializer() -) -SerializerFactory.registerSerializer( - PinEntity, - new GeneralSerializer(v => `Pin (${v})`, PinEntity, "", ",", true) -) -SerializerFactory.registerSerializer( - FunctionReferenceEntity, - new GeneralSerializer(v => `(${v})`, FunctionReferenceEntity, "", ",", false) -) -SerializerFactory.registerSerializer( - LocalizedTextEntity, - new GeneralSerializer(v => `NSLOCTEXT(${v})`, LocalizedTextEntity, "", ",", false, "", _ => "") -) -SerializerFactory.registerSerializer( - PinReferenceEntity, - new GeneralSerializer(v => v, PinReferenceEntity, "", " ", false, "", _ => "") -) -SerializerFactory.registerSerializer( - ObjectReferenceEntity, - new CustomSerializer( - /** @param {ObjectReferenceEntity} objectReference */ - objectReference => (objectReference.type ?? "") + ( - objectReference.path - ? objectReference.type ? `'"${objectReference.path}"'` : objectReference.path - : "" - )) -) -SerializerFactory.registerSerializer(PathSymbolEntity, new ToStringSerializer(PathSymbolEntity)) -SerializerFactory.registerSerializer(GuidEntity, new ToStringSerializer(GuidEntity)) -SerializerFactory.registerSerializer(IntegerEntity, new ToStringSerializer(IntegerEntity)) +import initializeSerializerFactory from "./serialization/initializeSerializerFactory" + +initializeSerializerFactory() export { Blueprint as Blueprint, GraphNode as GraphNode, GraphLink as GraphLink } \ No newline at end of file diff --git a/js/serialization/initializeSerializerFactory.js b/js/serialization/initializeSerializerFactory.js new file mode 100644 index 0000000..1ca5ad4 --- /dev/null +++ b/js/serialization/initializeSerializerFactory.js @@ -0,0 +1,50 @@ +import CustomSerializer from "./CustomSerializer" +import FunctionReferenceEntity from "../entity/FunctionReferenceEntity" +import GeneralSerializer from "./GeneralSerializer" +import GuidEntity from "../entity/GuidEntity" +import IntegerEntity from "../entity/IntegerEntity" +import LocalizedTextEntity from "../entity/LocalizedTextEntity" +import ObjectEntity from "../entity/ObjectEntity" +import ObjectReferenceEntity from "../entity/ObjectReferenceEntity" +import ObjectSerializer from "./ObjectSerializer" +import PathSymbolEntity from "../entity/PathSymbolEntity" +import PinEntity from "../entity/PinEntity" +import PinReferenceEntity from "../entity/PinReferenceEntity" +import SerializerFactory from "./SerializerFactory" +import ToStringSerializer from "./ToStringSerializer" + +export default function initializeSerializerFactory() { + SerializerFactory.registerSerializer( + ObjectEntity, + new ObjectSerializer() + ) + SerializerFactory.registerSerializer( + PinEntity, + new GeneralSerializer(v => `Pin (${v})`, PinEntity, "", ",", true) + ) + SerializerFactory.registerSerializer( + FunctionReferenceEntity, + new GeneralSerializer(v => `(${v})`, FunctionReferenceEntity, "", ",", false) + ) + SerializerFactory.registerSerializer( + LocalizedTextEntity, + new GeneralSerializer(v => `NSLOCTEXT(${v})`, LocalizedTextEntity, "", ",", false, "", _ => "") + ) + SerializerFactory.registerSerializer( + PinReferenceEntity, + new GeneralSerializer(v => v, PinReferenceEntity, "", " ", false, "", _ => "") + ) + SerializerFactory.registerSerializer( + ObjectReferenceEntity, + new CustomSerializer( + /** @param {ObjectReferenceEntity} objectReference */ + objectReference => (objectReference.type ?? "") + ( + objectReference.path + ? objectReference.type ? `'"${objectReference.path}"'` : objectReference.path + : "" + )) + ) + SerializerFactory.registerSerializer(PathSymbolEntity, new ToStringSerializer(PathSymbolEntity)) + SerializerFactory.registerSerializer(GuidEntity, new ToStringSerializer(GuidEntity)) + SerializerFactory.registerSerializer(IntegerEntity, new ToStringSerializer(IntegerEntity)) +} \ No newline at end of file