mirror of
https://github.com/zhigang1992/DefinitelyTyped.git
synced 2026-05-08 18:34:06 +08:00
Added typings for knockout-paging library
This commit is contained in:
90
knockout-paging/knockout-paging-tests.ts
Normal file
90
knockout-paging/knockout-paging-tests.ts
Normal file
@@ -0,0 +1,90 @@
|
||||
/// <reference path="knockout-paging.d.ts" />
|
||||
|
||||
// Different option formats
|
||||
var emptyOptions = {};
|
||||
var pageNumberOptions = { pageNumber: 2 };
|
||||
var pageSizeOptions = { pageSize: 10 };
|
||||
var generatorOptions = { pageGenerator: 'sliding' };
|
||||
var allOptions = { pageNumber: 2, pageSize: 10, pageGenerator: 'sliding' };
|
||||
|
||||
function defaults() {
|
||||
ko.paging.defaults.pageNumber = 1;
|
||||
ko.paging.defaults.pageSize = 50;
|
||||
}
|
||||
|
||||
function pageGenerators() {
|
||||
|
||||
// Allow to set the windowSize on sliding page generator
|
||||
ko.paging.generators['sliding'].windowSize(5);
|
||||
|
||||
// Add custom page generator
|
||||
ko.paging.generators['custom'] = {
|
||||
generate: function(pagedObservable: KnockoutObservable<any>) {
|
||||
return [0, 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function usingPagedObservableArrayFunctionOnKnockoutStatic() {
|
||||
var simplePaged = ko.pagedObservableArray();
|
||||
var initializedPaged = ko.pagedObservableArray([1, 2, 3]);
|
||||
var emptyOptionsPaged = ko.pagedObservableArray([1, 2, 3], emptyOptions);
|
||||
var pageNumberOptionsPaged = ko.pagedObservableArray([1, 2, 3], pageNumberOptions);
|
||||
var pageSizeOptionsPaged = ko.pagedObservableArray([1, 2, 3], pageSizeOptions);
|
||||
var generatorOptionsPaged = ko.pagedObservableArray([1, 2, 3], generatorOptions);
|
||||
var allOptionsPaged = ko.pagedObservableArray([1, 2, 3], allOptions);
|
||||
|
||||
// Here we verify that the returned type is the paged observable array
|
||||
simplePaged.pageSize();
|
||||
initializedPaged.pageSize();
|
||||
emptyOptionsPaged.pageSize();
|
||||
pageNumberOptionsPaged.pageSize();
|
||||
pageSizeOptionsPaged.pageSize();
|
||||
generatorOptionsPaged.pageSize();
|
||||
allOptionsPaged.pageSize();
|
||||
}
|
||||
|
||||
function usingExtend() {
|
||||
var emptyOptionsPaged = ko.observableArray([]).extend({ paged: emptyOptions });
|
||||
var pageNumberOptionsPaged = ko.observableArray([]).extend({ paged: pageNumberOptions });
|
||||
var pageSizeOptionsPaged = ko.observableArray([]).extend({ paged: pageSizeOptions });
|
||||
var generatorOptionsPaged = ko.observableArray([]).extend({ paged: generatorOptions });
|
||||
var allOptionsPaged = ko.observableArray([]).extend({ paged: allOptions });
|
||||
var withInitialArrayValue = ko.observableArray([1, 2, 3]).extend({ paged: emptyOptions });
|
||||
|
||||
// Here we verify that the returned type is the paged observable array
|
||||
emptyOptionsPaged.pageSize();
|
||||
pageNumberOptionsPaged.pageSize();
|
||||
pageSizeOptionsPaged.pageSize();
|
||||
generatorOptionsPaged.pageSize();
|
||||
allOptionsPaged.pageSize();
|
||||
}
|
||||
|
||||
function observables() {
|
||||
var paged = ko.pagedObservableArray([]);
|
||||
var pageSize = paged.pageSize();
|
||||
var pageNumber = paged.pageNumber();
|
||||
}
|
||||
|
||||
function computed() {
|
||||
var paged = ko.pagedObservableArray([]);
|
||||
var pageItems = paged.pageItems();
|
||||
var pageCount = paged.pageCount();
|
||||
var itemCount = paged.itemCount();
|
||||
var firstItemOnPage = paged.firstItemOnPage();
|
||||
var lastItemOnPage = paged.lastItemOnPage();
|
||||
var hasPreviousPage = paged.hasPreviousPage();
|
||||
var hasNextPage = paged.hasNextPage();
|
||||
var isFirstPage = paged.isFirstPage();
|
||||
var isLastPage = paged.isLastPage();
|
||||
var pages = paged.pages();
|
||||
}
|
||||
|
||||
function functions() {
|
||||
var paged = ko.pagedObservableArray([]);
|
||||
paged.toNextPage();
|
||||
paged.toLastPage();
|
||||
paged.toNextPage();
|
||||
paged.toPreviousPage();
|
||||
paged.toFirstPage();
|
||||
}
|
||||
67
knockout-paging/knockout-paging.d.ts
vendored
Normal file
67
knockout-paging/knockout-paging.d.ts
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
// Type definitions for knockout-paging
|
||||
// Project: https://github.com/ErikSchierboom/knockout-paging
|
||||
// Definitions by: Erik Schierboom <https://github.com/ErikSchierboom>
|
||||
// Definitions: https://github.com/borisyankov/DefinitelyTyped
|
||||
|
||||
/// <reference path="../knockout/knockout.d.ts" />
|
||||
|
||||
interface KnockoutStatic {
|
||||
paging: KnockoutPagingOptions;
|
||||
pagedObservableArray<T>(initialValue?: T[], options?: KnockoutPagedOptions): KnockoutPagedObservableArray<T>;
|
||||
}
|
||||
|
||||
interface KnockoutPagingOptions {
|
||||
defaults: KnockoutPagingDefaultOptions;
|
||||
generators: {
|
||||
[name: string]: KnockoutPageGenerator;
|
||||
'sliding': KnockoutSlidingPageGenerator
|
||||
}
|
||||
}
|
||||
|
||||
interface KnockoutPagingDefaultOptions {
|
||||
pageNumber: number;
|
||||
pageSize: number;
|
||||
}
|
||||
|
||||
interface KnockoutPagedObservableArray<T> extends KnockoutObservableArray<T> {
|
||||
pageSize: KnockoutObservable<number>;
|
||||
pageNumber: KnockoutObservable<number>;
|
||||
|
||||
pageItems: KnockoutComputed<T[]>;
|
||||
pageCount: KnockoutComputed<number>;
|
||||
itemCount: KnockoutComputed<number>;
|
||||
firstItemOnPage: KnockoutComputed<number>;
|
||||
lastItemOnPage: KnockoutComputed<number>;
|
||||
hasPreviousPage: KnockoutComputed<boolean>;
|
||||
hasNextPage: KnockoutComputed<boolean>;
|
||||
isFirstPage: KnockoutComputed<boolean>;
|
||||
isLastPage: KnockoutComputed<boolean>;
|
||||
pages: KnockoutComputed<number[]>;
|
||||
|
||||
toNextPage(): void;
|
||||
toPreviousPage(): void;
|
||||
toLastPage(): void;
|
||||
toFirstPage(): void;
|
||||
}
|
||||
|
||||
interface KnockoutPagedOptions {
|
||||
pageSize?: number;
|
||||
pageNumber?: number;
|
||||
pageGenerator?: string;
|
||||
}
|
||||
|
||||
interface KnockoutObservableArray<T> {
|
||||
extend(requestedExtenders: { 'paged': any; }): KnockoutPagedObservableArray<T>;
|
||||
}
|
||||
|
||||
interface KnockoutPageGenerator {
|
||||
generate<T>(pagedObservable: KnockoutPagedObservableArray<T>): number[];
|
||||
}
|
||||
|
||||
interface KnockoutSlidingPageGenerator extends KnockoutPageGenerator {
|
||||
windowSize: KnockoutObservable<number>;
|
||||
}
|
||||
|
||||
interface KnockoutExtenders {
|
||||
paged(target: KnockoutObservableArray<any>, options: KnockoutPagedOptions): KnockoutObservableArray<any>;
|
||||
}
|
||||
Reference in New Issue
Block a user