@memberjunction/ng-query-grid 3.4.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +59 -313
- package/dist/lib/ng-query-grid.component.d.ts.map +1 -1
- package/dist/lib/ng-query-grid.component.js +16 -19
- package/dist/lib/ng-query-grid.component.js.map +1 -1
- package/dist/lib/ng-query-grid.module.d.ts +3 -4
- package/dist/lib/ng-query-grid.module.d.ts.map +1 -1
- package/dist/lib/ng-query-grid.module.js +0 -4
- package/dist/lib/ng-query-grid.module.js.map +1 -1
- package/package.json +17 -18
package/README.md
CHANGED
|
@@ -1,25 +1,8 @@
|
|
|
1
1
|
# @memberjunction/ng-query-grid
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
> **Deprecated**: Use [`@memberjunction/ng-query-viewer`](../query-viewer/README.md) instead. This component will be removed in a future version. The replacement provides state persistence, parameter persistence, entity linking, and auto-run capability.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
The Query Grid component is designed to seamlessly display results from MemberJunction queries in a highly configurable Kendo UI Grid. It handles all the complexity of data loading, pagination, and user interactions while providing a clean API for developers to integrate query results into their Angular applications.
|
|
8
|
-
|
|
9
|
-
## Features
|
|
10
|
-
|
|
11
|
-
- **Query-Based Data Display**: Execute and display results from any MemberJunction query
|
|
12
|
-
- **Virtual Scrolling**: Efficient handling of large datasets with virtual scrolling
|
|
13
|
-
- **Pagination**: Built-in pagination with configurable page size (default: 40 rows)
|
|
14
|
-
- **Excel Export**: One-click export to Excel with automatic filename generation
|
|
15
|
-
- **Sorting and Reordering**: Sort columns and reorder them via drag and drop
|
|
16
|
-
- **Column Resizing**: Resize columns to fit your data
|
|
17
|
-
- **Row Selection**: Select rows for further operations
|
|
18
|
-
- **Row Click Events**: Handle row clicks with detailed event data
|
|
19
|
-
- **Loading States**: Visual feedback during data fetching
|
|
20
|
-
- **Responsive Layout**: Automatically fills container with `mjFillContainer` directive
|
|
21
|
-
- **Refresh Capability**: Built-in refresh button to reload data
|
|
22
|
-
- **Deferred Loading**: Control when data loads with the `AllowLoad` input
|
|
5
|
+
An Angular component for running and displaying stored query results in a Kendo UI grid.
|
|
23
6
|
|
|
24
7
|
## Installation
|
|
25
8
|
|
|
@@ -27,342 +10,105 @@ The Query Grid component is designed to seamlessly display results from MemberJu
|
|
|
27
10
|
npm install @memberjunction/ng-query-grid
|
|
28
11
|
```
|
|
29
12
|
|
|
13
|
+
## Overview
|
|
14
|
+
|
|
15
|
+
The Query Grid component runs a stored query via `RunQuery` and renders results in a Kendo virtual-scrolling grid. It supports Excel export and provides click events for navigating to entity records from query results.
|
|
16
|
+
|
|
17
|
+
```mermaid
|
|
18
|
+
flowchart LR
|
|
19
|
+
A["RunQueryParams"] --> B["QueryGridComponent"]
|
|
20
|
+
B --> C["RunQuery API"]
|
|
21
|
+
C --> D["Kendo Grid (Virtual Scroll)"]
|
|
22
|
+
D --> E["Row Clicked Event"]
|
|
23
|
+
D --> F["Excel Export"]
|
|
24
|
+
|
|
25
|
+
style A fill:#2d6a9f,stroke:#1a4971,color:#fff
|
|
26
|
+
style B fill:#7c5295,stroke:#563a6b,color:#fff
|
|
27
|
+
style D fill:#2d8659,stroke:#1a5c3a,color:#fff
|
|
28
|
+
style F fill:#b8762f,stroke:#8a5722,color:#fff
|
|
29
|
+
```
|
|
30
|
+
|
|
30
31
|
## Usage
|
|
31
32
|
|
|
32
|
-
### Import
|
|
33
|
+
### Module Import
|
|
33
34
|
|
|
34
35
|
```typescript
|
|
35
36
|
import { QueryGridModule } from '@memberjunction/ng-query-grid';
|
|
36
37
|
|
|
37
38
|
@NgModule({
|
|
38
|
-
imports: [
|
|
39
|
-
QueryGridModule,
|
|
40
|
-
// other imports
|
|
41
|
-
],
|
|
42
|
-
// ...
|
|
39
|
+
imports: [QueryGridModule]
|
|
43
40
|
})
|
|
44
|
-
export class YourModule {
|
|
41
|
+
export class YourModule {}
|
|
45
42
|
```
|
|
46
43
|
|
|
47
|
-
### Basic
|
|
44
|
+
### Basic Usage
|
|
48
45
|
|
|
49
46
|
```html
|
|
50
|
-
<!-- Basic query grid with default settings -->
|
|
51
47
|
<mj-query-grid
|
|
52
48
|
[Params]="queryParams"
|
|
49
|
+
[BottomMargin]="50"
|
|
53
50
|
(rowClicked)="onRowClicked($event)">
|
|
54
51
|
</mj-query-grid>
|
|
55
52
|
```
|
|
56
53
|
|
|
57
|
-
### Advanced Configuration
|
|
58
|
-
|
|
59
|
-
```html
|
|
60
|
-
<!-- Fully configured query grid -->
|
|
61
|
-
<mj-query-grid
|
|
62
|
-
[Params]="queryParams"
|
|
63
|
-
[BottomMargin]="20"
|
|
64
|
-
[AutoNavigate]="false"
|
|
65
|
-
[AllowLoad]="isReadyToLoad"
|
|
66
|
-
[InEditMode]="false"
|
|
67
|
-
[EditMode]="'None'"
|
|
68
|
-
(rowClicked)="handleRowClick($event)">
|
|
69
|
-
</mj-query-grid>
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
### Complete TypeScript Example
|
|
73
|
-
|
|
74
54
|
```typescript
|
|
75
|
-
import { Component, OnInit, ViewChild } from '@angular/core';
|
|
76
55
|
import { RunQueryParams } from '@memberjunction/core';
|
|
77
|
-
import { GridRowClickedEvent, QueryGridComponent } from '@memberjunction/ng-query-grid';
|
|
78
56
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
<div class="orders-container">
|
|
83
|
-
<h2>Customer Orders</h2>
|
|
84
|
-
|
|
85
|
-
<div class="controls">
|
|
86
|
-
<button kendoButton (click)="refreshData()">
|
|
87
|
-
<span class="fa-solid fa-refresh"></span> Refresh
|
|
88
|
-
</button>
|
|
89
|
-
|
|
90
|
-
<label>
|
|
91
|
-
Date Range:
|
|
92
|
-
<input type="date" [(ngModel)]="startDate" (change)="updateQueryParams()">
|
|
93
|
-
to
|
|
94
|
-
<input type="date" [(ngModel)]="endDate" (change)="updateQueryParams()">
|
|
95
|
-
</label>
|
|
96
|
-
</div>
|
|
97
|
-
|
|
98
|
-
<div class="grid-container" style="height: 600px;">
|
|
99
|
-
<mj-query-grid
|
|
100
|
-
#orderGrid
|
|
101
|
-
[Params]="orderQueryParams"
|
|
102
|
-
[AutoNavigate]="false"
|
|
103
|
-
[AllowLoad]="true"
|
|
104
|
-
(rowClicked)="onOrderRowClicked($event)">
|
|
105
|
-
</mj-query-grid>
|
|
106
|
-
</div>
|
|
107
|
-
|
|
108
|
-
<div *ngIf="selectedOrder" class="order-details">
|
|
109
|
-
<h3>Selected Order Details</h3>
|
|
110
|
-
<dl>
|
|
111
|
-
<dt>Order ID:</dt>
|
|
112
|
-
<dd>{{ getOrderField('OrderID') }}</dd>
|
|
113
|
-
|
|
114
|
-
<dt>Customer:</dt>
|
|
115
|
-
<dd>{{ getOrderField('CustomerName') }}</dd>
|
|
116
|
-
|
|
117
|
-
<dt>Order Date:</dt>
|
|
118
|
-
<dd>{{ getOrderField('OrderDate') | date }}</dd>
|
|
119
|
-
|
|
120
|
-
<dt>Total Amount:</dt>
|
|
121
|
-
<dd>{{ getOrderAmount() | currency }}</dd>
|
|
122
|
-
</dl>
|
|
123
|
-
</div>
|
|
124
|
-
</div>
|
|
125
|
-
`,
|
|
126
|
-
styles: [`
|
|
127
|
-
.orders-container {
|
|
128
|
-
padding: 20px;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
.controls {
|
|
132
|
-
margin-bottom: 20px;
|
|
133
|
-
display: flex;
|
|
134
|
-
gap: 20px;
|
|
135
|
-
align-items: center;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
.grid-container {
|
|
139
|
-
border: 1px solid #ddd;
|
|
140
|
-
margin-bottom: 20px;
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
.order-details {
|
|
144
|
-
background: #f5f5f5;
|
|
145
|
-
padding: 20px;
|
|
146
|
-
border-radius: 4px;
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
dl {
|
|
150
|
-
display: grid;
|
|
151
|
-
grid-template-columns: 150px 1fr;
|
|
152
|
-
gap: 10px;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
dt {
|
|
156
|
-
font-weight: bold;
|
|
157
|
-
}
|
|
158
|
-
`]
|
|
159
|
-
})
|
|
160
|
-
export class CustomerOrdersComponent implements OnInit {
|
|
161
|
-
@ViewChild('orderGrid') orderGrid!: QueryGridComponent;
|
|
162
|
-
|
|
163
|
-
orderQueryParams: RunQueryParams;
|
|
164
|
-
selectedOrder: GridRowClickedEvent | null = null;
|
|
165
|
-
startDate: string;
|
|
166
|
-
endDate: string;
|
|
167
|
-
|
|
168
|
-
constructor() {
|
|
169
|
-
// Initialize dates
|
|
170
|
-
const today = new Date();
|
|
171
|
-
const lastMonth = new Date(today.getFullYear(), today.getMonth() - 1, today.getDate());
|
|
172
|
-
|
|
173
|
-
this.startDate = lastMonth.toISOString().split('T')[0];
|
|
174
|
-
this.endDate = today.toISOString().split('T')[0];
|
|
175
|
-
|
|
176
|
-
// Initialize query parameters
|
|
177
|
-
this.orderQueryParams = this.createQueryParams();
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
ngOnInit() {
|
|
181
|
-
// Component initialization
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
private createQueryParams(): RunQueryParams {
|
|
185
|
-
return {
|
|
186
|
-
QueryID: 'CustomerOrdersWithDetails',
|
|
187
|
-
Parameters: {
|
|
188
|
-
StartDate: this.startDate,
|
|
189
|
-
EndDate: this.endDate,
|
|
190
|
-
Status: 'Active'
|
|
191
|
-
},
|
|
192
|
-
MaxRows: 1000
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
updateQueryParams() {
|
|
197
|
-
this.orderQueryParams = this.createQueryParams();
|
|
198
|
-
// The grid will automatically refresh when params change
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
refreshData() {
|
|
202
|
-
// Method 1: Using ViewChild reference
|
|
203
|
-
if (this.orderGrid) {
|
|
204
|
-
this.orderGrid.RefreshFromSavedParams();
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
// Method 2: Update params to trigger refresh
|
|
208
|
-
// this.orderQueryParams = { ...this.createQueryParams() };
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
onOrderRowClicked(event: GridRowClickedEvent) {
|
|
212
|
-
console.log('Order clicked:', event);
|
|
213
|
-
this.selectedOrder = event;
|
|
214
|
-
|
|
215
|
-
// You could navigate to a detail page here
|
|
216
|
-
// this.router.navigate(['/orders', event.entityId]);
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
getOrderField(fieldName: string): string {
|
|
220
|
-
if (!this.selectedOrder) return '';
|
|
221
|
-
|
|
222
|
-
const field = this.selectedOrder.KeyValuePairs.find(kvp => kvp.Key === fieldName);
|
|
223
|
-
return field?.Value || '';
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
getOrderAmount(): number {
|
|
227
|
-
const amount = this.getOrderField('TotalAmount');
|
|
228
|
-
return amount ? parseFloat(amount) : 0;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
57
|
+
const queryParams: RunQueryParams = {
|
|
58
|
+
QueryID: 'some-query-id'
|
|
59
|
+
};
|
|
231
60
|
```
|
|
232
61
|
|
|
233
62
|
## API Reference
|
|
234
63
|
|
|
235
|
-
### Component Selector
|
|
236
|
-
`mj-query-grid`
|
|
237
|
-
|
|
238
64
|
### Inputs
|
|
239
65
|
|
|
240
|
-
|
|
|
241
|
-
|
|
242
|
-
| `Params` | `RunQueryParams
|
|
66
|
+
| Property | Type | Default | Description |
|
|
67
|
+
|----------|------|---------|-------------|
|
|
68
|
+
| `Params` | `RunQueryParams` | `undefined` | Query parameters including QueryID |
|
|
243
69
|
| `BottomMargin` | `number` | `0` | Bottom margin in pixels |
|
|
244
|
-
| `InEditMode` | `boolean` | `false` | Whether
|
|
245
|
-
| `EditMode` | `
|
|
246
|
-
| `AutoNavigate` | `boolean` | `true` |
|
|
247
|
-
| `AllowLoad` | `boolean` | `true` |
|
|
70
|
+
| `InEditMode` | `boolean` | `false` | Whether edit mode is active |
|
|
71
|
+
| `EditMode` | `'None' \| 'Save' \| 'Queue'` | `'None'` | Edit behavior mode |
|
|
72
|
+
| `AutoNavigate` | `boolean` | `true` | Auto-navigate on row click |
|
|
73
|
+
| `AllowLoad` | `boolean` | `true` | Deferred loading control |
|
|
248
74
|
|
|
249
75
|
### Outputs
|
|
250
76
|
|
|
251
|
-
|
|
|
252
|
-
|
|
77
|
+
| Event | Type | Description |
|
|
78
|
+
|-------|------|-------------|
|
|
253
79
|
| `rowClicked` | `EventEmitter<GridRowClickedEvent>` | Emitted when a grid row is clicked |
|
|
254
80
|
|
|
255
81
|
### Public Methods
|
|
256
82
|
|
|
257
|
-
| Method |
|
|
258
|
-
|
|
259
|
-
| `Refresh` |
|
|
260
|
-
| `RefreshFromSavedParams` |
|
|
261
|
-
| `doExcelExport` |
|
|
83
|
+
| Method | Description |
|
|
84
|
+
|--------|-------------|
|
|
85
|
+
| `Refresh(params)` | Runs the query and refreshes the grid |
|
|
86
|
+
| `RefreshFromSavedParams()` | Re-runs with previously saved parameters |
|
|
87
|
+
| `doExcelExport()` | Exports current data to Excel |
|
|
262
88
|
|
|
263
|
-
|
|
89
|
+
## Migration to @memberjunction/ng-query-viewer
|
|
264
90
|
|
|
265
|
-
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
entityName: string;
|
|
270
|
-
KeyValuePairs: KeyValuePair[];
|
|
271
|
-
}
|
|
91
|
+
Replace:
|
|
92
|
+
```html
|
|
93
|
+
<mj-query-grid [Params]="params" (rowClicked)="onRow($event)">
|
|
94
|
+
</mj-query-grid>
|
|
272
95
|
```
|
|
273
96
|
|
|
274
|
-
|
|
275
|
-
```
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
Parameters?: Record<string, any>; // Optional templated query parameters
|
|
282
|
-
MaxRows?: number; // Maximum rows to return
|
|
283
|
-
StartRow?: number; // Row offset for pagination
|
|
284
|
-
}
|
|
97
|
+
With:
|
|
98
|
+
```html
|
|
99
|
+
<mj-query-viewer
|
|
100
|
+
[QueryId]="queryId"
|
|
101
|
+
[AutoRun]="true"
|
|
102
|
+
(EntityLinkClick)="onEntityLink($event)">
|
|
103
|
+
</mj-query-viewer>
|
|
285
104
|
```
|
|
286
105
|
|
|
287
|
-
## Grid Configuration
|
|
288
|
-
|
|
289
|
-
The component uses Kendo UI Grid with the following configuration:
|
|
290
|
-
|
|
291
|
-
- **Virtual Scrolling**: Enabled for performance with large datasets
|
|
292
|
-
- **Row Height**: 36px fixed height for virtual scrolling
|
|
293
|
-
- **Page Size**: 40 rows per page
|
|
294
|
-
- **Features**: Sorting, resizing, reordering, and selection enabled
|
|
295
|
-
- **Toolbar**: Excel export and refresh buttons
|
|
296
|
-
|
|
297
|
-
## Excel Export
|
|
298
|
-
|
|
299
|
-
The Excel export feature:
|
|
300
|
-
- Exports all loaded data (not just visible page)
|
|
301
|
-
- Automatically names file as `{QueryID}_Query.xlsx`
|
|
302
|
-
- Shows progress notifications during export
|
|
303
|
-
- Dynamically generates columns based on query results
|
|
304
|
-
|
|
305
|
-
## Styling and Layout
|
|
306
|
-
|
|
307
|
-
The component uses:
|
|
308
|
-
- `mjFillContainer` directive to fill available space
|
|
309
|
-
- Kendo UI Grid default styling
|
|
310
|
-
- Font Awesome icons for buttons
|
|
311
|
-
- Customizable through CSS
|
|
312
|
-
|
|
313
106
|
## Dependencies
|
|
314
107
|
|
|
315
|
-
|
|
316
|
-
- `@angular
|
|
317
|
-
- `@angular
|
|
318
|
-
- `@angular/forms`: ^18.0.2
|
|
319
|
-
- `@angular/router`: ^18.0.2
|
|
320
|
-
- `@progress/kendo-angular-grid`: ^16.2.0
|
|
321
|
-
- `@progress/kendo-angular-buttons`: ^16.2.0
|
|
322
|
-
- `@progress/kendo-angular-dialog`: ^16.2.0
|
|
323
|
-
|
|
324
|
-
### Runtime Dependencies
|
|
325
|
-
- `@memberjunction/core`: For query execution and metadata
|
|
326
|
-
- `@memberjunction/core-entities`: For entity types
|
|
327
|
-
- `@memberjunction/global`: For global utilities and events
|
|
328
|
-
- `@memberjunction/ng-container-directives`: For layout directives
|
|
329
|
-
- `@memberjunction/ng-compare-records`: For record comparison
|
|
330
|
-
- `@memberjunction/ng-shared`: For shared Angular utilities
|
|
331
|
-
|
|
332
|
-
## Integration with MemberJunction
|
|
333
|
-
|
|
334
|
-
This component integrates seamlessly with the MemberJunction ecosystem:
|
|
335
|
-
|
|
336
|
-
1. **Query Execution**: Uses `RunQuery` class from `@memberjunction/core` to execute queries
|
|
337
|
-
2. **Metadata Support**: Leverages MemberJunction metadata system
|
|
338
|
-
3. **Event System**: Uses `MJGlobal` event system for notifications
|
|
339
|
-
4. **Layout Integration**: Works with MemberJunction container directives
|
|
340
|
-
|
|
341
|
-
## Best Practices
|
|
342
|
-
|
|
343
|
-
1. **Container Height**: Always wrap the component in a container with defined height for virtual scrolling
|
|
344
|
-
2. **Query Parameters**: Validate query parameters before passing to the component
|
|
345
|
-
3. **Error Handling**: The component shows error notifications automatically
|
|
346
|
-
4. **Performance**: Use `MaxRows` parameter for large datasets
|
|
347
|
-
5. **Deferred Loading**: Use `AllowLoad` input to control when data loads
|
|
348
|
-
|
|
349
|
-
## Troubleshooting
|
|
350
|
-
|
|
351
|
-
### Grid Not Displaying
|
|
352
|
-
- Ensure the parent container has a defined height
|
|
353
|
-
- Check that `Params` includes a valid `QueryID`
|
|
354
|
-
- Verify query permissions in MemberJunction
|
|
355
|
-
|
|
356
|
-
### Export Not Working
|
|
357
|
-
- Check browser permissions for file downloads
|
|
358
|
-
- Ensure data is loaded before attempting export
|
|
359
|
-
- Verify Excel export module is properly imported
|
|
360
|
-
|
|
361
|
-
### Performance Issues
|
|
362
|
-
- Use `MaxRows` to limit result set size
|
|
363
|
-
- Enable virtual scrolling (default)
|
|
364
|
-
- Consider server-side pagination for very large datasets
|
|
108
|
+
- [@memberjunction/core](../../MJCore/README.md) -- Metadata, RunQuery
|
|
109
|
+
- `@progress/kendo-angular-grid` -- Grid rendering
|
|
110
|
+
- `@progress/kendo-angular-excel-export` -- Excel export
|
|
365
111
|
|
|
366
|
-
##
|
|
112
|
+
## Related Packages
|
|
367
113
|
|
|
368
|
-
|
|
114
|
+
- [@memberjunction/ng-query-viewer](../query-viewer/README.md) -- Recommended replacement
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-query-grid.component.d.ts","sourceRoot":"","sources":["../../src/lib/ng-query-grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,UAAU,EAAU,YAAY,EAAE,MAAM,EAAS,aAAa,EAAE,MAAM,eAAe,CAAC;AAErH,OAAO,EAAY,UAAU,EAAY,YAAY,EAAE,cAAc,EAAY,MAAM,sBAAsB,CAAC;AAE9G,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAEjI,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;;AAG5E,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAA;AAED;;;;;;;;GAQG;AACH,
|
|
1
|
+
{"version":3,"file":"ng-query-grid.component.d.ts","sourceRoot":"","sources":["../../src/lib/ng-query-grid.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,UAAU,EAAU,YAAY,EAAE,MAAM,EAAS,aAAa,EAAE,MAAM,eAAe,CAAC;AAErH,OAAO,EAAY,UAAU,EAAY,YAAY,EAAE,cAAc,EAAY,MAAM,sBAAsB,CAAC;AAE9G,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAEjI,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;;AAG5E,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B,CAAA;AAED;;;;;;;;GAQG;AACH,qBAMa,kBAAmB,YAAW,MAAM,EAAE,aAAa;IAC9D,KAAK,SAAe;IACX,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,YAAY,EAAE,MAAM,CAAK;IACzB,UAAU,EAAE,OAAO,CAAS;IAC5B,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAS;IAC5C,YAAY,EAAE,OAAO,CAAQ;IAE5B,UAAU,oCAA2C;IAEd,gBAAgB,EAAE,aAAa,GAAG,IAAI,CAAQ;IACjD,mBAAmB,EAAE,UAAU,GAAG,IAAI,CAAQ;IAClC,gBAAgB,EAAE,oBAAoB,GAAG,IAAI,CAAQ;IAExG,SAAS,EAAE,GAAG,EAAE,CAAM;IACtB,aAAa,EAAE,MAAM,CAAK;IAC1B,YAAY,EAAE,UAAU,GAAG,IAAI,CAAQ;IACvC,IAAI,EAAE,MAAM,CAAK;IACjB,QAAQ,EAAE,MAAM,CAAM;IACtB,SAAS,EAAE,OAAO,CAAS;IAC3B,QAAQ,EAAE,cAAc,CAA0B;IAClD,UAAU,EAAE,MAAM,CAAO;IAEzB,kBAAkB,EAAE,kBAAkB,CAE3C;IACK,YAAY,EAAE,GAAG,EAAE,CAAM;IACzB,iBAAiB,EAAE,OAAO,CAAQ;IAElC,iBAAiB,EAAE,MAAM,CAAK;IAG9B,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAK/C,OAAO,CAAC,eAAe;;IAWvB,SAAS,CAAC,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM;IAcjH,gBAAgB,CAAC,IAAI,EAAE,cAAc;IASlD,QAAQ,IAAI,IAAI;IAIhB,eAAe,IAAI,IAAI;IAMvB,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,UAAU,CAAiB;IACnC,IAAoB,SAAS,IAAI,OAAO,CAEvC;IACD,IAAW,SAAS,CAAC,KAAK,EAAE,OAAO,EAQlC;IAEK,sBAAsB;IAItB,OAAO,CAAC,MAAM,EAAE,cAAc;IAoC7B,UAAU,EAAE,GAAG,EAAE,CAAM;IACjB,aAAa;cAsBV,aAAa,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAI/C,SAAS,CAAC,YAAY;yCAnKX,kBAAkB;2CAAlB,kBAAkB;CA0K9B"}
|
|
@@ -4,16 +4,15 @@ import { GridComponent } from "@progress/kendo-angular-grid";
|
|
|
4
4
|
import { ExcelExportComponent } from '@progress/kendo-angular-excel-export';
|
|
5
5
|
import { MJEventType, MJGlobal } from '@memberjunction/global';
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular
|
|
8
|
-
import * as i2 from "@progress/kendo-angular-
|
|
9
|
-
import * as i3 from "@progress/kendo-angular-
|
|
10
|
-
import * as i4 from "@progress/kendo-angular-buttons";
|
|
7
|
+
import * as i1 from "@progress/kendo-angular-grid";
|
|
8
|
+
import * as i2 from "@progress/kendo-angular-excel-export";
|
|
9
|
+
import * as i3 from "@progress/kendo-angular-buttons";
|
|
11
10
|
const _c0 = ["kendoGrid"];
|
|
12
11
|
const _c1 = ["excelExport"];
|
|
13
|
-
function
|
|
12
|
+
function QueryGridComponent_ng_template_3_Conditional_3_Template(rf, ctx) { if (rf & 1) {
|
|
14
13
|
const _r4 = i0.ɵɵgetCurrentView();
|
|
15
14
|
i0.ɵɵelementStart(0, "button", 10);
|
|
16
|
-
i0.ɵɵlistener("click", function
|
|
15
|
+
i0.ɵɵlistener("click", function QueryGridComponent_ng_template_3_Conditional_3_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r4); const ctx_r2 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r2.RefreshFromSavedParams()); });
|
|
17
16
|
i0.ɵɵtext(1, " Refresh ");
|
|
18
17
|
i0.ɵɵelement(2, "span", 11);
|
|
19
18
|
i0.ɵɵelementEnd();
|
|
@@ -25,14 +24,14 @@ function QueryGridComponent_ng_template_3_Template(rf, ctx) { if (rf & 1) {
|
|
|
25
24
|
i0.ɵɵelement(1, "span", 8);
|
|
26
25
|
i0.ɵɵtext(2, "Export to Excel ");
|
|
27
26
|
i0.ɵɵelementEnd();
|
|
28
|
-
i0.ɵɵ
|
|
27
|
+
i0.ɵɵconditionalCreate(3, QueryGridComponent_ng_template_3_Conditional_3_Template, 3, 0, "button", 9);
|
|
29
28
|
} if (rf & 2) {
|
|
30
29
|
const ctx_r2 = i0.ɵɵnextContext();
|
|
31
30
|
i0.ɵɵadvance(3);
|
|
32
|
-
i0.ɵɵ
|
|
31
|
+
i0.ɵɵconditional(ctx_r2.showRefreshButton ? 3 : -1);
|
|
33
32
|
} }
|
|
34
|
-
function
|
|
35
|
-
i0.ɵɵelement(0, "kendo-excelexport-column",
|
|
33
|
+
function QueryGridComponent_For_7_Template(rf, ctx) { if (rf & 1) {
|
|
34
|
+
i0.ɵɵelement(0, "kendo-excelexport-column", 6);
|
|
36
35
|
} if (rf & 2) {
|
|
37
36
|
const exportCol_r5 = ctx.$implicit;
|
|
38
37
|
i0.ɵɵproperty("field", exportCol_r5)("title", exportCol_r5);
|
|
@@ -189,15 +188,13 @@ export class QueryGridComponent {
|
|
|
189
188
|
}
|
|
190
189
|
static ɵfac = function QueryGridComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryGridComponent)(); };
|
|
191
190
|
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryGridComponent, selectors: [["mj-query-grid"]], viewQuery: function QueryGridComponent_Query(rf, ctx) { if (rf & 1) {
|
|
192
|
-
i0.ɵɵviewQuery(_c0, 5, GridComponent);
|
|
193
|
-
i0.ɵɵviewQuery(_c0, 5, ElementRef);
|
|
194
|
-
i0.ɵɵviewQuery(_c1, 5, ExcelExportComponent);
|
|
191
|
+
i0.ɵɵviewQuery(_c0, 5, GridComponent)(_c0, 5, ElementRef)(_c1, 5, ExcelExportComponent);
|
|
195
192
|
} if (rf & 2) {
|
|
196
193
|
let _t;
|
|
197
194
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.kendoGridElement = _t.first);
|
|
198
195
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.kendoGridElementRef = _t.first);
|
|
199
196
|
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.kendoExcelExport = _t.first);
|
|
200
|
-
} }, inputs: { Params: "Params", BottomMargin: "BottomMargin", InEditMode: "InEditMode", EditMode: "EditMode", AutoNavigate: "AutoNavigate", AllowLoad: "AllowLoad" }, outputs: { rowClicked: "rowClicked" }, decls:
|
|
197
|
+
} }, inputs: { Params: "Params", BottomMargin: "BottomMargin", InEditMode: "InEditMode", EditMode: "EditMode", AutoNavigate: "AutoNavigate", AllowLoad: "AllowLoad" }, outputs: { rowClicked: "rowClicked" }, standalone: false, decls: 8, vars: 14, consts: [["kendoGrid", ""], ["excelExport", ""], [1, "query-grid-wrap"], ["scrollable", "virtual", "kendoGridSelectBy", "", 3, "pageChange", "selectedKeysChange", "cellClick", "resizable", "data", "skip", "pageSize", "rowHeight", "loading", "height", "sortable", "reorderable", "selectable", "selectedKeys"], ["kendoGridToolbarTemplate", ""], [3, "data", "fileName"], [3, "field", "title"], ["fillMode", "outline", "themeColor", "info", "kendoButton", "", 3, "click"], [1, "fa-regular", "fa-file-excel"], ["kendoButton", "", "themeColor", "info"], ["kendoButton", "", "themeColor", "info", 3, "click"], [1, "fa-solid", "fa-arrow-rotate-left"]], template: function QueryGridComponent_Template(rf, ctx) { if (rf & 1) {
|
|
201
198
|
const _r1 = i0.ɵɵgetCurrentView();
|
|
202
199
|
i0.ɵɵelementStart(0, "div", 2)(1, "kendo-grid", 3, 0);
|
|
203
200
|
i0.ɵɵlistener("pageChange", function QueryGridComponent_Template_kendo_grid_pageChange_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.pageChange($event)); });
|
|
@@ -205,7 +202,7 @@ export class QueryGridComponent {
|
|
|
205
202
|
i0.ɵɵlistener("cellClick", function QueryGridComponent_Template_kendo_grid_cellClick_1_listener($event) { i0.ɵɵrestoreView(_r1); return i0.ɵɵresetView(ctx.cellClickHandler($event)); });
|
|
206
203
|
i0.ɵɵtemplate(3, QueryGridComponent_ng_template_3_Template, 4, 1, "ng-template", 4);
|
|
207
204
|
i0.ɵɵelementStart(4, "kendo-excelexport", 5, 1);
|
|
208
|
-
i0.ɵɵ
|
|
205
|
+
i0.ɵɵrepeaterCreate(6, QueryGridComponent_For_7_Template, 1, 2, "kendo-excelexport-column", 6, i0.ɵɵrepeaterTrackByIdentity);
|
|
209
206
|
i0.ɵɵelementEnd()()();
|
|
210
207
|
} if (rf & 2) {
|
|
211
208
|
i0.ɵɵadvance();
|
|
@@ -214,12 +211,12 @@ export class QueryGridComponent {
|
|
|
214
211
|
i0.ɵɵadvance(3);
|
|
215
212
|
i0.ɵɵproperty("data", ctx.exportData)("fileName", (ctx.Params == null ? null : ctx.Params.QueryID) + "_Query.xlsx");
|
|
216
213
|
i0.ɵɵadvance(2);
|
|
217
|
-
i0.ɵɵ
|
|
218
|
-
} }, dependencies: [i1.
|
|
214
|
+
i0.ɵɵrepeater(ctx.queryColumns());
|
|
215
|
+
} }, dependencies: [i1.GridComponent, i1.ToolbarTemplateDirective, i1.SelectionDirective, i2.ExcelExportComponent, i2.ColumnComponent, i3.ButtonComponent], styles: [".query-grid-wrap[_ngcontent-%COMP%] {\n height: calc(100vh-20px);\n}\n\n.query-grid-column-header[_ngcontent-%COMP%] {\n background-color: #ec8641;\n font-size: 20pt;\n font-weight: bold;\n}\n .query-grid-wrap .k-grid-aria-root .k-grid-header .k-grid-header-table thead tr th {\n border-right: none;\n border-inline-start-width: 0;\n color: var(--thead-color);\n}\n .query-grid-wrap .k-grid-aria-root kendo-grid-list .k-grid-table tbody tr td { \n border-inline-start-width: 0;\n color: var(--tdata-color);\n font-weight: 500;\n border-bottom-width: 1px;\n}"] });
|
|
219
216
|
}
|
|
220
217
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryGridComponent, [{
|
|
221
218
|
type: Component,
|
|
222
|
-
args: [{ selector: 'mj-query-grid', template: "<div class=\"query-grid-wrap\" >\n
|
|
219
|
+
args: [{ standalone: false, selector: 'mj-query-grid', template: "<div class=\"query-grid-wrap\" >\n <kendo-grid #kendoGrid\n\n [resizable]=\"true\"\n [data]=\"gridView\"\n [skip]=\"skip\"\n [pageSize]=\"pageSize\"\n scrollable=\"virtual\"\n [rowHeight]=\"36\"\n (pageChange)=\"pageChange($event)\"\n [loading]=\"isLoading\"\n [height]=\"gridHeight\"\n [sortable]=\"true\"\n [resizable]=\"true\"\n [reorderable]=\"true\"\n [selectable]=\"true\"\n kendoGridSelectBy\n [(selectedKeys)]=\"selectedKeys\"\n (cellClick)=\"cellClickHandler($event)\"\n >\n <ng-template kendoGridToolbarTemplate>\n <button fillMode=\"outline\" themeColor=\"info\" kendoButton (click)=\"doExcelExport()\" >\n <span class=\"fa-regular fa-file-excel\"></span>Export to Excel\n </button>\n @if (showRefreshButton) {\n <button\n kendoButton\n themeColor=\"info\"\n (click)=\"RefreshFromSavedParams()\" >\n Refresh\n <span class=\"fa-solid fa-arrow-rotate-left\"></span>\n </button>\n }\n </ng-template>\n\n <kendo-excelexport #excelExport [data]=\"exportData\" [fileName]=\"Params?.QueryID + '_Query.xlsx'\">\n @for (exportCol of queryColumns(); track exportCol) {\n <kendo-excelexport-column [field]=\"exportCol\" [title]=\"exportCol\">\n </kendo-excelexport-column>\n }\n </kendo-excelexport>\n </kendo-grid>\n</div>\n", styles: [".query-grid-wrap {\n height: calc(100vh-20px);\n}\n\n.query-grid-column-header {\n background-color: #ec8641;\n font-size: 20pt;\n font-weight: bold;\n}\n::ng-deep .query-grid-wrap .k-grid-aria-root .k-grid-header .k-grid-header-table thead tr th {\n border-right: none;\n border-inline-start-width: 0;\n color: var(--thead-color);\n}\n::ng-deep .query-grid-wrap .k-grid-aria-root kendo-grid-list .k-grid-table tbody tr td { \n border-inline-start-width: 0;\n color: var(--tdata-color);\n font-weight: 500;\n border-bottom-width: 1px;\n} "] }]
|
|
223
220
|
}], () => [], { Params: [{
|
|
224
221
|
type: Input
|
|
225
222
|
}], BottomMargin: [{
|
|
@@ -244,5 +241,5 @@ export class QueryGridComponent {
|
|
|
244
241
|
}], AllowLoad: [{
|
|
245
242
|
type: Input
|
|
246
243
|
}] }); })();
|
|
247
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryGridComponent, { className: "QueryGridComponent", filePath: "src/lib/ng-query-grid.component.ts", lineNumber:
|
|
244
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(QueryGridComponent, { className: "QueryGridComponent", filePath: "src/lib/ng-query-grid.component.ts", lineNumber: 31 }); })();
|
|
248
245
|
//# sourceMappingURL=ng-query-grid.component.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-query-grid.component.js","sourceRoot":"","sources":["../../src/lib/ng-query-grid.component.ts","../../src/lib/ng-query-grid.component.html"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAU,KAAK,EAAiB,MAAM,eAAe,CAAC;AAErH,OAAO,EAAE,QAAQ,EAAc,QAAQ,EAAgC,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAE9G,OAAO,EAAmD,aAAa,EAAqB,MAAM,8BAA8B,CAAC;AAEjI,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAwC,WAAW,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC
|
|
1
|
+
{"version":3,"file":"ng-query-grid.component.js","sourceRoot":"","sources":["../../src/lib/ng-query-grid.component.ts","../../src/lib/ng-query-grid.component.html"],"names":[],"mappings":"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"}
|
|
@@ -4,16 +4,15 @@ import * as i2 from "@angular/common";
|
|
|
4
4
|
import * as i3 from "@progress/kendo-angular-grid";
|
|
5
5
|
import * as i4 from "@progress/kendo-angular-dialog";
|
|
6
6
|
import * as i5 from "@progress/kendo-angular-excel-export";
|
|
7
|
-
import * as i6 from "@memberjunction/ng-
|
|
8
|
-
import * as i7 from "@
|
|
9
|
-
import * as i8 from "@progress/kendo-angular-buttons";
|
|
7
|
+
import * as i6 from "@memberjunction/ng-container-directives";
|
|
8
|
+
import * as i7 from "@progress/kendo-angular-buttons";
|
|
10
9
|
/**
|
|
11
10
|
* @deprecated Use `QueryViewerModule` from `@memberjunction/ng-query-viewer` instead.
|
|
12
11
|
* This module is deprecated and will be removed in a future version.
|
|
13
12
|
*/
|
|
14
13
|
export declare class QueryGridModule {
|
|
15
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<QueryGridModule, never>;
|
|
16
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<QueryGridModule, [typeof i1.QueryGridComponent], [typeof i2.CommonModule, typeof i3.GridModule, typeof i4.DialogsModule, typeof i5.ExcelExportModule, typeof i6.
|
|
15
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<QueryGridModule, [typeof i1.QueryGridComponent], [typeof i2.CommonModule, typeof i3.GridModule, typeof i4.DialogsModule, typeof i5.ExcelExportModule, typeof i6.ContainerDirectivesModule, typeof i7.ButtonsModule], [typeof i1.QueryGridComponent]>;
|
|
17
16
|
static ɵinj: i0.ɵɵInjectorDeclaration<QueryGridModule>;
|
|
18
17
|
}
|
|
19
18
|
//# sourceMappingURL=ng-query-grid.module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-query-grid.module.d.ts","sourceRoot":"","sources":["../../src/lib/ng-query-grid.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ng-query-grid.module.d.ts","sourceRoot":"","sources":["../../src/lib/ng-query-grid.module.ts"],"names":[],"mappings":";;;;;;;;AAYA;;;GAGG;AACH,qBAgBa,eAAe;yCAAf,eAAe;0CAAf,eAAe;0CAAf,eAAe;CAAI"}
|
|
@@ -6,7 +6,6 @@ import { GridModule } from '@progress/kendo-angular-grid';
|
|
|
6
6
|
import { ExcelExportModule } from '@progress/kendo-angular-excel-export';
|
|
7
7
|
import { DialogsModule } from "@progress/kendo-angular-dialog";
|
|
8
8
|
import { ButtonsModule } from '@progress/kendo-angular-buttons';
|
|
9
|
-
import { CompareRecordsModule } from '@memberjunction/ng-compare-records';
|
|
10
9
|
import { ContainerDirectivesModule } from '@memberjunction/ng-container-directives';
|
|
11
10
|
import * as i0 from "@angular/core";
|
|
12
11
|
/**
|
|
@@ -20,7 +19,6 @@ export class QueryGridModule {
|
|
|
20
19
|
GridModule,
|
|
21
20
|
DialogsModule,
|
|
22
21
|
ExcelExportModule,
|
|
23
|
-
CompareRecordsModule,
|
|
24
22
|
ContainerDirectivesModule,
|
|
25
23
|
ButtonsModule] });
|
|
26
24
|
}
|
|
@@ -35,7 +33,6 @@ export class QueryGridModule {
|
|
|
35
33
|
GridModule,
|
|
36
34
|
DialogsModule,
|
|
37
35
|
ExcelExportModule,
|
|
38
|
-
CompareRecordsModule,
|
|
39
36
|
ContainerDirectivesModule,
|
|
40
37
|
ButtonsModule
|
|
41
38
|
],
|
|
@@ -48,7 +45,6 @@ export class QueryGridModule {
|
|
|
48
45
|
GridModule,
|
|
49
46
|
DialogsModule,
|
|
50
47
|
ExcelExportModule,
|
|
51
|
-
CompareRecordsModule,
|
|
52
48
|
ContainerDirectivesModule,
|
|
53
49
|
ButtonsModule], exports: [QueryGridComponent] }); })();
|
|
54
50
|
//# sourceMappingURL=ng-query-grid.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-query-grid.module.js","sourceRoot":"","sources":["../../src/lib/ng-query-grid.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,2BAA2B;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ng-query-grid.module.js","sourceRoot":"","sources":["../../src/lib/ng-query-grid.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,2BAA2B;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,yCAAyC,CAAC;;AAEpF;;;GAGG;AAiBH,MAAM,OAAO,eAAe;yGAAf,eAAe;4DAAf,eAAe;gEAXxB,YAAY;YACZ,UAAU;YACV,aAAa;YACb,iBAAiB;YACjB,yBAAyB;YACzB,aAAa;;iFAMJ,eAAe;cAhB3B,QAAQ;eAAC;gBACR,YAAY,EAAE;oBACZ,kBAAkB;iBACnB;gBACD,OAAO,EAAE;oBACP,YAAY;oBACZ,UAAU;oBACV,aAAa;oBACb,iBAAiB;oBACjB,yBAAyB;oBACzB,aAAa;iBACd;gBACD,OAAO,EAAE;oBACP,kBAAkB;iBACnB;aACF;;wFACY,eAAe,mBAdxB,kBAAkB,aAGlB,YAAY;QACZ,UAAU;QACV,aAAa;QACb,iBAAiB;QACjB,yBAAyB;QACzB,aAAa,aAGb,kBAAkB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memberjunction/ng-query-grid",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.1.0",
|
|
4
4
|
"description": "MemberJunction: Angular Grid to display any MemberJunction Query",
|
|
5
5
|
"main": "./dist/public-api.js",
|
|
6
6
|
"typings": "./dist/public-api.d.ts",
|
|
@@ -15,27 +15,26 @@
|
|
|
15
15
|
"author": "",
|
|
16
16
|
"license": "ISC",
|
|
17
17
|
"devDependencies": {
|
|
18
|
-
"@angular/compiler": "
|
|
19
|
-
"@angular/compiler-cli": "
|
|
18
|
+
"@angular/compiler": "21.1.3",
|
|
19
|
+
"@angular/compiler-cli": "21.1.3"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"@angular/common": "
|
|
23
|
-
"@angular/core": "
|
|
24
|
-
"@angular/forms": "
|
|
25
|
-
"@angular/router": "
|
|
26
|
-
"@progress/kendo-angular-grid": "
|
|
27
|
-
"@progress/kendo-angular-buttons": "
|
|
28
|
-
"@progress/kendo-angular-dialog": "
|
|
22
|
+
"@angular/common": "21.1.3",
|
|
23
|
+
"@angular/core": "21.1.3",
|
|
24
|
+
"@angular/forms": "21.1.3",
|
|
25
|
+
"@angular/router": "21.1.3",
|
|
26
|
+
"@progress/kendo-angular-grid": "22.0.1",
|
|
27
|
+
"@progress/kendo-angular-buttons": "22.0.1",
|
|
28
|
+
"@progress/kendo-angular-dialog": "22.0.1"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@memberjunction/core": "
|
|
32
|
-
"@memberjunction/core-entities": "
|
|
33
|
-
"@memberjunction/global": "
|
|
34
|
-
"@memberjunction/ng-
|
|
35
|
-
"@memberjunction/ng-
|
|
36
|
-
"@
|
|
37
|
-
"
|
|
38
|
-
"tslib": "^2.3.0"
|
|
31
|
+
"@memberjunction/core": "4.1.0",
|
|
32
|
+
"@memberjunction/core-entities": "4.1.0",
|
|
33
|
+
"@memberjunction/global": "4.1.0",
|
|
34
|
+
"@memberjunction/ng-container-directives": "4.1.0",
|
|
35
|
+
"@memberjunction/ng-shared": "4.1.0",
|
|
36
|
+
"@progress/kendo-angular-excel-export": "22.0.1",
|
|
37
|
+
"tslib": "^2.8.1"
|
|
39
38
|
},
|
|
40
39
|
"sideEffects": false,
|
|
41
40
|
"repository": {
|