@hmcts/ccd-case-ui-toolkit 7.3.76 → 7.3.77-exui-5016-rc-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.
@@ -17,7 +17,6 @@ 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';
21
20
  import { StateMachine } from '@edium/fsm';
22
21
  import * as i1$3 from '@angular/material/legacy-dialog';
23
22
  import { MAT_LEGACY_DIALOG_DATA, MatLegacyDialogModule } from '@angular/material/legacy-dialog';
@@ -1854,13 +1853,13 @@ function getUserDetails(sessionStorageService) {
1854
1853
  }
1855
1854
  function isInternalUser(sessionStorageService) {
1856
1855
  const userDetails = getUserDetails(sessionStorageService);
1857
- return userDetails && userDetails?.roles
1856
+ return !!userDetails?.roles
1858
1857
  && !(userDetails.roles.includes(PUI_CASE_MANAGER)
1859
1858
  || userDetails.roles.some((role) => role.toLowerCase().includes(JUDGE)));
1860
1859
  }
1861
1860
  function isJudiciaryUser(sessionStorageService) {
1862
1861
  const userDetails = getUserDetails(sessionStorageService);
1863
- return userDetails && userDetails?.roles
1862
+ return !!userDetails?.roles
1864
1863
  && (userDetails.roles.some((role) => role.toLowerCase().includes(JUDGE)));
1865
1864
  }
1866
1865
 
