<!DOCTYPE html>
<!--
  ~  Copyright 2016 Open Networking Laboratory
  ~
  ~  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.
  -->

<!--
  ONOS -- Display a glyph with Angular test page
  -->

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>Show Icons Angular</title>

    <script type="text/javascript" src="../tp/angular.js"></script>
    <script type="text/javascript" src="../tp/angular-route.js"></script>

    <script type="text/javascript" src="../tp/d3.js"></script>

    <script type="text/javascript" src="../app/fw/util/util.js"></script>
    <script type="text/javascript" src="../app/fw/util/fn.js"></script>

    <script type="text/javascript" src="../app/fw/svg/svg.js"></script>
    <script type="text/javascript" src="../app/fw/svg/svgUtil.js"></script>
    <script type="text/javascript" src="../app/fw/svg/glyph.js"></script>
    <script type="text/javascript" src="../app/fw/svg/glyphData.js"></script>

    <script type="text/javascript" src="big-icon.js"></script>

    <link rel="stylesheet" href="../app/common.css">
    <link rel="stylesheet" href="../app/fw/svg/icon.css">

    <style>
        html,
        body {
            background-color: #ddf;
            font-family: Arial, Helvetica, sans-serif;
            font-size: 9pt;
        }

        h2 {
            color: darkred;
        }

        /* foreground color */
        svg .glyph {
            stroke: none;
            fill: #246;
            fill-rule: evenodd;
        }

        /* background color */
        svg.embeddedGlyph .glyph rect {
            fill: #fff
        }

    </style>

</head>
<!-- outline for using a controller in Angular -->
<body class="light" ng-app="showGlyph" ng-controller="OvShowGlyph as ctrl">
    <h2>Display a Glyph</h2>
    <div id="showGlyphs"></div>
    <svg><defs></defs></svg>
</body>
</html>