Files
Panayot Cankov c1aeeb51a7 Inital by-type split
Split type.class from CssTypeSelector to CssCompositeSelector, probably support type#id.class selectors

Apply review comments, refactor css-selectors internally

Applied refactoring, all tests pass, button does not notify changes

Add tests for the css selectors parser.

Added tests for css-selectors

Added basic implementation of mayMatch and changeMap for css match state

Implemented TKUnit.assertDeepEqual to check key and key/values in Map and Set

Watch for property and pseudoClass changes

Add one child group test

Add typings for animations

Added mechanism to enable/disable listeners for pseudo classes

Count listeners instead of checking handlers, reverse subscription and unsubscription
2016-07-18 17:24:09 +03:00

310 lines
8.0 KiB
TypeScript

declare module "ui/styling" {
import observable = require("ui/core/dependency-observable");
import color = require("color");
import view = require("ui/core/view");
/**
* Represents an observable property which can have its value set form CSS style.
*/
export class Property extends observable.Property {
/**
* Creates a new style property.
* @param name Name of the property
* @param cssName The name of property when it is defined in CSS
* @param metadata The property metadata
* @param valueConverter Converter function that will be used to convert the CSS value to the actual property type.
*/
constructor(name: string, cssName: string, metadata: observable.PropertyMetadata, valueConverter?: (value: any) => any);
/**
* Gets the CSS name of the property.
*/
cssName: string;
/**
* Gets the converter function that will be used to convert the CSS value to the actual property type.
*/
valueConverter: (value: any) => any;
}
/**
* Represents as style object containing all the style properties for a particular view.
*/
export class Style extends observable.DependencyObservable {
/**
* Creates new style object.
* @param parentView The view for which the style is created for.
*/
constructor(parentView: view.View);
/**
* Gets or sets the color style property.
*/
color: color.Color;
/**
* Gets or sets the background-color style property.
*/
backgroundColor: color.Color;
/**
* Gets or sets the background-image style property.
*/
backgroundImage: string;
/**
* Gets or sets the background-size style property.
*/
backgroundSize: string;
/**
* Gets or sets the background-position style property.
*/
backgroundPosition: string;
/**
* Gets or sets the background-repeat style property.
*/
backgroundRepeat: string;
/**
* Gets or sets the border-color style property.
*/
borderColor: color.Color
/**
* Gets or sets the border-width style property.
*/
borderWidth: number
/**
* Gets or sets the border-radius style property.
*/
borderRadius: number;
/**
* Gets or sets the clip-path style property.
*/
clipPath: string;
/**
* Gets or sets font-size style property.
*/
fontSize: number;
/**
* Gets or sets z-index style property.
*/
zIndex: number;
/**
* Gets or sets font-family style property.
*/
fontFamily: string;
/**
* Gets or sets font-style style property.
*/
fontStyle: string;
/**
* Gets or sets font-weight style property.
*/
fontWeight: string;
/**
* Gets or sets text-alignment style property.
*/
textAlignment: string;
/**
* Gets or sets min-width style property.
*/
minWidth: number;
/**
* Gets or sets min-height style property.
*/
minHeight: number;
/**
* Gets or sets width style property.
*/
width: number;
/**
* Gets or sets height style property.
*/
height: number;
/**
* Gets or sets margin style property.
*/
margin: string;
/**
* Specifies extra space on the left side of this view.
*/
marginLeft: number;
/**
* Specifies extra space on the top side of this view.
*/
marginTop: number;
/**
* Specifies extra space on the right side of this view.
*/
marginRight: number;
/**
* Specifies extra space on the bottom side of this view.
*/
marginBottom: number;
/**
* Gets or sets padding style property.
*/
padding: string;
/**
* Specify the left padding of this view.
*/
paddingLeft: number;
/**
* Specify the top padding of this view.
*/
paddingTop: number;
/**
* Specify the right padding of this view.
*/
paddingRight: number;
/**
* Specify the bottom padding of this view.
*/
paddingBottom: number;
/**
* Gets or sets horizontal-alignment style property.
*/
horizontalAlignment: string;
/**
* Gets or sets vertical-alignment style property.
*/
verticalAlignment: string;
/**
* Gets or sets the visibility style property.
*/
visibility: string;
/**
* Gets or sets the opacity style property.
*/
opacity: number;
textDecoration: string;
textTransform: string;
whiteSpace: string;
letterSpacing: number;
//@private
public _beginUpdate();
public _endUpdate();
public _resetCssValues(): void;
public _syncNativeProperties(): void;
// public _inheritStyleProperty(property: dependencyObservable.Property): void;
public _inheritStyleProperties(parent: view.View): void;
public _updateTextDecoration(): void;
public _updateTextTransform(): void;
//@endprivate
}
/**
* Encapsulates the style properties definitions and utility methods.
*/
module properties {
/**
* The font-size property definition.
*/
export var fontSizeProperty: Property;
/**
* The color property definition.
*/
export var colorProperty: Property;
/**
* The background-color property definition.
*/
export var backgroundColorProperty: Property;
/**
* The text-alignment property definition.
*/
export var textAlignmentProperty: Property;
/**
* Gets style Property by its name.
* @param The name.
*/
export function getPropertyByName(name: string): Property;
/**
* Gets style Property by its CSS name.
* @param The CSS name.
*/
export function getPropertyByCssName(name: string): Property;
/**
* Executes a callback for all defined style properties.
* @param The callback.
*/
export function eachProperty(callback: (property: Property) => void);
/**
* Executes a callback for all defined inheritable style properties.
* @param The callback.
*/
export function eachInheritableProperty(callback: (property: Property) => void);
}
/**
* Encapsulates CSS converter methods.
*/
module converters {
/**
* CSS color converter function.
* @param cssValue The css value.
*/
export function colorConverter(cssValue: any): color.Color;
/**
* CSS font-size converter function.
* @param cssValue The css value.
*/
export function fontSizeConverter(cssValue: any): number;
/**
* CSS text-align converter function.
* @param cssValue The css value.
*/
export function textAlignConverter(cssValue: any): string;
/**
* CSS number converter function.
* @param cssValue The css value.
*/
export function numberConverter(cssValue: any): number;
/**
* CSS visibility converter function.
* @param cssValue The css value.
*/
export function visibilityConverter(cssValue: any): number;
}
}