<!--
~ Copyright 2018-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.
-->
<div id="application-details-panel" class="floatpanel" [@appDetailsState]="id!=='' && !closed">
    <!--<div *ngIf="visible" class="container">-->
    <div class="container">
        <div class="top">
            <onos-icon class="close-btn" classes="active-close" iconId="close" iconSize="20" (click)="close()"></onos-icon>
            <div class="top-content">
                <div class="app-title">{{ detailsData.title }}</div>
                <div class="left app-icon">
                    <img src="{{ iconUrl(id) }}">
                </div>
                <div class="right">
                    <table class="app-props">
                        <tbody>
                            <tr>
                                <td class="label">{{ lionFn('app_id') }}:</td>
                                <td class="value">{{ id }}</td>
                            </tr>
                            <tr>
                                <td class="label">{{ lionFn('state') }}:</td>
                                <td class="value">{{ detailsData.state }}</td>
                            </tr>
                            <tr>
                                <td class="label">{{ lionFn('category') }}:</td>
                                <td class="value">{{ detailsData.category }}</td>
                            </tr>
                            <tr>
                                <td class="label">{{ lionFn('version') }}:</td>
                                <td class="value">{{ detailsData.version }}</td>
                            </tr>
                            <tr>
                                <td class="label">{{ lionFn('origin') }}:</td>
                                <td class="value">{{ detailsData.origin }}</td>
                            </tr>
                            <tr>
                                <td class="label">{{ lionFn('role') }}:</td>
                                <td class="value">{{ detailsData.role }}</td>
                            </tr>
                        </tbody>
                    </table>
                </div>
                <div class="app-url">
                    <a href="{{ detailsData.url }}" target="_blank">{{ detailsData.url }}</a>
                </div>
            </div>
        </div>
        <hr>
        <div class="middle">
            <div class="app-readme">{{ detailsData.readme }}</div>
        </div>
        <hr>
        <div class="bottom">
            <h2>{{ lionFn('dp_features') }}</h2>
            <div class="features">
                <table>
                    <tbody>
                        <tr *ngFor="let feat of detailsData.features">
                            <td>{{ feat }}</td>
                        </tr>
                    </tbody>
                </table>
            </div>
            <h2>{{ lionFn('dp_required_apps') }}</h2>
            <div class="required-apps">
                <table>
                    <tbody>
                        <tr *ngFor="let reqd of detailsData.required_apps">
                            <td>{{ reqd }}</td>
                        </tr>
                    </tbody>
                </table>
            </div>
            <h2>{{ lionFn('dp_permissions') }}</h2>
            <div class="permissions">
                <table>
                    <tbody>
                        <tr *ngFor="let perm of detailsData.permissions">
                            <td>{{ perm }}</td>
                        </tr>
                    </tbody>
                </table>
            </div>
        </div>
    </div>
</div>