Files
nothoughts/node_modules/pixi.js/lib/scene/text-html/HtmlTextStyle.mjs.map
2025-08-04 18:57:35 +02:00

1 line
8.3 KiB
Plaintext

{"version":3,"file":"HtmlTextStyle.mjs","sources":["../../../src/scene/text-html/HtmlTextStyle.ts"],"sourcesContent":["/* eslint-disable accessor-pairs */\nimport { warn } from '../../utils/logging/warn';\nimport { TextStyle } from '../text/TextStyle';\nimport { generateTextStyleKey } from '../text/utils/generateTextStyleKey';\nimport { textStyleToCSS } from './utils/textStyleToCSS';\n\nimport type { FillInput, StrokeInput } from '../graphics/shared/FillTypes';\nimport type { TextStyleOptions } from '../text/TextStyle';\n\n/**\n * Options for HTML text style, extends {@link TextStyle}.\n * @memberof text\n * @extends text.TextStyleOptions\n * @property {string[]} [cssOverrides] - CSS style(s) to add.\n * @property {Record<string, text.HTMLTextStyleOptions>} [tagStyles] - Tag styles.\n */\nexport interface HTMLTextStyleOptions extends Omit<TextStyleOptions, 'leading' | 'textBaseline' | 'trim' >\n{\n cssOverrides?: string[];\n tagStyles?: Record<string, HTMLTextStyleOptions>;\n}\n\n/**\n * A TextStyle object rendered by the HTMLTextSystem.\n * @memberof text\n */\nexport class HTMLTextStyle extends TextStyle\n{\n private _cssOverrides: string[] = [];\n private _cssStyle: string;\n /**\n * List of styles per tag.\n * @example\n * new HTMLText({\n * text:'<red>Red</red>,<blue>Blue</blue>,<green>Green</green>',\n * style:{\n * fontFamily: 'DM Sans',\n * fill: 'white',\n * fontSize:100,\n * tagStyles:{\n * red:{\n * fill:'red',\n * },\n * blue:{\n * fill:'blue',\n * },\n * green:{\n * fill:'green',\n * }\n * }\n * }\n * );\n */\n public tagStyles: Record<string, HTMLTextStyleOptions>;\n\n constructor(options: HTMLTextStyleOptions = {})\n {\n super(options);\n\n this.cssOverrides ??= options.cssOverrides;\n this.tagStyles = options.tagStyles ?? {};\n }\n\n /** List of style overrides that will be applied to the HTML text. */\n set cssOverrides(value: string | string[])\n {\n this._cssOverrides = value instanceof Array ? value : [value];\n this.update();\n }\n\n get cssOverrides(): string[]\n {\n return this._cssOverrides;\n }\n\n protected override _generateKey(): string\n {\n this._styleKey = generateTextStyleKey(this) + this._cssOverrides.join('-');\n\n return this._styleKey;\n }\n\n public update()\n {\n this._cssStyle = null;\n super.update();\n }\n\n /**\n * Creates a new HTMLTextStyle object with the same values as this one.\n * @returns New cloned HTMLTextStyle object\n */\n public clone(): HTMLTextStyle\n {\n return new HTMLTextStyle({\n align: this.align,\n breakWords: this.breakWords,\n dropShadow: this.dropShadow ? { ...this.dropShadow } : null,\n fill: this._fill,\n fontFamily: this.fontFamily,\n fontSize: this.fontSize,\n fontStyle: this.fontStyle,\n fontVariant: this.fontVariant,\n fontWeight: this.fontWeight,\n letterSpacing: this.letterSpacing,\n lineHeight: this.lineHeight,\n padding: this.padding,\n stroke: this._stroke,\n whiteSpace: this.whiteSpace,\n wordWrap: this.wordWrap,\n wordWrapWidth: this.wordWrapWidth,\n cssOverrides: this.cssOverrides,\n });\n }\n\n get cssStyle(): string\n {\n if (!this._cssStyle)\n {\n this._cssStyle = textStyleToCSS(this);\n }\n\n return this._cssStyle;\n }\n\n /**\n * Add a style override, this can be any CSS property\n * it will override any built-in style. This is the\n * property and the value as a string (e.g., `color: red`).\n * This will override any other internal style.\n * @param {string} value - CSS style(s) to add.\n * @example\n * style.addOverride('background-color: red');\n */\n public addOverride(...value: string[]): void\n {\n const toAdd = value.filter((v) => !this.cssOverrides.includes(v));\n\n if (toAdd.length > 0)\n {\n this.cssOverrides.push(...toAdd);\n this.update();\n }\n }\n\n /**\n * Remove any overrides that match the value.\n * @param {string} value - CSS style to remove.\n * @example\n * style.removeOverride('background-color: red');\n */\n public removeOverride(...value: string[]): void\n {\n const toRemove = value.filter((v) => this.cssOverrides.includes(v));\n\n if (toRemove.length > 0)\n {\n this.cssOverrides = this.cssOverrides.filter((v) => !toRemove.includes(v));\n this.update();\n }\n }\n\n override set fill(value: FillInput)\n {\n // if its not a string or a number, then its a texture!\n if (typeof value !== 'string' && typeof value !== 'number')\n {\n // #if _DEBUG\n warn('[HTMLTextStyle] only color fill is not supported by HTMLText');\n // #endif\n }\n\n super.fill = value;\n }\n\n override set stroke(value: StrokeInput)\n {\n // if its not a string or a number, then its a texture!\n if (value && typeof value !== 'string' && typeof value !== 'number')\n {\n // #if _DEBUG\n warn('[HTMLTextStyle] only color stroke is not supported by HTMLText');\n // #endif\n }\n\n super.stroke = value;\n }\n}\n"],"names":[],"mappings":"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"}