<!--
Copyright 2017-present Open Networking Foundation

Licensed 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.
-->

<h1>Service Graph</h1>

<div class="graph-container">
  <div class="loader-container" ng-if="vm.loader">
    <div class="loader"></div>
  </div>
  <a ng-click="vm.closeFullscreen()" class="close-btn"><i class="fa fa-times"></i></a>
  <svg></svg>
  <div class="row" ng-if="!vm.loader">
    <div class="col-md-3">
      <a ng-click="vm.toggleModel('services')" ng-class="{active: vm.currentState >= 0}" class="btn btn-block btn-accent">
        <span>Services</span>
      </a>
    </div>
    <div class="col-md-3">
      <a ng-click="vm.toggleModel('serviceinstances')" ng-class="{active: vm.currentState >= 1}" class="btn btn-block btn-accent">
        <span>Service Instances</span>
      </a>
    </div>
    <div class="col-md-3">
      <a ng-click="vm.toggleModel('instances')" ng-class="{active: vm.currentState >= 2}" class="btn btn-block btn-accent">
        <span>Instances</span>
      </a>
    </div>
    <div class="col-md-3">
      <a ng-click="vm.toggleModel('networks')" ng-class="{active: vm.currentState >= 3}" class="btn btn-block btn-accent">
        <span>Networks</span>
      </a>
    </div>
  </div>
</div>
