From 3be5285488090ab70254b3080e33e64e6c702d2c Mon Sep 17 00:00:00 2001 From: Christoph Cullmann Date: Mon, 15 Jul 2024 22:27:55 +0200 Subject: sync theme --- .../assets/lib/mermaid/mermaid-f47111a7.js | 6461 -------------------- 1 file changed, 6461 deletions(-) delete mode 100644 themes/blowfish/assets/lib/mermaid/mermaid-f47111a7.js (limited to 'themes/blowfish/assets/lib/mermaid/mermaid-f47111a7.js') diff --git a/themes/blowfish/assets/lib/mermaid/mermaid-f47111a7.js b/themes/blowfish/assets/lib/mermaid/mermaid-f47111a7.js deleted file mode 100644 index 1effcbe..0000000 --- a/themes/blowfish/assets/lib/mermaid/mermaid-f47111a7.js +++ /dev/null @@ -1,6461 +0,0 @@ -import { dedent } from "ts-dedent"; -import dayjs from "dayjs"; -import { sanitizeUrl } from "@braintree/sanitize-url"; -import { select, curveBasis, curveBasisClosed, curveBasisOpen, curveBumpX, curveBumpY, curveBundle, curveCardinalClosed, curveCardinalOpen, curveCardinal, curveCatmullRomClosed, curveCatmullRomOpen, curveCatmullRom, curveLinear, curveLinearClosed, curveMonotoneX, curveMonotoneY, curveNatural, curveStep, curveStepAfter, curveStepBefore } from "d3"; -import DOMPurify from "dompurify"; -import { adjust, invert, darken, lighten, isDark, rgba } from "khroma"; -import memoize from "lodash-es/memoize.js"; -import merge$1 from "lodash-es/merge.js"; -import { serialize, compile, stringify } from "stylis"; -import isEmpty from "lodash-es/isEmpty.js"; -const LEVELS = { - trace: 0, - debug: 1, - info: 2, - warn: 3, - error: 4, - fatal: 5 -}; -const log$1 = { - trace: (..._args) => { - }, - debug: (..._args) => { - }, - info: (..._args) => { - }, - warn: (..._args) => { - }, - error: (..._args) => { - }, - fatal: (..._args) => { - } -}; -const setLogLevel$1 = function(level = "fatal") { - let numericLevel = LEVELS.fatal; - if (typeof level === "string") { - level = level.toLowerCase(); - if (level in LEVELS) { - numericLevel = LEVELS[level]; - } - } else if (typeof level === "number") { - numericLevel = level; - } - log$1.trace = () => { - }; - log$1.debug = () => { - }; - log$1.info = () => { - }; - log$1.warn = () => { - }; - log$1.error = () => { - }; - log$1.fatal = () => { - }; - if (numericLevel <= LEVELS.fatal) { - log$1.fatal = console.error ? console.error.bind(console, format("FATAL"), "color: orange") : console.log.bind(console, "\x1B[35m", format("FATAL")); - } - if (numericLevel <= LEVELS.error) { - log$1.error = console.error ? console.error.bind(console, format("ERROR"), "color: orange") : console.log.bind(console, "\x1B[31m", format("ERROR")); - } - if (numericLevel <= LEVELS.warn) { - log$1.warn = console.warn ? console.warn.bind(console, format("WARN"), "color: orange") : console.log.bind(console, `\x1B[33m`, format("WARN")); - } - if (numericLevel <= LEVELS.info) { - log$1.info = console.info ? console.info.bind(console, format("INFO"), "color: lightblue") : console.log.bind(console, "\x1B[34m", format("INFO")); - } - if (numericLevel <= LEVELS.debug) { - log$1.debug = console.debug ? console.debug.bind(console, format("DEBUG"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format("DEBUG")); - } - if (numericLevel <= LEVELS.trace) { - log$1.trace = console.debug ? console.debug.bind(console, format("TRACE"), "color: lightgreen") : console.log.bind(console, "\x1B[32m", format("TRACE")); - } -}; -const format = (level) => { - const time = dayjs().format("ss.SSS"); - return `%c${time} : ${level} : `; -}; -const lineBreakRegex = //gi; -const getRows = (s) => { - if (!s) { - return [""]; - } - const str2 = breakToPlaceholder(s).replace(/\\n/g, "#br#"); - return str2.split("#br#"); -}; -const setupDompurifyHooksIfNotSetup = (() => { - 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"); - } - } - }); -} -const removeScript = (txt) => { - setupDompurifyHooksIfNotSetup(); - const sanitizedText = DOMPurify.sanitize(txt); - return sanitizedText; -}; -const sanitizeMore = (text, config2) => { - var _a; - if (((_a = config2.flowchart) == null ? void 0 : _a.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, ">"); - text = text.replace(/=/g, "="); - text = placeholderToBreak(text); - } - } - return text; -}; -const sanitizeText$2 = (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; -}; -const sanitizeTextOrArray = (a, config2) => { - if (typeof a === "string") { - return sanitizeText$2(a, config2); - } - return a.flat().map((x) => sanitizeText$2(x, config2)); -}; -const hasBreaks = (text) => { - return lineBreakRegex.test(text); -}; -const splitBreaks = (text) => { - return text.split(lineBreakRegex); -}; -const placeholderToBreak = (s) => { - return s.replace(/#br#/g, "
"); -}; -const breakToPlaceholder = (s) => { - return s.replace(lineBreakRegex, "#br#"); -}; -const getUrl = (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; -}; -const evaluate = (val) => val === false || ["false", "null", "0"].includes(String(val).trim().toLowerCase()) ? false : true; -const getMax = function(...values) { - const newValues = values.filter((value) => { - return !isNaN(value); - }); - return Math.max(...newValues); -}; -const getMin = function(...values) { - const newValues = values.filter((value) => { - return !isNaN(value); - }); - return Math.min(...newValues); -}; -const parseGenericTypes = 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(""); -}; -const countOccurrence = (string, substring) => { - return Math.max(0, string.split(substring).length - 1); -}; -const shouldCombineSets = (previousSet, nextSet) => { - const prevCount = countOccurrence(previousSet, "~"); - const nextCount = countOccurrence(nextSet, "~"); - return prevCount === 1 && nextCount === 1; -}; -const processSet = (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(""); -}; -const isMathMLSupported = () => window.MathMLElement !== void 0; -const katexRegex = /\$\$(.*)\$\$/g; -const hasKatex = (text) => { - var _a; - return (((_a = text.match(katexRegex)) == null ? void 0 : _a.length) ?? 0) > 0; -}; -const calculateMathMLDimensions = 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 == null ? void 0 : body.insertAdjacentElement("beforeend", divElem); - const dim = { width: divElem.clientWidth, height: divElem.clientHeight }; - divElem.remove(); - return dim; -}; -const renderKatex = async (text, config2) => { - if (!hasKatex(text)) { - return text; - } - if (!isMathMLSupported() && !config2.legacyMathML) { - return text.replace(katexRegex, "MathML is unsupported in this environment."); - } - const { default: katex } = await import("katex"); - return text.split(lineBreakRegex).map( - (line) => hasKatex(line) ? ` -
- ${line} -
- ` : `
${line}
` - ).join("").replace( - katexRegex, - (_, c) => katex.renderToString(c, { - throwOnError: true, - displayMode: true, - output: isMathMLSupported() ? "mathml" : "htmlAndMathml" - }).replace(/\n/g, " ").replace(//g, "") - ); -}; -const common$1 = { - getRows, - sanitizeText: sanitizeText$2, - sanitizeTextOrArray, - hasBreaks, - splitBreaks, - lineBreakRegex, - removeScript, - getUrl, - evaluate, - getMax, - getMin -}; -const mkBorder = (col, darkMode) => darkMode ? adjust(col, { s: -40, l: 10 }) : adjust(col, { s: -40, l: -10 }); -const oldAttributeBackgroundColorOdd = "#ffffff"; -const oldAttributeBackgroundColorEven = "#f2f2f2"; -let Theme$4 = class 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() { - var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; - this.primaryTextColor = this.primaryTextColor || (this.darkMode ? "#eee" : "#333"); - this.secondaryColor = this.secondaryColor || adjust(this.primaryColor, { h: -120 }); - this.tertiaryColor = this.tertiaryColor || adjust(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 || "grey"; - 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 || adjust(this.primaryColor, { h: 30 }); - this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 }); - this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 }); - this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 }); - this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 }); - this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210, l: 150 }); - this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 }); - this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 }); - this.cScale11 = this.cScale11 || adjust(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] || adjust(this.mainBkg, { h: 180, s: -15, l: multiplier * (5 + i * 3) }); - this["surfacePeer" + i] = this["surfacePeer" + i] || adjust(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 || adjust(this.primaryColor, { h: 64 }); - this.fillType3 = this.fillType3 || adjust(this.secondaryColor, { h: 64 }); - this.fillType4 = this.fillType4 || adjust(this.primaryColor, { h: -64 }); - this.fillType5 = this.fillType5 || adjust(this.secondaryColor, { h: -64 }); - this.fillType6 = this.fillType6 || adjust(this.primaryColor, { h: 128 }); - this.fillType7 = this.fillType7 || adjust(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 || adjust(this.primaryColor, { l: -10 }); - this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -10 }); - this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -10 }); - this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -10 }); - this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 }); - this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 }); - this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -20 }); - this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -20 }); - this.pie12 = this.pie12 || adjust(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 || adjust(this.primaryColor, { r: 5, g: 5, b: 5 }); - this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 }); - this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 }); - this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor; - this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 }); - this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 }); - this.quadrant4TextFill = this.quadrant4TextFill || adjust(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: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background, - titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor, - xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor, - xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor, - xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor, - xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor, - yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor, - yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor, - yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor, - yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor, - plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.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 || adjust(this.primaryColor, { h: -30 }); - this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 }); - this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 }); - this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 }); - this.git7 = this.git7 || adjust(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]; - }); - } -}; -const getThemeVariables$4 = (userOverrides) => { - const theme2 = new Theme$4(); - theme2.calculate(userOverrides); - return theme2; -}; -let Theme$3 = class Theme2 { - constructor() { - this.background = "#333"; - this.primaryColor = "#1f2020"; - this.secondaryColor = lighten(this.primaryColor, 16); - this.tertiaryColor = adjust(this.primaryColor, { h: -160 }); - this.primaryBorderColor = invert(this.background); - this.secondaryBorderColor = mkBorder(this.secondaryColor, this.darkMode); - this.tertiaryBorderColor = mkBorder(this.tertiaryColor, this.darkMode); - this.primaryTextColor = invert(this.primaryColor); - this.secondaryTextColor = invert(this.secondaryColor); - this.tertiaryTextColor = invert(this.tertiaryColor); - this.lineColor = invert(this.background); - this.textColor = invert(this.background); - this.mainBkg = "#1f2020"; - this.secondBkg = "calculated"; - this.mainContrastColor = "lightgrey"; - this.darkTextColor = lighten(invert("#323D47"), 10); - this.lineColor = "calculated"; - this.border1 = "#81B1DB"; - 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 = darken("#EAE8D9", 30); - this.altSectionBkgColor = "calculated"; - this.sectionBkgColor2 = "#EAE8D9"; - this.excludeBkgColor = darken(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() { - var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; - this.secondBkg = lighten(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 = lighten(this.labelBackground, 25); - this.actorBorder = this.border1; - this.actorBkg = this.mainBkg; - this.actorTextColor = this.mainContrastColor; - this.actorLineColor = this.mainContrastColor; - 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 = lighten(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 = adjust(this.primaryColor, { h: 64 }); - this.fillType3 = adjust(this.secondaryColor, { h: 64 }); - this.fillType4 = adjust(this.primaryColor, { h: -64 }); - this.fillType5 = adjust(this.secondaryColor, { h: -64 }); - this.fillType6 = adjust(this.primaryColor, { h: 128 }); - this.fillType7 = adjust(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 || adjust(this.primaryColor, { h: 30 }); - this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 }); - this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 }); - this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 }); - this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 }); - this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 }); - this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 }); - this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 }); - this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 }); - 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++) { - this["cScalePeer" + i] = this["cScalePeer" + i] || lighten(this["cScale" + i], 10); - } - for (let i = 0; i < 5; i++) { - this["surface" + i] = this["surface" + i] || adjust(this.mainBkg, { h: 30, s: -30, l: -(-10 + i * 4) }); - this["surfacePeer" + i] = this["surfacePeer" + i] || adjust(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 || adjust(this.primaryColor, { r: 5, g: 5, b: 5 }); - this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 }); - this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 }); - this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor; - this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 }); - this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 }); - this.quadrant4TextFill = this.quadrant4TextFill || adjust(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: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background, - titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor, - xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor, - xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor, - xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor, - xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor, - yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor, - yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor, - yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor, - yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor, - plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.plotColorPalette) || "#3498db,#2ecc71,#e74c3c,#f1c40f,#bdc3c7,#ffffff,#34495e,#9b59b6,#1abc9c,#e67e22" - }; - 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 ? darken(this.secondaryColor, 30) : this.secondaryColor); - this.relationLabelColor = this.relationLabelColor || this.actorTextColor; - this.git0 = lighten(this.secondaryColor, 20); - this.git1 = lighten(this.pie2 || this.secondaryColor, 20); - this.git2 = lighten(this.pie3 || this.tertiaryColor, 20); - this.git3 = lighten(this.pie4 || adjust(this.primaryColor, { h: -30 }), 20); - this.git4 = lighten(this.pie5 || adjust(this.primaryColor, { h: -60 }), 20); - this.git5 = lighten(this.pie6 || adjust(this.primaryColor, { h: -90 }), 10); - this.git6 = lighten(this.pie7 || adjust(this.primaryColor, { h: 60 }), 10); - this.git7 = lighten(this.pie8 || adjust(this.primaryColor, { h: 120 }), 20); - 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.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor); - this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor; - this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor; - this.gitBranchLabel3 = this.gitBranchLabel3 || invert(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 || lighten(this.background, 12); - this.attributeBackgroundColorEven = this.attributeBackgroundColorEven || lighten(this.background, 2); - } - 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]; - }); - } -}; -const getThemeVariables$3 = (userOverrides) => { - const theme2 = new Theme$3(); - theme2.calculate(userOverrides); - return theme2; -}; -let Theme$2 = class Theme3 { - constructor() { - this.background = "#f4f4f4"; - this.primaryColor = "#ECECFF"; - this.secondaryColor = adjust(this.primaryColor, { h: 120 }); - this.secondaryColor = "#ffffde"; - this.tertiaryColor = adjust(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 = invert(this.primaryColor); - this.secondaryTextColor = invert(this.secondaryColor); - this.tertiaryTextColor = invert(this.tertiaryColor); - this.lineColor = invert(this.background); - this.textColor = invert(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 = "#e8e8e8"; - 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 = "grey"; - 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 = rgba(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() { - var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; - this.cScale0 = this.cScale0 || this.primaryColor; - this.cScale1 = this.cScale1 || this.secondaryColor; - this.cScale2 = this.cScale2 || this.tertiaryColor; - this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 }); - this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 }); - this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 }); - this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 }); - this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 }); - this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 }); - this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 }); - this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 }); - this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 }); - this["cScalePeer1"] = this["cScalePeer1"] || darken(this.secondaryColor, 45); - this["cScalePeer2"] = this["cScalePeer2"] || darken(this.tertiaryColor, 40); - for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { - this["cScale" + i] = darken(this["cScale" + i], 10); - this["cScalePeer" + i] = this["cScalePeer" + i] || darken(this["cScale" + i], 25); - } - for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { - this["cScaleInv" + i] = this["cScaleInv" + i] || adjust(this["cScale" + i], { h: 180 }); - } - for (let i = 0; i < 5; i++) { - this["surface" + i] = this["surface" + i] || adjust(this.mainBkg, { h: 30, l: -(5 + i * 5) }); - this["surfacePeer" + i] = this["surfacePeer" + i] || adjust(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 || invert(this.labelTextColor); - this.cScaleLabel3 = this.cScaleLabel3 || invert(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 = lighten(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.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 = adjust(this.primaryColor, { h: 64 }); - this.fillType3 = adjust(this.secondaryColor, { h: 64 }); - this.fillType4 = adjust(this.primaryColor, { h: -64 }); - this.fillType5 = adjust(this.secondaryColor, { h: -64 }); - this.fillType6 = adjust(this.primaryColor, { h: 128 }); - this.fillType7 = adjust(this.secondaryColor, { h: 128 }); - this.pie1 = this.pie1 || this.primaryColor; - this.pie2 = this.pie2 || this.secondaryColor; - this.pie3 = this.pie3 || adjust(this.tertiaryColor, { l: -40 }); - this.pie4 = this.pie4 || adjust(this.primaryColor, { l: -10 }); - this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 }); - this.pie6 = this.pie6 || adjust(this.tertiaryColor, { l: -20 }); - this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -20 }); - this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -40 }); - this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: -40 }); - this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -40 }); - this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -90, l: -40 }); - this.pie12 = this.pie12 || adjust(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 || adjust(this.primaryColor, { r: 5, g: 5, b: 5 }); - this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 }); - this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 }); - this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor; - this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 }); - this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 }); - this.quadrant4TextFill = this.quadrant4TextFill || adjust(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: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background, - titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor, - xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor, - xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor, - xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor, - xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor, - yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor, - yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor, - yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor, - yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor, - plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.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 || adjust(this.primaryColor, { h: -30 }); - this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 }); - this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 }); - this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 }); - this.git7 = this.git7 || adjust(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 || darken(invert(this.git0), 25); - 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.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor); - this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor; - this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor; - this.gitBranchLabel3 = this.gitBranchLabel3 || invert(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]; - }); - } -}; -const getThemeVariables$2 = (userOverrides) => { - const theme2 = new Theme$2(); - theme2.calculate(userOverrides); - return theme2; -}; -let Theme$1 = class Theme4 { - 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 = lighten("#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 = invert(this.primaryColor); - this.secondaryTextColor = invert(this.secondaryColor); - this.tertiaryTextColor = invert(this.primaryColor); - this.lineColor = invert(this.background); - this.textColor = invert(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 = "grey"; - 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() { - var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; - this.actorBorder = darken(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.cScale0 = this.cScale0 || this.primaryColor; - this.cScale1 = this.cScale1 || this.secondaryColor; - this.cScale2 = this.cScale2 || this.tertiaryColor; - this.cScale3 = this.cScale3 || adjust(this.primaryColor, { h: 30 }); - this.cScale4 = this.cScale4 || adjust(this.primaryColor, { h: 60 }); - this.cScale5 = this.cScale5 || adjust(this.primaryColor, { h: 90 }); - this.cScale6 = this.cScale6 || adjust(this.primaryColor, { h: 120 }); - this.cScale7 = this.cScale7 || adjust(this.primaryColor, { h: 150 }); - this.cScale8 = this.cScale8 || adjust(this.primaryColor, { h: 210 }); - this.cScale9 = this.cScale9 || adjust(this.primaryColor, { h: 270 }); - this.cScale10 = this.cScale10 || adjust(this.primaryColor, { h: 300 }); - this.cScale11 = this.cScale11 || adjust(this.primaryColor, { h: 330 }); - this["cScalePeer1"] = this["cScalePeer1"] || darken(this.secondaryColor, 45); - this["cScalePeer2"] = this["cScalePeer2"] || darken(this.tertiaryColor, 40); - for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { - this["cScale" + i] = darken(this["cScale" + i], 10); - this["cScalePeer" + i] = this["cScalePeer" + i] || darken(this["cScale" + i], 25); - } - for (let i = 0; i < this.THEME_COLOR_LIMIT; i++) { - this["cScaleInv" + i] = this["cScaleInv" + i] || adjust(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] || adjust(this.mainBkg, { h: 30, s: -30, l: -(5 + i * 5) }); - this["surfacePeer" + i] = this["surfacePeer" + i] || adjust(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 = adjust(this.primaryColor, { h: 64 }); - this.fillType3 = adjust(this.secondaryColor, { h: 64 }); - this.fillType4 = adjust(this.primaryColor, { h: -64 }); - this.fillType5 = adjust(this.secondaryColor, { h: -64 }); - this.fillType6 = adjust(this.primaryColor, { h: 128 }); - this.fillType7 = adjust(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 || adjust(this.primaryColor, { l: -30 }); - this.pie5 = this.pie5 || adjust(this.secondaryColor, { l: -30 }); - this.pie6 = this.pie6 || adjust(this.tertiaryColor, { h: 40, l: -40 }); - this.pie7 = this.pie7 || adjust(this.primaryColor, { h: 60, l: -10 }); - this.pie8 = this.pie8 || adjust(this.primaryColor, { h: -60, l: -10 }); - this.pie9 = this.pie9 || adjust(this.primaryColor, { h: 120, l: 0 }); - this.pie10 = this.pie10 || adjust(this.primaryColor, { h: 60, l: -50 }); - this.pie11 = this.pie11 || adjust(this.primaryColor, { h: -60, l: -50 }); - this.pie12 = this.pie12 || adjust(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 || adjust(this.primaryColor, { r: 5, g: 5, b: 5 }); - this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 }); - this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 }); - this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor; - this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 }); - this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 }); - this.quadrant4TextFill = this.quadrant4TextFill || adjust(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: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background, - titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor, - xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor, - xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor, - xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor, - xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor, - yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor, - yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor, - yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor, - yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor, - plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.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 || adjust(this.primaryColor, { h: -30 }); - this.git4 = this.git4 || adjust(this.primaryColor, { h: -60 }); - this.git5 = this.git5 || adjust(this.primaryColor, { h: -90 }); - this.git6 = this.git6 || adjust(this.primaryColor, { h: 60 }); - this.git7 = this.git7 || adjust(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.gitBranchLabel0 = this.gitBranchLabel0 || invert(this.labelTextColor); - this.gitBranchLabel1 = this.gitBranchLabel1 || this.labelTextColor; - this.gitBranchLabel2 = this.gitBranchLabel2 || this.labelTextColor; - this.gitBranchLabel3 = this.gitBranchLabel3 || invert(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]; - }); - } -}; -const getThemeVariables$1 = (userOverrides) => { - const theme2 = new Theme$1(); - theme2.calculate(userOverrides); - return theme2; -}; -class Theme5 { - constructor() { - this.primaryColor = "#eee"; - this.contrast = "#707070"; - this.secondaryColor = lighten(this.contrast, 55); - this.background = "#ffffff"; - this.tertiaryColor = adjust(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 = invert(this.primaryColor); - this.secondaryTextColor = invert(this.secondaryColor); - this.tertiaryTextColor = invert(this.tertiaryColor); - this.lineColor = invert(this.background); - this.textColor = invert(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 = "calculated"; - 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() { - var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k; - this.secondBkg = lighten(this.contrast, 55); - this.border2 = this.contrast; - this.actorBorder = lighten(this.border1, 23); - this.actorBkg = this.mainBkg; - this.actorTextColor = this.text; - this.actorLineColor = this.lineColor; - 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] || 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.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] || adjust(this.mainBkg, { l: -(5 + i * 5) }); - this["surfacePeer" + i] = this["surfacePeer" + i] || adjust(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 = lighten(this.contrast, 30); - this.sectionBkgColor2 = lighten(this.contrast, 30); - this.taskBorderColor = darken(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 = lighten(this.border1, 30); - this.doneTaskBkgColor = this.done; - this.doneTaskBorderColor = this.lineColor; - this.critBkgColor = this.critical; - this.critBorderColor = darken(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 = adjust(this.primaryColor, { h: 64 }); - this.fillType3 = adjust(this.secondaryColor, { h: 64 }); - this.fillType4 = adjust(this.primaryColor, { h: -64 }); - this.fillType5 = adjust(this.secondaryColor, { h: -64 }); - this.fillType6 = adjust(this.primaryColor, { h: 128 }); - this.fillType7 = adjust(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 || adjust(this.primaryColor, { r: 5, g: 5, b: 5 }); - this.quadrant3Fill = this.quadrant3Fill || adjust(this.primaryColor, { r: 10, g: 10, b: 10 }); - this.quadrant4Fill = this.quadrant4Fill || adjust(this.primaryColor, { r: 15, g: 15, b: 15 }); - this.quadrant1TextFill = this.quadrant1TextFill || this.primaryTextColor; - this.quadrant2TextFill = this.quadrant2TextFill || adjust(this.primaryTextColor, { r: -5, g: -5, b: -5 }); - this.quadrant3TextFill = this.quadrant3TextFill || adjust(this.primaryTextColor, { r: -10, g: -10, b: -10 }); - this.quadrant4TextFill = this.quadrant4TextFill || adjust(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: ((_a = this.xyChart) == null ? void 0 : _a.backgroundColor) || this.background, - titleColor: ((_b = this.xyChart) == null ? void 0 : _b.titleColor) || this.primaryTextColor, - xAxisTitleColor: ((_c = this.xyChart) == null ? void 0 : _c.xAxisTitleColor) || this.primaryTextColor, - xAxisLabelColor: ((_d = this.xyChart) == null ? void 0 : _d.xAxisLabelColor) || this.primaryTextColor, - xAxisTickColor: ((_e = this.xyChart) == null ? void 0 : _e.xAxisTickColor) || this.primaryTextColor, - xAxisLineColor: ((_f = this.xyChart) == null ? void 0 : _f.xAxisLineColor) || this.primaryTextColor, - yAxisTitleColor: ((_g = this.xyChart) == null ? void 0 : _g.yAxisTitleColor) || this.primaryTextColor, - yAxisLabelColor: ((_h = this.xyChart) == null ? void 0 : _h.yAxisLabelColor) || this.primaryTextColor, - yAxisTickColor: ((_i = this.xyChart) == null ? void 0 : _i.yAxisTickColor) || this.primaryTextColor, - yAxisLineColor: ((_j = this.xyChart) == null ? void 0 : _j.yAxisLineColor) || this.primaryTextColor, - plotColorPalette: ((_k = this.xyChart) == null ? void 0 : _k.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 = darken(this.pie1, 25) || this.primaryColor; - this.git1 = this.pie2 || this.secondaryColor; - this.git2 = this.pie3 || this.tertiaryColor; - this.git3 = this.pie4 || adjust(this.primaryColor, { h: -30 }); - this.git4 = this.pie5 || adjust(this.primaryColor, { h: -60 }); - this.git5 = this.pie6 || adjust(this.primaryColor, { h: -90 }); - this.git6 = this.pie7 || adjust(this.primaryColor, { h: 60 }); - this.git7 = this.pie8 || adjust(this.primaryColor, { h: 120 }); - 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.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]; - }); - } -} -const getThemeVariables = (userOverrides) => { - const theme2 = new Theme5(); - theme2.calculate(userOverrides); - return theme2; -}; -const theme = { - base: { - getThemeVariables: getThemeVariables$4 - }, - dark: { - getThemeVariables: getThemeVariables$3 - }, - default: { - getThemeVariables: getThemeVariables$2 - }, - forest: { - getThemeVariables: getThemeVariables$1 - }, - neutral: { - getThemeVariables - } -}; -const defaultConfigJson = { - "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 - }, - "theme": "default", - "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", - "maxEdges" - ], - "legacyMathML": false, - "deterministicIds": false, - "fontSize": 16 -}; -const config = { - ...defaultConfigJson, - // 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, - themeCSS: void 0, - // add non-JSON default config values - themeVariables: theme["default"].getThemeVariables(), - sequence: { - ...defaultConfigJson.sequence, - messageFont: function() { - return { - fontFamily: this.messageFontFamily, - fontSize: this.messageFontSize, - fontWeight: this.messageFontWeight - }; - }, - noteFont: function() { - return { - fontFamily: this.noteFontFamily, - fontSize: this.noteFontSize, - fontWeight: this.noteFontWeight - }; - }, - actorFont: function() { - return { - fontFamily: this.actorFontFamily, - fontSize: this.actorFontSize, - fontWeight: this.actorFontWeight - }; - } - }, - gantt: { - ...defaultConfigJson.gantt, - tickInterval: void 0, - useWidth: void 0 - // can probably be removed since `configKeys` already includes this - }, - c4: { - ...defaultConfigJson.c4, - useWidth: void 0, - personFont: function() { - return { - fontFamily: this.personFontFamily, - fontSize: this.personFontSize, - fontWeight: this.personFontWeight - }; - }, - external_personFont: function() { - return { - fontFamily: this.external_personFontFamily, - fontSize: this.external_personFontSize, - fontWeight: this.external_personFontWeight - }; - }, - systemFont: function() { - return { - fontFamily: this.systemFontFamily, - fontSize: this.systemFontSize, - fontWeight: this.systemFontWeight - }; - }, - external_systemFont: function() { - return { - fontFamily: this.external_systemFontFamily, - fontSize: this.external_systemFontSize, - fontWeight: this.external_systemFontWeight - }; - }, - system_dbFont: function() { - return { - fontFamily: this.system_dbFontFamily, - fontSize: this.system_dbFontSize, - fontWeight: this.system_dbFontWeight - }; - }, - external_system_dbFont: function() { - return { - fontFamily: this.external_system_dbFontFamily, - fontSize: this.external_system_dbFontSize, - fontWeight: this.external_system_dbFontWeight - }; - }, - system_queueFont: function() { - return { - fontFamily: this.system_queueFontFamily, - fontSize: this.system_queueFontSize, - fontWeight: this.system_queueFontWeight - }; - }, - external_system_queueFont: function() { - return { - fontFamily: this.external_system_queueFontFamily, - fontSize: this.external_system_queueFontSize, - fontWeight: this.external_system_queueFontWeight - }; - }, - containerFont: function() { - return { - fontFamily: this.containerFontFamily, - fontSize: this.containerFontSize, - fontWeight: this.containerFontWeight - }; - }, - external_containerFont: function() { - return { - fontFamily: this.external_containerFontFamily, - fontSize: this.external_containerFontSize, - fontWeight: this.external_containerFontWeight - }; - }, - container_dbFont: function() { - return { - fontFamily: this.container_dbFontFamily, - fontSize: this.container_dbFontSize, - fontWeight: this.container_dbFontWeight - }; - }, - external_container_dbFont: function() { - return { - fontFamily: this.external_container_dbFontFamily, - fontSize: this.external_container_dbFontSize, - fontWeight: this.external_container_dbFontWeight - }; - }, - container_queueFont: function() { - return { - fontFamily: this.container_queueFontFamily, - fontSize: this.container_queueFontSize, - fontWeight: this.container_queueFontWeight - }; - }, - external_container_queueFont: function() { - return { - fontFamily: this.external_container_queueFontFamily, - fontSize: this.external_container_queueFontSize, - fontWeight: this.external_container_queueFontWeight - }; - }, - componentFont: function() { - return { - fontFamily: this.componentFontFamily, - fontSize: this.componentFontSize, - fontWeight: this.componentFontWeight - }; - }, - external_componentFont: function() { - return { - fontFamily: this.external_componentFontFamily, - fontSize: this.external_componentFontSize, - fontWeight: this.external_componentFontWeight - }; - }, - component_dbFont: function() { - return { - fontFamily: this.component_dbFontFamily, - fontSize: this.component_dbFontSize, - fontWeight: this.component_dbFontWeight - }; - }, - external_component_dbFont: function() { - return { - fontFamily: this.external_component_dbFontFamily, - fontSize: this.external_component_dbFontSize, - fontWeight: this.external_component_dbFontWeight - }; - }, - component_queueFont: function() { - return { - fontFamily: this.component_queueFontFamily, - fontSize: this.component_queueFontSize, - fontWeight: this.component_queueFontWeight - }; - }, - external_component_queueFont: function() { - return { - fontFamily: this.external_component_queueFontFamily, - fontSize: this.external_component_queueFontSize, - fontWeight: this.external_component_queueFontWeight - }; - }, - boundaryFont: function() { - return { - fontFamily: this.boundaryFontFamily, - fontSize: this.boundaryFontSize, - fontWeight: this.boundaryFontWeight - }; - }, - messageFont: function() { - return { - fontFamily: this.messageFontFamily, - fontSize: this.messageFontSize, - fontWeight: this.messageFontWeight - }; - } - }, - pie: { - ...defaultConfigJson.pie, - useWidth: 984 - }, - xyChart: { - ...defaultConfigJson.xyChart, - useWidth: void 0 - }, - requirement: { - ...defaultConfigJson.requirement, - useWidth: void 0 - }, - gitGraph: { - ...defaultConfigJson.gitGraph, - // TODO: This is a temporary override for `gitGraph`, since every other - // diagram does have `useMaxWidth`, but instead sets it to `true`. - // Should we set this to `true` instead? - useMaxWidth: false - }, - sankey: { - ...defaultConfigJson.sankey, - // this is false, unlike every other diagram (other than gitGraph) - // TODO: can we make this default to `true` instead? - useMaxWidth: false - } -}; -const keyify = (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]; -}, []); -const configKeys = new Set(keyify(config, "")); -const defaultConfig$2 = config; -const sanitizeDirective = (args) => { - log$1.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$1.debug("Checking key", key); - if (key.startsWith("__") || key.includes("proto") || key.includes("constr") || !configKeys.has(key) || args[key] == null) { - log$1.debug("sanitize deleting key: ", key); - delete args[key]; - continue; - } - if (typeof args[key] === "object") { - log$1.debug("sanitizing object", key); - sanitizeDirective(args[key]); - continue; - } - const cssMatchers = ["themeCSS", "fontFamily", "altFontFamily"]; - for (const cssKey of cssMatchers) { - if (key.includes(cssKey)) { - log$1.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 == null ? void 0 : val.match) && !val.match(/^[\d "#%(),.;A-Za-z]+$/)) { - args.themeVariables[k] = ""; - } - } - } - log$1.debug("After sanitization", args); -}; -const sanitizeCss = (str2) => { - let startCnt = 0; - let endCnt = 0; - for (const element of str2) { - if (startCnt < endCnt) { - return "{ /* ERROR: Unbalanced CSS */ }"; - } - if (element === "{") { - startCnt++; - } else if (element === "}") { - endCnt++; - } - } - if (startCnt !== endCnt) { - return "{ /* ERROR: Unbalanced CSS */ }"; - } - return str2; -}; -const frontMatterRegex = /^-{3}\s*[\n\r](.*?)[\n\r]-{3}\s*[\n\r]+/s; -const directiveRegex = /%{2}{\s*(?:(\w+)\s*:|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi; -const anyCommentRegex = /\s*%%.*\n/gm; -class UnknownDiagramError extends Error { - constructor(message) { - super(message); - this.name = "UnknownDiagramError"; - } -} -const detectors = {}; -const detectType = function(text, config2) { - text = text.replace(frontMatterRegex, "").replace(directiveRegex, "").replace(anyCommentRegex, "\n"); - for (const [key, { detector: detector2 }] of Object.entries(detectors)) { - const diagram2 = detector2(text, config2); - if (diagram2) { - return key; - } - } - throw new UnknownDiagramError( - `No diagram type detected matching given configuration for text: ${text}` - ); -}; -const registerLazyLoadedDiagrams = (...diagrams2) => { - for (const { id: id2, detector: detector2, loader: loader2 } of diagrams2) { - addDetector(id2, detector2, loader2); - } -}; -const addDetector = (key, detector2, loader2) => { - if (detectors[key]) { - log$1.error(`Detector with key ${key} already exists`); - } else { - detectors[key] = { detector: detector2, loader: loader2 }; - } - log$1.debug(`Detector with key ${key} added${loader2 ? " with loader" : ""}`); -}; -const getDiagramLoader = (key) => { - return detectors[key].loader; -}; -const assignWithDepth = (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; -}; -const assignWithDepth$1 = assignWithDepth; -const ZERO_WIDTH_SPACE = "​"; -const d3CurveTypes = { - curveBasis, - curveBasisClosed, - curveBasisOpen, - curveBumpX, - curveBumpY, - curveBundle, - curveCardinalClosed, - curveCardinalOpen, - curveCardinal, - curveCatmullRomClosed, - curveCatmullRomOpen, - curveCatmullRom, - curveLinear, - curveLinearClosed, - curveMonotoneX, - curveMonotoneY, - curveNatural, - curveStep, - curveStepAfter, - curveStepBefore -}; -const directiveWithoutOpen = /\s*(?:(\w+)(?=:):|(\w+))\s*(?:(\w+)|((?:(?!}%{2}).|\r?\n)*))?\s*(?:}%{2})?/gi; -const detectInit = function(text, config2) { - const inits = detectDirective(text, /(?:init\b)|(?:initialize\b)/); - let results = {}; - if (Array.isArray(inits)) { - const args = inits.map((init2) => init2.args); - sanitizeDirective(args); - results = assignWithDepth$1(results, [...args]); - } else { - results = inits.args; - } - if (!results) { - return; - } - let type2 = detectType(text, config2); - const prop = "config"; - if (results[prop] !== void 0) { - if (type2 === "flowchart-v2") { - type2 = "flowchart"; - } - results[type2] = results[prop]; - delete results[prop]; - } - return results; -}; -const detectDirective = function(text, type2 = null) { - try { - const commentWithoutDirectives = new RegExp( - `[%]{2}(?![{]${directiveWithoutOpen.source})(?=[}][%]{2}).* -`, - "ig" - ); - text = text.trim().replace(commentWithoutDirectives, "").replace(/'/gm, '"'); - log$1.debug( - `Detecting diagram directive${type2 !== null ? " type:" + type2 : ""} based on the text:${text}` - ); - let match; - const result = []; - while ((match = directiveRegex.exec(text)) !== null) { - if (match.index === directiveRegex.lastIndex) { - directiveRegex.lastIndex++; - } - if (match && !type2 || type2 && match[1] && match[1].match(type2) || type2 && match[2] && match[2].match(type2)) { - const type22 = match[1] ? match[1] : match[2]; - const args = match[3] ? match[3].trim() : match[4] ? JSON.parse(match[4].trim()) : null; - result.push({ type: type22, args }); - } - } - if (result.length === 0) { - return { type: text, args: null }; - } - return result.length === 1 ? result[0] : result; - } catch (error) { - log$1.error( - `ERROR: ${error.message} - Unable to parse directive type: '${type2}' based on the text: '${text}'` - ); - return { type: void 0, args: null }; - } -}; -const removeDirectives = function(text) { - return text.replace(directiveRegex, ""); -}; -const isSubstringInArray = function(str2, arr) { - for (const [i, element] of arr.entries()) { - if (element.match(str2)) { - return i; - } - } - return -1; -}; -function interpolateToCurve(interpolate, defaultCurve) { - if (!interpolate) { - return defaultCurve; - } - const curveName = `curve${interpolate.charAt(0).toUpperCase() + interpolate.slice(1)}`; - return d3CurveTypes[curveName] ?? defaultCurve; -} -function formatUrl(linkStr, config2) { - const url = linkStr.trim(); - if (!url) { - return void 0; - } - if (config2.securityLevel !== "loose") { - return sanitizeUrl(url); - } - return url; -} -const runFunc = (functionName, ...params) => { - const arrPaths = functionName.split("."); - const len = arrPaths.length - 1; - const fnName = arrPaths[len]; - let obj = window; - for (let i = 0; i < len; i++) { - obj = obj[arrPaths[i]]; - if (!obj) { - log$1.error(`Function name: ${functionName} not found in window`); - return; - } - } - obj[fnName](...params); -}; -function distance(p1, p2) { - if (!p1 || !p2) { - return 0; - } - return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2)); -} -function traverseEdge(points) { - let prevPoint; - let totalDistance = 0; - points.forEach((point) => { - totalDistance += distance(point, prevPoint); - prevPoint = point; - }); - const remainingDistance = totalDistance / 2; - return calculatePoint(points, remainingDistance); -} -function calcLabelPosition(points) { - if (points.length === 1) { - return points[0]; - } - return traverseEdge(points); -} -const roundNumber = (num, precision = 2) => { - const factor = Math.pow(10, precision); - return Math.round(num * factor) / factor; -}; -const calculatePoint = (points, distanceToTraverse) => { - let prevPoint = void 0; - let remainingDistance = distanceToTraverse; - for (const point of points) { - if (prevPoint) { - const vectorDistance = distance(point, prevPoint); - if (vectorDistance < remainingDistance) { - remainingDistance -= vectorDistance; - } else { - const distanceRatio = remainingDistance / vectorDistance; - if (distanceRatio <= 0) { - return prevPoint; - } - if (distanceRatio >= 1) { - return { x: point.x, y: point.y }; - } - if (distanceRatio > 0 && distanceRatio < 1) { - return { - x: roundNumber((1 - distanceRatio) * prevPoint.x + distanceRatio * point.x, 5), - y: roundNumber((1 - distanceRatio) * prevPoint.y + distanceRatio * point.y, 5) - }; - } - } - } - prevPoint = point; - } - throw new Error("Could not find a suitable point for the given distance"); -}; -const calcCardinalityPosition = (isRelationTypePresent, points, initialPosition) => { - log$1.info(`our points ${JSON.stringify(points)}`); - if (points[0] !== initialPosition) { - points = points.reverse(); - } - const distanceToCardinalityPoint = 25; - const center = calculatePoint(points, distanceToCardinalityPoint); - const d = isRelationTypePresent ? 10 : 5; - const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x); - const cardinalityPosition = { x: 0, y: 0 }; - cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2; - cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2; - return cardinalityPosition; -}; -function calcTerminalLabelPosition(terminalMarkerSize, position, _points) { - const points = structuredClone(_points); - log$1.info("our points", points); - if (position !== "start_left" && position !== "start_right") { - points.reverse(); - } - const distanceToCardinalityPoint = 25 + terminalMarkerSize; - const center = calculatePoint(points, distanceToCardinalityPoint); - const d = 10 + terminalMarkerSize * 0.5; - const angle = Math.atan2(points[0].y - center.y, points[0].x - center.x); - const cardinalityPosition = { x: 0, y: 0 }; - if (position === "start_left") { - cardinalityPosition.x = Math.sin(angle + Math.PI) * d + (points[0].x + center.x) / 2; - cardinalityPosition.y = -Math.cos(angle + Math.PI) * d + (points[0].y + center.y) / 2; - } else if (position === "end_right") { - cardinalityPosition.x = Math.sin(angle - Math.PI) * d + (points[0].x + center.x) / 2 - 5; - cardinalityPosition.y = -Math.cos(angle - Math.PI) * d + (points[0].y + center.y) / 2 - 5; - } else if (position === "end_left") { - cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2 - 5; - cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2 - 5; - } else { - cardinalityPosition.x = Math.sin(angle) * d + (points[0].x + center.x) / 2; - cardinalityPosition.y = -Math.cos(angle) * d + (points[0].y + center.y) / 2; - } - return cardinalityPosition; -} -function getStylesFromArray(arr) { - let style = ""; - let labelStyle = ""; - for (const element of arr) { - if (element !== void 0) { - if (element.startsWith("color:") || element.startsWith("text-align:")) { - labelStyle = labelStyle + element + ";"; - } else { - style = style + element + ";"; - } - } - } - return { style, labelStyle }; -} -let cnt = 0; -const generateId = () => { - cnt++; - return "id-" + Math.random().toString(36).substr(2, 12) + "-" + cnt; -}; -function makeRandomHex(length) { - let result = ""; - const characters = "0123456789abcdef"; - const charactersLength = characters.length; - for (let i = 0; i < length; i++) { - result += characters.charAt(Math.floor(Math.random() * charactersLength)); - } - return result; -} -const random = (options) => { - return makeRandomHex(options.length); -}; -const getTextObj = function() { - return { - x: 0, - y: 0, - fill: void 0, - anchor: "start", - style: "#666", - width: 100, - height: 100, - textMargin: 0, - rx: 0, - ry: 0, - valign: void 0, - text: "" - }; -}; -const drawSimpleText = function(elem, textData) { - const nText = textData.text.replace(common$1.lineBreakRegex, " "); - const [, _fontSizePx] = parseFontSize(textData.fontSize); - const textElem = elem.append("text"); - textElem.attr("x", textData.x); - textElem.attr("y", textData.y); - textElem.style("text-anchor", textData.anchor); - textElem.style("font-family", textData.fontFamily); - textElem.style("font-size", _fontSizePx); - textElem.style("font-weight", textData.fontWeight); - textElem.attr("fill", textData.fill); - if (textData.class !== void 0) { - textElem.attr("class", textData.class); - } - const span = textElem.append("tspan"); - span.attr("x", textData.x + textData.textMargin * 2); - span.attr("fill", textData.fill); - span.text(nText); - return textElem; -}; -const wrapLabel = memoize( - (label, maxWidth, config2) => { - if (!label) { - return label; - } - config2 = Object.assign( - { fontSize: 12, fontWeight: 400, fontFamily: "Arial", joinWith: "
" }, - config2 - ); - if (common$1.lineBreakRegex.test(label)) { - return label; - } - const words = label.split(" "); - const completedLines = []; - let nextLine = ""; - words.forEach((word, index) => { - const wordLength = calculateTextWidth(`${word} `, config2); - const nextLineLength = calculateTextWidth(nextLine, config2); - if (wordLength > maxWidth) { - const { hyphenatedStrings, remainingWord } = breakString(word, maxWidth, "-", config2); - completedLines.push(nextLine, ...hyphenatedStrings); - nextLine = remainingWord; - } else if (nextLineLength + wordLength >= maxWidth) { - completedLines.push(nextLine); - nextLine = word; - } else { - nextLine = [nextLine, word].filter(Boolean).join(" "); - } - const currentWord = index + 1; - const isLastWord = currentWord === words.length; - if (isLastWord) { - completedLines.push(nextLine); - } - }); - return completedLines.filter((line) => line !== "").join(config2.joinWith); - }, - (label, maxWidth, config2) => `${label}${maxWidth}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}${config2.joinWith}` -); -const breakString = memoize( - (word, maxWidth, hyphenCharacter = "-", config2) => { - config2 = Object.assign( - { fontSize: 12, fontWeight: 400, fontFamily: "Arial", margin: 0 }, - config2 - ); - const characters = [...word]; - const lines = []; - let currentLine = ""; - characters.forEach((character, index) => { - const nextLine = `${currentLine}${character}`; - const lineWidth = calculateTextWidth(nextLine, config2); - if (lineWidth >= maxWidth) { - const currentCharacter = index + 1; - const isLastLine = characters.length === currentCharacter; - const hyphenatedNextLine = `${nextLine}${hyphenCharacter}`; - lines.push(isLastLine ? nextLine : hyphenatedNextLine); - currentLine = ""; - } else { - currentLine = nextLine; - } - }); - return { hyphenatedStrings: lines, remainingWord: currentLine }; - }, - (word, maxWidth, hyphenCharacter = "-", config2) => `${word}${maxWidth}${hyphenCharacter}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}` -); -function calculateTextHeight(text, config2) { - return calculateTextDimensions(text, config2).height; -} -function calculateTextWidth(text, config2) { - return calculateTextDimensions(text, config2).width; -} -const calculateTextDimensions = memoize( - (text, config2) => { - const { fontSize = 12, fontFamily = "Arial", fontWeight = 400 } = config2; - if (!text) { - return { width: 0, height: 0 }; - } - const [, _fontSizePx] = parseFontSize(fontSize); - const fontFamilies = ["sans-serif", fontFamily]; - const lines = text.split(common$1.lineBreakRegex); - const dims = []; - const body = select("body"); - if (!body.remove) { - return { width: 0, height: 0, lineHeight: 0 }; - } - const g = body.append("svg"); - for (const fontFamily2 of fontFamilies) { - let cHeight = 0; - const dim = { width: 0, height: 0, lineHeight: 0 }; - for (const line of lines) { - const textObj = getTextObj(); - textObj.text = line || ZERO_WIDTH_SPACE; - const textElem = drawSimpleText(g, textObj).style("font-size", _fontSizePx).style("font-weight", fontWeight).style("font-family", fontFamily2); - const bBox = (textElem._groups || textElem)[0][0].getBBox(); - if (bBox.width === 0 && bBox.height === 0) { - throw new Error("svg element not in render tree"); - } - dim.width = Math.round(Math.max(dim.width, bBox.width)); - cHeight = Math.round(bBox.height); - dim.height += cHeight; - dim.lineHeight = Math.round(Math.max(dim.lineHeight, cHeight)); - } - dims.push(dim); - } - g.remove(); - const index = isNaN(dims[1].height) || isNaN(dims[1].width) || isNaN(dims[1].lineHeight) || dims[0].height > dims[1].height && dims[0].width > dims[1].width && dims[0].lineHeight > dims[1].lineHeight ? 0 : 1; - return dims[index]; - }, - (text, config2) => `${text}${config2.fontSize}${config2.fontWeight}${config2.fontFamily}` -); -class InitIDGenerator { - constructor(deterministic = false, seed) { - this.count = 0; - this.count = seed ? seed.length : 0; - this.next = deterministic ? () => this.count++ : () => Date.now(); - } -} -let decoder; -const entityDecode = function(html) { - decoder = decoder || document.createElement("div"); - html = escape(html).replace(/%26/g, "&").replace(/%23/g, "#").replace(/%3B/g, ";"); - decoder.innerHTML = html; - return unescape(decoder.textContent); -}; -function isDetailedError(error) { - return "str" in error; -} -const insertTitle = (parent, cssClass, titleTopMargin, title) => { - var _a; - if (!title) { - return; - } - const bounds = (_a = parent.node()) == null ? void 0 : _a.getBBox(); - if (!bounds) { - return; - } - parent.append("text").text(title).attr("x", bounds.x + bounds.width / 2).attr("y", -titleTopMargin).attr("class", cssClass); -}; -const parseFontSize = (fontSize) => { - if (typeof fontSize === "number") { - return [fontSize, fontSize + "px"]; - } - const fontSizeNumber = parseInt(fontSize ?? "", 10); - if (Number.isNaN(fontSizeNumber)) { - return [void 0, void 0]; - } else if (fontSize === String(fontSizeNumber)) { - return [fontSizeNumber, fontSize + "px"]; - } else { - return [fontSizeNumber, fontSize]; - } -}; -function cleanAndMerge(defaultData, data) { - return merge$1({}, defaultData, data); -} -const utils = { - assignWithDepth: assignWithDepth$1, - wrapLabel, - calculateTextHeight, - calculateTextWidth, - calculateTextDimensions, - cleanAndMerge, - detectInit, - detectDirective, - isSubstringInArray, - interpolateToCurve, - calcLabelPosition, - calcCardinalityPosition, - calcTerminalLabelPosition, - formatUrl, - getStylesFromArray, - generateId, - random, - runFunc, - entityDecode, - insertTitle, - parseFontSize, - InitIDGenerator -}; -const encodeEntities = function(text) { - let txt = text; - txt = txt.replace(/style.*:\S*#.*;/g, function(s) { - return s.substring(0, s.length - 1); - }); - txt = txt.replace(/classDef.*:\S*#.*;/g, function(s) { - return s.substring(0, s.length - 1); - }); - txt = txt.replace(/#\w+;/g, function(s) { - const innerTxt = s.substring(1, s.length - 1); - const isInt = /^\+?\d+$/.test(innerTxt); - if (isInt) { - return "fl°°" + innerTxt + "¶ß"; - } else { - return "fl°" + innerTxt + "¶ß"; - } - }); - return txt; -}; -const decodeEntities = function(text) { - return text.replace(/fl°°/g, "&#").replace(/fl°/g, "&").replace(/¶ß/g, ";"); -}; -const version = "10.9.0"; -const defaultConfig$1 = Object.freeze(defaultConfig$2); -let siteConfig = assignWithDepth$1({}, defaultConfig$1); -let configFromInitialize; -let directives = []; -let currentConfig = assignWithDepth$1({}, defaultConfig$1); -const updateCurrentConfig = (siteCfg, _directives) => { - let cfg = assignWithDepth$1({}, siteCfg); - let sumOfDirectives = {}; - for (const d of _directives) { - sanitize(d); - sumOfDirectives = assignWithDepth$1(sumOfDirectives, d); - } - cfg = assignWithDepth$1(cfg, sumOfDirectives); - if (sumOfDirectives.theme && sumOfDirectives.theme in theme) { - const tmpConfigFromInitialize = assignWithDepth$1({}, configFromInitialize); - const themeVariables = assignWithDepth$1( - tmpConfigFromInitialize.themeVariables || {}, - sumOfDirectives.themeVariables - ); - if (cfg.theme && cfg.theme in theme) { - cfg.themeVariables = theme[cfg.theme].getThemeVariables(themeVariables); - } - } - currentConfig = cfg; - checkConfig(currentConfig); - return currentConfig; -}; -const setSiteConfig = (conf) => { - siteConfig = assignWithDepth$1({}, defaultConfig$1); - siteConfig = assignWithDepth$1(siteConfig, conf); - if (conf.theme && theme[conf.theme]) { - siteConfig.themeVariables = theme[conf.theme].getThemeVariables(conf.themeVariables); - } - updateCurrentConfig(siteConfig, directives); - return siteConfig; -}; -const saveConfigFromInitialize = (conf) => { - configFromInitialize = assignWithDepth$1({}, conf); -}; -const updateSiteConfig = (conf) => { - siteConfig = assignWithDepth$1(siteConfig, conf); - updateCurrentConfig(siteConfig, directives); - return siteConfig; -}; -const getSiteConfig = () => { - return assignWithDepth$1({}, siteConfig); -}; -const setConfig$1 = (conf) => { - checkConfig(conf); - assignWithDepth$1(currentConfig, conf); - return getConfig$1(); -}; -const getConfig$1 = () => { - return assignWithDepth$1({}, currentConfig); -}; -const sanitize = (options) => { - if (!options) { - return; - } - ["secure", ...siteConfig.secure ?? []].forEach((key) => { - if (Object.hasOwn(options, key)) { - log$1.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]); - } - }); -}; -const addDirective = (directive) => { - sanitizeDirective(directive); - if (directive.fontFamily && (!directive.themeVariables || !directive.themeVariables.fontFamily)) { - directive.themeVariables = { fontFamily: directive.fontFamily }; - } - directives.push(directive); - updateCurrentConfig(siteConfig, directives); -}; -const reset = (config2 = siteConfig) => { - directives = []; - updateCurrentConfig(config2, directives); -}; -const ConfigWarning = { - LAZY_LOAD_DEPRECATED: "The configuration options lazyLoadedDiagrams and loadExternalDiagramsAtStartup are deprecated. Please use registerExternalDiagrams instead." -}; -const issuedWarnings = {}; -const issueWarning = (warning) => { - if (issuedWarnings[warning]) { - return; - } - log$1.warn(ConfigWarning[warning]); - issuedWarnings[warning] = true; -}; -const checkConfig = (config2) => { - if (!config2) { - return; - } - if (config2.lazyLoadedDiagrams || config2.loadExternalDiagramsAtStartup) { - issueWarning("LAZY_LOAD_DEPRECATED"); - } -}; -const id$l = "c4"; -const detector$l = (txt) => { - return /^\s*C4Context|C4Container|C4Component|C4Dynamic|C4Deployment/.test(txt); -}; -const loader$m = async () => { - const { diagram: diagram2 } = await import("./c4Diagram-b2a90758.js"); - return { id: id$l, diagram: diagram2 }; -}; -const plugin$j = { - id: id$l, - detector: detector$l, - loader: loader$m -}; -const c4 = plugin$j; -const id$k = "flowchart"; -const detector$k = (txt, config2) => { - var _a, _b; - if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === "elk") { - return false; - } - return /^\s*graph/.test(txt); -}; -const loader$l = async () => { - const { diagram: diagram2 } = await import("./flowDiagram-5540d9b9.js"); - return { id: id$k, diagram: diagram2 }; -}; -const plugin$i = { - id: id$k, - detector: detector$k, - loader: loader$l -}; -const flowchart = plugin$i; -const id$j = "flowchart-v2"; -const detector$j = (txt, config2) => { - var _a, _b, _c; - if (((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === "dagre-d3" || ((_b = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _b.defaultRenderer) === "elk") { - return false; - } - if (/^\s*graph/.test(txt) && ((_c = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _c.defaultRenderer) === "dagre-wrapper") { - return true; - } - return /^\s*flowchart/.test(txt); -}; -const loader$k = async () => { - const { diagram: diagram2 } = await import("./flowDiagram-v2-3b53844e.js"); - return { id: id$j, diagram: diagram2 }; -}; -const plugin$h = { - id: id$j, - detector: detector$j, - loader: loader$k -}; -const flowchartV2 = plugin$h; -const id$i = "er"; -const detector$i = (txt) => { - return /^\s*erDiagram/.test(txt); -}; -const loader$j = async () => { - const { diagram: diagram2 } = await import("./erDiagram-47591fe2.js"); - return { id: id$i, diagram: diagram2 }; -}; -const plugin$g = { - id: id$i, - detector: detector$i, - loader: loader$j -}; -const er = plugin$g; -const id$h = "gitGraph"; -const detector$h = (txt) => { - return /^\s*gitGraph/.test(txt); -}; -const loader$i = async () => { - const { diagram: diagram2 } = await import("./gitGraphDiagram-96e6b4ee.js"); - return { id: id$h, diagram: diagram2 }; -}; -const plugin$f = { - id: id$h, - detector: detector$h, - loader: loader$i -}; -const git = plugin$f; -const id$g = "gantt"; -const detector$g = (txt) => { - return /^\s*gantt/.test(txt); -}; -const loader$h = async () => { - const { diagram: diagram2 } = await import("./ganttDiagram-9a3bba1f.js"); - return { id: id$g, diagram: diagram2 }; -}; -const plugin$e = { - id: id$g, - detector: detector$g, - loader: loader$h -}; -const gantt = plugin$e; -const id$f = "info"; -const detector$f = (txt) => { - return /^\s*info/.test(txt); -}; -const loader$g = async () => { - const { diagram: diagram2 } = await import("./infoDiagram-bcd20f53.js"); - return { id: id$f, diagram: diagram2 }; -}; -const info = { - id: id$f, - detector: detector$f, - loader: loader$g -}; -const id$e = "pie"; -const detector$e = (txt) => { - return /^\s*pie/.test(txt); -}; -const loader$f = async () => { - const { diagram: diagram2 } = await import("./pieDiagram-79897490.js"); - return { id: id$e, diagram: diagram2 }; -}; -const pie = { - id: id$e, - detector: detector$e, - loader: loader$f -}; -const id$d = "quadrantChart"; -const detector$d = (txt) => { - return /^\s*quadrantChart/.test(txt); -}; -const loader$e = async () => { - const { diagram: diagram2 } = await import("./quadrantDiagram-62f64e94.js"); - return { id: id$d, diagram: diagram2 }; -}; -const plugin$d = { - id: id$d, - detector: detector$d, - loader: loader$e -}; -const quadrantChart = plugin$d; -const id$c = "xychart"; -const detector$c = (txt) => { - return /^\s*xychart-beta/.test(txt); -}; -const loader$d = async () => { - const { diagram: diagram2 } = await import("./xychartDiagram-ab372869.js"); - return { id: id$c, diagram: diagram2 }; -}; -const plugin$c = { - id: id$c, - detector: detector$c, - loader: loader$d -}; -const xychart = plugin$c; -const id$b = "requirement"; -const detector$b = (txt) => { - return /^\s*requirement(Diagram)?/.test(txt); -}; -const loader$c = async () => { - const { diagram: diagram2 } = await import("./requirementDiagram-05bf5f74.js"); - return { id: id$b, diagram: diagram2 }; -}; -const plugin$b = { - id: id$b, - detector: detector$b, - loader: loader$c -}; -const requirement = plugin$b; -const id$a = "sequence"; -const detector$a = (txt) => { - return /^\s*sequenceDiagram/.test(txt); -}; -const loader$b = async () => { - const { diagram: diagram2 } = await import("./sequenceDiagram-acc0e65c.js"); - return { id: id$a, diagram: diagram2 }; -}; -const plugin$a = { - id: id$a, - detector: detector$a, - loader: loader$b -}; -const sequence = plugin$a; -const id$9 = "class"; -const detector$9 = (txt, config2) => { - var _a; - if (((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") { - return false; - } - return /^\s*classDiagram/.test(txt); -}; -const loader$a = async () => { - const { diagram: diagram2 } = await import("./classDiagram-30eddba6.js"); - return { id: id$9, diagram: diagram2 }; -}; -const plugin$9 = { - id: id$9, - detector: detector$9, - loader: loader$a -}; -const classDiagram = plugin$9; -const id$8 = "classDiagram"; -const detector$8 = (txt, config2) => { - var _a; - if (/^\s*classDiagram/.test(txt) && ((_a = config2 == null ? void 0 : config2.class) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") { - return true; - } - return /^\s*classDiagram-v2/.test(txt); -}; -const loader$9 = async () => { - const { diagram: diagram2 } = await import("./classDiagram-v2-f2df5561.js"); - return { id: id$8, diagram: diagram2 }; -}; -const plugin$8 = { - id: id$8, - detector: detector$8, - loader: loader$9 -}; -const classDiagramV2 = plugin$8; -const id$7 = "state"; -const detector$7 = (txt, config2) => { - var _a; - if (((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") { - return false; - } - return /^\s*stateDiagram/.test(txt); -}; -const loader$8 = async () => { - const { diagram: diagram2 } = await import("./stateDiagram-0ff1cf1a.js"); - return { id: id$7, diagram: diagram2 }; -}; -const plugin$7 = { - id: id$7, - detector: detector$7, - loader: loader$8 -}; -const state = plugin$7; -const id$6 = "stateDiagram"; -const detector$6 = (txt, config2) => { - var _a; - if (/^\s*stateDiagram-v2/.test(txt)) { - return true; - } - if (/^\s*stateDiagram/.test(txt) && ((_a = config2 == null ? void 0 : config2.state) == null ? void 0 : _a.defaultRenderer) === "dagre-wrapper") { - return true; - } - return false; -}; -const loader$7 = async () => { - const { diagram: diagram2 } = await import("./stateDiagram-v2-9a9d610d.js"); - return { id: id$6, diagram: diagram2 }; -}; -const plugin$6 = { - id: id$6, - detector: detector$6, - loader: loader$7 -}; -const stateV2 = plugin$6; -const id$5 = "journey"; -const detector$5 = (txt) => { - return /^\s*journey/.test(txt); -}; -const loader$6 = async () => { - const { diagram: diagram2 } = await import("./journeyDiagram-4fe6b3dc.js"); - return { id: id$5, diagram: diagram2 }; -}; -const plugin$5 = { - id: id$5, - detector: detector$5, - loader: loader$6 -}; -const journey = plugin$5; -const d3Attrs = function(d3Elem, attrs) { - for (let attr of attrs) { - d3Elem.attr(attr[0], attr[1]); - } -}; -const calculateSvgSizeAttrs = 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; -}; -const configureSvgSize = function(svgElem, height, width, useMaxWidth) { - const attrs = calculateSvgSizeAttrs(height, width, useMaxWidth); - d3Attrs(svgElem, attrs); -}; -const setupGraphViewbox$1 = function(graph, svgElem, padding, useMaxWidth) { - const svgBounds = svgElem.node().getBBox(); - const sWidth = svgBounds.width; - const sHeight = svgBounds.height; - log$1.info(`SVG bounds: ${sWidth}x${sHeight}`, svgBounds); - let width = 0; - let height = 0; - log$1.info(`Graph bounds: ${width}x${height}`, graph); - width = sWidth + padding * 2; - height = sHeight + padding * 2; - log$1.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); -}; -const themes = {}; -const getStyles = (type2, userStyles, options) => { - let diagramStyles = ""; - if (type2 in themes && themes[type2]) { - diagramStyles = themes[type2](options); - } else { - log$1.warn(`No theme found for ${type2}`); - } - 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: 2px; - } - & .edge-thickness-thick { - stroke-width: 3.5px - } - & .edge-pattern-solid { - stroke-dasharray: 0; - } - - & .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}; - } - - ${diagramStyles} - - ${userStyles} -`; -}; -const addStylesForDiagram = (type2, diagramTheme) => { - if (diagramTheme !== void 0) { - themes[type2] = diagramTheme; - } -}; -const getStyles$1 = getStyles; -let accTitle = ""; -let diagramTitle = ""; -let accDescription = ""; -const sanitizeText$1 = (txt) => sanitizeText$2(txt, getConfig$1()); -const clear = () => { - accTitle = ""; - accDescription = ""; - diagramTitle = ""; -}; -const setAccTitle = (txt) => { - accTitle = sanitizeText$1(txt).replace(/^\s+/g, ""); -}; -const getAccTitle = () => accTitle; -const setAccDescription = (txt) => { - accDescription = sanitizeText$1(txt).replace(/\n\s+/g, "\n"); -}; -const getAccDescription = () => accDescription; -const setDiagramTitle = (txt) => { - diagramTitle = sanitizeText$1(txt); -}; -const getDiagramTitle = () => diagramTitle; -const commonDb = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({ - __proto__: null, - clear, - getAccDescription, - getAccTitle, - getDiagramTitle, - setAccDescription, - setAccTitle, - setDiagramTitle -}, Symbol.toStringTag, { value: "Module" })); -const log = log$1; -const setLogLevel = setLogLevel$1; -const getConfig = getConfig$1; -const setConfig = setConfig$1; -const defaultConfig = defaultConfig$1; -const sanitizeText = (text) => sanitizeText$2(text, getConfig()); -const setupGraphViewbox = setupGraphViewbox$1; -const getCommonDb = () => { - return commonDb; -}; -const diagrams = {}; -const registerDiagram = (id2, diagram2, detector2) => { - var _a; - if (diagrams[id2]) { - throw new Error(`Diagram ${id2} already registered.`); - } - diagrams[id2] = diagram2; - if (detector2) { - addDetector(id2, detector2); - } - addStylesForDiagram(id2, diagram2.styles); - (_a = diagram2.injectUtils) == null ? void 0 : _a.call( - diagram2, - log, - setLogLevel, - getConfig, - sanitizeText, - setupGraphViewbox, - getCommonDb(), - () => { - } - ); -}; -const getDiagram = (name) => { - if (name in diagrams) { - return diagrams[name]; - } - throw new DiagramNotFoundError(name); -}; -class DiagramNotFoundError extends Error { - constructor(name) { - super(`Diagram ${name} not found.`); - } -} -const selectSvgElement = (id2) => { - var _a; - const { securityLevel } = getConfig(); - let root = select("body"); - if (securityLevel === "sandbox") { - const sandboxElement = select(`#i${id2}`); - const doc = ((_a = sandboxElement.node()) == null ? void 0 : _a.contentDocument) ?? document; - root = select(doc.body); - } - const svg = root.select(`#${id2}`); - return svg; -}; -const draw = (_text, id2, version2) => { - log$1.debug("rendering svg for syntax error\n"); - const svg = selectSvgElement(id2); - const g = svg.append("g"); - svg.attr("viewBox", "0 0 2412 512"); - configureSvgSize(svg, 100, 512, true); - g.append("path").attr("class", "error-icon").attr( - "d", - "m411.313,123.313c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32-9.375,9.375-20.688-20.688c-12.484-12.5-32.766-12.5-45.25,0l-16,16c-1.261,1.261-2.304,2.648-3.31,4.051-21.739-8.561-45.324-13.426-70.065-13.426-105.867,0-192,86.133-192,192s86.133,192 192,192 192-86.133 192-192c0-24.741-4.864-48.327-13.426-70.065 1.402-1.007 2.79-2.049 4.051-3.31l16-16c12.5-12.492 12.5-32.758 0-45.25l-20.688-20.688 9.375-9.375 32.001-31.999zm-219.313,100.687c-52.938,0-96,43.063-96,96 0,8.836-7.164,16-16,16s-16-7.164-16-16c0-70.578 57.422-128 128-128 8.836,0 16,7.164 16,16s-7.164,16-16,16z" - ); - g.append("path").attr("class", "error-icon").attr( - "d", - "m459.02,148.98c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l16,16c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16.001-16z" - ); - g.append("path").attr("class", "error-icon").attr( - "d", - "m340.395,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688 6.25-6.25 6.25-16.375 0-22.625l-16-16c-6.25-6.25-16.375-6.25-22.625,0s-6.25,16.375 0,22.625l15.999,16z" - ); - g.append("path").attr("class", "error-icon").attr( - "d", - "m400,64c8.844,0 16-7.164 16-16v-32c0-8.836-7.156-16-16-16-8.844,0-16,7.164-16,16v32c0,8.836 7.156,16 16,16z" - ); - g.append("path").attr("class", "error-icon").attr( - "d", - "m496,96.586h-32c-8.844,0-16,7.164-16,16 0,8.836 7.156,16 16,16h32c8.844,0 16-7.164 16-16 0-8.836-7.156-16-16-16z" - ); - g.append("path").attr("class", "error-icon").attr( - "d", - "m436.98,75.605c3.125,3.125 7.219,4.688 11.313,4.688 4.094,0 8.188-1.563 11.313-4.688l32-32c6.25-6.25 6.25-16.375 0-22.625s-16.375-6.25-22.625,0l-32,32c-6.251,6.25-6.251,16.375-0.001,22.625z" - ); - g.append("text").attr("class", "error-text").attr("x", 1440).attr("y", 250).attr("font-size", "150px").style("text-anchor", "middle").text("Syntax error in text"); - g.append("text").attr("class", "error-text").attr("x", 1250).attr("y", 400).attr("font-size", "100px").style("text-anchor", "middle").text(`mermaid version ${version2}`); -}; -const renderer = { draw }; -const errorRenderer = renderer; -const diagram = { - db: {}, - renderer, - parser: { - parser: { yy: {} }, - parse: () => { - return; - } - } -}; -const errorDiagram = diagram; -const id$4 = "flowchart-elk"; -const detector$4 = (txt, config2) => { - var _a; - if ( - // If diagram explicitly states flowchart-elk - /^\s*flowchart-elk/.test(txt) || // If a flowchart/graph diagram has their default renderer set to elk - /^\s*flowchart|graph/.test(txt) && ((_a = config2 == null ? void 0 : config2.flowchart) == null ? void 0 : _a.defaultRenderer) === "elk" - ) { - return true; - } - return false; -}; -const loader$5 = async () => { - const { diagram: diagram2 } = await import("./flowchart-elk-definition-5fe447d6.js"); - return { id: id$4, diagram: diagram2 }; -}; -const plugin$4 = { - id: id$4, - detector: detector$4, - loader: loader$5 -}; -const flowchartElk = plugin$4; -const id$3 = "timeline"; -const detector$3 = (txt) => { - return /^\s*timeline/.test(txt); -}; -const loader$4 = async () => { - const { diagram: diagram2 } = await import("./timeline-definition-fea2a41d.js"); - return { id: id$3, diagram: diagram2 }; -}; -const plugin$3 = { - id: id$3, - detector: detector$3, - loader: loader$4 -}; -const timeline = plugin$3; -const id$2 = "mindmap"; -const detector$2 = (txt) => { - return /^\s*mindmap/.test(txt); -}; -const loader$3 = async () => { - const { diagram: diagram2 } = await import("./mindmap-definition-f354de21.js"); - return { id: id$2, diagram: diagram2 }; -}; -const plugin$2 = { - id: id$2, - detector: detector$2, - loader: loader$3 -}; -const mindmap = plugin$2; -const id$1 = "sankey"; -const detector$1 = (txt) => { - return /^\s*sankey-beta/.test(txt); -}; -const loader$2 = async () => { - const { diagram: diagram2 } = await import("./sankeyDiagram-97764748.js"); - return { id: id$1, diagram: diagram2 }; -}; -const plugin$1 = { - id: id$1, - detector: detector$1, - loader: loader$2 -}; -const sankey = plugin$1; -const id = "block"; -const detector = (txt) => { - return /^\s*block-beta/.test(txt); -}; -const loader$1 = async () => { - const { diagram: diagram2 } = await import("./blockDiagram-91b80b7a.js"); - return { id, diagram: diagram2 }; -}; -const plugin = { - id, - detector, - loader: loader$1 -}; -const block = plugin; -let hasLoadedDiagrams = false; -const addDiagrams = () => { - if (hasLoadedDiagrams) { - return; - } - hasLoadedDiagrams = true; - registerDiagram("error", errorDiagram, (text) => { - return text.toLowerCase().trim() === "error"; - }); - registerDiagram( - "---", - // --- diagram type may appear if YAML front-matter is not parsed correctly - { - db: { - clear: () => { - } - }, - styles: {}, - // should never be used - renderer: { - draw: () => { - } - }, - parser: { - parser: { yy: {} }, - parse: () => { - throw new Error( - "Diagrams beginning with --- are not valid. If you were trying to use a YAML front-matter, please ensure that you've correctly opened and closed the YAML front-matter with un-indented `---` blocks" - ); - } - }, - init: () => null - // no op - }, - (text) => { - return text.toLowerCase().trimStart().startsWith("---"); - } - ); - registerLazyLoadedDiagrams( - c4, - classDiagramV2, - classDiagram, - er, - gantt, - info, - pie, - requirement, - sequence, - flowchartElk, - flowchartV2, - flowchart, - mindmap, - timeline, - git, - stateV2, - state, - journey, - quadrantChart, - sankey, - xychart, - block - ); -}; -class Diagram { - constructor(text, metadata = {}) { - this.text = text; - this.metadata = metadata; - this.type = "graph"; - this.text = encodeEntities(text); - this.text += "\n"; - const cnf = getConfig$1(); - try { - this.type = detectType(text, cnf); - } catch (e) { - this.type = "error"; - this.detectError = e; - } - const diagram2 = getDiagram(this.type); - log$1.debug("Type " + this.type); - this.db = diagram2.db; - this.renderer = diagram2.renderer; - this.parser = diagram2.parser; - this.parser.parser.yy = this.db; - this.init = diagram2.init; - this.parse(); - } - parse() { - var _a, _b, _c, _d, _e; - if (this.detectError) { - throw this.detectError; - } - (_b = (_a = this.db).clear) == null ? void 0 : _b.call(_a); - const config2 = getConfig$1(); - (_c = this.init) == null ? void 0 : _c.call(this, config2); - if (this.metadata.title) { - (_e = (_d = this.db).setDiagramTitle) == null ? void 0 : _e.call(_d, this.metadata.title); - } - this.parser.parse(this.text); - } - async render(id2, version2) { - await this.renderer.draw(this.text, id2, version2, this); - } - getParser() { - return this.parser; - } - getType() { - return this.type; - } -} -const getDiagramFromText$1 = async (text, metadata = {}) => { - const type2 = detectType(text, getConfig$1()); - try { - getDiagram(type2); - } catch (error) { - const loader2 = getDiagramLoader(type2); - if (!loader2) { - throw new UnknownDiagramError(`Diagram ${type2} not found.`); - } - const { id: id2, diagram: diagram2 } = await loader2(); - registerDiagram(id2, diagram2); - } - return new Diagram(text, metadata); -}; -let interactionFunctions = []; -const attachFunctions = () => { - interactionFunctions.forEach((f) => { - f(); - }); - interactionFunctions = []; -}; -const SVG_ROLE = "graphics-document document"; -function setA11yDiagramInfo(svg, diagramType) { - svg.attr("role", SVG_ROLE); - if (diagramType !== "") { - svg.attr("aria-roledescription", diagramType); - } -} -function addSVGa11yTitleDescription(svg, a11yTitle, a11yDesc, baseId) { - if (svg.insert === void 0) { - return; - } - if (a11yDesc) { - const descId = `chart-desc-${baseId}`; - svg.attr("aria-describedby", descId); - svg.insert("desc", ":first-child").attr("id", descId).text(a11yDesc); - } - if (a11yTitle) { - const titleId = `chart-title-${baseId}`; - svg.attr("aria-labelledby", titleId); - svg.insert("title", ":first-child").attr("id", titleId).text(a11yTitle); - } -} -const cleanupComments = (text) => { - return text.replace(/^\s*%%(?!{)[^\n]+\n?/gm, "").trimStart(); -}; -/*! js-yaml 4.1.0 https://github.com/nodeca/js-yaml @license MIT */ -function isNothing(subject) { - return typeof subject === "undefined" || subject === null; -} -function isObject(subject) { - return typeof subject === "object" && subject !== null; -} -function toArray(sequence2) { - if (Array.isArray(sequence2)) - return sequence2; - else if (isNothing(sequence2)) - return []; - return [sequence2]; -} -function extend(target, source) { - var index, length, key, sourceKeys; - if (source) { - sourceKeys = Object.keys(source); - for (index = 0, length = sourceKeys.length; index < length; index += 1) { - key = sourceKeys[index]; - target[key] = source[key]; - } - } - return target; -} -function repeat(string, count) { - var result = "", cycle; - for (cycle = 0; cycle < count; cycle += 1) { - result += string; - } - return result; -} -function isNegativeZero(number) { - return number === 0 && Number.NEGATIVE_INFINITY === 1 / number; -} -var isNothing_1 = isNothing; -var isObject_1 = isObject; -var toArray_1 = toArray; -var repeat_1 = repeat; -var isNegativeZero_1 = isNegativeZero; -var extend_1 = extend; -var common = { - isNothing: isNothing_1, - isObject: isObject_1, - toArray: toArray_1, - repeat: repeat_1, - isNegativeZero: isNegativeZero_1, - extend: extend_1 -}; -function formatError(exception2, compact) { - var where = "", message = exception2.reason || "(unknown reason)"; - if (!exception2.mark) - return message; - if (exception2.mark.name) { - where += 'in "' + exception2.mark.name + '" '; - } - where += "(" + (exception2.mark.line + 1) + ":" + (exception2.mark.column + 1) + ")"; - if (!compact && exception2.mark.snippet) { - where += "\n\n" + exception2.mark.snippet; - } - return message + " " + where; -} -function YAMLException$1(reason, mark) { - Error.call(this); - this.name = "YAMLException"; - this.reason = reason; - this.mark = mark; - this.message = formatError(this, false); - if (Error.captureStackTrace) { - Error.captureStackTrace(this, this.constructor); - } else { - this.stack = new Error().stack || ""; - } -} -YAMLException$1.prototype = Object.create(Error.prototype); -YAMLException$1.prototype.constructor = YAMLException$1; -YAMLException$1.prototype.toString = function toString(compact) { - return this.name + ": " + formatError(this, compact); -}; -var exception = YAMLException$1; -function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { - var head = ""; - var tail = ""; - var maxHalfLength = Math.floor(maxLineLength / 2) - 1; - if (position - lineStart > maxHalfLength) { - head = " ... "; - lineStart = position - maxHalfLength + head.length; - } - if (lineEnd - position > maxHalfLength) { - tail = " ..."; - lineEnd = position + maxHalfLength - tail.length; - } - return { - str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, "→") + tail, - pos: position - lineStart + head.length - // relative position - }; -} -function padStart(string, max) { - return common.repeat(" ", max - string.length) + string; -} -function makeSnippet(mark, options) { - options = Object.create(options || null); - if (!mark.buffer) - return null; - if (!options.maxLength) - options.maxLength = 79; - if (typeof options.indent !== "number") - options.indent = 1; - if (typeof options.linesBefore !== "number") - options.linesBefore = 3; - if (typeof options.linesAfter !== "number") - options.linesAfter = 2; - var re = /\r?\n|\r|\0/g; - var lineStarts = [0]; - var lineEnds = []; - var match; - var foundLineNo = -1; - while (match = re.exec(mark.buffer)) { - lineEnds.push(match.index); - lineStarts.push(match.index + match[0].length); - if (mark.position <= match.index && foundLineNo < 0) { - foundLineNo = lineStarts.length - 2; - } - } - if (foundLineNo < 0) - foundLineNo = lineStarts.length - 1; - var result = "", i, line; - var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length; - var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3); - for (i = 1; i <= options.linesBefore; i++) { - if (foundLineNo - i < 0) - break; - line = getLine( - mark.buffer, - lineStarts[foundLineNo - i], - lineEnds[foundLineNo - i], - mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo - i]), - maxLineLength - ); - result = common.repeat(" ", options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + " | " + line.str + "\n" + result; - } - line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); - result += common.repeat(" ", options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + " | " + line.str + "\n"; - result += common.repeat("-", options.indent + lineNoLength + 3 + line.pos) + "^\n"; - for (i = 1; i <= options.linesAfter; i++) { - if (foundLineNo + i >= lineEnds.length) - break; - line = getLine( - mark.buffer, - lineStarts[foundLineNo + i], - lineEnds[foundLineNo + i], - mark.position - (lineStarts[foundLineNo] - lineStarts[foundLineNo + i]), - maxLineLength - ); - result += common.repeat(" ", options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + " | " + line.str + "\n"; - } - return result.replace(/\n$/, ""); -} -var snippet = makeSnippet; -var TYPE_CONSTRUCTOR_OPTIONS = [ - "kind", - "multi", - "resolve", - "construct", - "instanceOf", - "predicate", - "represent", - "representName", - "defaultStyle", - "styleAliases" -]; -var YAML_NODE_KINDS = [ - "scalar", - "sequence", - "mapping" -]; -function compileStyleAliases(map2) { - var result = {}; - if (map2 !== null) { - Object.keys(map2).forEach(function(style) { - map2[style].forEach(function(alias) { - result[String(alias)] = style; - }); - }); - } - return result; -} -function Type$1(tag, options) { - options = options || {}; - Object.keys(options).forEach(function(name) { - if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { - throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); - } - }); - this.options = options; - this.tag = tag; - this.kind = options["kind"] || null; - this.resolve = options["resolve"] || function() { - return true; - }; - this.construct = options["construct"] || function(data) { - return data; - }; - this.instanceOf = options["instanceOf"] || null; - this.predicate = options["predicate"] || null; - this.represent = options["represent"] || null; - this.representName = options["representName"] || null; - this.defaultStyle = options["defaultStyle"] || null; - this.multi = options["multi"] || false; - this.styleAliases = compileStyleAliases(options["styleAliases"] || null); - if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { - throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); - } -} -var type = Type$1; -function compileList(schema2, name) { - var result = []; - schema2[name].forEach(function(currentType) { - var newIndex = result.length; - result.forEach(function(previousType, previousIndex) { - if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) { - newIndex = previousIndex; - } - }); - result[newIndex] = currentType; - }); - return result; -} -function compileMap() { - var result = { - scalar: {}, - sequence: {}, - mapping: {}, - fallback: {}, - multi: { - scalar: [], - sequence: [], - mapping: [], - fallback: [] - } - }, index, length; - function collectType(type2) { - if (type2.multi) { - result.multi[type2.kind].push(type2); - result.multi["fallback"].push(type2); - } else { - result[type2.kind][type2.tag] = result["fallback"][type2.tag] = type2; - } - } - for (index = 0, length = arguments.length; index < length; index += 1) { - arguments[index].forEach(collectType); - } - return result; -} -function Schema$1(definition) { - return this.extend(definition); -} -Schema$1.prototype.extend = function extend2(definition) { - var implicit = []; - var explicit = []; - if (definition instanceof type) { - explicit.push(definition); - } else if (Array.isArray(definition)) { - explicit = explicit.concat(definition); - } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { - if (definition.implicit) - implicit = implicit.concat(definition.implicit); - if (definition.explicit) - explicit = explicit.concat(definition.explicit); - } else { - throw new exception("Schema.extend argument should be a Type, [ Type ], or a schema definition ({ implicit: [...], explicit: [...] })"); - } - implicit.forEach(function(type$1) { - if (!(type$1 instanceof type)) { - throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); - } - if (type$1.loadKind && type$1.loadKind !== "scalar") { - throw new exception("There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported."); - } - if (type$1.multi) { - throw new exception("There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit."); - } - }); - explicit.forEach(function(type$1) { - if (!(type$1 instanceof type)) { - throw new exception("Specified list of YAML types (or a single Type object) contains a non-Type object."); - } - }); - var result = Object.create(Schema$1.prototype); - result.implicit = (this.implicit || []).concat(implicit); - result.explicit = (this.explicit || []).concat(explicit); - result.compiledImplicit = compileList(result, "implicit"); - result.compiledExplicit = compileList(result, "explicit"); - result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); - return result; -}; -var schema = Schema$1; -var str = new type("tag:yaml.org,2002:str", { - kind: "scalar", - construct: function(data) { - return data !== null ? data : ""; - } -}); -var seq = new type("tag:yaml.org,2002:seq", { - kind: "sequence", - construct: function(data) { - return data !== null ? data : []; - } -}); -var map = new type("tag:yaml.org,2002:map", { - kind: "mapping", - construct: function(data) { - return data !== null ? data : {}; - } -}); -var failsafe = new schema({ - explicit: [ - str, - seq, - map - ] -}); -function resolveYamlNull(data) { - if (data === null) - return true; - var max = data.length; - return max === 1 && data === "~" || max === 4 && (data === "null" || data === "Null" || data === "NULL"); -} -function constructYamlNull() { - return null; -} -function isNull(object) { - return object === null; -} -var _null = new type("tag:yaml.org,2002:null", { - kind: "scalar", - resolve: resolveYamlNull, - construct: constructYamlNull, - predicate: isNull, - represent: { - canonical: function() { - return "~"; - }, - lowercase: function() { - return "null"; - }, - uppercase: function() { - return "NULL"; - }, - camelcase: function() { - return "Null"; - }, - empty: function() { - return ""; - } - }, - defaultStyle: "lowercase" -}); -function resolveYamlBoolean(data) { - if (data === null) - return false; - var max = data.length; - return max === 4 && (data === "true" || data === "True" || data === "TRUE") || max === 5 && (data === "false" || data === "False" || data === "FALSE"); -} -function constructYamlBoolean(data) { - return data === "true" || data === "True" || data === "TRUE"; -} -function isBoolean(object) { - return Object.prototype.toString.call(object) === "[object Boolean]"; -} -var bool = new type("tag:yaml.org,2002:bool", { - kind: "scalar", - resolve: resolveYamlBoolean, - construct: constructYamlBoolean, - predicate: isBoolean, - represent: { - lowercase: function(object) { - return object ? "true" : "false"; - }, - uppercase: function(object) { - return object ? "TRUE" : "FALSE"; - }, - camelcase: function(object) { - return object ? "True" : "False"; - } - }, - defaultStyle: "lowercase" -}); -function isHexCode(c) { - return 48 <= c && c <= 57 || 65 <= c && c <= 70 || 97 <= c && c <= 102; -} -function isOctCode(c) { - return 48 <= c && c <= 55; -} -function isDecCode(c) { - return 48 <= c && c <= 57; -} -function resolveYamlInteger(data) { - if (data === null) - return false; - var max = data.length, index = 0, hasDigits = false, ch; - if (!max) - return false; - ch = data[index]; - if (ch === "-" || ch === "+") { - ch = data[++index]; - } - if (ch === "0") { - if (index + 1 === max) - return true; - ch = data[++index]; - if (ch === "b") { - index++; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (ch !== "0" && ch !== "1") - return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - if (ch === "x") { - index++; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (!isHexCode(data.charCodeAt(index))) - return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - if (ch === "o") { - index++; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (!isOctCode(data.charCodeAt(index))) - return false; - hasDigits = true; - } - return hasDigits && ch !== "_"; - } - } - if (ch === "_") - return false; - for (; index < max; index++) { - ch = data[index]; - if (ch === "_") - continue; - if (!isDecCode(data.charCodeAt(index))) { - return false; - } - hasDigits = true; - } - if (!hasDigits || ch === "_") - return false; - return true; -} -function constructYamlInteger(data) { - var value = data, sign = 1, ch; - if (value.indexOf("_") !== -1) { - value = value.replace(/_/g, ""); - } - ch = value[0]; - if (ch === "-" || ch === "+") { - if (ch === "-") - sign = -1; - value = value.slice(1); - ch = value[0]; - } - if (value === "0") - return 0; - if (ch === "0") { - if (value[1] === "b") - return sign * parseInt(value.slice(2), 2); - if (value[1] === "x") - return sign * parseInt(value.slice(2), 16); - if (value[1] === "o") - return sign * parseInt(value.slice(2), 8); - } - return sign * parseInt(value, 10); -} -function isInteger(object) { - return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 === 0 && !common.isNegativeZero(object)); -} -var int = new type("tag:yaml.org,2002:int", { - kind: "scalar", - resolve: resolveYamlInteger, - construct: constructYamlInteger, - predicate: isInteger, - represent: { - binary: function(obj) { - return obj >= 0 ? "0b" + obj.toString(2) : "-0b" + obj.toString(2).slice(1); - }, - octal: function(obj) { - return obj >= 0 ? "0o" + obj.toString(8) : "-0o" + obj.toString(8).slice(1); - }, - decimal: function(obj) { - return obj.toString(10); - }, - /* eslint-disable max-len */ - hexadecimal: function(obj) { - return obj >= 0 ? "0x" + obj.toString(16).toUpperCase() : "-0x" + obj.toString(16).toUpperCase().slice(1); - } - }, - defaultStyle: "decimal", - styleAliases: { - binary: [2, "bin"], - octal: [8, "oct"], - decimal: [10, "dec"], - hexadecimal: [16, "hex"] - } -}); -var YAML_FLOAT_PATTERN = new RegExp( - // 2.5e4, 2.5 and integers - "^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$" -); -function resolveYamlFloat(data) { - if (data === null) - return false; - if (!YAML_FLOAT_PATTERN.test(data) || // Quick hack to not allow integers end with `_` - // Probably should update regexp & check speed - data[data.length - 1] === "_") { - return false; - } - return true; -} -function constructYamlFloat(data) { - var value, sign; - value = data.replace(/_/g, "").toLowerCase(); - sign = value[0] === "-" ? -1 : 1; - if ("+-".indexOf(value[0]) >= 0) { - value = value.slice(1); - } - if (value === ".inf") { - return sign === 1 ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; - } else if (value === ".nan") { - return NaN; - } - return sign * parseFloat(value, 10); -} -var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; -function representYamlFloat(object, style) { - var res; - if (isNaN(object)) { - switch (style) { - case "lowercase": - return ".nan"; - case "uppercase": - return ".NAN"; - case "camelcase": - return ".NaN"; - } - } else if (Number.POSITIVE_INFINITY === object) { - switch (style) { - case "lowercase": - return ".inf"; - case "uppercase": - return ".INF"; - case "camelcase": - return ".Inf"; - } - } else if (Number.NEGATIVE_INFINITY === object) { - switch (style) { - case "lowercase": - return "-.inf"; - case "uppercase": - return "-.INF"; - case "camelcase": - return "-.Inf"; - } - } else if (common.isNegativeZero(object)) { - return "-0.0"; - } - res = object.toString(10); - return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace("e", ".e") : res; -} -function isFloat(object) { - return Object.prototype.toString.call(object) === "[object Number]" && (object % 1 !== 0 || common.isNegativeZero(object)); -} -var float = new type("tag:yaml.org,2002:float", { - kind: "scalar", - resolve: resolveYamlFloat, - construct: constructYamlFloat, - predicate: isFloat, - represent: representYamlFloat, - defaultStyle: "lowercase" -}); -var json = failsafe.extend({ - implicit: [ - _null, - bool, - int, - float - ] -}); -var core = json; -var YAML_DATE_REGEXP = new RegExp( - "^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$" -); -var YAML_TIMESTAMP_REGEXP = new RegExp( - "^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$" -); -function resolveYamlTimestamp(data) { - if (data === null) - return false; - if (YAML_DATE_REGEXP.exec(data) !== null) - return true; - if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) - return true; - return false; -} -function constructYamlTimestamp(data) { - var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date; - match = YAML_DATE_REGEXP.exec(data); - if (match === null) - match = YAML_TIMESTAMP_REGEXP.exec(data); - if (match === null) - throw new Error("Date resolve error"); - year = +match[1]; - month = +match[2] - 1; - day = +match[3]; - if (!match[4]) { - return new Date(Date.UTC(year, month, day)); - } - hour = +match[4]; - minute = +match[5]; - second = +match[6]; - if (match[7]) { - fraction = match[7].slice(0, 3); - while (fraction.length < 3) { - fraction += "0"; - } - fraction = +fraction; - } - if (match[9]) { - tz_hour = +match[10]; - tz_minute = +(match[11] || 0); - delta = (tz_hour * 60 + tz_minute) * 6e4; - if (match[9] === "-") - delta = -delta; - } - date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); - if (delta) - date.setTime(date.getTime() - delta); - return date; -} -function representYamlTimestamp(object) { - return object.toISOString(); -} -var timestamp = new type("tag:yaml.org,2002:timestamp", { - kind: "scalar", - resolve: resolveYamlTimestamp, - construct: constructYamlTimestamp, - instanceOf: Date, - represent: representYamlTimestamp -}); -function resolveYamlMerge(data) { - return data === "<<" || data === null; -} -var merge = new type("tag:yaml.org,2002:merge", { - kind: "scalar", - resolve: resolveYamlMerge -}); -var BASE64_MAP = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r"; -function resolveYamlBinary(data) { - if (data === null) - return false; - var code, idx, bitlen = 0, max = data.length, map2 = BASE64_MAP; - for (idx = 0; idx < max; idx++) { - code = map2.indexOf(data.charAt(idx)); - if (code > 64) - continue; - if (code < 0) - return false; - bitlen += 6; - } - return bitlen % 8 === 0; -} -function constructYamlBinary(data) { - var idx, tailbits, input = data.replace(/[\r\n=]/g, ""), max = input.length, map2 = BASE64_MAP, bits = 0, result = []; - for (idx = 0; idx < max; idx++) { - if (idx % 4 === 0 && idx) { - result.push(bits >> 16 & 255); - result.push(bits >> 8 & 255); - result.push(bits & 255); - } - bits = bits << 6 | map2.indexOf(input.charAt(idx)); - } - tailbits = max % 4 * 6; - if (tailbits === 0) { - result.push(bits >> 16 & 255); - result.push(bits >> 8 & 255); - result.push(bits & 255); - } else if (tailbits === 18) { - result.push(bits >> 10 & 255); - result.push(bits >> 2 & 255); - } else if (tailbits === 12) { - result.push(bits >> 4 & 255); - } - return new Uint8Array(result); -} -function representYamlBinary(object) { - var result = "", bits = 0, idx, tail, max = object.length, map2 = BASE64_MAP; - for (idx = 0; idx < max; idx++) { - if (idx % 3 === 0 && idx) { - result += map2[bits >> 18 & 63]; - result += map2[bits >> 12 & 63]; - result += map2[bits >> 6 & 63]; - result += map2[bits & 63]; - } - bits = (bits << 8) + object[idx]; - } - tail = max % 3; - if (tail === 0) { - result += map2[bits >> 18 & 63]; - result += map2[bits >> 12 & 63]; - result += map2[bits >> 6 & 63]; - result += map2[bits & 63]; - } else if (tail === 2) { - result += map2[bits >> 10 & 63]; - result += map2[bits >> 4 & 63]; - result += map2[bits << 2 & 63]; - result += map2[64]; - } else if (tail === 1) { - result += map2[bits >> 2 & 63]; - result += map2[bits << 4 & 63]; - result += map2[64]; - result += map2[64]; - } - return result; -} -function isBinary(obj) { - return Object.prototype.toString.call(obj) === "[object Uint8Array]"; -} -var binary = new type("tag:yaml.org,2002:binary", { - kind: "scalar", - resolve: resolveYamlBinary, - construct: constructYamlBinary, - predicate: isBinary, - represent: representYamlBinary -}); -var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; -var _toString$2 = Object.prototype.toString; -function resolveYamlOmap(data) { - if (data === null) - return true; - var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data; - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - pairHasKey = false; - if (_toString$2.call(pair) !== "[object Object]") - return false; - for (pairKey in pair) { - if (_hasOwnProperty$3.call(pair, pairKey)) { - if (!pairHasKey) - pairHasKey = true; - else - return false; - } - } - if (!pairHasKey) - return false; - if (objectKeys.indexOf(pairKey) === -1) - objectKeys.push(pairKey); - else - return false; - } - return true; -} -function constructYamlOmap(data) { - return data !== null ? data : []; -} -var omap = new type("tag:yaml.org,2002:omap", { - kind: "sequence", - resolve: resolveYamlOmap, - construct: constructYamlOmap -}); -var _toString$1 = Object.prototype.toString; -function resolveYamlPairs(data) { - if (data === null) - return true; - var index, length, pair, keys, result, object = data; - result = new Array(object.length); - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - if (_toString$1.call(pair) !== "[object Object]") - return false; - keys = Object.keys(pair); - if (keys.length !== 1) - return false; - result[index] = [keys[0], pair[keys[0]]]; - } - return true; -} -function constructYamlPairs(data) { - if (data === null) - return []; - var index, length, pair, keys, result, object = data; - result = new Array(object.length); - for (index = 0, length = object.length; index < length; index += 1) { - pair = object[index]; - keys = Object.keys(pair); - result[index] = [keys[0], pair[keys[0]]]; - } - return result; -} -var pairs = new type("tag:yaml.org,2002:pairs", { - kind: "sequence", - resolve: resolveYamlPairs, - construct: constructYamlPairs -}); -var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; -function resolveYamlSet(data) { - if (data === null) - return true; - var key, object = data; - for (key in object) { - if (_hasOwnProperty$2.call(object, key)) { - if (object[key] !== null) - return false; - } - } - return true; -} -function constructYamlSet(data) { - return data !== null ? data : {}; -} -var set = new type("tag:yaml.org,2002:set", { - kind: "mapping", - resolve: resolveYamlSet, - construct: constructYamlSet -}); -var _default = core.extend({ - implicit: [ - timestamp, - merge - ], - explicit: [ - binary, - omap, - pairs, - set - ] -}); -var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; -var CONTEXT_FLOW_IN = 1; -var CONTEXT_FLOW_OUT = 2; -var CONTEXT_BLOCK_IN = 3; -var CONTEXT_BLOCK_OUT = 4; -var CHOMPING_CLIP = 1; -var CHOMPING_STRIP = 2; -var CHOMPING_KEEP = 3; -var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; -var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; -var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; -var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; -var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; -function _class(obj) { - return Object.prototype.toString.call(obj); -} -function is_EOL(c) { - return c === 10 || c === 13; -} -function is_WHITE_SPACE(c) { - return c === 9 || c === 32; -} -function is_WS_OR_EOL(c) { - return c === 9 || c === 32 || c === 10 || c === 13; -} -function is_FLOW_INDICATOR(c) { - return c === 44 || c === 91 || c === 93 || c === 123 || c === 125; -} -function fromHexCode(c) { - var lc; - if (48 <= c && c <= 57) { - return c - 48; - } - lc = c | 32; - if (97 <= lc && lc <= 102) { - return lc - 97 + 10; - } - return -1; -} -function escapedHexLen(c) { - if (c === 120) { - return 2; - } - if (c === 117) { - return 4; - } - if (c === 85) { - return 8; - } - return 0; -} -function fromDecimalCode(c) { - if (48 <= c && c <= 57) { - return c - 48; - } - return -1; -} -function simpleEscapeSequence(c) { - return c === 48 ? "\0" : c === 97 ? "\x07" : c === 98 ? "\b" : c === 116 ? " " : c === 9 ? " " : c === 110 ? "\n" : c === 118 ? "\v" : c === 102 ? "\f" : c === 114 ? "\r" : c === 101 ? "\x1B" : c === 32 ? " " : c === 34 ? '"' : c === 47 ? "/" : c === 92 ? "\\" : c === 78 ? "…" : c === 95 ? " " : c === 76 ? "\u2028" : c === 80 ? "\u2029" : ""; -} -function charFromCodepoint(c) { - if (c <= 65535) { - return String.fromCharCode(c); - } - return String.fromCharCode( - (c - 65536 >> 10) + 55296, - (c - 65536 & 1023) + 56320 - ); -} -var simpleEscapeCheck = new Array(256); -var simpleEscapeMap = new Array(256); -for (var i = 0; i < 256; i++) { - simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; - simpleEscapeMap[i] = simpleEscapeSequence(i); -} -function State$1(input, options) { - this.input = input; - this.filename = options["filename"] || null; - this.schema = options["schema"] || _default; - this.onWarning = options["onWarning"] || null; - this.legacy = options["legacy"] || false; - this.json = options["json"] || false; - this.listener = options["listener"] || null; - this.implicitTypes = this.schema.compiledImplicit; - this.typeMap = this.schema.compiledTypeMap; - this.length = input.length; - this.position = 0; - this.line = 0; - this.lineStart = 0; - this.lineIndent = 0; - this.firstTabInLine = -1; - this.documents = []; -} -function generateError(state2, message) { - var mark = { - name: state2.filename, - buffer: state2.input.slice(0, -1), - // omit trailing \0 - position: state2.position, - line: state2.line, - column: state2.position - state2.lineStart - }; - mark.snippet = snippet(mark); - return new exception(message, mark); -} -function throwError(state2, message) { - throw generateError(state2, message); -} -function throwWarning(state2, message) { - if (state2.onWarning) { - state2.onWarning.call(null, generateError(state2, message)); - } -} -var directiveHandlers = { - YAML: function handleYamlDirective(state2, name, args) { - var match, major, minor; - if (state2.version !== null) { - throwError(state2, "duplication of %YAML directive"); - } - if (args.length !== 1) { - throwError(state2, "YAML directive accepts exactly one argument"); - } - match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); - if (match === null) { - throwError(state2, "ill-formed argument of the YAML directive"); - } - major = parseInt(match[1], 10); - minor = parseInt(match[2], 10); - if (major !== 1) { - throwError(state2, "unacceptable YAML version of the document"); - } - state2.version = args[0]; - state2.checkLineBreaks = minor < 2; - if (minor !== 1 && minor !== 2) { - throwWarning(state2, "unsupported YAML version of the document"); - } - }, - TAG: function handleTagDirective(state2, name, args) { - var handle, prefix; - if (args.length !== 2) { - throwError(state2, "TAG directive accepts exactly two arguments"); - } - handle = args[0]; - prefix = args[1]; - if (!PATTERN_TAG_HANDLE.test(handle)) { - throwError(state2, "ill-formed tag handle (first argument) of the TAG directive"); - } - if (_hasOwnProperty$1.call(state2.tagMap, handle)) { - throwError(state2, 'there is a previously declared suffix for "' + handle + '" tag handle'); - } - if (!PATTERN_TAG_URI.test(prefix)) { - throwError(state2, "ill-formed tag prefix (second argument) of the TAG directive"); - } - try { - prefix = decodeURIComponent(prefix); - } catch (err) { - throwError(state2, "tag prefix is malformed: " + prefix); - } - state2.tagMap[handle] = prefix; - } -}; -function captureSegment(state2, start, end, checkJson) { - var _position, _length, _character, _result; - if (start < end) { - _result = state2.input.slice(start, end); - if (checkJson) { - for (_position = 0, _length = _result.length; _position < _length; _position += 1) { - _character = _result.charCodeAt(_position); - if (!(_character === 9 || 32 <= _character && _character <= 1114111)) { - throwError(state2, "expected valid JSON character"); - } - } - } else if (PATTERN_NON_PRINTABLE.test(_result)) { - throwError(state2, "the stream contains non-printable characters"); - } - state2.result += _result; - } -} -function mergeMappings(state2, destination, source, overridableKeys) { - var sourceKeys, key, index, quantity; - if (!common.isObject(source)) { - throwError(state2, "cannot merge mappings; the provided source object is unacceptable"); - } - sourceKeys = Object.keys(source); - for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { - key = sourceKeys[index]; - if (!_hasOwnProperty$1.call(destination, key)) { - destination[key] = source[key]; - overridableKeys[key] = true; - } - } -} -function storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) { - var index, quantity; - if (Array.isArray(keyNode)) { - keyNode = Array.prototype.slice.call(keyNode); - for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { - if (Array.isArray(keyNode[index])) { - throwError(state2, "nested arrays are not supported inside keys"); - } - if (typeof keyNode === "object" && _class(keyNode[index]) === "[object Object]") { - keyNode[index] = "[object Object]"; - } - } - } - if (typeof keyNode === "object" && _class(keyNode) === "[object Object]") { - keyNode = "[object Object]"; - } - keyNode = String(keyNode); - if (_result === null) { - _result = {}; - } - if (keyTag === "tag:yaml.org,2002:merge") { - if (Array.isArray(valueNode)) { - for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { - mergeMappings(state2, _result, valueNode[index], overridableKeys); - } - } else { - mergeMappings(state2, _result, valueNode, overridableKeys); - } - } else { - if (!state2.json && !_hasOwnProperty$1.call(overridableKeys, keyNode) && _hasOwnProperty$1.call(_result, keyNode)) { - state2.line = startLine || state2.line; - state2.lineStart = startLineStart || state2.lineStart; - state2.position = startPos || state2.position; - throwError(state2, "duplicated mapping key"); - } - if (keyNode === "__proto__") { - Object.defineProperty(_result, keyNode, { - configurable: true, - enumerable: true, - writable: true, - value: valueNode - }); - } else { - _result[keyNode] = valueNode; - } - delete overridableKeys[keyNode]; - } - return _result; -} -function readLineBreak(state2) { - var ch; - ch = state2.input.charCodeAt(state2.position); - if (ch === 10) { - state2.position++; - } else if (ch === 13) { - state2.position++; - if (state2.input.charCodeAt(state2.position) === 10) { - state2.position++; - } - } else { - throwError(state2, "a line break is expected"); - } - state2.line += 1; - state2.lineStart = state2.position; - state2.firstTabInLine = -1; -} -function skipSeparationSpace(state2, allowComments, checkIndent) { - var lineBreaks = 0, ch = state2.input.charCodeAt(state2.position); - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - if (ch === 9 && state2.firstTabInLine === -1) { - state2.firstTabInLine = state2.position; - } - ch = state2.input.charCodeAt(++state2.position); - } - if (allowComments && ch === 35) { - do { - ch = state2.input.charCodeAt(++state2.position); - } while (ch !== 10 && ch !== 13 && ch !== 0); - } - if (is_EOL(ch)) { - readLineBreak(state2); - ch = state2.input.charCodeAt(state2.position); - lineBreaks++; - state2.lineIndent = 0; - while (ch === 32) { - state2.lineIndent++; - ch = state2.input.charCodeAt(++state2.position); - } - } else { - break; - } - } - if (checkIndent !== -1 && lineBreaks !== 0 && state2.lineIndent < checkIndent) { - throwWarning(state2, "deficient indentation"); - } - return lineBreaks; -} -function testDocumentSeparator(state2) { - var _position = state2.position, ch; - ch = state2.input.charCodeAt(_position); - if ((ch === 45 || ch === 46) && ch === state2.input.charCodeAt(_position + 1) && ch === state2.input.charCodeAt(_position + 2)) { - _position += 3; - ch = state2.input.charCodeAt(_position); - if (ch === 0 || is_WS_OR_EOL(ch)) { - return true; - } - } - return false; -} -function writeFoldedLines(state2, count) { - if (count === 1) { - state2.result += " "; - } else if (count > 1) { - state2.result += common.repeat("\n", count - 1); - } -} -function readPlainScalar(state2, nodeIndent, withinFlowCollection) { - var preceding, following, captureStart, captureEnd, hasPendingContent, _line, _lineStart, _lineIndent, _kind = state2.kind, _result = state2.result, ch; - ch = state2.input.charCodeAt(state2.position); - if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || ch === 35 || ch === 38 || ch === 42 || ch === 33 || ch === 124 || ch === 62 || ch === 39 || ch === 34 || ch === 37 || ch === 64 || ch === 96) { - return false; - } - if (ch === 63 || ch === 45) { - following = state2.input.charCodeAt(state2.position + 1); - if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { - return false; - } - } - state2.kind = "scalar"; - state2.result = ""; - captureStart = captureEnd = state2.position; - hasPendingContent = false; - while (ch !== 0) { - if (ch === 58) { - following = state2.input.charCodeAt(state2.position + 1); - if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { - break; - } - } else if (ch === 35) { - preceding = state2.input.charCodeAt(state2.position - 1); - if (is_WS_OR_EOL(preceding)) { - break; - } - } else if (state2.position === state2.lineStart && testDocumentSeparator(state2) || withinFlowCollection && is_FLOW_INDICATOR(ch)) { - break; - } else if (is_EOL(ch)) { - _line = state2.line; - _lineStart = state2.lineStart; - _lineIndent = state2.lineIndent; - skipSeparationSpace(state2, false, -1); - if (state2.lineIndent >= nodeIndent) { - hasPendingContent = true; - ch = state2.input.charCodeAt(state2.position); - continue; - } else { - state2.position = captureEnd; - state2.line = _line; - state2.lineStart = _lineStart; - state2.lineIndent = _lineIndent; - break; - } - } - if (hasPendingContent) { - captureSegment(state2, captureStart, captureEnd, false); - writeFoldedLines(state2, state2.line - _line); - captureStart = captureEnd = state2.position; - hasPendingContent = false; - } - if (!is_WHITE_SPACE(ch)) { - captureEnd = state2.position + 1; - } - ch = state2.input.charCodeAt(++state2.position); - } - captureSegment(state2, captureStart, captureEnd, false); - if (state2.result) { - return true; - } - state2.kind = _kind; - state2.result = _result; - return false; -} -function readSingleQuotedScalar(state2, nodeIndent) { - var ch, captureStart, captureEnd; - ch = state2.input.charCodeAt(state2.position); - if (ch !== 39) { - return false; - } - state2.kind = "scalar"; - state2.result = ""; - state2.position++; - captureStart = captureEnd = state2.position; - while ((ch = state2.input.charCodeAt(state2.position)) !== 0) { - if (ch === 39) { - captureSegment(state2, captureStart, state2.position, true); - ch = state2.input.charCodeAt(++state2.position); - if (ch === 39) { - captureStart = state2.position; - state2.position++; - captureEnd = state2.position; - } else { - return true; - } - } else if (is_EOL(ch)) { - captureSegment(state2, captureStart, captureEnd, true); - writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent)); - captureStart = captureEnd = state2.position; - } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) { - throwError(state2, "unexpected end of the document within a single quoted scalar"); - } else { - state2.position++; - captureEnd = state2.position; - } - } - throwError(state2, "unexpected end of the stream within a single quoted scalar"); -} -function readDoubleQuotedScalar(state2, nodeIndent) { - var captureStart, captureEnd, hexLength, hexResult, tmp, ch; - ch = state2.input.charCodeAt(state2.position); - if (ch !== 34) { - return false; - } - state2.kind = "scalar"; - state2.result = ""; - state2.position++; - captureStart = captureEnd = state2.position; - while ((ch = state2.input.charCodeAt(state2.position)) !== 0) { - if (ch === 34) { - captureSegment(state2, captureStart, state2.position, true); - state2.position++; - return true; - } else if (ch === 92) { - captureSegment(state2, captureStart, state2.position, true); - ch = state2.input.charCodeAt(++state2.position); - if (is_EOL(ch)) { - skipSeparationSpace(state2, false, nodeIndent); - } else if (ch < 256 && simpleEscapeCheck[ch]) { - state2.result += simpleEscapeMap[ch]; - state2.position++; - } else if ((tmp = escapedHexLen(ch)) > 0) { - hexLength = tmp; - hexResult = 0; - for (; hexLength > 0; hexLength--) { - ch = state2.input.charCodeAt(++state2.position); - if ((tmp = fromHexCode(ch)) >= 0) { - hexResult = (hexResult << 4) + tmp; - } else { - throwError(state2, "expected hexadecimal character"); - } - } - state2.result += charFromCodepoint(hexResult); - state2.position++; - } else { - throwError(state2, "unknown escape sequence"); - } - captureStart = captureEnd = state2.position; - } else if (is_EOL(ch)) { - captureSegment(state2, captureStart, captureEnd, true); - writeFoldedLines(state2, skipSeparationSpace(state2, false, nodeIndent)); - captureStart = captureEnd = state2.position; - } else if (state2.position === state2.lineStart && testDocumentSeparator(state2)) { - throwError(state2, "unexpected end of the document within a double quoted scalar"); - } else { - state2.position++; - captureEnd = state2.position; - } - } - throwError(state2, "unexpected end of the stream within a double quoted scalar"); -} -function readFlowCollection(state2, nodeIndent) { - var readNext = true, _line, _lineStart, _pos, _tag = state2.tag, _result, _anchor = state2.anchor, following, terminator, isPair, isExplicitPair, isMapping, overridableKeys = /* @__PURE__ */ Object.create(null), keyNode, keyTag, valueNode, ch; - ch = state2.input.charCodeAt(state2.position); - if (ch === 91) { - terminator = 93; - isMapping = false; - _result = []; - } else if (ch === 123) { - terminator = 125; - isMapping = true; - _result = {}; - } else { - return false; - } - if (state2.anchor !== null) { - state2.anchorMap[state2.anchor] = _result; - } - ch = state2.input.charCodeAt(++state2.position); - while (ch !== 0) { - skipSeparationSpace(state2, true, nodeIndent); - ch = state2.input.charCodeAt(state2.position); - if (ch === terminator) { - state2.position++; - state2.tag = _tag; - state2.anchor = _anchor; - state2.kind = isMapping ? "mapping" : "sequence"; - state2.result = _result; - return true; - } else if (!readNext) { - throwError(state2, "missed comma between flow collection entries"); - } else if (ch === 44) { - throwError(state2, "expected the node content, but found ','"); - } - keyTag = keyNode = valueNode = null; - isPair = isExplicitPair = false; - if (ch === 63) { - following = state2.input.charCodeAt(state2.position + 1); - if (is_WS_OR_EOL(following)) { - isPair = isExplicitPair = true; - state2.position++; - skipSeparationSpace(state2, true, nodeIndent); - } - } - _line = state2.line; - _lineStart = state2.lineStart; - _pos = state2.position; - composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true); - keyTag = state2.tag; - keyNode = state2.result; - skipSeparationSpace(state2, true, nodeIndent); - ch = state2.input.charCodeAt(state2.position); - if ((isExplicitPair || state2.line === _line) && ch === 58) { - isPair = true; - ch = state2.input.charCodeAt(++state2.position); - skipSeparationSpace(state2, true, nodeIndent); - composeNode(state2, nodeIndent, CONTEXT_FLOW_IN, false, true); - valueNode = state2.result; - } - if (isMapping) { - storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); - } else if (isPair) { - _result.push(storeMappingPair(state2, null, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos)); - } else { - _result.push(keyNode); - } - skipSeparationSpace(state2, true, nodeIndent); - ch = state2.input.charCodeAt(state2.position); - if (ch === 44) { - readNext = true; - ch = state2.input.charCodeAt(++state2.position); - } else { - readNext = false; - } - } - throwError(state2, "unexpected end of the stream within a flow collection"); -} -function readBlockScalar(state2, nodeIndent) { - var captureStart, folding, chomping = CHOMPING_CLIP, didReadContent = false, detectedIndent = false, textIndent = nodeIndent, emptyLines = 0, atMoreIndented = false, tmp, ch; - ch = state2.input.charCodeAt(state2.position); - if (ch === 124) { - folding = false; - } else if (ch === 62) { - folding = true; - } else { - return false; - } - state2.kind = "scalar"; - state2.result = ""; - while (ch !== 0) { - ch = state2.input.charCodeAt(++state2.position); - if (ch === 43 || ch === 45) { - if (CHOMPING_CLIP === chomping) { - chomping = ch === 43 ? CHOMPING_KEEP : CHOMPING_STRIP; - } else { - throwError(state2, "repeat of a chomping mode identifier"); - } - } else if ((tmp = fromDecimalCode(ch)) >= 0) { - if (tmp === 0) { - throwError(state2, "bad explicit indentation width of a block scalar; it cannot be less than one"); - } else if (!detectedIndent) { - textIndent = nodeIndent + tmp - 1; - detectedIndent = true; - } else { - throwError(state2, "repeat of an indentation width identifier"); - } - } else { - break; - } - } - if (is_WHITE_SPACE(ch)) { - do { - ch = state2.input.charCodeAt(++state2.position); - } while (is_WHITE_SPACE(ch)); - if (ch === 35) { - do { - ch = state2.input.charCodeAt(++state2.position); - } while (!is_EOL(ch) && ch !== 0); - } - } - while (ch !== 0) { - readLineBreak(state2); - state2.lineIndent = 0; - ch = state2.input.charCodeAt(state2.position); - while ((!detectedIndent || state2.lineIndent < textIndent) && ch === 32) { - state2.lineIndent++; - ch = state2.input.charCodeAt(++state2.position); - } - if (!detectedIndent && state2.lineIndent > textIndent) { - textIndent = state2.lineIndent; - } - if (is_EOL(ch)) { - emptyLines++; - continue; - } - if (state2.lineIndent < textIndent) { - if (chomping === CHOMPING_KEEP) { - state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } else if (chomping === CHOMPING_CLIP) { - if (didReadContent) { - state2.result += "\n"; - } - } - break; - } - if (folding) { - if (is_WHITE_SPACE(ch)) { - atMoreIndented = true; - state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } else if (atMoreIndented) { - atMoreIndented = false; - state2.result += common.repeat("\n", emptyLines + 1); - } else if (emptyLines === 0) { - if (didReadContent) { - state2.result += " "; - } - } else { - state2.result += common.repeat("\n", emptyLines); - } - } else { - state2.result += common.repeat("\n", didReadContent ? 1 + emptyLines : emptyLines); - } - didReadContent = true; - detectedIndent = true; - emptyLines = 0; - captureStart = state2.position; - while (!is_EOL(ch) && ch !== 0) { - ch = state2.input.charCodeAt(++state2.position); - } - captureSegment(state2, captureStart, state2.position, false); - } - return true; -} -function readBlockSequence(state2, nodeIndent) { - var _line, _tag = state2.tag, _anchor = state2.anchor, _result = [], following, detected = false, ch; - if (state2.firstTabInLine !== -1) - return false; - if (state2.anchor !== null) { - state2.anchorMap[state2.anchor] = _result; - } - ch = state2.input.charCodeAt(state2.position); - while (ch !== 0) { - if (state2.firstTabInLine !== -1) { - state2.position = state2.firstTabInLine; - throwError(state2, "tab characters must not be used in indentation"); - } - if (ch !== 45) { - break; - } - following = state2.input.charCodeAt(state2.position + 1); - if (!is_WS_OR_EOL(following)) { - break; - } - detected = true; - state2.position++; - if (skipSeparationSpace(state2, true, -1)) { - if (state2.lineIndent <= nodeIndent) { - _result.push(null); - ch = state2.input.charCodeAt(state2.position); - continue; - } - } - _line = state2.line; - composeNode(state2, nodeIndent, CONTEXT_BLOCK_IN, false, true); - _result.push(state2.result); - skipSeparationSpace(state2, true, -1); - ch = state2.input.charCodeAt(state2.position); - if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) { - throwError(state2, "bad indentation of a sequence entry"); - } else if (state2.lineIndent < nodeIndent) { - break; - } - } - if (detected) { - state2.tag = _tag; - state2.anchor = _anchor; - state2.kind = "sequence"; - state2.result = _result; - return true; - } - return false; -} -function readBlockMapping(state2, nodeIndent, flowIndent) { - var following, allowCompact, _line, _keyLine, _keyLineStart, _keyPos, _tag = state2.tag, _anchor = state2.anchor, _result = {}, overridableKeys = /* @__PURE__ */ Object.create(null), keyTag = null, keyNode = null, valueNode = null, atExplicitKey = false, detected = false, ch; - if (state2.firstTabInLine !== -1) - return false; - if (state2.anchor !== null) { - state2.anchorMap[state2.anchor] = _result; - } - ch = state2.input.charCodeAt(state2.position); - while (ch !== 0) { - if (!atExplicitKey && state2.firstTabInLine !== -1) { - state2.position = state2.firstTabInLine; - throwError(state2, "tab characters must not be used in indentation"); - } - following = state2.input.charCodeAt(state2.position + 1); - _line = state2.line; - if ((ch === 63 || ch === 58) && is_WS_OR_EOL(following)) { - if (ch === 63) { - if (atExplicitKey) { - storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } - detected = true; - atExplicitKey = true; - allowCompact = true; - } else if (atExplicitKey) { - atExplicitKey = false; - allowCompact = true; - } else { - throwError(state2, "incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line"); - } - state2.position += 1; - ch = following; - } else { - _keyLine = state2.line; - _keyLineStart = state2.lineStart; - _keyPos = state2.position; - if (!composeNode(state2, flowIndent, CONTEXT_FLOW_OUT, false, true)) { - break; - } - if (state2.line === _line) { - ch = state2.input.charCodeAt(state2.position); - while (is_WHITE_SPACE(ch)) { - ch = state2.input.charCodeAt(++state2.position); - } - if (ch === 58) { - ch = state2.input.charCodeAt(++state2.position); - if (!is_WS_OR_EOL(ch)) { - throwError(state2, "a whitespace character is expected after the key-value separator within a block mapping"); - } - if (atExplicitKey) { - storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } - detected = true; - atExplicitKey = false; - allowCompact = false; - keyTag = state2.tag; - keyNode = state2.result; - } else if (detected) { - throwError(state2, "can not read an implicit mapping pair; a colon is missed"); - } else { - state2.tag = _tag; - state2.anchor = _anchor; - return true; - } - } else if (detected) { - throwError(state2, "can not read a block mapping entry; a multiline key may not be an implicit key"); - } else { - state2.tag = _tag; - state2.anchor = _anchor; - return true; - } - } - if (state2.line === _line || state2.lineIndent > nodeIndent) { - if (atExplicitKey) { - _keyLine = state2.line; - _keyLineStart = state2.lineStart; - _keyPos = state2.position; - } - if (composeNode(state2, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { - if (atExplicitKey) { - keyNode = state2.result; - } else { - valueNode = state2.result; - } - } - if (!atExplicitKey) { - storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); - keyTag = keyNode = valueNode = null; - } - skipSeparationSpace(state2, true, -1); - ch = state2.input.charCodeAt(state2.position); - } - if ((state2.line === _line || state2.lineIndent > nodeIndent) && ch !== 0) { - throwError(state2, "bad indentation of a mapping entry"); - } else if (state2.lineIndent < nodeIndent) { - break; - } - } - if (atExplicitKey) { - storeMappingPair(state2, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); - } - if (detected) { - state2.tag = _tag; - state2.anchor = _anchor; - state2.kind = "mapping"; - state2.result = _result; - } - return detected; -} -function readTagProperty(state2) { - var _position, isVerbatim = false, isNamed = false, tagHandle, tagName, ch; - ch = state2.input.charCodeAt(state2.position); - if (ch !== 33) - return false; - if (state2.tag !== null) { - throwError(state2, "duplication of a tag property"); - } - ch = state2.input.charCodeAt(++state2.position); - if (ch === 60) { - isVerbatim = true; - ch = state2.input.charCodeAt(++state2.position); - } else if (ch === 33) { - isNamed = true; - tagHandle = "!!"; - ch = state2.input.charCodeAt(++state2.position); - } else { - tagHandle = "!"; - } - _position = state2.position; - if (isVerbatim) { - do { - ch = state2.input.charCodeAt(++state2.position); - } while (ch !== 0 && ch !== 62); - if (state2.position < state2.length) { - tagName = state2.input.slice(_position, state2.position); - ch = state2.input.charCodeAt(++state2.position); - } else { - throwError(state2, "unexpected end of the stream within a verbatim tag"); - } - } else { - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - if (ch === 33) { - if (!isNamed) { - tagHandle = state2.input.slice(_position - 1, state2.position + 1); - if (!PATTERN_TAG_HANDLE.test(tagHandle)) { - throwError(state2, "named tag handle cannot contain such characters"); - } - isNamed = true; - _position = state2.position + 1; - } else { - throwError(state2, "tag suffix cannot contain exclamation marks"); - } - } - ch = state2.input.charCodeAt(++state2.position); - } - tagName = state2.input.slice(_position, state2.position); - if (PATTERN_FLOW_INDICATORS.test(tagName)) { - throwError(state2, "tag suffix cannot contain flow indicator characters"); - } - } - if (tagName && !PATTERN_TAG_URI.test(tagName)) { - throwError(state2, "tag name cannot contain such characters: " + tagName); - } - try { - tagName = decodeURIComponent(tagName); - } catch (err) { - throwError(state2, "tag name is malformed: " + tagName); - } - if (isVerbatim) { - state2.tag = tagName; - } else if (_hasOwnProperty$1.call(state2.tagMap, tagHandle)) { - state2.tag = state2.tagMap[tagHandle] + tagName; - } else if (tagHandle === "!") { - state2.tag = "!" + tagName; - } else if (tagHandle === "!!") { - state2.tag = "tag:yaml.org,2002:" + tagName; - } else { - throwError(state2, 'undeclared tag handle "' + tagHandle + '"'); - } - return true; -} -function readAnchorProperty(state2) { - var _position, ch; - ch = state2.input.charCodeAt(state2.position); - if (ch !== 38) - return false; - if (state2.anchor !== null) { - throwError(state2, "duplication of an anchor property"); - } - ch = state2.input.charCodeAt(++state2.position); - _position = state2.position; - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state2.input.charCodeAt(++state2.position); - } - if (state2.position === _position) { - throwError(state2, "name of an anchor node must contain at least one character"); - } - state2.anchor = state2.input.slice(_position, state2.position); - return true; -} -function readAlias(state2) { - var _position, alias, ch; - ch = state2.input.charCodeAt(state2.position); - if (ch !== 42) - return false; - ch = state2.input.charCodeAt(++state2.position); - _position = state2.position; - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { - ch = state2.input.charCodeAt(++state2.position); - } - if (state2.position === _position) { - throwError(state2, "name of an alias node must contain at least one character"); - } - alias = state2.input.slice(_position, state2.position); - if (!_hasOwnProperty$1.call(state2.anchorMap, alias)) { - throwError(state2, 'unidentified alias "' + alias + '"'); - } - state2.result = state2.anchorMap[alias]; - skipSeparationSpace(state2, true, -1); - return true; -} -function composeNode(state2, parentIndent, nodeContext, allowToSeek, allowCompact) { - var allowBlockStyles, allowBlockScalars, allowBlockCollections, indentStatus = 1, atNewLine = false, hasContent = false, typeIndex, typeQuantity, typeList, type2, flowIndent, blockIndent; - if (state2.listener !== null) { - state2.listener("open", state2); - } - state2.tag = null; - state2.anchor = null; - state2.kind = null; - state2.result = null; - allowBlockStyles = allowBlockScalars = allowBlockCollections = CONTEXT_BLOCK_OUT === nodeContext || CONTEXT_BLOCK_IN === nodeContext; - if (allowToSeek) { - if (skipSeparationSpace(state2, true, -1)) { - atNewLine = true; - if (state2.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state2.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state2.lineIndent < parentIndent) { - indentStatus = -1; - } - } - } - if (indentStatus === 1) { - while (readTagProperty(state2) || readAnchorProperty(state2)) { - if (skipSeparationSpace(state2, true, -1)) { - atNewLine = true; - allowBlockCollections = allowBlockStyles; - if (state2.lineIndent > parentIndent) { - indentStatus = 1; - } else if (state2.lineIndent === parentIndent) { - indentStatus = 0; - } else if (state2.lineIndent < parentIndent) { - indentStatus = -1; - } - } else { - allowBlockCollections = false; - } - } - } - if (allowBlockCollections) { - allowBlockCollections = atNewLine || allowCompact; - } - if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { - if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { - flowIndent = parentIndent; - } else { - flowIndent = parentIndent + 1; - } - blockIndent = state2.position - state2.lineStart; - if (indentStatus === 1) { - if (allowBlockCollections && (readBlockSequence(state2, blockIndent) || readBlockMapping(state2, blockIndent, flowIndent)) || readFlowCollection(state2, flowIndent)) { - hasContent = true; - } else { - if (allowBlockScalars && readBlockScalar(state2, flowIndent) || readSingleQuotedScalar(state2, flowIndent) || readDoubleQuotedScalar(state2, flowIndent)) { - hasContent = true; - } else if (readAlias(state2)) { - hasContent = true; - if (state2.tag !== null || state2.anchor !== null) { - throwError(state2, "alias node should not have any properties"); - } - } else if (readPlainScalar(state2, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { - hasContent = true; - if (state2.tag === null) { - state2.tag = "?"; - } - } - if (state2.anchor !== null) { - state2.anchorMap[state2.anchor] = state2.result; - } - } - } else if (indentStatus === 0) { - hasContent = allowBlockCollections && readBlockSequence(state2, blockIndent); - } - } - if (state2.tag === null) { - if (state2.anchor !== null) { - state2.anchorMap[state2.anchor] = state2.result; - } - } else if (state2.tag === "?") { - if (state2.result !== null && state2.kind !== "scalar") { - throwError(state2, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state2.kind + '"'); - } - for (typeIndex = 0, typeQuantity = state2.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { - type2 = state2.implicitTypes[typeIndex]; - if (type2.resolve(state2.result)) { - state2.result = type2.construct(state2.result); - state2.tag = type2.tag; - if (state2.anchor !== null) { - state2.anchorMap[state2.anchor] = state2.result; - } - break; - } - } - } else if (state2.tag !== "!") { - if (_hasOwnProperty$1.call(state2.typeMap[state2.kind || "fallback"], state2.tag)) { - type2 = state2.typeMap[state2.kind || "fallback"][state2.tag]; - } else { - type2 = null; - typeList = state2.typeMap.multi[state2.kind || "fallback"]; - for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { - if (state2.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { - type2 = typeList[typeIndex]; - break; - } - } - } - if (!type2) { - throwError(state2, "unknown tag !<" + state2.tag + ">"); - } - if (state2.result !== null && type2.kind !== state2.kind) { - throwError(state2, "unacceptable node kind for !<" + state2.tag + '> tag; it should be "' + type2.kind + '", not "' + state2.kind + '"'); - } - if (!type2.resolve(state2.result, state2.tag)) { - throwError(state2, "cannot resolve a node with !<" + state2.tag + "> explicit tag"); - } else { - state2.result = type2.construct(state2.result, state2.tag); - if (state2.anchor !== null) { - state2.anchorMap[state2.anchor] = state2.result; - } - } - } - if (state2.listener !== null) { - state2.listener("close", state2); - } - return state2.tag !== null || state2.anchor !== null || hasContent; -} -function readDocument(state2) { - var documentStart = state2.position, _position, directiveName, directiveArgs, hasDirectives = false, ch; - state2.version = null; - state2.checkLineBreaks = state2.legacy; - state2.tagMap = /* @__PURE__ */ Object.create(null); - state2.anchorMap = /* @__PURE__ */ Object.create(null); - while ((ch = state2.input.charCodeAt(state2.position)) !== 0) { - skipSeparationSpace(state2, true, -1); - ch = state2.input.charCodeAt(state2.position); - if (state2.lineIndent > 0 || ch !== 37) { - break; - } - hasDirectives = true; - ch = state2.input.charCodeAt(++state2.position); - _position = state2.position; - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state2.input.charCodeAt(++state2.position); - } - directiveName = state2.input.slice(_position, state2.position); - directiveArgs = []; - if (directiveName.length < 1) { - throwError(state2, "directive name must not be less than one character in length"); - } - while (ch !== 0) { - while (is_WHITE_SPACE(ch)) { - ch = state2.input.charCodeAt(++state2.position); - } - if (ch === 35) { - do { - ch = state2.input.charCodeAt(++state2.position); - } while (ch !== 0 && !is_EOL(ch)); - break; - } - if (is_EOL(ch)) - break; - _position = state2.position; - while (ch !== 0 && !is_WS_OR_EOL(ch)) { - ch = state2.input.charCodeAt(++state2.position); - } - directiveArgs.push(state2.input.slice(_position, state2.position)); - } - if (ch !== 0) - readLineBreak(state2); - if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) { - directiveHandlers[directiveName](state2, directiveName, directiveArgs); - } else { - throwWarning(state2, 'unknown document directive "' + directiveName + '"'); - } - } - skipSeparationSpace(state2, true, -1); - if (state2.lineIndent === 0 && state2.input.charCodeAt(state2.position) === 45 && state2.input.charCodeAt(state2.position + 1) === 45 && state2.input.charCodeAt(state2.position + 2) === 45) { - state2.position += 3; - skipSeparationSpace(state2, true, -1); - } else if (hasDirectives) { - throwError(state2, "directives end mark is expected"); - } - composeNode(state2, state2.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); - skipSeparationSpace(state2, true, -1); - if (state2.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state2.input.slice(documentStart, state2.position))) { - throwWarning(state2, "non-ASCII line breaks are interpreted as content"); - } - state2.documents.push(state2.result); - if (state2.position === state2.lineStart && testDocumentSeparator(state2)) { - if (state2.input.charCodeAt(state2.position) === 46) { - state2.position += 3; - skipSeparationSpace(state2, true, -1); - } - return; - } - if (state2.position < state2.length - 1) { - throwError(state2, "end of the stream or a document separator is expected"); - } else { - return; - } -} -function loadDocuments(input, options) { - input = String(input); - options = options || {}; - if (input.length !== 0) { - if (input.charCodeAt(input.length - 1) !== 10 && input.charCodeAt(input.length - 1) !== 13) { - input += "\n"; - } - if (input.charCodeAt(0) === 65279) { - input = input.slice(1); - } - } - var state2 = new State$1(input, options); - var nullpos = input.indexOf("\0"); - if (nullpos !== -1) { - state2.position = nullpos; - throwError(state2, "null byte is not allowed in input"); - } - state2.input += "\0"; - while (state2.input.charCodeAt(state2.position) === 32) { - state2.lineIndent += 1; - state2.position += 1; - } - while (state2.position < state2.length - 1) { - readDocument(state2); - } - return state2.documents; -} -function loadAll$1(input, iterator, options) { - if (iterator !== null && typeof iterator === "object" && typeof options === "undefined") { - options = iterator; - iterator = null; - } - var documents = loadDocuments(input, options); - if (typeof iterator !== "function") { - return documents; - } - for (var index = 0, length = documents.length; index < length; index += 1) { - iterator(documents[index]); - } -} -function load$1(input, options) { - var documents = loadDocuments(input, options); - if (documents.length === 0) { - return void 0; - } else if (documents.length === 1) { - return documents[0]; - } - throw new exception("expected a single document in the stream, but found more"); -} -var loadAll_1 = loadAll$1; -var load_1 = load$1; -var loader = { - loadAll: loadAll_1, - load: load_1 -}; -var JSON_SCHEMA = json; -var load = loader.load; -function extractFrontMatter(text) { - const matches = text.match(frontMatterRegex); - if (!matches) { - return { - text, - metadata: {} - }; - } - let parsed = load(matches[1], { - // To support config, we need JSON schema. - // https://www.yaml.org/spec/1.2/spec.html#id2803231 - schema: JSON_SCHEMA - }) ?? {}; - parsed = typeof parsed === "object" && !Array.isArray(parsed) ? parsed : {}; - const metadata = {}; - if (parsed.displayMode) { - metadata.displayMode = parsed.displayMode.toString(); - } - if (parsed.title) { - metadata.title = parsed.title.toString(); - } - if (parsed.config) { - metadata.config = parsed.config; - } - return { - text: text.slice(matches[0].length), - metadata - }; -} -const cleanupText = (code) => { - return code.replace(/\r\n?/g, "\n").replace( - /<(\w+)([^>]*)>/g, - (match, tag, attributes) => "<" + tag + attributes.replace(/="([^"]*)"/g, "='$1'") + ">" - ); -}; -const processFrontmatter = (code) => { - const { text, metadata } = extractFrontMatter(code); - const { displayMode, title, config: config2 = {} } = metadata; - if (displayMode) { - if (!config2.gantt) { - config2.gantt = {}; - } - config2.gantt.displayMode = displayMode; - } - return { title, config: config2, text }; -}; -const processDirectives = (code) => { - const initDirective = utils.detectInit(code) ?? {}; - const wrapDirectives = utils.detectDirective(code, "wrap"); - if (Array.isArray(wrapDirectives)) { - initDirective.wrap = wrapDirectives.some(({ type: type2 }) => { - }); - } else if ((wrapDirectives == null ? void 0 : wrapDirectives.type) === "wrap") { - initDirective.wrap = true; - } - return { - text: removeDirectives(code), - directive: initDirective - }; -}; -function preprocessDiagram(code) { - const cleanedCode = cleanupText(code); - const frontMatterResult = processFrontmatter(cleanedCode); - const directiveResult = processDirectives(frontMatterResult.text); - const config2 = cleanAndMerge(frontMatterResult.config, directiveResult.directive); - code = cleanupComments(directiveResult.text); - return { - code, - title: frontMatterResult.title, - config: config2 - }; -} -const MAX_TEXTLENGTH = 5e4; -const MAX_TEXTLENGTH_EXCEEDED_MSG = "graph TB;a[Maximum text size in diagram exceeded];style a fill:#faa"; -const SECURITY_LVL_SANDBOX = "sandbox"; -const SECURITY_LVL_LOOSE = "loose"; -const XMLNS_SVG_STD = "http://www.w3.org/2000/svg"; -const XMLNS_XLINK_STD = "http://www.w3.org/1999/xlink"; -const XMLNS_XHTML_STD = "http://www.w3.org/1999/xhtml"; -const IFRAME_WIDTH = "100%"; -const IFRAME_HEIGHT = "100%"; -const IFRAME_STYLES = "border:0;margin:0;"; -const IFRAME_BODY_STYLE = "margin:0"; -const IFRAME_SANDBOX_OPTS = "allow-top-navigation-by-user-activation allow-popups"; -const IFRAME_NOT_SUPPORTED_MSG = 'The "iframe" tag is not supported by your browser.'; -const DOMPURIFY_TAGS = ["foreignobject"]; -const DOMPURIFY_ATTR = ["dominant-baseline"]; -function processAndSetConfigs(text) { - const processed = preprocessDiagram(text); - reset(); - addDirective(processed.config ?? {}); - return processed; -} -async function parse$1(text, parseOptions) { - addDiagrams(); - text = processAndSetConfigs(text).code; - try { - await getDiagramFromText(text); - } catch (error) { - if (parseOptions == null ? void 0 : parseOptions.suppressErrors) { - return false; - } - throw error; - } - return true; -} -const cssImportantStyles = (cssClass, element, cssClasses = []) => { - return ` -.${cssClass} ${element} { ${cssClasses.join(" !important; ")} !important; }`; -}; -const createCssStyles = (config2, classDefs = {}) => { - var _a; - let cssStyles = ""; - if (config2.themeCSS !== void 0) { - cssStyles += ` -${config2.themeCSS}`; - } - if (config2.fontFamily !== void 0) { - cssStyles += ` -:root { --mermaid-font-family: ${config2.fontFamily}}`; - } - if (config2.altFontFamily !== void 0) { - cssStyles += ` -:root { --mermaid-alt-font-family: ${config2.altFontFamily}}`; - } - if (!isEmpty(classDefs)) { - const htmlLabels = config2.htmlLabels || ((_a = config2.flowchart) == null ? void 0 : _a.htmlLabels); - const cssHtmlElements = ["> *", "span"]; - const cssShapeElements = ["rect", "polygon", "ellipse", "circle", "path"]; - const cssElements = htmlLabels ? cssHtmlElements : cssShapeElements; - for (const classId in classDefs) { - const styleClassDef = classDefs[classId]; - if (!isEmpty(styleClassDef.styles)) { - cssElements.forEach((cssElement) => { - cssStyles += cssImportantStyles(styleClassDef.id, cssElement, styleClassDef.styles); - }); - } - if (!isEmpty(styleClassDef.textStyles)) { - cssStyles += cssImportantStyles(styleClassDef.id, "tspan", styleClassDef.textStyles); - } - } - } - return cssStyles; -}; -const createUserStyles = (config2, graphType, classDefs, svgId) => { - const userCSSstyles = createCssStyles(config2, classDefs); - const allStyles = getStyles$1(graphType, userCSSstyles, config2.themeVariables); - return serialize(compile(`${svgId}{${allStyles}}`), stringify); -}; -const cleanUpSvgCode = (svgCode = "", inSandboxMode, useArrowMarkerUrls) => { - let cleanedUpSvg = svgCode; - if (!useArrowMarkerUrls && !inSandboxMode) { - cleanedUpSvg = cleanedUpSvg.replace( - /marker-end="url\([\d+./:=?A-Za-z-]*?#/g, - 'marker-end="url(#' - ); - } - cleanedUpSvg = decodeEntities(cleanedUpSvg); - cleanedUpSvg = cleanedUpSvg.replace(/
/g, "
"); - return cleanedUpSvg; -}; -const putIntoIFrame = (svgCode = "", svgElement) => { - var _a, _b; - const height = ((_b = (_a = svgElement == null ? void 0 : svgElement.viewBox) == null ? void 0 : _a.baseVal) == null ? void 0 : _b.height) ? svgElement.viewBox.baseVal.height + "px" : IFRAME_HEIGHT; - const base64encodedSrc = btoa('' + svgCode + ""); - return ``; -}; -const appendDivSvgG = (parentRoot, id2, enclosingDivId, divStyle, svgXlink) => { - const enclosingDiv = parentRoot.append("div"); - enclosingDiv.attr("id", enclosingDivId); - if (divStyle) { - enclosingDiv.attr("style", divStyle); - } - const svgNode = enclosingDiv.append("svg").attr("id", id2).attr("width", "100%").attr("xmlns", XMLNS_SVG_STD); - if (svgXlink) { - svgNode.attr("xmlns:xlink", svgXlink); - } - svgNode.append("g"); - return parentRoot; -}; -function sandboxedIframe(parentNode, iFrameId) { - return parentNode.append("iframe").attr("id", iFrameId).attr("style", "width: 100%; height: 100%;").attr("sandbox", ""); -} -const removeExistingElements = (doc, id2, divId, iFrameId) => { - var _a, _b, _c; - (_a = doc.getElementById(id2)) == null ? void 0 : _a.remove(); - (_b = doc.getElementById(divId)) == null ? void 0 : _b.remove(); - (_c = doc.getElementById(iFrameId)) == null ? void 0 : _c.remove(); -}; -const render$1 = async function(id2, text, svgContainingElement) { - var _a, _b, _c, _d, _e, _f; - addDiagrams(); - const processed = processAndSetConfigs(text); - text = processed.code; - const config2 = getConfig$1(); - log$1.debug(config2); - if (text.length > ((config2 == null ? void 0 : config2.maxTextSize) ?? MAX_TEXTLENGTH)) { - text = MAX_TEXTLENGTH_EXCEEDED_MSG; - } - const idSelector = "#" + id2; - const iFrameID = "i" + id2; - const iFrameID_selector = "#" + iFrameID; - const enclosingDivID = "d" + id2; - const enclosingDivID_selector = "#" + enclosingDivID; - let root = select("body"); - const isSandboxed = config2.securityLevel === SECURITY_LVL_SANDBOX; - const isLooseSecurityLevel = config2.securityLevel === SECURITY_LVL_LOOSE; - const fontFamily = config2.fontFamily; - if (svgContainingElement !== void 0) { - if (svgContainingElement) { - svgContainingElement.innerHTML = ""; - } - if (isSandboxed) { - const iframe = sandboxedIframe(select(svgContainingElement), iFrameID); - root = select(iframe.nodes()[0].contentDocument.body); - root.node().style.margin = 0; - } else { - root = select(svgContainingElement); - } - appendDivSvgG(root, id2, enclosingDivID, `font-family: ${fontFamily}`, XMLNS_XLINK_STD); - } else { - removeExistingElements(document, id2, enclosingDivID, iFrameID); - if (isSandboxed) { - const iframe = sandboxedIframe(select("body"), iFrameID); - root = select(iframe.nodes()[0].contentDocument.body); - root.node().style.margin = 0; - } else { - root = select("body"); - } - appendDivSvgG(root, id2, enclosingDivID); - } - let diag; - let parseEncounteredException; - try { - diag = await getDiagramFromText(text, { title: processed.title }); - } catch (error) { - diag = new Diagram("error"); - parseEncounteredException = error; - } - const element = root.select(enclosingDivID_selector).node(); - const diagramType = diag.type; - const svg = element.firstChild; - const firstChild = svg.firstChild; - const diagramClassDefs = (_b = (_a = diag.renderer).getClasses) == null ? void 0 : _b.call(_a, text, diag); - const rules = createUserStyles(config2, diagramType, diagramClassDefs, idSelector); - const style1 = document.createElement("style"); - style1.innerHTML = rules; - svg.insertBefore(style1, firstChild); - try { - await diag.renderer.draw(text, id2, version, diag); - } catch (e) { - errorRenderer.draw(text, id2, version); - throw e; - } - const svgNode = root.select(`${enclosingDivID_selector} svg`); - const a11yTitle = (_d = (_c = diag.db).getAccTitle) == null ? void 0 : _d.call(_c); - const a11yDescr = (_f = (_e = diag.db).getAccDescription) == null ? void 0 : _f.call(_e); - addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr); - root.select(`[id="${id2}"]`).selectAll("foreignobject > *").attr("xmlns", XMLNS_XHTML_STD); - let svgCode = root.select(enclosingDivID_selector).node().innerHTML; - log$1.debug("config.arrowMarkerAbsolute", config2.arrowMarkerAbsolute); - svgCode = cleanUpSvgCode(svgCode, isSandboxed, evaluate(config2.arrowMarkerAbsolute)); - if (isSandboxed) { - const svgEl = root.select(enclosingDivID_selector + " svg").node(); - svgCode = putIntoIFrame(svgCode, svgEl); - } else if (!isLooseSecurityLevel) { - svgCode = DOMPurify.sanitize(svgCode, { - ADD_TAGS: DOMPURIFY_TAGS, - ADD_ATTR: DOMPURIFY_ATTR - }); - } - attachFunctions(); - if (parseEncounteredException) { - throw parseEncounteredException; - } - const tmpElementSelector = isSandboxed ? iFrameID_selector : enclosingDivID_selector; - const node = select(tmpElementSelector).node(); - if (node && "remove" in node) { - node.remove(); - } - return { - svg: svgCode, - bindFunctions: diag.db.bindFunctions - }; -}; -function initialize$1(options = {}) { - var _a; - if ((options == null ? void 0 : options.fontFamily) && !((_a = options.themeVariables) == null ? void 0 : _a.fontFamily)) { - if (!options.themeVariables) { - options.themeVariables = {}; - } - options.themeVariables.fontFamily = options.fontFamily; - } - saveConfigFromInitialize(options); - if ((options == null ? void 0 : options.theme) && options.theme in theme) { - options.themeVariables = theme[options.theme].getThemeVariables( - options.themeVariables - ); - } else if (options) { - options.themeVariables = theme.default.getThemeVariables(options.themeVariables); - } - const config2 = typeof options === "object" ? setSiteConfig(options) : getSiteConfig(); - setLogLevel$1(config2.logLevel); - addDiagrams(); -} -const getDiagramFromText = (text, metadata = {}) => { - const { code } = preprocessDiagram(text); - return getDiagramFromText$1(code, metadata); -}; -function addA11yInfo(diagramType, svgNode, a11yTitle, a11yDescr) { - setA11yDiagramInfo(svgNode, diagramType); - addSVGa11yTitleDescription(svgNode, a11yTitle, a11yDescr, svgNode.attr("id")); -} -const mermaidAPI = Object.freeze({ - render: render$1, - parse: parse$1, - getDiagramFromText, - initialize: initialize$1, - getConfig: getConfig$1, - setConfig: setConfig$1, - getSiteConfig, - updateSiteConfig, - reset: () => { - reset(); - }, - globalReset: () => { - reset(defaultConfig$1); - }, - defaultConfig: defaultConfig$1 -}); -setLogLevel$1(getConfig$1().logLevel); -reset(getConfig$1()); -const loadRegisteredDiagrams = async () => { - log$1.debug(`Loading registered diagrams`); - const results = await Promise.allSettled( - Object.entries(detectors).map(async ([key, { detector: detector2, loader: loader2 }]) => { - if (loader2) { - try { - getDiagram(key); - } catch (error) { - try { - const { diagram: diagram2, id: id2 } = await loader2(); - registerDiagram(id2, diagram2, detector2); - } catch (err) { - log$1.error(`Failed to load external diagram with key ${key}. Removing from detectors.`); - delete detectors[key]; - throw err; - } - } - } - }) - ); - const failed = results.filter((result) => result.status === "rejected"); - if (failed.length > 0) { - log$1.error(`Failed to load ${failed.length} external diagrams`); - for (const res of failed) { - log$1.error(res); - } - throw new Error(`Failed to load ${failed.length} external diagrams`); - } -}; -const handleError = (error, errors, parseError) => { - log$1.warn(error); - if (isDetailedError(error)) { - if (parseError) { - parseError(error.str, error.hash); - } - errors.push({ ...error, message: error.str, error }); - } else { - if (parseError) { - parseError(error); - } - if (error instanceof Error) { - errors.push({ - str: error.message, - message: error.message, - hash: error.name, - error - }); - } - } -}; -const run = async function(options = { - querySelector: ".mermaid" -}) { - try { - await runThrowsErrors(options); - } catch (e) { - if (isDetailedError(e)) { - log$1.error(e.str); - } - if (mermaid.parseError) { - mermaid.parseError(e); - } - if (!options.suppressErrors) { - log$1.error("Use the suppressErrors option to suppress these errors"); - throw e; - } - } -}; -const runThrowsErrors = async function({ postRenderCallback, querySelector, nodes } = { - querySelector: ".mermaid" -}) { - const conf = mermaidAPI.getConfig(); - log$1.debug(`${!postRenderCallback ? "No " : ""}Callback function found`); - let nodesToProcess; - if (nodes) { - nodesToProcess = nodes; - } else if (querySelector) { - nodesToProcess = document.querySelectorAll(querySelector); - } else { - throw new Error("Nodes and querySelector are both undefined"); - } - log$1.debug(`Found ${nodesToProcess.length} diagrams`); - if ((conf == null ? void 0 : conf.startOnLoad) !== void 0) { - log$1.debug("Start On Load: " + (conf == null ? void 0 : conf.startOnLoad)); - mermaidAPI.updateSiteConfig({ startOnLoad: conf == null ? void 0 : conf.startOnLoad }); - } - const idGenerator = new utils.InitIDGenerator(conf.deterministicIds, conf.deterministicIDSeed); - let txt; - const errors = []; - for (const element of Array.from(nodesToProcess)) { - log$1.info("Rendering diagram: " + element.id); - /*! Check if previously processed */ - if (element.getAttribute("data-processed")) { - continue; - } - element.setAttribute("data-processed", "true"); - const id2 = `mermaid-${idGenerator.next()}`; - txt = element.innerHTML; - txt = dedent(utils.entityDecode(txt)).trim().replace(//gi, "
"); - const init2 = utils.detectInit(txt); - if (init2) { - log$1.debug("Detected early reinit: ", init2); - } - try { - const { svg, bindFunctions } = await render(id2, txt, element); - element.innerHTML = svg; - if (postRenderCallback) { - await postRenderCallback(id2); - } - if (bindFunctions) { - bindFunctions(element); - } - } catch (error) { - handleError(error, errors, mermaid.parseError); - } - } - if (errors.length > 0) { - throw errors[0]; - } -}; -const initialize = function(config2) { - mermaidAPI.initialize(config2); -}; -const init = async function(config2, nodes, callback) { - log$1.warn("mermaid.init is deprecated. Please use run instead."); - if (config2) { - initialize(config2); - } - const runOptions = { postRenderCallback: callback, querySelector: ".mermaid" }; - if (typeof nodes === "string") { - runOptions.querySelector = nodes; - } else if (nodes) { - if (nodes instanceof HTMLElement) { - runOptions.nodes = [nodes]; - } else { - runOptions.nodes = nodes; - } - } - await run(runOptions); -}; -const registerExternalDiagrams = async (diagrams2, { - lazyLoad = true -} = {}) => { - registerLazyLoadedDiagrams(...diagrams2); - if (lazyLoad === false) { - await loadRegisteredDiagrams(); - } -}; -const contentLoaded = function() { - if (mermaid.startOnLoad) { - const { startOnLoad } = mermaidAPI.getConfig(); - if (startOnLoad) { - mermaid.run().catch((err) => log$1.error("Mermaid failed to initialize", err)); - } - } -}; -if (typeof document !== "undefined") { - /*! - * Wait for document loaded before starting the execution - */ - window.addEventListener("load", contentLoaded, false); -} -const setParseErrorHandler = function(parseErrorHandler) { - mermaid.parseError = parseErrorHandler; -}; -const executionQueue = []; -let executionQueueRunning = false; -const executeQueue = async () => { - if (executionQueueRunning) { - return; - } - executionQueueRunning = true; - while (executionQueue.length > 0) { - const f = executionQueue.shift(); - if (f) { - try { - await f(); - } catch (e) { - log$1.error("Error executing queue", e); - } - } - } - executionQueueRunning = false; -}; -const parse = async (text, parseOptions) => { - return new Promise((resolve, reject) => { - const performCall = () => new Promise((res, rej) => { - mermaidAPI.parse(text, parseOptions).then( - (r) => { - res(r); - resolve(r); - }, - (e) => { - var _a; - log$1.error("Error parsing", e); - (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e); - rej(e); - reject(e); - } - ); - }); - executionQueue.push(performCall); - executeQueue().catch(reject); - }); -}; -const render = (id2, text, container) => { - return new Promise((resolve, reject) => { - const performCall = () => new Promise((res, rej) => { - mermaidAPI.render(id2, text, container).then( - (r) => { - res(r); - resolve(r); - }, - (e) => { - var _a; - log$1.error("Error parsing", e); - (_a = mermaid.parseError) == null ? void 0 : _a.call(mermaid, e); - rej(e); - reject(e); - } - ); - }); - executionQueue.push(performCall); - executeQueue().catch(reject); - }); -}; -const mermaid = { - startOnLoad: true, - mermaidAPI, - parse, - render, - init, - run, - registerExternalDiagrams, - initialize, - parseError: void 0, - contentLoaded, - setParseErrorHandler, - detectType -}; -export { - selectSvgElement as A, - defaultConfig$2 as B, - cleanAndMerge as C, - parseFontSize as D, - getThemeVariables$2 as E, - getConfig$1 as F, - hasKatex as G, - calculateMathMLDimensions as H, - generateId as I, - lineBreakRegex as J, - defaultConfig as K, - commonDb as L, - decodeEntities as M, - mermaid as N, - ZERO_WIDTH_SPACE as Z, - getAccDescription as a, - setAccDescription as b, - getConfig as c, - sanitizeText$2 as d, - common$1 as e, - assignWithDepth$1 as f, - getAccTitle as g, - calculateTextWidth as h, - configureSvgSize as i, - calculateTextHeight as j, - getStylesFromArray as k, - log$1 as l, - evaluate as m, - interpolateToCurve as n, - setupGraphViewbox$1 as o, - setConfig as p, - setDiagramTitle as q, - renderKatex as r, - setAccTitle as s, - getDiagramTitle as t, - utils as u, - clear as v, - wrapLabel as w, - parseGenericTypes as x, - random as y, - setupGraphViewbox as z -}; -- cgit v1.2.3