@@ -3563,6 +3562,7 @@ class CaseField {
3563
3562
  acls;
3564
3563
  metadata;
3565
3564
  formatted_value;
3565
+ hmctsServiceId;
3566
3566
  retain_hidden_value;
3567
3567
  wizardProps;
3568
3568
  _value;
@@ -3959,6 +3959,7 @@ class CaseView {
3959
3959
  events;
3960
3960
  metadataFields;
3961
3961
  basicFields;
3962
+ hmctsServiceId;
3962
3963
  case_flag;
3963
3964
  }
3964
3965
  __decorate([
@@ -4433,7 +4434,11 @@ class FieldsUtils {
4433
4434
  caseFieldType.complex_fields.forEach(field => {
4434
4435
  try {
4435
4436
  const isDynamicField = FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_DYNAMIC_LIST_TYPE.indexOf(field.field_type.type) !== -1;
4436
- if (isDynamicField) {
4437
+ const isDynamicMultiSelectField = field.field_type.type === 'DynamicMultiSelectList';
4438
+ if (isDynamicMultiSelectField) {
4439
+ this.setDynamicMultiSelectListDefinition(field, rootCaseField);
4440
+ }
4441
+ else if (isDynamicField) {
4437
4442
  const dynamicListValue = this.getDynamicListValue(rootCaseField.value, field.id);
4438
4443
  if (dynamicListValue) {
4439
4444
  const list_items = dynamicListValue[0].list_items;
@@ -4466,6 +4471,29 @@ class FieldsUtils {
4466
4471
  }
4467
4472
  }
4468
4473
  }
4474
+ static setDynamicMultiSelectListDefinition(field, rootCaseField) {
4475
+ const dynamicListValue = this.getDynamicListValue(rootCaseField.value, field.id);
4476
+ if (dynamicListValue) {
4477
+ const list_items = dynamicListValue.find(data => data?.list_items !== undefined)?.list_items;
4478
+ if (list_items !== undefined) {
4479
+ field.list_items = list_items;
4480
+ field.formatted_value = {
4481
+ ...field.formatted_value,
4482
+ list_items
4483
+ };
4484
+ }
4485
+ if (rootCaseField.field_type.type !== FieldsUtils.SERVER_RESPONSE_FIELD_TYPE_COLLECTION) {
4486
+ const value = dynamicListValue[0]?.value;
4487
+ if (value !== undefined) {
4488
+ field.value = value;
4489
+ field.formatted_value = {
4490
+ ...field.formatted_value,
4491
+ value
4492
+ };
4493
+ }
4494
+ }
4495
+ }
4496
+ }
4469
4497
  static getDynamicListValue(jsonBlock, key) {
4470
4498
  const data = jsonBlock ? this.getNestedFieldValues(jsonBlock, key, []) : [];
4471
4499
  return data.length > 0 ? data : null;
@@ -4796,107 +4824,955 @@ class FieldsUtils {
4796
4824
  type: Injectable
4797
4825
  }], null, null); })();
4798
4826
 
4799
- const conditionSource = `{
4827
+ // @ts-nocheck
4828
+ // This file is generated by npm run generate:condition-parser. Do not edit by hand.
4829
+ // @generated by Peggy 5.1.0.
4830
+ //
4831
+ // https://peggyjs.org/
4832
+ class peg$SyntaxError extends SyntaxError {
4833
+ constructor(message, expected, found, location) {
4834
+ super(message);
4835
+ this.expected = expected;
4836
+ this.found = found;
4837
+ this.location = location;
4838
+ this.name = "SyntaxError";
4839
+ }
4840
+ format(sources) {
4841
+ let str = "Error: " + this.message;
4842
+ if (this.location) {
4843
+ let src = null;
4844
+ const st = sources.find(s => s.source === this.location.source);
4845
+ if (st) {
4846
+ src = st.text.split(/\r\n|\n|\r/g);
4847
+ }
4848
+ const s = this.location.start;
4849
+ const offset_s = (this.location.source && (typeof this.location.source.offset === "function"))
4850
+ ? this.location.source.offset(s)
4851
+ : s;
4852
+ const loc = this.location.source + ":" + offset_s.line + ":" + offset_s.column;
4853
+ if (src) {
4854
+ const e = this.location.end;
4855
+ const filler = "".padEnd(offset_s.line.toString().length, " ");
4856
+ const line = src[s.line - 1];
4857
+ const last = s.line === e.line ? e.column : line.length + 1;
4858
+ const hatLen = (last - s.column) || 1;
4859
+ str += "\n --> " + loc + "\n"
4860
+ + filler + " |\n"
4861
+ + offset_s.line + " | " + line + "\n"
4862
+ + filler + " | " + "".padEnd(s.column - 1, " ")
4863
+ + "".padEnd(hatLen, "^");
4864
+ }
4865
+ else {
4866
+ str += "\n at " + loc;
4867
+ }
4868
+ }
4869
+ return str;
4870
+ }
4871
+ static buildMessage(expected, found) {
4872
+ function hex(ch) {
4873
+ return ch.codePointAt(0).toString(16).toUpperCase();
4874
+ }
4875
+ const nonPrintable = Object.prototype.hasOwnProperty.call(RegExp.prototype, "unicode")
4876
+ ? new RegExp("[\\p{C}\\p{Mn}\\p{Mc}]", "gu")
4877
+ : null;
4878
+ function unicodeEscape(s) {
4879
+ if (nonPrintable) {
4880
+ return s.replace(nonPrintable, ch => "\\u{" + hex(ch) + "}");
4881
+ }
4882
+ return s;
4883
+ }
4884
+ function literalEscape(s) {
4885
+ return unicodeEscape(s
4886
+ .replace(/\\/g, "\\\\")
4887
+ .replace(/"/g, "\\\"")
4888
+ .replace(/\0/g, "\\0")
4889
+ .replace(/\t/g, "\\t")
4890
+ .replace(/\n/g, "\\n")
4891
+ .replace(/\r/g, "\\r")
4892
+ .replace(/[\x00-\x0F]/g, ch => "\\x0" + hex(ch))
4893
+ .replace(/[\x10-\x1F\x7F-\x9F]/g, ch => "\\x" + hex(ch)));
4894
+ }
4895
+ function classEscape(s) {
4896
+ return unicodeEscape(s
4897
+ .replace(/\\/g, "\\\\")
4898
+ .replace(/\]/g, "\\]")
4899
+ .replace(/\^/g, "\\^")
4900
+ .replace(/-/g, "\\-")
4901
+ .replace(/\0/g, "\\0")
4902
+ .replace(/\t/g, "\\t")
4903
+ .replace(/\n/g, "\\n")
4904
+ .replace(/\r/g, "\\r")
4905
+ .replace(/[\x00-\x0F]/g, ch => "\\x0" + hex(ch))
4906
+ .replace(/[\x10-\x1F\x7F-\x9F]/g, ch => "\\x" + hex(ch)));
4907
+ }
4908
+ const DESCRIBE_EXPECTATION_FNS = {
4909
+ literal(expectation) {
4910
+ return "\"" + literalEscape(expectation.text) + "\"";
4911
+ },
4912
+ class(expectation) {
4913
+ const escapedParts = expectation.parts.map(part => (Array.isArray(part)
4914
+ ? classEscape(part[0]) + "-" + classEscape(part[1])
4915
+ : classEscape(part)));
4916
+ return "[" + (expectation.inverted ? "^" : "") + escapedParts.join("") + "]" + (expectation.unicode ? "u" : "");
4917
+ },
4918
+ any() {
4919
+ return "any character";
4920
+ },
4921
+ end() {
4922
+ return "end of input";
4923
+ },
4924
+ other(expectation) {
4925
+ return expectation.description;
4926
+ },
4927
+ };
4928
+ function describeExpectation(expectation) {
4929
+ return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);
4930
+ }
4931
+ function describeExpected(expected) {
4932
+ const descriptions = expected.map(describeExpectation);
4933
+ descriptions.sort();
4934
+ if (descriptions.length > 0) {
4935
+ let j = 1;
4936
+ for (let i = 1; i < descriptions.length; i++) {
4937
+ if (descriptions[i - 1] !== descriptions[i]) {
4938
+ descriptions[j] = descriptions[i];
4939
+ j++;
4940
+ }
4941
+ }
4942
+ descriptions.length = j;
4943
+ }
4944
+ switch (descriptions.length) {
4945
+ case 1:
4946
+ return descriptions[0];
4947
+ case 2:
4948
+ return descriptions[0] + " or " + descriptions[1];
4949
+ default:
4950
+ return descriptions.slice(0, -1).join(", ")
4951
+ + ", or "
4952
+ + descriptions[descriptions.length - 1];
4953
+ }
4954
+ }
4955
+ function describeFound(found) {
4956
+ return found ? "\"" + literalEscape(found) + "\"" : "end of input";
4957
+ }
4958
+ return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";
4959
+ }
4960
+ }
4961
+ function peg$parse(input, options) {
4962
+ options = options !== undefined ? options : {};
4963
+ const peg$FAILED = {};
4964
+ const peg$source = options.grammarSource;
4965
+ const peg$startRuleFunctions = {
4966
+ Start: peg$parseStart,
4967
+ };
4968
+ let peg$startRuleFunction = peg$parseStart;
4969
+ const peg$c0 = "AND";
4970
+ const peg$c1 = "OR";
4971
+ const peg$c2 = "[";
4972
+ const peg$c3 = "]";
4973
+ const peg$c4 = "\"";
4974
+ const peg$c5 = "(";
4975
+ const peg$c6 = ")";
4976
+ const peg$c7 = "=";
4977
+ const peg$c8 = "!=";
4978
+ const peg$c9 = "CONTAINS";
4979
+ const peg$r0 = /^[a-zA-Z]/;
4980
+ const peg$r1 = /^[A-Za-z0-9._\-]/;
4981
+ const peg$r2 = /^[0-9]/;
4982
+ const peg$r3 = /^[A-Za-z0-9.,* _&()\/\-]/;
4983
+ const peg$r4 = /^[ \t]/;
4984
+ const peg$e0 = peg$literalExpectation("AND", false);
4985
+ const peg$e1 = peg$literalExpectation("OR", false);
4986
+ const peg$e2 = peg$classExpectation([["a", "z"], ["A", "Z"]], false, false, false);
4987
+ const peg$e3 = peg$classExpectation([["A", "Z"], ["a", "z"], ["0", "9"], ".", "_", "-"], false, false, false);
4988
+ const peg$e4 = peg$literalExpectation("[", false);
4989
+ const peg$e5 = peg$literalExpectation("]", false);
4990
+ const peg$e6 = peg$classExpectation([["0", "9"]], false, false, false);
4991
+ const peg$e7 = peg$literalExpectation("\"", false);
4992
+ const peg$e8 = peg$classExpectation([["A", "Z"], ["a", "z"], ["0", "9"], ".", ",", "*", " ", "_", "&", "(", ")", "/", "-"], false, false, false);
4993
+ const peg$e9 = peg$literalExpectation("(", false);
4994
+ const peg$e10 = peg$literalExpectation(")", false);
4995
+ const peg$e11 = peg$literalExpectation("=", false);
4996
+ const peg$e12 = peg$literalExpectation("!=", false);
4997
+ const peg$e13 = peg$literalExpectation("CONTAINS", false);
4998
+ const peg$e14 = peg$otherExpectation("Whitespace");
4999
+ const peg$e15 = peg$classExpectation([" ", "\t"], false, false, false);
5000
+ const peg$e16 = peg$otherExpectation("One or more whitespaces");
5001
+ function peg$f0(term, joins) { return [term].concat(flat(joins)); }
5002
+ function peg$f1(formula) { return formula.length === 1 ? formula[0] : formula; }
5003
+ function peg$f2(comp, term) { return [comp, term]; }
5004
+ function peg$f3(fr, op, val) { return { fieldReference: fr, comparator: op, value: val }; }
5005
+ function peg$f4(c) { return c; }
5006
+ function peg$f5(c) { return c; }
5007
+ function peg$f6(l) { return l.join(""); }
5008
+ function peg$f7(v) { return v.join(""); }
5009
+ function peg$f8(v) { return parseInt(v.join("")); }
5010
+ function peg$f9(s1, fr, s2) { return s1 + fr + s2; }
5011
+ function peg$f10(characters) { return characters.join(""); }
5012
+ function peg$f11(val) { return val.join(""); }
5013
+ let peg$currPos = options.peg$currPos | 0;
5014
+ let peg$savedPos = peg$currPos;
5015
+ const peg$posDetailsCache = [{ line: 1, column: 1 }];
5016
+ let peg$maxFailPos = peg$currPos;
5017
+ let peg$maxFailExpected = options.peg$maxFailExpected || [];
5018
+ let peg$silentFails = options.peg$silentFails | 0;
5019
+ let peg$result;
5020
+ if (options.startRule) {
5021
+ if (!(options.startRule in peg$startRuleFunctions)) {
5022
+ throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
5023
+ }
5024
+ peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
5025
+ }
5026
+ function text() {
5027
+ return input.substring(peg$savedPos, peg$currPos);
5028
+ }
5029
+ function offset() {
5030
+ return peg$savedPos;
5031
+ }
5032
+ function range() {
5033
+ return {
5034
+ source: peg$source,
5035
+ start: peg$savedPos,
5036
+ end: peg$currPos,
5037
+ };
5038
+ }
5039
+ function location() {
5040
+ return peg$computeLocation(peg$savedPos, peg$currPos);
5041
+ }
5042
+ function expected(description, location) {
5043
+ location = location !== undefined
5044
+ ? location
5045
+ : peg$computeLocation(peg$savedPos, peg$currPos);
5046
+ throw peg$buildStructuredError([peg$otherExpectation(description)], input.substring(peg$savedPos, peg$currPos), location);
5047
+ }
5048
+ function error(message, location) {
5049
+ location = location !== undefined
5050
+ ? location
5051
+ : peg$computeLocation(peg$savedPos, peg$currPos);
5052
+ throw peg$buildSimpleError(message, location);
5053
+ }
5054
+ function peg$getUnicode(pos = peg$currPos) {
5055
+ const cp = input.codePointAt(pos);
5056
+ if (cp === undefined) {
5057
+ return "";
5058
+ }
5059
+ return String.fromCodePoint(cp);
5060
+ }
5061
+ function peg$literalExpectation(text, ignoreCase) {
5062
+ return { type: "literal", text, ignoreCase };
5063
+ }
5064
+ function peg$classExpectation(parts, inverted, ignoreCase, unicode) {
5065
+ return { type: "class", parts, inverted, ignoreCase, unicode };
5066
+ }
5067
+ function peg$anyExpectation() {
5068
+ return { type: "any" };
5069
+ }
5070
+ function peg$endExpectation() {
5071
+ return { type: "end" };
5072
+ }
5073
+ function peg$otherExpectation(description) {
5074
+ return { type: "other", description };
5075
+ }
5076
+ function peg$computePosDetails(pos) {
5077
+ let details = peg$posDetailsCache[pos];
5078
+ let p;
5079
+ if (details) {
5080
+ return details;
5081
+ }
5082
+ else {
5083
+ if (pos >= peg$posDetailsCache.length) {
5084
+ p = peg$posDetailsCache.length - 1;
5085
+ }
5086
+ else {
5087
+ p = pos;
5088
+ while (!peg$posDetailsCache[--p]) { }
5089
+ }
5090
+ details = peg$posDetailsCache[p];
5091
+ details = {
5092
+ line: details.line,
5093
+ column: details.column,
5094
+ };
5095
+ while (p < pos) {
5096
+ if (input.charCodeAt(p) === 10) {
5097
+ details.line++;
5098
+ details.column = 1;
5099
+ }
5100
+ else {
5101
+ details.column++;
5102
+ }
5103
+ p++;
5104
+ }
5105
+ peg$posDetailsCache[pos] = details;
5106
+ return details;
5107
+ }
5108
+ }
5109
+ function peg$computeLocation(startPos, endPos, offset) {
5110
+ const startPosDetails = peg$computePosDetails(startPos);
5111
+ const endPosDetails = peg$computePosDetails(endPos);
5112
+ const res = {
5113
+ source: peg$source,
5114
+ start: {
5115
+ offset: startPos,
5116
+ line: startPosDetails.line,
5117
+ column: startPosDetails.column,
5118
+ },
5119
+ end: {
5120
+ offset: endPos,
5121
+ line: endPosDetails.line,
5122
+ column: endPosDetails.column,
5123
+ },
5124
+ };
5125
+ if (offset && peg$source && (typeof peg$source.offset === "function")) {
5126
+ res.start = peg$source.offset(res.start);
5127
+ res.end = peg$source.offset(res.end);
5128
+ }
5129
+ return res;
5130
+ }
5131
+ function peg$fail(expected) {
5132
+ if (peg$currPos < peg$maxFailPos) {
5133
+ return;
5134
+ }
5135
+ if (peg$currPos > peg$maxFailPos) {
5136
+ peg$maxFailPos = peg$currPos;
5137
+ peg$maxFailExpected = [];
5138
+ }
5139
+ peg$maxFailExpected.push(expected);
5140
+ }
5141
+ function peg$buildSimpleError(message, location) {
5142
+ return new peg$SyntaxError(message, null, null, location);
5143
+ }
5144
+ function peg$buildStructuredError(expected, found, location) {
5145
+ return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected, found), expected, found, location);
5146
+ }
5147
+ function peg$parseStart() {
5148
+ let s0;
5149
+ s0 = peg$parseFormula();
5150
+ return s0;
5151
+ }
5152
+ function peg$parseFormula() {
5153
+ let s0, s1, s2, s3;
5154
+ s0 = peg$currPos;
5155
+ s1 = peg$parseFormulaTerm();
5156
+ if (s1 !== peg$FAILED) {
5157
+ s2 = [];
5158
+ s3 = peg$parseJoinComparator();
5159
+ while (s3 !== peg$FAILED) {
5160
+ s2.push(s3);
5161
+ s3 = peg$parseJoinComparator();
5162
+ }
5163
+ peg$savedPos = s0;
5164
+ s0 = peg$f0(s1, s2);
5165
+ }
5166
+ else {
5167
+ peg$currPos = s0;
5168
+ s0 = peg$FAILED;
5169
+ }
5170
+ return s0;
5171
+ }
5172
+ function peg$parseFormulaTerm() {
5173
+ let s0;
5174
+ s0 = peg$parseEnclosedFormula();
5175
+ if (s0 === peg$FAILED) {
5176
+ s0 = peg$parseOpenEqualityCheck();
5177
+ }
5178
+ return s0;
5179
+ }
5180
+ function peg$parseEnclosedFormula() {
5181
+ let s0, s1, s2, s3;
5182
+ s0 = peg$currPos;
5183
+ s1 = peg$parseopenBracket();
5184
+ if (s1 !== peg$FAILED) {
5185
+ s2 = peg$parseFormula();
5186
+ if (s2 !== peg$FAILED) {
5187
+ s3 = peg$parsecloseBracket();
5188
+ if (s3 !== peg$FAILED) {
5189
+ peg$savedPos = s0;
5190
+ s0 = peg$f1(s2);
5191
+ }
5192
+ else {
5193
+ peg$currPos = s0;
5194
+ s0 = peg$FAILED;
5195
+ }
5196
+ }
5197
+ else {
5198
+ peg$currPos = s0;
5199
+ s0 = peg$FAILED;
5200
+ }
5201
+ }
5202
+ else {
5203
+ peg$currPos = s0;
5204
+ s0 = peg$FAILED;
5205
+ }
5206
+ return s0;
5207
+ }
5208
+ function peg$parseJoinComparator() {
5209
+ let s0, s1, s2;
5210
+ s0 = peg$currPos;
5211
+ s1 = peg$parseComparator();
5212
+ if (s1 !== peg$FAILED) {
5213
+ s2 = peg$parseFormulaTerm();
5214
+ if (s2 !== peg$FAILED) {
5215
+ peg$savedPos = s0;
5216
+ s0 = peg$f2(s1, s2);
5217
+ }
5218
+ else {
5219
+ peg$currPos = s0;
5220
+ s0 = peg$FAILED;
5221
+ }
5222
+ }
5223
+ else {
5224
+ peg$currPos = s0;
5225
+ s0 = peg$FAILED;
5226
+ }
5227
+ return s0;
5228
+ }
5229
+ function peg$parseOpenEqualityCheck() {
5230
+ let s0, s1, s2, s3, s4, s5;
5231
+ s0 = peg$currPos;
5232
+ s1 = peg$parseFieldRef();
5233
+ if (s1 !== peg$FAILED) {
5234
+ s2 = peg$parse_();
5235
+ if (s2 === peg$FAILED) {
5236
+ s2 = null;
5237
+ }
5238
+ s3 = peg$parseoperator();
5239
+ if (s3 !== peg$FAILED) {
5240
+ s4 = peg$parse_();
5241
+ if (s4 === peg$FAILED) {
5242
+ s4 = null;
5243
+ }
5244
+ s5 = peg$parseValue();
5245
+ if (s5 !== peg$FAILED) {
5246
+ peg$savedPos = s0;
5247
+ s0 = peg$f3(s1, s3, s5);
5248
+ }
5249
+ else {
5250
+ peg$currPos = s0;
5251
+ s0 = peg$FAILED;
5252
+ }
5253
+ }
5254
+ else {
5255
+ peg$currPos = s0;
5256
+ s0 = peg$FAILED;
5257
+ }
5258
+ }
5259
+ else {
5260
+ peg$currPos = s0;
5261
+ s0 = peg$FAILED;
5262
+ }
5263
+ return s0;
5264
+ }
5265
+ function peg$parseComparator() {
5266
+ let s0, s1, s2, s3;
5267
+ s0 = peg$currPos;
5268
+ s1 = peg$parse_();
5269
+ if (s1 === peg$FAILED) {
5270
+ s1 = null;
5271
+ }
5272
+ if (input.substr(peg$currPos, 3) === peg$c0) {
5273
+ s2 = peg$c0;
5274
+ peg$currPos += 3;
5275
+ }
5276
+ else {
5277
+ s2 = peg$FAILED;
5278
+ if (peg$silentFails === 0) {
5279
+ peg$fail(peg$e0);
5280
+ }
5281
+ }
5282
+ if (s2 !== peg$FAILED) {
5283
+ s3 = peg$parse_();
5284
+ if (s3 === peg$FAILED) {
5285
+ s3 = null;
5286
+ }
5287
+ peg$savedPos = s0;
5288
+ s0 = peg$f4(s2);
5289
+ }
5290
+ else {
5291
+ peg$currPos = s0;
5292
+ s0 = peg$FAILED;
5293
+ }
5294
+ if (s0 === peg$FAILED) {
5295
+ s0 = peg$currPos;
5296
+ s1 = peg$parse_();
5297
+ if (s1 === peg$FAILED) {
5298
+ s1 = null;
5299
+ }
5300
+ if (input.substr(peg$currPos, 2) === peg$c1) {
5301
+ s2 = peg$c1;
5302
+ peg$currPos += 2;
5303
+ }
5304
+ else {
5305
+ s2 = peg$FAILED;
5306
+ if (peg$silentFails === 0) {
5307
+ peg$fail(peg$e1);
5308
+ }
5309
+ }
5310
+ if (s2 !== peg$FAILED) {
5311
+ s3 = peg$parse_();
5312
+ if (s3 === peg$FAILED) {
5313
+ s3 = null;
5314
+ }
5315
+ peg$savedPos = s0;
5316
+ s0 = peg$f5(s2);
5317
+ }
5318
+ else {
5319
+ peg$currPos = s0;
5320
+ s0 = peg$FAILED;
5321
+ }
5322
+ }
5323
+ return s0;
5324
+ }
5325
+ function peg$parseWord() {
5326
+ let s0, s1, s2;
5327
+ s0 = peg$currPos;
5328
+ s1 = [];
5329
+ s2 = peg$parseLetter();
5330
+ if (s2 !== peg$FAILED) {
5331
+ while (s2 !== peg$FAILED) {
5332
+ s1.push(s2);
5333
+ s2 = peg$parseLetter();
5334
+ }
5335
+ }
5336
+ else {
5337
+ s1 = peg$FAILED;
5338
+ }
5339
+ if (s1 !== peg$FAILED) {
5340
+ peg$savedPos = s0;
5341
+ s1 = peg$f6(s1);
5342
+ }
5343
+ s0 = s1;
5344
+ return s0;
5345
+ }
5346
+ function peg$parseLetter() {
5347
+ let s0;
5348
+ s0 = input.charAt(peg$currPos);
5349
+ if (peg$r0.test(s0)) {
5350
+ peg$currPos++;
5351
+ }
5352
+ else {
5353
+ s0 = peg$FAILED;
5354
+ if (peg$silentFails === 0) {
5355
+ peg$fail(peg$e2);
5356
+ }
5357
+ }
5358
+ return s0;
5359
+ }
5360
+ function peg$parseValue() {
5361
+ let s0, s1;
5362
+ s0 = peg$parsequotedValue();
5363
+ if (s0 === peg$FAILED) {
5364
+ s0 = peg$currPos;
5365
+ s1 = peg$parseWord();
5366
+ if (s1 !== peg$FAILED) {
5367
+ peg$savedPos = s0;
5368
+ s1 = peg$f7(s1);
5369
+ }
5370
+ s0 = s1;
5371
+ if (s0 === peg$FAILED) {
5372
+ s0 = peg$currPos;
5373
+ s1 = peg$parsenumber();
5374
+ if (s1 !== peg$FAILED) {
5375
+ peg$savedPos = s0;
5376
+ s1 = peg$f8(s1);
5377
+ }
5378
+ s0 = s1;
5379
+ }
5380
+ }
5381
+ return s0;
5382
+ }
5383
+ function peg$parseFieldRef() {
5384
+ let s0;
5385
+ s0 = peg$parseFieldReference();
5386
+ if (s0 === peg$FAILED) {
5387
+ s0 = peg$parseMetadataFieldReference();
5388
+ }
5389
+ return s0;
5390
+ }
5391
+ function peg$parseMetadataFieldReference() {
5392
+ let s0, s1, s2, s3;
5393
+ s0 = peg$currPos;
5394
+ s1 = peg$parseopenSquare();
5395
+ if (s1 !== peg$FAILED) {
5396
+ s2 = peg$parseFieldReference();
5397
+ if (s2 !== peg$FAILED) {
5398
+ s3 = peg$parsecloseSquare();
5399
+ if (s3 !== peg$FAILED) {
5400
+ peg$savedPos = s0;
5401
+ s0 = peg$f9(s1, s2, s3);
5402
+ }
5403
+ else {
5404
+ peg$currPos = s0;
5405
+ s0 = peg$FAILED;
5406
+ }
5407
+ }
5408
+ else {
5409
+ peg$currPos = s0;
5410
+ s0 = peg$FAILED;
5411
+ }
5412
+ }
5413
+ else {
5414
+ peg$currPos = s0;
5415
+ s0 = peg$FAILED;
5416
+ }
5417
+ return s0;
5418
+ }
5419
+ function peg$parseFieldReference() {
5420
+ let s0, s1, s2;
5421
+ s0 = peg$currPos;
5422
+ s1 = [];
5423
+ s2 = input.charAt(peg$currPos);
5424
+ if (peg$r1.test(s2)) {
5425
+ peg$currPos++;
5426
+ }
5427
+ else {
5428
+ s2 = peg$FAILED;
5429
+ if (peg$silentFails === 0) {
5430
+ peg$fail(peg$e3);
5431
+ }
5432
+ }
5433
+ if (s2 !== peg$FAILED) {
5434
+ while (s2 !== peg$FAILED) {
5435
+ s1.push(s2);
5436
+ s2 = input.charAt(peg$currPos);
5437
+ if (peg$r1.test(s2)) {
5438
+ peg$currPos++;
5439
+ }
5440
+ else {
5441
+ s2 = peg$FAILED;
5442
+ if (peg$silentFails === 0) {
5443
+ peg$fail(peg$e3);
5444
+ }
5445
+ }
5446
+ }
5447
+ }
5448
+ else {
5449
+ s1 = peg$FAILED;
5450
+ }
5451
+ if (s1 !== peg$FAILED) {
5452
+ peg$savedPos = s0;
5453
+ s1 = peg$f10(s1);
5454
+ }
5455
+ s0 = s1;
5456
+ return s0;
5457
+ }
5458
+ function peg$parseopenSquare() {
5459
+ let s0;
5460
+ if (input.charCodeAt(peg$currPos) === 91) {
5461
+ s0 = peg$c2;
5462
+ peg$currPos++;
5463
+ }
5464
+ else {
5465
+ s0 = peg$FAILED;
5466
+ if (peg$silentFails === 0) {
5467
+ peg$fail(peg$e4);
5468
+ }
5469
+ }
5470
+ return s0;
5471
+ }
5472
+ function peg$parsecloseSquare() {
5473
+ let s0;
5474
+ if (input.charCodeAt(peg$currPos) === 93) {
5475
+ s0 = peg$c3;
5476
+ peg$currPos++;
5477
+ }
5478
+ else {
5479
+ s0 = peg$FAILED;
5480
+ if (peg$silentFails === 0) {
5481
+ peg$fail(peg$e5);
5482
+ }
5483
+ }
5484
+ return s0;
5485
+ }
5486
+ function peg$parsenumber() {
5487
+ let s0, s1;
5488
+ s0 = [];
5489
+ s1 = input.charAt(peg$currPos);
5490
+ if (peg$r2.test(s1)) {
5491
+ peg$currPos++;
5492
+ }
5493
+ else {
5494
+ s1 = peg$FAILED;
5495
+ if (peg$silentFails === 0) {
5496
+ peg$fail(peg$e6);
5497
+ }
5498
+ }
5499
+ if (s1 !== peg$FAILED) {
5500
+ while (s1 !== peg$FAILED) {
5501
+ s0.push(s1);
5502
+ s1 = input.charAt(peg$currPos);
5503
+ if (peg$r2.test(s1)) {
5504
+ peg$currPos++;
5505
+ }
5506
+ else {
5507
+ s1 = peg$FAILED;
5508
+ if (peg$silentFails === 0) {
5509
+ peg$fail(peg$e6);
5510
+ }
5511
+ }
5512
+ }
5513
+ }
5514
+ else {
5515
+ s0 = peg$FAILED;
5516
+ }
5517
+ return s0;
5518
+ }
5519
+ function peg$parsequotedValue() {
5520
+ let s0, s1, s2, s3;
5521
+ s0 = peg$currPos;
5522
+ if (input.charCodeAt(peg$currPos) === 34) {
5523
+ s1 = peg$c4;
5524
+ peg$currPos++;
5525
+ }
5526
+ else {
5527
+ s1 = peg$FAILED;
5528
+ if (peg$silentFails === 0) {
5529
+ peg$fail(peg$e7);
5530
+ }
5531
+ }
5532
+ if (s1 !== peg$FAILED) {
5533
+ s2 = [];
5534
+ s3 = input.charAt(peg$currPos);
5535
+ if (peg$r3.test(s3)) {
5536
+ peg$currPos++;
5537
+ }
5538
+ else {
5539
+ s3 = peg$FAILED;
5540
+ if (peg$silentFails === 0) {
5541
+ peg$fail(peg$e8);
5542
+ }
5543
+ }
5544
+ while (s3 !== peg$FAILED) {
5545
+ s2.push(s3);
5546
+ s3 = input.charAt(peg$currPos);
5547
+ if (peg$r3.test(s3)) {
5548
+ peg$currPos++;
5549
+ }
5550
+ else {
5551
+ s3 = peg$FAILED;
5552
+ if (peg$silentFails === 0) {
5553
+ peg$fail(peg$e8);
5554
+ }
5555
+ }
5556
+ }
5557
+ if (input.charCodeAt(peg$currPos) === 34) {
5558
+ s3 = peg$c4;
5559
+ peg$currPos++;
5560
+ }
5561
+ else {
5562
+ s3 = peg$FAILED;
5563
+ if (peg$silentFails === 0) {
5564
+ peg$fail(peg$e7);
5565
+ }
5566
+ }
5567
+ if (s3 !== peg$FAILED) {
5568
+ peg$savedPos = s0;
5569
+ s0 = peg$f11(s2);
5570
+ }
5571
+ else {
5572
+ peg$currPos = s0;
5573
+ s0 = peg$FAILED;
5574
+ }
5575
+ }
5576
+ else {
5577
+ peg$currPos = s0;
5578
+ s0 = peg$FAILED;
5579
+ }
5580
+ return s0;
5581
+ }
5582
+ function peg$parseopenBracket() {
5583
+ let s0, s1, s2, s3;
5584
+ s0 = peg$currPos;
5585
+ s1 = peg$parse_();
5586
+ if (s1 === peg$FAILED) {
5587
+ s1 = null;
5588
+ }
5589
+ if (input.charCodeAt(peg$currPos) === 40) {
5590
+ s2 = peg$c5;
5591
+ peg$currPos++;
5592
+ }
5593
+ else {
5594
+ s2 = peg$FAILED;
5595
+ if (peg$silentFails === 0) {
5596
+ peg$fail(peg$e9);
5597
+ }
5598
+ }
5599
+ if (s2 !== peg$FAILED) {
5600
+ s3 = peg$parse_();
5601
+ if (s3 === peg$FAILED) {
5602
+ s3 = null;
5603
+ }
5604
+ s1 = [s1, s2, s3];
5605
+ s0 = s1;
5606
+ }
5607
+ else {
5608
+ peg$currPos = s0;
5609
+ s0 = peg$FAILED;
5610
+ }
5611
+ return s0;
5612
+ }
5613
+ function peg$parsecloseBracket() {
5614
+ let s0, s1, s2, s3;
5615
+ s0 = peg$currPos;
5616
+ s1 = peg$parse_();
5617
+ if (s1 === peg$FAILED) {
5618
+ s1 = null;
5619
+ }
5620
+ if (input.charCodeAt(peg$currPos) === 41) {
5621
+ s2 = peg$c6;
5622
+ peg$currPos++;
5623
+ }
5624
+ else {
5625
+ s2 = peg$FAILED;
5626
+ if (peg$silentFails === 0) {
5627
+ peg$fail(peg$e10);
5628
+ }
5629
+ }
5630
+ if (s2 !== peg$FAILED) {
5631
+ s3 = peg$parse_();
5632
+ if (s3 === peg$FAILED) {
5633
+ s3 = null;
5634
+ }
5635
+ s1 = [s1, s2, s3];
5636
+ s0 = s1;
5637
+ }
5638
+ else {
5639
+ peg$currPos = s0;
5640
+ s0 = peg$FAILED;
5641
+ }
5642
+ return s0;
5643
+ }
5644
+ function peg$parseoperator() {
5645
+ let s0;
5646
+ if (input.charCodeAt(peg$currPos) === 61) {
5647
+ s0 = peg$c7;
5648
+ peg$currPos++;
5649
+ }
5650
+ else {
5651
+ s0 = peg$FAILED;
5652
+ if (peg$silentFails === 0) {
5653
+ peg$fail(peg$e11);
5654
+ }
5655
+ }
5656
+ if (s0 === peg$FAILED) {
5657
+ if (input.substr(peg$currPos, 2) === peg$c8) {
5658
+ s0 = peg$c8;
5659
+ peg$currPos += 2;
5660
+ }
5661
+ else {
5662
+ s0 = peg$FAILED;
5663
+ if (peg$silentFails === 0) {
5664
+ peg$fail(peg$e12);
5665
+ }
5666
+ }
5667
+ if (s0 === peg$FAILED) {
5668
+ if (input.substr(peg$currPos, 8) === peg$c9) {
5669
+ s0 = peg$c9;
5670
+ peg$currPos += 8;
5671
+ }
5672
+ else {
5673
+ s0 = peg$FAILED;
5674
+ if (peg$silentFails === 0) {
5675
+ peg$fail(peg$e13);
5676
+ }
5677
+ }
5678
+ }
5679
+ }
5680
+ return s0;
5681
+ }
5682
+ function peg$parsews() {
5683
+ let s0, s1;
5684
+ peg$silentFails++;
5685
+ s0 = input.charAt(peg$currPos);
5686
+ if (peg$r4.test(s0)) {
5687
+ peg$currPos++;
5688
+ }
5689
+ else {
5690
+ s0 = peg$FAILED;
5691
+ if (peg$silentFails === 0) {
5692
+ peg$fail(peg$e15);
5693
+ }
5694
+ }
5695
+ peg$silentFails--;
5696
+ if (s0 === peg$FAILED) {
5697
+ s1 = peg$FAILED;
5698
+ if (peg$silentFails === 0) {
5699
+ peg$fail(peg$e14);
5700
+ }
5701
+ }
5702
+ return s0;
5703
+ }
5704
+ function peg$parse_() {
5705
+ let s0, s1;
5706
+ peg$silentFails++;
5707
+ s0 = [];
5708
+ s1 = peg$parsews();
5709
+ if (s1 !== peg$FAILED) {
5710
+ while (s1 !== peg$FAILED) {
5711
+ s0.push(s1);
5712
+ s1 = peg$parsews();
5713
+ }
5714
+ }
5715
+ else {
5716
+ s0 = peg$FAILED;
5717
+ }
5718
+ peg$silentFails--;
5719
+ if (s0 === peg$FAILED) {
5720
+ s1 = peg$FAILED;
5721
+ if (peg$silentFails === 0) {
5722
+ peg$fail(peg$e16);
5723
+ }
5724
+ }
5725
+ return s0;
5726
+ }
4800
5727
  function flat(arr, depth = 1) {
4801
- var flatten = function (arr, depth = 1) {
4802
- if (depth) return arr;
4803
-
4804
- // Otherwise, concatenate into the parent array
4805
- return arr.reduce(function (acc, val) {
4806
- return acc.concat(Array.isArray(val) ? flatten(val, depth - 1) : val);
4807
- }, []);
4808
-
4809
- };
4810
-
4811
- return flatten(arr, depth - 1);
5728
+ var flatten = function (arr, depth = 1) {
5729
+ if (depth)
5730
+ return arr;
5731
+ // Otherwise, concatenate into the parent array
5732
+ return arr.reduce(function (acc, val) {
5733
+ return acc.concat(Array.isArray(val) ? flatten(val, depth - 1) : val);
5734
+ }, []);
5735
+ };
5736
+ return flatten(arr, depth - 1);
5737
+ }
5738
+ peg$result = peg$startRuleFunction();
5739
+ const peg$success = (peg$result !== peg$FAILED && peg$currPos === input.length);
5740
+ function peg$throw() {
5741
+ if (peg$result !== peg$FAILED && peg$currPos < input.length) {
5742
+ peg$fail(peg$endExpectation());
5743
+ }
5744
+ throw peg$buildStructuredError(peg$maxFailExpected, peg$maxFailPos < input.length ? peg$getUnicode(peg$maxFailPos) : null, peg$maxFailPos < input.length
5745
+ ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
5746
+ : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));
5747
+ }
5748
+ if (options.peg$library) {
5749
+ return /** @type {any} */ ({
5750
+ peg$result,
5751
+ peg$currPos,
5752
+ peg$FAILED,
5753
+ peg$maxFailExpected,
5754
+ peg$maxFailPos,
5755
+ peg$success,
5756
+ peg$throw: peg$success ? undefined : peg$throw,
5757
+ });
4812
5758
  }
4813
- }
4814
-
4815
- Start
4816
- = Formula
4817
-
4818
- Formula
4819
- = EnclosedFormula
4820
- / OpenFormula
4821
-
4822
- EnclosedFormula
4823
- = bracket formula:OpenFormula bracket join:(JoinComparator)*
4824
- { return flat([ [formula], join[0] ], 1) }
4825
-
4826
- OpenFormula
4827
- = eq:OpenEqualityCheck joins:(JoinComparator)*
4828
- { return flat([ eq, flat(joins) ]) }
4829
-
4830
- JoinComparator
4831
- = comp:Comparator eq:OpenEqualityCheck
4832
- { return [comp, eq]; }
4833
- / CompoundJoinComparator
4834
-
4835
- CompoundJoinComparator
4836
- = comp:Comparator bracket f:OpenFormula bracket
4837
- { return [comp, f ] }
4838
-
4839
- OpenEqualityCheck
4840
- = fr:FieldRef _? op:operator _? val:Value
4841
- { return { fieldReference: fr, comparator: op, value: val } }
4842
-
4843
- Comparator
4844
- = _? c:'AND' _?
4845
- { return c; }
4846
- / _? c:'OR' _?
4847
- { return c; }
4848
-
4849
- Word
4850
- = l:Letter+
4851
- { return l.join(""); }
4852
-
4853
- Letter
4854
- = [a-zA-Z]
4855
-
4856
- Value
4857
- = v:quotedValue / v:Word
4858
- { return v.join("") }
4859
- / v:number
4860
- { return parseInt(v.join("")) }
4861
-
4862
- FieldRef
4863
- = FieldReference / MetadataFieldReference
4864
-
4865
- MetadataFieldReference
4866
- = s1:openSquare fr:FieldReference s2:closeSquare
4867
- { return s1 + fr + s2 }
4868
-
4869
- FieldReference
4870
- = characters:[A-Za-z0-9._-]+ { return characters.join(""); }
4871
-
4872
- openSquare
4873
- = "["
4874
-
4875
- closeSquare
4876
- = "]"
4877
-
4878
- number
4879
- = [0-9]+
4880
-
4881
- quotedValue
4882
- = '"'val:[A-Za-z0-9.,* _&()/-]*'"'
4883
- { return val.join(""); }
4884
-
4885
- bracket
4886
- = (_? "("+ _? / _? ")"+ _? )
4887
-
4888
- operator
4889
- = "=" / "!=" / "CONTAINS"
4890
-
4891
- ws "Whitespace"
4892
- = [ \t]
4893
-
4894
- _ "One or more whitespaces"
4895
- = ws+
5759
+ if (peg$success) {
5760
+ return peg$result;
5761
+ }
5762
+ else {
5763
+ peg$throw();
5764
+ }
5765
+ }
5766
+ const peg$allowedStartRules = [
5767
+ "Start"
5768
+ ];
4896
5769
 
4897
- nl "New line"
4898
- = "\\n"`;
4899
- var peg = generate(conditionSource);
5770
+ var parser = /*#__PURE__*/Object.freeze({
5771
+ __proto__: null,
5772
+ StartRules: peg$allowedStartRules,
5773
+ SyntaxError: peg$SyntaxError,
5774
+ parse: peg$parse
5775
+ });
4900
5776
 
4901
5777
  class ConditionParser {
4902
5778
  static logger = new StructuredLoggerService();
@@ -4910,7 +5786,7 @@ class ConditionParser {
4910
5786
  return null;
4911
5787
  }
4912
5788
  condition = condition.replace(/CONTAINS/g, ' CONTAINS');
4913
- return peg.parse(condition.trim(), {});
5789
+ return parser.parse(condition.trim(), {});
4914
5790
  }
4915
5791
  /**
4916
5792
  * Evaluate the current fields against the conditions
@@ -6117,8 +6993,12 @@ class FieldTypeSanitiser {
6117
6993
  break;
6118
6994
  case FieldTypeSanitiser.FIELD_TYPE_COLLECTION:
6119
6995
  if (Array.isArray(data[caseField.id])) {
6120
- data[caseField.id].forEach((formElement) => {
6121
- this.sanitiseLists(caseField.field_type.collection_field_type.complex_fields, formElement.value);
6996
+ data[caseField.id].forEach((formElement, index) => {
6997
+ const matchingItem = Array.isArray(caseField.value) && formElement?.id !== undefined
6998
+ ? caseField.value.find((item) => item?.id === formElement.id)
6999
+ : null;
7000
+ const collectionItem = matchingItem || (Array.isArray(caseField.value) ? caseField.value[index] : null);
7001
+ this.sanitiseLists(this.copyCaseFieldsWithCollectionData(caseField.field_type.collection_field_type.complex_fields, collectionItem?.value || collectionItem), formElement.value);
6122
7002
  });
6123
7003
  }
6124
7004
  break;
@@ -6158,6 +7038,25 @@ class FieldTypeSanitiser {
6158
7038
  }
6159
7039
  });
6160
7040
  }
7041
+ copyCaseFieldsWithCollectionData(caseFields, collectionItemData) {
7042
+ return caseFields.map((field) => {
7043
+ const fieldData = collectionItemData?.[field.id];
7044
+ if (field.field_type.type === FieldTypeSanitiser.FIELD_TYPE_COMPLEX) {
7045
+ return {
7046
+ ...field,
7047
+ field_type: {
7048
+ ...field.field_type,
7049
+ complex_fields: this.copyCaseFieldsWithCollectionData(field.field_type.complex_fields, fieldData)
7050
+ }
7051
+ };
7052
+ }
7053
+ return this.isDynamicList(field.field_type.type) &&
7054
+ field.display_context !== 'HIDDEN' &&
7055
+ fieldData?.list_items !== undefined
7056
+ ? { ...field, list_items: fieldData.list_items }
7057
+ : field;
7058
+ });
7059
+ }
6161
7060
  isDynamicList(fieldType) {
6162
7061
  return FieldTypeSanitiser.DYNAMIC_LIST_TYPE.indexOf(fieldType) !== -1;
6163
7062
  }
@@ -7059,6 +7958,7 @@ class LabelSubstitutorModule {
7059
7958
  static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
7060
7959
  FieldsUtils,
7061
7960
  CurrencyPipe,
7961
+ PlaceholderService
7062
7962
  ] });
7063
7963
  }
7064
7964
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LabelSubstitutorModule, [{
@@ -7073,6 +7973,7 @@ class LabelSubstitutorModule {
7073
7973
  providers: [
7074
7974
  FieldsUtils,
7075
7975
  CurrencyPipe,
7976
+ PlaceholderService
7076
7977
  ]
7077
7978
  }]
7078
7979
  }], null, null); })();
@@ -8121,6 +9022,9 @@ class RequestOptionsBuilder {
8121
9022
  * @param value The value to be assessed.
8122
9023
  */
8123
9024
  static includeParam(value) {
9025
+ if (Array.isArray(value)) {
9026
+ return value.some(item => RequestOptionsBuilder.includeParam(item));
9027
+ }
8124
9028
  /* istanbul ignore else */
8125
9029
  if (value) {
8126
9030
  /* istanbul ignore else */
@@ -8131,6 +9035,36 @@ class RequestOptionsBuilder {
8131
9035
  }
8132
9036
  return false;
8133
9037
  }
9038
+ static sanitiseValue(value) {
9039
+ const trimmedValue = value.trim ? value.trim() : value;
9040
+ return trimmedValue.replace ? trimmedValue.replace(/’/i, `'`) : trimmedValue;
9041
+ }
9042
+ static getValueByPath(value, path) {
9043
+ return path.split('.').reduce((currentValue, pathPart) => {
9044
+ if (currentValue === undefined || currentValue === null) {
9045
+ return undefined;
9046
+ }
9047
+ return currentValue[pathPart];
9048
+ }, value);
9049
+ }
9050
+ static getCollectionValues(value, criterion) {
9051
+ if (!Array.isArray(value) ||
9052
+ !criterion.includes('.value.') ||
9053
+ value.some(item => item === null || typeof item !== 'object' || !Object.hasOwn(item, 'value'))) {
9054
+ return value;
9055
+ }
9056
+ const valuePath = criterion.substring(criterion.indexOf('.value.') + 1);
9057
+ return value.map(item => RequestOptionsBuilder.getValueByPath(item, valuePath));
9058
+ }
9059
+ static appendParam(params, key, value) {
9060
+ if (Array.isArray(value)) {
9061
+ const values = value
9062
+ .filter(item => RequestOptionsBuilder.includeParam(item))
9063
+ .map(item => RequestOptionsBuilder.sanitiseValue(item));
9064
+ return params.set(key, `[${values.join(', ')}]`);
9065
+ }
9066
+ return params.set(key, RequestOptionsBuilder.sanitiseValue(value));
9067
+ }
8134
9068
  buildOptions(metaCriteria, caseCriteria, view) {
8135
9069
  // TODO: This should probably be the now built-in URLSearchParams but it
8136
9070
  // requires a bigger refactor and there are bigger fish to fry right now.
@@ -8155,8 +9089,7 @@ class RequestOptionsBuilder {
8155
9089
  /* istanbul ignore else */
8156
9090
  if (RequestOptionsBuilder.includeParam(caseCriteria[criterion])) {
8157
9091
  const key = RequestOptionsBuilder.FIELD_PREFIX + criterion;
8158
- const value = caseCriteria[criterion].trim ? caseCriteria[criterion].trim() : caseCriteria[criterion];
8159
- params = params.set(key, value.replace(/’/i, `'`));
9092
+ params = RequestOptionsBuilder.appendParam(params, key, RequestOptionsBuilder.getCollectionValues(caseCriteria[criterion], criterion));
8160
9093
  }
8161
9094
  }
8162
9095
  }
@@ -8669,31 +9602,32 @@ class CaseAccessUtils {
8669
9602
  static CTSC_ROLE = 'ctsc';
8670
9603
  static CTSC_ROLE_CATEGORY = 'CTSC';
8671
9604
  static CTSC_ROLE_NAME = 'ctsc';
8672
- getMappedRoleCategory(roles = [], roleCategories = []) {
9605
+ // fallback purely if roleCategories is not available in
9606
+ getMappedRoleCategories(roles = []) {
8673
9607
  const roleKeywords = roles.join().split('-').join().split(',');
8674
- if (this.roleOrCategoryExists(CaseAccessUtils.JUDGE_ROLE, CaseAccessUtils.JUDGE_ROLE_CATEGORY, roleKeywords, roleCategories)) {
8675
- return CaseAccessUtils.JUDGE_ROLE_CATEGORY;
9608
+ const roleCategoryList = [];
9609
+ if (this.roleHasKeyword(CaseAccessUtils.JUDGE_ROLE, roleKeywords)) {
9610
+ roleCategoryList.push(CaseAccessUtils.JUDGE_ROLE_CATEGORY);
8676
9611
  }
8677
- else if (this.roleOrCategoryExists(CaseAccessUtils.PROFESSIONAL_ROLE, CaseAccessUtils.PROFESSIONAL_ROLE_CATEGORY, roleKeywords, roleCategories)) {
8678
- return CaseAccessUtils.PROFESSIONAL_ROLE_CATEGORY;
9612
+ if (this.roleHasKeyword(CaseAccessUtils.PROFESSIONAL_ROLE, roleKeywords)) {
9613
+ roleCategoryList.push(CaseAccessUtils.PROFESSIONAL_ROLE_CATEGORY);
8679
9614
  }
8680
- else if (this.roleOrCategoryExists(CaseAccessUtils.CITIZEN_ROLE, CaseAccessUtils.CITIZEN_ROLE_CATEGORY, roleKeywords, roleCategories)) {
8681
- return CaseAccessUtils.CITIZEN_ROLE_CATEGORY;
9615
+ if (this.roleHasKeyword(CaseAccessUtils.CITIZEN_ROLE, roleKeywords)) {
9616
+ roleCategoryList.push(CaseAccessUtils.CITIZEN_ROLE_CATEGORY);
8682
9617
  }
8683
- else if (this.roleOrCategoryExists(CaseAccessUtils.ADMIN_ROLE, CaseAccessUtils.ADMIN_ROLE_CATEGORY, roleKeywords, roleCategories)) {
8684
- return CaseAccessUtils.ADMIN_ROLE_CATEGORY;
9618
+ if (this.roleHasKeyword(CaseAccessUtils.ADMIN_ROLE, roleKeywords)) {
9619
+ roleCategoryList.push(CaseAccessUtils.ADMIN_ROLE_CATEGORY);
8685
9620
  }
8686
- else if (this.roleOrCategoryExists(CaseAccessUtils.CTSC_ROLE, CaseAccessUtils.CTSC_ROLE_CATEGORY, roleKeywords, roleCategories)) {
8687
- return CaseAccessUtils.CTSC_ROLE_CATEGORY;
9621
+ if (this.roleHasKeyword(CaseAccessUtils.CTSC_ROLE, roleKeywords)) {
9622
+ roleCategoryList.push(CaseAccessUtils.CTSC_ROLE_CATEGORY);
8688
9623
  }
8689
- else {
8690
- return CaseAccessUtils.LEGAL_OPERATIONS_ROLE_CATEGORY;
9624
+ if (this.roleHasKeyword(CaseAccessUtils.LEGAL_OPERATIONS_ROLE, roleKeywords)) {
9625
+ roleCategoryList.push(CaseAccessUtils.LEGAL_OPERATIONS_ROLE_CATEGORY);
8691
9626
  }
9627
+ return roleCategoryList;
8692
9628
  }
8693
- roleOrCategoryExists(roleKeyword, roleCategory, roleKeywords, roleCategories) {
8694
- const categoryExists = roleCategories.indexOf(roleCategory) > -1;
8695
- const keywordExists = roleKeywords.indexOf(roleKeyword) > -1;
8696
- return categoryExists ? categoryExists : keywordExists;
9629
+ roleHasKeyword(keyword, roleWords) {
9630
+ return roleWords.includes(keyword);
8697
9631
  }
8698
9632
  getAMRoleName(accessType, aMRole) {
8699
9633
  let roleName = '';
@@ -9123,10 +10057,10 @@ class CaseworkerService {
9123
10057
  this.appConfig = appConfig;
9124
10058
  this.errorService = errorService;
9125
10059
  }
9126
- getCaseworkers(serviceId) {
9127
- const url = `${this.appConfig.getWorkAllocationApiUrl()}/caseworker/getUsersByServiceName`;
10060
+ getUserByIdamId(idamId) {
10061
+ const url = `${this.appConfig.getWorkAllocationApiUrl()}/caseworker/getUserByIdamId`;
9128
10062
  return this.http
9129
- .post(url, { services: [serviceId] })
10063
+ .post(url, idamId)
9130
10064
  .pipe(catchError(error => {
9131
10065
  this.errorService.setError(error);
9132
10066
  return throwError(error);
@@ -9141,19 +10075,22 @@ class CaseworkerService {
9141
10075
 
9142
10076
  class CaseNotifier {
9143
10077
  casesService;
10078
+ caseFlagRefdataService;
9144
10079
  static CASE_NAME = 'caseNameHmctsInternal';
9145
10080
  static CASE_LOCATION = 'caseManagementLocation';
9146
10081
  caseViewSource = new BehaviorSubject(new CaseView());
10082
+ hmctsServiceIdByCaseType = new Map();
9147
10083
  caseView = this.caseViewSource.asObservable();
9148
10084
  cachedCaseView;
9149
- constructor(casesService) {
10085
+ constructor(casesService, caseFlagRefdataService) {
9150
10086
  this.casesService = casesService;
10087
+ this.caseFlagRefdataService = caseFlagRefdataService;
9151
10088
  }
9152
10089
  removeCachedCase() {
9153
10090
  this.cachedCaseView = null;
9154
10091
  }
9155
10092
  announceCase(c) {
9156
- this.caseViewSource.next(c);
10093
+ this.resolveHmctsServiceId(c).subscribe(caseView => this.caseViewSource.next(caseView));
9157
10094
  }
9158
10095
  fetchAndRefresh(cid) {
9159
10096
  return this.casesService
@@ -9161,8 +10098,10 @@ class CaseNotifier {
9161
10098
  .pipe(map(caseView => {
9162
10099
  this.cachedCaseView = plainToClassFromExist(new CaseView(), caseView);
9163
10100
  this.setBasicFields(this.cachedCaseView.tabs);
9164
- this.announceCase(this.cachedCaseView);
9165
10101
  return this.cachedCaseView;
10102
+ }), switchMap(caseView => this.resolveHmctsServiceId(caseView)), map(caseView => {
10103
+ this.announceCase(caseView);
10104
+ return caseView;
9166
10105
  }));
9167
10106
  }
9168
10107
  setBasicFields(tabs) {
@@ -9177,12 +10116,32 @@ class CaseNotifier {
9177
10116
  }
9178
10117
  });
9179
10118
  }
9180
- static ɵfac = function CaseNotifier_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseNotifier)(i0.ɵɵinject(CasesService)); };
10119
+ resolveHmctsServiceId(caseView) {
10120
+ const caseTypeId = caseView?.case_type?.id;
10121
+ if (!caseTypeId || !this.caseFlagRefdataService) {
10122
+ return of(caseView);
10123
+ }
10124
+ if (this.hmctsServiceIdByCaseType.has(caseTypeId)) {
10125
+ caseView.hmctsServiceId = this.hmctsServiceIdByCaseType.get(caseTypeId);
10126
+ return of(caseView);
10127
+ }
10128
+ return this.caseFlagRefdataService.getHmctsServiceDetailsByCaseType(caseTypeId).pipe(map((serviceDetails) => {
10129
+ const hmctsServiceId = serviceDetails?.find((serviceDetail) => !!serviceDetail.service_code)?.service_code;
10130
+ if (hmctsServiceId) {
10131
+ this.hmctsServiceIdByCaseType.set(caseTypeId, hmctsServiceId);
10132
+ caseView.hmctsServiceId = hmctsServiceId;
10133
+ }
10134
+ return caseView;
10135
+ }), catchError(() => of(caseView)));
10136
+ }
10137
+ static ɵfac = function CaseNotifier_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseNotifier)(i0.ɵɵinject(CasesService), i0.ɵɵinject(CaseFlagRefdataService, 8)); };
9181
10138
  static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CaseNotifier, factory: CaseNotifier.ɵfac });
9182
10139
  }
9183
10140
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseNotifier, [{
9184
10141
  type: Injectable
9185
- }], () => [{ type: CasesService }], null); })();
10142
+ }], () => [{ type: CasesService }, { type: CaseFlagRefdataService, decorators: [{
10143
+ type: Optional
10144
+ }] }], null); })();
9186
10145
 
9187
10146
  var Permissions;
9188
10147
  (function (Permissions) {
@@ -9977,8 +10936,10 @@ class CaseEditComponent {
9977
10936
  return form.value.event.id;
9978
10937
  }
9979
10938
  generateCaseEventData({ eventTrigger, form }) {
10939
+ const formData = this.replaceHiddenFormValuesWithOriginalCaseData(form.get('data'), eventTrigger.case_fields);
10940
+ this.formValueService.sanitiseDynamicLists(eventTrigger.case_fields, { data: formData });
9980
10941
  const caseEventData = {
9981
- data: this.replaceEmptyComplexFieldValues(this.formValueService.sanitise(this.replaceHiddenFormValuesWithOriginalCaseData(form.get('data'), eventTrigger.case_fields), this.isCaseFlagSubmission)),
10942
+ data: this.replaceEmptyComplexFieldValues(this.formValueService.sanitise(formData, this.isCaseFlagSubmission)),
9982
10943
  event: form.value.event
9983
10944
  };
9984
10945
  this.formValueService.clearNonCaseFields(caseEventData.data, eventTrigger.case_fields);
@@ -10578,30 +11539,35 @@ class CasesService {
10578
11539
  }
10579
11540
  createChallengedAccessRequest(caseId, request) {
10580
11541
  // Assignment API endpoint
10581
- const userInfoStr = this.sessionStorageService.getItem('userDetails');
10582
11542
  const camUtils = new CaseAccessUtils();
10583
- let userInfo;
10584
- if (userInfoStr) {
10585
- userInfo = JSON.parse(userInfoStr);
10586
- }
10587
- const roleCategory = userInfo.roleCategory || camUtils.getMappedRoleCategory(userInfo.roles, userInfo.roleCategories);
10588
- const roleName = camUtils.getAMRoleName('challenged', roleCategory);
11543
+ let userInfo = getUserDetails(this.sessionStorageService);
11544
+ if (!userInfo) {
11545
+ return throwError(() => new Error('User info not found in session storage'));
11546
+ }
11547
+ // EXUI-4758 - getMappedRoleCategories no longer returns a single string, checks all roles to get the most likely roleCategory
11548
+ // Unsure whether we should be using mapped role categories any more - should trust the roleCategories from userInfo if they exist
11549
+ const roleCategories = userInfo.roleCategories || camUtils.getMappedRoleCategories(userInfo.roles);
11550
+ // If user has no role categories, default to LEGAL_OPERATIONS
11551
+ const roleName = camUtils.getAMRoleName('challenged', roleCategories?.length > 0 ? roleCategories[0] : "LEGAL_OPERATIONS");
10589
11552
  const beginTime = new Date();
10590
11553
  const endTime = new Date(new Date().setUTCHours(23, 59, 59, 999));
10591
11554
  const id = userInfo.id ? userInfo.id : userInfo.uid;
10592
11555
  const isNew = true;
10593
- const payload = camUtils.getAMPayload(id, id, roleName, roleCategory, 'CHALLENGED', caseId, request, beginTime, endTime, isNew);
11556
+ const payload = camUtils.getAMPayload(id, id, roleName,
11557
+ // EXUI-4758 - Return first roleCategory as the roleCategory
11558
+ roleCategories[0], 'CHALLENGED', caseId, request, beginTime, endTime, isNew);
10594
11559
  return this.http.post(`/api/challenged-access-request`, payload);
10595
11560
  }
10596
11561
  createSpecificAccessRequest(caseId, sar) {
10597
- // Assignment API endpoint
10598
- const userInfoStr = this.sessionStorageService.getItem('userDetails');
10599
11562
  const camUtils = new CaseAccessUtils();
10600
- let userInfo;
10601
- if (userInfoStr) {
10602
- userInfo = JSON.parse(userInfoStr);
10603
- }
10604
- const roleCategory = userInfo.roleCategory || camUtils.getMappedRoleCategory(userInfo.roles, userInfo.roleCategories);
11563
+ let userInfo = getUserDetails(this.sessionStorageService);
11564
+ if (!userInfo) {
11565
+ return throwError(() => new Error('User info not found in session storage'));
11566
+ }
11567
+ // EXUI-4758 - See above comment
11568
+ const roleCategories = userInfo.roleCategories || camUtils.getMappedRoleCategories(userInfo.roles);
11569
+ // EXUI-4758 - Return first roleCategory as the roleCategory for now, unless not present, in which case default to LEGAL_OPERATIONS
11570
+ const roleCategory = roleCategories?.length > 0 ? roleCategories[0] : "LEGAL_OPERATIONS";
10605
11571
  const roleName = camUtils.getAMRoleName('specific', roleCategory);
10606
11572
  const id = userInfo.id ? userInfo.id : userInfo.uid;
10607
11573
  const payload = camUtils.getAMPayload(null, id, roleName, roleCategory, 'SPECIFIC', caseId, sar, null, null, true);
@@ -11558,6 +12524,8 @@ class CaseEditPageComponent {
11558
12524
  saveDraftSub;
11559
12525
  caseFormValidationErrorsSub;
11560
12526
  logger = new StructuredLoggerService();
12527
+ fieldsUtils = new FieldsUtils();
12528
+ placeholderService = new PlaceholderService();
11561
12529
  caseEditFormComponents;
11562
12530
  static scrollToTop() {
11563
12531
  window.scrollTo(0, 0);
@@ -11722,7 +12690,7 @@ class CaseEditPageComponent {
11722
12690
  ? group.get(`${casefield.id}_judicialUserControl`)
11723
12691
  : group.get(casefield.id);
11724
12692
  if (fieldElement) {
11725
- const label = casefield.label || 'Field';
12693
+ const label = this.getInterpolatedFieldLabel(casefield);
11726
12694
  let id = casefield.id;
11727
12695
  if (fieldElement['component'] && (fieldElement['component'].parent || sourceFromComplexField)) {
11728
12696
  if (fieldElement['component'].idPrefix.indexOf(`_${id}_`) === -1) {
@@ -11787,7 +12755,7 @@ class CaseEditPageComponent {
11787
12755
  });
11788
12756
  }
11789
12757
  else {
11790
- this.validationErrors.push({ id, message: `Select or fill the required ${casefield.label} field` });
12758
+ this.validationErrors.push({ id, message: `Select or fill the required ${label} field` });
11791
12759
  fieldElement.markAsDirty();
11792
12760
  }
11793
12761
  }
@@ -12144,13 +13112,15 @@ class CaseEditPageComponent {
12144
13112
  return result;
12145
13113
  }
12146
13114
  buildCaseEventData(fromPreviousPage) {
12147
- const formValue = this.editForm.value;
13115
+ // EXUI-3839 - we need to get the raw value of the form because otherwise disabled fields
13116
+ // (e.g. read only fields or fields disabled due to show condition) will not be included
13117
+ const formRawValue = this.editForm.getRawValue();
12148
13118
  // Get the CaseEventData for the current page.
12149
13119
  const pageFields = this.currentPage.case_fields;
12150
- const pageEventData = this.getFilteredCaseEventData(pageFields, formValue, true);
13120
+ const pageEventData = this.getFilteredCaseEventData(pageFields, formRawValue, true);
12151
13121
  // Get the CaseEventData for the entire form (all pages).
12152
13122
  const allCaseFields = this.getCaseFieldsFromCurrentAndPreviousPages();
12153
- const formEventData = this.getFilteredCaseEventData(allCaseFields, formValue, false, true, fromPreviousPage);
13123
+ const formEventData = this.getFilteredCaseEventData(allCaseFields, formRawValue, false, true, fromPreviousPage);
12154
13124
  // Now here's the key thing - the pageEventData has a property called `event_data` and
12155
13125
  // we need THAT to be the value of the entire form: `formEventData.data`.
12156
13126
  pageEventData.event_data = formEventData.data;
@@ -12195,7 +13165,20 @@ class CaseEditPageComponent {
12195
13165
  });
12196
13166
  }
12197
13167
  getRpxTranslatePipeArgs(fieldLabel) {
12198
- return fieldLabel ? ({ FIELDLABEL: fieldLabel }) : null;
13168
+ return fieldLabel ? ({ FIELDLABEL: this.resolveLabelPlaceholders(fieldLabel) }) : null;
13169
+ }
13170
+ getInterpolatedFieldLabel(caseField) {
13171
+ const label = caseField.label || 'Field';
13172
+ return this.resolveLabelPlaceholders(label);
13173
+ }
13174
+ resolveLabelPlaceholders(label) {
13175
+ const dataControl = this.editForm?.controls?.['data'];
13176
+ const formFields = dataControl && typeof dataControl.getRawValue === 'function'
13177
+ ? dataControl.getRawValue()
13178
+ : {};
13179
+ const contextFields = this.caseFields?.length ? this.caseFields : this.eventTrigger?.case_fields || [];
13180
+ const fields = this.fieldsUtils.mergeLabelCaseFieldsAndFormFields(contextFields, formFields);
13181
+ return this.placeholderService.resolvePlaceholders(fields, label);
12199
13182
  }
12200
13183
  onEventCanBeCompleted(eventCanBeCompleted) {
12201
13184
  this.caseEdit.onEventCanBeCompleted({
@@ -12255,7 +13238,7 @@ class CaseEditPageComponent {
12255
13238
  type: ViewChildren,
12256
13239
  args: [CaseEditFormComponent]
12257
13240
  }] }); })();
12258
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditPageComponent, { className: "CaseEditPageComponent", filePath: "lib/shared/components/case-editor/case-edit-page/case-edit-page.component.ts", lineNumber: 37 }); })();
13241
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditPageComponent, { className: "CaseEditPageComponent", filePath: "lib/shared/components/case-editor/case-edit-page/case-edit-page.component.ts", lineNumber: 38 }); })();
12259
13242
 
12260
13243
  class CallbackErrorsContext {
12261
13244
  triggerText;
@@ -12701,12 +13684,9 @@ class CaseEventCompletionTaskReassignedComponent {
12701
13684
  this.jurisdiction = task.jurisdiction;
12702
13685
  this.caseType = task.case_type_id;
12703
13686
  // Current user is a caseworker?
12704
- this.caseworkerSubscription = this.caseworkerService.getCaseworkers(task.jurisdiction).subscribe(result => {
12705
- if (result && result[0].service === task.jurisdiction && result[0].caseworkers) {
12706
- const caseworker = result[0].caseworkers.find(x => x.idamId === task.assignee);
12707
- if (caseworker) {
12708
- this.assignedUserName = `${caseworker.firstName} ${caseworker.lastName}`;
12709
- }
13687
+ this.caseworkerSubscription = this.caseworkerService.getUserByIdamId(task.assignee).subscribe(caseworker => {
13688
+ if (caseworker) {
13689
+ this.assignedUserName = `${caseworker.firstName} ${caseworker.lastName}`;
12710
13690
  }
12711
13691
  if (!this.assignedUserName) {
12712
13692
  // Current user is a judicial user?
@@ -13382,6 +14362,14 @@ var PaletteContext;
13382
14362
  PaletteContext["TABLE_VIEW"] = "TABLE_VIEW";
13383
14363
  })(PaletteContext || (PaletteContext = {}));
13384
14364
 
14365
+ // Identifies whether a read palette value came from persisted case data or the current edit form.
14366
+ // Form-origin DateTime values on Check Your Answers must not be service-local adjusted before submit.
14367
+ var PaletteValueOrigin;
14368
+ (function (PaletteValueOrigin) {
14369
+ PaletteValueOrigin["BACKEND"] = "BACKEND";
14370
+ PaletteValueOrigin["FORM"] = "FORM";
14371
+ })(PaletteValueOrigin || (PaletteValueOrigin = {}));
14372
+
13385
14373
  class AbstractFieldReadComponent extends AbstractFormFieldComponent {
13386
14374
  caseReference;
13387
14375
  topLevelFormGroup;
@@ -13389,13 +14377,14 @@ class AbstractFieldReadComponent extends AbstractFormFieldComponent {
13389
14377
  * Optional. Enable context-aware rendering of fields.
13390
14378
  */
13391
14379
  context = PaletteContext.DEFAULT;
14380
+ valueOrigin = PaletteValueOrigin.BACKEND;
13392
14381
  ngOnInit() {
13393
14382
  if (!this.caseField.metadata) {
13394
14383
  this.registerControl(new FormControl(this.caseField.value));
13395
14384
  }
13396
14385
  }
13397
14386
  static ɵfac = /*@__PURE__*/ (() => { let ɵAbstractFieldReadComponent_BaseFactory; return function AbstractFieldReadComponent_Factory(__ngFactoryType__) { return (ɵAbstractFieldReadComponent_BaseFactory || (ɵAbstractFieldReadComponent_BaseFactory = i0.ɵɵgetInheritedFactory(AbstractFieldReadComponent)))(__ngFactoryType__ || AbstractFieldReadComponent); }; })();
13398
- static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: AbstractFieldReadComponent, inputs: { caseReference: "caseReference", topLevelFormGroup: "topLevelFormGroup", context: "context" }, features: [i0.ɵɵInheritDefinitionFeature] });
14387
+ static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: AbstractFieldReadComponent, inputs: { caseReference: "caseReference", topLevelFormGroup: "topLevelFormGroup", context: "context", valueOrigin: "valueOrigin" }, features: [i0.ɵɵInheritDefinitionFeature] });
13399
14388
  }
13400
14389
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AbstractFieldReadComponent, [{
13401
14390
  type: Directive
@@ -13405,6 +14394,8 @@ class AbstractFieldReadComponent extends AbstractFormFieldComponent {
13405
14394
  type: Input
13406
14395
  }], context: [{
13407
14396
  type: Input
14397
+ }], valueOrigin: [{
14398
+ type: Input
13408
14399
  }] }); })();
13409
14400
 
13410
14401
  const _c0$Y = ["journeyChild"];
@@ -15142,7 +16133,7 @@ function ReadCollectionFieldComponent_table_0_tbody_2_Template(rf, ctx) { if (rf
15142
16133
  } if (rf & 2) {
15143
16134
  const ctx_r0 = i0.ɵɵnextContext(2);
15144
16135
  i0.ɵɵadvance(4);
15145
- i0.ɵɵproperty("caseField", i0.ɵɵpureFunction7(4, _c0$V, ctx_r0.caseField.label, ctx_r0.caseField.label, ctx_r0.caseField.field_type.collection_field_type, ctx_r0.caseField.display_context_parameter, ctx_r0.caseField.value, ctx_r0.caseField.hidden, ctx_r0.caseField))("context", ctx_r0.context)("caseFields", ctx_r0.caseFields)("topLevelFormGroup", ctx_r0.topLevelFormGroup);
16136
+ i0.ɵɵproperty("caseField", i0.ɵɵpureFunction7(5, _c0$V, ctx_r0.caseField.label, ctx_r0.caseField.label, ctx_r0.caseField.field_type.collection_field_type, ctx_r0.caseField.display_context_parameter, ctx_r0.caseField.value, ctx_r0.caseField.hidden, ctx_r0.caseField))("context", ctx_r0.context)("valueOrigin", ctx_r0.valueOrigin)("caseFields", ctx_r0.caseFields)("topLevelFormGroup", ctx_r0.topLevelFormGroup);
15146
16137
  } }
15147
16138
  function ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template(rf, ctx) { if (rf & 1) {
15148
16139
  i0.ɵɵelementStart(0, "tr")(1, "td");
@@ -15153,11 +16144,11 @@ function ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template(rf, ctx) { i
15153
16144
  const i_r3 = ctx.index;
15154
16145
  const ctx_r0 = i0.ɵɵnextContext(3);
15155
16146
  i0.ɵɵadvance(2);
15156
- i0.ɵɵproperty("caseField", i0.ɵɵpureFunction6(5, _c1$m, i_r3 + "", ctx_r0.caseField.label + " " + (i_r3 + 1), ctx_r0.caseField.field_type.collection_field_type, item_r2.value, ctx_r0.caseField.hidden, ctx_r0.caseField))("context", ctx_r0.context)("caseFields", ctx_r0.caseFields)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.buildIdPrefix(i_r3));
16147
+ i0.ɵɵproperty("caseField", i0.ɵɵpureFunction6(6, _c1$m, i_r3 + "", ctx_r0.caseField.label + " " + (i_r3 + 1), ctx_r0.caseField.field_type.collection_field_type, item_r2.value, ctx_r0.caseField.hidden, ctx_r0.caseField))("context", ctx_r0.context)("valueOrigin", ctx_r0.valueOrigin)("caseFields", ctx_r0.caseFields)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.buildIdPrefix(i_r3));
15157
16148
  } }
15158
16149
  function ReadCollectionFieldComponent_table_0_tbody_3_Template(rf, ctx) { if (rf & 1) {
15159
16150
  i0.ɵɵelementStart(0, "tbody");
15160
- i0.ɵɵtemplate(1, ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template, 3, 12, "tr", 6);
16151
+ i0.ɵɵtemplate(1, ReadCollectionFieldComponent_table_0_tbody_3_tr_1_Template, 3, 13, "tr", 6);
15161
16152
  i0.ɵɵelementEnd();
15162
16153
  } if (rf & 2) {
15163
16154
  const ctx_r0 = i0.ɵɵnextContext(2);
@@ -15167,7 +16158,7 @@ function ReadCollectionFieldComponent_table_0_tbody_3_Template(rf, ctx) { if (rf
15167
16158
  function ReadCollectionFieldComponent_table_0_Template(rf, ctx) { if (rf & 1) {
15168
16159
  i0.ɵɵelementStart(0, "table", 1);
15169
16160
  i0.ɵɵelementContainerStart(1, 2);
15170
- i0.ɵɵtemplate(2, ReadCollectionFieldComponent_table_0_tbody_2_Template, 5, 12, "tbody", 3)(3, ReadCollectionFieldComponent_table_0_tbody_3_Template, 2, 1, "tbody", 3);
16161
+ i0.ɵɵtemplate(2, ReadCollectionFieldComponent_table_0_tbody_2_Template, 5, 13, "tbody", 3)(3, ReadCollectionFieldComponent_table_0_tbody_3_Template, 2, 1, "tbody", 3);
15171
16162
  i0.ɵɵelementContainerEnd();
15172
16163
  i0.ɵɵelementEnd();
15173
16164
  } if (rf & 2) {
@@ -15195,7 +16186,7 @@ class ReadCollectionFieldComponent extends AbstractFieldReadComponent {
15195
16186
  return prefix;
15196
16187
  }
15197
16188
  static ɵfac = /*@__PURE__*/ (() => { let ɵReadCollectionFieldComponent_BaseFactory; return function ReadCollectionFieldComponent_Factory(__ngFactoryType__) { return (ɵReadCollectionFieldComponent_BaseFactory || (ɵReadCollectionFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadCollectionFieldComponent)))(__ngFactoryType__ || ReadCollectionFieldComponent); }; })();
15198
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadCollectionFieldComponent, selectors: [["ccd-read-collection-field"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["class", "collection-field-table", "aria-describedby", "collection table", 4, "ngIf"], ["aria-describedby", "collection table", 1, "collection-field-table"], [3, "ngSwitch"], [4, "ngSwitchCase"], ["id", "hiddenHeader", 2, "display", "none"], [3, "caseField", "context", "caseFields", "topLevelFormGroup"], [4, "ngFor", "ngForOf"], [3, "caseField", "context", "caseFields", "topLevelFormGroup", "idPrefix"]], template: function ReadCollectionFieldComponent_Template(rf, ctx) { if (rf & 1) {
16189
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadCollectionFieldComponent, selectors: [["ccd-read-collection-field"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["class", "collection-field-table", "aria-describedby", "collection table", 4, "ngIf"], ["aria-describedby", "collection table", 1, "collection-field-table"], [3, "ngSwitch"], [4, "ngSwitchCase"], ["id", "hiddenHeader", 2, "display", "none"], [3, "caseField", "context", "valueOrigin", "caseFields", "topLevelFormGroup"], [4, "ngFor", "ngForOf"], [3, "caseField", "context", "valueOrigin", "caseFields", "topLevelFormGroup", "idPrefix"]], template: function ReadCollectionFieldComponent_Template(rf, ctx) { if (rf & 1) {
15199
16190
  i0.ɵɵtemplate(0, ReadCollectionFieldComponent_table_0_Template, 4, 3, "table", 0);
15200
16191
  } if (rf & 2) {
15201
16192
  i0.ɵɵproperty("ngIf", ctx.caseField.value && ctx.caseField.value.length);
@@ -15203,7 +16194,7 @@ class ReadCollectionFieldComponent extends AbstractFieldReadComponent {
15203
16194
  }
15204
16195
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadCollectionFieldComponent, [{
15205
16196
  type: Component,
15206
- args: [{ selector: 'ccd-read-collection-field', standalone: false, template: "<table *ngIf=\"caseField.value && caseField.value.length \" class=\"collection-field-table\" aria-describedby=\"collection table\">\n <ng-container [ngSwitch]=\"isDisplayContextParameterAvailable\">\n <tbody *ngSwitchCase=\"true\">\n <tr>\n <th id=\"hiddenHeader\" style=\"display: none;\"></th>\n <td>\n <ccd-field-read\n [caseField]=\"{\n id: caseField.label,\n label: caseField.label,\n field_type: caseField.field_type.collection_field_type,\n display_context_parameter: caseField.display_context_parameter,\n value: caseField.value,\n hidden: caseField.hidden,\n parent: caseField\n }\"\n [context]=\"context\"\n [caseFields]=\"caseFields\"\n [topLevelFormGroup]=\"topLevelFormGroup\">\n </ccd-field-read>\n </td>\n </tr>\n </tbody>\n <tbody *ngSwitchCase=\"false\">\n <tr *ngFor=\"let item of caseField.value; let i = index\">\n <td>\n <ccd-field-read\n [caseField]=\"{\n id: i + '',\n label: caseField.label + ' ' + (i + 1),\n field_type: caseField.field_type.collection_field_type,\n value: item.value,\n hidden: caseField.hidden,\n parent: caseField\n }\"\n [context]=\"context\"\n [caseFields]=\"caseFields\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"buildIdPrefix(i)\">\n </ccd-field-read>\n </td>\n </tr>\n </tbody>\n </ng-container>\n</table>\n", styles: [".collection-field-table tr:first-child>td{padding-top:0}.collection-field-table tr:last-child>td{border-bottom:none}.collection-field-table td.collection-actions{width:1px;white-space:nowrap}.error-spacing{margin-top:10px}.collection-title{height:51px}.float-left{float:left;padding-top:8px}.float-right{float:right}.complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media(min-width:641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}.collection-indicator{border-left:solid 5px #b1b4b6}\n"] }]
16197
+ args: [{ selector: 'ccd-read-collection-field', standalone: false, template: "<table *ngIf=\"caseField.value && caseField.value.length \" class=\"collection-field-table\" aria-describedby=\"collection table\">\n <ng-container [ngSwitch]=\"isDisplayContextParameterAvailable\">\n <tbody *ngSwitchCase=\"true\">\n <tr>\n <th id=\"hiddenHeader\" style=\"display: none;\"></th>\n <td>\n <ccd-field-read\n [caseField]=\"{\n id: caseField.label,\n label: caseField.label,\n field_type: caseField.field_type.collection_field_type,\n display_context_parameter: caseField.display_context_parameter,\n value: caseField.value,\n hidden: caseField.hidden,\n parent: caseField\n }\"\n [context]=\"context\"\n [valueOrigin]=\"valueOrigin\"\n [caseFields]=\"caseFields\"\n [topLevelFormGroup]=\"topLevelFormGroup\">\n </ccd-field-read>\n </td>\n </tr>\n </tbody>\n <tbody *ngSwitchCase=\"false\">\n <tr *ngFor=\"let item of caseField.value; let i = index\">\n <td>\n <ccd-field-read\n [caseField]=\"{\n id: i + '',\n label: caseField.label + ' ' + (i + 1),\n field_type: caseField.field_type.collection_field_type,\n value: item.value,\n hidden: caseField.hidden,\n parent: caseField\n }\"\n [context]=\"context\"\n [valueOrigin]=\"valueOrigin\"\n [caseFields]=\"caseFields\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"buildIdPrefix(i)\">\n </ccd-field-read>\n </td>\n </tr>\n </tbody>\n </ng-container>\n</table>\n", styles: [".collection-field-table tr:first-child>td{padding-top:0}.collection-field-table tr:last-child>td{border-bottom:none}.collection-field-table td.collection-actions{width:1px;white-space:nowrap}.error-spacing{margin-top:10px}.collection-title{height:51px}.float-left{float:left;padding-top:8px}.float-right{float:right}.complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media(min-width:641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}.collection-indicator{border-left:solid 5px #b1b4b6}\n"] }]
15207
16198
  }], null, { caseFields: [{
15208
16199
  type: Input
15209
16200
  }] }); })();
@@ -15730,19 +16721,19 @@ function ReadComplexFieldComponent_ccd_read_complex_field_raw_1_Template(rf, ctx
15730
16721
  i0.ɵɵelement(0, "ccd-read-complex-field-raw", 4);
15731
16722
  } if (rf & 2) {
15732
16723
  const ctx_r0 = i0.ɵɵnextContext();
15733
- i0.ɵɵproperty("caseField", ctx_r0.caseField)("caseFields", ctx_r0.caseFields)("context", ctx_r0.context)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.idPrefix);
16724
+ i0.ɵɵproperty("caseField", ctx_r0.caseField)("caseFields", ctx_r0.caseFields)("context", ctx_r0.context)("valueOrigin", ctx_r0.valueOrigin)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.idPrefix);
15734
16725
  } }
15735
16726
  function ReadComplexFieldComponent_ccd_read_complex_field_collection_table_2_Template(rf, ctx) { if (rf & 1) {
15736
16727
  i0.ɵɵelement(0, "ccd-read-complex-field-collection-table", 5);
15737
16728
  } if (rf & 2) {
15738
16729
  const ctx_r0 = i0.ɵɵnextContext();
15739
- i0.ɵɵproperty("caseField", ctx_r0.caseField)("context", ctx_r0.context)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.idPrefix);
16730
+ i0.ɵɵproperty("caseField", ctx_r0.caseField)("context", ctx_r0.context)("valueOrigin", ctx_r0.valueOrigin)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.idPrefix);
15740
16731
  } }
15741
16732
  function ReadComplexFieldComponent_ccd_read_complex_field_table_3_Template(rf, ctx) { if (rf & 1) {
15742
16733
  i0.ɵɵelement(0, "ccd-read-complex-field-table", 4);
15743
16734
  } if (rf & 2) {
15744
16735
  const ctx_r0 = i0.ɵɵnextContext();
15745
- i0.ɵɵproperty("caseField", ctx_r0.caseField)("caseFields", ctx_r0.caseFields)("context", ctx_r0.context)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.idPrefix);
16736
+ i0.ɵɵproperty("caseField", ctx_r0.caseField)("caseFields", ctx_r0.caseFields)("context", ctx_r0.context)("valueOrigin", ctx_r0.valueOrigin)("topLevelFormGroup", ctx_r0.topLevelFormGroup)("idPrefix", ctx_r0.idPrefix);
15746
16737
  } }
15747
16738
  class ReadComplexFieldComponent extends AbstractFieldReadComponent {
15748
16739
  caseFields = [];
@@ -15776,9 +16767,9 @@ class ReadComplexFieldComponent extends AbstractFieldReadComponent {
15776
16767
  }
15777
16768
  }
15778
16769
  static ɵfac = /*@__PURE__*/ (() => { let ɵReadComplexFieldComponent_BaseFactory; return function ReadComplexFieldComponent_Factory(__ngFactoryType__) { return (ɵReadComplexFieldComponent_BaseFactory || (ɵReadComplexFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadComplexFieldComponent)))(__ngFactoryType__ || ReadComplexFieldComponent); }; })();
15779
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldComponent, selectors: [["ccd-read-complex-field"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 3, consts: [[3, "ngSwitch"], [3, "caseField", "caseFields", "context", "topLevelFormGroup", "idPrefix", 4, "ngSwitchCase"], [3, "caseField", "context", "topLevelFormGroup", "idPrefix", 4, "ngSwitchCase"], [3, "caseField", "caseFields", "context", "topLevelFormGroup", "idPrefix", 4, "ngSwitchDefault"], [3, "caseField", "caseFields", "context", "topLevelFormGroup", "idPrefix"], [3, "caseField", "context", "topLevelFormGroup", "idPrefix"]], template: function ReadComplexFieldComponent_Template(rf, ctx) { if (rf & 1) {
16770
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldComponent, selectors: [["ccd-read-complex-field"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 4, vars: 3, consts: [[3, "ngSwitch"], [3, "caseField", "caseFields", "context", "valueOrigin", "topLevelFormGroup", "idPrefix", 4, "ngSwitchCase"], [3, "caseField", "context", "valueOrigin", "topLevelFormGroup", "idPrefix", 4, "ngSwitchCase"], [3, "caseField", "caseFields", "context", "valueOrigin", "topLevelFormGroup", "idPrefix", 4, "ngSwitchDefault"], [3, "caseField", "caseFields", "context", "valueOrigin", "topLevelFormGroup", "idPrefix"], [3, "caseField", "context", "valueOrigin", "topLevelFormGroup", "idPrefix"]], template: function ReadComplexFieldComponent_Template(rf, ctx) { if (rf & 1) {
15780
16771
  i0.ɵɵelementContainerStart(0, 0);
15781
- i0.ɵɵtemplate(1, ReadComplexFieldComponent_ccd_read_complex_field_raw_1_Template, 1, 5, "ccd-read-complex-field-raw", 1)(2, ReadComplexFieldComponent_ccd_read_complex_field_collection_table_2_Template, 1, 4, "ccd-read-complex-field-collection-table", 2)(3, ReadComplexFieldComponent_ccd_read_complex_field_table_3_Template, 1, 5, "ccd-read-complex-field-table", 3);
16772
+ i0.ɵɵtemplate(1, ReadComplexFieldComponent_ccd_read_complex_field_raw_1_Template, 1, 6, "ccd-read-complex-field-raw", 1)(2, ReadComplexFieldComponent_ccd_read_complex_field_collection_table_2_Template, 1, 5, "ccd-read-complex-field-collection-table", 2)(3, ReadComplexFieldComponent_ccd_read_complex_field_table_3_Template, 1, 6, "ccd-read-complex-field-table", 3);
15782
16773
  i0.ɵɵelementContainerEnd();
15783
16774
  } if (rf & 2) {
15784
16775
  i0.ɵɵproperty("ngSwitch", ctx.context);
@@ -15790,15 +16781,55 @@ class ReadComplexFieldComponent extends AbstractFieldReadComponent {
15790
16781
  }
15791
16782
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadComplexFieldComponent, [{
15792
16783
  type: Component,
15793
- args: [{ selector: 'ccd-read-complex-field', standalone: false, template: "<ng-container [ngSwitch]=\"context\">\n <ccd-read-complex-field-raw\n *ngSwitchCase=\"paletteContext.CHECK_YOUR_ANSWER\"\n [caseField]=\"caseField\"\n [caseFields]=\"caseFields\"\n [context]=\"context\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"idPrefix\"\n ></ccd-read-complex-field-raw>\n <ccd-read-complex-field-collection-table\n *ngSwitchCase=\"paletteContext.TABLE_VIEW\"\n [caseField]=\"caseField\"\n [context]=\"context\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"idPrefix\"\n ></ccd-read-complex-field-collection-table>\n <ccd-read-complex-field-table\n *ngSwitchDefault\n [caseField]=\"caseField\"\n [caseFields]=\"caseFields\"\n [context]=\"context\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"idPrefix\"\n ></ccd-read-complex-field-table>\n</ng-container>\n" }]
16784
+ args: [{ selector: 'ccd-read-complex-field', standalone: false, template: "<ng-container [ngSwitch]=\"context\">\n <ccd-read-complex-field-raw\n *ngSwitchCase=\"paletteContext.CHECK_YOUR_ANSWER\"\n [caseField]=\"caseField\"\n [caseFields]=\"caseFields\"\n [context]=\"context\"\n [valueOrigin]=\"valueOrigin\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"idPrefix\"\n ></ccd-read-complex-field-raw>\n <ccd-read-complex-field-collection-table\n *ngSwitchCase=\"paletteContext.TABLE_VIEW\"\n [caseField]=\"caseField\"\n [context]=\"context\"\n [valueOrigin]=\"valueOrigin\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"idPrefix\"\n ></ccd-read-complex-field-collection-table>\n <ccd-read-complex-field-table\n *ngSwitchDefault\n [caseField]=\"caseField\"\n [caseFields]=\"caseFields\"\n [context]=\"context\"\n [valueOrigin]=\"valueOrigin\"\n [topLevelFormGroup]=\"topLevelFormGroup\"\n [idPrefix]=\"idPrefix\"\n ></ccd-read-complex-field-table>\n</ng-container>\n" }]
15794
16785
  }], null, { caseFields: [{
15795
16786
  type: Input
15796
16787
  }] }); })();
15797
16788
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadComplexFieldComponent, { className: "ReadComplexFieldComponent", filePath: "lib/shared/components/palette/complex/read-complex-field.component.ts", lineNumber: 11 }); })();
15798
16789
 
15799
16790
  class ReadDateFieldComponent extends AbstractFieldReadComponent {
15800
- timeZone = 'utc';
15801
- static ɵfac = /*@__PURE__*/ (() => { let ɵReadDateFieldComponent_BaseFactory; return function ReadDateFieldComponent_Factory(__ngFactoryType__) { return (ɵReadDateFieldComponent_BaseFactory || (ɵReadDateFieldComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadDateFieldComponent)))(__ngFactoryType__ || ReadDateFieldComponent); }; })();
16791
+ caseNotifier;
16792
+ static SERVICES_RENDERED_IN_LOCAL_TIME = ['ABA2', 'ABA6']; // [FR, PROBATE]
16793
+ caseSubscription;
16794
+ caseHmctsServiceId;
16795
+ constructor(caseNotifier) {
16796
+ super();
16797
+ this.caseNotifier = caseNotifier;
16798
+ }
16799
+ ngOnInit() {
16800
+ super.ngOnInit();
16801
+ this.caseSubscription = this.caseNotifier?.caseView.subscribe((caseDetails) => {
16802
+ this.caseHmctsServiceId = caseDetails?.hmctsServiceId;
16803
+ });
16804
+ }
16805
+ ngOnDestroy() {
16806
+ if (this.caseSubscription) {
16807
+ this.caseSubscription.unsubscribe();
16808
+ }
16809
+ }
16810
+ // Most services display DateTime values as received from CCD; only the services listed in SERVICES_RENDERED_IN_LOCAL_TIME need converting to local time.
16811
+ get timeZone() {
16812
+ return this.shouldRenderInLocalTime() ? 'local' : 'utc';
16813
+ }
16814
+ shouldRenderInLocalTime() {
16815
+ return !this.isFormOriginField() &&
16816
+ this.hasExplicitTimeZone() &&
16817
+ ReadDateFieldComponent.SERVICES_RENDERED_IN_LOCAL_TIME.includes(this.getHmctsServiceId());
16818
+ }
16819
+ hasExplicitTimeZone() {
16820
+ return typeof this.caseField?.value === 'string' &&
16821
+ /(Z|[+-]\d{2}:?\d{2})$/i.test(this.caseField.value);
16822
+ }
16823
+ isFormOriginField() {
16824
+ return this.valueOrigin === PaletteValueOrigin.FORM;
16825
+ }
16826
+ getHmctsServiceId() {
16827
+ if (typeof this.caseField?.hmctsServiceId === 'string') {
16828
+ return this.caseField.hmctsServiceId;
16829
+ }
16830
+ return this.caseHmctsServiceId;
16831
+ }
16832
+ static ɵfac = function ReadDateFieldComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || ReadDateFieldComponent)(i0.ɵɵdirectiveInject(CaseNotifier, 8)); };
15802
16833
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadDateFieldComponent, selectors: [["ccd-read-date-field"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 5, consts: [[1, "text-16"]], template: function ReadDateFieldComponent_Template(rf, ctx) { if (rf & 1) {
15803
16834
  i0.ɵɵelementStart(0, "span", 0);
15804
16835
  i0.ɵɵtext(1);
@@ -15806,18 +16837,20 @@ class ReadDateFieldComponent extends AbstractFieldReadComponent {
15806
16837
  i0.ɵɵelementEnd();
15807
16838
  } if (rf & 2) {
15808
16839
  i0.ɵɵadvance();
15809
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind3(2, 1, ctx.caseField.value, "utc", ctx.caseField.dateTimeDisplayFormat));
16840
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind3(2, 1, ctx.caseField.value, ctx.timeZone, ctx.caseField.dateTimeDisplayFormat));
15810
16841
  } }, dependencies: [DatePipe], encapsulation: 2 });
15811
16842
  }
15812
16843
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadDateFieldComponent, [{
15813
16844
  type: Component,
15814
16845
  args: [{
15815
16846
  selector: 'ccd-read-date-field',
15816
- template: `<span class="text-16">{{caseField.value | ccdDate:'utc':caseField.dateTimeDisplayFormat}}</span>`,
16847
+ template: `<span class="text-16">{{caseField.value | ccdDate:timeZone:caseField.dateTimeDisplayFormat}}</span>`,
15817
16848
  standalone: false
15818
16849
  }]
15819
- }], null, null); })();
15820
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadDateFieldComponent, { className: "ReadDateFieldComponent", filePath: "lib/shared/components/palette/date/read-date-field.component.ts", lineNumber: 9 }); })();
16850
+ }], () => [{ type: CaseNotifier, decorators: [{
16851
+ type: Optional
16852
+ }] }], null); })();
16853
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadDateFieldComponent, { className: "ReadDateFieldComponent", filePath: "lib/shared/components/palette/date/read-date-field.component.ts", lineNumber: 13 }); })();
15821
16854
 
