mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
fix: It should be possible to scroll in the unit picker before selecting a value #14871
This commit is contained in:
parent
d907b1ec6b
commit
d59f1fe629
@ -141,6 +141,9 @@ export function dropdownTypeahead2($compile) {
|
|||||||
link: ($scope, elem, attrs) => {
|
link: ($scope, elem, attrs) => {
|
||||||
const $input = $(inputTemplate);
|
const $input = $(inputTemplate);
|
||||||
const $button = $(buttonTemplate);
|
const $button = $(buttonTemplate);
|
||||||
|
const timeoutId = {
|
||||||
|
blur: null
|
||||||
|
};
|
||||||
$input.appendTo(elem);
|
$input.appendTo(elem);
|
||||||
$button.appendTo(elem);
|
$button.appendTo(elem);
|
||||||
|
|
||||||
@ -177,6 +180,14 @@ export function dropdownTypeahead2($compile) {
|
|||||||
[]
|
[]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
const closeDropdownMenu = () => {
|
||||||
|
$input.hide();
|
||||||
|
$input.val('');
|
||||||
|
$button.show();
|
||||||
|
$button.focus();
|
||||||
|
elem.removeClass('open');
|
||||||
|
};
|
||||||
|
|
||||||
$scope.menuItemSelected = (index, subIndex) => {
|
$scope.menuItemSelected = (index, subIndex) => {
|
||||||
const menuItem = $scope.menuItems[index];
|
const menuItem = $scope.menuItems[index];
|
||||||
const payload: any = { $item: menuItem };
|
const payload: any = { $item: menuItem };
|
||||||
@ -184,6 +195,7 @@ export function dropdownTypeahead2($compile) {
|
|||||||
payload.$subItem = menuItem.submenu[subIndex];
|
payload.$subItem = menuItem.submenu[subIndex];
|
||||||
}
|
}
|
||||||
$scope.dropdownTypeaheadOnSelect(payload);
|
$scope.dropdownTypeaheadOnSelect(payload);
|
||||||
|
closeDropdownMenu();
|
||||||
};
|
};
|
||||||
|
|
||||||
$input.attr('data-provide', 'typeahead');
|
$input.attr('data-provide', 'typeahead');
|
||||||
@ -223,16 +235,15 @@ export function dropdownTypeahead2($compile) {
|
|||||||
elem.toggleClass('open', $input.val() === '');
|
elem.toggleClass('open', $input.val() === '');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
elem.mousedown((evt: Event) => {
|
||||||
|
evt.preventDefault();
|
||||||
|
timeoutId.blur = null;
|
||||||
|
});
|
||||||
|
|
||||||
$input.blur(() => {
|
$input.blur(() => {
|
||||||
$input.hide();
|
timeoutId.blur = setTimeout(() => {
|
||||||
$input.val('');
|
closeDropdownMenu();
|
||||||
$button.show();
|
}, 1);
|
||||||
$button.focus();
|
|
||||||
// clicking the function dropdown menu won't
|
|
||||||
// work if you remove class at once
|
|
||||||
setTimeout(() => {
|
|
||||||
elem.removeClass('open');
|
|
||||||
}, 200);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$compile(elem.contents())($scope);
|
$compile(elem.contents())($scope);
|
||||||
|
Loading…
Reference in New Issue
Block a user