@hmcts/ccd-case-ui-toolkit 7.2.47-test-log-errors → 7.2.48-create-case-redirect

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.
@@ -3,7 +3,7 @@ import { FormGroup } from '@angular/forms';
3
3
  import { CaseField } from '../../domain/definition/case-field.model';
4
4
  import { FieldsUtils } from '../../services/fields/fields.utils';
5
5
  import { PlaceholderService } from './services/placeholder.service';
6
- import { RpxTranslatePipe } from 'rpx-xui-translation';
6
+ import { RpxTranslatePipe, RpxTranslationService } from 'rpx-xui-translation';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "../../services/fields/fields.utils";
9
9
  import * as i2 from "./services/placeholder.service";
@@ -15,31 +15,43 @@ export class LabelSubstitutorDirective {
15
15
  fieldsUtils;
16
16
  placeholderService;
17
17
  rpxTranslationPipe;
18
+ rpxTranslationService;
18
19
  caseField;
19
20
  contextFields = [];
20
21
  formGroup;
21
22
  elementsToSubstitute = ['label', 'hint_text'];
22
- initialLabel;
23
23
  initialHintText;
24
- constructor(fieldsUtils, placeholderService, rpxTranslationPipe) {
24
+ languageSubscription;
25
+ constructor(fieldsUtils, placeholderService, rpxTranslationPipe, rpxTranslationService) {
25
26
  this.fieldsUtils = fieldsUtils;
26
27
  this.placeholderService = placeholderService;
27
28
  this.rpxTranslationPipe = rpxTranslationPipe;
29
+ this.rpxTranslationService = rpxTranslationService;
28
30
  }
29
31
  ngOnInit() {
30
- this.initialLabel = this.caseField.label;
31
32
  this.initialHintText = this.caseField.hint_text;
33
+ this.caseField.originalLabel = this.caseField.label;
32
34
  this.formGroup = this.formGroup || new FormGroup({});
35
+ this.languageSubscription = this.rpxTranslationService.language$.subscribe(() => {
36
+ // timeout is required to prevent race conditions with translation pipe
37
+ setTimeout(() => {
38
+ this.onLanguageChange();
39
+ }, 100);
40
+ });
41
+ this.applySubstitutions();
42
+ }
43
+ applySubstitutions() {
33
44
  const fields = this.getReadOnlyAndFormFields();
34
45
  if (this.shouldSubstitute('label')) {
35
46
  const oldLabel = this.caseField.label;
36
47
  const substitutedLabel = this.resolvePlaceholders(fields, this.caseField.label);
37
48
  if (oldLabel && oldLabel !== substitutedLabel) {
38
49
  // we need to translate the uninterpolated data then substitute the values in translated string
50
+ this.caseField.originalLabel = substitutedLabel;
39
51
  const translated = this.rpxTranslationPipe.transform(oldLabel);
40
52
  const transSubstitutedLabel = this.resolvePlaceholders(fields, translated);
41
53
  this.caseField.label = transSubstitutedLabel;
42
- this.caseField.isTranslated = true;
54
+ this.caseField.isTranslated = this.rpxTranslationService.language === 'cy' && translated !== oldLabel;
43
55
  }
44
56
  else {
45
57
  this.caseField.label = substitutedLabel;
@@ -53,13 +65,24 @@ export class LabelSubstitutorDirective {
53
65
  this.caseField.value = this.resolvePlaceholders(fields, this.caseField.value);
54
66
  }
55
67
  }
56
- ngOnDestroy() {
57
- if (this.initialLabel) {
58
- this.caseField.label = this.initialLabel;
68
+ onLanguageChange() {
69
+ this.resetToInitialValues();
70
+ this.applySubstitutions();
71
+ }
72
+ resetToInitialValues() {
73
+ if (this.caseField?.originalLabel) {
74
+ this.caseField.label = this.caseField.originalLabel;
59
75
  }
60
76
  if (this.initialHintText) {
61
77
  this.caseField.hint_text = this.initialHintText;
62
78
  }
79
+ this.caseField.isTranslated = false;
80
+ }
81
+ ngOnDestroy() {
82
+ this.resetToInitialValues();
83
+ if (this.languageSubscription) {
84
+ this.languageSubscription.unsubscribe();
85
+ }
63
86
  }
64
87
  shouldSubstitute(element) {
65
88
  return this.elementsToSubstitute.find(e => e === element) !== undefined;
@@ -86,13 +109,13 @@ export class LabelSubstitutorDirective {
86
109
  resolvePlaceholders(fields, stringToResolve) {
87
110
  return this.placeholderService.resolvePlaceholders(fields, stringToResolve);
88
111
  }
89
- static ɵfac = function LabelSubstitutorDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LabelSubstitutorDirective)(i0.ɵɵdirectiveInject(i1.FieldsUtils), i0.ɵɵdirectiveInject(i2.PlaceholderService), i0.ɵɵdirectiveInject(i3.RpxTranslatePipe)); };
112
+ static ɵfac = function LabelSubstitutorDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LabelSubstitutorDirective)(i0.ɵɵdirectiveInject(i1.FieldsUtils), i0.ɵɵdirectiveInject(i2.PlaceholderService), i0.ɵɵdirectiveInject(i3.RpxTranslatePipe), i0.ɵɵdirectiveInject(i3.RpxTranslationService)); };
90
113
  static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: LabelSubstitutorDirective, selectors: [["", "ccdLabelSubstitutor", ""]], inputs: { caseField: "caseField", contextFields: "contextFields", formGroup: "formGroup", elementsToSubstitute: "elementsToSubstitute" } });
91
114
  }
92
115
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LabelSubstitutorDirective, [{
93
116
  type: Directive,
94
117
  args: [{ selector: '[ccdLabelSubstitutor]' }]
95
- }], () => [{ type: i1.FieldsUtils }, { type: i2.PlaceholderService }, { type: i3.RpxTranslatePipe }], { caseField: [{
118
+ }], () => [{ type: i1.FieldsUtils }, { type: i2.PlaceholderService }, { type: i3.RpxTranslatePipe }, { type: i3.RpxTranslationService }], { caseField: [{
96
119
  type: Input
97
120
  }], contextFields: [{
98
121
  type: Input
@@ -101,4 +124,4 @@ export class LabelSubstitutorDirective {
101
124
  }], elementsToSubstitute: [{
102
125
  type: Input
103
126
  }] }); })();
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwtc3Vic3RpdHV0b3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9kaXJlY3RpdmVzL3N1YnN0aXR1dG9yL2xhYmVsLXN1YnN0aXR1dG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBR3ZEOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHlCQUF5QjtJQVdqQjtJQUNBO0lBQ0E7SUFYSCxTQUFTLENBQVk7SUFDckIsYUFBYSxHQUFnQixFQUFFLENBQUM7SUFDaEMsU0FBUyxDQUFZO0lBQ3JCLG9CQUFvQixHQUFhLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRWhFLFlBQVksQ0FBUztJQUNyQixlQUFlLENBQVM7SUFFaEMsWUFDbUIsV0FBd0IsRUFDeEIsa0JBQXNDLEVBQ3RDLGtCQUFvQztRQUZwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBa0I7SUFDcEQsQ0FBQztJQUVHLFFBQVE7UUFDYixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1FB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QyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDM0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7WUFDeEUsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDYixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxvQ0FBb0M7UUFDMUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxNQUFjLEVBQUUsZUFBdUI7UUFDakUsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7bUhBbEZVLHlCQUF5Qjs2REFBekIseUJBQXlCOztpRkFBekIseUJBQXlCO2NBSnJDLFNBQVM7ZUFBQyxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRTs0R0FNOUIsU0FBUztrQkFBeEIsS0FBSztZQUNVLGFBQWE7a0JBQTVCLEtBQUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1Usb0JBQW9CO2tCQUFuQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZHNVdGlscyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpZWxkcy9maWVsZHMudXRpbHMnO1xuaW1wb3J0IHsgUGxhY2Vob2xkZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wbGFjZWhvbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFJweFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdycHgteHVpLXRyYW5zbGF0aW9uJztcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2NjZExhYmVsU3Vic3RpdHV0b3JdJyB9KVxuLyoqXG4gKiBDaGVja3MgYWxsIGxhYmVscyBhbmQgc3Vic3RpdHV0ZXMgYW55IHBsYWNob2xkZXJzIHRoYXQgcmVmZXJlbmNlIG90aGVyIGZpZWxkcyB2YWx1ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBMYWJlbFN1YnN0aXR1dG9yRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBjYXNlRmllbGQ6IENhc2VGaWVsZDtcbiAgQElucHV0KCkgcHVibGljIGNvbnRleHRGaWVsZHM6IENhc2VGaWVsZFtdID0gW107XG4gIEBJbnB1dCgpIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgcHVibGljIGVsZW1lbnRzVG9TdWJzdGl0dXRlOiBzdHJpbmdbXSA9IFsnbGFiZWwnLCAnaGludF90ZXh0J107XG5cbiAgcHJpdmF0ZSBpbml0aWFsTGFiZWw6IHN0cmluZztcbiAgcHJpdmF0ZSBpbml0aWFsSGludFRleHQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGZpZWxkc1V0aWxzOiBGaWVsZHNVdGlscyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlaG9sZGVyU2VydmljZTogUGxhY2Vob2xkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcnB4VHJhbnNsYXRpb25QaXBlOiBScHhUcmFuc2xhdGVQaXBlXG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0aWFsTGFiZWwgPSB0aGlzLmNhc2VGaWVsZC5sYWJlbDtcbiAgICB0aGlzLmluaXRpYWxIaW50VGV4dCA9IHRoaXMuY2FzZUZpZWxkLmhpbnRfdGV4dDtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUdyb3VwIHx8IG5ldyBGb3JtR3JvdXAoe30pO1xuXG4gICAgY29uc3QgZmllbGRzOiBvYmplY3QgPSB0aGlzLmdldFJlYWRPbmx5QW5kRm9ybUZpZWxkcygpO1xuXG4gICAgaWYgKHRoaXMuc2hvdWxkU3Vic3RpdHV0ZSgnbGFiZWwnKSkge1xuICAgICAgY29uc3Qgb2xkTGFiZWwgPSB0aGlzLmNhc2VGaWVsZC5sYWJlbDtcbiAgICAgIGNvbnN0IHN1YnN0aXR1dGVkTGFiZWwgPSB0aGlzLnJlc29sdmVQbGFjZWhvbGRlcnMoZmllbGRzLCB0aGlzLmNhc2VGaWVsZC5sYWJlbCk7XG4gICAgICBpZiAob2xkTGFiZWwgJiYgb2xkTGFiZWwgIT09IHN1YnN0aXR1dGVkTGFiZWwpIHtcbiAgICAgICAgLy8gd2UgbmVlZCB0byB0cmFuc2xhdGUgdGhlIHVuaW50ZXJwb2xhdGVkIGRhdGEgdGhlbiBzdWJzdGl0dXRlIHRoZSB2YWx1ZXMgaW4gdHJhbnNsYXRlZCBzdHJpbmdcbiAgICAgICAgY29uc3QgdHJhbnNsYXRlZCA9IHRoaXMucnB4VHJhbnNsYXRpb25QaXBlLnRyYW5zZm9ybShvbGRMYWJlbClcbiAgICAgICAgY29uc3QgdHJhbnNTdWJzdGl0dXRlZExhYmVsID0gdGhpcy5yZXNvbHZlUGxhY2Vob2xkZXJzKGZpZWxkcywgdHJhbnNsYXRlZCk7XG4gICAgICAgIHRoaXMuY2FzZUZpZWxkLmxhYmVsID0gdHJhbnNTdWJzdGl0dXRlZExhYmVsO1xuICAgICAgICB0aGlzLmNhc2VGaWVsZC5pc1RyYW5zbGF0ZWQgPSB0cnVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jYXNlRmllbGQubGFiZWwgPSBzdWJzdGl0dXRlZExhYmVsO1xuICAgICAgICB0aGlzLmNhc2VGaWVsZC5pc1RyYW5zbGF0ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHRoaXMuc2hvdWxkU3Vic3RpdHV0ZSgnaGludF90ZXh0JykpIHtcbiAgICAgIHRoaXMuY2FzZUZpZWxkLmhpbnRfdGV4dCA9IHRoaXMucmVzb2x2ZVBsYWNlaG9sZGVycyhmaWVsZHMsIHRoaXMuY2FzZUZpZWxkLmhpbnRfdGV4dCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3VsZFN1YnN0aXR1dGUoJ3ZhbHVlJykpIHtcbiAgICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlID0gdGhpcy5yZXNvbHZlUGxhY2Vob2xkZXJzKGZpZWxkcywgdGhpcy5jYXNlRmllbGQudmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pbml0aWFsTGFiZWwpIHtcbiAgICAgIHRoaXMuY2FzZUZpZWxkLmxhYmVsID0gdGhpcy5pbml0aWFsTGFiZWw7XG4gICAgfVxuICAgIGlmICh0aGlzLmluaXRpYWxIaW50VGV4dCkge1xuICAgICAgdGhpcy5jYXNlRmllbGQuaGludF90ZXh0ID0gdGhpcy5pbml0aWFsSGludFRleHQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRTdWJzdGl0dXRlKGVsZW1lbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmVsZW1lbnRzVG9TdWJzdGl0dXRlLmZpbmQoZSA9PiBlID09PSBlbGVtZW50KSAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZWFkT25seUFuZEZvcm1GaWVsZHMoKTogb2JqZWN0IHtcbiAgICBjb25zdCBmb3JtRmllbGRzOiBvYmplY3QgPSB0aGlzLmdldEZvcm1GaWVsZHNWYWx1ZXNJbmNsdWRpbmdEaXNhYmxlZCgpO1xuICAgIC8vIFRPRE86IERlbGV0ZSBmb2xsb3dpbmcgbGluZSB3aGVuIEBJbnB1dCBjb250ZXh0RmllbGRzIGlzIGZpeGVkIC0gaHR0cHM6Ly90b29scy5obWN0cy5uZXQvamlyYS9icm93c2UvUkRNLTM1MDRcbiAgICBjb25zdCB1bmlxdWVDb250ZXh0RmllbGRzOiBDYXNlRmllbGRbXSA9IHRoaXMucmVtb3ZlRHVwbGljYXRlcyh0aGlzLmNvbnRleHRGaWVsZHMpO1xuICAgIHJldHVybiB0aGlzLmZpZWxkc1V0aWxzLm1lcmdlTGFiZWxDYXNlRmllbGRzQW5kRm9ybUZpZWxkcyh1bmlxdWVDb250ZXh0RmllbGRzLCBmb3JtRmllbGRzKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlRHVwbGljYXRlcyhvcmlnaW5hbDogQ2FzZUZpZWxkW10pOiBDYXNlRmllbGRbXSB7XG4gICAgY29uc3QgdW5pcXVlOiBDYXNlRmllbGRbXSA9IFtdO1xuICAgIG9yaWdpbmFsLmZvckVhY2goY2FzZUZpZWxkID0+IHtcbiAgICAgIGNvbnN0IGlzVW5pcXVlID0gdW5pcXVlLmZpbHRlcihlID0+IGUuaWQgPT09IGNhc2VGaWVsZC5pZCkubGVuZ3RoID09PSAwO1xuICAgICAgaWYgKGlzVW5pcXVlKSB7XG4gICAgICAgIHVuaXF1ZS5wdXNoKGNhc2VGaWVsZCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHVuaXF1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9ybUZpZWxkc1ZhbHVlc0luY2x1ZGluZ0Rpc2FibGVkKCk6IG9iamVjdCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUdyb3VwLmdldFJhd1ZhbHVlKCk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVQbGFjZWhvbGRlcnMoZmllbGRzOiBvYmplY3QsIHN0cmluZ1RvUmVzb2x2ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlclNlcnZpY2UucmVzb2x2ZVBsYWNlaG9sZGVycyhmaWVsZHMsIHN0cmluZ1RvUmVzb2x2ZSk7XG4gIH1cbn1cbiJdfQ==
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwtc3Vic3RpdHV0b3IuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9kaXJlY3RpdmVzL3N1YnN0aXR1dG9yL2xhYmVsLXN1YnN0aXR1dG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDakUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7O0FBSTlFOztHQUVHO0FBQ0gsTUFBTSxPQUFPLHlCQUF5QjtJQVdqQjtJQUNBO0lBQ0E7SUFDQTtJQVpILFNBQVMsQ0FBWTtJQUNyQixhQUFhLEdBQWdCLEVBQUUsQ0FBQztJQUNoQyxTQUFTLENBQVk7SUFDckIsb0JBQW9CLEdBQWEsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFFaEUsZUFBZSxDQUFTO0lBQ3hCLG9CQUFvQixDQUFjO0lBRTFDLFlBQ21CLFdBQXdCLEVBQ3hCLGtCQUFzQyxFQUN0QyxrQkFBb0MsRUFDcEMscUJBQTRDO1FBSDVDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFrQjtRQUNwQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO0lBQzVELENBQUM7SUFF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QUFRLEVBQUUsQ0FBQztnQkFDYixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTyxvQ0FBb0M7UUFDMUMsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFTyxtQkFBbUIsQ0FBQyxNQUFjLEVBQUUsZUFBdUI7UUFDakUsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLGVBQWUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7bUhBNUdVLHlCQUF5Qjs2REFBekIseUJBQXlCOztpRkFBekIseUJBQXlCO2NBSnJDLFNBQVM7ZUFBQyxFQUFFLFFBQVEsRUFBRSx1QkFBdUIsRUFBRTtnSkFNOUIsU0FBUztrQkFBeEIsS0FBSztZQUNVLGFBQWE7a0JBQTVCLEtBQUs7WUFDVSxTQUFTO2tCQUF4QixLQUFLO1lBQ1Usb0JBQW9CO2tCQUFuQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZHNVdGlscyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpZWxkcy9maWVsZHMudXRpbHMnO1xuaW1wb3J0IHsgUGxhY2Vob2xkZXJTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wbGFjZWhvbGRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFJweFRyYW5zbGF0ZVBpcGUsIFJweFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ3JweC14dWktdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBEaXJlY3RpdmUoeyBzZWxlY3RvcjogJ1tjY2RMYWJlbFN1YnN0aXR1dG9yXScgfSlcbi8qKlxuICogQ2hlY2tzIGFsbCBsYWJlbHMgYW5kIHN1YnN0aXR1dGVzIGFueSBwbGFjaG9sZGVycyB0aGF0IHJlZmVyZW5jZSBvdGhlciBmaWVsZHMgdmFsdWVzLlxuICovXG5leHBvcnQgY2xhc3MgTGFiZWxTdWJzdGl0dXRvckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBASW5wdXQoKSBwdWJsaWMgY2FzZUZpZWxkOiBDYXNlRmllbGQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBjb250ZXh0RmllbGRzOiBDYXNlRmllbGRbXSA9IFtdO1xuICBASW5wdXQoKSBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBJbnB1dCgpIHB1YmxpYyBlbGVtZW50c1RvU3Vic3RpdHV0ZTogc3RyaW5nW10gPSBbJ2xhYmVsJywgJ2hpbnRfdGV4dCddO1xuXG4gIHByaXZhdGUgaW5pdGlhbEhpbnRUZXh0OiBzdHJpbmc7XG4gIHByaXZhdGUgbGFuZ3VhZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvblxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmllbGRzVXRpbHM6IEZpZWxkc1V0aWxzLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJTZXJ2aWNlOiBQbGFjZWhvbGRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBycHhUcmFuc2xhdGlvblBpcGU6IFJweFRyYW5zbGF0ZVBpcGUsXG4gICAgcHJpdmF0ZSByZWFkb25seSBycHhUcmFuc2xhdGlvblNlcnZpY2U6IFJweFRyYW5zbGF0aW9uU2VydmljZVxuICApIHt9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdGlhbEhpbnRUZXh0ID0gdGhpcy5jYXNlRmllbGQuaGludF90ZXh0O1xuICAgIHRoaXMuY2FzZUZpZWxkLm9yaWdpbmFsTGFiZWwgPSB0aGlzLmNhc2VGaWVsZC5sYWJlbDtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IHRoaXMuZm9ybUdyb3VwIHx8IG5ldyBGb3JtR3JvdXAoe30pO1xuXG4gICAgdGhpcy5sYW5ndWFnZVN1YnNjcmlwdGlvbiA9IHRoaXMucnB4VHJhbnNsYXRpb25TZXJ2aWNlLmxhbmd1YWdlJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgLy8gdGltZW91dCBpcyByZXF1aXJlZCB0byBwcmV2ZW50IHJhY2UgY29uZGl0aW9ucyB3aXRoIHRyYW5zbGF0aW9uIHBpcGVcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLm9uTGFuZ3VhZ2VDaGFuZ2UoKTtcbiAgICAgIH0sIDEwMCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmFwcGx5U3Vic3RpdHV0aW9ucygpXG4gIH1cblxuICBwcml2YXRlIGFwcGx5U3Vic3RpdHV0aW9ucygpOiB2b2lkIHtcbiAgICBjb25zdCBmaWVsZHM6IG9iamVjdCA9IHRoaXMuZ2V0UmVhZE9ubHlBbmRGb3JtRmllbGRzKCk7XG5cbiAgICBpZiAodGhpcy5zaG91bGRTdWJzdGl0dXRlKCdsYWJlbCcpKSB7XG4gICAgICBjb25zdCBvbGRMYWJlbCA9IHRoaXMuY2FzZUZpZWxkLmxhYmVsO1xuICAgICAgY29uc3Qgc3Vic3RpdHV0ZWRMYWJlbCA9IHRoaXMucmVzb2x2ZVBsYWNlaG9sZGVycyhmaWVsZHMsIHRoaXMuY2FzZUZpZWxkLmxhYmVsKTtcbiAgICAgIGlmIChvbGRMYWJlbCAmJiBvbGRMYWJlbCAhPT0gc3Vic3RpdHV0ZWRMYWJlbCkge1xuICAgICAgICAvLyB3ZSBuZWVkIHRvIHRyYW5zbGF0ZSB0aGUgdW5pbnRlcnBvbGF0ZWQgZGF0YSB0aGVuIHN1YnN0aXR1dGUgdGhlIHZhbHVlcyBpbiB0cmFuc2xhdGVkIHN0cmluZ1xuICAgICAgICB0aGlzLmNhc2VGaWVsZC5vcmlnaW5hbExhYmVsID0gc3Vic3RpdHV0ZWRMYWJlbDtcbiAgICAgICAgY29uc3QgdHJhbnNsYXRlZCA9IHRoaXMucnB4VHJhbnNsYXRpb25QaXBlLnRyYW5zZm9ybShvbGRMYWJlbClcbiAgICAgICAgY29uc3QgdHJhbnNTdWJzdGl0dXRlZExhYmVsID0gdGhpcy5yZXNvbHZlUGxhY2Vob2xkZXJzKGZpZWxkcywgdHJhbnNsYXRlZCk7XG4gICAgICAgIHRoaXMuY2FzZUZpZWxkLmxhYmVsID0gdHJhbnNTdWJzdGl0dXRlZExhYmVsO1xuICAgICAgICB0aGlzLmNhc2VGaWVsZC5pc1RyYW5zbGF0ZWQgPSB0aGlzLnJweFRyYW5zbGF0aW9uU2VydmljZS5sYW5ndWFnZSA9PT0gJ2N5JyAmJiB0cmFuc2xhdGVkICE9PSBvbGRMYWJlbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2FzZUZpZWxkLmxhYmVsID0gc3Vic3RpdHV0ZWRMYWJlbDtcbiAgICAgICAgdGhpcy5jYXNlRmllbGQuaXNUcmFuc2xhdGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGlmICh0aGlzLnNob3VsZFN1YnN0aXR1dGUoJ2hpbnRfdGV4dCcpKSB7XG4gICAgICB0aGlzLmNhc2VGaWVsZC5oaW50X3RleHQgPSB0aGlzLnJlc29sdmVQbGFjZWhvbGRlcnMoZmllbGRzLCB0aGlzLmNhc2VGaWVsZC5oaW50X3RleHQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5zaG91bGRTdWJzdGl0dXRlKCd2YWx1ZScpKSB7XG4gICAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZSA9IHRoaXMucmVzb2x2ZVBsYWNlaG9sZGVycyhmaWVsZHMsIHRoaXMuY2FzZUZpZWxkLnZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uTGFuZ3VhZ2VDaGFuZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5yZXNldFRvSW5pdGlhbFZhbHVlcygpO1xuICAgIHRoaXMuYXBwbHlTdWJzdGl0dXRpb25zKCk7XG4gIH1cblxuICBwcml2YXRlIHJlc2V0VG9Jbml0aWFsVmFsdWVzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhc2VGaWVsZD8ub3JpZ2luYWxMYWJlbCkge1xuICAgICAgdGhpcy5jYXNlRmllbGQubGFiZWwgPSB0aGlzLmNhc2VGaWVsZC5vcmlnaW5hbExhYmVsO1xuICAgIH1cbiAgICBpZiAodGhpcy5pbml0aWFsSGludFRleHQpIHtcbiAgICAgIHRoaXMuY2FzZUZpZWxkLmhpbnRfdGV4dCA9IHRoaXMuaW5pdGlhbEhpbnRUZXh0O1xuICAgIH1cbiAgICB0aGlzLmNhc2VGaWVsZC5pc1RyYW5zbGF0ZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0VG9Jbml0aWFsVmFsdWVzKCk7XG4gICAgaWYgKHRoaXMubGFuZ3VhZ2VTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMubGFuZ3VhZ2VTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNob3VsZFN1YnN0aXR1dGUoZWxlbWVudDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZWxlbWVudHNUb1N1YnN0aXR1dGUuZmluZChlID0+IGUgPT09IGVsZW1lbnQpICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwcml2YXRlIGdldFJlYWRPbmx5QW5kRm9ybUZpZWxkcygpOiBvYmplY3Qge1xuICAgIGNvbnN0IGZvcm1GaWVsZHM6IG9iamVjdCA9IHRoaXMuZ2V0Rm9ybUZpZWxkc1ZhbHVlc0luY2x1ZGluZ0Rpc2FibGVkKCk7XG4gICAgLy8gVE9ETzogRGVsZXRlIGZvbGxvd2luZyBsaW5lIHdoZW4gQElucHV0IGNvbnRleHRGaWVsZHMgaXMgZml4ZWQgLSBodHRwczovL3Rvb2xzLmhtY3RzLm5ldC9qaXJhL2Jyb3dzZS9SRE0tMzUwNFxuICAgIGNvbnN0IHVuaXF1ZUNvbnRleHRGaWVsZHM6IENhc2VGaWVsZFtdID0gdGhpcy5yZW1vdmVEdXBsaWNhdGVzKHRoaXMuY29udGV4dEZpZWxkcyk7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzVXRpbHMubWVyZ2VMYWJlbENhc2VGaWVsZHNBbmRGb3JtRmllbGRzKHVuaXF1ZUNvbnRleHRGaWVsZHMsIGZvcm1GaWVsZHMpO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVEdXBsaWNhdGVzKG9yaWdpbmFsOiBDYXNlRmllbGRbXSk6IENhc2VGaWVsZFtdIHtcbiAgICBjb25zdCB1bmlxdWU6IENhc2VGaWVsZFtdID0gW107XG4gICAgb3JpZ2luYWwuZm9yRWFjaChjYXNlRmllbGQgPT4ge1xuICAgICAgY29uc3QgaXNVbmlxdWUgPSB1bmlxdWUuZmlsdGVyKGUgPT4gZS5pZCA9PT0gY2FzZUZpZWxkLmlkKS5sZW5ndGggPT09IDA7XG4gICAgICBpZiAoaXNVbmlxdWUpIHtcbiAgICAgICAgdW5pcXVlLnB1c2goY2FzZUZpZWxkKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdW5pcXVlO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGb3JtRmllbGRzVmFsdWVzSW5jbHVkaW5nRGlzYWJsZWQoKTogb2JqZWN0IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVBsYWNlaG9sZGVycyhmaWVsZHM6IG9iamVjdCwgc3RyaW5nVG9SZXNvbHZlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyU2VydmljZS5yZXNvbHZlUGxhY2Vob2xkZXJzKGZpZWxkcywgc3RyaW5nVG9SZXNvbHZlKTtcbiAgfVxufVxuIl19
@@ -10,6 +10,7 @@ export class CaseField {
10
10
  hidden;
11
11
  hiddenCannotChange;
12
12
  label;
13
+ originalLabel;
13
14
  order;
14
15
  parent;
15
16
  field_type;
@@ -249,4 +250,4 @@ __decorate([
249
250
  __metadata("design:paramtypes", [String]),
250
251
  __metadata("design:returntype", String)
251
252
  ], CaseField.prototype, "getHierachicalId", null);
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWVsZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxDQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUk5RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFL0MsV0FBVztBQUNYLE1BQU0sT0FBTyxTQUFTO0lBQ2IsRUFBRSxDQUFTO0lBQ1gsTUFBTSxDQUFVO0lBQ2hCLGtCQUFrQixDQUFVO0lBQzVCLEtBQUssQ0FBUztJQUNkLEtBQUssQ0FBVTtJQUVmLE1BQU0sQ0FBYTtJQUduQixVQUFVLENBQVk7SUFFdEIsU0FBUyxDQUFVO0lBQ25CLGNBQWMsQ0FBVTtJQUN4QixlQUFlLENBQVM7SUFDeEIseUJBQXlCLENBQVU7SUFDbkMsWUFBWSxDQUFVO0lBQ3RCLGNBQWMsQ0FBVTtJQUN4QiwwQkFBMEIsQ0FBVztJQUNyQywyQkFBMkIsQ0FBVTtJQUNyQyxJQUFJLENBQXVCO0lBQzNCLFFBQVEsQ0FBVztJQUNuQixlQUFlLENBQU87SUFDdEIsbUJBQW1CLENBQVU7SUFHN0IsV0FBVyxDQUFtQjtJQUU5QixNQUFNLENBQU07SUFDWixXQUFXLEdBQVEsRUFBRSxDQUFDO0lBQ3JCLGdCQUFnQixHQUFZLEtBQUssQ0FBQztJQUUxQyxJQUNXLEtBQUs7UUFDZCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUks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SUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQzs4QkFDUCxlQUFlOzhDQUFDO0FBTXJDO0lBQUMsTUFBTSxFQUFFOzs7c0NBU1I7QUFpQkQ7SUFBQyxNQUFNLEVBQUU7OzsyQ0FPUjtBQVFEO0lBQUMsTUFBTSxFQUFFOzs7b0RBU1I7QUFFRDtJQUFDLE1BQU0sRUFBRTs7O3NEQVNSO0FBR007SUFETixNQUFNLEVBQUU7Ozs7aURBR1I7QUFHTTtJQUROLE1BQU0sRUFBRTs7OzsrQ0FHUjtBQUdNO0lBRE4sTUFBTSxFQUFFOzs7OzJDQUlSO0FBR007SUFETixNQUFNLEVBQUU7Ozs7MkNBSVI7QUFHTTtJQUROLE1BQU0sRUFBRTs7Ozs0Q0FJUjtBQUdNO0lBRE4sTUFBTSxFQUFFOzs7OzZDQUdSO0FBR007SUFETixNQUFNLEVBQUU7Ozs7MENBR1I7QUFHTTtJQUROLE1BQU0sRUFBRTs7OzswQ0FTUjtBQUdNO0lBRE4sTUFBTSxFQUFFOzs7OzJDQUtSO0FBZ0JNO0lBRE4sTUFBTSxFQUFFOzs7O2lEQWFSIiwic291cmNlc0NvbnRlbnQiOlsiLy8gdHNsaW50OmRpc2FibGU6dmFyaWFibGUtbmFtZVxuaW1wb3J0IHsgRXhjbHVkZSwgRXhwb3NlLCBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0ICogYXMgXyBmcm9tICd1bmRlcnNjb3JlJztcbmltcG9ydCB7IFdpemFyZFBhZ2VGaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY2FzZS1lZGl0b3IvZG9tYWluL3dpemFyZC1wYWdlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IE9yZGVyYWJsZSB9IGZyb20gJy4uL29yZGVyJztcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xMaXN0IH0gZnJvbSAnLi9hY2Nlc3MtY29udHJvbC1saXN0Lm1vZGVsJztcbmltcG9ydCB7IEZpZWxkVHlwZUVudW0gfSBmcm9tICcuL2ZpZWxkLXR5cGUtZW51bS5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICcuL2ZpZWxkLXR5cGUubW9kZWwnO1xuXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIENhc2VGaWVsZCBpbXBsZW1lbnRzIE9yZGVyYWJsZSB7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgaGlkZGVuOiBib29sZWFuO1xuICBwdWJsaWMgaGlkZGVuQ2Fubm90Q2hhbmdlOiBib29sZWFuO1xuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcbiAgcHVibGljIG9yZGVyPzogbnVtYmVyO1xuICBARXhjbHVkZSgpXG4gIHB1YmxpYyBwYXJlbnQ/OiBDYXNlRmllbGQ7XG5cbiAgQFR5cGUoKCkgPT4gRmllbGRUeXBlKVxuICBwdWJsaWMgZmllbGRfdHlwZTogRmllbGRUeXBlO1xuXG4gIHB1YmxpYyBoaW50X3RleHQ/OiBzdHJpbmc7XG4gIHB1YmxpYyBzZWN1cml0eV9sYWJlbD86IHN0cmluZztcbiAgcHVibGljIGRpc3BsYXlfY29udGV4dDogc3RyaW5nO1xuICBwdWJsaWMgZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcj86IHN0cmluZztcbiAgcHVibGljIG1vbnRoX2Zvcm1hdD86IHN0cmluZztcbiAgcHVibGljIHNob3dfY29uZGl0aW9uPzogc3RyaW5nO1xuICBwdWJsaWMgc2hvd19zdW1tYXJ5X2NoYW5nZV9vcHRpb24/OiBib29sZWFuO1xuICBwdWJsaWMgc2hvd19zdW1tYXJ5X2NvbnRlbnRfb3B0aW9uPzogbnVtYmVyO1xuICBwdWJsaWMgYWNscz86IEFjY2Vzc0NvbnRyb2xMaXN0W107XG4gIHB1YmxpYyBtZXRhZGF0YT86IGJvb2xlYW47XG4gIHB1YmxpYyBmb3JtYXR0ZWRfdmFsdWU/OiBhbnk7XG4gIHB1YmxpYyByZXRhaW5faGlkZGVuX3ZhbHVlOiBib29sZWFuO1xuXG4gIEBUeXBlKCgpID0+IFdpemFyZFBhZ2VGaWVsZClcbiAgcHVibGljIHdpemFyZFByb3BzPzogV2l6YXJkUGFnZUZpZWxkO1xuXG4gIHB1YmxpYyBfdmFsdWU6IGFueTtcbiAgcHVibGljIF9saXN0X2l0ZW1zOiBhbnkgPSBbXTtcbiAgcHJpdmF0ZSBpc1RyYW5zbGF0ZWRGbGFnOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICBpZiAodGhpcy5maWVsZF90eXBlICYmICh0aGlzLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0R5bmFtaWNMaXN0JyB8fCB0aGlzLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0R5bmFtaWNSYWRpb0xpc3QnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlICYmIHRoaXMuX3ZhbHVlLnZhbHVlID8gdGhpcy5fdmFsdWUudmFsdWUuY29kZSA6IHRoaXMuX3ZhbHVlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZF90eXBlICYmIHRoaXMuZmllbGRfdHlwZS50eXBlID09PSAnRHluYW1pY011bHRpU2VsZWN0TGlzdCcpIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZSAmJiB0aGlzLl92YWx1ZS52YWx1ZSA/IHRoaXMuX3ZhbHVlLnZhbHVlIDogdGhpcy5fdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5pc0R5bmFtaWMoKSkge1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmIHZhbHVlLmxpc3RfaXRlbXMpIHtcbiAgICAgICAgdGhpcy5fbGlzdF9pdGVtcyA9IHZhbHVlLmxpc3RfaXRlbXM7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLl9saXN0X2l0ZW1zIHx8IHRoaXMuX2xpc3RfaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIC8vIEV4dHJhY3QgdGhlIGxpc3QgaXRlbXMgZnJvbSB0aGUgY3VycmVudCB2YWx1ZSBpZiB0aGF0J3MgdGhlIG9ubHkgcGxhY2UgdGhleSBleGlzdC5cbiAgICAgICAgdGhpcy5fbGlzdF9pdGVtcyA9IHRoaXMubGlzdF9pdGVtcztcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCAhdmFsdWUudmFsdWUpIHtcbiAgICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgZ2V0IGxpc3RfaXRlbXMoKTogYW55IHtcbiAgICBpZiAodGhpcy5pc0R5bmFtaWMoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlICYmIHRoaXMuX3ZhbHVlLmxpc3RfaXRlbXMgPyB0aGlzLl92YWx1ZS5saXN0X2l0ZW1zIDogdGhpcy5fbGlzdF9pdGVtcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZmllbGRfdHlwZS5maXhlZF9saXN0X2l0ZW1zO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXQgbGlzdF9pdGVtcyhpdGVtczogYW55KSB7XG4gICAgaWYgKChpdGVtcyAmJiAhdGhpcy5fbGlzdF9pdGVtcykgfHwgKGl0ZW1zPy5sZW5ndGggPiB0aGlzLl9saXN0X2l0ZW1zPy5sZW5ndGgpKXtcbiAgICAgIHRoaXMuX2xpc3RfaXRlbXMgPSBpdGVtcztcbiAgICB9XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGdldCBkYXRlVGltZUVudHJ5Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNDb21wbGV4RGlzcGxheSgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdEJyYWNrZXRWYWx1ZSh0aGlzLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIsICcjREFURVRJTUVFTlRSWScpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgZ2V0IGRhdGVUaW1lRGlzcGxheUZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzQ29tcGxleEVudHJ5KCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5leHRyYWN0QnJhY2tldFZhbHVlKHRoaXMuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciwgJyNEQVRFVElNRURJU1BMQVknKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzQ29tcGxleERpc3BsYXkoKSB7XG4gICAgcmV0dXJuICh0aGlzLmlzQ29tcGxleCgpIHx8IHRoaXMuaXNDb2xsZWN0aW9uKCkpICYmIHRoaXMuaXNSZWFkb25seSgpO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBpc0NvbXBsZXhFbnRyeSgpIHtcbiAgICByZXR1cm4gKHRoaXMuaXNDb21wbGV4KCkgfHwgdGhpcy5pc0NvbGxlY3Rpb24oKSkgJiYgKHRoaXMuaXNPcHRpb25hbCgpIHx8IHRoaXMuaXNNYW5kYXRvcnkoKSk7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzUmVhZG9ubHkoKSB7XG4gICAgcmV0dXJuICFfLmlzRW1wdHkodGhpcy5kaXNwbGF5X2NvbnRleHQpXG4gICAgICAmJiB0aGlzLmRpc3BsYXlfY29udGV4dC50b1VwcGVyQ2FzZSgpID09PSAnUkVBRE9OTFknO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBpc09wdGlvbmFsKCkge1xuICAgIHJldHVybiAhXy5pc0VtcHR5KHRoaXMuZGlzcGxheV9jb250ZXh0KVxuICAgICAgJiYgdGhpcy5kaXNwbGF5X2NvbnRleHQudG9VcHBlckNhc2UoKSA9PT0gJ09QVElPTkFMJztcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNNYW5kYXRvcnkoKSB7XG4gICAgcmV0dXJuICFfLmlzRW1wdHkodGhpcy5kaXNwbGF5X2NvbnRleHQpXG4gICAgICAmJiB0aGlzLmRpc3BsYXlfY29udGV4dC50b1VwcGVyQ2FzZSgpID09PSAnTUFOREFUT1JZJztcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNDb2xsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkX3R5cGUgJiYgdGhpcy5maWVsZF90eXBlLnR5cGUgPT09ICdDb2xsZWN0aW9uJztcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNDb21wbGV4KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkX3R5cGUgJiYgdGhpcy5maWVsZF90eXBlLnR5cGUgPT09ICdDb21wbGV4JztcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNEeW5hbWljKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGR5bmFtaWNGaWVsZFR5cGVzOiBGaWVsZFR5cGVFbnVtW10gPSBbJ0R5bmFtaWNMaXN0JywgJ0R5bmFtaWNSYWRpb0xpc3QnLCAnRHluYW1pY011bHRpU2VsZWN0TGlzdCddO1xuXG4gICAgaWYgKCF0aGlzLmZpZWxkX3R5cGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gZHluYW1pY0ZpZWxkVHlwZXMuc29tZSh0ID0+IHQgPT09IHRoaXMuZmllbGRfdHlwZS50eXBlKTtcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNDYXNlTGluaygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0NvbXBsZXgoKVxuICAgICAgJiYgdGhpcy5maWVsZF90eXBlLmlkID09PSAnQ2FzZUxpbmsnXG4gICAgICAmJiB0aGlzLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMuc29tZShjZiA9PiBjZi5pZCA9PT0gJ0Nhc2VSZWZlcmVuY2UnKTtcbiAgfVxuICBwdWJsaWMgZXh0cmFjdEJyYWNrZXRWYWx1ZShmbXQ6IHN0cmluZywgcGFyYW1OYW1lOiBzdHJpbmcsIGxlZnRCcmFja2V0PSAnKCcsIHJpZ2h0QnJhY2tldD0gJyknICk6IHN0cmluZyB7XG4gICAgICBmbXQgPSBmbXQuc3BsaXQoJywnKVxuICAgICAgICAuZmluZChhID0+IGEudHJpbSgpLnN0YXJ0c1dpdGgocGFyYW1OYW1lKSk7XG4gICAgICBpZiAoZm10KSB7XG4gICAgICAgIGNvbnN0IHMgPSBmbXQuaW5kZXhPZihsZWZ0QnJhY2tldCkgKyAxO1xuICAgICAgICBjb25zdCBlID0gZm10LmluZGV4T2YocmlnaHRCcmFja2V0LCBzKTtcbiAgICAgICAgaWYgKGUgPiBzICYmIHMgPj0gMCkge1xuICAgICAgICAgIHJldHVybiBmbXQuc3Vic3RyKHMsIChlIC0gcykpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIEFzY2VuZCB0aGUgaGllcmFyY2h5IHRvIGdldCB0aGUgZnVsbCBwYXRoIG9mIHRoZSBmaWVsZFxuICBARXhwb3NlKClcbiAgcHVibGljIGdldEhpZXJhY2hpY2FsSWQoY3Vycj86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgcHJlZml4OiBzdHJpbmcgPSBjdXJyID8gY3VyciArIFwiX1wiIDogXCJcIjtcbiAgICBpZiAocHJlZml4Lmxlbmd0aCA8IDEwMjQpIHtcbiAgICAgIGlmICh0aGlzLnBhcmVudCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wYXJlbnQuZ2V0SGllcmFjaGljYWxJZChwcmVmaXggKyB0aGlzLmlkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBwcmVmaXggKyB0aGlzLmlkO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLmxvZyhcIlBhdGggdG9vIGxvbmcsIHBvc3NpYmxlIGNpcmN1bGFyIHJlZmVyZW5jZSBpbiBjYXNlIGZpZWxkIGhpZXJhcmNoeVwiKTtcbiAgICAgIHJldHVybiB0aGlzLmlkO1xuICAgIH1cbiAgfVxuICBcbiAgcHVibGljIHNldCBpc1RyYW5zbGF0ZWQodmFsOiBib29sZWFuKVxuICB7XG4gICAgdGhpcy5pc1RyYW5zbGF0ZWRGbGFnID0gdmFsO1xuICB9XG5cbiAgcHVibGljIGdldCBpc1RyYW5zbGF0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNUcmFuc2xhdGVkRmxhZztcbiAgfVxufVxuIl19
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWVsZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sS0FBSyxDQUFDLE1BQU0sWUFBWSxDQUFDO0FBQ2hDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUk5RixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFL0MsV0FBVztBQUNYLE1BQU0sT0FBTyxTQUFTO0lBQ2IsRUFBRSxDQUFTO0lBQ1gsTUFBTSxDQUFVO0lBQ2hCLGtCQUFrQixDQUFVO0lBQzVCLEtBQUssQ0FBUztJQUNkLGFBQWEsQ0FBVTtJQUN2QixLQUFLLENBQVU7SUFFZixNQUFNLENBQWE7SUFHbkIsVUFBVSxDQUFZO0lBRXRCLFNBQVMsQ0FBVTtJQUNuQixjQUFjLENBQVU7SUFDeEIsZUFBZSxDQUFTO0lBQ3hCLHlCQUF5QixDQUFVO0lBQ25DLFlBQVksQ0FBVTtJQUN0QixjQUFjLENBQVU7SUFDeEIsMEJBQTBCLENBQVc7SUFDckMsMkJBQTJCLENBQVU7SUFDckMsSUFBSSxDQUF1QjtJQUMzQixRQUFRLENBQVc7SUFDbkIsZUFBZSxDQUFPO0lBQ3RCLG1CQUFtQixDQUFVO0lBRzdCLFdBQVcsQ0FBbUI7SUFFOUIsTUFBTSxDQUFNO0lBQ1osV0FBVyxHQUFRLEVBQUUsQ0FBQztJQUNyQixnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFFMUMsSUFDVyxLQUFLO1FBQ2QsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLENBQUMsSUFBSSxDQUFD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QUFDO0FBZ0J0QjtJQUROLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7OEJBQ1AsZUFBZTs4Q0FBQztBQU1yQztJQUFDLE1BQU0sRUFBRTs7O3NDQVNSO0FBaUJEO0lBQUMsTUFBTSxFQUFFOzs7MkNBT1I7QUFRRDtJQUFDLE1BQU0sRUFBRTs7O29EQVNSO0FBRUQ7SUFBQyxNQUFNLEVBQUU7OztzREFTUjtBQUdNO0lBRE4sTUFBTSxFQUFFOzs7O2lEQUdSO0FBR007SUFETixNQUFNLEVBQUU7Ozs7K0NBR1I7QUFHTTtJQUROLE1BQU0sRUFBRTs7OzsyQ0FJUjtBQUdNO0lBRE4sTUFBTSxFQUFFOzs7OzJDQUlSO0FBR007SUFETixNQUFNLEVBQUU7Ozs7NENBSVI7QUFHTTtJQUROLE1BQU0sRUFBRTs7Ozs2Q0FHUjtBQUdNO0lBRE4sTUFBTSxFQUFFOzs7OzBDQUdSO0FBR007SUFETixNQUFNLEVBQUU7Ozs7MENBU1I7QUFHTTtJQUROLE1BQU0sRUFBRTs7OzsyQ0FLUjtBQWdCTTtJQUROLE1BQU0sRUFBRTs7OztpREFhUiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRzbGludDpkaXNhYmxlOnZhcmlhYmxlLW5hbWVcbmltcG9ydCB7IEV4Y2x1ZGUsIEV4cG9zZSwgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCAqIGFzIF8gZnJvbSAndW5kZXJzY29yZSc7XG5pbXBvcnQgeyBXaXphcmRQYWdlRmllbGQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2RvbWFpbi93aXphcmQtcGFnZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBPcmRlcmFibGUgfSBmcm9tICcuLi9vcmRlcic7XG5pbXBvcnQgeyBBY2Nlc3NDb250cm9sTGlzdCB9IGZyb20gJy4vYWNjZXNzLWNvbnRyb2wtbGlzdC5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi9maWVsZC10eXBlLWVudW0ubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi9maWVsZC10eXBlLm1vZGVsJztcblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBDYXNlRmllbGQgaW1wbGVtZW50cyBPcmRlcmFibGUge1xuICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgcHVibGljIGhpZGRlbjogYm9vbGVhbjtcbiAgcHVibGljIGhpZGRlbkNhbm5vdENoYW5nZTogYm9vbGVhbjtcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBvcmlnaW5hbExhYmVsPzogc3RyaW5nO1xuICBwdWJsaWMgb3JkZXI/OiBudW1iZXI7XG4gIEBFeGNsdWRlKClcbiAgcHVibGljIHBhcmVudD86IENhc2VGaWVsZDtcblxuICBAVHlwZSgoKSA9PiBGaWVsZFR5cGUpXG4gIHB1YmxpYyBmaWVsZF90eXBlOiBGaWVsZFR5cGU7XG5cbiAgcHVibGljIGhpbnRfdGV4dD86IHN0cmluZztcbiAgcHVibGljIHNlY3VyaXR5X2xhYmVsPzogc3RyaW5nO1xuICBwdWJsaWMgZGlzcGxheV9jb250ZXh0OiBzdHJpbmc7XG4gIHB1YmxpYyBkaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyPzogc3RyaW5nO1xuICBwdWJsaWMgbW9udGhfZm9ybWF0Pzogc3RyaW5nO1xuICBwdWJsaWMgc2hvd19jb25kaXRpb24/OiBzdHJpbmc7XG4gIHB1YmxpYyBzaG93X3N1bW1hcnlfY2hhbmdlX29wdGlvbj86IGJvb2xlYW47XG4gIHB1YmxpYyBzaG93X3N1bW1hcnlfY29udGVudF9vcHRpb24/OiBudW1iZXI7XG4gIHB1YmxpYyBhY2xzPzogQWNjZXNzQ29udHJvbExpc3RbXTtcbiAgcHVibGljIG1ldGFkYXRhPzogYm9vbGVhbjtcbiAgcHVibGljIGZvcm1hdHRlZF92YWx1ZT86IGFueTtcbiAgcHVibGljIHJldGFpbl9oaWRkZW5fdmFsdWU6IGJvb2xlYW47XG5cbiAgQFR5cGUoKCkgPT4gV2l6YXJkUGFnZUZpZWxkKVxuICBwdWJsaWMgd2l6YXJkUHJvcHM/OiBXaXphcmRQYWdlRmllbGQ7XG5cbiAgcHVibGljIF92YWx1ZTogYW55O1xuICBwdWJsaWMgX2xpc3RfaXRlbXM6IGFueSA9IFtdO1xuICBwcml2YXRlIGlzVHJhbnNsYXRlZEZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBARXhwb3NlKClcbiAgcHVibGljIGdldCB2YWx1ZSgpOiBhbnkge1xuICAgIGlmICh0aGlzLmZpZWxkX3R5cGUgJiYgKHRoaXMuZmllbGRfdHlwZS50eXBlID09PSAnRHluYW1pY0xpc3QnIHx8IHRoaXMuZmllbGRfdHlwZS50eXBlID09PSAnRHluYW1pY1JhZGlvTGlzdCcpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWUgJiYgdGhpcy5fdmFsdWUudmFsdWUgPyB0aGlzLl92YWx1ZS52YWx1ZS5jb2RlIDogdGhpcy5fdmFsdWU7XG4gICAgfSBlbHNlIGlmICh0aGlzLmZpZWxkX3R5cGUgJiYgdGhpcy5maWVsZF90eXBlLnR5cGUgPT09ICdEeW5hbWljTXVsdGlTZWxlY3RMaXN0Jykge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlICYmIHRoaXMuX3ZhbHVlLnZhbHVlID8gdGhpcy5fdmFsdWUudmFsdWUgOiB0aGlzLl92YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLmlzRHluYW1pYygpKSB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgdmFsdWUubGlzdF9pdGVtcykge1xuICAgICAgICB0aGlzLl9saXN0X2l0ZW1zID0gdmFsdWUubGlzdF9pdGVtcztcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2xpc3RfaXRlbXMgfHwgdGhpcy5fbGlzdF9pdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgLy8gRXh0cmFjdCB0aGUgbGlzdCBpdGVtcyBmcm9tIHRoZSBjdXJyZW50IHZhbHVlIGlmIHRoYXQncyB0aGUgb25seSBwbGFjZSB0aGV5IGV4aXN0LlxuICAgICAgICB0aGlzLl9saXN0X2l0ZW1zID0gdGhpcy5saXN0X2l0ZW1zO1xuICAgICAgICBpZiAoIXZhbHVlIHx8ICF2YWx1ZS52YWx1ZSkge1xuICAgICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBnZXQgbGlzdF9pdGVtcygpOiBhbnkge1xuICAgIGlmICh0aGlzLmlzRHluYW1pYygpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWUgJiYgdGhpcy5fdmFsdWUubGlzdF9pdGVtcyA/IHRoaXMuX3ZhbHVlLmxpc3RfaXRlbXMgOiB0aGlzLl9saXN0X2l0ZW1zO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5maWVsZF90eXBlLmZpeGVkX2xpc3RfaXRlbXM7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCBsaXN0X2l0ZW1zKGl0ZW1zOiBhbnkpIHtcbiAgICBpZiAoKGl0ZW1zICYmICF0aGlzLl9saXN0X2l0ZW1zKSB8fCAoaXRlbXM/Lmxlbmd0aCA+IHRoaXMuX2xpc3RfaXRlbXM/Lmxlbmd0aCkpe1xuICAgICAgdGhpcy5fbGlzdF9pdGVtcyA9IGl0ZW1zO1xuICAgIH1cbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgZ2V0IGRhdGVUaW1lRW50cnlGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0NvbXBsZXhEaXNwbGF5KCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5leHRyYWN0QnJhY2tldFZhbHVlKHRoaXMuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciwgJyNEQVRFVElNRUVOVFJZJyk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBnZXQgZGF0ZVRpbWVEaXNwbGF5Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNDb21wbGV4RW50cnkoKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RCcmFja2V0VmFsdWUodGhpcy5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyLCAnI0RBVEVUSU1FRElTUExBWScpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNDb21wbGV4RGlzcGxheSgpIHtcbiAgICByZXR1cm4gKHRoaXMuaXNDb21wbGV4KCkgfHwgdGhpcy5pc0NvbGxlY3Rpb24oKSkgJiYgdGhpcy5pc1JlYWRvbmx5KCk7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzQ29tcGxleEVudHJ5KCkge1xuICAgIHJldHVybiAodGhpcy5pc0NvbXBsZXgoKSB8fCB0aGlzLmlzQ29sbGVjdGlvbigpKSAmJiAodGhpcy5pc09wdGlvbmFsKCkgfHwgdGhpcy5pc01hbmRhdG9yeSgpKTtcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNSZWFkb25seSgpIHtcbiAgICByZXR1cm4gIV8uaXNFbXB0eSh0aGlzLmRpc3BsYXlfY29udGV4dClcbiAgICAgICYmIHRoaXMuZGlzcGxheV9jb250ZXh0LnRvVXBwZXJDYXNlKCkgPT09ICdSRUFET05MWSc7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzT3B0aW9uYWwoKSB7XG4gICAgcmV0dXJuICFfLmlzRW1wdHkodGhpcy5kaXNwbGF5X2NvbnRleHQpXG4gICAgICAmJiB0aGlzLmRpc3BsYXlfY29udGV4dC50b1VwcGVyQ2FzZSgpID09PSAnT1BUSU9OQUwnO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBpc01hbmRhdG9yeSgpIHtcbiAgICByZXR1cm4gIV8uaXNFbXB0eSh0aGlzLmRpc3BsYXlfY29udGV4dClcbiAgICAgICYmIHRoaXMuZGlzcGxheV9jb250ZXh0LnRvVXBwZXJDYXNlKCkgPT09ICdNQU5EQVRPUlknO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBpc0NvbGxlY3Rpb24oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRfdHlwZSAmJiB0aGlzLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbGxlY3Rpb24nO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBpc0NvbXBsZXgoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRfdHlwZSAmJiB0aGlzLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBpc0R5bmFtaWMoKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZHluYW1pY0ZpZWxkVHlwZXM6IEZpZWxkVHlwZUVudW1bXSA9IFsnRHluYW1pY0xpc3QnLCAnRHluYW1pY1JhZGlvTGlzdCcsICdEeW5hbWljTXVsdGlTZWxlY3RMaXN0J107XG5cbiAgICBpZiAoIXRoaXMuZmllbGRfdHlwZSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiBkeW5hbWljRmllbGRUeXBlcy5zb21lKHQgPT4gdCA9PT0gdGhpcy5maWVsZF90eXBlLnR5cGUpO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBpc0Nhc2VMaW5rKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmlzQ29tcGxleCgpXG4gICAgICAmJiB0aGlzLmZpZWxkX3R5cGUuaWQgPT09ICdDYXNlTGluaydcbiAgICAgICYmIHRoaXMuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcy5zb21lKGNmID0+IGNmLmlkID09PSAnQ2FzZVJlZmVyZW5jZScpO1xuICB9XG4gIHB1YmxpYyBleHRyYWN0QnJhY2tldFZhbHVlKGZtdDogc3RyaW5nLCBwYXJhbU5hbWU6IHN0cmluZywgbGVmdEJyYWNrZXQ9ICcoJywgcmlnaHRCcmFja2V0PSAnKScgKTogc3RyaW5nIHtcbiAgICAgIGZtdCA9IGZtdC5zcGxpdCgnLCcpXG4gICAgICAgIC5maW5kKGEgPT4gYS50cmltKCkuc3RhcnRzV2l0aChwYXJhbU5hbWUpKTtcbiAgICAgIGlmIChmbXQpIHtcbiAgICAgICAgY29uc3QgcyA9IGZtdC5pbmRleE9mKGxlZnRCcmFja2V0KSArIDE7XG4gICAgICAgIGNvbnN0IGUgPSBmbXQuaW5kZXhPZihyaWdodEJyYWNrZXQsIHMpO1xuICAgICAgICBpZiAoZSA+IHMgJiYgcyA+PSAwKSB7XG4gICAgICAgICAgcmV0dXJuIGZtdC5zdWJzdHIocywgKGUgLSBzKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gQXNjZW5kIHRoZSBoaWVyYXJjaHkgdG8gZ2V0IHRoZSBmdWxsIHBhdGggb2YgdGhlIGZpZWxkXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgZ2V0SGllcmFjaGljYWxJZChjdXJyPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCBwcmVmaXg6IHN0cmluZyA9IGN1cnIgPyBjdXJyICsgXCJfXCIgOiBcIlwiO1xuICAgIGlmIChwcmVmaXgubGVuZ3RoIDwgMTAyNCkge1xuICAgICAgaWYgKHRoaXMucGFyZW50KSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBhcmVudC5nZXRIaWVyYWNoaWNhbElkKHByZWZpeCArIHRoaXMuaWQpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHByZWZpeCArIHRoaXMuaWQ7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUubG9nKFwiUGF0aCB0b28gbG9uZywgcG9zc2libGUgY2lyY3VsYXIgcmVmZXJlbmNlIGluIGNhc2UgZmllbGQgaGllcmFyY2h5XCIpO1xuICAgICAgcmV0dXJuIHRoaXMuaWQ7XG4gICAgfVxuICB9XG4gIFxuICBwdWJsaWMgc2V0IGlzVHJhbnNsYXRlZCh2YWw6IGJvb2xlYW4pXG4gIHtcbiAgICB0aGlzLmlzVHJhbnNsYXRlZEZsYWcgPSB2YWw7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVHJhbnNsYXRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc1RyYW5zbGF0ZWRGbGFnO1xuICB9XG59XG4iXX0=
@@ -2932,6 +2932,9 @@ class FieldLabelPipe {
2932
2932
  return field.label;
2933
2933
  }
2934
2934
  }
