[ui-select] angular-ui/ui-select v0.19.8 (#41401)

* Formatted with Prettier.
* Extended angular.ui.select.ISelectConfig.
* Added angular.ui.select.ISelectController.
This commit is contained in:
Adam Kwiatek
2020-01-06 15:35:31 -08:00
committed by Armando Aguirre
parent 8519e88609
commit be4fad3d81
2 changed files with 137 additions and 16 deletions
+67 -9
View File
@@ -1,7 +1,8 @@
// Type definitions for ui-select 0.13.2
// Type definitions for ui-select 0.19.8
// Project: https://github.com/angular-ui/ui-select
// Definitions by: Niko Kovačič <https://github.com/nkovacic>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// Adam Kwiatek <https://github.com/akwiatek>
// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped
// TypeScript Version: 2.3
/// <reference types="angular" />
@@ -9,11 +10,68 @@
import * as angular from 'angular';
declare module 'angular' {
export namespace ui.select {
interface ISelectConfig {
appendToBody: boolean;
resetSearchInput: boolean;
theme: string;
}
}
export namespace ui.select {
interface ISelectConfig {
appendToBody: boolean;
backspaceReset: boolean;
closeOnSelect: boolean;
dropdownPosition: string;
generateId(): number;
paste?: IPasteFn;
placeholder: string;
refreshDelay: number;
removeSelected: boolean;
resetSearchInput: boolean;
searchEnabled: boolean;
skipFocusser: boolean;
sortable: boolean;
spinnerClass: string;
spinnerEnabled: boolean;
theme: string;
}
interface ISelectController {
activeIndex: number;
clickTriggeredSelect: boolean;
closeOnSelect: boolean;
close(skipFocusser?: boolean): void;
disabled: boolean;
dropdownPosition: string;
focus: boolean;
isEmpty(): boolean;
isGrouped?: boolean;
isLocked(): boolean;
itemProperty?: string;
open: boolean;
parserResult?: IRepeatExpression;
paste?: IPasteFn;
placeholder: string;
refreshDelay: number;
refreshing: boolean;
removeSelected: boolean;
resetSearchInput: boolean;
searchEnabled: boolean;
search: string;
setFocus(): void;
sizeSearchInput(): void;
skipFocusser: boolean;
sortable: boolean;
spinnerClass: string;
spinnerEnabled: boolean;
}
interface IPasteFn {
(data: string): void;
}
interface IRepeatExpression {
filters: string;
itemName: string;
keyName: string;
modelMapper: string;
repeatExpression(grouped: boolean): string;
source: string;
trackByExp: string;
}
}
}
+70 -7
View File
@@ -1,9 +1,72 @@
import * as angular from 'angular';
angular
.module('main', ['ui-select'])
.config(function(uiSelectConfig: angular.ui.select.ISelectConfig) {
uiSelectConfig.appendToBody = true;
uiSelectConfig.resetSearchInput = true;
uiSelectConfig.theme = "bootstrap";
});
angular.module('main', ['ui-select']).config(function(uiSelectConfig: angular.ui.select.ISelectConfig) {
uiSelectConfig.appendToBody = true;
uiSelectConfig.backspaceReset = true;
uiSelectConfig.closeOnSelect = true;
uiSelectConfig.dropdownPosition = 'auto';
uiSelectConfig.generateId = function() {
return 0;
};
uiSelectConfig.paste = function(data: string) {
console.log(`Pasted [${data}]`);
};
uiSelectConfig.paste = undefined;
uiSelectConfig.placeholder = '';
uiSelectConfig.refreshDelay = 1000;
uiSelectConfig.removeSelected = true;
uiSelectConfig.resetSearchInput = true;
uiSelectConfig.searchEnabled = true;
uiSelectConfig.skipFocusser = false;
uiSelectConfig.sortable = false;
uiSelectConfig.spinnerClass = 'glyphicon glyphicon-refresh ui-select-spin';
uiSelectConfig.spinnerEnabled = false;
uiSelectConfig.theme = 'bootstrap';
});
angular.module('main', ['ui-select']).directive('myUiSelect', function() {
return {
require: 'uiSelect',
link: function(
$scope: angular.IScope,
element: angular.IAugmentedJQuery,
attrs: angular.IAttributes,
$select: angular.ui.select.ISelectController,
) {
1 === $select.activeIndex;
true === $select.clickTriggeredSelect;
true === $select.closeOnSelect;
$select.close();
$select.close(false);
true === $select.disabled;
'text' === $select.dropdownPosition;
true === $select.focus;
true === $select.isEmpty();
true === $select.isGrouped;
true === $select.isLocked();
'text' === $select.itemProperty;
true === $select.open;
'text' === $select.parserResult.filters;
'text' === $select.parserResult.itemName;
'text' === $select.parserResult.keyName;
'text' === $select.parserResult.modelMapper;
'text' === $select.parserResult.repeatExpression(true);
'text' === $select.parserResult.source;
'text' === $select.parserResult.trackByExp;
$select.paste('Pasted text');
'text' === $select.placeholder;
1 === $select.refreshDelay;
true === $select.refreshing;
true === $select.removeSelected;
true === $select.resetSearchInput;
true === $select.searchEnabled;
'text' === $select.search;
$select.setFocus();
$select.sizeSearchInput();
true === $select.skipFocusser;
true === $select.sortable;
'text' === $select.spinnerClass;
true === $select.spinnerEnabled;
},
};
});