| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 cr.define('options', function() { | 5 cr.define('options', function() { |
| 6 const OptionsPage = options.OptionsPage; | 6 const OptionsPage = options.OptionsPage; |
| 7 | 7 |
| 8 /** | 8 /** |
| 9 * Encapsulated handling of a search bubble. | 9 * Encapsulated handling of a search bubble. |
| 10 * @constructor | 10 * @constructor |
| (...skipping 304 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 315 // search terms. | 315 // search terms. |
| 316 var regEx = new RegExp('(' + searchText + ')', 'ig'); | 316 var regEx = new RegExp('(' + searchText + ')', 'ig'); |
| 317 var replaceString = '<span class="search-highlighted">$1</span>'; | 317 var replaceString = '<span class="search-highlighted">$1</span>'; |
| 318 | 318 |
| 319 var page, length; | 319 var page, length; |
| 320 var pagesToSearch = this.getSearchablePages_(); | 320 var pagesToSearch = this.getSearchablePages_(); |
| 321 for (var key in pagesToSearch) { | 321 for (var key in pagesToSearch) { |
| 322 page = pagesToSearch[key]; | 322 page = pagesToSearch[key]; |
| 323 var elements = page.pageDiv.querySelectorAll('section'); | 323 var elements = page.pageDiv.querySelectorAll('section'); |
| 324 for (var i = 0, node; node = elements[i]; i++) { | 324 for (var i = 0, node; node = elements[i]; i++) { |
| 325 node.classList.add('search-hidden'); | 325 if (!node.hidden) |
| 326 node.classList.add('search-hidden'); |
| 326 } | 327 } |
| 327 } | 328 } |
| 328 | 329 |
| 329 var bubbleControls = []; | 330 var bubbleControls = []; |
| 330 | 331 |
| 331 if (searchText.length) { | 332 if (searchText.length) { |
| 332 // Search all top-level sections for anchored string matches. | 333 // Search all top-level sections for anchored string matches. |
| 333 for (var key in pagesToSearch) { | 334 for (var key in pagesToSearch) { |
| 334 page = pagesToSearch[key]; | 335 page = pagesToSearch[key]; |
| 335 var elements = | 336 var elements = |
| 336 page.pageDiv.querySelectorAll('section'); | 337 page.pageDiv.querySelectorAll('section'); |
| 337 for (var i = 0, node; node = elements[i]; i++) { | 338 for (var i = 0, node; node = elements[i]; i++) { |
| 338 if (this.performReplace_(regEx, replaceString, node)) { | 339 if (!node.hidden) { |
| 339 node.classList.remove('search-hidden'); | 340 if (this.performReplace_(regEx, replaceString, node)) { |
| 340 foundMatches = true; | 341 node.classList.remove('search-hidden'); |
| 342 foundMatches = true; |
| 343 } |
| 341 } | 344 } |
| 342 } | 345 } |
| 343 } | 346 } |
| 344 | 347 |
| 345 // Search all sub-pages, generating an array of top-level sections that | 348 // Search all sub-pages, generating an array of top-level sections that |
| 346 // we need to make visible. | 349 // we need to make visible. |
| 347 var subPagesToSearch = this.getSearchableSubPages_(); | 350 var subPagesToSearch = this.getSearchableSubPages_(); |
| 348 var control, node; | 351 var control, node; |
| 349 for (var key in subPagesToSearch) { | 352 for (var key in subPagesToSearch) { |
| 350 page = subPagesToSearch[key]; | 353 page = subPagesToSearch[key]; |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 581 // Trim beginning and ending whitespace. | 584 // Trim beginning and ending whitespace. |
| 582 return text.replace(/^\s+|\s+$/g, ''); | 585 return text.replace(/^\s+|\s+$/g, ''); |
| 583 }; | 586 }; |
| 584 | 587 |
| 585 // Export | 588 // Export |
| 586 return { | 589 return { |
| 587 SearchPage: SearchPage | 590 SearchPage: SearchPage |
| 588 }; | 591 }; |
| 589 | 592 |
| 590 }); | 593 }); |
| OLD | NEW |