/** * @module "ui/core/properties" */ /** */ import { ViewBase } from "../view-base"; import { Style } from "../../styling/style"; export { Style }; /** * Value specifing that Property should be set to its initial value. */ export const unsetValue: any; export interface PropertyOptions { readonly name: string; readonly defaultValue?: U; readonly affectsLayout?: boolean; readonly equalityComparer?: (x: U, y: U) => boolean; readonly valueChanged?: (target: T, oldValue: U, newValue: U) => void; readonly valueConverter?: (value: string) => U; } export interface CoerciblePropertyOptions extends PropertyOptions { readonly coerceValue: (t: T, u: U) => U; } export interface CssPropertyOptions extends PropertyOptions { readonly cssName: string; } export interface ShorthandPropertyOptions

{ readonly name: string, readonly cssName: string; readonly converter: (value: string | P) => [CssProperty | CssAnimationProperty, any][], readonly getter: (this: Style) => string | P } export interface CssAnimationPropertyOptions { readonly name: string; readonly cssName?: string; readonly defaultValue?: U; readonly equalityComparer?: (x: U, y: U) => boolean; readonly valueChanged?: (target: T, oldValue: U, newValue: U) => void; readonly valueConverter?: (value: string) => U; } export class Property { constructor(options: PropertyOptions); public readonly getDefault: symbol; public readonly setNative: symbol; public readonly defaultValue: U; public register(cls: { prototype: T }): void; public nativeValueChange(owner: T, value: U): void; public isSet(instance: T): boolean; } export interface Property extends TypedPropertyDescriptor { } export class CoercibleProperty extends Property { constructor(options: CoerciblePropertyOptions); public readonly coerce: (target: T) => void; } export interface CoercibleProperty extends TypedPropertyDescriptor { } export class InheritedProperty extends Property { constructor(options: PropertyOptions); } export class CssProperty { constructor(options: CssPropertyOptions); public readonly getDefault: symbol; public readonly setNative: symbol; public readonly name: string; public readonly cssName: string; public readonly cssLocalName: string; public readonly defaultValue: U; public register(cls: { prototype: T }): void; public isSet(instance: T): boolean; } export class InheritedCssProperty extends CssProperty { constructor(options: CssPropertyOptions); } export class ShorthandProperty { constructor(options: ShorthandPropertyOptions

); public readonly name: string; public readonly cssName: string; public register(cls: typeof Style): void; } export class CssAnimationProperty { constructor(options: CssAnimationPropertyOptions); public readonly getDefault: symbol; public readonly setNative: symbol; public readonly name: string; public readonly cssName: string; public readonly cssLocalName: string; readonly keyframe: string; public readonly defaultValue: U; public register(cls: { prototype: T }): void; public isSet(instance: T): boolean; /** * @private */ public _initDefaultNativeValue(target: T): void; /** * @private */ public _valueConverter?: (value: string) => any; /** * @private */ public static _getByCssName(name: string): CssAnimationProperty; /** * @private */ public static _getPropertyNames(): string[]; } export function initNativeView(view: ViewBase): void; export function resetNativeView(view: ViewBase): void; export function resetCSSProperties(style: Style): void; export function propagateInheritableProperties(view: ViewBase, childView: ViewBase): void; export function propagateInheritableCssProperties(parentStyle: Style, childStyle: Style): void; export function clearInheritedProperties(view: ViewBase): void; export function makeValidator(...values: T[]): (value: any) => value is T; export function makeParser(isValid: (value: any) => boolean): (value: any) => T; export function getSetProperties(view: ViewBase): [string, any][]; export function getComputedCssValues(view: ViewBase): [string, any][]; export function isCssVariable(property: string): boolean; export function isCssCalcExpression(value: string): boolean; export function isCssVariableExpression(value: string): boolean; //@private /** * @private get all properties defined on ViewBase */ export function _getProperties(): Property[]; /** * @private get all properties defined on Style */ export function _getStyleProperties(): CssProperty[]; export function _evaluateCssVariableExpression(view: ViewBase, cssName: string, value: string): string; export function _evaluateCssCalcExpression(value: string): string; //@endprivate