66 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			66 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /**
 | |
|  * @package         Regular Labs Library
 | |
|  * @version         24.11.1459
 | |
|  * 
 | |
|  * @author          Peter van Westen <info@regularlabs.com>
 | |
|  * @link            https://regularlabs.com
 | |
|  * @copyright       Copyright © 2024 Regular Labs All Rights Reserved
 | |
|  * @license         GNU General Public License version 2 or later
 | |
|  */
 | |
| 
 | |
| (function() {
 | |
|     'use strict';
 | |
| 
 | |
|     document.querySelectorAll('rl-field-simple-category').forEach((simplecategory) => {
 | |
|         const fancy_select = simplecategory.querySelector('joomla-field-fancy-select');
 | |
|         const select       = simplecategory.querySelector('select');
 | |
|         const input        = simplecategory.querySelector('input.choices__input');
 | |
| 
 | |
|         if ( ! fancy_select || ! select || ! input) {
 | |
|             return;
 | |
|         }
 | |
| 
 | |
|         const choices = fancy_select.choicesInstance;
 | |
| 
 | |
|         // fancy_select.addEventListener('change', () => {
 | |
|         //     const new_category = input.value;
 | |
|         //     select.add(new Option(new_category, new_category));
 | |
|         //     select.value = new_category;
 | |
|         //     console.log('----');
 | |
|         //     console.log(select.value);
 | |
|         //     choices.clearInput();
 | |
|         // });
 | |
| 
 | |
|         input.addEventListener('change', (event) => {
 | |
|             choices.clearInput();
 | |
|         });
 | |
| 
 | |
|         input.addEventListener('keyup', (event) => {
 | |
|             if (event.keyCode !== 13) {
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             choices.clearInput();
 | |
|         });
 | |
| 
 | |
|         const setNewCategory = (() => {
 | |
|             const new_category = input.value;
 | |
|             choices.clearInput();
 | |
| 
 | |
|             if ( ! new_category.length) {
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             const new_option = new Option(new_category, new_category);
 | |
| 
 | |
|             select.add(new_option);
 | |
|             select.value = new_category;
 | |
| 
 | |
|             choices._addChoice(new_option);
 | |
|             choices._triggerChange(new_category);
 | |
|             choices.setChoiceByValue(new_category);
 | |
|             choices.clearInput();
 | |
|         });
 | |
|     });
 | |
| })();
 |