|
1 | | -<ng-template #complex let-display let-data="data" let-key="displayKey"> |
2 | | - {{display[key]}} |
3 | | -</ng-template> |
4 | | -<ng-template #primitive let-display> |
5 | | - {{display}} |
6 | | -</ng-template> |
7 | | -<ng-template #empty> |
8 | | - <span>The list is empty</span> |
9 | | -</ng-template> |
10 | | -<ng-template #addItemDefault let-control> |
11 | | - <button igxButton="flat" igxRipple>Add item</button> |
12 | | -</ng-template> |
13 | | -<ng-template #headerItemBase let-item let-key="valueKey" let-groupKey="groupKey"> |
14 | | - {{ item[key] }} |
15 | | -</ng-template> |
16 | | - |
17 | 1 | <igx-input-group #inputGroup [displayDensity]="displayDensity" [type]="type" (click)="onInputClick($event)"> |
18 | 2 | <ng-container ngProjectAs="[igxLabel]"> |
19 | 3 | <ng-content select="[igxLabel]"></ng-content> |
|
22 | 6 | <ng-content select="igx-prefix"></ng-content> |
23 | 7 | </ng-container> |
24 | 8 | <ng-container ngProjectAs="igx-hint, [igxHint]"> |
25 | | - <ng-content select="igx-hint, [igxHint]"></ng-content> |
26 | | - </ng-container> |
| 9 | + <ng-content select="igx-hint, [igxHint]"></ng-content> |
| 10 | + </ng-container> |
27 | 11 | <input igxInput #comboInput name="comboInput" type="text" [value]="value" readonly [attr.placeholder]="placeholder" |
28 | 12 | [disabled]="disabled" (blur)="onBlur()" /> |
29 | 13 | <ng-container ngProjectAs="igx-suffix"> |
30 | 14 | <ng-content select="igx-suffix"></ng-content> |
31 | 15 | </ng-container> |
32 | | - <igx-suffix *ngIf="value.length" aria-label="Clear Selection" class="igx-combo__clear-button" igxRipple (click)="handleClearItems($event)"> |
| 16 | + <igx-suffix *ngIf="value.length" aria-label="Clear Selection" class="igx-combo__clear-button" igxRipple |
| 17 | + (click)="handleClearItems($event)"> |
33 | 18 | <ng-container *ngIf="clearIconTemplate"> |
34 | 19 | <ng-container *ngTemplateOutlet="clearIconTemplate"></ng-container> |
35 | 20 | </ng-container> |
|
39 | 24 | <ng-container *ngIf="toggleIconTemplate"> |
40 | 25 | <ng-container *ngTemplateOutlet="toggleIconTemplate; context: {$implicit: this.collapsed}"></ng-container> |
41 | 26 | </ng-container> |
42 | | - <igx-icon *ngIf="!toggleIconTemplate" fontSet="material">{{ dropdown.collapsed ? 'arrow_drop_down' : 'arrow_drop_up'}}</igx-icon> |
| 27 | + <igx-icon *ngIf="!toggleIconTemplate" fontSet="material"> |
| 28 | + {{ dropdown.collapsed ? 'arrow_drop_down' : 'arrow_drop_up'}}</igx-icon> |
43 | 29 | </igx-suffix> |
44 | 30 | </igx-input-group> |
45 | | -<igx-combo-drop-down #igxComboDropDown class="igx-combo__drop-down" [displayDensity]="displayDensity" [width]="itemsWidth || '100%'" (onOpening)="handleOpening($event)" |
46 | | - (onClosing)="handleClosing($event)" (onOpened)="handleOpened()" (onClosed)="handleClosed()"> |
| 31 | +<igx-combo-drop-down #igxComboDropDown class="igx-combo__drop-down" [displayDensity]="displayDensity" |
| 32 | + [width]="itemsWidth || '100%'" (onOpening)="handleOpening($event)" (onClosing)="handleClosing($event)" |
| 33 | + (onOpened)="handleOpened()" (onClosed)="handleClosed()"> |
47 | 34 | <igx-input-group *ngIf="displaySearchInput" [displayDensity]="displayDensity" class="igx-combo__search"> |
48 | 35 | <input class="igx-combo-input" igxInput #searchInput name="searchInput" autocomplete="off" type="text" |
49 | 36 | [(ngModel)]="searchValue" (ngModelChange)="handleInputChange($event)" (keyup)="handleKeyUp($event)" |
|
52 | 39 | </igx-input-group> |
53 | 40 | <ng-container *ngTemplateOutlet="headerTemplate"> |
54 | 41 | </ng-container> |
55 | | - <div #dropdownItemContainer class="igx-combo__content" [style.overflow]="'hidden'" [style.maxHeight.px]="itemsMaxHeight" |
56 | | - [igxDropDownItemNavigation]="dropdown" (focus)="dropdown.onFocus()" [tabindex]="dropdown.collapsed ? -1 : 0" |
57 | | - role="listbox" [attr.id]="dropdown.id"> |
58 | | - <ng-template igxFor let-item let-index="index" [igxForOf]="data | comboFiltering:filteringExpressions:filteringLogic | comboSorting:sortingExpressions | comboGrouping:groupKey" |
59 | | - [igxForScrollOrientation]="'vertical'" [igxForContainerSize]="itemsMaxHeight" [igxForItemSize]="itemHeight" |
| 42 | + <div #dropdownItemContainer class="igx-combo__content" [style.overflow]="'hidden'" |
| 43 | + [style.maxHeight.px]="itemsMaxHeight" [igxDropDownItemNavigation]="dropdown" (focus)="dropdown.onFocus()" |
| 44 | + [tabindex]="dropdown.collapsed ? -1 : 0" role="listbox" [attr.id]="dropdown.id"> |
| 45 | + <igx-combo-item *igxFor="let item of data | comboFiltering:filteringExpressions:filteringLogic |
| 46 | + | comboSorting:sortingExpressions |
| 47 | + | comboGrouping:groupKey:valueKey; |
| 48 | + index as rowIndex; containerSize: itemsMaxHeight; scrollOrientation: 'vertical'; itemSize: itemHeight" |
| 49 | + [itemHeight]='itemHeight' [value]="item" [isHeader]="item.isHeader" role="option" [index]="rowIndex" |
60 | 50 | (onChunkPreload)="dataLoading($event)"> |
61 | | - <igx-combo-item [itemHeight]='itemHeight' [value]="item" [isHeader]="item.isHeader" role="option" [index]="index"> |
62 | | - <ng-container *ngIf="item.isHeader"> |
63 | | - <ng-container *ngTemplateOutlet="headerItemTemplate ? headerItemTemplate : headerItemBase; context: {$implicit: item, data: data, valueKey: valueKey, groupKey: groupKey, displayKey: displayKey}"></ng-container> |
| 51 | + <ng-container *ngIf="item.isHeader"> |
| 52 | + <ng-container |
| 53 | + *ngTemplateOutlet="headerItemTemplate ? headerItemTemplate : headerItemBase; |
| 54 | + context: {$implicit: item, data: data, valueKey: valueKey, groupKey: groupKey, displayKey: displayKey}"> |
64 | 55 | </ng-container> |
65 | | - <ng-container *ngIf="!item.isHeader"> |
66 | | - <ng-container #listItem *ngTemplateOutlet="template; context: {$implicit: item, data: data, valueKey: valueKey, displayKey: displayKey};"></ng-container> |
| 56 | + </ng-container> |
| 57 | + <ng-container *ngIf="!item.isHeader"> |
| 58 | + <ng-container #listItem |
| 59 | + *ngTemplateOutlet="template; context: {$implicit: item, data: data, valueKey: valueKey, displayKey: displayKey};"> |
67 | 60 | </ng-container> |
68 | | - </igx-combo-item> |
69 | | - </ng-template> |
| 61 | + </ng-container> |
| 62 | + </igx-combo-item> |
70 | 63 | </div> |
71 | 64 | <div class="igx-combo__add" *ngIf="filteredData.length === 0 || isAddButtonVisible()"> |
72 | 65 | <div class="igx-combo__empty" *ngIf="filteredData.length === 0"> |
73 | 66 | <ng-container *ngTemplateOutlet="emptyTemplate ? emptyTemplate : empty"> |
74 | 67 | </ng-container> |
75 | 68 | </div> |
76 | | - <igx-combo-add-item [itemHeight]='itemHeight' *ngIf="isAddButtonVisible()" [tabindex]="dropdown.collapsed ? -1 : customValueFlag ? 1 : -1" |
77 | | - class="igx-combo__add-item" role="button" aria-label="Add Item" [index]="virtualScrollContainer.igxForOf.length"> |
| 69 | + <igx-combo-add-item [itemHeight]='itemHeight' *ngIf="isAddButtonVisible()" |
| 70 | + [tabindex]="dropdown.collapsed ? -1 : customValueFlag ? 1 : -1" class="igx-combo__add-item" role="button" |
| 71 | + aria-label="Add Item" [index]="virtualScrollContainer.igxForOf.length"> |
78 | 72 | <ng-container *ngTemplateOutlet="addItemTemplate ? addItemTemplate : addItemDefault"> |
79 | 73 | </ng-container> |
80 | 74 | </igx-combo-add-item> |
81 | 75 | </div> |
82 | 76 | <ng-container *ngTemplateOutlet="footerTemplate"> |
83 | 77 | </ng-container> |
84 | 78 | </igx-combo-drop-down> |
| 79 | +<ng-template #complex let-display let-data="data" let-key="displayKey"> |
| 80 | + {{display[key]}} |
| 81 | +</ng-template> |
| 82 | +<ng-template #primitive let-display> |
| 83 | + {{display}} |
| 84 | +</ng-template> |
| 85 | +<ng-template #empty> |
| 86 | + <span>The list is empty</span> |
| 87 | +</ng-template> |
| 88 | +<ng-template #addItemDefault let-control> |
| 89 | + <button igxButton="flat" igxRipple>Add item</button> |
| 90 | +</ng-template> |
| 91 | +<ng-template #headerItemBase let-item let-key="valueKey" let-groupKey="groupKey"> |
| 92 | + {{ item[key] }} |
| 93 | +</ng-template> |
0 commit comments