@nativescript-community/ui-drawer
Version:
Easily add a side drawer (side menu) to your projects.
186 lines (185 loc) • 7.5 kB
TypeScript
import { GestureState, GestureStateEventData, GestureTouchEventData, PanGestureHandler } from '@nativescript-community/gesturehandler';
import { AnimationDefinition, Color, EventData, GridLayout, Property, View } from '@nativescript/core';
export declare const PAN_GESTURE_TAG = 12431;
export type Side = 'left' | 'right';
export type VerticalSide = 'bottom' | 'top';
export type Mode = 'under' | 'slide';
export interface DrawerEventData extends EventData {
side: Side;
duration?: number;
}
export declare const leftDrawerContentProperty: Property<Drawer, View>;
export declare const rightDrawerContentProperty: Property<Drawer, View>;
export declare const topDrawerContentProperty: Property<Drawer, View>;
export declare const bottomDrawerContentProperty: Property<Drawer, View>;
export declare const gestureEnabledProperty: Property<Drawer, boolean>;
export declare const backdropColorProperty: Property<Drawer, Color>;
export declare const backdropPropertiesProperty: Property<Drawer, Object>;
export declare const leftDrawerModeProperty: Property<Drawer, Mode>;
export declare const rightDrawerModeProperty: Property<Drawer, Mode>;
export declare const topDrawerModeProperty: Property<Drawer, Mode>;
export declare const bottomDrawerModeProperty: Property<Drawer, Mode>;
export declare const translationFunctionProperty: Property<Drawer, TranslationFunctionType>;
export declare const animationFunctionProperty: Property<Drawer, AnimationFunctionType>;
export declare const backDropEnabledProperty: Property<Drawer, boolean>;
export declare const startingSideProperty: Property<Drawer, Side | VerticalSide | "none">;
export declare const gestureHandlerOptionsProperty: Property<import("@nativescript/core").ViewBase, unknown>;
export interface TrData {
[k: string]: AnimationDefinition;
leftDrawer?: AnimationDefinition;
rightDrawer?: AnimationDefinition;
bottomDrawer?: AnimationDefinition;
topDrawer?: AnimationDefinition;
backDrop?: AnimationDefinition;
mainContent?: AnimationDefinition;
}
export type TranslationFunctionType = (side: Side | VerticalSide, width: number, value: number, delta: number, progress: number, drawer: Drawer) => TrData;
export type AnimationFunctionType = (side: Side | VerticalSide, duration: number, trData: TrData, animationParams: AnimationDefinition[], drawer: Drawer) => Promise<void>;
export declare class Drawer extends GridLayout {
leftDrawer?: View;
rightDrawer?: View;
bottomDrawer?: View;
topDrawer?: View;
mainContent: View;
backDrop: View;
leftDrawerMode: any;
rightDrawerMode: any;
bottomDrawerMode: any;
topDrawerMode: any;
gestureTag: number;
gestureMinDist: number;
gestureHandlerOptions: any;
waitFor: any[];
simultaneousHandlers: any[];
shouldStartSheetDragging?: (side: Side | VerticalSide) => boolean;
shouldPan?: (side: Side | VerticalSide) => boolean;
leftSwipeDistance: number;
rightSwipeDistance: number;
bottomSwipeDistance: number;
topSwipeDistance: number;
backdropColor: Color;
backdropProperties: {};
leftOpenedDrawerAllowDraging: boolean;
rightOpenedDrawerAllowDraging: boolean;
bottomOpenedDrawerAllowDraging: boolean;
topOpenedDrawerAllowDraging: boolean;
leftClosedDrawerAllowDraging: boolean;
rightClosedDrawerAllowDraging: boolean;
bottomClosedDrawerAllowDraging: boolean;
topClosedDrawerAllowDraging: boolean;
panGestureHandler: PanGestureHandler;
gestureEnabled: boolean;
backdropTapGestureEnabled: boolean;
startingSide: Side | VerticalSide;
openAnimationDuration: number;
closeAnimationDuration: number;
private mIsPanning;
private mIsAnimating;
private mPrevDeltaX;
private mPrevDeltaY;
private mViewWidth;
private mViewHeight;
private mTranslationX;
private mTranslationY;
private mShowingSide;
private mModes;
translationFunction?: TranslationFunctionType;
animationFunction?: AnimationFunctionType;
backDropEnabled: boolean;
constructor();
_onBackDropEnabledValueChanged(): void;
getActualSide(side: Side | VerticalSide): Side | VerticalSide;
updateStartingSide(side: any): void;
onBackdropTap(): void;
initGestures(): void;
initNativeView(): void;
disposeNativeView(): void;
shouldStartSheetDraggingInternal(side: Side | VerticalSide): any;
shouldStartGesture(data: any): any;
getDrawerToOpen(extraData: any): "left" | "right" | "bottom" | "top";
onGestureState(args: GestureStateEventData): void;
isSideVisible(side: Side | VerticalSide): number;
onGestureTouch(args: GestureTouchEventData): void;
_onMainContentChanged(oldValue: View, newValue: View): void;
leftLayoutChanged(event: EventData): void;
rightLayoutChanged(event: EventData): void;
topLayoutChanged(event: EventData): void;
bottomLayoutChanged(event: EventData): void;
addChild(child: any): void;
_onDrawerContentChanged(side: Side | VerticalSide, oldValue: View, newValue: View): void;
onSideModeChanged(side: Side | VerticalSide, mode: Mode, oldMode?: Mode): void;
computeTranslationData(side: any, value: any): TrData | {
[x: string]: {
translateX: number;
opacity?: undefined;
} | {
translateX: number;
opacity: number;
};
mainContent: {
translateX: number;
translateY?: undefined;
};
backDrop: {
translateX: number;
opacity: number;
translateY?: undefined;
};
} | {
[x: string]: {
translateX?: undefined;
opacity?: undefined;
} | {
translateX: any;
opacity?: undefined;
} | {
opacity: number;
translateX?: undefined;
};
mainContent: {
translateX?: undefined;
translateY?: undefined;
};
backDrop: {
opacity: number;
translateX?: undefined;
translateY?: undefined;
};
} | {
[x: string]: {
translateY: any;
opacity?: undefined;
} | {
translateY: number;
opacity: number;
};
mainContent: {
translateY: number;
translateX?: undefined;
};
backDrop: {
translateY: number;
opacity: number;
translateX?: undefined;
};
};
onLayoutChange(side: Side | VerticalSide, event: EventData): void;
forceEnsureSize(side: Side | VerticalSide): void;
onTapGestureState(args: GestureStateEventData): void;
updateIsPanning(state: GestureState): void;
mViewByIdCache: {};
applyTrData(trData: {
[k: string]: any;
}, side: Side | VerticalSide): void;
constrainX(side: any, x: any): any;
constrainY(side: any, y: any): any;
animateToPosition(side: Side | VerticalSide, position: any, duration?: number): Promise<void>;
isSideOpened(): boolean;
isOpened(side?: Side | VerticalSide): boolean;
getDefaultSide(): "left" | "right" | "bottom" | "top";
toggle(side?: Side | VerticalSide): Promise<void>;
open(side?: Side | VerticalSide, duration?: number): Promise<void>;
close(side?: Side | VerticalSide, duration?: number): Promise<void>;
}
export declare const mainContentProperty: Property<Drawer, View>;
export declare function install(): void;