| 
6 | 6 |  style="font-size: 18px"  | 
7 | 7 |  target="_blank"  | 
8 | 8 |  href="https://github.com/ghiscoding/slickgrid-universal/blob/master/frameworks/angular-slickgrid/src/demos/examples/grid-clientside.component.ts"  | 
9 |  | - >  | 
 | 9 | +  >  | 
10 | 10 |  <span class="mdi mdi-link-variant"></span> code  | 
11 | 11 |  </a>  | 
12 | 12 |  </span>  | 
13 | 13 |  </h2>  | 
14 | 14 |  <div class="subtitle">  | 
15 | 15 |  Sort/Filter on client side only using SlickGrid DataView (<a  | 
16 |  | -  href="https://ghiscoding.gitbook.io/angular-slickgrid/column-functionalities/sorting"  | 
17 |  | -  target="_blank"  | 
18 |  | -  >Wiki docs</a  | 
 | 16 | + href="https://ghiscoding.gitbook.io/angular-slickgrid/column-functionalities/sorting"  | 
 | 17 | + target="_blank"  | 
 | 18 | + >Wiki docs</a  | 
19 | 19 |  >)  | 
20 | 20 |  <br />  | 
21 | 21 |  <ul class="small">  | 
 | 
41 | 41 |  Custom Filter are now possible, "Description" column below, is a customized InputFilter with different placeholder. See  | 
42 | 42 |  <a href="https://ghiscoding.gitbook.io/angular-slickgrid/column-functionalities/custom-filter" target="_blank"  | 
43 | 43 |  >Wiki - Custom Filter</a  | 
44 |  | - >  | 
45 |  | - </li>  | 
46 |  | - <li>MultipleSelect & SingeSelect Filters can use a regular "collection" or "collectionAsync" to load it asynchronously</li>  | 
47 |  | - </ul>  | 
48 |  | - </div>  | 
 | 44 | +  >  | 
 | 45 | +  </li>  | 
 | 46 | +  <li>MultipleSelect & SingeSelect Filters can use a regular "collection" or "collectionAsync" to load it asynchronously</li>  | 
 | 47 | +  </ul>  | 
 | 48 | +  </div>  | 
49 | 49 | 
 
  | 
50 |  | - <br />  | 
51 |  | - <span *ngIf="metrics" style="margin-right: 10px">  | 
52 |  | - <b>Metrics:</b> {{ metrics.startTime | date: "yyyy-MM-dd hh:mm aaaaa'm'" }} | {{ metrics.itemCount }} of  | 
53 |  | - {{ metrics.totalItemCount }} items  | 
54 |  | - </span>  | 
55 |  | - <div class="btn-group" role="group">  | 
56 |  | - <button class="btn btn-sm btn-outline-secondary btn-icon" data-test="scroll-top-btn" (click)="scrollGridTop()">  | 
57 |  | - <i class="mdi mdi-arrow-down mdi-rotate-180"></i>  | 
 | 50 | + <br />  | 
 | 51 | + @if (metrics) {  | 
 | 52 | + <span style="margin-right: 10px">  | 
 | 53 | + <b>Metrics:</b> {{ metrics.startTime | date: "yyyy-MM-dd hh:mm aaaaa'm'" }} | {{ metrics.itemCount }} of  | 
 | 54 | + {{ metrics.totalItemCount }} items  | 
 | 55 | + </span>  | 
 | 56 | + }  | 
 | 57 | + <div class="btn-group" role="group">  | 
 | 58 | + <button class="btn btn-sm btn-outline-secondary btn-icon" data-test="scroll-top-btn" (click)="scrollGridTop()">  | 
 | 59 | + <i class="mdi mdi-arrow-down mdi-rotate-180"></i>  | 
 | 60 | + </button>  | 
 | 61 | + <button class="btn btn-sm btn-outline-secondary btn-icon" data-test="scroll-bottom-btn" (click)="scrollGridBottom()">  | 
 | 62 | + <i class="mdi mdi-arrow-down"></i>  | 
 | 63 | + </button>  | 
 | 64 | + </div>  | 
 | 65 | + <button class="btn btn-outline-secondary btn-sm btn-icon" data-test="clear-filters" (click)="angularGrid.filterService.clearFilters()">  | 
 | 66 | + Clear Filters  | 
