@nativescript/core
Version:
A JavaScript library providing an easy to use api for interacting with iOS and Android platform APIs.
109 lines (108 loc) • 4.74 kB
TypeScript
import { Color } from '../color';
export type Parsed<V> = {
start: number;
end: number;
value: V;
};
export type URL = string;
export type Angle = number;
export interface Unit<T> {
value: number;
unit: string;
}
export type Length = Unit<'px' | 'dip'>;
export type Percentage = Unit<'%'>;
export type LengthPercentage = Length | Percentage;
export type Keyword = string;
export interface ColorStop {
color: Color;
offset?: LengthPercentage;
}
export interface LinearGradient {
angle: number;
colors: ColorStop[];
}
export interface Background {
readonly color?: number | Color;
readonly image?: URL | LinearGradient;
readonly repeat?: BackgroundRepeat;
readonly position?: BackgroundPosition;
readonly size?: BackgroundSize;
}
export type BackgroundRepeat = 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';
export type BackgroundSize = 'auto' | 'cover' | 'contain' | {
x: LengthPercentage;
y: 'auto' | LengthPercentage;
};
export type HorizontalAlign = 'left' | 'center' | 'right';
export type VerticalAlign = 'top' | 'center' | 'bottom';
export interface HorizontalAlignWithOffset {
readonly align: 'left' | 'right';
readonly offset: LengthPercentage;
}
export interface VerticalAlignWithOffset {
readonly align: 'top' | 'bottom';
readonly offset: LengthPercentage;
}
export interface BackgroundPosition {
readonly x: HorizontalAlign | HorizontalAlignWithOffset;
readonly y: VerticalAlign | VerticalAlignWithOffset;
text?: string;
}
export declare function parseURL(text: string, start?: number): Parsed<URL>;
export declare function parseHexColor(text: string, start?: number): Parsed<Color>;
export declare function parseCssColor(text: string, start?: number): Parsed<Color>;
export declare function convertHSLToRGBColor(hue: number, saturation: number, lightness: number): {
r: number;
g: number;
b: number;
};
export declare function parseColorKeyword(value: any, start: number, keyword?: Parsed<string>): Parsed<Color>;
export declare function parseColor(value: string, start?: number, keyword?: Parsed<string>): Parsed<Color>;
export declare function parseRepeat(value: string, start?: number, keyword?: Parsed<string>): Parsed<BackgroundRepeat>;
export declare function parseUnit(text: string, start?: number): Parsed<Unit<string>>;
export declare function parsePercentageOrLength(text: string, start?: number): Parsed<LengthPercentage>;
export declare function parseAngle(value: string, start?: number): Parsed<Angle>;
export declare function parseBackgroundSize(value: string, start?: number, keyword?: Parsed<string>): Parsed<BackgroundSize>;
export declare function parseBackgroundPosition(text: string, start?: number, keyword?: Parsed<string>): Parsed<BackgroundPosition>;
export declare function parseColorStop(text: string, start?: number): Parsed<ColorStop>;
export declare function parseLinearGradient(text: string, start?: number): Parsed<LinearGradient>;
export declare function parseBackground(text: string, start?: number): Parsed<Background>;
export type Combinator = '+' | '~' | '>' | ' ';
export interface UniversalSelector {
type: '*';
}
export interface TypeSelector {
type: '';
identifier: string;
}
export interface ClassSelector {
type: '.';
identifier: string;
}
export interface IdSelector {
type: '#';
identifier: string;
}
export interface PseudoClassSelector {
type: ':';
identifier: string;
}
export type AttributeSelectorTest = '=' | '^=' | '$=' | '*=' | '~=' | '|=';
export interface AttributeSelector {
type: '[]';
property: string;
test?: AttributeSelectorTest;
value?: string;
}
export type SimpleSelector = UniversalSelector | TypeSelector | ClassSelector | IdSelector | PseudoClassSelector | AttributeSelector;
export type SimpleSelectorSequence = SimpleSelector[];
export type SelectorCombinatorPair = [SimpleSelectorSequence, Combinator];
export type Selector = SelectorCombinatorPair[];
export declare function parseUniversalSelector(text: string, start?: number): Parsed<UniversalSelector>;
export declare function parseSimpleIdentifierSelector(text: string, start?: number): Parsed<TypeSelector | ClassSelector | IdSelector | PseudoClassSelector>;
export declare function parseAttributeSelector(text: string, start: number): Parsed<AttributeSelector>;
export declare function parseSimpleSelector(text: string, start?: number): Parsed<SimpleSelector>;
export declare function parseSimpleSelectorSequence(text: string, start: number): Parsed<SimpleSelector[]>;
export declare function parseCombinator(text: string, start?: number): Parsed<Combinator>;
export declare function parseSelector(text: string, start?: number): Parsed<Selector>;