basesite-shared-grid-lib 21.0.1-beta.8 → 21.0.1-beta.9
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.
|
Binary file
|
|
@@ -2431,11 +2431,8 @@ class GridLibraryComponent {
|
|
|
2431
2431
|
filterable: res.filterable,
|
|
2432
2432
|
filter: 'agSetColumnFilter',
|
|
2433
2433
|
filterParams: {
|
|
2434
|
-
// Provide the raw values from the backend config
|
|
2435
|
-
//
|
|
2436
|
-
// filters — no tolower() — and SQL Server's default collation
|
|
2437
|
-
// is case-insensitive, so casing on the wire just needs to
|
|
2438
|
-
// match what's in the column, not be normalized.
|
|
2434
|
+
// Provide the raw values from the backend config; OData provider
|
|
2435
|
+
// handles case-insensitive matching server-side via tolower().
|
|
2439
2436
|
values: (params) => this._getFillFilterValues(res, params),
|
|
2440
2437
|
refreshValuesOnOpen: true,
|
|
2441
2438
|
// Open with nothing checked so a user picking one option triggers
|
|
@@ -2551,35 +2548,6 @@ class GridLibraryComponent {
|
|
|
2551
2548
|
}
|
|
2552
2549
|
});
|
|
2553
2550
|
}
|
|
2554
|
-
/**
|
|
2555
|
-
* Derive the $select field list for OData requests from the configured
|
|
2556
|
-
* column definitions. Includes every data-backed field but skips action
|
|
2557
|
-
* columns (buttons, action dropdowns) whose `field` isn't a real entity
|
|
2558
|
-
* property. Deduped so a field declared twice — e.g. for both display and
|
|
2559
|
-
* tooltip — only appears once in the select clause.
|
|
2560
|
-
*/
|
|
2561
|
-
_getServerSelectFields() {
|
|
2562
|
-
const source = (this.initialColumnDef && this.initialColumnDef.length > 0)
|
|
2563
|
-
? this.initialColumnDef
|
|
2564
|
-
: (this.columnDefs || []);
|
|
2565
|
-
const fields = new Set();
|
|
2566
|
-
for (const res of source) {
|
|
2567
|
-
if (!res)
|
|
2568
|
-
continue;
|
|
2569
|
-
// Skip action buttons — their `field` is usually a label slot, not a
|
|
2570
|
-
// backing entity property, and OData will 400 on unknown properties.
|
|
2571
|
-
if (res.isButton === true)
|
|
2572
|
-
continue;
|
|
2573
|
-
// Skip action dropdowns (e.g. "Create/View DAC") for the same reason.
|
|
2574
|
-
if (res.columnType === 'dropdown')
|
|
2575
|
-
continue;
|
|
2576
|
-
const field = res.field;
|
|
2577
|
-
if (typeof field === 'string' && field.length > 0) {
|
|
2578
|
-
fields.add(field);
|
|
2579
|
-
}
|
|
2580
|
-
}
|
|
2581
|
-
return Array.from(fields);
|
|
2582
|
-
}
|
|
2583
2551
|
_getFillFilterValues(res, params) {
|
|
2584
2552
|
const configured = res?.filterValues;
|
|
2585
2553
|
if (Array.isArray(configured) && configured.length > 0) {
|
|
@@ -2788,18 +2756,6 @@ class GridLibraryComponent {
|
|
|
2788
2756
|
let hasRetried = false;
|
|
2789
2757
|
this.odataProvider = new OdataServerSideProvider({
|
|
2790
2758
|
isCaseSensitiveStringFilter: false,
|
|
2791
|
-
// Always send $select listing every data-backed field from columnDefs.
|
|
2792
|
-
// Without this, OData/EF projects the entire entity, which inflates
|
|
2793
|
-
// both the SQL projection and the JSON payload (and the AutoMapper
|
|
2794
|
-
// mapping cost). With it, the API returns only the columns the grid
|
|
2795
|
-
// actually renders. The OData provider already deletes options.select
|
|
2796
|
-
// for $apply/groupby requests, so aggregation queries aren't affected.
|
|
2797
|
-
beforeRequest: (options) => {
|
|
2798
|
-
const selectFields = this._getServerSelectFields();
|
|
2799
|
-
if (selectFields.length > 0) {
|
|
2800
|
-
options.select = selectFields;
|
|
2801
|
-
}
|
|
2802
|
-
},
|
|
2803
2759
|
callApi: (options) => {
|
|
2804
2760
|
const url = this.setExternalFilters(options);
|
|
2805
2761
|
console.log('Server-side API call:', url);
|