mirror of
				https://github.com/NativeScript/NativeScript.git
				synced 2025-11-04 12:58:38 +08:00 
			
		
		
		
	chore: cleanup font-variation-settings
This commit is contained in:
		@ -1,4 +1,4 @@
 | 
			
		||||
import { Font as FontDefinition, FontVariationSettings as FontVariationSettingsType } from './font';
 | 
			
		||||
import { Font as FontDefinition, FontVariationSettingsType } from './font';
 | 
			
		||||
import { ParsedFont } from './font-interfaces';
 | 
			
		||||
import { makeValidator, makeParser } from '../core/properties';
 | 
			
		||||
 | 
			
		||||
@ -19,7 +19,7 @@ export abstract class Font implements FontDefinition {
 | 
			
		||||
		return this.fontWeight === FontWeight.SEMI_BOLD || this.fontWeight === FontWeight.BOLD || this.fontWeight === '700' || this.fontWeight === FontWeight.EXTRA_BOLD || this.fontWeight === FontWeight.BLACK;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	protected constructor(public readonly fontFamily: string, public readonly fontSize: number, fontStyle?: FontStyleType, fontWeight?: FontWeightType, fontScale?: number, public readonly fontVariationSettings?: FontVariationSettingsType[]) {
 | 
			
		||||
	protected constructor(public readonly fontFamily: string, public readonly fontSize: number, fontStyle?: FontStyleType, fontWeight?: FontWeightType, fontScale?: number, public readonly fontVariationSettings?: Array<FontVariationSettingsType>) {
 | 
			
		||||
		this.fontStyle = fontStyle ?? FontStyle.NORMAL;
 | 
			
		||||
		this.fontWeight = fontWeight ?? FontWeight.NORMAL;
 | 
			
		||||
		this.fontScale = fontScale ?? 1;
 | 
			
		||||
@ -32,7 +32,7 @@ export abstract class Font implements FontDefinition {
 | 
			
		||||
	public abstract withFontWeight(weight: FontWeightType): Font;
 | 
			
		||||
	public abstract withFontSize(size: number): Font;
 | 
			
		||||
	public abstract withFontScale(scale: number): Font;
 | 
			
		||||
	public abstract withFontVariationSettings(variationSettings: FontVariationSettingsType[] | null): Font;
 | 
			
		||||
	public abstract withFontVariationSettings(variationSettings: Array<FontVariationSettingsType> | null): Font;
 | 
			
		||||
 | 
			
		||||
	public static equals(value1: Font, value2: Font): boolean {
 | 
			
		||||
		// both values are falsy
 | 
			
		||||
@ -74,7 +74,7 @@ export namespace FontWeight {
 | 
			
		||||
 | 
			
		||||
// eslint-disable-next-line @typescript-eslint/no-namespace
 | 
			
		||||
export namespace FontVariationSettings {
 | 
			
		||||
	export function parse(fontVariationSettings: string): FontVariationSettingsType[] | null {
 | 
			
		||||
	export function parse(fontVariationSettings: string): Array<FontVariationSettingsType> | null {
 | 
			
		||||
		const allowedValues = ['normal', 'inherit', 'initial', 'revert', 'revert-layer', 'unset'];
 | 
			
		||||
		const lower = fontVariationSettings?.toLowerCase().trim();
 | 
			
		||||
		if (allowedValues.indexOf(lower) !== -1) {
 | 
			
		||||
@ -83,7 +83,7 @@ export namespace FontVariationSettings {
 | 
			
		||||
 | 
			
		||||
		const chunks = lower.split(',');
 | 
			
		||||
		if (chunks.length) {
 | 
			
		||||
			const parsed: FontVariationSettingsType[] = [];
 | 
			
		||||
			const parsed: Array<FontVariationSettingsType> = [];
 | 
			
		||||
			for (const chunk of chunks) {
 | 
			
		||||
				const axisChunks = chunk.trim();
 | 
			
		||||
				if (axisChunks.length === 2) {
 | 
			
		||||
@ -94,17 +94,17 @@ export namespace FontVariationSettings {
 | 
			
		||||
					if (!isNaN(axisValue) && axisName.length === 6 && ((axisName.startsWith("'") && axisName.endsWith("'")) || (axisName.startsWith('"') && axisName.endsWith('"')))) {
 | 
			
		||||
						parsed.push({ axis: axisName, value: axisValue });
 | 
			
		||||
					} else {
 | 
			
		||||
						throw new Error('Invalid value (font-variation-settings): ' + fontVariationSettings);
 | 
			
		||||
						console.error('Invalid value (font-variation-settings): ' + fontVariationSettings);
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
					throw new Error('Invalid value (font-variation-settings): ' + fontVariationSettings);
 | 
			
		||||
					console.error('Invalid value (font-variation-settings): ' + fontVariationSettings);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			return parsed;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		throw new Error('Invalid value (font-variation-settings): ' + fontVariationSettings);
 | 
			
		||||
		console.error('Invalid value (font-variation-settings): ' + fontVariationSettings);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	export function toString(fontVariationSettings: FontVariationSettingsType[] | null): string | null {
 | 
			
		||||
 | 
			
		||||
@ -1,9 +1,7 @@
 | 
			
		||||
import { Font as FontBase, parseFontFamily, genericFontFamilies, FontStyleType, FontWeight, FontWeightType, FontVariationSettingsType, FontVariationSettings } from './font-common';
 | 
			
		||||
import { Trace } from '../../trace';
 | 
			
		||||
import { SDK_VERSION } from '../../utils';
 | 
			
		||||
import * as application from '../../application';
 | 
			
		||||
import * as fs from '../../file-system';
 | 
			
		||||
import { Trace } from '../../trace';
 | 
			
		||||
import { ad } from '../../utils';
 | 
			
		||||
 | 
			
		||||
export * from './font-common';
 | 
			
		||||
@ -17,7 +15,7 @@ export class Font extends FontBase {
 | 
			
		||||
 | 
			
		||||
	private _typeface: android.graphics.Typeface;
 | 
			
		||||
 | 
			
		||||
	constructor(family: string, size: number, style?: FontStyleType, weight?: FontWeightType, fontVariationSettings?: FontVariationSettingsType[]) {
 | 
			
		||||
	constructor(family: string, size: number, style?: FontStyleType, weight?: FontWeightType, fontVariationSettings?: Array<FontVariationSettingsType>) {
 | 
			
		||||
		super(family, size, style, weight, 1, fontVariationSettings);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -41,7 +39,7 @@ export class Font extends FontBase {
 | 
			
		||||
		return new Font(this.fontFamily, this.fontSize, this.fontStyle, this.fontWeight, this.fontVariationSettings);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public withFontVariationSettings(variationSettings: FontVariationSettingsType[] | null): Font {
 | 
			
		||||
	public withFontVariationSettings(variationSettings: Array<FontVariationSettingsType> | null): Font {
 | 
			
		||||
		return new Font(this.fontFamily, this.fontSize, this.fontStyle, this.fontWeight, variationSettings);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10
									
								
								packages/core/ui/styling/font.d.ts
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										10
									
								
								packages/core/ui/styling/font.d.ts
									
									
									
									
										vendored
									
									
								
							@ -49,14 +49,14 @@ export namespace FontWeight {
 | 
			
		||||
	export function parse(value: string): FontWeightType;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface FontVariationSettings {
 | 
			
		||||
export type FontVariationSettingsType = {
 | 
			
		||||
	axis: string;
 | 
			
		||||
	value: number;
 | 
			
		||||
}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
export namespace FontVariationSettings {
 | 
			
		||||
	export function parse(fontVariationSettings: string): FontVariationSettings[] | null;
 | 
			
		||||
	export function toString(fontVariationSettings: FontVariationSettings[] | null): string | null;
 | 
			
		||||
	export function parse(fontVariationSettings: string): Array<FontVariationSettingsType> | null;
 | 
			
		||||
	export function toString(fontVariationSettings: Array<FontVariationSettingsType> | null): string | null;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export interface ParsedFont {
 | 
			
		||||
@ -66,7 +66,7 @@ export interface ParsedFont {
 | 
			
		||||
	lineHeight?: string;
 | 
			
		||||
	fontSize?: string;
 | 
			
		||||
	fontFamily?: string;
 | 
			
		||||
	fontVariationSettings?: FontVariationSettings[];
 | 
			
		||||
	fontVariationSettings?: Array<FontVariationSettingsType>;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function parseFont(fontValue: string): ParsedFont;
 | 
			
		||||
 | 
			
		||||
@ -1,4 +1,4 @@
 | 
			
		||||
import { Font as FontBase, parseFontFamily, FontWeight, FontStyleType, FontWeightType, FontVariationSettingsType, FontVariationSettings } from './font-common';
 | 
			
		||||
import { Font as FontBase, parseFontFamily, FontWeight, FontStyleType, FontWeightType, FontVariationSettingsType, FontVariationSettings, fuzzySearch } from './font-common';
 | 
			
		||||
import { Trace } from '../../trace';
 | 
			
		||||
import * as fs from '../../file-system';
 | 
			
		||||
export * from './font-common';
 | 
			
		||||
@ -7,7 +7,7 @@ interface FontDescriptor {
 | 
			
		||||
	fontFamily: string[];
 | 
			
		||||
	fontSize: number;
 | 
			
		||||
	fontWeight: number;
 | 
			
		||||
	fontVariationSettings: FontVariationSettingsType[] | null;
 | 
			
		||||
	fontVariationSettings: Array<FontVariationSettingsType> | null;
 | 
			
		||||
	isBold: boolean;
 | 
			
		||||
	isItalic: boolean;
 | 
			
		||||
}
 | 
			
		||||
@ -59,7 +59,7 @@ function getUIFontCached(fontDescriptor: FontDescriptor) {
 | 
			
		||||
export class Font extends FontBase {
 | 
			
		||||
	public static default = new Font(undefined, undefined);
 | 
			
		||||
 | 
			
		||||
	constructor(family: string, size: number, style?: FontStyleType, weight?: FontWeightType, scale?: number, variationSettings?: FontVariationSettingsType[]) {
 | 
			
		||||
	constructor(family: string, size: number, style?: FontStyleType, weight?: FontWeightType, scale?: number, variationSettings?: Array<FontVariationSettingsType>) {
 | 
			
		||||
		super(family, size, style, weight, scale, variationSettings);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -83,7 +83,7 @@ export class Font extends FontBase {
 | 
			
		||||
		return new Font(this.fontFamily, this.fontSize, this.fontStyle, this.fontWeight, scale, this.fontVariationSettings);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public withFontVariationSettings(variationSettings: FontVariationSettingsType[] | null): Font {
 | 
			
		||||
	public withFontVariationSettings(variationSettings: Array<FontVariationSettingsType> | null): Font {
 | 
			
		||||
		return new Font(this.fontFamily, this.fontSize, this.fontStyle, this.fontWeight, this.fontScale, variationSettings);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@ -4,7 +4,7 @@ import { Style } from '../styling/style';
 | 
			
		||||
import { Transformation, TransformationValue, TransformFunctionsInfo } from '../animation';
 | 
			
		||||
 | 
			
		||||
import { Color } from '../../color';
 | 
			
		||||
import { Font, parseFont, FontStyle, FontWeight, FontVariationSettings } from '../../ui/styling/font';
 | 
			
		||||
import { Font, parseFont, FontStyle, FontWeight, FontVariationSettings, FontVariationSettingsType } from '../../ui/styling/font';
 | 
			
		||||
import { layout, hasDuplicates } from '../../utils';
 | 
			
		||||
import { Background } from '../../ui/styling/background';
 | 
			
		||||
 | 
			
		||||
@ -1424,7 +1424,7 @@ const fontProperty = new ShorthandProperty<Style, string>({
 | 
			
		||||
});
 | 
			
		||||
fontProperty.register(Style);
 | 
			
		||||
 | 
			
		||||
export const fontVariationSettingsProperty = new InheritedCssProperty<Style, FontVariationSettings[] | null>({
 | 
			
		||||
export const fontVariationSettingsProperty = new InheritedCssProperty<Style, Array<FontVariationSettingsType> | null>({
 | 
			
		||||
	name: 'fontVariationSettings',
 | 
			
		||||
	cssName: 'font-variation-settings',
 | 
			
		||||
	affectsLayout: global.isIOS,
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user