diff --git a/types/bootstrap-treeview/bootstrap-treeview-tests.ts b/types/bootstrap-treeview/bootstrap-treeview-tests.ts new file mode 100644 index 0000000000..82f82cd6f1 --- /dev/null +++ b/types/bootstrap-treeview/bootstrap-treeview-tests.ts @@ -0,0 +1,105 @@ +// A example tree structure + +let data: BootstrapTreeViewNodeData[] = [ + { + text: "Parent 1", + nodes: [ + { + text: "Child 1", + nodes: [ + { + text: "Grandchild 1" + }, + { + text: "Node 1", + icon: "glyphicon glyphicon-stop", + selectedIcon: "glyphicon glyphicon-stop", + color: "#000000", + backColor: "#FFFFFF", + href: "#node-1", + selectable: true, + state: { + checked: true, + disabled: true, + expanded: true, + selected: true + }, + tags: ['available'] + } + ] + }, + { + text: "Child 2" + } + ] + }, + { + text: "Parent 2" + }, + { + text: "Parent 3" + }, + { + text: "Parent 4" + }, + { + text: "Parent 5" + } +]; + +// Example for treeview init with options + +$('#tree').treeview({ + data, + levels: 5, + backColor: 'green' +}); + +// Treeview functions. + +let nodeId: number = 5; + +let node: BootstrapTreeViewNodeData = data[0]; + +$('#tree').treeview('checkAll', { silent: true }); +$('#tree').treeview('checkNode', [ nodeId, { silent: true } ]); +$('#tree').treeview('clearSearch'); +$('#tree').treeview('collapseAll', { silent: true }); +$('#tree').treeview('collapseNode', [ nodeId, { silent: true, ignoreChildren: false } ]); +$('#tree').treeview('disableAll', { silent: true }); +$('#tree').treeview('disableNode', [ nodeId, { silent: true } ]); +$('#tree').treeview('enableAll', { silent: true }); +$('#tree').treeview('enableNode', [ nodeId, { silent: true } ]); +$('#tree').treeview('expandAll', { levels: 2, silent: true }); +$('#tree').treeview('expandNode', [ nodeId, { levels: 2, silent: true } ]); +$('#tree').treeview('getCollapsed', nodeId); +$('#tree').treeview('getDisabled', nodeId); +$('#tree').treeview('getEnabled', nodeId); +$('#tree').treeview('getExpanded', nodeId); +$('#tree').treeview('getExpanded', nodeId); +$('#tree').treeview('getParent', node); +$('#tree').treeview('getSelected', nodeId); +$('#tree').treeview('getSiblings', node); +$('#tree').treeview('getUnselected', nodeId); +$('#tree').treeview('remove'); +$('#tree').treeview('revealNode', [ nodeId, { silent: true } ]); +$('#tree').treeview('search', [ 'Parent', { + ignoreCase: true, // case insensitive + exactMatch: false, // like or equals + revealResults: true, // reveal matching nodes +}]); +$('#tree').treeview('selectNode', [ nodeId, { silent: true } ]); +$('#tree').treeview('toggleNodeChecked', [ nodeId, { silent: true } ]); +$('#tree').treeview('toggleNodeDisabled', [ nodeId, { silent: true } ]); +$('#tree').treeview('toggleNodeExpanded', [ nodeId, { silent: true } ]); +$('#tree').treeview('toggleNodeSelected', [ nodeId, { silent: true } ]); +$('#tree').treeview('uncheckAll', { silent: true }); +$('#tree').treeview('uncheckNode', [ nodeId, { silent: true } ]); +$('#tree').treeview('unselectNode', [ nodeId, { silent: true } ]); + +// Test events +$('#tree').treeview({ + onNodeSelected: (event: any, data: BootstrapTreeViewNodeData) => void { + // Event handler + } +}); diff --git a/types/bootstrap-treeview/index.d.ts b/types/bootstrap-treeview/index.d.ts new file mode 100644 index 0000000000..fa771a6043 --- /dev/null +++ b/types/bootstrap-treeview/index.d.ts @@ -0,0 +1,70 @@ +// Type definitions for bootstrap-treeview.js 1.20 +// Project: https://github.com/jonmiles/bootstrap-treeview +// Definitions by: Jan Böhmer +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.3 + +/// + +interface BootstrapTreeViewNodeData { + text?: string; + icon?: string; + selectedIcon?: string; + color?: string; + backColor?: string; + href?: string; + selectable?: boolean; + nodeId?: number; + state?: { + checked: boolean; + disabled: boolean; + expanded: boolean; + selected: boolean; + }; + tags?: string[]; + nodes?: BootstrapTreeViewNodeData[]; +} + +interface BootstrapTreeViewOptions { + data?: BootstrapTreeViewNodeData[]; + backColor?: string; + borderColor?: string; + checkedIcon?: string; + collapseIcon?: string; + color?: string; + emptyIcon?: string; + enableLinks?: boolean; + expandIcon?: string; + highlightSearchResults?: boolean; + highlightSelected?: boolean; + levels?: number; + multiSelect?: boolean; + nodeIcon?: string; + onhoverColor?: string; + selectedIcon?: string; + searchResultBackColor?: string; + searchResultColor?: string; + selectedBackColor?: string; + selectedColor?: string; + showBorder?: boolean; + showCheckbox?: boolean; + showIcon?: boolean; + showTags?: boolean; + uncheckedIcon?: boolean; + + onNodeSelected?(event: any, node: BootstrapTreeViewNodeData): void; + onNodeChecked?(event: any, node: BootstrapTreeViewNodeData): void; + onNodeCollapsed?(event: any, node: BootstrapTreeViewNodeData): void; + onNodeDisabled?(event: any, node: BootstrapTreeViewNodeData): void; + onNodeEnabled?(event: any, node: BootstrapTreeViewNodeData): void; + onNodeExpanded?(event: any, node: BootstrapTreeViewNodeData): void; + onNodeUnchecked?(event: any, node: BootstrapTreeViewNodeData): void; + onNodeUnselected?(event: any, node: BootstrapTreeViewNodeData): void; + onSearchComplete?(event: any, node: BootstrapTreeViewNodeData): void; + onSearchCleared?(event: any, node: BootstrapTreeViewNodeData): void; +} + +interface JQuery { + treeview(options: BootstrapTreeViewOptions): JQuery; + treeview(method: string, ...args: any[]): JQuery; +} diff --git a/types/bootstrap-treeview/tsconfig.json b/types/bootstrap-treeview/tsconfig.json new file mode 100644 index 0000000000..0dce7ab41a --- /dev/null +++ b/types/bootstrap-treeview/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6", + "dom" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "bootstrap-treeview-tests.ts" + ] +} diff --git a/types/bootstrap-treeview/tslint.json b/types/bootstrap-treeview/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/bootstrap-treeview/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }