<!--
 * 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.
-->
<!-- <div class="graph-toolbar clearfix"></div> -->
<div class="white-bg no-padding lineage-box">
    <div class="box-panel filter-box">
        <div class="header clearfix">
            <h4>Filters</h4>
            <span data-id="box-close" class="btn btn-sm btn-close"><i class="fa fa-close"></i></span>
        </div>
        <div class="body">
            <div class="hideProcessContainer form-group text-left col-sm-12">
                <div class="pretty p-switch p-fill">
                    <input type="checkbox" class="pull-left" data-id="checkHideProcess" value="" />
                    <div class="state p-primary">
                        <label>Hide Process</label>
                    </div>
                </div>
            </div>
            <div class="hideDeletedContainer form-group text-left col-sm-12">
                <div class="pretty p-switch p-fill">
                    <input type="checkbox" data-id="checkDeletedEntity" value="" />
                    <div class="state p-primary">
                        <label>Hide Deleted Entity</label>
                    </div>
                </div>
            </div>
            <div class="depth-container form-group select2-mini">
                <label class="control-label col-sm-4">Depth:</label>
                <div class="col-sm-4 no-padding">
                    <select data-id="selectDepth" class="form-control"></select>
                </div>
            </div>
        </div>
    </div>
    <div class="box-panel search-box">
        <div class="header clearfix">
            <h4>Search</h4>
            <span data-id="box-close" class="btn btn-sm btn-close"><i class="fa fa-close"></i></span>
        </div>
        <div class="body">
            <div class="col-sm-12 no-padding">
                <div class="srchType clearfix">
                    <label class="srchTitle">Search Lineage Entity: </label>
                    <div class="">
                        <div class="col-sm-12 no-padding temFilter">
                            <select data-id="typeSearch"></select>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="box-panel setting-box">
        <div class="header clearfix">
            <h4>Settings</h4>
            <span data-id="box-close" class="btn btn-sm btn-close"><i class="fa fa-close"></i></span>
        </div>
        <div class="body">
            <div class="showOnlyHoverPath form-group text-left col-sm-12">
                <div class="pretty p-switch p-fill">
                    <input type="checkbox" checked class="pull-left" data-id="showOnlyHoverPath" value="" />
                    <div class="state p-primary">
                        <label>On hover show current path</label>
                    </div>
                </div>
            </div>
            <div class="showTooltip form-group text-left col-sm-12">
                <div class="pretty p-switch p-fill">
                    <input type="checkbox" class="pull-left" data-id="showTooltip" value="" />
                    <div class="state p-primary">
                        <label>Show node details on hover</label>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <div class="graph-button-group pull-right">
        <div>
            <button data-id="resetLineage" class="btn btn-action btn-gray btn-sm" title="Realign Lineage">
                <i class="fa fa-retweet"></i>
            </button>
        </div>
        <div>
            <button data-id="saveSvg" class="btn btn-action btn-gray btn-sm" title="Export to PNG">
                <i class="fa fa-camera"></i>
            </button>
        </div>
        <div>
            <button type="button" data-id="setting-toggler" title="Settings" class="btn btn-action btn-gray btn-sm"><i class="fa fa-gear"></i></button>
        </div>
        <div>
            <button type="button" data-id="filter-toggler" title="Filter" class="btn btn-action btn-gray btn-sm"><i class="fa fa-filter"></i></button>
        </div>
        <div>
            <button type="button" data-id="search-toggler" title="Search" class="btn btn-action btn-gray btn-sm"><i class="fa fa-search"></i></button>
        </div>
        <div class="btn-group">
            <button type="button" id="zoom_in" class="btn btn-action btn-gray btn-sm lineageZoomButton" title="Zoom In" data-id="refreshBtn"> <i class="fa fa-search-plus"></i></button>
            <button type="button" id="zoom_out" class="btn btn-action btn-gray btn-sm lineageZoomButton" title="Zoom Out" data-id="refreshBtn"> <i class="fa fa-search-minus"></i></button>
        </div>
        <div>
            <button type="button" data-id="fullScreen-toggler" title="Full screen" class="btn btn-action btn-gray btn-sm fullscreen_lineage"><i class="fa fa-expand"></i></button>
        </div>
    </div>
    <div class="box-panel size-lg node-details slide-from-left lineage-node-detail">
        <div class="header clearfix">
            <h4><span data-id="typeName"></span></h4>
            <span data-id="box-close" class="btn btn-sm btn-close lineage-node-detail-close"><i class="fa fa-close"></i></span>
            <span data-id="box-close" class="btn btn-sm btn-close lineage-node-detail-close"><i class="fa fa-close"></i></span>
        </div>
        <div class="body">
            <table class='table table-quickMenu'>
                <thead>
                    <tr>
                        <th>Key</th>
                        <th>Value</th>
                    </tr>
                </thead>
                <tbody data-id="nodeDetailTable"></tbody>
            </table>
        </div>
    </div>
    <div class="fontLoader">
        <i class="fa fa-refresh fa-spin-custom"></i>
    </div>
    <div class="legends pull-left" style="height: 25px; padding: 2px;">
        <span style="margin-right: 8px; color:#fb4200;"><i class="fa fa-circle-o fa-fw"></i>Current Entity</span>
        <span style="margin-right: 8px; color:#df9b00;"><i class="fa fa-long-arrow-right fa-fw"></i>Lineage</span>
        <span style="margin-right: 8px; color:#fb4200;"><i class="fa fa-long-arrow-right fa-fw"></i>Impact</span>
    </div>
    <svg width="{{width}}" height="{{height}}" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"></svg>
</div>
<div class="hidden-svg"></div>