forked from website/openpower.foundation
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			JavaScript
		
	
'use strict';
 | 
						|
var inputField = document.querySelector('.member-value');
 | 
						|
var dropdown = document.querySelector('.member-list');
 | 
						|
var dropdownArray = [].concat(document.querySelectorAll('li'));
 | 
						|
var dropdownItems = dropdownArray[0];
 | 
						|
var valueArray = [];
 | 
						|
dropdownItems.forEach(function (item) {
 | 
						|
	valueArray.push(item.textContent);
 | 
						|
});
 | 
						|
var closeDropdown = function closeDropdown() {
 | 
						|
	dropdown.classList.remove('open');
 | 
						|
};
 | 
						|
inputField.addEventListener('input', function () {
 | 
						|
	dropdown.classList.add('open');
 | 
						|
	var inputValue = inputField.value.toLowerCase();
 | 
						|
	var valueSubstring = undefined;
 | 
						|
	if (inputValue.length > 0) {
 | 
						|
		for (var j = 0; j < valueArray.length; j++) {
 | 
						|
			if (!(inputValue.substring(0, inputValue.length) === valueArray[j].substring(0, inputValue.length).toLowerCase())) {
 | 
						|
				dropdownItems[j].classList.add('closed');
 | 
						|
			} else {
 | 
						|
				dropdownItems[j].classList.remove('closed');
 | 
						|
			}
 | 
						|
		}
 | 
						|
	} else {
 | 
						|
		for (var i = 0; i < dropdownItems.length; i++) {
 | 
						|
			dropdownItems[i].classList.remove('closed');
 | 
						|
		}
 | 
						|
	}
 | 
						|
});
 | 
						|
dropdownItems.forEach(function (item) {
 | 
						|
	item.addEventListener('click', function (evt) {
 | 
						|
		inputField.value = item.textContent;
 | 
						|
		dropdownItems.forEach(function (dropdown) {
 | 
						|
			dropdown.classList.add('closed');
 | 
						|
		});
 | 
						|
	});
 | 
						|
});
 | 
						|
inputField.addEventListener('focus', function () {
 | 
						|
	inputField.placeholder = 'Type to filter';
 | 
						|
	dropdown.classList.add('open');
 | 
						|
	dropdownItems.forEach(function (dropdown) {
 | 
						|
		dropdown.classList.remove('closed');
 | 
						|
	});
 | 
						|
});
 | 
						|
inputField.addEventListener('blur', function () {
 | 
						|
	inputField.placeholder = 'Select Member Entity';
 | 
						|
	dropdown.classList.remove('open');
 | 
						|
});
 | 
						|
document.addEventListener('click', function (evt) {
 | 
						|
	var isDropdown = dropdown.contains(evt.target);
 | 
						|
	var isInput = inputField.contains(evt.target);
 | 
						|
	if (!isDropdown && !isInput) {
 | 
						|
		dropdown.classList.remove('open');
 | 
						|
	}
 | 
						|
});
 |