@progress/kendo-angular-dropdowns
Version:
A wide variety of native Angular dropdown components including AutoComplete, ComboBox, DropDownList, DropDownTree, MultiColumnComboBox, MultiSelect, and MultiSelectTree
56 lines (55 loc) • 3.25 kB
JavaScript
/**-----------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { Directive, TemplateRef } from '@angular/core';
import * as i0 from "@angular/core";
/**
* Renders the group header content. To define the group template, nest an `<ng-template>` tag
* with the `kendo<ComponentName>GroupTemplate` directive inside the component tag. The template context is
* set to the current component. To get a reference to the current data item, use the `let-groupName` directive.
*
* - [Using `GroupTemplate` with the AutoComplete]({% slug templates_autocomplete %}#toc-group-header-template)
* - [Using `GroupTemplate` with the ComboBox]({% slug templates_combobox %}#toc-group-header-template)
* - [Using `GroupTemplate` with the MultiColumnComboBox]({% slug templates_multicolumncombobox %}#toc-group-header-template)
* - [Using `GroupTemplate` with the DropDownList]({% slug templates_ddl %}#toc-group-header-template)
* - [Using `GroupTemplate` with the MultiSelect]({% slug templates_multiselect %}#toc-group-header-template)
*
* @example
* ```ts
* import { groupBy } from '@progress/kendo-data-query';
* _@Component({
* selector: 'my-app',
* template: `
* <kendo-combobox [data]="groupedData" textField="name" valueField="name">
* <ng-template kendoComboBoxGroupTemplate let-groupName>
* <span>Food type: {{groupName}} option</span>
* </ng-template>
* </kendo-combobox>
* `
* })
* class AppComponent {
* public data = [
* { name: "Pork", category: "Food", subcategory: "Meat" },
* { name: "Pepper", category: "Food", subcategory: "Vegetables" },
* { name: "Beef", category: "Food", subcategory: "Meat" }
* ];
* public groupedData = groupBy(this.data, [{field: "subcategory"}]);
* }
* ```
*/
export class GroupTemplateDirective {
templateRef;
constructor(templateRef) {
this.templateRef = templateRef;
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GroupTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.12", type: GroupTemplateDirective, isStandalone: true, selector: "[kendoDropDownListGroupTemplate],[kendoComboBoxGroupTemplate],[kendoMultiColumnComboBoxGroupTemplate],[kendoAutoCompleteGroupTemplate],[kendoMultiSelectGroupTemplate]", ngImport: i0 });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GroupTemplateDirective, decorators: [{
type: Directive,
args: [{
selector: '[kendoDropDownListGroupTemplate],[kendoComboBoxGroupTemplate],[kendoMultiColumnComboBoxGroupTemplate],[kendoAutoCompleteGroupTemplate],[kendoMultiSelectGroupTemplate]',
standalone: true
}]
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; } });