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

<!--
  ONOS -- Displaying All core glyphs.
  -->

<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>ONOS Core Glyphs</title>

    <script type="text/javascript" src="../vendor/angular/angular.js"></script>
    <script type="text/javascript" src="../vendor/d3/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="show-glyphs.js"></script>

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

        #IconLibDefs {
            display: none;
        }

        h2 {
            color: darkred;
            display: inline-block;
        }

        h2#tag {
            float: right;
            padding-right: 20px;
            color: midnightblue;
        }

        svg .glyph {
            stroke: none;
            fill: midnightblue;
            fill-rule: evenodd;
        }

        svg.embeddedGlyph .glyph rect {
            fill: #fff
        }

        #showGlyphs {
            overflow-y: scroll;
            width: 400px;
            border: 1px solid green;
            display: inline-block;
            padding-left: 4px;
            background-color: #bbd;
        }
        #zoomed {
            /*border: 1px solid green;*/
            display: inline-block;
        }

        #zoomed svg {
            background-color: #eef;
            position: absolute;
        }

    </style>

</head>
<body class="light" ng-app="showGlyphs" ng-controller="OvShowGlyphs as ctrl">

    <h2>ONOS Core Glyphs</h2>
    <h2 id="tag"></h2>
    <div id="container">
        <div id="showGlyphs" class="half vscroll"></div>
        <div id="zoomed" class="half">
        </div>
    </div>

    <svg id="IconLibDefs">
        <defs></defs>
    </svg>
</body>
</html>