@hmcts/ccd-case-ui-toolkit 6.10.7-cfv-move-document-handle-error-v2 → 6.10.7-cfv-move-document-handle-error-v4

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.
Files changed (174) hide show
  1. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +10161 -6980
  2. package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
  3. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
  4. package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
  5. package/esm2015/lib/shared/commons/case-edit-data/case-edit-data.service.js +19 -1
  6. package/esm2015/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.js +6 -1
  7. package/esm2015/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.js +7 -1
  8. package/esm2015/lib/shared/components/case-editor/services/cases.service.js +7 -1
  9. package/esm2015/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.js +20 -3
  10. package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +2 -2
  11. package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +2 -2
  12. package/esm2015/lib/shared/components/palette/case-file-view/case-file-view-field.component.js +12 -5
  13. package/esm2015/lib/shared/components/palette/case-file-view/index.js +1 -2
  14. package/esm2015/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.js +30 -19
  15. package/esm2015/lib/shared/components/palette/case-flag/write-case-flag-field.component.js +35 -24
  16. package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +13 -2
  17. package/esm2015/lib/shared/components/palette/datetime-picker/datetime-picker.component.js +10 -3
  18. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/index.js +3 -0
  19. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.js +47 -0
  20. package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.js +153 -0
  21. package/esm2015/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.js +5 -6
  22. package/esm2015/lib/shared/components/palette/index.js +4 -6
  23. package/esm2015/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.js +126 -0
  24. package/esm2015/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.js +220 -0
  25. package/esm2015/lib/shared/components/palette/linked-cases/components/index.js +8 -0
  26. package/esm2015/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.js +572 -0
  27. package/esm2015/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.js +219 -0
  28. package/esm2015/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.js +285 -0
  29. package/esm2015/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.js +79 -0
  30. package/esm2015/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.js +214 -0
  31. package/esm2015/lib/shared/components/palette/linked-cases/domain/index.js +3 -0
  32. package/esm2015/lib/shared/components/palette/linked-cases/domain/linked-cases-state.model.js +2 -0
  33. package/esm2015/lib/shared/components/palette/linked-cases/domain/linked-cases.model.js +21 -0
  34. package/esm2015/lib/shared/components/palette/linked-cases/enums/index.js +2 -0
  35. package/esm2015/lib/shared/components/palette/linked-cases/enums/write-linked-cases-field.enum.js +35 -0
  36. package/esm2015/lib/shared/components/palette/linked-cases/index.js +6 -0
  37. package/esm2015/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.js +183 -0
  38. package/esm2015/lib/shared/components/palette/linked-cases/services/index.js +2 -0
  39. package/esm2015/lib/shared/components/palette/linked-cases/services/linked-cases.service.js +134 -0
  40. package/esm2015/lib/shared/components/palette/linked-cases/utils/validators.utils.js +27 -0
  41. package/esm2015/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.js +272 -0
  42. package/esm2015/lib/shared/components/palette/palette.module.js +79 -12
  43. package/esm2015/lib/shared/components/palette/palette.service.js +22 -8
  44. package/esm2015/lib/shared/components/search-result/search-result.component.js +10 -14
  45. package/esm2015/lib/shared/directives/conditional-show/domain/conditional-show.model.js +103 -200
  46. package/esm2015/lib/shared/directives/conditional-show/services/condition-parser.service.js +201 -0
  47. package/esm2015/lib/shared/directives/conditional-show/services/condition.peg.js +103 -0
  48. package/esm2015/lib/shared/domain/case-flag/hmcts-service-detail.model.js +1 -1
  49. package/esm2015/lib/shared/domain/definition/case-field.model.js +6 -3
  50. package/esm2015/lib/shared/domain/definition/display-context-enum.model.js +12 -0
  51. package/esm2015/lib/shared/domain/definition/field-type-enum.model.js +1 -1
  52. package/esm2015/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.js +14 -11
  53. package/esm2015/lib/shared/pipes/index.js +3 -1
  54. package/esm2015/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.js +28 -0
  55. package/esm2015/lib/shared/pipes/link-cases-from-reason-code/index.js +2 -0
  56. package/esm2015/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.js +28 -0
  57. package/esm2015/lib/shared/pipes/link-cases-reason-code/index.js +2 -0
  58. package/esm2015/lib/shared/pipes/pipes.module.js +12 -4
  59. package/esm2015/lib/shared/services/case-flag/case-flag-refdata.service.js +25 -4
  60. package/esm2015/lib/shared/services/common-data-service/common-data-service.js +1 -1
  61. package/esm2015/lib/shared/services/fields/fields.utils.js +7 -1
  62. package/esm2015/lib/shared/services/form/field-type-sanitiser.js +16 -1
  63. package/esm2015/lib/shared/services/form/form-value.service.js +33 -2
  64. package/fesm2015/hmcts-ccd-case-ui-toolkit.js +8380 -5490
  65. package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
  66. package/lib/shared/commons/case-edit-data/case-edit-data.service.d.ts +13 -0
  67. package/lib/shared/commons/case-edit-data/case-edit-data.service.d.ts.map +1 -1
  68. package/lib/shared/components/case-editor/case-edit-page/case-edit-page.component.d.ts.map +1 -1
  69. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts +1 -0
  70. package/lib/shared/components/case-editor/case-edit-submit/case-edit-submit.component.d.ts.map +1 -1
  71. package/lib/shared/components/case-editor/services/cases.service.d.ts +2 -0
  72. package/lib/shared/components/case-editor/services/cases.service.d.ts.map +1 -1
  73. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts +1 -0
  74. package/lib/shared/components/case-viewer/case-full-access-view/case-full-access-view.component.d.ts.map +1 -1
  75. package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts +5 -2
  76. package/lib/shared/components/palette/case-file-view/case-file-view-field.component.d.ts.map +1 -1
  77. package/lib/shared/components/palette/case-file-view/index.d.ts +0 -1
  78. package/lib/shared/components/palette/case-file-view/index.d.ts.map +1 -1
  79. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts +3 -1
  80. package/lib/shared/components/palette/case-flag/components/select-flag-type/select-flag-type.component.d.ts.map +1 -1
  81. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts +2 -0
  82. package/lib/shared/components/palette/case-flag/write-case-flag-field.component.d.ts.map +1 -1
  83. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +1 -0
  84. package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
  85. package/lib/shared/components/palette/datetime-picker/datetime-picker.component.d.ts.map +1 -1
  86. package/lib/shared/components/palette/dynamic-multi-select-list/index.d.ts +3 -0
  87. package/lib/shared/components/palette/dynamic-multi-select-list/index.d.ts.map +1 -0
  88. package/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.d.ts +9 -0
  89. package/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.d.ts.map +1 -0
  90. package/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.d.ts +17 -0
  91. package/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.d.ts.map +1 -0
  92. package/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.d.ts +1 -1
  93. package/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.d.ts.map +1 -1
  94. package/lib/shared/components/palette/index.d.ts +3 -5
  95. package/lib/shared/components/palette/index.d.ts.map +1 -1
  96. package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts +23 -0
  97. package/lib/shared/components/palette/linked-cases/components/before-you-start/before-you-start.component.d.ts.map +1 -0
  98. package/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.d.ts +18 -0
  99. package/lib/shared/components/palette/linked-cases/components/check-your-answers/check-your-answers.component.d.ts.map +1 -0
  100. package/lib/shared/components/palette/linked-cases/components/index.d.ts +8 -0
  101. package/lib/shared/components/palette/linked-cases/components/index.d.ts.map +1 -0
  102. package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts +49 -0
  103. package/lib/shared/components/palette/linked-cases/components/link-cases/link-cases.component.d.ts.map +1 -0
  104. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.d.ts +38 -0
  105. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-from-table.component.d.ts.map +1 -0
  106. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.d.ts +47 -0
  107. package/lib/shared/components/palette/linked-cases/components/linked-cases-table/linked-cases-to-table.component.d.ts.map +1 -0
  108. package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts +18 -0
  109. package/lib/shared/components/palette/linked-cases/components/no-linked-cases/no-linked-cases.component.d.ts.map +1 -0
  110. package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts +38 -0
  111. package/lib/shared/components/palette/linked-cases/components/unlink-cases/unlink-cases.component.d.ts.map +1 -0
  112. package/lib/shared/components/palette/linked-cases/domain/index.d.ts +3 -0
  113. package/lib/shared/components/palette/linked-cases/domain/index.d.ts.map +1 -0
  114. package/lib/shared/components/palette/linked-cases/domain/linked-cases-state.model.d.ts +12 -0
  115. package/lib/shared/components/palette/linked-cases/domain/linked-cases-state.model.d.ts.map +1 -0
  116. package/lib/shared/components/palette/linked-cases/domain/linked-cases.model.d.ts +68 -0
  117. package/lib/shared/components/palette/linked-cases/domain/linked-cases.model.d.ts.map +1 -0
  118. package/lib/shared/components/palette/linked-cases/enums/index.d.ts +2 -0
  119. package/lib/shared/components/palette/linked-cases/enums/index.d.ts.map +1 -0
  120. package/lib/shared/components/palette/linked-cases/enums/write-linked-cases-field.enum.d.ts +31 -0
  121. package/lib/shared/components/palette/linked-cases/enums/write-linked-cases-field.enum.d.ts.map +1 -0
  122. package/lib/shared/components/palette/linked-cases/index.d.ts +6 -0
  123. package/lib/shared/components/palette/linked-cases/index.d.ts.map +1 -0
  124. package/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.d.ts +38 -0
  125. package/lib/shared/components/palette/linked-cases/read-linked-cases-field.component.d.ts.map +1 -0
  126. package/lib/shared/components/palette/linked-cases/services/index.d.ts +2 -0
  127. package/lib/shared/components/palette/linked-cases/services/index.d.ts.map +1 -0
  128. package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts +44 -0
  129. package/lib/shared/components/palette/linked-cases/services/linked-cases.service.d.ts.map +1 -0
  130. package/lib/shared/components/palette/linked-cases/utils/validators.utils.d.ts +10 -0
  131. package/lib/shared/components/palette/linked-cases/utils/validators.utils.d.ts.map +1 -0
  132. package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts +43 -0
  133. package/lib/shared/components/palette/linked-cases/write-linked-cases-field.component.d.ts.map +1 -0
  134. package/lib/shared/components/palette/palette.module.d.ts +68 -58
  135. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  136. package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
  137. package/lib/shared/directives/conditional-show/domain/conditional-show.model.d.ts +13 -30
  138. package/lib/shared/directives/conditional-show/domain/conditional-show.model.d.ts.map +1 -1
  139. package/lib/shared/directives/conditional-show/services/condition-parser.service.d.ts +30 -0
  140. package/lib/shared/directives/conditional-show/services/condition-parser.service.d.ts.map +1 -0
  141. package/lib/shared/directives/conditional-show/services/condition.peg.d.ts +3 -0
  142. package/lib/shared/directives/conditional-show/services/condition.peg.d.ts.map +1 -0
  143. package/lib/shared/domain/case-flag/hmcts-service-detail.model.d.ts.map +1 -1
  144. package/lib/shared/domain/definition/case-field.model.d.ts.map +1 -1
  145. package/lib/shared/domain/definition/display-context-enum.model.d.ts +10 -0
  146. package/lib/shared/domain/definition/display-context-enum.model.d.ts.map +1 -0
  147. package/lib/shared/domain/definition/field-type-enum.model.d.ts +1 -1
  148. package/lib/shared/domain/definition/field-type-enum.model.d.ts.map +1 -1
  149. package/lib/shared/pipes/complex/ccd-read-fields-filter.pipe.d.ts.map +1 -1
  150. package/lib/shared/pipes/index.d.ts +2 -0
  151. package/lib/shared/pipes/index.d.ts.map +1 -1
  152. package/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.d.ts +12 -0
  153. package/lib/shared/pipes/link-cases-from-reason-code/ccd-link-cases-from-reason-code.pipe.d.ts.map +1 -0
  154. package/lib/shared/pipes/link-cases-from-reason-code/index.d.ts +2 -0
  155. package/lib/shared/pipes/link-cases-from-reason-code/index.d.ts.map +1 -0
  156. package/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.d.ts +12 -0
  157. package/lib/shared/pipes/link-cases-reason-code/ccd-link-cases-reason-code.pipe.d.ts.map +1 -0
  158. package/lib/shared/pipes/link-cases-reason-code/index.d.ts +2 -0
  159. package/lib/shared/pipes/link-cases-reason-code/index.d.ts.map +1 -0
  160. package/lib/shared/pipes/pipes.module.d.ts +4 -2
  161. package/lib/shared/pipes/pipes.module.d.ts.map +1 -1
  162. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts +14 -3
  163. package/lib/shared/services/case-flag/case-flag-refdata.service.d.ts.map +1 -1
  164. package/lib/shared/services/common-data-service/common-data-service.d.ts.map +1 -1
  165. package/lib/shared/services/fields/fields.utils.d.ts +1 -0
  166. package/lib/shared/services/fields/fields.utils.d.ts.map +1 -1
  167. package/lib/shared/services/form/field-type-sanitiser.d.ts +2 -0
  168. package/lib/shared/services/form/field-type-sanitiser.d.ts.map +1 -1
  169. package/lib/shared/services/form/form-value.service.d.ts +14 -0
  170. package/lib/shared/services/form/form-value.service.d.ts.map +1 -1
  171. package/package.json +1 -1
  172. package/esm2015/lib/shared/components/palette/case-file-view/case-file-view-field-read.component.js +0 -106
  173. package/lib/shared/components/palette/case-file-view/case-file-view-field-read.component.d.ts +0 -8
  174. package/lib/shared/components/palette/case-file-view/case-file-view-field-read.component.d.ts.map +0 -1