15822
16855
  function WriteDateContainerFieldComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
15823
16856
  i0.ɵɵelementContainerStart(0);
@@ -25314,6 +26347,7 @@ class FieldReadComponent extends AbstractFieldReadComponent {
25314
26347
  component.instance['parent'] = this.parent;
25315
26348
  component.instance['caseReference'] = this.caseReference;
25316
26349
  component.instance['context'] = this.context;
26350
+ component.instance['valueOrigin'] = this.valueOrigin;
25317
26351
  component.instance['labelCanBeTranslated'] = this.labelCanBeTranslated(this.caseField);
25318
26352
  this.fieldContainer?.insert(component.hostView);
25319
26353
  });
@@ -25350,7 +26384,7 @@ class FieldReadComponent extends AbstractFieldReadComponent {
25350
26384
  type: ViewChild,
25351
26385
  args: ['fieldContainer', { static: false, read: ViewContainerRef }]
25352
26386
  }] }); })();
25353
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FieldReadComponent, { className: "FieldReadComponent", filePath: "lib/shared/components/palette/base-field/field-read.component.ts", lineNumber: 16 }); })();
26387
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(FieldReadComponent, { className: "FieldReadComponent", filePath: "lib/shared/components/palette/base-field/field-read.component.ts", lineNumber: 15 }); })();
25354
26388
 
