knockout-paging: Provides its own types (#15636)

This commit is contained in:
Andy
2017-04-17 09:18:27 -07:00
committed by GitHub
parent 56939d9bf9
commit a6f478678a
4 changed files with 6 additions and 180 deletions
+6
View File
@@ -204,6 +204,12 @@
"sourceRepoURL": "https://github.com/tdegrunt/jsonschema",
"asOfVersion": "1.1.1"
},
{
"libraryName": "knockout-paging",
"typingsPackageName": "knockout-paging",
"sourceRepoURL": "https://github.com/ErikSchierboom/knockout-paging",
"asOfVersion": "0.3.1"
},
{
"libraryName": "Linq.JS",
"typingsPackageName": "linq",
-67
View File
@@ -1,67 +0,0 @@
// Type definitions for knockout-paging
// Project: https://github.com/ErikSchierboom/knockout-paging
// Definitions by: Erik Schierboom <https://github.com/ErikSchierboom>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
/// <reference types="knockout" />
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>;
}
@@ -1,90 +0,0 @@
// 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();
}
-23
View File
@@ -1,23 +0,0 @@
{
"compilerOptions": {
"module": "commonjs",
"lib": [
"es6",
"dom"
],
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": false,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"knockout-paging-tests.ts"
]
}