1+ // ignore-tidy-filelength
12// Local js definitions:
23/* global addClass, getSettingValue, hasClass */
34/* global onEach, onEachLazy, hasOwnProperty, removeClass, updateLocalStorage */
@@ -84,12 +85,20 @@ function getSearchElement() {
8485 return document . getElementById ( "search" ) ;
8586}
8687
88+ function getThemesElementId ( ) {
89+ return "theme-choices" ;
90+ }
91+
8792function getThemesElement ( ) {
88- return document . getElementById ( "theme-choices" ) ;
93+ return document . getElementById ( getThemesElementId ( ) ) ;
94+ }
95+
96+ function getThemePickerElementId ( ) {
97+ return "theme-picker" ;
8998}
9099
91100function getThemePickerElement ( ) {
92- return document . getElementById ( "theme-picker" ) ;
101+ return document . getElementById ( getThemePickerElementId ( ) ) ;
93102}
94103
95104// Returns the current URL without any query parameter or hash.
@@ -143,11 +152,11 @@ function hideThemeButtonState() {
143152 var active = document . activeElement ;
144153 var related = e . relatedTarget ;
145154
146- if ( active . id !== "theme-picker" &&
147- ( ! active . parentNode || active . parentNode . id !== "theme-choices" ) &&
155+ if ( active . id !== getThemePickerElementId ( ) &&
156+ ( ! active . parentNode || active . parentNode . id !== getThemesElementId ( ) ) &&
148157 ( ! related ||
149- ( related . id !== "theme-picker" &&
150- ( ! related . parentNode || related . parentNode . id !== "theme-choices" ) ) ) ) {
158+ ( related . id !== getThemePickerElementId ( ) &&
159+ ( ! related . parentNode || related . parentNode . id !== getThemesElementId ( ) ) ) ) ) {
151160 hideThemeButtonState ( ) ;
152161 }
153162 }
@@ -512,8 +521,7 @@ function hideThemeButtonState() {
512521 break ;
513522
514523 default :
515- var themePicker = getThemePickerElement ( ) ;
516- if ( themePicker . parentNode . contains ( ev . target ) ) {
524+ if ( getThemePickerElement ( ) . parentNode . contains ( ev . target ) ) {
517525 handleThemeKeyDown ( ev ) ;
518526 }
519527 }
@@ -526,7 +534,7 @@ function hideThemeButtonState() {
526534 switch ( getVirtualKey ( ev ) ) {
527535 case "ArrowUp" :
528536 ev . preventDefault ( ) ;
529- if ( active . previousElementSibling && ev . target . id !== "theme-picker" ) {
537+ if ( active . previousElementSibling && ev . target . id !== getThemePickerElementId ( ) ) {
530538 active . previousElementSibling . focus ( ) ;
531539 } else {
532540 showThemeButtonState ( ) ;
@@ -535,7 +543,7 @@ function hideThemeButtonState() {
535543 break ;
536544 case "ArrowDown" :
537545 ev . preventDefault ( ) ;
538- if ( active . nextElementSibling && ev . target . id !== "theme-picker" ) {
546+ if ( active . nextElementSibling && ev . target . id !== getThemePickerElementId ( ) ) {
539547 active . nextElementSibling . focus ( ) ;
540548 } else {
541549 showThemeButtonState ( ) ;
@@ -545,7 +553,7 @@ function hideThemeButtonState() {
545553 case "Enter" :
546554 case "Return" :
547555 case "Space" :
548- if ( ev . target . id === "theme-picker" && themes . style . display === "none" ) {
556+ if ( ev . target . id === getThemePickerElementId ( ) && themes . style . display === "none" ) {
549557 ev . preventDefault ( ) ;
550558 showThemeButtonState ( ) ;
551559 themes . firstElementChild . focus ( ) ;
0 commit comments