@@ -11,6 +11,7 @@ const settingsTypes = {
1111 domain : String ,
1212 queryType : new Set ( [ "similar" , "related" ] ) ,
1313 seed : String ,
14+ keepQueryTypeInView : Boolean ,
1415 keepSeedInView : Boolean ,
1516 tabularShowHiddenNodes : Boolean
1617} ;
@@ -22,6 +23,7 @@ const settings = { // assign defaults here
2223 domain : "1" ,
2324 queryType : "related" ,
2425 seed : "crew" ,
26+ keepQueryTypeInView : true ,
2527 keepSeedInView : false ,
2628 tabularShowHiddenNodes : false ,
2729 tabularColumns : [
@@ -94,13 +96,21 @@ export function setOption (options, value) {
9496 saveSettings ( ) ;
9597}
9698
97- function applyFixedClass ( ) {
98- document . getElementById ( "querySetting" )
99- . classList . toggle ( "fixed" , ! ! settings [ "keepSeedInView" ] ) ;
99+ let preservedToolbarElement = null ,
100+ querySettingElement = null ,
101+ seedSettingElement = null ,
102+ uiState = null ;
103+ export function applyFixedClasses ( ) {
104+ let queryParent = ! uiState . settingsToggled && settings [ "keepQueryTypeInView" ]
105+ ? preservedToolbarElement : querySettingElement ,
106+ seedParent = ! uiState . settingsToggled && settings [ "keepSeedInView" ]
107+ ? preservedToolbarElement : seedSettingElement ;
108+ queryParent . appendChild ( document . getElementById ( "settings.queryType" ) ) ;
109+ seedParent . appendChild ( document . getElementById ( "settings.seed" ) ) ;
100110}
101111
102112function saveSettings ( ) {
103- applyFixedClass ( ) ;
113+ applyFixedClasses ( ) ;
104114 storage . save ( STORAGE_KEY , settings ) ;
105115}
106116
@@ -123,7 +133,7 @@ export function setInputValue (e = {}) {
123133 return e ;
124134}
125135
126- export function init ( ) {
136+ export function init ( uiSt ) {
127137 let params = url . getSearchString ( ) ;
128138 for ( let param in params ) {
129139 let type = getObjProp ( settingsTypes , param . split ( "." ) ) ,
@@ -137,5 +147,9 @@ export function init () {
137147 type instanceof Set ? ( type . has ( v ) ? v : settings [ param ] ) :
138148 settings [ param ] ;
139149 }
140- applyFixedClass ( ) ;
150+ uiState = uiSt ;
151+ preservedToolbarElement = document . getElementById ( "preservedToolbar" ) ;
152+ querySettingElement = document . getElementById ( "querySetting" ) ;
153+ seedSettingElement = document . getElementById ( "seedSetting" ) ;
154+ applyFixedClasses ( ) ;
141155}
0 commit comments