<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<mat-list>
  <mat-list-item routerLink="{{routes.OVERVIEW}}" routerLinkActive="active">
    <mat-icon>home</mat-icon>
    Overview
  </mat-list-item>
  <mat-list-item routerLink="{{routes.SERVICES}}" routerLinkActive="active">
    <mat-icon>view_list</mat-icon>
    Services
  </mat-list-item>
  <mat-list-item routerLink="{{routes.INSTANCES}}" routerLinkActive="active">
    <mat-icon>description</mat-icon>
    Config
  </mat-list-item>
  <mat-list-item routerLink="{{routes.SERVICE_TOPOLOGY}}" routerLinkActive="active">
    <mat-icon>bubble_chart</mat-icon>
    System
  </mat-list-item>
  <mat-list-item routerLink="{{routes.INSTANCES}}" routerLinkActive="active">
    <mat-icon>list</mat-icon>
    Instances
  </mat-list-item>



</mat-list>

<p class="sidebar-title">Help</p>

<mat-list>
  <mat-list-item>
    <mat-icon>library_books</mat-icon>
    Library
  </mat-list-item>
  <mat-list-item>
    <mat-icon>question_answer</mat-icon>
    Guide
  </mat-list-item>
  <mat-list-item>
    <mat-icon>help_outline</mat-icon>
    FAQ
  </mat-list-item>
</mat-list>


