mirror of
https://github.com/NativeScript/NativeScript.git
synced 2025-11-05 13:26:48 +08:00
* enable recycling of nativeView * backgroundInternal is reset if setting new value leads to background.isEmpty() == true. * android background.getDefault always return copy of the background. Now all controls that mutate the background can be reset to initial state (e.g. Button & ActionBar) passing resources to copied background so it respect density. fix properties initNativeView * reset padding when backgroundInternal is reset. * Fix text reset Fix padding reset * fix tsc errors * fix ugly text rendering. * Add unit tests for recycling native views Fix several issues that came from the above tests Fix maxLength property missing a converter callback Remove old files * Remove old files * Revert backgroundInternal setter * change the order of tests so that appium can work again * Remove suggestion on every TextView & TextField init (strangely it is enabled after view is recycled....) * Fix function to get parent layout if specified * Button stateListAnimator restored when button is recycled zIndex defaultValue is now undefined instead of NaN * revert zIndex.setNative to always clear stateListAnimator because it was breaking one UI test (setting value=0 was returning the previous stateListAnimator) * fix search-bar backgound-color recycling * Fix alignments setters * Fix imageView recycling Fix button recycling Fix edit-text recycling resetNativeView is called only if recycleNativeView flag is true * Fix incorrect merge * Fix text-view & text-field textTransform * Fix EditText text reset * Fix runtime crash on ARM emulator API 21 * Fix text-base minHeight. maxHeight reset Fix reset of isUserInteractionEnabled
38 lines
1.6 KiB
TypeScript
38 lines
1.6 KiB
TypeScript
import { DatePicker as DatePickerDefinition } from ".";
|
|
import { View, Property } from "../core/view";
|
|
|
|
export * from "../core/view";
|
|
|
|
export class DatePickerBase extends View implements DatePickerDefinition {
|
|
public year: number;
|
|
public month: number;
|
|
public day: number;
|
|
public maxDate: Date;
|
|
public minDate: Date;
|
|
public date: Date;
|
|
}
|
|
|
|
DatePickerBase.prototype.recycleNativeView = true;
|
|
|
|
export const yearProperty = new Property<DatePickerBase, number>({ name: "year", valueConverter: (v) => parseInt(v) });
|
|
yearProperty.register(DatePickerBase);
|
|
|
|
export const monthProperty = new Property<DatePickerBase, number>({ name: "month", valueConverter: (v) => parseInt(v) });
|
|
monthProperty.register(DatePickerBase);
|
|
|
|
export const dayProperty = new Property<DatePickerBase, number>({ name: "day", valueConverter: (v) => parseInt(v) });
|
|
dayProperty.register(DatePickerBase);
|
|
|
|
function dateComparer(x: Date, y: Date): boolean {
|
|
return (x <= y && x >= y) ? true : false;
|
|
}
|
|
|
|
// TODO: Make CoercibleProperties
|
|
export const maxDateProperty = new Property<DatePickerBase, Date>({ name: "maxDate", equalityComparer: dateComparer, valueConverter: (v) => new Date(v) });
|
|
maxDateProperty.register(DatePickerBase);
|
|
|
|
export const minDateProperty = new Property<DatePickerBase, Date>({ name: "minDate", equalityComparer: dateComparer, valueConverter: (v) => new Date(v) });
|
|
minDateProperty.register(DatePickerBase);
|
|
|
|
export const dateProperty = new Property<DatePickerBase, Date>({ name: "date", equalityComparer: dateComparer, valueConverter: (v) => new Date(v) });
|
|
dateProperty.register(DatePickerBase); |