| OLD | NEW | 
|---|
| 1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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 /** | 5 /** | 
| 6  * @fileoverview Utility functions for the Bookmarks page. | 6  * @fileoverview Utility functions for the Bookmarks page. | 
| 7  */ | 7  */ | 
| 8 | 8 | 
| 9 cr.define('bookmarks.util', function() { | 9 cr.define('bookmarks.util', function() { | 
| 10   /** | 10   /** | 
| 11    * Returns the list of bookmark IDs to be displayed in the UI, taking into | 11    * Returns the list of bookmark IDs to be displayed in the UI, taking into | 
| 12    * account search and the currently selected folder. | 12    * account search and the currently selected folder. | 
| 13    * @param {!BookmarksPageState} state | 13    * @param {!BookmarksPageState} state | 
| 14    * @return {!Array<string>} | 14    * @return {!Array<string>} | 
| 15    */ | 15    */ | 
| 16   function getDisplayedList(state) { | 16   function getDisplayedList(state) { | 
| 17     if (!isShowingSearch(state)) | 17     if (isShowingSearch(state)) | 
| 18       return assert(state.nodes[state.selectedFolder].children); | 18       return assert(state.search.results); | 
| 19 | 19 | 
| 20     return state.search.results; | 20     return assert(state.nodes[state.selectedFolder].children); | 
| 21   } | 21   } | 
| 22 | 22 | 
| 23   /** | 23   /** | 
| 24    * @param {BookmarkTreeNode} treeNode | 24    * @param {BookmarkTreeNode} treeNode | 
| 25    * @return {BookmarkNode} | 25    * @return {BookmarkNode} | 
| 26    */ | 26    */ | 
| 27   function normalizeNode(treeNode) { | 27   function normalizeNode(treeNode) { | 
| 28     var node = Object.assign({}, treeNode); | 28     var node = Object.assign({}, treeNode); | 
| 29     // Node index is not necessary and not kept up-to-date. Remove it from the | 29     // Node index is not necessary and not kept up-to-date. Remove it from the | 
| 30     // data structure so we don't accidentally depend on the incorrect | 30     // data structure so we don't accidentally depend on the incorrect | 
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 70       nodes: {}, | 70       nodes: {}, | 
| 71       selectedFolder: BOOKMARKS_BAR_ID, | 71       selectedFolder: BOOKMARKS_BAR_ID, | 
| 72       closedFolders: new Set(), | 72       closedFolders: new Set(), | 
| 73       prefs: { | 73       prefs: { | 
| 74         canEdit: true, | 74         canEdit: true, | 
| 75         incognitoAvailability: IncognitoAvailability.ENABLED, | 75         incognitoAvailability: IncognitoAvailability.ENABLED, | 
| 76       }, | 76       }, | 
| 77       search: { | 77       search: { | 
| 78         term: '', | 78         term: '', | 
| 79         inProgress: false, | 79         inProgress: false, | 
| 80         results: [], | 80         results: null, | 
| 81       }, | 81       }, | 
| 82       selection: { | 82       selection: { | 
| 83         items: new Set(), | 83         items: new Set(), | 
| 84         anchor: null, | 84         anchor: null, | 
| 85       }, | 85       }, | 
| 86     }; | 86     }; | 
| 87   } | 87   } | 
| 88 | 88 | 
| 89   /** | 89   /** | 
| 90    * @param {BookmarksPageState} state | 90    * @param {BookmarksPageState} state | 
| 91    * @return {boolean} | 91    * @return {boolean} | 
| 92    */ | 92    */ | 
| 93   function isShowingSearch(state) { | 93   function isShowingSearch(state) { | 
| 94     return !!state.search.term && !state.search.inProgress; | 94     return state.search.results != null; | 
| 95   } | 95   } | 
| 96 | 96 | 
| 97   /** | 97   /** | 
| 98    * Returns true if the node with ID |itemId| is modifiable, allowing | 98    * Returns true if the node with ID |itemId| is modifiable, allowing | 
| 99    * the node to be renamed, moved or deleted. Note that if a node is | 99    * the node to be renamed, moved or deleted. Note that if a node is | 
| 100    * uneditable, it may still have editable children (for example, the top-level | 100    * uneditable, it may still have editable children (for example, the top-level | 
| 101    * folders). | 101    * folders). | 
| 102    * @param {BookmarksPageState} state | 102    * @param {BookmarksPageState} state | 
| 103    * @param {string} itemId | 103    * @param {string} itemId | 
| 104    * @return {boolean} | 104    * @return {boolean} | 
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 200     getDescendants: getDescendants, | 200     getDescendants: getDescendants, | 
| 201     getDisplayedList: getDisplayedList, | 201     getDisplayedList: getDisplayedList, | 
| 202     hasChildFolders: hasChildFolders, | 202     hasChildFolders: hasChildFolders, | 
| 203     isShowingSearch: isShowingSearch, | 203     isShowingSearch: isShowingSearch, | 
| 204     normalizeNode: normalizeNode, | 204     normalizeNode: normalizeNode, | 
| 205     normalizeNodes: normalizeNodes, | 205     normalizeNodes: normalizeNodes, | 
| 206     removeIdsFromMap: removeIdsFromMap, | 206     removeIdsFromMap: removeIdsFromMap, | 
| 207     removeIdsFromSet: removeIdsFromSet, | 207     removeIdsFromSet: removeIdsFromSet, | 
| 208   }; | 208   }; | 
| 209 }); | 209 }); | 
| OLD | NEW | 
|---|