Skip to content

Commit

Permalink
Merge 92f5484 into 72042fb
Browse files Browse the repository at this point in the history
  • Loading branch information
daybrush committed Jan 8, 2019
2 parents 72042fb + 92f5484 commit 2963633
Show file tree
Hide file tree
Showing 124 changed files with 9,234 additions and 44,199 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -212,3 +212,4 @@ demo/release/
CHANGELOG.md
build/
packages/*/dist
dist/
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,13 @@ Download dist files from repo directly or install it via npm.

|| Uncompressed | Compressed |
|---|----|---|
|No Dependency<br/>([@egjs/component](https://github.com/naver/egjs-component))| [infinitegrid.js (167.4kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.js)| [infinitegrid.min.js (45.9kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.min.js)|
|All| [infinitegrid.pkgd.js (176.7kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.pkgd.js) | [infinitegrid.pkgd.min.js (47.4kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.pkgd.min.js)|(https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.min.js)
|GridLayout| [infinitegrid.gridlayout.js (126.9kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.gridlayout.js) | [infinitegrid.gridlayout.min.js (36.7kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.gridlayout.min.js) |
|JustifiedLayout| [infinitegrid.justifiedlayout.js (134.7kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.justifiedlayout.js) | [infinitegrid.justifiedlayout.min.js (38.2kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.justifiedlayout.min.js)|
|FrameLayout| [infinitegrid.framelayout.js (129.9kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.framelayout.js) | [infinitegrid.framelayout.min.js (37.4kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.framelayout.min.js) |
|SquareLayout| [infinitegrid.squarelayout.js (136kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.squarelayout.js) | [infinitegrid.squarelayout.min.js (38.8kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.squarelayout.min.js) |
|PackingLayout| [infinitegrid.packinglayout.js (129.4kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.packinglayout.js) | [infinitegrid.packinglayout.min.js (37.6kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.packinglayout.min.js) |
|No Dependency<br/>([@egjs/component](https://github.com/naver/egjs-component))| [infinitegrid.js (171.1kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.js)| [infinitegrid.min.js (46kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.min.js)|
|All| [infinitegrid.pkgd.js (181kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.pkgd.js) | [infinitegrid.pkgd.min.js (47.6kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.pkgd.min.js)|(https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.min.js)
|GridLayout| [infinitegrid.gridlayout.js (129.3kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.gridlayout.js) | [infinitegrid.gridlayout.min.js (37kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.gridlayout.min.js) |
|JustifiedLayout| [infinitegrid.justifiedlayout.js (137.1kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.justifiedlayout.js) | [infinitegrid.justifiedlayout.min.js (38.2kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.justifiedlayout.min.js)|
|FrameLayout| [infinitegrid.framelayout.js (132.4kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.framelayout.js) | [infinitegrid.framelayout.min.js (37.6kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.framelayout.min.js) |
|SquareLayout| [infinitegrid.squarelayout.js (138.8kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.squarelayout.js) | [infinitegrid.squarelayout.min.js (39kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.squarelayout.min.js) |
|PackingLayout| [infinitegrid.packinglayout.js (131.8kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.packinglayout.js) | [infinitegrid.packinglayout.min.js (37.8kb)](https://naver.github.io/egjs-infinitegrid/release/latest/dist/infinitegrid.packinglayout.min.js) |

- **Specific version**
* https://naver.github.io/egjs-infinitegrid/release/[VERSION]/dist/[FILE_NAME]
Expand Down
16 changes: 9 additions & 7 deletions declaration/AutoSizer.d.ts
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
declare class AutoSizer {
static add(element: Element, prefix?: string): void;
static resize(element: Element, prefix?: boolean): void;
static remove(element: Element, isFixed?: boolean): void;
static resizeAll(): void;
interface IAutoSizierElemenet extends HTMLElement {
__PREFIX__?: string;
}

export default AutoSizer;
export default class AutoSizer {
static add(element: IAutoSizierElemenet, prefix?: string): void;
static remove(element: IAutoSizierElemenet, isFixed?: boolean): void;
static resize(element: IAutoSizierElemenet, prefix?: string): void;
static resizeAll(): void;
}
export {};
88 changes: 54 additions & 34 deletions declaration/DOMRenderer.d.ts
Original file line number Diff line number Diff line change
@@ -1,37 +1,57 @@
export interface DOMRendererStatus {
cssText: string;
_size: {
container: number;
view: number;
viewport: number;
item?: {
width: number;
height: number;
}
}
import { WindowMockType } from "./browser";
import { IInfiniteGridItem } from "./ItemManager";
import { ISize, IJQuery } from "./types";
export interface IDOMRendererOptions {
isEqualSize: boolean;
isConstantSize: boolean;
horizontal: boolean;
container: boolean | HTMLElement;
}
export interface DOMRendererOptions {
isEqualSize: boolean;
isConstantSize: boolean;
horizontal: boolean;
container: boolean | HTMLElement;
export interface IDOMRendererSize {
container?: number;
view?: number;
viewport?: number;
item?: ISize;
}

declare class DOMRenderer {
static renderItems(items: any[], transitionDuration?: number): void;
constructor(element: HTMLElement, options: DOMRendererOptions);
getStatus(): DOMRendererStatus;
setStatus(status: DOMRendererStatus): void;
updateSize(items: any[]): void;
append(items: any[]): void;
prepend(items: any[]): void;
createAndInsert(items: any[], isAppend: boolean): void;
getViewSize(): number;
getViewportSize(): number;
setContainerSize(size: number): void;
resize(): boolean;
isNeededResize(): boolean;
clear(): void;
destroy(): void;
export interface IDOMRendererStatus {
cssText: string;
_size: IDOMRendererSize;
}
export interface IDOMRendererOrgStyle {
position?: CSSStyleDeclaration["position"];
overflowX?: CSSStyleDeclaration["overflowX"];
overflowY?: CSSStyleDeclaration["overflowY"];
}
export declare function resetSize(item: IInfiniteGridItem): void;
export default class DOMRenderer {
static renderItem(item: IInfiniteGridItem, rect: IInfiniteGridItem["rect"], transitionDuration?: number): void;
static renderItems(items: IInfiniteGridItem[], transitionDuration?: number): void;
static removeItems(items: IInfiniteGridItem[]): void;
static removeElement(element: HTMLElement): void;
static createElements(items: IInfiniteGridItem[]): void;
container: HTMLElement;
view: WindowMockType | HTMLElement;
options: IDOMRendererOptions;
_size: IDOMRendererSize;
_orgStyle: IDOMRendererOrgStyle;
constructor(element: string | HTMLElement | IJQuery, options: IDOMRendererOptions);
getStatus(): {
cssText: string;
_size: IDOMRendererSize;
};
setStatus(status: IDOMRendererStatus): void;
updateSize(items: IInfiniteGridItem[]): IInfiniteGridItem[];
append(items: IInfiniteGridItem[]): void;
prepend(items: IInfiniteGridItem[]): void;
createAndInsert(items: IInfiniteGridItem[], isAppend?: boolean): void;
getViewSize(): number;
getViewportSize(): number;
setContainerSize(size: number): void;
resize(): boolean;
isNeededResize(): boolean;
clear(): void;
destroy(): void;
private _init;
private _insert;
private _calcSize;
}
export default DOMRenderer;
42 changes: 24 additions & 18 deletions declaration/ImageLoaded.d.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,26 @@
export declare type CHECK_ALL = 1;
export declare type CHECK_ONLY_ERROR = 2;
export interface IImageLoadedOptions {
prefix?: string;
length?: number;
type?: CHECK_ALL | CHECK_ONLY_ERROR;
complete?: () => void;
end?: () => void;
error?: (e: {
target: LoadingImageElement;
itemIndex: number;
}) => void;
}
export declare const CHECK_ALL: CHECK_ALL;
export declare const CHECK_ONLY_ERROR: CHECK_ONLY_ERROR;
interface LoadingImageElement extends HTMLImageElement {
__ITEM_INDEX__?: number;
}
declare class ImageLoaded {
static waitImageLoaded(needCheck: Element[], options: {
prefix?: string,
type: number,
length: number,
complete?: () => {},
error?: (params?: {target?: Element, itemIndex?:number}) => {},
end?: () => {},
}): void;
static checkImageLoaded(el: Element): void;
static check(elements: Element[], options: {
prefix?: string,
type: number,
complete?: () => {},
error?: (params?: {target?: Element, itemIndex?:number}) => {},
end?: () => {}
}): void;
static CHECK_ALL: number;
static CHECK_ONLY_ERROR: number;
static waitImageLoaded(checklist: LoadingImageElement[][], { prefix, length, type, complete, error, end }: IImageLoadedOptions): void;
static checkImageLoaded(el: HTMLElement): HTMLImageElement[];
static check(elements: HTMLElement[], { prefix, type, complete, error, end }: IImageLoadedOptions): void;
}

export default ImageLoaded;
export default ImageLoaded;
68 changes: 37 additions & 31 deletions declaration/Infinite.d.ts
Original file line number Diff line number Diff line change
@@ -1,35 +1,41 @@
import ItemManager from "./ItemManager";

export interface InfiniteStatus {
startCursor: number;
endCursor: number;
size: number;
import ItemManager, { IInfiniteGridGroup } from "./ItemManager";
import { CursorType } from "./types";
export interface IInfiniteOptions {
useRecycle?: boolean;
threshold?: number;
append?: (e?: {
cache: IInfiniteGridGroup[];
}) => void;
prepend?: (e?: {
cache: IInfiniteGridGroup[];
}) => void;
recycle?: (e?: {
start: number;
end: number;
}) => void;
}

export interface InfiniteOption {
useRecycle?: boolean;
threshold?: number;
append?: (event?: {cache: any[]}) => any;
prepend?: (event?: {cache: any[]}) => any;
recycle?: (event?: {start: number, end: number}) => any;
export interface IInfiniteStatus {
startCursor: number;
endCursor: number;
size: number;
}
declare class Infinite {
constructor(itemManager: ItemManager, options?: InfiniteOption);
setSize(size: number): this;
recycle(scrollPos: number, isForward: boolean): this;
scroll(scrollPos: number): this;
setCursor(cursor: string, index: number): this;
updateCursor(cursor: string): this;
setData(item: object, isAppend?: boolean): this;
setStatus(status: InfiniteStatus): this;
getStatus(startKey?: any, endKey?: any): InfiniteStatus;
getCursor(cursor: string): number;
getEdgeOutline(cursor: string): any[];
getEdgeValue(cursor: string): number;
getVisibleData(): any[];
getVisibleItems(): any[];
remove(element: Element): any[];
clear(): void;
options: Required<IInfiniteOptions>;
private _items;
private _status;
constructor(itemManger: ItemManager, options: IInfiniteOptions);
setSize(size: number): void;
recycle(scrollPos: number, isForward?: boolean): void;
scroll(scrollPos: number): void;
setCursor(cursor: CursorType, index: number): void;
setStatus(status: IInfiniteStatus): void;
getStatus(startKey: string | number, endKey: string | number): IInfiniteStatus;
getEdgeOutline(cursor: CursorType): number[];
getEdgeValue(cursor: CursorType): number;
getVisibleItems(): import("./ItemManager").IInfiniteGridItem[];
getCursor(cursor: CursorType): number;
getVisibleData(): IInfiniteGridGroup[];
remove(element: HTMLElement): import("./ItemManager").IInfiniteGridItem[];
clear(): void;
}

export default Infinite;
export default Infinite;
133 changes: 84 additions & 49 deletions declaration/InfiniteGrid.d.ts
Original file line number Diff line number Diff line change
@@ -1,55 +1,90 @@
import Component from "@egjs/component";
import {InfiniteStatus} from "./Infinite";
import {DOMRendererStatus} from "./DOMRenderer";
import {WatcherStatus} from "./Watcher";
import {Item, ItemStatus} from "./ItemManager";

export interface InfiniteGridOption {
itemSelector?: string;
isEqualSize?: boolean;
isOverflowScroll?: boolean;
threshold?: number;
useRecycle?: boolean;
horizontal?: boolean;
useFit?: boolean;
isConstantSize?: boolean;
transitionDuration?: number;
import { IInfiniteGridItem, IItemManagerStatus } from "./ItemManager";
import { IDOMRendererStatus } from "./DOMRenderer";
import { IWatchStatus } from "./Watcher";
import { IInfiniteStatus } from "./Infinite";
import { IJQuery, ILayout, StyleType } from "./types";
export interface IInfiniteGridOptions {
itemSelector: string;
isOverflowScroll: boolean;
threshold: number;
isEqualSize: boolean;
isConstantSize: boolean;
useRecycle: boolean;
horizontal: boolean;
transitionDuration: number;
useFit: boolean;
attributePrefix: string;
}

export interface InfiniteGridStatus {
options: InfiniteGridOption;
_items: ItemStatus;
_infinite: InfiniteStatus;
_renderer: DOMRendererStatus;
_watcher: WatcherStatus;
_status: {
loadingSize?: number;
loadingStyle?: object;
processingStatus: number;
},
export interface IInfiniteGridStatus {
_status: {
processingStatus: number;
loadingSize: number;
loadingStyle: StyleType;
};
_items: IItemManagerStatus;
_renderer: IDOMRendererStatus;
_watcher: IWatchStatus;
_infinite: IInfiniteStatus;
}


declare class InfiniteGrid extends Component {
constructor(el: string | HTMLElement, options?: InfiniteGridOption);
append(elements: (string|HTMLElement)[]| string, groupKey?: string|number): this;
prepend(elements: (string|HTMLElement)[]| string, groupKey?: string|number): this;
moveTo(index: number, itemIndex?: number): this;
clear(): this;
destroy(): void;
getGroupKeys(includeCached?: boolean): (string|number)[];
getStatus(startKey?: any, endKey?: any): InfiniteGridStatus;
getItem(el: Element | null): Item;
getItem(groupIndex: number, itemIndex: number): Item;
updateItem(el: Element | null): this;
updateItem(groupIndex: number, itemIndex: number): this;
updateItems(): this;
isProcessing(): boolean;
layout(isRelayout?: boolean): this;
remove(item: HTMLElement): (object|null);
setLayout(LayoutKlass?: any, options?: any): this;
getItems(includeCached?: boolean): Item[];
setStatus(status: InfiniteGridStatus, applyScrollPos?: boolean): this;
static VERSION: string;
options: IInfiniteGridOptions;
private _loadingBar;
private _items;
private _renderer;
private _manager;
private _watcher;
private _infinite;
private _status;
constructor(element: HTMLElement | string | IJQuery, options?: Partial<IInfiniteGridOptions>);
append(elements: HTMLElement[] | IJQuery | string[] | string, groupKey?: string | number): this;
prepend(elements: HTMLElement[] | IJQuery | string[] | string, groupKey?: string | number): this;
setLayout(LayoutKlass: ILayout | (new (...args: any[]) => ILayout), options?: {}): this;
getItems(includeCached?: boolean): IInfiniteGridItem[];
layout(isRelayout?: boolean): this;
remove(element: HTMLElement, isLayout?: boolean): IInfiniteGridItem[];
getGroupKeys(includeCached?: boolean): (string | number)[];
getStatus(startKey?: string | number, endKey?: string | number): IInfiniteGridStatus;
setStatus(status: IInfiniteGridStatus, applyScrollPos?: boolean): this;
clear(): this;
setLoadingBar(userLoadingBar?: {
append?: string | HTMLElement;
prepepnd?: string | HTMLElement;
} | string): this;
isProcessing(): boolean;
getLoadingBar(isAppend?: boolean): HTMLElement;
startLoading(isAppend?: boolean, userStyle?: StyleType): this;
endLoading(userStyle?: StyleType): this;
getItem(groupIndex?: number, itemIndex?: number): IInfiniteGridItem;
updateItem(groupIndex?: number, itemIndex?: number): this;
updateItems(): this;
moveTo(index?: number, itemIndex?: number): this;
destroy(): void;
private _setContainerSize;
private _appendLoadingBar;
private _setSize;
private _fitItems;
private _fit;
private _getEdgeValue;
private _isProcessing;
private _isLoading;
private _getLoadingStatus;
private _process;
private _insert;
private _recycle;
private _renderLoading;
private _updateItem;
private _setScrollPos;
private _scrollTo;
private _onImageError;
private _postCache;
private _postLayout;
private _requestAppend;
private _requestPrepend;
private _onResize;
private _onCheck;
private _onLayoutComplete;
private _reset;
}

export default InfiniteGrid;
Loading

0 comments on commit 2963633

Please sign in to comment.