|
@@ -0,0 +1,2936 @@
|
|
|
+var __defProp = Object.defineProperty;
|
|
|
+var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
|
+var __export = (target, all) => {
|
|
|
+ for (var name in all)
|
|
|
+ __defProp(target, name, { get: all[name], enumerable: true });
|
|
|
+};
|
|
|
+
|
|
|
+// src/logger.ts
|
|
|
+import dayjs from "dayjs";
|
|
|
+var LEVELS = {
|
|
|
+ trace: 0,
|
|
|
+ debug: 1,
|
|
|
+ info: 2,
|
|
|
+ warn: 3,
|
|
|
+ error: 4,
|
|
|
+ fatal: 5
|
|
|
+};
|
|
|
+var log = {
|
|
|
+ trace: /* @__PURE__ */ __name((..._args) => {
|
|
|
+ }, "trace"),
|
|
|
+ debug: /* @__PURE__ */ __name((..._args) => {
|
|
|
+ }, "debug"),
|
|
|
+ info: /* @__PURE__ */ __name((..._args) => {
|
|
|
+ }, "info"),
|
|
|
+ warn: /* @__PURE__ */ __name((..._args) => {
|
|
|
+ }, "warn"),
|
|
|
+ error: /* @__PURE__ */ __name((..._args) => {
|
|
|
+ }, "error"),
|
|
|
+ fatal: /* @__PURE__ */ __name((..._args) => {
|
|
|
+ }, "fatal")
|
|
|
+};
|
|
|
+var setLogLevel = /* @__PURE__ */ __name(function(level = "fatal") {
|
|
|
+ let numericLevel = LEVELS.fatal;
|
|
|
+ if (typeof level === "string") {
|
|
|
+ if (level.toLowerCase() in LEVELS) {
|
|
|
+ numericLevel = LEVELS[level];
|
|
|
+ }
|
|
|
+ } else if (typeof level === "number") {
|
|
|
+ numericLevel = level;
|
|
|
+ }
|
|
|
+ log.trace = () => {
|
|
|
+ };
|
|
|
+ log.debug = () => {
|
|
|
+ };
|
|
|
+ log.info = () => {
|
|
|
+ };
|
|
|
+ log.warn = () => {
|
|
|
+ };
|
|
|
+ log.error = () => {
|
|
|
+ };
|
|
|
+ log.fatal = () => {
|
|
|
+ };
|
|
|
+ if (numericLevel <= LEVELS.fatal) {
|
|
|
+ log.fatal = console.error ? console.error.bind(console, format("FATAL"), "color: orange") : console.log.bind(console, "\x1B[35m", format("FATAL"));
|
|
|
+ }
|
|
|
+ if (numericLevel <= LEVELS.error) {
|
|
|
+ log.error = console.error ? console.error.bind(console, format("ERROR"), "color: orange") : console.log.bind(console, "\x1B[31m", format("ERROR"));
|
|
|
+ }
|
|
|
+ if (numericLevel <= LEVELS.warn) {
|
|
|
+ log.warn = console.warn ? console.warn.bind(console, format("WARN"), "color: orange") : console.log.bind(console, `\x1B[33m`, format("WARN"));
|
|
|
+ }
|
|
|
+ if (numericLevel <= LEVELS.info) {
|
|
|
+ log.info = console.info ? console.info.bind(console, format("INFO"), "color: lightblue") : console.log.bind(console, "\x1B[34m", format("INFO"));
|
|
|
+ }
|
|
|
+ if (numericLevel <= LEVELS.debug) {
|
|
|
+ log.debug = console.debug ? console.debug.bind(console, format("DEBUG"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format("DEBUG"));
|
|
|
+ }
|
|
|
+ if (numericLevel <= LEVELS.trace) {
|
|
|
+ log.trace = console.debug ? console.debug.bind(console, format("TRACE"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format("TRACE"));
|
|
|
+ }
|
|
|
+}, "setLogLevel");
|
|
|
+var format = /* @__PURE__ */ __name((level) => {
|
|
|
+ const time = dayjs().format("ss.SSS");
|
|
|
+ return `%c${time} : ${level} : `;
|
|
|
+}, "format");
|
|
|
+
|
|
|
+// src/diagram-api/regexes.ts
|
|
|
+var frontMatterRegex = /^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s;
|
|
|
+var directiveRegex = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi;
|
|
|
+var anyCommentRegex = /\s*%%.*\n/gm;
|
|
|
+
|
|
|
+// src/errors.ts
|
|
|
+var UnknownDiagramError = class extends Error {
|
|
|
+ static {
|
|
|
+ __name(this, "UnknownDiagramError");
|
|
|
+ }
|
|
|
+ constructor(message) {
|
|
|
+ super(message);
|
|
|
+ this.name = "UnknownDiagramError";
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+// src/diagram-api/detectType.ts
|
|
|
+var detectors = {};
|
|
|
+var detectType = /* @__PURE__ */ __name(function(text, config2) {
|
|
|
+ text = text.replace(frontMatterRegex, "").replace(directiveRegex, "").replace(anyCommentRegex, "\n");
|
|
|
+ for (const [key, { detector }] of Object.entries(detectors)) {
|
|
|
+ const diagram = detector(text, config2);
|
|
|
+ if (diagram) {
|
|
|
+ return key;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ throw new UnknownDiagramError(
|
|
|
+ `No diagram type detected matching given configuration for text: ${text}`
|
|
|
+ );
|
|
|
+}, "detectType");
|
|
|
+var registerLazyLoadedDiagrams = /* @__PURE__ */ __name((...diagrams2) => {
|
|
|
+ for (const { id, detector, loader } of diagrams2) {
|
|
|
+ addDetector(id, detector, loader);
|
|
|
+ }
|
|
|
+}, "registerLazyLoadedDiagrams");
|
|
|
+var addDetector = /* @__PURE__ */ __name((key, detector, loader) => {
|
|
|
+ if (detectors[key]) {
|
|
|
+ log.warn(`Detector with key ${key} already exists. Overwriting.`);
|
|
|
+ }
|
|
|
+ detectors[key] = { detector, loader };
|
|
|
+ log.debug(`Detector with key ${key} added${loader ? " with loader" : ""}`);
|
|
|
+}, "addDetector");
|
|
|
+var getDiagramLoader = /* @__PURE__ */ __name((key) => {
|
|
|
+ return detectors[key].loader;
|
|
|
+}, "getDiagramLoader");
|
|
|
+
|
|
|
+// src/assignWithDepth.ts
|
|
|
+var assignWithDepth = /* @__PURE__ */ __name((dst, src, { depth = 2, clobber = false } = {}) => {
|
|
|
+ const config2 = { depth, clobber };
|
|
|
+ if (Array.isArray(src) && !Array.isArray(dst)) {
|
|
|
+ src.forEach((s) => assignWithDepth(dst, s, config2));
|
|
|
+ return dst;
|
|
|
+ } else if (Array.isArray(src) && Array.isArray(dst)) {
|
|
|
+ src.forEach((s) => {
|
|
|
+ if (!dst.includes(s)) {
|
|
|
+ dst.push(s);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return dst;
|
|
|
+ }
|
|
|
+ if (dst === void 0 || depth <= 0) {
|
|
|
+ if (dst !== void 0 && dst !== null && typeof dst === "object" && typeof src === "object") {
|
|
|
+ return Object.assign(dst, src);
|
|
|
+ } else {
|
|
|
+ return src;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (src !== void 0 && typeof dst === "object" && typeof src === "object") {
|
|
|
+ Object.keys(src).forEach((key) => {
|
|
|
+ if (typeof src[key] === "object" && (dst[key] === void 0 || typeof dst[key] === "object")) {
|
|
|
+ if (dst[key] === void 0) {
|
|
|
+ dst[key] = Array.isArray(src[key]) ? [] : {};
|
|
|
+ }
|
|
|
+ dst[key] = assignWithDepth(dst[key], src[key], { depth: depth - 1, clobber });
|
|
|
+ } else if (clobber || typeof dst[key] !== "object" && typeof src[key] !== "object") {
|
|
|
+ dst[key] = src[key];
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return dst;
|
|
|
+}, "assignWithDepth");
|
|
|
+var assignWithDepth_default = assignWithDepth;
|
|
|
+
|
|
|
+// src/themes/theme-base.js
|
|
|
+import { adjust as adjust2, darken, invert, isDark, lighten } from "khroma";
|
|
|
+
|
|
|
+// src/themes/erDiagram-oldHardcodedValues.ts
|
|
|
+var oldAttributeBackgroundColorOdd = "#ffffff";
|
|
|
+var oldAttributeBackgroundColorEven = "#f2f2f2";
|
|
|
+
|
|
|
+// src/themes/theme-helpers.js
|
|
|
+import { adjust } from "khroma";
|
|
|
+var mkBorder = /* @__PURE__ */ __name((col, darkMode) => darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 }), "mkBorder");
|
|
|
+
|
|
|
+// src/themes/theme-base.js
|
|
|
+var Theme = class {
|
|
|
+ static {
|
|
|
+ __name(this, "Theme");
|
|
|
+ }
|
|
|
+ constructor() {
|
|
|
+ this.background = "#f4f4f4";
|
|
|
+ this.primaryColor = "#fff4dd";
|
|
|
+ this.noteBkgColor = "#fff5ad";
|
|
|
+ this.noteTextColor = "#333";
|
|
|
+ this.THEME_COLOR_LIMIT = 12;
|
|
|
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
|
|
|
+ this.fontSize = "16px";
|
|
|
+ }
|
|
|
+ updateColors() {
|
|
|
+ this.primaryTextColor = this.primaryTextColor || (this.darkMode ? "#eee" : "#333");
|
|
|
+ this.secondaryColor = this.secondaryColor || adjust2(this.primaryColor, { h: -120 });
|
|
|
+ this.tertiaryColor = this.tertiaryColor || adjust2(this.primaryColor, { h: 180, l: 5 });
|
|
|
+ this.primaryBorderColor = this.primaryBorderColor || mkBorder(this.primaryColor, this.darkMode);
|
|
|
+ this.secondaryBorderColor = this.secondaryBorderColor || mkBorder(this.secondaryColor, this.darkMode);
|
|
|
+ this.tertiaryBorderColor = this.tertiaryBorderColor || mkBorder(this.tertiaryColor, this.darkMode);
|
|
|
+ this.noteBorderColor = this.noteBorderColor || mkBorder(this.noteBkgColor, this.darkMode);
|
|
|
+ this.noteBkgColor = this.noteBkgColor || "#fff5ad";
|
|
|
+ this.noteTextColor = this.noteTextColor || "#333";
|
|
|
+ this.secondaryTextColor = this.secondaryTextColor || invert(this.secondaryColor);
|
|
|
+ this.tertiaryTextColor = this.tertiaryTextColor || invert(this.tertiaryColor);
|
|
|
+ this.lineColor = this.lineColor || invert(this.background);
|
|
|
+ this.arrowheadColor = this.arrowheadColor || invert(this.background);
|
|
|
+ this.textColor = this.textColor || this.primaryTextColor;
|
|
|
+ this.border2 = this.border2 || this.tertiaryBorderColor;
|
|
|
+ this.nodeBkg = this.nodeBkg || this.primaryColor;
|
|
|
+ this.mainBkg = this.mainBkg || this.primaryColor;
|
|
|
+ this.nodeBorder = this.nodeBorder || this.primaryBorderColor;
|
|
|
+ this.clusterBkg = this.clusterBkg || this.tertiaryColor;
|
|
|
+ this.clusterBorder = this.clusterBorder || this.tertiaryBorderColor;
|
|
|
+ this.defaultLinkColor = this.defaultLinkColor || this.lineColor;
|
|
|
+ this.titleColor = this.titleColor || this.tertiaryTextColor;
|
|
|
+ this.edgeLabelBackground = this.edgeLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);
|
|
|
+ this.nodeTextColor = this.nodeTextColor || this.primaryTextColor;
|
|
|
+ this.actorBorder = this.actorBorder || this.primaryBorderColor;
|
|
|
+ this.actorBkg = this.actorBkg || this.mainBkg;
|
|
|
+ this.actorTextColor = this.actorTextColor || this.primaryTextColor;
|
|
|
+ this.actorLineColor = this.actorLineColor || this.actorBorder;
|
|
|
+ this.labelBoxBkgColor = this.labelBoxBkgColor || this.actorBkg;
|
|
|
+ this.signalColor = this.signalColor || this.textColor;
|
|
|
+ this.signalTextColor = this.signalTextColor || this.textColor;
|
|
|
+ this.labelBoxBorderColor = this.labelBoxBorderColor || this.actorBorder;
|
|
|
+ this.labelTextColor = this.labelTextColor || this.actorTextColor;
|
|
|
+ this.loopTextColor = this.loopTextColor || this.actorTextColor;
|
|
|
+ this.activationBorderColor = this.activationBorderColor || darken(this.secondaryColor, 10);
|
|
|
+ this.activationBkgColor = this.activationBkgColor || this.secondaryColor;
|
|
|
+ this.sequenceNumberColor = this.sequenceNumberColor || invert(this.lineColor);
|
|
|
+ this.sectionBkgColor = this.sectionBkgColor || this.tertiaryColor;
|
|
|
+ this.altSectionBkgColor = this.altSectionBkgColor || "white";
|
|
|
+ this.sectionBkgColor = this.sectionBkgColor || this.secondaryColor;
|
|
|
+ this.sectionBkgColor2 = this.sectionBkgColor2 || this.primaryColor;
|
|
|
+ this.excludeBkgColor = this.excludeBkgColor || "#eeeeee";
|
|
|
+ this.taskBorderColor = this.taskBorderColor || this.primaryBorderColor;
|
|
|
+ this.taskBkgColor = this.taskBkgColor || this.primaryColor;
|
|
|
+ this.activeTaskBorderColor = this.activeTaskBorderColor || this.primaryColor;
|
|
|
+ this.activeTaskBkgColor = this.activeTaskBkgColor || lighten(this.primaryColor, 23);
|
|
|
+ this.gridColor = this.gridColor || "lightgrey";
|
|
|
+ this.doneTaskBkgColor = this.doneTaskBkgColor || "lightgrey";
|
|
|
+ this.doneTaskBorderColor = this.doneTaskBorderColor || "grey";
|
|
|
+ this.critBorderColor = this.critBorderColor || "#ff8888";
|
|
|
+ this.critBkgColor = this.critBkgColor || "red";
|
|
|
+ this.todayLineColor = this.todayLineColor || "red";
|
|
|
+ this.taskTextColor = this.taskTextColor || this.textColor;
|
|
|
+ this.taskTextOutsideColor = this.taskTextOutsideColor || this.textColor;
|
|
|
+ this.taskTextLightColor = this.taskTextLightColor || this.textColor;
|
|
|
+ this.taskTextColor = this.taskTextColor || this.primaryTextColor;
|
|
|
+ this.taskTextDarkColor = this.taskTextDarkColor || this.textColor;
|
|
|
+ this.taskTextClickableColor = this.taskTextClickableColor || "#003163";
|
|
|
+ this.personBorder = this.personBorder || this.primaryBorderColor;
|
|
|
+ this.personBkg = this.personBkg || this.mainBkg;
|
|
|
+ this.transitionColor = this.transitionColor || this.lineColor;
|
|
|
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
|
|
|
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
|
|
|
+ this.stateBkg = this.stateBkg || this.mainBkg;
|
|
|
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
|
|
|
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
|
|
|
+ this.altBackground = this.altBackground || this.tertiaryColor;
|
|
|
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
|
|
|
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
|
|
|
+ this.innerEndBackground = this.nodeBorder;
|
|
|
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
|
|
|
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
|
|
|
+ this.transitionColor = this.transitionColor || this.lineColor;
|
|
|
+ this.specialStateColor = this.lineColor;
|
|
|
+ this.cScale0 = this.cScale0 || this.primaryColor;
|
|
|
+ this.cScale1 = this.cScale1 || this.secondaryColor;
|
|
|
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
|
|
|
+ this.cScale3 = this.cScale3 || adjust2(this.primaryColor, { h: 30 });
|
|
|
+ this.cScale4 = this.cScale4 || adjust2(this.primaryColor, { h: 60 });
|
|
|
+ this.cScale5 = this.cScale5 || adjust2(this.primaryColor, { h: 90 });
|
|
|
+ this.cScale6 = this.cScale6 || adjust2(this.primaryColor, { h: 120 });
|
|
|
+ this.cScale7 = this.cScale7 || adjust2(this.primaryColor, { h: 150 });
|
|
|
+ this.cScale8 = this.cScale8 || adjust2(this.primaryColor, { h: 210, l: 150 });
|
|
|
+ this.cScale9 = this.cScale9 || adjust2(this.primaryColor, { h: 270 });
|
|
|
+ this.cScale10 = this.cScale10 || adjust2(this.primaryColor, { h: 300 });
|
|
|
+ this.cScale11 = this.cScale11 || adjust2(this.primaryColor, { h: 330 });
|
|
|
+ if (this.darkMode) {
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["cScale" + i] = darken(this["cScale" + i], 75);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["cScale" + i] = darken(this["cScale" + i], 25);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["cScaleInv" + i] = this["cScaleInv" + i] || invert(this["cScale" + i]);
|
|
|
+ }
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ if (this.darkMode) {
|
|
|
+ this["cScalePeer" + i] = this["cScalePeer" + i] || lighten(this["cScale" + i], 10);
|
|
|
+ } else {
|
|
|
+ this["cScalePeer" + i] = this["cScalePeer" + i] || darken(this["cScale" + i], 10);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.scaleLabelColor = this.scaleLabelColor || this.labelTextColor;
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor;
|
|
|
+ }
|
|
|
+ const multiplier = this.darkMode ? -4 : -1;
|
|
|
+ for (let i = 0; i < 5; i++) {
|
|
|
+ this["surface" + i] = this["surface" + i] || adjust2(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i * 3) });
|
|
|
+ this["surfacePeer" + i] = this["surfacePeer" + i] || adjust2(this.mainBkg, { h: 180, s: -15, l: multiplier * (8 + i * 3) });
|
|
|
+ }
|
|
|
+ this.classText = this.classText || this.textColor;
|
|
|
+ this.fillType0 = this.fillType0 || this.primaryColor;
|
|
|
+ this.fillType1 = this.fillType1 || this.secondaryColor;
|
|
|
+ this.fillType2 = this.fillType2 || adjust2(this.primaryColor, { h: 64 });
|
|
|
+ this.fillType3 = this.fillType3 || adjust2(this.secondaryColor, { h: 64 });
|
|
|
+ this.fillType4 = this.fillType4 || adjust2(this.primaryColor, { h: -64 });
|
|
|
+ this.fillType5 = this.fillType5 || adjust2(this.secondaryColor, { h: -64 });
|
|
|
+ this.fillType6 = this.fillType6 || adjust2(this.primaryColor, { h: 128 });
|
|
|
+ this.fillType7 = this.fillType7 || adjust2(this.secondaryColor, { h: 128 });
|
|
|
+ this.pie1 = this.pie1 || this.primaryColor;
|
|
|
+ this.pie2 = this.pie2 || this.secondaryColor;
|
|
|
+ this.pie3 = this.pie3 || this.tertiaryColor;
|
|
|
+ this.pie4 = this.pie4 || adjust2(this.primaryColor, { l: -10 });
|
|
|
+ this.pie5 = this.pie5 || adjust2(this.secondaryColor, { l: -10 });
|
|
|
+ this.pie6 = this.pie6 || adjust2(this.tertiaryColor, { l: -10 });
|
|
|
+ this.pie7 = this.pie7 || adjust2(this.primaryColor, { h: 60, l: -10 });
|
|
|
+ this.pie8 = this.pie8 || adjust2(this.primaryColor, { h: -60, l: -10 });
|
|
|
+ this.pie9 = this.pie9 || adjust2(this.primaryColor, { h: 120, l: 0 });
|
|
|
+ this.pie10 = this.pie10 || adjust2(this.primaryColor, { h: 60, l: -20 });
|
|
|
+ this.pie11 = this.pie11 || adjust2(this.primaryColor, { h: -60, l: -20 });
|
|
|
+ this.pie12 = this.pie12 || adjust2(this.primaryColor, { h: 120, l: -10 });
|
|
|
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
|
|
|
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
|
|
|
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
|
|
|
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
|
|
|
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
|
|
|
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
|
|
|
+ this.pieStrokeColor = this.pieStrokeColor || "black";
|
|
|
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
|
|
|
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
|
|
|
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
|
|
|
+ this.pieOpacity = this.pieOpacity || "0.7";
|
|
|
+ this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
|
|
|
+ this.quadrant2Fill = this.quadrant2Fill || adjust2(this.primaryColor, { r: 5, g: 5, b: 5 });
|
|
|
+ this.quadrant3Fill = this.quadrant3Fill || adjust2(this.primaryColor, { r: 10, g: 10, b: 10 });
|
|
|
+ this.quadrant4Fill = this.quadrant4Fill || adjust2(this.primaryColor, { r: 15, g: 15, b: 15 });
|
|
|
+ this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;
|
|
|
+ this.quadrant2TextFill = this.quadrant2TextFill || adjust2(this.primaryTextColor, { r: -5, g: -5, b: -5 });
|
|
|
+ this.quadrant3TextFill = this.quadrant3TextFill || adjust2(this.primaryTextColor, { r: -10, g: -10, b: -10 });
|
|
|
+ this.quadrant4TextFill = this.quadrant4TextFill || adjust2(this.primaryTextColor, { r: -15, g: -15, b: -15 });
|
|
|
+ this.quadrantPointFill = this.quadrantPointFill || isDark(this.quadrant1Fill) ? lighten(this.quadrant1Fill) : darken(this.quadrant1Fill);
|
|
|
+ this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;
|
|
|
+ this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;
|
|
|
+ this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;
|
|
|
+ this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;
|
|
|
+ this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;
|
|
|
+ this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;
|
|
|
+ this.xyChart = {
|
|
|
+ backgroundColor: this.xyChart?.backgroundColor || this.background,
|
|
|
+ titleColor: this.xyChart?.titleColor || this.primaryTextColor,
|
|
|
+ xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,
|
|
|
+ xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,
|
|
|
+ xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,
|
|
|
+ xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,
|
|
|
+ yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,
|
|
|
+ yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,
|
|
|
+ yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,
|
|
|
+ yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,
|
|
|
+ plotColorPalette: this.xyChart?.plotColorPalette || "#FFF4DD,#FFD8B1,#FFA07A,#ECEFF1,#D6DBDF,#C3E0A8,#FFB6A4,#FFD74D,#738FA7,#FFFFF0"
|
|
|
+ };
|
|
|
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
|
|
|
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
|
|
|
+ this.requirementBorderSize = this.requirementBorderSize || "1";
|
|
|
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
|
|
|
+ this.relationColor = this.relationColor || this.lineColor;
|
|
|
+ this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken(this.secondaryColor, 30) : this.secondaryColor);
|
|
|
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
|
|
|
+ this.git0 = this.git0 || this.primaryColor;
|
|
|
+ this.git1 = this.git1 || this.secondaryColor;
|
|
|
+ this.git2 = this.git2 || this.tertiaryColor;
|
|
|
+ this.git3 = this.git3 || adjust2(this.primaryColor, { h: -30 });
|
|
|
+ this.git4 = this.git4 || adjust2(this.primaryColor, { h: -60 });
|
|
|
+ this.git5 = this.git5 || adjust2(this.primaryColor, { h: -90 });
|
|
|
+ this.git6 = this.git6 || adjust2(this.primaryColor, { h: 60 });
|
|
|
+ this.git7 = this.git7 || adjust2(this.primaryColor, { h: 120 });
|
|
|
+ if (this.darkMode) {
|
|
|
+ this.git0 = lighten(this.git0, 25);
|
|
|
+ this.git1 = lighten(this.git1, 25);
|
|
|
+ this.git2 = lighten(this.git2, 25);
|
|
|
+ this.git3 = lighten(this.git3, 25);
|
|
|
+ this.git4 = lighten(this.git4, 25);
|
|
|
+ this.git5 = lighten(this.git5, 25);
|
|
|
+ this.git6 = lighten(this.git6, 25);
|
|
|
+ this.git7 = lighten(this.git7, 25);
|
|
|
+ } else {
|
|
|
+ this.git0 = darken(this.git0, 25);
|
|
|
+ this.git1 = darken(this.git1, 25);
|
|
|
+ this.git2 = darken(this.git2, 25);
|
|
|
+ this.git3 = darken(this.git3, 25);
|
|
|
+ this.git4 = darken(this.git4, 25);
|
|
|
+ this.git5 = darken(this.git5, 25);
|
|
|
+ this.git6 = darken(this.git6, 25);
|
|
|
+ this.git7 = darken(this.git7, 25);
|
|
|
+ }
|
|
|
+ this.gitInv0 = this.gitInv0 || invert(this.git0);
|
|
|
+ this.gitInv1 = this.gitInv1 || invert(this.git1);
|
|
|
+ this.gitInv2 = this.gitInv2 || invert(this.git2);
|
|
|
+ this.gitInv3 = this.gitInv3 || invert(this.git3);
|
|
|
+ this.gitInv4 = this.gitInv4 || invert(this.git4);
|
|
|
+ this.gitInv5 = this.gitInv5 || invert(this.git5);
|
|
|
+ this.gitInv6 = this.gitInv6 || invert(this.git6);
|
|
|
+ this.gitInv7 = this.gitInv7 || invert(this.git7);
|
|
|
+ this.branchLabelColor = this.branchLabelColor || (this.darkMode ? "black" : this.labelTextColor);
|
|
|
+ this.gitBranchLabel0 = this.gitBranchLabel0 || this.branchLabelColor;
|
|
|
+ this.gitBranchLabel1 = this.gitBranchLabel1 || this.branchLabelColor;
|
|
|
+ this.gitBranchLabel2 = this.gitBranchLabel2 || this.branchLabelColor;
|
|
|
+ this.gitBranchLabel3 = this.gitBranchLabel3 || this.branchLabelColor;
|
|
|
+ this.gitBranchLabel4 = this.gitBranchLabel4 || this.branchLabelColor;
|
|
|
+ this.gitBranchLabel5 = this.gitBranchLabel5 || this.branchLabelColor;
|
|
|
+ this.gitBranchLabel6 = this.gitBranchLabel6 || this.branchLabelColor;
|
|
|
+ this.gitBranchLabel7 = this.gitBranchLabel7 || this.branchLabelColor;
|
|
|
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
|
|
|
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
|
|
|
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
|
|
|
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
|
|
|
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
|
|
|
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
|
|
|
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
|
|
|
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
|
|
|
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
|
|
|
+ }
|
|
|
+ calculate(overrides) {
|
|
|
+ if (typeof overrides !== "object") {
|
|
|
+ this.updateColors();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const keys = Object.keys(overrides);
|
|
|
+ keys.forEach((k) => {
|
|
|
+ this[k] = overrides[k];
|
|
|
+ });
|
|
|
+ this.updateColors();
|
|
|
+ keys.forEach((k) => {
|
|
|
+ this[k] = overrides[k];
|
|
|
+ });
|
|
|
+ }
|
|
|
+};
|
|
|
+var getThemeVariables = /* @__PURE__ */ __name((userOverrides) => {
|
|
|
+ const theme = new Theme();
|
|
|
+ theme.calculate(userOverrides);
|
|
|
+ return theme;
|
|
|
+}, "getThemeVariables");
|
|
|
+
|
|
|
+// src/themes/theme-dark.js
|
|
|
+import { adjust as adjust3, darken as darken2, invert as invert2, isDark as isDark2, lighten as lighten2, rgba } from "khroma";
|
|
|
+var Theme2 = class {
|
|
|
+ static {
|
|
|
+ __name(this, "Theme");
|
|
|
+ }
|
|
|
+ constructor() {
|
|
|
+ this.background = "#333";
|
|
|
+ this.primaryColor = "#1f2020";
|
|
|
+ this.secondaryColor = lighten2(this.primaryColor, 16);
|
|
|
+ this.tertiaryColor = adjust3(this.primaryColor, { h: -160 });
|
|
|
+ this.primaryBorderColor = invert2(this.background);
|
|
|
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
|
|
|
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
|
|
|
+ this.primaryTextColor = invert2(this.primaryColor);
|
|
|
+ this.secondaryTextColor = invert2(this.secondaryColor);
|
|
|
+ this.tertiaryTextColor = invert2(this.tertiaryColor);
|
|
|
+ this.lineColor = invert2(this.background);
|
|
|
+ this.textColor = invert2(this.background);
|
|
|
+ this.mainBkg = "#1f2020";
|
|
|
+ this.secondBkg = "calculated";
|
|
|
+ this.mainContrastColor = "lightgrey";
|
|
|
+ this.darkTextColor = lighten2(invert2("#323D47"), 10);
|
|
|
+ this.lineColor = "calculated";
|
|
|
+ this.border1 = "#ccc";
|
|
|
+ this.border2 = rgba(255, 255, 255, 0.25);
|
|
|
+ this.arrowheadColor = "calculated";
|
|
|
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
|
|
|
+ this.fontSize = "16px";
|
|
|
+ this.labelBackground = "#181818";
|
|
|
+ this.textColor = "#ccc";
|
|
|
+ this.THEME_COLOR_LIMIT = 12;
|
|
|
+ this.nodeBkg = "calculated";
|
|
|
+ this.nodeBorder = "calculated";
|
|
|
+ this.clusterBkg = "calculated";
|
|
|
+ this.clusterBorder = "calculated";
|
|
|
+ this.defaultLinkColor = "calculated";
|
|
|
+ this.titleColor = "#F9FFFE";
|
|
|
+ this.edgeLabelBackground = "calculated";
|
|
|
+ this.actorBorder = "calculated";
|
|
|
+ this.actorBkg = "calculated";
|
|
|
+ this.actorTextColor = "calculated";
|
|
|
+ this.actorLineColor = "calculated";
|
|
|
+ this.signalColor = "calculated";
|
|
|
+ this.signalTextColor = "calculated";
|
|
|
+ this.labelBoxBkgColor = "calculated";
|
|
|
+ this.labelBoxBorderColor = "calculated";
|
|
|
+ this.labelTextColor = "calculated";
|
|
|
+ this.loopTextColor = "calculated";
|
|
|
+ this.noteBorderColor = "calculated";
|
|
|
+ this.noteBkgColor = "#fff5ad";
|
|
|
+ this.noteTextColor = "calculated";
|
|
|
+ this.activationBorderColor = "calculated";
|
|
|
+ this.activationBkgColor = "calculated";
|
|
|
+ this.sequenceNumberColor = "black";
|
|
|
+ this.sectionBkgColor = darken2("#EAE8D9", 30);
|
|
|
+ this.altSectionBkgColor = "calculated";
|
|
|
+ this.sectionBkgColor2 = "#EAE8D9";
|
|
|
+ this.excludeBkgColor = darken2(this.sectionBkgColor, 10);
|
|
|
+ this.taskBorderColor = rgba(255, 255, 255, 70);
|
|
|
+ this.taskBkgColor = "calculated";
|
|
|
+ this.taskTextColor = "calculated";
|
|
|
+ this.taskTextLightColor = "calculated";
|
|
|
+ this.taskTextOutsideColor = "calculated";
|
|
|
+ this.taskTextClickableColor = "#003163";
|
|
|
+ this.activeTaskBorderColor = rgba(255, 255, 255, 50);
|
|
|
+ this.activeTaskBkgColor = "#81B1DB";
|
|
|
+ this.gridColor = "calculated";
|
|
|
+ this.doneTaskBkgColor = "calculated";
|
|
|
+ this.doneTaskBorderColor = "grey";
|
|
|
+ this.critBorderColor = "#E83737";
|
|
|
+ this.critBkgColor = "#E83737";
|
|
|
+ this.taskTextDarkColor = "calculated";
|
|
|
+ this.todayLineColor = "#DB5757";
|
|
|
+ this.personBorder = this.primaryBorderColor;
|
|
|
+ this.personBkg = this.mainBkg;
|
|
|
+ this.labelColor = "calculated";
|
|
|
+ this.errorBkgColor = "#a44141";
|
|
|
+ this.errorTextColor = "#ddd";
|
|
|
+ }
|
|
|
+ updateColors() {
|
|
|
+ this.secondBkg = lighten2(this.mainBkg, 16);
|
|
|
+ this.lineColor = this.mainContrastColor;
|
|
|
+ this.arrowheadColor = this.mainContrastColor;
|
|
|
+ this.nodeBkg = this.mainBkg;
|
|
|
+ this.nodeBorder = this.border1;
|
|
|
+ this.clusterBkg = this.secondBkg;
|
|
|
+ this.clusterBorder = this.border2;
|
|
|
+ this.defaultLinkColor = this.lineColor;
|
|
|
+ this.edgeLabelBackground = lighten2(this.labelBackground, 25);
|
|
|
+ this.actorBorder = this.border1;
|
|
|
+ this.actorBkg = this.mainBkg;
|
|
|
+ this.actorTextColor = this.mainContrastColor;
|
|
|
+ this.actorLineColor = this.actorBorder;
|
|
|
+ this.signalColor = this.mainContrastColor;
|
|
|
+ this.signalTextColor = this.mainContrastColor;
|
|
|
+ this.labelBoxBkgColor = this.actorBkg;
|
|
|
+ this.labelBoxBorderColor = this.actorBorder;
|
|
|
+ this.labelTextColor = this.mainContrastColor;
|
|
|
+ this.loopTextColor = this.mainContrastColor;
|
|
|
+ this.noteBorderColor = this.secondaryBorderColor;
|
|
|
+ this.noteBkgColor = this.secondBkg;
|
|
|
+ this.noteTextColor = this.secondaryTextColor;
|
|
|
+ this.activationBorderColor = this.border1;
|
|
|
+ this.activationBkgColor = this.secondBkg;
|
|
|
+ this.altSectionBkgColor = this.background;
|
|
|
+ this.taskBkgColor = lighten2(this.mainBkg, 23);
|
|
|
+ this.taskTextColor = this.darkTextColor;
|
|
|
+ this.taskTextLightColor = this.mainContrastColor;
|
|
|
+ this.taskTextOutsideColor = this.taskTextLightColor;
|
|
|
+ this.gridColor = this.mainContrastColor;
|
|
|
+ this.doneTaskBkgColor = this.mainContrastColor;
|
|
|
+ this.taskTextDarkColor = this.darkTextColor;
|
|
|
+ this.transitionColor = this.transitionColor || this.lineColor;
|
|
|
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
|
|
|
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
|
|
|
+ this.stateBkg = this.stateBkg || this.mainBkg;
|
|
|
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
|
|
|
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
|
|
|
+ this.altBackground = this.altBackground || "#555";
|
|
|
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
|
|
|
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
|
|
|
+ this.innerEndBackground = this.primaryBorderColor;
|
|
|
+ this.specialStateColor = "#f4f4f4";
|
|
|
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
|
|
|
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
|
|
|
+ this.fillType0 = this.primaryColor;
|
|
|
+ this.fillType1 = this.secondaryColor;
|
|
|
+ this.fillType2 = adjust3(this.primaryColor, { h: 64 });
|
|
|
+ this.fillType3 = adjust3(this.secondaryColor, { h: 64 });
|
|
|
+ this.fillType4 = adjust3(this.primaryColor, { h: -64 });
|
|
|
+ this.fillType5 = adjust3(this.secondaryColor, { h: -64 });
|
|
|
+ this.fillType6 = adjust3(this.primaryColor, { h: 128 });
|
|
|
+ this.fillType7 = adjust3(this.secondaryColor, { h: 128 });
|
|
|
+ this.cScale1 = this.cScale1 || "#0b0000";
|
|
|
+ this.cScale2 = this.cScale2 || "#4d1037";
|
|
|
+ this.cScale3 = this.cScale3 || "#3f5258";
|
|
|
+ this.cScale4 = this.cScale4 || "#4f2f1b";
|
|
|
+ this.cScale5 = this.cScale5 || "#6e0a0a";
|
|
|
+ this.cScale6 = this.cScale6 || "#3b0048";
|
|
|
+ this.cScale7 = this.cScale7 || "#995a01";
|
|
|
+ this.cScale8 = this.cScale8 || "#154706";
|
|
|
+ this.cScale9 = this.cScale9 || "#161722";
|
|
|
+ this.cScale10 = this.cScale10 || "#00296f";
|
|
|
+ this.cScale11 = this.cScale11 || "#01629c";
|
|
|
+ this.cScale12 = this.cScale12 || "#010029";
|
|
|
+ this.cScale0 = this.cScale0 || this.primaryColor;
|
|
|
+ this.cScale1 = this.cScale1 || this.secondaryColor;
|
|
|
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
|
|
|
+ this.cScale3 = this.cScale3 || adjust3(this.primaryColor, { h: 30 });
|
|
|
+ this.cScale4 = this.cScale4 || adjust3(this.primaryColor, { h: 60 });
|
|
|
+ this.cScale5 = this.cScale5 || adjust3(this.primaryColor, { h: 90 });
|
|
|
+ this.cScale6 = this.cScale6 || adjust3(this.primaryColor, { h: 120 });
|
|
|
+ this.cScale7 = this.cScale7 || adjust3(this.primaryColor, { h: 150 });
|
|
|
+ this.cScale8 = this.cScale8 || adjust3(this.primaryColor, { h: 210 });
|
|
|
+ this.cScale9 = this.cScale9 || adjust3(this.primaryColor, { h: 270 });
|
|
|
+ this.cScale10 = this.cScale10 || adjust3(this.primaryColor, { h: 300 });
|
|
|
+ this.cScale11 = this.cScale11 || adjust3(this.primaryColor, { h: 330 });
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["cScaleInv" + i] = this["cScaleInv" + i] || invert2(this["cScale" + i]);
|
|
|
+ }
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["cScalePeer" + i] = this["cScalePeer" + i] || lighten2(this["cScale" + i], 10);
|
|
|
+ }
|
|
|
+ for (let i = 0; i < 5; i++) {
|
|
|
+ this["surface" + i] = this["surface" + i] || adjust3(this.mainBkg, { h: 30, s: -30, l: -(-10 + i * 4) });
|
|
|
+ this["surfacePeer" + i] = this["surfacePeer" + i] || adjust3(this.mainBkg, { h: 30, s: -30, l: -(-7 + i * 4) });
|
|
|
+ }
|
|
|
+ this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor);
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor;
|
|
|
+ }
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["pie" + i] = this["cScale" + i];
|
|
|
+ }
|
|
|
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
|
|
|
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
|
|
|
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
|
|
|
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
|
|
|
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
|
|
|
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
|
|
|
+ this.pieStrokeColor = this.pieStrokeColor || "black";
|
|
|
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
|
|
|
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
|
|
|
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
|
|
|
+ this.pieOpacity = this.pieOpacity || "0.7";
|
|
|
+ this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
|
|
|
+ this.quadrant2Fill = this.quadrant2Fill || adjust3(this.primaryColor, { r: 5, g: 5, b: 5 });
|
|
|
+ this.quadrant3Fill = this.quadrant3Fill || adjust3(this.primaryColor, { r: 10, g: 10, b: 10 });
|
|
|
+ this.quadrant4Fill = this.quadrant4Fill || adjust3(this.primaryColor, { r: 15, g: 15, b: 15 });
|
|
|
+ this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;
|
|
|
+ this.quadrant2TextFill = this.quadrant2TextFill || adjust3(this.primaryTextColor, { r: -5, g: -5, b: -5 });
|
|
|
+ this.quadrant3TextFill = this.quadrant3TextFill || adjust3(this.primaryTextColor, { r: -10, g: -10, b: -10 });
|
|
|
+ this.quadrant4TextFill = this.quadrant4TextFill || adjust3(this.primaryTextColor, { r: -15, g: -15, b: -15 });
|
|
|
+ this.quadrantPointFill = this.quadrantPointFill || isDark2(this.quadrant1Fill) ? lighten2(this.quadrant1Fill) : darken2(this.quadrant1Fill);
|
|
|
+ this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;
|
|
|
+ this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;
|
|
|
+ this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;
|
|
|
+ this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;
|
|
|
+ this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;
|
|
|
+ this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;
|
|
|
+ this.xyChart = {
|
|
|
+ backgroundColor: this.xyChart?.backgroundColor || this.background,
|
|
|
+ titleColor: this.xyChart?.titleColor || this.primaryTextColor,
|
|
|
+ xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,
|
|
|
+ xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,
|
|
|
+ xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,
|
|
|
+ xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,
|
|
|
+ yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,
|
|
|
+ yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,
|
|
|
+ yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,
|
|
|
+ yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,
|
|
|
+ plotColorPalette: this.xyChart?.plotColorPalette || "#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22"
|
|
|
+ };
|
|
|
+ this.packet = {
|
|
|
+ startByteColor: this.primaryTextColor,
|
|
|
+ endByteColor: this.primaryTextColor,
|
|
|
+ labelColor: this.primaryTextColor,
|
|
|
+ titleColor: this.primaryTextColor,
|
|
|
+ blockStrokeColor: this.primaryTextColor,
|
|
|
+ blockFillColor: this.background
|
|
|
+ };
|
|
|
+ this.classText = this.primaryTextColor;
|
|
|
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
|
|
|
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
|
|
|
+ this.requirementBorderSize = this.requirementBorderSize || "1";
|
|
|
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
|
|
|
+ this.relationColor = this.relationColor || this.lineColor;
|
|
|
+ this.relationLabelBackground = this.relationLabelBackground || (this.darkMode ? darken2(this.secondaryColor, 30) : this.secondaryColor);
|
|
|
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
|
|
|
+ this.git0 = lighten2(this.secondaryColor, 20);
|
|
|
+ this.git1 = lighten2(this.pie2 || this.secondaryColor, 20);
|
|
|
+ this.git2 = lighten2(this.pie3 || this.tertiaryColor, 20);
|
|
|
+ this.git3 = lighten2(this.pie4 || adjust3(this.primaryColor, { h: -30 }), 20);
|
|
|
+ this.git4 = lighten2(this.pie5 || adjust3(this.primaryColor, { h: -60 }), 20);
|
|
|
+ this.git5 = lighten2(this.pie6 || adjust3(this.primaryColor, { h: -90 }), 10);
|
|
|
+ this.git6 = lighten2(this.pie7 || adjust3(this.primaryColor, { h: 60 }), 10);
|
|
|
+ this.git7 = lighten2(this.pie8 || adjust3(this.primaryColor, { h: 120 }), 20);
|
|
|
+ this.gitInv0 = this.gitInv0 || invert2(this.git0);
|
|
|
+ this.gitInv1 = this.gitInv1 || invert2(this.git1);
|
|
|
+ this.gitInv2 = this.gitInv2 || invert2(this.git2);
|
|
|
+ this.gitInv3 = this.gitInv3 || invert2(this.git3);
|
|
|
+ this.gitInv4 = this.gitInv4 || invert2(this.git4);
|
|
|
+ this.gitInv5 = this.gitInv5 || invert2(this.git5);
|
|
|
+ this.gitInv6 = this.gitInv6 || invert2(this.git6);
|
|
|
+ this.gitInv7 = this.gitInv7 || invert2(this.git7);
|
|
|
+ this.gitBranchLabel0 = this.gitBranchLabel0 || invert2(this.labelTextColor);
|
|
|
+ this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
|
|
|
+ this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
|
|
|
+ this.gitBranchLabel3 = this.gitBranchLabel3 || invert2(this.labelTextColor);
|
|
|
+ this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
|
|
|
+ this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
|
|
|
+ this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
|
|
|
+ this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
|
|
|
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
|
|
|
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
|
|
|
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
|
|
|
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
|
|
|
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
|
|
|
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
|
|
|
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
|
|
|
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || lighten2(this.background, 12);
|
|
|
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten2(this.background, 2);
|
|
|
+ this.nodeBorder = this.nodeBorder || "#999";
|
|
|
+ }
|
|
|
+ calculate(overrides) {
|
|
|
+ if (typeof overrides !== "object") {
|
|
|
+ this.updateColors();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const keys = Object.keys(overrides);
|
|
|
+ keys.forEach((k) => {
|
|
|
+ this[k] = overrides[k];
|
|
|
+ });
|
|
|
+ this.updateColors();
|
|
|
+ keys.forEach((k) => {
|
|
|
+ this[k] = overrides[k];
|
|
|
+ });
|
|
|
+ }
|
|
|
+};
|
|
|
+var getThemeVariables2 = /* @__PURE__ */ __name((userOverrides) => {
|
|
|
+ const theme = new Theme2();
|
|
|
+ theme.calculate(userOverrides);
|
|
|
+ return theme;
|
|
|
+}, "getThemeVariables");
|
|
|
+
|
|
|
+// src/themes/theme-default.js
|
|
|
+import { invert as invert3, lighten as lighten3, rgba as rgba2, adjust as adjust4, darken as darken3, isDark as isDark3 } from "khroma";
|
|
|
+var Theme3 = class {
|
|
|
+ static {
|
|
|
+ __name(this, "Theme");
|
|
|
+ }
|
|
|
+ constructor() {
|
|
|
+ this.background = "#f4f4f4";
|
|
|
+ this.primaryColor = "#ECECFF";
|
|
|
+ this.secondaryColor = adjust4(this.primaryColor, { h: 120 });
|
|
|
+ this.secondaryColor = "#ffffde";
|
|
|
+ this.tertiaryColor = adjust4(this.primaryColor, { h: -160 });
|
|
|
+ this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
|
|
|
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
|
|
|
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
|
|
|
+ this.primaryTextColor = invert3(this.primaryColor);
|
|
|
+ this.secondaryTextColor = invert3(this.secondaryColor);
|
|
|
+ this.tertiaryTextColor = invert3(this.tertiaryColor);
|
|
|
+ this.lineColor = invert3(this.background);
|
|
|
+ this.textColor = invert3(this.background);
|
|
|
+ this.background = "white";
|
|
|
+ this.mainBkg = "#ECECFF";
|
|
|
+ this.secondBkg = "#ffffde";
|
|
|
+ this.lineColor = "#333333";
|
|
|
+ this.border1 = "#9370DB";
|
|
|
+ this.border2 = "#aaaa33";
|
|
|
+ this.arrowheadColor = "#333333";
|
|
|
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
|
|
|
+ this.fontSize = "16px";
|
|
|
+ this.labelBackground = "rgba(232,232,232, 0.8)";
|
|
|
+ this.textColor = "#333";
|
|
|
+ this.THEME_COLOR_LIMIT = 12;
|
|
|
+ this.nodeBkg = "calculated";
|
|
|
+ this.nodeBorder = "calculated";
|
|
|
+ this.clusterBkg = "calculated";
|
|
|
+ this.clusterBorder = "calculated";
|
|
|
+ this.defaultLinkColor = "calculated";
|
|
|
+ this.titleColor = "calculated";
|
|
|
+ this.edgeLabelBackground = "calculated";
|
|
|
+ this.actorBorder = "calculated";
|
|
|
+ this.actorBkg = "calculated";
|
|
|
+ this.actorTextColor = "black";
|
|
|
+ this.actorLineColor = "calculated";
|
|
|
+ this.signalColor = "calculated";
|
|
|
+ this.signalTextColor = "calculated";
|
|
|
+ this.labelBoxBkgColor = "calculated";
|
|
|
+ this.labelBoxBorderColor = "calculated";
|
|
|
+ this.labelTextColor = "calculated";
|
|
|
+ this.loopTextColor = "calculated";
|
|
|
+ this.noteBorderColor = "calculated";
|
|
|
+ this.noteBkgColor = "#fff5ad";
|
|
|
+ this.noteTextColor = "calculated";
|
|
|
+ this.activationBorderColor = "#666";
|
|
|
+ this.activationBkgColor = "#f4f4f4";
|
|
|
+ this.sequenceNumberColor = "white";
|
|
|
+ this.sectionBkgColor = "calculated";
|
|
|
+ this.altSectionBkgColor = "calculated";
|
|
|
+ this.sectionBkgColor2 = "calculated";
|
|
|
+ this.excludeBkgColor = "#eeeeee";
|
|
|
+ this.taskBorderColor = "calculated";
|
|
|
+ this.taskBkgColor = "calculated";
|
|
|
+ this.taskTextLightColor = "calculated";
|
|
|
+ this.taskTextColor = this.taskTextLightColor;
|
|
|
+ this.taskTextDarkColor = "calculated";
|
|
|
+ this.taskTextOutsideColor = this.taskTextDarkColor;
|
|
|
+ this.taskTextClickableColor = "calculated";
|
|
|
+ this.activeTaskBorderColor = "calculated";
|
|
|
+ this.activeTaskBkgColor = "calculated";
|
|
|
+ this.gridColor = "calculated";
|
|
|
+ this.doneTaskBkgColor = "calculated";
|
|
|
+ this.doneTaskBorderColor = "calculated";
|
|
|
+ this.critBorderColor = "calculated";
|
|
|
+ this.critBkgColor = "calculated";
|
|
|
+ this.todayLineColor = "calculated";
|
|
|
+ this.sectionBkgColor = rgba2(102, 102, 255, 0.49);
|
|
|
+ this.altSectionBkgColor = "white";
|
|
|
+ this.sectionBkgColor2 = "#fff400";
|
|
|
+ this.taskBorderColor = "#534fbc";
|
|
|
+ this.taskBkgColor = "#8a90dd";
|
|
|
+ this.taskTextLightColor = "white";
|
|
|
+ this.taskTextColor = "calculated";
|
|
|
+ this.taskTextDarkColor = "black";
|
|
|
+ this.taskTextOutsideColor = "calculated";
|
|
|
+ this.taskTextClickableColor = "#003163";
|
|
|
+ this.activeTaskBorderColor = "#534fbc";
|
|
|
+ this.activeTaskBkgColor = "#bfc7ff";
|
|
|
+ this.gridColor = "lightgrey";
|
|
|
+ this.doneTaskBkgColor = "lightgrey";
|
|
|
+ this.doneTaskBorderColor = "grey";
|
|
|
+ this.critBorderColor = "#ff8888";
|
|
|
+ this.critBkgColor = "red";
|
|
|
+ this.todayLineColor = "red";
|
|
|
+ this.personBorder = this.primaryBorderColor;
|
|
|
+ this.personBkg = this.mainBkg;
|
|
|
+ this.labelColor = "black";
|
|
|
+ this.errorBkgColor = "#552222";
|
|
|
+ this.errorTextColor = "#552222";
|
|
|
+ this.updateColors();
|
|
|
+ }
|
|
|
+ updateColors() {
|
|
|
+ this.cScale0 = this.cScale0 || this.primaryColor;
|
|
|
+ this.cScale1 = this.cScale1 || this.secondaryColor;
|
|
|
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
|
|
|
+ this.cScale3 = this.cScale3 || adjust4(this.primaryColor, { h: 30 });
|
|
|
+ this.cScale4 = this.cScale4 || adjust4(this.primaryColor, { h: 60 });
|
|
|
+ this.cScale5 = this.cScale5 || adjust4(this.primaryColor, { h: 90 });
|
|
|
+ this.cScale6 = this.cScale6 || adjust4(this.primaryColor, { h: 120 });
|
|
|
+ this.cScale7 = this.cScale7 || adjust4(this.primaryColor, { h: 150 });
|
|
|
+ this.cScale8 = this.cScale8 || adjust4(this.primaryColor, { h: 210 });
|
|
|
+ this.cScale9 = this.cScale9 || adjust4(this.primaryColor, { h: 270 });
|
|
|
+ this.cScale10 = this.cScale10 || adjust4(this.primaryColor, { h: 300 });
|
|
|
+ this.cScale11 = this.cScale11 || adjust4(this.primaryColor, { h: 330 });
|
|
|
+ this["cScalePeer1"] = this["cScalePeer1"] || darken3(this.secondaryColor, 45);
|
|
|
+ this["cScalePeer2"] = this["cScalePeer2"] || darken3(this.tertiaryColor, 40);
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["cScale" + i] = darken3(this["cScale" + i], 10);
|
|
|
+ this["cScalePeer" + i] = this["cScalePeer" + i] || darken3(this["cScale" + i], 25);
|
|
|
+ }
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["cScaleInv" + i] = this["cScaleInv" + i] || adjust4(this["cScale" + i], { h: 180 });
|
|
|
+ }
|
|
|
+ for (let i = 0; i < 5; i++) {
|
|
|
+ this["surface" + i] = this["surface" + i] || adjust4(this.mainBkg, { h: 30, l: -(5 + i * 5) });
|
|
|
+ this["surfacePeer" + i] = this["surfacePeer" + i] || adjust4(this.mainBkg, { h: 30, l: -(7 + i * 5) });
|
|
|
+ }
|
|
|
+ this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;
|
|
|
+ if (this.labelTextColor !== "calculated") {
|
|
|
+ this.cScaleLabel0 = this.cScaleLabel0 || invert3(this.labelTextColor);
|
|
|
+ this.cScaleLabel3 = this.cScaleLabel3 || invert3(this.labelTextColor);
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.labelTextColor;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.nodeBkg = this.mainBkg;
|
|
|
+ this.nodeBorder = this.border1;
|
|
|
+ this.clusterBkg = this.secondBkg;
|
|
|
+ this.clusterBorder = this.border2;
|
|
|
+ this.defaultLinkColor = this.lineColor;
|
|
|
+ this.titleColor = this.textColor;
|
|
|
+ this.edgeLabelBackground = this.labelBackground;
|
|
|
+ this.actorBorder = lighten3(this.border1, 23);
|
|
|
+ this.actorBkg = this.mainBkg;
|
|
|
+ this.labelBoxBkgColor = this.actorBkg;
|
|
|
+ this.signalColor = this.textColor;
|
|
|
+ this.signalTextColor = this.textColor;
|
|
|
+ this.labelBoxBorderColor = this.actorBorder;
|
|
|
+ this.labelTextColor = this.actorTextColor;
|
|
|
+ this.loopTextColor = this.actorTextColor;
|
|
|
+ this.noteBorderColor = this.border2;
|
|
|
+ this.noteTextColor = this.actorTextColor;
|
|
|
+ this.actorLineColor = this.actorBorder;
|
|
|
+ this.taskTextColor = this.taskTextLightColor;
|
|
|
+ this.taskTextOutsideColor = this.taskTextDarkColor;
|
|
|
+ this.transitionColor = this.transitionColor || this.lineColor;
|
|
|
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
|
|
|
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
|
|
|
+ this.stateBkg = this.stateBkg || this.mainBkg;
|
|
|
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
|
|
|
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
|
|
|
+ this.altBackground = this.altBackground || "#f0f0f0";
|
|
|
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
|
|
|
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
|
|
|
+ this.innerEndBackground = this.nodeBorder;
|
|
|
+ this.specialStateColor = this.lineColor;
|
|
|
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
|
|
|
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
|
|
|
+ this.transitionColor = this.transitionColor || this.lineColor;
|
|
|
+ this.classText = this.primaryTextColor;
|
|
|
+ this.fillType0 = this.primaryColor;
|
|
|
+ this.fillType1 = this.secondaryColor;
|
|
|
+ this.fillType2 = adjust4(this.primaryColor, { h: 64 });
|
|
|
+ this.fillType3 = adjust4(this.secondaryColor, { h: 64 });
|
|
|
+ this.fillType4 = adjust4(this.primaryColor, { h: -64 });
|
|
|
+ this.fillType5 = adjust4(this.secondaryColor, { h: -64 });
|
|
|
+ this.fillType6 = adjust4(this.primaryColor, { h: 128 });
|
|
|
+ this.fillType7 = adjust4(this.secondaryColor, { h: 128 });
|
|
|
+ this.pie1 = this.pie1 || this.primaryColor;
|
|
|
+ this.pie2 = this.pie2 || this.secondaryColor;
|
|
|
+ this.pie3 = this.pie3 || adjust4(this.tertiaryColor, { l: -40 });
|
|
|
+ this.pie4 = this.pie4 || adjust4(this.primaryColor, { l: -10 });
|
|
|
+ this.pie5 = this.pie5 || adjust4(this.secondaryColor, { l: -30 });
|
|
|
+ this.pie6 = this.pie6 || adjust4(this.tertiaryColor, { l: -20 });
|
|
|
+ this.pie7 = this.pie7 || adjust4(this.primaryColor, { h: 60, l: -20 });
|
|
|
+ this.pie8 = this.pie8 || adjust4(this.primaryColor, { h: -60, l: -40 });
|
|
|
+ this.pie9 = this.pie9 || adjust4(this.primaryColor, { h: 120, l: -40 });
|
|
|
+ this.pie10 = this.pie10 || adjust4(this.primaryColor, { h: 60, l: -40 });
|
|
|
+ this.pie11 = this.pie11 || adjust4(this.primaryColor, { h: -90, l: -40 });
|
|
|
+ this.pie12 = this.pie12 || adjust4(this.primaryColor, { h: 120, l: -30 });
|
|
|
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
|
|
|
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
|
|
|
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
|
|
|
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
|
|
|
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
|
|
|
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
|
|
|
+ this.pieStrokeColor = this.pieStrokeColor || "black";
|
|
|
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
|
|
|
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
|
|
|
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
|
|
|
+ this.pieOpacity = this.pieOpacity || "0.7";
|
|
|
+ this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
|
|
|
+ this.quadrant2Fill = this.quadrant2Fill || adjust4(this.primaryColor, { r: 5, g: 5, b: 5 });
|
|
|
+ this.quadrant3Fill = this.quadrant3Fill || adjust4(this.primaryColor, { r: 10, g: 10, b: 10 });
|
|
|
+ this.quadrant4Fill = this.quadrant4Fill || adjust4(this.primaryColor, { r: 15, g: 15, b: 15 });
|
|
|
+ this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;
|
|
|
+ this.quadrant2TextFill = this.quadrant2TextFill || adjust4(this.primaryTextColor, { r: -5, g: -5, b: -5 });
|
|
|
+ this.quadrant3TextFill = this.quadrant3TextFill || adjust4(this.primaryTextColor, { r: -10, g: -10, b: -10 });
|
|
|
+ this.quadrant4TextFill = this.quadrant4TextFill || adjust4(this.primaryTextColor, { r: -15, g: -15, b: -15 });
|
|
|
+ this.quadrantPointFill = this.quadrantPointFill || isDark3(this.quadrant1Fill) ? lighten3(this.quadrant1Fill) : darken3(this.quadrant1Fill);
|
|
|
+ this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;
|
|
|
+ this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;
|
|
|
+ this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;
|
|
|
+ this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;
|
|
|
+ this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;
|
|
|
+ this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;
|
|
|
+ this.xyChart = {
|
|
|
+ backgroundColor: this.xyChart?.backgroundColor || this.background,
|
|
|
+ titleColor: this.xyChart?.titleColor || this.primaryTextColor,
|
|
|
+ xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,
|
|
|
+ xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,
|
|
|
+ xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,
|
|
|
+ xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,
|
|
|
+ yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,
|
|
|
+ yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,
|
|
|
+ yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,
|
|
|
+ yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,
|
|
|
+ plotColorPalette: this.xyChart?.plotColorPalette || "#ECECFF,#8493A6,#FFC3A0,#DCDDE1,#B8E994,#D1A36F,#C3CDE6,#FFB6C1,#496078,#F8F3E3"
|
|
|
+ };
|
|
|
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
|
|
|
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
|
|
|
+ this.requirementBorderSize = this.requirementBorderSize || "1";
|
|
|
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
|
|
|
+ this.relationColor = this.relationColor || this.lineColor;
|
|
|
+ this.relationLabelBackground = this.relationLabelBackground || this.labelBackground;
|
|
|
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
|
|
|
+ this.git0 = this.git0 || this.primaryColor;
|
|
|
+ this.git1 = this.git1 || this.secondaryColor;
|
|
|
+ this.git2 = this.git2 || this.tertiaryColor;
|
|
|
+ this.git3 = this.git3 || adjust4(this.primaryColor, { h: -30 });
|
|
|
+ this.git4 = this.git4 || adjust4(this.primaryColor, { h: -60 });
|
|
|
+ this.git5 = this.git5 || adjust4(this.primaryColor, { h: -90 });
|
|
|
+ this.git6 = this.git6 || adjust4(this.primaryColor, { h: 60 });
|
|
|
+ this.git7 = this.git7 || adjust4(this.primaryColor, { h: 120 });
|
|
|
+ if (this.darkMode) {
|
|
|
+ this.git0 = lighten3(this.git0, 25);
|
|
|
+ this.git1 = lighten3(this.git1, 25);
|
|
|
+ this.git2 = lighten3(this.git2, 25);
|
|
|
+ this.git3 = lighten3(this.git3, 25);
|
|
|
+ this.git4 = lighten3(this.git4, 25);
|
|
|
+ this.git5 = lighten3(this.git5, 25);
|
|
|
+ this.git6 = lighten3(this.git6, 25);
|
|
|
+ this.git7 = lighten3(this.git7, 25);
|
|
|
+ } else {
|
|
|
+ this.git0 = darken3(this.git0, 25);
|
|
|
+ this.git1 = darken3(this.git1, 25);
|
|
|
+ this.git2 = darken3(this.git2, 25);
|
|
|
+ this.git3 = darken3(this.git3, 25);
|
|
|
+ this.git4 = darken3(this.git4, 25);
|
|
|
+ this.git5 = darken3(this.git5, 25);
|
|
|
+ this.git6 = darken3(this.git6, 25);
|
|
|
+ this.git7 = darken3(this.git7, 25);
|
|
|
+ }
|
|
|
+ this.gitInv0 = this.gitInv0 || darken3(invert3(this.git0), 25);
|
|
|
+ this.gitInv1 = this.gitInv1 || invert3(this.git1);
|
|
|
+ this.gitInv2 = this.gitInv2 || invert3(this.git2);
|
|
|
+ this.gitInv3 = this.gitInv3 || invert3(this.git3);
|
|
|
+ this.gitInv4 = this.gitInv4 || invert3(this.git4);
|
|
|
+ this.gitInv5 = this.gitInv5 || invert3(this.git5);
|
|
|
+ this.gitInv6 = this.gitInv6 || invert3(this.git6);
|
|
|
+ this.gitInv7 = this.gitInv7 || invert3(this.git7);
|
|
|
+ this.gitBranchLabel0 = this.gitBranchLabel0 || invert3(this.labelTextColor);
|
|
|
+ this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
|
|
|
+ this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
|
|
|
+ this.gitBranchLabel3 = this.gitBranchLabel3 || invert3(this.labelTextColor);
|
|
|
+ this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
|
|
|
+ this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
|
|
|
+ this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
|
|
|
+ this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
|
|
|
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
|
|
|
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
|
|
|
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
|
|
|
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
|
|
|
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
|
|
|
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
|
|
|
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
|
|
|
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
|
|
|
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
|
|
|
+ }
|
|
|
+ calculate(overrides) {
|
|
|
+ if (typeof overrides !== "object") {
|
|
|
+ this.updateColors();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const keys = Object.keys(overrides);
|
|
|
+ keys.forEach((k) => {
|
|
|
+ this[k] = overrides[k];
|
|
|
+ });
|
|
|
+ this.updateColors();
|
|
|
+ keys.forEach((k) => {
|
|
|
+ this[k] = overrides[k];
|
|
|
+ });
|
|
|
+ }
|
|
|
+};
|
|
|
+var getThemeVariables3 = /* @__PURE__ */ __name((userOverrides) => {
|
|
|
+ const theme = new Theme3();
|
|
|
+ theme.calculate(userOverrides);
|
|
|
+ return theme;
|
|
|
+}, "getThemeVariables");
|
|
|
+
|
|
|
+// src/themes/theme-forest.js
|
|
|
+import { adjust as adjust5, darken as darken4, invert as invert4, isDark as isDark4, lighten as lighten4 } from "khroma";
|
|
|
+var Theme4 = class {
|
|
|
+ static {
|
|
|
+ __name(this, "Theme");
|
|
|
+ }
|
|
|
+ constructor() {
|
|
|
+ this.background = "#f4f4f4";
|
|
|
+ this.primaryColor = "#cde498";
|
|
|
+ this.secondaryColor = "#cdffb2";
|
|
|
+ this.background = "white";
|
|
|
+ this.mainBkg = "#cde498";
|
|
|
+ this.secondBkg = "#cdffb2";
|
|
|
+ this.lineColor = "green";
|
|
|
+ this.border1 = "#13540c";
|
|
|
+ this.border2 = "#6eaa49";
|
|
|
+ this.arrowheadColor = "green";
|
|
|
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
|
|
|
+ this.fontSize = "16px";
|
|
|
+ this.tertiaryColor = lighten4("#cde498", 10);
|
|
|
+ this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
|
|
|
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
|
|
|
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
|
|
|
+ this.primaryTextColor = invert4(this.primaryColor);
|
|
|
+ this.secondaryTextColor = invert4(this.secondaryColor);
|
|
|
+ this.tertiaryTextColor = invert4(this.primaryColor);
|
|
|
+ this.lineColor = invert4(this.background);
|
|
|
+ this.textColor = invert4(this.background);
|
|
|
+ this.THEME_COLOR_LIMIT = 12;
|
|
|
+ this.nodeBkg = "calculated";
|
|
|
+ this.nodeBorder = "calculated";
|
|
|
+ this.clusterBkg = "calculated";
|
|
|
+ this.clusterBorder = "calculated";
|
|
|
+ this.defaultLinkColor = "calculated";
|
|
|
+ this.titleColor = "#333";
|
|
|
+ this.edgeLabelBackground = "#e8e8e8";
|
|
|
+ this.actorBorder = "calculated";
|
|
|
+ this.actorBkg = "calculated";
|
|
|
+ this.actorTextColor = "black";
|
|
|
+ this.actorLineColor = "calculated";
|
|
|
+ this.signalColor = "#333";
|
|
|
+ this.signalTextColor = "#333";
|
|
|
+ this.labelBoxBkgColor = "calculated";
|
|
|
+ this.labelBoxBorderColor = "#326932";
|
|
|
+ this.labelTextColor = "calculated";
|
|
|
+ this.loopTextColor = "calculated";
|
|
|
+ this.noteBorderColor = "calculated";
|
|
|
+ this.noteBkgColor = "#fff5ad";
|
|
|
+ this.noteTextColor = "calculated";
|
|
|
+ this.activationBorderColor = "#666";
|
|
|
+ this.activationBkgColor = "#f4f4f4";
|
|
|
+ this.sequenceNumberColor = "white";
|
|
|
+ this.sectionBkgColor = "#6eaa49";
|
|
|
+ this.altSectionBkgColor = "white";
|
|
|
+ this.sectionBkgColor2 = "#6eaa49";
|
|
|
+ this.excludeBkgColor = "#eeeeee";
|
|
|
+ this.taskBorderColor = "calculated";
|
|
|
+ this.taskBkgColor = "#487e3a";
|
|
|
+ this.taskTextLightColor = "white";
|
|
|
+ this.taskTextColor = "calculated";
|
|
|
+ this.taskTextDarkColor = "black";
|
|
|
+ this.taskTextOutsideColor = "calculated";
|
|
|
+ this.taskTextClickableColor = "#003163";
|
|
|
+ this.activeTaskBorderColor = "calculated";
|
|
|
+ this.activeTaskBkgColor = "calculated";
|
|
|
+ this.gridColor = "lightgrey";
|
|
|
+ this.doneTaskBkgColor = "lightgrey";
|
|
|
+ this.doneTaskBorderColor = "grey";
|
|
|
+ this.critBorderColor = "#ff8888";
|
|
|
+ this.critBkgColor = "red";
|
|
|
+ this.todayLineColor = "red";
|
|
|
+ this.personBorder = this.primaryBorderColor;
|
|
|
+ this.personBkg = this.mainBkg;
|
|
|
+ this.labelColor = "black";
|
|
|
+ this.errorBkgColor = "#552222";
|
|
|
+ this.errorTextColor = "#552222";
|
|
|
+ }
|
|
|
+ updateColors() {
|
|
|
+ this.actorBorder = darken4(this.mainBkg, 20);
|
|
|
+ this.actorBkg = this.mainBkg;
|
|
|
+ this.labelBoxBkgColor = this.actorBkg;
|
|
|
+ this.labelTextColor = this.actorTextColor;
|
|
|
+ this.loopTextColor = this.actorTextColor;
|
|
|
+ this.noteBorderColor = this.border2;
|
|
|
+ this.noteTextColor = this.actorTextColor;
|
|
|
+ this.actorLineColor = this.actorBorder;
|
|
|
+ this.cScale0 = this.cScale0 || this.primaryColor;
|
|
|
+ this.cScale1 = this.cScale1 || this.secondaryColor;
|
|
|
+ this.cScale2 = this.cScale2 || this.tertiaryColor;
|
|
|
+ this.cScale3 = this.cScale3 || adjust5(this.primaryColor, { h: 30 });
|
|
|
+ this.cScale4 = this.cScale4 || adjust5(this.primaryColor, { h: 60 });
|
|
|
+ this.cScale5 = this.cScale5 || adjust5(this.primaryColor, { h: 90 });
|
|
|
+ this.cScale6 = this.cScale6 || adjust5(this.primaryColor, { h: 120 });
|
|
|
+ this.cScale7 = this.cScale7 || adjust5(this.primaryColor, { h: 150 });
|
|
|
+ this.cScale8 = this.cScale8 || adjust5(this.primaryColor, { h: 210 });
|
|
|
+ this.cScale9 = this.cScale9 || adjust5(this.primaryColor, { h: 270 });
|
|
|
+ this.cScale10 = this.cScale10 || adjust5(this.primaryColor, { h: 300 });
|
|
|
+ this.cScale11 = this.cScale11 || adjust5(this.primaryColor, { h: 330 });
|
|
|
+ this["cScalePeer1"] = this["cScalePeer1"] || darken4(this.secondaryColor, 45);
|
|
|
+ this["cScalePeer2"] = this["cScalePeer2"] || darken4(this.tertiaryColor, 40);
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["cScale" + i] = darken4(this["cScale" + i], 10);
|
|
|
+ this["cScalePeer" + i] = this["cScalePeer" + i] || darken4(this["cScale" + i], 25);
|
|
|
+ }
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["cScaleInv" + i] = this["cScaleInv" + i] || adjust5(this["cScale" + i], { h: 180 });
|
|
|
+ }
|
|
|
+ this.scaleLabelColor = this.scaleLabelColor !== "calculated" && this.scaleLabelColor ? this.scaleLabelColor : this.labelTextColor;
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor;
|
|
|
+ }
|
|
|
+ for (let i = 0; i < 5; i++) {
|
|
|
+ this["surface" + i] = this["surface" + i] || adjust5(this.mainBkg, { h: 30, s: -30, l: -(5 + i * 5) });
|
|
|
+ this["surfacePeer" + i] = this["surfacePeer" + i] || adjust5(this.mainBkg, { h: 30, s: -30, l: -(8 + i * 5) });
|
|
|
+ }
|
|
|
+ this.nodeBkg = this.mainBkg;
|
|
|
+ this.nodeBorder = this.border1;
|
|
|
+ this.clusterBkg = this.secondBkg;
|
|
|
+ this.clusterBorder = this.border2;
|
|
|
+ this.defaultLinkColor = this.lineColor;
|
|
|
+ this.taskBorderColor = this.border1;
|
|
|
+ this.taskTextColor = this.taskTextLightColor;
|
|
|
+ this.taskTextOutsideColor = this.taskTextDarkColor;
|
|
|
+ this.activeTaskBorderColor = this.taskBorderColor;
|
|
|
+ this.activeTaskBkgColor = this.mainBkg;
|
|
|
+ this.transitionColor = this.transitionColor || this.lineColor;
|
|
|
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
|
|
|
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
|
|
|
+ this.stateBkg = this.stateBkg || this.mainBkg;
|
|
|
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
|
|
|
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
|
|
|
+ this.altBackground = this.altBackground || "#f0f0f0";
|
|
|
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
|
|
|
+ this.compositeBorder = this.compositeBorder || this.nodeBorder;
|
|
|
+ this.innerEndBackground = this.primaryBorderColor;
|
|
|
+ this.specialStateColor = this.lineColor;
|
|
|
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
|
|
|
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
|
|
|
+ this.transitionColor = this.transitionColor || this.lineColor;
|
|
|
+ this.classText = this.primaryTextColor;
|
|
|
+ this.fillType0 = this.primaryColor;
|
|
|
+ this.fillType1 = this.secondaryColor;
|
|
|
+ this.fillType2 = adjust5(this.primaryColor, { h: 64 });
|
|
|
+ this.fillType3 = adjust5(this.secondaryColor, { h: 64 });
|
|
|
+ this.fillType4 = adjust5(this.primaryColor, { h: -64 });
|
|
|
+ this.fillType5 = adjust5(this.secondaryColor, { h: -64 });
|
|
|
+ this.fillType6 = adjust5(this.primaryColor, { h: 128 });
|
|
|
+ this.fillType7 = adjust5(this.secondaryColor, { h: 128 });
|
|
|
+ this.pie1 = this.pie1 || this.primaryColor;
|
|
|
+ this.pie2 = this.pie2 || this.secondaryColor;
|
|
|
+ this.pie3 = this.pie3 || this.tertiaryColor;
|
|
|
+ this.pie4 = this.pie4 || adjust5(this.primaryColor, { l: -30 });
|
|
|
+ this.pie5 = this.pie5 || adjust5(this.secondaryColor, { l: -30 });
|
|
|
+ this.pie6 = this.pie6 || adjust5(this.tertiaryColor, { h: 40, l: -40 });
|
|
|
+ this.pie7 = this.pie7 || adjust5(this.primaryColor, { h: 60, l: -10 });
|
|
|
+ this.pie8 = this.pie8 || adjust5(this.primaryColor, { h: -60, l: -10 });
|
|
|
+ this.pie9 = this.pie9 || adjust5(this.primaryColor, { h: 120, l: 0 });
|
|
|
+ this.pie10 = this.pie10 || adjust5(this.primaryColor, { h: 60, l: -50 });
|
|
|
+ this.pie11 = this.pie11 || adjust5(this.primaryColor, { h: -60, l: -50 });
|
|
|
+ this.pie12 = this.pie12 || adjust5(this.primaryColor, { h: 120, l: -50 });
|
|
|
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
|
|
|
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
|
|
|
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
|
|
|
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
|
|
|
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
|
|
|
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
|
|
|
+ this.pieStrokeColor = this.pieStrokeColor || "black";
|
|
|
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
|
|
|
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
|
|
|
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
|
|
|
+ this.pieOpacity = this.pieOpacity || "0.7";
|
|
|
+ this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
|
|
|
+ this.quadrant2Fill = this.quadrant2Fill || adjust5(this.primaryColor, { r: 5, g: 5, b: 5 });
|
|
|
+ this.quadrant3Fill = this.quadrant3Fill || adjust5(this.primaryColor, { r: 10, g: 10, b: 10 });
|
|
|
+ this.quadrant4Fill = this.quadrant4Fill || adjust5(this.primaryColor, { r: 15, g: 15, b: 15 });
|
|
|
+ this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;
|
|
|
+ this.quadrant2TextFill = this.quadrant2TextFill || adjust5(this.primaryTextColor, { r: -5, g: -5, b: -5 });
|
|
|
+ this.quadrant3TextFill = this.quadrant3TextFill || adjust5(this.primaryTextColor, { r: -10, g: -10, b: -10 });
|
|
|
+ this.quadrant4TextFill = this.quadrant4TextFill || adjust5(this.primaryTextColor, { r: -15, g: -15, b: -15 });
|
|
|
+ this.quadrantPointFill = this.quadrantPointFill || isDark4(this.quadrant1Fill) ? lighten4(this.quadrant1Fill) : darken4(this.quadrant1Fill);
|
|
|
+ this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;
|
|
|
+ this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;
|
|
|
+ this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;
|
|
|
+ this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;
|
|
|
+ this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;
|
|
|
+ this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;
|
|
|
+ this.packet = {
|
|
|
+ startByteColor: this.primaryTextColor,
|
|
|
+ endByteColor: this.primaryTextColor,
|
|
|
+ labelColor: this.primaryTextColor,
|
|
|
+ titleColor: this.primaryTextColor,
|
|
|
+ blockStrokeColor: this.primaryTextColor,
|
|
|
+ blockFillColor: this.mainBkg
|
|
|
+ };
|
|
|
+ this.xyChart = {
|
|
|
+ backgroundColor: this.xyChart?.backgroundColor || this.background,
|
|
|
+ titleColor: this.xyChart?.titleColor || this.primaryTextColor,
|
|
|
+ xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,
|
|
|
+ xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,
|
|
|
+ xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,
|
|
|
+ xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,
|
|
|
+ yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,
|
|
|
+ yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,
|
|
|
+ yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,
|
|
|
+ yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,
|
|
|
+ plotColorPalette: this.xyChart?.plotColorPalette || "#CDE498,#FF6B6B,#A0D2DB,#D7BDE2,#F0F0F0,#FFC3A0,#7FD8BE,#FF9A8B,#FAF3E0,#FFF176"
|
|
|
+ };
|
|
|
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
|
|
|
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
|
|
|
+ this.requirementBorderSize = this.requirementBorderSize || "1";
|
|
|
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
|
|
|
+ this.relationColor = this.relationColor || this.lineColor;
|
|
|
+ this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;
|
|
|
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
|
|
|
+ this.git0 = this.git0 || this.primaryColor;
|
|
|
+ this.git1 = this.git1 || this.secondaryColor;
|
|
|
+ this.git2 = this.git2 || this.tertiaryColor;
|
|
|
+ this.git3 = this.git3 || adjust5(this.primaryColor, { h: -30 });
|
|
|
+ this.git4 = this.git4 || adjust5(this.primaryColor, { h: -60 });
|
|
|
+ this.git5 = this.git5 || adjust5(this.primaryColor, { h: -90 });
|
|
|
+ this.git6 = this.git6 || adjust5(this.primaryColor, { h: 60 });
|
|
|
+ this.git7 = this.git7 || adjust5(this.primaryColor, { h: 120 });
|
|
|
+ if (this.darkMode) {
|
|
|
+ this.git0 = lighten4(this.git0, 25);
|
|
|
+ this.git1 = lighten4(this.git1, 25);
|
|
|
+ this.git2 = lighten4(this.git2, 25);
|
|
|
+ this.git3 = lighten4(this.git3, 25);
|
|
|
+ this.git4 = lighten4(this.git4, 25);
|
|
|
+ this.git5 = lighten4(this.git5, 25);
|
|
|
+ this.git6 = lighten4(this.git6, 25);
|
|
|
+ this.git7 = lighten4(this.git7, 25);
|
|
|
+ } else {
|
|
|
+ this.git0 = darken4(this.git0, 25);
|
|
|
+ this.git1 = darken4(this.git1, 25);
|
|
|
+ this.git2 = darken4(this.git2, 25);
|
|
|
+ this.git3 = darken4(this.git3, 25);
|
|
|
+ this.git4 = darken4(this.git4, 25);
|
|
|
+ this.git5 = darken4(this.git5, 25);
|
|
|
+ this.git6 = darken4(this.git6, 25);
|
|
|
+ this.git7 = darken4(this.git7, 25);
|
|
|
+ }
|
|
|
+ this.gitInv0 = this.gitInv0 || invert4(this.git0);
|
|
|
+ this.gitInv1 = this.gitInv1 || invert4(this.git1);
|
|
|
+ this.gitInv2 = this.gitInv2 || invert4(this.git2);
|
|
|
+ this.gitInv3 = this.gitInv3 || invert4(this.git3);
|
|
|
+ this.gitInv4 = this.gitInv4 || invert4(this.git4);
|
|
|
+ this.gitInv5 = this.gitInv5 || invert4(this.git5);
|
|
|
+ this.gitInv6 = this.gitInv6 || invert4(this.git6);
|
|
|
+ this.gitInv7 = this.gitInv7 || invert4(this.git7);
|
|
|
+ this.gitBranchLabel0 = this.gitBranchLabel0 || invert4(this.labelTextColor);
|
|
|
+ this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor;
|
|
|
+ this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor;
|
|
|
+ this.gitBranchLabel3 = this.gitBranchLabel3 || invert4(this.labelTextColor);
|
|
|
+ this.gitBranchLabel4 = this.gitBranchLabel4 || this.labelTextColor;
|
|
|
+ this.gitBranchLabel5 = this.gitBranchLabel5 || this.labelTextColor;
|
|
|
+ this.gitBranchLabel6 = this.gitBranchLabel6 || this.labelTextColor;
|
|
|
+ this.gitBranchLabel7 = this.gitBranchLabel7 || this.labelTextColor;
|
|
|
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
|
|
|
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
|
|
|
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
|
|
|
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
|
|
|
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
|
|
|
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
|
|
|
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
|
|
|
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
|
|
|
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
|
|
|
+ }
|
|
|
+ calculate(overrides) {
|
|
|
+ if (typeof overrides !== "object") {
|
|
|
+ this.updateColors();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const keys = Object.keys(overrides);
|
|
|
+ keys.forEach((k) => {
|
|
|
+ this[k] = overrides[k];
|
|
|
+ });
|
|
|
+ this.updateColors();
|
|
|
+ keys.forEach((k) => {
|
|
|
+ this[k] = overrides[k];
|
|
|
+ });
|
|
|
+ }
|
|
|
+};
|
|
|
+var getThemeVariables4 = /* @__PURE__ */ __name((userOverrides) => {
|
|
|
+ const theme = new Theme4();
|
|
|
+ theme.calculate(userOverrides);
|
|
|
+ return theme;
|
|
|
+}, "getThemeVariables");
|
|
|
+
|
|
|
+// src/themes/theme-neutral.js
|
|
|
+import { invert as invert5, darken as darken5, lighten as lighten5, adjust as adjust6, isDark as isDark5 } from "khroma";
|
|
|
+var Theme5 = class {
|
|
|
+ static {
|
|
|
+ __name(this, "Theme");
|
|
|
+ }
|
|
|
+ constructor() {
|
|
|
+ this.primaryColor = "#eee";
|
|
|
+ this.contrast = "#707070";
|
|
|
+ this.secondaryColor = lighten5(this.contrast, 55);
|
|
|
+ this.background = "#ffffff";
|
|
|
+ this.tertiaryColor = adjust6(this.primaryColor, { h: -160 });
|
|
|
+ this.primaryBorderColor = mkBorder(this.primaryColor, this.darkMode);
|
|
|
+ this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode);
|
|
|
+ this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode);
|
|
|
+ this.primaryTextColor = invert5(this.primaryColor);
|
|
|
+ this.secondaryTextColor = invert5(this.secondaryColor);
|
|
|
+ this.tertiaryTextColor = invert5(this.tertiaryColor);
|
|
|
+ this.lineColor = invert5(this.background);
|
|
|
+ this.textColor = invert5(this.background);
|
|
|
+ this.mainBkg = "#eee";
|
|
|
+ this.secondBkg = "calculated";
|
|
|
+ this.lineColor = "#666";
|
|
|
+ this.border1 = "#999";
|
|
|
+ this.border2 = "calculated";
|
|
|
+ this.note = "#ffa";
|
|
|
+ this.text = "#333";
|
|
|
+ this.critical = "#d42";
|
|
|
+ this.done = "#bbb";
|
|
|
+ this.arrowheadColor = "#333333";
|
|
|
+ this.fontFamily = '"trebuchet ms", verdana, arial, sans-serif';
|
|
|
+ this.fontSize = "16px";
|
|
|
+ this.THEME_COLOR_LIMIT = 12;
|
|
|
+ this.nodeBkg = "calculated";
|
|
|
+ this.nodeBorder = "calculated";
|
|
|
+ this.clusterBkg = "calculated";
|
|
|
+ this.clusterBorder = "calculated";
|
|
|
+ this.defaultLinkColor = "calculated";
|
|
|
+ this.titleColor = "calculated";
|
|
|
+ this.edgeLabelBackground = "white";
|
|
|
+ this.actorBorder = "calculated";
|
|
|
+ this.actorBkg = "calculated";
|
|
|
+ this.actorTextColor = "calculated";
|
|
|
+ this.actorLineColor = this.actorBorder;
|
|
|
+ this.signalColor = "calculated";
|
|
|
+ this.signalTextColor = "calculated";
|
|
|
+ this.labelBoxBkgColor = "calculated";
|
|
|
+ this.labelBoxBorderColor = "calculated";
|
|
|
+ this.labelTextColor = "calculated";
|
|
|
+ this.loopTextColor = "calculated";
|
|
|
+ this.noteBorderColor = "calculated";
|
|
|
+ this.noteBkgColor = "calculated";
|
|
|
+ this.noteTextColor = "calculated";
|
|
|
+ this.activationBorderColor = "#666";
|
|
|
+ this.activationBkgColor = "#f4f4f4";
|
|
|
+ this.sequenceNumberColor = "white";
|
|
|
+ this.sectionBkgColor = "calculated";
|
|
|
+ this.altSectionBkgColor = "white";
|
|
|
+ this.sectionBkgColor2 = "calculated";
|
|
|
+ this.excludeBkgColor = "#eeeeee";
|
|
|
+ this.taskBorderColor = "calculated";
|
|
|
+ this.taskBkgColor = "calculated";
|
|
|
+ this.taskTextLightColor = "white";
|
|
|
+ this.taskTextColor = "calculated";
|
|
|
+ this.taskTextDarkColor = "calculated";
|
|
|
+ this.taskTextOutsideColor = "calculated";
|
|
|
+ this.taskTextClickableColor = "#003163";
|
|
|
+ this.activeTaskBorderColor = "calculated";
|
|
|
+ this.activeTaskBkgColor = "calculated";
|
|
|
+ this.gridColor = "calculated";
|
|
|
+ this.doneTaskBkgColor = "calculated";
|
|
|
+ this.doneTaskBorderColor = "calculated";
|
|
|
+ this.critBkgColor = "calculated";
|
|
|
+ this.critBorderColor = "calculated";
|
|
|
+ this.todayLineColor = "calculated";
|
|
|
+ this.personBorder = this.primaryBorderColor;
|
|
|
+ this.personBkg = this.mainBkg;
|
|
|
+ this.labelColor = "black";
|
|
|
+ this.errorBkgColor = "#552222";
|
|
|
+ this.errorTextColor = "#552222";
|
|
|
+ }
|
|
|
+ updateColors() {
|
|
|
+ this.secondBkg = lighten5(this.contrast, 55);
|
|
|
+ this.border2 = this.contrast;
|
|
|
+ this.actorBorder = lighten5(this.border1, 23);
|
|
|
+ this.actorBkg = this.mainBkg;
|
|
|
+ this.actorTextColor = this.text;
|
|
|
+ this.actorLineColor = this.actorBorder;
|
|
|
+ this.signalColor = this.text;
|
|
|
+ this.signalTextColor = this.text;
|
|
|
+ this.labelBoxBkgColor = this.actorBkg;
|
|
|
+ this.labelBoxBorderColor = this.actorBorder;
|
|
|
+ this.labelTextColor = this.text;
|
|
|
+ this.loopTextColor = this.text;
|
|
|
+ this.noteBorderColor = "#999";
|
|
|
+ this.noteBkgColor = "#666";
|
|
|
+ this.noteTextColor = "#fff";
|
|
|
+ this.cScale0 = this.cScale0 || "#555";
|
|
|
+ this.cScale1 = this.cScale1 || "#F4F4F4";
|
|
|
+ this.cScale2 = this.cScale2 || "#555";
|
|
|
+ this.cScale3 = this.cScale3 || "#BBB";
|
|
|
+ this.cScale4 = this.cScale4 || "#777";
|
|
|
+ this.cScale5 = this.cScale5 || "#999";
|
|
|
+ this.cScale6 = this.cScale6 || "#DDD";
|
|
|
+ this.cScale7 = this.cScale7 || "#FFF";
|
|
|
+ this.cScale8 = this.cScale8 || "#DDD";
|
|
|
+ this.cScale9 = this.cScale9 || "#BBB";
|
|
|
+ this.cScale10 = this.cScale10 || "#999";
|
|
|
+ this.cScale11 = this.cScale11 || "#777";
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["cScaleInv" + i] = this["cScaleInv" + i] || invert5(this["cScale" + i]);
|
|
|
+ }
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ if (this.darkMode) {
|
|
|
+ this["cScalePeer" + i] = this["cScalePeer" + i] || lighten5(this["cScale" + i], 10);
|
|
|
+ } else {
|
|
|
+ this["cScalePeer" + i] = this["cScalePeer" + i] || darken5(this["cScale" + i], 10);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.scaleLabelColor = this.scaleLabelColor || (this.darkMode ? "black" : this.labelTextColor);
|
|
|
+ this.cScaleLabel0 = this.cScaleLabel0 || this.cScale1;
|
|
|
+ this.cScaleLabel2 = this.cScaleLabel2 || this.cScale1;
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["cScaleLabel" + i] = this["cScaleLabel" + i] || this.scaleLabelColor;
|
|
|
+ }
|
|
|
+ for (let i = 0; i < 5; i++) {
|
|
|
+ this["surface" + i] = this["surface" + i] || adjust6(this.mainBkg, { l: -(5 + i * 5) });
|
|
|
+ this["surfacePeer" + i] = this["surfacePeer" + i] || adjust6(this.mainBkg, { l: -(8 + i * 5) });
|
|
|
+ }
|
|
|
+ this.nodeBkg = this.mainBkg;
|
|
|
+ this.nodeBorder = this.border1;
|
|
|
+ this.clusterBkg = this.secondBkg;
|
|
|
+ this.clusterBorder = this.border2;
|
|
|
+ this.defaultLinkColor = this.lineColor;
|
|
|
+ this.titleColor = this.text;
|
|
|
+ this.sectionBkgColor = lighten5(this.contrast, 30);
|
|
|
+ this.sectionBkgColor2 = lighten5(this.contrast, 30);
|
|
|
+ this.taskBorderColor = darken5(this.contrast, 10);
|
|
|
+ this.taskBkgColor = this.contrast;
|
|
|
+ this.taskTextColor = this.taskTextLightColor;
|
|
|
+ this.taskTextDarkColor = this.text;
|
|
|
+ this.taskTextOutsideColor = this.taskTextDarkColor;
|
|
|
+ this.activeTaskBorderColor = this.taskBorderColor;
|
|
|
+ this.activeTaskBkgColor = this.mainBkg;
|
|
|
+ this.gridColor = lighten5(this.border1, 30);
|
|
|
+ this.doneTaskBkgColor = this.done;
|
|
|
+ this.doneTaskBorderColor = this.lineColor;
|
|
|
+ this.critBkgColor = this.critical;
|
|
|
+ this.critBorderColor = darken5(this.critBkgColor, 10);
|
|
|
+ this.todayLineColor = this.critBkgColor;
|
|
|
+ this.transitionColor = this.transitionColor || "#000";
|
|
|
+ this.transitionLabelColor = this.transitionLabelColor || this.textColor;
|
|
|
+ this.stateLabelColor = this.stateLabelColor || this.stateBkg || this.primaryTextColor;
|
|
|
+ this.stateBkg = this.stateBkg || this.mainBkg;
|
|
|
+ this.labelBackgroundColor = this.labelBackgroundColor || this.stateBkg;
|
|
|
+ this.compositeBackground = this.compositeBackground || this.background || this.tertiaryColor;
|
|
|
+ this.altBackground = this.altBackground || "#f4f4f4";
|
|
|
+ this.compositeTitleBackground = this.compositeTitleBackground || this.mainBkg;
|
|
|
+ this.stateBorder = this.stateBorder || "#000";
|
|
|
+ this.innerEndBackground = this.primaryBorderColor;
|
|
|
+ this.specialStateColor = "#222";
|
|
|
+ this.errorBkgColor = this.errorBkgColor || this.tertiaryColor;
|
|
|
+ this.errorTextColor = this.errorTextColor || this.tertiaryTextColor;
|
|
|
+ this.classText = this.primaryTextColor;
|
|
|
+ this.fillType0 = this.primaryColor;
|
|
|
+ this.fillType1 = this.secondaryColor;
|
|
|
+ this.fillType2 = adjust6(this.primaryColor, { h: 64 });
|
|
|
+ this.fillType3 = adjust6(this.secondaryColor, { h: 64 });
|
|
|
+ this.fillType4 = adjust6(this.primaryColor, { h: -64 });
|
|
|
+ this.fillType5 = adjust6(this.secondaryColor, { h: -64 });
|
|
|
+ this.fillType6 = adjust6(this.primaryColor, { h: 128 });
|
|
|
+ this.fillType7 = adjust6(this.secondaryColor, { h: 128 });
|
|
|
+ for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) {
|
|
|
+ this["pie" + i] = this["cScale" + i];
|
|
|
+ }
|
|
|
+ this.pie12 = this.pie0;
|
|
|
+ this.pieTitleTextSize = this.pieTitleTextSize || "25px";
|
|
|
+ this.pieTitleTextColor = this.pieTitleTextColor || this.taskTextDarkColor;
|
|
|
+ this.pieSectionTextSize = this.pieSectionTextSize || "17px";
|
|
|
+ this.pieSectionTextColor = this.pieSectionTextColor || this.textColor;
|
|
|
+ this.pieLegendTextSize = this.pieLegendTextSize || "17px";
|
|
|
+ this.pieLegendTextColor = this.pieLegendTextColor || this.taskTextDarkColor;
|
|
|
+ this.pieStrokeColor = this.pieStrokeColor || "black";
|
|
|
+ this.pieStrokeWidth = this.pieStrokeWidth || "2px";
|
|
|
+ this.pieOuterStrokeWidth = this.pieOuterStrokeWidth || "2px";
|
|
|
+ this.pieOuterStrokeColor = this.pieOuterStrokeColor || "black";
|
|
|
+ this.pieOpacity = this.pieOpacity || "0.7";
|
|
|
+ this.quadrant1Fill = this.quadrant1Fill || this.primaryColor;
|
|
|
+ this.quadrant2Fill = this.quadrant2Fill || adjust6(this.primaryColor, { r: 5, g: 5, b: 5 });
|
|
|
+ this.quadrant3Fill = this.quadrant3Fill || adjust6(this.primaryColor, { r: 10, g: 10, b: 10 });
|
|
|
+ this.quadrant4Fill = this.quadrant4Fill || adjust6(this.primaryColor, { r: 15, g: 15, b: 15 });
|
|
|
+ this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor;
|
|
|
+ this.quadrant2TextFill = this.quadrant2TextFill || adjust6(this.primaryTextColor, { r: -5, g: -5, b: -5 });
|
|
|
+ this.quadrant3TextFill = this.quadrant3TextFill || adjust6(this.primaryTextColor, { r: -10, g: -10, b: -10 });
|
|
|
+ this.quadrant4TextFill = this.quadrant4TextFill || adjust6(this.primaryTextColor, { r: -15, g: -15, b: -15 });
|
|
|
+ this.quadrantPointFill = this.quadrantPointFill || isDark5(this.quadrant1Fill) ? lighten5(this.quadrant1Fill) : darken5(this.quadrant1Fill);
|
|
|
+ this.quadrantPointTextFill = this.quadrantPointTextFill || this.primaryTextColor;
|
|
|
+ this.quadrantXAxisTextFill = this.quadrantXAxisTextFill || this.primaryTextColor;
|
|
|
+ this.quadrantYAxisTextFill = this.quadrantYAxisTextFill || this.primaryTextColor;
|
|
|
+ this.quadrantInternalBorderStrokeFill = this.quadrantInternalBorderStrokeFill || this.primaryBorderColor;
|
|
|
+ this.quadrantExternalBorderStrokeFill = this.quadrantExternalBorderStrokeFill || this.primaryBorderColor;
|
|
|
+ this.quadrantTitleFill = this.quadrantTitleFill || this.primaryTextColor;
|
|
|
+ this.xyChart = {
|
|
|
+ backgroundColor: this.xyChart?.backgroundColor || this.background,
|
|
|
+ titleColor: this.xyChart?.titleColor || this.primaryTextColor,
|
|
|
+ xAxisTitleColor: this.xyChart?.xAxisTitleColor || this.primaryTextColor,
|
|
|
+ xAxisLabelColor: this.xyChart?.xAxisLabelColor || this.primaryTextColor,
|
|
|
+ xAxisTickColor: this.xyChart?.xAxisTickColor || this.primaryTextColor,
|
|
|
+ xAxisLineColor: this.xyChart?.xAxisLineColor || this.primaryTextColor,
|
|
|
+ yAxisTitleColor: this.xyChart?.yAxisTitleColor || this.primaryTextColor,
|
|
|
+ yAxisLabelColor: this.xyChart?.yAxisLabelColor || this.primaryTextColor,
|
|
|
+ yAxisTickColor: this.xyChart?.yAxisTickColor || this.primaryTextColor,
|
|
|
+ yAxisLineColor: this.xyChart?.yAxisLineColor || this.primaryTextColor,
|
|
|
+ plotColorPalette: this.xyChart?.plotColorPalette || "#EEE,#6BB8E4,#8ACB88,#C7ACD6,#E8DCC2,#FFB2A8,#FFF380,#7E8D91,#FFD8B1,#FAF3E0"
|
|
|
+ };
|
|
|
+ this.requirementBackground = this.requirementBackground || this.primaryColor;
|
|
|
+ this.requirementBorderColor = this.requirementBorderColor || this.primaryBorderColor;
|
|
|
+ this.requirementBorderSize = this.requirementBorderSize || "1";
|
|
|
+ this.requirementTextColor = this.requirementTextColor || this.primaryTextColor;
|
|
|
+ this.relationColor = this.relationColor || this.lineColor;
|
|
|
+ this.relationLabelBackground = this.relationLabelBackground || this.edgeLabelBackground;
|
|
|
+ this.relationLabelColor = this.relationLabelColor || this.actorTextColor;
|
|
|
+ this.git0 = darken5(this.pie1, 25) || this.primaryColor;
|
|
|
+ this.git1 = this.pie2 || this.secondaryColor;
|
|
|
+ this.git2 = this.pie3 || this.tertiaryColor;
|
|
|
+ this.git3 = this.pie4 || adjust6(this.primaryColor, { h: -30 });
|
|
|
+ this.git4 = this.pie5 || adjust6(this.primaryColor, { h: -60 });
|
|
|
+ this.git5 = this.pie6 || adjust6(this.primaryColor, { h: -90 });
|
|
|
+ this.git6 = this.pie7 || adjust6(this.primaryColor, { h: 60 });
|
|
|
+ this.git7 = this.pie8 || adjust6(this.primaryColor, { h: 120 });
|
|
|
+ this.gitInv0 = this.gitInv0 || invert5(this.git0);
|
|
|
+ this.gitInv1 = this.gitInv1 || invert5(this.git1);
|
|
|
+ this.gitInv2 = this.gitInv2 || invert5(this.git2);
|
|
|
+ this.gitInv3 = this.gitInv3 || invert5(this.git3);
|
|
|
+ this.gitInv4 = this.gitInv4 || invert5(this.git4);
|
|
|
+ this.gitInv5 = this.gitInv5 || invert5(this.git5);
|
|
|
+ this.gitInv6 = this.gitInv6 || invert5(this.git6);
|
|
|
+ this.gitInv7 = this.gitInv7 || invert5(this.git7);
|
|
|
+ this.branchLabelColor = this.branchLabelColor || this.labelTextColor;
|
|
|
+ this.gitBranchLabel0 = this.branchLabelColor;
|
|
|
+ this.gitBranchLabel1 = "white";
|
|
|
+ this.gitBranchLabel2 = this.branchLabelColor;
|
|
|
+ this.gitBranchLabel3 = "white";
|
|
|
+ this.gitBranchLabel4 = this.branchLabelColor;
|
|
|
+ this.gitBranchLabel5 = this.branchLabelColor;
|
|
|
+ this.gitBranchLabel6 = this.branchLabelColor;
|
|
|
+ this.gitBranchLabel7 = this.branchLabelColor;
|
|
|
+ this.tagLabelColor = this.tagLabelColor || this.primaryTextColor;
|
|
|
+ this.tagLabelBackground = this.tagLabelBackground || this.primaryColor;
|
|
|
+ this.tagLabelBorder = this.tagBorder || this.primaryBorderColor;
|
|
|
+ this.tagLabelFontSize = this.tagLabelFontSize || "10px";
|
|
|
+ this.commitLabelColor = this.commitLabelColor || this.secondaryTextColor;
|
|
|
+ this.commitLabelBackground = this.commitLabelBackground || this.secondaryColor;
|
|
|
+ this.commitLabelFontSize = this.commitLabelFontSize || "10px";
|
|
|
+ this.attributeBackgroundColorOdd = this.attributeBackgroundColorOdd || oldAttributeBackgroundColorOdd;
|
|
|
+ this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || oldAttributeBackgroundColorEven;
|
|
|
+ }
|
|
|
+ calculate(overrides) {
|
|
|
+ if (typeof overrides !== "object") {
|
|
|
+ this.updateColors();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const keys = Object.keys(overrides);
|
|
|
+ keys.forEach((k) => {
|
|
|
+ this[k] = overrides[k];
|
|
|
+ });
|
|
|
+ this.updateColors();
|
|
|
+ keys.forEach((k) => {
|
|
|
+ this[k] = overrides[k];
|
|
|
+ });
|
|
|
+ }
|
|
|
+};
|
|
|
+var getThemeVariables5 = /* @__PURE__ */ __name((userOverrides) => {
|
|
|
+ const theme = new Theme5();
|
|
|
+ theme.calculate(userOverrides);
|
|
|
+ return theme;
|
|
|
+}, "getThemeVariables");
|
|
|
+
|
|
|
+// src/themes/index.js
|
|
|
+var themes_default = {
|
|
|
+ base: {
|
|
|
+ getThemeVariables
|
|
|
+ },
|
|
|
+ dark: {
|
|
|
+ getThemeVariables: getThemeVariables2
|
|
|
+ },
|
|
|
+ default: {
|
|
|
+ getThemeVariables: getThemeVariables3
|
|
|
+ },
|
|
|
+ forest: {
|
|
|
+ getThemeVariables: getThemeVariables4
|
|
|
+ },
|
|
|
+ neutral: {
|
|
|
+ getThemeVariables: getThemeVariables5
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+// src/schemas/config.schema.yaml?only-defaults=true
|
|
|
+var config_schema_default = {
|
|
|
+ "flowchart": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "titleTopMargin": 25,
|
|
|
+ "subGraphTitleMargin": {
|
|
|
+ "top": 0,
|
|
|
+ "bottom": 0
|
|
|
+ },
|
|
|
+ "diagramPadding": 8,
|
|
|
+ "htmlLabels": true,
|
|
|
+ "nodeSpacing": 50,
|
|
|
+ "rankSpacing": 50,
|
|
|
+ "curve": "basis",
|
|
|
+ "padding": 15,
|
|
|
+ "defaultRenderer": "dagre-wrapper",
|
|
|
+ "wrappingWidth": 200
|
|
|
+ },
|
|
|
+ "sequence": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "hideUnusedParticipants": false,
|
|
|
+ "activationWidth": 10,
|
|
|
+ "diagramMarginX": 50,
|
|
|
+ "diagramMarginY": 10,
|
|
|
+ "actorMargin": 50,
|
|
|
+ "width": 150,
|
|
|
+ "height": 65,
|
|
|
+ "boxMargin": 10,
|
|
|
+ "boxTextMargin": 5,
|
|
|
+ "noteMargin": 10,
|
|
|
+ "messageMargin": 35,
|
|
|
+ "messageAlign": "center",
|
|
|
+ "mirrorActors": true,
|
|
|
+ "forceMenus": false,
|
|
|
+ "bottomMarginAdj": 1,
|
|
|
+ "rightAngles": false,
|
|
|
+ "showSequenceNumbers": false,
|
|
|
+ "actorFontSize": 14,
|
|
|
+ "actorFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "actorFontWeight": 400,
|
|
|
+ "noteFontSize": 14,
|
|
|
+ "noteFontFamily": '"trebuchet ms", verdana, arial, sans-serif',
|
|
|
+ "noteFontWeight": 400,
|
|
|
+ "noteAlign": "center",
|
|
|
+ "messageFontSize": 16,
|
|
|
+ "messageFontFamily": '"trebuchet ms", verdana, arial, sans-serif',
|
|
|
+ "messageFontWeight": 400,
|
|
|
+ "wrap": false,
|
|
|
+ "wrapPadding": 10,
|
|
|
+ "labelBoxWidth": 50,
|
|
|
+ "labelBoxHeight": 20
|
|
|
+ },
|
|
|
+ "gantt": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "titleTopMargin": 25,
|
|
|
+ "barHeight": 20,
|
|
|
+ "barGap": 4,
|
|
|
+ "topPadding": 50,
|
|
|
+ "rightPadding": 75,
|
|
|
+ "leftPadding": 75,
|
|
|
+ "gridLineStartPadding": 35,
|
|
|
+ "fontSize": 11,
|
|
|
+ "sectionFontSize": 11,
|
|
|
+ "numberSectionStyles": 4,
|
|
|
+ "axisFormat": "%Y-%m-%d",
|
|
|
+ "topAxis": false,
|
|
|
+ "displayMode": "",
|
|
|
+ "weekday": "sunday"
|
|
|
+ },
|
|
|
+ "journey": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "diagramMarginX": 50,
|
|
|
+ "diagramMarginY": 10,
|
|
|
+ "leftMargin": 150,
|
|
|
+ "width": 150,
|
|
|
+ "height": 50,
|
|
|
+ "boxMargin": 10,
|
|
|
+ "boxTextMargin": 5,
|
|
|
+ "noteMargin": 10,
|
|
|
+ "messageMargin": 35,
|
|
|
+ "messageAlign": "center",
|
|
|
+ "bottomMarginAdj": 1,
|
|
|
+ "rightAngles": false,
|
|
|
+ "taskFontSize": 14,
|
|
|
+ "taskFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "taskMargin": 50,
|
|
|
+ "activationWidth": 10,
|
|
|
+ "textPlacement": "fo",
|
|
|
+ "actorColours": [
|
|
|
+ "#8FBC8F",
|
|
|
+ "#7CFC00",
|
|
|
+ "#00FFFF",
|
|
|
+ "#20B2AA",
|
|
|
+ "#B0E0E6",
|
|
|
+ "#FFFFE0"
|
|
|
+ ],
|
|
|
+ "sectionFills": [
|
|
|
+ "#191970",
|
|
|
+ "#8B008B",
|
|
|
+ "#4B0082",
|
|
|
+ "#2F4F4F",
|
|
|
+ "#800000",
|
|
|
+ "#8B4513",
|
|
|
+ "#00008B"
|
|
|
+ ],
|
|
|
+ "sectionColours": [
|
|
|
+ "#fff"
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ "class": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "titleTopMargin": 25,
|
|
|
+ "arrowMarkerAbsolute": false,
|
|
|
+ "dividerMargin": 10,
|
|
|
+ "padding": 5,
|
|
|
+ "textHeight": 10,
|
|
|
+ "defaultRenderer": "dagre-wrapper",
|
|
|
+ "htmlLabels": false
|
|
|
+ },
|
|
|
+ "state": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "titleTopMargin": 25,
|
|
|
+ "dividerMargin": 10,
|
|
|
+ "sizeUnit": 5,
|
|
|
+ "padding": 8,
|
|
|
+ "textHeight": 10,
|
|
|
+ "titleShift": -15,
|
|
|
+ "noteMargin": 10,
|
|
|
+ "forkWidth": 70,
|
|
|
+ "forkHeight": 7,
|
|
|
+ "miniPadding": 2,
|
|
|
+ "fontSizeFactor": 5.02,
|
|
|
+ "fontSize": 24,
|
|
|
+ "labelHeight": 16,
|
|
|
+ "edgeLengthFactor": "20",
|
|
|
+ "compositTitleSize": 35,
|
|
|
+ "radius": 5,
|
|
|
+ "defaultRenderer": "dagre-wrapper"
|
|
|
+ },
|
|
|
+ "er": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "titleTopMargin": 25,
|
|
|
+ "diagramPadding": 20,
|
|
|
+ "layoutDirection": "TB",
|
|
|
+ "minEntityWidth": 100,
|
|
|
+ "minEntityHeight": 75,
|
|
|
+ "entityPadding": 15,
|
|
|
+ "stroke": "gray",
|
|
|
+ "fill": "honeydew",
|
|
|
+ "fontSize": 12
|
|
|
+ },
|
|
|
+ "pie": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "textPosition": 0.75
|
|
|
+ },
|
|
|
+ "quadrantChart": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "chartWidth": 500,
|
|
|
+ "chartHeight": 500,
|
|
|
+ "titleFontSize": 20,
|
|
|
+ "titlePadding": 10,
|
|
|
+ "quadrantPadding": 5,
|
|
|
+ "xAxisLabelPadding": 5,
|
|
|
+ "yAxisLabelPadding": 5,
|
|
|
+ "xAxisLabelFontSize": 16,
|
|
|
+ "yAxisLabelFontSize": 16,
|
|
|
+ "quadrantLabelFontSize": 16,
|
|
|
+ "quadrantTextTopPadding": 5,
|
|
|
+ "pointTextPadding": 5,
|
|
|
+ "pointLabelFontSize": 12,
|
|
|
+ "pointRadius": 5,
|
|
|
+ "xAxisPosition": "top",
|
|
|
+ "yAxisPosition": "left",
|
|
|
+ "quadrantInternalBorderStrokeWidth": 1,
|
|
|
+ "quadrantExternalBorderStrokeWidth": 2
|
|
|
+ },
|
|
|
+ "xyChart": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "width": 700,
|
|
|
+ "height": 500,
|
|
|
+ "titleFontSize": 20,
|
|
|
+ "titlePadding": 10,
|
|
|
+ "showTitle": true,
|
|
|
+ "xAxis": {
|
|
|
+ "$ref": "#/$defs/XYChartAxisConfig",
|
|
|
+ "showLabel": true,
|
|
|
+ "labelFontSize": 14,
|
|
|
+ "labelPadding": 5,
|
|
|
+ "showTitle": true,
|
|
|
+ "titleFontSize": 16,
|
|
|
+ "titlePadding": 5,
|
|
|
+ "showTick": true,
|
|
|
+ "tickLength": 5,
|
|
|
+ "tickWidth": 2,
|
|
|
+ "showAxisLine": true,
|
|
|
+ "axisLineWidth": 2
|
|
|
+ },
|
|
|
+ "yAxis": {
|
|
|
+ "$ref": "#/$defs/XYChartAxisConfig",
|
|
|
+ "showLabel": true,
|
|
|
+ "labelFontSize": 14,
|
|
|
+ "labelPadding": 5,
|
|
|
+ "showTitle": true,
|
|
|
+ "titleFontSize": 16,
|
|
|
+ "titlePadding": 5,
|
|
|
+ "showTick": true,
|
|
|
+ "tickLength": 5,
|
|
|
+ "tickWidth": 2,
|
|
|
+ "showAxisLine": true,
|
|
|
+ "axisLineWidth": 2
|
|
|
+ },
|
|
|
+ "chartOrientation": "vertical",
|
|
|
+ "plotReservedSpacePercent": 50
|
|
|
+ },
|
|
|
+ "requirement": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "rect_fill": "#f9f9f9",
|
|
|
+ "text_color": "#333",
|
|
|
+ "rect_border_size": "0.5px",
|
|
|
+ "rect_border_color": "#bbb",
|
|
|
+ "rect_min_width": 200,
|
|
|
+ "rect_min_height": 200,
|
|
|
+ "fontSize": 14,
|
|
|
+ "rect_padding": 10,
|
|
|
+ "line_height": 20
|
|
|
+ },
|
|
|
+ "mindmap": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "padding": 10,
|
|
|
+ "maxNodeWidth": 200
|
|
|
+ },
|
|
|
+ "timeline": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "diagramMarginX": 50,
|
|
|
+ "diagramMarginY": 10,
|
|
|
+ "leftMargin": 150,
|
|
|
+ "width": 150,
|
|
|
+ "height": 50,
|
|
|
+ "boxMargin": 10,
|
|
|
+ "boxTextMargin": 5,
|
|
|
+ "noteMargin": 10,
|
|
|
+ "messageMargin": 35,
|
|
|
+ "messageAlign": "center",
|
|
|
+ "bottomMarginAdj": 1,
|
|
|
+ "rightAngles": false,
|
|
|
+ "taskFontSize": 14,
|
|
|
+ "taskFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "taskMargin": 50,
|
|
|
+ "activationWidth": 10,
|
|
|
+ "textPlacement": "fo",
|
|
|
+ "actorColours": [
|
|
|
+ "#8FBC8F",
|
|
|
+ "#7CFC00",
|
|
|
+ "#00FFFF",
|
|
|
+ "#20B2AA",
|
|
|
+ "#B0E0E6",
|
|
|
+ "#FFFFE0"
|
|
|
+ ],
|
|
|
+ "sectionFills": [
|
|
|
+ "#191970",
|
|
|
+ "#8B008B",
|
|
|
+ "#4B0082",
|
|
|
+ "#2F4F4F",
|
|
|
+ "#800000",
|
|
|
+ "#8B4513",
|
|
|
+ "#00008B"
|
|
|
+ ],
|
|
|
+ "sectionColours": [
|
|
|
+ "#fff"
|
|
|
+ ],
|
|
|
+ "disableMulticolor": false
|
|
|
+ },
|
|
|
+ "gitGraph": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "titleTopMargin": 25,
|
|
|
+ "diagramPadding": 8,
|
|
|
+ "nodeLabel": {
|
|
|
+ "width": 75,
|
|
|
+ "height": 100,
|
|
|
+ "x": -25,
|
|
|
+ "y": 0
|
|
|
+ },
|
|
|
+ "mainBranchName": "main",
|
|
|
+ "mainBranchOrder": 0,
|
|
|
+ "showCommitLabel": true,
|
|
|
+ "showBranches": true,
|
|
|
+ "rotateCommitLabel": true,
|
|
|
+ "parallelCommits": false,
|
|
|
+ "arrowMarkerAbsolute": false
|
|
|
+ },
|
|
|
+ "c4": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "diagramMarginX": 50,
|
|
|
+ "diagramMarginY": 10,
|
|
|
+ "c4ShapeMargin": 50,
|
|
|
+ "c4ShapePadding": 20,
|
|
|
+ "width": 216,
|
|
|
+ "height": 60,
|
|
|
+ "boxMargin": 10,
|
|
|
+ "c4ShapeInRow": 4,
|
|
|
+ "nextLinePaddingX": 0,
|
|
|
+ "c4BoundaryInRow": 2,
|
|
|
+ "personFontSize": 14,
|
|
|
+ "personFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "personFontWeight": "normal",
|
|
|
+ "external_personFontSize": 14,
|
|
|
+ "external_personFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "external_personFontWeight": "normal",
|
|
|
+ "systemFontSize": 14,
|
|
|
+ "systemFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "systemFontWeight": "normal",
|
|
|
+ "external_systemFontSize": 14,
|
|
|
+ "external_systemFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "external_systemFontWeight": "normal",
|
|
|
+ "system_dbFontSize": 14,
|
|
|
+ "system_dbFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "system_dbFontWeight": "normal",
|
|
|
+ "external_system_dbFontSize": 14,
|
|
|
+ "external_system_dbFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "external_system_dbFontWeight": "normal",
|
|
|
+ "system_queueFontSize": 14,
|
|
|
+ "system_queueFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "system_queueFontWeight": "normal",
|
|
|
+ "external_system_queueFontSize": 14,
|
|
|
+ "external_system_queueFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "external_system_queueFontWeight": "normal",
|
|
|
+ "boundaryFontSize": 14,
|
|
|
+ "boundaryFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "boundaryFontWeight": "normal",
|
|
|
+ "messageFontSize": 12,
|
|
|
+ "messageFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "messageFontWeight": "normal",
|
|
|
+ "containerFontSize": 14,
|
|
|
+ "containerFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "containerFontWeight": "normal",
|
|
|
+ "external_containerFontSize": 14,
|
|
|
+ "external_containerFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "external_containerFontWeight": "normal",
|
|
|
+ "container_dbFontSize": 14,
|
|
|
+ "container_dbFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "container_dbFontWeight": "normal",
|
|
|
+ "external_container_dbFontSize": 14,
|
|
|
+ "external_container_dbFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "external_container_dbFontWeight": "normal",
|
|
|
+ "container_queueFontSize": 14,
|
|
|
+ "container_queueFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "container_queueFontWeight": "normal",
|
|
|
+ "external_container_queueFontSize": 14,
|
|
|
+ "external_container_queueFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "external_container_queueFontWeight": "normal",
|
|
|
+ "componentFontSize": 14,
|
|
|
+ "componentFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "componentFontWeight": "normal",
|
|
|
+ "external_componentFontSize": 14,
|
|
|
+ "external_componentFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "external_componentFontWeight": "normal",
|
|
|
+ "component_dbFontSize": 14,
|
|
|
+ "component_dbFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "component_dbFontWeight": "normal",
|
|
|
+ "external_component_dbFontSize": 14,
|
|
|
+ "external_component_dbFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "external_component_dbFontWeight": "normal",
|
|
|
+ "component_queueFontSize": 14,
|
|
|
+ "component_queueFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "component_queueFontWeight": "normal",
|
|
|
+ "external_component_queueFontSize": 14,
|
|
|
+ "external_component_queueFontFamily": '"Open Sans", sans-serif',
|
|
|
+ "external_component_queueFontWeight": "normal",
|
|
|
+ "wrap": true,
|
|
|
+ "wrapPadding": 10,
|
|
|
+ "person_bg_color": "#08427B",
|
|
|
+ "person_border_color": "#073B6F",
|
|
|
+ "external_person_bg_color": "#686868",
|
|
|
+ "external_person_border_color": "#8A8A8A",
|
|
|
+ "system_bg_color": "#1168BD",
|
|
|
+ "system_border_color": "#3C7FC0",
|
|
|
+ "system_db_bg_color": "#1168BD",
|
|
|
+ "system_db_border_color": "#3C7FC0",
|
|
|
+ "system_queue_bg_color": "#1168BD",
|
|
|
+ "system_queue_border_color": "#3C7FC0",
|
|
|
+ "external_system_bg_color": "#999999",
|
|
|
+ "external_system_border_color": "#8A8A8A",
|
|
|
+ "external_system_db_bg_color": "#999999",
|
|
|
+ "external_system_db_border_color": "#8A8A8A",
|
|
|
+ "external_system_queue_bg_color": "#999999",
|
|
|
+ "external_system_queue_border_color": "#8A8A8A",
|
|
|
+ "container_bg_color": "#438DD5",
|
|
|
+ "container_border_color": "#3C7FC0",
|
|
|
+ "container_db_bg_color": "#438DD5",
|
|
|
+ "container_db_border_color": "#3C7FC0",
|
|
|
+ "container_queue_bg_color": "#438DD5",
|
|
|
+ "container_queue_border_color": "#3C7FC0",
|
|
|
+ "external_container_bg_color": "#B3B3B3",
|
|
|
+ "external_container_border_color": "#A6A6A6",
|
|
|
+ "external_container_db_bg_color": "#B3B3B3",
|
|
|
+ "external_container_db_border_color": "#A6A6A6",
|
|
|
+ "external_container_queue_bg_color": "#B3B3B3",
|
|
|
+ "external_container_queue_border_color": "#A6A6A6",
|
|
|
+ "component_bg_color": "#85BBF0",
|
|
|
+ "component_border_color": "#78A8D8",
|
|
|
+ "component_db_bg_color": "#85BBF0",
|
|
|
+ "component_db_border_color": "#78A8D8",
|
|
|
+ "component_queue_bg_color": "#85BBF0",
|
|
|
+ "component_queue_border_color": "#78A8D8",
|
|
|
+ "external_component_bg_color": "#CCCCCC",
|
|
|
+ "external_component_border_color": "#BFBFBF",
|
|
|
+ "external_component_db_bg_color": "#CCCCCC",
|
|
|
+ "external_component_db_border_color": "#BFBFBF",
|
|
|
+ "external_component_queue_bg_color": "#CCCCCC",
|
|
|
+ "external_component_queue_border_color": "#BFBFBF"
|
|
|
+ },
|
|
|
+ "sankey": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "width": 600,
|
|
|
+ "height": 400,
|
|
|
+ "linkColor": "gradient",
|
|
|
+ "nodeAlignment": "justify",
|
|
|
+ "showValues": true,
|
|
|
+ "prefix": "",
|
|
|
+ "suffix": ""
|
|
|
+ },
|
|
|
+ "block": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "padding": 8
|
|
|
+ },
|
|
|
+ "packet": {
|
|
|
+ "useMaxWidth": true,
|
|
|
+ "rowHeight": 32,
|
|
|
+ "bitWidth": 32,
|
|
|
+ "bitsPerRow": 32,
|
|
|
+ "showBits": true,
|
|
|
+ "paddingX": 5,
|
|
|
+ "paddingY": 5
|
|
|
+ },
|
|
|
+ "theme": "default",
|
|
|
+ "look": "classic",
|
|
|
+ "handDrawnSeed": 0,
|
|
|
+ "layout": "dagre",
|
|
|
+ "maxTextSize": 5e4,
|
|
|
+ "maxEdges": 500,
|
|
|
+ "darkMode": false,
|
|
|
+ "fontFamily": '"trebuchet ms", verdana, arial, sans-serif;',
|
|
|
+ "logLevel": 5,
|
|
|
+ "securityLevel": "strict",
|
|
|
+ "startOnLoad": true,
|
|
|
+ "arrowMarkerAbsolute": false,
|
|
|
+ "secure": [
|
|
|
+ "secure",
|
|
|
+ "securityLevel",
|
|
|
+ "startOnLoad",
|
|
|
+ "maxTextSize",
|
|
|
+ "suppressErrorRendering",
|
|
|
+ "maxEdges"
|
|
|
+ ],
|
|
|
+ "legacyMathML": false,
|
|
|
+ "forceLegacyMathML": false,
|
|
|
+ "deterministicIds": false,
|
|
|
+ "fontSize": 16,
|
|
|
+ "markdownAutoWrap": true,
|
|
|
+ "suppressErrorRendering": false
|
|
|
+};
|
|
|
+
|
|
|
+// src/defaultConfig.ts
|
|
|
+var config = {
|
|
|
+ ...config_schema_default,
|
|
|
+ // Set, even though they're `undefined` so that `configKeys` finds these keys
|
|
|
+ // TODO: Should we replace these with `null` so that they can go in the JSON Schema?
|
|
|
+ deterministicIDSeed: void 0,
|
|
|
+ elk: {
|
|
|
+ mergeEdges: false,
|
|
|
+ nodePlacementStrategy: "SIMPLE"
|
|
|
+ },
|
|
|
+ themeCSS: void 0,
|
|
|
+ // add non-JSON default config values
|
|
|
+ themeVariables: themes_default.default.getThemeVariables(),
|
|
|
+ sequence: {
|
|
|
+ ...config_schema_default.sequence,
|
|
|
+ messageFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.messageFontFamily,
|
|
|
+ fontSize: this.messageFontSize,
|
|
|
+ fontWeight: this.messageFontWeight
|
|
|
+ };
|
|
|
+ }, "messageFont"),
|
|
|
+ noteFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.noteFontFamily,
|
|
|
+ fontSize: this.noteFontSize,
|
|
|
+ fontWeight: this.noteFontWeight
|
|
|
+ };
|
|
|
+ }, "noteFont"),
|
|
|
+ actorFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.actorFontFamily,
|
|
|
+ fontSize: this.actorFontSize,
|
|
|
+ fontWeight: this.actorFontWeight
|
|
|
+ };
|
|
|
+ }, "actorFont")
|
|
|
+ },
|
|
|
+ gantt: {
|
|
|
+ ...config_schema_default.gantt,
|
|
|
+ tickInterval: void 0,
|
|
|
+ useWidth: void 0
|
|
|
+ // can probably be removed since `configKeys` already includes this
|
|
|
+ },
|
|
|
+ c4: {
|
|
|
+ ...config_schema_default.c4,
|
|
|
+ useWidth: void 0,
|
|
|
+ personFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.personFontFamily,
|
|
|
+ fontSize: this.personFontSize,
|
|
|
+ fontWeight: this.personFontWeight
|
|
|
+ };
|
|
|
+ }, "personFont"),
|
|
|
+ external_personFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.external_personFontFamily,
|
|
|
+ fontSize: this.external_personFontSize,
|
|
|
+ fontWeight: this.external_personFontWeight
|
|
|
+ };
|
|
|
+ }, "external_personFont"),
|
|
|
+ systemFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.systemFontFamily,
|
|
|
+ fontSize: this.systemFontSize,
|
|
|
+ fontWeight: this.systemFontWeight
|
|
|
+ };
|
|
|
+ }, "systemFont"),
|
|
|
+ external_systemFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.external_systemFontFamily,
|
|
|
+ fontSize: this.external_systemFontSize,
|
|
|
+ fontWeight: this.external_systemFontWeight
|
|
|
+ };
|
|
|
+ }, "external_systemFont"),
|
|
|
+ system_dbFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.system_dbFontFamily,
|
|
|
+ fontSize: this.system_dbFontSize,
|
|
|
+ fontWeight: this.system_dbFontWeight
|
|
|
+ };
|
|
|
+ }, "system_dbFont"),
|
|
|
+ external_system_dbFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.external_system_dbFontFamily,
|
|
|
+ fontSize: this.external_system_dbFontSize,
|
|
|
+ fontWeight: this.external_system_dbFontWeight
|
|
|
+ };
|
|
|
+ }, "external_system_dbFont"),
|
|
|
+ system_queueFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.system_queueFontFamily,
|
|
|
+ fontSize: this.system_queueFontSize,
|
|
|
+ fontWeight: this.system_queueFontWeight
|
|
|
+ };
|
|
|
+ }, "system_queueFont"),
|
|
|
+ external_system_queueFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.external_system_queueFontFamily,
|
|
|
+ fontSize: this.external_system_queueFontSize,
|
|
|
+ fontWeight: this.external_system_queueFontWeight
|
|
|
+ };
|
|
|
+ }, "external_system_queueFont"),
|
|
|
+ containerFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.containerFontFamily,
|
|
|
+ fontSize: this.containerFontSize,
|
|
|
+ fontWeight: this.containerFontWeight
|
|
|
+ };
|
|
|
+ }, "containerFont"),
|
|
|
+ external_containerFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.external_containerFontFamily,
|
|
|
+ fontSize: this.external_containerFontSize,
|
|
|
+ fontWeight: this.external_containerFontWeight
|
|
|
+ };
|
|
|
+ }, "external_containerFont"),
|
|
|
+ container_dbFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.container_dbFontFamily,
|
|
|
+ fontSize: this.container_dbFontSize,
|
|
|
+ fontWeight: this.container_dbFontWeight
|
|
|
+ };
|
|
|
+ }, "container_dbFont"),
|
|
|
+ external_container_dbFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.external_container_dbFontFamily,
|
|
|
+ fontSize: this.external_container_dbFontSize,
|
|
|
+ fontWeight: this.external_container_dbFontWeight
|
|
|
+ };
|
|
|
+ }, "external_container_dbFont"),
|
|
|
+ container_queueFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.container_queueFontFamily,
|
|
|
+ fontSize: this.container_queueFontSize,
|
|
|
+ fontWeight: this.container_queueFontWeight
|
|
|
+ };
|
|
|
+ }, "container_queueFont"),
|
|
|
+ external_container_queueFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.external_container_queueFontFamily,
|
|
|
+ fontSize: this.external_container_queueFontSize,
|
|
|
+ fontWeight: this.external_container_queueFontWeight
|
|
|
+ };
|
|
|
+ }, "external_container_queueFont"),
|
|
|
+ componentFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.componentFontFamily,
|
|
|
+ fontSize: this.componentFontSize,
|
|
|
+ fontWeight: this.componentFontWeight
|
|
|
+ };
|
|
|
+ }, "componentFont"),
|
|
|
+ external_componentFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.external_componentFontFamily,
|
|
|
+ fontSize: this.external_componentFontSize,
|
|
|
+ fontWeight: this.external_componentFontWeight
|
|
|
+ };
|
|
|
+ }, "external_componentFont"),
|
|
|
+ component_dbFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.component_dbFontFamily,
|
|
|
+ fontSize: this.component_dbFontSize,
|
|
|
+ fontWeight: this.component_dbFontWeight
|
|
|
+ };
|
|
|
+ }, "component_dbFont"),
|
|
|
+ external_component_dbFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.external_component_dbFontFamily,
|
|
|
+ fontSize: this.external_component_dbFontSize,
|
|
|
+ fontWeight: this.external_component_dbFontWeight
|
|
|
+ };
|
|
|
+ }, "external_component_dbFont"),
|
|
|
+ component_queueFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.component_queueFontFamily,
|
|
|
+ fontSize: this.component_queueFontSize,
|
|
|
+ fontWeight: this.component_queueFontWeight
|
|
|
+ };
|
|
|
+ }, "component_queueFont"),
|
|
|
+ external_component_queueFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.external_component_queueFontFamily,
|
|
|
+ fontSize: this.external_component_queueFontSize,
|
|
|
+ fontWeight: this.external_component_queueFontWeight
|
|
|
+ };
|
|
|
+ }, "external_component_queueFont"),
|
|
|
+ boundaryFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.boundaryFontFamily,
|
|
|
+ fontSize: this.boundaryFontSize,
|
|
|
+ fontWeight: this.boundaryFontWeight
|
|
|
+ };
|
|
|
+ }, "boundaryFont"),
|
|
|
+ messageFont: /* @__PURE__ */ __name(function() {
|
|
|
+ return {
|
|
|
+ fontFamily: this.messageFontFamily,
|
|
|
+ fontSize: this.messageFontSize,
|
|
|
+ fontWeight: this.messageFontWeight
|
|
|
+ };
|
|
|
+ }, "messageFont")
|
|
|
+ },
|
|
|
+ pie: {
|
|
|
+ ...config_schema_default.pie,
|
|
|
+ useWidth: 984
|
|
|
+ },
|
|
|
+ xyChart: {
|
|
|
+ ...config_schema_default.xyChart,
|
|
|
+ useWidth: void 0
|
|
|
+ },
|
|
|
+ requirement: {
|
|
|
+ ...config_schema_default.requirement,
|
|
|
+ useWidth: void 0
|
|
|
+ },
|
|
|
+ packet: {
|
|
|
+ ...config_schema_default.packet
|
|
|
+ }
|
|
|
+};
|
|
|
+var keyify = /* @__PURE__ */ __name((obj, prefix = "") => Object.keys(obj).reduce((res, el) => {
|
|
|
+ if (Array.isArray(obj[el])) {
|
|
|
+ return res;
|
|
|
+ } else if (typeof obj[el] === "object" && obj[el] !== null) {
|
|
|
+ return [...res, prefix + el, ...keyify(obj[el], "")];
|
|
|
+ }
|
|
|
+ return [...res, prefix + el];
|
|
|
+}, []), "keyify");
|
|
|
+var configKeys = new Set(keyify(config, ""));
|
|
|
+var defaultConfig_default = config;
|
|
|
+
|
|
|
+// src/utils/sanitizeDirective.ts
|
|
|
+var sanitizeDirective = /* @__PURE__ */ __name((args) => {
|
|
|
+ log.debug("sanitizeDirective called with", args);
|
|
|
+ if (typeof args !== "object" || args == null) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (Array.isArray(args)) {
|
|
|
+ args.forEach((arg) => sanitizeDirective(arg));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ for (const key of Object.keys(args)) {
|
|
|
+ log.debug("Checking key", key);
|
|
|
+ if (key.startsWith("__") || key.includes("proto") || key.includes("constr") || !configKeys.has(key) || args[key] == null) {
|
|
|
+ log.debug("sanitize deleting key: ", key);
|
|
|
+ delete args[key];
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (typeof args[key] === "object") {
|
|
|
+ log.debug("sanitizing object", key);
|
|
|
+ sanitizeDirective(args[key]);
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ const cssMatchers = ["themeCSS", "fontFamily", "altFontFamily"];
|
|
|
+ for (const cssKey of cssMatchers) {
|
|
|
+ if (key.includes(cssKey)) {
|
|
|
+ log.debug("sanitizing css option", key);
|
|
|
+ args[key] = sanitizeCss(args[key]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (args.themeVariables) {
|
|
|
+ for (const k of Object.keys(args.themeVariables)) {
|
|
|
+ const val = args.themeVariables[k];
|
|
|
+ if (val?.match && !val.match(/^[\d "#%(),.;A-Za-z]+$/)) {
|
|
|
+ args.themeVariables[k] = "";
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ log.debug("After sanitization", args);
|
|
|
+}, "sanitizeDirective");
|
|
|
+var sanitizeCss = /* @__PURE__ */ __name((str) => {
|
|
|
+ let startCnt = 0;
|
|
|
+ let endCnt = 0;
|
|
|
+ for (const element of str) {
|
|
|
+ if (startCnt < endCnt) {
|
|
|
+ return "{ /* ERROR: Unbalanced CSS */ }";
|
|
|
+ }
|
|
|
+ if (element === "{") {
|
|
|
+ startCnt++;
|
|
|
+ } else if (element === "}") {
|
|
|
+ endCnt++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (startCnt !== endCnt) {
|
|
|
+ return "{ /* ERROR: Unbalanced CSS */ }";
|
|
|
+ }
|
|
|
+ return str;
|
|
|
+}, "sanitizeCss");
|
|
|
+
|
|
|
+// src/config.ts
|
|
|
+var defaultConfig = Object.freeze(defaultConfig_default);
|
|
|
+var siteConfig = assignWithDepth_default({}, defaultConfig);
|
|
|
+var configFromInitialize;
|
|
|
+var directives = [];
|
|
|
+var currentConfig = assignWithDepth_default({}, defaultConfig);
|
|
|
+var updateCurrentConfig = /* @__PURE__ */ __name((siteCfg, _directives) => {
|
|
|
+ let cfg = assignWithDepth_default({}, siteCfg);
|
|
|
+ let sumOfDirectives = {};
|
|
|
+ for (const d of _directives) {
|
|
|
+ sanitize(d);
|
|
|
+ sumOfDirectives = assignWithDepth_default(sumOfDirectives, d);
|
|
|
+ }
|
|
|
+ cfg = assignWithDepth_default(cfg, sumOfDirectives);
|
|
|
+ if (sumOfDirectives.theme && sumOfDirectives.theme in themes_default) {
|
|
|
+ const tmpConfigFromInitialize = assignWithDepth_default({}, configFromInitialize);
|
|
|
+ const themeVariables = assignWithDepth_default(
|
|
|
+ tmpConfigFromInitialize.themeVariables || {},
|
|
|
+ sumOfDirectives.themeVariables
|
|
|
+ );
|
|
|
+ if (cfg.theme && cfg.theme in themes_default) {
|
|
|
+ cfg.themeVariables = themes_default[cfg.theme].getThemeVariables(themeVariables);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ currentConfig = cfg;
|
|
|
+ checkConfig(currentConfig);
|
|
|
+ return currentConfig;
|
|
|
+}, "updateCurrentConfig");
|
|
|
+var setSiteConfig = /* @__PURE__ */ __name((conf) => {
|
|
|
+ siteConfig = assignWithDepth_default({}, defaultConfig);
|
|
|
+ siteConfig = assignWithDepth_default(siteConfig, conf);
|
|
|
+ if (conf.theme && themes_default[conf.theme]) {
|
|
|
+ siteConfig.themeVariables = themes_default[conf.theme].getThemeVariables(conf.themeVariables);
|
|
|
+ }
|
|
|
+ updateCurrentConfig(siteConfig, directives);
|
|
|
+ return siteConfig;
|
|
|
+}, "setSiteConfig");
|
|
|
+var saveConfigFromInitialize = /* @__PURE__ */ __name((conf) => {
|
|
|
+ configFromInitialize = assignWithDepth_default({}, conf);
|
|
|
+}, "saveConfigFromInitialize");
|
|
|
+var updateSiteConfig = /* @__PURE__ */ __name((conf) => {
|
|
|
+ siteConfig = assignWithDepth_default(siteConfig, conf);
|
|
|
+ updateCurrentConfig(siteConfig, directives);
|
|
|
+ return siteConfig;
|
|
|
+}, "updateSiteConfig");
|
|
|
+var getSiteConfig = /* @__PURE__ */ __name(() => {
|
|
|
+ return assignWithDepth_default({}, siteConfig);
|
|
|
+}, "getSiteConfig");
|
|
|
+var setConfig = /* @__PURE__ */ __name((conf) => {
|
|
|
+ checkConfig(conf);
|
|
|
+ assignWithDepth_default(currentConfig, conf);
|
|
|
+ return getConfig();
|
|
|
+}, "setConfig");
|
|
|
+var getConfig = /* @__PURE__ */ __name(() => {
|
|
|
+ return assignWithDepth_default({}, currentConfig);
|
|
|
+}, "getConfig");
|
|
|
+var sanitize = /* @__PURE__ */ __name((options) => {
|
|
|
+ if (!options) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ ["secure", ...siteConfig.secure ?? []].forEach((key) => {
|
|
|
+ if (Object.hasOwn(options, key)) {
|
|
|
+ log.debug(`Denied attempt to modify a secure key ${key}`, options[key]);
|
|
|
+ delete options[key];
|
|
|
+ }
|
|
|
+ });
|
|
|
+ Object.keys(options).forEach((key) => {
|
|
|
+ if (key.startsWith("__")) {
|
|
|
+ delete options[key];
|
|
|
+ }
|
|
|
+ });
|
|
|
+ Object.keys(options).forEach((key) => {
|
|
|
+ if (typeof options[key] === "string" && (options[key].includes("<") || options[key].includes(">") || options[key].includes("url(data:"))) {
|
|
|
+ delete options[key];
|
|
|
+ }
|
|
|
+ if (typeof options[key] === "object") {
|
|
|
+ sanitize(options[key]);
|
|
|
+ }
|
|
|
+ });
|
|
|
+}, "sanitize");
|
|
|
+var addDirective = /* @__PURE__ */ __name((directive) => {
|
|
|
+ sanitizeDirective(directive);
|
|
|
+ if (directive.fontFamily && !directive.themeVariables?.fontFamily) {
|
|
|
+ directive.themeVariables = {
|
|
|
+ ...directive.themeVariables,
|
|
|
+ fontFamily: directive.fontFamily
|
|
|
+ };
|
|
|
+ }
|
|
|
+ directives.push(directive);
|
|
|
+ updateCurrentConfig(siteConfig, directives);
|
|
|
+}, "addDirective");
|
|
|
+var reset = /* @__PURE__ */ __name((config2 = siteConfig) => {
|
|
|
+ directives = [];
|
|
|
+ updateCurrentConfig(config2, directives);
|
|
|
+}, "reset");
|
|
|
+var ConfigWarning = {
|
|
|
+ LAZY_LOAD_DEPRECATED: "The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead."
|
|
|
+};
|
|
|
+var issuedWarnings = {};
|
|
|
+var issueWarning = /* @__PURE__ */ __name((warning) => {
|
|
|
+ if (issuedWarnings[warning]) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ log.warn(ConfigWarning[warning]);
|
|
|
+ issuedWarnings[warning] = true;
|
|
|
+}, "issueWarning");
|
|
|
+var checkConfig = /* @__PURE__ */ __name((config2) => {
|
|
|
+ if (!config2) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (config2.lazyLoadedDiagrams || config2.loadExternalDiagramsAtStartup) {
|
|
|
+ issueWarning("LAZY_LOAD_DEPRECATED");
|
|
|
+ }
|
|
|
+}, "checkConfig");
|
|
|
+
|
|
|
+// src/diagrams/common/common.ts
|
|
|
+import DOMPurify from "dompurify";
|
|
|
+var lineBreakRegex = /<br\s*\/?>/gi;
|
|
|
+var getRows = /* @__PURE__ */ __name((s) => {
|
|
|
+ if (!s) {
|
|
|
+ return [""];
|
|
|
+ }
|
|
|
+ const str = breakToPlaceholder(s).replace(/\\n/g, "#br#");
|
|
|
+ return str.split("#br#");
|
|
|
+}, "getRows");
|
|
|
+var setupDompurifyHooksIfNotSetup = /* @__PURE__ */ (() => {
|
|
|
+ let setup = false;
|
|
|
+ return () => {
|
|
|
+ if (!setup) {
|
|
|
+ setupDompurifyHooks();
|
|
|
+ setup = true;
|
|
|
+ }
|
|
|
+ };
|
|
|
+})();
|
|
|
+function setupDompurifyHooks() {
|
|
|
+ const TEMPORARY_ATTRIBUTE = "data-temp-href-target";
|
|
|
+ DOMPurify.addHook("beforeSanitizeAttributes", (node) => {
|
|
|
+ if (node.tagName === "A" && node.hasAttribute("target")) {
|
|
|
+ node.setAttribute(TEMPORARY_ATTRIBUTE, node.getAttribute("target") ?? "");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ DOMPurify.addHook("afterSanitizeAttributes", (node) => {
|
|
|
+ if (node.tagName === "A" && node.hasAttribute(TEMPORARY_ATTRIBUTE)) {
|
|
|
+ node.setAttribute("target", node.getAttribute(TEMPORARY_ATTRIBUTE) ?? "");
|
|
|
+ node.removeAttribute(TEMPORARY_ATTRIBUTE);
|
|
|
+ if (node.getAttribute("target") === "_blank") {
|
|
|
+ node.setAttribute("rel", "noopener");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+}
|
|
|
+__name(setupDompurifyHooks, "setupDompurifyHooks");
|
|
|
+var removeScript = /* @__PURE__ */ __name((txt) => {
|
|
|
+ setupDompurifyHooksIfNotSetup();
|
|
|
+ const sanitizedText = DOMPurify.sanitize(txt);
|
|
|
+ return sanitizedText;
|
|
|
+}, "removeScript");
|
|
|
+var sanitizeMore = /* @__PURE__ */ __name((text, config2) => {
|
|
|
+ if (config2.flowchart?.htmlLabels !== false) {
|
|
|
+ const level = config2.securityLevel;
|
|
|
+ if (level === "antiscript" || level === "strict") {
|
|
|
+ text = removeScript(text);
|
|
|
+ } else if (level !== "loose") {
|
|
|
+ text = breakToPlaceholder(text);
|
|
|
+ text = text.replace(/</g, "<").replace(/>/g, ">");
|
|
|
+ text = text.replace(/=/g, "=");
|
|
|
+ text = placeholderToBreak(text);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return text;
|
|
|
+}, "sanitizeMore");
|
|
|
+var sanitizeText = /* @__PURE__ */ __name((text, config2) => {
|
|
|
+ if (!text) {
|
|
|
+ return text;
|
|
|
+ }
|
|
|
+ if (config2.dompurifyConfig) {
|
|
|
+ text = DOMPurify.sanitize(sanitizeMore(text, config2), config2.dompurifyConfig).toString();
|
|
|
+ } else {
|
|
|
+ text = DOMPurify.sanitize(sanitizeMore(text, config2), {
|
|
|
+ FORBID_TAGS: ["style"]
|
|
|
+ }).toString();
|
|
|
+ }
|
|
|
+ return text;
|
|
|
+}, "sanitizeText");
|
|
|
+var sanitizeTextOrArray = /* @__PURE__ */ __name((a, config2) => {
|
|
|
+ if (typeof a === "string") {
|
|
|
+ return sanitizeText(a, config2);
|
|
|
+ }
|
|
|
+ return a.flat().map((x) => sanitizeText(x, config2));
|
|
|
+}, "sanitizeTextOrArray");
|
|
|
+var hasBreaks = /* @__PURE__ */ __name((text) => {
|
|
|
+ return lineBreakRegex.test(text);
|
|
|
+}, "hasBreaks");
|
|
|
+var splitBreaks = /* @__PURE__ */ __name((text) => {
|
|
|
+ return text.split(lineBreakRegex);
|
|
|
+}, "splitBreaks");
|
|
|
+var placeholderToBreak = /* @__PURE__ */ __name((s) => {
|
|
|
+ return s.replace(/#br#/g, "<br/>");
|
|
|
+}, "placeholderToBreak");
|
|
|
+var breakToPlaceholder = /* @__PURE__ */ __name((s) => {
|
|
|
+ return s.replace(lineBreakRegex, "#br#");
|
|
|
+}, "breakToPlaceholder");
|
|
|
+var getUrl = /* @__PURE__ */ __name((useAbsolute) => {
|
|
|
+ let url = "";
|
|
|
+ if (useAbsolute) {
|
|
|
+ url = window.location.protocol + "//" + window.location.host + window.location.pathname + window.location.search;
|
|
|
+ url = url.replaceAll(/\(/g, "\\(");
|
|
|
+ url = url.replaceAll(/\)/g, "\\)");
|
|
|
+ }
|
|
|
+ return url;
|
|
|
+}, "getUrl");
|
|
|
+var evaluate = /* @__PURE__ */ __name((val) => val === false || ["false", "null", "0"].includes(String(val).trim().toLowerCase()) ? false : true, "evaluate");
|
|
|
+var getMax = /* @__PURE__ */ __name(function(...values) {
|
|
|
+ const newValues = values.filter((value) => {
|
|
|
+ return !isNaN(value);
|
|
|
+ });
|
|
|
+ return Math.max(...newValues);
|
|
|
+}, "getMax");
|
|
|
+var getMin = /* @__PURE__ */ __name(function(...values) {
|
|
|
+ const newValues = values.filter((value) => {
|
|
|
+ return !isNaN(value);
|
|
|
+ });
|
|
|
+ return Math.min(...newValues);
|
|
|
+}, "getMin");
|
|
|
+var parseGenericTypes = /* @__PURE__ */ __name(function(input) {
|
|
|
+ const inputSets = input.split(/(,)/);
|
|
|
+ const output = [];
|
|
|
+ for (let i = 0; i < inputSets.length; i++) {
|
|
|
+ let thisSet = inputSets[i];
|
|
|
+ if (thisSet === "," && i > 0 && i + 1 < inputSets.length) {
|
|
|
+ const previousSet = inputSets[i - 1];
|
|
|
+ const nextSet = inputSets[i + 1];
|
|
|
+ if (shouldCombineSets(previousSet, nextSet)) {
|
|
|
+ thisSet = previousSet + "," + nextSet;
|
|
|
+ i++;
|
|
|
+ output.pop();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ output.push(processSet(thisSet));
|
|
|
+ }
|
|
|
+ return output.join("");
|
|
|
+}, "parseGenericTypes");
|
|
|
+var countOccurrence = /* @__PURE__ */ __name((string, substring) => {
|
|
|
+ return Math.max(0, string.split(substring).length - 1);
|
|
|
+}, "countOccurrence");
|
|
|
+var shouldCombineSets = /* @__PURE__ */ __name((previousSet, nextSet) => {
|
|
|
+ const prevCount = countOccurrence(previousSet, "~");
|
|
|
+ const nextCount = countOccurrence(nextSet, "~");
|
|
|
+ return prevCount === 1 && nextCount === 1;
|
|
|
+}, "shouldCombineSets");
|
|
|
+var processSet = /* @__PURE__ */ __name((input) => {
|
|
|
+ const tildeCount = countOccurrence(input, "~");
|
|
|
+ let hasStartingTilde = false;
|
|
|
+ if (tildeCount <= 1) {
|
|
|
+ return input;
|
|
|
+ }
|
|
|
+ if (tildeCount % 2 !== 0 && input.startsWith("~")) {
|
|
|
+ input = input.substring(1);
|
|
|
+ hasStartingTilde = true;
|
|
|
+ }
|
|
|
+ const chars = [...input];
|
|
|
+ let first = chars.indexOf("~");
|
|
|
+ let last = chars.lastIndexOf("~");
|
|
|
+ while (first !== -1 && last !== -1 && first !== last) {
|
|
|
+ chars[first] = "<";
|
|
|
+ chars[last] = ">";
|
|
|
+ first = chars.indexOf("~");
|
|
|
+ last = chars.lastIndexOf("~");
|
|
|
+ }
|
|
|
+ if (hasStartingTilde) {
|
|
|
+ chars.unshift("~");
|
|
|
+ }
|
|
|
+ return chars.join("");
|
|
|
+}, "processSet");
|
|
|
+var isMathMLSupported = /* @__PURE__ */ __name(() => window.MathMLElement !== void 0, "isMathMLSupported");
|
|
|
+var katexRegex = /\$\$(.*)\$\$/g;
|
|
|
+var hasKatex = /* @__PURE__ */ __name((text) => (text.match(katexRegex)?.length ?? 0) > 0, "hasKatex");
|
|
|
+var calculateMathMLDimensions = /* @__PURE__ */ __name(async (text, config2) => {
|
|
|
+ text = await renderKatex(text, config2);
|
|
|
+ const divElem = document.createElement("div");
|
|
|
+ divElem.innerHTML = text;
|
|
|
+ divElem.id = "katex-temp";
|
|
|
+ divElem.style.visibility = "hidden";
|
|
|
+ divElem.style.position = "absolute";
|
|
|
+ divElem.style.top = "0";
|
|
|
+ const body = document.querySelector("body");
|
|
|
+ body?.insertAdjacentElement("beforeend", divElem);
|
|
|
+ const dim = { width: divElem.clientWidth, height: divElem.clientHeight };
|
|
|
+ divElem.remove();
|
|
|
+ return dim;
|
|
|
+}, "calculateMathMLDimensions");
|
|
|
+var renderKatex = /* @__PURE__ */ __name(async (text, config2) => {
|
|
|
+ if (!hasKatex(text)) {
|
|
|
+ return text;
|
|
|
+ }
|
|
|
+ if (!(isMathMLSupported() || config2.legacyMathML || config2.forceLegacyMathML)) {
|
|
|
+ return text.replace(katexRegex, "MathML is unsupported in this environment.");
|
|
|
+ }
|
|
|
+ const { default: katex } = await import("katex");
|
|
|
+ const outputMode = config2.forceLegacyMathML || !isMathMLSupported() && config2.legacyMathML ? "htmlAndMathml" : "mathml";
|
|
|
+ return text.split(lineBreakRegex).map(
|
|
|
+ (line) => hasKatex(line) ? `<div style="display: flex; align-items: center; justify-content: center; white-space: nowrap;">${line}</div>` : `<div>${line}</div>`
|
|
|
+ ).join("").replace(
|
|
|
+ katexRegex,
|
|
|
+ (_, c) => katex.renderToString(c, {
|
|
|
+ throwOnError: true,
|
|
|
+ displayMode: true,
|
|
|
+ output: outputMode
|
|
|
+ }).replace(/\n/g, " ").replace(/<annotation.*<\/annotation>/g, "")
|
|
|
+ );
|
|
|
+}, "renderKatex");
|
|
|
+var common_default = {
|
|
|
+ getRows,
|
|
|
+ sanitizeText,
|
|
|
+ sanitizeTextOrArray,
|
|
|
+ hasBreaks,
|
|
|
+ splitBreaks,
|
|
|
+ lineBreakRegex,
|
|
|
+ removeScript,
|
|
|
+ getUrl,
|
|
|
+ evaluate,
|
|
|
+ getMax,
|
|
|
+ getMin
|
|
|
+};
|
|
|
+
|
|
|
+// src/setupGraphViewbox.js
|
|
|
+var d3Attrs = /* @__PURE__ */ __name(function(d3Elem, attrs) {
|
|
|
+ for (let attr of attrs) {
|
|
|
+ d3Elem.attr(attr[0], attr[1]);
|
|
|
+ }
|
|
|
+}, "d3Attrs");
|
|
|
+var calculateSvgSizeAttrs = /* @__PURE__ */ __name(function(height, width, useMaxWidth) {
|
|
|
+ let attrs = /* @__PURE__ */ new Map();
|
|
|
+ if (useMaxWidth) {
|
|
|
+ attrs.set("width", "100%");
|
|
|
+ attrs.set("style", `max-width: ${width}px;`);
|
|
|
+ } else {
|
|
|
+ attrs.set("height", height);
|
|
|
+ attrs.set("width", width);
|
|
|
+ }
|
|
|
+ return attrs;
|
|
|
+}, "calculateSvgSizeAttrs");
|
|
|
+var configureSvgSize = /* @__PURE__ */ __name(function(svgElem, height, width, useMaxWidth) {
|
|
|
+ const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth);
|
|
|
+ d3Attrs(svgElem, attrs);
|
|
|
+}, "configureSvgSize");
|
|
|
+var setupGraphViewbox = /* @__PURE__ */ __name(function(graph, svgElem, padding, useMaxWidth) {
|
|
|
+ const svgBounds = svgElem.node().getBBox();
|
|
|
+ const sWidth = svgBounds.width;
|
|
|
+ const sHeight = svgBounds.height;
|
|
|
+ log.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds);
|
|
|
+ let width = 0;
|
|
|
+ let height = 0;
|
|
|
+ log.info(`Graph bounds: ${width}x${height}`, graph);
|
|
|
+ width = sWidth + padding * 2;
|
|
|
+ height = sHeight + padding * 2;
|
|
|
+ log.info(`Calculated bounds: ${width}x${height}`);
|
|
|
+ configureSvgSize(svgElem, height, width, useMaxWidth);
|
|
|
+ const vBox = `${svgBounds.x - padding} ${svgBounds.y - padding} ${svgBounds.width + 2 * padding} ${svgBounds.height + 2 * padding}`;
|
|
|
+ svgElem.attr("viewBox", vBox);
|
|
|
+}, "setupGraphViewbox");
|
|
|
+
|
|
|
+// src/styles.ts
|
|
|
+var themes = {};
|
|
|
+var getStyles = /* @__PURE__ */ __name((type, userStyles, options) => {
|
|
|
+ let diagramStyles = "";
|
|
|
+ if (type in themes && themes[type]) {
|
|
|
+ diagramStyles = themes[type](options);
|
|
|
+ } else {
|
|
|
+ log.warn(`No theme found for ${type}`);
|
|
|
+ }
|
|
|
+ return ` & {
|
|
|
+ font-family: ${options.fontFamily};
|
|
|
+ font-size: ${options.fontSize};
|
|
|
+ fill: ${options.textColor}
|
|
|
+ }
|
|
|
+
|
|
|
+ /* Classes common for multiple diagrams */
|
|
|
+
|
|
|
+ & .error-icon {
|
|
|
+ fill: ${options.errorBkgColor};
|
|
|
+ }
|
|
|
+ & .error-text {
|
|
|
+ fill: ${options.errorTextColor};
|
|
|
+ stroke: ${options.errorTextColor};
|
|
|
+ }
|
|
|
+
|
|
|
+ & .edge-thickness-normal {
|
|
|
+ stroke-width: 1px;
|
|
|
+ }
|
|
|
+ & .edge-thickness-thick {
|
|
|
+ stroke-width: 3.5px
|
|
|
+ }
|
|
|
+ & .edge-pattern-solid {
|
|
|
+ stroke-dasharray: 0;
|
|
|
+ }
|
|
|
+ & .edge-thickness-invisible {
|
|
|
+ stroke-width: 0;
|
|
|
+ fill: none;
|
|
|
+ }
|
|
|
+ & .edge-pattern-dashed{
|
|
|
+ stroke-dasharray: 3;
|
|
|
+ }
|
|
|
+ .edge-pattern-dotted {
|
|
|
+ stroke-dasharray: 2;
|
|
|
+ }
|
|
|
+
|
|
|
+ & .marker {
|
|
|
+ fill: ${options.lineColor};
|
|
|
+ stroke: ${options.lineColor};
|
|
|
+ }
|
|
|
+ & .marker.cross {
|
|
|
+ stroke: ${options.lineColor};
|
|
|
+ }
|
|
|
+
|
|
|
+ & svg {
|
|
|
+ font-family: ${options.fontFamily};
|
|
|
+ font-size: ${options.fontSize};
|
|
|
+ }
|
|
|
+ & p {
|
|
|
+ margin: 0
|
|
|
+ }
|
|
|
+
|
|
|
+ ${diagramStyles}
|
|
|
+
|
|
|
+ ${userStyles}
|
|
|
+`;
|
|
|
+}, "getStyles");
|
|
|
+var addStylesForDiagram = /* @__PURE__ */ __name((type, diagramTheme) => {
|
|
|
+ if (diagramTheme !== void 0) {
|
|
|
+ themes[type] = diagramTheme;
|
|
|
+ }
|
|
|
+}, "addStylesForDiagram");
|
|
|
+var styles_default = getStyles;
|
|
|
+
|
|
|
+// src/diagrams/common/commonDb.ts
|
|
|
+var commonDb_exports = {};
|
|
|
+__export(commonDb_exports, {
|
|
|
+ clear: () => clear,
|
|
|
+ getAccDescription: () => getAccDescription,
|
|
|
+ getAccTitle: () => getAccTitle,
|
|
|
+ getDiagramTitle: () => getDiagramTitle,
|
|
|
+ setAccDescription: () => setAccDescription,
|
|
|
+ setAccTitle: () => setAccTitle,
|
|
|
+ setDiagramTitle: () => setDiagramTitle
|
|
|
+});
|
|
|
+var accTitle = "";
|
|
|
+var diagramTitle = "";
|
|
|
+var accDescription = "";
|
|
|
+var sanitizeText2 = /* @__PURE__ */ __name((txt) => sanitizeText(txt, getConfig()), "sanitizeText");
|
|
|
+var clear = /* @__PURE__ */ __name(() => {
|
|
|
+ accTitle = "";
|
|
|
+ accDescription = "";
|
|
|
+ diagramTitle = "";
|
|
|
+}, "clear");
|
|
|
+var setAccTitle = /* @__PURE__ */ __name((txt) => {
|
|
|
+ accTitle = sanitizeText2(txt).replace(/^\s+/g, "");
|
|
|
+}, "setAccTitle");
|
|
|
+var getAccTitle = /* @__PURE__ */ __name(() => accTitle, "getAccTitle");
|
|
|
+var setAccDescription = /* @__PURE__ */ __name((txt) => {
|
|
|
+ accDescription = sanitizeText2(txt).replace(/\n\s+/g, "\n");
|
|
|
+}, "setAccDescription");
|
|
|
+var getAccDescription = /* @__PURE__ */ __name(() => accDescription, "getAccDescription");
|
|
|
+var setDiagramTitle = /* @__PURE__ */ __name((txt) => {
|
|
|
+ diagramTitle = sanitizeText2(txt);
|
|
|
+}, "setDiagramTitle");
|
|
|
+var getDiagramTitle = /* @__PURE__ */ __name(() => diagramTitle, "getDiagramTitle");
|
|
|
+
|
|
|
+// src/diagram-api/diagramAPI.ts
|
|
|
+var log2 = log;
|
|
|
+var setLogLevel2 = setLogLevel;
|
|
|
+var getConfig2 = getConfig;
|
|
|
+var setConfig2 = setConfig;
|
|
|
+var defaultConfig2 = defaultConfig;
|
|
|
+var sanitizeText3 = /* @__PURE__ */ __name((text) => sanitizeText(text, getConfig2()), "sanitizeText");
|
|
|
+var setupGraphViewbox2 = setupGraphViewbox;
|
|
|
+var getCommonDb = /* @__PURE__ */ __name(() => {
|
|
|
+ return commonDb_exports;
|
|
|
+}, "getCommonDb");
|
|
|
+var diagrams = {};
|
|
|
+var registerDiagram = /* @__PURE__ */ __name((id, diagram, detector) => {
|
|
|
+ if (diagrams[id]) {
|
|
|
+ log2.warn(`Diagram with id ${id} already registered. Overwriting.`);
|
|
|
+ }
|
|
|
+ diagrams[id] = diagram;
|
|
|
+ if (detector) {
|
|
|
+ addDetector(id, detector);
|
|
|
+ }
|
|
|
+ addStylesForDiagram(id, diagram.styles);
|
|
|
+ diagram.injectUtils?.(
|
|
|
+ log2,
|
|
|
+ setLogLevel2,
|
|
|
+ getConfig2,
|
|
|
+ sanitizeText3,
|
|
|
+ setupGraphViewbox2,
|
|
|
+ getCommonDb(),
|
|
|
+ () => {
|
|
|
+ }
|
|
|
+ );
|
|
|
+}, "registerDiagram");
|
|
|
+var getDiagram = /* @__PURE__ */ __name((name) => {
|
|
|
+ if (name in diagrams) {
|
|
|
+ return diagrams[name];
|
|
|
+ }
|
|
|
+ throw new DiagramNotFoundError(name);
|
|
|
+}, "getDiagram");
|
|
|
+var DiagramNotFoundError = class extends Error {
|
|
|
+ static {
|
|
|
+ __name(this, "DiagramNotFoundError");
|
|
|
+ }
|
|
|
+ constructor(name) {
|
|
|
+ super(`Diagram ${name} not found.`);
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+export {
|
|
|
+ __name,
|
|
|
+ __export,
|
|
|
+ log,
|
|
|
+ setLogLevel,
|
|
|
+ frontMatterRegex,
|
|
|
+ directiveRegex,
|
|
|
+ UnknownDiagramError,
|
|
|
+ detectors,
|
|
|
+ detectType,
|
|
|
+ registerLazyLoadedDiagrams,
|
|
|
+ getDiagramLoader,
|
|
|
+ assignWithDepth_default,
|
|
|
+ getThemeVariables3 as getThemeVariables,
|
|
|
+ themes_default,
|
|
|
+ defaultConfig_default,
|
|
|
+ sanitizeDirective,
|
|
|
+ defaultConfig,
|
|
|
+ setSiteConfig,
|
|
|
+ saveConfigFromInitialize,
|
|
|
+ updateSiteConfig,
|
|
|
+ getSiteConfig,
|
|
|
+ setConfig,
|
|
|
+ getConfig,
|
|
|
+ addDirective,
|
|
|
+ reset,
|
|
|
+ lineBreakRegex,
|
|
|
+ sanitizeText,
|
|
|
+ evaluate,
|
|
|
+ parseGenericTypes,
|
|
|
+ hasKatex,
|
|
|
+ calculateMathMLDimensions,
|
|
|
+ renderKatex,
|
|
|
+ common_default,
|
|
|
+ configureSvgSize,
|
|
|
+ setupGraphViewbox,
|
|
|
+ styles_default,
|
|
|
+ clear,
|
|
|
+ setAccTitle,
|
|
|
+ getAccTitle,
|
|
|
+ setAccDescription,
|
|
|
+ getAccDescription,
|
|
|
+ setDiagramTitle,
|
|
|
+ getDiagramTitle,
|
|
|
+ commonDb_exports,
|
|
|
+ getConfig2,
|
|
|
+ setConfig2,
|
|
|
+ defaultConfig2,
|
|
|
+ setupGraphViewbox2,
|
|
|
+ registerDiagram,
|
|
|
+ getDiagram
|
|
|
+};
|