UNPKG

pixi.js

Version:

<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">

1 lines 5.33 kB
{"version":3,"file":"generateTextStyleKey.mjs","sources":["../../../../src/scene/text/utils/generateTextStyleKey.ts"],"sourcesContent":["import { Color } from '../../../color/Color';\nimport { type Filter } from '../../../filters/Filter';\n\nimport type { ConvertedFillStyle, ConvertedStrokeStyle } from '../../graphics/shared/FillTypes';\nimport type { HTMLTextStyle } from '../../text-html/HTMLTextStyle';\nimport type { TextStyle } from '../TextStyle';\n\nconst valuesToIterateForKeys: Partial<keyof TextStyle | keyof HTMLTextStyle>[] = [\n 'align',\n 'breakWords',\n 'cssOverrides',\n 'fontVariant',\n 'fontWeight',\n 'leading',\n 'letterSpacing',\n 'lineHeight',\n 'padding',\n 'textBaseline',\n 'trim',\n 'whiteSpace',\n 'wordWrap',\n 'wordWrapWidth',\n 'fontFamily',\n 'fontStyle',\n 'fontSize',\n] as const;\n\n/**\n * Generates a unique key for the text style.\n * @param style - The style to generate a key for.\n * @returns the key for the style.\n * @internal\n * @deprecated 8.12.0\n */\nexport function generateTextStyleKey(style: TextStyle): string\n{\n const key = [];\n\n let index = 0;\n\n for (let i = 0; i < valuesToIterateForKeys.length; i++)\n {\n const prop = `_${valuesToIterateForKeys[i]}`;\n\n key[index++] = style[prop as keyof typeof style];\n }\n\n index = addFillStyleKey(style._fill, key as string[], index);\n index = addStokeStyleKey(style._stroke, key as string[], index);\n index = addDropShadowKey(style.dropShadow, key as string[], index);\n index = addFiltersKey(style.filters as Filter[], key as string[], index);\n\n return key.join('-');\n}\n\nfunction addFiltersKey(filters: Filter[], key: (number | string)[], index: number)\n{\n if (!filters) return index;\n\n for (const filter of filters)\n {\n key[index++] = filter.uid;\n }\n\n return index;\n}\n\nfunction addFillStyleKey(fillStyle: ConvertedFillStyle, key: (number | string)[], index: number)\n{\n if (!fillStyle) return index;\n\n key[index++] = fillStyle.color;\n key[index++] = fillStyle.alpha;\n key[index++] = fillStyle.fill?.styleKey;\n\n return index;\n}\n\nfunction addStokeStyleKey(strokeStyle: ConvertedStrokeStyle, key: (number | string)[], index: number)\n{\n if (!strokeStyle) return index;\n\n index = addFillStyleKey(strokeStyle, key, index);\n\n key[index++] = strokeStyle.width;\n key[index++] = strokeStyle.alignment;\n key[index++] = strokeStyle.cap;\n key[index++] = strokeStyle.join;\n key[index++] = strokeStyle.miterLimit;\n\n return index;\n}\n\nfunction addDropShadowKey(dropShadow: TextStyle['dropShadow'], key: (number | string)[], index: number)\n{\n if (!dropShadow) return index;\n\n key[index++] = dropShadow.alpha;\n key[index++] = dropShadow.angle;\n key[index++] = dropShadow.blur;\n key[index++] = dropShadow.distance;\n key[index++] = Color.shared.setValue(dropShadow.color).toNumber();\n\n return index;\n}\n"],"names":[],"mappings":"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"}