@@ -0,0 +1,201 @@
1
+ import * as _score from 'underscore';
2
+ import peg from './condition.peg';
3
+ import { FieldsUtils } from '../../../services/fields/fields.utils';
4
+ import { ShowCondition } from '../../conditional-show/domain/conditional-show.model';
5
+ export class ConditionParser {
6
+ /**
7
+ * Parse the raw formula and output structured condition data
8
+ * that can be used in evaluating show/hide logic
9
+ * @param condition raw formula e.g. TextField = "Hello"
10
+ */
11
+ static parse(condition) {
12
+ if (!condition) {
13
+ return null;
14
+ }
15
+ ;
16
+ condition = condition.replace(/CONTAINS/g, ' CONTAINS');
17
+ return peg.parse(condition.trim(), {});
18
+ }
19
+ /**
20
+ * Evaluate the current fields against the conditions
21
+ * @param fields the current page fields and their value
22
+ * @param conditions The PegJS formula output
23
+ */
24
+ static evaluate(fields, conditions, path) {
25
+ if (!conditions || conditions.length === 0) {
26
+ return true;
27
+ }
28
+ ;
29
+ const validJoinComparators = ['AND', 'OR'];
30
+ const result = conditions.reduce((accumulator, condition, index) => {
31
+ const isJoinComparator = (comparator) => (typeof comparator === 'string' && validJoinComparators.indexOf(comparator) !== -1);
32
+ if (isJoinComparator(condition)) {
33
+ return accumulator;
34
+ }
35
+ ;
36
+ let currentConditionResult = true;
37
+ if (Array.isArray(condition)) {
38
+ currentConditionResult = this.evaluate(fields, condition);
39
+ if (isJoinComparator(conditions[index - 1])) {
40
+ return this.evaluateJoin(accumulator, conditions[index - 1], currentConditionResult);
41
+ }
42
+ }
43
+ if (condition.comparator) {
44
+ const formula = condition.fieldReference + condition.comparator + condition.value;
45
+ currentConditionResult = this.matchEqualityCondition(fields, formula, path);
46
+ }
47
+ if (isJoinComparator(conditions[index - 1])) {
48
+ return this.evaluateJoin(accumulator, conditions[index - 1], currentConditionResult);
49
+ }
50
+ return currentConditionResult;
51
+ }, true);
52
+ return result;
53
+ }
54
+ static evaluateJoin(leftResult, comparator, rightResult) {
55
+ switch (comparator) {
56
+ case 'OR': return leftResult || rightResult;
57
+ case 'AND': return leftResult && rightResult;
58
+ }
59
+ }
60
+ static matchEqualityCondition(fields, condition, path) {
61
+ const [field, conditionSeparator] = this.getField(condition);
62
+ const [head, ...tail] = field.split('.');
63
+ const currentValue = this.findValueForComplexCondition(fields, head, tail, path);
64
+ const expectedValue = this.unquoted(condition.split(conditionSeparator)[1]);
65
+ if (conditionSeparator === ShowCondition.CONTAINS) {
66
+ return this.checkValueContains(expectedValue, currentValue);
67
+ }
68
+ else {
69
+ return this.checkValueEquals(expectedValue, currentValue, conditionSeparator);
70
+ }
71
+ }
72
+ static getValue(fields, head) {
73
+ if (this.isDynamicList(fields[head])) {
74
+ return fields[head].value.code;
75
+ }
76
+ else {
77
+ return fields[head];
78
+ }
79
+ }
80
+ static isDynamicList(dynamiclist) {
81
+ return !_score.isEmpty(dynamiclist) &&
82
+ (_score.has(dynamiclist, 'value') && _score.has(dynamiclist, 'list_items'));
83
+ }
84
+ static getField(condition) {
85
+ let separator = ShowCondition.CONTAINS;
86
+ if (condition.indexOf(ShowCondition.CONTAINS) < 0) {
87
+ separator = ShowCondition.CONDITION_EQUALS;
88
+ if (condition.indexOf(ShowCondition.CONDITION_NOT_EQUALS) > -1) {
89
+ separator = ShowCondition.CONDITION_NOT_EQUALS;
90
+ }
91
+ }
92
+ return [condition.split(separator)[0], separator];
93
+ }
94
+ static checkValueEquals(expectedValue, currentValue, conditionSeparaor) {
95
+ if (expectedValue.search('[,]') > -1) { // for multi-select list
96
+ return this.checkMultiSelectListEquals(expectedValue, currentValue, conditionSeparaor);
97
+ }
98
+ else if (expectedValue.endsWith('*') && currentValue && conditionSeparaor !== ShowCondition.CONDITION_NOT_EQUALS) {
99
+ if (typeof currentValue === 'string') {
100
+ return currentValue.startsWith(this.removeStarChar(expectedValue));
101
+ }
102
+ return expectedValue === '*';
103
+ }
104
+ else {
105
+ // changed from '===' to '==' to cover number field conditions
106
+ if (conditionSeparaor === ShowCondition.CONDITION_NOT_EQUALS) {
107
+ return this.checkValueNotEquals(expectedValue, currentValue);
108
+ }
109
+ else {
110
+ return currentValue == expectedValue || this.okIfBothEmpty(expectedValue, currentValue); // tslint:disable-line
111
+ }
112
+ }
113
+ }
114
+ static checkValueNotEquals(expectedValue, currentValue) {
115
+ const formatCurrentValue = currentValue ? currentValue.toString().trim() : '';
116
+ if ('*' === expectedValue && formatCurrentValue !== '') {
117
+ return false;
118
+ }
119
+ const formatExpectedValue = expectedValue ? expectedValue.toString().trim() : '';
120
+ return formatCurrentValue != formatExpectedValue; // tslint:disable-line
121
+ }
122
+ static checkMultiSelectListEquals(expectedValue, currentValue, conditionSeparator) {
123
+ const expectedValues = expectedValue.split(',').sort().toString();
124
+ const values = currentValue ? currentValue.sort().toString() : '';
125
+ if (conditionSeparator === ShowCondition.CONDITION_NOT_EQUALS) {
126
+ return expectedValues !== values;
127
+ }
128
+ else {
129
+ return expectedValues === values;
130
+ }
131
+ }
132
+ static checkValueContains(expectedValue, currentValue) {
133
+ if (expectedValue.search(',') > -1) {
134
+ const expectedValues = expectedValue.split(',').sort();
135
+ const values = currentValue ? currentValue.sort().toString() : '';
136
+ return expectedValues.every(item => values.search(item) >= 0);
137
+ }
138
+ else {
139
+ const values = currentValue && Array.isArray(currentValue) ? currentValue.toString() : '';
140
+ return values.search(expectedValue) >= 0;
141
+ }
142
+ }
143
+ static unquoted(str) {
144
+ const res = str.replace(/^"|"$/g, '');
145
+ return res;
146
+ }
147
+ static findValueForComplexCondition(fields, head, tail, path) {
148
+ if (!fields) {
149
+ return undefined;
150
+ }
151
+ if (tail.length === 0) {
152
+ return this.getValue(fields, head);
153
+ }
154
+ else {
155
+ if (FieldsUtils.isArray(fields[head])) {
156
+ return this.findValueForComplexConditionInArray(fields, head, tail, path);
157
+ }
158
+ else {
159
+ return this.findValueForComplexConditionForPathIfAny(fields, head, tail, path);
160
+ }
161
+ }
162
+ }
163
+ static findValueForComplexConditionForPathIfAny(fields, head, tail, path) {
164
+ if (path) {
165
+ const [_, ...pathTail] = path.split(/[_]+/g);
166
+ return this.findValueForComplexCondition(fields[head], tail[0], tail.slice(1), pathTail.join('_'));
167
+ }
168
+ else {
169
+ return this.findValueForComplexCondition(fields[head], tail[0], tail.slice(1), path);
170
+ }
171
+ }
172
+ static findValueForComplexConditionInArray(fields, head, tail, path) {
173
+ // use the path to resolve which array element we refer to
174
+ if (path.startsWith(head)) {
175
+ const [_, ...pathTail] = path.split(/[_]+/g);
176
+ if (pathTail.length > 0) {
177
+ try {
178
+ const arrayIndex = Number.parseInt(pathTail[0], 10);
179
+ const [__, ...dropNumberPath] = pathTail;
180
+ return (fields[head][arrayIndex] !== undefined) ? this.findValueForComplexCondition(fields[head][arrayIndex]['value'], tail[0], tail.slice(1), dropNumberPath.join('_')) : null;
181
+ }
182
+ catch (e) {
183
+ console.error('Error while parsing number', pathTail[0], e);
184
+ }
185
+ }
186
+ }
187
+ else {
188
+ console.error('Path in formArray should start with ', head, ', full path: ', path);
189
+ }
190
+ }
191
+ static removeStarChar(str) {
192
+ if (str && str.indexOf('*') > -1) {
193
+ return str.substring(0, str.indexOf('*'));
194
+ }
195
+ return str;
196
+ }
197
+ static okIfBothEmpty(right, value) {
198
+ return value === null && (right === '');
199
+ }
200
+ }
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLXBhcnNlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9kaXJlY3RpdmVzL2NvbmRpdGlvbmFsLXNob3cvc2VydmljZXMvY29uZGl0aW9uLXBhcnNlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxNQUFNLE1BQU0sWUFBWSxDQUFDO0FBQ3JDLE9BQU8sR0FBRyxNQUFNLGlCQUFpQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFckYsTUFBTSxPQUFPLGVBQWU7SUFFMUI7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBaUI7UUFDbkMsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUFFLE9BQU8sSUFBSSxDQUFBO1NBQUU7UUFBQSxDQUFDO1FBQ2hDLFNBQVMsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUN4RCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFXLEVBQUUsVUFBaUIsRUFBRSxJQUFhO1FBQ2xFLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFBRSxPQUFPLElBQUksQ0FBQTtTQUFFO1FBQUEsQ0FBQztRQUM1RCxNQUFNLG9CQUFvQixHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRTNDLE1BQU0sTUFBTSxHQUFZLFVBQVUsQ0FBQyxN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QUssQ0FBQyxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztpQkFDN0Y7Z0JBQUMsT0FBTyxDQUFDLEVBQUU7b0JBQ1YsT0FBTyxDQUFDLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQzdEO2FBQ0Y7U0FDRjthQUFNO1lBQ0wsT0FBTyxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsRUFBRSxJQUFJLEVBQUUsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ3BGO0lBQ0gsQ0FBQztJQUVPLE1BQU0sQ0FBQyxjQUFjLENBQUMsR0FBVztRQUN2QyxJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ2hDLE9BQU8sR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU8sTUFBTSxDQUFDLGFBQWEsQ0FBQyxLQUFhLEVBQUUsS0FBVTtRQUNwRCxPQUFPLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDMUMsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgX3Njb3JlIGZyb20gJ3VuZGVyc2NvcmUnO1xuaW1wb3J0IHBlZyBmcm9tICcuL2NvbmRpdGlvbi5wZWcnO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnV0aWxzJztcbmltcG9ydCB7IFNob3dDb25kaXRpb24gfSBmcm9tICcuLi8uLi9jb25kaXRpb25hbC1zaG93L2RvbWFpbi9jb25kaXRpb25hbC1zaG93Lm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIENvbmRpdGlvblBhcnNlciB7XG5cbiAgLyoqXG4gICAqIFBhcnNlIHRoZSByYXcgZm9ybXVsYSBhbmQgb3V0cHV0IHN0cnVjdHVyZWQgY29uZGl0aW9uIGRhdGFcbiAgICogdGhhdCBjYW4gYmUgdXNlZCBpbiBldmFsdWF0aW5nIHNob3cvaGlkZSBsb2dpY1xuICAgKiBAcGFyYW0gY29uZGl0aW9uIHJhdyBmb3JtdWxhIGUuZy4gVGV4dEZpZWxkID0gXCJIZWxsb1wiXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhcnNlKGNvbmRpdGlvbjogc3RyaW5nKTogYW55IHtcbiAgICBpZiAoIWNvbmRpdGlvbikgeyByZXR1cm4gbnVsbCB9O1xuICAgIGNvbmRpdGlvbiA9IGNvbmRpdGlvbi5yZXBsYWNlKC9DT05UQUlOUy9nLCAnIENPTlRBSU5TJyk7XG4gICAgcmV0dXJuIHBlZy5wYXJzZShjb25kaXRpb24udHJpbSgpLCB7fSk7XG4gIH1cblxuICAvKipcbiAgICogRXZhbHVhdGUgdGhlIGN1cnJlbnQgZmllbGRzIGFnYWluc3QgdGhlIGNvbmRpdGlvbnNcbiAgICogQHBhcmFtIGZpZWxkcyB0aGUgY3VycmVudCBwYWdlIGZpZWxkcyBhbmQgdGhlaXIgdmFsdWVcbiAgICogQHBhcmFtIGNvbmRpdGlvbnMgVGhlIFBlZ0pTIGZvcm11bGEgb3V0cHV0XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGV2YWx1YXRlKGZpZWxkczogYW55LCBjb25kaXRpb25zOiBhbnlbXSwgcGF0aD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghY29uZGl0aW9ucyB8fCBjb25kaXRpb25zLmxlbmd0aCA9PT0gMCkgeyByZXR1cm4gdHJ1ZSB9O1xuICAgIGNvbnN0IHZhbGlkSm9pbkNvbXBhcmF0b3JzID0gWydBTkQnLCAnT1InXTtcblxuICAgIGNvbnN0IHJlc3VsdDogYm9vbGVhbiA9IGNvbmRpdGlvbnMucmVkdWNlKChhY2N1bXVsYXRvcjogYm9vbGVhbiwgY29uZGl0aW9uLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBpc0pvaW5Db21wYXJhdG9yID0gKGNvbXBhcmF0b3I6IHN0cmluZyk6IGJvb2xlYW4gPT5cbiAgICAgICAgKHR5cGVvZiBjb21wYXJhdG9yID09PSAnc3RyaW5nJyAmJiB2YWxpZEpvaW5Db21wYXJhdG9ycy5pbmRleE9mKGNvbXBhcmF0b3IpICE9PSAtMSk7XG5cbiAgICAgIGlmIChpc0pvaW5Db21wYXJhdG9yKGNvbmRpdGlvbikpIHsgcmV0dXJuIGFjY3VtdWxhdG9yIH07XG5cbiAgICAgIGxldCBjdXJyZW50Q29uZGl0aW9uUmVzdWx0ID0gdHJ1ZTtcblxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoY29uZGl0aW9uKSkge1xuICAgICAgICBjdXJyZW50Q29uZGl0aW9uUmVzdWx0ID0gdGhpcy5ldmFsdWF0ZShmaWVsZHMsIGNvbmRpdGlvbik7XG5cbiAgICAgICAgaWYgKGlzSm9pbkNvbXBhcmF0b3IoY29uZGl0aW9uc1tpbmRleCAtIDFdKSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLmV2YWx1YXRlSm9pbihhY2N1bXVsYXRvciwgY29uZGl0aW9uc1tpbmRleCAtIDFdLCBjdXJyZW50Q29uZGl0aW9uUmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoY29uZGl0aW9uLmNvbXBhcmF0b3IpIHtcbiAgICAgICAgY29uc3QgZm9ybXVsYSA9IGNvbmRpdGlvbi5maWVsZFJlZmVyZW5jZSArIGNvbmRpdGlvbi5jb21wYXJhdG9yICsgY29uZGl0aW9uLnZhbHVlO1xuICAgICAgICBjdXJyZW50Q29uZGl0aW9uUmVzdWx0ID0gdGhpcy5tYXRjaEVxdWFsaXR5Q29uZGl0aW9uKGZpZWxkcywgZm9ybXVsYSwgcGF0aCk7XG4gICAgICB9XG5cbiAgICAgIGlmIChpc0pvaW5Db21wYXJhdG9yKGNvbmRpdGlvbnNbaW5kZXggLSAxXSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXZhbHVhdGVKb2luKGFjY3VtdWxhdG9yLCBjb25kaXRpb25zW2luZGV4IC0gMV0sIGN1cnJlbnRDb25kaXRpb25SZXN1bHQpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gY3VycmVudENvbmRpdGlvblJlc3VsdDtcbiAgICB9LCB0cnVlKTtcblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBldmFsdWF0ZUpvaW4obGVmdFJlc3VsdDogYm9vbGVhbiwgY29tcGFyYXRvciwgcmlnaHRSZXN1bHQ6IGJvb2xlYW4pOiBib29sZWFuIHtcbiAgICBzd2l0Y2ggKGNvbXBhcmF0b3IpIHtcbiAgICAgIGNhc2UgJ09SJzogcmV0dXJuIGxlZnRSZXN1bHQgfHwgcmlnaHRSZXN1bHQ7XG4gICAgICBjYXNlICdBTkQnOiByZXR1cm4gbGVmdFJlc3VsdCAmJiByaWdodFJlc3VsdDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBtYXRjaEVxdWFsaXR5Q29uZGl0aW9uKGZpZWxkczogb2JqZWN0LCBjb25kaXRpb246IHN0cmluZywgcGF0aD86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IFtmaWVsZCwgY29uZGl0aW9uU2VwYXJhdG9yXSA9IHRoaXMuZ2V0RmllbGQoY29uZGl0aW9uKTtcbiAgICBjb25zdCBbaGVhZCwgLi4udGFpbF0gPSBmaWVsZC5zcGxpdCgnLicpO1xuICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9IHRoaXMuZmluZFZhbHVlRm9yQ29tcGxleENvbmRpdGlvbihmaWVsZHMsIGhlYWQsIHRhaWwsIHBhdGgpO1xuICAgIGNvbnN0IGV4cGVjdGVkVmFsdWUgPSB0aGlzLnVucXVvdGVkKGNvbmRpdGlvbi5zcGxpdChjb25kaXRpb25TZXBhcmF0b3IpWzFdKTtcbiAgICBpZiAoY29uZGl0aW9uU2VwYXJhdG9yID09PSBTaG93Q29uZGl0aW9uLkNPTlRBSU5TKSB7XG4gICAgICByZXR1cm4gdGhpcy5jaGVja1ZhbHVlQ29udGFpbnMoZXhwZWN0ZWRWYWx1ZSwgY3VycmVudFZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tWYWx1ZUVxdWFscyhleHBlY3RlZFZhbHVlLCBjdXJyZW50VmFsdWUsIGNvbmRpdGlvblNlcGFyYXRvcik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0VmFsdWUoZmllbGRzOiBvYmplY3QsIGhlYWQ6IHN0cmluZyk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNEeW5hbWljTGlzdChmaWVsZHNbaGVhZF0pKSB7XG4gICAgICByZXR1cm4gZmllbGRzW2hlYWRdLnZhbHVlLmNvZGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmaWVsZHNbaGVhZF07XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNEeW5hbWljTGlzdChkeW5hbWljbGlzdDogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICFfc2NvcmUuaXNFbXB0eShkeW5hbWljbGlzdCkgJiZcbiAgICAgICAgKF9zY29yZS5oYXMoZHluYW1pY2xpc3QsICd2YWx1ZScpICYmIF9zY29yZS5oYXMoZHluYW1pY2xpc3QsICdsaXN0X2l0ZW1zJykpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0RmllbGQoY29uZGl0aW9uOiBzdHJpbmcpOiBbc3RyaW5nLCBzdHJpbmc/XSB7XG4gICAgbGV0IHNlcGFyYXRvcjogc3RyaW5nID0gU2hvd0NvbmRpdGlvbi5DT05UQUlOUztcbiAgICBpZiAoY29uZGl0aW9uLmluZGV4T2YoU2hvd0NvbmRpdGlvbi5DT05UQUlOUykgPCAwKSB7XG4gICAgICBzZXBhcmF0b3IgPSBTaG93Q29uZGl0aW9uLkNPTkRJVElPTl9FUVVBTFM7XG4gICAgICBpZiAoY29uZGl0aW9uLmluZGV4T2YoU2hvd0NvbmRpdGlvbi5DT05ESVRJT05fTk9UX0VRVUFMUykgPiAtMSkge1xuICAgICAgICBzZXBhcmF0b3IgPSBTaG93Q29uZGl0aW9uLkNPTkRJVElPTl9OT1RfRVFVQUxTO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gWyBjb25kaXRpb24uc3BsaXQoc2VwYXJhdG9yKVswXSwgc2VwYXJhdG9yIF07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjaGVja1ZhbHVlRXF1YWxzKGV4cGVjdGVkVmFsdWU6IHN0cmluZywgY3VycmVudFZhbHVlOiBhbnksIGNvbmRpdGlvblNlcGFyYW9yOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoZXhwZWN0ZWRWYWx1ZS5zZWFyY2goJ1ssXScpID4gLTEpIHsgLy8gZm9yICBtdWx0aS1zZWxlY3QgbGlzdFxuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tNdWx0aVNlbGVjdExpc3RFcXVhbHMoZXhwZWN0ZWRWYWx1ZSwgY3VycmVudFZhbHVlLCBjb25kaXRpb25TZXBhcmFvcik7XG4gICAgfSBlbHNlIGlmIChleHBlY3RlZFZhbHVlLmVuZHNXaXRoKCcqJykgJiYgY3VycmVudFZhbHVlICYmIGNvbmRpdGlvblNlcGFyYW9yICE9PSBTaG93Q29uZGl0aW9uLkNPTkRJVElPTl9OT1RfRVFVQUxTKSB7XG4gICAgICBpZiAodHlwZW9mIGN1cnJlbnRWYWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRWYWx1ZS5zdGFydHNXaXRoKHRoaXMucmVtb3ZlU3RhckNoYXIoZXhwZWN0ZWRWYWx1ZSkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGV4cGVjdGVkVmFsdWUgPT09ICcqJztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gY2hhbmdlZCBmcm9tICc9PT0nIHRvICc9PScgdG8gY292ZXIgbnVtYmVyIGZpZWxkIGNvbmRpdGlvbnNcbiAgICAgIGlmIChjb25kaXRpb25TZXBhcmFvciA9PT0gU2hvd0NvbmRpdGlvbi5DT05ESVRJT05fTk9UX0VRVUFMUykge1xuICAgICAgICByZXR1cm4gdGhpcy5jaGVja1ZhbHVlTm90RXF1YWxzKGV4cGVjdGVkVmFsdWUsIGN1cnJlbnRWYWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gY3VycmVudFZhbHVlID09IGV4cGVjdGVkVmFsdWUgfHwgdGhpcy5va0lmQm90aEVtcHR5KGV4cGVjdGVkVmFsdWUsIGN1cnJlbnRWYWx1ZSk7IC8vIHRzbGludDpkaXNhYmxlLWxpbmVcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjaGVja1ZhbHVlTm90RXF1YWxzKGV4cGVjdGVkVmFsdWU6IHN0cmluZywgY3VycmVudFZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICBjb25zdCBmb3JtYXRDdXJyZW50VmFsdWUgPSBjdXJyZW50VmFsdWUgPyBjdXJyZW50VmFsdWUudG9TdHJpbmcoKS50cmltKCkgOiAnJztcbiAgICBpZiAoJyonID09PSBleHBlY3RlZFZhbHVlICYmIGZvcm1hdEN1cnJlbnRWYWx1ZSAhPT0gJycpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgY29uc3QgZm9ybWF0RXhwZWN0ZWRWYWx1ZSA9IGV4cGVjdGVkVmFsdWUgPyBleHBlY3RlZFZhbHVlLnRvU3RyaW5nKCkudHJpbSgpIDogJyc7XG4gICAgcmV0dXJuIGZvcm1hdEN1cnJlbnRWYWx1ZSAhPSBmb3JtYXRFeHBlY3RlZFZhbHVlOyAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjaGVja011bHRpU2VsZWN0TGlzdEVxdWFscyhleHBlY3RlZFZhbHVlOiBzdHJpbmcsIGN1cnJlbnRWYWx1ZTogYW55LCBjb25kaXRpb25TZXBhcmF0b3I6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gZXhwZWN0ZWRWYWx1ZS5zcGxpdCgnLCcpLnNvcnQoKS50b1N0cmluZygpO1xuICAgIGNvbnN0IHZhbHVlcyA9IGN1cnJlbnRWYWx1ZSA/IGN1cnJlbnRWYWx1ZS5zb3J0KCkudG9TdHJpbmcoKSA6ICcnO1xuICAgIGlmIChjb25kaXRpb25TZXBhcmF0b3IgPT09IFNob3dDb25kaXRpb24uQ09ORElUSU9OX05PVF9FUVVBTFMpIHtcbiAgICAgIHJldHVybiBleHBlY3RlZFZhbHVlcyAhPT0gdmFsdWVzO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZXhwZWN0ZWRWYWx1ZXMgPT09IHZhbHVlcztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjaGVja1ZhbHVlQ29udGFpbnMoZXhwZWN0ZWRWYWx1ZTogc3RyaW5nLCBjdXJyZW50VmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmIChleHBlY3RlZFZhbHVlLnNlYXJjaCgnLCcpID4gLTEpIHtcbiAgICAgIGNvbnN0IGV4cGVjdGVkVmFsdWVzID0gZXhwZWN0ZWRWYWx1ZS5zcGxpdCgnLCcpLnNvcnQoKTtcbiAgICAgIGNvbnN0IHZhbHVlcyA9IGN1cnJlbnRWYWx1ZSA/IGN1cnJlbnRWYWx1ZS5zb3J0KCkudG9TdHJpbmcoKSA6ICcnO1xuICAgICAgcmV0dXJuIGV4cGVjdGVkVmFsdWVzLmV2ZXJ5KGl0ZW0gPT4gdmFsdWVzLnNlYXJjaChpdGVtKSA+PSAwKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgdmFsdWVzID0gY3VycmVudFZhbHVlICYmIEFycmF5LmlzQXJyYXkoY3VycmVudFZhbHVlKSA/IGN1cnJlbnRWYWx1ZS50b1N0cmluZygpIDogJyc7XG4gICAgICByZXR1cm4gdmFsdWVzLnNlYXJjaChleHBlY3RlZFZhbHVlKSA+PSAwO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIHVucXVvdGVkKHN0cjogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCByZXMgPSBzdHIucmVwbGFjZSgvXlwifFwiJC9nLCAnJyk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZpbmRWYWx1ZUZvckNvbXBsZXhDb25kaXRpb24oZmllbGRzOiBvYmplY3QsIGhlYWQ6IHN0cmluZywgdGFpbDogc3RyaW5nW10sIHBhdGg/OiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICghZmllbGRzKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICBpZiAodGFpbC5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmdldFZhbHVlKGZpZWxkcywgaGVhZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChGaWVsZHNVdGlscy5pc0FycmF5KGZpZWxkc1toZWFkXSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZFZhbHVlRm9yQ29tcGxleENvbmRpdGlvbkluQXJyYXkoZmllbGRzLCBoZWFkLCB0YWlsLCBwYXRoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbmRWYWx1ZUZvckNvbXBsZXhDb25kaXRpb25Gb3JQYXRoSWZBbnkoZmllbGRzLCBoZWFkLCB0YWlsLCBwYXRoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBmaW5kVmFsdWVGb3JDb21wbGV4Q29uZGl0aW9uRm9yUGF0aElmQW55KGZpZWxkczogb2JqZWN0LCBoZWFkOiBzdHJpbmcsIHRhaWw6IHN0cmluZ1tdLCBwYXRoPzogc3RyaW5nKTogYW55IHtcbiAgICBpZiAocGF0aCkge1xuICAgICAgY29uc3QgW18sIC4uLnBhdGhUYWlsXSA9IHBhdGguc3BsaXQoL1tfXSsvZyk7XG4gICAgICByZXR1cm4gdGhpcy5maW5kVmFsdWVGb3JDb21wbGV4Q29uZGl0aW9uKGZpZWxkc1toZWFkXSwgdGFpbFswXSwgdGFpbC5zbGljZSgxKSwgcGF0aFRhaWwuam9pbignXycpKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZFZhbHVlRm9yQ29tcGxleENvbmRpdGlvbihmaWVsZHNbaGVhZF0sIHRhaWxbMF0sIHRhaWwuc2xpY2UoMSksIHBhdGgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZpbmRWYWx1ZUZvckNvbXBsZXhDb25kaXRpb25JbkFycmF5KGZpZWxkczogb2JqZWN0LCBoZWFkOiBzdHJpbmcsIHRhaWw6IHN0cmluZ1tdLCBwYXRoPzogc3RyaW5nKTogYW55IHtcbiAgLy8gdXNlIHRoZSBwYXRoIHRvIHJlc29sdmUgd2hpY2ggYXJyYXkgZWxlbWVudCB3ZSByZWZlciB0b1xuICAgIGlmIChwYXRoLnN0YXJ0c1dpdGgoaGVhZCkpIHtcbiAgICAgIGNvbnN0IFtfLCAuLi5wYXRoVGFpbF0gPSBwYXRoLnNwbGl0KC9bX10rL2cpO1xuICAgICAgaWYgKHBhdGhUYWlsLmxlbmd0aCA+IDApIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBhcnJheUluZGV4ID0gTnVtYmVyLnBhcnNlSW50KHBhdGhUYWlsWzBdLCAxMCk7XG4gICAgICAgICAgY29uc3QgW19fLCAuLi5kcm9wTnVtYmVyUGF0aF0gPSBwYXRoVGFpbDtcbiAgICAgICAgICByZXR1cm4gKGZpZWxkc1toZWFkXVthcnJheUluZGV4XSAhPT0gdW5kZWZpbmVkKSA/IHRoaXMuZmluZFZhbHVlRm9yQ29tcGxleENvbmRpdGlvbihcbiAgICAgICAgICBmaWVsZHNbaGVhZF1bYXJyYXlJbmRleF1bJ3ZhbHVlJ10sIHRhaWxbMF0sIHRhaWwuc2xpY2UoMSksIGRyb3BOdW1iZXJQYXRoLmpvaW4oJ18nKSkgOiBudWxsO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignRXJyb3Igd2hpbGUgcGFyc2luZyBudW1iZXInLCBwYXRoVGFpbFswXSwgZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcignUGF0aCBpbiBmb3JtQXJyYXkgc2hvdWxkIHN0YXJ0IHdpdGggJywgaGVhZCwgJywgZnVsbCBwYXRoOiAnLCBwYXRoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyByZW1vdmVTdGFyQ2hhcihzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHN0ciAmJiBzdHIuaW5kZXhPZignKicpID4gLTEpIHtcbiAgICAgIHJldHVybiBzdHIuc3Vic3RyaW5nKDAsIHN0ci5pbmRleE9mKCcqJykpO1xuICAgIH1cbiAgICByZXR1cm4gc3RyO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgb2tJZkJvdGhFbXB0eShyaWdodDogc3RyaW5nLCB2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsICYmIChyaWdodCA9PT0gJycpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,103 @@
1
+ import { generate } from 'pegjs';
2
+ const conditionSource = `{
3
+ function flat(arr, depth = 1) {
4
+ var flatten = function (arr, depth = 1) {
5
+ if (depth) return arr;
6
+
7
+ // Otherwise, concatenate into the parent array
8
+ return arr.reduce(function (acc, val) {
9
+ return acc.concat(Array.isArray(val) ? flatten(val, depth - 1) : val);
10
+ }, []);
11
+
12
+ };
13
+
14
+ return flatten(arr, depth - 1);
15
+ }
16
+ }
17
+
18
+ Start
19
+ = Formula
20
+
21
+ Formula
22
+ = EnclosedFormula
23
+ / OpenFormula
24
+
25
+ EnclosedFormula
26
+ = bracket formula:OpenFormula bracket join:(JoinComparator)*
27
+ { return flat([ [formula], join[0] ], 1) }
28
+
29
+ OpenFormula
30
+ = eq:OpenEqualityCheck joins:(JoinComparator)*
31
+ { return flat([ eq, flat(joins) ]) }
32
+
33
+ JoinComparator
34
+ = comp:Comparator eq:OpenEqualityCheck
35
+ { return [comp, eq]; }
36
+ / CompoundJoinComparator
37
+
38
+ CompoundJoinComparator
39
+ = comp:Comparator bracket f:OpenFormula bracket
40
+ { return [comp, f ] }
41
+
42
+ OpenEqualityCheck
43
+ = fr:FieldRef _? op:operator _? val:Value
44
+ { return { fieldReference: fr, comparator: op, value: val } }
45
+
46
+ Comparator
47
+ = _? c:'AND' _?
48
+ { return c; }
49
+ / _? c:'OR' _?
50
+ { return c; }
51
+
52
+ Word
53
+ = l:Letter+
54
+ { return l.join(""); }
55
+
56
+ Letter
57
+ = [a-zA-Z]
58
+
59
+ Value
60
+ = v:quotedValue / v:Word
61
+ { return v.join("") }
62
+ / v:number
63
+ { return parseInt(v.join("")) }
64
+
65
+ FieldRef
66
+ = FieldReference / MetadataFieldReference
67
+
68
+ MetadataFieldReference
69
+ = s1:openSquare fr:FieldReference s2:closeSquare
70
+ { return s1 + fr + s2 }
71
+
72
+ FieldReference
73
+ = characters:[A-Za-z0-9._-]+ { return characters.join(""); }
74
+
75
+ openSquare
76
+ = "["
77
+
78
+ closeSquare
79
+ = "]"
80
+
81
+ number
82
+ = [0-9]+
83
+
84
+ quotedValue
85
+ = '"'val:[A-Za-z0-9.,* _&()/-]*'"'
86
+ { return val.join(""); }
87
+
88
+ bracket
89
+ = (_? "("+ _? / _? ")"+ _? )
90
+
91
+ operator
92
+ = "=" / "!=" / "CONTAINS"
93
+
94
+ ws "Whitespace"
95
+ = [ \t]
96
+
97
+ _ "One or more whitespaces"
98
+ = ws+
99
+
100
+ nl "New line"
101
+ = "\\n"`;
102
+ export default generate(conditionSource);
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZGl0aW9uLnBlZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvZGlyZWN0aXZlcy9jb25kaXRpb25hbC1zaG93L3NlcnZpY2VzL2NvbmRpdGlvbi5wZWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUVqQyxNQUFNLGVBQWUsR0FDbkI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztXQW1HUyxDQUFDO0FBRVosZUFBZSxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZW5lcmF0ZSB9IGZyb20gJ3BlZ2pzJztcblxuY29uc3QgY29uZGl0aW9uU291cmNlID1cbiAgYHtcbiAgICBmdW5jdGlvbiBmbGF0KGFyciwgZGVwdGggPSAxKSB7XG4gICAgICB2YXIgZmxhdHRlbiA9IGZ1bmN0aW9uIChhcnIsIGRlcHRoID0gMSkge1xuICAgICAgICBpZiAoZGVwdGgpIHJldHVybiBhcnI7XG5cbiAgICAgIC8vIE90aGVyd2lzZSwgY29uY2F0ZW5hdGUgaW50byB0aGUgcGFyZW50IGFycmF5XG4gICAgICByZXR1cm4gYXJyLnJlZHVjZShmdW5jdGlvbiAoYWNjLCB2YWwpIHtcbiAgICAgICAgcmV0dXJuIGFjYy5jb25jYXQoQXJyYXkuaXNBcnJheSh2YWwpID8gZmxhdHRlbih2YWwsIGRlcHRoIC0gMSkgOiB2YWwpO1xuICAgICAgfSwgW10pO1xuXG4gICAgICB9O1xuXG4gICAgcmV0dXJuIGZsYXR0ZW4oYXJyLCBkZXB0aCAtIDEpO1xuICAgIH1cbiAgfVxuXG4gIFN0YXJ0XG4gICAgPSBGb3JtdWxhXG5cbiAgRm9ybXVsYVxuICAgID0gRW5jbG9zZWRGb3JtdWxhXG4gICAgLyBPcGVuRm9ybXVsYVxuXG4gIEVuY2xvc2VkRm9ybXVsYVxuICAgID0gYnJhY2tldCBmb3JtdWxhOk9wZW5Gb3JtdWxhIGJyYWNrZXQgam9pbjooSm9pbkNvbXBhcmF0b3IpKlxuICAgICAgeyByZXR1cm4gZmxhdChbIFtmb3JtdWxhXSwgam9pblswXSBdLCAxKSB9XG5cbiAgT3BlbkZvcm11bGFcbiAgICA9IGVxOk9wZW5FcXVhbGl0eUNoZWNrIGpvaW5zOihKb2luQ29tcGFyYXRvcikqXG4gICAgICB7IHJldHVybiBmbGF0KFsgZXEsIGZsYXQoam9pbnMpIF0pIH1cblxuICBKb2luQ29tcGFyYXRvclxuICAgID0gY29tcDpDb21wYXJhdG9yIGVxOk9wZW5FcXVhbGl0eUNoZWNrXG4gICAgICB7IHJldHVybiBbY29tcCwgZXFdOyB9XG4gICAgICAvIENvbXBvdW5kSm9pbkNvbXBhcmF0b3JcblxuICBDb21wb3VuZEpvaW5Db21wYXJhdG9yXG4gICAgPSBjb21wOkNvbXBhcmF0b3IgYnJhY2tldCBmOk9wZW5Gb3JtdWxhIGJyYWNrZXRcbiAgICAgIHsgcmV0dXJuIFtjb21wLCBmIF0gfVxuXG4gIE9wZW5FcXVhbGl0eUNoZWNrXG4gICAgPSBmcjpGaWVsZFJlZiBfPyBvcDpvcGVyYXRvciBfPyB2YWw6VmFsdWVcbiAgICAgeyByZXR1cm4geyBmaWVsZFJlZmVyZW5jZTogZnIsIGNvbXBhcmF0b3I6IG9wLCB2YWx1ZTogdmFsIH0gfVxuXG4gIENvbXBhcmF0b3JcbiAgID0gXz8gYzonQU5EJyBfP1xuICAgeyByZXR1cm4gYzsgfVxuICAgLyBfPyBjOidPUicgXz9cbiAgIHsgcmV0dXJuIGM7IH1cblxuICBXb3JkXG4gICA9IGw6TGV0dGVyK1xuICAgeyByZXR1cm4gbC5qb2luKFwiXCIpOyB9XG5cbiAgTGV0dGVyXG4gICA9IFthLXpBLVpdXG5cbiAgVmFsdWVcbiAgID0gdjpxdW90ZWRWYWx1ZSAvIHY6V29yZFxuICAgeyByZXR1cm4gdi5qb2luKFwiXCIpIH1cbiAgIC8gdjpudW1iZXJcbiAgIHsgcmV0dXJuIHBhcnNlSW50KHYuam9pbihcIlwiKSkgfVxuXG4gIEZpZWxkUmVmXG4gICA9IEZpZWxkUmVmZXJlbmNlIC8gTWV0YWRhdGFGaWVsZFJlZmVyZW5jZVxuXG4gIE1ldGFkYXRhRmllbGRSZWZlcmVuY2VcbiAgICA9IHMxOm9wZW5TcXVhcmUgZnI6RmllbGRSZWZlcmVuY2UgczI6Y2xvc2VTcXVhcmVcbiAgICB7IHJldHVybiBzMSArIGZyICsgczIgfVxuXG4gIEZpZWxkUmVmZXJlbmNlXG4gICAgPSBjaGFyYWN0ZXJzOltBLVphLXowLTkuXy1dKyB7IHJldHVybiBjaGFyYWN0ZXJzLmpvaW4oXCJcIik7IH1cblxuICBvcGVuU3F1YXJlXG4gICA9IFwiW1wiXG5cbiAgY2xvc2VTcXVhcmVcbiAgID0gXCJdXCJcblxuICBudW1iZXJcbiAgID0gWzAtOV0rXG5cbiAgcXVvdGVkVmFsdWVcbiAgID0gJ1wiJ3ZhbDpbQS1aYS16MC05LiwqIF8mKCkvLV0qJ1wiJ1xuICAgeyByZXR1cm4gdmFsLmpvaW4oXCJcIik7IH1cblxuICBicmFja2V0XG4gICA9IChfPyBcIihcIisgXz8gLyBfPyBcIilcIisgXz8gKVxuXG4gIG9wZXJhdG9yXG4gICA9IFwiPVwiIC8gXCIhPVwiIC8gXCJDT05UQUlOU1wiXG5cbiAgd3MgXCJXaGl0ZXNwYWNlXCJcbiAgID0gWyBcXHRdXG5cbiAgXyBcIk9uZSBvciBtb3JlIHdoaXRlc3BhY2VzXCJcbiAgID0gd3MrXG5cbiAgbmwgXCJOZXcgbGluZVwiXG4gICA9IFwiXFxcXG5cImA7XG5cbmV4cG9ydCBkZWZhdWx0IGdlbmVyYXRlKGNvbmRpdGlvblNvdXJjZSk7XG4iXX0=
@@ -6,4 +6,4 @@ export class HmctsServiceDetail {
6
6
  this.service_id = 0;
7
7
  }
