@hmcts/ccd-case-ui-toolkit 7.2.23-srt-rc2 → 7.2.23-srt-rc3

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.
@@ -112,8 +112,29 @@ export class CaseEditFormComponent {
112
112
  this.initial = JSON.stringify(this.formValueService.sanitise(this.formGroup.value));
113
113
  }
114
114
  detectChangesAndEmit(changes) {
115
- const current = JSON.stringify(this.formValueService.sanitise(changes));
116
- this.initial !== current ? this.valuesChanged.emit(true) : this.valuesChanged.emit(false);
115
+ const current = this.formValueService.sanitise(changes);
116
+ const isEqual = this.deepEqual(this.initial, current);
117
+ this.valuesChanged.emit(!isEqual);
118
+ }
119
+ deepEqual(obj1, obj2) {
120
+ // Simple deep equality check
121
+ if (obj1 === obj2) {
122
+ return true;
123
+ }
124
+ if (typeof obj1 !== 'object' || typeof obj2 !== 'object' || obj1 == null || obj2 == null) {
125
+ return false;
126
+ }
127
+ const keys1 = Object.keys(obj1);
128
+ const keys2 = Object.keys(obj2);
129
+ if (keys1.length !== keys2.length) {
130
+ return false;
131
+ }
132
+ for (const key of keys1) {
133
+ if (!this.deepEqual(obj1[key], obj2[key])) {
134
+ return false;
135
+ }
136
+ }
137
+ return true;
117
138
  }
118
139
  static ɵfac = function CaseEditFormComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseEditFormComponent)(i0.ɵɵdirectiveInject(i1.FormValueService)); };
119
140
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditFormComponent, selectors: [["ccd-case-edit-form"]], inputs: { fields: "fields", formGroup: "formGroup", caseFields: "caseFields", pageChangeSubject: "pageChangeSubject" }, outputs: { valuesChanged: "valuesChanged" }, decls: 1, vars: 1, consts: [["CompoundRow", ""], ["ccdConditionalShowForm", "", 3, "formGroup", "caseFields", "contextFields", 4, "ngFor", "ngForOf"], ["ccdConditionalShowForm", "", 3, "formGroup", "caseFields", "contextFields"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], [3, "ngSwitch"], [3, "caseField", "caseFields", "withLabel", "formGroup", 4, "ngSwitchCase"], [4, "ngSwitchCase"], [3, "caseField", "caseFields", "withLabel", "formGroup"], [4, "ngIf", "ngIfElse"], [3, "caseField", "caseFields", "formGroup", "idPrefix", "hidden"]], template: function CaseEditFormComponent_Template(rf, ctx) { if (rf & 1) {
@@ -137,4 +158,4 @@ export class CaseEditFormComponent {
137
158
  type: Output
138
159
  }] }); })();
