@hmcts/ccd-case-ui-toolkit 7.0.75-exui-2575-rc1 → 7.0.75-user-task-missing-2

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.
@@ -35,16 +35,35 @@ export class EventStartGuard {
35
35
  userId = userInfo.id ? userInfo.id : userInfo.uid;
36
36
  }
37
37
  const caseInfoStr = this.sessionStorageService.getItem('caseInfo');
38
- const currentLanguage = this.cookieService.getCookie('exui-preferred-language');
39
- // if one task assigned to user, allow user to complete event
40
- const storeClientContext = {
41
- client_context: {
42
- user_language: {
43
- language: currentLanguage
38
+ const languageCookie = this.cookieService.getCookie('exui-preferred-language');
39
+ const currentLanguage = !!languageCookie && languageCookie !== '' ? languageCookie : 'en';
40
+ const preClientContext = this.sessionStorageService.getItem(EventStartGuard.CLIENT_CONTEXT);
41
+ if (!preClientContext) {
42
+ // creates client context for language if not already existing
43
+ const storeClientContext = {
44
+ client_context: {
45
+ user_language: {
46
+ language: currentLanguage
47
+ }
44
48
  }
49
+ };
50
+ this.sessionStorageService.setItem(EventStartGuard.CLIENT_CONTEXT, JSON.stringify(storeClientContext));
51
+ }
52
+ else {
53
+ const clientContextObj = JSON.parse(preClientContext);
54
+ if (!clientContextObj?.client_context?.user_language) {
55
+ const clientContextAddLanguage = {
56
+ ...clientContextObj,
57
+ client_context: {
58
+ ...clientContextObj.client_context,
59
+ user_language: {
60
+ language: currentLanguage
61
+ }
62
+ }
63
+ };
64
+ this.sessionStorageService.setItem(EventStartGuard.CLIENT_CONTEXT, JSON.stringify(clientContextAddLanguage));
45
65
  }
46
- };
47
- this.sessionStorageService.setItem(EventStartGuard.CLIENT_CONTEXT, JSON.stringify(storeClientContext));
66
+ }
48
67
  if (caseInfoStr) {
49
68
  const caseInfo = JSON.parse(caseInfoStr);
50
69
  if (caseInfo && caseInfo.cid === caseId) {
@@ -162,4 +181,4 @@ export class EventStartGuard {
162
181
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EventStartGuard, [{
163
182
  type: Injectable
164
183
  }], () => [{ type: i1.WorkAllocationService }, { type: i2.Router }, { type: i3.SessionStorageService }, { type: i4.AbstractAppConfig }, { type: i3.ReadCookieService }], null); })();
165
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3RhcnQuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvZXZlbnQtc3RhcnQvZXZlbnQtZ3VhcmQvZXZlbnQtc3RhcnQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVDLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7QUFHMUQsTUFBTSxPQUFPLGVBQWU7SUFHRztJQUNWO0lBQ0E7SUFDQTtJQUNBO0lBTlosTUFBTSxDQUFVLGNBQWMsR0FBRyxlQUFlLENBQUM7SUFFeEQsWUFBNkIscUJBQTRDLEVBQ3RELE1BQWMsRUFDZCxxQkFBNEMsRUFDNUMsY0FBaUMsRUFDakMsYUFBZ0M7UUFKdEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUN0RCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQW1CO0lBQ25ELENBQUM7SUFFTSxXQUFXLENBQUMsS0FBNkI7UUFDOUMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0s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O2lGQUFmLGVBQWU7Y0FEM0IsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIENhbkFjdGl2YXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IFRhc2tFdmVudENvbXBsZXRpb25JbmZvIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3dvcmstYWxsb2NhdGlvbi9UYXNrJztcbmltcG9ydCB7IFRhc2tQYXlsb2FkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL3dvcmstYWxsb2NhdGlvbi9UYXNrUGF5bG9hZCc7XG5pbXBvcnQgeyBSZWFkQ29va2llU2VydmljZSwgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHsgV29ya0FsbG9jYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3InO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRXZlbnRTdGFydEd1YXJkIGltcGxlbWVudHMgQ2FuQWN0aXZhdGUge1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENMSUVOVF9DT05URVhUID0gJ2NsaWVudENvbnRleHQnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgd29ya0FsbG9jYXRpb25TZXJ2aWNlOiBXb3JrQWxsb2NhdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlc3Npb25TdG9yYWdlU2VydmljZTogU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWJzdHJhY3RDb25maWc6IEFic3RyYWN0QXBwQ29uZmlnLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29va2llU2VydmljZTogUmVhZENvb2tpZVNlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBjYW5BY3RpdmF0ZShyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNhc2VJZCA9IHJvdXRlLnBhcmFtc1snY2lkJ107XG4gICAgY29uc3QgZXZlbnRJZCA9IHJvdXRlLnBhcmFtc1snZWlkJ107XG4gICAgY29uc3QgdGFza0lkID0gcm91dGUucXVlcnlQYXJhbXNbJ3RpZCddO1xuICAgIGxldCB1c2VySWQ6IHN0cmluZztcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgaWYgKHVzZXJJbmZvU3RyKSB7XG4gICAgICBjb25zdCB1c2VySW5mbyA9IEpTT04ucGFyc2UodXNlckluZm9TdHIpO1xuICAgICAgdXNlcklkID0gdXNlckluZm8uaWQgPyB1c2VySW5mby5pZCA6IHVzZXJJbmZvLnVpZDtcbiAgICB9XG4gICAgY29uc3QgY2FzZUluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCdjYXNlSW5mbycpO1xuICAgIGNvbnN0IGN1cnJlbnRMYW5ndWFnZSA9IHRoaXMuY29va2llU2VydmljZS5nZXRDb29raWUoJ2V4dWktcHJlZmVycmVkLWxhbmd1YWdlJyk7XG4gICAgLy8gaWYgb25lIHRhc2sgYXNzaWduZWQgdG8gdXNlciwgYWxsb3cgdXNlciB0byBjb21wbGV0ZSBldmVudFxuICAgIGNvbnN0IHN0b3JlQ2xpZW50Q29udGV4dCA9IHtcbiAgICAgIGNsaWVudF9jb250ZXh0OiB7XG4gICAgICAgIHVzZXJfbGFuZ3VhZ2U6IHtcbiAgICAgICAgICBsYW5ndWFnZTogY3VycmVudExhbmd1YWdlXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oRXZlbnRTdGFydEd1YXJkLkNMSUVOVF9DT05URVhULCBKU09OLnN0cmluZ2lmeShzdG9yZUNsaWVudENvbnRleHQpKTtcbiAgICBpZiAoY2FzZUluZm9TdHIpIHtcbiAgICAgIGNvbnN0IGNhc2VJbmZvID0gSlNPTi5wYXJzZShjYXNlSW5mb1N0cik7XG4gICAgICBpZiAoY2FzZUluZm8gJiYgY2FzZUluZm8uY2lkID09PSBjYXNlSWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMud29ya0FsbG9jYXRpb25TZXJ2aWNlLmdldFRhc2tzQnlDYXNlSWRBbmRFdmVudElkKGV2ZW50SWQsIGNhc2VJZCwgY2FzZUluZm8uY2FzZVR5cGUsIGNhc2VJbmZvLmp1cmlzZGljdGlvbilcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgocGF5bG9hZDogVGFza1BheWxvYWQpID0+IHRoaXMuY2hlY2tGb3JUYXNrcyhwYXlsb2FkLCBjYXNlSWQsIGV2ZW50SWQsIHRhc2tJZCwgdXNlcklkKSlcbiAgICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5hYnN0cmFjdENvbmZpZy5sb2dNZXNzYWdlKGBFdmVudFN0YXJ0R3VhcmQ6IGNhc2VJZCAke2Nhc2VJbmZvLmNpZH0gaW4gY2FzZUluZm8gbm90IG1hdGNoZWQgd2l0aCB0aGUgcm91dGUgcGFyYW1ldGVyIGNhc2VJZCAke2Nhc2VJZH1gKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hYnN0cmFjdENvbmZpZy5sb2dNZXNzYWdlKGBFdmVudFN0YXJ0R3VhcmQ6IGNhc2VJbmZvIGRldGFpbHMgbm90IGF2YWlsYWJsZSBpbiBzZXNzaW9uIHN0b3JhZ2UgZm9yICR7Y2FzZUlkfWApO1xuICAgIH1cbiAgICByZXR1cm4gb2YoZmFsc2UpO1xuICB9XG5cbiAgcHVibGljIGNoZWNrVGFza0luRXZlbnROb3RSZXF1aXJlZChwYXlsb2FkOiBUYXNrUGF5bG9hZCwgY2FzZUlkOiBzdHJpbmcsIHRhc2tJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgaWYgKCFwYXlsb2FkIHx8ICFwYXlsb2FkLnRhc2tzKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgdGFza051bWJlciA9IHBheWxvYWQudGFza3MubGVuZ3RoO1xuICAgIGlmICh0YXNrTnVtYmVyID09PSAwKSB7XG4gICAgICAvLyBpZiB0aGVyZSBhcmUgbm8gdGFza3MganVzdCBjYXJyeSBvblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIEdldCBudW1iZXIgb2YgdGFza3MgYXNzaWduZWQgdG8gdXNlclxuICAgIGNvbnN0IHVzZXJJbmZvU3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgndXNlckRldGFpbHMnKTtcbiAgICBjb25zdCB1c2VySW5mbyA9IEpTT04ucGFyc2UodXNlckluZm9TdHIpO1xuICAgIGNvbnN0IHRhc2tzQXNzaWduZWRUb1VzZXIgPSBwYXlsb2FkLnRhc2tzLmZpbHRlcih4ID0+XG4gICAgICB4LnRhc2tfc3RhdGUgIT09ICd1bmFzc2lnbmVkJyAmJiAoeC5hc3NpZ25lZSA9PT0gdXNlckluZm8uaWQgfHwgeC5hc3NpZ25lZSA9PT0gdXNlckluZm8udWlkKVxuICAgICk7XG4gICAgaWYgKHRhc2tzQXNzaWduZWRUb1VzZXIubGVuZ3RoID09PSAwKSB7XG4gICAgICAvLyBpZiBubyB0YXNrcyBhc3NpZ25lZCB0byB1c2VyIGNhcnJ5IG9uXG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHRhc2tzQXNzaWduZWRUb1VzZXIubGVuZ3RoID4gMSAmJiAhdGFza0lkKSB7XG4gICAgICAvLyBpZiBtb3JlIHRoYW4gb25lIHRhc2sgYXNzaWduZWQgdG8gdGhlIHVzZXIgdGhlbiBnaXZlIG11bHRpcGxlIHRhc2tzIGVycm9yXG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC9jYXNlcy9jYXNlLWRldGFpbHMvJHtjYXNlSWR9L211bHRpcGxlLXRhc2tzLWV4aXN0YF0pO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgdGFzazogYW55O1xuICAgICAgaWYgKHRhc2tJZCkge1xuICAgICAgICB0YXNrID0gcGF5bG9hZC50YXNrcy5maW5kKHggPT4geC5pZCA9PT0gdGFza0lkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRhc2sgPSB0YXNrc0Fzc2lnbmVkVG9Vc2VyWzBdO1xuICAgICAgfVxuICAgICAgY29uc3QgY3VycmVudExhbmd1YWdlID0gdGhpcy5jb29raWVTZXJ2aWNlLmdldENvb2tpZSgnZXh1aS1wcmVmZXJyZWQtbGFuZ3VhZ2UnKTtcbiAgICAgIC8vIGlmIG9uZSB0YXNrIGFzc2lnbmVkIHRvIHVzZXIsIGFsbG93IHVzZXIgdG8gY29tcGxldGUgZXZlbnRcbiAgICAgIGNvbnN0IHN0b3JlQ2xpZW50Q29udGV4dCA9IHtcbiAgICAgICAgY2xpZW50X2NvbnRleHQ6IHtcbiAgICAgICAgICB1c2VyX3Rhc2s6IHtcbiAgICAgICAgICAgIHRhc2tfZGF0YTogdGFzayxcbiAgICAgICAgICAgIGNvbXBsZXRlX3Rhc2s6IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIHVzZXJfbGFuZ3VhZ2U6IHtcbiAgICAgICAgICAgIGxhbmd1YWdlOiBjdXJyZW50TGFuZ3VhZ2VcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKEV2ZW50U3RhcnRHdWFyZC5DTElFTlRfQ09OVEVYVCwgSlNPTi5zdHJpbmdpZnkoc3RvcmVDbGllbnRDb250ZXh0KSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZVRhc2tGcm9tU2Vzc2lvblN0b3JhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbShFdmVudFN0YXJ0R3VhcmQuQ0xJRU5UX0NPTlRFWFQpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZvclRhc2tzKHBheWxvYWQ6IFRhc2tQYXlsb2FkLCBjYXNlSWQ6IHN0cmluZywgZXZlbnRJZDogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZywgdXNlcklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAodGFza0lkICYmIHBheWxvYWQ/LnRhc2tzPy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB0YXNrID0gcGF5bG9hZC50YXNrcy5maW5kKCh0KSA9PiB0LmlkID09IHRhc2tJZCk7XG4gICAgICBpZiAodGFzaykge1xuICAgICAgICAvLyBTdG9yZSB0YXNrIHRvIHNlc3Npb25cbiAgICAgICAgY29uc3QgdGFza0V2ZW50Q29tcGxldGlvbkluZm86IFRhc2tFdmVudENvbXBsZXRpb25JbmZvID0ge1xuICAgICAgICAgIGNhc2VJZDogY2FzZUlkLFxuICAgICAgICAgIGV2ZW50SWQ6IGV2ZW50SWQsXG4gICAgICAgICAgdXNlcklkOiB1c2VySWQsXG4gICAgICAgICAgdGFza0lkOiB0YXNrLmlkLFxuICAgICAgICAgIGNyZWF0ZWRUaW1lc3RhbXA6IERhdGUubm93KClcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgY3VycmVudExhbmd1YWdlID0gdGhpcy5jb29raWVTZXJ2aWNlLmdldENvb2tpZSgnZXh1aS1wcmVmZXJyZWQtbGFuZ3VhZ2UnKTtcbiAgICAgICAgY29uc3Qgc3RvcmVDbGllbnRDb250ZXh0ID0ge1xuICAgICAgICAgIGNsaWVudF9jb250ZXh0OiB7XG4gICAgICAgICAgICB1c2VyX3Rhc2s6IHtcbiAgICAgICAgICAgICAgdGFza19kYXRhOiB0YXNrLFxuICAgICAgICAgICAgICBjb21wbGV0ZV90YXNrOiB0cnVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlcl9sYW5ndWFnZToge1xuICAgICAgICAgICAgICBsYW5ndWFnZTogY3VycmVudExhbmd1YWdlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKCd0YXNrRXZlbnRDb21wbGV0aW9uSW5mbycsIEpTT04uc3RyaW5naWZ5KHRhc2tFdmVudENvbXBsZXRpb25JbmZvKSk7XG4gICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oRXZlbnRTdGFydEd1YXJkLkNMSUVOVF9DT05URVhULCBKU09OLnN0cmluZ2lmeShzdG9yZUNsaWVudENvbnRleHQpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucmVtb3ZlVGFza0Zyb21TZXNzaW9uU3RvcmFnZSgpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocGF5bG9hZC50YXNrX3JlcXVpcmVkX2Zvcl9ldmVudCkge1xuICAgICAgLy8gVGhlcmUgYXJlIHNvbWUgaXNzdWVzIGluIEV2ZW50VHJpZ2dlclJlc29sdmVyL0Nhc2VTZXJ2aWNlIGFuZC9vciBDQ0QgZm9yIHNvbWUgZXZlbnRzXG4gICAgICAvLyB3aGljaCB0cmlnZ2VycyB0aGUgQ2FuQWN0aXZhdGUgZ3VhcmQgYWdhaW4uXG4gICAgICAvLyBJZiBldmVudCBzdGFydCBpcyBpbml0aWF0ZWQgYWdhaW4sIHRoZW4gd2UgZG8gbm90IG5lZWQgdG8gcGVyZm9ybSBzdGF0ZSBtYWNoaW5lIHByb2Nlc3NpbmcgYWdhaW4uXG4gICAgICAvLyBodHRwczovL3Rvb2xzLmhtY3RzLm5ldC9qaXJhL2Jyb3dzZS9FVUktNTQ4OVxuICAgICAgaWYgKHRoaXMucm91dGVyICYmIHRoaXMucm91dGVyLnVybCAmJiB0aGlzLnJvdXRlci51cmwuaW5jbHVkZXMoJ2V2ZW50LXN0YXJ0JykpIHtcbiAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgICAgfVxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7Y2FzZUlkfS9ldmVudC1zdGFydGBdLCB7IHF1ZXJ5UGFyYW1zOiB7IGNhc2VJZCwgZXZlbnRJZCwgdGFza0lkIH0gfSk7XG4gICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YodGhpcy5jaGVja1Rhc2tJbkV2ZW50Tm90UmVxdWlyZWQocGF5bG9hZCwgY2FzZUlkLCB0YXNrSWQpKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
184
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZlbnQtc3RhcnQuZ3VhcmQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvZXZlbnQtc3RhcnQvZXZlbnQtZ3VhcmQvZXZlbnQtc3RhcnQuZ3VhcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQXVDLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7QUFHMUQsTUFBTSxPQUFPLGVBQWU7SUFHRztJQUNWO0lBQ0E7SUFDQTtJQUNBO0lBTlosTUFBTSxDQUFVLGNBQWMsR0FBRyxlQUFlLENBQUM7SUFFeEQsWUFBNkIscUJBQTRDLEVBQ3RELE1BQWMsRUFDZCxxQkFBNEMsRUFDNUMsY0FBaUMsRUFDakMsYUFBZ0M7UUFKdEIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUN0RCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUF1QjtRQUM1QyxtQkFBYyxHQUFkLGNBQWMsQ0FBbUI7UUFDakMsa0JBQWEsR0FBYixhQUFhLENBQW1CO0lBQ25ELENBQUM7SUFFTSxXQUFXLENBQUMsS0FBNkI7UUFDOUMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0s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QUE0QixFQUFFLENBQUM7WUFDdEMsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1lBQ3BDLHVGQUF1RjtZQUN2Riw4Q0FBOEM7WUFDOUMsb0dBQW9HO1lBQ3BHLCtDQUErQztZQUMvQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBQzlFLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xCLENBQUM7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLHVCQUF1QixNQUFNLGNBQWMsQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDbEgsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkIsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7SUFDSCxDQUFDO3lFQS9KVSxlQUFlO2dFQUFmLGVBQWUsV0FBZixlQUFlOztpRkFBZixlQUFlO2NBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90LCBDYW5BY3RpdmF0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEFic3RyYWN0QXBwQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXBwLmNvbmZpZyc7XG5pbXBvcnQgeyBUYXNrRXZlbnRDb21wbGV0aW9uSW5mbyB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi93b3JrLWFsbG9jYXRpb24vVGFzayc7XG5pbXBvcnQgeyBUYXNrUGF5bG9hZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi93b3JrLWFsbG9jYXRpb24vVGFza1BheWxvYWQnO1xuaW1wb3J0IHsgUmVhZENvb2tpZVNlcnZpY2UsIFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFdvcmtBbGxvY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2Nhc2UtZWRpdG9yJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEV2ZW50U3RhcnRHdWFyZCBpbXBsZW1lbnRzIENhbkFjdGl2YXRlIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBDTElFTlRfQ09OVEVYVCA9ICdjbGllbnRDb250ZXh0JztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHdvcmtBbGxvY2F0aW9uU2VydmljZTogV29ya0FsbG9jYXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFic3RyYWN0Q29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvb2tpZVNlcnZpY2U6IFJlYWRDb29raWVTZXJ2aWNlKSB7XG4gIH1cblxuICBwdWJsaWMgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBjb25zdCBjYXNlSWQgPSByb3V0ZS5wYXJhbXNbJ2NpZCddO1xuICAgIGNvbnN0IGV2ZW50SWQgPSByb3V0ZS5wYXJhbXNbJ2VpZCddO1xuICAgIGNvbnN0IHRhc2tJZCA9IHJvdXRlLnF1ZXJ5UGFyYW1zWyd0aWQnXTtcbiAgICBsZXQgdXNlcklkOiBzdHJpbmc7XG4gICAgY29uc3QgdXNlckluZm9TdHIgPSB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5nZXRJdGVtKCd1c2VyRGV0YWlscycpO1xuICAgIGlmICh1c2VySW5mb1N0cikge1xuICAgICAgY29uc3QgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICAgIHVzZXJJZCA9IHVzZXJJbmZvLmlkID8gdXNlckluZm8uaWQgOiB1c2VySW5mby51aWQ7XG4gICAgfVxuICAgIGNvbnN0IGNhc2VJbmZvU3RyID0gdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UuZ2V0SXRlbSgnY2FzZUluZm8nKTtcbiAgICBjb25zdCBsYW5ndWFnZUNvb2tpZSA9IHRoaXMuY29va2llU2VydmljZS5nZXRDb29raWUoJ2V4dWktcHJlZmVycmVkLWxhbmd1YWdlJyk7XG4gICAgY29uc3QgY3VycmVudExhbmd1YWdlID0gISFsYW5ndWFnZUNvb2tpZSAmJiBsYW5ndWFnZUNvb2tpZSAhPT0gJycgPyBsYW5ndWFnZUNvb2tpZSA6ICdlbic7XG4gICAgY29uc3QgcHJlQ2xpZW50Q29udGV4dCA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oRXZlbnRTdGFydEd1YXJkLkNMSUVOVF9DT05URVhUKTtcbiAgICBpZiAoIXByZUNsaWVudENvbnRleHQpIHtcbiAgICAgIC8vIGNyZWF0ZXMgY2xpZW50IGNvbnRleHQgZm9yIGxhbmd1YWdlIGlmIG5vdCBhbHJlYWR5IGV4aXN0aW5nXG4gICAgICBjb25zdCBzdG9yZUNsaWVudENvbnRleHQgPSB7XG4gICAgICAgIGNsaWVudF9jb250ZXh0OiB7XG4gICAgICAgICAgdXNlcl9sYW5ndWFnZToge1xuICAgICAgICAgICAgbGFuZ3VhZ2U6IGN1cnJlbnRMYW5ndWFnZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfTtcbiAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oRXZlbnRTdGFydEd1YXJkLkNMSUVOVF9DT05URVhULCBKU09OLnN0cmluZ2lmeShzdG9yZUNsaWVudENvbnRleHQpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgY2xpZW50Q29udGV4dE9iaiA9IEpTT04ucGFyc2UocHJlQ2xpZW50Q29udGV4dCk7XG4gICAgICBpZiAoIWNsaWVudENvbnRleHRPYmo/LmNsaWVudF9jb250ZXh0Py51c2VyX2xhbmd1YWdlKSB7XG4gICAgICAgIGNvbnN0IGNsaWVudENvbnRleHRBZGRMYW5ndWFnZSA9IHtcbiAgICAgICAgICAuLi5jbGllbnRDb250ZXh0T2JqLFxuICAgICAgICAgIGNsaWVudF9jb250ZXh0OiB7XG4gICAgICAgICAgICAuLi5jbGllbnRDb250ZXh0T2JqLmNsaWVudF9jb250ZXh0LFxuICAgICAgICAgICAgdXNlcl9sYW5ndWFnZToge1xuICAgICAgICAgICAgICBsYW5ndWFnZTogY3VycmVudExhbmd1YWdlXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnNldEl0ZW0oRXZlbnRTdGFydEd1YXJkLkNMSUVOVF9DT05URVhULCBKU09OLnN0cmluZ2lmeShjbGllbnRDb250ZXh0QWRkTGFuZ3VhZ2UpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNhc2VJbmZvU3RyKSB7XG4gICAgICBjb25zdCBjYXNlSW5mbyA9IEpTT04ucGFyc2UoY2FzZUluZm9TdHIpO1xuICAgICAgaWYgKGNhc2VJbmZvICYmIGNhc2VJbmZvLmNpZCA9PT0gY2FzZUlkKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndvcmtBbGxvY2F0aW9uU2VydmljZS5nZXRUYXNrc0J5Q2FzZUlkQW5kRXZlbnRJZChldmVudElkLCBjYXNlSWQsIGNhc2VJbmZvLmNhc2VUeXBlLCBjYXNlSW5mby5qdXJpc2RpY3Rpb24pXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHBheWxvYWQ6IFRhc2tQYXlsb2FkKSA9PiB0aGlzLmNoZWNrRm9yVGFza3MocGF5bG9hZCwgY2FzZUlkLCBldmVudElkLCB0YXNrSWQsIHVzZXJJZCkpXG4gICAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuYWJzdHJhY3RDb25maWcubG9nTWVzc2FnZShgRXZlbnRTdGFydEd1YXJkOiBjYXNlSWQgJHtjYXNlSW5mby5jaWR9IGluIGNhc2VJbmZvIG5vdCBtYXRjaGVkIHdpdGggdGhlIHJvdXRlIHBhcmFtZXRlciBjYXNlSWQgJHtjYXNlSWR9YCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuYWJzdHJhY3RDb25maWcubG9nTWVzc2FnZShgRXZlbnRTdGFydEd1YXJkOiBjYXNlSW5mbyBkZXRhaWxzIG5vdCBhdmFpbGFibGUgaW4gc2Vzc2lvbiBzdG9yYWdlIGZvciAke2Nhc2VJZH1gKTtcbiAgICB9XG4gICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgfVxuXG4gIHB1YmxpYyBjaGVja1Rhc2tJbkV2ZW50Tm90UmVxdWlyZWQocGF5bG9hZDogVGFza1BheWxvYWQsIGNhc2VJZDogc3RyaW5nLCB0YXNrSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghcGF5bG9hZCB8fCAhcGF5bG9hZC50YXNrcykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IHRhc2tOdW1iZXIgPSBwYXlsb2FkLnRhc2tzLmxlbmd0aDtcbiAgICBpZiAodGFza051bWJlciA9PT0gMCkge1xuICAgICAgLy8gaWYgdGhlcmUgYXJlIG5vIHRhc2tzIGp1c3QgY2Fycnkgb25cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyBHZXQgbnVtYmVyIG9mIHRhc2tzIGFzc2lnbmVkIHRvIHVzZXJcbiAgICBjb25zdCB1c2VySW5mb1N0ciA9IHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLmdldEl0ZW0oJ3VzZXJEZXRhaWxzJyk7XG4gICAgY29uc3QgdXNlckluZm8gPSBKU09OLnBhcnNlKHVzZXJJbmZvU3RyKTtcbiAgICBjb25zdCB0YXNrc0Fzc2lnbmVkVG9Vc2VyID0gcGF5bG9hZC50YXNrcy5maWx0ZXIoeCA9PlxuICAgICAgeC50YXNrX3N0YXRlICE9PSAndW5hc3NpZ25lZCcgJiYgKHguYXNzaWduZWUgPT09IHVzZXJJbmZvLmlkIHx8IHguYXNzaWduZWUgPT09IHVzZXJJbmZvLnVpZClcbiAgICApO1xuICAgIGlmICh0YXNrc0Fzc2lnbmVkVG9Vc2VyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgLy8gaWYgbm8gdGFza3MgYXNzaWduZWQgdG8gdXNlciBjYXJyeSBvblxuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmICh0YXNrc0Fzc2lnbmVkVG9Vc2VyLmxlbmd0aCA+IDEgJiYgIXRhc2tJZCkge1xuICAgICAgLy8gaWYgbW9yZSB0aGFuIG9uZSB0YXNrIGFzc2lnbmVkIHRvIHRoZSB1c2VyIHRoZW4gZ2l2ZSBtdWx0aXBsZSB0YXNrcyBlcnJvclxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvY2FzZXMvY2FzZS1kZXRhaWxzLyR7Y2FzZUlkfS9tdWx0aXBsZS10YXNrcy1leGlzdGBdKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IHRhc2s6IGFueTtcbiAgICAgIGlmICh0YXNrSWQpIHtcbiAgICAgICAgdGFzayA9IHBheWxvYWQudGFza3MuZmluZCh4ID0+IHguaWQgPT09IHRhc2tJZCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0YXNrID0gdGFza3NBc3NpZ25lZFRvVXNlclswXTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGN1cnJlbnRMYW5ndWFnZSA9IHRoaXMuY29va2llU2VydmljZS5nZXRDb29raWUoJ2V4dWktcHJlZmVycmVkLWxhbmd1YWdlJyk7XG4gICAgICAvLyBpZiBvbmUgdGFzayBhc3NpZ25lZCB0byB1c2VyLCBhbGxvdyB1c2VyIHRvIGNvbXBsZXRlIGV2ZW50XG4gICAgICBjb25zdCBzdG9yZUNsaWVudENvbnRleHQgPSB7XG4gICAgICAgIGNsaWVudF9jb250ZXh0OiB7XG4gICAgICAgICAgdXNlcl90YXNrOiB7XG4gICAgICAgICAgICB0YXNrX2RhdGE6IHRhc2ssXG4gICAgICAgICAgICBjb21wbGV0ZV90YXNrOiB0cnVlXG4gICAgICAgICAgfSxcbiAgICAgICAgICB1c2VyX2xhbmd1YWdlOiB7XG4gICAgICAgICAgICBsYW5ndWFnZTogY3VycmVudExhbmd1YWdlXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbShFdmVudFN0YXJ0R3VhcmQuQ0xJRU5UX0NPTlRFWFQsIEpTT04uc3RyaW5naWZ5KHN0b3JlQ2xpZW50Q29udGV4dCkpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVUYXNrRnJvbVNlc3Npb25TdG9yYWdlKCk6IHZvaWQge1xuICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlLnJlbW92ZUl0ZW0oRXZlbnRTdGFydEd1YXJkLkNMSUVOVF9DT05URVhUKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tGb3JUYXNrcyhwYXlsb2FkOiBUYXNrUGF5bG9hZCwgY2FzZUlkOiBzdHJpbmcsIGV2ZW50SWQ6IHN0cmluZywgdGFza0lkOiBzdHJpbmcsIHVzZXJJZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgaWYgKHRhc2tJZCAmJiBwYXlsb2FkPy50YXNrcz8ubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgdGFzayA9IHBheWxvYWQudGFza3MuZmluZCgodCkgPT4gdC5pZCA9PSB0YXNrSWQpO1xuICAgICAgaWYgKHRhc2spIHtcbiAgICAgICAgLy8gU3RvcmUgdGFzayB0byBzZXNzaW9uXG4gICAgICAgIGNvbnN0IHRhc2tFdmVudENvbXBsZXRpb25JbmZvOiBUYXNrRXZlbnRDb21wbGV0aW9uSW5mbyA9IHtcbiAgICAgICAgICBjYXNlSWQ6IGNhc2VJZCxcbiAgICAgICAgICBldmVudElkOiBldmVudElkLFxuICAgICAgICAgIHVzZXJJZDogdXNlcklkLFxuICAgICAgICAgIHRhc2tJZDogdGFzay5pZCxcbiAgICAgICAgICBjcmVhdGVkVGltZXN0YW1wOiBEYXRlLm5vdygpXG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGN1cnJlbnRMYW5ndWFnZSA9IHRoaXMuY29va2llU2VydmljZS5nZXRDb29raWUoJ2V4dWktcHJlZmVycmVkLWxhbmd1YWdlJyk7XG4gICAgICAgIGNvbnN0IHN0b3JlQ2xpZW50Q29udGV4dCA9IHtcbiAgICAgICAgICBjbGllbnRfY29udGV4dDoge1xuICAgICAgICAgICAgdXNlcl90YXNrOiB7XG4gICAgICAgICAgICAgIHRhc2tfZGF0YTogdGFzayxcbiAgICAgICAgICAgICAgY29tcGxldGVfdGFzazogdHJ1ZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVzZXJfbGFuZ3VhZ2U6IHtcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U6IGN1cnJlbnRMYW5ndWFnZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2Uuc2V0SXRlbSgndGFza0V2ZW50Q29tcGxldGlvbkluZm8nLCBKU09OLnN0cmluZ2lmeSh0YXNrRXZlbnRDb21wbGV0aW9uSW5mbykpO1xuICAgICAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5zZXRJdGVtKEV2ZW50U3RhcnRHdWFyZC5DTElFTlRfQ09OVEVYVCwgSlNPTi5zdHJpbmdpZnkoc3RvcmVDbGllbnRDb250ZXh0KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbW92ZVRhc2tGcm9tU2Vzc2lvblN0b3JhZ2UoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHBheWxvYWQudGFza19yZXF1aXJlZF9mb3JfZXZlbnQpIHtcbiAgICAgIC8vIFRoZXJlIGFyZSBzb21lIGlzc3VlcyBpbiBFdmVudFRyaWdnZXJSZXNvbHZlci9DYXNlU2VydmljZSBhbmQvb3IgQ0NEIGZvciBzb21lIGV2ZW50c1xuICAgICAgLy8gd2hpY2ggdHJpZ2dlcnMgdGhlIENhbkFjdGl2YXRlIGd1YXJkIGFnYWluLlxuICAgICAgLy8gSWYgZXZlbnQgc3RhcnQgaXMgaW5pdGlhdGVkIGFnYWluLCB0aGVuIHdlIGRvIG5vdCBuZWVkIHRvIHBlcmZvcm0gc3RhdGUgbWFjaGluZSBwcm9jZXNzaW5nIGFnYWluLlxuICAgICAgLy8gaHR0cHM6Ly90b29scy5obWN0cy5uZXQvamlyYS9icm93c2UvRVVJLTU0ODlcbiAgICAgIGlmICh0aGlzLnJvdXRlciAmJiB0aGlzLnJvdXRlci51cmwgJiYgdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdldmVudC1zdGFydCcpKSB7XG4gICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgIH1cbiAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL2Nhc2VzL2Nhc2UtZGV0YWlscy8ke2Nhc2VJZH0vZXZlbnQtc3RhcnRgXSwgeyBxdWVyeVBhcmFtczogeyBjYXNlSWQsIGV2ZW50SWQsIHRhc2tJZCB9IH0pO1xuICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKHRoaXMuY2hlY2tUYXNrSW5FdmVudE5vdFJlcXVpcmVkKHBheWxvYWQsIGNhc2VJZCwgdGFza0lkKSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -6,7 +6,6 @@ export class FieldTypeSanitiser {
6
6
  static FIELD_TYPE_DYNAMIC_LIST = 'DynamicList';
7
7
  static FIELD_TYPE_DYNAMIC_RADIO_LIST = 'DynamicRadioList';
8
8
  static FIELD_TYPE_DYNAMIC_MULTISELECT_LIST = 'DynamicMultiSelectList';
9
- static DYNAMIC_LIST_TYPE = ['DynamicList', 'DynamicRadioList', 'DynamicMultiSelectList'];
10
9
  /**
11
10
  * This method finds dynamiclists in a form and replaces their string
12
11
  * values, with a JSON object, as below:
@@ -54,37 +53,11 @@ export class FieldTypeSanitiser {
54
53
  if (field.field_type.type !== 'Complex') {
55
54
  return field;
56
55
  }
57
- const caseFieldData = field._value;
58
- // Process each complex field
59
- field.field_type.complex_fields.forEach((complexField) => {
60
- if (complexField.field_type.type === FieldTypeSanitiser.FIELD_TYPE_COMPLEX) {
61
- this.checkNestedDynamicList(complexField, caseFieldData?.[complexField.id]);
62
- }
63
- else if (this.isDynamicList(complexField.field_type.type) &&
64
- complexField.display_context !== 'HIDDEN' &&
65
- field._value?.[complexField.id]) {
66
- complexField.list_items = field._value[complexField.id]?.list_items;
67
- }
68
- });
69
- // Final transformation: construct updated field object
70
- return { ...field, field_type: { ...field?.field_type } };
56
+ const complexFieldsUpdated = field.field_type.complex_fields.map((complexField) => complexField.field_type.type === FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_MULTISELECT_LIST && complexField.display_context !== 'HIDDEN' && field._value?.[complexField.id]
57
+ ? { ...complexField, list_items: field._value[complexField.id]?.list_items } : complexField);
58
+ return { ...field, field_type: { ...field.field_type, complex_fields: complexFieldsUpdated } };
71
59
  });
72
60
  }
73
- checkNestedDynamicList(caseField, fieldData = null) {
74
- caseField.field_type.complex_fields.forEach((complexField) => {
75
- if (complexField.field_type.type === FieldTypeSanitiser.FIELD_TYPE_COMPLEX) {
76
- this.checkNestedDynamicList(complexField, fieldData?.[complexField.id]);
77
- }
78
- else if (this.isDynamicList(complexField.field_type.type) &&
79
- complexField.display_context !== 'HIDDEN' &&
80
- fieldData?.[complexField.id]) {
81
- complexField.list_items = fieldData?.[complexField.id]?.list_items;
82
- }
83
- });
84
- }
85
- isDynamicList(fieldType) {
86
- return FieldTypeSanitiser.DYNAMIC_LIST_TYPE.indexOf(fieldType) !== -1;
87
- }
88
61
  convertArrayToDynamicListOutput(field, data) {
89
62
  const values = data[field.id];
90
63
  if (Array.isArray(values)) {
@@ -126,4 +99,4 @@ export class FieldTypeSanitiser {
126
99
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FieldTypeSanitiser, [{
127
100
  type: Injectable
128
101
  }], null, null); })();
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdHlwZS1zYW5pdGlzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2Zvcm0vZmllbGQtdHlwZS1zYW5pdGlzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUN0QixNQUFNLENBQVUsa0JBQWtCLEdBQWtCLFNBQVMsQ0FBQztJQUM5RCxNQUFNLENBQVUscUJBQXFCLEdBQWtCLFlBQVksQ0FBQztJQUNwRSxNQUFNLENBQVUsdUJBQXVCLEdBQWtCLGFBQWEsQ0FBQztJQUN2RSxNQUFNLENBQVUsNkJBQTZCLEdBQWtCLGtCQUFrQixDQUFDO0lBQ2xGLE1BQU0sQ0FBVSxtQ0FBbUMsR0FBa0Isd0JBQXdCLENBQUM7SUFDOUYsTUFBTSxDQUFVLGlCQUFpQixHQUFvQixDQUFDLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO0lBQzFIOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSSxhQUFhLENBQUMsVUFBdUIsRUFBRSxJQUFTO1FBQ3JELElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUN6QixPQUFPO1FBQ1QsQ0FBQztRQUNELFVBQVUsR0FBRyxJQUFJLENBQUMscUNBQXFDLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDcEUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQy9CLDBDQUEwQztZQUMxQyxRQUFRLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ2xDLEtBQUssa0JBQWtCLENBQUMsbUNBQW1DO29CQUN6RCxJQUFJLENBQUMsK0JBQStCLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFD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QUM7UUFDbkMsSUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUc7b0JBQ2YsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ2pCLFVBQVUsRUFBRSxTQUFTO2lCQUN0QixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWdCO1FBQ25DLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQzFCLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDOUQsT0FBTyxLQUFLLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs0RUEvSFUsa0JBQWtCO2dFQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCOztpRkFBbEIsa0JBQWtCO2NBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9maWVsZC10eXBlLWVudW0ubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmllbGRUeXBlU2FuaXRpc2VyIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBGSUVMRF9UWVBFX0NPTVBMRVg6IEZpZWxkVHlwZUVudW0gPSAnQ29tcGxleCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRklFTERfVFlQRV9DT0xMRUNUSU9OOiBGaWVsZFR5cGVFbnVtID0gJ0NvbGxlY3Rpb24nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZJRUxEX1RZUEVfRFlOQU1JQ19MSVNUOiBGaWVsZFR5cGVFbnVtID0gJ0R5bmFtaWNMaXN0JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBGSUVMRF9UWVBFX0RZTkFNSUNfUkFESU9fTElTVDogRmllbGRUeXBlRW51bSA9ICdEeW5hbWljUmFkaW9MaXN0JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBGSUVMRF9UWVBFX0RZTkFNSUNfTVVMVElTRUxFQ1RfTElTVDogRmllbGRUeXBlRW51bSA9ICdEeW5hbWljTXVsdGlTZWxlY3RMaXN0JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBEWU5BTUlDX0xJU1RfVFlQRTogRmllbGRUeXBlRW51bVtdID0gWydEeW5hbWljTGlzdCcsICdEeW5hbWljUmFkaW9MaXN0JywgJ0R5bmFtaWNNdWx0aVNlbGVjdExpc3QnXTtcbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGZpbmRzIGR5bmFtaWNsaXN0cyBpbiBhIGZvcm0gYW5kIHJlcGxhY2VzIHRoZWlyIHN0cmluZ1xuICAgKiB2YWx1ZXMsIHdpdGggYSBKU09OIG9iamVjdCwgYXMgYmVsb3c6XG4gICAqIEZyb206ICd4eXonXG4gICAqIFRvICA6IHtcbiAgICogICB2YWx1ZTogeyBjb2RlOid4eXonLCBsYWJlbDonWFlaJyB9LFxuICAgKiAgIGxpc3RfaXRlbXM6IFtcbiAgICogICAgIHsgY29kZToneHl6JywgbGFiZWw6J1hZWid9LFxuICAgKiAgICAgeyBjb2RlOidhYmMnLCBsYWJlbDonQUJDJ31cbiAgICogICBdXG4gICAqIH1cbiAgICogQHBhcmFtIGNhc2VGaWVsZHMgVGhlIENhc2VGaWVsZHMgdG8gYXNzZXNzLlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSBpbiB0aGUgZm9ybS5cbiAgICovXG4gIHB1YmxpYyBzYW5pdGlzZUxpc3RzKGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdLCBkYXRhOiBhbnkpIHtcbiAgICBpZiAoIWRhdGEgfHwgIWNhc2VGaWVsZHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY2FzZUZpZWxkcyA9IHRoaXMuZW5zdXJlRHluYW1pY011bHRpU2VsZWN0TGlzdFBvcHVsYXRlZChjYXNlRmllbGRzKTtcbiAgICBjYXNlRmllbGRzLmZvckVhY2goKGNhc2VGaWVsZCkgPT4ge1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnN3aXRjaC1kZWZhdWx0XG4gICAgICBzd2l0Y2ggKGNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUpIHtcbiAgICAgICAgY2FzZSBGaWVsZFR5cGVTYW5pdGlzZXIuRklFTERfVFlQRV9EWU5BTUlDX01VTFRJU0VMRUNUX0xJU1Q6XG4gICAgICAgICAgdGhpcy5jb252ZXJ0QXJyYXlUb0R5bmFtaWNMaXN0T3V0cHV0KGNhc2VGaWVsZCwgZGF0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRmllbGRUeXBlU2FuaXRpc2VyLkZJRUxEX1RZUEVfRFlOQU1JQ19SQURJT19MSVNUOlxuICAgICAgICBjYXNlIEZpZWxkVHlwZVNhbml0aXNlci5GSUVMRF9UWVBFX0RZTkFNSUNfTElTVDpcbiAgICAgICAgICB0aGlzLmNvbnZlcnRTdHJpbmdUb0R5bmFtaWNMaXN0T3V0cHV0KGNhc2VGaWVsZCwgZGF0YSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBGaWVsZFR5cGVTYW5pdGlzZXIuRklFTERfVFlQRV9DT01QTEVYOlxuICAgICAgICAgIHRoaXMuc2FuaXRpc2VMaXN0cyhjYXNlRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcywgZGF0YVtjYXNlRmllbGQuaWRdKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIEZpZWxkVHlwZVNhbml0aXNlci5GSUVMRF9UWVBFX0NPTExFQ1RJT046XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVtjYXNlRmllbGQuaWRdKSkge1xuICAgICAgICAgICAgZGF0YVtjYXNlRmllbGQuaWRdLmZvckVhY2goKGZvcm1FbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zYW5pdGlzZUxpc3RzKGNhc2VGaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcywgZm9ybUVsZW1lbnQudmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGVuc3VyZUR5bmFtaWNNdWx0aVNlbGVjdExpc3RQb3B1bGF0ZWQoY2FzZUZpZWxkczogQ2FzZUZpZWxkW10pOiBDYXNlRmllbGRbXSB7XG4gICAgcmV0dXJuIGNhc2VGaWVsZHMubWFwKChmaWVsZCkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmZpZWxkX3R5cGUudHlwZSAhPT0gJ0NvbXBsZXgnKSB7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNhc2VGaWVsZERhdGEgPSBmaWVsZC5fdmFsdWU7XG4gICAgICAvLyBQcm9jZXNzIGVhY2ggY29tcGxleCBmaWVsZFxuICAgICAgZmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5mb3JFYWNoKChjb21wbGV4RmllbGQpID0+IHtcbiAgICAgICAgaWYgKGNvbXBsZXhGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09IEZpZWxkVHlwZVNhbml0aXNlci5GSUVMRF9UWVBFX0NPTVBMRVgpIHtcbiAgICAgICAgICB0aGlzLmNoZWNrTmVzdGVkRHluYW1pY0xpc3QoY29tcGxleEZpZWxkLCBjYXNlRmllbGREYXRhPy5bY29tcGxleEZpZWxkLmlkXSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0R5bmFtaWNMaXN0KGNvbXBsZXhGaWVsZC5maWVsZF90eXBlLnR5cGUpICYmXG4gICAgICAgICAgY29tcGxleEZpZWxkLmRpc3BsYXlfY29udGV4dCAhPT0gJ0hJRERFTicgJiZcbiAgICAgICAgICBmaWVsZC5fdmFsdWU/Lltjb21wbGV4RmllbGQuaWRdXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbXBsZXhGaWVsZC5saXN0X2l0ZW1zID0gZmllbGQuX3ZhbHVlW2NvbXBsZXhGaWVsZC5pZF0/Lmxpc3RfaXRlbXM7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgLy8gRmluYWwgdHJhbnNmb3JtYXRpb246IGNvbnN0cnVjdCB1cGRhdGVkIGZpZWxkIG9iamVjdFxuICAgICAgcmV0dXJuIHsgLi4uZmllbGQsIGZpZWxkX3R5cGU6IHsgLi4uZmllbGQ/LmZpZWxkX3R5cGUgfSB9IGFzIENhc2VGaWVsZDtcbiAgICB9KTtcbiAgfVxuICBwcml2YXRlIGNoZWNrTmVzdGVkRHluYW1pY0xpc3QoY2FzZUZpZWxkOiBDYXNlRmllbGQsIGZpZWxkRGF0YTogYW55ID0gbnVsbCk6IHZvaWQge1xuICAgIGNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLmZvckVhY2goKGNvbXBsZXhGaWVsZCkgPT4ge1xuICAgICAgaWYgKGNvbXBsZXhGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09IEZpZWxkVHlwZVNhbml0aXNlci5GSUVMRF9UWVBFX0NPTVBMRVgpIHtcbiAgICAgICAgdGhpcy5jaGVja05lc3RlZER5bmFtaWNMaXN0KGNvbXBsZXhGaWVsZCwgZmllbGREYXRhPy5bY29tcGxleEZpZWxkLmlkXSk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNEeW5hbWljTGlzdChjb21wbGV4RmllbGQuZmllbGRfdHlwZS50eXBlKSAmJlxuICAgICAgICBjb21wbGV4RmllbGQuZGlzcGxheV9jb250ZXh0ICE9PSAnSElEREVOJyAmJlxuICAgICAgICBmaWVsZERhdGE/Lltjb21wbGV4RmllbGQuaWRdXG4gICAgICApIHtcbiAgICAgICAgY29tcGxleEZpZWxkLmxpc3RfaXRlbXMgPSBmaWVsZERhdGE/Lltjb21wbGV4RmllbGQuaWRdPy5saXN0X2l0ZW1zO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0R5bmFtaWNMaXN0KGZpZWxkVHlwZTogRmllbGRUeXBlRW51bSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBGaWVsZFR5cGVTYW5pdGlzZXIuRFlOQU1JQ19MSVNUX1RZUEUuaW5kZXhPZihmaWVsZFR5cGUpICE9PSAtMTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydEFycmF5VG9EeW5hbWljTGlzdE91dHB1dChmaWVsZDogQ2FzZUZpZWxkLCBkYXRhOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB2YWx1ZXMgPSBkYXRhW2ZpZWxkLmlkXTtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZXMpKSB7XG4gICAgICBjb25zdCBsaXN0SXRlbXMgPSB0aGlzLmdldExpc3RJdGVtcyhmaWVsZCk7XG4gICAgICBjb25zdCBtYXRjaGVzID0gbGlzdEl0ZW1zLmZpbHRlcihpdGVtID0+IHZhbHVlcy5tYXAodiA9PiB2LmNvZGUpLmluZGV4T2YoaXRlbS5jb2RlKSAhPT0gLTEpO1xuXG4gICAgICBkYXRhW2ZpZWxkLmlkXSA9IHtcbiAgICAgICAgdmFsdWU6IG1hdGNoZXMsXG4gICAgICAgIGxpc3RfaXRlbXM6IGxpc3RJdGVtc1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRTdHJpbmdUb0R5bmFtaWNMaXN0T3V0cHV0KGZpZWxkOiBDYXNlRmllbGQsIGRhdGE6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHN0cmluZ1ZhbHVlID0gZGF0YVtmaWVsZC5pZF07XG4gICAgaWYgKHR5cGVvZiBzdHJpbmdWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGxpc3RJdGVtcyA9IHRoaXMuZ2V0TGlzdEl0ZW1zKGZpZWxkKTtcbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBsaXN0SXRlbXMuZmlsdGVyKHZhbHVlID0+IHZhbHVlPy5jb2RlID09PSBzdHJpbmdWYWx1ZSk7XG4gICAgICBpZiAobWF0Y2hlcyAmJiBtYXRjaGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZGF0YVtmaWVsZC5pZF0gPSB7XG4gICAgICAgICAgdmFsdWU6IG1hdGNoZXNbMF0sXG4gICAgICAgICAgbGlzdF9pdGVtczogbGlzdEl0ZW1zXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRMaXN0SXRlbXMoZmllbGQ6IENhc2VGaWVsZCk6IGFueVtdIHtcbiAgICBpZiAoZmllbGQpIHtcbiAgICAgIGlmIChmaWVsZC5saXN0X2l0ZW1zKSB7XG4gICAgICAgIHJldHVybiBmaWVsZC5saXN0X2l0ZW1zO1xuICAgICAgfVxuICAgICAgaWYgKGZpZWxkLmZvcm1hdHRlZF92YWx1ZSAmJiBmaWVsZC5mb3JtYXR0ZWRfdmFsdWUubGlzdF9pdGVtcykge1xuICAgICAgICByZXR1cm4gZmllbGQuZm9ybWF0dGVkX3ZhbHVlLmxpc3RfaXRlbXM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxufVxuIl19
102
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdHlwZS1zYW5pdGlzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2Zvcm0vZmllbGQtdHlwZS1zYW5pdGlzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGtCQUFrQjtJQUN0QixNQUFNLENBQVUsa0JBQWtCLEdBQWtCLFNBQVMsQ0FBQztJQUM5RCxNQUFNLENBQVUscUJBQXFCLEdBQWtCLFlBQVksQ0FBQztJQUNwRSxNQUFNLENBQVUsdUJBQXVCLEdBQWtCLGFBQWEsQ0FBQztJQUN2RSxNQUFNLENBQVUsNkJBQTZCLEdBQWtCLGtCQUFrQixDQUFDO0lBQ2xGLE1BQU0sQ0FBVSxtQ0FBbUMsR0FBa0Isd0JBQXdCLENBQUM7SUFDckc7Ozs7Ozs7Ozs7Ozs7T0FhRztJQUNJLGFBQWEsQ0FBQyxVQUF1QixFQUFFLElBQVM7UUFDckQsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3pCLE9BQU87UUFDVCxDQUFDO1FBQ0QsVUFBVSxHQUFHLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDL0IsMENBQTBDO1lBQzFDLFFBQVEsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDbEMsS0FBSyxrQkFBa0IsQ0FBQyxtQ0FBbUM7b0JBQ3pELElBQUksQ0FBQywrQkFBK0IsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3RELE1BQU07Z0JBQ1IsS0FBSyxrQkFBa0IsQ0FBQyw2QkFBNkIsQ0FBQztnQkFDdEQsS0FBSyxrQkFBa0IsQ0FBQyx1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SUFBSSxPQUFPLFdBQVcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNwQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLE1BQU0sT0FBTyxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsSUFBSSxLQUFLLFdBQVcsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUc7b0JBQ2YsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ2pCLFVBQVUsRUFBRSxTQUFTO2lCQUN0QixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sWUFBWSxDQUFDLEtBQWdCO1FBQ25DLElBQUksS0FBSyxFQUFFLENBQUM7WUFDVixJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDO1lBQzFCLENBQUM7WUFDRCxJQUFJLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDOUQsT0FBTyxLQUFLLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQztZQUMxQyxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQzs0RUF0R1Usa0JBQWtCO2dFQUFsQixrQkFBa0IsV0FBbEIsa0JBQWtCOztpRkFBbEIsa0JBQWtCO2NBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkVHlwZUVudW0gfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9maWVsZC10eXBlLWVudW0ubW9kZWwnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRmllbGRUeXBlU2FuaXRpc2VyIHtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBGSUVMRF9UWVBFX0NPTVBMRVg6IEZpZWxkVHlwZUVudW0gPSAnQ29tcGxleCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRklFTERfVFlQRV9DT0xMRUNUSU9OOiBGaWVsZFR5cGVFbnVtID0gJ0NvbGxlY3Rpb24nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZJRUxEX1RZUEVfRFlOQU1JQ19MSVNUOiBGaWVsZFR5cGVFbnVtID0gJ0R5bmFtaWNMaXN0JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBGSUVMRF9UWVBFX0RZTkFNSUNfUkFESU9fTElTVDogRmllbGRUeXBlRW51bSA9ICdEeW5hbWljUmFkaW9MaXN0JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBGSUVMRF9UWVBFX0RZTkFNSUNfTVVMVElTRUxFQ1RfTElTVDogRmllbGRUeXBlRW51bSA9ICdEeW5hbWljTXVsdGlTZWxlY3RMaXN0JztcbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGZpbmRzIGR5bmFtaWNsaXN0cyBpbiBhIGZvcm0gYW5kIHJlcGxhY2VzIHRoZWlyIHN0cmluZ1xuICAgKiB2YWx1ZXMsIHdpdGggYSBKU09OIG9iamVjdCwgYXMgYmVsb3c6XG4gICAqIEZyb206ICd4eXonXG4gICAqIFRvICA6IHtcbiAgICogICB2YWx1ZTogeyBjb2RlOid4eXonLCBsYWJlbDonWFlaJyB9LFxuICAgKiAgIGxpc3RfaXRlbXM6IFtcbiAgICogICAgIHsgY29kZToneHl6JywgbGFiZWw6J1hZWid9LFxuICAgKiAgICAgeyBjb2RlOidhYmMnLCBsYWJlbDonQUJDJ31cbiAgICogICBdXG4gICAqIH1cbiAgICogQHBhcmFtIGNhc2VGaWVsZHMgVGhlIENhc2VGaWVsZHMgdG8gYXNzZXNzLlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSBpbiB0aGUgZm9ybS5cbiAgICovXG4gIHB1YmxpYyBzYW5pdGlzZUxpc3RzKGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdLCBkYXRhOiBhbnkpIHtcbiAgICBpZiAoIWRhdGEgfHwgIWNhc2VGaWVsZHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY2FzZUZpZWxkcyA9IHRoaXMuZW5zdXJlRHluYW1pY011bHRpU2VsZWN0TGlzdFBvcHVsYXRlZChjYXNlRmllbGRzKTtcbiAgICBjYXNlRmllbGRzLmZvckVhY2goKGNhc2VGaWVsZCkgPT4ge1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnN3aXRjaC1kZWZhdWx0XG4gICAgICBzd2l0Y2ggKGNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUpIHtcbiAgICAgICAgY2FzZSBGaWVsZFR5cGVTYW5pdGlzZXIuRklFTERfVFlQRV9EWU5BTUlDX01VTFRJU0VMRUNUX0xJU1Q6XG4gICAgICAgICAgdGhpcy5jb252ZXJ0QXJyYXlUb0R5bmFtaWNMaXN0T3V0cHV0KGNhc2VGaWVsZCwgZGF0YSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgRmllbGRUeXBlU2FuaXRpc2VyLkZJRUxEX1RZUEVfRFlOQU1JQ19SQURJT19MSVNUOlxuICAgICAgICBjYXNlIEZpZWxkVHlwZVNhbml0aXNlci5GSUVMRF9UWVBFX0RZTkFNSUNfTElTVDpcbiAgICAgICAgICB0aGlzLmNvbnZlcnRTdHJpbmdUb0R5bmFtaWNMaXN0T3V0cHV0KGNhc2VGaWVsZCwgZGF0YSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBGaWVsZFR5cGVTYW5pdGlzZXIuRklFTERfVFlQRV9DT01QTEVYOlxuICAgICAgICAgIHRoaXMuc2FuaXRpc2VMaXN0cyhjYXNlRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcywgZGF0YVtjYXNlRmllbGQuaWRdKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIEZpZWxkVHlwZVNhbml0aXNlci5GSUVMRF9UWVBFX0NPTExFQ1RJT046XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVtjYXNlRmllbGQuaWRdKSkge1xuICAgICAgICAgICAgZGF0YVtjYXNlRmllbGQuaWRdLmZvckVhY2goKGZvcm1FbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zYW5pdGlzZUxpc3RzKGNhc2VGaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcywgZm9ybUVsZW1lbnQudmFsdWUpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGVuc3VyZUR5bmFtaWNNdWx0aVNlbGVjdExpc3RQb3B1bGF0ZWQoY2FzZUZpZWxkczogQ2FzZUZpZWxkW10pOiBDYXNlRmllbGRbXSB7XG4gICAgcmV0dXJuIGNhc2VGaWVsZHMubWFwKChmaWVsZCkgPT4ge1xuICAgICAgaWYgKGZpZWxkLmZpZWxkX3R5cGUudHlwZSAhPT0gJ0NvbXBsZXgnKSB7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGNvbXBsZXhGaWVsZHNVcGRhdGVkID0gZmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5tYXAoKGNvbXBsZXhGaWVsZCkgPT5cbiAgICAgICAgY29tcGxleEZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gRmllbGRUeXBlU2FuaXRpc2VyLkZJRUxEX1RZUEVfRFlOQU1JQ19NVUxUSVNFTEVDVF9MSVNUICYmIGNvbXBsZXhGaWVsZC5kaXNwbGF5X2NvbnRleHQgIT09ICdISURERU4nICYmIGZpZWxkLl92YWx1ZT8uW2NvbXBsZXhGaWVsZC5pZF1cbiAgICAgICAgICA/IHsgLi4uY29tcGxleEZpZWxkLCBsaXN0X2l0ZW1zOiBmaWVsZC5fdmFsdWVbY29tcGxleEZpZWxkLmlkXT8ubGlzdF9pdGVtcyB9IDogY29tcGxleEZpZWxkXG4gICAgICApO1xuICAgICAgcmV0dXJuIHsgLi4uZmllbGQsIGZpZWxkX3R5cGU6IHsgLi4uZmllbGQuZmllbGRfdHlwZSwgY29tcGxleF9maWVsZHM6IGNvbXBsZXhGaWVsZHNVcGRhdGVkIH0gfSBhcyBDYXNlRmllbGQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRBcnJheVRvRHluYW1pY0xpc3RPdXRwdXQoZmllbGQ6IENhc2VGaWVsZCwgZGF0YTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdmFsdWVzID0gZGF0YVtmaWVsZC5pZF07XG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZXMpKSB7XG4gICAgICBjb25zdCBsaXN0SXRlbXMgPSB0aGlzLmdldExpc3RJdGVtcyhmaWVsZCk7XG4gICAgICBjb25zdCBtYXRjaGVzID0gbGlzdEl0ZW1zLmZpbHRlcihpdGVtID0+IHZhbHVlcy5tYXAodiA9PiB2LmNvZGUpLmluZGV4T2YoaXRlbS5jb2RlKSAhPT0gLTEpO1xuXG4gICAgICBkYXRhW2ZpZWxkLmlkXSA9IHtcbiAgICAgICAgdmFsdWU6IG1hdGNoZXMsXG4gICAgICAgIGxpc3RfaXRlbXM6IGxpc3RJdGVtc1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRTdHJpbmdUb0R5bmFtaWNMaXN0T3V0cHV0KGZpZWxkOiBDYXNlRmllbGQsIGRhdGE6IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHN0cmluZ1ZhbHVlID0gZGF0YVtmaWVsZC5pZF07XG4gICAgaWYgKHR5cGVvZiBzdHJpbmdWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IGxpc3RJdGVtcyA9IHRoaXMuZ2V0TGlzdEl0ZW1zKGZpZWxkKTtcbiAgICAgIGNvbnN0IG1hdGNoZXMgPSBsaXN0SXRlbXMuZmlsdGVyKHZhbHVlID0+IHZhbHVlPy5jb2RlID09PSBzdHJpbmdWYWx1ZSk7XG4gICAgICBpZiAobWF0Y2hlcyAmJiBtYXRjaGVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgZGF0YVtmaWVsZC5pZF0gPSB7XG4gICAgICAgICAgdmFsdWU6IG1hdGNoZXNbMF0sXG4gICAgICAgICAgbGlzdF9pdGVtczogbGlzdEl0ZW1zXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRMaXN0SXRlbXMoZmllbGQ6IENhc2VGaWVsZCk6IGFueVtdIHtcbiAgICBpZiAoZmllbGQpIHtcbiAgICAgIGlmIChmaWVsZC5saXN0X2l0ZW1zKSB7XG4gICAgICAgIHJldHVybiBmaWVsZC5saXN0X2l0ZW1zO1xuICAgICAgfVxuICAgICAgaWYgKGZpZWxkLmZvcm1hdHRlZF92YWx1ZSAmJiBmaWVsZC5mb3JtYXR0ZWRfdmFsdWUubGlzdF9pdGVtcykge1xuICAgICAgICByZXR1cm4gZmllbGQuZm9ybWF0dGVkX3ZhbHVlLmxpc3RfaXRlbXM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBbXTtcbiAgfVxufVxuIl19
@@ -5590,7 +5590,6 @@ class FieldTypeSanitiser {
5590
5590
  static FIELD_TYPE_DYNAMIC_LIST = 'DynamicList';
5591
5591
  static FIELD_TYPE_DYNAMIC_RADIO_LIST = 'DynamicRadioList';
5592
5592
  static FIELD_TYPE_DYNAMIC_MULTISELECT_LIST = 'DynamicMultiSelectList';
5593
- static DYNAMIC_LIST_TYPE = ['DynamicList', 'DynamicRadioList', 'DynamicMultiSelectList'];
5594
5593
  /**
5595
5594
  * This method finds dynamiclists in a form and replaces their string
5596
5595
  * values, with a JSON object, as below:
@@ -5638,37 +5637,11 @@ class FieldTypeSanitiser {
5638
5637
  if (field.field_type.type !== 'Complex') {
5639
5638
  return field;
5640
5639
  }
5641
- const caseFieldData = field._value;
5642
- // Process each complex field
5643
- field.field_type.complex_fields.forEach((complexField) => {
5644
- if (complexField.field_type.type === FieldTypeSanitiser.FIELD_TYPE_COMPLEX) {
5645
- this.checkNestedDynamicList(complexField, caseFieldData?.[complexField.id]);
5646
- }
5647
- else if (this.isDynamicList(complexField.field_type.type) &&
5648
- complexField.display_context !== 'HIDDEN' &&
5649
- field._value?.[complexField.id]) {
5650
- complexField.list_items = field._value[complexField.id]?.list_items;
5651
- }
5652
- });
5653
- // Final transformation: construct updated field object
5654
- return { ...field, field_type: { ...field?.field_type } };
5655
- });
5656
- }
5657
- checkNestedDynamicList(caseField, fieldData = null) {
5658
- caseField.field_type.complex_fields.forEach((complexField) => {
5659
- if (complexField.field_type.type === FieldTypeSanitiser.FIELD_TYPE_COMPLEX) {
5660
- this.checkNestedDynamicList(complexField, fieldData?.[complexField.id]);
5661
- }
5662
- else if (this.isDynamicList(complexField.field_type.type) &&
5663
- complexField.display_context !== 'HIDDEN' &&
5664
- fieldData?.[complexField.id]) {
5665
- complexField.list_items = fieldData?.[complexField.id]?.list_items;
5666
- }
5640
+ const complexFieldsUpdated = field.field_type.complex_fields.map((complexField) => complexField.field_type.type === FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_MULTISELECT_LIST && complexField.display_context !== 'HIDDEN' && field._value?.[complexField.id]
5641
+ ? { ...complexField, list_items: field._value[complexField.id]?.list_items } : complexField);
5642
+ return { ...field, field_type: { ...field.field_type, complex_fields: complexFieldsUpdated } };
5667
5643
  });
5668
5644
  }
5669
- isDynamicList(fieldType) {
5670
- return FieldTypeSanitiser.DYNAMIC_LIST_TYPE.indexOf(fieldType) !== -1;
5671
- }
5672
5645
  convertArrayToDynamicListOutput(field, data) {
5673
5646
  const values = data[field.id];
5674
5647
  if (Array.isArray(values)) {
@@ -8034,41 +8007,6 @@ class WizardPageFieldToCaseFieldMapper {
8034
8007
  }]
8035
8008
  }], null, null); })();
8036
8009
 
8037
- function convertNonASCIICharacter(character) {
8038
- if (character === '£') {
8039
- // pound sign will be frequently used and works for btoa despite being non-ASCII
8040
- // note: this could be done for other characters provided they work for btoa()
8041
- return character;
8042
- }
8043
- // Note: Will convert to HTML entity
8044
- return CaseEditUtils.PREFIX + character.charCodeAt(0) + CaseEditUtils.SUFFIX;
8045
- }
8046
- class CaseEditUtils {
8047
- static PREFIX = '&#';
8048
- static SUFFIX = ';';
8049
- convertNonASCIICharacters(rawString) {
8050
- return rawString ? rawString.replace(/[^\x20-\x7E]/g, function (c) {
8051
- return convertNonASCIICharacter(c);
8052
- }) : '';
8053
- }
8054
- convertHTMLEntities(editedString) {
8055
- const revertedCharacterList = editedString.split(CaseEditUtils.PREFIX);
8056
- let rawString = revertedCharacterList[0];
8057
- for (let index = 1; index < revertedCharacterList.length; index++) {
8058
- const currentSection = revertedCharacterList[index];
8059
- if (!currentSection.includes(CaseEditUtils.SUFFIX)) {
8060
- return rawString.concat(currentSection);
8061
- }
8062
- else {
8063
- const suffixSplitList = currentSection.split(CaseEditUtils.SUFFIX);
8064
- const characterCode = Number(suffixSplitList[0]);
8065
- rawString = rawString.concat(String.fromCharCode(characterCode), suffixSplitList[1]);
8066
- }
8067
- }
8068
- return rawString;
8069
- }
8070
- }
8071
-
8072
8010
  class CasesService {
8073
8011
  http;
8074
8012
  appConfig;
@@ -8357,10 +8295,8 @@ class CasesService {
8357
8295
  addClientContextHeader(headers) {
8358
8296
  const clientContextDetails = this.sessionStorageService.getItem('clientContext');
8359
8297
  if (clientContextDetails) {
8360
- const caseEditUtils = new CaseEditUtils();
8361
- // below changes non-ASCII characters
8362
- const editedClientContext = caseEditUtils.convertNonASCIICharacters(clientContextDetails);
8363
- const clientContext = window.btoa(editedClientContext);
8298
+ // may require URI encoding in certain circumstances
8299
+ const clientContext = window.btoa(clientContextDetails);
8364
8300
  if (clientContext) {
8365
8301
  headers = headers.set('Client-Context', clientContext);
8366
8302
  }
@@ -8369,11 +8305,8 @@ class CasesService {
8369
8305
  }
8370
8306
  updateClientContextStorage(headers) {
8371
8307
  if (headers && headers.get('Client-Context')) {
8372
- const caseEditUtils = new CaseEditUtils();
8373
8308
  const clientContextString = window.atob(headers.get('Client-Context'));
8374
- // below reverts non-ASCII characters
8375
- const editedClientContextString = caseEditUtils.convertHTMLEntities(clientContextString);
8376
- this.sessionStorageService.setItem('clientContext', editedClientContextString);
8309
+ this.sessionStorageService.setItem('clientContext', clientContextString);
8377
8310
  }
8378
8311
  }
8379
8312
  static ɵfac = function CasesService_Factory(t) { return new (t || CasesService)(i0.ɵɵinject(HttpService), i0.ɵɵinject(AbstractAppConfig), i0.ɵɵinject(OrderService), i0.ɵɵinject(HttpErrorService), i0.ɵɵinject(WizardPageFieldToCaseFieldMapper), i0.ɵɵinject(LoadingService), i0.ɵɵinject(SessionStorageService), i0.ɵɵinject(RetryUtil)); };
@@ -9285,38 +9218,15 @@ class ValidPageListCaseFieldsService {
9285
9218
  });
9286
9219
  }
9287
9220
  }
9288
- validPageListCaseFields(validPageList, eventTriggerFields, formFields, form) {
9221
+ validPageListCaseFields(validPageList, eventTriggerFields, formFields) {
9289
9222
  const validPageListCaseFields = [];
9290
9223
  validPageList.forEach(page => {
9291
9224
  if (this.isShown(page, eventTriggerFields, formFields)) {
9292
- page.case_fields.forEach(field => {
9293
- this.setHiddenFlagOnHiddenFormControls(form, field);
9294
- validPageListCaseFields.push(field);
9295
- });
9225
+ page.case_fields.forEach(field => validPageListCaseFields.push(field));
9296
9226
  }
9297
9227
  });
9298
9228
  return validPageListCaseFields;
9299
9229
  }
9300
- setHiddenFlagOnHiddenFormControls(form, field) {
9301
- try {
9302
- if (form?.controls['data']['controls'][field.id]?.controls) {
9303
- Object.keys(form.controls['data']['controls'][field.id]?.controls).forEach((item) => {
9304
- const fieldCheck = form.controls['data']['controls'][field.id]?.controls[item].caseField;
9305
- if (fieldCheck?.hidden === true && fieldCheck?.retain_hidden_value !== true) {
9306
- if (field.field_type.type === 'Complex') {
9307
- const objWithIdIndex = field.field_type.complex_fields.findIndex((obj) => obj.id === fieldCheck.id);
9308
- if (objWithIdIndex >= 0) {
9309
- field.field_type.complex_fields[objWithIdIndex].hidden = true;
9310
- }
9311
- }
9312
- }
9313
- });
9314
- }
9315
- }
9316
- catch (e) {
9317
- console.log("error setHiddenFalgsOnHiddenFormControls");
9318
- }
9319
- }
9320
9230
  static ɵfac = function ValidPageListCaseFieldsService_Factory(t) { return new (t || ValidPageListCaseFieldsService)(i0.ɵɵinject(FieldsUtils)); };
9321
9231
  static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ValidPageListCaseFieldsService, factory: ValidPageListCaseFieldsService.ɵfac });
9322
9232
  }
@@ -9567,7 +9477,7 @@ class CaseEditComponent {
9567
9477
  this.formValueService.removeCaseFieldsOfType(caseEventData.data, eventTrigger.case_fields, ['FlagLauncher', 'ComponentLauncher']);
9568
9478
  // delete fields which are not part of the case event journey wizard pages case fields
9569
9479
  this.validPageListCaseFieldsService.deleteNonValidatedFields(this.validPageList, caseEventData.data, eventTrigger.case_fields, false, form.controls['data'].value);
9570
- const pageListCaseFields = this.validPageListCaseFieldsService.validPageListCaseFields(this.validPageList, eventTrigger.case_fields, form.controls['data'].value, form);
9480
+ const pageListCaseFields = this.validPageListCaseFieldsService.validPageListCaseFields(this.validPageList, eventTrigger.case_fields, form.controls['data'].value);
9571
9481
  // Remove unnecessary case fields which are hidden, only if the submission is *not* for Case Flags
9572
9482
  if (!this.isCaseFlagSubmission) {
9573
9483
  this.formValueService.removeUnnecessaryFields(caseEventData.data, pageListCaseFields, true, true);
@@ -33823,16 +33733,35 @@ class EventStartGuard {
33823
33733
  userId = userInfo.id ? userInfo.id : userInfo.uid;
33824
33734
  }
33825
33735
  const caseInfoStr = this.sessionStorageService.getItem('caseInfo');
33826
- const currentLanguage = this.cookieService.getCookie('exui-preferred-language');
33827
- // if one task assigned to user, allow user to complete event
33828
- const storeClientContext = {
33829
- client_context: {
33830
- user_language: {
33831
- language: currentLanguage
33736
+ const languageCookie = this.cookieService.getCookie('exui-preferred-language');
33737
+ const currentLanguage = !!languageCookie && languageCookie !== '' ? languageCookie : 'en';
33738
+ const preClientContext = this.sessionStorageService.getItem(EventStartGuard.CLIENT_CONTEXT);
33739
+ if (!preClientContext) {
33740
+ // creates client context for language if not already existing
33741
+ const storeClientContext = {
33742
+ client_context: {
33743
+ user_language: {
33744
+ language: currentLanguage
33745
+ }
33832
33746
  }
33747
+ };
33748
+ this.sessionStorageService.setItem(EventStartGuard.CLIENT_CONTEXT, JSON.stringify(storeClientContext));
33749
+ }
33750
+ else {
33751
+ const clientContextObj = JSON.parse(preClientContext);
33752
+ if (!clientContextObj?.client_context?.user_language) {
33753
+ const clientContextAddLanguage = {
33754
+ ...clientContextObj,
33755
+ client_context: {
33756
+ ...clientContextObj.client_context,
33757
+ user_language: {
33758
+ language: currentLanguage
33759
+ }
33760
+ }
33761
+ };
33762
+ this.sessionStorageService.setItem(EventStartGuard.CLIENT_CONTEXT, JSON.stringify(clientContextAddLanguage));
33833
33763
  }
33834
- };
33835
- this.sessionStorageService.setItem(EventStartGuard.CLIENT_CONTEXT, JSON.stringify(storeClientContext));
33764
+ }
33836
33765
  if (caseInfoStr) {
33837
33766
  const caseInfo = JSON.parse(caseInfoStr);
33838
33767
  if (caseInfo && caseInfo.cid === caseId) {