UNPKG

@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
/**----------------------------------------------------------------------------------------- * 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 }]; } });