summaryrefslogtreecommitdiff
path: root/themes/blowfish/assets/lib/mermaid/utils.d.ts
diff options
context:
space:
mode:
authorChristoph Cullmann <cullmann@kde.org>2024-04-28 17:33:09 +0200
committerChristoph Cullmann <cullmann@kde.org>2024-04-28 17:33:09 +0200
commite77051ccc4b47951bfa4fde2be436b1bb2fb113b (patch)
treef0b75ee3521da9c8cd39dac4359212348f70e4e8 /themes/blowfish/assets/lib/mermaid/utils.d.ts
parent4b355837824ac2422d371acef790f0f4249255c7 (diff)
use https://github.com/nunocoracao/blowfish.git
Diffstat (limited to 'themes/blowfish/assets/lib/mermaid/utils.d.ts')
-rw-r--r--themes/blowfish/assets/lib/mermaid/utils.d.ts286
1 files changed, 286 insertions, 0 deletions
diff --git a/themes/blowfish/assets/lib/mermaid/utils.d.ts b/themes/blowfish/assets/lib/mermaid/utils.d.ts
new file mode 100644
index 0000000..25fbbb0
--- /dev/null
+++ b/themes/blowfish/assets/lib/mermaid/utils.d.ts
@@ -0,0 +1,286 @@
+import type { CurveFactory } from 'd3';
+import type { MermaidConfig } from './config.type.js';
+import type { D3Element } from './mermaidAPI.js';
+import type { Point, TextDimensionConfig, TextDimensions } from './types.js';
+export declare const ZERO_WIDTH_SPACE = "\u200B";
+/**
+ * Detects the init config object from the text
+ *
+ * @param text - The text defining the graph. For example:
+ *
+ * ```mermaid
+ * %%{init: {"theme": "debug", "logLevel": 1 }}%%
+ * graph LR
+ * a-->b
+ * b-->c
+ * c-->d
+ * d-->e
+ * e-->f
+ * f-->g
+ * g-->h
+ * ```
+ *
+ * Or
+ *
+ * ```mermaid
+ * %%{initialize: {"theme": "dark", logLevel: "debug" }}%%
+ * graph LR
+ * a-->b
+ * b-->c
+ * c-->d
+ * d-->e
+ * e-->f
+ * f-->g
+ * g-->h
+ * ```
+ *
+ * @param config - Optional mermaid configuration object.
+ * @returns The json object representing the init passed to mermaid.initialize()
+ */
+export declare const detectInit: (text: string, config?: MermaidConfig) => MermaidConfig | undefined;
+interface Directive {
+ type?: string;
+ args?: unknown;
+}
+/**
+ * Detects the directive from the text.
+ *
+ * Text can be single line or multiline. If type is null or omitted,
+ * the first directive encountered in text will be returned
+ *
+ * ```mermaid
+ * graph LR
+ * %%{someDirective}%%
+ * a-->b
+ * b-->c
+ * c-->d
+ * d-->e
+ * e-->f
+ * f-->g
+ * g-->h
+ * ```
+ *
+ * @param text - The text defining the graph
+ * @param type - The directive to return (default: `null`)
+ * @returns An object or Array representing the directive(s) matched by the input type.
+ * If a single directive was found, that directive object will be returned.
+ */
+export declare const detectDirective: (text: string, type?: string | RegExp | null) => Directive | Directive[];
+export declare const removeDirectives: (text: string) => string;
+/**
+ * Detects whether a substring in present in a given array
+ *
+ * @param str - The substring to detect
+ * @param arr - The array to search
+ * @returns The array index containing the substring or -1 if not present
+ */
+export declare const isSubstringInArray: (str: string, arr: string[]) => number;
+/**
+ * Returns a d3 curve given a curve name
+ *
+ * @param interpolate - The interpolation name
+ * @param defaultCurve - The default curve to return
+ * @returns The curve factory to use
+ */
+export declare function interpolateToCurve(interpolate: string | undefined, defaultCurve: CurveFactory): CurveFactory;
+/**
+ * Formats a URL string
+ *
+ * @param linkStr - String of the URL
+ * @param config - Configuration passed to MermaidJS
+ * @returns The formatted URL or `undefined`.
+ */
+export declare function formatUrl(linkStr: string, config: MermaidConfig): string | undefined;
+/**
+ * Runs a function
+ *
+ * @param functionName - A dot separated path to the function relative to the `window`
+ * @param params - Parameters to pass to the function
+ */
+export declare const runFunc: (functionName: string, ...params: unknown[]) => void;
+/**
+ * {@inheritdoc traverseEdge}
+ */
+declare function calcLabelPosition(points: Point[]): Point;
+export declare const roundNumber: (num: number, precision?: number) => number;
+export declare const calculatePoint: (points: Point[], distanceToTraverse: number) => Point;
+/**
+ * Calculates the terminal label position.
+ *
+ * @param terminalMarkerSize - Terminal marker size.
+ * @param position - Position of label relative to points.
+ * @param _points - Array of points.
+ * @returns - The `cardinalityPosition`.
+ */
+declare function calcTerminalLabelPosition(terminalMarkerSize: number, position: 'start_left' | 'start_right' | 'end_left' | 'end_right', _points: Point[]): Point;
+/**
+ * Gets styles from an array of declarations
+ *
+ * @param arr - Declarations
+ * @returns The styles grouped as strings
+ */
+export declare function getStylesFromArray(arr: string[]): {
+ style: string;
+ labelStyle: string;
+};
+export declare const generateId: () => string;
+export declare const random: (options: {
+ length: number;
+}) => string;
+export declare const getTextObj: () => {
+ x: number;
+ y: number;
+ fill: undefined;
+ anchor: string;
+ style: string;
+ width: number;
+ height: number;
+ textMargin: number;
+ rx: number;
+ ry: number;
+ valign: undefined;
+ text: string;
+};
+/**
+ * Adds text to an element
+ *
+ * @param elem - SVG Element to add text to
+ * @param textData - Text options.
+ * @returns Text element with given styling and content
+ */
+export declare const drawSimpleText: (elem: SVGElement, textData: {
+ text: string;
+ x: number;
+ y: number;
+ anchor: 'start' | 'middle' | 'end';
+ fontFamily: string;
+ fontSize: string | number;
+ fontWeight: string | number;
+ fill: string;
+ class: string | undefined;
+ textMargin: number;
+}) => SVGTextElement;
+interface WrapLabelConfig {
+ fontSize: number;
+ fontFamily: string;
+ fontWeight: number;
+ joinWith: string;
+}
+export declare const wrapLabel: (label: string, maxWidth: number, config: WrapLabelConfig) => string;
+/**
+ * This calculates the text's height, taking into account the wrap breaks and both the statically
+ * configured height, width, and the length of the text (in pixels).
+ *
+ * If the wrapped text text has greater height, we extend the height, so it's value won't overflow.
+ *
+ * @param text - The text to measure
+ * @param config - The config for fontSize, fontFamily, and fontWeight all impacting the
+ * resulting size
+ * @returns The height for the given text
+ */
+export declare function calculateTextHeight(text: Parameters<typeof calculateTextDimensions>[0], config: Parameters<typeof calculateTextDimensions>[1]): ReturnType<typeof calculateTextDimensions>['height'];
+/**
+ * This calculates the width of the given text, font size and family.
+ *
+ * @param text - The text to calculate the width of
+ * @param config - The config for fontSize, fontFamily, and fontWeight all impacting the
+ * resulting size
+ * @returns The width for the given text
+ */
+export declare function calculateTextWidth(text: Parameters<typeof calculateTextDimensions>[0], config: Parameters<typeof calculateTextDimensions>[1]): ReturnType<typeof calculateTextDimensions>['width'];
+/**
+ * This calculates the dimensions of the given text, font size, font family, font weight, and
+ * margins.
+ *
+ * @param text - The text to calculate the width of
+ * @param config - The config for fontSize, fontFamily, fontWeight, and margin all impacting
+ * the resulting size
+ * @returns The dimensions for the given text
+ */
+export declare const calculateTextDimensions: (text: string, config: TextDimensionConfig) => TextDimensions;
+export declare class InitIDGenerator {
+ private count;
+ next: () => number;
+ constructor(deterministic?: boolean, seed?: string);
+}
+/**
+ * Decodes HTML, source: {@link https://github.com/shrpne/entity-decode/blob/v2.0.1/browser.js}
+ *
+ * @param html - HTML as a string
+ * @returns Unescaped HTML
+ */
+export declare const entityDecode: (html: string) => string;
+export interface DetailedError {
+ str: string;
+ hash: any;
+ error?: any;
+ message?: string;
+}
+/** @param error - The error to check */
+export declare function isDetailedError(error: any): error is DetailedError;
+/** @param error - The error to convert to an error message */
+export declare function getErrorMessage(error: unknown): string;
+/**
+ * Appends <text> element with the given title and css class.
+ *
+ * @param parent - d3 svg object to append title to
+ * @param cssClass - CSS class for the <text> element containing the title
+ * @param titleTopMargin - Margin in pixels between title and rest of the graph
+ * @param title - The title. If empty, returns immediately.
+ */
+export declare const insertTitle: (parent: D3Element, cssClass: string, titleTopMargin: number, title?: string) => void;
+/**
+ * Parses a raw fontSize configuration value into a number and string value.
+ *
+ * @param fontSize - a string or number font size configuration value
+ *
+ * @returns parsed number and string style font size values, or nulls if a number value can't
+ * be parsed from an input string.
+ */
+export declare const parseFontSize: (fontSize: string | number | undefined) => [number?, string?];
+export declare function cleanAndMerge<T>(defaultData: T, data?: Partial<T>): T;
+declare const _default: {
+ assignWithDepth: (dst: any, src: any, { depth, clobber }?: {
+ depth?: number | undefined;
+ clobber?: boolean | undefined;
+ }) => any;
+ wrapLabel: (label: string, maxWidth: number, config: WrapLabelConfig) => string;
+ calculateTextHeight: typeof calculateTextHeight;
+ calculateTextWidth: typeof calculateTextWidth;
+ calculateTextDimensions: (text: string, config: TextDimensionConfig) => TextDimensions;
+ cleanAndMerge: typeof cleanAndMerge;
+ detectInit: (text: string, config?: MermaidConfig | undefined) => MermaidConfig | undefined;
+ detectDirective: (text: string, type?: string | RegExp | null) => Directive | Directive[];
+ isSubstringInArray: (str: string, arr: string[]) => number;
+ interpolateToCurve: typeof interpolateToCurve;
+ calcLabelPosition: typeof calcLabelPosition;
+ calcCardinalityPosition: (isRelationTypePresent: boolean, points: Point[], initialPosition: Point) => {
+ x: number;
+ y: number;
+ };
+ calcTerminalLabelPosition: typeof calcTerminalLabelPosition;
+ formatUrl: typeof formatUrl;
+ getStylesFromArray: typeof getStylesFromArray;
+ generateId: () => string;
+ random: (options: {
+ length: number;
+ }) => string;
+ runFunc: (functionName: string, ...params: unknown[]) => void;
+ entityDecode: (html: string) => string;
+ insertTitle: (parent: any, cssClass: string, titleTopMargin: number, title?: string | undefined) => void;
+ parseFontSize: (fontSize: string | number | undefined) => [(number | undefined)?, (string | undefined)?];
+ InitIDGenerator: typeof InitIDGenerator;
+};
+export default _default;
+/**
+ * @param text - text to be encoded
+ * @returns
+ */
+export declare const encodeEntities: (text: string) => string;
+/**
+ *
+ * @param text - text to be decoded
+ * @returns
+ */
+export declare const decodeEntities: (text: string) => string;
+export declare const isString: (value: unknown) => value is string;