58 | 67 |  </button>  | 
59 |  | - <button class="btn btn-sm btn-outline-secondary btn-icon" data-test="scroll-bottom-btn" (click)="scrollGridBottom()">  | 
60 |  | - <i class="mdi mdi-arrow-down"></i>  | 
 | 68 | + <button class="btn btn-outline-secondary btn-sm btn-icon" data-test="clear-sorting" (click)="angularGrid.sortService.clearSorting()">  | 
 | 69 | + Clear Sorting  | 
 | 70 | + </button>  | 
 | 71 | + <button class="btn btn-outline-secondary btn-sm btn-icon" data-test="set-dynamic-filter" (click)="setFiltersDynamically()">  | 
 | 72 | + Set Filters Dynamically  | 
 | 73 | + </button>  | 
 | 74 | + <button class="btn btn-outline-secondary btn-sm btn-icon" data-test="set-dynamic-sorting" (click)="setSortingDynamically()">  | 
 | 75 | + Set Sorting Dynamically  | 
61 | 76 |  </button>  | 
62 |  | - </div>  | 
63 |  | - <button class="btn btn-outline-secondary btn-sm btn-icon" data-test="clear-filters" (click)="angularGrid.filterService.clearFilters()">  | 
64 |  | - Clear Filters  | 
65 |  | - </button>  | 
66 |  | - <button class="btn btn-outline-secondary btn-sm btn-icon" data-test="clear-sorting" (click)="angularGrid.sortService.clearSorting()">  | 
67 |  | - Clear Sorting  | 
68 |  | - </button>  | 
69 |  | - <button class="btn btn-outline-secondary btn-sm btn-icon" data-test="set-dynamic-filter" (click)="setFiltersDynamically()">  | 
70 |  | - Set Filters Dynamically  | 
71 |  | - </button>  | 
72 |  | - <button class="btn btn-outline-secondary btn-sm btn-icon" data-test="set-dynamic-sorting" (click)="setSortingDynamically()">  | 
73 |  | - Set Sorting Dynamically  | 
74 |  | - </button>  | 
75 | 77 | 
 
  | 
76 |  | - <angular-slickgrid  | 
77 |  | - gridId="grid4"  | 
78 |  | - [columns]="columnDefinitions"  | 
79 |  | - [options]="gridOptions"  | 
80 |  | - [dataset]="dataset"  | 
81 |  | - (onAngularGridCreated)="angularGridReady($event.detail)"  | 
82 |  | - (onGridStateChanged)="gridStateChanged($event.detail)"  | 
83 |  | - (onBeforeGridDestroy)="saveCurrentGridState()"  | 
84 |  | - (onRowCountChanged)="refreshMetrics($event.detail.eventData, $event.detail.args)"  | 
85 |  | - >  | 
86 |  | - </angular-slickgrid>  | 
87 |  | -</div>  | 
 | 78 | +  <angular-slickgrid  | 
 | 79 | +  gridId="grid4"  | 
 | 80 | +  [columns]="columnDefinitions"  | 
 | 81 | +  [options]="gridOptions"  | 
 | 82 | +  [dataset]="dataset"  | 
 | 83 | +  (onAngularGridCreated)="angularGridReady($event.detail)"  | 
 | 84 | +  (onGridStateChanged)="gridStateChanged($event.detail)"  | 
 | 85 | +  (onBeforeGridDestroy)="saveCurrentGridState()"  | 
 | 86 | +  (onRowCountChanged)="refreshMetrics($event.detail.eventData, $event.detail.args)"  | 
 | 87 | +  >  | 
 | 88 | +  </angular-slickgrid>  | 
 | 89 | + </div>  | 
0 commit comments