<!--
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-progress-spinner id="loading-spinner" *ngIf="fdsService.inProgress" mode="indeterminate"></mat-progress-spinner>
<mat-sidenav-container>
    <mat-sidenav #sidenav mode="over" align="end" opened="false" disableClose="true">
        <router-outlet name="sidenav"></router-outlet>
    </mat-sidenav>
    <div id="fds-app-container">
        <mat-toolbar id="fds-toolbar">
            <!-- <img id="fds-logo" src="fds/images/fds-logo-web-app.svg"> -->
            <div *ngIf="fdsService.perspective !== 'login' && fdsService.perspective !== 'not-found'" fxFlex="1 1 auto" class="pad-left-xl" [@flyInOut]="fdsService.breadCrumbState">
                <span class="pointer">{{fdsService.title}}</span>
            </div>
        </mat-toolbar>
        <div id="fds-perspectives-container">
            <router-outlet></router-outlet>
        </div>
    </div>
</mat-sidenav-container>
