|  | 
| 145 | 145 |                     <Transition name="slide-fade"> | 
| 146 | 146 |                         <div v-cloak v-if="sidebarShown" :class="{sidebarSmall: smallScreen}" class="sidebar toc-padding" id="sidebar"> | 
| 147 | 147 |                             <div v-cloak class="toc-menu"> | 
| 148 |  | - | 
| 149 | 148 |                                 <div style="display:grid; width:100%; margin-bottom:.75rem;"> | 
| 150 | 149 |                                     <button v-on:click="openSearch" type="button" class="DocSearch DocSearch-Button DocSearch-Style" aria-label="Search"> | 
| 151 | 150 |                                         <span class="DocSearch-Button-Container"> | 
|  | 
| 182 | 181 |                                         <span class="fs-5">Announcements</span> | 
| 183 | 182 |                                     </a> | 
| 184 | 183 |                                 </div> | 
| 185 |  | -                                <div> | 
| 186 |  | -                                    <h5> | 
|  | 184 | +                                <div style="display: flex; align-items: center;"> | 
|  | 185 | +                                    <h5 style="margin-right: 8px;"> | 
| 187 | 186 |                                         Contents | 
| 188 | 187 |                                     </h5> | 
|  | 188 | +                                    <i class="fa-solid fa-filter" v-on:click="enableTocFilter = enableTocFilter === 'filter' ? 'none' : 'filter';"></i> | 
|  | 189 | +                                </div> | 
|  | 190 | +                                <div v-if="enableTocFilter === 'filter'" class="filter-input-container"> | 
|  | 191 | +                                    <input type="text" class="filter-input" v-model="searchQuery" placeholder="Filter TOC..." /> | 
|  | 192 | +                                    <button class="filter-btn"> | 
|  | 193 | +                                        <i class="fa fa-search icon-light"></i> | 
|  | 194 | +                                    </button> | 
| 189 | 195 |                                 </div> | 
| 190 |  | -                                <button class="toc-label hide" v-on:click="sidebarTab = 'search'" id="search-btn"> | 
| 191 |  | -                                    SEARCH | 
| 192 |  | -                                    <div v-if="sidebarTab == 'search'" class="bottom-border" id="search-border"></div> | 
| 193 |  | -                                </button> | 
| 194 | 196 |                             </div> | 
| 195 | 197 | 
 | 
| 196 | 198 |                             <div v-cloak v-if="sidebarTab == 'toc'" class="toc-tree" id="toc"> | 
| 197 | 199 |                                 <ul class="tree"> | 
| 198 |  | -                                    <toc-tree v-for="item in tocData" :item="item" :expanded-tocs="expandedTocs" :current-page="currentPage"></toc-tree> | 
|  | 200 | +                                    <toc-tree v-for="item in filteredTocData" :item="item" :expanded-tocs="expandedTocs" :current-page="currentPage"></toc-tree> | 
| 199 | 201 |                                 </ul> | 
| 200 | 202 |                             </div> | 
| 201 | 203 |                             <div v-cloak> | 
|  | 
| 206 | 208 |                                     } | 
| 207 | 209 |                                 </small> | 
| 208 | 210 |                             </div> | 
| 209 |  | -                            <div v-cloak v-if="sidebarTab == 'search'" id="searchBar" class="search-window"> | 
| 210 |  | -                                <div class="input"> | 
| 211 |  | -                                    <input type="text" /> | 
| 212 |  | -                                    <button class="search-btn"> | 
| 213 |  | -                                        <i class="fa fa-search icon-light"></i> | 
| 214 |  | -                                    </button> | 
| 215 |  | -                                </div> | 
| 216 |  | -                            </div> | 
| 217 | 211 |                         </div> | 
| 218 | 212 |                     </Transition> | 
| 219 | 213 |                 </div> | 
|  | 
| 298 | 292 |         } | 
| 299 | 293 | 
 | 
| 300 | 294 |             PREVIOUS_PAGE = @Json.Serialize(ViewBag.PreviousPage) | 
| 301 |  | -            NEXT_PAGE = @Json.Serialize(ViewBag.NextPage) | 
| 302 |  | -            TOC_DATA = @Json.Serialize(tocData) | 
|  | 295 | +                NEXT_PAGE = @Json.Serialize(ViewBag.NextPage) | 
|  | 296 | +                    TOC_DATA = @Json.Serialize(tocData) | 
| 303 | 297 |     </script> | 
| 304 | 298 | 
 | 
| 305 | 299 |     @* Recursive vue component template for rendering the table of contents. *@ | 
|  | 
0 commit comments