Merge pull request #32348 from denisname/select2-v3

Select2 v3: Linting
This commit is contained in:
Pranav Senthilnathan
2019-01-31 10:44:02 -08:00
committed by GitHub
4 changed files with 102 additions and 161 deletions
+57 -58
View File
@@ -4,7 +4,6 @@
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
/// <reference types="jquery"/>
interface Select2QueryOptions {
@@ -23,8 +22,8 @@ interface AjaxFunction {
interface Select2AjaxOptions extends JQueryAjaxSettings {
transport?: AjaxFunction;
/**
* Url to make request to, Can be string or a function returning a string.
*/
* Url to make request to, Can be string or a function returning a string.
*/
url?: any;
dataType?: string;
quietMillis?: number;
@@ -93,77 +92,77 @@ interface Select2Plugin {
(): JQuery;
(it: IdTextPair): JQuery;
/**
* Get the id value of the current selection
*/
/**
* Get the id value of the current selection
*/
(method: 'val'): any;
/**
* Set the id value of the current selection
* @params value Value to set the id to
* @params triggerChange Should a change event be triggered
*/
/**
* Set the id value of the current selection
* @params value Value to set the id to
* @params triggerChange Should a change event be triggered
*/
(method: 'val', value: any, triggerChange?: boolean): any;
/**
* Get the data object of the current selection
*/
/**
* Get the data object of the current selection
*/
(method: 'data'): any;
/**
* Set the data of the current selection
* @params value Object to set the data to
* @params triggerChange Should a change event be triggered
*/
/**
* Set the data of the current selection
* @params value Object to set the data to
* @params triggerChange Should a change event be triggered
*/
(method: 'data', value: any, triggerChange?: boolean): any;
/**
* Whether it is open
*/
/**
* Whether it is open
*/
(method: 'opened'): boolean;
/**
* Whether it is in focus
*/
/**
* Whether it is in focus
*/
(method: 'isFocused'): boolean;
/**
* Reverts changes to DOM done by Select2. Any selection done via Select2 will be preserved.
*/
/**
* Reverts changes to DOM done by Select2. Any selection done via Select2 will be preserved.
*/
(method: 'destroy'): JQuery;
/**
* Opens the dropdown
*/
/**
* Opens the dropdown
*/
(method: 'open'): JQuery;
/**
* Closes the dropdown
*/
/**
* Closes the dropdown
*/
(method: 'close'): JQuery;
/**
* Disables Select2
*/
/**
* Disables Select2
*/
(method: 'disable'): JQuery;
/**
* Enables or disables Select2 and its underlying form component
* @param value True if it should be enabled false if it should be disabled
*/
/**
* Enables or disables Select2 and its underlying form component
* @param value True if it should be enabled false if it should be disabled
*/
(method: 'enable', value?: boolean): JQuery;
/**
* Enable its focus
*/
/**
* Enable its focus
*/
(method: 'focus'): JQuery;
/**
* Toggles readonly mode on Select2 and its underlying form component
* @param value True if it should be readonly false if it should be read write
*/
/**
* Toggles readonly mode on Select2 and its underlying form component
* @param value True if it should be readonly false if it should be read write
*/
(method: 'readonly', value: boolean): JQuery;
/**
* Retrieves the main container element that wraps all of DOM added by Select2
*/
/**
* Retrieves the main container element that wraps all of DOM added by Select2
*/
(method: 'container'): JQuery;
/**
* Notifies Select2 that a drag and drop sorting operation has started
*/
/**
* Notifies Select2 that a drag and drop sorting operation has started
*/
(method: 'onSortStart'): JQuery;
/**
* Notifies Select2 that a drag and drop sorting operation has finished
*/
/**
* Notifies Select2 that a drag and drop sorting operation has finished
*/
(method: 'onSortEnd'): JQuery;
/**
/**
* Executes a new search using the provided value. Example: $("#tags").select2("search", "California")
*/
(method: 'search'): JQuery;
+42 -30
View File
@@ -9,9 +9,9 @@ $("#e2_2").select2({
$("#e3").select2({
minimumInputLength: 2
});
function format(state) {
function format(state: any) {
if (!state.id) return state.text;
return "<img class='flag' src='images/flags/" + state.id.toLowerCase() + ".png'/>" + state.text;
return `<img class='flag' src='images/flags/${state.id.toLowerCase()}.png'/>${state.text}`;
}
$("#e4").select2({
formatResult: format,
@@ -21,10 +21,10 @@ $("#e5").select2({
minimumInputLength: 1,
query: function (query) {
console.info('current element value:', query.element.val());
var data = { results: [] }, i, j, s;
for (i = 1; i < 5; i++) {
s = "";
for (j = 0; j < i; j++) { s = s + query.term; }
const data = { results: [] as IdTextPair[] };
for (let i = 1; i < 5; i++) {
let s = "";
for (let j = 0; j < i; j++) { s = s + query.term; }
data.results.push({ id: query.term + i, text: s });
}
}
@@ -35,7 +35,7 @@ $("#e10").select2({
data: [{ id: 0, text: 'enhancement' }, { id: 1, text: 'bug' }, { id: 2, text: 'duplicate' }, { id: 3, text: 'invalid' }, { id: 4, text: 'wontfix' }]
});
var data = [{ id: 0, tag: 'enhancement' }, { id: 1, tag: 'bug' }, { id: 2, tag: 'duplicate' }, { id: 3, tag: 'invalid' }, { id: 4, tag: 'wontfix' }];
const data = [{ id: 0, tag: 'enhancement' }, { id: 1, tag: 'bug' }, { id: 2, tag: 'duplicate' }, { id: 3, tag: 'invalid' }, { id: 4, tag: 'wontfix' }];
$("#e10_2").select2({
data: { results: data, text: 'tag' },
@@ -44,11 +44,20 @@ $("#e10_2").select2({
});
$("#e10_3").select2({
data: { results: data, text: function (item) { console.log('called with', item); return item.tag; } },
data: {
results: data,
text: (item: {tag: string}) => {
console.log('called with', item);
return item.tag;
}
},
formatSelection: format,
formatResult: format
});
var movieFormatResult, movieFormatSelection;
let movieFormatResult;
let movieFormatSelection;
$("#e6").select2({
placeholder: "Search for a movie",
minimumInputLength: 1,
@@ -75,7 +84,7 @@ $("#e6").select2({
placeholder: "Search for a movie",
minimumInputLength: 1,
ajax: {
url: () => { return "http://api.rottentomatoes.com/api/public/v1.0/movies.json"; },
url: () => "http://api.rottentomatoes.com/api/public/v1.0/movies.json",
dataType: 'jsonp',
data: function (term, page) {
return {
@@ -131,7 +140,7 @@ $("#e7").select2({
};
},
results: function (data, page) {
var more = (page * 10) < data.total;
const more = (page * 10) < data.total;
return { results: data.movies, more: more };
}
},
@@ -140,7 +149,7 @@ $("#e7").select2({
dropdownCssClass: "bigdrop"
});
function sort(elements) {
function sort(elements: any) {
return elements.sort();
}
@@ -170,13 +179,12 @@ $("#e11_2").select2({
multiple: true,
data: [{ id: 0, text: 'story' }, { id: 1, text: 'bug' }, { id: 2, text: 'task' }]
});
function log(e) {
var item = $("<li>" + e + "</li>");
function log(e: string) {
const item = $(`<li>${e}</li>`);
$("#events_11").append(item);
item.animate({ opacity: 1 }, 10000, 'linear', function () { item.animate({ opacity: 0 }, 2000, 'linear', function () { item.remove(); }); });
}
$("#e11")
// TS 0.9.5: correct overload not resolved https://typescript.codeplex.com/discussions/472172
.on("change", function (e: Select2JQueryEventObject) { log(JSON.stringify({ val: e.val, added: e.added, removed: e.removed })); })
.on("open", function () { log("open"); });
$("#e11_2")
@@ -201,7 +209,7 @@ $("#e16_2").select2();
$("#e16_enable").click(function () { $("#e16,#e16_2").select2("enable"); });
$("#e16_disable").click(function () { $("#e16,#e16_2").select2("enable", false); });
$("#e17").select2({
matcher: function (term, text) { return text.toUpperCase().indexOf(term.toUpperCase()) == 0; }
matcher: function (term, text) { return text.toUpperCase().indexOf(term.toUpperCase()) === 0; }
});
$("#e17_2").select2({
matcher: function (term, text, opt) {
@@ -210,22 +218,26 @@ $("#e17_2").select2({
}
});
$("#e18,#e18_2").select2();
alert("Selected value is: " + $("#e8").select2("val")); $("#e8").select2("val", { id: "CA", text: "Califoria" });
$("#e19").select2({nextSearchTerm: function(selectedObject: object, currentSearchTerm: string) {
return currentSearchTerm;
}});
alert("Selected value is: " + $("#e8").select2("val"));
$("#e8").select2("val", {id: "CA", text: "Califoria"});
$('#e20').select2({
tokenizer: (textInput, selection, selectCallback, options) => {
if (options.dropdownAutoWidth) {
selectCallback();
return null;
} else if (options.allowClear) {
selectCallback(textInput + '_');
return textInput + '_';
$("#e1").select2({
nextSearchTerm: (selectedObject: object, currentSearchTerm: string) => {
return currentSearchTerm;
}
});
$("#id").select2({
tokenizer: (textInput, selection, selectCallback, options) => {
if (options.dropdownAutoWidth) {
selectCallback();
return null;
} else if (options.allowClear) {
selectCallback(textInput + '_');
return textInput + '_';
}
selection.push('extra');
}
selection.push('extra');
}
});
$("#e8").select2("val");
+2 -2
View File
@@ -5,8 +5,8 @@
"es6",
"dom"
],
"noImplicitAny": false,
"noImplicitThis": false,
"noImplicitAny": true,
"noImplicitThis": true,
"strictNullChecks": false,
"strictFunctionTypes": true,
"baseUrl": "../../",
+1 -71
View File
@@ -1,79 +1,9 @@
{
"extends": "dtslint/dt.json",
"rules": {
"adjacent-overload-signatures": false,
"array-type": false,
"arrow-return-shorthand": false,
"ban-types": false,
"callable-types": false,
"comment-format": false,
"dt-header": false,
"eofline": false,
"export-just-namespace": false,
"import-spacing": false,
"interface-name": false,
"interface-over-type-literal": false,
"jsdoc-format": false,
"max-line-length": false,
"member-access": false,
"new-parens": false,
"no-any-union": false,
"no-boolean-literal-compare": false,
"no-conditional-assignment": false,
"no-consecutive-blank-lines": false,
"no-construct": false,
"no-declare-current-package": false,
"no-duplicate-imports": false,
"no-duplicate-variable": false,
"no-empty-interface": false,
"no-for-in-array": false,
"no-inferrable-types": false,
"no-internal-module": false,
"no-irregular-whitespace": false,
"no-mergeable-namespace": false,
"no-misused-new": false,
"no-namespace": false,
"no-object-literal-type-assertion": false,
"no-padding": false,
"no-redundant-jsdoc": false,
"no-redundant-jsdoc-2": false,
"no-redundant-undefined": false,
"no-reference-import": false,
"no-relative-import-in-test": false,
"no-self-import": false,
"no-single-declare-module": false,
"no-string-throw": false,
"no-unnecessary-callback-wrapper": false,
"no-unnecessary-class": false,
"no-unnecessary-generics": false,
"no-unnecessary-qualifier": false,
"no-unnecessary-type-assertion": false,
"no-useless-files": false,
"no-var-keyword": false,
"no-var-requires": false,
"no-void-expression": false,
"no-trailing-whitespace": false,
"object-literal-key-quotes": false,
"object-literal-shorthand": false,
"one-line": false,
"one-variable-per-declaration": false,
"only-arrow-functions": false,
"prefer-conditional-expression": false,
"prefer-const": false,
"prefer-declare-function": false,
"prefer-for-of": false,
"prefer-method-signature": false,
"prefer-template": false,
"radix": false,
"semicolon": false,
"space-before-function-paren": false,
"space-within-parens": false,
"strict-export-declare-modifiers": false,
"trim-file": false,
"triple-equals": false,
"typedef-whitespace": false,
"unified-signatures": false,
"void-return": false,
"whitespace": false
"unified-signatures": false
}
}