diff options
Diffstat (limited to 'themes/blowfish/assets/lib/mermaid/diagram-api')
12 files changed, 190 insertions, 0 deletions
diff --git a/themes/blowfish/assets/lib/mermaid/diagram-api/comments.d.ts b/themes/blowfish/assets/lib/mermaid/diagram-api/comments.d.ts new file mode 100644 index 0000000..6fe5494 --- /dev/null +++ b/themes/blowfish/assets/lib/mermaid/diagram-api/comments.d.ts @@ -0,0 +1,6 @@ +/** + * Remove all lines starting with `%%` from the text that don't contain a `%%{` + * @param text - The text to remove comments from + * @returns cleaned text + */ +export declare const cleanupComments: (text: string) => string; diff --git a/themes/blowfish/assets/lib/mermaid/diagram-api/comments.spec.d.ts b/themes/blowfish/assets/lib/mermaid/diagram-api/comments.spec.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/themes/blowfish/assets/lib/mermaid/diagram-api/comments.spec.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/themes/blowfish/assets/lib/mermaid/diagram-api/detectType.d.ts b/themes/blowfish/assets/lib/mermaid/diagram-api/detectType.d.ts new file mode 100644 index 0000000..1de2d93 --- /dev/null +++ b/themes/blowfish/assets/lib/mermaid/diagram-api/detectType.d.ts @@ -0,0 +1,42 @@ +import type { MermaidConfig } from '../config.type.js'; +import type { DetectorRecord, DiagramDetector, DiagramLoader, ExternalDiagramDefinition } from './types.js'; +export declare const detectors: Record<string, DetectorRecord>; +/** + * Detects the type of the graph text. + * + * Takes into consideration the possible existence of an `%%init` directive + * + * @param text - The text defining the graph. For example: + * + * ```mermaid + * %%{initialize: {"startOnLoad": true, logLevel: "fatal" }}%% + * graph LR + * a-->b + * b-->c + * c-->d + * d-->e + * e-->f + * f-->g + * g-->h + * ``` + * + * @param config - The mermaid config. + * @returns A graph definition key + */ +export declare const detectType: (text: string, config?: MermaidConfig) => string; +/** + * Registers lazy-loaded diagrams to Mermaid. + * + * The diagram function is loaded asynchronously, so that diagrams are only loaded + * if the diagram is detected. + * + * @remarks + * Please note that the order of diagram detectors is important. + * The first detector to return `true` is the diagram that will be loaded + * and used, so put more specific detectors at the beginning! + * + * @param diagrams - Diagrams to lazy load, and their detectors, in order of importance. + */ +export declare const registerLazyLoadedDiagrams: (...diagrams: ExternalDiagramDefinition[]) => void; +export declare const addDetector: (key: string, detector: DiagramDetector, loader?: DiagramLoader) => void; +export declare const getDiagramLoader: (key: string) => DiagramLoader | undefined; diff --git a/themes/blowfish/assets/lib/mermaid/diagram-api/diagram-orchestration.d.ts b/themes/blowfish/assets/lib/mermaid/diagram-api/diagram-orchestration.d.ts new file mode 100644 index 0000000..a30cf02 --- /dev/null +++ b/themes/blowfish/assets/lib/mermaid/diagram-api/diagram-orchestration.d.ts @@ -0,0 +1 @@ +export declare const addDiagrams: () => void; diff --git a/themes/blowfish/assets/lib/mermaid/diagram-api/diagram-orchestration.spec.d.ts b/themes/blowfish/assets/lib/mermaid/diagram-api/diagram-orchestration.spec.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/themes/blowfish/assets/lib/mermaid/diagram-api/diagram-orchestration.spec.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/themes/blowfish/assets/lib/mermaid/diagram-api/diagramAPI.d.ts b/themes/blowfish/assets/lib/mermaid/diagram-api/diagramAPI.d.ts new file mode 100644 index 0000000..2f4b6fb --- /dev/null +++ b/themes/blowfish/assets/lib/mermaid/diagram-api/diagramAPI.d.ts @@ -0,0 +1,31 @@ +import type { DiagramDefinition, DiagramDetector } from './types.js'; +import * as _commonDb from '../diagrams/common/commonDb.js'; +export declare const log: Record<import("../logger.js").LogLevel, { + (...data: any[]): void; + (message?: any, ...optionalParams: any[]): void; +}>; +export declare const setLogLevel: (level?: string | number) => void; +export declare const getConfig: () => import("../config.type.js").MermaidConfig; +export declare const setConfig: (conf: import("../config.type.js").MermaidConfig) => import("../config.type.js").MermaidConfig; +export declare const defaultConfig: import("../config.type.js").MermaidConfig; +export declare const setSiteConfig: (conf: import("../config.type.js").MermaidConfig) => import("../config.type.js").MermaidConfig; +export declare const sanitizeText: (text: string) => string; +export declare const setupGraphViewbox: (graph: any, svgElem: any, padding: any, useMaxWidth: any) => void; +export declare const getCommonDb: () => typeof _commonDb; +export interface Detectors { + [key: string]: DiagramDetector; +} +/** + * Registers the given diagram with Mermaid. + * + * Can be used for third-party custom diagrams. + * + * @param id - A unique ID for the given diagram. + * @param diagram - The diagram definition. + * @param detector - Function that returns `true` if a given mermaid text is this diagram definition. + */ +export declare const registerDiagram: (id: string, diagram: DiagramDefinition, detector?: DiagramDetector) => void; +export declare const getDiagram: (name: string) => DiagramDefinition; +export declare class DiagramNotFoundError extends Error { + constructor(name: string); +} diff --git a/themes/blowfish/assets/lib/mermaid/diagram-api/diagramAPI.spec.d.ts b/themes/blowfish/assets/lib/mermaid/diagram-api/diagramAPI.spec.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/themes/blowfish/assets/lib/mermaid/diagram-api/diagramAPI.spec.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/themes/blowfish/assets/lib/mermaid/diagram-api/frontmatter.d.ts b/themes/blowfish/assets/lib/mermaid/diagram-api/frontmatter.d.ts new file mode 100644 index 0000000..e62a4ba --- /dev/null +++ b/themes/blowfish/assets/lib/mermaid/diagram-api/frontmatter.d.ts @@ -0,0 +1,18 @@ +import type { MermaidConfig } from '../config.type.js'; +interface FrontMatterMetadata { + title?: string; + displayMode?: string; + config?: MermaidConfig; +} +export interface FrontMatterResult { + text: string; + metadata: FrontMatterMetadata; +} +/** + * Extract and parse frontmatter from text, if present, and sets appropriate + * properties in the provided db. + * @param text - The text that may have a YAML frontmatter. + * @returns text with frontmatter stripped out + */ +export declare function extractFrontMatter(text: string): FrontMatterResult; +export {}; diff --git a/themes/blowfish/assets/lib/mermaid/diagram-api/frontmatter.spec.d.ts b/themes/blowfish/assets/lib/mermaid/diagram-api/frontmatter.spec.d.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/themes/blowfish/assets/lib/mermaid/diagram-api/frontmatter.spec.d.ts @@ -0,0 +1 @@ +export {}; diff --git a/themes/blowfish/assets/lib/mermaid/diagram-api/loadDiagram.d.ts b/themes/blowfish/assets/lib/mermaid/diagram-api/loadDiagram.d.ts new file mode 100644 index 0000000..dc1cd3d --- /dev/null +++ b/themes/blowfish/assets/lib/mermaid/diagram-api/loadDiagram.d.ts @@ -0,0 +1 @@ +export declare const loadRegisteredDiagrams: () => Promise<void>; diff --git a/themes/blowfish/assets/lib/mermaid/diagram-api/regexes.d.ts b/themes/blowfish/assets/lib/mermaid/diagram-api/regexes.d.ts new file mode 100644 index 0000000..5672014 --- /dev/null +++ b/themes/blowfish/assets/lib/mermaid/diagram-api/regexes.d.ts @@ -0,0 +1,3 @@ +export declare const frontMatterRegex: RegExp; +export declare const directiveRegex: RegExp; +export declare const anyCommentRegex: RegExp; diff --git a/themes/blowfish/assets/lib/mermaid/diagram-api/types.d.ts b/themes/blowfish/assets/lib/mermaid/diagram-api/types.d.ts new file mode 100644 index 0000000..437ed2f --- /dev/null +++ b/themes/blowfish/assets/lib/mermaid/diagram-api/types.d.ts @@ -0,0 +1,84 @@ +import type { Diagram } from '../Diagram.js'; +import type { BaseDiagramConfig, MermaidConfig } from '../config.type.js'; +import type * as d3 from 'd3'; +export interface DiagramMetadata { + title?: string; + config?: MermaidConfig; +} +export interface InjectUtils { + _log: any; + _setLogLevel: any; + _getConfig: any; + _sanitizeText: any; + _setupGraphViewbox: any; + _commonDb: any; + /** @deprecated as directives will be pre-processed since https://github.com/mermaid-js/mermaid/pull/4759 */ + _parseDirective: any; +} +/** + * Generic Diagram DB that may apply to any diagram type. + */ +export interface DiagramDB { + getConfig?: () => BaseDiagramConfig | undefined; + clear?: () => void; + setDiagramTitle?: (title: string) => void; + getDiagramTitle?: () => string; + setAccTitle?: (title: string) => void; + getAccTitle?: () => string; + setAccDescription?: (description: string) => void; + getAccDescription?: () => string; + setDisplayMode?: (title: string) => void; + bindFunctions?: (element: Element) => void; +} +export interface DiagramStyleClassDef { + id: string; + styles?: string[]; + textStyles?: string[]; +} +export interface DiagramRenderer { + draw: DrawDefinition; + getClasses?: (text: string, diagram: Pick<DiagramDefinition, 'db'>) => Record<string, DiagramStyleClassDef>; +} +export interface DiagramDefinition { + db: DiagramDB; + renderer: DiagramRenderer; + parser: ParserDefinition; + styles?: any; + init?: (config: MermaidConfig) => void; + injectUtils?: (_log: InjectUtils['_log'], _setLogLevel: InjectUtils['_setLogLevel'], _getConfig: InjectUtils['_getConfig'], _sanitizeText: InjectUtils['_sanitizeText'], _setupGraphViewbox: InjectUtils['_setupGraphViewbox'], _commonDb: InjectUtils['_commonDb'], + /** @deprecated as directives will be pre-processed since https://github.com/mermaid-js/mermaid/pull/4759 */ + _parseDirective: InjectUtils['_parseDirective']) => void; +} +export interface DetectorRecord { + detector: DiagramDetector; + loader?: DiagramLoader; +} +export interface ExternalDiagramDefinition { + id: string; + detector: DiagramDetector; + loader: DiagramLoader; +} +export type DiagramDetector = (text: string, config?: MermaidConfig) => boolean; +export type DiagramLoader = () => Promise<{ + id: string; + diagram: DiagramDefinition; +}>; +/** + * Type for function draws diagram in the tag with id: id based on the graph definition in text. + * + * @param text - The text of the diagram. + * @param id - The id of the diagram which will be used as a DOM element id. + * @param version - MermaidJS version from package.json. + * @param diagramObject - A standard diagram containing the DB and the text and type etc of the diagram. + */ +export type DrawDefinition = (text: string, id: string, version: string, diagramObject: Diagram) => void | Promise<void>; +export interface ParserDefinition { + parse: (text: string) => void; + parser: { + yy: DiagramDB; + }; +} +export type HTML = d3.Selection<HTMLIFrameElement, unknown, Element | null, unknown>; +export type SVG = d3.Selection<SVGSVGElement, unknown, Element | null, unknown>; +export type Group = d3.Selection<SVGGElement, unknown, Element | null, unknown>; +export type DiagramStylesProvider = (options?: any) => string; |