25355
26389
  const _c0$y = ["fieldContainer"];
25356
26390
  const FIX_CASEFIELD_FOR = ['FixedList', 'DynamicList', 'DynamicMultiSelectList'];
@@ -29712,37 +30746,45 @@ class UpdateFlagTitleDisplayPipe extends AsyncPipe {
29712
30746
 
29713
30747
  const _c0$l = (a0, a1, a2) => [a0, false, undefined, true, a1, a2];
29714
30748
  function ReadComplexFieldRawComponent_ng_container_1_Template(rf, ctx) { if (rf & 1) {
29715
- i0.ɵɵelementContainerStart(0);
29716
- i0.ɵɵelementStart(1, "dt", 2)(2, "span", 3);
29717
- i0.ɵɵtext(3);
29718
- i0.ɵɵpipe(4, "rpxTranslate");
30749
+ i0.ɵɵelementContainerStart(0)(1, 2);
30750
+ i0.ɵɵelementStart(2, "dt", 3)(3, "span", 4);
30751
+ i0.ɵɵtext(4);
30752
+ i0.ɵɵpipe(5, "rpxTranslate");
29719
30753
  i0.ɵɵelementEnd()();
29720
- i0.ɵɵelementStart(5, "dd", 2);
29721
- i0.ɵɵelement(6, "ccd-field-read", 4);
30754
+ i0.ɵɵelementStart(6, "dd", 3);
30755
+ i0.ɵɵelement(7, "ccd-field-read", 5);
29722
30756
  i0.ɵɵelementEnd();
29723
- i0.ɵɵelementContainerEnd();
30757
+ i0.ɵɵelementContainerEnd()();
29724
30758
  } if (rf & 2) {
29725
30759
  const field_r1 = ctx.$implicit;
29726
30760
  const ctx_r1 = i0.ɵɵnextContext();
29727
30761
  i0.ɵɵadvance();
30762
+ i0.ɵɵproperty("caseField", field_r1)("formGroup", ctx_r1.topLevelFormGroup)("contextFields", ctx_r1.caseFields);
30763
+ i0.ɵɵadvance();
29728
30764
  i0.ɵɵproperty("hidden", field_r1.hidden || field_r1.field_type.type === "Label");
29729
30765
  i0.ɵɵadvance(2);
29730
- i0.ɵɵtextInterpolate(ctx_r1.isTranslatable(field_r1) ? i0.ɵɵpipeBind1(4, 8, field_r1.label) : field_r1.label);
30766
+ i0.ɵɵtextInterpolate(ctx_r1.isTranslatable(field_r1) ? i0.ɵɵpipeBind1(5, 12, field_r1.label) : field_r1.label);
29731
30767
  i0.ɵɵadvance(2);
29732
30768
  i0.ɵɵproperty("hidden", field_r1.hidden);
29733
30769
  i0.ɵɵadvance();
29734
- i0.ɵɵproperty("caseField", field_r1)("context", ctx_r1.context)("caseFields", ctx_r1.caseFields)("topLevelFormGroup", ctx_r1.topLevelFormGroup)("idPrefix", ctx_r1.idPrefix);
30770
+ i0.ɵɵproperty("caseField", field_r1)("context", ctx_r1.context)("valueOrigin", ctx_r1.valueOrigin)("caseFields", ctx_r1.caseFields)("topLevelFormGroup", ctx_r1.topLevelFormGroup)("idPrefix", ctx_r1.idPrefix);
29735
30771
  } }
29736
30772
  /**
29737
30773
  * Display a complex type fields as a list of values without labels.
29738
30774
  * This is intended for rendering of Check Your Answer page.
29739
30775
  */
29740
30776
  class ReadComplexFieldRawComponent extends AbstractFieldReadComponent {
30777
+ // parent_ and value match the dummy path convention used by the table variant.
30778
+ static DUMMY_STRING_PRE = 'parent_';
30779
+ static DUMMY_STRING_POST = 'value';
29741
30780
  caseFields = [];
30781
+ get path() {
30782
+ return ReadComplexFieldRawComponent.DUMMY_STRING_PRE + this.idPrefix + ReadComplexFieldRawComponent.DUMMY_STRING_POST;
30783
+ }
29742
30784
  static ɵfac = /*@__PURE__*/ (() => { let ɵReadComplexFieldRawComponent_BaseFactory; return function ReadComplexFieldRawComponent_Factory(__ngFactoryType__) { return (ɵReadComplexFieldRawComponent_BaseFactory || (ɵReadComplexFieldRawComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadComplexFieldRawComponent)))(__ngFactoryType__ || ReadComplexFieldRawComponent); }; })();
29743
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldRawComponent, selectors: [["ccd-read-complex-field-raw"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 12, consts: [[1, "complex-raw"], [4, "ngFor", "ngForOf"], [3, "hidden"], [1, "text-16"], [3, "caseField", "context", "caseFields", "topLevelFormGroup", "idPrefix"]], template: function ReadComplexFieldRawComponent_Template(rf, ctx) { if (rf & 1) {
30785
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldRawComponent, selectors: [["ccd-read-complex-field-raw"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 3, vars: 12, consts: [[1, "complex-raw"], [4, "ngFor", "ngForOf"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], [3, "hidden"], [1, "text-16"], [3, "caseField", "context", "valueOrigin", "caseFields", "topLevelFormGroup", "idPrefix"]], template: function ReadComplexFieldRawComponent_Template(rf, ctx) { if (rf & 1) {
29744
30786
  i0.ɵɵelementStart(0, "dl", 0);
29745
- i0.ɵɵtemplate(1, ReadComplexFieldRawComponent_ng_container_1_Template, 7, 10, "ng-container", 1);
30787
+ i0.ɵɵtemplate(1, ReadComplexFieldRawComponent_ng_container_1_Template, 8, 14, "ng-container", 1);
29746
30788
  i0.ɵɵpipe(2, "ccdReadFieldsFilter");
29747
30789
  i0.ɵɵelementEnd();
29748
30790
  } if (rf & 2) {
@@ -29752,17 +30794,17 @@ class ReadComplexFieldRawComponent extends AbstractFieldReadComponent {
29752
30794
  }
29753
30795
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadComplexFieldRawComponent, [{
29754
30796
  type: Component,
29755
- args: [{ selector: 'ccd-read-complex-field-raw', standalone: false, template: "<dl class=\"complex-raw\">\n <ng-container *ngFor=\"let field of caseField | ccdReadFieldsFilter:false :undefined :true :topLevelFormGroup :id()\">\n <dt [hidden]=\"field.hidden || field.field_type.type === 'Label'\"><span class=\"text-16\">{{isTranslatable(field) ? (field.label | rpxTranslate) : field.label}}</span></dt>\n <dd [hidden]=\"field.hidden\">\n <ccd-field-read [caseField]=\"field\" [context]=\"context\" [caseFields]=\"caseFields\" [topLevelFormGroup]=\"topLevelFormGroup\" [idPrefix]=\"idPrefix\"></ccd-field-read>\n </dd>\n </ng-container>\n</dl>\n", styles: ["dl.complex-raw{list-style-type:none;margin:5px 0 10px}dl.complex-raw dl.complex-raw{padding-left:2ch}dl.complex-raw dt{font-weight:700}\n"] }]
30797
+ args: [{ selector: 'ccd-read-complex-field-raw', standalone: false, template: "<dl class=\"complex-raw\">\n <ng-container *ngFor=\"let field of caseField | ccdReadFieldsFilter:false :undefined :true :topLevelFormGroup :id()\">\n <ng-container ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"topLevelFormGroup\" [contextFields]=\"caseFields\">\n <dt [hidden]=\"field.hidden || field.field_type.type === 'Label'\"><span class=\"text-16\">{{isTranslatable(field) ? (field.label | rpxTranslate) : field.label}}</span></dt>\n <dd [hidden]=\"field.hidden\">\n <ccd-field-read [caseField]=\"field\" [context]=\"context\" [valueOrigin]=\"valueOrigin\" [caseFields]=\"caseFields\" [topLevelFormGroup]=\"topLevelFormGroup\" [idPrefix]=\"idPrefix\"></ccd-field-read>\n </dd>\n </ng-container>\n </ng-container>\n</dl>\n", styles: ["dl.complex-raw{list-style-type:none;margin:5px 0 10px}dl.complex-raw dl.complex-raw{padding-left:2ch}dl.complex-raw dt{font-weight:700}\n"] }]
29756
30798
  }], null, { caseFields: [{
29757
30799
  type: Input
29758
30800
  }] }); })();
29759
30801
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadComplexFieldRawComponent, { className: "ReadComplexFieldRawComponent", filePath: "lib/shared/components/palette/complex/read-complex-field-raw.component.ts", lineNumber: 17 }); })();
29760
30802
 
29761
30803
  const _c0$k = (a0, a1, a2, a3) => [a0, false, undefined, true, a1, a2, a3];
29762
- function ReadComplexFieldTableComponent_ng_container_9_ng_container_1_Template(rf, ctx) { if (rf & 1) {
30804
+ function ReadComplexFieldTableComponent_ng_container_9_ng_container_2_Template(rf, ctx) { if (rf & 1) {
29763
30805
  i0.ɵɵelementContainerStart(0);
29764
- i0.ɵɵelementStart(1, "tr", 7)(2, "td", 8)(3, "span", 3);
29765
- i0.ɵɵelement(4, "ccd-field-read", 9);
30806
+ i0.ɵɵelementStart(1, "tr", 8)(2, "td", 9)(3, "span", 3);
30807
+ i0.ɵɵelement(4, "ccd-field-read", 10);
29766
30808
  i0.ɵɵelementEnd()()();
29767
30809
  i0.ɵɵelementContainerEnd();
29768
30810
  } if (rf & 2) {
@@ -29771,36 +30813,39 @@ function ReadComplexFieldTableComponent_ng_container_9_ng_container_1_Template(r
29771
30813
  i0.ɵɵadvance();
29772
30814
  i0.ɵɵproperty("hidden", field_r1.hidden);
29773
30815
  i0.ɵɵadvance(3);
29774
- i0.ɵɵproperty("topLevelFormGroup", ctx_r1.topLevelFormGroup)("caseFields", ctx_r1.caseFields)("caseField", field_r1)("context", ctx_r1.context);
30816
+ i0.ɵɵproperty("topLevelFormGroup", ctx_r1.topLevelFormGroup)("caseFields", ctx_r1.caseFields)("caseField", field_r1)("context", ctx_r1.context)("valueOrigin", ctx_r1.valueOrigin);
29775
30817
  } }
29776
- function ReadComplexFieldTableComponent_ng_container_9_ng_template_3_Template(rf, ctx) { if (rf & 1) {
29777
- i0.ɵɵelementStart(0, "tr", 10)(1, "th", 11)(2, "span", 3);
30818
+ function ReadComplexFieldTableComponent_ng_container_9_ng_template_4_Template(rf, ctx) { if (rf & 1) {
30819
+ i0.ɵɵelementStart(0, "tr", 11)(1, "th", 12)(2, "span", 3);
29778
30820
  i0.ɵɵtext(3);
29779
30821
  i0.ɵɵpipe(4, "rpxTranslate");
29780
30822
  i0.ɵɵelementEnd()();
29781
30823
  i0.ɵɵelementStart(5, "td")(6, "span", 3);
29782
- i0.ɵɵelement(7, "ccd-field-read", 9);
30824
+ i0.ɵɵelement(7, "ccd-field-read", 10);
29783
30825
  i0.ɵɵelementEnd()()();
29784
30826
  } if (rf & 2) {
29785
30827
  const field_r1 = i0.ɵɵnextContext().$implicit;
29786
30828
  const ctx_r1 = i0.ɵɵnextContext();
29787
30829
  i0.ɵɵproperty("hidden", field_r1.hidden);
29788
30830
  i0.ɵɵadvance(3);
29789
- i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 6, field_r1.label));
30831
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(4, 7, field_r1.label));
29790
30832
  i0.ɵɵadvance(4);
29791
- i0.ɵɵproperty("topLevelFormGroup", ctx_r1.topLevelFormGroup)("caseFields", ctx_r1.caseFields)("caseField", field_r1)("context", ctx_r1.context);
30833
+ i0.ɵɵproperty("topLevelFormGroup", ctx_r1.topLevelFormGroup)("caseFields", ctx_r1.caseFields)("caseField", field_r1)("context", ctx_r1.context)("valueOrigin", ctx_r1.valueOrigin);
29792
30834
  } }
29793
30835
  function ReadComplexFieldTableComponent_ng_container_9_Template(rf, ctx) { if (rf & 1) {
29794
- i0.ɵɵelementContainerStart(0);
29795
- i0.ɵɵtemplate(1, ReadComplexFieldTableComponent_ng_container_9_ng_container_1_Template, 5, 5, "ng-container", 6);
29796
- i0.ɵɵpipe(2, "ccdIsCompound");
29797
- i0.ɵɵtemplate(3, ReadComplexFieldTableComponent_ng_container_9_ng_template_3_Template, 8, 8, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
29798
- i0.ɵɵelementContainerEnd();
30836
+ i0.ɵɵelementContainerStart(0)(1, 6);
30837
+ i0.ɵɵtemplate(2, ReadComplexFieldTableComponent_ng_container_9_ng_container_2_Template, 5, 6, "ng-container", 7);
30838
+ i0.ɵɵpipe(3, "ccdIsCompound");
30839
+ i0.ɵɵtemplate(4, ReadComplexFieldTableComponent_ng_container_9_ng_template_4_Template, 8, 9, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
30840
+ i0.ɵɵelementContainerEnd()();
29799
30841
  } if (rf & 2) {
29800
30842
  const field_r1 = ctx.$implicit;
29801
- const SimpleRow_r3 = i0.ɵɵreference(4);
30843
+ const SimpleRow_r3 = i0.ɵɵreference(5);
30844
+ const ctx_r1 = i0.ɵɵnextContext();
29802
30845
  i0.ɵɵadvance();
29803
- i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(2, 2, field_r1))("ngIfElse", SimpleRow_r3);
30846
+ i0.ɵɵproperty("caseField", field_r1)("formGroup", ctx_r1.topLevelFormGroup)("contextFields", ctx_r1.caseFields);
30847
+ i0.ɵɵadvance();
30848
+ i0.ɵɵproperty("ngIf", i0.ɵɵpipeBind1(3, 5, field_r1))("ngIfElse", SimpleRow_r3);
29804
30849
  } }
29805
30850
  class ReadComplexFieldTableComponent extends AbstractFieldReadComponent {
29806
30851
  // parent_ can be replaced with any ***_ - underscore is only important character
@@ -29821,7 +30866,7 @@ class ReadComplexFieldTableComponent extends AbstractFieldReadComponent {
29821
30866
  this.path = ReadComplexFieldTableComponent.DUMMY_STRING_PRE + this.idPrefix + ReadComplexFieldTableComponent.DUMMY_STRING_POST;
29822
30867
  }
29823
30868
  static ɵfac = /*@__PURE__*/ (() => { let ɵReadComplexFieldTableComponent_BaseFactory; return function ReadComplexFieldTableComponent_Factory(__ngFactoryType__) { return (ɵReadComplexFieldTableComponent_BaseFactory || (ɵReadComplexFieldTableComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadComplexFieldTableComponent)))(__ngFactoryType__ || ReadComplexFieldTableComponent); }; })();
29824
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldTableComponent, selectors: [["ccd-read-complex-field-table"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 11, vars: 17, consts: [["SimpleRow", ""], [1, "complex-panel"], [1, "complex-panel-title"], [1, "text-16"], ["aria-describedby", "complex field table", 1, "complex-panel-table"], [4, "ngFor", "ngForOf"], [4, "ngIf", "ngIfElse"], [1, "complex-panel-compound-field", 3, "hidden"], ["colspan", "2"], [3, "topLevelFormGroup", "caseFields", "caseField", "context"], [1, "complex-panel-simple-field", 3, "hidden"], ["id", "complex-panel-simple-field-label"]], template: function ReadComplexFieldTableComponent_Template(rf, ctx) { if (rf & 1) {
30869
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldTableComponent, selectors: [["ccd-read-complex-field-table"]], inputs: { caseFields: "caseFields" }, standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 11, vars: 17, consts: [["SimpleRow", ""], [1, "complex-panel"], [1, "complex-panel-title"], [1, "text-16"], ["aria-describedby", "complex field table", 1, "complex-panel-table"], [4, "ngFor", "ngForOf"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], [4, "ngIf", "ngIfElse"], [1, "complex-panel-compound-field", 3, "hidden"], ["colspan", "2"], [3, "topLevelFormGroup", "caseFields", "caseField", "context", "valueOrigin"], [1, "complex-panel-simple-field", 3, "hidden"], ["id", "complex-panel-simple-field-label"]], template: function ReadComplexFieldTableComponent_Template(rf, ctx) { if (rf & 1) {
29825
30870
  i0.ɵɵelementStart(0, "div", 1)(1, "dl", 2)(2, "dt")(3, "span", 3);
29826
30871
  i0.ɵɵtext(4);
29827
30872
  i0.ɵɵpipe(5, "rpxTranslate");
@@ -29829,7 +30874,7 @@ class ReadComplexFieldTableComponent extends AbstractFieldReadComponent {
29829
30874
  i0.ɵɵelement(6, "dd");
29830
30875
  i0.ɵɵelementEnd();
29831
30876
  i0.ɵɵelementStart(7, "table", 4)(8, "tbody");
29832
- i0.ɵɵtemplate(9, ReadComplexFieldTableComponent_ng_container_9_Template, 5, 4, "ng-container", 5);
30877
+ i0.ɵɵtemplate(9, ReadComplexFieldTableComponent_ng_container_9_Template, 6, 7, "ng-container", 5);
29833
30878
  i0.ɵɵpipe(10, "ccdReadFieldsFilter");
29834
30879
  i0.ɵɵelementEnd()()();
29835
30880
  } if (rf & 2) {
@@ -29841,7 +30886,7 @@ class ReadComplexFieldTableComponent extends AbstractFieldReadComponent {
29841
30886
  }
29842
30887
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadComplexFieldTableComponent, [{
29843
30888
  type: Component,
29844
- args: [{ selector: 'ccd-read-complex-field-table', standalone: false, template: "<div class=\"complex-panel\">\n <dl class=\"complex-panel-title\"><dt><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></dt><dd></dd></dl>\n <table class=\"complex-panel-table\" aria-describedby=\"complex field table\">\n <tbody>\n <ng-container *ngFor=\"let field of caseField | ccdReadFieldsFilter:false :undefined :true :topLevelFormGroup :path :idPrefix\">\n <ng-container *ngIf=\"(field | ccdIsCompound); else SimpleRow\">\n <tr class=\"complex-panel-compound-field\" [hidden]=\"field.hidden\">\n <td colspan=\"2\">\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"topLevelFormGroup\" [caseFields]=\"caseFields\"\n [caseField]=\"field\" [context]=\"context\"></ccd-field-read>\n </span>\n </td>\n </tr>\n </ng-container>\n <ng-template #SimpleRow>\n <tr class=\"complex-panel-simple-field\" [hidden]=\"field.hidden\">\n <th id=\"complex-panel-simple-field-label\"><span class=\"text-16\">{{field.label | rpxTranslate}}</span></th>\n <td>\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"topLevelFormGroup\" [caseFields]=\"caseFields\"\n [caseField]=\"field\" [context]=\"context\"></ccd-field-read>\n </span>\n </td>\n </tr>\n </ng-template>\n </ng-container>\n </tbody>\n </table>\n</div>\n", styles: [".complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media(min-width:641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}\n"] }]
30889
+ args: [{ selector: 'ccd-read-complex-field-table', standalone: false, template: "<div class=\"complex-panel\">\n <dl class=\"complex-panel-title\"><dt><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></dt><dd></dd></dl>\n <table class=\"complex-panel-table\" aria-describedby=\"complex field table\">\n <tbody>\n <ng-container *ngFor=\"let field of caseField | ccdReadFieldsFilter:false :undefined :true :topLevelFormGroup :path :idPrefix\">\n <ng-container ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"topLevelFormGroup\" [contextFields]=\"caseFields\">\n <ng-container *ngIf=\"(field | ccdIsCompound); else SimpleRow\">\n <tr class=\"complex-panel-compound-field\" [hidden]=\"field.hidden\">\n <td colspan=\"2\">\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"topLevelFormGroup\" [caseFields]=\"caseFields\"\n [caseField]=\"field\" [context]=\"context\" [valueOrigin]=\"valueOrigin\"></ccd-field-read>\n </span>\n </td>\n </tr>\n </ng-container>\n <ng-template #SimpleRow>\n <tr class=\"complex-panel-simple-field\" [hidden]=\"field.hidden\">\n <th id=\"complex-panel-simple-field-label\"><span class=\"text-16\">{{field.label | rpxTranslate}}</span></th>\n <td>\n <span class=\"text-16\">\n <ccd-field-read [topLevelFormGroup]=\"topLevelFormGroup\" [caseFields]=\"caseFields\"\n [caseField]=\"field\" [context]=\"context\" [valueOrigin]=\"valueOrigin\"></ccd-field-read>\n </span>\n </td>\n </tr>\n </ng-template>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n</div>\n", styles: [".complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media(min-width:641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}\n"] }]
29845
30890
  }], null, { caseFields: [{
29846
30891
  type: Input
29847
30892
  }] }); })();
@@ -29875,7 +30920,7 @@ function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2
29875
30920
  const item_r7 = i0.ɵɵnextContext().$implicit;
29876
30921
  const ctx_r2 = i0.ɵɵnextContext();
29877
30922
  i0.ɵɵadvance();
29878
- i0.ɵɵproperty("caseField", ctx_r2.toCaseField(heading_r6, item_r7[heading_r6].label, ctx_r2.columnsHorizontalLabel[heading_r6].type, item_r7[heading_r6]))("context", ctx_r2.context);
30923
+ i0.ɵɵproperty("caseField", ctx_r2.toCaseField(heading_r6, item_r7[heading_r6].label, ctx_r2.columnsHorizontalLabel[heading_r6].type, item_r7[heading_r6]))("context", ctx_r2.context)("valueOrigin", ctx_r2.valueOrigin);
29879
30924
  } }
29880
30925
  function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2_ng_template_3_Template(rf, ctx) { if (rf & 1) {
29881
30926
  i0.ɵɵelementStart(0, "div");
@@ -29885,7 +30930,7 @@ function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2
29885
30930
  function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2_Template(rf, ctx) { if (rf & 1) {
29886
30931
  i0.ɵɵelementContainerStart(0);
29887
30932
  i0.ɵɵelementStart(1, "td", 4);
29888
- i0.ɵɵtemplate(2, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2_div_2_Template, 2, 2, "div", 17)(3, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2_ng_template_3_Template, 2, 0, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
30933
+ i0.ɵɵtemplate(2, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2_div_2_Template, 2, 3, "div", 17)(3, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_2_ng_template_3_Template, 2, 0, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor);
29889
30934
  i0.ɵɵelementEnd();
29890
30935
  i0.ɵɵelementContainerEnd();
29891
30936
  } if (rf & 2) {
@@ -29904,14 +30949,14 @@ function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_1
29904
30949
  const item_r7 = i0.ɵɵnextContext().$implicit;
29905
30950
  const ctx_r2 = i0.ɵɵnextContext();
29906
30951
  i0.ɵɵadvance();
29907
- i0.ɵɵproperty("caseField", ctx_r2.toCaseField("", vLabel_r9.label, vLabel_r9.field_type, item_r7[vLabel_r9.id]))("context", ctx_r2.context);
30952
+ i0.ɵɵproperty("caseField", ctx_r2.toCaseField("", vLabel_r9.label, vLabel_r9.field_type, item_r7[vLabel_r9.id]))("context", ctx_r2.context)("valueOrigin", ctx_r2.valueOrigin);
29908
30953
  } }
29909
30954
  function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_1_Template(rf, ctx) { if (rf & 1) {
29910
30955
  i0.ɵɵelementStart(0, "tr", 21)(1, "th", 8)(2, "span", 4);
29911
30956
  i0.ɵɵtext(3);
29912
30957
  i0.ɵɵpipe(4, "rpxTranslate");
29913
30958
  i0.ɵɵelementEnd()();
29914
- i0.ɵɵtemplate(5, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_1_td_5_Template, 2, 2, "td", 22);
30959
+ i0.ɵɵtemplate(5, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_1_td_5_Template, 2, 3, "td", 22);
29915
30960
  i0.ɵɵelementEnd();
29916
30961
  } if (rf & 2) {
29917
30962
  const vLabel_r9 = i0.ɵɵnextContext().$implicit;
@@ -29930,7 +30975,7 @@ function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_1
29930
30975
  const ctx_r2 = i0.ɵɵnextContext(4);
29931
30976
  i0.ɵɵproperty("hidden", caseField_r10);
29932
30977
  i0.ɵɵadvance(3);
29933
- i0.ɵɵproperty("caseField", caseField_r10)("context", ctx_r2.context);
30978
+ i0.ɵɵproperty("caseField", caseField_r10)("context", ctx_r2.context)("valueOrigin", ctx_r2.valueOrigin);
29934
30979
  } }
29935
30980
  function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_ng_template_3_td_5_Template(rf, ctx) { if (rf & 1) {
29936
30981
  i0.ɵɵelementStart(0, "td")(1, "span", 4);
@@ -29940,11 +30985,11 @@ function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_1
29940
30985
  const caseField_r10 = i0.ɵɵnextContext(2).$implicit;
29941
30986
  const ctx_r2 = i0.ɵɵnextContext(4);
29942
30987
  i0.ɵɵadvance(2);
29943
- i0.ɵɵproperty("caseField", caseField_r10)("context", ctx_r2.context);
30988
+ i0.ɵɵproperty("caseField", caseField_r10)("context", ctx_r2.context)("valueOrigin", ctx_r2.valueOrigin);
29944
30989
  } }
29945
30990
  function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_ng_template_3_td_6_Template(rf, ctx) { if (rf & 1) {
29946
30991
  i0.ɵɵelementStart(0, "td");
29947
- i0.ɵɵelement(1, "ccd-read-case-link-field", 18);
30992
+ i0.ɵɵelement(1, "ccd-read-case-link-field", 28);
29948
30993
  i0.ɵɵelementEnd();
29949
30994
  } if (rf & 2) {
29950
30995
  const caseField_r10 = i0.ɵɵnextContext(2).$implicit;
@@ -29959,7 +31004,7 @@ function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_1
29959
31004
  i0.ɵɵtext(3);
29960
31005
  i0.ɵɵpipe(4, "rpxTranslate");
29961
31006
  i0.ɵɵelementEnd()();
29962
- i0.ɵɵtemplate(5, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_ng_template_3_td_5_Template, 3, 2, "td", 27)(6, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_ng_template_3_td_6_Template, 2, 2, "td", 27);
31007
+ i0.ɵɵtemplate(5, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_ng_template_3_td_5_Template, 3, 3, "td", 27)(6, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_ng_template_3_td_6_Template, 2, 2, "td", 27);
29963
31008
  i0.ɵɵelementEnd();
29964
31009
  } if (rf & 2) {
29965
31010
  const caseField_r10 = i0.ɵɵnextContext().$implicit;
@@ -29975,7 +31020,7 @@ function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_1
29975
31020
  } }
29976
31021
  function ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_Template(rf, ctx) { if (rf & 1) {
29977
31022
  i0.ɵɵelementContainerStart(0);
29978
- i0.ɵɵtemplate(1, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_tr_1_Template, 4, 3, "tr", 24);
31023
+ i0.ɵɵtemplate(1, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_tr_1_Template, 4, 4, "tr", 24);
29979
31024
  i0.ɵɵpipe(2, "ccdIsCompound");
29980
31025
  i0.ɵɵtemplate(3, ReadComplexFieldCollectionTableComponent_ng_container_12_ng_container_11_tr_2_ng_container_2_ng_template_3_Template, 7, 6, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
29981
31026
  i0.ɵɵelementContainerEnd();
@@ -30193,7 +31238,7 @@ class ReadComplexFieldCollectionTableComponent extends AbstractFieldReadComponen
30193
31238
  return result;
30194
31239
  }
30195
31240
  static ɵfac = /*@__PURE__*/ (() => { let ɵReadComplexFieldCollectionTableComponent_BaseFactory; return function ReadComplexFieldCollectionTableComponent_Factory(__ngFactoryType__) { return (ɵReadComplexFieldCollectionTableComponent_BaseFactory || (ɵReadComplexFieldCollectionTableComponent_BaseFactory = i0.ɵɵgetInheritedFactory(ReadComplexFieldCollectionTableComponent)))(__ngFactoryType__ || ReadComplexFieldCollectionTableComponent); }; })();
30196
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldCollectionTableComponent, selectors: [["ccd-read-complex-field-collection-table"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 13, vars: 6, consts: [["showEmptyTd", ""], ["SimpleRow", ""], [1, "complex-panel", 3, "hidden"], [1, "complex-panel-title"], [1, "text-16"], ["aria-describedby", "complex panel table", 1, "complex-panel-table"], ["scope", "col", 4, "ngFor", "ngForOf"], [4, "ngFor", "ngForOf"], ["scope", "col"], ["href", "#", 1, "sort-widget", 3, "click", "keyup.enter", "innerHTML"], [1, "new-table-row", "accordion-heading", 3, "keyup", "click"], [2, "float", "right"], ["href", "#", 3, "click"], ["alt", "accordion-img", 1, "accordion-image", 3, "src"], [3, "hidden"], [3, "colSpan"], ["aria-describedby", "complex panel table expanded", 1, "complex-panel-table"], [4, "ngIf", "ngIfElse"], [3, "caseField", "context"], ["class", "complex-panel-simple-field accordion-body", 3, "hidden", 4, "ngIf"], [3, "hidden", 4, "ngIf"], [1, "complex-panel-simple-field", "accordion-body", 3, "hidden"], ["class", "text-16", 4, "ngIf"], ["colspan", "2"], ["class", "complex-panel-compound-field", 3, "hidden", 4, "ngIf", "ngIfElse"], [1, "complex-panel-compound-field", 3, "hidden"], [1, "complex-panel-nested-field", 3, "hidden"], [4, "ngIf"]], template: function ReadComplexFieldCollectionTableComponent_Template(rf, ctx) { if (rf & 1) {
31241
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ReadComplexFieldCollectionTableComponent, selectors: [["ccd-read-complex-field-collection-table"]], standalone: false, features: [i0.ɵɵInheritDefinitionFeature], decls: 13, vars: 6, consts: [["showEmptyTd", ""], ["SimpleRow", ""], [1, "complex-panel", 3, "hidden"], [1, "complex-panel-title"], [1, "text-16"], ["aria-describedby", "complex panel table", 1, "complex-panel-table"], ["scope", "col", 4, "ngFor", "ngForOf"], [4, "ngFor", "ngForOf"], ["scope", "col"], ["href", "#", 1, "sort-widget", 3, "click", "keyup.enter", "innerHTML"], [1, "new-table-row", "accordion-heading", 3, "keyup", "click"], [2, "float", "right"], ["href", "#", 3, "click"], ["alt", "accordion-img", 1, "accordion-image", 3, "src"], [3, "hidden"], [3, "colSpan"], ["aria-describedby", "complex panel table expanded", 1, "complex-panel-table"], [4, "ngIf", "ngIfElse"], [3, "caseField", "context", "valueOrigin"], ["class", "complex-panel-simple-field accordion-body", 3, "hidden", 4, "ngIf"], [3, "hidden", 4, "ngIf"], [1, "complex-panel-simple-field", "accordion-body", 3, "hidden"], ["class", "text-16", 4, "ngIf"], ["colspan", "2"], ["class", "complex-panel-compound-field", 3, "hidden", 4, "ngIf", "ngIfElse"], [1, "complex-panel-compound-field", 3, "hidden"], [1, "complex-panel-nested-field", 3, "hidden"], [4, "ngIf"], [3, "caseField", "context"]], template: function ReadComplexFieldCollectionTableComponent_Template(rf, ctx) { if (rf & 1) {
30197
31242
  i0.ɵɵelementStart(0, "div", 2)(1, "dl", 3)(2, "dt")(3, "span", 4);
30198
31243
  i0.ɵɵtext(4);
30199
31244
  i0.ɵɵpipe(5, "rpxTranslate");
@@ -30218,7 +31263,7 @@ class ReadComplexFieldCollectionTableComponent extends AbstractFieldReadComponen
30218
31263
  }
30219
31264
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ReadComplexFieldCollectionTableComponent, [{
30220
31265
  type: Component,
30221
- args: [{ selector: 'ccd-read-complex-field-collection-table', standalone: false, template: "<div class=\"complex-panel\" [hidden]=\"caseField.hidden\">\n <dl class=\"complex-panel-title\">\n <dt><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></dt>\n <dd></dd>\n </dl>\n <table class=\"complex-panel-table\" aria-describedby=\"complex panel table\">\n <tbody>\n <!-- <COMPLEX table field header>-->\n <tr>\n <th *ngFor=\"let heading of columns\" scope=\"col\">\n <span class=\"text-16\">{{columnsAllLabels[heading].label | rpxTranslate}}</span>\n <a href=\"#\"\n (click)=\"sortRowsByColumns(heading); $event.preventDefault()\"\n (keyup.enter)=\"sortRowsByColumns(heading)\"\n class=\"sort-widget\"\n [attr.aria-label]=\"'Sort ' + columnsAllLabels[heading].label | rpxTranslate\"\n [innerHTML]=\"sortWidget(columnsAllLabels[heading])\"></a>\n </th>\n <th></th>\n </tr>\n <!-- </COMPLEX table field header>-->\n <ng-container *ngFor=\"let item of rows; let i = index;\">\n <!-- <COMPLEX table collapsed view>-->\n <tr class=\"new-table-row accordion-heading\" (keyup)=\"$event.key === 'Enter' ? (isHidden[i] = !isHidden[i]) : null\" (click)=\"isHidden[i] = !isHidden[i]\"\n [class.last-accordion]=\"isHidden[i]\">\n <ng-container *ngFor=\"let heading of columns\">\n <td class=\"text-16\">\n <div *ngIf=\"item[heading]; else showEmptyTd\">\n <ccd-field-read\n [caseField]=\"toCaseField(heading, item[heading].label, columnsHorizontalLabel[heading].type, item[heading])\"\n [context]=\"context\"></ccd-field-read>\n </div>\n <ng-template #showEmptyTd>\n <div>&nbsp;</div>\n </ng-template>\n </td>\n </ng-container>\n <td>\n <div style=\"float: right;\">\n <a href=\"#\" (click)=\"$event.preventDefault()\"> <img src=\"{{ getImage(i) }}\" alt=\"accordion-img\" class=\"accordion-image\"/></a>\n </div>\n </td>\n </tr>\n <!-- </COMPLEX table collapsed view>-->\n <!-- <COMPLEX table expanded view>-->\n <tr [hidden]=\"isHidden[i]\">\n <td [colSpan]=\"columns.length + 1\">\n <table class=\"complex-panel-table\" aria-describedby=\"complex panel table expanded\">\n <tbody>\n <ng-container\n *ngFor=\"let vLabel of columnsVerticalLabel | keyvalue: keepOriginalOrder | ccdCollectionTableCaseFieldsFilter: caseField: rows[i] | ccdReadFieldsFilter:true :undefined :true\">\n <!-- <COMPLEX table expandable body simple field>-->\n <tr class=\"complex-panel-simple-field accordion-body\" *ngIf=\"item[vLabel.id]\" [hidden]=\"vLabel.hidden\">\n <th scope=\"col\"><span class=\"text-16\">{{ vLabel.label | rpxTranslate }}</span></th>\n <td *ngIf=\"vLabel['type'] !== 'Complex'\" class=\"text-16\">\n <ccd-field-read [caseField]=\"toCaseField('', vLabel.label, vLabel.field_type, item[vLabel.id])\"\n [context]=\"context\"></ccd-field-read>\n </td>\n </tr>\n <!-- </COMPLEX table expandable body simple field>-->\n\n <!-- <COMPLEX table expandable body complex field>-->\n <tr *ngIf=\"vLabel['type'] === 'Complex' && addCaseFieldValue(vLabel, item[vLabel.id])\" [hidden]=\"vLabel.hidden\">\n <td colspan=\"2\">\n <ng-container *ngFor=\"let caseField of vLabel | ccdReadFieldsFilter:true :undefined :true\">\n <tr class=\"complex-panel-compound-field\" *ngIf=\"(caseField | ccdIsCompound); else SimpleRow\" [hidden]=\"caseField\">\n <td colspan=\"2\">\n <span class=\"text-16\"><ccd-field-read [caseField]=\"caseField\" [context]=\"context\"></ccd-field-read></span>\n </td>\n </tr>\n <ng-template #SimpleRow>\n <tr class=\"complex-panel-nested-field\" [hidden]=\"caseField.hidden\">\n <th scope=\"col\"><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></th>\n <td *ngIf=\"!item[vLabel.id]?.hasOwnProperty('CaseReference')\">\n <span class=\"text-16\"><ccd-field-read [caseField]=\"caseField\" [context]=\"context\"></ccd-field-read></span>\n </td>\n <td *ngIf=\"item[vLabel.id]?.hasOwnProperty('CaseReference')\">\n <ccd-read-case-link-field [caseField]=\"addCaseReferenceValue(caseField, item[vLabel.id].CaseReference)\" [context]=\"context\"></ccd-read-case-link-field>\n </td>\n </tr>\n </ng-template>\n </ng-container>\n </td>\n </tr>\n <!-- <COMPLEX table expandable body complex field>-->\n </ng-container>\n </tbody>\n </table>\n </td>\n </tr>\n <!-- </COMPLEX table expanded view>-->\n </ng-container>\n </tbody>\n </table>\n</div>\n", styles: [".complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media(min-width:641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th{border-bottom:none}.complex-panel .complex-panel-table th{padding-left:5px;font-weight:700;border-bottom:none}.complex-panel .complex-panel-table td{padding-left:5px;padding-top:0;padding-bottom:0;border-bottom:none}.complex-panel .new-table-row{border-top:1px solid #bfc1c3}.complex-panel .complex-panel-simple-field th{padding-left:5px;padding-top:0;padding-bottom:0;width:295px}.complex-panel .complex-panel-nested-field th{padding-left:33px;padding-top:0;padding-bottom:0;width:200px}.complex-panel .complex-panel-compound-field td{padding:5px;border-bottom:none}.sort-widget{cursor:pointer;text-decoration:none;color:#0b0c0c}.accordion-wrapper{margin-bottom:20px}.accordion-wrapper .heading-medium{margin:0}.accordion-wrapper .accordion-heading{border-top:1px solid #bfc1c3;padding-top:20px;padding-bottom:10px;height:20px;cursor:pointer}.accordion-wrapper .accordion-heading .accordion-image{width:25px;margin-right:20px}.accordion-wrapper .accordion-body{margin-top:20px;margin-right:20px}.accordion-wrapper .last-accordion{border-bottom:1px solid #bfc1c3;padding-bottom:30px}\n"] }]
31266
+ args: [{ selector: 'ccd-read-complex-field-collection-table', standalone: false, template: "<div class=\"complex-panel\" [hidden]=\"caseField.hidden\">\n <dl class=\"complex-panel-title\">\n <dt><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></dt>\n <dd></dd>\n </dl>\n <table class=\"complex-panel-table\" aria-describedby=\"complex panel table\">\n <tbody>\n <!-- <COMPLEX table field header>-->\n <tr>\n <th *ngFor=\"let heading of columns\" scope=\"col\">\n <span class=\"text-16\">{{columnsAllLabels[heading].label | rpxTranslate}}</span>\n <a href=\"#\"\n (click)=\"sortRowsByColumns(heading); $event.preventDefault()\"\n (keyup.enter)=\"sortRowsByColumns(heading)\"\n class=\"sort-widget\"\n [attr.aria-label]=\"'Sort ' + columnsAllLabels[heading].label | rpxTranslate\"\n [innerHTML]=\"sortWidget(columnsAllLabels[heading])\"></a>\n </th>\n <th></th>\n </tr>\n <!-- </COMPLEX table field header>-->\n <ng-container *ngFor=\"let item of rows; let i = index;\">\n <!-- <COMPLEX table collapsed view>-->\n <tr class=\"new-table-row accordion-heading\" (keyup)=\"$event.key === 'Enter' ? (isHidden[i] = !isHidden[i]) : null\" (click)=\"isHidden[i] = !isHidden[i]\"\n [class.last-accordion]=\"isHidden[i]\">\n <ng-container *ngFor=\"let heading of columns\">\n <td class=\"text-16\">\n <div *ngIf=\"item[heading]; else showEmptyTd\">\n <ccd-field-read\n [caseField]=\"toCaseField(heading, item[heading].label, columnsHorizontalLabel[heading].type, item[heading])\"\n [context]=\"context\"\n [valueOrigin]=\"valueOrigin\"></ccd-field-read>\n </div>\n <ng-template #showEmptyTd>\n <div>&nbsp;</div>\n </ng-template>\n </td>\n </ng-container>\n <td>\n <div style=\"float: right;\">\n <a href=\"#\" (click)=\"$event.preventDefault()\"> <img src=\"{{ getImage(i) }}\" alt=\"accordion-img\" class=\"accordion-image\"/></a>\n </div>\n </td>\n </tr>\n <!-- </COMPLEX table collapsed view>-->\n <!-- <COMPLEX table expanded view>-->\n <tr [hidden]=\"isHidden[i]\">\n <td [colSpan]=\"columns.length + 1\">\n <table class=\"complex-panel-table\" aria-describedby=\"complex panel table expanded\">\n <tbody>\n <ng-container\n *ngFor=\"let vLabel of columnsVerticalLabel | keyvalue: keepOriginalOrder | ccdCollectionTableCaseFieldsFilter: caseField: rows[i] | ccdReadFieldsFilter:true :undefined :true\">\n <!-- <COMPLEX table expandable body simple field>-->\n <tr class=\"complex-panel-simple-field accordion-body\" *ngIf=\"item[vLabel.id]\" [hidden]=\"vLabel.hidden\">\n <th scope=\"col\"><span class=\"text-16\">{{ vLabel.label | rpxTranslate }}</span></th>\n <td *ngIf=\"vLabel['type'] !== 'Complex'\" class=\"text-16\">\n <ccd-field-read [caseField]=\"toCaseField('', vLabel.label, vLabel.field_type, item[vLabel.id])\"\n [context]=\"context\"\n [valueOrigin]=\"valueOrigin\"></ccd-field-read>\n </td>\n </tr>\n <!-- </COMPLEX table expandable body simple field>-->\n\n <!-- <COMPLEX table expandable body complex field>-->\n <tr *ngIf=\"vLabel['type'] === 'Complex' && addCaseFieldValue(vLabel, item[vLabel.id])\" [hidden]=\"vLabel.hidden\">\n <td colspan=\"2\">\n <ng-container *ngFor=\"let caseField of vLabel | ccdReadFieldsFilter:true :undefined :true\">\n <tr class=\"complex-panel-compound-field\" *ngIf=\"(caseField | ccdIsCompound); else SimpleRow\" [hidden]=\"caseField\">\n <td colspan=\"2\">\n <span class=\"text-16\"><ccd-field-read [caseField]=\"caseField\" [context]=\"context\" [valueOrigin]=\"valueOrigin\"></ccd-field-read></span>\n </td>\n </tr>\n <ng-template #SimpleRow>\n <tr class=\"complex-panel-nested-field\" [hidden]=\"caseField.hidden\">\n <th scope=\"col\"><span class=\"text-16\">{{caseField.label | rpxTranslate}}</span></th>\n <td *ngIf=\"!item[vLabel.id]?.hasOwnProperty('CaseReference')\">\n <span class=\"text-16\"><ccd-field-read [caseField]=\"caseField\" [context]=\"context\" [valueOrigin]=\"valueOrigin\"></ccd-field-read></span>\n </td>\n <td *ngIf=\"item[vLabel.id]?.hasOwnProperty('CaseReference')\">\n <ccd-read-case-link-field [caseField]=\"addCaseReferenceValue(caseField, item[vLabel.id].CaseReference)\" [context]=\"context\"></ccd-read-case-link-field>\n </td>\n </tr>\n </ng-template>\n </ng-container>\n </td>\n </tr>\n <!-- <COMPLEX table expandable body complex field>-->\n </ng-container>\n </tbody>\n </table>\n </td>\n </tr>\n <!-- </COMPLEX table expanded view>-->\n </ng-container>\n </tbody>\n </table>\n</div>\n", styles: [".complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media(min-width:641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th{border-bottom:none}.complex-panel .complex-panel-table th{padding-left:5px;font-weight:700;border-bottom:none}.complex-panel .complex-panel-table td{padding-left:5px;padding-top:0;padding-bottom:0;border-bottom:none}.complex-panel .new-table-row{border-top:1px solid #bfc1c3}.complex-panel .complex-panel-simple-field th{padding-left:5px;padding-top:0;padding-bottom:0;width:295px}.complex-panel .complex-panel-nested-field th{padding-left:33px;padding-top:0;padding-bottom:0;width:200px}.complex-panel .complex-panel-compound-field td{padding:5px;border-bottom:none}.sort-widget{cursor:pointer;text-decoration:none;color:#0b0c0c}.accordion-wrapper{margin-bottom:20px}.accordion-wrapper .heading-medium{margin:0}.accordion-wrapper .accordion-heading{border-top:1px solid #bfc1c3;padding-top:20px;padding-bottom:10px;height:20px;cursor:pointer}.accordion-wrapper .accordion-heading .accordion-image{width:25px;margin-right:20px}.accordion-wrapper .accordion-body{margin-top:20px;margin-right:20px}.accordion-wrapper .last-accordion{border-bottom:1px solid #bfc1c3;padding-bottom:30px}\n"] }]
30222
31267
  }], null, null); })();
30223
31268
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadComplexFieldCollectionTableComponent, { className: "ReadComplexFieldCollectionTableComponent", filePath: "lib/shared/components/palette/complex/read-complex-field-collection-table.component.ts", lineNumber: 13 }); })();
30224
31269
 
@@ -32621,8 +33666,8 @@ i0.ɵɵsetComponentScope(ReadOrderSummaryRowComponent, function () { return [Rea
32621
33666
  i0.ɵɵsetComponentScope(ReadComplexFieldComponent, function () { return [i4.NgSwitch, i4.NgSwitchCase, i4.NgSwitchDefault, ReadComplexFieldRawComponent,
32622
33667
  ReadComplexFieldTableComponent,
32623
33668
  ReadComplexFieldCollectionTableComponent]; }, []);
32624
- i0.ɵɵsetComponentScope(ReadComplexFieldRawComponent, function () { return [i4.NgForOf, FieldReadComponent]; }, function () { return [ReadFieldsFilterPipe, i1.RpxTranslatePipe]; });
32625
- i0.ɵɵsetComponentScope(ReadComplexFieldTableComponent, function () { return [i4.NgForOf, i4.NgIf, FieldReadComponent]; }, function () { return [IsCompoundPipe, ReadFieldsFilterPipe, i1.RpxTranslatePipe]; });
33669
+ i0.ɵɵsetComponentScope(ReadComplexFieldRawComponent, function () { return [i4.NgForOf, i3.NgControlStatusGroup, i3.FormGroupDirective, LabelSubstitutorDirective, FieldReadComponent]; }, function () { return [ReadFieldsFilterPipe, i1.RpxTranslatePipe]; });
33670
+ i0.ɵɵsetComponentScope(ReadComplexFieldTableComponent, function () { return [i4.NgForOf, i4.NgIf, i3.NgControlStatusGroup, i3.FormGroupDirective, LabelSubstitutorDirective, FieldReadComponent]; }, function () { return [IsCompoundPipe, ReadFieldsFilterPipe, i1.RpxTranslatePipe]; });
32626
33671
  i0.ɵɵsetComponentScope(ReadComplexFieldCollectionTableComponent, function () { return [i4.NgForOf, i4.NgIf, FieldReadComponent,
32627
33672
  ReadCaseLinkFieldComponent]; }, function () { return [i4.KeyValuePipe, IsCompoundPipe, CcdCollectionTableCaseFieldsFilterPipe, ReadFieldsFilterPipe, i1.RpxTranslatePipe]; });
32628
33673
  i0.ɵɵsetComponentScope(ReadCaseFlagFieldComponent, function () { return [i4.NgForOf, i4.NgIf, i4.NgSwitch, i4.NgSwitchCase, i4.NgSwitchDefault,
@@ -32802,13 +33847,13 @@ function CaseEditSubmitComponent_div_12_ng_container_1_ng_container_7_ng_contain
32802
33847
  i0.ɵɵadvance();
32803
33848
  i0.ɵɵattribute("colspan", ctx_r1.isLabel(field_r3) ? "2" : "1");
32804
33849
  i0.ɵɵadvance();
32805
- i0.ɵɵproperty("formGroup", ctx_r1.editForm.controls["data"])("topLevelFormGroup", ctx_r1.editForm.controls["data"])("caseField", ctx_r1.summaryCaseField(field_r3))("context", ctx_r1.paletteContext)("caseFields", ctx_r1.contextFields);
33850
+ i0.ɵɵproperty("formGroup", ctx_r1.editForm.controls["data"])("topLevelFormGroup", ctx_r1.editForm.controls["data"])("caseField", ctx_r1.summaryCaseField(field_r3))("context", ctx_r1.paletteContext)("valueOrigin", ctx_r1.paletteValueOrigin.FORM)("caseFields", ctx_r1.contextFields);
32806
33851
  i0.ɵɵadvance();
32807
33852
  i0.ɵɵproperty("ngIf", !ctx_r1.caseEdit.isCaseFlagSubmission);
32808
33853
  } }
32809
33854
  function CaseEditSubmitComponent_div_12_ng_container_1_ng_container_7_ng_container_1_ng_container_1_Template(rf, ctx) { if (rf & 1) {
32810
33855
  i0.ɵɵelementContainerStart(0);
32811
- i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_12_ng_container_1_ng_container_7_ng_container_1_ng_container_1_ng_container_1_Template, 6, 12, "ng-container", 7);
33856
+ i0.ɵɵtemplate(1, CaseEditSubmitComponent_div_12_ng_container_1_ng_container_7_ng_container_1_ng_container_1_ng_container_1_Template, 6, 13, "ng-container", 7);
32812
33857
  i0.ɵɵelementContainerEnd();
32813
33858
  } if (rf & 2) {
32814
33859
  const field_r3 = ctx.$implicit;
@@ -32873,7 +33918,7 @@ function CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_tr_3_Templ
32873
33918
  i0.ɵɵadvance(2);
32874
33919
  i0.ɵɵtextInterpolate(field_r6.label);
32875
33920
  i0.ɵɵadvance(2);
32876
- i0.ɵɵproperty("formGroup", ctx_r1.editForm.controls["data"])("caseField", ctx_r1.summaryCaseField(field_r6));
33921
+ i0.ɵɵproperty("formGroup", ctx_r1.editForm.controls["data"])("caseField", ctx_r1.summaryCaseField(field_r6))("valueOrigin", ctx_r1.paletteValueOrigin.FORM);
32877
33922
  } }
32878
33923
  function CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_tr_4_Template(rf, ctx) { if (rf & 1) {
32879
33924
  i0.ɵɵelementStart(0, "tr", 36)(1, "td", 37);
@@ -32884,12 +33929,12 @@ function CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_tr_4_Templ
32884
33929
  const ctx_r1 = i0.ɵɵnextContext(3);
32885
33930
  i0.ɵɵproperty("caseField", field_r6)("formGroup", ctx_r1.editForm.controls["data"])("contextFields", ctx_r1.contextFields);
32886
33931
  i0.ɵɵadvance(2);
32887
- i0.ɵɵproperty("formGroup", ctx_r1.editForm.controls["data"])("caseField", ctx_r1.summaryCaseField(field_r6))("caseFields", ctx_r1.contextFields);
33932
+ i0.ɵɵproperty("formGroup", ctx_r1.editForm.controls["data"])("caseField", ctx_r1.summaryCaseField(field_r6))("valueOrigin", ctx_r1.paletteValueOrigin.FORM)("caseFields", ctx_r1.contextFields);
32888
33933
  } }
32889
33934
  function CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_Template(rf, ctx) { if (rf & 1) {
32890
33935
  i0.ɵɵelementContainerStart(0)(1, 29);
32891
33936
  i0.ɵɵpipe(2, "ccdIsCompound");
32892
- i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_tr_3_Template, 5, 6, "tr", 30)(4, CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_tr_4_Template, 3, 6, "tr", 31);
33937
+ i0.ɵɵtemplate(3, CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_tr_3_Template, 5, 7, "tr", 30)(4, CaseEditSubmitComponent_div_12_ng_container_2_ng_container_3_tr_4_Template, 3, 7, "tr", 31);
32893
33938
  i0.ɵɵelementContainerEnd()();
32894
33939
  } if (rf & 2) {
32895
33940
  const field_r6 = ctx.$implicit;
@@ -33009,6 +34054,7 @@ class CaseEditSubmitComponent {
33009
34054
  profile;
33010
34055
  showSummaryFields;
33011
34056
  paletteContext = PaletteContext.CHECK_YOUR_ANSWER;
34057
+ paletteValueOrigin = PaletteValueOrigin;
33012
34058
  profileSubscription;
33013
34059
  contextFields;
33014
34060
  task;
@@ -33308,7 +34354,7 @@ class CaseEditSubmitComponent {
33308
34354
  return this.placeholderService.resolvePlaceholders(fields, stringToResolve);
33309
34355
  }
33310
34356
  static ɵfac = function CaseEditSubmitComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseEditSubmitComponent)(i0.ɵɵdirectiveInject(CaseEditComponent), i0.ɵɵdirectiveInject(FieldsUtils), i0.ɵɵdirectiveInject(CaseFieldService), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(OrderService), i0.ɵɵdirectiveInject(ProfileNotifier), i0.ɵɵdirectiveInject(MultipageComponentStateService), i0.ɵɵdirectiveInject(FormValidatorsService), i0.ɵɵdirectiveInject(CaseFlagStateService), i0.ɵɵdirectiveInject(LinkedCasesService), i0.ɵɵdirectiveInject(PlaceholderService)); };
33311
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditSubmitComponent, selectors: [["ccd-case-edit-submit"]], standalone: false, decls: 25, vars: 24, consts: [["titleBlock", ""], ["idBlock", ""], [1, "govuk-heading-l"], [4, "ngIf", "ngIfThen", "ngIfElse"], [3, "error"], [3, "callbackErrorsContext", "callbackErrorsSubject"], [1, "check-your-answers", 3, "submit", "formGroup"], [4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], [1, "form-group", "form-group-related"], ["type", "button", 1, "button", "button-secondary", 3, "click", "disabled"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "#", 3, "click"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["class", "text-16", 4, "ngIf"], ["aria-describedby", "check your answers table", 1, "form-table"], [4, "ngFor", "ngForOf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "hidden", "formGroup", "contextFields"], ["class", "valign-top case-field-label", 4, "ngIf"], [1, "form-cell", "case-field-content", "text-16"], [3, "formGroup", "topLevelFormGroup", "caseField", "context", "caseFields"], [1, "valign-top", "case-field-label"], [1, "valign-top", "check-your-answers__change", "case-field-change"], ["href", "#", 3, "click", 4, "ngIf"], ["aria-describedby", "summary fields table", 1, "summary-fields"], [3, "ngSwitch"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["class", "compound-field", "ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], ["id", "summary-field-label"], [1, "form-cell"], [3, "formGroup", "caseField"], ["ccdLabelSubstitutor", "", 1, "compound-field", 3, "caseField", "formGroup", "contextFields"], ["colspan", "2"], [3, "formGroup", "caseField", "caseFields"], ["id", "fieldset-event", "formGroupName", "event"], [2, "display", "none"], [1, "form-group", 3, "ngClass"], ["for", "field-trigger-summary", 1, "form-label"], [1, "form-hint"], ["class", "error-message", 4, "ngIf"], ["type", "text", "id", "field-trigger-summary", "formControlName", "summary", "maxlength", "1024", 1, "form-control", "bottom-30", "width-50", 3, "ngClass"], ["for", "field-trigger-description", 1, "form-label"], ["id", "field-trigger-description", "formControlName", "description", "maxlength", "65536", 1, "form-control", "bottom-30", "width-50", 3, "ngClass"], [1, "error-message"], [3, "eventCanBeCompleted", "eventCompletionParams"]], template: function CaseEditSubmitComponent_Template(rf, ctx) { if (rf & 1) {
34357
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditSubmitComponent, selectors: [["ccd-case-edit-submit"]], standalone: false, decls: 25, vars: 24, consts: [["titleBlock", ""], ["idBlock", ""], [1, "govuk-heading-l"], [4, "ngIf", "ngIfThen", "ngIfElse"], [3, "error"], [3, "callbackErrorsContext", "callbackErrorsSubject"], [1, "check-your-answers", 3, "submit", "formGroup"], [4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], [1, "form-group", "form-group-related"], ["type", "button", 1, "button", "button-secondary", 3, "click", "disabled"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "#", 3, "click"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["class", "text-16", 4, "ngIf"], ["aria-describedby", "check your answers table", 1, "form-table"], [4, "ngFor", "ngForOf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "hidden", "formGroup", "contextFields"], ["class", "valign-top case-field-label", 4, "ngIf"], [1, "form-cell", "case-field-content", "text-16"], [3, "formGroup", "topLevelFormGroup", "caseField", "context", "valueOrigin", "caseFields"], [1, "valign-top", "case-field-label"], [1, "valign-top", "check-your-answers__change", "case-field-change"], ["href", "#", 3, "click", 4, "ngIf"], ["aria-describedby", "summary fields table", 1, "summary-fields"], [3, "ngSwitch"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["class", "compound-field", "ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields", 4, "ngSwitchCase"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], ["id", "summary-field-label"], [1, "form-cell"], [3, "formGroup", "caseField", "valueOrigin"], ["ccdLabelSubstitutor", "", 1, "compound-field", 3, "caseField", "formGroup", "contextFields"], ["colspan", "2"], [3, "formGroup", "caseField", "valueOrigin", "caseFields"], ["id", "fieldset-event", "formGroupName", "event"], [2, "display", "none"], [1, "form-group", 3, "ngClass"], ["for", "field-trigger-summary", 1, "form-label"], [1, "form-hint"], ["class", "error-message", 4, "ngIf"], ["type", "text", "id", "field-trigger-summary", "formControlName", "summary", "maxlength", "1024", 1, "form-control", "bottom-30", "width-50", 3, "ngClass"], ["for", "field-trigger-description", 1, "form-label"], ["id", "field-trigger-description", "formControlName", "description", "maxlength", "65536", 1, "form-control", "bottom-30", "width-50", 3, "ngClass"], [1, "error-message"], [3, "eventCanBeCompleted", "eventCompletionParams"]], template: function CaseEditSubmitComponent_Template(rf, ctx) { if (rf & 1) {
33312
34358
  const _r1 = i0.ɵɵgetCurrentView();
33313
34359
  i0.ɵɵelementStart(0, "div")(1, "h1", 2);
33314
34360
  i0.ɵɵtext(2);
@@ -33369,7 +34415,7 @@ class CaseEditSubmitComponent {
33369
34415
  }
33370
34416
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditSubmitComponent, [{
33371
34417
  type: Component,
33372
- args: [{ selector: 'ccd-case-edit-submit', standalone: false, template: "<div>\n <!-- Event trigger name -->\n <h1 class=\"govuk-heading-l\">{{eventTrigger.name | rpxTranslate}}</h1>\n\n <!--Case ID or Title -->\n <div *ngIf=\"getCaseTitle(); then titleBlock; else idBlock\"></div>\n <ng-template #titleBlock>\n <ccd-markdown [content]=\"getCaseTitle() | ccdCaseTitle: contextFields : editForm.controls['data'] | rpxTranslate\"></ccd-markdown>\n </ng-template>\n <ng-template #idBlock>\n <h2 *ngIf=\"getCaseId()\" class=\"heading-h2\">#{{ getCaseId() | ccdCaseReference }}</h2>\n </ng-template>\n\n <ccd-case-edit-generic-errors [error]=\"caseEdit.error\"></ccd-case-edit-generic-errors>\n\n <ccd-callback-errors [callbackErrorsSubject]=\"caseEdit.callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\"></ccd-callback-errors>\n\n <form class=\"check-your-answers\" [formGroup]=\"editForm\" (submit)=\"submit()\">\n <div *ngIf=\"!caseEdit.isEventCompletionChecksRequired\">\n <ng-container *ngIf=\"checkYourAnswerFieldsToDisplayExists()\">\n <h2 class=\"heading-h2\">{{pageTitle | rpxTranslate }}</h2>\n <span class=\"text-16\" *ngIf=\"!caseEdit.isCaseFlagSubmission\">{{'Check the information below carefully.' | rpxTranslate}}</span>\n\n <table class=\"form-table\" aria-describedby=\"check your answers table\">\n <tbody>\n <ng-container *ngFor=\"let page of wizard.pages\">\n <ng-container *ngIf=\"isShown(page)\">\n <ng-container *ngFor=\"let field of page\n | ccdPageFields: editForm\n | ccdReadFieldsFilter: false :undefined :true :allFieldsValues\n | ccdCYAPageLabelFilter\">\n <ng-container *ngIf=\"canShowFieldInCYA(field)\">\n <tr ccdLabelSubstitutor [caseField]=\"field\" [hidden]=\"field.hidden\"\n [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <th *ngIf=\"!isLabel(field) && !caseEdit.isCaseFlagSubmission\" class=\"valign-top case-field-label\">\n <span class=\"text-16\">{{field.label | rpxTranslate}}</span>\n </th>\n <td class=\"form-cell case-field-content text-16\" [attr.colspan]=\"isLabel(field) ? '2' : '1'\">\n <ccd-field-read\n [formGroup]=\"editForm.controls['data']\" [topLevelFormGroup]=\"editForm.controls['data']\"\n [caseField]=\"summaryCaseField(field)\" [context]=\"paletteContext\" [caseFields]=\"contextFields\"></ccd-field-read>\n </td>\n <ng-container *ngIf=\"!caseEdit.isCaseFlagSubmission\">\n <td class=\"valign-top check-your-answers__change case-field-change\">\n <a *ngIf=\"isChangeAllowed(field)\" (click)=\"navigateToPage(page.id); $event.preventDefault()\"\n href=\"#\">\n <span class=\"text-16\" attr.aria-label=\"{{'Change' | rpxTranslate}} {{ field.label | rpxTranslate }}\">\n {{'Change' | rpxTranslate}}\n </span>\n </a>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </ng-container>\n <ng-container *ngIf=\"readOnlySummaryFieldsToDisplayExists()\">\n\n <table class=\"summary-fields\" aria-describedby=\"summary fields table\">\n <tbody>\n <ng-container *ngFor=\"let field of showSummaryFields\">\n <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n <tr *ngSwitchCase=\"true\" ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <th id=\"summary-field-label\">{{field.label}}</th>\n <td class=\"form-cell\">\n <ccd-field-read [formGroup]=\"editForm.controls['data']\" [caseField]=\"summaryCaseField(field)\"></ccd-field-read>\n </td>\n </tr>\n <tr *ngSwitchCase=\"false\" class=\"compound-field\" ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <td colspan=\"2\">\n <ccd-field-read [formGroup]=\"editForm.controls['data']\" [caseField]=\"summaryCaseField(field)\" [caseFields]=\"contextFields\"></ccd-field-read>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </ng-container>\n <ng-container *ngIf=\"showEventNotes()\">\n <fieldset id=\"fieldset-event\" formGroupName=\"event\">\n <legend style=\"display: none;\"></legend>\n <div class=\"form-group\" [ngClass]=\"{'form-group-error': !!summary && !summary.valid && (summary.dirty || summary.touched)}\">\n <label for=\"field-trigger-summary\" class=\"form-label\">\n Event summary (optional)\n <span class=\"form-hint\">A few words describing the purpose of the event.</span>\n </label>\n <span class=\"error-message\" *ngIf=\"summary?.errors && (summary.dirty || summary.touched)\">\n {{summary.errors | ccdFirstError: eventSummaryLabel | rpxTranslate}}\n </span>\n <input type=\"text\" id=\"field-trigger-summary\" class=\"form-control bottom-30 width-50\"\n [ngClass]=\"{'govuk-input--error': summary?.errors && (summary.dirty || summary.touched)}\" formControlName=\"summary\" maxlength=\"1024\">\n </div>\n <div class=\"form-group\" [ngClass]=\"{'form-group-error': !!description && !description.valid && (description.dirty || description.touched)}\">\n <label for=\"field-trigger-description\" class=\"form-label\">Event description (optional)</label>\n <span class=\"error-message\" *ngIf=\"description?.errors && (description.dirty || description.touched)\">\n {{description.errors | ccdFirstError: eventDescriptionLabel | rpxTranslate}}\n </span>\n <textarea id=\"field-trigger-description\" class=\"form-control bottom-30 width-50\" formControlName=\"description\"\n [ngClass]=\"{'govuk-input--error': description?.errors && (description.dirty || description.touched)}\" maxlength=\"65536\"></textarea>\n </div>\n </fieldset>\n </ng-container>\n </div>\n <ccd-case-event-completion *ngIf=\"caseEdit.isEventCompletionChecksRequired\"\n [eventCompletionParams]=\"caseEdit.eventCompletionParams\"\n (eventCanBeCompleted)=\"onEventCanBeCompleted($event)\">\n </ccd-case-event-completion>\n <div class=\"form-group form-group-related\">\n <button class=\"button button-secondary\" type=\"button\" [disabled]=\"!hasPrevious() || caseEdit.isSubmitting\" (click)=\"previous()\">\n {{'Previous' | rpxTranslate}}\n </button>\n <button type=\"submit\" [disabled]=\"isDisabled\" class=\"button\">\n {{triggerText | rpxTranslate}}\n </button>\n </div>\n <p class=\"cancel\">\n <a (click)=\"cancel(); $event.preventDefault()\" href=\"#\" [class.disabled]=\"caseEdit.isSubmitting\">{{getCancelText() | rpxTranslate}}</a>\n </p>\n </form>\n</div>\n\n", styles: ["#fieldset-case-data{margin-bottom:30px}#fieldset-case-data th{width:1%;white-space:nowrap;vertical-align:top}.compound-field td{padding:0}#confirmation-header{width:630px;background-color:#17958b;border:solid 1px #979797;color:#fff;text-align:center}#confirmation-body{width:630px;background-color:#fff}.valign-top{vertical-align:top}.summary-fields{margin-bottom:30px}.summary-fields tbody tr th,.summary-fields tbody tr td{border-bottom:0px}a.disabled{pointer-events:none;cursor:default}.case-field-label{width:45%}.case-field-content{width:50%}.no-bottom-border{border-bottom:none}.case-field-change{width:5%}.refresh-modal-backdrop{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.refresh-modal{background:#fff;padding:24px;max-width:520px;width:90%;box-shadow:0 8px 24px #0003;border-radius:4px;text-align:center}.refresh-modal .button{margin-top:12px}\n"] }]
34418
+ args: [{ selector: 'ccd-case-edit-submit', standalone: false, template: "<div>\n <!-- Event trigger name -->\n <h1 class=\"govuk-heading-l\">{{eventTrigger.name | rpxTranslate}}</h1>\n\n <!--Case ID or Title -->\n <div *ngIf=\"getCaseTitle(); then titleBlock; else idBlock\"></div>\n <ng-template #titleBlock>\n <ccd-markdown [content]=\"getCaseTitle() | ccdCaseTitle: contextFields : editForm.controls['data'] | rpxTranslate\"></ccd-markdown>\n </ng-template>\n <ng-template #idBlock>\n <h2 *ngIf=\"getCaseId()\" class=\"heading-h2\">#{{ getCaseId() | ccdCaseReference }}</h2>\n </ng-template>\n\n <ccd-case-edit-generic-errors [error]=\"caseEdit.error\"></ccd-case-edit-generic-errors>\n\n <ccd-callback-errors [callbackErrorsSubject]=\"caseEdit.callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\"></ccd-callback-errors>\n\n <form class=\"check-your-answers\" [formGroup]=\"editForm\" (submit)=\"submit()\">\n <div *ngIf=\"!caseEdit.isEventCompletionChecksRequired\">\n <ng-container *ngIf=\"checkYourAnswerFieldsToDisplayExists()\">\n <h2 class=\"heading-h2\">{{pageTitle | rpxTranslate }}</h2>\n <span class=\"text-16\" *ngIf=\"!caseEdit.isCaseFlagSubmission\">{{'Check the information below carefully.' | rpxTranslate}}</span>\n\n <table class=\"form-table\" aria-describedby=\"check your answers table\">\n <tbody>\n <ng-container *ngFor=\"let page of wizard.pages\">\n <ng-container *ngIf=\"isShown(page)\">\n <ng-container *ngFor=\"let field of page\n | ccdPageFields: editForm\n | ccdReadFieldsFilter: false :undefined :true :allFieldsValues\n | ccdCYAPageLabelFilter\">\n <ng-container *ngIf=\"canShowFieldInCYA(field)\">\n <tr ccdLabelSubstitutor [caseField]=\"field\" [hidden]=\"field.hidden\"\n [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <th *ngIf=\"!isLabel(field) && !caseEdit.isCaseFlagSubmission\" class=\"valign-top case-field-label\">\n <span class=\"text-16\">{{field.label | rpxTranslate}}</span>\n </th>\n <td class=\"form-cell case-field-content text-16\" [attr.colspan]=\"isLabel(field) ? '2' : '1'\">\n <ccd-field-read\n [formGroup]=\"editForm.controls['data']\" [topLevelFormGroup]=\"editForm.controls['data']\"\n [caseField]=\"summaryCaseField(field)\" [context]=\"paletteContext\" [valueOrigin]=\"paletteValueOrigin.FORM\" [caseFields]=\"contextFields\"></ccd-field-read>\n </td>\n <ng-container *ngIf=\"!caseEdit.isCaseFlagSubmission\">\n <td class=\"valign-top check-your-answers__change case-field-change\">\n <a *ngIf=\"isChangeAllowed(field)\" (click)=\"navigateToPage(page.id); $event.preventDefault()\"\n href=\"#\">\n <span class=\"text-16\" attr.aria-label=\"{{'Change' | rpxTranslate}} {{ field.label | rpxTranslate }}\">\n {{'Change' | rpxTranslate}}\n </span>\n </a>\n </td>\n </ng-container>\n </tr>\n </ng-container>\n </ng-container>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </ng-container>\n <ng-container *ngIf=\"readOnlySummaryFieldsToDisplayExists()\">\n\n <table class=\"summary-fields\" aria-describedby=\"summary fields table\">\n <tbody>\n <ng-container *ngFor=\"let field of showSummaryFields\">\n <ng-container [ngSwitch]=\"!(field | ccdIsCompound)\">\n <tr *ngSwitchCase=\"true\" ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <th id=\"summary-field-label\">{{field.label}}</th>\n <td class=\"form-cell\">\n <ccd-field-read [formGroup]=\"editForm.controls['data']\" [caseField]=\"summaryCaseField(field)\" [valueOrigin]=\"paletteValueOrigin.FORM\"></ccd-field-read>\n </td>\n </tr>\n <tr *ngSwitchCase=\"false\" class=\"compound-field\" ccdLabelSubstitutor [caseField]=\"field\" [formGroup]=\"editForm.controls['data']\" [contextFields]=\"contextFields\">\n <td colspan=\"2\">\n <ccd-field-read [formGroup]=\"editForm.controls['data']\" [caseField]=\"summaryCaseField(field)\" [valueOrigin]=\"paletteValueOrigin.FORM\" [caseFields]=\"contextFields\"></ccd-field-read>\n </td>\n </tr>\n </ng-container>\n </ng-container>\n </tbody>\n </table>\n </ng-container>\n <ng-container *ngIf=\"showEventNotes()\">\n <fieldset id=\"fieldset-event\" formGroupName=\"event\">\n <legend style=\"display: none;\"></legend>\n <div class=\"form-group\" [ngClass]=\"{'form-group-error': !!summary && !summary.valid && (summary.dirty || summary.touched)}\">\n <label for=\"field-trigger-summary\" class=\"form-label\">\n Event summary (optional)\n <span class=\"form-hint\">A few words describing the purpose of the event.</span>\n </label>\n <span class=\"error-message\" *ngIf=\"summary?.errors && (summary.dirty || summary.touched)\">\n {{summary.errors | ccdFirstError: eventSummaryLabel | rpxTranslate}}\n </span>\n <input type=\"text\" id=\"field-trigger-summary\" class=\"form-control bottom-30 width-50\"\n [ngClass]=\"{'govuk-input--error': summary?.errors && (summary.dirty || summary.touched)}\" formControlName=\"summary\" maxlength=\"1024\">\n </div>\n <div class=\"form-group\" [ngClass]=\"{'form-group-error': !!description && !description.valid && (description.dirty || description.touched)}\">\n <label for=\"field-trigger-description\" class=\"form-label\">Event description (optional)</label>\n <span class=\"error-message\" *ngIf=\"description?.errors && (description.dirty || description.touched)\">\n {{description.errors | ccdFirstError: eventDescriptionLabel | rpxTranslate}}\n </span>\n <textarea id=\"field-trigger-description\" class=\"form-control bottom-30 width-50\" formControlName=\"description\"\n [ngClass]=\"{'govuk-input--error': description?.errors && (description.dirty || description.touched)}\" maxlength=\"65536\"></textarea>\n </div>\n </fieldset>\n </ng-container>\n </div>\n <ccd-case-event-completion *ngIf=\"caseEdit.isEventCompletionChecksRequired\"\n [eventCompletionParams]=\"caseEdit.eventCompletionParams\"\n (eventCanBeCompleted)=\"onEventCanBeCompleted($event)\">\n </ccd-case-event-completion>\n <div class=\"form-group form-group-related\">\n <button class=\"button button-secondary\" type=\"button\" [disabled]=\"!hasPrevious() || caseEdit.isSubmitting\" (click)=\"previous()\">\n {{'Previous' | rpxTranslate}}\n </button>\n <button type=\"submit\" [disabled]=\"isDisabled\" class=\"button\">\n {{triggerText | rpxTranslate}}\n </button>\n </div>\n <p class=\"cancel\">\n <a (click)=\"cancel(); $event.preventDefault()\" href=\"#\" [class.disabled]=\"caseEdit.isSubmitting\">{{getCancelText() | rpxTranslate}}</a>\n </p>\n </form>\n</div>\n", styles: ["#fieldset-case-data{margin-bottom:30px}#fieldset-case-data th{width:1%;white-space:nowrap;vertical-align:top}.compound-field td{padding:0}#confirmation-header{width:630px;background-color:#17958b;border:solid 1px #979797;color:#fff;text-align:center}#confirmation-body{width:630px;background-color:#fff}.valign-top{vertical-align:top}.summary-fields{margin-bottom:30px}.summary-fields tbody tr th,.summary-fields tbody tr td{border-bottom:0px}a.disabled{pointer-events:none;cursor:default}.case-field-label{width:45%}.case-field-content{width:50%}.no-bottom-border{border-bottom:none}.case-field-change{width:5%}.refresh-modal-backdrop{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.refresh-modal{background:#fff;padding:24px;max-width:520px;width:90%;box-shadow:0 8px 24px #0003;border-radius:4px;text-align:center}.refresh-modal .button{margin-top:12px}\n"] }]
33373
34419
  }], () => [{ type: CaseEditComponent }, { type: FieldsUtils }, { type: CaseFieldService }, { type: i1$1.ActivatedRoute }, { type: OrderService }, { type: ProfileNotifier }, { type: MultipageComponentStateService }, { type: FormValidatorsService }, { type: CaseFlagStateService }, { type: LinkedCasesService }, { type: PlaceholderService }], null); })();
33374
34420
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditSubmitComponent, { className: "CaseEditSubmitComponent", filePath: "lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.ts", lineNumber: 32 }); })();
33375
34421
 
@@ -34730,6 +35776,7 @@ class WorkbasketFiltersComponent {
34730
35776
  }
34731
35777
  }
34732
35778
  onJurisdictionIdChange() {
35779
+ this.clearStoredWorkbasketFilterValues();
34733
35780
  if (this.selected.jurisdiction) {
34734
35781
  this.jurisdictionService.announceSelectedJurisdiction(this.selected.jurisdiction);
34735
35782
  this.selectedJurisdictionCaseTypes = this.selected.jurisdiction.caseTypes.length > 0
@@ -34744,7 +35791,7 @@ class WorkbasketFiltersComponent {
34744
35791
  this.selected.caseState = null;
34745
35792
  this.clearWorkbasketInputs();
34746
35793
  if (!this.isApplyButtonDisabled()) {
34747
- this.onCaseTypeIdChange();
35794
+ this.onCaseTypeIdChange(false);
34748
35795
  }
34749
35796
  }
34750
35797
  else {
@@ -34752,7 +35799,10 @@ class WorkbasketFiltersComponent {
34752
35799
  this.resetCaseState();
34753
35800
  }
34754
35801
  }
34755
- onCaseTypeIdChange() {
35802
+ onCaseTypeIdChange(clearStoredValues = true) {
35803
+ if (clearStoredValues) {
35804
+ this.clearStoredWorkbasketFilterValues();
35805
+ }
34756
35806
  if (this.selected.caseType) {
34757
35807
  this.selectedCaseTypeStates = this.sortStates(this.selected.caseType.states);
34758
35808
  this.selected.caseState = null;
@@ -34846,7 +35896,7 @@ class WorkbasketFiltersComponent {
34846
35896
  this.selectedJurisdictionCaseTypes = this.selected.jurisdiction.caseTypes;
34847
35897
  this.selected.caseType = this.selectCaseType(this.selected, this.selectedJurisdictionCaseTypes, routeSnapshot);
34848
35898
  if (this.selected.caseType) {
34849
- this.onCaseTypeIdChange();
35899
+ this.onCaseTypeIdChange(false);
34850
35900
  this.selected.caseState = this.selectCaseState(this.selected.caseType, routeSnapshot);
34851
35901
  }
34852
35902
  this.workbasketDefaults = true;
@@ -34893,6 +35943,9 @@ class WorkbasketFiltersComponent {
34893
35943
  this.workbasketInputsReady = false;
34894
35944
  this.workbasketInputs = [];
34895
35945
  }
35946
+ clearStoredWorkbasketFilterValues() {
35947
+ this.windowService.removeLocalStorage(FORM_GROUP_VAL_LOC_STORAGE);
35948
+ }
34896
35949
  resetCaseState() {
34897
35950
  this.defaults.state_id = null;
34898
35951
  this.selected.caseState = null;
@@ -37834,12 +38887,9 @@ class TaskAssignedComponent {
37834
38887
  // Current user is a caseworker?
37835
38888
  this.jurisdiction = this.task.jurisdiction;
37836
38889
  this.caseType = this.task.case_type_id;
37837
- this.caseworkerSubscription = this.caseworkerService.getCaseworkers(this.task.jurisdiction).subscribe(result => {
37838
- if (result && result[0].service === this.task.jurisdiction && result[0].caseworkers) {
37839
- const caseworker = result[0].caseworkers.find(x => x.idamId === this.task.assignee);
37840
- if (caseworker) {
37841
- this.assignedUserName = `${caseworker.firstName} ${caseworker.lastName}`;
37842
- }
38890
+ this.caseworkerSubscription = this.caseworkerService.getUserByIdamId(this.task.assignee).subscribe(caseworker => {
38891
+ if (caseworker) {
38892
+ this.assignedUserName = `${caseworker.firstName} ${caseworker.lastName}`;
37843
38893
  }
37844
38894
  if (!this.assignedUserName) {
37845
38895
  // Current user is a judicial user?
@@ -41200,6 +42250,7 @@ class SearchResultComponent {
41200
42250
  placeholderService;
41201
42251
  browserService;
41202
42252
  sessionStorageService;
42253
+ caseFlagRefdataService;
41203
42254
  static PARAM_JURISDICTION = 'jurisdiction';
41204
42255
  static PARAM_CASE_TYPE = 'case-type';
41205
42256
  static PARAM_CASE_STATE = 'case-state';
@@ -41231,12 +42282,15 @@ class SearchResultComponent {
41231
42282
  draftsCount;
41232
42283
  consumerSortParameters = { column: null, order: null, type: null };
41233
42284
  selectedCases = [];
41234
- constructor(searchResultViewItemComparatorFactory, appConfig, activityService, caseReferencePipe, placeholderService, browserService, sessionStorageService) {
42285
+ hmctsServiceIdByCaseType = new Map();
42286
+ pendingHmctsServiceIdCaseTypes = new Set();
42287
+ constructor(searchResultViewItemComparatorFactory, appConfig, activityService, caseReferencePipe, placeholderService, browserService, sessionStorageService, caseFlagRefdataService) {
41235
42288
  this.activityService = activityService;
41236
42289
  this.caseReferencePipe = caseReferencePipe;
41237
42290
  this.placeholderService = placeholderService;
41238
42291
  this.browserService = browserService;
41239
42292
  this.sessionStorageService = sessionStorageService;
42293
+ this.caseFlagRefdataService = caseFlagRefdataService;
41240
42294
  this.searchResultViewItemComparatorFactory = searchResultViewItemComparatorFactory;
41241
42295
  this.paginationPageSize = appConfig.getPaginationPageSize();
41242
42296
  this.hideRows = false;
@@ -41266,6 +42320,7 @@ class SearchResultComponent {
41266
42320
  return a.order - b.order;
41267
42321
  });
41268
42322
  this.hydrateResultView();
42323
+ this.resolveHmctsServiceIdsForResults();
41269
42324
  this.draftsCount = this.draftsCount ? this.draftsCount : this.numberOfDrafts();
41270
42325
  }
41271
42326
  if (changes['page']) {
@@ -41413,8 +42468,48 @@ class SearchResultComponent {
41413
42468
  value: result.case_fields[col.case_field_id],
41414
42469
  display_context_parameter: col.display_context_parameter,
41415
42470
  display_context: col.display_context,
42471
+ hmctsServiceId: this.hmctsServiceIdByCaseType.get(this.getCaseTypeId(result)) || ''
42472
+ });
42473
+ }
42474
+ resolveHmctsServiceIdsForResults() {
42475
+ this.resultView.results.forEach((result) => {
42476
+ const caseTypeId = this.getCaseTypeId(result);
42477
+ if (!caseTypeId || !this.caseFlagRefdataService) {
42478
+ return;
42479
+ }
42480
+ if (this.hmctsServiceIdByCaseType.has(caseTypeId)) {
42481
+ this.applyHmctsServiceIdToResultFields(caseTypeId, this.hmctsServiceIdByCaseType.get(caseTypeId));
42482
+ return;
42483
+ }
42484
+ if (this.pendingHmctsServiceIdCaseTypes.has(caseTypeId)) {
42485
+ return;
42486
+ }
42487
+ this.pendingHmctsServiceIdCaseTypes.add(caseTypeId);
42488
+ this.caseFlagRefdataService.getHmctsServiceDetailsByCaseType(caseTypeId).subscribe({
42489
+ next: (serviceDetails) => {
42490
+ const hmctsServiceId = serviceDetails?.find((serviceDetail) => !!serviceDetail.service_code)?.service_code;
42491
+ if (hmctsServiceId) {
42492
+ this.hmctsServiceIdByCaseType.set(caseTypeId, hmctsServiceId);
42493
+ this.applyHmctsServiceIdToResultFields(caseTypeId, hmctsServiceId);
42494
+ }
42495
+ },
42496
+ error: () => this.pendingHmctsServiceIdCaseTypes.delete(caseTypeId),
42497
+ complete: () => this.pendingHmctsServiceIdCaseTypes.delete(caseTypeId)
42498
+ });
42499
+ });
42500
+ }
42501
+ applyHmctsServiceIdToResultFields(caseTypeId, hmctsServiceId) {
42502
+ this.resultView.results
42503
+ .filter((result) => this.getCaseTypeId(result) === caseTypeId)
42504
+ .forEach((result) => {
42505
+ Object.keys(result.columns || {}).forEach((columnId) => {
42506
+ result.columns[columnId].hmctsServiceId = hmctsServiceId;
42507
+ });
41416
42508
  });
41417
42509
  }
42510
+ getCaseTypeId(result) {
42511
+ return result?.case_fields?.['[CASE_TYPE]'] || this.caseType?.id;
42512
+ }
41418
42513
  getColumnsWithPrefix(col, result) {
41419
42514
  col.value = this.draftPrefixOrGet(col, result);
41420
42515
  col.value = this.placeholderService.resolvePlaceholders(result.case_fields, col.value);
@@ -41537,7 +42632,7 @@ class SearchResultComponent {
41537
42632
  }
41538
42633
  // eslint-disable-next-line @typescript-eslint/no-empty-function
41539
42634
  noop() { }
41540
- static ɵfac = function SearchResultComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchResultComponent)(i0.ɵɵdirectiveInject(SearchResultViewItemComparatorFactory), i0.ɵɵdirectiveInject(AbstractAppConfig), i0.ɵɵdirectiveInject(ActivityService), i0.ɵɵdirectiveInject(CaseReferencePipe), i0.ɵɵdirectiveInject(PlaceholderService), i0.ɵɵdirectiveInject(BrowserService), i0.ɵɵdirectiveInject(SessionStorageService)); };
42635
+ static ɵfac = function SearchResultComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchResultComponent)(i0.ɵɵdirectiveInject(SearchResultViewItemComparatorFactory), i0.ɵɵdirectiveInject(AbstractAppConfig), i0.ɵɵdirectiveInject(ActivityService), i0.ɵɵdirectiveInject(CaseReferencePipe), i0.ɵɵdirectiveInject(PlaceholderService), i0.ɵɵdirectiveInject(BrowserService), i0.ɵɵdirectiveInject(SessionStorageService), i0.ɵɵdirectiveInject(CaseFlagRefdataService, 8)); };
41541
42636
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SearchResultComponent, selectors: [["ccd-search-result"]], inputs: { caseLinkUrlTemplate: "caseLinkUrlTemplate", jurisdiction: "jurisdiction", caseType: "caseType", caseState: "caseState", caseFilterFG: "caseFilterFG", resultView: "resultView", page: "page", paginationMetadata: "paginationMetadata", metadataFields: "metadataFields", selectionEnabled: "selectionEnabled", showOnlySelected: "showOnlySelected", preSelectedCases: "preSelectedCases", consumerSortingEnabled: "consumerSortingEnabled" }, outputs: { selection: "selection", changePage: "changePage", clickCase: "clickCase", sortHandler: "sortHandler" }, standalone: false, features: [i0.ɵɵNgOnChangesFeature], decls: 3, vars: 3, consts: [["case_reference", ""], [4, "ngIf"], [3, "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel", "pageChange", 4, "ngIf"], ["class", "notification", 4, "ngIf"], ["id", "search-result-heading__text", "tabindex", "-1", 1, "heading-h2"], ["class", "govuk-warning-text pagination-limit-warning", 4, "ngIf"], ["class", "pagination-top", 4, "ngIf"], ["class", "reset-selection", 4, "ngIf"], ["scope", "row"], ["class", "govuk-table__checkbox", 4, "ngIf"], ["class", "search-result-column-header", "scope", "col", 4, "ngFor", "ngForOf"], ["style", "width: 110px;", "scope", "col", 4, "ngIf"], [1, "govuk-warning-text", "pagination-limit-warning"], ["aria-hidden", "true", 1, "govuk-warning-text__icon"], [1, "govuk-warning-text__text"], [1, "govuk-warning-text__assistive"], [1, "pagination-top"], ["id", "search-result-summary__text", 1, "text-16"], [1, "govuk-!-font-weight-bold"], [1, "reset-selection"], ["href", "#", 1, "search-result-reset-link", 3, "click"], [1, "govuk-table__checkbox"], [1, "govuk-checkboxes__item"], ["id", "select-all", "name", "select-all", "type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "checked", "disabled"], ["for", "select-all", 1, "govuk-label", "govuk-checkboxes__label"], ["scope", "col", 1, "search-result-column-header"], [1, "search-result-column-label", 3, "click", "keyup"], ["class", "search-result-column-sort", 4, "ngIf"], [1, "search-result-column-sort"], ["href", "#", 1, "sort-widget", 3, "click", "keyup.enter", "innerHTML"], ["scope", "col", 2, "width", "110px"], [4, "ngFor", "ngForOf"], ["class", "govuk-table__checkbox", "scope", "col", 4, "ngIf"], ["class", "search-result-column-cell", "scope", "row", 4, "ngFor", "ngForOf"], ["scope", "col", 1, "govuk-table__checkbox"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "id", "name", "checked", "disabled"], [1, "govuk-label", "govuk-checkboxes__label", 3, "for"], ["scope", "row", 1, "search-result-column-cell"], ["class", "govuk-link", 3, "routerLink", 4, "ngIf"], ["class", "text-16", 3, "visibility", 4, "ngIf"], [1, "govuk-link", 3, "routerLink"], ["class", "text-16", 4, "ngIf"], [1, "text-16"], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute", 4, "ngIf", "ngIfElse"], ["ccdLabelSubstitutor", "", 3, "caseField", "contextFields", "elementsToSubstitute"], [3, "caseId", "displayMode"], ["type", "checkbox", 1, "govuk-checkboxes__input", 3, "change", "keyup", "id", "name", "checked", "disabled"], [3, "pageChange", "visibilityLabel", "autoHide", "maxSize", "screenReaderPaginationLabel", "screenReaderPageLabel", "screenReaderCurrentLabel"], [1, "notification"]], template: function SearchResultComponent_Template(rf, ctx) { if (rf & 1) {
41542
42637
  i0.ɵɵtemplate(0, SearchResultComponent_table_0_Template, 16, 11, "table", 1)(1, SearchResultComponent_ccd_pagination_1_Template, 1, 6, "ccd-pagination", 2)(2, SearchResultComponent_div_2_Template, 4, 6, "div", 3);
41543
42638
  } if (rf & 2) {
@@ -41551,7 +42646,9 @@ class SearchResultComponent {
41551
42646
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SearchResultComponent, [{
41552
42647
  type: Component,
41553
42648
  args: [{ selector: 'ccd-search-result', standalone: false, template: "<table *ngIf=\"hasResults() || hasDrafts()\">\n <caption>\n <h2 class=\"heading-h2\" id=\"search-result-heading__text\" tabindex=\"-1\">{{ (caseState ? 'Your cases' : 'Search result') | rpxTranslate}}</h2>\n\n <div class=\"govuk-warning-text pagination-limit-warning\" *ngIf=\"paginationLimitEnforced\">\n <span class=\"govuk-warning-text__icon\" aria-hidden=\"true\">!</span>\n <strong class=\"govuk-warning-text__text\">\n <span class=\"govuk-warning-text__assistive\">{{'Warning' | rpxTranslate}}</span>\n {{'The total size of the result set is' | rpxTranslate}} {{paginationMetadata.totalResultsCount | number}}. {{'Only the first 10,000 records are available for display.' | rpxTranslate}}\n </strong>\n </div>\n\n <div *ngIf=\"(hasResults() || hasDrafts())\" class=\"pagination-top\">\n <output [attr.aria-label]=\"getTotalResults() + ' ' + ('results have been found' | rpxTranslate)\"></output>\n <span class=\"text-16\" id=\"search-result-summary__text\">{{'Showing' | rpxTranslate}}\n <span class=\"govuk-!-font-weight-bold\">{{ getFirstResult() }}</span>\n {{'to' | rpxTranslate}}\n <span class=\"govuk-!-font-weight-bold\">{{ getLastResult() }}</span>\n {{'of' | rpxTranslate}}\n <span class=\"govuk-!-font-weight-bold\">{{ getTotalResults() }}</span> {{'results' | rpxTranslate}}</span>\n </div>\n <div *ngIf=\"(hasResults() || hasDrafts()) && selectionEnabled\" class=\"reset-selection\"\n [attr.aria-label]=\"'Reset selection' | rpxTranslate\">\n <span><a class=\"search-result-reset-link\" href=\"#\" (click)=\"clearSelection(); $event.preventDefault()\">{{'Reset case selection' | rpxTranslate}}</a></span>\n </div>\n </caption>\n <thead>\n <tr scope=\"row\">\n <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-all\" name=\"select-all\" type=\"checkbox\" (change)=\"selectAll()\" [checked]=\"allOnPageSelected()\" [disabled]=\"!canAnyBeShared()\" />\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-all\" [attr.aria-labelledby]=\"'select-all'\">\n </label>\n </div>\n </td>\n <th *ngFor=\"let col of resultView.columns\" class=\"search-result-column-header\"\n [attr.aria-sort]=\"isSortAscending(col) === null ? null : (isSortAscending(col) ? 'ascending' : 'descending')\" scope=\"col\">\n <div>\n <div class=\"search-result-column-label\" (click)=\"sort(col)\" (keyup)=\"noop()\">\n {{ isTranslatable(col) ? (col.label | rpxTranslate) : col.label }}\n </div>\n <div *ngIf=\"comparator(col)\" class=\"search-result-column-sort\">\n <a (click)=\"sort(col); $event.preventDefault()\" (keyup.enter)=\"sort(col)\" class=\"sort-widget\" [innerHTML]=\"sortWidget(col)\" [attr.aria-label]=\"'Sort ' + col.label | rpxTranslate\" href=\"#\"></a>\n </div>\n </div>\n </th>\n <th *ngIf=\"activityEnabled()\" style=\"width: 110px;\" scope=\"col\">&ZeroWidthSpace;</th>\n </tr>\n </thead>\n\n <tbody>\n <!-- sorted by consumer -->\n <ng-container *ngIf=\"consumerSortingEnabled\">\n <tr *ngFor=\"let result of resultView.results | paginate: { itemsPerPage: paginationPageSize, currentPage: selected.page, totalItems: resultTotal }\">\n <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\" scope=\"col\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-{{ result.case_id }}\" name=\"select-{{ result.case_id }}\"\n type=\"checkbox\" (change)=\"changeSelection(result)\" [checked]=\"isSelected(result)\" [disabled]=\"!canBeShared(result)\" />\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-{{ result.case_id }}\" [attr.aria-labelledby]=\"'select-' + result.case_id\">\n </label>\n </div>\n </td>\n <td class=\"search-result-column-cell\" *ngFor=\"let col of resultView.columns; let colIndex = index\" scope=\"row\">\n <a *ngIf=\"colIndex == 0\" [routerLink]=\"prepareCaseLinkUrl(result.case_id)\"\n attr.aria-label=\"go to case with Case reference:{{ result.case_id | ccdCaseReference }}\" class=\"govuk-link\">\n <ng-container class=\"text-16\" *ngIf=\"!hideRows\">\n <ccd-field-read *ngIf=\"draftPrefixOrGet(col, result); else case_reference\"\n ccdLabelSubstitutor [caseField]=\"getColumnsWithPrefix(result.columns[col.case_field_id], result)\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n <ng-template #case_reference>{{result.case_id | ccdCaseReference}}</ng-template>\n </ng-container>\n </a>\n <div *ngIf=\"colIndex != 0\" class=\"text-16\" [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-field-read ccdLabelSubstitutor\n [caseField]=\"result.columns[col.case_field_id]\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n </div>\n </td>\n <td *ngIf=\"activityEnabled()\">\n <div [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-activity [caseId]=\"result.case_id\" [displayMode]=\"ICON\"></ccd-activity>\n </div>\n </td>\n </tr>\n </ng-container>\n <!-- sorted by toolkit -->\n <ng-container *ngIf=\"!consumerSortingEnabled\">\n <tr *ngFor=\"let result of resultView.results | ccdSortSearchResult : sortParameters | paginate: { itemsPerPage: paginationPageSize, currentPage: selected.page, totalItems: resultTotal }\">\n <td *ngIf=\"selectionEnabled\" class=\"govuk-table__checkbox\" scope=\"col\">\n <div class=\"govuk-checkboxes__item\">\n <input class=\"govuk-checkboxes__input\" id=\"select-{{ result.case_id }}\" name=\"select-{{ result.case_id }}\"\n type=\"checkbox\" (change)=\"changeSelection(result)\" [checked]=\"isSelected(result)\" [disabled]=\"!canBeShared(result)\" (keyup)=\"onKeyUp($event, result)\" />\n <label class=\"govuk-label govuk-checkboxes__label\" for=\"select-{{ result.case_id }}\" [attr.aria-labelledby]=\"'select-' + result.case_id\">\n </label>\n </div>\n </td>\n <td class=\"search-result-column-cell\" *ngFor=\"let col of resultView.columns; let colIndex = index\" scope=\"row\">\n\n <a *ngIf=\"colIndex == 0\" [routerLink]=\"prepareCaseLinkUrl(result.case_id)\"\n attr.aria-label=\"go to case with Case reference:{{ result.case_id | ccdCaseReference }}\" class=\"govuk-link\">\n <ng-container class=\"text-16\" *ngIf=\"!hideRows\">\n <ccd-field-read *ngIf=\"draftPrefixOrGet(col, result); else case_reference\"\n ccdLabelSubstitutor [caseField]=\"getColumnsWithPrefix(result.columns[col.case_field_id], result)\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n <ng-template #case_reference>{{result.case_id | ccdCaseReference}}</ng-template>\n </ng-container>\n </a>\n <div *ngIf=\"colIndex != 0\" class=\"text-16\" [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-field-read ccdLabelSubstitutor\n [caseField]=\"result.columns[col.case_field_id]\"\n [contextFields]=\"result.hydrated_case_fields\"\n [elementsToSubstitute]=\"['value']\"></ccd-field-read>\n </div>\n </td>\n <td *ngIf=\"activityEnabled()\">\n <div [style.visibility]=\"hideRows ? 'hidden' : 'visible'\">\n <ccd-activity [caseId]=\"result.case_id\" [displayMode]=\"ICON\"></ccd-activity>\n </div>\n </td>\n </tr>\n </ng-container>\n\n </tbody>\n</table>\n\n<ccd-pagination\n *ngIf=\"hasResults()\"\n (pageChange)=\"goToPage($event)\"\n [visibilityLabel]=\"hideRows ? 'hidden' : 'visible'\"\n [autoHide]=\"true\"\n [maxSize]=\"8\"\n [screenReaderPaginationLabel]=\"'Pagination'\"\n [screenReaderPageLabel]=\"page\"\n [screenReaderCurrentLabel]=\"'You\\'re on page'\"></ccd-pagination>\n\n<div *ngIf=\"!(hasResults() || hasDrafts())\" class=\"notification\"\n[attr.aria-describedby]=\"'No cases found. Try using different filters.' | rpxTranslate\">\n{{'No cases found. Try using different filters.' | rpxTranslate}}\n</div>\n", styles: ["table thead tr th{vertical-align:top}table tbody tr td{font-size:16px;word-wrap:break-word}table tbody tr td a{float:left}table .caseid-col{white-space:nowrap}.notification{text-align:center;padding:30px 0;margin-top:75px}a:hover{color:#005ea5}.search-result-reset-link{padding-right:15px;padding-left:15px}.search-result-column-header{width:unset;table-layout:normal}.search-result-column-header div{display:table-cell;width:auto}@media screen and (max-width:379px){.search-result-column-header div{display:block;float:right}}.search-result-column-label{font-size:16px;font-weight:700;word-wrap:break-word;cursor:pointer;padding-right:15px}.search-result-column-sort{font-size:16px}.sort-widget{cursor:pointer;text-decoration:none;color:#231f20}span.heading-medium{margin-top:-20px}.govuk-table__checkbox{vertical-align:middle;padding-left:3px}#search-result-heading__text:focus{outline:none}\n"] }]
41554
- }], () => [{ type: SearchResultViewItemComparatorFactory }, { type: AbstractAppConfig }, { type: ActivityService }, { type: CaseReferencePipe }, { type: PlaceholderService }, { type: BrowserService }, { type: SessionStorageService }], { caseLinkUrlTemplate: [{
42649
+ }], () => [{ type: SearchResultViewItemComparatorFactory }, { type: AbstractAppConfig }, { type: ActivityService }, { type: CaseReferencePipe }, { type: PlaceholderService }, { type: BrowserService }, { type: SessionStorageService }, { type: CaseFlagRefdataService, decorators: [{
42650
+ type: Optional
42651
+ }] }], { caseLinkUrlTemplate: [{
41555
42652
  type: Input
41556
42653
  }], jurisdiction: [{
41557
42654
  type: Input
@@ -41586,7 +42683,7 @@ class SearchResultComponent {
41586
42683
  }], sortHandler: [{
41587
42684
  type: Output
41588
42685
  }] }); })();
41589
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchResultComponent, { className: "SearchResultComponent", filePath: "lib/shared/components/search-result/search-result.component.ts", lineNumber: 19 }); })();
42686
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SearchResultComponent, { className: "SearchResultComponent", filePath: "lib/shared/components/search-result/search-result.component.ts", lineNumber: 21 }); })();
41590
42687
 
41591
42688
  class SearchResultModule {
41592
42689
  static ɵfac = function SearchResultModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SearchResultModule)(); };
@@ -41887,5 +42984,5 @@ class TestRouteSnapshotBuilder {
41887
42984
  * Generated bundle index. Do not edit.
41888
42985
  */
41889
42986
 
41890
- export { AbstractAppConfig, AbstractFieldReadComponent, AbstractFieldWriteComponent, AbstractFieldWriteJourneyComponent, AbstractJourneyComponent, Activity, ActivityBannerComponent, ActivityComponent, ActivityIconComponent, ActivityInfo, ActivityModule, ActivityPollingService, ActivityService, AddCommentsComponent, AddCommentsErrorMessage, AddCommentsStep, AddressModel, AddressOption, AddressesService, Alert, AlertComponent, AlertIconClassPipe, AlertMessageType, AlertModule, AlertService, AuthService, Banner, BannersService, BeforeYouStartComponent, BodyComponent, BrowserService, CCDCaseLinkType, COMPONENT_PORTAL_INJECTION_TOKEN, CallbackErrorsComponent, CallbackErrorsContext, CaseAccessUtils, CaseBasicAccessViewComponent, CaseChallengedAccessRequestComponent, CaseChallengedAccessSuccessComponent, CaseCreateComponent, CaseDetails, CaseEditComponent, CaseEditConfirmComponent, CaseEditDataModule, CaseEditDataService, CaseEditFormComponent, CaseEditPageComponent, CaseEditSubmitComponent, CaseEditWizardGuard, CaseEditorConfig, CaseEditorModule, CaseEvent, CaseEventCompletionComponent, CaseEventCompletionTaskCancelledComponent, CaseEventCompletionTaskReassignedComponent, CaseEventData, CaseEventTrigger, CaseEventTriggerComponent, CaseField, CaseFieldService, CaseFileViewFieldComponent, CaseFileViewFolderComponent, CaseFileViewFolderDocumentActionsComponent, CaseFileViewFolderSelectorComponent, CaseFileViewFolderSortComponent, CaseFileViewFolderToggleComponent, CaseFileViewOverlayMenuComponent, CaseFileViewService, CaseFlagCheckYourAnswersPageStep, CaseFlagDisplayContextParameter, CaseFlagErrorMessage, CaseFlagFieldState, CaseFlagFormFields, CaseFlagRefdataService, CaseFlagStatus, CaseFlagSummaryListComponent, CaseFlagSummaryListDisplayMode, CaseFlagTableComponent, CaseFlagWizardStepTitle, CaseFullAccessViewComponent, CaseHeaderComponent, CaseHeaderModule, CaseHistoryViewerFieldComponent, CaseLink, CaseLinkResponse, CaseListComponent, CaseListFiltersComponent, CaseListFiltersModule, CaseListModule, CaseNotifier, CasePaymentHistoryViewerFieldComponent, CasePrintDocument, CasePrinterComponent, CaseProgressComponent, CaseReferencePipe, CaseResolver, CaseSpecificAccessRequestComponent, CaseSpecificAccessSuccessComponent, CaseState, CaseTab, CaseTimelineComponent, CaseTimelineDisplayMode, CaseTimelineModule, CaseType, CaseTypeLite, CaseView, CaseViewComponent, CaseViewEvent, CaseViewTrigger, CaseViewerComponent, CaseViewerModule, CasesService, CaseworkerService, CcdCYAPageLabelFilterPipe, CcdCaseTitlePipe, CcdCollectionTableCaseFieldsFilterPipe, CcdPageFieldsPipe, CcdTabFieldsPipe, CheckYourAnswersComponent, CloseQueryComponent, ConditionalShowFormDirective, ConditionalShowModule, ConditionalShowRegistrarService, ConfirmFlagStatusComponent, ConfirmStatusErrorMessage, ConfirmStatusStep, Confirmation, ConvertHrefToRouterService, CreateCaseFiltersComponent, CreateCaseFiltersModule, CreateCaseFiltersSelection, DRAFT_PREFIX, DRAFT_QUERY_PARAM, DashPipe, DateInputComponent, DatePipe, DateTimeFormatUtils, DatetimePickerComponent, DefinitionsModule, DefinitionsService, DeleteOrCancelDialogComponent, DialogsModule, DisplayMode, Document, DocumentData, DocumentDialogComponent, DocumentLinks, DocumentManagementService, DocumentUrlPipe, Draft, DraftService, DynamicListPipe, DynamicRadioListPipe, ESQueryType, Embedded, EnumDisplayDescriptionPipe, ErrorMessageComponent, ErrorNotifierService, EventCaseField, EventCompletionReturnStates, EventCompletionStateMachineService, EventCompletionStates, EventLogComponent, EventLogDetailsComponent, EventLogTableComponent, EventMessageModule, EventStartComponent, EventStartModule, EventStartStateMachineService, EventStatusService, EventTriggerResolver, EventTriggerService, Fee, FeeValue, Field, FieldLabelPipe, FieldReadComponent, FieldReadLabelComponent, FieldType, FieldTypeSanitiser, FieldWriteComponent, FieldsFilterPipe, FieldsPurger, FieldsUtils, FirstErrorPipe, FixedListItem, FixedListPipe, FixedRadioListPipe, FlagFieldDisplayPipe, FocusElementDirective, FocusElementModule, FocusService, FooterComponent, FormDocument, FormErrorService, FormValidatorsService, FormValueService, FormatTranslatorService, GreyBarService, HRef, HeaderBarComponent, HeadersModule, HttpError, HttpErrorService, HttpService, IsCompoundPipe, IsMandatoryPipe, IsReadOnlyAndNotCollectionPipe, IsReadOnlyPipe, JudicialworkerService, Jurisdiction, JurisdictionService, LabelFieldComponent, LabelSubstitutorDirective, LabelSubstitutorModule, LanguageInterpreterDisplayPipe, LinkCaseReason, LinkCasesComponent, LinkCasesFromReasonValuePipe, LinkCasesReasonValuePipe, LinkDetails, LinkFromReason, LinkReason, LinkedCasesErrorMessages, LinkedCasesEventTriggers, LinkedCasesFromTableComponent, LinkedCasesPages, LinkedCasesResponse, LinkedCasesToTableComponent, LoadingModule, LoadingService, LoadingSpinnerComponent, LoadingSpinnerModule, MEDIA_VIEWER_LOCALSTORAGE_KEY, MULTIPLE_TASKS_FOUND, ManageCaseFlagsComponent, ManageCaseFlagsLabelDisplayPipe, MarkdownComponent, MarkdownComponentModule, MoneyGbpInputComponent, MultipageComponentStateService, MultipleTasksExistComponent, NavigationComponent, NavigationItemComponent, NavigationNotifierService, NavigationOrigin, NoLinkedCasesComponent, NoTasksAvailableComponent, NotificationBannerComponent, NotificationBannerHeaderClass, NotificationBannerType, OrderService, OrderSummary, OrganisationConverter, OrganisationService, PageValidationService, PaginationComponent, PaginationMetadata, PaginationModule, PaletteContext, PaletteModule, PaletteService, PaletteUtilsModule, Patterns, PaymentField, PhaseComponent, PipesModule, PlaceholderService, PrintUrlPipe, Profile, ProfileNotifier, ProfileService, QualifyingQuestionDetailComponent, QualifyingQuestionOptionsComponent, QualifyingQuestionService, QualifyingQuestionsErrorMessage, QueryAttachmentsReadComponent, QueryCaseDetailsHeaderComponent, QueryCheckYourAnswersComponent, QueryConfirmationComponent, QueryCreateContext, QueryDetailsComponent, QueryEventCompletionComponent, QueryItemResponseStatus, QueryListComponent, QueryListData, QueryListItem, QueryManagementService, QueryWriteAddDocumentsComponent, QueryWriteDateInputComponent, QueryWriteRaiseQueryComponent, QueryWriteRespondToQueryComponent, RaiseQueryErrorMessage, ReadCaseFlagFieldComponent, ReadCaseLinkFieldComponent, ReadCollectionFieldComponent, ReadComplexFieldCollectionTableComponent, ReadComplexFieldComponent, ReadComplexFieldRawComponent, ReadComplexFieldTableComponent, ReadCookieService, ReadDateFieldComponent, ReadDocumentFieldComponent, ReadDynamicListFieldComponent, ReadDynamicMultiSelectListFieldComponent, ReadDynamicRadioListFieldComponent, ReadEmailFieldComponent, ReadFieldsFilterPipe, ReadFixedListFieldComponent, ReadFixedRadioListFieldComponent, ReadJudicialUserFieldComponent, ReadLinkedCasesFieldComponent, ReadMoneyGbpFieldComponent, ReadMultiSelectListFieldComponent, ReadNumberFieldComponent, ReadOrderSummaryFieldComponent, ReadOrderSummaryRowComponent, ReadOrganisationFieldComponent, ReadOrganisationFieldRawComponent, ReadOrganisationFieldTableComponent, ReadPhoneUKFieldComponent, ReadQueryManagementFieldComponent, ReadTextAreaFieldComponent, ReadTextFieldComponent, ReadYesNoFieldComponent, RefdataCaseFlagType, RemoveDialogComponent, RequestOptionsBuilder, RespondToQueryErrorMessages, RetryUtil, RouterHelperService, RouterLinkComponent, SaveOrDiscardDialogComponent, SearchFiltersComponent, SearchFiltersModule, SearchFiltersWrapperComponent, SearchInput, SearchLanguageInterpreterComponent, SearchLanguageInterpreterErrorMessage, SearchLanguageInterpreterStep, SearchResultComponent, SearchResultModule, SearchResultView, SearchResultViewColumn, SearchResultViewItem, SearchResultViewItemComparatorFactory, SearchService, SelectFlagErrorMessage, SelectFlagLocationComponent, SelectFlagLocationErrorMessage, SelectFlagTypeComponent, SelectFlagTypeErrorMessage, SessionErrorPageComponent, SessionErrorRoute, SessionJsonErrorLogger, SessionStorageGuard, SessionStorageService, ShowCondition, SortOrder$1 as SortOrder, SortParameters, SortSearchResultPipe, StructuredLoggerService, TabComponent, TableColumnConfig, TableConfig, TabsComponent, TabsModule, TaskAssignedComponent, TaskCancelledComponent, TaskConflictComponent, TaskUnassignedComponent, Terms, TestRouteSnapshotBuilder, TranslatedMarkdownDirective, TranslatedMarkdownModule, UnLinkCasesComponent, UnsupportedFieldComponent, UpdateFlagAddTranslationErrorMessage, UpdateFlagAddTranslationFormComponent, UpdateFlagAddTranslationStep, UpdateFlagComponent, UpdateFlagErrorMessage, UpdateFlagStep, UpdateFlagTitleDisplayPipe, WaysToPayFieldComponent, WindowService, Wizard, WizardFactoryService, WizardPage, WizardPageField, WorkAllocationService, WorkbasketFiltersComponent, WorkbasketFiltersModule, WorkbasketInput, WorkbasketInputFilterService, WorkbasketInputModel, WriteAddressFieldComponent, WriteCaseFlagFieldComponent, WriteCaseLinkFieldComponent, WriteCollectionFieldComponent, WriteComplexFieldComponent, WriteDateContainerFieldComponent, WriteDateFieldComponent, WriteDocumentFieldComponent, WriteDynamicListFieldComponent, WriteDynamicMultiSelectListFieldComponent, WriteDynamicRadioListFieldComponent, WriteEmailFieldComponent, WriteFixedListFieldComponent, WriteFixedRadioListFieldComponent, WriteJudicialUserFieldComponent, WriteLinkedCasesFieldComponent, WriteMoneyGbpFieldComponent, WriteMultiSelectListFieldComponent, WriteNumberFieldComponent, WriteOrderSummaryFieldComponent, WriteOrganisationComplexFieldComponent, WriteOrganisationFieldComponent, WritePhoneUKFieldComponent, WriteTextAreaFieldComponent, WriteTextFieldComponent, WriteYesNoFieldComponent, YesNoService, aCaseField, caseMessagesMockData, createACL, createCaseEventTrigger, createCaseField, createComplexFieldOverride, createFieldType, createFixedListFieldType, createHiddenComplexFieldOverride, createMultiSelectListFieldType, createWizardPage, createWizardPageField, editorRouting, initDialog, newCaseField, safeJsonParse, textFieldType, viewerRouting };
42987
+ export { AbstractAppConfig, AbstractFieldReadComponent, AbstractFieldWriteComponent, AbstractFieldWriteJourneyComponent, AbstractJourneyComponent, Activity, ActivityBannerComponent, ActivityComponent, ActivityIconComponent, ActivityInfo, ActivityModule, ActivityPollingService, ActivityService, AddCommentsComponent, AddCommentsErrorMessage, AddCommentsStep, AddressModel, AddressOption, AddressesService, Alert, AlertComponent, AlertIconClassPipe, AlertMessageType, AlertModule, AlertService, AuthService, Banner, BannersService, BeforeYouStartComponent, BodyComponent, BrowserService, CCDCaseLinkType, COMPONENT_PORTAL_INJECTION_TOKEN, CallbackErrorsComponent, CallbackErrorsContext, CaseAccessUtils, CaseBasicAccessViewComponent, CaseChallengedAccessRequestComponent, CaseChallengedAccessSuccessComponent, CaseCreateComponent, CaseDetails, CaseEditComponent, CaseEditConfirmComponent, CaseEditDataModule, CaseEditDataService, CaseEditFormComponent, CaseEditPageComponent, CaseEditSubmitComponent, CaseEditWizardGuard, CaseEditorConfig, CaseEditorModule, CaseEvent, CaseEventCompletionComponent, CaseEventCompletionTaskCancelledComponent, CaseEventCompletionTaskReassignedComponent, CaseEventData, CaseEventTrigger, CaseEventTriggerComponent, CaseField, CaseFieldService, CaseFileViewFieldComponent, CaseFileViewFolderComponent, CaseFileViewFolderDocumentActionsComponent, CaseFileViewFolderSelectorComponent, CaseFileViewFolderSortComponent, CaseFileViewFolderToggleComponent, CaseFileViewOverlayMenuComponent, CaseFileViewService, CaseFlagCheckYourAnswersPageStep, CaseFlagDisplayContextParameter, CaseFlagErrorMessage, CaseFlagFieldState, CaseFlagFormFields, CaseFlagRefdataService, CaseFlagStatus, CaseFlagSummaryListComponent, CaseFlagSummaryListDisplayMode, CaseFlagTableComponent, CaseFlagWizardStepTitle, CaseFullAccessViewComponent, CaseHeaderComponent, CaseHeaderModule, CaseHistoryViewerFieldComponent, CaseLink, CaseLinkResponse, CaseListComponent, CaseListFiltersComponent, CaseListFiltersModule, CaseListModule, CaseNotifier, CasePaymentHistoryViewerFieldComponent, CasePrintDocument, CasePrinterComponent, CaseProgressComponent, CaseReferencePipe, CaseResolver, CaseSpecificAccessRequestComponent, CaseSpecificAccessSuccessComponent, CaseState, CaseTab, CaseTimelineComponent, CaseTimelineDisplayMode, CaseTimelineModule, CaseType, CaseTypeLite, CaseView, CaseViewComponent, CaseViewEvent, CaseViewTrigger, CaseViewerComponent, CaseViewerModule, CasesService, CaseworkerService, CcdCYAPageLabelFilterPipe, CcdCaseTitlePipe, CcdCollectionTableCaseFieldsFilterPipe, CcdPageFieldsPipe, CcdTabFieldsPipe, CheckYourAnswersComponent, CloseQueryComponent, ConditionalShowFormDirective, ConditionalShowModule, ConditionalShowRegistrarService, ConfirmFlagStatusComponent, ConfirmStatusErrorMessage, ConfirmStatusStep, Confirmation, ConvertHrefToRouterService, CreateCaseFiltersComponent, CreateCaseFiltersModule, CreateCaseFiltersSelection, DRAFT_PREFIX, DRAFT_QUERY_PARAM, DashPipe, DateInputComponent, DatePipe, DateTimeFormatUtils, DatetimePickerComponent, DefinitionsModule, DefinitionsService, DeleteOrCancelDialogComponent, DialogsModule, DisplayMode, Document, DocumentData, DocumentDialogComponent, DocumentLinks, DocumentManagementService, DocumentUrlPipe, Draft, DraftService, DynamicListPipe, DynamicRadioListPipe, ESQueryType, Embedded, EnumDisplayDescriptionPipe, ErrorMessageComponent, ErrorNotifierService, EventCaseField, EventCompletionReturnStates, EventCompletionStateMachineService, EventCompletionStates, EventLogComponent, EventLogDetailsComponent, EventLogTableComponent, EventMessageModule, EventStartComponent, EventStartModule, EventStartStateMachineService, EventStatusService, EventTriggerResolver, EventTriggerService, Fee, FeeValue, Field, FieldLabelPipe, FieldReadComponent, FieldReadLabelComponent, FieldType, FieldTypeSanitiser, FieldWriteComponent, FieldsFilterPipe, FieldsPurger, FieldsUtils, FirstErrorPipe, FixedListItem, FixedListPipe, FixedRadioListPipe, FlagFieldDisplayPipe, FocusElementDirective, FocusElementModule, FocusService, FooterComponent, FormDocument, FormErrorService, FormValidatorsService, FormValueService, FormatTranslatorService, GreyBarService, HRef, HeaderBarComponent, HeadersModule, HttpError, HttpErrorService, HttpService, IsCompoundPipe, IsMandatoryPipe, IsReadOnlyAndNotCollectionPipe, IsReadOnlyPipe, JudicialworkerService, Jurisdiction, JurisdictionService, LabelFieldComponent, LabelSubstitutorDirective, LabelSubstitutorModule, LanguageInterpreterDisplayPipe, LinkCaseReason, LinkCasesComponent, LinkCasesFromReasonValuePipe, LinkCasesReasonValuePipe, LinkDetails, LinkFromReason, LinkReason, LinkedCasesErrorMessages, LinkedCasesEventTriggers, LinkedCasesFromTableComponent, LinkedCasesPages, LinkedCasesResponse, LinkedCasesToTableComponent, LoadingModule, LoadingService, LoadingSpinnerComponent, LoadingSpinnerModule, MEDIA_VIEWER_LOCALSTORAGE_KEY, MULTIPLE_TASKS_FOUND, ManageCaseFlagsComponent, ManageCaseFlagsLabelDisplayPipe, MarkdownComponent, MarkdownComponentModule, MoneyGbpInputComponent, MultipageComponentStateService, MultipleTasksExistComponent, NavigationComponent, NavigationItemComponent, NavigationNotifierService, NavigationOrigin, NoLinkedCasesComponent, NoTasksAvailableComponent, NotificationBannerComponent, NotificationBannerHeaderClass, NotificationBannerType, OrderService, OrderSummary, OrganisationConverter, OrganisationService, PageValidationService, PaginationComponent, PaginationMetadata, PaginationModule, PaletteContext, PaletteModule, PaletteService, PaletteUtilsModule, PaletteValueOrigin, Patterns, PaymentField, PhaseComponent, PipesModule, PlaceholderService, PrintUrlPipe, Profile, ProfileNotifier, ProfileService, QualifyingQuestionDetailComponent, QualifyingQuestionOptionsComponent, QualifyingQuestionService, QualifyingQuestionsErrorMessage, QueryAttachmentsReadComponent, QueryCaseDetailsHeaderComponent, QueryCheckYourAnswersComponent, QueryConfirmationComponent, QueryCreateContext, QueryDetailsComponent, QueryEventCompletionComponent, QueryItemResponseStatus, QueryListComponent, QueryListData, QueryListItem, QueryManagementService, QueryWriteAddDocumentsComponent, QueryWriteDateInputComponent, QueryWriteRaiseQueryComponent, QueryWriteRespondToQueryComponent, RaiseQueryErrorMessage, ReadCaseFlagFieldComponent, ReadCaseLinkFieldComponent, ReadCollectionFieldComponent, ReadComplexFieldCollectionTableComponent, ReadComplexFieldComponent, ReadComplexFieldRawComponent, ReadComplexFieldTableComponent, ReadCookieService, ReadDateFieldComponent, ReadDocumentFieldComponent, ReadDynamicListFieldComponent, ReadDynamicMultiSelectListFieldComponent, ReadDynamicRadioListFieldComponent, ReadEmailFieldComponent, ReadFieldsFilterPipe, ReadFixedListFieldComponent, ReadFixedRadioListFieldComponent, ReadJudicialUserFieldComponent, ReadLinkedCasesFieldComponent, ReadMoneyGbpFieldComponent, ReadMultiSelectListFieldComponent, ReadNumberFieldComponent, ReadOrderSummaryFieldComponent, ReadOrderSummaryRowComponent, ReadOrganisationFieldComponent, ReadOrganisationFieldRawComponent, ReadOrganisationFieldTableComponent, ReadPhoneUKFieldComponent, ReadQueryManagementFieldComponent, ReadTextAreaFieldComponent, ReadTextFieldComponent, ReadYesNoFieldComponent, RefdataCaseFlagType, RemoveDialogComponent, RequestOptionsBuilder, RespondToQueryErrorMessages, RetryUtil, RouterHelperService, RouterLinkComponent, SaveOrDiscardDialogComponent, SearchFiltersComponent, SearchFiltersModule, SearchFiltersWrapperComponent, SearchInput, SearchLanguageInterpreterComponent, SearchLanguageInterpreterErrorMessage, SearchLanguageInterpreterStep, SearchResultComponent, SearchResultModule, SearchResultView, SearchResultViewColumn, SearchResultViewItem, SearchResultViewItemComparatorFactory, SearchService, SelectFlagErrorMessage, SelectFlagLocationComponent, SelectFlagLocationErrorMessage, SelectFlagTypeComponent, SelectFlagTypeErrorMessage, SessionErrorPageComponent, SessionErrorRoute, SessionJsonErrorLogger, SessionStorageGuard, SessionStorageService, ShowCondition, SortOrder$1 as SortOrder, SortParameters, SortSearchResultPipe, StructuredLoggerService, TabComponent, TableColumnConfig, TableConfig, TabsComponent, TabsModule, TaskAssignedComponent, TaskCancelledComponent, TaskConflictComponent, TaskUnassignedComponent, Terms, TestRouteSnapshotBuilder, TranslatedMarkdownDirective, TranslatedMarkdownModule, UnLinkCasesComponent, UnsupportedFieldComponent, UpdateFlagAddTranslationErrorMessage, UpdateFlagAddTranslationFormComponent, UpdateFlagAddTranslationStep, UpdateFlagComponent, UpdateFlagErrorMessage, UpdateFlagStep, UpdateFlagTitleDisplayPipe, WaysToPayFieldComponent, WindowService, Wizard, WizardFactoryService, WizardPage, WizardPageField, WorkAllocationService, WorkbasketFiltersComponent, WorkbasketFiltersModule, WorkbasketInput, WorkbasketInputFilterService, WorkbasketInputModel, WriteAddressFieldComponent, WriteCaseFlagFieldComponent, WriteCaseLinkFieldComponent, WriteCollectionFieldComponent, WriteComplexFieldComponent, WriteDateContainerFieldComponent, WriteDateFieldComponent, WriteDocumentFieldComponent, WriteDynamicListFieldComponent, WriteDynamicMultiSelectListFieldComponent, WriteDynamicRadioListFieldComponent, WriteEmailFieldComponent, WriteFixedListFieldComponent, WriteFixedRadioListFieldComponent, WriteJudicialUserFieldComponent, WriteLinkedCasesFieldComponent, WriteMoneyGbpFieldComponent, WriteMultiSelectListFieldComponent, WriteNumberFieldComponent, WriteOrderSummaryFieldComponent, WriteOrganisationComplexFieldComponent, WriteOrganisationFieldComponent, WritePhoneUKFieldComponent, WriteTextAreaFieldComponent, WriteTextFieldComponent, WriteYesNoFieldComponent, YesNoService, aCaseField, caseMessagesMockData, createACL, createCaseEventTrigger, createCaseField, createComplexFieldOverride, createFieldType, createFixedListFieldType, createHiddenComplexFieldOverride, createMultiSelectListFieldType, createWizardPage, createWizardPageField, editorRouting, initDialog, newCaseField, safeJsonParse, textFieldType, viewerRouting };
41891
42988
  //# sourceMappingURL=hmcts-ccd-case-ui-toolkit.mjs.map