139
160
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditFormComponent, { className: "CaseEditFormComponent", filePath: "lib/shared/components/case-editor/case-edit-form/case-edit-form.component.ts", lineNumber: 12 }); })();
140
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2Nhc2UtZWRpdC1mb3JtL2Nhc2UtZWRpdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQtZm9ybS9jYXNlLWVkaXQtZm9ybS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7SUNDdkUsb0NBRTJFOzs7O0lBRDNELEFBRG1FLEFBQTFCLEFBQXBCLG9DQUFtQixpQ0FBMEIsbUJBQW1CLCtCQUM5RDs7OztJQUlyQyw2QkFBaUU7SUFDL0QscUNBT2tCOzs7OztJQVBELGNBQW1CO0lBSW5CLEFBRkEsQUFEQSxBQURBLG9DQUFtQixpQ0FDTSwrQkFDRiwyQkFFQTs7OztJQU94QyxxQ0FNNkU7Ozs7SUFGNUQsQUFEQSxBQURBLEFBREEsQUFEQSxvQ0FBbUIsaUNBQ00sK0JBQ0YsK0JBQ0ksMkJBQ0o7Ozs7SUFsQjVDLDZCQUFvQztJQUVsQyxzSEFBaUU7O0lBV2pFLHFKQUEwQjs7Ozs7SUFYWCxj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QzsrR0E1RFUscUJBQXFCOzZEQUFyQixxQkFBcUI7WUNYbEMseUZBQzJDOztZQUFYLG9DQUFTOzs7aUZEVTVCLHFCQUFxQjtjQUpqQyxTQUFTOzJCQUNFLG9CQUFvQjtpREFNdkIsTUFBTTtrQkFEWixLQUFLO1lBR0MsU0FBUztrQkFEZixLQUFLO1lBR0MsVUFBVTtrQkFEaEIsS0FBSztZQUdDLGlCQUFpQjtrQkFEdkIsS0FBSztZQUdDLGFBQWE7a0JBRG5CLE1BQU07O2tGQVZJLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGb3JtVmFsdWVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZm9ybS9mb3JtLXZhbHVlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2QtY2FzZS1lZGl0LWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJ2Nhc2UtZWRpdC1mb3JtLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIENhc2VFZGl0Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZpZWxkczogQ2FzZUZpZWxkW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10gPSBbXTtcbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2VDaGFuZ2VTdWJqZWN0OiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3QoKTtcbiAgQE91dHB1dCgpXG4gIHB1YmxpYyB2YWx1ZXNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgaW5pdGlhbDogYW55O1xuICBwdWJsaWMgcGFnZUNoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMgZm9ybUdyb3VwQ2hhbmdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmb3JtVmFsdWVTZXJ2aWNlOiBGb3JtVmFsdWVTZXJ2aWNlKSB7IH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGFnZUNoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5wYWdlQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZvcm1Hcm91cENoYW5nZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5mb3JtR3JvdXBDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICAvLyBXZSBuZWVkIHRoZSBiZWxvdyB1bi9zdWJzY3JpYmUgY29tcGxleGl0eSBhcyB3ZSBkbyBub3QgaGF2ZSBwcm9wZXIgcGFnZSBjb21wb25lbnQgcGVyIHBhZ2Ugd2l0aCBpdHMgQWZ0ZXJWaWV3SW5pdCBob29rXG4gIC8vIGJlaW5nIGNhbGxlZCBvbiBlYWNoIHBhZ2UgbG9hZC4gVGhpcyBpcyBkb25lIGZvciBcIkNhbmNlbCBhbmQgcmV0dXJuXCIgbW9kYWwgZnJvbSBSRE0tMjMwMi5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJldHJpZXZlSW5pdGlhbEZvcm1WYWx1ZXMoKTtcbiAgICB0aGlzLnBhZ2VDaGFuZ2VTdWJzY3JpcHRpb24gPSB0aGlzLnBhZ2VDaGFuZ2VTdWJqZWN0LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5mb3JtR3JvdXBDaGFuZ2VTdWJzY3JpcHRpb24pIHtcbiAgICAgICAgdGhpcy5mb3JtR3JvdXBDaGFuZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgIH1cbiAgICAgIC8vIFRpbWVvdXQgaXMgcmVxdWlyZWQgZm9yIHRoZSBmb3JtIHRvIGJlIHJlbmRlcmVkIGJlZm9yZSBzdWJzY3JpcHRpb24gdG8gZm9ybSBjaGFuZ2VzIGFuZCBpbml0aWFsIGZvcm0gdmFsdWVzIHJldHJpZXZhbC5cbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnN1YnNjcmliZVRvRm9ybUNoYW5nZXMoKTtcbiAgICAgICAgdGhpcy5yZXRyaWV2ZUluaXRpYWxGb3JtVmFsdWVzKCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICB0aGlzLnN1YnNjcmliZVRvRm9ybUNoYW5nZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJzY3JpYmVUb0Zvcm1DaGFuZ2VzKCkge1xuICAgIHRoaXMuZm9ybUdyb3VwQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5mb3JtR3JvdXAudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDIwMClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoXyA9PiB0aGlzLmRldGVjdENoYW5nZXNBbmRFbWl0KF8pKTtcbiAgfVxuXG4gIHB1YmxpYyByZXRyaWV2ZUluaXRpYWxGb3JtVmFsdWVzKCkge1xuICAgIHRoaXMuaW5pdGlhbCA9IEpTT04uc3RyaW5naWZ5KHRoaXMuZm9ybVZhbHVlU2VydmljZS5zYW5pdGlzZSh0aGlzLmZvcm1Hcm91cC52YWx1ZSkpO1xuICB9XG5cbiAgcHVibGljIGRldGVjdENoYW5nZXNBbmRFbWl0KGNoYW5nZXMpIHtcbiAgICBjb25zdCBjdXJyZW50ID0gSlNPTi5zdHJpbmdpZnkodGhpcy5mb3JtVmFsdWVTZXJ2aWNlLnNhbml0aXNlKGNoYW5nZXMpKTtcbiAgICB0aGlzLmluaXRpYWwgIT09IGN1cnJlbnQgPyB0aGlzLnZhbHVlc0NoYW5nZWQuZW1pdCh0cnVlKSA6IHRoaXMudmFsdWVzQ2hhbmdlZC5lbWl0KGZhbHNlKTtcbiAgfVxuXG4gIC8qcHJpdmF0ZSBkZWVwRXF1YWwob2JqMTogYW55LCBvYmoyOiBhbnkpOiBib29sZWFuIHtcbiAgICAvLyBTaW1wbGUgZGVlcCBlcXVhbGl0eSBjaGVja1xuICAgIGlmIChvYmoxID09PSBvYmoyKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBvYmoxICE9PSAnb2JqZWN0JyB8fCB0eXBlb2Ygb2JqMiAhPT0gJ29iamVjdCcgfHwgb2JqMSA9PSBudWxsIHx8IG9iajIgPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBrZXlzMSA9IE9iamVjdC5rZXlzKG9iajEpO1xuICAgIGNvbnN0IGtleXMyID0gT2JqZWN0LmtleXMob2JqMik7XG4gICAgaWYgKGtleXMxLmxlbmd0aCAhPT0ga2V5czIubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXMxKSB7XG4gICAgICBpZiAoIXRoaXMuZGVlcEVxdWFsKG9iajFba2V5XSwgb2JqMltrZXldKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9Ki9cbn1cbiIsIjxuZy1jb250YWluZXIgY2NkQ29uZGl0aW9uYWxTaG93Rm9ybSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIFtjYXNlRmllbGRzXT1cImZpZWxkc1wiIFtjb250ZXh0RmllbGRzXT1cImNhc2VGaWVsZHNcIlxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmllbGRzXCI+XG5cbiAgPGRpdiBjY2RMYWJlbFN1YnN0aXR1dG9yIFtjYXNlRmllbGRdPVwiZmllbGRcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIFtjb250ZXh0RmllbGRzXT1cImNhc2VGaWVsZHNcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWVsZCB8IGNjZElzUmVhZE9ubHlBbmROb3RDb2xsZWN0aW9uXCI+XG5cbiAgICAgIDxjY2QtZmllbGQtcmVhZCAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiIFtjYXNlRmllbGRdPVwiZmllbGRcIiBbY2FzZUZpZWxkc109XCJjYXNlRmllbGRzXCIgW3dpdGhMYWJlbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIFthdHRyLmZpZWxkX2lkXT1cImZpZWxkLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5maWVsZF90eXBlXT1cImZpZWxkLmZpZWxkX3R5cGUudHlwZVwiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKGZpZWxkIHwgY2NkSXNDb21wb3VuZCk7IGVsc2UgQ29tcG91bmRSb3dcIj5cbiAgICAgICAgICA8Y2NkLWZpZWxkLXdyaXRlIFtjYXNlRmllbGRdPVwiZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nhc2VGaWVsZHNdPVwiY2FzZUZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRQcmVmaXhdPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiZmllbGQuaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmZpZWxkX2lkXT1cImZpZWxkLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmZpZWxkX3R5cGVdPVwiZmllbGQuZmllbGRfdHlwZS50eXBlXCI+XG4gICAgICAgICAgPC9jY2QtZmllbGQtd3JpdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjQ29tcG91bmRSb3c+XG4gICAgICAgICAgPGNjZC1maWVsZC13cml0ZSBbY2FzZUZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjYXNlRmllbGRzXT1cImNhc2VGaWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkUHJlZml4XT1cImZpZWxkLmlkICsgJ18nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiZmllbGQuaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmZpZWxkX2lkXT1cImZpZWxkLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmZpZWxkX3R5cGVdPVwiZmllbGQuZmllbGRfdHlwZS50eXBlXCI+PC9jY2QtZmllbGQtd3JpdGU+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1lZGl0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2Nhc2UtZWRpdC1mb3JtL2Nhc2UtZWRpdC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9jYXNlLWVkaXRvci9jYXNlLWVkaXQtZm9ybS9jYXNlLWVkaXQtZm9ybS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7SUNDdkUsb0NBRTJFOzs7O0lBRDNELEFBRG1FLEFBQTFCLEFBQXBCLG9DQUFtQixpQ0FBMEIsbUJBQW1CLCtCQUM5RDs7OztJQUlyQyw2QkFBaUU7SUFDL0QscUNBT2tCOzs7OztJQVBELGNBQW1CO0lBSW5CLEFBRkEsQUFEQSxBQURBLG9DQUFtQixpQ0FDTSwrQkFDRiwyQkFFQTs7OztJQU94QyxxQ0FNNkU7Ozs7SUFGNUQsQUFEQSxBQURBLEFBREEsQUFEQSxvQ0FBbUIsaUNBQ00sK0JBQ0YsK0JBQ0ksMkJBQ0o7Ozs7SUFsQjVDLDZCQUFvQztJQUVsQyxzSEFBaUU7O0lBV2pFLHFKQUEwQjs7Ozs7SUFYWCxj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ciwgSW5wdXQsIE9uRGVzdHJveSwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRm9ybVZhbHVlU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0vZm9ybS12YWx1ZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLWNhc2UtZWRpdC1mb3JtJyxcbiAgdGVtcGxhdGVVcmw6ICdjYXNlLWVkaXQtZm9ybS5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBDYXNlRWRpdEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmaWVsZHM6IENhc2VGaWVsZFtdID0gW107XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdID0gW107XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdlQ2hhbmdlU3ViamVjdDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgdmFsdWVzQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgcHVibGljIGluaXRpYWw6IGFueTtcbiAgcHVibGljIHBhZ2VDaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGZvcm1Hcm91cENoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZm9ybVZhbHVlU2VydmljZTogRm9ybVZhbHVlU2VydmljZSkgeyB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBhZ2VDaGFuZ2VTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucGFnZUNoYW5nZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5mb3JtR3JvdXBDaGFuZ2VTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZm9ybUdyb3VwQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgbmVlZCB0aGUgYmVsb3cgdW4vc3Vic2NyaWJlIGNvbXBsZXhpdHkgYXMgd2UgZG8gbm90IGhhdmUgcHJvcGVyIHBhZ2UgY29tcG9uZW50IHBlciBwYWdlIHdpdGggaXRzIEFmdGVyVmlld0luaXQgaG9va1xuICAvLyBiZWluZyBjYWxsZWQgb24gZWFjaCBwYWdlIGxvYWQuIFRoaXMgaXMgZG9uZSBmb3IgXCJDYW5jZWwgYW5kIHJldHVyblwiIG1vZGFsIGZyb20gUkRNLTIzMDIuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5yZXRyaWV2ZUluaXRpYWxGb3JtVmFsdWVzKCk7XG4gICAgdGhpcy5wYWdlQ2hhbmdlU3Vic2NyaXB0aW9uID0gdGhpcy5wYWdlQ2hhbmdlU3ViamVjdC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwQ2hhbmdlU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgIHRoaXMuZm9ybUdyb3VwQ2hhbmdlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgICAvLyBUaW1lb3V0IGlzIHJlcXVpcmVkIGZvciB0aGUgZm9ybSB0byBiZSByZW5kZXJlZCBiZWZvcmUgc3Vic2NyaXB0aW9uIHRvIGZvcm0gY2hhbmdlcyBhbmQgaW5pdGlhbCBmb3JtIHZhbHVlcyByZXRyaWV2YWwuXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5zdWJzY3JpYmVUb0Zvcm1DaGFuZ2VzKCk7XG4gICAgICAgIHRoaXMucmV0cmlldmVJbml0aWFsRm9ybVZhbHVlcygpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzY3JpYmVUb0Zvcm1DaGFuZ2VzKCk7XG4gIH1cblxuICBwdWJsaWMgc3Vic2NyaWJlVG9Gb3JtQ2hhbmdlcygpIHtcbiAgICB0aGlzLmZvcm1Hcm91cENoYW5nZVN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybUdyb3VwLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIGRlYm91bmNlVGltZSgyMDApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKF8gPT4gdGhpcy5kZXRlY3RDaGFuZ2VzQW5kRW1pdChfKSk7XG4gIH1cblxuICBwdWJsaWMgcmV0cmlldmVJbml0aWFsRm9ybVZhbHVlcygpIHtcbiAgICB0aGlzLmluaXRpYWwgPSBKU09OLnN0cmluZ2lmeSh0aGlzLmZvcm1WYWx1ZVNlcnZpY2Uuc2FuaXRpc2UodGhpcy5mb3JtR3JvdXAudmFsdWUpKTtcbiAgfVxuXG4gIHB1YmxpYyBkZXRlY3RDaGFuZ2VzQW5kRW1pdChjaGFuZ2VzKSB7XG4gICAgY29uc3QgY3VycmVudCA9IHRoaXMuZm9ybVZhbHVlU2VydmljZS5zYW5pdGlzZShjaGFuZ2VzKTtcbiAgICBjb25zdCBpc0VxdWFsID0gdGhpcy5kZWVwRXF1YWwodGhpcy5pbml0aWFsLCBjdXJyZW50KTtcbiAgICB0aGlzLnZhbHVlc0NoYW5nZWQuZW1pdCghaXNFcXVhbCk7XG4gIH1cblxuICBwcml2YXRlIGRlZXBFcXVhbChvYmoxOiBhbnksIG9iajI6IGFueSk6IGJvb2xlYW4ge1xuICAgIC8vIFNpbXBsZSBkZWVwIGVxdWFsaXR5IGNoZWNrXG4gICAgaWYgKG9iajEgPT09IG9iajIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG9iajEgIT09ICdvYmplY3QnIHx8IHR5cGVvZiBvYmoyICE9PSAnb2JqZWN0JyB8fCBvYmoxID09IG51bGwgfHwgb2JqMiA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGNvbnN0IGtleXMxID0gT2JqZWN0LmtleXMob2JqMSk7XG4gICAgY29uc3Qga2V5czIgPSBPYmplY3Qua2V5cyhvYmoyKTtcbiAgICBpZiAoa2V5czEubGVuZ3RoICE9PSBrZXlzMi5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBrZXkgb2Yga2V5czEpIHtcbiAgICAgIGlmICghdGhpcy5kZWVwRXF1YWwob2JqMVtrZXldLCBvYmoyW2tleV0pKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgY2NkQ29uZGl0aW9uYWxTaG93Rm9ybSBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIFtjYXNlRmllbGRzXT1cImZpZWxkc1wiIFtjb250ZXh0RmllbGRzXT1cImNhc2VGaWVsZHNcIlxuICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZmllbGQgb2YgZmllbGRzXCI+XG5cbiAgPGRpdiBjY2RMYWJlbFN1YnN0aXR1dG9yIFtjYXNlRmllbGRdPVwiZmllbGRcIiBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIFtjb250ZXh0RmllbGRzXT1cImNhc2VGaWVsZHNcIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWVsZCB8IGNjZElzUmVhZE9ubHlBbmROb3RDb2xsZWN0aW9uXCI+XG5cbiAgICAgIDxjY2QtZmllbGQtcmVhZCAqbmdTd2l0Y2hDYXNlPVwidHJ1ZVwiIFtjYXNlRmllbGRdPVwiZmllbGRcIiBbY2FzZUZpZWxkc109XCJjYXNlRmllbGRzXCIgW3dpdGhMYWJlbF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiIFthdHRyLmZpZWxkX2lkXT1cImZpZWxkLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5maWVsZF90eXBlXT1cImZpZWxkLmZpZWxkX3R5cGUudHlwZVwiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJmYWxzZVwiPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKGZpZWxkIHwgY2NkSXNDb21wb3VuZCk7IGVsc2UgQ29tcG91bmRSb3dcIj5cbiAgICAgICAgICA8Y2NkLWZpZWxkLXdyaXRlIFtjYXNlRmllbGRdPVwiZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nhc2VGaWVsZHNdPVwiY2FzZUZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRQcmVmaXhdPVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiZmllbGQuaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmZpZWxkX2lkXT1cImZpZWxkLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmZpZWxkX3R5cGVdPVwiZmllbGQuZmllbGRfdHlwZS50eXBlXCI+XG4gICAgICAgICAgPC9jY2QtZmllbGQtd3JpdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjQ29tcG91bmRSb3c+XG4gICAgICAgICAgPGNjZC1maWVsZC13cml0ZSBbY2FzZUZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjYXNlRmllbGRzXT1cImNhc2VGaWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkUHJlZml4XT1cImZpZWxkLmlkICsgJ18nXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRkZW5dPVwiZmllbGQuaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmZpZWxkX2lkXT1cImZpZWxkLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIFthdHRyLmZpZWxkX3R5cGVdPVwiZmllbGQuZmllbGRfdHlwZS50eXBlXCI+PC9jY2QtZmllbGQtd3JpdGU+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -10571,8 +10571,29 @@ class CaseEditFormComponent {
10571
10571
  this.initial = JSON.stringify(this.formValueService.sanitise(this.formGroup.value));
10572
10572
  }
