<vn-crud-model
    url="ItemCategories"
    data="categories"
    auto-load="true">
</vn-crud-model>
<vn-crud-model
    vn-id="model"
    url="Orders/CatalogFilter"
    params="{orderFk: $ctrl.$params.id}"
    limit="50"
    data="$ctrl.items">
</vn-crud-model>
<vn-portal slot="topbar">
    <vn-searchbar vn-id="searchbar"
        auto-state="false"
        info="Search by item id or name"
        on-search="$ctrl.onSearch($params)">
    </vn-searchbar>
</vn-portal>
<vn-order-catalog-view
    model="model" 
    order="$ctrl.order">
</vn-order-catalog-view>
<vn-side-menu side="right">
    <vn-horizontal class="item-category">
        <vn-autocomplete vn-id="category"
            data="categories"
            ng-model="$ctrl.categoryId"
            show-field="name"
            value-field="id"
            label="Category">
        </vn-autocomplete>
        <vn-one ng-repeat="category in categories">
            <vn-icon 
                ng-class="{'active': $ctrl.categoryId == category.id}"
                icon="{{::category.icon}}"
                vn-tooltip="{{::category.name}}"
                ng-click="$ctrl.changeCategory(category.id)">
            </vn-icon>
        </vn-one>
    </vn-horizontal>
    <vn-vertical class="input">
        <vn-autocomplete vn-id="type"
            data="$ctrl.itemTypes"
            ng-model="$ctrl.typeId"
            show-field="name"
            value-field="id"
            label="Type"
            fields="['categoryFk']"
            include="'category'">
                <tpl-item>
                    <div>{{name}}</div>
                    <div class="text-caption text-secondary">
                        {{categoryName}}
                    </div>
                </tpl-item>
        </vn-autocomplete>
    </vn-vertical>
    <vn-vertical class="input vn-pt-md">
        <vn-autocomplete
            vn-id="field"
            data="$ctrl.orderFields"
            ng-model="$ctrl.orderField"
            selection="$ctrl.orderSelection"
            translate-fields="['name']"
            order="priority DESC"
            show-field="name"
            value-field="field"
            label="Order by"
            disabled="!model.data">
        </vn-autocomplete>
        <vn-autocomplete
            data="$ctrl.orderWays"
            ng-model="$ctrl.orderWay"
            translate-fields="['name']"
            show-field="name"
            value-field="way"
            label="Order"
            disabled="!model.data">
        </vn-autocomplete>
        <div ng-if="false && model.moreRows">
            <span translate>More than</span> {{model.limit}} <span translate>results</span>
        </div>
    </vn-vertical>
    <vn-vertical class="input vn-pt-md">
        <vn-textfield vn-one 
            vn-id="search"
            ng-keyUp="$ctrl.onSearchByTag($event)"
            label="Search tag">
            <prepend>
                <vn-icon icon="search"></vn-icon>
            </prepend>
            <append>
                <vn-icon
                    icon="keyboard_arrow_down"
                    ng-click="$ctrl.openPanel($event)"
                    style="cursor: pointer;">
                </vn-icon>
            </append>
        </vn-textfield>
    </vn-vertical>
    <vn-popover
        vn-id="popover"
        on-close="$ctrl.onPopoverClose()">
        <vn-order-catalog-search-panel
            on-submit="$ctrl.onPanelSubmit($filter)"
            popover="popover"
            result-tags="$ctrl.resultTags">
        </vn-order-catalog-search-panel>
    </vn-popover>
    <div class="chips">
        <vn-chip 
            ng-if="$ctrl.itemId"
            removable="true"
            vn-tooltip="Item id"
            on-remove="$ctrl.removeItemId()"
            class="colored"> 
            <span>Id: {{$ctrl.itemId}}</span>
        </vn-chip>
        <vn-chip 
            ng-if="$ctrl.itemName"
            removable="true"
            vn-tooltip="Item"
            on-remove="$ctrl.removeItemName()"
            class="colored">
            <div>
                <span>
                    <span translate>Name</span>:
                </span>
                <span>{{$ctrl.itemName}}</span>
            </div>
        </vn-chip>
        <vn-chip 
            ng-if="category.selection"
            removable="true"
            vn-tooltip="Category"
            on-remove="$ctrl.categoryId = null"
            class="colored"> 
            <span translate>{{category.selection.name}}</span>
        </vn-chip>
        <vn-chip 
            ng-if="type.selection"
            removable="true"
            vn-tooltip="Type"
            on-remove="$ctrl.typeId = null"
            class="colored"> 
            <span translate>{{type.selection.name}}</span>
        </vn-chip>
        <vn-chip
            ng-repeat="tagGroup in $ctrl.tagGroups"
            removable="true"
            on-remove="$ctrl.remove($index)"
            vn-tooltip="{{::$ctrl.formatTooltip(tagGroup)}}"
            class="colored"> 
            <div>
                <span ng-if="::tagGroup.tagFk">
                    <span translate>{{::tagGroup.tagSelection.name}}</span>:
                </span>
                <span ng-repeat="tagValue in tagGroup.values">
                    <span ng-if="$index > 0">,</span>
                    <span>"{{::tagValue.value}}"</span>
                </span>
            </div>
        </vn-chip>
    </div>
</vn-side-menu>