2935
+ getOriginalLabelForYesNoTranslation(field) {
2936
+ return field.originalLabel || field.label;
2937
+ }
2935
2938
  static ɵfac = function FieldLabelPipe_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || FieldLabelPipe)(i0.ɵɵdirectiveInject(i1.RpxTranslatePipe, 16)); };
2936
2939
  static ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "ccdFieldLabel", type: FieldLabelPipe, pure: false });
2937
2940
  }
@@ -3280,6 +3283,7 @@ class CaseField {
3280
3283
  hidden;
3281
3284
  hiddenCannotChange;
3282
3285
  label;
3286
+ originalLabel;
3283
3287
  order;
3284
3288
  parent;
3285
3289
  field_type;
@@ -6598,31 +6602,43 @@ class LabelSubstitutorDirective {
6598
6602
  fieldsUtils;
6599
6603
  placeholderService;
6600
6604
  rpxTranslationPipe;
6605
+ rpxTranslationService;
6601
6606
  caseField;
6602
6607
  contextFields = [];
6603
6608
  formGroup;
6604
6609
  elementsToSubstitute = ['label', 'hint_text'];
6605
- initialLabel;
6606
6610
  initialHintText;
6607
- constructor(fieldsUtils, placeholderService, rpxTranslationPipe) {
6611
+ languageSubscription;
6612
+ constructor(fieldsUtils, placeholderService, rpxTranslationPipe, rpxTranslationService) {
6608
6613
  this.fieldsUtils = fieldsUtils;
6609
6614
  this.placeholderService = placeholderService;
6610
6615
  this.rpxTranslationPipe = rpxTranslationPipe;
6616
+ this.rpxTranslationService = rpxTranslationService;
6611
6617
  }
6612
6618
  ngOnInit() {
6613
- this.initialLabel = this.caseField.label;
6614
6619
  this.initialHintText = this.caseField.hint_text;
6620
+ this.caseField.originalLabel = this.caseField.label;
6615
6621
  this.formGroup = this.formGroup || new FormGroup({});
6622
+ this.languageSubscription = this.rpxTranslationService.language$.subscribe(() => {
6623
+ // timeout is required to prevent race conditions with translation pipe
6624
+ setTimeout(() => {
6625
+ this.onLanguageChange();
6626
+ }, 100);
6627
+ });
6628
+ this.applySubstitutions();
6629
+ }
6630
+ applySubstitutions() {
6616
6631
  const fields = this.getReadOnlyAndFormFields();
6617
6632
  if (this.shouldSubstitute('label')) {
6618
6633
  const oldLabel = this.caseField.label;
6619
6634
  const substitutedLabel = this.resolvePlaceholders(fields, this.caseField.label);
6620
6635
  if (oldLabel && oldLabel !== substitutedLabel) {
6621
6636
  // we need to translate the uninterpolated data then substitute the values in translated string
6637
+ this.caseField.originalLabel = substitutedLabel;
6622
6638
  const translated = this.rpxTranslationPipe.transform(oldLabel);
6623
6639
  const transSubstitutedLabel = this.resolvePlaceholders(fields, translated);
6624
6640
  this.caseField.label = transSubstitutedLabel;
6625
- this.caseField.isTranslated = true;
6641
+ this.caseField.isTranslated = this.rpxTranslationService.language === 'cy' && translated !== oldLabel;
6626
6642
  }
6627
6643
  else {
6628
6644
  this.caseField.label = substitutedLabel;
@@ -6636,13 +6652,24 @@ class LabelSubstitutorDirective {
6636
6652
  this.caseField.value = this.resolvePlaceholders(fields, this.caseField.value);
6637
6653
  }
6638
6654
  }
6639
- ngOnDestroy() {
6640
- if (this.initialLabel) {
6641
- this.caseField.label = this.initialLabel;
6655
+ onLanguageChange() {
6656
+ this.resetToInitialValues();
6657
+ this.applySubstitutions();
6658
+ }
6659
+ resetToInitialValues() {
6660
+ if (this.caseField?.originalLabel) {
6661
+ this.caseField.label = this.caseField.originalLabel;
6642
6662
  }
6643
6663
  if (this.initialHintText) {
6644
6664
  this.caseField.hint_text = this.initialHintText;
6645
6665
  }
6666
+ this.caseField.isTranslated = false;
6667
+ }
6668
+ ngOnDestroy() {
6669
+ this.resetToInitialValues();
6670
+ if (this.languageSubscription) {
6671
+ this.languageSubscription.unsubscribe();
6672
+ }
6646
6673
  }
6647
6674
  shouldSubstitute(element) {
6648
6675
  return this.elementsToSubstitute.find(e => e === element) !== undefined;
@@ -6669,13 +6696,13 @@ class LabelSubstitutorDirective {
6669
6696
  resolvePlaceholders(fields, stringToResolve) {
6670
6697
  return this.placeholderService.resolvePlaceholders(fields, stringToResolve);
6671
6698
  }
6672
- static ɵfac = function LabelSubstitutorDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LabelSubstitutorDirective)(i0.ɵɵdirectiveInject(FieldsUtils), i0.ɵɵdirectiveInject(PlaceholderService), i0.ɵɵdirectiveInject(i1.RpxTranslatePipe)); };
6699
+ static ɵfac = function LabelSubstitutorDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LabelSubstitutorDirective)(i0.ɵɵdirectiveInject(FieldsUtils), i0.ɵɵdirectiveInject(PlaceholderService), i0.ɵɵdirectiveInject(i1.RpxTranslatePipe), i0.ɵɵdirectiveInject(i1.RpxTranslationService)); };
6673
6700
  static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: LabelSubstitutorDirective, selectors: [["", "ccdLabelSubstitutor", ""]], inputs: { caseField: "caseField", contextFields: "contextFields", formGroup: "formGroup", elementsToSubstitute: "elementsToSubstitute" } });
6674
6701
  }
6675
6702
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LabelSubstitutorDirective, [{
6676
6703
  type: Directive,
6677
6704
  args: [{ selector: '[ccdLabelSubstitutor]' }]
6678
- }], () => [{ type: FieldsUtils }, { type: PlaceholderService }, { type: i1.RpxTranslatePipe }], { caseField: [{
6705
+ }], () => [{ type: FieldsUtils }, { type: PlaceholderService }, { type: i1.RpxTranslatePipe }, { type: i1.RpxTranslationService }], { caseField: [{
6679
6706
  type: Input
6680
6707
  }], contextFields: [{
6681
6708
  type: Input
@@ -22702,15 +22729,15 @@ class QueryWriteAddDocumentsComponent {
22702
22729
  this.documentFormControlSubscription?.unsubscribe();
22703
22730
  }
22704
22731
  static ɵfac = function QueryWriteAddDocumentsComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || QueryWriteAddDocumentsComponent)(); };
22705
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryWriteAddDocumentsComponent, selectors: [["ccd-query-write-add-documents"]], inputs: { formGroup: "formGroup", label: "label", hintText: "hintText" }, outputs: { documentCollectionUpdate: "documentCollectionUpdate" }, decls: 1, vars: 2, consts: [[3, "formGroup", "caseFields"]], template: function QueryWriteAddDocumentsComponent_Template(rf, ctx) { if (rf & 1) {
22732
+ static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: QueryWriteAddDocumentsComponent, selectors: [["ccd-query-write-add-documents"]], inputs: { formGroup: "formGroup", label: "label", hintText: "hintText" }, outputs: { documentCollectionUpdate: "documentCollectionUpdate" }, decls: 1, vars: 2, consts: [[3, "formGroup", "caseField"]], template: function QueryWriteAddDocumentsComponent_Template(rf, ctx) { if (rf & 1) {
22706
22733
  i0.ɵɵelement(0, "ccd-write-collection-field", 0);
22707
22734
  } if (rf & 2) {
22708
- i0.ɵɵproperty("formGroup", ctx.documentFormGroup)("caseFields", ctx.mockDocumentCaseField);
22735
+ i0.ɵɵproperty("formGroup", ctx.documentFormGroup)("caseField", ctx.mockDocumentCaseField);
22709
22736
  } }, encapsulation: 2 });
22710
22737
  }
22711
22738
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(QueryWriteAddDocumentsComponent, [{
22712
22739
  type: Component,
22713
- args: [{ selector: 'ccd-query-write-add-documents', template: "<ccd-write-collection-field [formGroup]=\"documentFormGroup\" [caseFields]=\"mockDocumentCaseField\">\n</ccd-write-collection-field>\n" }]
22740
+ args: [{ selector: 'ccd-query-write-add-documents', template: "<ccd-write-collection-field [formGroup]=\"documentFormGroup\" [caseField]=\"mockDocumentCaseField\">\n</ccd-write-collection-field>\n" }]
22714
22741
  }], null, { formGroup: [{
22715
22742
  type: Input
22716
22743
  }], label: [{
@@ -24108,7 +24135,7 @@ function WriteYesNoFieldComponent_div_7_Template(rf, ctx) { if (rf & 1) {
24108
24135
  i0.ɵɵadvance();
24109
24136
  i0.ɵɵproperty("for", ctx_r0.createElementId(value_r2));
24110
24137
  i0.ɵɵadvance();
24111
- i0.ɵɵtextInterpolate(ctx_r0.caseField.label ? i0.ɵɵpipeBind3(4, 8, ctx_r0.caseField.label, null, value_r2) : value_r2);
24138
+ i0.ɵɵtextInterpolate(ctx_r0.caseField.label ? i0.ɵɵpipeBind3(4, 8, ctx_r0.caseField.originalLabel || ctx_r0.caseField.label, null, value_r2) : value_r2);
24112
24139
  } }
24113
24140
  class WriteYesNoFieldComponent extends AbstractFieldWriteComponent {
24114
24141
  yesNoService;
@@ -24146,7 +24173,7 @@ class WriteYesNoFieldComponent extends AbstractFieldWriteComponent {
24146
24173
  }
24147
24174
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteYesNoFieldComponent, [{
24148
24175
  type: Component,
24149
- args: [{ selector: 'ccd-write-yes-no-field', template: "<div [id]=\"id()\" class=\"form-group bottom-30\" [ngClass]=\"{'form-group-error': !yesNoControl.valid && (yesNoControl.dirty || yesNoControl.touched)}\">\n\t<fieldset class=\"inline\">\n <legend>\n <span class=\"form-label\" *ngIf=\"caseField.label\">{{caseField | ccdFieldLabel}}</span>\n </legend>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\" *ngIf=\"yesNoControl.errors && (yesNoControl.dirty || yesNoControl.touched)\">\n {{yesNoControl.errors | ccdFirstError:caseField.label}}\n </span>\n\n <div [id]=\"createElementId('radio')\">\n \t <div class=\"multiple-choice\" *ngFor=\"let value of yesNoValues\" [ngClass]=\"{selected: yesNoControl.value === value}\">\n \t <input class=\"form-control\" [id]=\"createElementId(value)\" [attr.name]=\"id()\" [name]=\"id()\" type=\"radio\" [formControl]=\"yesNoControl\" [value]=\"value\">\n <label class=\"form-label\" [for]=\"createElementId(value)\">{{caseField.label ? (caseField.label | rpxTranslate:null:value) : value}}</label>\n \t </div>\n </div>\n\t</fieldset>\n</div>\n" }]
24176
+ args: [{ selector: 'ccd-write-yes-no-field', template: "<div [id]=\"id()\" class=\"form-group bottom-30\" [ngClass]=\"{'form-group-error': !yesNoControl.valid && (yesNoControl.dirty || yesNoControl.touched)}\">\n\t<fieldset class=\"inline\">\n <legend>\n <span class=\"form-label\" *ngIf=\"caseField.label\">{{caseField | ccdFieldLabel}}</span>\n </legend>\n <span class=\"form-hint\" *ngIf=\"caseField.hint_text\">{{caseField.hint_text | rpxTranslate}}</span>\n <span class=\"error-message\" *ngIf=\"yesNoControl.errors && (yesNoControl.dirty || yesNoControl.touched)\">\n {{yesNoControl.errors | ccdFirstError:caseField.label}}\n </span>\n\n <div [id]=\"createElementId('radio')\">\n \t <div class=\"multiple-choice\" *ngFor=\"let value of yesNoValues\" [ngClass]=\"{selected: yesNoControl.value === value}\">\n \t <input class=\"form-control\" [id]=\"createElementId(value)\" [attr.name]=\"id()\" [name]=\"id()\" type=\"radio\" [formControl]=\"yesNoControl\" [value]=\"value\">\n <label class=\"form-label\" [for]=\"createElementId(value)\">{{caseField.label ? ((caseField.originalLabel || caseField.label) | rpxTranslate:null:value) : value}}</label>\n \t </div>\n </div>\n\t</fieldset>\n</div>\n" }]
24150
24177
  }], () => [{ type: YesNoService }], null); })();
24151
24178
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteYesNoFieldComponent, { className: "WriteYesNoFieldComponent", filePath: "lib/shared/components/palette/yes-no/write-yes-no-field.component.ts", lineNumber: 10 }); })();
24152
24179
 
@@ -31816,6 +31843,7 @@ class CaseEditSubmitComponent {
31816
31843
  formValidatorsService;
31817
31844
  caseFlagStateService;
31818
31845
  linkedCasesService;
31846
+ router;
31819
31847
  eventTrigger;
31820
31848
  editForm;
31821
31849
  triggerText;
@@ -31851,7 +31879,7 @@ class CaseEditSubmitComponent {
31851
31879
  // not been disabled.
31852
31880
  return this.caseEdit.isSubmitting || this.hasErrors;
31853
31881
  }
31854
- constructor(caseEdit, fieldsUtils, caseFieldService, route, orderService, profileNotifier, multipageComponentStateService, formValidatorsService, caseFlagStateService, linkedCasesService) {
31882
+ constructor(caseEdit, fieldsUtils, caseFieldService, route, orderService, profileNotifier, multipageComponentStateService, formValidatorsService, caseFlagStateService, linkedCasesService, router) {
31855
31883
  this.caseEdit = caseEdit;
31856
31884
  this.fieldsUtils = fieldsUtils;
31857
31885
  this.caseFieldService = caseFieldService;
@@ -31862,12 +31890,14 @@ class CaseEditSubmitComponent {
31862
31890
  this.formValidatorsService = formValidatorsService;
31863
31891
  this.caseFlagStateService = caseFlagStateService;
31864
31892
  this.linkedCasesService = linkedCasesService;
31893
+ this.router = router;
31865
31894
  }
31866
31895
  ngOnInit() {
31867
31896
  this.profileSubscription = this.profileNotifier.profile.subscribe((_) => this.profile = _);
31868
31897
  this.eventTrigger = this.caseEdit.eventTrigger;
31869
31898
  this.triggerText = this.eventTrigger.end_button_label || CallbackErrorsComponent.TRIGGER_TEXT_SUBMIT;
31870
31899
  this.editForm = this.caseEdit.form;
31900
+ this.redirectIfFormEmpty();
31871
31901
  this.wizard = this.caseEdit.wizard;
31872
31902
  this.showSummaryFields = this.sortFieldsByShowSummaryContent(this.eventTrigger.case_fields);
31873
31903
  this.caseEdit.isSubmitting = false;
@@ -32104,7 +32134,14 @@ class CaseEditSubmitComponent {
32104
32134
  }
32105
32135
  return 'Cancel';
32106
32136
  }
32107
- 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)); };
32137
+ redirectIfFormEmpty() {
32138
+ const data = this.editForm?.getRawValue()?.data;
32139
+ const isEmpty = !data || (typeof data === 'object' && Object.keys(data).length === 0);
32140
+ if (isEmpty) {
32141
+ this.router.navigate(['/cases/case-filter']);
32142
+ }
32143
+ }
32144
+ 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(i1$1.Router)); };
32108
32145
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditSubmitComponent, selectors: [["ccd-case-edit-submit"]], 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", "javascript:void(0)", 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", "javascript:void(0)", 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) {
32109
32146
  const _r1 = i0.ɵɵgetCurrentView();
32110
32147
  i0.ɵɵelementStart(0, "div")(1, "h1", 2);
@@ -32167,8 +32204,8 @@ class CaseEditSubmitComponent {
32167
32204
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditSubmitComponent, [{
32168
32205
  type: Component,
32169
32206
  args: [{ selector: 'ccd-case-edit-submit', 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)\"\n href=\"javascript:void(0)\">\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()\" href=\"javascript:void(0)\" [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%}\n"] }]
32170
- }], () => [{ type: CaseEditComponent }, { type: FieldsUtils }, { type: CaseFieldService }, { type: i1$1.ActivatedRoute }, { type: OrderService }, { type: ProfileNotifier }, { type: MultipageComponentStateService }, { type: FormValidatorsService }, { type: CaseFlagStateService }, { type: LinkedCasesService }], null); })();
32171
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditSubmitComponent, { className: "CaseEditSubmitComponent", filePath: "lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.ts", lineNumber: 30 }); })();
32207
+ }], () => [{ type: CaseEditComponent }, { type: FieldsUtils }, { type: CaseFieldService }, { type: i1$1.ActivatedRoute }, { type: OrderService }, { type: ProfileNotifier }, { type: MultipageComponentStateService }, { type: FormValidatorsService }, { type: CaseFlagStateService }, { type: LinkedCasesService }, { type: i1$1.Router }], null); })();
32208
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditSubmitComponent, { className: "CaseEditSubmitComponent", filePath: "lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.ts", lineNumber: 31 }); })();
32172
32209
 
32173
32210
  function CaseProgressComponent_div_0_Template(rf, ctx) { if (rf & 1) {
32174
32211
  const _r1 = i0.ɵɵgetCurrentView();