10573
10573
  detectChangesAndEmit(changes) {
10574
- const current = JSON.stringify(this.formValueService.sanitise(changes));
10575
- this.initial !== current ? this.valuesChanged.emit(true) : this.valuesChanged.emit(false);
10574
+ const current = this.formValueService.sanitise(changes);
10575
+ const isEqual = this.deepEqual(this.initial, current);
10576
+ this.valuesChanged.emit(!isEqual);
10577
+ }
10578
+ deepEqual(obj1, obj2) {
10579
+ // Simple deep equality check
10580
+ if (obj1 === obj2) {
10581
+ return true;
10582
+ }
10583
+ if (typeof obj1 !== 'object' || typeof obj2 !== 'object' || obj1 == null || obj2 == null) {
10584
+ return false;
10585
+ }
10586
+ const keys1 = Object.keys(obj1);
10587
+ const keys2 = Object.keys(obj2);
10588
+ if (keys1.length !== keys2.length) {
10589
+ return false;
10590
+ }
10591
+ for (const key of keys1) {
10592
+ if (!this.deepEqual(obj1[key], obj2[key])) {
10593
+ return false;
10594
+ }
10595
+ }
10596
+ return true;
10576
10597
  }
10577
10598
  static ɵfac = function CaseEditFormComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CaseEditFormComponent)(i0.ɵɵdirectiveInject(FormValueService)); };
10578
10599
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditFormComponent, selectors: [["ccd-case-edit-form"]], inputs: { fields: "fields", formGroup: "formGroup", caseFields: "caseFields", pageChangeSubject: "pageChangeSubject" }, outputs: { valuesChanged: "valuesChanged" }, decls: 1, vars: 1, consts: [["CompoundRow", ""], ["ccdConditionalShowForm", "", 3, "formGroup", "caseFields", "contextFields", 4, "ngFor", "ngForOf"], ["ccdConditionalShowForm", "", 3, "formGroup", "caseFields", "contextFields"], ["ccdLabelSubstitutor", "", 3, "caseField", "formGroup", "contextFields"], [3, "ngSwitch"], [3, "caseField", "caseFields", "withLabel", "formGroup", 4, "ngSwitchCase"], [4, "ngSwitchCase"], [3, "caseField", "caseFields", "withLabel", "formGroup"], [4, "ngIf", "ngIfElse"], [3, "caseField", "caseFields", "formGroup", "idPrefix", "hidden"]], template: function CaseEditFormComponent_Template(rf, ctx) { if (rf & 1) {