@hmcts/ccd-case-ui-toolkit 7.3.68-exui-4216-1 → 7.3.68-multiple-role-categories
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/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +138 -1050
- package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
- package/index.d.ts +4 -4
- package/index.d.ts.map +1 -1
- package/package.json +2 -1
|
@@ -17,6 +17,7 @@ import moment from 'moment';
|
|
|
17
17
|
import { __decorate, __metadata } from 'tslib';
|
|
18
18
|
import * as _ from 'underscore';
|
|
19
19
|
import 'reflect-metadata';
|
|
20
|
+
import { generate } from 'pegjs';
|
|
20
21
|
import { StateMachine } from '@edium/fsm';
|
|
21
22
|
import * as i1$3 from '@angular/material/legacy-dialog';
|
|
22
23
|
import { MAT_LEGACY_DIALOG_DATA, MatLegacyDialogModule } from '@angular/material/legacy-dialog';
|
|
@@ -4797,1031 +4798,107 @@ class FieldsUtils {
|
|
|
4797
4798
|
type: Injectable
|
|
4798
4799
|
}], null, null); })();
|
|
4799
4800
|
|
|
4800
|
-
|
|
4801
|
-
// @ts-nocheck
|
|
4802
|
-
// This file is generated by scripts/generate-condition-parser.mjs. Do not edit by hand.
|
|
4803
|
-
// @generated by Peggy 5.1.0.
|
|
4804
|
-
//
|
|
4805
|
-
// https://peggyjs.org/
|
|
4806
|
-
class peg$SyntaxError extends SyntaxError {
|
|
4807
|
-
constructor(message, expected, found, location) {
|
|
4808
|
-
super(message);
|
|
4809
|
-
this.expected = expected;
|
|
4810
|
-
this.found = found;
|
|
4811
|
-
this.location = location;
|
|
4812
|
-
this.name = "SyntaxError";
|
|
4813
|
-
}
|
|
4814
|
-
format(sources) {
|
|
4815
|
-
let str = "Error: " + this.message;
|
|
4816
|
-
if (this.location) {
|
|
4817
|
-
let src = null;
|
|
4818
|
-
const st = sources.find(s => s.source === this.location.source);
|
|
4819
|
-
if (st) {
|
|
4820
|
-
src = st.text.split(/\r\n|\n|\r/g);
|
|
4821
|
-
}
|
|
4822
|
-
const s = this.location.start;
|
|
4823
|
-
const offset_s = (this.location.source && (typeof this.location.source.offset === "function"))
|
|
4824
|
-
? this.location.source.offset(s)
|
|
4825
|
-
: s;
|
|
4826
|
-
const loc = this.location.source + ":" + offset_s.line + ":" + offset_s.column;
|
|
4827
|
-
if (src) {
|
|
4828
|
-
const e = this.location.end;
|
|
4829
|
-
const filler = "".padEnd(offset_s.line.toString().length, " ");
|
|
4830
|
-
const line = src[s.line - 1];
|
|
4831
|
-
const last = s.line === e.line ? e.column : line.length + 1;
|
|
4832
|
-
const hatLen = (last - s.column) || 1;
|
|
4833
|
-
str += "\n --> " + loc + "\n"
|
|
4834
|
-
+ filler + " |\n"
|
|
4835
|
-
+ offset_s.line + " | " + line + "\n"
|
|
4836
|
-
+ filler + " | " + "".padEnd(s.column - 1, " ")
|
|
4837
|
-
+ "".padEnd(hatLen, "^");
|
|
4838
|
-
}
|
|
4839
|
-
else {
|
|
4840
|
-
str += "\n at " + loc;
|
|
4841
|
-
}
|
|
4842
|
-
}
|
|
4843
|
-
return str;
|
|
4844
|
-
}
|
|
4845
|
-
static buildMessage(expected, found) {
|
|
4846
|
-
function hex(ch) {
|
|
4847
|
-
return ch.codePointAt(0).toString(16).toUpperCase();
|
|
4848
|
-
}
|
|
4849
|
-
const nonPrintable = Object.prototype.hasOwnProperty.call(RegExp.prototype, "unicode")
|
|
4850
|
-
? new RegExp("[\\p{C}\\p{Mn}\\p{Mc}]", "gu")
|
|
4851
|
-
: null;
|
|
4852
|
-
function unicodeEscape(s) {
|
|
4853
|
-
if (nonPrintable) {
|
|
4854
|
-
return s.replace(nonPrintable, ch => "\\u{" + hex(ch) + "}");
|
|
4855
|
-
}
|
|
4856
|
-
return s;
|
|
4857
|
-
}
|
|
4858
|
-
function literalEscape(s) {
|
|
4859
|
-
return unicodeEscape(s
|
|
4860
|
-
.replace(/\\/g, "\\\\")
|
|
4861
|
-
.replace(/"/g, "\\\"")
|
|
4862
|
-
.replace(/\0/g, "\\0")
|
|
4863
|
-
.replace(/\t/g, "\\t")
|
|
4864
|
-
.replace(/\n/g, "\\n")
|
|
4865
|
-
.replace(/\r/g, "\\r")
|
|
4866
|
-
.replace(/[\x00-\x0F]/g, ch => "\\x0" + hex(ch))
|
|
4867
|
-
.replace(/[\x10-\x1F\x7F-\x9F]/g, ch => "\\x" + hex(ch)));
|
|
4868
|
-
}
|
|
4869
|
-
function classEscape(s) {
|
|
4870
|
-
return unicodeEscape(s
|
|
4871
|
-
.replace(/\\/g, "\\\\")
|
|
4872
|
-
.replace(/\]/g, "\\]")
|
|
4873
|
-
.replace(/\^/g, "\\^")
|
|
4874
|
-
.replace(/-/g, "\\-")
|
|
4875
|
-
.replace(/\0/g, "\\0")
|
|
4876
|
-
.replace(/\t/g, "\\t")
|
|
4877
|
-
.replace(/\n/g, "\\n")
|
|
4878
|
-
.replace(/\r/g, "\\r")
|
|
4879
|
-
.replace(/[\x00-\x0F]/g, ch => "\\x0" + hex(ch))
|
|
4880
|
-
.replace(/[\x10-\x1F\x7F-\x9F]/g, ch => "\\x" + hex(ch)));
|
|
4881
|
-
}
|
|
4882
|
-
const DESCRIBE_EXPECTATION_FNS = {
|
|
4883
|
-
literal(expectation) {
|
|
4884
|
-
return "\"" + literalEscape(expectation.text) + "\"";
|
|
4885
|
-
},
|
|
4886
|
-
class(expectation) {
|
|
4887
|
-
const escapedParts = expectation.parts.map(part => (Array.isArray(part)
|
|
4888
|
-
? classEscape(part[0]) + "-" + classEscape(part[1])
|
|
4889
|
-
: classEscape(part)));
|
|
4890
|
-
return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]" + (expectation.unicode ? "u" : "");
|
|
4891
|
-
},
|
|
4892
|
-
any() {
|
|
4893
|
-
return "any character";
|
|
4894
|
-
},
|
|
4895
|
-
end() {
|
|
4896
|
-
return "end of input";
|
|
4897
|
-
},
|
|
4898
|
-
other(expectation) {
|
|
4899
|
-
return expectation.description;
|
|
4900
|
-
},
|
|
4901
|
-
};
|
|
4902
|
-
function describeExpectation(expectation) {
|
|
4903
|
-
return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);
|
|
4904
|
-
}
|
|
4905
|
-
function describeExpected(expected) {
|
|
4906
|
-
const descriptions = expected.map(describeExpectation);
|
|
4907
|
-
descriptions.sort();
|
|
4908
|
-
if (descriptions.length > 0) {
|
|
4909
|
-
let j = 1;
|
|
4910
|
-
for (let i = 1; i < descriptions.length; i++) {
|
|
4911
|
-
if (descriptions[i - 1] !== descriptions[i]) {
|
|
4912
|
-
descriptions[j] = descriptions[i];
|
|
4913
|
-
j++;
|
|
4914
|
-
}
|
|
4915
|
-
}
|
|
4916
|
-
descriptions.length = j;
|
|
4917
|
-
}
|
|
4918
|
-
switch (descriptions.length) {
|
|
4919
|
-
case 1:
|
|
4920
|
-
return descriptions[0];
|
|
4921
|
-
case 2:
|
|
4922
|
-
return descriptions[0] + " or " + descriptions[1];
|
|
4923
|
-
default:
|
|
4924
|
-
return descriptions.slice(0, -1).join(", ")
|
|
4925
|
-
+ ", or "
|
|
4926
|
-
+ descriptions[descriptions.length - 1];
|
|
4927
|
-
}
|
|
4928
|
-
}
|
|
4929
|
-
function describeFound(found) {
|
|
4930
|
-
return found ? "\"" + literalEscape(found) + "\"" : "end of input";
|
|
4931
|
-
}
|
|
4932
|
-
return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";
|
|
4933
|
-
}
|
|
4934
|
-
}
|
|
4935
|
-
function peg$parse(input, options) {
|
|
4936
|
-
options = options !== undefined ? options : {};
|
|
4937
|
-
const peg$FAILED = {};
|
|
4938
|
-
const peg$source = options.grammarSource;
|
|
4939
|
-
const peg$startRuleFunctions = {
|
|
4940
|
-
Start: peg$parseStart,
|
|
4941
|
-
};
|
|
4942
|
-
let peg$startRuleFunction = peg$parseStart;
|
|
4943
|
-
const peg$c0 = "AND";
|
|
4944
|
-
const peg$c1 = "OR";
|
|
4945
|
-
const peg$c2 = "[";
|
|
4946
|
-
const peg$c3 = "]";
|
|
4947
|
-
const peg$c4 = "\"";
|
|
4948
|
-
const peg$c5 = "(";
|
|
4949
|
-
const peg$c6 = ")";
|
|
4950
|
-
const peg$c7 = "=";
|
|
4951
|
-
const peg$c8 = "!=";
|
|
4952
|
-
const peg$c9 = "CONTAINS";
|
|
4953
|
-
const peg$r0 = /^[a-zA-Z]/;
|
|
4954
|
-
const peg$r1 = /^[A-Za-z0-9._\-]/;
|
|
4955
|
-
const peg$r2 = /^[0-9]/;
|
|
4956
|
-
const peg$r3 = /^[A-Za-z0-9.,* _&()\/\-]/;
|
|
4957
|
-
const peg$r4 = /^[ \t]/;
|
|
4958
|
-
const peg$e0 = peg$literalExpectation("AND", false);
|
|
4959
|
-
const peg$e1 = peg$literalExpectation("OR", false);
|
|
4960
|
-
const peg$e2 = peg$classExpectation([["a", "z"], ["A", "Z"]], false, false, false);
|
|
4961
|
-
const peg$e3 = peg$classExpectation([["A", "Z"], ["a", "z"], ["0", "9"], ".", "_", "-"], false, false, false);
|
|
4962
|
-
const peg$e4 = peg$literalExpectation("[", false);
|
|
4963
|
-
const peg$e5 = peg$literalExpectation("]", false);
|
|
4964
|
-
const peg$e6 = peg$classExpectation([["0", "9"]], false, false, false);
|
|
4965
|
-
const peg$e7 = peg$literalExpectation("\"", false);
|
|
4966
|
-
const peg$e8 = peg$classExpectation([["A", "Z"], ["a", "z"], ["0", "9"], ".", ",", "*", " ", "_", "&", "(", ")", "/", "-"], false, false, false);
|
|
4967
|
-
const peg$e9 = peg$literalExpectation("(", false);
|
|
4968
|
-
const peg$e10 = peg$literalExpectation(")", false);
|
|
4969
|
-
const peg$e11 = peg$literalExpectation("=", false);
|
|
4970
|
-
const peg$e12 = peg$literalExpectation("!=", false);
|
|
4971
|
-
const peg$e13 = peg$literalExpectation("CONTAINS", false);
|
|
4972
|
-
const peg$e14 = peg$otherExpectation("Whitespace");
|
|
4973
|
-
const peg$e15 = peg$classExpectation([" ", "\t"], false, false, false);
|
|
4974
|
-
const peg$e16 = peg$otherExpectation("One or more whitespaces");
|
|
4975
|
-
function peg$f0(formula, join) { return flat([[formula], join[0]], 1); }
|
|
4976
|
-
function peg$f1(eq, joins) { return flat([eq, flat(joins)]); }
|
|
4977
|
-
function peg$f2(comp, eq) { return [comp, eq]; }
|
|
4978
|
-
function peg$f3(comp, f) { return [comp, f]; }
|
|
4979
|
-
function peg$f4(fr, op, val) { return { fieldReference: fr, comparator: op, value: val }; }
|
|
4980
|
-
function peg$f5(c) { return c; }
|
|
4981
|
-
function peg$f6(c) { return c; }
|
|
4982
|
-
function peg$f7(l) { return l.join(""); }
|
|
4983
|
-
function peg$f8(v) { return v.join(""); }
|
|
4984
|
-
function peg$f9(v) { return parseInt(v.join("")); }
|
|
4985
|
-
function peg$f10(s1, fr, s2) { return s1 + fr + s2; }
|
|
4986
|
-
function peg$f11(characters) { return characters.join(""); }
|
|
4987
|
-
function peg$f12(val) { return val.join(""); }
|
|
4988
|
-
let peg$currPos = options.peg$currPos | 0;
|
|
4989
|
-
let peg$savedPos = peg$currPos;
|
|
4990
|
-
const peg$posDetailsCache = [{ line: 1, column: 1 }];
|
|
4991
|
-
let peg$maxFailPos = peg$currPos;
|
|
4992
|
-
let peg$maxFailExpected = options.peg$maxFailExpected || [];
|
|
4993
|
-
let peg$silentFails = options.peg$silentFails | 0;
|
|
4994
|
-
let peg$result;
|
|
4995
|
-
if (options.startRule) {
|
|
4996
|
-
if (!(options.startRule in peg$startRuleFunctions)) {
|
|
4997
|
-
throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
|
|
4998
|
-
}
|
|
4999
|
-
peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
|
|
5000
|
-
}
|
|
5001
|
-
function text() {
|
|
5002
|
-
return input.substring(peg$savedPos, peg$currPos);
|
|
5003
|
-
}
|
|
5004
|
-
function offset() {
|
|
5005
|
-
return peg$savedPos;
|
|
5006
|
-
}
|
|
5007
|
-
function range() {
|
|
5008
|
-
return {
|
|
5009
|
-
source: peg$source,
|
|
5010
|
-
start: peg$savedPos,
|
|
5011
|
-
end: peg$currPos,
|
|
5012
|
-
};
|
|
5013
|
-
}
|
|
5014
|
-
function location() {
|
|
5015
|
-
return peg$computeLocation(peg$savedPos, peg$currPos);
|
|
5016
|
-
}
|
|
5017
|
-
function expected(description, location) {
|
|
5018
|
-
location = location !== undefined
|
|
5019
|
-
? location
|
|
5020
|
-
: peg$computeLocation(peg$savedPos, peg$currPos);
|
|
5021
|
-
throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location);
|
|
5022
|
-
}
|
|
5023
|
-
function error(message, location) {
|
|
5024
|
-
location = location !== undefined
|
|
5025
|
-
? location
|
|
5026
|
-
: peg$computeLocation(peg$savedPos, peg$currPos);
|
|
5027
|
-
throw peg$buildSimpleError(message, location);
|
|
5028
|
-
}
|
|
5029
|
-
function peg$getUnicode(pos = peg$currPos) {
|
|
5030
|
-
const cp = input.codePointAt(pos);
|
|
5031
|
-
if (cp === undefined) {
|
|
5032
|
-
return "";
|
|
5033
|
-
}
|
|
5034
|
-
return String.fromCodePoint(cp);
|
|
5035
|
-
}
|
|
5036
|
-
function peg$literalExpectation(text, ignoreCase) {
|
|
5037
|
-
return { type: "literal", text, ignoreCase };
|
|
5038
|
-
}
|
|
5039
|
-
function peg$classExpectation(parts, inverted, ignoreCase, unicode) {
|
|
5040
|
-
return { type: "class", parts, inverted, ignoreCase, unicode };
|
|
5041
|
-
}
|
|
5042
|
-
function peg$anyExpectation() {
|
|
5043
|
-
return { type: "any" };
|
|
5044
|
-
}
|
|
5045
|
-
function peg$endExpectation() {
|
|
5046
|
-
return { type: "end" };
|
|
5047
|
-
}
|
|
5048
|
-
function peg$otherExpectation(description) {
|
|
5049
|
-
return { type: "other", description };
|
|
5050
|
-
}
|
|
5051
|
-
function peg$computePosDetails(pos) {
|
|
5052
|
-
let details = peg$posDetailsCache[pos];
|
|
5053
|
-
let p;
|
|
5054
|
-
if (details) {
|
|
5055
|
-
return details;
|
|
5056
|
-
}
|
|
5057
|
-
else {
|
|
5058
|
-
if (pos >= peg$posDetailsCache.length) {
|
|
5059
|
-
p = peg$posDetailsCache.length - 1;
|
|
5060
|
-
}
|
|
5061
|
-
else {
|
|
5062
|
-
p = pos;
|
|
5063
|
-
while (!peg$posDetailsCache[--p]) { }
|
|
5064
|
-
}
|
|
5065
|
-
details = peg$posDetailsCache[p];
|
|
5066
|
-
details = {
|
|
5067
|
-
line: details.line,
|
|
5068
|
-
column: details.column,
|
|
5069
|
-
};
|
|
5070
|
-
while (p < pos) {
|
|
5071
|
-
if (input.charCodeAt(p) === 10) {
|
|
5072
|
-
details.line++;
|
|
5073
|
-
details.column = 1;
|
|
5074
|
-
}
|
|
5075
|
-
else {
|
|
5076
|
-
details.column++;
|
|
5077
|
-
}
|
|
5078
|
-
p++;
|
|
5079
|
-
}
|
|
5080
|
-
peg$posDetailsCache[pos] = details;
|
|
5081
|
-
return details;
|
|
5082
|
-
}
|
|
5083
|
-
}
|
|
5084
|
-
function peg$computeLocation(startPos, endPos, offset) {
|
|
5085
|
-
const startPosDetails = peg$computePosDetails(startPos);
|
|
5086
|
-
const endPosDetails = peg$computePosDetails(endPos);
|
|
5087
|
-
const res = {
|
|
5088
|
-
source: peg$source,
|
|
5089
|
-
start: {
|
|
5090
|
-
offset: startPos,
|
|
5091
|
-
line: startPosDetails.line,
|
|
5092
|
-
column: startPosDetails.column,
|
|
5093
|
-
},
|
|
5094
|
-
end: {
|
|
5095
|
-
offset: endPos,
|
|
5096
|
-
line: endPosDetails.line,
|
|
5097
|
-
column: endPosDetails.column,
|
|
5098
|
-
},
|
|
5099
|
-
};
|
|
5100
|
-
if (offset && peg$source && (typeof peg$source.offset === "function")) {
|
|
5101
|
-
res.start = peg$source.offset(res.start);
|
|
5102
|
-
res.end = peg$source.offset(res.end);
|
|
5103
|
-
}
|
|
5104
|
-
return res;
|
|
5105
|
-
}
|
|
5106
|
-
function peg$fail(expected) {
|
|
5107
|
-
if (peg$currPos < peg$maxFailPos) {
|
|
5108
|
-
return;
|
|
5109
|
-
}
|
|
5110
|
-
if (peg$currPos > peg$maxFailPos) {
|
|
5111
|
-
peg$maxFailPos = peg$currPos;
|
|
5112
|
-
peg$maxFailExpected = [];
|
|
5113
|
-
}
|
|
5114
|
-
peg$maxFailExpected.push(expected);
|
|
5115
|
-
}
|
|
5116
|
-
function peg$buildSimpleError(message, location) {
|
|
5117
|
-
return new peg$SyntaxError(message, null, null, location);
|
|
5118
|
-
}
|
|
5119
|
-
function peg$buildStructuredError(expected, found, location) {
|
|
5120
|
-
return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected, found), expected, found, location);
|
|
5121
|
-
}
|
|
5122
|
-
function peg$parseStart() {
|
|
5123
|
-
let s0;
|
|
5124
|
-
s0 = peg$parseFormula();
|
|
5125
|
-
return s0;
|
|
5126
|
-
}
|
|
5127
|
-
function peg$parseFormula() {
|
|
5128
|
-
let s0;
|
|
5129
|
-
s0 = peg$parseEnclosedFormula();
|
|
5130
|
-
if (s0 === peg$FAILED) {
|
|
5131
|
-
s0 = peg$parseOpenFormula();
|
|
5132
|
-
}
|
|
5133
|
-
return s0;
|
|
5134
|
-
}
|
|
5135
|
-
function peg$parseEnclosedFormula() {
|
|
5136
|
-
let s0, s1, s2, s3, s4, s5;
|
|
5137
|
-
s0 = peg$currPos;
|
|
5138
|
-
s1 = peg$parsebracket();
|
|
5139
|
-
if (s1 !== peg$FAILED) {
|
|
5140
|
-
s2 = peg$parseOpenFormula();
|
|
5141
|
-
if (s2 !== peg$FAILED) {
|
|
5142
|
-
s3 = peg$parsebracket();
|
|
5143
|
-
if (s3 !== peg$FAILED) {
|
|
5144
|
-
s4 = [];
|
|
5145
|
-
s5 = peg$parseJoinComparator();
|
|
5146
|
-
while (s5 !== peg$FAILED) {
|
|
5147
|
-
s4.push(s5);
|
|
5148
|
-
s5 = peg$parseJoinComparator();
|
|
5149
|
-
}
|
|
5150
|
-
peg$savedPos = s0;
|
|
5151
|
-
s0 = peg$f0(s2, s4);
|
|
5152
|
-
}
|
|
5153
|
-
else {
|
|
5154
|
-
peg$currPos = s0;
|
|
5155
|
-
s0 = peg$FAILED;
|
|
5156
|
-
}
|
|
5157
|
-
}
|
|
5158
|
-
else {
|
|
5159
|
-
peg$currPos = s0;
|
|
5160
|
-
s0 = peg$FAILED;
|
|
5161
|
-
}
|
|
5162
|
-
}
|
|
5163
|
-
else {
|
|
5164
|
-
peg$currPos = s0;
|
|
5165
|
-
s0 = peg$FAILED;
|
|
5166
|
-
}
|
|
5167
|
-
return s0;
|
|
5168
|
-
}
|
|
5169
|
-
function peg$parseOpenFormula() {
|
|
5170
|
-
let s0, s1, s2, s3;
|
|
5171
|
-
s0 = peg$currPos;
|
|
5172
|
-
s1 = peg$parseOpenEqualityCheck();
|
|
5173
|
-
if (s1 !== peg$FAILED) {
|
|
5174
|
-
s2 = [];
|
|
5175
|
-
s3 = peg$parseJoinComparator();
|
|
5176
|
-
while (s3 !== peg$FAILED) {
|
|
5177
|
-
s2.push(s3);
|
|
5178
|
-
s3 = peg$parseJoinComparator();
|
|
5179
|
-
}
|
|
5180
|
-
peg$savedPos = s0;
|
|
5181
|
-
s0 = peg$f1(s1, s2);
|
|
5182
|
-
}
|
|
5183
|
-
else {
|
|
5184
|
-
peg$currPos = s0;
|
|
5185
|
-
s0 = peg$FAILED;
|
|
5186
|
-
}
|
|
5187
|
-
return s0;
|
|
5188
|
-
}
|
|
5189
|
-
function peg$parseJoinComparator() {
|
|
5190
|
-
let s0, s1, s2;
|
|
5191
|
-
s0 = peg$currPos;
|
|
5192
|
-
s1 = peg$parseComparator();
|
|
5193
|
-
if (s1 !== peg$FAILED) {
|
|
5194
|
-
s2 = peg$parseOpenEqualityCheck();
|
|
5195
|
-
if (s2 !== peg$FAILED) {
|
|
5196
|
-
peg$savedPos = s0;
|
|
5197
|
-
s0 = peg$f2(s1, s2);
|
|
5198
|
-
}
|
|
5199
|
-
else {
|
|
5200
|
-
peg$currPos = s0;
|
|
5201
|
-
s0 = peg$FAILED;
|
|
5202
|
-
}
|
|
5203
|
-
}
|
|
5204
|
-
else {
|
|
5205
|
-
peg$currPos = s0;
|
|
5206
|
-
s0 = peg$FAILED;
|
|
5207
|
-
}
|
|
5208
|
-
if (s0 === peg$FAILED) {
|
|
5209
|
-
s0 = peg$parseCompoundJoinComparator();
|
|
5210
|
-
}
|
|
5211
|
-
return s0;
|
|
5212
|
-
}
|
|
5213
|
-
function peg$parseCompoundJoinComparator() {
|
|
5214
|
-
let s0, s1, s2, s3, s4;
|
|
5215
|
-
s0 = peg$currPos;
|
|
5216
|
-
s1 = peg$parseComparator();
|
|
5217
|
-
if (s1 !== peg$FAILED) {
|
|
5218
|
-
s2 = peg$parsebracket();
|
|
5219
|
-
if (s2 !== peg$FAILED) {
|
|
5220
|
-
s3 = peg$parseOpenFormula();
|
|
5221
|
-
if (s3 !== peg$FAILED) {
|
|
5222
|
-
s4 = peg$parsebracket();
|
|
5223
|
-
if (s4 !== peg$FAILED) {
|
|
5224
|
-
peg$savedPos = s0;
|
|
5225
|
-
s0 = peg$f3(s1, s3);
|
|
5226
|
-
}
|
|
5227
|
-
else {
|
|
5228
|
-
peg$currPos = s0;
|
|
5229
|
-
s0 = peg$FAILED;
|
|
5230
|
-
}
|
|
5231
|
-
}
|
|
5232
|
-
else {
|
|
5233
|
-
peg$currPos = s0;
|
|
5234
|
-
s0 = peg$FAILED;
|
|
5235
|
-
}
|
|
5236
|
-
}
|
|
5237
|
-
else {
|
|
5238
|
-
peg$currPos = s0;
|
|
5239
|
-
s0 = peg$FAILED;
|
|
5240
|
-
}
|
|
5241
|
-
}
|
|
5242
|
-
else {
|
|
5243
|
-
peg$currPos = s0;
|
|
5244
|
-
s0 = peg$FAILED;
|
|
5245
|
-
}
|
|
5246
|
-
return s0;
|
|
5247
|
-
}
|
|
5248
|
-
function peg$parseOpenEqualityCheck() {
|
|
5249
|
-
let s0, s1, s2, s3, s4, s5;
|
|
5250
|
-
s0 = peg$currPos;
|
|
5251
|
-
s1 = peg$parseFieldRef();
|
|
5252
|
-
if (s1 !== peg$FAILED) {
|
|
5253
|
-
s2 = peg$parse_();
|
|
5254
|
-
if (s2 === peg$FAILED) {
|
|
5255
|
-
s2 = null;
|
|
5256
|
-
}
|
|
5257
|
-
s3 = peg$parseoperator();
|
|
5258
|
-
if (s3 !== peg$FAILED) {
|
|
5259
|
-
s4 = peg$parse_();
|
|
5260
|
-
if (s4 === peg$FAILED) {
|
|
5261
|
-
s4 = null;
|
|
5262
|
-
}
|
|
5263
|
-
s5 = peg$parseValue();
|
|
5264
|
-
if (s5 !== peg$FAILED) {
|
|
5265
|
-
peg$savedPos = s0;
|
|
5266
|
-
s0 = peg$f4(s1, s3, s5);
|
|
5267
|
-
}
|
|
5268
|
-
else {
|
|
5269
|
-
peg$currPos = s0;
|
|
5270
|
-
s0 = peg$FAILED;
|
|
5271
|
-
}
|
|
5272
|
-
}
|
|
5273
|
-
else {
|
|
5274
|
-
peg$currPos = s0;
|
|
5275
|
-
s0 = peg$FAILED;
|
|
5276
|
-
}
|
|
5277
|
-
}
|
|
5278
|
-
else {
|
|
5279
|
-
peg$currPos = s0;
|
|
5280
|
-
s0 = peg$FAILED;
|
|
5281
|
-
}
|
|
5282
|
-
return s0;
|
|
5283
|
-
}
|
|
5284
|
-
function peg$parseComparator() {
|
|
5285
|
-
let s0, s1, s2, s3;
|
|
5286
|
-
s0 = peg$currPos;
|
|
5287
|
-
s1 = peg$parse_();
|
|
5288
|
-
if (s1 === peg$FAILED) {
|
|
5289
|
-
s1 = null;
|
|
5290
|
-
}
|
|
5291
|
-
if (input.substr(peg$currPos, 3) === peg$c0) {
|
|
5292
|
-
s2 = peg$c0;
|
|
5293
|
-
peg$currPos += 3;
|
|
5294
|
-
}
|
|
5295
|
-
else {
|
|
5296
|
-
s2 = peg$FAILED;
|
|
5297
|
-
if (peg$silentFails === 0) {
|
|
5298
|
-
peg$fail(peg$e0);
|
|
5299
|
-
}
|
|
5300
|
-
}
|
|
5301
|
-
if (s2 !== peg$FAILED) {
|
|
5302
|
-
s3 = peg$parse_();
|
|
5303
|
-
if (s3 === peg$FAILED) {
|
|
5304
|
-
s3 = null;
|
|
5305
|
-
}
|
|
5306
|
-
peg$savedPos = s0;
|
|
5307
|
-
s0 = peg$f5(s2);
|
|
5308
|
-
}
|
|
5309
|
-
else {
|
|
5310
|
-
peg$currPos = s0;
|
|
5311
|
-
s0 = peg$FAILED;
|
|
5312
|
-
}
|
|
5313
|
-
if (s0 === peg$FAILED) {
|
|
5314
|
-
s0 = peg$currPos;
|
|
5315
|
-
s1 = peg$parse_();
|
|
5316
|
-
if (s1 === peg$FAILED) {
|
|
5317
|
-
s1 = null;
|
|
5318
|
-
}
|
|
5319
|
-
if (input.substr(peg$currPos, 2) === peg$c1) {
|
|
5320
|
-
s2 = peg$c1;
|
|
5321
|
-
peg$currPos += 2;
|
|
5322
|
-
}
|
|
5323
|
-
else {
|
|
5324
|
-
s2 = peg$FAILED;
|
|
5325
|
-
if (peg$silentFails === 0) {
|
|
5326
|
-
peg$fail(peg$e1);
|
|
5327
|
-
}
|
|
5328
|
-
}
|
|
5329
|
-
if (s2 !== peg$FAILED) {
|
|
5330
|
-
s3 = peg$parse_();
|
|
5331
|
-
if (s3 === peg$FAILED) {
|
|
5332
|
-
s3 = null;
|
|
5333
|
-
}
|
|
5334
|
-
peg$savedPos = s0;
|
|
5335
|
-
s0 = peg$f6(s2);
|
|
5336
|
-
}
|
|
5337
|
-
else {
|
|
5338
|
-
peg$currPos = s0;
|
|
5339
|
-
s0 = peg$FAILED;
|
|
5340
|
-
}
|
|
5341
|
-
}
|
|
5342
|
-
return s0;
|
|
5343
|
-
}
|
|
5344
|
-
function peg$parseWord() {
|
|
5345
|
-
let s0, s1, s2;
|
|
5346
|
-
s0 = peg$currPos;
|
|
5347
|
-
s1 = [];
|
|
5348
|
-
s2 = peg$parseLetter();
|
|
5349
|
-
if (s2 !== peg$FAILED) {
|
|
5350
|
-
while (s2 !== peg$FAILED) {
|
|
5351
|
-
s1.push(s2);
|
|
5352
|
-
s2 = peg$parseLetter();
|
|
5353
|
-
}
|
|
5354
|
-
}
|
|
5355
|
-
else {
|
|
5356
|
-
s1 = peg$FAILED;
|
|
5357
|
-
}
|
|
5358
|
-
if (s1 !== peg$FAILED) {
|
|
5359
|
-
peg$savedPos = s0;
|
|
5360
|
-
s1 = peg$f7(s1);
|
|
5361
|
-
}
|
|
5362
|
-
s0 = s1;
|
|
5363
|
-
return s0;
|
|
5364
|
-
}
|
|
5365
|
-
function peg$parseLetter() {
|
|
5366
|
-
let s0;
|
|
5367
|
-
s0 = input.charAt(peg$currPos);
|
|
5368
|
-
if (peg$r0.test(s0)) {
|
|
5369
|
-
peg$currPos++;
|
|
5370
|
-
}
|
|
5371
|
-
else {
|
|
5372
|
-
s0 = peg$FAILED;
|
|
5373
|
-
if (peg$silentFails === 0) {
|
|
5374
|
-
peg$fail(peg$e2);
|
|
5375
|
-
}
|
|
5376
|
-
}
|
|
5377
|
-
return s0;
|
|
5378
|
-
}
|
|
5379
|
-
function peg$parseValue() {
|
|
5380
|
-
let s0, s1;
|
|
5381
|
-
s0 = peg$parsequotedValue();
|
|
5382
|
-
if (s0 === peg$FAILED) {
|
|
5383
|
-
s0 = peg$currPos;
|
|
5384
|
-
s1 = peg$parseWord();
|
|
5385
|
-
if (s1 !== peg$FAILED) {
|
|
5386
|
-
peg$savedPos = s0;
|
|
5387
|
-
s1 = peg$f8(s1);
|
|
5388
|
-
}
|
|
5389
|
-
s0 = s1;
|
|
5390
|
-
if (s0 === peg$FAILED) {
|
|
5391
|
-
s0 = peg$currPos;
|
|
5392
|
-
s1 = peg$parsenumber();
|
|
5393
|
-
if (s1 !== peg$FAILED) {
|
|
5394
|
-
peg$savedPos = s0;
|
|
5395
|
-
s1 = peg$f9(s1);
|
|
5396
|
-
}
|
|
5397
|
-
s0 = s1;
|
|
5398
|
-
}
|
|
5399
|
-
}
|
|
5400
|
-
return s0;
|
|
5401
|
-
}
|
|
5402
|
-
function peg$parseFieldRef() {
|
|
5403
|
-
let s0;
|
|
5404
|
-
s0 = peg$parseFieldReference();
|
|
5405
|
-
if (s0 === peg$FAILED) {
|
|
5406
|
-
s0 = peg$parseMetadataFieldReference();
|
|
5407
|
-
}
|
|
5408
|
-
return s0;
|
|
5409
|
-
}
|
|
5410
|
-
function peg$parseMetadataFieldReference() {
|
|
5411
|
-
let s0, s1, s2, s3;
|
|
5412
|
-
s0 = peg$currPos;
|
|
5413
|
-
s1 = peg$parseopenSquare();
|
|
5414
|
-
if (s1 !== peg$FAILED) {
|
|
5415
|
-
s2 = peg$parseFieldReference();
|
|
5416
|
-
if (s2 !== peg$FAILED) {
|
|
5417
|
-
s3 = peg$parsecloseSquare();
|
|
5418
|
-
if (s3 !== peg$FAILED) {
|
|
5419
|
-
peg$savedPos = s0;
|
|
5420
|
-
s0 = peg$f10(s1, s2, s3);
|
|
5421
|
-
}
|
|
5422
|
-
else {
|
|
5423
|
-
peg$currPos = s0;
|
|
5424
|
-
s0 = peg$FAILED;
|
|
5425
|
-
}
|
|
5426
|
-
}
|
|
5427
|
-
else {
|
|
5428
|
-
peg$currPos = s0;
|
|
5429
|
-
s0 = peg$FAILED;
|
|
5430
|
-
}
|
|
5431
|
-
}
|
|
5432
|
-
else {
|
|
5433
|
-
peg$currPos = s0;
|
|
5434
|
-
s0 = peg$FAILED;
|
|
5435
|
-
}
|
|
5436
|
-
return s0;
|
|
5437
|
-
}
|
|
5438
|
-
function peg$parseFieldReference() {
|
|
5439
|
-
let s0, s1, s2;
|
|
5440
|
-
s0 = peg$currPos;
|
|
5441
|
-
s1 = [];
|
|
5442
|
-
s2 = input.charAt(peg$currPos);
|
|
5443
|
-
if (peg$r1.test(s2)) {
|
|
5444
|
-
peg$currPos++;
|
|
5445
|
-
}
|
|
5446
|
-
else {
|
|
5447
|
-
s2 = peg$FAILED;
|
|
5448
|
-
if (peg$silentFails === 0) {
|
|
5449
|
-
peg$fail(peg$e3);
|
|
5450
|
-
}
|
|
5451
|
-
}
|
|
5452
|
-
if (s2 !== peg$FAILED) {
|
|
5453
|
-
while (s2 !== peg$FAILED) {
|
|
5454
|
-
s1.push(s2);
|
|
5455
|
-
s2 = input.charAt(peg$currPos);
|
|
5456
|
-
if (peg$r1.test(s2)) {
|
|
5457
|
-
peg$currPos++;
|
|
5458
|
-
}
|
|
5459
|
-
else {
|
|
5460
|
-
s2 = peg$FAILED;
|
|
5461
|
-
if (peg$silentFails === 0) {
|
|
5462
|
-
peg$fail(peg$e3);
|
|
5463
|
-
}
|
|
5464
|
-
}
|
|
5465
|
-
}
|
|
5466
|
-
}
|
|
5467
|
-
else {
|
|
5468
|
-
s1 = peg$FAILED;
|
|
5469
|
-
}
|
|
5470
|
-
if (s1 !== peg$FAILED) {
|
|
5471
|
-
peg$savedPos = s0;
|
|
5472
|
-
s1 = peg$f11(s1);
|
|
5473
|
-
}
|
|
5474
|
-
s0 = s1;
|
|
5475
|
-
return s0;
|
|
5476
|
-
}
|
|
5477
|
-
function peg$parseopenSquare() {
|
|
5478
|
-
let s0;
|
|
5479
|
-
if (input.charCodeAt(peg$currPos) === 91) {
|
|
5480
|
-
s0 = peg$c2;
|
|
5481
|
-
peg$currPos++;
|
|
5482
|
-
}
|
|
5483
|
-
else {
|
|
5484
|
-
s0 = peg$FAILED;
|
|
5485
|
-
if (peg$silentFails === 0) {
|
|
5486
|
-
peg$fail(peg$e4);
|
|
5487
|
-
}
|
|
5488
|
-
}
|
|
5489
|
-
return s0;
|
|
5490
|
-
}
|
|
5491
|
-
function peg$parsecloseSquare() {
|
|
5492
|
-
let s0;
|
|
5493
|
-
if (input.charCodeAt(peg$currPos) === 93) {
|
|
5494
|
-
s0 = peg$c3;
|
|
5495
|
-
peg$currPos++;
|
|
5496
|
-
}
|
|
5497
|
-
else {
|
|
5498
|
-
s0 = peg$FAILED;
|
|
5499
|
-
if (peg$silentFails === 0) {
|
|
5500
|
-
peg$fail(peg$e5);
|
|
5501
|
-
}
|
|
5502
|
-
}
|
|
5503
|
-
return s0;
|
|
5504
|
-
}
|
|
5505
|
-
function peg$parsenumber() {
|
|
5506
|
-
let s0, s1;
|
|
5507
|
-
s0 = [];
|
|
5508
|
-
s1 = input.charAt(peg$currPos);
|
|
5509
|
-
if (peg$r2.test(s1)) {
|
|
5510
|
-
peg$currPos++;
|
|
5511
|
-
}
|
|
5512
|
-
else {
|
|
5513
|
-
s1 = peg$FAILED;
|
|
5514
|
-
if (peg$silentFails === 0) {
|
|
5515
|
-
peg$fail(peg$e6);
|
|
5516
|
-
}
|
|
5517
|
-
}
|
|
5518
|
-
if (s1 !== peg$FAILED) {
|
|
5519
|
-
while (s1 !== peg$FAILED) {
|
|
5520
|
-
s0.push(s1);
|
|
5521
|
-
s1 = input.charAt(peg$currPos);
|
|
5522
|
-
if (peg$r2.test(s1)) {
|
|
5523
|
-
peg$currPos++;
|
|
5524
|
-
}
|
|
5525
|
-
else {
|
|
5526
|
-
s1 = peg$FAILED;
|
|
5527
|
-
if (peg$silentFails === 0) {
|
|
5528
|
-
peg$fail(peg$e6);
|
|
5529
|
-
}
|
|
5530
|
-
}
|
|
5531
|
-
}
|
|
5532
|
-
}
|
|
5533
|
-
else {
|
|
5534
|
-
s0 = peg$FAILED;
|
|
5535
|
-
}
|
|
5536
|
-
return s0;
|
|
5537
|
-
}
|
|
5538
|
-
function peg$parsequotedValue() {
|
|
5539
|
-
let s0, s1, s2, s3;
|
|
5540
|
-
s0 = peg$currPos;
|
|
5541
|
-
if (input.charCodeAt(peg$currPos) === 34) {
|
|
5542
|
-
s1 = peg$c4;
|
|
5543
|
-
peg$currPos++;
|
|
5544
|
-
}
|
|
5545
|
-
else {
|
|
5546
|
-
s1 = peg$FAILED;
|
|
5547
|
-
if (peg$silentFails === 0) {
|
|
5548
|
-
peg$fail(peg$e7);
|
|
5549
|
-
}
|
|
5550
|
-
}
|
|
5551
|
-
if (s1 !== peg$FAILED) {
|
|
5552
|
-
s2 = [];
|
|
5553
|
-
s3 = input.charAt(peg$currPos);
|
|
5554
|
-
if (peg$r3.test(s3)) {
|
|
5555
|
-
peg$currPos++;
|
|
5556
|
-
}
|
|
5557
|
-
else {
|
|
5558
|
-
s3 = peg$FAILED;
|
|
5559
|
-
if (peg$silentFails === 0) {
|
|
5560
|
-
peg$fail(peg$e8);
|
|
5561
|
-
}
|
|
5562
|
-
}
|
|
5563
|
-
while (s3 !== peg$FAILED) {
|
|
5564
|
-
s2.push(s3);
|
|
5565
|
-
s3 = input.charAt(peg$currPos);
|
|
5566
|
-
if (peg$r3.test(s3)) {
|
|
5567
|
-
peg$currPos++;
|
|
5568
|
-
}
|
|
5569
|
-
else {
|
|
5570
|
-
s3 = peg$FAILED;
|
|
5571
|
-
if (peg$silentFails === 0) {
|
|
5572
|
-
peg$fail(peg$e8);
|
|
5573
|
-
}
|
|
5574
|
-
}
|
|
5575
|
-
}
|
|
5576
|
-
if (input.charCodeAt(peg$currPos) === 34) {
|
|
5577
|
-
s3 = peg$c4;
|
|
5578
|
-
peg$currPos++;
|
|
5579
|
-
}
|
|
5580
|
-
else {
|
|
5581
|
-
s3 = peg$FAILED;
|
|
5582
|
-
if (peg$silentFails === 0) {
|
|
5583
|
-
peg$fail(peg$e7);
|
|
5584
|
-
}
|
|
5585
|
-
}
|
|
5586
|
-
if (s3 !== peg$FAILED) {
|
|
5587
|
-
peg$savedPos = s0;
|
|
5588
|
-
s0 = peg$f12(s2);
|
|
5589
|
-
}
|
|
5590
|
-
else {
|
|
5591
|
-
peg$currPos = s0;
|
|
5592
|
-
s0 = peg$FAILED;
|
|
5593
|
-
}
|
|
5594
|
-
}
|
|
5595
|
-
else {
|
|
5596
|
-
peg$currPos = s0;
|
|
5597
|
-
s0 = peg$FAILED;
|
|
5598
|
-
}
|
|
5599
|
-
return s0;
|
|
5600
|
-
}
|
|
5601
|
-
function peg$parsebracket() {
|
|
5602
|
-
let s0, s1, s2, s3;
|
|
5603
|
-
s0 = peg$currPos;
|
|
5604
|
-
s1 = peg$parse_();
|
|
5605
|
-
if (s1 === peg$FAILED) {
|
|
5606
|
-
s1 = null;
|
|
5607
|
-
}
|
|
5608
|
-
s2 = [];
|
|
5609
|
-
if (input.charCodeAt(peg$currPos) === 40) {
|
|
5610
|
-
s3 = peg$c5;
|
|
5611
|
-
peg$currPos++;
|
|
5612
|
-
}
|
|
5613
|
-
else {
|
|
5614
|
-
s3 = peg$FAILED;
|
|
5615
|
-
if (peg$silentFails === 0) {
|
|
5616
|
-
peg$fail(peg$e9);
|
|
5617
|
-
}
|
|
5618
|
-
}
|
|
5619
|
-
if (s3 !== peg$FAILED) {
|
|
5620
|
-
while (s3 !== peg$FAILED) {
|
|
5621
|
-
s2.push(s3);
|
|
5622
|
-
if (input.charCodeAt(peg$currPos) === 40) {
|
|
5623
|
-
s3 = peg$c5;
|
|
5624
|
-
peg$currPos++;
|
|
5625
|
-
}
|
|
5626
|
-
else {
|
|
5627
|
-
s3 = peg$FAILED;
|
|
5628
|
-
if (peg$silentFails === 0) {
|
|
5629
|
-
peg$fail(peg$e9);
|
|
5630
|
-
}
|
|
5631
|
-
}
|
|
5632
|
-
}
|
|
5633
|
-
}
|
|
5634
|
-
else {
|
|
5635
|
-
s2 = peg$FAILED;
|
|
5636
|
-
}
|
|
5637
|
-
if (s2 !== peg$FAILED) {
|
|
5638
|
-
s3 = peg$parse_();
|
|
5639
|
-
if (s3 === peg$FAILED) {
|
|
5640
|
-
s3 = null;
|
|
5641
|
-
}
|
|
5642
|
-
s1 = [s1, s2, s3];
|
|
5643
|
-
s0 = s1;
|
|
5644
|
-
}
|
|
5645
|
-
else {
|
|
5646
|
-
peg$currPos = s0;
|
|
5647
|
-
s0 = peg$FAILED;
|
|
5648
|
-
}
|
|
5649
|
-
if (s0 === peg$FAILED) {
|
|
5650
|
-
s0 = peg$currPos;
|
|
5651
|
-
s1 = peg$parse_();
|
|
5652
|
-
if (s1 === peg$FAILED) {
|
|
5653
|
-
s1 = null;
|
|
5654
|
-
}
|
|
5655
|
-
s2 = [];
|
|
5656
|
-
if (input.charCodeAt(peg$currPos) === 41) {
|
|
5657
|
-
s3 = peg$c6;
|
|
5658
|
-
peg$currPos++;
|
|
5659
|
-
}
|
|
5660
|
-
else {
|
|
5661
|
-
s3 = peg$FAILED;
|
|
5662
|
-
if (peg$silentFails === 0) {
|
|
5663
|
-
peg$fail(peg$e10);
|
|
5664
|
-
}
|
|
5665
|
-
}
|
|
5666
|
-
if (s3 !== peg$FAILED) {
|
|
5667
|
-
while (s3 !== peg$FAILED) {
|
|
5668
|
-
s2.push(s3);
|
|
5669
|
-
if (input.charCodeAt(peg$currPos) === 41) {
|
|
5670
|
-
s3 = peg$c6;
|
|
5671
|
-
peg$currPos++;
|
|
5672
|
-
}
|
|
5673
|
-
else {
|
|
5674
|
-
s3 = peg$FAILED;
|
|
5675
|
-
if (peg$silentFails === 0) {
|
|
5676
|
-
peg$fail(peg$e10);
|
|
5677
|
-
}
|
|
5678
|
-
}
|
|
5679
|
-
}
|
|
5680
|
-
}
|
|
5681
|
-
else {
|
|
5682
|
-
s2 = peg$FAILED;
|
|
5683
|
-
}
|
|
5684
|
-
if (s2 !== peg$FAILED) {
|
|
5685
|
-
s3 = peg$parse_();
|
|
5686
|
-
if (s3 === peg$FAILED) {
|
|
5687
|
-
s3 = null;
|
|
5688
|
-
}
|
|
5689
|
-
s1 = [s1, s2, s3];
|
|
5690
|
-
s0 = s1;
|
|
5691
|
-
}
|
|
5692
|
-
else {
|
|
5693
|
-
peg$currPos = s0;
|
|
5694
|
-
s0 = peg$FAILED;
|
|
5695
|
-
}
|
|
5696
|
-
}
|
|
5697
|
-
return s0;
|
|
5698
|
-
}
|
|
5699
|
-
function peg$parseoperator() {
|
|
5700
|
-
let s0;
|
|
5701
|
-
if (input.charCodeAt(peg$currPos) === 61) {
|
|
5702
|
-
s0 = peg$c7;
|
|
5703
|
-
peg$currPos++;
|
|
5704
|
-
}
|
|
5705
|
-
else {
|
|
5706
|
-
s0 = peg$FAILED;
|
|
5707
|
-
if (peg$silentFails === 0) {
|
|
5708
|
-
peg$fail(peg$e11);
|
|
5709
|
-
}
|
|
5710
|
-
}
|
|
5711
|
-
if (s0 === peg$FAILED) {
|
|
5712
|
-
if (input.substr(peg$currPos, 2) === peg$c8) {
|
|
5713
|
-
s0 = peg$c8;
|
|
5714
|
-
peg$currPos += 2;
|
|
5715
|
-
}
|
|
5716
|
-
else {
|
|
5717
|
-
s0 = peg$FAILED;
|
|
5718
|
-
if (peg$silentFails === 0) {
|
|
5719
|
-
peg$fail(peg$e12);
|
|
5720
|
-
}
|
|
5721
|
-
}
|
|
5722
|
-
if (s0 === peg$FAILED) {
|
|
5723
|
-
if (input.substr(peg$currPos, 8) === peg$c9) {
|
|
5724
|
-
s0 = peg$c9;
|
|
5725
|
-
peg$currPos += 8;
|
|
5726
|
-
}
|
|
5727
|
-
else {
|
|
5728
|
-
s0 = peg$FAILED;
|
|
5729
|
-
if (peg$silentFails === 0) {
|
|
5730
|
-
peg$fail(peg$e13);
|
|
5731
|
-
}
|
|
5732
|
-
}
|
|
5733
|
-
}
|
|
5734
|
-
}
|
|
5735
|
-
return s0;
|
|
5736
|
-
}
|
|
5737
|
-
function peg$parsews() {
|
|
5738
|
-
let s0, s1;
|
|
5739
|
-
peg$silentFails++;
|
|
5740
|
-
s0 = input.charAt(peg$currPos);
|
|
5741
|
-
if (peg$r4.test(s0)) {
|
|
5742
|
-
peg$currPos++;
|
|
5743
|
-
}
|
|
5744
|
-
else {
|
|
5745
|
-
s0 = peg$FAILED;
|
|
5746
|
-
if (peg$silentFails === 0) {
|
|
5747
|
-
peg$fail(peg$e15);
|
|
5748
|
-
}
|
|
5749
|
-
}
|
|
5750
|
-
peg$silentFails--;
|
|
5751
|
-
if (s0 === peg$FAILED) {
|
|
5752
|
-
s1 = peg$FAILED;
|
|
5753
|
-
if (peg$silentFails === 0) {
|
|
5754
|
-
peg$fail(peg$e14);
|
|
5755
|
-
}
|
|
5756
|
-
}
|
|
5757
|
-
return s0;
|
|
5758
|
-
}
|
|
5759
|
-
function peg$parse_() {
|
|
5760
|
-
let s0, s1;
|
|
5761
|
-
peg$silentFails++;
|
|
5762
|
-
s0 = [];
|
|
5763
|
-
s1 = peg$parsews();
|
|
5764
|
-
if (s1 !== peg$FAILED) {
|
|
5765
|
-
while (s1 !== peg$FAILED) {
|
|
5766
|
-
s0.push(s1);
|
|
5767
|
-
s1 = peg$parsews();
|
|
5768
|
-
}
|
|
5769
|
-
}
|
|
5770
|
-
else {
|
|
5771
|
-
s0 = peg$FAILED;
|
|
5772
|
-
}
|
|
5773
|
-
peg$silentFails--;
|
|
5774
|
-
if (s0 === peg$FAILED) {
|
|
5775
|
-
s1 = peg$FAILED;
|
|
5776
|
-
if (peg$silentFails === 0) {
|
|
5777
|
-
peg$fail(peg$e16);
|
|
5778
|
-
}
|
|
5779
|
-
}
|
|
5780
|
-
return s0;
|
|
5781
|
-
}
|
|
4801
|
+
const conditionSource = `{
|
|
5782
4802
|
function flat(arr, depth = 1) {
|
|
5783
|
-
|
|
5784
|
-
|
|
5785
|
-
|
|
5786
|
-
|
|
5787
|
-
|
|
5788
|
-
|
|
5789
|
-
|
|
5790
|
-
|
|
5791
|
-
|
|
5792
|
-
|
|
5793
|
-
|
|
5794
|
-
const peg$success = (peg$result !== peg$FAILED && peg$currPos === input.length);
|
|
5795
|
-
function peg$throw() {
|
|
5796
|
-
if (peg$result !== peg$FAILED && peg$currPos < input.length) {
|
|
5797
|
-
peg$fail(peg$endExpectation());
|
|
5798
|
-
}
|
|
5799
|
-
throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? peg$getUnicode(peg$maxFailPos) : null, peg$maxFailPos < input.length
|
|
5800
|
-
? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
|
|
5801
|
-
: peg$computeLocation(peg$maxFailPos, peg$maxFailPos));
|
|
5802
|
-
}
|
|
5803
|
-
if (options.peg$library) {
|
|
5804
|
-
return /** @type {any} */ ({
|
|
5805
|
-
peg$result,
|
|
5806
|
-
peg$currPos,
|
|
5807
|
-
peg$FAILED,
|
|
5808
|
-
peg$maxFailExpected,
|
|
5809
|
-
peg$maxFailPos,
|
|
5810
|
-
peg$success,
|
|
5811
|
-
peg$throw: peg$success ? undefined : peg$throw,
|
|
5812
|
-
});
|
|
5813
|
-
}
|
|
5814
|
-
if (peg$success) {
|
|
5815
|
-
return peg$result;
|
|
5816
|
-
}
|
|
5817
|
-
else {
|
|
5818
|
-
peg$throw();
|
|
4803
|
+
var flatten = function (arr, depth = 1) {
|
|
4804
|
+
if (depth) return arr;
|
|
4805
|
+
|
|
4806
|
+
// Otherwise, concatenate into the parent array
|
|
4807
|
+
return arr.reduce(function (acc, val) {
|
|
4808
|
+
return acc.concat(Array.isArray(val) ? flatten(val, depth - 1) : val);
|
|
4809
|
+
}, []);
|
|
4810
|
+
|
|
4811
|
+
};
|
|
4812
|
+
|
|
4813
|
+
return flatten(arr, depth - 1);
|
|
5819
4814
|
}
|
|
5820
|
-
}
|
|
5821
|
-
|
|
5822
|
-
|
|
5823
|
-
|
|
5824
|
-
|
|
4815
|
+
}
|
|
4816
|
+
|
|
4817
|
+
Start
|
|
4818
|
+
= Formula
|
|
4819
|
+
|
|
4820
|
+
Formula
|
|
4821
|
+
= EnclosedFormula
|
|
4822
|
+
/ OpenFormula
|
|
4823
|
+
|
|
4824
|
+
EnclosedFormula
|
|
4825
|
+
= bracket formula:OpenFormula bracket join:(JoinComparator)*
|
|
4826
|
+
{ return flat([ [formula], join[0] ], 1) }
|
|
4827
|
+
|
|
4828
|
+
OpenFormula
|
|
4829
|
+
= eq:OpenEqualityCheck joins:(JoinComparator)*
|
|
4830
|
+
{ return flat([ eq, flat(joins) ]) }
|
|
4831
|
+
|
|
4832
|
+
JoinComparator
|
|
4833
|
+
= comp:Comparator eq:OpenEqualityCheck
|
|
4834
|
+
{ return [comp, eq]; }
|
|
4835
|
+
/ CompoundJoinComparator
|
|
4836
|
+
|
|
4837
|
+
CompoundJoinComparator
|
|
4838
|
+
= comp:Comparator bracket f:OpenFormula bracket
|
|
4839
|
+
{ return [comp, f ] }
|
|
4840
|
+
|
|
4841
|
+
OpenEqualityCheck
|
|
4842
|
+
= fr:FieldRef _? op:operator _? val:Value
|
|
4843
|
+
{ return { fieldReference: fr, comparator: op, value: val } }
|
|
4844
|
+
|
|
4845
|
+
Comparator
|
|
4846
|
+
= _? c:'AND' _?
|
|
4847
|
+
{ return c; }
|
|
4848
|
+
/ _? c:'OR' _?
|
|
4849
|
+
{ return c; }
|
|
4850
|
+
|
|
4851
|
+
Word
|
|
4852
|
+
= l:Letter+
|
|
4853
|
+
{ return l.join(""); }
|
|
4854
|
+
|
|
4855
|
+
Letter
|
|
4856
|
+
= [a-zA-Z]
|
|
4857
|
+
|
|
4858
|
+
Value
|
|
4859
|
+
= v:quotedValue / v:Word
|
|
4860
|
+
{ return v.join("") }
|
|
4861
|
+
/ v:number
|
|
4862
|
+
{ return parseInt(v.join("")) }
|
|
4863
|
+
|
|
4864
|
+
FieldRef
|
|
4865
|
+
= FieldReference / MetadataFieldReference
|
|
4866
|
+
|
|
4867
|
+
MetadataFieldReference
|
|
4868
|
+
= s1:openSquare fr:FieldReference s2:closeSquare
|
|
4869
|
+
{ return s1 + fr + s2 }
|
|
4870
|
+
|
|
4871
|
+
FieldReference
|
|
4872
|
+
= characters:[A-Za-z0-9._-]+ { return characters.join(""); }
|
|
4873
|
+
|
|
4874
|
+
openSquare
|
|
4875
|
+
= "["
|
|
4876
|
+
|
|
4877
|
+
closeSquare
|
|
4878
|
+
= "]"
|
|
4879
|
+
|
|
4880
|
+
number
|
|
4881
|
+
= [0-9]+
|
|
4882
|
+
|
|
4883
|
+
quotedValue
|
|
4884
|
+
= '"'val:[A-Za-z0-9.,* _&()/-]*'"'
|
|
4885
|
+
{ return val.join(""); }
|
|
4886
|
+
|
|
4887
|
+
bracket
|
|
4888
|
+
= (_? "("+ _? / _? ")"+ _? )
|
|
4889
|
+
|
|
4890
|
+
operator
|
|
4891
|
+
= "=" / "!=" / "CONTAINS"
|
|
4892
|
+
|
|
4893
|
+
ws "Whitespace"
|
|
4894
|
+
= [ \t]
|
|
4895
|
+
|
|
4896
|
+
_ "One or more whitespaces"
|
|
4897
|
+
= ws+
|
|
4898
|
+
|
|
4899
|
+
nl "New line"
|
|
4900
|
+
= "\\n"`;
|
|
4901
|
+
var peg = generate(conditionSource);
|
|
5825
4902
|
|
|
5826
4903
|
class ConditionParser {
|
|
5827
4904
|
static logger = new StructuredLoggerService();
|
|
@@ -5835,7 +4912,7 @@ class ConditionParser {
|
|
|
5835
4912
|
return null;
|
|
5836
4913
|
}
|
|
5837
4914
|
condition = condition.replace(/CONTAINS/g, ' CONTAINS');
|
|
5838
|
-
return
|
|
4915
|
+
return peg.parse(condition.trim(), {});
|
|
5839
4916
|
}
|
|
5840
4917
|
/**
|
|
5841
4918
|
* Evaluate the current fields against the conditions
|
|
@@ -9574,31 +8651,33 @@ class CaseAccessUtils {
|
|
|
9574
8651
|
static CTSC_ROLE = 'ctsc';
|
|
9575
8652
|
static CTSC_ROLE_CATEGORY = 'CTSC';
|
|
9576
8653
|
static CTSC_ROLE_NAME = 'ctsc';
|
|
9577
|
-
|
|
8654
|
+
// fallback purely if roleCategories is not available in
|
|
8655
|
+
getMappedRoleCategories(roles = []) {
|
|
9578
8656
|
const roleKeywords = roles.join().split('-').join().split(',');
|
|
9579
|
-
|
|
9580
|
-
|
|
8657
|
+
const roleCategoryList = [];
|
|
8658
|
+
if (this.roleOrCategoryExists(CaseAccessUtils.JUDGE_ROLE, roleKeywords)) {
|
|
8659
|
+
roleCategoryList.push(CaseAccessUtils.JUDGE_ROLE_CATEGORY);
|
|
9581
8660
|
}
|
|
9582
|
-
|
|
9583
|
-
|
|
8661
|
+
if (this.roleOrCategoryExists(CaseAccessUtils.PROFESSIONAL_ROLE, roleKeywords)) {
|
|
8662
|
+
roleCategoryList.push(CaseAccessUtils.PROFESSIONAL_ROLE_CATEGORY);
|
|
9584
8663
|
}
|
|
9585
|
-
|
|
9586
|
-
|
|
8664
|
+
if (this.roleOrCategoryExists(CaseAccessUtils.CITIZEN_ROLE, roleKeywords)) {
|
|
8665
|
+
roleCategoryList.push(CaseAccessUtils.CITIZEN_ROLE_CATEGORY);
|
|
9587
8666
|
}
|
|
9588
|
-
|
|
9589
|
-
|
|
8667
|
+
if (this.roleOrCategoryExists(CaseAccessUtils.ADMIN_ROLE, roleKeywords)) {
|
|
8668
|
+
roleCategoryList.push(CaseAccessUtils.ADMIN_ROLE_CATEGORY);
|
|
9590
8669
|
}
|
|
9591
|
-
|
|
9592
|
-
|
|
8670
|
+
if (this.roleOrCategoryExists(CaseAccessUtils.CTSC_ROLE, roleKeywords)) {
|
|
8671
|
+
roleCategoryList.push(CaseAccessUtils.CTSC_ROLE_CATEGORY);
|
|
9593
8672
|
}
|
|
9594
|
-
|
|
9595
|
-
|
|
8673
|
+
if (this.roleOrCategoryExists(CaseAccessUtils.LEGAL_OPERATIONS_ROLE, roleKeywords)) {
|
|
8674
|
+
roleCategoryList.push(CaseAccessUtils.LEGAL_OPERATIONS_ROLE_CATEGORY);
|
|
9596
8675
|
}
|
|
8676
|
+
return roleCategoryList;
|
|
9597
8677
|
}
|
|
9598
|
-
roleOrCategoryExists(roleKeyword,
|
|
9599
|
-
const categoryExists = roleCategories.indexOf(roleCategory) > -1;
|
|
8678
|
+
roleOrCategoryExists(roleKeyword, roleKeywords) {
|
|
9600
8679
|
const keywordExists = roleKeywords.indexOf(roleKeyword) > -1;
|
|
9601
|
-
return
|
|
8680
|
+
return keywordExists;
|
|
9602
8681
|
}
|
|
9603
8682
|
getAMRoleName(accessType, aMRole) {
|
|
9604
8683
|
let roleName = '';
|
|
@@ -11486,16 +10565,21 @@ class CasesService {
|
|
|
11486
10565
|
const userInfoStr = this.sessionStorageService.getItem('userDetails');
|
|
11487
10566
|
const camUtils = new CaseAccessUtils();
|
|
11488
10567
|
let userInfo;
|
|
11489
|
-
|
|
11490
|
-
|
|
11491
|
-
|
|
11492
|
-
|
|
11493
|
-
|
|
10568
|
+
userInfo = userInfoStr ? JSON.parse(userInfoStr) : null;
|
|
10569
|
+
if (!userInfo) {
|
|
10570
|
+
return throwError(() => new Error('User info not found in session storage'));
|
|
10571
|
+
}
|
|
10572
|
+
// EXUI-4758 - getMappedRoleCategories no longer returns a single string, checks all roles to get the most likely roleCategory
|
|
10573
|
+
// Unsure whether we should be using mapped role categories any more - should trust the roleCategories from userInfo if they exist
|
|
10574
|
+
const roleCategories = userInfo.roleCategories || camUtils.getMappedRoleCategories(userInfo.roles);
|
|
10575
|
+
const roleName = camUtils.getAMRoleName('challenged', roleCategories[0]);
|
|
11494
10576
|
const beginTime = new Date();
|
|
11495
10577
|
const endTime = new Date(new Date().setUTCHours(23, 59, 59, 999));
|
|
11496
10578
|
const id = userInfo.id ? userInfo.id : userInfo.uid;
|
|
11497
10579
|
const isNew = true;
|
|
11498
|
-
const payload = camUtils.getAMPayload(id, id, roleName,
|
|
10580
|
+
const payload = camUtils.getAMPayload(id, id, roleName,
|
|
10581
|
+
// EXUI-4758 - Return first roleCategory as the roleCategory
|
|
10582
|
+
roleCategories[0], 'CHALLENGED', caseId, request, beginTime, endTime, isNew);
|
|
11499
10583
|
return this.http.post(`/api/challenged-access-request`, payload);
|
|
11500
10584
|
}
|
|
11501
10585
|
createSpecificAccessRequest(caseId, sar) {
|
|
@@ -11503,10 +10587,14 @@ class CasesService {
|
|
|
11503
10587
|
const userInfoStr = this.sessionStorageService.getItem('userDetails');
|
|
11504
10588
|
const camUtils = new CaseAccessUtils();
|
|
11505
10589
|
let userInfo;
|
|
11506
|
-
|
|
11507
|
-
|
|
11508
|
-
|
|
11509
|
-
|
|
10590
|
+
userInfo = userInfoStr ? JSON.parse(userInfoStr) : null;
|
|
10591
|
+
if (!userInfo) {
|
|
10592
|
+
return throwError(() => new Error('User info not found in session storage'));
|
|
10593
|
+
}
|
|
10594
|
+
// EXUI-4758 - See above comment
|
|
10595
|
+
const roleCategories = userInfo.roleCategories || camUtils.getMappedRoleCategories(userInfo.roles);
|
|
10596
|
+
// EXUI-4758 - Return first roleCategory as the roleCategory for now
|
|
10597
|
+
const roleCategory = roleCategories[0];
|
|
11510
10598
|
const roleName = camUtils.getAMRoleName('specific', roleCategory);
|
|
11511
10599
|
const id = userInfo.id ? userInfo.id : userInfo.uid;
|
|
11512
10600
|
const payload = camUtils.getAMPayload(null, id, roleName, roleCategory, 'SPECIFIC', caseId, sar, null, null, true);
|