@aws/pdk
Version:
All documentation is located at: https://aws.github.io/aws-pdk
86 lines • 8.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.NestedStackCluster = exports.StackCluster = exports.StageCluster = exports.Cluster = exports.Container = exports.Subgraph = void 0;
const Dot = require("ts-graphviz");
const theme_1 = require("../theme");
/**
* Subgraph class is the base diagram {@link Dot.Subgraph} entity, which is the base container
* for grouping {@link Dot.Node} entities.
* @internal
*/
class Subgraph extends Dot.Subgraph {
get linkChildren() {
return this._linkChildren;
}
constructor(id, label) {
super(id);
/** @internal */
this._linkChildren = true;
this.apply(theme_1.GraphTheme.instance.subgraph);
this.set("label", label);
}
}
exports.Subgraph = Subgraph;
/**
* Container class is the base for styled diagram {@link Dot.Subgraph} entities,
* which defines a group of {@link Dot.Node} entities
* @internal
*/
class Container extends Subgraph {
constructor(node, prefix = "container") {
super(`${prefix}_${node.uuid}`, node.id);
this.set("style", "rounded,dashed");
this.graphNode = node;
}
}
exports.Container = Container;
/**
* Cluster class is the base for styled diagram **cluster** {@link Dot.Subgraph} entities.
* @internal
*/
class Cluster extends Container {
/** @internal */
constructor(node, subprefix) {
super(node, "cluster" + (subprefix ? `_${subprefix}` : ""));
this.apply(theme_1.GraphTheme.instance.cluster);
this._linkChildren = false;
}
}
exports.Cluster = Cluster;
/**
* StageCluster class defines a {@link Dot.Subgraph} based on a {@link Graph.StageNode}
* @internal
*/
class StageCluster extends Cluster {
/** @internal */
constructor(node, subprefix = "stage") {
super(node, subprefix);
this.apply(theme_1.GraphTheme.instance.stage);
}
}
exports.StageCluster = StageCluster;
/**
* StackCluster class defines a {@link Dot.Subgraph} based on a {@link Graph.StackNode}
* @internal
*/
class StackCluster extends Cluster {
/** @internal */
constructor(node, subprefix = "stack") {
super(node, subprefix);
this.apply(theme_1.GraphTheme.instance.stack);
}
}
exports.StackCluster = StackCluster;
/**
* NestedStackCluster class defines a {@link Dot.Subgraph} based on a {@link Graph.NestedStackNode}
* @internal
*/
class NestedStackCluster extends StackCluster {
/** @internal */
constructor(node) {
super(node, "nstack");
this.apply(theme_1.GraphTheme.instance.nestedStack);
}
}
exports.NestedStackCluster = NestedStackCluster;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViZ3JhcGhzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3ViZ3JhcGhzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUdBLG1DQUFtQztBQUNuQyxvQ0FBc0M7QUFFdEM7Ozs7R0FJRztBQUNILE1BQWEsUUFBUyxTQUFRLEdBQUcsQ0FBQyxRQUFRO0lBSXhDLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQsWUFBWSxFQUFVLEVBQUUsS0FBYTtRQUNuQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFSWixnQkFBZ0I7UUFDTixrQkFBYSxHQUFZLElBQUksQ0FBQztRQVN0QyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFVLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7Q0FDRjtBQWZELDRCQWVDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQWEsU0FBVSxTQUFRLFFBQVE7SUFHckMsWUFBWSxJQUFnQixFQUFFLFNBQWlCLFdBQVc7UUFDeEQsS0FBSyxDQUFDLEdBQUcsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFekMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUVwQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztJQUN4QixDQUFDO0NBQ0Y7QUFWRCw4QkFVQztBQUVEOzs7R0FHRztBQUNILE1BQWEsT0FBUSxTQUFRLFNBQVM7SUFDcEMsZ0JBQWdCO0lBQ2hCLFlBQVksSUFBZ0IsRUFBRSxTQUFrQjtRQUM5QyxLQUFLLENBQUMsSUFBSSxFQUFFLFNBQVMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUU1RCxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7Q0FDRjtBQVRELDBCQVNDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsT0FBTztJQUN2QyxnQkFBZ0I7SUFDaEIsWUFBWSxJQUFxQixFQUFFLFlBQW9CLE9BQU87UUFDNUQsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUV2QixJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDRjtBQVBELG9DQU9DO0FBRUQ7OztHQUdHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsT0FBTztJQUN2QyxnQkFBZ0I7SUFDaEIsWUFBWSxJQUFxQixFQUFFLFlBQW9CLE9BQU87UUFDNUQsS0FBSyxDQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUV2QixJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7Q0FDRjtBQVBELG9DQU9DO0FBRUQ7OztHQUdHO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSxZQUFZO0lBQ2xELGdCQUFnQjtJQUNoQixZQUFZLElBQTJCO1FBQ3JDLEtBQUssQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFFdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0NBQ0Y7QUFQRCxnREFPQyIsInNvdXJjZXNDb250ZW50IjpbIi8qISBDb3B5cmlnaHQgW0FtYXpvbi5jb21dKGh0dHA6Ly9hbWF6b24uY29tLyksIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMCAqL1xuaW1wb3J0IHsgR3JhcGggfSBmcm9tIFwiQGF3cy9jZGstZ3JhcGhcIjtcbmltcG9ydCAqIGFzIERvdCBmcm9tIFwidHMtZ3JhcGh2aXpcIjtcbmltcG9ydCB7IEdyYXBoVGhlbWUgfSBmcm9tIFwiLi4vdGhlbWVcIjtcblxuLyoqXG4gKiBTdWJncmFwaCBjbGFzcyBpcyB0aGUgYmFzZSBkaWFncmFtIHtAbGluayBEb3QuU3ViZ3JhcGh9IGVudGl0eSwgd2hpY2ggaXMgdGhlIGJhc2UgY29udGFpbmVyXG4gKiBmb3IgZ3JvdXBpbmcge0BsaW5rIERvdC5Ob2RlfSBlbnRpdGllcy5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgU3ViZ3JhcGggZXh0ZW5kcyBEb3QuU3ViZ3JhcGgge1xuICAvKiogQGludGVybmFsICovXG4gIHByb3RlY3RlZCBfbGlua0NoaWxkcmVuOiBib29sZWFuID0gdHJ1ZTtcblxuICBnZXQgbGlua0NoaWxkcmVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9saW5rQ2hpbGRyZW47XG4gIH1cblxuICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCBsYWJlbDogc3RyaW5nKSB7XG4gICAgc3VwZXIoaWQpO1xuXG4gICAgdGhpcy5hcHBseShHcmFwaFRoZW1lLmluc3RhbmNlLnN1YmdyYXBoKTtcblxuICAgIHRoaXMuc2V0KFwibGFiZWxcIiwgbGFiZWwpO1xuICB9XG59XG5cbi8qKlxuICogQ29udGFpbmVyIGNsYXNzIGlzIHRoZSBiYXNlIGZvciBzdHlsZWQgZGlhZ3JhbSB7QGxpbmsgRG90LlN1YmdyYXBofSBlbnRpdGllcyxcbiAqIHdoaWNoIGRlZmluZXMgYSBncm91cCBvZiB7QGxpbmsgRG90Lk5vZGV9IGVudGl0aWVzXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIENvbnRhaW5lciBleHRlbmRzIFN1YmdyYXBoIHtcbiAgcmVhZG9ubHkgZ3JhcGhOb2RlOiBHcmFwaC5Ob2RlO1xuXG4gIGNvbnN0cnVjdG9yKG5vZGU6IEdyYXBoLk5vZGUsIHByZWZpeDogc3RyaW5nID0gXCJjb250YWluZXJcIikge1xuICAgIHN1cGVyKGAke3ByZWZpeH1fJHtub2RlLnV1aWR9YCwgbm9kZS5pZCk7XG5cbiAgICB0aGlzLnNldChcInN0eWxlXCIsIFwicm91bmRlZCxkYXNoZWRcIik7XG5cbiAgICB0aGlzLmdyYXBoTm9kZSA9IG5vZGU7XG4gIH1cbn1cblxuLyoqXG4gKiBDbHVzdGVyIGNsYXNzIGlzIHRoZSBiYXNlIGZvciBzdHlsZWQgZGlhZ3JhbSAqKmNsdXN0ZXIqKiB7QGxpbmsgRG90LlN1YmdyYXBofSBlbnRpdGllcy5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgQ2x1c3RlciBleHRlbmRzIENvbnRhaW5lciB7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgY29uc3RydWN0b3Iobm9kZTogR3JhcGguTm9kZSwgc3VicHJlZml4Pzogc3RyaW5nKSB7XG4gICAgc3VwZXIobm9kZSwgXCJjbHVzdGVyXCIgKyAoc3VicHJlZml4ID8gYF8ke3N1YnByZWZpeH1gIDogXCJcIikpO1xuXG4gICAgdGhpcy5hcHBseShHcmFwaFRoZW1lLmluc3RhbmNlLmNsdXN0ZXIpO1xuXG4gICAgdGhpcy5fbGlua0NoaWxkcmVuID0gZmFsc2U7XG4gIH1cbn1cblxuLyoqXG4gKiBTdGFnZUNsdXN0ZXIgY2xhc3MgZGVmaW5lcyBhIHtAbGluayBEb3QuU3ViZ3JhcGh9IGJhc2VkIG9uIGEge0BsaW5rIEdyYXBoLlN0YWdlTm9kZX1cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgU3RhZ2VDbHVzdGVyIGV4dGVuZHMgQ2x1c3RlciB7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgY29uc3RydWN0b3Iobm9kZTogR3JhcGguU3RhZ2VOb2RlLCBzdWJwcmVmaXg6IHN0cmluZyA9IFwic3RhZ2VcIikge1xuICAgIHN1cGVyKG5vZGUsIHN1YnByZWZpeCk7XG5cbiAgICB0aGlzLmFwcGx5KEdyYXBoVGhlbWUuaW5zdGFuY2Uuc3RhZ2UpO1xuICB9XG59XG5cbi8qKlxuICogU3RhY2tDbHVzdGVyIGNsYXNzIGRlZmluZXMgYSB7QGxpbmsgRG90LlN1YmdyYXBofSBiYXNlZCBvbiBhIHtAbGluayBHcmFwaC5TdGFja05vZGV9XG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWNrQ2x1c3RlciBleHRlbmRzIENsdXN0ZXIge1xuICAvKiogQGludGVybmFsICovXG4gIGNvbnN0cnVjdG9yKG5vZGU6IEdyYXBoLlN0YWNrTm9kZSwgc3VicHJlZml4OiBzdHJpbmcgPSBcInN0YWNrXCIpIHtcbiAgICBzdXBlcihub2RlLCBzdWJwcmVmaXgpO1xuXG4gICAgdGhpcy5hcHBseShHcmFwaFRoZW1lLmluc3RhbmNlLnN0YWNrKTtcbiAgfVxufVxuXG4vKipcbiAqIE5lc3RlZFN0YWNrQ2x1c3RlciBjbGFzcyBkZWZpbmVzIGEge0BsaW5rIERvdC5TdWJncmFwaH0gYmFzZWQgb24gYSB7QGxpbmsgR3JhcGguTmVzdGVkU3RhY2tOb2RlfVxuICogQGludGVybmFsXG4gKi9cbmV4cG9ydCBjbGFzcyBOZXN0ZWRTdGFja0NsdXN0ZXIgZXh0ZW5kcyBTdGFja0NsdXN0ZXIge1xuICAvKiogQGludGVybmFsICovXG4gIGNvbnN0cnVjdG9yKG5vZGU6IEdyYXBoLk5lc3RlZFN0YWNrTm9kZSkge1xuICAgIHN1cGVyKG5vZGUsIFwibnN0YWNrXCIpO1xuXG4gICAgdGhpcy5hcHBseShHcmFwaFRoZW1lLmluc3RhbmNlLm5lc3RlZFN0YWNrKTtcbiAgfVxufVxuIl19