8
8
  }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1jdHMtc2VydmljZS1kZXRhaWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2RvbWFpbi9jYXNlLWZsYWcvaG1jdHMtc2VydmljZS1kZXRhaWwubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQS9CO1FBU0UsZUFBVSxHQUFHLENBQUMsQ0FBQztJQUdqQixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERUTyB0byBwcm92aWRlIHR5cGluZyBvZiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgUmVmZXJlbmNlIERhdGEgTG9jYXRpb24gQVBJIGZvciBITUNUUyBzZXJ2aWNlIGRldGFpbHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBIbWN0c1NlcnZpY2VEZXRhaWwge1xuICBidXNpbmVzc19hcmVhOiBzdHJpbmc7XG4gIGNjZF9jYXNlX3R5cGVzOiBzdHJpbmdbXTtcbiAgY2NkX3NlcnZpY2VfbmFtZTogc3RyaW5nO1xuICBqdXJpc2RpY3Rpb246IHN0cmluZztcbiAgbGFzdF91cGRhdGU/OiBzdHJpbmc7XG4gIG9yZ191bml0OiBzdHJpbmc7XG4gIHNlcnZpY2VfY29kZT86IHN0cmluZztcbiAgc2VydmljZV9kZXNjcmlwdGlvbj86IHN0cmluZztcbiAgc2VydmljZV9pZCA9IDA7XG4gIHNlcnZpY2Vfc2hvcnRfZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHN1Yl9idXNpbmVzc19hcmVhOiBzdHJpbmc7XG59XG4iXX0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG1jdHMtc2VydmljZS1kZXRhaWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2RvbWFpbi9jYXNlLWZsYWcvaG1jdHMtc2VydmljZS1kZXRhaWwubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxNQUFNLE9BQU8sa0JBQWtCO0lBQS9CO1FBU1MsZUFBVSxHQUFHLENBQUMsQ0FBQztJQUd4QixDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIERUTyB0byBwcm92aWRlIHR5cGluZyBvZiB0aGUgcmVzcG9uc2UgZnJvbSB0aGUgUmVmZXJlbmNlIERhdGEgTG9jYXRpb24gQVBJIGZvciBITUNUUyBzZXJ2aWNlIGRldGFpbHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBIbWN0c1NlcnZpY2VEZXRhaWwge1xuICBwdWJsaWMgYnVzaW5lc3NfYXJlYTogc3RyaW5nO1xuICBwdWJsaWMgY2NkX2Nhc2VfdHlwZXM6IHN0cmluZ1tdO1xuICBwdWJsaWMgY2NkX3NlcnZpY2VfbmFtZTogc3RyaW5nO1xuICBwdWJsaWMganVyaXNkaWN0aW9uOiBzdHJpbmc7XG4gIHB1YmxpYyBsYXN0X3VwZGF0ZT86IHN0cmluZztcbiAgcHVibGljIG9yZ191bml0OiBzdHJpbmc7XG4gIHB1YmxpYyBzZXJ2aWNlX2NvZGU/OiBzdHJpbmc7XG4gIHB1YmxpYyBzZXJ2aWNlX2Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwdWJsaWMgc2VydmljZV9pZCA9IDA7XG4gIHB1YmxpYyBzZXJ2aWNlX3Nob3J0X2Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwdWJsaWMgc3ViX2J1c2luZXNzX2FyZWE6IHN0cmluZztcbn1cbiJdfQ==
