@vuu-ui/vuu-data-local 4.0.0-alpha.18 → 4.0.0-alpha.19
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/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.0.0-alpha.
|
|
2
|
+
"version": "4.0.0-alpha.19",
|
|
3
3
|
"main": "./src/index.js",
|
|
4
4
|
"author": "heswell",
|
|
5
5
|
"type": "module",
|
|
@@ -11,14 +11,14 @@
|
|
|
11
11
|
"type-defs": "node ../../scripts/build-type-defs.mjs"
|
|
12
12
|
},
|
|
13
13
|
"devDependencies": {
|
|
14
|
-
"@vuu-ui/vuu-data-types": "4.0.0-alpha.
|
|
15
|
-
"@vuu-ui/vuu-table-types": "4.0.0-alpha.
|
|
16
|
-
"@vuu-ui/vuu-filter-types": "4.0.0-alpha.
|
|
17
|
-
"@vuu-ui/vuu-protocol-types": "4.0.0-alpha.
|
|
14
|
+
"@vuu-ui/vuu-data-types": "4.0.0-alpha.19",
|
|
15
|
+
"@vuu-ui/vuu-table-types": "4.0.0-alpha.19",
|
|
16
|
+
"@vuu-ui/vuu-filter-types": "4.0.0-alpha.19",
|
|
17
|
+
"@vuu-ui/vuu-protocol-types": "4.0.0-alpha.19"
|
|
18
18
|
},
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@vuu-ui/vuu-filter-parser": "4.0.0-alpha.
|
|
21
|
-
"@vuu-ui/vuu-utils": "4.0.0-alpha.
|
|
20
|
+
"@vuu-ui/vuu-filter-parser": "4.0.0-alpha.19",
|
|
21
|
+
"@vuu-ui/vuu-utils": "4.0.0-alpha.19"
|
|
22
22
|
},
|
|
23
23
|
"sideEffects": false,
|
|
24
24
|
"files": [
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { filterPredicate, parseFilter } from "@vuu-ui/vuu-filter-parser";
|
|
2
|
-
import { EventEmitter, KeySet, NULL_RANGE, Range, buildColumnMap, combineFilters, filterAsQuery, getAddedItems, hasBaseFilter, hasFilter, hasGroupBy, hasSort, isConfigChanged, isGroupByChanged, logger, metadataKeys, rangeNewItems, toSchemaColumn, uuid, vanillaConfig, withConfigDefaults } from "@vuu-ui/vuu-utils";
|
|
2
|
+
import { EventEmitter, KeySet, NULL_RANGE, Range, buildColumnMap, combineFilters, filterAsQuery, filterRequiresResolution, getAddedItems, getColumnsByName, getColumnsByNameForFilter, hasBaseFilter, hasFilter, hasGroupBy, hasSort, isConfigChanged, isGroupByChanged, logger, metadataKeys, rangeNewItems, toSchemaColumn, uuid, vanillaConfig, withConfigDefaults } from "@vuu-ui/vuu-utils";
|
|
3
3
|
import { aggregateData } from "./aggregate-utils.js";
|
|
4
4
|
import { buildDataToClientMap, toClientRow } from "./array-data-utils.js";
|
|
5
5
|
import { collapseGroup, expandGroup, groupRows } from "./group-utils.js";
|
|
@@ -49,6 +49,7 @@ class ArrayDataSource extends EventEmitter {
|
|
|
49
49
|
openTreeNodes = [];
|
|
50
50
|
preserveScrollPositionAcrossConfigChange = false;
|
|
51
51
|
#columnMap;
|
|
52
|
+
#filterColumnsByName;
|
|
52
53
|
_config = vanillaConfig;
|
|
53
54
|
#data;
|
|
54
55
|
#freezeTimestamp = void 0;
|
|
@@ -68,6 +69,7 @@ class ArrayDataSource extends EventEmitter {
|
|
|
68
69
|
super();
|
|
69
70
|
if (!data || !columnDescriptors) throw Error("ArrayDataSource constructor called without data or without columnDescriptors");
|
|
70
71
|
this.columnDescriptors = columnDescriptors;
|
|
72
|
+
this.#filterColumnsByName = getColumnsByName(columnDescriptors);
|
|
71
73
|
this.dataMap = dataMap;
|
|
72
74
|
this.key = keyColumn ? this.columnDescriptors.findIndex((col)=>col.name === keyColumn) : 0;
|
|
73
75
|
this.rangeChangeRowset = rangeChangeRowset;
|
|
@@ -316,7 +318,8 @@ class ArrayDataSource extends EventEmitter {
|
|
|
316
318
|
});
|
|
317
319
|
}
|
|
318
320
|
getFilterPredicate() {
|
|
319
|
-
const { filterSpec: { filterStruct } } = combineFilters(this._config);
|
|
321
|
+
const { filterSpec: { filter, filterStruct: rawFilterStruct } } = combineFilters(this._config);
|
|
322
|
+
const filterStruct = rawFilterStruct && filter && filterRequiresResolution(rawFilterStruct, getColumnsByNameForFilter(this.tableSchema, this.#filterColumnsByName)) ? parseFilter(filter) : rawFilterStruct;
|
|
320
323
|
if (filterStruct) {
|
|
321
324
|
if (this.dataMap) {
|
|
322
325
|
const { count: offset } = metadataKeys;
|
|
@@ -617,9 +620,15 @@ class ArrayDataSource extends EventEmitter {
|
|
|
617
620
|
filterSpec: filter
|
|
618
621
|
};
|
|
619
622
|
}
|
|
620
|
-
setFilter(filter) {
|
|
623
|
+
setFilter(filter, options) {
|
|
624
|
+
this.#filterColumnsByName = {
|
|
625
|
+
...getColumnsByName(this.columnDescriptors),
|
|
626
|
+
...options?.columnsByName
|
|
627
|
+
};
|
|
621
628
|
const dataSourceFilter = {
|
|
622
|
-
filter: filterAsQuery(filter
|
|
629
|
+
filter: filterAsQuery(filter, {
|
|
630
|
+
columnsByName: getColumnsByNameForFilter(this.tableSchema, this.#filterColumnsByName)
|
|
631
|
+
}),
|
|
623
632
|
filterStruct: filter
|
|
624
633
|
};
|
|
625
634
|
this.filter = dataSourceFilter;
|
|
@@ -163,6 +163,7 @@ class TreeDataSource extends BaseDataSource {
|
|
|
163
163
|
applySelectedKeyValues(keys, revealSelected = false) {
|
|
164
164
|
keys.forEach((key)=>{
|
|
165
165
|
const rowIdx = this.indexOfRowWithKey(key);
|
|
166
|
+
if (-1 === rowIdx) return;
|
|
166
167
|
const row = this.#data[rowIdx];
|
|
167
168
|
row[SELECTED] = 1;
|
|
168
169
|
if (revealSelected && 1 !== row[DEPTH]) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { DataSourceBase, DataSourceConstructorProps, DataSourceEvents, DataSourceFilter, DataSourceRow, DataSourceRowWithBigint, DataSourceStatus, DataSourceSubscribeCallback, DataSourceSubscribeProps, TableSchema, WithBaseFilter, WithFullConfig } from "@vuu-ui/vuu-data-types";
|
|
1
|
+
import type { DataSourceBase, DataSourceConstructorProps, DataSourceEvents, DataSourceFilter, DataSourceRow, DataSourceRowWithBigint, DataSourceStatus, DataSourceSubscribeCallback, DataSourceSubscribeProps, SetFilterOptions, TableSchema, WithBaseFilter, WithFullConfig } from "@vuu-ui/vuu-data-types";
|
|
2
2
|
import type { Filter } from "@vuu-ui/vuu-filter-types";
|
|
3
3
|
import type { LinkDescriptorWithLabel, SelectRequest, VuuAggregation, VuuGroupBy, VuuMenu, VuuRowDataItemType, VuuRpcRequest, VuuRpcResponse, VuuSort } from "@vuu-ui/vuu-protocol-types";
|
|
4
4
|
import type { ColumnDescriptor } from "@vuu-ui/vuu-table-types";
|
|
@@ -93,7 +93,7 @@ export declare class ArrayDataSource extends EventEmitter<DataSourceEvents> impl
|
|
|
93
93
|
set baseFilter(baseFilter: DataSourceFilter | undefined);
|
|
94
94
|
get filter(): DataSourceFilter;
|
|
95
95
|
set filter(filter: DataSourceFilter);
|
|
96
|
-
setFilter(filter: Filter): void;
|
|
96
|
+
setFilter(filter: Filter, options?: SetFilterOptions): void;
|
|
97
97
|
clearFilter(): void;
|
|
98
98
|
get groupBy(): VuuGroupBy;
|
|
99
99
|
set groupBy(groupBy: VuuGroupBy);
|