@@ -12,6 +12,14 @@ window.addEventListener ("load", () => {
1212 let cat = document . getElementById ( "cat" ) ;
1313 let game = document . getElementById ( "game" ) ;
1414
15+ let ts = new TomSelect ( select , {
16+ create : false ,
17+ maxOptions : null ,
18+ placeholder : '----------' ,
19+ wrapperClass : 'ts-wrapper right grow' ,
20+ sortField : { field : '$order' , direction : 'asc' } ,
21+ } ) ;
22+
1523 let lock = false ;
1624 let examples = null ;
1725 let last_selected_example = "" ;
@@ -71,24 +79,22 @@ window.addEventListener ("load", () => {
7179 let language = lang . value ;
7280 let gam = game . value ;
7381 let category = cat . value ;
74- //last_selected_example = select.value;
75- let newSelectedIndex = 0 ;
76-
77- let arrOptions = [ "<option value='' selected>----------</option>" ] ;
78- let i = 1 ;
82+ let options = [ ] ;
83+ let newSelectedValue = '' ;
7984 examples . forEach ( ( element , index ) => {
8085 if ( language in element
8186 && ( category == "" || ( "cat" in element && element [ "cat" ] . includes ( category ) ) )
8287 && ( gam == "" || ( "game" in element && element [ "game" ] . includes ( gam ) ) ) ) {
8388 let val = index . toString ( ) ;
84- if ( val == last_selected_example ) newSelectedIndex = i ;
85- arrOptions . push ( "<option value='" + val + "'>" + element [ "name" ] + "</option>" ) ;
86- i += 1 ;
89+ if ( val == last_selected_example ) newSelectedValue = val ;
90+ options . push ( { value : val , text : element [ "name" ] } ) ;
8791 }
8892 } ) ;
8993
90- select . innerHTML = arrOptions . join ( "\n" ) ;
91- select . selectedIndex = newSelectedIndex ;
94+ ts . clear ( true ) ;
95+ ts . clearOptions ( ) ;
96+ options . forEach ( o => ts . addOption ( o ) ) ;
97+ ts . setValue ( newSelectedValue , true ) ;
9298
9399 updateCode ( ) ;
94100 }
@@ -119,8 +125,8 @@ window.addEventListener ("load", () => {
119125 if ( gameval )
120126 game . value = gameval ;
121127
122- select . addEventListener ( " change" , ( ) => {
123- last_selected_example = select . value ;
128+ ts . on ( ' change' , ( value ) => {
129+ last_selected_example = value ;
124130 updateCode ( ) ;
125131 } ) ;
126132
0 commit comments