diff --git a/src/CONST/index.ts b/src/CONST/index.ts index 092dd7486741..b773bc8bc9e1 100755 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -6496,6 +6496,7 @@ const CONST = { get SEARCH_USER_FRIENDLY_VALUES_MAP() { return { [this.TRANSACTION_TYPE.PER_DIEM]: 'per-diem', + [this.GROUP_BY.REPORTS]: 'report', }; }, DATE_MODIFIERS: { diff --git a/src/components/Search/SearchAutocompleteList.tsx b/src/components/Search/SearchAutocompleteList.tsx index 8b182a46061a..54977b08f216 100644 --- a/src/components/Search/SearchAutocompleteList.tsx +++ b/src/components/Search/SearchAutocompleteList.tsx @@ -189,7 +189,7 @@ function SearchAutocompleteList( const [isInitialRender, setIsInitialRender] = useState(true); const typeAutocompleteList = Object.values(CONST.SEARCH.DATA_TYPES); - const groupByAutocompleteList = Object.values(CONST.SEARCH.GROUP_BY); + const groupByAutocompleteList = Object.values(CONST.SEARCH.GROUP_BY).map((value) => getUserFriendlyValue(value)); const statusAutocompleteList = useMemo(() => { const parsedQuery = parseForAutocomplete(autocompleteQueryValue); @@ -212,7 +212,7 @@ function SearchAutocompleteList( } }, [autocompleteQueryValue]); - const expenseTypes = Object.values(CONST.SEARCH.TRANSACTION_TYPE); + const expenseTypes = Object.values(CONST.SEARCH.TRANSACTION_TYPE).map((value) => getUserFriendlyValue(value)); const withdrawalTypes = Object.values(CONST.SEARCH.WITHDRAWAL_TYPE); const booleanTypes = Object.values(CONST.SEARCH.BOOLEAN); @@ -390,7 +390,6 @@ function SearchAutocompleteList( } case CONST.SEARCH.SYNTAX_FILTER_KEYS.EXPENSE_TYPE: { const filteredExpenseTypes = expenseTypes - .map((value) => getUserFriendlyValue(value)) .filter((expenseType) => expenseType.includes(autocompleteValue.toLowerCase()) && !alreadyAutocompletedKeys.includes(expenseType)) .sort(); diff --git a/src/libs/SearchAutocompleteUtils.ts b/src/libs/SearchAutocompleteUtils.ts index b525854dd9a3..e661670e305e 100644 --- a/src/libs/SearchAutocompleteUtils.ts +++ b/src/libs/SearchAutocompleteUtils.ts @@ -111,6 +111,7 @@ function getAutocompleteQueryWithComma(prevQuery: string, newQuery: string) { } const userFriendlyExpenseTypeList = Object.values(CONST.SEARCH.TRANSACTION_TYPE).map((value) => getUserFriendlyValue(value)); +const userFriendlyGroupByList = Object.values(CONST.SEARCH.GROUP_BY).map((value) => getUserFriendlyValue(value)); /** * @private @@ -135,7 +136,7 @@ function filterOutRangesWithCorrectValue( ...CONST.SEARCH.STATUS.TRIP, ...CONST.SEARCH.STATUS.TASK, }) as string[]; - const groupByList = Object.values(CONST.SEARCH.GROUP_BY) as string[]; + const groupByList = userFriendlyGroupByList; const booleanList = Object.values(CONST.SEARCH.BOOLEAN) as string[]; const actionList = Object.values(CONST.SEARCH.ACTION_FILTERS) as string[]; const datePresetList = Object.values(CONST.SEARCH.DATE_PRESETS) as string[]; diff --git a/src/libs/SearchParser/autocompleteParser.js b/src/libs/SearchParser/autocompleteParser.js index a6982151ad59..b321a539bc36 100644 --- a/src/libs/SearchParser/autocompleteParser.js +++ b/src/libs/SearchParser/autocompleteParser.js @@ -235,14 +235,16 @@ function peg$parse(input, options) { var peg$c49 = "action"; var peg$c50 = "perdiem"; var peg$c51 = "per-diem"; - var peg$c52 = "!="; - var peg$c53 = ">="; - var peg$c54 = ">"; - var peg$c55 = "<="; - var peg$c56 = "<"; - var peg$c57 = "\u201C"; - var peg$c58 = "\u201D"; - var peg$c59 = "\""; + var peg$c52 = "reports"; + var peg$c53 = "report"; + var peg$c54 = "!="; + var peg$c55 = ">="; + var peg$c56 = ">"; + var peg$c57 = "<="; + var peg$c58 = "<"; + var peg$c59 = "\u201C"; + var peg$c60 = "\u201D"; + var peg$c61 = "\""; var peg$r0 = /^[:=]/; var peg$r1 = /^[^ ,\t\n\r\xA0]/; @@ -309,30 +311,32 @@ function peg$parse(input, options) { var peg$e50 = peg$literalExpectation("action", true); var peg$e51 = peg$literalExpectation("perDiem", true); var peg$e52 = peg$literalExpectation("per-diem", true); - var peg$e53 = peg$otherExpectation("operator"); - var peg$e54 = peg$classExpectation([":", "="], false, false); - var peg$e55 = peg$literalExpectation("!=", false); - var peg$e56 = peg$literalExpectation(">=", false); - var peg$e57 = peg$literalExpectation(">", false); - var peg$e58 = peg$literalExpectation("<=", false); - var peg$e59 = peg$literalExpectation("<", false); - var peg$e60 = peg$otherExpectation("word"); - var peg$e61 = peg$classExpectation([" ", ",", "\t", "\n", "\r", "\xA0"], true, false); - var peg$e62 = peg$otherExpectation("whitespace"); - var peg$e63 = peg$classExpectation([" ", "\t", "\r", "\n", "\xA0"], false, false); - var peg$e64 = peg$otherExpectation("quote"); - var peg$e65 = peg$classExpectation([" ", ",", "\"", "\u201D", "\u201C", "\t", "\n", "\r", "\xA0"], true, false); - var peg$e66 = peg$classExpectation(["\"", ["\u201C", "\u201D"]], false, false); - var peg$e67 = peg$classExpectation(["\"", "\u201D", "\u201C", "\r", "\n"], true, false); - var peg$e68 = peg$literalExpectation("\u201C", false); - var peg$e69 = peg$literalExpectation("\u201D", false); - var peg$e70 = peg$literalExpectation("\"", false); - var peg$e71 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"], ["0", "9"]], false, false); - var peg$e72 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"]], false, false); - var peg$e73 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0"], false, false); - var peg$e74 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"]], false, false); - var peg$e75 = peg$anyExpectation(); - var peg$e76 = peg$classExpectation([","], false, false); + var peg$e53 = peg$literalExpectation("reports", true); + var peg$e54 = peg$literalExpectation("report", true); + var peg$e55 = peg$otherExpectation("operator"); + var peg$e56 = peg$classExpectation([":", "="], false, false); + var peg$e57 = peg$literalExpectation("!=", false); + var peg$e58 = peg$literalExpectation(">=", false); + var peg$e59 = peg$literalExpectation(">", false); + var peg$e60 = peg$literalExpectation("<=", false); + var peg$e61 = peg$literalExpectation("<", false); + var peg$e62 = peg$otherExpectation("word"); + var peg$e63 = peg$classExpectation([" ", ",", "\t", "\n", "\r", "\xA0"], true, false); + var peg$e64 = peg$otherExpectation("whitespace"); + var peg$e65 = peg$classExpectation([" ", "\t", "\r", "\n", "\xA0"], false, false); + var peg$e66 = peg$otherExpectation("quote"); + var peg$e67 = peg$classExpectation([" ", ",", "\"", "\u201D", "\u201C", "\t", "\n", "\r", "\xA0"], true, false); + var peg$e68 = peg$classExpectation(["\"", ["\u201C", "\u201D"]], false, false); + var peg$e69 = peg$classExpectation(["\"", "\u201D", "\u201C", "\r", "\n"], true, false); + var peg$e70 = peg$literalExpectation("\u201C", false); + var peg$e71 = peg$literalExpectation("\u201D", false); + var peg$e72 = peg$literalExpectation("\"", false); + var peg$e73 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"], ["0", "9"]], false, false); + var peg$e74 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"]], false, false); + var peg$e75 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0"], false, false); + var peg$e76 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"]], false, false); + var peg$e77 = peg$anyExpectation(); + var peg$e78 = peg$classExpectation([","], false, false); var peg$f0 = function(ranges) { return { autocomplete, ranges }; }; var peg$f1 = function(filters) { return filters.filter(Boolean).flat(); }; @@ -426,28 +430,29 @@ function peg$parse(input, options) { var peg$f42 = function() { return "createdBy"; }; var peg$f43 = function() { return "action"; }; var peg$f44 = function() { return "perDiem"; }; - var peg$f45 = function() { return "eq"; }; - var peg$f46 = function() { return "neq"; }; - var peg$f47 = function() { return "gte"; }; - var peg$f48 = function() { return "gt"; }; - var peg$f49 = function() { return "lte"; }; - var peg$f50 = function() { return "lt"; }; - var peg$f51 = function(o) { + var peg$f45 = function() {return "reports"; }; + var peg$f46 = function() { return "eq"; }; + var peg$f47 = function() { return "neq"; }; + var peg$f48 = function() { return "gte"; }; + var peg$f49 = function() { return "gt"; }; + var peg$f50 = function() { return "lte"; }; + var peg$f51 = function() { return "lt"; }; + var peg$f52 = function(o) { if (nameOperator) { expectingNestedQuote = (o === "eq"); // Use simple parser if no valid operator is found } return o; }; - var peg$f52 = function(chars) { return chars.join("").trim(); }; - var peg$f53 = function() { return "and"; }; - var peg$f54 = function() { return expectingNestedQuote; }; - var peg$f55 = function(start, inner, end) { //handle no-breaking space + var peg$f53 = function(chars) { return chars.join("").trim(); }; + var peg$f54 = function() { return "and"; }; + var peg$f55 = function() { return expectingNestedQuote; }; + var peg$f56 = function(start, inner, end) { //handle no-breaking space return [...start, '"', ...inner, '"', ...end].join(""); }; - var peg$f56 = function(start) {return "“"}; - var peg$f57 = function(start) {return "”"}; - var peg$f58 = function(start) {return "\""}; - var peg$f59 = function(start, inner, end) { + var peg$f57 = function(start) {return "“"}; + var peg$f58 = function(start) {return "”"}; + var peg$f59 = function(start) {return "\""}; + var peg$f60 = function(start, inner, end) { return [...start, '"', ...inner, '"'].join(""); }; var peg$currPos = options.peg$currPos | 0; @@ -1767,6 +1772,17 @@ function peg$parse(input, options) { return s0; } + function peg$parsevalues() { + var s0; + + s0 = peg$parseperDiem(); + if (s0 === peg$FAILED) { + s0 = peg$parsereport(); + } + + return s0; + } + function peg$parseperDiem() { var s0, s1; @@ -1796,6 +1812,35 @@ function peg$parse(input, options) { return s0; } + function peg$parsereport() { + var s0, s1; + + s0 = input.substr(peg$currPos, 7); + if (s0.toLowerCase() === peg$c52) { + peg$currPos += 7; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e53); } + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = input.substr(peg$currPos, 6); + if (s1.toLowerCase() === peg$c53) { + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e54); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$f45(); + } + s0 = s1; + } + + return s0; + } + function peg$parseoperator() { var s0, s1; @@ -1806,81 +1851,81 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e54); } + if (peg$silentFails === 0) { peg$fail(peg$e56); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f45(); + s1 = peg$f46(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c52) { - s1 = peg$c52; + if (input.substr(peg$currPos, 2) === peg$c54) { + s1 = peg$c54; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e55); } + if (peg$silentFails === 0) { peg$fail(peg$e57); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f46(); + s1 = peg$f47(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c53) { - s1 = peg$c53; + if (input.substr(peg$currPos, 2) === peg$c55) { + s1 = peg$c55; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e56); } + if (peg$silentFails === 0) { peg$fail(peg$e58); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f47(); + s1 = peg$f48(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 62) { - s1 = peg$c54; + s1 = peg$c56; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e57); } + if (peg$silentFails === 0) { peg$fail(peg$e59); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f48(); + s1 = peg$f49(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c55) { - s1 = peg$c55; + if (input.substr(peg$currPos, 2) === peg$c57) { + s1 = peg$c57; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e58); } + if (peg$silentFails === 0) { peg$fail(peg$e60); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f49(); + s1 = peg$f50(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 60) { - s1 = peg$c56; + s1 = peg$c58; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e59); } + if (peg$silentFails === 0) { peg$fail(peg$e61); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f50(); + s1 = peg$f51(); } s0 = s1; } @@ -1891,7 +1936,7 @@ function peg$parse(input, options) { peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e53); } + if (peg$silentFails === 0) { peg$fail(peg$e55); } } return s0; @@ -1904,7 +1949,7 @@ function peg$parse(input, options) { s1 = peg$parseoperator(); if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f51(s1); + s1 = peg$f52(s1); } s0 = s1; @@ -1922,7 +1967,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e61); } + if (peg$silentFails === 0) { peg$fail(peg$e63); } } if (s2 !== peg$FAILED) { while (s2 !== peg$FAILED) { @@ -1932,7 +1977,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e61); } + if (peg$silentFails === 0) { peg$fail(peg$e63); } } } } else { @@ -1940,13 +1985,13 @@ function peg$parse(input, options) { } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f52(s1); + s1 = peg$f53(s1); } s0 = s1; peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e60); } + if (peg$silentFails === 0) { peg$fail(peg$e62); } } return s0; @@ -1958,7 +2003,7 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = peg$parse_(); peg$savedPos = s0; - s1 = peg$f53(); + s1 = peg$f54(); s0 = s1; return s0; @@ -1974,7 +2019,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e63); } + if (peg$silentFails === 0) { peg$fail(peg$e65); } } while (s1 !== peg$FAILED) { s0.push(s1); @@ -1983,12 +2028,12 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e63); } + if (peg$silentFails === 0) { peg$fail(peg$e65); } } } peg$silentFails--; s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e62); } + if (peg$silentFails === 0) { peg$fail(peg$e64); } return s0; } @@ -1998,7 +2043,7 @@ function peg$parse(input, options) { s0 = peg$currPos; peg$savedPos = peg$currPos; - s1 = peg$f54(); + s1 = peg$f55(); if (s1) { s1 = undefined; } else { @@ -2035,7 +2080,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e65); } + if (peg$silentFails === 0) { peg$fail(peg$e67); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -2044,7 +2089,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e65); } + if (peg$silentFails === 0) { peg$fail(peg$e67); } } } s2 = input.charAt(peg$currPos); @@ -2052,7 +2097,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e66); } + if (peg$silentFails === 0) { peg$fail(peg$e68); } } if (s2 !== peg$FAILED) { s3 = []; @@ -2061,7 +2106,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e67); } + if (peg$silentFails === 0) { peg$fail(peg$e69); } } while (s4 !== peg$FAILED) { s3.push(s4); @@ -2070,7 +2115,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e67); } + if (peg$silentFails === 0) { peg$fail(peg$e69); } } } s4 = input.charAt(peg$currPos); @@ -2078,7 +2123,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e66); } + if (peg$silentFails === 0) { peg$fail(peg$e68); } } if (s4 !== peg$FAILED) { s5 = []; @@ -2087,7 +2132,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e61); } + if (peg$silentFails === 0) { peg$fail(peg$e63); } } while (s6 !== peg$FAILED) { s5.push(s6); @@ -2096,11 +2141,11 @@ function peg$parse(input, options) { peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e61); } + if (peg$silentFails === 0) { peg$fail(peg$e63); } } } peg$savedPos = s0; - s0 = peg$f55(s1, s3, s5); + s0 = peg$f56(s1, s3, s5); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -2112,7 +2157,7 @@ function peg$parse(input, options) { peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e64); } + if (peg$silentFails === 0) { peg$fail(peg$e66); } } return s0; @@ -2129,7 +2174,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e65); } + if (peg$silentFails === 0) { peg$fail(peg$e67); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -2138,7 +2183,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e65); } + if (peg$silentFails === 0) { peg$fail(peg$e67); } } } s2 = input.charAt(peg$currPos); @@ -2146,7 +2191,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e66); } + if (peg$silentFails === 0) { peg$fail(peg$e68); } } if (s2 !== peg$FAILED) { s3 = []; @@ -2155,7 +2200,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e67); } + if (peg$silentFails === 0) { peg$fail(peg$e69); } } if (s4 === peg$FAILED) { s4 = peg$currPos; @@ -2171,15 +2216,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8220) { - s6 = peg$c57; + s6 = peg$c59; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e68); } + if (peg$silentFails === 0) { peg$fail(peg$e70); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f56(s1); + s4 = peg$f57(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -2202,15 +2247,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8221) { - s6 = peg$c58; + s6 = peg$c60; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e69); } + if (peg$silentFails === 0) { peg$fail(peg$e71); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f57(s1); + s4 = peg$f58(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -2233,15 +2278,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 34) { - s6 = peg$c59; + s6 = peg$c61; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e70); } + if (peg$silentFails === 0) { peg$fail(peg$e72); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f58(s1); + s4 = peg$f59(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -2260,7 +2305,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e67); } + if (peg$silentFails === 0) { peg$fail(peg$e69); } } if (s4 === peg$FAILED) { s4 = peg$currPos; @@ -2276,15 +2321,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8220) { - s6 = peg$c57; + s6 = peg$c59; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e68); } + if (peg$silentFails === 0) { peg$fail(peg$e70); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f56(s1); + s4 = peg$f57(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -2307,15 +2352,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8221) { - s6 = peg$c58; + s6 = peg$c60; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e69); } + if (peg$silentFails === 0) { peg$fail(peg$e71); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f57(s1); + s4 = peg$f58(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -2338,15 +2383,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 34) { - s6 = peg$c59; + s6 = peg$c61; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e70); } + if (peg$silentFails === 0) { peg$fail(peg$e72); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f58(s1); + s4 = peg$f59(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -2362,7 +2407,7 @@ function peg$parse(input, options) { s4 = peg$parseclosingQuote(); if (s4 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f59(s1, s3, s4); + s0 = peg$f60(s1, s3, s4); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -2374,7 +2419,7 @@ function peg$parse(input, options) { peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e64); } + if (peg$silentFails === 0) { peg$fail(peg$e66); } } return s0; @@ -2389,7 +2434,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e66); } + if (peg$silentFails === 0) { peg$fail(peg$e68); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -2427,7 +2472,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e71); } + if (peg$silentFails === 0) { peg$fail(peg$e73); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -2436,7 +2481,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e71); } + if (peg$silentFails === 0) { peg$fail(peg$e73); } } } s2 = []; @@ -2445,7 +2490,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e72); } + if (peg$silentFails === 0) { peg$fail(peg$e74); } } while (s3 !== peg$FAILED) { s2.push(s3); @@ -2454,7 +2499,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e72); } + if (peg$silentFails === 0) { peg$fail(peg$e74); } } } s3 = []; @@ -2463,7 +2508,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e73); } + if (peg$silentFails === 0) { peg$fail(peg$e75); } } while (s4 !== peg$FAILED) { s3.push(s4); @@ -2472,7 +2517,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e73); } + if (peg$silentFails === 0) { peg$fail(peg$e75); } } } s4 = peg$parseoperator(); @@ -2491,7 +2536,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e74); } + if (peg$silentFails === 0) { peg$fail(peg$e76); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -2500,7 +2545,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e74); } + if (peg$silentFails === 0) { peg$fail(peg$e76); } } } s2 = peg$currPos; @@ -2521,7 +2566,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e75); } + if (peg$silentFails === 0) { peg$fail(peg$e77); } } peg$silentFails--; if (s4 === peg$FAILED) { @@ -2547,7 +2592,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e76); } + if (peg$silentFails === 0) { peg$fail(peg$e78); } } } } diff --git a/src/libs/SearchParser/baseRules.peggy b/src/libs/SearchParser/baseRules.peggy index f7df2ee6f603..f637c9011264 100644 --- a/src/libs/SearchParser/baseRules.peggy +++ b/src/libs/SearchParser/baseRules.peggy @@ -73,9 +73,10 @@ action = "action"i { return "action"; } // Value transformation rules values = perDiem + / report -perDiem - = "perDiem"i / "per-diem"i { return "perDiem"; } +perDiem = "perDiem"i / "per-diem"i { return "perDiem"; } +report = "reports"i / "report"i {return "reports"; } operator "operator" = (":" / "=") { return "eq"; } diff --git a/src/libs/SearchParser/searchParser.js b/src/libs/SearchParser/searchParser.js index 90cb23806039..83d3f9bd5673 100644 --- a/src/libs/SearchParser/searchParser.js +++ b/src/libs/SearchParser/searchParser.js @@ -236,14 +236,16 @@ function peg$parse(input, options) { var peg$c49 = "action"; var peg$c50 = "perdiem"; var peg$c51 = "per-diem"; - var peg$c52 = "!="; - var peg$c53 = ">="; - var peg$c54 = ">"; - var peg$c55 = "<="; - var peg$c56 = "<"; - var peg$c57 = "\u201C"; - var peg$c58 = "\u201D"; - var peg$c59 = "\""; + var peg$c52 = "reports"; + var peg$c53 = "report"; + var peg$c54 = "!="; + var peg$c55 = ">="; + var peg$c56 = ">"; + var peg$c57 = "<="; + var peg$c58 = "<"; + var peg$c59 = "\u201C"; + var peg$c60 = "\u201D"; + var peg$c61 = "\""; var peg$r0 = /^[^ \t\r\n\xA0]/; var peg$r1 = /^[:=]/; @@ -313,30 +315,32 @@ function peg$parse(input, options) { var peg$e52 = peg$literalExpectation("action", true); var peg$e53 = peg$literalExpectation("perDiem", true); var peg$e54 = peg$literalExpectation("per-diem", true); - var peg$e55 = peg$otherExpectation("operator"); - var peg$e56 = peg$classExpectation([":", "="], false, false); - var peg$e57 = peg$literalExpectation("!=", false); - var peg$e58 = peg$literalExpectation(">=", false); - var peg$e59 = peg$literalExpectation(">", false); - var peg$e60 = peg$literalExpectation("<=", false); - var peg$e61 = peg$literalExpectation("<", false); - var peg$e62 = peg$otherExpectation("word"); - var peg$e63 = peg$classExpectation([" ", ",", "\t", "\n", "\r", "\xA0"], true, false); - var peg$e64 = peg$otherExpectation("whitespace"); - var peg$e65 = peg$classExpectation([" ", "\t", "\r", "\n", "\xA0"], false, false); - var peg$e66 = peg$otherExpectation("quote"); - var peg$e67 = peg$classExpectation([" ", ",", "\"", "\u201D", "\u201C", "\t", "\n", "\r", "\xA0"], true, false); - var peg$e68 = peg$classExpectation(["\"", ["\u201C", "\u201D"]], false, false); - var peg$e69 = peg$classExpectation(["\"", "\u201D", "\u201C", "\r", "\n"], true, false); - var peg$e70 = peg$literalExpectation("\u201C", false); - var peg$e71 = peg$literalExpectation("\u201D", false); - var peg$e72 = peg$literalExpectation("\"", false); - var peg$e73 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"], ["0", "9"]], false, false); - var peg$e74 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"]], false, false); - var peg$e75 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0"], false, false); - var peg$e76 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"]], false, false); - var peg$e77 = peg$anyExpectation(); - var peg$e78 = peg$classExpectation([","], false, false); + var peg$e55 = peg$literalExpectation("reports", true); + var peg$e56 = peg$literalExpectation("report", true); + var peg$e57 = peg$otherExpectation("operator"); + var peg$e58 = peg$classExpectation([":", "="], false, false); + var peg$e59 = peg$literalExpectation("!=", false); + var peg$e60 = peg$literalExpectation(">=", false); + var peg$e61 = peg$literalExpectation(">", false); + var peg$e62 = peg$literalExpectation("<=", false); + var peg$e63 = peg$literalExpectation("<", false); + var peg$e64 = peg$otherExpectation("word"); + var peg$e65 = peg$classExpectation([" ", ",", "\t", "\n", "\r", "\xA0"], true, false); + var peg$e66 = peg$otherExpectation("whitespace"); + var peg$e67 = peg$classExpectation([" ", "\t", "\r", "\n", "\xA0"], false, false); + var peg$e68 = peg$otherExpectation("quote"); + var peg$e69 = peg$classExpectation([" ", ",", "\"", "\u201D", "\u201C", "\t", "\n", "\r", "\xA0"], true, false); + var peg$e70 = peg$classExpectation(["\"", ["\u201C", "\u201D"]], false, false); + var peg$e71 = peg$classExpectation(["\"", "\u201D", "\u201C", "\r", "\n"], true, false); + var peg$e72 = peg$literalExpectation("\u201C", false); + var peg$e73 = peg$literalExpectation("\u201D", false); + var peg$e74 = peg$literalExpectation("\"", false); + var peg$e75 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"], ["0", "9"]], false, false); + var peg$e76 = peg$classExpectation([["a", "z"], ["A", "Z"], ["0", "9"]], false, false); + var peg$e77 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0"], false, false); + var peg$e78 = peg$classExpectation([" ", "\t", "\n", "\r", "\xA0", ["a", "z"], ["A", "Z"]], false, false); + var peg$e79 = peg$anyExpectation(); + var peg$e80 = peg$classExpectation([","], false, false); var peg$f0 = function(filters) { return applyDefaults(filters); }; var peg$f1 = function(head, tail) { @@ -442,28 +446,29 @@ function peg$parse(input, options) { var peg$f43 = function() { return "createdBy"; }; var peg$f44 = function() { return "action"; }; var peg$f45 = function() { return "perDiem"; }; - var peg$f46 = function() { return "eq"; }; - var peg$f47 = function() { return "neq"; }; - var peg$f48 = function() { return "gte"; }; - var peg$f49 = function() { return "gt"; }; - var peg$f50 = function() { return "lte"; }; - var peg$f51 = function() { return "lt"; }; - var peg$f52 = function(o) { + var peg$f46 = function() {return "reports"; }; + var peg$f47 = function() { return "eq"; }; + var peg$f48 = function() { return "neq"; }; + var peg$f49 = function() { return "gte"; }; + var peg$f50 = function() { return "gt"; }; + var peg$f51 = function() { return "lte"; }; + var peg$f52 = function() { return "lt"; }; + var peg$f53 = function(o) { if (nameOperator) { expectingNestedQuote = (o === "eq"); // Use simple parser if no valid operator is found } return o; }; - var peg$f53 = function(chars) { return chars.join("").trim(); }; - var peg$f54 = function() { return "and"; }; - var peg$f55 = function() { return expectingNestedQuote; }; - var peg$f56 = function(start, inner, end) { //handle no-breaking space + var peg$f54 = function(chars) { return chars.join("").trim(); }; + var peg$f55 = function() { return "and"; }; + var peg$f56 = function() { return expectingNestedQuote; }; + var peg$f57 = function(start, inner, end) { //handle no-breaking space return [...start, '"', ...inner, '"', ...end].join(""); }; - var peg$f57 = function(start) {return "“"}; - var peg$f58 = function(start) {return "”"}; - var peg$f59 = function(start) {return "\""}; - var peg$f60 = function(start, inner, end) { + var peg$f58 = function(start) {return "“"}; + var peg$f59 = function(start) {return "”"}; + var peg$f60 = function(start) {return "\""}; + var peg$f61 = function(start, inner, end) { return [...start, '"', ...inner, '"'].join(""); }; var peg$currPos = options.peg$currPos | 0; @@ -1004,7 +1009,7 @@ function peg$parse(input, options) { } s2 = peg$currPos; s3 = []; - s4 = peg$parseperDiem(); + s4 = peg$parsevalues(); if (s4 === peg$FAILED) { s4 = peg$parsequotedString(); if (s4 === peg$FAILED) { @@ -1037,7 +1042,7 @@ function peg$parse(input, options) { s5 = peg$FAILED; } if (s5 !== peg$FAILED) { - s5 = peg$parseperDiem(); + s5 = peg$parsevalues(); if (s5 === peg$FAILED) { s5 = peg$parsequotedString(); if (s5 === peg$FAILED) { @@ -1955,6 +1960,17 @@ function peg$parse(input, options) { return s0; } + function peg$parsevalues() { + var s0; + + s0 = peg$parseperDiem(); + if (s0 === peg$FAILED) { + s0 = peg$parsereport(); + } + + return s0; + } + function peg$parseperDiem() { var s0, s1; @@ -1984,6 +2000,35 @@ function peg$parse(input, options) { return s0; } + function peg$parsereport() { + var s0, s1; + + s0 = input.substr(peg$currPos, 7); + if (s0.toLowerCase() === peg$c52) { + peg$currPos += 7; + } else { + s0 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e55); } + } + if (s0 === peg$FAILED) { + s0 = peg$currPos; + s1 = input.substr(peg$currPos, 6); + if (s1.toLowerCase() === peg$c53) { + peg$currPos += 6; + } else { + s1 = peg$FAILED; + if (peg$silentFails === 0) { peg$fail(peg$e56); } + } + if (s1 !== peg$FAILED) { + peg$savedPos = s0; + s1 = peg$f46(); + } + s0 = s1; + } + + return s0; + } + function peg$parseoperator() { var s0, s1; @@ -1994,81 +2039,81 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e56); } + if (peg$silentFails === 0) { peg$fail(peg$e58); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f46(); + s1 = peg$f47(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c52) { - s1 = peg$c52; + if (input.substr(peg$currPos, 2) === peg$c54) { + s1 = peg$c54; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e57); } + if (peg$silentFails === 0) { peg$fail(peg$e59); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f47(); + s1 = peg$f48(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c53) { - s1 = peg$c53; + if (input.substr(peg$currPos, 2) === peg$c55) { + s1 = peg$c55; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e58); } + if (peg$silentFails === 0) { peg$fail(peg$e60); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f48(); + s1 = peg$f49(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 62) { - s1 = peg$c54; + s1 = peg$c56; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e59); } + if (peg$silentFails === 0) { peg$fail(peg$e61); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f49(); + s1 = peg$f50(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; - if (input.substr(peg$currPos, 2) === peg$c55) { - s1 = peg$c55; + if (input.substr(peg$currPos, 2) === peg$c57) { + s1 = peg$c57; peg$currPos += 2; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e60); } + if (peg$silentFails === 0) { peg$fail(peg$e62); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f50(); + s1 = peg$f51(); } s0 = s1; if (s0 === peg$FAILED) { s0 = peg$currPos; if (input.charCodeAt(peg$currPos) === 60) { - s1 = peg$c56; + s1 = peg$c58; peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e61); } + if (peg$silentFails === 0) { peg$fail(peg$e63); } } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f51(); + s1 = peg$f52(); } s0 = s1; } @@ -2079,7 +2124,7 @@ function peg$parse(input, options) { peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e55); } + if (peg$silentFails === 0) { peg$fail(peg$e57); } } return s0; @@ -2092,7 +2137,7 @@ function peg$parse(input, options) { s1 = peg$parseoperator(); if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f52(s1); + s1 = peg$f53(s1); } s0 = s1; @@ -2110,7 +2155,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e63); } + if (peg$silentFails === 0) { peg$fail(peg$e65); } } if (s2 !== peg$FAILED) { while (s2 !== peg$FAILED) { @@ -2120,7 +2165,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e63); } + if (peg$silentFails === 0) { peg$fail(peg$e65); } } } } else { @@ -2128,13 +2173,13 @@ function peg$parse(input, options) { } if (s1 !== peg$FAILED) { peg$savedPos = s0; - s1 = peg$f53(s1); + s1 = peg$f54(s1); } s0 = s1; peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e62); } + if (peg$silentFails === 0) { peg$fail(peg$e64); } } return s0; @@ -2146,7 +2191,7 @@ function peg$parse(input, options) { s0 = peg$currPos; s1 = peg$parse_(); peg$savedPos = s0; - s1 = peg$f54(); + s1 = peg$f55(); s0 = s1; return s0; @@ -2162,7 +2207,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e65); } + if (peg$silentFails === 0) { peg$fail(peg$e67); } } while (s1 !== peg$FAILED) { s0.push(s1); @@ -2171,12 +2216,12 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e65); } + if (peg$silentFails === 0) { peg$fail(peg$e67); } } } peg$silentFails--; s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e64); } + if (peg$silentFails === 0) { peg$fail(peg$e66); } return s0; } @@ -2186,7 +2231,7 @@ function peg$parse(input, options) { s0 = peg$currPos; peg$savedPos = peg$currPos; - s1 = peg$f55(); + s1 = peg$f56(); if (s1) { s1 = undefined; } else { @@ -2223,7 +2268,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e67); } + if (peg$silentFails === 0) { peg$fail(peg$e69); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -2232,7 +2277,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e67); } + if (peg$silentFails === 0) { peg$fail(peg$e69); } } } s2 = input.charAt(peg$currPos); @@ -2240,7 +2285,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e68); } + if (peg$silentFails === 0) { peg$fail(peg$e70); } } if (s2 !== peg$FAILED) { s3 = []; @@ -2249,7 +2294,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e69); } + if (peg$silentFails === 0) { peg$fail(peg$e71); } } while (s4 !== peg$FAILED) { s3.push(s4); @@ -2258,7 +2303,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e69); } + if (peg$silentFails === 0) { peg$fail(peg$e71); } } } s4 = input.charAt(peg$currPos); @@ -2266,7 +2311,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e68); } + if (peg$silentFails === 0) { peg$fail(peg$e70); } } if (s4 !== peg$FAILED) { s5 = []; @@ -2275,7 +2320,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e63); } + if (peg$silentFails === 0) { peg$fail(peg$e65); } } while (s6 !== peg$FAILED) { s5.push(s6); @@ -2284,11 +2329,11 @@ function peg$parse(input, options) { peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e63); } + if (peg$silentFails === 0) { peg$fail(peg$e65); } } } peg$savedPos = s0; - s0 = peg$f56(s1, s3, s5); + s0 = peg$f57(s1, s3, s5); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -2300,7 +2345,7 @@ function peg$parse(input, options) { peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e66); } + if (peg$silentFails === 0) { peg$fail(peg$e68); } } return s0; @@ -2317,7 +2362,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e67); } + if (peg$silentFails === 0) { peg$fail(peg$e69); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -2326,7 +2371,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e67); } + if (peg$silentFails === 0) { peg$fail(peg$e69); } } } s2 = input.charAt(peg$currPos); @@ -2334,7 +2379,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e68); } + if (peg$silentFails === 0) { peg$fail(peg$e70); } } if (s2 !== peg$FAILED) { s3 = []; @@ -2343,7 +2388,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e69); } + if (peg$silentFails === 0) { peg$fail(peg$e71); } } if (s4 === peg$FAILED) { s4 = peg$currPos; @@ -2359,15 +2404,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8220) { - s6 = peg$c57; + s6 = peg$c59; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e70); } + if (peg$silentFails === 0) { peg$fail(peg$e72); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f57(s1); + s4 = peg$f58(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -2390,15 +2435,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8221) { - s6 = peg$c58; + s6 = peg$c60; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e71); } + if (peg$silentFails === 0) { peg$fail(peg$e73); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f58(s1); + s4 = peg$f59(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -2421,15 +2466,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 34) { - s6 = peg$c59; + s6 = peg$c61; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e72); } + if (peg$silentFails === 0) { peg$fail(peg$e74); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f59(s1); + s4 = peg$f60(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -2448,7 +2493,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e69); } + if (peg$silentFails === 0) { peg$fail(peg$e71); } } if (s4 === peg$FAILED) { s4 = peg$currPos; @@ -2464,15 +2509,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8220) { - s6 = peg$c57; + s6 = peg$c59; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e70); } + if (peg$silentFails === 0) { peg$fail(peg$e72); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f57(s1); + s4 = peg$f58(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -2495,15 +2540,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 8221) { - s6 = peg$c58; + s6 = peg$c60; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e71); } + if (peg$silentFails === 0) { peg$fail(peg$e73); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f58(s1); + s4 = peg$f59(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -2526,15 +2571,15 @@ function peg$parse(input, options) { } if (s5 !== peg$FAILED) { if (input.charCodeAt(peg$currPos) === 34) { - s6 = peg$c59; + s6 = peg$c61; peg$currPos++; } else { s6 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e72); } + if (peg$silentFails === 0) { peg$fail(peg$e74); } } if (s6 !== peg$FAILED) { peg$savedPos = s4; - s4 = peg$f59(s1); + s4 = peg$f60(s1); } else { peg$currPos = s4; s4 = peg$FAILED; @@ -2550,7 +2595,7 @@ function peg$parse(input, options) { s4 = peg$parseclosingQuote(); if (s4 !== peg$FAILED) { peg$savedPos = s0; - s0 = peg$f60(s1, s3, s4); + s0 = peg$f61(s1, s3, s4); } else { peg$currPos = s0; s0 = peg$FAILED; @@ -2562,7 +2607,7 @@ function peg$parse(input, options) { peg$silentFails--; if (s0 === peg$FAILED) { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e66); } + if (peg$silentFails === 0) { peg$fail(peg$e68); } } return s0; @@ -2577,7 +2622,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s1 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e68); } + if (peg$silentFails === 0) { peg$fail(peg$e70); } } if (s1 !== peg$FAILED) { s2 = peg$currPos; @@ -2615,7 +2660,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e73); } + if (peg$silentFails === 0) { peg$fail(peg$e75); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -2624,7 +2669,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e73); } + if (peg$silentFails === 0) { peg$fail(peg$e75); } } } s2 = []; @@ -2633,7 +2678,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e74); } + if (peg$silentFails === 0) { peg$fail(peg$e76); } } while (s3 !== peg$FAILED) { s2.push(s3); @@ -2642,7 +2687,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s3 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e74); } + if (peg$silentFails === 0) { peg$fail(peg$e76); } } } s3 = []; @@ -2651,7 +2696,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e75); } + if (peg$silentFails === 0) { peg$fail(peg$e77); } } while (s4 !== peg$FAILED) { s3.push(s4); @@ -2660,7 +2705,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e75); } + if (peg$silentFails === 0) { peg$fail(peg$e77); } } } s4 = peg$parseoperator(); @@ -2679,7 +2724,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e76); } + if (peg$silentFails === 0) { peg$fail(peg$e78); } } while (s2 !== peg$FAILED) { s1.push(s2); @@ -2688,7 +2733,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s2 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e76); } + if (peg$silentFails === 0) { peg$fail(peg$e78); } } } s2 = peg$currPos; @@ -2709,7 +2754,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s4 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e77); } + if (peg$silentFails === 0) { peg$fail(peg$e79); } } peg$silentFails--; if (s4 === peg$FAILED) { @@ -2735,7 +2780,7 @@ function peg$parse(input, options) { peg$currPos++; } else { s0 = peg$FAILED; - if (peg$silentFails === 0) { peg$fail(peg$e78); } + if (peg$silentFails === 0) { peg$fail(peg$e80); } } } } diff --git a/src/libs/SearchQueryUtils.ts b/src/libs/SearchQueryUtils.ts index 83dc81293caa..75f25f0f0df8 100644 --- a/src/libs/SearchQueryUtils.ts +++ b/src/libs/SearchQueryUtils.ts @@ -98,7 +98,7 @@ function getUserFriendlyKey(keyName: SearchFilterKey | typeof CONST.SEARCH.SYNTA * @example * getUserFriendlyValues("perDiem") // returns "per-diem" */ -function getUserFriendlyValue(value: string): UserFriendlyValue { +function getUserFriendlyValue(value: string | undefined): UserFriendlyValue { return CONST.SEARCH.SEARCH_USER_FRIENDLY_VALUES_MAP[value as keyof typeof CONST.SEARCH.SEARCH_USER_FRIENDLY_VALUES_MAP] ?? value; } @@ -787,10 +787,10 @@ function buildUserReadableQueryString( const {type, status, groupBy, policyID} = queryJSON; const filters = queryJSON.flatFilters; - let title = status ? `type:${type} status:${Array.isArray(status) ? status.join(',') : status}` : `type:${type}`; + let title = status ? `type:${getUserFriendlyValue(type)} status:${Array.isArray(status) ? status.join(',') : status}` : `type:${getUserFriendlyValue(type)}`; if (groupBy) { - title += ` group-by:${groupBy}`; + title += ` group-by:${getUserFriendlyValue(groupBy)}`; } if (policyID && policyID.length > 0) { diff --git a/tests/unit/SearchParserTest.ts b/tests/unit/SearchParserTest.ts index 34500adee0f7..13e3e214f54c 100644 --- a/tests/unit/SearchParserTest.ts +++ b/tests/unit/SearchParserTest.ts @@ -47,7 +47,7 @@ const tests = [ right: { operator: 'eq', left: 'reportID', - right: 'report', + right: '1234', }, }, }, @@ -85,7 +85,7 @@ const tests = [ right: { operator: 'eq', left: 'reportID', - right: 'report', + right: '1234', }, }, }, diff --git a/tests/utils/fixtures/searchParsersCommonQueries.ts b/tests/utils/fixtures/searchParsersCommonQueries.ts index d829db13018c..168edf3ddddb 100644 --- a/tests/utils/fixtures/searchParsersCommonQueries.ts +++ b/tests/utils/fixtures/searchParsersCommonQueries.ts @@ -3,8 +3,8 @@ */ const parserCommonTests = { simple: 'type:expense', - userFriendlyNames: 'tax-rate:rate1 expense-type:card card:"Big Bank" report-id:report', - oldNames: 'taxRate:rate1 expenseType:card cardID:"Big Bank" reportID:report', + userFriendlyNames: 'tax-rate:rate1 expense-type:card card:"Big Bank" report-id:1234', + oldNames: 'taxRate:rate1 expenseType:card cardID:"Big Bank" report-id:1234', complex: 'amount>200 expense-type:cash,card description:"Las Vegas party" date:2024-06-01 category:travel,hotel,"meal & entertainment"', quotesIOS: 'type:expense category:“a b”', };