@vuu-ui/vuu-filter-parser 4.0.0-alpha.9 → 4.0.0-beta.1
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 +8 -10
- package/src/FilterTreeWalker.js +6 -2
- package/src/generated/filter-parser.js +6 -6
- package/src/generated/filter-parser.terms.js +2 -2
- package/types/FilterParser.d.ts +1 -1
- package/types/FilterTreeWalker.d.ts +2 -2
- package/types/filter-evaluation-utils.d.ts +5 -5
- package/types/generated/filter-parser.terms.d.ts +1 -1
- package/types/src/FilterParser.d.ts +0 -2
- package/types/src/FilterTreeWalker.d.ts +0 -3
- package/types/src/filter-evaluation-utils.d.ts +0 -17
- package/types/src/generated/filter-parser.d.ts +0 -2
- package/types/src/generated/filter-parser.terms.d.ts +0 -1
- package/types/src/index.d.ts +0 -4
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.0.0-
|
|
2
|
+
"version": "4.0.0-beta.1",
|
|
3
3
|
"main": "./src/index.js",
|
|
4
4
|
"author": "heswell",
|
|
5
5
|
"license": "Apache-2.0",
|
|
@@ -8,21 +8,18 @@
|
|
|
8
8
|
"prebuild": "npm run lezer-generate:filter",
|
|
9
9
|
"build:dev": "node ../../scripts/run-build.mjs",
|
|
10
10
|
"build": "node ../../scripts/run-build-rslib.ts",
|
|
11
|
-
"lezer-generate:filter": "lezer-generator --output ./src/generated/filter-parser.
|
|
12
|
-
"type-defs": "node ../../scripts/build-type-defs.mjs"
|
|
13
|
-
"tsc": "tsc --showConfig -p ./tsconfig-emit-types.json",
|
|
14
|
-
"tsc:list": "tsc --listFilesOnly -p ./tsconfig-emit-types.json",
|
|
15
|
-
"tsc:trace": "tsc --traceResolution -p ./tsconfig-emit-types.json"
|
|
11
|
+
"lezer-generate:filter": "lezer-generator --output ./src/generated/filter-parser.js ./src/grammar/filter.grammar",
|
|
12
|
+
"type-defs": "node ../../scripts/build-type-defs.mjs"
|
|
16
13
|
},
|
|
17
14
|
"devDependencies": {
|
|
18
|
-
"@vuu-ui/vuu-data-types": "4.0.0-
|
|
19
|
-
"@vuu-ui/vuu-filter-types": "4.0.0-
|
|
20
|
-
"@vuu-ui/vuu-table-types": "4.0.0-
|
|
15
|
+
"@vuu-ui/vuu-data-types": "4.0.0-beta.1",
|
|
16
|
+
"@vuu-ui/vuu-filter-types": "4.0.0-beta.1",
|
|
17
|
+
"@vuu-ui/vuu-table-types": "4.0.0-beta.1"
|
|
21
18
|
},
|
|
22
19
|
"dependencies": {
|
|
23
20
|
"@lezer/common": "^1.0.2",
|
|
24
21
|
"@lezer/lr": "1.4.2",
|
|
25
|
-
"@vuu-ui/vuu-utils": "4.0.0-
|
|
22
|
+
"@vuu-ui/vuu-utils": "4.0.0-beta.1"
|
|
26
23
|
},
|
|
27
24
|
"files": [
|
|
28
25
|
"README.md",
|
|
@@ -32,6 +29,7 @@
|
|
|
32
29
|
"exports": {
|
|
33
30
|
".": {
|
|
34
31
|
"import": "./src/index.js",
|
|
32
|
+
"default": "./src/index.js",
|
|
35
33
|
"types": "./types/index.d.ts"
|
|
36
34
|
}
|
|
37
35
|
},
|
package/src/FilterTreeWalker.js
CHANGED
|
@@ -73,8 +73,12 @@ const walkTree = (tree, source)=>{
|
|
|
73
73
|
filterExpression.setValue(source.substring(from + 1, to - 1));
|
|
74
74
|
break;
|
|
75
75
|
case "Number":
|
|
76
|
-
|
|
77
|
-
|
|
76
|
+
{
|
|
77
|
+
const numericText = source.substring(from, to);
|
|
78
|
+
const numericValue = parseFloat(numericText);
|
|
79
|
+
filterExpression.setValue(/^-?\d+$/.test(numericText) && !Number.isSafeInteger(numericValue) ? numericText : numericValue);
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
78
82
|
case "True":
|
|
79
83
|
filterExpression.setValue(true);
|
|
80
84
|
break;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { LRParser } from "@lezer/lr";
|
|
2
2
|
const parser = LRParser.deserialize({
|
|
3
3
|
version: 14,
|
|
4
|
-
states: "%QOVQPOOOOQO'#C_'#C_O_QQO'#C^OOQO'#
|
|
5
|
-
stateData: "#
|
|
6
|
-
goto: "#
|
|
7
|
-
nodeNames: "⚠ Filter ColumnValueExpression Column Operator Eq NotEq Gt Lt Starts Ends Contains Number String True False ColumnSetExpression In LBrack Values Comma RBrack AndExpression And OrExpression Or ParenthesizedExpression As FilterName",
|
|
8
|
-
maxTerm:
|
|
4
|
+
states: "%QOVQPOOOOQO'#C_'#C_O_QQO'#C^OOQO'#DR'#DRO!PQQO'#DPOOQO'#DU'#DUOVQPO'#CxOOQO'#DQ'#DQQOQPOOOOQO'#C`'#C`O!_QQO,58xO!mQPO,59YOVQPO,59`OVQPO,59bO!rQPO,59kO!wQQO,59dOOQO'#DT'#DTOOQO1G.d1G.dO!_QQO1G.tO#SQQO1G.zOOQO1G.|1G.|OOQO'#Cz'#CzOOQO1G/V1G/VOOQO1G/O1G/OO#eQPO'#CqO#mQPO7+$`O!_QQO'#C{O#rQPO,59]OOQO<<Gz<<GzOOQO,59g,59gOOQO-E6y-E6y",
|
|
5
|
+
stateData: "#z~OrOS~OvPOyUO~OTXOUXOVXOWXOXXOYXOZXO[XO]XOcZO~Oi[Ok]Om^OpsX~O^`O_`O``Oa`O~OdbO~OveO~Oi[Ok]OzgO~Ok]Oihimhiphizhi~OfjOgeX~OglO~OfjOgea~O",
|
|
6
|
+
goto: "#]yPPz!Q!WPPPPPPPPPPPPPzPP!ZPP!^P!^P!dP!j!mPPP!s!v!dP#S!dXROU[]XQOU[]RYQRibXTOU[]XVOU[]Rf^QkhRnkRWOQSOQ_UQc[Rd]QaYQhbRmj",
|
|
7
|
+
nodeNames: "⚠ Filter ColumnValueExpression Column Operator Eq NotEq Gt Gte Lt Lte Starts Ends Contains Number String True False ColumnSetExpression In LBrack Values Comma RBrack AndExpression And OrExpression Or ParenthesizedExpression As FilterName",
|
|
8
|
+
maxTerm: 42,
|
|
9
9
|
skippedNodes: [
|
|
10
10
|
0
|
|
11
11
|
],
|
|
12
12
|
repeatNodeCount: 1,
|
|
13
|
-
tokenData: "
|
|
13
|
+
tokenData: "<_~RqXY#YYZ#Y]^#Ypq#Yqr#krs#vxy$nyz$s|}$x}!O$}!O!P%W!Q![%f!^!_%q!_!`&O!`!a&T!c!}&b!}#O&y#P#Q'O#R#S&b#T#U'T#U#V&b#V#W)k#W#X&b#X#Y.f#Y#Z0z#Z#]&b#]#^3z#^#c&b#c#d5S#d#g&b#g#h6[#h#i9y#i#o&b~#_Sr~XY#YYZ#Y]^#Ypq#Y~#nP!_!`#q~#vOU~~#yWOX#vZ]#v^r#vrs$cs#O#v#P;'S#v;'S;=`$h<%lO#v~$hO_~~$kP;=`<%l#v~$sOy~~$xOz~~$}Of~~%QQ!O!P%W!Q![%f~%ZP!Q![%^~%cP^~!Q![%^~%kQ^~!O!P%W!Q![%f~%vPX~!_!`%y~&OOY~~&TOT~~&YPV~!_!`&]~&bOW~P&gUvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#o&b~'OOd~~'TOg~R'YYvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#b&b#b#c'x#c#g&b#g#h)Q#h#o&bR'}WvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#W&b#W#X(g#X#o&bR(nUiQvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#o&bR)XUmQvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#o&bR)pWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#c&b#c#d*Y#d#o&bR*_WvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#b&b#b#c*w#c#o&bR*|WvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#h&b#h#i+f#i#o&bR+kVvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#U,Q#U#o&bR,VWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#]&b#]#^,o#^#o&bR,tWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#b&b#b#c-^#c#o&bR-cWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#g&b#g#h-{#h#o&bR.SU]QvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#o&bR.kWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#b&b#b#c/T#c#o&bR/YWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#W&b#W#X/r#X#o&bR/wWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#g&b#g#h0a#h#o&bR0hU[QvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#o&bR1PVvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#U1f#U#o&bR1kWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#`&b#`#a2T#a#o&bR2YWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#g&b#g#h2r#h#o&bR2wWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#X&b#X#Y3a#Y#o&bR3hUaQvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#o&bR4PWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#b&b#b#c4i#c#o&bR4pUcQvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#o&bR5XWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#f&b#f#g5q#g#o&bR5xUkQvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#o&bR6aWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#h&b#h#i6y#i#o&bR7OVvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#U7e#U#o&bR7jWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#f&b#f#g8S#g#o&bR8XWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#h&b#h#i8q#i#o&bR8vWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#g&b#g#h9`#h#o&bR9gUZQvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#o&bR:OWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#f&b#f#g:h#g#o&bR:mWvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#i&b#i#j;V#j#o&bR;[WvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#X&b#X#Y;t#Y#o&bR;{U`QvP}!O&b!O!P&b!Q![&b!c!}&b#R#S&b#T#o&b",
|
|
14
14
|
tokenizers: [
|
|
15
15
|
0,
|
|
16
16
|
1
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const Filter = 1, ColumnValueExpression = 2, Column = 3, Operator = 4, Eq = 5, NotEq = 6, Gt = 7,
|
|
2
|
-
export { And, AndExpression, As, Column, ColumnSetExpression, ColumnValueExpression, Comma, Contains, Ends, Eq, False, Filter, FilterName, Gt, In, LBrack, Lt, NotEq, Operator, Or, OrExpression, ParenthesizedExpression, RBrack, Starts, True, Values, filter_parser_terms_Number as Number, filter_parser_terms_String as String };
|
|
1
|
+
const Filter = 1, ColumnValueExpression = 2, Column = 3, Operator = 4, Eq = 5, NotEq = 6, Gt = 7, Gte = 8, Lt = 9, Lte = 10, Starts = 11, Ends = 12, Contains = 13, filter_parser_terms_Number = 14, filter_parser_terms_String = 15, True = 16, False = 17, ColumnSetExpression = 18, In = 19, LBrack = 20, Values = 21, Comma = 22, RBrack = 23, AndExpression = 24, And = 25, OrExpression = 26, Or = 27, ParenthesizedExpression = 28, As = 29, FilterName = 30;
|
|
2
|
+
export { And, AndExpression, As, Column, ColumnSetExpression, ColumnValueExpression, Comma, Contains, Ends, Eq, False, Filter, FilterName, Gt, Gte, In, LBrack, Lt, Lte, NotEq, Operator, Or, OrExpression, ParenthesizedExpression, RBrack, Starts, True, Values, filter_parser_terms_Number as Number, filter_parser_terms_String as String };
|
package/types/FilterParser.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { Filter } from "@vuu-ui/vuu-filter-types";
|
|
2
2
|
export declare const parseFilter: (filterQuery: string) => Filter;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { Tree } from "@lezer/common";
|
|
2
|
+
import { Filter } from "@vuu-ui/vuu-filter-types";
|
|
3
3
|
export declare const walkTree: (tree: Tree, source: string) => Partial<Filter> | undefined;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
1
|
+
import { DataSourceRowWithBigint } from "@vuu-ui/vuu-data-types";
|
|
2
|
+
import { Filter } from "@vuu-ui/vuu-filter-types";
|
|
3
|
+
import { ColumnMap } from "@vuu-ui/vuu-utils";
|
|
4
|
+
import { VuuDataRow } from "@vuu-ui/vuu-protocol-types";
|
|
5
|
+
import { DataRow } from "@vuu-ui/vuu-table-types";
|
|
6
6
|
export type FilterPredicate = (row: DataSourceRowWithBigint | VuuDataRow) => boolean;
|
|
7
7
|
export type DataRowFilterPredicate = (row: DataRow) => boolean;
|
|
8
8
|
export declare function getFilterPredicate(columnMap: ColumnMap, filterQuery: string): FilterPredicate;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const Filter = 1, ColumnValueExpression = 2, Column = 3, Operator = 4, Eq = 5, NotEq = 6, Gt = 7,
|
|
1
|
+
export declare const Filter = 1, ColumnValueExpression = 2, Column = 3, Operator = 4, Eq = 5, NotEq = 6, Gt = 7, Gte = 8, Lt = 9, Lte = 10, Starts = 11, Ends = 12, Contains = 13, Number = 14, String = 15, True = 16, False = 17, ColumnSetExpression = 18, In = 19, LBrack = 20, Values = 21, Comma = 22, RBrack = 23, AndExpression = 24, And = 25, OrExpression = 26, Or = 27, ParenthesizedExpression = 28, As = 29, FilterName = 30;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { DataSourceRowWithBigint } from "@vuu-ui/vuu-data-types";
|
|
2
|
-
import { Filter } from "@vuu-ui/vuu-filter-types";
|
|
3
|
-
import { ColumnMap } from "@vuu-ui/vuu-utils";
|
|
4
|
-
import { VuuDataRow } from "@vuu-ui/vuu-protocol-types";
|
|
5
|
-
import { DataRow } from "@vuu-ui/vuu-table-types";
|
|
6
|
-
export type FilterPredicate = (row: DataSourceRowWithBigint | VuuDataRow) => boolean;
|
|
7
|
-
export type DataRowFilterPredicate = (row: DataRow) => boolean;
|
|
8
|
-
export declare function getFilterPredicate(columnMap: ColumnMap, filterQuery: string): FilterPredicate;
|
|
9
|
-
export declare function getFilterPredicate(filterQuery: string): DataRowFilterPredicate;
|
|
10
|
-
/**
|
|
11
|
-
* Generates a filterPredicate that can be used to test a row against a filter
|
|
12
|
-
* Two row formats supported:
|
|
13
|
-
* - DataRow, used by Tables, when evaluatingn a Menu filter.
|
|
14
|
-
* - DataSourceRow, used by local data source, like ArrayDataSOurce
|
|
15
|
-
*/
|
|
16
|
-
export declare function filterPredicate(columnMap: ColumnMap, filter: Filter): FilterPredicate;
|
|
17
|
-
export declare function filterPredicate(filter: Filter): DataRowFilterPredicate;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const Filter = 1, ColumnValueExpression = 2, Column = 3, Operator = 4, Eq = 5, NotEq = 6, Gt = 7, Lt = 8, Starts = 9, Ends = 10, Contains = 11, Number = 12, String = 13, True = 14, False = 15, ColumnSetExpression = 16, In = 17, LBrack = 18, Values = 19, Comma = 20, RBrack = 21, AndExpression = 22, And = 23, OrExpression = 24, Or = 25, ParenthesizedExpression = 26, As = 27, FilterName = 28;
|
package/types/src/index.d.ts
DELETED