@@ -9,9 +9,12 @@ export class CaseField {
9
9
  this._list_items = [];
10
10
  }
11
11
  get value() {
12
- if (this.isDynamic()) {
12
+ if (this.field_type && (this.field_type.type === 'DynamicList' || this.field_type.type === 'DynamicRadioList')) {
13
13
  return this._value && this._value.value ? this._value.value.code : this._value;
14
14
  }
15
+ else if (this.field_type && this.field_type.type === 'DynamicMultiSelectList') {
16
+ return this._value && this._value.value ? this._value.value : this._value;
17
+ }
15
18
  else {
16
19
  return this._value;
17
20
  }
@@ -85,7 +88,7 @@ export class CaseField {
85
88
  return this.field_type && this.field_type.type === 'Complex';
86
89
  }
87
90
  isDynamic() {
88
- const dynamicFieldTypes = ['DynamicList', 'DynamicRadioList'];
91
+ const dynamicFieldTypes = ['DynamicList', 'DynamicRadioList', 'DynamicMultiSelectList'];
89
92
  if (!this.field_type) {
90
93
  return false;
91
94
  }
@@ -191,4 +194,4 @@ __decorate([
191
194
  __metadata("design:paramtypes", []),
192
195
  __metadata("design:returntype", Boolean)
193
196
  ], CaseField.prototype, "isCaseLink", null);
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWVsZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFJOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRS9DLFdBQVc7QUFDWCxNQUFNLE9BQU8sU0FBUztJQUF0QjtRQTJCUyxnQkFBVyxHQUFRLEVBQUUsQ0FBQztJQWdJL0IsQ0FBQztJQTdIQyxJQUFXLEtBQUs7UUFDZCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNoRjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVELElBQVcsS0FBSyxDQUFDLEtBQVU7UUFDekIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxLQUFLLElBQUksS0FBSyxZQUFZLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO2dCQUN4RCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7YUFDckM7aUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxX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QU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvQjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNGO0FBbkpDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQzs4QkFDSCxTQUFTOzZDQUFDO0FBZ0I3QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7OEJBQ1AsZUFBZTs4Q0FBQztBQU1yQztJQURDLE1BQU0sRUFBRTs7O3NDQU9SO0FBa0JEO0lBREMsTUFBTSxFQUFFOzs7MkNBT1I7QUFPRDtJQURDLE1BQU0sRUFBRTs7O29EQVNSO0FBR0Q7SUFEQyxNQUFNLEVBQUU7OztzREFTUjtBQUdEO0lBREMsTUFBTSxFQUFFOzs7O2lEQUdSO0FBR0Q7SUFEQyxNQUFNLEVBQUU7Ozs7K0NBR1I7QUFHRDtJQURDLE1BQU0sRUFBRTs7OzsyQ0FJUjtBQUdEO0lBREMsTUFBTSxFQUFFOzs7OzJDQUlSO0FBR0Q7SUFEQyxNQUFNLEVBQUU7Ozs7NENBSVI7QUFHRDtJQURDLE1BQU0sRUFBRTs7Ozs2Q0FHUjtBQUdEO0lBREMsTUFBTSxFQUFFOzs7OzBDQUdSO0FBR0Q7SUFEQyxNQUFNLEVBQUU7Ozs7MENBU1I7QUFHRDtJQURDLE1BQU0sRUFBRTs7OzsyQ0FLUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4cG9zZSwgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCAqIGFzIF8gZnJvbSAndW5kZXJzY29yZSc7XG5pbXBvcnQgeyBXaXphcmRQYWdlRmllbGQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2RvbWFpbi93aXphcmQtcGFnZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBPcmRlcmFibGUgfSBmcm9tICcuLi9vcmRlcic7XG5pbXBvcnQgeyBBY2Nlc3NDb250cm9sTGlzdCB9IGZyb20gJy4vYWNjZXNzLWNvbnRyb2wtbGlzdC5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi9maWVsZC10eXBlLWVudW0ubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi9maWVsZC10eXBlLm1vZGVsJztcblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBDYXNlRmllbGQgaW1wbGVtZW50cyBPcmRlcmFibGUge1xuICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgcHVibGljIGhpZGRlbjogYm9vbGVhbjtcbiAgcHVibGljIGhpZGRlbkNhbm5vdENoYW5nZTogYm9vbGVhbjtcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBvcmRlcj86IG51bWJlcjtcblxuICBAVHlwZSgoKSA9PiBGaWVsZFR5cGUpXG4gIHB1YmxpYyBmaWVsZF90eXBlOiBGaWVsZFR5cGU7XG5cbiAgcHVibGljIGhpbnRfdGV4dD86IHN0cmluZztcbiAgcHVibGljIHNlY3VyaXR5X2xhYmVsPzogc3RyaW5nO1xuICBwdWJsaWMgZGlzcGxheV9jb250ZXh0OiBzdHJpbmc7XG4gIHB1YmxpYyBkaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyPzogc3RyaW5nO1xuICBwdWJsaWMgbW9udGhfZm9ybWF0Pzogc3RyaW5nO1xuICBwdWJsaWMgc2hvd19jb25kaXRpb24/OiBzdHJpbmc7XG4gIHB1YmxpYyBzaG93X3N1bW1hcnlfY2hhbmdlX29wdGlvbj86IGJvb2xlYW47XG4gIHB1YmxpYyBzaG93X3N1bW1hcnlfY29udGVudF9vcHRpb24/OiBudW1iZXI7XG4gIHB1YmxpYyBhY2xzPzogQWNjZXNzQ29udHJvbExpc3RbXTtcbiAgcHVibGljIG1ldGFkYXRhPzogYm9vbGVhbjtcbiAgcHVibGljIGZvcm1hdHRlZF92YWx1ZT86IGFueTtcbiAgcHVibGljIHJldGFpbl9oaWRkZW5fdmFsdWU6IGJvb2xlYW47XG5cbiAgQFR5cGUoKCkgPT4gV2l6YXJkUGFnZUZpZWxkKVxuICBwdWJsaWMgd2l6YXJkUHJvcHM/OiBXaXphcmRQYWdlRmllbGQ7XG5cbiAgcHVibGljIF92YWx1ZTogYW55O1xuICBwdWJsaWMgX2xpc3RfaXRlbXM6IGFueSA9IFtdO1xuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNEeW5hbWljKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZSAmJiB0aGlzLl92YWx1ZS52YWx1ZSA/IHRoaXMuX3ZhbHVlLnZhbHVlLmNvZGUgOiB0aGlzLl92YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLmlzRHluYW1pYygpKSB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgdmFsdWUubGlzdF9pdGVtcykge1xuICAgICAgICB0aGlzLl9saXN0X2l0ZW1zID0gdmFsdWUubGlzdF9pdGVtcztcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2xpc3RfaXRlbXMgfHwgdGhpcy5fbGlzdF9pdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgLy8gRXh0cmFjdCB0aGUgbGlzdCBpdGVtcyBmcm9tIHRoZSBjdXJyZW50IHZhbHVlIGlmIHRoYXQncyB0aGUgb25seSBwbGFjZSB0aGV5IGV4aXN0LlxuICAgICAgICB0aGlzLl9saXN0X2l0ZW1zID0gdGhpcy5saXN0X2l0ZW1zO1xuICAgICAgICBpZiAoIXZhbHVlIHx8ICF2YWx1ZS52YWx1ZSkge1xuICAgICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBnZXQgbGlzdF9pdGVtcygpOiBhbnkge1xuICAgIGlmICh0aGlzLmlzRHluYW1pYygpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWUgJiYgdGhpcy5fdmFsdWUubGlzdF9pdGVtcyA/IHRoaXMuX3ZhbHVlLmxpc3RfaXRlbXMgOiB0aGlzLl9saXN0X2l0ZW1zO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5maWVsZF90eXBlLmZpeGVkX2xpc3RfaXRlbXM7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCBsaXN0X2l0ZW1zKGl0ZW1zOiBhbnkpIHtcbiAgICB0aGlzLl9saXN0X2l0ZW1zID0gaXRlbXM7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGdldCBkYXRlVGltZUVudHJ5Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNDb21wbGV4RGlzcGxheSgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdEJyYWNrZXRWYWx1ZSh0aGlzLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIsICcjREFURVRJTUVFTlRSWScpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgZ2V0IGRhdGVUaW1lRGlzcGxheUZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzQ29tcGxleEVudHJ5KCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5leHRyYWN0QnJhY2tldFZhbHVlKHRoaXMuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciwgJyNEQVRFVElNRURJU1BMQVknKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzQ29tcGxleERpc3BsYXkoKSB7XG4gICAgcmV0dXJuICh0aGlzLmlzQ29tcGxleCgpIHx8IHRoaXMuaXNDb2xsZWN0aW9uKCkpICYmIHRoaXMuaXNSZWFkb25seSgpO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBpc0NvbXBsZXhFbnRyeSgpIHtcbiAgICByZXR1cm4gKHRoaXMuaXNDb21wbGV4KCkgfHwgdGhpcy5pc0NvbGxlY3Rpb24oKSkgJiYgKHRoaXMuaXNPcHRpb25hbCgpIHx8IHRoaXMuaXNNYW5kYXRvcnkoKSk7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzUmVhZG9ubHkoKSB7XG4gICAgcmV0dXJuICFfLmlzRW1wdHkodGhpcy5kaXNwbGF5X2NvbnRleHQpXG4gICAgICAmJiB0aGlzLmRpc3BsYXlfY29udGV4dC50b1VwcGVyQ2FzZSgpID09PSAnUkVBRE9OTFknO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBpc09wdGlvbmFsKCkge1xuICAgIHJldHVybiAhXy5pc0VtcHR5KHRoaXMuZGlzcGxheV9jb250ZXh0KVxuICAgICAgJiYgdGhpcy5kaXNwbGF5X2NvbnRleHQudG9VcHBlckNhc2UoKSA9PT0gJ09QVElPTkFMJztcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNNYW5kYXRvcnkoKSB7XG4gICAgcmV0dXJuICFfLmlzRW1wdHkodGhpcy5kaXNwbGF5X2NvbnRleHQpXG4gICAgICAmJiB0aGlzLmRpc3BsYXlfY29udGV4dC50b1VwcGVyQ2FzZSgpID09PSAnTUFOREFUT1JZJztcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNDb2xsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkX3R5cGUgJiYgdGhpcy5maWVsZF90eXBlLnR5cGUgPT09ICdDb2xsZWN0aW9uJztcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNDb21wbGV4KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkX3R5cGUgJiYgdGhpcy5maWVsZF90eXBlLnR5cGUgPT09ICdDb21wbGV4JztcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNEeW5hbWljKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGR5bmFtaWNGaWVsZFR5cGVzOiBGaWVsZFR5cGVFbnVtW10gPSBbJ0R5bmFtaWNMaXN0JywgJ0R5bmFtaWNSYWRpb0xpc3QnXTtcblxuICAgIGlmICghdGhpcy5maWVsZF90eXBlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGR5bmFtaWNGaWVsZFR5cGVzLnNvbWUodCA9PiB0ID09PSB0aGlzLmZpZWxkX3R5cGUudHlwZSk7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzQ2FzZUxpbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNDb21wbGV4KClcbiAgICAgICYmIHRoaXMuZmllbGRfdHlwZS5pZCA9PT0gJ0Nhc2VMaW5rJ1xuICAgICAgJiYgdGhpcy5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLnNvbWUoY2YgPT4gY2YuaWQgPT09ICdDYXNlUmVmZXJlbmNlJyk7XG4gIH1cbiAgcHVibGljIGV4dHJhY3RCcmFja2V0VmFsdWUoZm10OiBzdHJpbmcsIHBhcmFtTmFtZTogc3RyaW5nLCBsZWZ0QnJhY2tldD0gJygnLCByaWdodEJyYWNrZXQ9ICcpJyApOiBzdHJpbmcge1xuICAgICAgZm10ID0gZm10LnNwbGl0KCcsJylcbiAgICAgICAgLmZpbmQoYSA9PiBhLnRyaW0oKS5zdGFydHNXaXRoKHBhcmFtTmFtZSkpO1xuICAgICAgaWYgKGZtdCkge1xuICAgICAgICBjb25zdCBzID0gZm10LmluZGV4T2YobGVmdEJyYWNrZXQpICsgMTtcbiAgICAgICAgY29uc3QgZSA9IGZtdC5pbmRleE9mKHJpZ2h0QnJhY2tldCwgcyk7XG4gICAgICAgIGlmIChlID4gcyAmJiBzID49IDApIHtcbiAgICAgICAgICByZXR1cm4gZm10LnN1YnN0cihzLCAoZSAtIHMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWVsZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFJOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRS9DLFdBQVc7QUFDWCxNQUFNLE9BQU8sU0FBUztJQUF0QjtRQTJCUyxnQkFBVyxHQUFRLEVBQUUsQ0FBQztJQWtJL0IsQ0FBQztJQS9IQyxJQUFXLEtBQUs7UUFDZCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxhQUFhLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsRUFBRTtZQUM5RyxPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNoRjthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyx3QkFBd0IsRUFBRTtZQUMvRSxPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FB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O0lBREMsTUFBTSxFQUFFOzs7OzJDQUtSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhwb3NlLCBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0ICogYXMgXyBmcm9tICd1bmRlcnNjb3JlJztcbmltcG9ydCB7IFdpemFyZFBhZ2VGaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY2FzZS1lZGl0b3IvZG9tYWluL3dpemFyZC1wYWdlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IE9yZGVyYWJsZSB9IGZyb20gJy4uL29yZGVyJztcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xMaXN0IH0gZnJvbSAnLi9hY2Nlc3MtY29udHJvbC1saXN0Lm1vZGVsJztcbmltcG9ydCB7IEZpZWxkVHlwZUVudW0gfSBmcm9tICcuL2ZpZWxkLXR5cGUtZW51bS5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICcuL2ZpZWxkLXR5cGUubW9kZWwnO1xuXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIENhc2VGaWVsZCBpbXBsZW1lbnRzIE9yZGVyYWJsZSB7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgaGlkZGVuOiBib29sZWFuO1xuICBwdWJsaWMgaGlkZGVuQ2Fubm90Q2hhbmdlOiBib29sZWFuO1xuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcbiAgcHVibGljIG9yZGVyPzogbnVtYmVyO1xuXG4gIEBUeXBlKCgpID0+IEZpZWxkVHlwZSlcbiAgcHVibGljIGZpZWxkX3R5cGU6IEZpZWxkVHlwZTtcblxuICBwdWJsaWMgaGludF90ZXh0Pzogc3RyaW5nO1xuICBwdWJsaWMgc2VjdXJpdHlfbGFiZWw/OiBzdHJpbmc7XG4gIHB1YmxpYyBkaXNwbGF5X2NvbnRleHQ6IHN0cmluZztcbiAgcHVibGljIGRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXI/OiBzdHJpbmc7XG4gIHB1YmxpYyBtb250aF9mb3JtYXQ/OiBzdHJpbmc7XG4gIHB1YmxpYyBzaG93X2NvbmRpdGlvbj86IHN0cmluZztcbiAgcHVibGljIHNob3dfc3VtbWFyeV9jaGFuZ2Vfb3B0aW9uPzogYm9vbGVhbjtcbiAgcHVibGljIHNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbj86IG51bWJlcjtcbiAgcHVibGljIGFjbHM/OiBBY2Nlc3NDb250cm9sTGlzdFtdO1xuICBwdWJsaWMgbWV0YWRhdGE/OiBib29sZWFuO1xuICBwdWJsaWMgZm9ybWF0dGVkX3ZhbHVlPzogYW55O1xuICBwdWJsaWMgcmV0YWluX2hpZGRlbl92YWx1ZTogYm9vbGVhbjtcblxuICBAVHlwZSgoKSA9PiBXaXphcmRQYWdlRmllbGQpXG4gIHB1YmxpYyB3aXphcmRQcm9wcz86IFdpemFyZFBhZ2VGaWVsZDtcblxuICBwdWJsaWMgX3ZhbHVlOiBhbnk7XG4gIHB1YmxpYyBfbGlzdF9pdGVtczogYW55ID0gW107XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICBpZiAodGhpcy5maWVsZF90eXBlICYmICh0aGlzLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0R5bmFtaWNMaXN0JyB8fCB0aGlzLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0R5bmFtaWNSYWRpb0xpc3QnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlICYmIHRoaXMuX3ZhbHVlLnZhbHVlID8gdGhpcy5fdmFsdWUudmFsdWUuY29kZSA6IHRoaXMuX3ZhbHVlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZF90eXBlICYmIHRoaXMuZmllbGRfdHlwZS50eXBlID09PSAnRHluYW1pY011bHRpU2VsZWN0TGlzdCcpIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZSAmJiB0aGlzLl92YWx1ZS52YWx1ZSA/IHRoaXMuX3ZhbHVlLnZhbHVlIDogdGhpcy5fdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5pc0R5bmFtaWMoKSkge1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmIHZhbHVlLmxpc3RfaXRlbXMpIHtcbiAgICAgICAgdGhpcy5fbGlzdF9pdGVtcyA9IHZhbHVlLmxpc3RfaXRlbXM7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLl9saXN0X2l0ZW1zIHx8IHRoaXMuX2xpc3RfaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIC8vIEV4dHJhY3QgdGhlIGxpc3QgaXRlbXMgZnJvbSB0aGUgY3VycmVudCB2YWx1ZSBpZiB0aGF0J3MgdGhlIG9ubHkgcGxhY2UgdGhleSBleGlzdC5cbiAgICAgICAgdGhpcy5fbGlzdF9pdGVtcyA9IHRoaXMubGlzdF9pdGVtcztcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCAhdmFsdWUudmFsdWUpIHtcbiAgICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgZ2V0IGxpc3RfaXRlbXMoKTogYW55IHtcbiAgICBpZiAodGhpcy5pc0R5bmFtaWMoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlICYmIHRoaXMuX3ZhbHVlLmxpc3RfaXRlbXMgPyB0aGlzLl92YWx1ZS5saXN0X2l0ZW1zIDogdGhpcy5fbGlzdF9pdGVtcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZmllbGRfdHlwZS5maXhlZF9saXN0X2l0ZW1zO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXQgbGlzdF9pdGVtcyhpdGVtczogYW55KSB7XG4gICAgdGhpcy5fbGlzdF9pdGVtcyA9IGl0ZW1zO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBnZXQgZGF0ZVRpbWVFbnRyeUZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzQ29tcGxleERpc3BsYXkoKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RCcmFja2V0VmFsdWUodGhpcy5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyLCAnI0RBVEVUSU1FRU5UUlknKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGdldCBkYXRlVGltZURpc3BsYXlGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0NvbXBsZXhFbnRyeSgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdEJyYWNrZXRWYWx1ZSh0aGlzLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIsICcjREFURVRJTUVESVNQTEFZJyk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBpc0NvbXBsZXhEaXNwbGF5KCkge1xuICAgIHJldHVybiAodGhpcy5pc0NvbXBsZXgoKSB8fCB0aGlzLmlzQ29sbGVjdGlvbigpKSAmJiB0aGlzLmlzUmVhZG9ubHkoKTtcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNDb21wbGV4RW50cnkoKSB7XG4gICAgcmV0dXJuICh0aGlzLmlzQ29tcGxleCgpIHx8IHRoaXMuaXNDb2xsZWN0aW9uKCkpICYmICh0aGlzLmlzT3B0aW9uYWwoKSB8fCB0aGlzLmlzTWFuZGF0b3J5KCkpO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBpc1JlYWRvbmx5KCkge1xuICAgIHJldHVybiAhXy5pc0VtcHR5KHRoaXMuZGlzcGxheV9jb250ZXh0KVxuICAgICAgJiYgdGhpcy5kaXNwbGF5X2NvbnRleHQudG9VcHBlckNhc2UoKSA9PT0gJ1JFQURPTkxZJztcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNPcHRpb25hbCgpIHtcbiAgICByZXR1cm4gIV8uaXNFbXB0eSh0aGlzLmRpc3BsYXlfY29udGV4dClcbiAgICAgICYmIHRoaXMuZGlzcGxheV9jb250ZXh0LnRvVXBwZXJDYXNlKCkgPT09ICdPUFRJT05BTCc7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzTWFuZGF0b3J5KCkge1xuICAgIHJldHVybiAhXy5pc0VtcHR5KHRoaXMuZGlzcGxheV9jb250ZXh0KVxuICAgICAgJiYgdGhpcy5kaXNwbGF5X2NvbnRleHQudG9VcHBlckNhc2UoKSA9PT0gJ01BTkRBVE9SWSc7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzQ29sbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZF90eXBlICYmIHRoaXMuZmllbGRfdHlwZS50eXBlID09PSAnQ29sbGVjdGlvbic7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzQ29tcGxleCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZF90eXBlICYmIHRoaXMuZmllbGRfdHlwZS50eXBlID09PSAnQ29tcGxleCc7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzRHluYW1pYygpOiBib29sZWFuIHtcbiAgICBjb25zdCBkeW5hbWljRmllbGRUeXBlczogRmllbGRUeXBlRW51bVtdID0gWydEeW5hbWljTGlzdCcsICdEeW5hbWljUmFkaW9MaXN0JywgJ0R5bmFtaWNNdWx0aVNlbGVjdExpc3QnXTtcblxuICAgIGlmICghdGhpcy5maWVsZF90eXBlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGR5bmFtaWNGaWVsZFR5cGVzLnNvbWUodCA9PiB0ID09PSB0aGlzLmZpZWxkX3R5cGUudHlwZSk7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzQ2FzZUxpbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNDb21wbGV4KClcbiAgICAgICYmIHRoaXMuZmllbGRfdHlwZS5pZCA9PT0gJ0Nhc2VMaW5rJ1xuICAgICAgJiYgdGhpcy5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLnNvbWUoY2YgPT4gY2YuaWQgPT09ICdDYXNlUmVmZXJlbmNlJyk7XG4gIH1cbiAgcHVibGljIGV4dHJhY3RCcmFja2V0VmFsdWUoZm10OiBzdHJpbmcsIHBhcmFtTmFtZTogc3RyaW5nLCBsZWZ0QnJhY2tldD0gJygnLCByaWdodEJyYWNrZXQ9ICcpJyApOiBzdHJpbmcge1xuICAgICAgZm10ID0gZm10LnNwbGl0KCcsJylcbiAgICAgICAgLmZpbmQoYSA9PiBhLnRyaW0oKS5zdGFydHNXaXRoKHBhcmFtTmFtZSkpO1xuICAgICAgaWYgKGZtdCkge1xuICAgICAgICBjb25zdCBzID0gZm10LmluZGV4T2YobGVmdEJyYWNrZXQpICsgMTtcbiAgICAgICAgY29uc3QgZSA9IGZtdC5pbmRleE9mKHJpZ2h0QnJhY2tldCwgcyk7XG4gICAgICAgIGlmIChlID4gcyAmJiBzID49IDApIHtcbiAgICAgICAgICByZXR1cm4gZm10LnN1YnN0cihzLCAoZSAtIHMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,12 @@
1
+ export var DisplayContextParameter;
2
+ (function (DisplayContextParameter) {
3
+ DisplayContextParameter["Read"] = "READ";
4
+ DisplayContextParameter["Create"] = "CREATE";
5
+ DisplayContextParameter["Update"] = "UPDATE";
6
+ })(DisplayContextParameter || (DisplayContextParameter = {}));
7
+ export var DisplayContextCustomParameter;
8
+ (function (DisplayContextCustomParameter) {
9
+ DisplayContextCustomParameter["CaseFileView"] = "CaseFileView";
10
+ DisplayContextCustomParameter["LinkedCases"] = "LinkedCases";
11
+ })(DisplayContextCustomParameter || (DisplayContextCustomParameter = {}));
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGxheS1jb250ZXh0LWVudW0ubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2RvbWFpbi9kZWZpbml0aW9uL2Rpc3BsYXktY29udGV4dC1lbnVtLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLHVCQUlYO0FBSkQsV0FBWSx1QkFBdUI7SUFDakMsd0NBQWEsQ0FBQTtJQUNiLDRDQUFpQixDQUFBO0lBQ2pCLDRDQUFpQixDQUFBO0FBQ25CLENBQUMsRUFKVyx1QkFBdUIsS0FBdkIsdUJBQXVCLFFBSWxDO0FBRUQsTUFBTSxDQUFOLElBQVksNkJBR1g7QUFIRCxXQUFZLDZCQUE2QjtJQUN2Qyw4REFBNkIsQ0FBQTtJQUM3Qiw0REFBMkIsQ0FBQTtBQUM3QixDQUFDLEVBSFcsNkJBQTZCLEtBQTdCLDZCQUE2QixRQUd4QyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIERpc3BsYXlDb250ZXh0UGFyYW1ldGVyIHtcbiAgUmVhZCA9ICdSRUFEJyxcbiAgQ3JlYXRlID0gJ0NSRUFURScsXG4gIFVwZGF0ZSA9ICdVUERBVEUnXG59XG5cbmV4cG9ydCBlbnVtIERpc3BsYXlDb250ZXh0Q3VzdG9tUGFyYW1ldGVyIHtcbiAgQ2FzZUZpbGVWaWV3ID0gJ0Nhc2VGaWxlVmlldycsXG4gIExpbmtlZENhc2VzID0gJ0xpbmtlZENhc2VzJ1xufVxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdHlwZS1lbnVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9kb21haW4vZGVmaW5pdGlvbi9maWVsZC10eXBlLWVudW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZpZWxkVHlwZUVudW0gPVxuICAnVGV4dCdcbiAgfCAnVGV4dEFyZWEnXG4gIHwgJ1Bvc3Rjb2RlJ1xuICB8ICdOdW1iZXInXG4gIHwgJ1llc09yTm8nXG4gIHwgJ0RhdGUnXG4gIHwgJ0RhdGVUaW1lJ1xuICB8ICdFbWFpbCdcbiAgfCAnUGhvbmVVSydcbiAgfCAnTW9uZXlHQlAnXG4gIHwgJ0ZpeGVkTGlzdCdcbiAgfCAnRHluYW1pY0xpc3QnXG4gIHwgJ0ZpeGVkUmFkaW9MaXN0J1xuICB8ICdEeW5hbWljUmFkaW9MaXN0J1xuICB8ICdDb21wbGV4J1xuICB8ICdDb2xsZWN0aW9uJ1xuICB8ICdNdWx0aVNlbGVjdExpc3QnXG4gIHwgJ0RvY3VtZW50J1xuICB8ICdMYWJlbCdcbiAgfCAnQWRkcmVzc0dsb2JhbCdcbiAgfCAnQWRkcmVzc0dsb2JhbFVLJ1xuICB8ICdBZGRyZXNzVUsnXG4gIHwgJ0Nhc2VQYXltZW50SGlzdG9yeVZpZXdlcidcbiAgfCAnQ2FzZUhpc3RvcnlWaWV3ZXInXG4gIHwgJ09yZ2FuaXNhdGlvbidcbiAgfCAnV2F5c1RvUGF5J1xuICB8ICdDb21wb25lbnRMYXVuY2hlcidcbiAgfCAnRmxhZ3MnXG4gIHwgJ0ZsYWdEZXRhaWwnXG4gIHwgJ0ZsYWdMYXVuY2hlcidcbiAgfCAnQ2FzZUZsYWcnIC8vIFRlbXBvcmFyeSBmaWVsZCB0eXBlIGZvciBmYWtpbmcgRmxhZ3MgZmllbGQgdHlwZTsgdG8gYmUgcmVtb3ZlZFxuICB8ICdKdWRpY2lhbFVzZXJGaWVsZCc7XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdHlwZS1lbnVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9kb21haW4vZGVmaW5pdGlvbi9maWVsZC10eXBlLWVudW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZpZWxkVHlwZUVudW0gPVxuICAnVGV4dCdcbiAgfCAnVGV4dEFyZWEnXG4gIHwgJ1Bvc3Rjb2RlJ1xuICB8ICdOdW1iZXInXG4gIHwgJ1llc09yTm8nXG4gIHwgJ0RhdGUnXG4gIHwgJ0RhdGVUaW1lJ1xuICB8ICdFbWFpbCdcbiAgfCAnUGhvbmVVSydcbiAgfCAnTW9uZXlHQlAnXG4gIHwgJ0ZpeGVkTGlzdCdcbiAgfCAnRHluYW1pY0xpc3QnXG4gIHwgJ0ZpeGVkUmFkaW9MaXN0J1xuICB8ICdEeW5hbWljUmFkaW9MaXN0J1xuICB8ICdEeW5hbWljTXVsdGlTZWxlY3RMaXN0J1xuICB8ICdDb21wbGV4J1xuICB8ICdDb2xsZWN0aW9uJ1xuICB8ICdNdWx0aVNlbGVjdExpc3QnXG4gIHwgJ0RvY3VtZW50J1xuICB8ICdMYWJlbCdcbiAgfCAnQWRkcmVzc0dsb2JhbCdcbiAgfCAnQWRkcmVzc0dsb2JhbFVLJ1xuICB8ICdBZGRyZXNzVUsnXG4gIHwgJ0Nhc2VQYXltZW50SGlzdG9yeVZpZXdlcidcbiAgfCAnQ2FzZUhpc3RvcnlWaWV3ZXInXG4gIHwgJ09yZ2FuaXNhdGlvbidcbiAgfCAnV2F5c1RvUGF5J1xuICB8ICdDb21wb25lbnRMYXVuY2hlcidcbiAgfCAnRmxhZ3MnXG4gIHwgJ0ZsYWdEZXRhaWwnXG4gIHwgJ0ZsYWdMYXVuY2hlcidcbiAgfCAnQ2FzZUZsYWcnIC8vIFRlbXBvcmFyeSBmaWVsZCB0eXBlIGZvciBmYWtpbmcgRmxhZ3MgZmllbGQgdHlwZTsgdG8gYmUgcmVtb3ZlZFxuICB8ICdKdWRpY2lhbFVzZXJGaWVsZCc7XG4iXX0=
@@ -65,23 +65,26 @@ export class ReadFieldsFilterPipe {
65
65
  || !ReadFieldsFilterPipe.isEmpty(value[field.id]);
66
66
  }
67
67
  static getValue(field, values, index) {
68
- let value;
69
- if (index >= 0) {
70
- value = values[index].value[field.id];
71
- }
72
- else {
73
- value = values[field.id];
68
+ if (ReadFieldsFilterPipe.isEmpty(field.value)) {
69
+ let value;
70
+ if (index >= 0) {
71
+ value = values[index].value[field.id];
72
+ }
73
+ else {
74
+ value = values[field.id];
75
+ }
76
+ return value;
74
77
  }
75
- return ReadFieldsFilterPipe.isEmpty(field.value) ? value : field.value;
78
+ return field.value;
76
79
  }
77
- static evaluateConditionalShow(field, formValue, path, formGroupAvaliable, fieldId) {
80
+ static evaluateConditionalShow(field, formValue, path, formGroupAvailable, fieldId) {
78
81
  if (field.display_context === 'HIDDEN') {
79
82
  field.hidden = true;
80
83
  }
81
84
  else if (field.show_condition) {
82
85
  let cond;
83
- if (fieldId && field.show_condition.indexOf(fieldId) > -1 && !formGroupAvaliable && !!Object.keys(formValue).length) {
84
- const search = fieldId + '.';
86
+ if (fieldId && field.show_condition.indexOf(`${fieldId}.`) > -1 && !formGroupAvailable && !!Object.keys(formValue).length) {
87
+ const search = `${fieldId}.`;
85
88
  const searchRegExp = new RegExp(search, 'g');
86
89
  const replaceWith = '';
87
90
  cond = ShowCondition.getInstance(field.show_condition.replace(searchRegExp, replaceWith));
@@ -151,4 +154,4 @@ ReadFieldsFilterPipe.ɵpipe = i0.ɵɵdefinePipe({ name: "ccdReadFieldsFilter", t
151
154
  name: 'ccdReadFieldsFilter'
152
155
  }]
153
156
  }], null, null); })();
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2NkLXJlYWQtZmllbGRzLWZpbHRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9waXBlcy9jb21wbGV4L2NjZC1yZWFkLWZpZWxkcy1maWx0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUdwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFLakUsTUFBTSxPQUFPLG9CQUFvQjtJQWdCL0I7O09BRUc7SUFDSyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCLEVBQUUsTUFBZTtRQUM3RCxNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQzlCLE1BQU0sS0FBSyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFM0QsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4RCxNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRSxPQUFPLFFBQVEsSUFBSSxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQztRQUM1RixDQUFD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b0JBQW9CO2NBSGhDLElBQUk7ZUFBQztnQkFDSixJQUFJLEVBQUUscUJBQXFCO2FBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IHBsYWluVG9DbGFzc0Zyb21FeGlzdCB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFNob3dDb25kaXRpb24gfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NvbmRpdGlvbmFsLXNob3cvZG9tYWluL2NvbmRpdGlvbmFsLXNob3cubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZHNVdGlscyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpZWxkcy9maWVsZHMudXRpbHMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdjY2RSZWFkRmllbGRzRmlsdGVyJ1xufSlcbmV4cG9ydCBjbGFzcyBSZWFkRmllbGRzRmlsdGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEVNUFRZX1ZBTFVFUyA9IFtcbiAgICB1bmRlZmluZWQsXG4gICAgbnVsbCxcbiAgICAnJyxcbiAgICB7fVxuICBdO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEFMV0FZU19OVUxMX0ZJRUxEUyA9IFsnQ2FzZVBheW1lbnRIaXN0b3J5Vmlld2VyJywgJ1dheXNUb1BheScsICdGbGFnTGF1bmNoZXInLCAnQ29tcG9uZW50TGF1bmNoZXInXTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBORVNURURfVFlQRVMgPSB7XG4gICAgQ29tcGxleDogUmVhZEZpZWxkc0ZpbHRlclBpcGUuaXNWYWxpZENvbXBsZXgsXG4gICAgQ29sbGVjdGlvbjogUmVhZEZpZWxkc0ZpbHRlclBpcGUuaXNWYWxpZENvbGxlY3Rpb25cbiAgfTtcblxuICAvKipcbiAgICogQ29tcGxleCB0eXBlIHNob3VsZCBoYXZlIGF0IGxlYXN0IG9uIHNpbXBsZSBmaWVsZCBkZXNjZW5kYW50IHdpdGggYSB2YWx1ZS5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGlzVmFsaWRDb21wbGV4KGZpZWxkOiBDYXNlRmllbGQsIHZhbHVlcz86IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgIHZhbHVlcyA9IHZhbHVlcyB8fCB7fTtcbiAgICBjb25zdCB0eXBlID0gZmllbGQuZmllbGRfdHlwZTtcbiAgICBjb25zdCB2YWx1ZSA9IFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmdldFZhbHVlKGZpZWxkLCB2YWx1ZXMpO1xuXG4gICAgY29uc3QgaGFzQ2hpbGRyZW5XaXRoVmFsdWUgPSB0eXBlLmNvbXBsZXhfZmllbGRzLmZpbmQoZiA9PiB7XG4gICAgICBjb25zdCB3aWxsS2VlcCA9IFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmtlZXBGaWVsZChmLCB2YWx1ZSwgdHJ1ZSk7XG4gICAgICByZXR1cm4gd2lsbEtlZXAgJiYgUmVhZEZpZWxkc0ZpbHRlclBpcGUuZXZhbHVhdGVDb25kaXRpb25hbFNob3coZiwgdmFsdWUpLmhpZGRlbiAhPT0gdHJ1ZTtcbiAgICB9KTtcblxuICAgIHJldHVybiAhIWhhc0NoaWxkcmVuV2l0aFZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNWYWxpZENvbGxlY3Rpb24oZmllbGQ6IENhc2VGaWVsZCwgdmFsdWVzPzogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgLy8gaWYgZmllbGQgaXMgY29sbGVjdGlvbiBhbmQgaXQgaGFzIGNvbXBsZXgvY29sbGVjdGlvbiBjaGlsZCBmaWVsZDsgcGFyZW50IGZpZWxkIGRvZXNudCBoYXZlIHZhbHVlIGRlZmluZWRcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZmllbGQudmFsdWUpICYmIHZhbHVlcyAmJiB2YWx1ZXMuaGFzT3duUHJvcGVydHkoZmllbGQuaWQpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgaXNOb3RFbXB0eSA9IEFycmF5LmlzQXJyYXkoZmllbGQudmFsdWUpICYmIGZpZWxkLnZhbHVlLmxlbmd0aCA+IDA7XG4gICAgaWYgKGlzTm90RW1wdHkgJiYgZmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnKSB7XG4gICAgICByZXR1cm4gISFmaWVsZC52YWx1ZS5maW5kKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBjb21wbGV4RmllbGQgPSBwbGFpblRvQ2xhc3NGcm9tRXhpc3QobmV3IENhc2VGaWVsZCgpLCB7XG4gICAgICAgICAgaWQ6IGZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmlkLFxuICAgICAgICAgIGZpZWxkX3R5cGU6IGZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLFxuICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgIGxhYmVsOiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmlzVmFsaWRDb21wbGV4KGNvbXBsZXhGaWVsZCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGlzTm90RW1wdHk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpc0VtcHR5KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gUmVhZEZpZWxkc0ZpbHRlclBpcGUuRU1QVFlfVkFMVUVTLmluZGV4T2YodmFsdWUpICE9PSAtMVxuICAgICAgfHwgdmFsdWUubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNDb21wb3VuZChmaWVsZDogQ2FzZUZpZWxkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFJlYWRGaWVsZHNGaWx0ZXJQaXBlLk5FU1RFRF9UWVBFU1tmaWVsZC5maWVsZF90eXBlLnR5cGVdO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNWYWxpZENvbXBvdW5kKGZpZWxkOiBDYXNlRmllbGQsIHZhbHVlPzogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmlzQ29tcG91bmQoZmllbGQpXG4gICAgICAgICAgICAmJiBSZWFkRmllbGRzRmlsdGVyUGlwZS5ORVNURURfVFlQRVNbZmllbGQuZmllbGRfdHlwZS50eXBlXShmaWVsZCwgdmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMga2VlcEZpZWxkKGZpZWxkOiBDYXNlRmllbGQsIHZhbHVlPzogb2JqZWN0LCBpZ25vcmVMYWJlbHMgPSBmYWxzZSk6IGJvb2xlYW4ge1xuICAgIC8vIFdlIHNob3VsZG4ndCBkaXRjaCBsYWJlbHMuXG4gICAgaWYgKCFpZ25vcmVMYWJlbHMgJiYgZmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnTGFiZWwnICYmIChmaWVsZC5sYWJlbCB8fCAnJykubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIC8vIFdlIGFsc28gc2hvdWxkbid0IGRpdGNoIGZpZWxkcyB0aGF0IHdpbGwgYWx3YXlzIGNvbWUgYmFjayB3aXRoIGEgbnVsbCB2YWx1ZS5cbiAgICBpZiAodGhpcy5BTFdBWVNfTlVMTF9GSUVMRFMuaW5kZXhPZihmaWVsZC5maWVsZF90eXBlLnR5cGUpICE9PSAtMSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZSB8fCB7fTtcblxuICAgIGlmIChSZWFkRmllbGRzRmlsdGVyUGlwZS5pc0NvbXBvdW5kKGZpZWxkKSkge1xuICAgICAgcmV0dXJuIFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmlzVmFsaWRDb21wb3VuZChmaWVsZCwgdmFsdWUpO1xuICAgIH1cblxuICAgIHJldHVybiAhUmVhZEZpZWxkc0ZpbHRlclBpcGUuaXNFbXB0eShmaWVsZC52YWx1ZSlcbiAgICAgICAgICAgICAgfHwgIVJlYWRGaWVsZHNGaWx0ZXJQaXBlLmlzRW1wdHkodmFsdWVbZmllbGQuaWRdKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldFZhbHVlKGZpZWxkOiBDYXNlRmllbGQsIHZhbHVlczogYW55LCBpbmRleD86IG51bWJlcik6IGFueSB7XG4gICAgbGV0IHZhbHVlOiBhbnk7XG4gICAgaWYgKGluZGV4ID49IDAgKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlc1tpbmRleF0udmFsdWVbZmllbGQuaWRdO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlc1tmaWVsZC5pZF07XG4gICAgfVxuICAgIHJldHVybiBSZWFkRmllbGRzRmlsdGVyUGlwZS5pc0VtcHR5KGZpZWxkLnZhbHVlKSA/IHZhbHVlIDogZmllbGQudmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBldmFsdWF0ZUNvbmRpdGlvbmFsU2hvdyhmaWVsZDogQ2FzZUZpZWxkLCBmb3JtVmFsdWU6IGFueSwgcGF0aD86IHN0cmluZyxcbiAgICBmb3JtR3JvdXBBdmFsaWFibGU/OiBib29sZWFuLCBmaWVsZElkPzogc3RyaW5nKTogQ2FzZUZpZWxkIHtcbiAgICBpZiAoZmllbGQuZGlzcGxheV9jb250ZXh0ID09PSAnSElEREVOJykge1xuICAgICAgZmllbGQuaGlkZGVuID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGZpZWxkLnNob3dfY29uZGl0aW9uKSB7XG4gICAgICBsZXQgY29uZDogU2hvd0NvbmRpdGlvbjtcbiAgICAgIGlmIChmaWVsZElkICYmIGZpZWxkLnNob3dfY29uZGl0aW9uLmluZGV4T2YoZmllbGRJZCkgPiAtMSAmJiAhZm9ybUdyb3VwQXZhbGlhYmxlICYmICEhT2JqZWN0LmtleXMoZm9ybVZhbHVlKS5sZW5ndGgpIHtcbiAgICAgICAgY29uc3Qgc2VhcmNoID0gZmllbGRJZCArICcuJztcbiAgICAgICAgY29uc3Qgc2VhcmNoUmVnRXhwID0gbmV3IFJlZ0V4cChzZWFyY2gsICdnJyk7XG4gICAgICAgIGNvbnN0IHJlcGxhY2VXaXRoID0gJyc7XG4gICAgICAgIGNvbmQgPSBTaG93Q29uZGl0aW9uLmdldEluc3RhbmNlKGZpZWxkLnNob3dfY29uZGl0aW9uLnJlcGxhY2Uoc2VhcmNoUmVnRXhwLCByZXBsYWNlV2l0aCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uZCA9IFNob3dDb25kaXRpb24uZ2V0SW5zdGFuY2UoZmllbGQuc2hvd19jb25kaXRpb24pO1xuICAgICAgfVxuICAgICAgZmllbGQuaGlkZGVuID0gIWNvbmQubWF0Y2goZm9ybVZhbHVlLCBwYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmllbGQuaGlkZGVuID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBmaWVsZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgb3V0IGZpZWxkcyBoYXZpbmcgbm8gZGF0YSB0byBkaXNwbGF5IGFuZCBoYXJtb25pc2UgZmllbGQgdmFsdWVzIGNvbWluZyBwYXJlbnQncyB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyB0cmFuc2Zvcm0oXG4gICAgY29tcGxleEZpZWxkOiBDYXNlRmllbGQsIGtlZXBFbXB0eT86IGJvb2xlYW4sIGluZGV4PzogbnVtYmVyLFxuICAgIHNldHVwSGlkZGVuID0gZmFsc2UsIGZvcm1Hcm91cD86IEZvcm1Hcm91cCB8IEFic3RyYWN0Q29udHJvbCwgcGF0aD86IHN0cmluZyk6IENhc2VGaWVsZFtdIHtcbiAgICBpZiAoIWNvbXBsZXhGaWVsZCB8fCAhY29tcGxleEZpZWxkLmZpZWxkX3R5cGUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWVsZHMgPSBjb21wbGV4RmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcyB8fCBbXTtcbiAgICBjb25zdCB2YWx1ZXMgPSBjb21wbGV4RmllbGQudmFsdWUgfHwge307XG4gICAgbGV0IGNoZWNrQ29uZGl0aW9uYWxTaG93QWdhaW5zdDogYW55ID0gdmFsdWVzO1xuICAgIGxldCBmb3JtR3JvdXBBdmFpbGFibGUgPSBmYWxzZTtcbiAgICBpZiAoZm9ybUdyb3VwKSB7XG4gICAgICBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3QgPSBmb3JtR3JvdXAudmFsdWU7XG4gICAgICBmb3JtR3JvdXBBdmFpbGFibGUgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmaWVsZHNcbiAgICAgIC5tYXAoZiA9PiB7XG4gICAgICAgIGNvbnN0IGNsb25lID0gRmllbGRzVXRpbHMuY2xvbmVPYmplY3QoZik7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gUmVhZEZpZWxkc0ZpbHRlclBpcGUuZ2V0VmFsdWUoZiwgdmFsdWVzLCBpbmRleCk7XG4gICAgICAgIGlmICghUmVhZEZpZWxkc0ZpbHRlclBpcGUuaXNFbXB0eSh2YWx1ZSkpIHtcbiAgICAgICAgICBjbG9uZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbG9uZTtcbiAgICAgIH0pXG4gICAgICAubWFwKGYgPT4ge1xuICAgICAgICBpZiAoIWYuZGlzcGxheV9jb250ZXh0KSB7XG4gICAgICAgICAgZi5kaXNwbGF5X2NvbnRleHQgPSBjb21wbGV4RmllbGQuZGlzcGxheV9jb250ZXh0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChzZXR1cEhpZGRlbikge1xuICAgICAgICAgIFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmV2YWx1YXRlQ29uZGl0aW9uYWxTaG93KGYsIGNoZWNrQ29uZGl0aW9uYWxTaG93QWdhaW5zdCwgcGF0aCwgZm9ybUdyb3VwQXZhaWxhYmxlLCBjb21wbGV4RmllbGQuaWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoZiA9PiBrZWVwRW1wdHkgfHwgUmVhZEZpZWxkc0ZpbHRlclBpcGUua2VlcEZpZWxkKGYpKTtcbiAgfVxufVxuIl19
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2NkLXJlYWQtZmllbGRzLWZpbHRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9waXBlcy9jb21wbGV4L2NjZC1yZWFkLWZpZWxkcy1maWx0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUdwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFLakUsTUFBTSxPQUFPLG9CQUFvQjtJQWdCL0I7O09BRUc7SUFDSyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCLEVBQUUsTUFBZTtRQUM3RCxNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQzlCLE1BQU0sS0FBSyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFM0QsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4RCxNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNoRSxPQUFPLFFBQVEsSUFBSSxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQztRQUM1RixDQUFD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QUFwQixvQkFBb0I7dUZBQXBCLG9CQUFvQjtjQUhoQyxJQUFJO2VBQUM7Z0JBQ0osSUFBSSxFQUFFLHFCQUFxQjthQUM1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBwbGFpblRvQ2xhc3NGcm9tRXhpc3QgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTaG93Q29uZGl0aW9uIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jb25kaXRpb25hbC1zaG93L2RvbWFpbi9jb25kaXRpb25hbC1zaG93Lm1vZGVsJztcbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnV0aWxzJztcblxuQFBpcGUoe1xuICBuYW1lOiAnY2NkUmVhZEZpZWxkc0ZpbHRlcidcbn0pXG5leHBvcnQgY2xhc3MgUmVhZEZpZWxkc0ZpbHRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBFTVBUWV9WQUxVRVMgPSBbXG4gICAgdW5kZWZpbmVkLFxuICAgIG51bGwsXG4gICAgJycsXG4gICAge31cbiAgXTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBBTFdBWVNfTlVMTF9GSUVMRFMgPSBbJ0Nhc2VQYXltZW50SGlzdG9yeVZpZXdlcicsICdXYXlzVG9QYXknLCAnRmxhZ0xhdW5jaGVyJywgJ0NvbXBvbmVudExhdW5jaGVyJ107XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgTkVTVEVEX1RZUEVTID0ge1xuICAgIENvbXBsZXg6IFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmlzVmFsaWRDb21wbGV4LFxuICAgIENvbGxlY3Rpb246IFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmlzVmFsaWRDb2xsZWN0aW9uXG4gIH07XG5cbiAgLyoqXG4gICAqIENvbXBsZXggdHlwZSBzaG91bGQgaGF2ZSBhdCBsZWFzdCBvbiBzaW1wbGUgZmllbGQgZGVzY2VuZGFudCB3aXRoIGEgdmFsdWUuXG4gICAqL1xuICBwcml2YXRlIHN0YXRpYyBpc1ZhbGlkQ29tcGxleChmaWVsZDogQ2FzZUZpZWxkLCB2YWx1ZXM/OiBvYmplY3QpOiBib29sZWFuIHtcbiAgICB2YWx1ZXMgPSB2YWx1ZXMgfHwge307XG4gICAgY29uc3QgdHlwZSA9IGZpZWxkLmZpZWxkX3R5cGU7XG4gICAgY29uc3QgdmFsdWUgPSBSZWFkRmllbGRzRmlsdGVyUGlwZS5nZXRWYWx1ZShmaWVsZCwgdmFsdWVzKTtcblxuICAgIGNvbnN0IGhhc0NoaWxkcmVuV2l0aFZhbHVlID0gdHlwZS5jb21wbGV4X2ZpZWxkcy5maW5kKGYgPT4ge1xuICAgICAgY29uc3Qgd2lsbEtlZXAgPSBSZWFkRmllbGRzRmlsdGVyUGlwZS5rZWVwRmllbGQoZiwgdmFsdWUsIHRydWUpO1xuICAgICAgcmV0dXJuIHdpbGxLZWVwICYmIFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmV2YWx1YXRlQ29uZGl0aW9uYWxTaG93KGYsIHZhbHVlKS5oaWRkZW4gIT09IHRydWU7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gISFoYXNDaGlsZHJlbldpdGhWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzVmFsaWRDb2xsZWN0aW9uKGZpZWxkOiBDYXNlRmllbGQsIHZhbHVlcz86IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgIC8vIGlmIGZpZWxkIGlzIGNvbGxlY3Rpb24gYW5kIGl0IGhhcyBjb21wbGV4L2NvbGxlY3Rpb24gY2hpbGQgZmllbGQ7IHBhcmVudCBmaWVsZCBkb2VzbnQgaGF2ZSB2YWx1ZSBkZWZpbmVkXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGZpZWxkLnZhbHVlKSAmJiB2YWx1ZXMgJiYgdmFsdWVzLmhhc093blByb3BlcnR5KGZpZWxkLmlkKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IGlzTm90RW1wdHkgPSBBcnJheS5pc0FycmF5KGZpZWxkLnZhbHVlKSAmJiBmaWVsZC52YWx1ZS5sZW5ndGggPiAwO1xuICAgIGlmIChpc05vdEVtcHR5ICYmIGZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLnR5cGUgPT09ICdDb21wbGV4Jykge1xuICAgICAgcmV0dXJuICEhZmllbGQudmFsdWUuZmluZChpdGVtID0+IHtcbiAgICAgICAgY29uc3QgY29tcGxleEZpZWxkID0gcGxhaW5Ub0NsYXNzRnJvbUV4aXN0KG5ldyBDYXNlRmllbGQoKSwge1xuICAgICAgICAgIGlkOiBmaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS5pZCxcbiAgICAgICAgICBmaWVsZF90eXBlOiBmaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZSxcbiAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgICBsYWJlbDogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBSZWFkRmllbGRzRmlsdGVyUGlwZS5pc1ZhbGlkQ29tcGxleChjb21wbGV4RmllbGQpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBpc05vdEVtcHR5O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNFbXB0eSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFJlYWRGaWVsZHNGaWx0ZXJQaXBlLkVNUFRZX1ZBTFVFUy5pbmRleE9mKHZhbHVlKSAhPT0gLTFcbiAgICAgIHx8IHZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzQ29tcG91bmQoZmllbGQ6IENhc2VGaWVsZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBSZWFkRmllbGRzRmlsdGVyUGlwZS5ORVNURURfVFlQRVNbZmllbGQuZmllbGRfdHlwZS50eXBlXTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzVmFsaWRDb21wb3VuZChmaWVsZDogQ2FzZUZpZWxkLCB2YWx1ZT86IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBSZWFkRmllbGRzRmlsdGVyUGlwZS5pc0NvbXBvdW5kKGZpZWxkKVxuICAgICAgICAgICAgJiYgUmVhZEZpZWxkc0ZpbHRlclBpcGUuTkVTVEVEX1RZUEVTW2ZpZWxkLmZpZWxkX3R5cGUudHlwZV0oZmllbGQsIHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGtlZXBGaWVsZChmaWVsZDogQ2FzZUZpZWxkLCB2YWx1ZT86IG9iamVjdCwgaWdub3JlTGFiZWxzID0gZmFsc2UpOiBib29sZWFuIHtcbiAgICAvLyBXZSBzaG91bGRuJ3QgZGl0Y2ggbGFiZWxzLlxuICAgIGlmICghaWdub3JlTGFiZWxzICYmIGZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0xhYmVsJyAmJiAoZmllbGQubGFiZWwgfHwgJycpLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyBXZSBhbHNvIHNob3VsZG4ndCBkaXRjaCBmaWVsZHMgdGhhdCB3aWxsIGFsd2F5cyBjb21lIGJhY2sgd2l0aCBhIG51bGwgdmFsdWUuXG4gICAgaWYgKHRoaXMuQUxXQVlTX05VTExfRklFTERTLmluZGV4T2YoZmllbGQuZmllbGRfdHlwZS50eXBlKSAhPT0gLTEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWUgfHwge307XG5cbiAgICBpZiAoUmVhZEZpZWxkc0ZpbHRlclBpcGUuaXNDb21wb3VuZChmaWVsZCkpIHtcbiAgICAgIHJldHVybiBSZWFkRmllbGRzRmlsdGVyUGlwZS5pc1ZhbGlkQ29tcG91bmQoZmllbGQsIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gIVJlYWRGaWVsZHNGaWx0ZXJQaXBlLmlzRW1wdHkoZmllbGQudmFsdWUpXG4gICAgICAgICAgICAgIHx8ICFSZWFkRmllbGRzRmlsdGVyUGlwZS5pc0VtcHR5KHZhbHVlW2ZpZWxkLmlkXSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRWYWx1ZShmaWVsZDogQ2FzZUZpZWxkLCB2YWx1ZXM6IGFueSwgaW5kZXg/OiBudW1iZXIpOiBhbnkge1xuICAgIGlmIChSZWFkRmllbGRzRmlsdGVyUGlwZS5pc0VtcHR5KGZpZWxkLnZhbHVlKSkge1xuICAgICAgbGV0IHZhbHVlOiBhbnk7XG4gICAgICBpZiAoaW5kZXggPj0gMCApIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZXNbaW5kZXhdLnZhbHVlW2ZpZWxkLmlkXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWVzW2ZpZWxkLmlkXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gZmllbGQudmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBldmFsdWF0ZUNvbmRpdGlvbmFsU2hvdyhmaWVsZDogQ2FzZUZpZWxkLCBmb3JtVmFsdWU6IGFueSwgcGF0aD86IHN0cmluZyxcbiAgICBmb3JtR3JvdXBBdmFpbGFibGU/OiBib29sZWFuLCBmaWVsZElkPzogc3RyaW5nKTogQ2FzZUZpZWxkIHtcbiAgICBpZiAoZmllbGQuZGlzcGxheV9jb250ZXh0ID09PSAnSElEREVOJykge1xuICAgICAgZmllbGQuaGlkZGVuID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGZpZWxkLnNob3dfY29uZGl0aW9uKSB7XG4gICAgICBsZXQgY29uZDogU2hvd0NvbmRpdGlvbjtcbiAgICAgIGlmIChmaWVsZElkICYmIGZpZWxkLnNob3dfY29uZGl0aW9uLmluZGV4T2YoYCR7ZmllbGRJZH0uYCkgPiAtMSAmJiAhZm9ybUdyb3VwQXZhaWxhYmxlICYmICEhT2JqZWN0LmtleXMoZm9ybVZhbHVlKS5sZW5ndGgpIHtcbiAgICAgICAgY29uc3Qgc2VhcmNoID0gYCR7ZmllbGRJZH0uYDtcbiAgICAgICAgY29uc3Qgc2VhcmNoUmVnRXhwID0gbmV3IFJlZ0V4cChzZWFyY2gsICdnJyk7XG4gICAgICAgIGNvbnN0IHJlcGxhY2VXaXRoID0gJyc7XG4gICAgICAgIGNvbmQgPSBTaG93Q29uZGl0aW9uLmdldEluc3RhbmNlKGZpZWxkLnNob3dfY29uZGl0aW9uLnJlcGxhY2Uoc2VhcmNoUmVnRXhwLCByZXBsYWNlV2l0aCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uZCA9IFNob3dDb25kaXRpb24uZ2V0SW5zdGFuY2UoZmllbGQuc2hvd19jb25kaXRpb24pO1xuICAgICAgfVxuICAgICAgZmllbGQuaGlkZGVuID0gIWNvbmQubWF0Y2goZm9ybVZhbHVlLCBwYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmllbGQuaGlkZGVuID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBmaWVsZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgb3V0IGZpZWxkcyBoYXZpbmcgbm8gZGF0YSB0byBkaXNwbGF5IGFuZCBoYXJtb25pc2UgZmllbGQgdmFsdWVzIGNvbWluZyBwYXJlbnQncyB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyB0cmFuc2Zvcm0oXG4gICAgY29tcGxleEZpZWxkOiBDYXNlRmllbGQsIGtlZXBFbXB0eT86IGJvb2xlYW4sIGluZGV4PzogbnVtYmVyLFxuICAgIHNldHVwSGlkZGVuID0gZmFsc2UsIGZvcm1Hcm91cD86IEZvcm1Hcm91cCB8IEFic3RyYWN0Q29udHJvbCwgcGF0aD86IHN0cmluZyk6IENhc2VGaWVsZFtdIHtcbiAgICBpZiAoIWNvbXBsZXhGaWVsZCB8fCAhY29tcGxleEZpZWxkLmZpZWxkX3R5cGUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWVsZHMgPSBjb21wbGV4RmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcyB8fCBbXTtcbiAgICBjb25zdCB2YWx1ZXMgPSBjb21wbGV4RmllbGQudmFsdWUgfHwge307XG4gICAgbGV0IGNoZWNrQ29uZGl0aW9uYWxTaG93QWdhaW5zdDogYW55ID0gdmFsdWVzO1xuICAgIGxldCBmb3JtR3JvdXBBdmFpbGFibGUgPSBmYWxzZTtcbiAgICBpZiAoZm9ybUdyb3VwKSB7XG4gICAgICBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3QgPSBmb3JtR3JvdXAudmFsdWU7XG4gICAgICBmb3JtR3JvdXBBdmFpbGFibGUgPSB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmaWVsZHNcbiAgICAgIC5tYXAoZiA9PiB7XG4gICAgICAgIGNvbnN0IGNsb25lID0gRmllbGRzVXRpbHMuY2xvbmVPYmplY3QoZik7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gUmVhZEZpZWxkc0ZpbHRlclBpcGUuZ2V0VmFsdWUoZiwgdmFsdWVzLCBpbmRleCk7XG4gICAgICAgIGlmICghUmVhZEZpZWxkc0ZpbHRlclBpcGUuaXNFbXB0eSh2YWx1ZSkpIHtcbiAgICAgICAgICBjbG9uZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbG9uZTtcbiAgICAgIH0pXG4gICAgICAubWFwKGYgPT4ge1xuICAgICAgICBpZiAoIWYuZGlzcGxheV9jb250ZXh0KSB7XG4gICAgICAgICAgZi5kaXNwbGF5X2NvbnRleHQgPSBjb21wbGV4RmllbGQuZGlzcGxheV9jb250ZXh0O1xuICAgICAgICB9XG4gICAgICAgIGlmIChzZXR1cEhpZGRlbikge1xuICAgICAgICAgIFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmV2YWx1YXRlQ29uZGl0aW9uYWxTaG93KGYsIGNoZWNrQ29uZGl0aW9uYWxTaG93QWdhaW5zdCwgcGF0aCwgZm9ybUdyb3VwQXZhaWxhYmxlLCBjb21wbGV4RmllbGQuaWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmO1xuICAgICAgfSlcbiAgICAgIC5maWx0ZXIoZiA9PiBrZWVwRW1wdHkgfHwgUmVhZEZpZWxkc0ZpbHRlclBpcGUua2VlcEZpZWxkKGYpKTtcbiAgfVxufVxuIl19
@@ -1,6 +1,8 @@
1
1
  export * from './case-reference';
2
2
  export * from './case-title';
3
3
  export * from './complex';
4
+ export * from './link-cases-reason-code';
5
+ export * from './link-cases-from-reason-code';
4
6
  export * from './pipes.module';
5
7
  export * from './search-result/sorting/sort-search-result.pipe';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3BpcGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGlEQUFpRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jYXNlLXJlZmVyZW5jZSc7XG5leHBvcnQgKiBmcm9tICcuL2Nhc2UtdGl0bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21wbGV4JztcbmV4cG9ydCAqIGZyb20gJy4vcGlwZXMubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vc2VhcmNoLXJlc3VsdC9zb3J0aW5nL3NvcnQtc2VhcmNoLXJlc3VsdC5waXBlJztcbiJdfQ==
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3BpcGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxXQUFXLENBQUM7QUFDMUIsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsZ0JBQWdCLENBQUM7QUFDL0IsY0FBYyxpREFBaUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2FzZS1yZWZlcmVuY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9jYXNlLXRpdGxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tcGxleCc7XG5leHBvcnQgKiBmcm9tICcuL2xpbmstY2FzZXMtcmVhc29uLWNvZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saW5rLWNhc2VzLWZyb20tcmVhc29uLWNvZGUnO1xuZXhwb3J0ICogZnJvbSAnLi9waXBlcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2gtcmVzdWx0L3NvcnRpbmcvc29ydC1zZWFyY2gtcmVzdWx0LnBpcGUnO1xuIl19