@vuu-ui/vuu-table 0.6.16-debug → 0.6.17-debug
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/cjs/index.js +211 -17
- package/cjs/index.js.map +4 -4
- package/esm/index.js +211 -17
- package/esm/index.js.map +4 -4
- package/package.json +2 -2
- package/types/useDataTable.d.ts +1 -1
- package/types/useDraggableColumn.d.ts +1 -1
package/esm/index.js
CHANGED
|
@@ -18646,6 +18646,56 @@ var FilterExpression = class {
|
|
|
18646
18646
|
}
|
|
18647
18647
|
};
|
|
18648
18648
|
_filter = new WeakMap();
|
|
18649
|
+
var walkTree = (tree, source) => {
|
|
18650
|
+
const filterExpression = new FilterExpression();
|
|
18651
|
+
const cursor = tree.cursor();
|
|
18652
|
+
do {
|
|
18653
|
+
const { name: name2, from, to } = cursor;
|
|
18654
|
+
switch (name2) {
|
|
18655
|
+
case "ColumnValueExpression":
|
|
18656
|
+
filterExpression.add({});
|
|
18657
|
+
break;
|
|
18658
|
+
case "ColumnSetExpression":
|
|
18659
|
+
filterExpression.add({ op: "in" });
|
|
18660
|
+
break;
|
|
18661
|
+
case "Or":
|
|
18662
|
+
case "And":
|
|
18663
|
+
filterExpression.setFilterCombinatorOp(source.substring(from, to));
|
|
18664
|
+
break;
|
|
18665
|
+
case "Column":
|
|
18666
|
+
filterExpression.setColumn(source.substring(from, to));
|
|
18667
|
+
break;
|
|
18668
|
+
case "Operator":
|
|
18669
|
+
filterExpression.setOp(source.substring(from, to));
|
|
18670
|
+
break;
|
|
18671
|
+
case "String":
|
|
18672
|
+
filterExpression.setValue(source.substring(from + 1, to - 1));
|
|
18673
|
+
break;
|
|
18674
|
+
case "Number":
|
|
18675
|
+
filterExpression.setValue(parseFloat(source.substring(from, to)));
|
|
18676
|
+
break;
|
|
18677
|
+
case "True":
|
|
18678
|
+
filterExpression.setValue(true);
|
|
18679
|
+
break;
|
|
18680
|
+
case "False":
|
|
18681
|
+
filterExpression.setValue(false);
|
|
18682
|
+
break;
|
|
18683
|
+
case "FilterName":
|
|
18684
|
+
filterExpression.name = source.substring(from, to);
|
|
18685
|
+
break;
|
|
18686
|
+
default:
|
|
18687
|
+
}
|
|
18688
|
+
} while (cursor.next());
|
|
18689
|
+
return filterExpression.toJSON();
|
|
18690
|
+
};
|
|
18691
|
+
|
|
18692
|
+
// ../vuu-filters/src/filter-input/filter-language-parser/FilterParser.ts
|
|
18693
|
+
var strictParser = parser.configure({ strict: true });
|
|
18694
|
+
var parseFilter = (filterQuery) => {
|
|
18695
|
+
const parseTree = strictParser.parse(filterQuery);
|
|
18696
|
+
const filter = walkTree(parseTree, filterQuery);
|
|
18697
|
+
return filter;
|
|
18698
|
+
};
|
|
18649
18699
|
|
|
18650
18700
|
// ../vuu-filters/src/filter-input/highlighting.ts
|
|
18651
18701
|
var myHighlightStyle = HighlightStyle.define([
|
|
@@ -18738,7 +18788,77 @@ import { EventEmitter, getLoggingConfig, uuid } from "@vuu-ui/vuu-utils";
|
|
|
18738
18788
|
|
|
18739
18789
|
// ../vuu-data/src/data-source.ts
|
|
18740
18790
|
var isSizeOnly = (message) => message.type === "viewport-update" && message.mode === "size-only";
|
|
18791
|
+
var exactlyTheSame = (a, b) => {
|
|
18792
|
+
if (a === b) {
|
|
18793
|
+
return true;
|
|
18794
|
+
} else if (a === void 0 && b === void 0) {
|
|
18795
|
+
return true;
|
|
18796
|
+
} else {
|
|
18797
|
+
return false;
|
|
18798
|
+
}
|
|
18799
|
+
};
|
|
18800
|
+
var filterChanged = (c1, c2) => {
|
|
18801
|
+
var _a2, _b;
|
|
18802
|
+
return ((_a2 = c1.filter) == null ? void 0 : _a2.filter) !== ((_b = c2.filter) == null ? void 0 : _b.filter);
|
|
18803
|
+
};
|
|
18804
|
+
var sortChanged = ({ sort: s1 }, { sort: s2 }) => {
|
|
18805
|
+
if (exactlyTheSame(s1, s2)) {
|
|
18806
|
+
return false;
|
|
18807
|
+
} else if (s1 === void 0 || s2 === void 0) {
|
|
18808
|
+
return true;
|
|
18809
|
+
} else if ((s1 == null ? void 0 : s1.sortDefs.length) !== (s2 == null ? void 0 : s2.sortDefs.length)) {
|
|
18810
|
+
return true;
|
|
18811
|
+
}
|
|
18812
|
+
return s1.sortDefs.some(
|
|
18813
|
+
({ column, sortType }, i) => column !== s2.sortDefs[i].column || sortType !== s2.sortDefs[i].sortType
|
|
18814
|
+
);
|
|
18815
|
+
};
|
|
18816
|
+
var groupByChanged = ({ groupBy: g1 }, { groupBy: g2 }) => {
|
|
18817
|
+
if (exactlyTheSame(g1, g2)) {
|
|
18818
|
+
return false;
|
|
18819
|
+
} else if (g1 === void 0 || g2 === void 0) {
|
|
18820
|
+
return true;
|
|
18821
|
+
} else if ((g1 == null ? void 0 : g1.length) !== (g2 == null ? void 0 : g2.length)) {
|
|
18822
|
+
return true;
|
|
18823
|
+
}
|
|
18824
|
+
return g1.some((column, i) => column !== (g2 == null ? void 0 : g2[i]));
|
|
18825
|
+
};
|
|
18826
|
+
var columnsChanged = ({ columns: cols1 }, { columns: cols2 }) => {
|
|
18827
|
+
if (exactlyTheSame(cols1, cols2)) {
|
|
18828
|
+
return false;
|
|
18829
|
+
} else if (cols1 === void 0 || cols2 === void 0) {
|
|
18830
|
+
return true;
|
|
18831
|
+
} else if ((cols1 == null ? void 0 : cols1.length) !== (cols2 == null ? void 0 : cols2.length)) {
|
|
18832
|
+
return true;
|
|
18833
|
+
}
|
|
18834
|
+
return cols1.some((column, i) => column !== (cols2 == null ? void 0 : cols2[i]));
|
|
18835
|
+
};
|
|
18836
|
+
var aggregationsChanged = ({ aggregations: agg1 }, { aggregations: agg2 }) => {
|
|
18837
|
+
if (exactlyTheSame(agg1, agg2)) {
|
|
18838
|
+
return false;
|
|
18839
|
+
} else if (agg1 === void 0 || agg2 === void 0) {
|
|
18840
|
+
return true;
|
|
18841
|
+
} else if (agg1.length !== agg2.length) {
|
|
18842
|
+
return true;
|
|
18843
|
+
}
|
|
18844
|
+
return agg1.some(
|
|
18845
|
+
({ column, aggType }, i) => column !== agg2[i].column || aggType !== agg2[i].aggType
|
|
18846
|
+
);
|
|
18847
|
+
};
|
|
18848
|
+
var visualLinkChanged = () => {
|
|
18849
|
+
return false;
|
|
18850
|
+
};
|
|
18851
|
+
var configChanged2 = (config, newConfig) => {
|
|
18852
|
+
if (exactlyTheSame(config, newConfig)) {
|
|
18853
|
+
return false;
|
|
18854
|
+
}
|
|
18855
|
+
if (config === void 0 || newConfig === void 0) {
|
|
18856
|
+
return true;
|
|
18857
|
+
}
|
|
18858
|
+
return columnsChanged(config, newConfig) || filterChanged(config, newConfig) || sortChanged(config, newConfig) || groupByChanged(config, newConfig) || aggregationsChanged(config, newConfig) || visualLinkChanged(config, newConfig);
|
|
18859
|
+
};
|
|
18741
18860
|
var datasourceMessages = [
|
|
18861
|
+
"config",
|
|
18742
18862
|
"aggregate",
|
|
18743
18863
|
"viewport-update",
|
|
18744
18864
|
"columns",
|
|
@@ -18758,7 +18878,9 @@ var shouldMessageBeRoutedToDataSource = (message) => {
|
|
|
18758
18878
|
const type = message.type;
|
|
18759
18879
|
return datasourceMessages.includes(type);
|
|
18760
18880
|
};
|
|
18761
|
-
var isDataSourceConfigMessage = (message) => ["aggregate", "columns", "filter", "groupBy", "sort"].includes(
|
|
18881
|
+
var isDataSourceConfigMessage = (message) => ["config", "aggregate", "columns", "filter", "groupBy", "sort"].includes(
|
|
18882
|
+
message.type
|
|
18883
|
+
);
|
|
18762
18884
|
|
|
18763
18885
|
// ../vuu-data/src/server-proxy/messages.ts
|
|
18764
18886
|
var GET_TABLE_LIST = "GET_TABLE_LIST";
|
|
@@ -19529,6 +19651,9 @@ var ArrayBackedMovingWindow = class {
|
|
|
19529
19651
|
};
|
|
19530
19652
|
_range = new WeakMap();
|
|
19531
19653
|
|
|
19654
|
+
// src/data-source.ts
|
|
19655
|
+
var hasGroupBy = (config) => config !== void 0 && config.groupBy !== void 0 && config.groupBy.length > 0;
|
|
19656
|
+
|
|
19532
19657
|
// src/server-proxy/viewport.ts
|
|
19533
19658
|
var EMPTY_GROUPBY = [];
|
|
19534
19659
|
var { debug: debug3, debugEnabled: debugEnabled3, error: error2, info: info2, infoEnabled, warn: warn2 } = logger("viewport");
|
|
@@ -19682,9 +19807,24 @@ var Viewport = class {
|
|
|
19682
19807
|
warn2 == null ? void 0 : warn2("range requests sent faster than they are being ACKed");
|
|
19683
19808
|
}
|
|
19684
19809
|
}
|
|
19810
|
+
} else if (type === "config") {
|
|
19811
|
+
if (hasGroupBy(pendingOperation.data)) {
|
|
19812
|
+
this.isTree = true;
|
|
19813
|
+
this.groupBy = pendingOperation.data.groupBy;
|
|
19814
|
+
} else if (this.isTree) {
|
|
19815
|
+
this.isTree = false;
|
|
19816
|
+
this.groupBy = [];
|
|
19817
|
+
}
|
|
19818
|
+
debug3 == null ? void 0 : debug3(\`config change confirmed, isTree : \${this.isTree}\`);
|
|
19819
|
+
return {
|
|
19820
|
+
clientViewportId,
|
|
19821
|
+
type,
|
|
19822
|
+
config: pendingOperation.data
|
|
19823
|
+
};
|
|
19685
19824
|
} else if (type === "groupBy") {
|
|
19686
19825
|
this.isTree = pendingOperation.data.length > 0;
|
|
19687
19826
|
this.groupBy = pendingOperation.data;
|
|
19827
|
+
debug3 == null ? void 0 : debug3(\`groupBy change confirmed, isTree : \${this.isTree}\`);
|
|
19688
19828
|
return {
|
|
19689
19829
|
clientViewportId,
|
|
19690
19830
|
type,
|
|
@@ -19942,6 +20082,22 @@ var Viewport = class {
|
|
|
19942
20082
|
info2 == null ? void 0 : info2(\`filterRequest: \${filter}\`);
|
|
19943
20083
|
return this.createRequest({ filterSpec: { filter } });
|
|
19944
20084
|
}
|
|
20085
|
+
setConfig(requestId, config) {
|
|
20086
|
+
this.awaitOperation(requestId, { type: "config", data: config });
|
|
20087
|
+
const { filter, ...remainingConfig } = config;
|
|
20088
|
+
debugEnabled3 ? debug3 == null ? void 0 : debug3(\`setConfig \${JSON.stringify(config)}\`) : info2 == null ? void 0 : info2(\`setConfig\`);
|
|
20089
|
+
return this.createRequest(
|
|
20090
|
+
{
|
|
20091
|
+
...remainingConfig,
|
|
20092
|
+
filterSpec: typeof (filter == null ? void 0 : filter.filter) === "string" ? {
|
|
20093
|
+
filter: filter.filter
|
|
20094
|
+
} : {
|
|
20095
|
+
filter: ""
|
|
20096
|
+
}
|
|
20097
|
+
},
|
|
20098
|
+
true
|
|
20099
|
+
);
|
|
20100
|
+
}
|
|
19945
20101
|
aggregateRequest(requestId, aggregations) {
|
|
19946
20102
|
this.awaitOperation(requestId, { type: "aggregate", data: aggregations });
|
|
19947
20103
|
info2 == null ? void 0 : info2(\`aggregateRequest: \${aggregations}\`);
|
|
@@ -20043,19 +20199,27 @@ var Viewport = class {
|
|
|
20043
20199
|
}
|
|
20044
20200
|
return [out, mode];
|
|
20045
20201
|
}
|
|
20046
|
-
createRequest(params) {
|
|
20047
|
-
|
|
20048
|
-
|
|
20049
|
-
|
|
20050
|
-
|
|
20051
|
-
|
|
20052
|
-
|
|
20053
|
-
|
|
20054
|
-
|
|
20055
|
-
|
|
20056
|
-
|
|
20057
|
-
|
|
20058
|
-
|
|
20202
|
+
createRequest(params, overWrite = false) {
|
|
20203
|
+
if (overWrite) {
|
|
20204
|
+
return {
|
|
20205
|
+
type: "CHANGE_VP",
|
|
20206
|
+
viewPortId: this.serverViewportId,
|
|
20207
|
+
...params
|
|
20208
|
+
};
|
|
20209
|
+
} else {
|
|
20210
|
+
return {
|
|
20211
|
+
type: "CHANGE_VP",
|
|
20212
|
+
viewPortId: this.serverViewportId,
|
|
20213
|
+
aggregations: this.aggregations,
|
|
20214
|
+
columns: this.columns,
|
|
20215
|
+
sort: this.sort,
|
|
20216
|
+
groupBy: this.groupBy,
|
|
20217
|
+
filterSpec: {
|
|
20218
|
+
filter: this.filter.filter
|
|
20219
|
+
},
|
|
20220
|
+
...params
|
|
20221
|
+
};
|
|
20222
|
+
}
|
|
20059
20223
|
}
|
|
20060
20224
|
};
|
|
20061
20225
|
var toClientRow = ({ rowIndex, rowKey, sel: isSelected, data }, keys) => {
|
|
@@ -20261,6 +20425,11 @@ var ServerProxy = class {
|
|
|
20261
20425
|
this.postMessageToClient(debounceRequest);
|
|
20262
20426
|
}
|
|
20263
20427
|
}
|
|
20428
|
+
setConfig(viewport, message) {
|
|
20429
|
+
const requestId = nextRequestId();
|
|
20430
|
+
const request = viewport.setConfig(requestId, message.config);
|
|
20431
|
+
this.sendIfReady(request, requestId, viewport.status === "subscribed");
|
|
20432
|
+
}
|
|
20264
20433
|
aggregate(viewport, message) {
|
|
20265
20434
|
const requestId = nextRequestId();
|
|
20266
20435
|
const request = viewport.aggregateRequest(requestId, message.aggregations);
|
|
@@ -20418,6 +20587,8 @@ var ServerProxy = class {
|
|
|
20418
20587
|
switch (message.type) {
|
|
20419
20588
|
case "setViewRange":
|
|
20420
20589
|
return this.setViewRange(viewport, message);
|
|
20590
|
+
case "config":
|
|
20591
|
+
return this.setConfig(viewport, message);
|
|
20421
20592
|
case "aggregate":
|
|
20422
20593
|
return this.aggregate(viewport, message);
|
|
20423
20594
|
case "sort":
|
|
@@ -21996,6 +22167,32 @@ var RemoteDataSource = class extends EventEmitter4 {
|
|
|
21996
22167
|
get config() {
|
|
21997
22168
|
return __privateGet(this, _config);
|
|
21998
22169
|
}
|
|
22170
|
+
set config(config) {
|
|
22171
|
+
var _a2;
|
|
22172
|
+
if (configChanged2(__privateGet(this, _config), config)) {
|
|
22173
|
+
if ((config == null ? void 0 : config.filter) && (config == null ? void 0 : config.filter.filterStruct) === void 0) {
|
|
22174
|
+
__privateSet(this, _config, {
|
|
22175
|
+
...config,
|
|
22176
|
+
filter: {
|
|
22177
|
+
filter: config.filter.filter,
|
|
22178
|
+
filterStruct: parseFilter(config.filter.filter)
|
|
22179
|
+
}
|
|
22180
|
+
});
|
|
22181
|
+
} else {
|
|
22182
|
+
__privateSet(this, _config, config);
|
|
22183
|
+
}
|
|
22184
|
+
if (__privateGet(this, _config) && this.viewport && this.server) {
|
|
22185
|
+
if (config) {
|
|
22186
|
+
(_a2 = this.server) == null ? void 0 : _a2.send({
|
|
22187
|
+
viewport: this.viewport,
|
|
22188
|
+
type: "config",
|
|
22189
|
+
config: __privateGet(this, _config)
|
|
22190
|
+
});
|
|
22191
|
+
}
|
|
22192
|
+
}
|
|
22193
|
+
this.emit("config", __privateGet(this, _config));
|
|
22194
|
+
}
|
|
22195
|
+
}
|
|
21999
22196
|
get optimize() {
|
|
22000
22197
|
return __privateGet(this, _optimize);
|
|
22001
22198
|
}
|
|
@@ -22228,9 +22425,6 @@ import { jsx as jsx18 } from "react/jsx-runtime";
|
|
|
22228
22425
|
// ../vuu-filters/src/filter-toolbar/FilterToolbar.tsx
|
|
22229
22426
|
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
22230
22427
|
|
|
22231
|
-
// ../vuu-filters/src/filter-input/filter-language-parser/FilterParser.ts
|
|
22232
|
-
var strictParser = parser.configure({ strict: true });
|
|
22233
|
-
|
|
22234
22428
|
// ../vuu-filters/src/filter-utils.ts
|
|
22235
22429
|
import { extractFilterForColumn, partition } from "@vuu-ui/vuu-utils";
|
|
22236
22430
|
|