Definition for dropkickjs library

This commit is contained in:
VorobeY1326
2017-02-07 19:24:55 +05:00
parent 78641bc221
commit 0055a7b758
4 changed files with 164 additions and 0 deletions

View File

@@ -0,0 +1,91 @@
/// <reference path="index.d.ts"/>
//constructor
var constructorNoOptions = new Dropkick('#my-select');
var constructorNoOptions2 = new Dropkick(new HTMLSelectElement());
var constructorOptions = new Dropkick('#my-select', {});
var constructorOptions2 = new Dropkick(new HTMLSelectElement(), {});
//options
var options : DropkickOptions = {
disabled: true,
form: new HTMLFormElement(),
length: 1,
mobile: true,
multiple: true,
options: ['test'],
selectedIndex: 0,
selectedOptions: ['test'],
value: 'test',
change() { },
close() { },
open() { },
initialize: () => { }
}
var withFullOptions = new Dropkick('#test', options);
var dk = new Dropkick('#test');
//fields (same as options)
var o1 = dk.disabled;
var o2 = dk.form;
var o3 = dk.length;
var o4 = dk.mobile;
var o5 = dk.multiple;
var o6 = dk.options;
var o7 = dk.selectedIndex;
var o8 = dk.selectedOptions;
var o9 = dk.value;
//methods
dk.add('new');
dk.add(new HTMLSelectElement());
dk.add('new', 'old');
dk.add('new', 1);
dk.disable();
dk.disable(false);
dk.disable(4, true);
dk.disable(4);
dk.dispose();
dk.focus();
dk.hide(4);
dk.hide(4, false);
var node = dk.item(4);
dk.open();
dk.refresh();
dk.remove(4);
dk.reset();
dk.reset(true);
var words = dk.search("qwer", "fuzzy");
var node2 = dk.select(4);
var node3 = dk.select("AL");
var node4 = dk.select(4, true);
var node5 = dk.selectOne(4);
var node6 = dk.selectOne(4, true);
//real life example
var fieldValue = '';
var selectOptions : DropkickOptions = {
open(this: Dropkick) {
const optionsList = (<any>this).data.elem.lastChild; //undocumented but useful data field
if (optionsList.scrollWidth > optionsList.offsetWidth) {
optionsList.style.width = optionsList.scrollWidth + 25 + 'px';
}
},
change: () => {
fieldValue = select.value;
}
};
var select = new Dropkick('#select', options);

52
dropkickjs/index.d.ts vendored Normal file
View File

@@ -0,0 +1,52 @@
// Type definitions for dropkickjs v2.1.9
// Project: http://dropkickjs.com/
// Definitions by Dmitry Pesterev <https://github.com/VorobeY1326/>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
interface DropkickOptions {
disabled?: boolean;
form?: Node;
length?: number;
mobile?: boolean;
multiple?: boolean;
options?: Array<string>;
selectedIndex?: number;
selectedOptions?: Array<string>;
value?: string;
change?: () => void;
close?: () => void;
initialize?: () => void;
open?: () => void;
}
declare class Dropkick {
constructor(id: string, options?: DropkickOptions);
constructor(element: HTMLElement, options?: DropkickOptions);
add(value: string | Node, before?: number | string): void;
close(): void;
disable(disabled?: boolean): void;
disable(index: number, disabled?: boolean): void;
dispose(): void;
focus(): void;
hide(index: number, hidden?: boolean): void;
item(index: number): Node;
open(): void;
refresh(): void;
remove(index: number): void;
reset(clear?: boolean): void;
search(string: string, mode?: string): Array<string>;
select(element: number|string, selectDisabled?: boolean): Node;
selectOne(element: number, selectDisabled?: boolean): Node;
disabled: boolean;
form: Node;
length: number;
mobile: boolean;
multiple: boolean;
options: Array<string>;
selectedIndex: number;
selectedOptions: Array<string>;
value: string;
}

20
dropkickjs/tsconfig.json Normal file
View File

@@ -0,0 +1,20 @@
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": true,
"baseUrl": "../",
"typeRoots": [
"../"
],
"types": [],
"noEmit": true,
"forceConsistentCasingInFileNames": true
},
"files": [
"index.d.ts",
"dropkickjs-tests.ts"
]
}

1
dropkickjs/tslint.json Normal file
View File

@@ -0,0 +1 @@
{ "extends": "../tslint.json" }