<!--
  ~ Copyright (C) 2018 AT&T Intellectual Property. All rights reserved.
  ~
  ~ 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 class="sdc-catalog-container">

    <loader data-display="gui.isLoading"></loader>
<!--
    <ecomp-header menu-data="menuItems" version="{{version}}"></ecomp-header>
-->

    <div class="w-sdc-main-container">

        <div
            class="i-sdc-designer-leftbar-section-left-switch-header"
            data-tests-id="catalog-selector-button"
            data-ng-click="showCatalogSelector=!showCatalogSelector">
            <div  class="i-sdc-designer-leftbar-section-left-switch-header-text">
                {{selectedCatalogItem.title}}
            </div>
            <div class="i-sdc-designer-leftbar-section-left-switch-header-icon sprite-new arrow-up-small">&nbsp;</div>

            <div
                class="sdc-catalog-selector-wrapper"
                data-ng-show="showCatalogSelector">
                <div
                    class="sdc-catalog-selector-item"
                    data-ng-repeat="leftSwitchItem in catalogSelectorItems track by $index"
                    data-tests-id="catalog-selector-{{leftSwitchItem.value}}"
                    data-ng-click="selectLeftSwitchItem(leftSwitchItem)">
                    <span>{{leftSwitchItem.title}}</span>
                </div>
            </div>
        </div>

        <!-- LEFT SIDE -->
        <perfect-scrollbar scroll-y-margin-offset="0" class="sdc-catalog-body-container w-sdc-left-sidebar i-sdc-designer-left-sidebar" include-padding="true">
            <div class="sdc-catalog-leftbar-container">
                <div class="sdc-catalog-type-filter-container">
                    <div
                        class="i-sdc-designer-leftbar-section-title pointer"
                        data-ng-click="sectionClick('type')"
                        data-ng-class="{'expanded': expandedSection.indexOf('type') !== -1}">
                        <span class="i-sdc-designer-leftbar-section-title-icon"></span>
                        <span class="i-sdc-designer-leftbar-section-title-text" data-tests-id="typeFilterTitle">Type</span>
                    </div>
                    <div class="i-sdc-designer-leftbar-section-content">
                        <ul class="list-unstyled i-sdc-designer-leftbar-section-content-ul">
                            <li class="i-sdc-designer-leftbar-section-content-ul-li" data-ng-repeat="type in checkboxes.componentTypes">

                                <ng1-checkbox elem-id="checkbox-{{type | lowercase | clearWhiteSpaces}}"
                                              sdc-checklist-model="checkboxesFilter.selectedComponentTypes"
                                              sdc-checklist-value="type"
                                              sdc-checked-change="gui.onComponentTypeClick(type, checked)"
                                              text="{{type}}"></ng1-checkbox>

                                <ul class="list-unstyled i-sdc-catalog-subcategories-checkbox" data-ng-if="type==='Resource'">
                                    <li data-ng-repeat="subType in checkboxes.resourceSubTypes">

                                        <ng1-checkbox elem-id="checkbox-{{subType | lowercase | clearWhiteSpaces}}"
                                                      sdc-checklist-model="checkboxesFilter.selectedResourceSubTypes"
                                                      sdc-checklist-value="subType"
                                                      sdc-checked-change="gui.onComponentSubTypesClick(subType, type, checked)"
                                                      text="{{subType}}"></ng1-checkbox>

                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </div>
                </div>

                <div class="sdc-catalog-categories-filter-container">
                    <div
                        class="i-sdc-designer-leftbar-section-title pointer"
                        data-ng-click="sectionClick('category')"
                        data-ng-class="{'expanded': expandedSection.indexOf('category') !== -1}">
                        <span class="i-sdc-designer-leftbar-section-title-icon"></span>
                        <span class="i-sdc-designer-leftbar-section-title-text" data-tests-id="categoriesFilterTitle">Categories</span>
                    </div>
                    <div class="i-sdc-designer-leftbar-section-content">
                        <!-- CATEGORY CHECKBOX -->
                        <ul class="list-unstyled i-sdc-designer-leftbar-section-content-ul">
                            <li class="i-sdc-designer-leftbar-section-content-ul-li"
                                data-ng-repeat="category in categories | categoryTypeFilter:checkboxesFilter.selectedComponentTypes:checkboxesFilter.selectedResourceSubTypes | orderBy: category">

                                <ng1-checkbox elem-id="checkbox-{{category.uniqueId | lowercase | clearWhiteSpaces}}"
                                              sdc-checklist-model="checkboxesFilter.selectedCategoriesModel"
                                              sdc-checklist-value="category.uniqueId"
                                              sdc-checked-change="gui.onCategoryClick(category, checked)"
                                              data-tests-id="{{category.uniqueId}}"
                                              text="{{category.name}}"></ng1-checkbox>

                                <!-- SUB CATEGORY CHECKBOX -->
                                <ul class="list-unstyled i-sdc-catalog-subcategories-checkbox" data-ng-if="category.subcategories && category.subcategories.length>0">
                                    <li ng-repeat="subcategory in category.subcategories track by subcategory.uniqueId | orderBy:'name'">

                                        <ng1-checkbox elem-id="checkbox-{{subcategory.uniqueId | lowercase | clearWhiteSpaces}}"
                                                      sdc-checklist-model="checkboxesFilter.selectedCategoriesModel"
                                                      sdc-checklist-value="subcategory.uniqueId"
                                                      sdc-checked-change="gui.onCategoryClick(subcategory, checked)"
                                                      data-tests-id="{{subcategory.uniqueId}}"
                                                      text="{{subcategory.name}}"></ng1-checkbox>

                                        <!-- GROUPING CHECKBOX -->
                                        <ul class=" list-unstyled i-sdc-catalog-grouping-checkbox" data-ng-if="subcategory.groupings && subcategory.groupings.length>0">
                                            <li ng-repeat="grouping in subcategory.groupings track by grouping.uniqueId | orderBy:'name'">

                                                <ng1-checkbox elem-id="checkbox-{{grouping.uniqueId | lowercase | clearWhiteSpaces}}"
                                                              sdc-checklist-model="checkboxesFilter.selectedCategoriesModel"
                                                              sdc-checklist-value="grouping.uniqueId"
                                                              sdc-checked-change="gui.onCategoryClick(grouping, checked)"
                                                              text="{{grouping.name}}"></ng1-checkbox>

                                            </li>
                                        </ul>
                                    </li><!-- Close subcategory -->
                                </ul><!-- Close subcategories -->
                            </li><!-- Close main category -->
                        </ul><!-- Close main categories -->

                    </div>
                </div>

                <!-- STATUS -->
                <div class="sdc-catalog-status-filter-container">
                    <div
                        class="i-sdc-designer-leftbar-section-title pointer"
                        data-ng-click="sectionClick('status')"
                        data-ng-class="{'expanded': expandedSection.indexOf('status') !== -1}">
                        <span class="i-sdc-designer-leftbar-section-title-icon"></span>
                        <span class="i-sdc-designer-leftbar-section-title-text" data-tests-id="statusFilterTitle">Status</span>
                    </div>

                    <div class="i-sdc-designer-leftbar-section-content">
                        <ul class="list-unstyled i-sdc-designer-leftbar-section-content-ul">
                            <!--li data-ng-repeat="(key, value) in confStatus" -->

                            <li class="i-sdc-designer-leftbar-section-content-ul-li"
                                data-ng-repeat="(key, state) in confStatus">

                                <ng1-checkbox elem-id="checkbox-{{key | lowercase | clearWhiteSpaces}}"
                                              sdc-checklist-model="checkboxesFilter.selectedStatuses"
                                              sdc-checklist-value="state.values"
                                              sdc-checked-change="gui.onStatusClick(key, state, checked)"
                                              text="{{state.name}}"></ng1-checkbox>

                                <div class="i-sdc-categories-list-item-icon"></div>
                            </li>
                        </ul>
                    </div>
                </div>

            </div>
        </perfect-scrollbar>

        <!-- RIGHT SIDE -->
        <perfect-scrollbar id="catalog-main-scroll" include-padding="true" class="w-sdc-main-right-container w-sdc-catalog-main">

            <!-- HEADER -->
            <div>
                <div class="w-sdc-dashboard-catalog-items-header"
                     ng-bind-html="getNumOfElements((catalogFilterdItems| entityFilter:checkboxesFilter | filter:search).length)"
                ></div>
                <div class="w-sdc-dashboard-catalog-header-right">
                    <span class="w-sdc-dashboard-catalog-header-order1" translate="SORT_CAPTION"></span>&nbsp;&nbsp;
                    <a class="w-sdc-dashboard-catalog-sort" data-tests-id="sort-by-last-update" data-ng-class="{'blue' : sortBy==='lastUpdateDate'}"
                       ng-click="order('lastUpdateDate')" translate="SORT_BY_UPDATE_DATE"></a>&nbsp;
                    <span data-ng-show="sortBy === 'lastUpdateDate'" class="w-sdc-catalog-sort-arrow" data-ng-class="{'down': reverse, 'up':!reverse}"></span>
                    &nbsp;|&nbsp;
                    <a class="w-sdc-dashboard-catalog-sort" data-tests-id="sort-by-alphabetical" data-ng-class="{'blue' : sortBy!=='lastUpdateDate'}"
                       ng-click="order('name|resourceName')" translate="SORT_ALPHABETICAL"></a>&nbsp;
                    <span data-ng-show="sortBy !== 'lastUpdateDate'" class="w-sdc-catalog-sort-arrow" data-ng-class="{'down': reverse, 'up':!reverse}"></span>
                </div>
            </div>

            <div infinite-scroll-disabled='isAllItemDisplay'  infinite-scroll="raiseNumberOfElementToDisplay()" infinite-scroll-container="'#catalog-main-scroll'" infinite-scroll-distance="'0.2'" infinite-scroll-parent>

                <div class='w-sdc-row-flex-items'>

                    <!-- Tile new -->
                    <ng2-ui-tile data-ng-repeat="component in catalogFilterdItems| entityFilter:checkboxesFilter | filter:search | orderBy:sortBy:reverse | limitTo:numberOfItemToDisplay"
                        data-ng-init="component.filterTerm = component.name +  ' '  + component.description + ' ' + component.tags.toString() + ' ' + component.version;"
                        [component]="component" (on-tile-click)="gui.isLoading || goToComponent(component)"></ng2-ui-tile>
                    <!-- Tile new -->

                </div>

            </div>
        </perfect-scrollbar>

    </div>

    <top-nav [top-lvl-selected-index]="1" [search-term]="search.filterTerm" (search-term-change)="gui.changeFilterTerm($event)" [version]="version"></top-nav>


</div>