|
| 1 | +<!-- Toolbar area --> |
| 2 | +<ng-content select="igx-grid-toolbar"></ng-content> |
| 3 | + |
| 4 | +<!-- Grid table head row area --> |
| 5 | +<igx-pivot-header-row class="igx-grid-thead" tabindex="0" |
| 6 | + [grid]="this" |
| 7 | + [hasMRL]="hasColumnLayouts" |
| 8 | + [density]="displayDensity" |
| 9 | + [activeDescendant]="activeDescendant" |
| 10 | + [width]="calcWidth" |
| 11 | + [pinnedColumnCollection]="pinnedColumns" |
| 12 | + [unpinnedColumnCollection]="unpinnedColumns" |
| 13 | + (keydown.meta.c)="copyHandler($event)" |
| 14 | + (keydown.control.c)="copyHandler($event)" |
| 15 | + (copy)="copyHandler($event)" |
| 16 | + (keydown)="navigation.headerNavigation($event)" |
| 17 | + (scroll)="preventHeaderScroll($event)" |
| 18 | + (focus)="navigation.focusFirstCell()" |
| 19 | +> |
| 20 | +</igx-pivot-header-row> |
| 21 | + |
| 22 | +<div igxGridBody (keydown.control.c)="copyHandler($event)" (copy)="copyHandler($event)" class="igx-grid__tbody" role="rowgroup"> |
| 23 | + <div class="igx-grid__tbody-content" tabindex="0" [attr.role]="dataView.length ? null : 'row'" (keydown)="navigation.handleNavigation($event)" (focus)="navigation.focusTbody($event)" |
| 24 | + (dragStop)="selectionService.dragMode = $event" (scroll)='preventContainerScroll($event)' |
| 25 | + (dragScroll)="dragScroll($event)" [igxGridDragSelect]="selectionService.dragMode" |
| 26 | + [style.height.px]='totalHeight' [style.width.px]='calcWidth || null' #tbody [attr.aria-activedescendant]="activeDescendant"> |
| 27 | + <span *ngIf="hasMovableColumns && columnInDrag && pinnedColumns.length <= 0" |
| 28 | + [igxColumnMovingDrop]="headerContainer" [attr.droppable]="true" id="left" |
| 29 | + class="igx-grid__scroll-on-drag-left"></span> |
| 30 | + <span *ngIf="hasMovableColumns && columnInDrag && pinnedColumns.length > 0" |
| 31 | + [igxColumnMovingDrop]="headerContainer" [attr.droppable]="true" id="left" |
| 32 | + class="igx-grid__scroll-on-drag-pinned" [style.left.px]="pinnedWidth"></span> |
| 33 | + <ng-template igxGridFor let-rowData [igxGridForOf]="data |
| 34 | + | gridPivotFilter:pivotConfiguration.filters:filterStrategy:advancedFilteringExpressionsTree |
| 35 | + | gridPivotRow:pivotConfiguration.rows:pivotConfiguration.values" |
| 36 | + let-rowIndex="index" [igxForScrollOrientation]="'vertical'" [igxForScrollContainer]='verticalScroll' |
| 37 | + [igxForContainerSize]='calcHeight' |
| 38 | + [igxForItemSize]="hasColumnLayouts ? rowHeight * multiRowLayoutRowSize + 1 : renderedRowHeight" |
| 39 | + #verticalScrollContainer> |
| 40 | + <ng-template |
| 41 | + [igxTemplateOutlet]='recordTemplate' |
| 42 | + [igxTemplateOutletContext]='getContext(rowData, rowIndex)' |
| 43 | + (cachedViewLoaded)='cachedViewLoaded($event)'> |
| 44 | + </ng-template> |
| 45 | + </ng-template> |
| 46 | + <ng-template #record_template let-rowIndex="index" let-rowData> |
| 47 | + <igx-pivot-row [gridID]="id" [index]="rowIndex" [rowData]="rowData" [ngClass]="rowClasses | igxGridRowClasses:row:row.inEditMode:row.selected:row.dirty:row.deleted:row.dragging:rowIndex:hasColumnLayouts:false:pipeTrigger" |
| 48 | + [ngStyle]="rowStyles | igxGridRowStyles:rowData:rowIndex:pipeTrigger" #row> |
| 49 | + </igx-pivot-row> |
| 50 | + </ng-template> |
| 51 | + |
| 52 | + <ng-container *ngTemplateOutlet="template"></ng-container> |
| 53 | + <igc-trial-watermark></igc-trial-watermark> |
| 54 | + </div> |
| 55 | + <div igxToggle #loadingOverlay> |
| 56 | + <igx-circular-bar [indeterminate]="true" *ngIf='shouldOverlayLoading'> |
| 57 | + </igx-circular-bar> |
| 58 | + </div> |
| 59 | + <span *ngIf="hasMovableColumns && columnInDrag" [igxColumnMovingDrop]="headerContainer" [attr.droppable]="true" |
| 60 | + id="right" class="igx-grid__scroll-on-drag-right"></span> |
| 61 | + <div [hidden]='!hasVerticalScroll()' class="igx-grid__tbody-scrollbar" [style.width.px]="scrollSize" (pointerdown)="$event.preventDefault()"> |
| 62 | + <div class="igx-grid__tbody-scrollbar-start" [style.height.px]=' isRowPinningToTop ? pinnedRowHeight : 0'></div> |
| 63 | + <div class="igx-grid__tbody-scrollbar-main" [style.height.px]='calcHeight'> |
| 64 | + <ng-template igxGridFor [igxGridForOf]='[]' #verticalScrollHolder></ng-template> |
| 65 | + </div> |
| 66 | + <div class="igx-grid__tbody-scrollbar-end" [style.height.px]='!isRowPinningToTop ? pinnedRowHeight : 0'></div> |
| 67 | + </div> |
| 68 | + |
| 69 | + <div class="igx-grid__addrow-snackbar"> |
| 70 | + <igx-snackbar #addRowSnackbar [outlet]="igxBodyOverlayOutlet" [actionText]="resourceStrings.igx_grid_snackbar_addrow_actiontext" [displayTime]='snackbarDisplayTime'>{{resourceStrings.igx_grid_snackbar_addrow_label}}</igx-snackbar> |
| 71 | + </div> |
| 72 | + |
| 73 | + <div #igxBodyOverlayOutlet="overlay-outlet" igxOverlayOutlet></div> |
| 74 | +</div> |
| 75 | + |
| 76 | +<div class="igx-grid__scroll" [style.height.px]="scrollSize" #scr [hidden]="isHorizontalScrollHidden" (pointerdown)="$event.preventDefault()"> |
| 77 | + <div class="igx-grid__scroll-start" [style.width.px]='isPinningToStart ? pinnedWidth : headerFeaturesWidth' [style.min-width.px]='isPinningToStart ? pinnedWidth : headerFeaturesWidth'></div> |
| 78 | + <div class="igx-grid__scroll-main" [style.width.px]='unpinnedWidth'> |
| 79 | + <ng-template igxGridFor [igxGridForOf]='EMPTY_DATA' #scrollContainer> |
| 80 | + </ng-template> |
| 81 | + </div> |
| 82 | + <div class="igx-grid__scroll-end" [style.float]='"right"' [style.width.px]='pinnedWidth' [style.min-width.px]='pinnedWidth' [hidden]="pinnedWidth === 0 || isPinningToStart"></div> |
| 83 | +</div> |
| 84 | + |
| 85 | +<div class="igx-grid__tfoot" role="rowgroup" #tfoot> |
| 86 | +</div> |
| 87 | + |
| 88 | +<div class="igx-grid__footer" #footer> |
| 89 | + <ng-content select="igx-grid-footer"></ng-content> |
| 90 | +</div> |
| 91 | + |
| 92 | +<ng-template #emptyFilteredGrid> |
| 93 | + <span class="igx-grid__tbody-message" role="cell"> |
| 94 | + <span>{{emptyFilteredGridMessage}}</span> |
| 95 | + </span> |
| 96 | +</ng-template> |
| 97 | + |
| 98 | +<ng-template #defaultEmptyGrid> |
| 99 | + <span class="igx-grid__tbody-message" role="cell"> |
| 100 | + <span>{{emptyGridMessage}}</span> |
| 101 | + </span> |
| 102 | +</ng-template> |
| 103 | + |
| 104 | +<ng-template #defaultLoadingGrid> |
| 105 | + <div class="igx-grid__loading"> |
| 106 | + <igx-circular-bar [indeterminate]="true"> |
| 107 | + </igx-circular-bar> |
| 108 | + </div> |
| 109 | +</ng-template> |
| 110 | +<igx-grid-column-resizer *ngIf="colResizingService.showResizer"></igx-grid-column-resizer> |
| 111 | +<div class="igx-grid__loading-outlet" #igxLoadingOverlayOutlet igxOverlayOutlet></div> |
| 112 | +<div class="igx-grid__outlet" #igxFilteringOverlayOutlet igxOverlayOutlet></div> |
0 commit comments