realgrid-touch
Version:
RealGrid-Touch is a data list component library for developing mobile web applications for business purposes.
1,475 lines (1,465 loc) • 348 kB
TypeScript
declare class RtObject {
static destroy(obj: RtObject): null;
private $_hash;
private $_destroyed;
private $_destroying;
constructor(noHash?: boolean);
destroy(): null;
protected _doDestory(): void;
get destroying(): boolean;
get hash(): string;
isMe(hash: string): boolean;
protected _doAssignProps(source: any): boolean;
assignProps(source: any): RtObject;
assignObject(source: any, excludes: string[]): RtObject;
toString(): string;
toBool(v: any): boolean;
toNum(v: any, def?: number): number;
}
declare abstract class RtWrappableObject extends RtObject {
protected _wrapper: any;
wrapper(): any;
wrapperOrThis(): any;
createWrapper<T>(clazz: {
new (): T;
}): T;
setWrapper<T>(wrapper: T): T;
isWrapper(w: any): boolean;
}
declare abstract class RtWrapper<T extends RtWrappableObject> extends RtObject {
protected $_c: T;
protected _doDestory(): void;
}
declare abstract class RtEventProvider<T> extends RtObject {
private _listeners;
addListener(listener: T): void;
removeListener(listener: T): void;
protected _fireEvent(event: string, ...args: any[]): any;
}
interface IEventArgs {
}
type RtEventHandler<T extends IEventArgs> = (args?: T) => void;
type RtPercentSize = string | number;
interface IPercentSize {
size: number;
fixed: boolean;
}
type SizeValue = string | number;
interface CSSStyles {
background?: string;
backgroundAttachment?: string;
backgroundBlendMode?: string;
backgroundClip?: string;
backgroundColor?: string;
backgroundImage?: string;
backgroundOrigin?: string;
backgroundPosition?: string;
backgroundPositionX?: string;
backgroundPositionY?: string;
backgroundRepeat?: string;
backgroundSize?: string;
border?: string;
borderBlock?: string;
borderBlockColor?: string;
borderBlockEnd?: string;
borderBlockEndColor?: string;
borderBlockEndStyle?: string;
borderBlockEndWidth?: string;
borderBlockStart?: string;
borderBlockStartColor?: string;
borderBlockStartStyle?: string;
borderBlockStartWidth?: string;
borderBlockStyle?: string;
borderBlockWidth?: string;
borderBottom?: string;
borderBottomColor?: string;
borderBottomLeftRadius?: string;
borderBottomRightRadius?: string;
borderBottomStyle?: string;
borderBottomWidth?: string;
borderCollapse?: string;
borderColor?: string;
borderEndEndRadius?: string;
borderEndStartRadius?: string;
borderImage?: string;
borderImageOutset?: string;
borderImageRepeat?: string;
borderImageSlice?: string;
borderImageSource?: string;
borderImageWidth?: string;
borderInline?: string;
borderInlineColor?: string;
borderInlineEnd?: string;
borderInlineEndColor?: string;
borderInlineEndStyle?: string;
borderInlineEndWidth?: string;
borderInlineStart?: string;
borderInlineStartColor?: string;
borderInlineStartStyle?: string;
borderInlineStartWidth?: string;
borderInlineStyle?: string;
borderInlineWidth?: string;
borderLeft?: string;
borderLeftColor?: string;
borderLeftStyle?: string;
borderLeftWidth?: string;
borderRadius?: string;
borderRight?: string;
borderRightColor?: string;
borderRightStyle?: string;
borderRightWidth?: string;
borderSpacing?: string;
borderStartEndRadius?: string;
borderStartStartRadius?: string;
borderStyle?: string;
borderTop?: string;
borderTopColor?: string;
borderTopLeftRadius?: string;
borderTopRightRadius?: string;
borderTopStyle?: string;
borderTopWidth?: string;
borderWidth?: string;
boxSizing?: 'content-box' | 'border-box' | '';
color?: string;
font?: string;
fontFamily?: string;
fontFeatureSettings?: string;
fontKerning?: string;
fontOpticalSizing?: string;
fontSize?: string;
fontSizeAdjust?: string;
fontStretch?: string;
fontStyle?: string;
fontSynthesis?: string;
fontVariant?: string;
fontVariantCaps?: string;
fontVariantEastAsian?: string;
fontVariantLigatures?: string;
fontVariantNumeric?: string;
fontVariantPosition?: string;
fontVariationSettings?: string;
fontWeight?: string;
padding?: string;
paddingBlock?: string;
paddingBlockEnd?: string;
paddingBlockStart?: string;
paddingBottom?: string;
paddingInline?: string;
paddingInlineEnd?: string;
paddingInlineStart?: string;
paddingLeft?: string;
paddingRight?: string;
paddingTop?: string;
textOverflow?: string;
fill?: string;
stroke?: string;
strokeWidth?: string;
}
interface CSSStyles2 extends CSSStyles {
display?: string;
position?: string;
alignItems?: string;
justifyContent?: string;
flexDirection?: string;
flexWrap?: string;
gap?: string;
flex?: string;
width?: string;
height?: string;
minHeight?: string;
minWidth?: string;
maxWidth?: string;
left?: string;
top?: string;
overflow?: string;
marginRight?: string;
whiteSpace?: string;
margin?: string;
marginLeft?: string;
pointerEvents?: string;
}
type StyleOrClass = CSSStyles | string;
interface ISize {
width: number;
height: number;
}
interface IRect {
x: number;
y: number;
width: number;
height: number;
}
interface ISides {
left: number;
right: number;
top: number;
bottom: number;
horz?: number;
vert?: number;
}
interface IPadding {
left: number;
right: number;
top: number;
bottom: number;
borderLeft: number;
borderRight: number;
borderTop: number;
borderBottom: number;
horz?: number;
vert?: number;
}
declare enum RtDirection {
UP = "up",
DOWN = "down",
LEFT = "left",
RIGHT = "right"
}
declare class TemplateVars {
private _vars;
constructor(vars: any);
out(value: string): any;
assign(source: any): any;
}
declare class DummyVars extends TemplateVars {
constructor();
out(value: string): any;
assign(source: any): any;
}
declare abstract class TemplateChild {
protected _parent: TemplateLayout;
tid: number;
id: any;
tag: string;
props: any;
style: RtParamObject;
styleCallback: ((ctx: any) => CSSStyles) | RtParamString;
constructor(parent: TemplateLayout | null, source: any, vars: TemplateVars);
updateProp(path: string[] | string, value: any, vars: any): boolean;
protected abstract _doLoad(source: any, vars: TemplateVars): void;
protected _loadProps(source: any, vars: TemplateVars): any;
protected _loadStyle(source: any, vars: TemplateVars): RtParamObject;
protected _loadRenderer(source: any, styles: any, vars: TemplateVars): RtParamObject | string;
}
declare class TemplateField extends TemplateChild {
field: string | RtParamString;
value: any | RtParamString;
fields: string[] | RtParamString;
renderer: string | RtParamObject;
rendererStyles: any;
editor: string | RtParamObject;
editorStyles: any;
protected _doLoad(source: any, vars: TemplateVars): void;
private $_updateProp;
updateProp(path: string[] | string, value: any, vars: any): boolean;
}
declare class TemplateLayout extends TemplateChild {
defaultRenderer: string;
layout: string;
children: TemplateChild[];
map: {
[id: string]: TemplateChild;
};
count(): number;
getDefaultRenderer(): string;
get(index: number): TemplateChild;
tagBy(tag: string): TemplateChild;
fieldBy(tag: string): TemplateField;
private $_loadChild;
protected _doLoad(source: any, vars: TemplateVars): void;
updateProp(path: string[] | string, value: any, vars: any): boolean;
find(id: string): TemplateChild;
_getFields(fields: string[]): void;
}
interface HtmlToken {
node: number[];
attr?: string;
param: RtParamString;
value?: any;
}
declare class TemplateHtmlLayout extends TemplateChild {
dom: HTMLElement;
tokens: HtmlToken[];
constructor(dom: HTMLElement, vars: TemplateVars);
protected _doLoad(source: any, vars: TemplateVars): void;
find(id: string): any;
private $_parseParams;
}
type TemplateLayoutType = TemplateLayout | TemplateHtmlLayout;
interface ITemplateProps {
height?: number;
minHeight?: number;
maxHeight?: number;
width?: number;
minWidth?: number;
maxWidth?: number;
}
interface IListTemplate {
id: number;
detailId?: number;
collapsedId?: number;
description?: string;
target?: any;
rowProps?: ITemplateProps;
rowStyle?: RtRowStyles;
layout?: TemplateLayoutType;
detailed?: TemplateLayoutType;
extra?: TemplateLayoutType;
collapsed?: TemplateLayoutType;
skeleton?: TemplateLayoutType;
params?: object;
}
declare class ListTemplate extends RtObject implements IListTemplate {
static readonly Vars: DummyVars;
static createLayout(htmlProvider: ITemplateHtmlProvider, source: any, vars: TemplateVars): TemplateLayoutType;
private _vars;
id: number;
detailId: any;
collapsedId: any;
description: string;
target: any;
rowProps: ITemplateProps;
rowStyle: RtRowStyles;
layout: TemplateLayoutType;
detailed: TemplateLayoutType;
extra: TemplateLayoutType;
collapsed: TemplateLayoutType;
brief: TemplateLayoutType;
params: object;
constructor(htmlProvider: ITemplateHtmlProvider, source: any, vars2: any);
protected _doDestory(): void;
getFields(): string[];
find(id: string): TemplateChild;
updateProp(id: string, prop: string, value: any): boolean;
updateProps(id: string, props: {
[prop: string]: any;
}): boolean;
}
declare class TableTemplateCell extends TemplateField {
row: number;
col: number;
rowspan: number;
colspan: number;
cellStyle: RtParamObject;
protected _doLoad(src: any, vars: TemplateVars): void;
}
interface ITableTemplate extends IListTemplate {
tag?: string;
cells: TableTemplateCell[];
}
declare abstract class TableTemplate extends RtObject implements ITableTemplate {
embed: boolean;
id: number;
detailId: number;
tag: string;
cells: TableTemplateCell[];
rowProps: ITemplateProps;
rowStyle: RtRowStyles;
detailed: TemplateLayoutType;
extra: TemplateLayoutType;
constructor(htmlProvider: ITemplateHtmlProvider, source: any, embed: boolean);
find(id: string): any;
protected abstract _createCell(source: any, vars: any): TableTemplateCell;
private $_loadCells;
}
declare class TableRowTemplate extends TableTemplate {
headerTemplate: TableHeaderTemplate;
footerTemplate: TableFooterTemplate;
constructor(htmlProvider: ITemplateHtmlProvider, source: any);
protected _createCell(source: any, vars: any): TableTemplateCell;
}
declare class TableHeaderTemplate extends TableTemplate {
constructor(htmlProvider: ITemplateHtmlProvider, source: any, embed: boolean);
protected _createCell(source: any, vars: any): TableTemplateCell;
}
declare class TableFooterTemplate extends TableTemplate {
constructor(htmlProvider: ITemplateHtmlProvider, source: any, embed: boolean);
protected _createCell(source: any, vars: any): TableTemplateCell;
}
type TemplateType = ListTemplate | TableTemplate;
declare class RtEditTool {
private _control;
private _touchElement;
private _moveElement;
private _draggable;
private _dragTracker;
private _touchX;
private _touchY;
private _prevX;
private _prevY;
protected _touches: {
x: number;
y: number;
t: number;
}[];
protected _tapped: number;
private _firstTime;
private _secondTime;
private _longTimer;
protected _primaryId: number;
constructor(control: RtControl);
get control(): RtControl;
get dragTracker(): DragTracker;
setDragTracker(value: DragTracker): void;
get dragging(): boolean;
touchX(): number;
touchY(): number;
pointerDown(ev: PointerEvent): boolean;
protected _stopEvent(ev: Event): void;
private $_doDrag;
private $_startMove;
pointerMove(ev: PointerEvent): void;
pointerUp(ev: PointerEvent): void;
pointerCancel(ev: PointerEvent): void;
pointerLeave(ev: PointerEvent): void;
touchStart(ev: TouchEvent): boolean;
touchMove(ev: TouchEvent): boolean;
touchEnd(ev: TouchEvent): void;
click(ev: PointerEvent): void;
dblClick(ev: MouseEvent): void;
keyPress(ev: KeyboardEvent): void;
wheel(ev: WheelEvent): void;
requestDrag(request: DragRequest): void;
getTrackerFromRequest(request: DragRequest): DragTracker;
protected _setDraggable(value: boolean): void;
protected _doClick(ev: PointerEvent, dom: Element): void;
protected _doDblClick(dom: Element): void;
protected _doPointerDown(dom: Element): boolean;
protected _doPointerMove(dom: Element): void;
protected _doPointerUp(dom: Element): boolean;
protected _doPointerCancel(ev: PointerEvent): void;
protected _doPointerLeave(ev: PointerEvent): void;
protected _doTouchStart(ev: TouchEvent): boolean;
protected _doTouchMove(ev: TouchEvent, dom: Element): boolean;
protected _doTouchEnd(ev: TouchEvent): void;
protected _doLongPressed(dom: Element, x: number, y: number): void;
protected _doKeyPress(ev: KeyboardEvent): void;
protected _doWheel(ev: WheelEvent): boolean;
protected _doSwipe(dom: Element, prevTracker: DragTracker, dir: RtDirection, duration: number, distance: number): boolean;
protected _getDragTracker(dom: Element, dx: number, dy: number): DragTracker;
private $_startDrag;
private $_drag;
private $_stopDragTracker;
private $_pointerToPoint;
private $_checkSwipe;
protected _clearTouchEffects(): void;
}
declare abstract class DragRequest extends RtObject {
}
declare abstract class DragTracker extends RtObject {
private _control;
private _dragging;
constructor(control: RtControl);
get control(): RtControl;
get dragging(): boolean;
get startWhenCreated(): boolean;
get cursor(): string;
canSwipe(): boolean;
start(eventTarget: Element, xStart: number, yStart: number, x: number, y: number): boolean;
drag(eventTarget: Element, xPrev: number, yPrev: number, x: number, y: number): boolean;
cancel(): void;
drop(eventTarget: HTMLElement, x: number, y: number): void;
swipe(dir: RtDirection, duration: number, distance: number): boolean;
end(x?: number, y?: number): void;
protected _doSwipe(dir: RtDirection, duration: number, distance: number): boolean;
protected _showFeedback(x: number, y: number): void;
protected _moveFeedback(x: number, y: number): void;
protected _hideFeedback(): void;
protected _doStart(eventTarget: Element, xStart: number, yStart: number, x: number, y: number): boolean;
protected abstract _doDrag(eventTarget: Element, xPrev: number, yPrev: number, x: number, y: number): boolean;
protected _doCanceled(): void;
protected _canAccept(eventTarget: Element, x: number, y: number): boolean;
protected _doCompleted(eventTarget: Element, x: number, y: number): void;
protected _doEnded(x?: number, y?: number): void;
}
interface ISvgShape {
width: number;
height?: number;
path: string;
}
declare class RtSvg extends RtObject {
static create(doc: Document): SVGSVGElement;
svg: SVGSVGElement;
constructor(svg: SVGSVGElement | Document, className?: string);
protected _doDestory(): void;
attach(parent: Element): RtSvg;
detach(): void;
setClass(className: string): void;
addClass(className: string): void;
clearStyle(style: any): void;
setStyle(style: any): void;
setViewSize(w: number, h?: number): void;
clearViewSize(): void;
setSize(w: number, h: number): void;
fillSize(): void;
makeBackground(width?: number, height?: number): RtSvg;
clear(): void;
rect(x: number, y: number, w: number, h: number, style: object): SVGRectElement;
circle(cx: number, cy: number, radius: number, style: object): SVGCircleElement;
line(x1: number, y1: number, x2: number, y2: number, style?: object): SVGPathElement;
polyline(pts: number[], style?: object): SVGPathElement;
polylgon(pts: number[], style?: object): SVGPathElement;
quadratic(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, style?: object): SVGPathElement;
arc(cx: number, cy: number, rx: number, ry: number, startAngle: number, angle: number, clockwise: boolean, style?: object): SVGPathElement;
path(d: string): SVGPathElement;
setShape(shape: ISvgShape, clear?: boolean): RtSvg;
_createPath(d: string): SVGPathElement;
private $_angleToPos;
_animateRevert(path: SVGPathElement, from: string, to: string, duration: number): void;
}
declare class Registy<T extends RtObject> extends RtObject {
private _items;
protected _doDestory(): void;
get(name: string): T;
clear(): void;
add(name: string, template: T): void;
remove(name: string): void;
removeAll(names: string[]): void;
}
declare abstract class RtShape extends RtObject {
static clone<T extends RtShape>(shape: T, clazz: {
new (shape: T): T;
}): T;
protected _svg: RtSvg;
protected _width: number;
protected _height: number;
constructor(doc: Document | RtShape | SVGSVGElement, className?: string, style?: object);
protected _doDestory(): void;
name(): string;
dom(): SVGSVGElement;
attached(): boolean;
isDom(svg: SVGSVGElement): boolean;
containsDom(dom: Element): boolean;
setVisible(value: boolean): void;
styleTarget(): CSSStyleDeclaration;
resize(width: number, height?: number): boolean;
setClass(className: string): void;
setStyle(style: CSSStyles2): void;
appendTo(dom: Element | RtElement): void;
remove(): void;
makeBackground(width: number, height?: number): RtShape;
protected _doClone(shape: RtShape): void;
protected _doInit(svg: RtSvg): void;
}
declare abstract class RtShapeRegistry extends Registy<RtShape> {
abstract create<T extends RtShape>(clazz: {
new (doc: any): T;
}, svg: SVGSVGElement): T;
abstract createStock(doc: Document | SVGSVGElement, shapeName: string, className?: string, style?: object): RtShape;
abstract createCustom(shapeName: string, svg: SVGSVGElement, className: string): RtCustomShape;
abstract registerCustom(shapeName: string, d: string, width?: number, height?: number): void;
abstract getCustom(shapeName: string): {
w: number;
h: number;
d: string;
};
createShape(doc: Document, shapeName: string): RtShape;
}
declare class RtCustomShape extends RtShape {
static readonly NAME = "@custom";
private _path;
constructor(doc: Document | RtCustomShape | SVGSVGElement, className?: string, style?: object);
setShape(shape: {
w: number;
h: number;
d: string;
}): RtCustomShape;
protected _doClone(shape: RtCustomShape): void;
}
type RtScreenOrientationCallback = (orientation: RtScreenOrientation) => void;
declare abstract class RtControl extends RtWrappableObject {
private _orientation;
private _syncOrientation;
private _screenOrientation;
private _syncScreenOrientation;
private _activeTool;
longPressDelay: number;
onOrientationChanged: RtScreenOrientationCallback;
private _container;
private _dom;
private _root;
private _inited;
private _testing;
private _dirty;
private _requestTimer;
private _defaultTool;
private _tool;
private _invalidElements;
private _toAnimation;
private _invalidateLock;
private _lockDirty;
private _cssVars;
constructor(doc: Document, container: string | HTMLDivElement, className: string);
protected _doDestory(): void;
isInited(): boolean;
isTesting(): boolean;
doc(): Document;
dom(): HTMLElement;
width(): number;
height(): number;
activeTool(): RtEditTool;
setSctiveTool(value: RtEditTool): void;
orientation(): RtScreenOrientation;
setOrientation(value: RtScreenOrientation): void;
isPortrait(): boolean;
isLandscape(): boolean;
syncOrientation(): boolean;
setSyncOrientation(value: boolean): void;
screenOrientation(): RtScreenOrientation;
syncScreenOrientation(): boolean;
setScreenSyncOrientation(value: boolean): void;
addElement(elt: RtElement): void;
removeElement(elt: RtElement): void;
invalidate(force?: boolean): void;
invalidateLayout(force?: boolean): void;
setLock(): void;
releaseLock(validate?: boolean): void;
lock(func: (control: RtControl) => void): void;
silentLock(func: (control: RtControl) => void): void;
elementOfDom(dom: Element): RtElement;
getBounds(): DOMRect;
toElement(elt: RtElement, x: number, y: number): {
x: number;
y: number;
};
setAnimation(to?: number): void;
fling(distance: number, duration: number): void;
getCssVar(name: string): string;
abstract shapes(): RtShapeRegistry;
abstract useImage(src: string): void;
protected _setTesting(): void;
protected _setSize(w: number, h: number): void;
private $_getScreenOrientation;
private $_getOrientation;
private $_checkOrientation;
private $_addListener;
protected _resigterEventHandlers(dom: HTMLElement): void;
protected _unresigterEventHandlers(dom: HTMLElement): void;
private $_orientationChanged;
protected _doOrientationChanged(orientation: RtScreenOrientation): void;
protected abstract _creatDefaultTool(): RtEditTool;
protected _prepareRenderers(dom: HTMLElement): void;
private $_initControl;
protected _render(): void;
private $_invalidateElement;
private $_requestRender;
updateNow(): void;
private $_render;
protected abstract _doRender(bounds: IRect): void;
protected _doBeforeRender(): void;
protected _doAfterRender(): void;
protected _doControlObjectChanged(obj: RtControlObject, tag: string): void;
protected _doClick(event: PointerEvent): void;
protected _doDblClick(event: PointerEvent): void;
protected _doTouchMove(event: TouchEvent): boolean;
protected _doTouchEnd(event: TouchEvent): void;
protected _doPointerDown(event: PointerEvent): boolean;
protected _doPointerMove(event: PointerEvent): void;
protected _doPointerUp(event: PointerEvent): void;
protected _doPointerCancel(event: PointerEvent): void;
protected _doPointerLeave(event: PointerEvent): void;
protected _doKeyPress(event: KeyboardEvent): void;
protected _doWheel(event: WheelEvent): void;
private _screenOrientationChangeHandler;
static currentInput: HTMLInputElement | HTMLTextAreaElement;
protected _windowResizeHandler: (event: Event) => void;
protected _windowResized(): void;
private _clickHandler;
private _dblClickHandler;
private _touchMoveHandler;
private _touchEndHandler;
private _touchStartHandler;
private _pointerDownHandler;
private _pointerMoveHandler;
private _pointerUpHandler;
private _pointerCancelHandler;
private _pointerLeaveHandler;
private _keyPressHandler;
private _wheelHandler;
}
type RtControlOrWrapper = RtControl | RtWrapper<RtControl>;
declare class RtElement extends RtObject {
static readonly TESTING = false;
static BOUNDING: boolean;
static readonly BOUNDING_BORDER = "1px solid #ff000080";
static readonly BOUNDING_BORDER_2 = "1px solid #0000ff40";
static ANIMATABLE: boolean;
private _visible;
private _x;
private _y;
private _width;
private _height;
private _dom;
private _content;
private _parent;
private _children;
private _dirty;
constructor(doc: Document, contentable: boolean, className: string, tag: string);
protected _doDestory(): void;
get doc(): Document;
get win(): Window;
get dom(): HTMLElement;
get content(): HTMLElement;
get parent(): RtElement;
get childCount(): number;
get control(): RtControl;
get x(): number;
right(): number;
get y(): number;
bottom(): number;
get width(): number;
get height(): number;
get visHeight(): number;
get visible(): boolean;
set visible(value: boolean);
setVisible(value: boolean): boolean;
_internalVisible(visible: boolean): boolean;
setHidden(value: boolean): void;
canAnimate(): boolean;
setAnimating(value: boolean): void;
animating(): boolean;
get hidden(): boolean;
set hidden(value: boolean);
setStyles(style: CSSStyles2): RtElement;
getClientSize(): ISize;
getOffsetSize(): ISize;
getOffsetBounds(): IRect;
getClientRect(): DOMRect;
getSize(): ISize;
getBounds(): IRect;
validate(): void;
getLabel(): HTMLElement;
getChildren(): RtElement[];
getChild(index: number): RtElement;
indexOf(child: RtElement): number;
contains(elt: RtElement, deep?: boolean): boolean;
insertChild(at: number, child: RtElement): void;
insertBefore(child: RtElement, before: RtElement): void;
addChild(child: RtElement): void;
remove(): void;
removeChildAt(at: number): RtElement;
removeChild(child: RtElement): RtElement;
removeLast(): RtElement;
clear(): boolean;
moveIndex(child: RtElement, newIndex: number): boolean;
isDom(dom: Element): boolean;
containsDom(dom: Element): boolean;
isView(dom: Element): boolean;
containsClass(className: string): boolean;
domByClass(className: string, text?: string | string[]): HTMLElement;
childOfDom(dom: Element): RtElement;
hasData(name: string): boolean;
setData(name: string, value: any): void;
setBounds(x: number, y: number, width: number, height: number): RtElement;
setRect(r: IRect): RtElement;
moveX(x: number): RtElement;
moveY(y: number): RtElement;
move(x: number, y: number): RtElement;
center(x: number, y: number, width: number, height: number): RtElement;
moveI(x: number, y: number): RtElement;
resetPosition(): void;
setWidth(width: number): RtElement;
setHeight(height: number): RtElement;
clearSize(): void;
resize(width: number, height: number): RtElement;
internalClearSize(): RtElement;
internalResize(width: number, height: number): RtElement;
internalSetSize(width: number, height: number): RtElement;
syncSize(): void;
resizeContent(width: number, height: number): void;
setContentBounds(x: number, y: number, w: number, h: number): void;
saveSize(): RtElement;
forEach(callback: (child: RtElement, index?: number, count?: number) => void): void;
some(callback: (child: RtElement, index?: number, count?: number) => boolean): void;
findChild(selector: (child: RtElement, index?: number, count?: number) => boolean): RtElement;
findDescendant(selector: (child: RtElement) => boolean): RtElement;
findDescendants(selector: (child: RtElement) => boolean, elements: RtElement[]): void;
applyStyle(style: CSSStyles): void;
setImportantStyle(css: CSSStyleDeclaration, property: string, value: string): RtElement;
setPressed(value: boolean): void;
appendSpan(doc?: Document, className?: string): HTMLSpanElement;
appendDom<T extends HTMLElement | SVGSVGElement>(dom: T): T;
removeDom(dom: HTMLElement): void;
detachDom(): void;
createElement(tag: string): HTMLElement;
setClassName(clazz: string): void;
protected _testing(): boolean;
protected _doInitStyle(style: CSSStyles2): void;
protected _doInitDom(doc: Document, dom: HTMLElement): void;
protected _doInitContent(doc: Document, div: HTMLElement): void;
protected _getPositionStyle(): string;
protected _getDisplayStyle(): string;
protected _getContentPosition(): string;
protected _getOverflow(): string;
private $_attached;
protected _doAttached(): void;
private $_detached;
protected _doDetached(oldParent: RtElement): void;
private $_removeChild;
protected _changed(): void;
protected _getRenderSize(): ISize;
}
declare abstract class RtControlObject extends RtWrappableObject {
private _control;
constructor(control: RtControl);
control(): RtControl;
protected _changed(tag?: string): void;
}
declare enum RtDataType {
TEXT = "text",
NUMBER = "number",
BOOL = "bool",
DATE = "date",
BIGINT = "bigint",
ANY = "any"
}
interface IRtDataField {
name: string;
label?: string;
type?: RtDataType;
key?: string;
comparer?: (v1: any, v2: any) => number;
default?: any;
sortable?: boolean;
required?: boolean;
minimum?: any;
maximum?: any;
domain?: any[];
}
declare class RtDataField {
static create(name: string | IRtDataField, type?: RtDataType): RtDataField;
static createFields(fields: IRtDataField[]): RtDataField[];
static readonly comparers: {
text: (v1: any, v2: any) => number;
number: (v1: any, v2: any) => number;
bool: (v1: any, v2: any) => number;
date: (v1: any, v2: any) => number;
bigint: (v1: any, v2: any) => number;
any: (v1: any, v2: any) => number;
};
private _label;
description: string;
default: any;
sortable: boolean;
sourceProp: string;
required: boolean;
minimum: any;
maximum: any;
domain: any[];
keys: string[];
private _owner;
private _name;
private _type;
readValue: (v: any) => any;
comparer: (v1: any, v2: any) => number;
protected constructor(name: string, type?: RtDataType);
get name(): string;
get type(): RtDataType;
get label(): string;
set label(value: string);
displayText(): string;
proxy(): IRtDataField;
protected _changed(): void;
}
type RtValueExtracter = (values: RtRowValues) => any;
declare class DerivedField extends RtDataField {
static createDerived(name: string, extracter: RtValueExtracter, type?: RtDataType): DerivedField;
private _extracter;
private constructor();
extract(values: object): any;
}
interface IRtDerivedField extends IRtDataField {
extractor: RtValueExtracter;
}
declare enum RtDataRowState {
CREATED = "c",
UPDATED = "u",
DELETED = "d"
}
type RtRowValues = {
[field: string]: any;
};
type RtFieldMap = {
[name: string]: RtDataField;
};
type RtDerivedFieldMap = {
[name: string]: DerivedField;
};
type RtDataValueReader = (prop: string, value: any) => any;
declare class DataRow {
static createRow(id: number, fields: RtFieldMap, dfields: RtDerivedFieldMap, values: RtRowValues, reader: RtDataValueReader): DataRow;
static createRow2(id: number, fields: RtFieldMap, dfields: RtDerivedFieldMap, values: RtRowValues): DataRow;
static findRow(drows: DataRow[], values: {
[field: string]: any;
}, from: number, to: number): number;
static findRows(drows: DataRow[], values: {
[field: string]: any;
}, from: number, to: number): number[];
static findDistinctRows(drows: DataRow[], fields: string[], from: number, to: number): number[];
static findNearest(drows: DataRow[], field: string, value: any, from: number, to: number): number;
static getProp(values: RtRowValues, field: string, props: string[]): any;
static setProp(values: RtRowValues, field: string, props: string[], value: any): void;
id: number;
row: number;
values: any;
save: any;
state: RtDataRowState;
tidx: number;
tag: any;
getValues(fields: string[]): any;
match(obj: {
[field: string]: any;
}): boolean;
}
interface ILayoutData {
getValue(row: number, field: string, fieldCheck: boolean): any;
getProp(row: number, field: string, prop: string[], fieldCheck: boolean): any;
updateValue(row: number, field: string, value: any): boolean;
updateProp(row: number, field: string, prop: string[], value: any): boolean;
}
interface IDataViewWrapper {
}
interface IDataView {
addListener(listener: any): void;
removeListener(listener: any): void;
source(): IDataView;
wrapper(): IDataViewWrapper;
wrapperOrThis(): ListDataWrapper;
name(): string;
readOnly(): boolean;
fields(): RtDataField[];
fieldByName(name: string): RtDataField;
rowCount(): number;
visRowCount(): number;
rowById(rowid: number): number;
internalRowId(row: number): number;
getRowId(row: number): number;
isLast(row: number): boolean;
isMaster(row: number): boolean;
levelRowOfRow(row: number): number;
findRow(values: {
[field: string]: any;
}, from: number, to: number): number;
findRows(values: {
[field: string]: any;
}, from: number, to: number): number[];
findDistinctRows(fields: string[], from: number, to: number): number[];
findNeareastRow(field: string, value: any): number;
addFlags(owner: RtObject): DataFlags;
removeFlags(owner: RtObject): void;
getFlags(owner: RtObject): DataFlags;
flagChanged(flags: DataFlags, row: number, flag: number): void;
flagsChanged(flags: DataFlags, rows: number[], flag: number): void;
flagAllChanged(flags: DataFlags, flag: number): void;
getValue(row: number, field: string, fieldCheck: boolean): any;
getProp(row: number, field: string, prop: string[], fieldCheck: boolean): any;
getRowValues(row: number): RtRowValues;
internalRowValues(row: number): RtRowValues;
getValues(row: number, fields: string[], fieldCheck: boolean): RtRowValues;
getFieldValues(field: string, from?: number, to?: number): any[];
updateValue(row: number, field: string, value: any): boolean;
updateProp(row: number, field: string, prop: string[], value: any): boolean;
getSummary(field: string): IRtFieldSummary;
getGroupSummary(field: string, start: number, end: number): IRtFieldSummary;
getRows(): DataRow[];
deleteRow(row: number, force: boolean): void;
deleteRows(rows: number[], force: boolean): void;
updateRow(row: number, values: RtRowValues, forceEmpty: boolean, forceUpdate: boolean): number;
appendRow(values: RtRowValues): number;
getRowState(row: number): RtDataRowState;
internalRowState(row: number): RtDataRowState;
canMove(): boolean;
canSort(): boolean;
}
interface ISimpleDataView extends IDataView {
fields(): RtDataField[];
containsField(field: string): boolean;
checkField(field: string): void;
fieldByName(field: string): RtDataField;
getDataRow(row: number): DataRow;
rowOfDataRow(dataRow: DataRow): number;
getAllValues(rows: number[], fields: string[], fieldCheck: boolean): RtRowValues[];
}
interface IRtFieldSummary {
count: number;
sum: number;
min: number;
max: number;
avg: number;
std: number;
stdp: number;
var: number;
varp: number;
ncount: number;
navg: number;
nstd: number;
nstdp: number;
nvar: number;
nvarp: number;
}
declare class DataFlags extends RtObject {
static readonly MAX_UI_FLAG = 15;
static readonly MAX_USER_FLAG = 16;
static isCheckedFlag(flag: number): boolean;
static isCheckableFlag(flag: number): boolean;
static isDetailedFlag(flag: number): boolean;
static isUserFlag(flag: number): number;
private _data;
_rows: number[];
_checkedCount: number;
constructor(data: ListDataSource<any>);
protected _doDestory(): void;
get count(): number;
checkedCount(): number;
isChecked(row: number): boolean;
setChecked(row: number, checked: boolean): boolean;
checkRows(rows: number[], checked: boolean): number[];
checkRange(row: number, count: number, checked: boolean): number[];
checkAll(checked: boolean): boolean;
getCheckedRows(checked: boolean): number[];
isCheckable(row: number): boolean;
setCheckable(row: number, checkable: boolean): boolean;
setCheckables(rows: number[], checkable: boolean): number[];
setCheckableRange(row: number, count: number, checkable: boolean): number[];
setCheckableAll(checkable: boolean): boolean;
getCheckableRows(checkable: boolean, rows: number[]): number[];
getSearchedRows(): number[];
isSearched(row: number): boolean;
setSearched(row: number, searched: boolean): boolean;
clearSearched(): boolean;
isDetailed(row: number): boolean;
setDetailed(row: number, detailed: boolean, exclusive: boolean): boolean;
detailRows(rows: number[], detailed: boolean): number[];
detailRange(row: number, count: number, detailed: boolean): number[];
detailAll(detailed: boolean): boolean;
getDetailedRows(detailed: boolean): number[];
hasUserFlag(row: number, flag: number): boolean;
getUserFlaggedRows(flag: number, set: boolean): number[];
setUserFlag(row: number, flag: number, set: boolean): boolean;
setUserFlags(rows: number[], flag: number, set: boolean): number[];
setUserFlagRange(row: number, count: number, flag: number, set: boolean): number[];
setUserFlagAll(flag: number, set: boolean): boolean;
hasUiFlag(row: number, flag: number): boolean;
getUiFlaggedRows(flag: number, set: boolean): number[];
setUiFlag(row: number, flag: number, set: boolean): boolean;
setUiFlags(rows: number[], flag: number, set: boolean): number[];
setUiFlagRange(row: number, count: number, flag: number, set: boolean): number[];
setUiFlagAll(flag: number, set: boolean): boolean;
private $_setFlag;
private $_changeFlag;
private $_changeRows;
private $_changeRange;
private $_changeAll;
private $_getFlagged;
}
declare class DataFlagsCollection extends RtObject {
private _data;
private _flags;
constructor(data: ListDataSource<any>);
protected _doDestory(): void;
isEmpty(): boolean;
_rowAdded(row: number): void;
_rowsAdded(rows: number[]): void;
_rowRangeAdded(row: number, count: number): void;
_cleared(oldCount: number): void;
_rowDeleted(row: number): void;
_rowsDeleted(rows: number[]): void;
_rangeDeleted(row: number, count: number): void;
_rowMoved(row: number, to: number): void;
_rowsMoved(row: number, count: number, to: number): void;
_reset(drows: DataRow[]): void;
get(owner: RtObject): DataFlags;
add(owner: RtObject): DataFlags;
remove(owner: RtObject): void;
}
interface IListDataObjectListener {
onDataFlagChanged?(data: IDataView, flags: DataFlags, row: number, flag: number): void;
onDataFlagsChanged?(data: IDataView, flags: DataFlags, rows: number[], flag: number): void;
onDataFlagAllChanged?(data: IDataView, flags: DataFlags, flag: number): void;
}
declare abstract class ListDataSource<T extends IListDataObjectListener> extends RtEventProvider<T> {
static checkRow(dv: IDataView, row: number): void;
static checkRow2(dv: IDataView, row: number, inclusive: boolean): void;
static checkRows(dv: IDataView, rows: number[]): void;
static getFieldValue(dv: ILayoutData, row: number, field: string): any;
static setFieldValue(dv: ILayoutData, row: number, field: string, value: any): void;
private _name;
protected _flags: DataFlagsCollection;
constructor(name: string);
name(): string;
abstract rowCount(): number;
addFlags(owner: RtObject): DataFlags;
removeFlags(owner: RtObject): void;
getFlags(owner: RtObject): DataFlags;
flagChanged(flags: DataFlags, row: number, flag: number): void;
flagsChanged(flags: DataFlags, rows: number[], flag: number): void;
flagAllChanged(flags: DataFlags, flag: number): void;
abstract deleteRow(row: number, force: boolean): void;
abstract deleteRows(rows: number[], force: boolean): void;
}
type ListDataWrapper = IDataView | IDataViewWrapper;
interface ITemplateHtmlProvider {
doc(): Document;
getTemplateHtml(id: string): HTMLElement;
}
declare class RtParam {
static create(name: string, defaultValue?: string, format?: string): RtParam;
source: string;
name: string;
field: string;
stock: boolean;
default?: string;
format?: string;
constructor(source: string, name: string, defaultValue: string, format: string);
}
type RtParamValues = {
[param: string]: any;
};
interface IRtParamInflater {
inflateParam(target: any, field: string, param: RtParam): any;
inflateStock(target: any, field: string, param: RtParam): any;
templateParams?: object;
}
type RtParamObject = {
[key: string]: string | RtParamString;
};
declare class RtParamString {
static parse(s: any): RtParamString | any;
static load(source: any): RtParamObject;
private _params;
private constructor();
get count(): number;
get(index: number): RtParam | string;
private _args;
inflate(context: any, target: any, field: string, inflater: RtParamValues | IRtParamInflater): any;
}
declare enum RtRowType {
NORMAL = "normal",
TABLE = "table"
}
declare enum RtOrientation {
HORIZONTAL = "horizontal",
VERTICAL = "vertical"
}
declare enum RtScreenOrientation {
PORTRAIT = "portrait",
LANDSCAPE = "landscape"
}
declare enum RtItemsAlign {
START = "start",
CENTER = "center",
END = "end"
}
declare enum RtHorizontalAlign {
LEFT = "left",
CENTER = "center",
RIGHT = "right"
}
declare enum RtVerticalAlign {
TOP = "top",
MIDDLE = "middle",
BOTTOM = "bottom"
}
declare enum RtItemsArrange {
START = "start",
END = "end",
CENTER = "center",
SPACE_BETWEEN = "spaceBetween",
SPACE_AROUND = "spaceAround"
}
interface IRtIconSet {
width: number;
height: number;
root?: string;
icons: {
[name: string]: string;
};
}
interface IRtIconInfo {
width: number;
height: number;
url: string;
}
declare class RtIconSet extends RtObject {
private _width;
private _height;
private _root;
private _icons;
constructor(config: IRtIconSet);
get width(): number;
get height(): number;
getUrl(name: string): string;
get(name: string): string;
set(name: string, url: string): void;
}
declare enum RtSortDirection {
ASCENDING = "ascending",
DESCENDING = "descending"
}
interface IRtRowGroupContext {
level: number;
expanded: boolean;
count: number;
value: any;
}
interface IRtTemplateRowStyles {
default?: StyleOrClass;
alternate?: StyleOrClass;
created?: StyleOrClass;
updated?: StyleOrClass;
deleted?: StyleOrClass;
checked?: StyleOrClass;
selected?: StyleOrClass;
searched?: StyleOrClass;
}
interface IRtRowStyleArgs {
control: RtControlOrWrapper;
data: IDataViewWrapper;
row: number;
ctx: IRtRowGroupContext;
}
type RtRowStyleCallback = (args: IRtRowStyleArgs) => StyleOrClass;
declare class RtRowStyles implements IRtTemplateRowStyles {
callback: RtRowStyleCallback;
default: StyleOrClass;
alternate: StyleOrClass;
created: StyleOrClass;
updated: StyleOrClass;
deleted: StyleOrClass;
checked: StyleOrClass;
selected: StyleOrClass;
searched: StyleOrClass;
}
declare enum RtMode {
DEFAULT = "default",
CARD = "card"
}
declare enum RtRenderMode {
DEFAULT = "default",
PRE = "pre",
FULL = "full"
}
type RtTextFormatter = (value: string) => string;
type RtBooleanFormatter = (value: boolean) => string;
type RtNumberFormatter = (value: number) => string;
type RtDateFormatter = (date: Date) => string;
declare enum RtRowClickAction {
NONE = "none",
CHECK = "check",
COMMAND = "command",
EXPAND = "expand",
DETAIL = "detail",
DETAILEX = "detailex",
INFO = "info",
EDIT = "edit",
LINK = "link",
SELECT = "select",
MOVE = "move",
MENU = "menu"
}
declare enum RtOverScrollEffect {
NONE = "none",
BALLOON = "balloon"
}
declare enum RtRowSwipeAction {
NONE = "none",
COMMAND = "command",
PAGE = "page",
TAP = "tap",
INFO = "info",
EDIT = "edit",
ROW_BAR = "rowBar",
ACTION_BAR = "actionBar"
}
declare enum RtRowChangeDirection {
DEFAULT = "default",
HORIZONTAL = "horizontal",
VERTICAL = "vertical",
BOTH = "both"
}
declare enum RtPanelType {
FORM = "form",
BUTTON = "button",
SEARCH = "search"
}
declare enum RtButtonLabelPosition {
NONE = "none",
LEFT = "left",
RIGHT = "right",
TOP = "top",
BOTTOM = "bottom"
}
interface IRtButtonEnableArgs {
control: RtControl | RtWrapper<RtControl>;
button: IRtButtonModel;
}
type RtButtonEnableCallback = (args: IRtButtonEnableArgs) => boolean;
interface IRtButtonModel {
name?: string;
style?: StyleOrClass;
label?: string;
labelPosition?: RtButtonLabelPosition;
shape?: string;
shapeWidth?: number;
shapeHeight?: number;
imageUrl?: string;
imageWidth?: number;
imageHeight?: number;
enabled?: boolean | RtButtonEnableCallback;
}
interface IRtOptionItemOwner extends ITemplateHtmlProvider {
optionItemChanged(option: any): void;
registerTemplate(name: string, template: any, vars: any, shared: boolean): TemplateType;
getTemplate(template: string): TemplateType;
}
declare abstract class RtWrappableOptions<T extends RtWrappableObject> extends RtWrappableObject {
private _owner;
protected _defs: T;
constructor(owner: IRtOptionItemOwner, defaults: T);
protected abstract _doInitDefaults(): void;
protected owner(): IRtOptionItemOwner;
protected _changed(): void;
}
interface IRtSeriesValue {
min?: number;
max?: number;
hasBelow?: boolean;
values: number[];
}
declare enum RtSlideDirection {
DEFAULT = "default",
RANDOM = "random",
LEFT = "left",
RIGHT = "right",
UP = "up",
DOWN = "down"
}
interface IRtFieldValue {
field: string;
value: any;
}
declare enum RtGroupIndentMode {
ROW = "row",
BODY = "body"
}
declare enum RtRowIndents {
NONE = "none",
PARENT = "parent",
INNER = "inner"
}
interface IRtRowParamArgs {
context: any;
control: RtControlOrWrapper;
row: number;
field: string;
values: any;
value: any;
}
interface IRtShowPanelOptions {
container: HTMLElement;
left: string | number;
top: string | number;
width: string | number;
height: string | number;
callback: (model: any) => void;
}
interface IRendererScope {
sortMarkVisible?: boolean;
sortOrderVisible?: boolean;
}
declare enum RtBadgePosition {
TOP_LEFT = "topLeft",
TOP_RIGHT = "topRight",
BOTTOM_LEFT = "bottomLeft",
BOTTOM_RIGHT = "bottomRight"
}
interface IRtStyleCallbackArgs {
row: number;
value: any;
}
interface IEditContext {
getValue(idOrField: string): any;
setValue(idOrField: string, value: any): void;
}
interface ILayoutEditContext extends IEditContext {
isVisible(id: string): boolean;
setVisible(id: string, visible: boolean): void;
}
declare enum RtDataValueSourceType {
JSON = "json",
FIELD = "field",
CSV = "csv",
TSV = "tsv"
}
interface IRtDataValueSource {
type?: RtDataValueSourceType;
values: any;
fieldMap?: {
[prop: string]: string;
};
reader?: RtDataValueReader;
rowCount?: number;
lengthField?: string;
fieldHeader?: number;
fieldCount?: number;
startRow?: number;
quoted?: boolean;
multiTabs?: boolean;
skipBlank?: boolean;
trimLast?: boolean;
}
interface IListDataListener extends IListDataObjectListener {
onDataValueUpdated?(data: IDataView, row: number, field: string, prop: string[], value: any, oldValue: RtRowValues): void;
onDataRowUpdated?(data: IDataView, row: number, oldValues: RtRowValues): void;
onDataRowsUpdated?(data: IDataView, rows: number[], oldValues: RtRowValues[]): void;
onDataRowAdded?(data: IDataView, row: number): void;
onDataRowsAdded?(data: IDataView, row: number, count: number): void;
onDataCleared?(data: IDataView, oldCount: number): void;
onDataLoaded?(data: IDataView, oldCount: number): void;
onDataRowDeleted?(data: IDataView, row: number, rowid: number): void;
onDataRowsDeleted?(data: IDataView, rows: number[], rowids: number[]): void;
onDataRangeDeleted?(data: IDataView, row: number, count: number): void;
onDataRowMoved?(data: IDataView, from: number, to: number): void;
onDataRowsMoved?(data: IDataView, from: number, count: number, to: number): void;
onDataCountChanged?(data: IDataView, newCount: number, oldCount: number): void;
onDataStateChanged?(data: IDataView, rowId: number, oldState: RtDataRowState): void;
onDataStatesChanged?(data: IDataView, rowIds: number[], oldStates: RtDataRowState[]): void;
onDataChanged?(data: IDataView): void;
onDataEndUpdated?(data: IDataView, newCount: number, oldCount: number): void;
}
type DataOrWrapper$2 = ListData | IDataViewWrapper;
type RtDataValidator = (dv: DataOrWrapper$2, row: number, values: any) => string | {
field: string;
message: string;
};
interface IRtDataOptions {
name?: string;
title?: string;
readOnly?: boolean;
fields?: (IRtDataField | string)[];
derivedFields?: IRtDerivedField[];
valuesByField?: boolean;
stateful?: boolean;
softDeleting?: boolean;
restorable?: boolean;
validator?: RtDataValidator;
}
declare abstract class ListData extends ListDataSource<IListDataListener> implements ISimpleDataView {
private _wrapper;
private _title;
private _readOnly;
private _stateful;
private _softDeleting;
private _restorable;
private _validator;
private _fields;
private _derivedFields;
private _fieldNames;
private _fieldMap;
private _derivedMap;
protected _rows: DataRow[];
private _summaries;
private _prevCount;
private _evLock;
private _args;
constructor(name: string,