tuain-ng-forms-lib 17.0.0 → 17.1.0

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 (28) hide show
  1. package/esm2022/lib/classes/forms/action.mjs +66 -40
  2. package/esm2022/lib/classes/forms/element.mjs +8 -3
  3. package/esm2022/lib/classes/forms/field.mjs +81 -71
  4. package/esm2022/lib/classes/forms/section.mjs +51 -39
  5. package/esm2022/lib/classes/forms/subsection.mjs +45 -27
  6. package/esm2022/lib/classes/forms/table/table.mjs +124 -82
  7. package/esm2022/lib/components/elements/action.component.mjs +29 -19
  8. package/esm2022/lib/components/elements/field.component.mjs +56 -69
  9. package/esm2022/lib/components/elements/layout/piece.component.mjs +43 -19
  10. package/esm2022/lib/components/elements/layout/section.component.mjs +21 -13
  11. package/esm2022/lib/components/elements/layout/sub-section.component.mjs +21 -13
  12. package/esm2022/lib/components/elements/tables/table-record-action.component.mjs +13 -8
  13. package/esm2022/lib/components/elements/tables/table.component.mjs +38 -35
  14. package/fesm2022/tuain-ng-forms-lib.mjs +581 -423
  15. package/fesm2022/tuain-ng-forms-lib.mjs.map +1 -1
  16. package/lib/classes/forms/action.d.ts +30 -14
  17. package/lib/classes/forms/field.d.ts +9 -4
  18. package/lib/classes/forms/section.d.ts +18 -6
  19. package/lib/classes/forms/subsection.d.ts +28 -10
  20. package/lib/classes/forms/table/table.d.ts +63 -21
  21. package/lib/components/elements/action.component.d.ts +8 -1
  22. package/lib/components/elements/field.component.d.ts +21 -15
  23. package/lib/components/elements/layout/piece.component.d.ts +8 -4
  24. package/lib/components/elements/layout/section.component.d.ts +1 -0
  25. package/lib/components/elements/layout/sub-section.component.d.ts +1 -0
  26. package/lib/components/elements/tables/table-record-action.component.d.ts +1 -0
  27. package/lib/components/elements/tables/table.component.d.ts +12 -5
  28. package/package.json +1 -1
@@ -5,12 +5,12 @@ const ACTIVE = 'active';
5
5
  export class RecordFormSection extends FormPiecePropagate {
6
6
  _activation = new Subject();
7
7
  _inactivation = new Subject();
8
- active = false;
9
- sectionId = null;
10
- sectionCode = null;
11
- sectionTitle = null;
12
- subSections = [];
13
- subSectionsObj;
8
+ _active = false;
9
+ _sectionId = null;
10
+ _sectionCode = null;
11
+ _sectionTitle = null;
12
+ _subSections = [];
13
+ _subSectionsObj;
14
14
  _exclusiveSubSectionsByAttr = {};
15
15
  constructor(sectionReceived, formObject, formConfig) {
16
16
  super(sectionReceived, formConfig);
@@ -18,11 +18,11 @@ export class RecordFormSection extends FormPiecePropagate {
18
18
  if (!sectionReceived) {
19
19
  return;
20
20
  }
21
- this.sectionId = (sectionReceived.sectionId) ? sectionReceived.sectionId.toString() : '';
22
- this.sectionCode = (sectionReceived.sectionCode) ? sectionReceived.sectionCode : '';
23
- this.sectionTitle = (sectionReceived.sectionTitle) ? sectionReceived.sectionTitle : '';
24
- this.subSections = [];
25
- this.subSectionsObj = {};
21
+ this._sectionId = (sectionReceived.sectionId) ? sectionReceived.sectionId.toString() : '';
22
+ this._sectionCode = (sectionReceived.sectionCode) ? sectionReceived.sectionCode : '';
23
+ this._sectionTitle = (sectionReceived.sectionTitle) ? sectionReceived.sectionTitle : '';
24
+ this._subSections = [];
25
+ this._subSectionsObj = {};
26
26
  if (sectionReceived.subsections) {
27
27
  const subsections = sectionReceived.subsections.map(subSecDef => {
28
28
  const visibleStates = subSecDef.visibleStates ?? [];
@@ -35,42 +35,54 @@ export class RecordFormSection extends FormPiecePropagate {
35
35
  const subSectionToAdd = new RecordFormSubSection(subsectionReceived, formObject, formConfig);
36
36
  const subsectionCode = subSectionToAdd.subsectionCode;
37
37
  if (subsectionCode) {
38
- this.subSections.push(subSectionToAdd);
39
- this.subSectionsObj[subsectionCode] = subSectionToAdd;
38
+ this._subSections.push(subSectionToAdd);
39
+ this._subSectionsObj[subsectionCode] = subSectionToAdd;
40
40
  }
41
41
  }
42
42
  }
43
43
  }
44
- get code() { return this.sectionCode; }
44
+ get code() { return this._sectionCode; }
45
45
  get activation() { return this._activation; }
46
46
  get inactivation() { return this._inactivation; }
47
+ get active() { return this._active; }
48
+ get sectionId() { return this._sectionId; }
49
+ get sectionCode() { return this._sectionCode; }
50
+ get sectionTitle() { return this._sectionTitle; }
51
+ get subSections() { return this._subSections; }
52
+ get subSectionsObj() { return this._subSectionsObj; }
53
+ set active(active) { this._active = active; }
54
+ set sectionId(sectionId) { this._sectionId = sectionId; }
55
+ set sectionCode(sectionCode) { this._sectionCode = sectionCode; }
56
+ set sectionTitle(sectionTitle) { this._sectionTitle = sectionTitle; }
57
+ set subSections(subSections) { this._subSections = subSections; }
58
+ set subSectionsObj(subSectionsObj) { this._subSectionsObj = subSectionsObj; }
47
59
  activate() {
48
- if (!this.active) {
49
- this.active = true;
50
- this.sectionCode && this._activation.next(this.sectionCode);
60
+ if (!this._active) {
61
+ this._active = true;
62
+ this._sectionCode && this._activation.next(this._sectionCode);
51
63
  }
52
64
  }
53
65
  inactivate() {
54
- if (this.active) {
55
- this.active = false;
56
- this.sectionCode && this._inactivation.next(this.sectionCode);
66
+ if (this._active) {
67
+ this._active = false;
68
+ this._sectionCode && this._inactivation.next(this._sectionCode);
57
69
  }
58
70
  }
59
- get title() { return this.sectionTitle; }
60
- set title(title) { this.sectionTitle = title; }
71
+ get title() { return this._sectionTitle; }
72
+ set title(title) { this._sectionTitle = title; }
61
73
  getVisibleSubsections(state) {
62
- return this.subSections.filter(subSection => subSection.visible);
74
+ return this._subSections.filter(subSection => subSection.visible);
63
75
  }
64
76
  getSubsection(subSectionCode) {
65
- return (this.subSectionsObj && this.subSectionsObj[subSectionCode])
66
- ? this.subSectionsObj[subSectionCode] : null;
77
+ return (this._subSectionsObj && this._subSectionsObj[subSectionCode])
78
+ ? this._subSectionsObj[subSectionCode] : null;
67
79
  }
68
80
  activateSubSection(subSectionCode) {
69
81
  if (subSectionCode === this._exclusiveSubSectionsByAttr[ACTIVE]) {
70
82
  return;
71
83
  }
72
- const subSection = (this.subSectionsObj && this.subSectionsObj[subSectionCode])
73
- ? this.subSectionsObj[subSectionCode] : null;
84
+ const subSection = (this._subSectionsObj && this._subSectionsObj[subSectionCode])
85
+ ? this._subSectionsObj[subSectionCode] : null;
74
86
  if (subSection) {
75
87
  subSection?.activate();
76
88
  this._exclusiveSubSectionsByAttr[ACTIVE] = subSectionCode;
@@ -78,8 +90,8 @@ export class RecordFormSection extends FormPiecePropagate {
78
90
  }
79
91
  getFields() {
80
92
  let fieldsArray = [];
81
- if (this.subSections && this.subSections.length > 0) {
82
- for (const subSection of this.subSections) {
93
+ if (this._subSections && this._subSections.length > 0) {
94
+ for (const subSection of this._subSections) {
83
95
  const subsectionFields = subSection.getFields() ?? [];
84
96
  if (subsectionFields?.length > 0) {
85
97
  fieldsArray = fieldsArray.concat(subsectionFields);
@@ -90,8 +102,8 @@ export class RecordFormSection extends FormPiecePropagate {
90
102
  }
91
103
  getActions() {
92
104
  let actionArray = [];
93
- if (this.subSections && this.subSections.length > 0) {
94
- for (const subSection of this.subSections) {
105
+ if (this._subSections && this._subSections.length > 0) {
106
+ for (const subSection of this._subSections) {
95
107
  const subSectionActions = subSection.getActions() ?? [];
96
108
  if (subSectionActions?.length > 0) {
97
109
  actionArray = actionArray.concat(subSectionActions);
@@ -102,8 +114,8 @@ export class RecordFormSection extends FormPiecePropagate {
102
114
  }
103
115
  getActionNames() {
104
116
  let actionArray = [];
105
- if (this.subSections && this.subSections.length > 0) {
106
- for (const subSection of this.subSections) {
117
+ if (this._subSections && this._subSections.length > 0) {
118
+ for (const subSection of this._subSections) {
107
119
  actionArray = actionArray.concat(subSection.getActionNames());
108
120
  }
109
121
  }
@@ -111,8 +123,8 @@ export class RecordFormSection extends FormPiecePropagate {
111
123
  }
112
124
  getFieldNames() {
113
125
  let fieldsArray = [];
114
- if (this.subSections && this.subSections.length > 0) {
115
- for (const subSection of this.subSections) {
126
+ if (this._subSections && this._subSections.length > 0) {
127
+ for (const subSection of this._subSections) {
116
128
  fieldsArray = fieldsArray.concat(subSection.getFieldNames());
117
129
  }
118
130
  }
@@ -120,8 +132,8 @@ export class RecordFormSection extends FormPiecePropagate {
120
132
  }
121
133
  getField(name) {
122
134
  let field = null;
123
- if (this.subSections && this.subSections.length > 0) {
124
- for (const subSection of this.subSections) {
135
+ if (this._subSections && this._subSections.length > 0) {
136
+ for (const subSection of this._subSections) {
125
137
  field = subSection.getField(name);
126
138
  if (field) {
127
139
  return field;
@@ -131,9 +143,9 @@ export class RecordFormSection extends FormPiecePropagate {
131
143
  return null;
132
144
  }
133
145
  formStateChangeCustomSubscribe(form, formChangeSubject) {
134
- this.subSections?.forEach(subsection => {
146
+ this._subSections?.forEach(subsection => {
135
147
  subsection?.connectWithParentForm(form, formChangeSubject);
136
148
  });
137
149
  }
138
150
  }
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NsYXNzZXMvZm9ybXMvc2VjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVwRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUM7QUFFeEIsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGtCQUFrQjtJQUN0QyxXQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUNwQyxhQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUV2RCxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ2YsU0FBUyxHQUFrQixJQUFJLENBQUM7SUFDaEMsV0FBVyxHQUFrQixJQUFJLENBQUM7SUFDbEMsWUFBWSxHQUFrQixJQUFJLENBQUM7SUFDbkMsV0FBVyxHQUEyQixFQUFFLENBQUM7SUFDekMsY0FBYyxDQUFNO0lBQ1osMkJBQTJCLEdBQUcsRUFBRSxDQUFDO0lBRXpDLFlBQVksZUFBZSxFQUFFLFVBQVUsRUFBRSxVQUFVO1FBQ2pELEtBQUssQ0FBQyxlQUFlLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsMkJBQTJCLEVBQUUsUUFBUSxJQUFJLEVBQUUsQ0FBQztRQUNqRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFBQyxPQUFPO1FBQUMsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFD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LENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BELEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUMxQyxXQUFXLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUMvRCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBSTtRQUNYLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDcEQsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzFDLEtBQUssR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsQyxJQUFJLEtBQUssRUFBRSxDQUFDO29CQUNWLE9BQU8sS0FBSyxDQUFDO2dCQUNmLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVRLDhCQUE4QixDQUFDLElBQUksRUFBRSxpQkFBaUI7UUFDN0QsSUFBSSxDQUFDLFdBQVcsRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDckMsVUFBVSxFQUFFLHFCQUFxQixDQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBQzdELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybVBpZWNlUHJvcGFnYXRlIH0gZnJvbSAnLi9waWVjZS1wcm9wYWdhdGUnO1xuaW1wb3J0IHsgRm9ybUFjdGlvbiB9IGZyb20gJy4vYWN0aW9uJztcbmltcG9ydCB7IFJlY29yZEZvcm1TdWJTZWN0aW9uIH0gZnJvbSAnLi9zdWJzZWN0aW9uJztcblxuY29uc3QgQUNUSVZFID0gJ2FjdGl2ZSc7XG5cbmV4cG9ydCBjbGFzcyBSZWNvcmRGb3JtU2VjdGlvbiBleHRlbmRzIEZvcm1QaWVjZVByb3BhZ2F0ZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2YXRpb24gPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2luYWN0aXZhdGlvbiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcblxuICBhY3RpdmUgPSBmYWxzZTtcbiAgc2VjdGlvbklkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgc2VjdGlvbkNvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBzZWN0aW9uVGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBzdWJTZWN0aW9uczogUmVjb3JkRm9ybVN1YlNlY3Rpb25bXSA9IFtdO1xuICBzdWJTZWN0aW9uc09iajogYW55O1xuICBwcml2YXRlIF9leGNsdXNpdmVTdWJTZWN0aW9uc0J5QXR0ciA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHNlY3Rpb25SZWNlaXZlZCwgZm9ybU9iamVjdCwgZm9ybUNvbmZpZykge1xuICAgIHN1cGVyKHNlY3Rpb25SZWNlaXZlZCwgZm9ybUNvbmZpZyk7XG4gICAgdGhpcy5wcm9wYWdhdGlvbkN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLl9mb3JtQ29uZmlnPy5wcm9wYWdhdGlvbkN1c3RvbUF0dHJpYnV0ZXM/LnNlY3Rpb25zID8/IFtdO1xuICAgIGlmICghc2VjdGlvblJlY2VpdmVkKSB7IHJldHVybjsgfVxuICAgIHRoaXMuc2VjdGlvbklkID0gKHNlY3Rpb25SZWNlaXZlZC5zZWN0aW9uSWQpID8gc2VjdGlvblJlY2VpdmVkLnNlY3Rpb25JZC50b1N0cmluZygpIDogJyc7XG4gICAgdGhpcy5zZWN0aW9uQ29kZSA9IChzZWN0aW9uUmVjZWl2ZWQuc2VjdGlvbkNvZGUpID8gc2VjdGlvblJlY2VpdmVkLnNlY3Rpb25Db2RlIDogJyc7XG4gICAgdGhpcy5zZWN0aW9uVGl0bGUgPSAoc2VjdGlvblJlY2VpdmVkLnNlY3Rpb25UaXRsZSkgPyBzZWN0aW9uUmVjZWl2ZWQuc2VjdGlvblRpdGxlIDogJyc7XG4gICAgdGhpcy5zdWJTZWN0aW9ucyA9IFtdO1xuICAgIHRoaXMuc3ViU2VjdGlvbnNPYmogPSB7fTtcbiAgICBpZiAoc2VjdGlvblJlY2VpdmVkLnN1YnNlY3Rpb25zKSB7XG4gICAgICBjb25zdCBzdWJzZWN0aW9ucyA9IHNlY3Rpb25SZWNlaXZlZC5zdWJzZWN0aW9ucy5tYXAoc3ViU2VjRGVmID0+IHtcbiAgICAgICAgY29uc3QgdmlzaWJsZVN0YXRlcyA9IHN1YlNlY0RlZi52aXNpYmxlU3RhdGVzID8/IFtdO1xuICAgICAgICBpZiAoc3ViU2VjRGVmLmVsZW1lbnRzICYmIEFycmF5LmlzQXJyYXkoc3ViU2VjRGVmLmVsZW1lbnRzKSkge1xuICAgICAgICAgIHN1YlNlY0RlZi5lbGVtZW50cyA9IHN1YlNlY0RlZi5lbGVtZW50cy5tYXAoZWxtID0+ICh7IGNvZGU6IGVsbS5lbGVtZW50Q29kZSwgdHlwZTogZWxtLmVsZW1lbnRUeXBlTmFtZSB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHsgLi4uc3ViU2VjRGVmLCB2aXNpYmxlU3RhdGVzIH07XG4gICAgICB9KTtcbiAgICAgIGZvciAoY29uc3Qgc3Vic2VjdGlvblJlY2VpdmVkIG9mIHN1YnNlY3Rpb25zKSB7XG4gICAgICAgIGNvbnN0IHN1YlNlY3Rpb25Ub0FkZCA9IG5ldyBSZWNvcmRGb3JtU3ViU2VjdGlvbihzdWJzZWN0aW9uUmVjZWl2ZWQsIGZvcm1PYmplY3QsIGZvcm1Db25maWcpO1xuICAgICAgICBjb25zdCBzdWJzZWN0aW9uQ29kZSA9IHN1YlNlY3Rpb25Ub0FkZC5zdWJzZWN0aW9uQ29kZTtcbiAgICAgICAgaWYgKHN1YnNlY3Rpb25Db2RlKSB7XG4gICAgICAgICAgdGhpcy5zdWJTZWN0aW9ucy5wdXNoKHN1YlNlY3Rpb25Ub0FkZCk7XG4gICAgICAgICAgdGhpcy5zdWJTZWN0aW9uc09ialtzdWJzZWN0aW9uQ29kZV0gPSBzdWJTZWN0aW9uVG9BZGQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBnZXQgY29kZSgpIHsgcmV0dXJuIHRoaXMuc2VjdGlvbkNvZGU7IH1cbiAgZ2V0IGFjdGl2YXRpb24oKSB7IHJldHVybiB0aGlzLl9hY3RpdmF0aW9uOyB9XG4gIGdldCBpbmFjdGl2YXRpb24oKSB7IHJldHVybiB0aGlzLl9pbmFjdGl2YXRpb247IH1cblxuICBhY3RpdmF0ZSgpIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlKSB7XG4gICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICB0aGlzLnNlY3Rpb25Db2RlICYmIHRoaXMuX2FjdGl2YXRpb24ubmV4dCh0aGlzLnNlY3Rpb25Db2RlKTtcbiAgICB9XG4gIH1cblxuICBpbmFjdGl2YXRlKCkge1xuICAgIGlmICh0aGlzLmFjdGl2ZSkge1xuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuc2VjdGlvbkNvZGUgJiYgdGhpcy5faW5hY3RpdmF0aW9uLm5leHQodGhpcy5zZWN0aW9uQ29kZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHRpdGxlKCkgeyByZXR1cm4gdGhpcy5zZWN0aW9uVGl0bGU7IH1cbiAgc2V0IHRpdGxlKHRpdGxlKSB7IHRoaXMuc2VjdGlvblRpdGxlID0gdGl0bGU7IH1cblxuICBnZXRWaXNpYmxlU3Vic2VjdGlvbnMoc3RhdGUpIHtcbiAgICByZXR1cm4gdGhpcy5zdWJTZWN0aW9ucy5maWx0ZXIoc3ViU2VjdGlvbiA9PiBzdWJTZWN0aW9uLnZpc2libGUpO1xuICB9XG5cbiAgZ2V0U3Vic2VjdGlvbihzdWJTZWN0aW9uQ29kZSkge1xuICAgIHJldHVybiAodGhpcy5zdWJTZWN0aW9uc09iaiAmJiB0aGlzLnN1YlNlY3Rpb25zT2JqW3N1YlNlY3Rpb25Db2RlXSlcbiAgICAgID8gdGhpcy5zdWJTZWN0aW9uc09ialtzdWJTZWN0aW9uQ29kZV0gOiBudWxsO1xuICB9XG5cbiAgYWN0aXZhdGVTdWJTZWN0aW9uKHN1YlNlY3Rpb25Db2RlKSB7XG4gICAgaWYgKHN1YlNlY3Rpb25Db2RlID09PSB0aGlzLl9leGNsdXNpdmVTdWJTZWN0aW9uc0J5QXR0cltBQ1RJVkVdKSB7IHJldHVybjsgfVxuICAgIGNvbnN0IHN1YlNlY3Rpb24gPSAodGhpcy5zdWJTZWN0aW9uc09iaiAmJiB0aGlzLnN1YlNlY3Rpb25zT2JqW3N1YlNlY3Rpb25Db2RlXSlcbiAgICAgID8gdGhpcy5zdWJTZWN0aW9uc09ialtzdWJTZWN0aW9uQ29kZV0gOiBudWxsO1xuICAgIGlmIChzdWJTZWN0aW9uKSB7XG4gICAgICBzdWJTZWN0aW9uPy5hY3RpdmF0ZSgpO1xuICAgICAgdGhpcy5fZXhjbHVzaXZlU3ViU2VjdGlvbnNCeUF0dHJbQUNUSVZFXSA9IHN1YlNlY3Rpb25Db2RlO1xuICAgIH1cbiAgfVxuXG4gIGdldEZpZWxkcygpIHtcbiAgICBsZXQgZmllbGRzQXJyYXk6IGFueVtdID0gW107XG4gICAgaWYgKHRoaXMuc3ViU2VjdGlvbnMgJiYgdGhpcy5zdWJTZWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHN1YlNlY3Rpb24gb2YgdGhpcy5zdWJTZWN0aW9ucykge1xuICAgICAgICBjb25zdCBzdWJzZWN0aW9uRmllbGRzOiBhbnlbXSA9IHN1YlNlY3Rpb24uZ2V0RmllbGRzKCkgPz8gW107XG4gICAgICAgIGlmIChzdWJzZWN0aW9uRmllbGRzPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgZmllbGRzQXJyYXkgPSBmaWVsZHNBcnJheS5jb25jYXQoc3Vic2VjdGlvbkZpZWxkcyk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZpZWxkc0FycmF5O1xuICB9XG5cbiAgZ2V0QWN0aW9ucygpOiBGb3JtQWN0aW9uW10ge1xuICAgIGxldCBhY3Rpb25BcnJheTogYW55W10gPSBbXTtcbiAgICBpZiAodGhpcy5zdWJTZWN0aW9ucyAmJiB0aGlzLnN1YlNlY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3Qgc3ViU2VjdGlvbiBvZiB0aGlzLnN1YlNlY3Rpb25zKSB7XG4gICAgICAgIGNvbnN0IHN1YlNlY3Rpb25BY3Rpb25zID0gc3ViU2VjdGlvbi5nZXRBY3Rpb25zKCkgPz8gW107XG4gICAgICAgIGlmIChzdWJTZWN0aW9uQWN0aW9ucz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGFjdGlvbkFycmF5ID0gYWN0aW9uQXJyYXkuY29uY2F0KHN1YlNlY3Rpb25BY3Rpb25zKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYWN0aW9uQXJyYXk7XG4gIH1cblxuICBnZXRBY3Rpb25OYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgbGV0IGFjdGlvbkFycmF5OiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmICh0aGlzLnN1YlNlY3Rpb25zICYmIHRoaXMuc3ViU2VjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBzdWJTZWN0aW9uIG9mIHRoaXMuc3ViU2VjdGlvbnMpIHtcbiAgICAgICAgYWN0aW9uQXJyYXkgPSBhY3Rpb25BcnJheS5jb25jYXQoc3ViU2VjdGlvbi5nZXRBY3Rpb25OYW1lcygpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGFjdGlvbkFycmF5O1xuICB9XG5cbiAgZ2V0RmllbGROYW1lcygpIHtcbiAgICBsZXQgZmllbGRzQXJyYXk6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKHRoaXMuc3ViU2VjdGlvbnMgJiYgdGhpcy5zdWJTZWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHN1YlNlY3Rpb24gb2YgdGhpcy5zdWJTZWN0aW9ucykge1xuICAgICAgICBmaWVsZHNBcnJheSA9IGZpZWxkc0FycmF5LmNvbmNhdChzdWJTZWN0aW9uLmdldEZpZWxkTmFtZXMoKSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmaWVsZHNBcnJheTtcbiAgfVxuXG4gIGdldEZpZWxkKG5hbWUpIHtcbiAgICBsZXQgZmllbGQgPSBudWxsO1xuICAgIGlmICh0aGlzLnN1YlNlY3Rpb25zICYmIHRoaXMuc3ViU2VjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBzdWJTZWN0aW9uIG9mIHRoaXMuc3ViU2VjdGlvbnMpIHtcbiAgICAgICAgZmllbGQgPSBzdWJTZWN0aW9uLmdldEZpZWxkKG5hbWUpO1xuICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBvdmVycmlkZSBmb3JtU3RhdGVDaGFuZ2VDdXN0b21TdWJzY3JpYmUoZm9ybSwgZm9ybUNoYW5nZVN1YmplY3QpIHtcbiAgICB0aGlzLnN1YlNlY3Rpb25zPy5mb3JFYWNoKHN1YnNlY3Rpb24gPT4ge1xuICAgICAgc3Vic2VjdGlvbj8uY29ubmVjdFdpdGhQYXJlbnRGb3JtKGZvcm0sIGZvcm1DaGFuZ2VTdWJqZWN0KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NsYXNzZXMvZm9ybXMvc2VjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRXZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVwRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUM7QUFFeEIsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGtCQUFrQjtJQUN0QyxXQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUNwQyxhQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQUMvQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLFVBQVUsR0FBa0IsSUFBSSxDQUFDO0lBQ2pDLFlBQVksR0FBa0IsSUFBSSxDQUFDO0lBQ25DLGFBQWEsR0FBa0IsSUFBSSxDQUFDO0lBQ3BDLFlBQVksR0FBMkIsRUFBRSxDQUFDO0lBQzFDLGVBQWUsQ0FBTTtJQUNyQiwyQkFBMkIsR0FBRyxFQUFFLENBQUM7SUFFekMsWUFBWSxlQUFlLEVBQUUsVUFBVSxFQUFFLFVBQVU7UUFDakQsS0FBSyxDQUFDLGVBQWUsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSwyQkFBMkIsRUFBRSxRQUFRLElBQUksRUFBRSxDQUFDO1FBQ2pHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENB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QUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUFJO1FBQ1gsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN0RCxLQUFLLE1BQU0sVUFBVSxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDM0MsS0FBSyxHQUFHLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2xDLElBQUksS0FBSyxFQUFFLENBQUM7b0JBQ1YsT0FBTyxLQUFLLENBQUM7Z0JBQ2YsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRVEsOEJBQThCLENBQUMsSUFBSSxFQUFFLGlCQUFpQjtRQUM3RCxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUN0QyxVQUFVLEVBQUUscUJBQXFCLENBQUMsSUFBSSxFQUFFLGlCQUFpQixDQUFDLENBQUM7UUFDN0QsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBGb3JtUGllY2VQcm9wYWdhdGUgfSBmcm9tICcuL3BpZWNlLXByb3BhZ2F0ZSc7XG5pbXBvcnQgeyBGb3JtQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24nO1xuaW1wb3J0IHsgUmVjb3JkRm9ybVN1YlNlY3Rpb24gfSBmcm9tICcuL3N1YnNlY3Rpb24nO1xuXG5jb25zdCBBQ1RJVkUgPSAnYWN0aXZlJztcblxuZXhwb3J0IGNsYXNzIFJlY29yZEZvcm1TZWN0aW9uIGV4dGVuZHMgRm9ybVBpZWNlUHJvcGFnYXRlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBfYWN0aXZhdGlvbiA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5hY3RpdmF0aW9uID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwcml2YXRlIF9hY3RpdmUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc2VjdGlvbklkOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfc2VjdGlvbkNvZGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9zZWN0aW9uVGl0bGU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9zdWJTZWN0aW9uczogUmVjb3JkRm9ybVN1YlNlY3Rpb25bXSA9IFtdO1xuICBwcml2YXRlIF9zdWJTZWN0aW9uc09iajogYW55O1xuICBwcml2YXRlIF9leGNsdXNpdmVTdWJTZWN0aW9uc0J5QXR0ciA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHNlY3Rpb25SZWNlaXZlZCwgZm9ybU9iamVjdCwgZm9ybUNvbmZpZykge1xuICAgIHN1cGVyKHNlY3Rpb25SZWNlaXZlZCwgZm9ybUNvbmZpZyk7XG4gICAgdGhpcy5wcm9wYWdhdGlvbkN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLl9mb3JtQ29uZmlnPy5wcm9wYWdhdGlvbkN1c3RvbUF0dHJpYnV0ZXM/LnNlY3Rpb25zID8/IFtdO1xuICAgIGlmICghc2VjdGlvblJlY2VpdmVkKSB7IHJldHVybjsgfVxuICAgIHRoaXMuX3NlY3Rpb25JZCA9IChzZWN0aW9uUmVjZWl2ZWQuc2VjdGlvbklkKSA/IHNlY3Rpb25SZWNlaXZlZC5zZWN0aW9uSWQudG9TdHJpbmcoKSA6ICcnO1xuICAgIHRoaXMuX3NlY3Rpb25Db2RlID0gKHNlY3Rpb25SZWNlaXZlZC5zZWN0aW9uQ29kZSkgPyBzZWN0aW9uUmVjZWl2ZWQuc2VjdGlvbkNvZGUgOiAnJztcbiAgICB0aGlzLl9zZWN0aW9uVGl0bGUgPSAoc2VjdGlvblJlY2VpdmVkLnNlY3Rpb25UaXRsZSkgPyBzZWN0aW9uUmVjZWl2ZWQuc2VjdGlvblRpdGxlIDogJyc7XG4gICAgdGhpcy5fc3ViU2VjdGlvbnMgPSBbXTtcbiAgICB0aGlzLl9zdWJTZWN0aW9uc09iaiA9IHt9O1xuICAgIGlmIChzZWN0aW9uUmVjZWl2ZWQuc3Vic2VjdGlvbnMpIHtcbiAgICAgIGNvbnN0IHN1YnNlY3Rpb25zID0gc2VjdGlvblJlY2VpdmVkLnN1YnNlY3Rpb25zLm1hcChzdWJTZWNEZWYgPT4ge1xuICAgICAgICBjb25zdCB2aXNpYmxlU3RhdGVzID0gc3ViU2VjRGVmLnZpc2libGVTdGF0ZXMgPz8gW107XG4gICAgICAgIGlmIChzdWJTZWNEZWYuZWxlbWVudHMgJiYgQXJyYXkuaXNBcnJheShzdWJTZWNEZWYuZWxlbWVudHMpKSB7XG4gICAgICAgICAgc3ViU2VjRGVmLmVsZW1lbnRzID0gc3ViU2VjRGVmLmVsZW1lbnRzLm1hcChlbG0gPT4gKHsgY29kZTogZWxtLmVsZW1lbnRDb2RlLCB0eXBlOiBlbG0uZWxlbWVudFR5cGVOYW1lIH0pKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geyAuLi5zdWJTZWNEZWYsIHZpc2libGVTdGF0ZXMgfTtcbiAgICAgIH0pO1xuICAgICAgZm9yIChjb25zdCBzdWJzZWN0aW9uUmVjZWl2ZWQgb2Ygc3Vic2VjdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgc3ViU2VjdGlvblRvQWRkID0gbmV3IFJlY29yZEZvcm1TdWJTZWN0aW9uKHN1YnNlY3Rpb25SZWNlaXZlZCwgZm9ybU9iamVjdCwgZm9ybUNvbmZpZyk7XG4gICAgICAgIGNvbnN0IHN1YnNlY3Rpb25Db2RlID0gc3ViU2VjdGlvblRvQWRkLnN1YnNlY3Rpb25Db2RlO1xuICAgICAgICBpZiAoc3Vic2VjdGlvbkNvZGUpIHtcbiAgICAgICAgICB0aGlzLl9zdWJTZWN0aW9ucy5wdXNoKHN1YlNlY3Rpb25Ub0FkZCk7XG4gICAgICAgICAgdGhpcy5fc3ViU2VjdGlvbnNPYmpbc3Vic2VjdGlvbkNvZGVdID0gc3ViU2VjdGlvblRvQWRkO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IGNvZGUoKSB7IHJldHVybiB0aGlzLl9zZWN0aW9uQ29kZTsgfVxuICBnZXQgYWN0aXZhdGlvbigpIHsgcmV0dXJuIHRoaXMuX2FjdGl2YXRpb247IH1cbiAgZ2V0IGluYWN0aXZhdGlvbigpIHsgcmV0dXJuIHRoaXMuX2luYWN0aXZhdGlvbjsgfVxuXG4gIGdldCBhY3RpdmUoKSB7IHJldHVybiB0aGlzLl9hY3RpdmU7IH1cbiAgZ2V0IHNlY3Rpb25JZCgpIHsgcmV0dXJuIHRoaXMuX3NlY3Rpb25JZDsgfVxuICBnZXQgc2VjdGlvbkNvZGUoKSB7IHJldHVybiB0aGlzLl9zZWN0aW9uQ29kZTsgfVxuICBnZXQgc2VjdGlvblRpdGxlKCkgeyByZXR1cm4gdGhpcy5fc2VjdGlvblRpdGxlOyB9XG4gIGdldCBzdWJTZWN0aW9ucygpIHsgcmV0dXJuIHRoaXMuX3N1YlNlY3Rpb25zOyB9XG4gIGdldCBzdWJTZWN0aW9uc09iaigpIHsgcmV0dXJuIHRoaXMuX3N1YlNlY3Rpb25zT2JqOyB9XG5cbiAgc2V0IGFjdGl2ZShhY3RpdmUpIHsgdGhpcy5fYWN0aXZlID0gYWN0aXZlOyB9XG4gIHNldCBzZWN0aW9uSWQoc2VjdGlvbklkKSB7IHRoaXMuX3NlY3Rpb25JZCA9IHNlY3Rpb25JZDsgfVxuICBzZXQgc2VjdGlvbkNvZGUoc2VjdGlvbkNvZGUpIHsgdGhpcy5fc2VjdGlvbkNvZGUgPSBzZWN0aW9uQ29kZTsgfVxuICBzZXQgc2VjdGlvblRpdGxlKHNlY3Rpb25UaXRsZSkgeyB0aGlzLl9zZWN0aW9uVGl0bGUgPSBzZWN0aW9uVGl0bGU7IH1cbiAgc2V0IHN1YlNlY3Rpb25zKHN1YlNlY3Rpb25zKSB7IHRoaXMuX3N1YlNlY3Rpb25zID0gc3ViU2VjdGlvbnM7IH1cbiAgc2V0IHN1YlNlY3Rpb25zT2JqKHN1YlNlY3Rpb25zT2JqKSB7IHRoaXMuX3N1YlNlY3Rpb25zT2JqID0gc3ViU2VjdGlvbnNPYmo7IH1cblxuICBhY3RpdmF0ZSgpIHtcbiAgICBpZiAoIXRoaXMuX2FjdGl2ZSkge1xuICAgICAgdGhpcy5fYWN0aXZlID0gdHJ1ZTtcbiAgICAgIHRoaXMuX3NlY3Rpb25Db2RlICYmIHRoaXMuX2FjdGl2YXRpb24ubmV4dCh0aGlzLl9zZWN0aW9uQ29kZSk7XG4gICAgfVxuICB9XG5cbiAgaW5hY3RpdmF0ZSgpIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlKSB7XG4gICAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZTtcbiAgICAgIHRoaXMuX3NlY3Rpb25Db2RlICYmIHRoaXMuX2luYWN0aXZhdGlvbi5uZXh0KHRoaXMuX3NlY3Rpb25Db2RlKTtcbiAgICB9XG4gIH1cblxuICBnZXQgdGl0bGUoKSB7IHJldHVybiB0aGlzLl9zZWN0aW9uVGl0bGU7IH1cbiAgc2V0IHRpdGxlKHRpdGxlKSB7IHRoaXMuX3NlY3Rpb25UaXRsZSA9IHRpdGxlOyB9XG5cbiAgZ2V0VmlzaWJsZVN1YnNlY3Rpb25zKHN0YXRlKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YlNlY3Rpb25zLmZpbHRlcihzdWJTZWN0aW9uID0+IHN1YlNlY3Rpb24udmlzaWJsZSk7XG4gIH1cblxuICBnZXRTdWJzZWN0aW9uKHN1YlNlY3Rpb25Db2RlKSB7XG4gICAgcmV0dXJuICh0aGlzLl9zdWJTZWN0aW9uc09iaiAmJiB0aGlzLl9zdWJTZWN0aW9uc09ialtzdWJTZWN0aW9uQ29kZV0pXG4gICAgICA/IHRoaXMuX3N1YlNlY3Rpb25zT2JqW3N1YlNlY3Rpb25Db2RlXSA6IG51bGw7XG4gIH1cblxuICBhY3RpdmF0ZVN1YlNlY3Rpb24oc3ViU2VjdGlvbkNvZGUpIHtcbiAgICBpZiAoc3ViU2VjdGlvbkNvZGUgPT09IHRoaXMuX2V4Y2x1c2l2ZVN1YlNlY3Rpb25zQnlBdHRyW0FDVElWRV0pIHsgcmV0dXJuOyB9XG4gICAgY29uc3Qgc3ViU2VjdGlvbiA9ICh0aGlzLl9zdWJTZWN0aW9uc09iaiAmJiB0aGlzLl9zdWJTZWN0aW9uc09ialtzdWJTZWN0aW9uQ29kZV0pXG4gICAgICA/IHRoaXMuX3N1YlNlY3Rpb25zT2JqW3N1YlNlY3Rpb25Db2RlXSA6IG51bGw7XG4gICAgaWYgKHN1YlNlY3Rpb24pIHtcbiAgICAgIHN1YlNlY3Rpb24/LmFjdGl2YXRlKCk7XG4gICAgICB0aGlzLl9leGNsdXNpdmVTdWJTZWN0aW9uc0J5QXR0cltBQ1RJVkVdID0gc3ViU2VjdGlvbkNvZGU7XG4gICAgfVxuICB9XG5cbiAgZ2V0RmllbGRzKCkge1xuICAgIGxldCBmaWVsZHNBcnJheTogYW55W10gPSBbXTtcbiAgICBpZiAodGhpcy5fc3ViU2VjdGlvbnMgJiYgdGhpcy5fc3ViU2VjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBzdWJTZWN0aW9uIG9mIHRoaXMuX3N1YlNlY3Rpb25zKSB7XG4gICAgICAgIGNvbnN0IHN1YnNlY3Rpb25GaWVsZHM6IGFueVtdID0gc3ViU2VjdGlvbi5nZXRGaWVsZHMoKSA/PyBbXTtcbiAgICAgICAgaWYgKHN1YnNlY3Rpb25GaWVsZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBmaWVsZHNBcnJheSA9IGZpZWxkc0FycmF5LmNvbmNhdChzdWJzZWN0aW9uRmllbGRzKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmllbGRzQXJyYXk7XG4gIH1cblxuICBnZXRBY3Rpb25zKCk6IEZvcm1BY3Rpb25bXSB7XG4gICAgbGV0IGFjdGlvbkFycmF5OiBhbnlbXSA9IFtdO1xuICAgIGlmICh0aGlzLl9zdWJTZWN0aW9ucyAmJiB0aGlzLl9zdWJTZWN0aW9ucy5sZW5ndGggPiAwKSB7XG4gICAgICBmb3IgKGNvbnN0IHN1YlNlY3Rpb24gb2YgdGhpcy5fc3ViU2VjdGlvbnMpIHtcbiAgICAgICAgY29uc3Qgc3ViU2VjdGlvbkFjdGlvbnMgPSBzdWJTZWN0aW9uLmdldEFjdGlvbnMoKSA/PyBbXTtcbiAgICAgICAgaWYgKHN1YlNlY3Rpb25BY3Rpb25zPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgYWN0aW9uQXJyYXkgPSBhY3Rpb25BcnJheS5jb25jYXQoc3ViU2VjdGlvbkFjdGlvbnMpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBhY3Rpb25BcnJheTtcbiAgfVxuXG4gIGdldEFjdGlvbk5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICBsZXQgYWN0aW9uQXJyYXk6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKHRoaXMuX3N1YlNlY3Rpb25zICYmIHRoaXMuX3N1YlNlY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3Qgc3ViU2VjdGlvbiBvZiB0aGlzLl9zdWJTZWN0aW9ucykge1xuICAgICAgICBhY3Rpb25BcnJheSA9IGFjdGlvbkFycmF5LmNvbmNhdChzdWJTZWN0aW9uLmdldEFjdGlvbk5hbWVzKCkpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gYWN0aW9uQXJyYXk7XG4gIH1cblxuICBnZXRGaWVsZE5hbWVzKCkge1xuICAgIGxldCBmaWVsZHNBcnJheTogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAodGhpcy5fc3ViU2VjdGlvbnMgJiYgdGhpcy5fc3ViU2VjdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChjb25zdCBzdWJTZWN0aW9uIG9mIHRoaXMuX3N1YlNlY3Rpb25zKSB7XG4gICAgICAgIGZpZWxkc0FycmF5ID0gZmllbGRzQXJyYXkuY29uY2F0KHN1YlNlY3Rpb24uZ2V0RmllbGROYW1lcygpKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZpZWxkc0FycmF5O1xuICB9XG5cbiAgZ2V0RmllbGQobmFtZSkge1xuICAgIGxldCBmaWVsZCA9IG51bGw7XG4gICAgaWYgKHRoaXMuX3N1YlNlY3Rpb25zICYmIHRoaXMuX3N1YlNlY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgIGZvciAoY29uc3Qgc3ViU2VjdGlvbiBvZiB0aGlzLl9zdWJTZWN0aW9ucykge1xuICAgICAgICBmaWVsZCA9IHN1YlNlY3Rpb24uZ2V0RmllbGQobmFtZSk7XG4gICAgICAgIGlmIChmaWVsZCkge1xuICAgICAgICAgIHJldHVybiBmaWVsZDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIG92ZXJyaWRlIGZvcm1TdGF0ZUNoYW5nZUN1c3RvbVN1YnNjcmliZShmb3JtLCBmb3JtQ2hhbmdlU3ViamVjdCkge1xuICAgIHRoaXMuX3N1YlNlY3Rpb25zPy5mb3JFYWNoKHN1YnNlY3Rpb24gPT4ge1xuICAgICAgc3Vic2VjdGlvbj8uY29ubmVjdFdpdGhQYXJlbnRGb3JtKGZvcm0sIGZvcm1DaGFuZ2VTdWJqZWN0KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -2,24 +2,24 @@ import { FormPiecePropagate } from './piece-propagate';
2
2
  import { elementTypes } from './form.constants';
3
3
  export class RecordFormSubSection extends FormPiecePropagate {
4
4
  _customRender = null;
5
- subsectionId = null;
6
- subsectionCode = null;
7
- subsectionTitle = null;
8
- subSectionElements = [];
9
- subSectionFields = [];
10
- subSectionTables = [];
11
- subSectionActions = [];
12
- elementsArray = {};
13
- active = false;
5
+ _subsectionId = null;
6
+ _subsectionCode = null;
7
+ _subsectionTitle = null;
8
+ _subSectionElements = [];
9
+ _subSectionFields = [];
10
+ _subSectionTables = [];
11
+ _subSectionActions = [];
12
+ _elementsArray = {};
13
+ _active = false;
14
14
  constructor(subsectionReceived, formObject, formConfig) {
15
15
  super(subsectionReceived, formConfig);
16
16
  this.propagationCustomAttributes = this._formConfig?.propagationCustomAttributes?.subsections ?? [];
17
17
  if (!subsectionReceived) {
18
18
  return;
19
19
  }
20
- this.subsectionId = (subsectionReceived.subsectionId) ? subsectionReceived.subsectionId.toString() : '';
21
- this.subsectionCode = (subsectionReceived.subsectionCode) ? subsectionReceived.subsectionCode : '';
22
- this.subsectionTitle = (subsectionReceived.subsectionTitle) ? subsectionReceived.subsectionTitle : '';
20
+ this._subsectionId = (subsectionReceived.subsectionId) ? subsectionReceived.subsectionId.toString() : '';
21
+ this._subsectionCode = (subsectionReceived.subsectionCode) ? subsectionReceived.subsectionCode : '';
22
+ this._subsectionTitle = (subsectionReceived.subsectionTitle) ? subsectionReceived.subsectionTitle : '';
23
23
  if (subsectionReceived.elements) {
24
24
  for (const receivedElement of subsectionReceived.elements) {
25
25
  let elementObject = null;
@@ -28,54 +28,72 @@ export class RecordFormSubSection extends FormPiecePropagate {
28
28
  switch (type) {
29
29
  case elementTypes.field:
30
30
  elementObject = formObject.getField(code);
31
- arrayToAdd = this.subSectionFields;
31
+ arrayToAdd = this._subSectionFields;
32
32
  break;
33
33
  case elementTypes.table:
34
34
  elementObject = formObject.getTable(code);
35
- arrayToAdd = this.subSectionTables;
35
+ arrayToAdd = this._subSectionTables;
36
36
  break;
37
37
  case elementTypes.action:
38
38
  elementObject = formObject.getAction(code);
39
- arrayToAdd = this.subSectionActions;
39
+ arrayToAdd = this._subSectionActions;
40
40
  break;
41
41
  }
42
42
  if (elementObject) {
43
43
  elementObject.elementType = type;
44
44
  arrayToAdd.push(elementObject);
45
- this.subSectionElements.push(elementObject);
46
- this.elementsArray[code] = elementObject;
45
+ this._subSectionElements.push(elementObject);
46
+ this._elementsArray[code] = elementObject;
47
47
  }
48
48
  }
49
49
  }
50
50
  }
51
51
  get customRender() { return this._customRender; }
52
52
  set customRender(customRenderName) { this._customRender = customRenderName; }
53
+ get subsectionId() { return this._subsectionId; }
54
+ get subsectionCode() { return this._subsectionCode; }
55
+ get subsectionTitle() { return this._subsectionTitle; }
56
+ get subSectionElements() { return this._subSectionElements; }
57
+ get subSectionFields() { return this._subSectionFields; }
58
+ get subSectionTables() { return this._subSectionTables; }
59
+ get subSectionActions() { return this._subSectionActions; }
60
+ get elementsArray() { return this._elementsArray; }
61
+ get active() { return this._active; }
62
+ set subsectionId(subsectionId) { this._subsectionId = subsectionId; }
63
+ set subsectionCode(subsectionCode) { this._subsectionCode = subsectionCode; }
64
+ set subsectionTitle(subsectionTitle) { this._subsectionTitle = subsectionTitle; }
65
+ set subSectionElements(subSectionElements) { this._subSectionElements = subSectionElements; }
66
+ set subSectionFields(subSectionFields) { this._subSectionFields = subSectionFields; }
67
+ set subSectionTables(subSectionTables) { this._subSectionTables = subSectionTables; }
68
+ set subSectionActions(subSectionActions) { this._subSectionActions = subSectionActions; }
69
+ set elementsArray(elementsArray) { this._elementsArray = elementsArray; }
70
+ set active(active) { this._active = active; }
53
71
  getField(name) {
54
- return this.subSectionFields.find(fld => fld.name === name);
72
+ return this._subSectionFields.find(fld => fld.name === name);
55
73
  }
56
74
  getFields() {
57
- return this.subSectionFields;
75
+ return this._subSectionFields;
58
76
  }
59
77
  getFieldNames() {
60
- return this.subSectionFields.map(field => field.code);
78
+ return this._subSectionFields.map(field => field.code);
61
79
  }
62
80
  getActions() {
63
- return this.subSectionActions;
81
+ return this._subSectionActions;
64
82
  }
65
83
  getActionNames() {
66
- return this.subSectionActions.map(action => action.actionCode);
84
+ return this._subSectionActions.map(action => action.actionCode);
67
85
  }
68
86
  activate() {
69
- if (!this.active) {
70
- this.active = true;
87
+ if (!this._active) {
88
+ this._active = true;
71
89
  // this.subsectionCode && this._activation.next(this.subsectionCode);
72
90
  }
73
91
  }
74
92
  inactivate() {
75
- if (this.active) {
76
- this.active = false;
93
+ if (this._active) {
94
+ this._active = false;
77
95
  // this.subsectionCode && this._inactivation.next(this.subsectionCode);
78
96
  }
79
97
  }
80
98
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NsYXNzZXMvZm9ybXMvc3Vic2VjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGtCQUFrQjtJQUMxRCxhQUFhLEdBQWtCLElBQUksQ0FBQztJQUNwQyxZQUFZLEdBQWtCLElBQUksQ0FBQztJQUNuQyxjQUFjLEdBQWtCLElBQUksQ0FBQztJQUNyQyxlQUFlLEdBQWtCLElBQUksQ0FBQztJQUV0QyxrQkFBa0IsR0FBVSxFQUFFLENBQUM7SUFDL0IsZ0JBQWdCLEdBQVUsRUFBRSxDQUFDO0lBQzdCLGdCQUFnQixHQUFVLEVBQUUsQ0FBQztJQUM3QixpQkFBaUIsR0FBVSxFQUFFLENBQUM7SUFDOUIsYUFBYSxHQUFRLEVBQUUsQ0FBQztJQUN4QixNQUFNLEdBQUcsS0FBSyxDQUFDO0lBRWYsWUFBWSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsVUFBVTtRQUNwRCxLQUFLLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsMkJBQTJCLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUNwRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENB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QUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDcEIsdUVBQXVFO1FBQ3pFLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtUGllY2VQcm9wYWdhdGUgfSBmcm9tICcuL3BpZWNlLXByb3BhZ2F0ZSc7XG5pbXBvcnQgeyBGb3JtQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24nO1xuaW1wb3J0IHsgZWxlbWVudFR5cGVzIH0gZnJvbSAnLi9mb3JtLmNvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBSZWNvcmRGb3JtU3ViU2VjdGlvbiBleHRlbmRzIEZvcm1QaWVjZVByb3BhZ2F0ZSB7XG4gIF9jdXN0b21SZW5kZXI6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBzdWJzZWN0aW9uSWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBzdWJzZWN0aW9uQ29kZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHN1YnNlY3Rpb25UaXRsZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgc3ViU2VjdGlvbkVsZW1lbnRzOiBhbnlbXSA9IFtdO1xuICBzdWJTZWN0aW9uRmllbGRzOiBhbnlbXSA9IFtdO1xuICBzdWJTZWN0aW9uVGFibGVzOiBhbnlbXSA9IFtdO1xuICBzdWJTZWN0aW9uQWN0aW9uczogYW55W10gPSBbXTtcbiAgZWxlbWVudHNBcnJheTogYW55ID0ge307XG4gIGFjdGl2ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHN1YnNlY3Rpb25SZWNlaXZlZCwgZm9ybU9iamVjdCwgZm9ybUNvbmZpZykge1xuICAgIHN1cGVyKHN1YnNlY3Rpb25SZWNlaXZlZCwgZm9ybUNvbmZpZyk7XG4gICAgdGhpcy5wcm9wYWdhdGlvbkN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLl9mb3JtQ29uZmlnPy5wcm9wYWdhdGlvbkN1c3RvbUF0dHJpYnV0ZXM/LnN1YnNlY3Rpb25zID8/IFtdO1xuICAgIGlmICghc3Vic2VjdGlvblJlY2VpdmVkKSB7IHJldHVybjsgfVxuICAgIHRoaXMuc3Vic2VjdGlvbklkID0gKHN1YnNlY3Rpb25SZWNlaXZlZC5zdWJzZWN0aW9uSWQpID8gc3Vic2VjdGlvblJlY2VpdmVkLnN1YnNlY3Rpb25JZC50b1N0cmluZygpIDogJyc7XG4gICAgdGhpcy5zdWJzZWN0aW9uQ29kZSA9IChzdWJzZWN0aW9uUmVjZWl2ZWQuc3Vic2VjdGlvbkNvZGUpID8gc3Vic2VjdGlvblJlY2VpdmVkLnN1YnNlY3Rpb25Db2RlIDogJyc7XG4gICAgdGhpcy5zdWJzZWN0aW9uVGl0bGUgPSAoc3Vic2VjdGlvblJlY2VpdmVkLnN1YnNlY3Rpb25UaXRsZSkgPyBzdWJzZWN0aW9uUmVjZWl2ZWQuc3Vic2VjdGlvblRpdGxlIDogJyc7XG4gICAgaWYgKHN1YnNlY3Rpb25SZWNlaXZlZC5lbGVtZW50cykge1xuICAgICAgZm9yIChjb25zdCByZWNlaXZlZEVsZW1lbnQgb2Ygc3Vic2VjdGlvblJlY2VpdmVkLmVsZW1lbnRzKSB7XG4gICAgICAgIGxldCBlbGVtZW50T2JqZWN0OiBhbnkgPSBudWxsO1xuICAgICAgICBsZXQgYXJyYXlUb0FkZDogYW55W10gPSBbXTtcbiAgICAgICAgY29uc3QgeyB0eXBlLCBjb2RlIH0gPSByZWNlaXZlZEVsZW1lbnQ7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgZWxlbWVudFR5cGVzLmZpZWxkOlxuICAgICAgICAgICAgZWxlbWVudE9iamVjdCA9IGZvcm1PYmplY3QuZ2V0RmllbGQoY29kZSk7XG4gICAgICAgICAgICBhcnJheVRvQWRkID0gdGhpcy5zdWJTZWN0aW9uRmllbGRzO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBlbGVtZW50VHlwZXMudGFibGU6XG4gICAgICAgICAgICBlbGVtZW50T2JqZWN0ID0gZm9ybU9iamVjdC5nZXRUYWJsZShjb2RlKTtcbiAgICAgICAgICAgIGFycmF5VG9BZGQgPSB0aGlzLnN1YlNlY3Rpb25UYWJsZXM7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIGVsZW1lbnRUeXBlcy5hY3Rpb246XG4gICAgICAgICAgICBlbGVtZW50T2JqZWN0ID0gZm9ybU9iamVjdC5nZXRBY3Rpb24oY29kZSk7XG4gICAgICAgICAgICBhcnJheVRvQWRkID0gdGhpcy5zdWJTZWN0aW9uQWN0aW9ucztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbGVtZW50T2JqZWN0KSB7XG4gICAgICAgICAgZWxlbWVudE9iamVjdC5lbGVtZW50VHlwZSA9IHR5cGU7XG4gICAgICAgICAgYXJyYXlUb0FkZC5wdXNoKGVsZW1lbnRPYmplY3QpO1xuICAgICAgICAgIHRoaXMuc3ViU2VjdGlvbkVsZW1lbnRzLnB1c2goZWxlbWVudE9iamVjdCk7XG4gICAgICAgICAgdGhpcy5lbGVtZW50c0FycmF5W2NvZGVdID0gZWxlbWVudE9iamVjdDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBjdXN0b21SZW5kZXIoKSB7IHJldHVybiB0aGlzLl9jdXN0b21SZW5kZXI7IH1cbiAgc2V0IGN1c3RvbVJlbmRlcihjdXN0b21SZW5kZXJOYW1lKSB7IHRoaXMuX2N1c3RvbVJlbmRlciA9IGN1c3RvbVJlbmRlck5hbWU7IH1cblxuICBnZXRGaWVsZChuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViU2VjdGlvbkZpZWxkcy5maW5kKGZsZCA9PiBmbGQubmFtZSA9PT0gbmFtZSk7XG4gIH1cblxuICBnZXRGaWVsZHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViU2VjdGlvbkZpZWxkcztcbiAgfVxuXG4gIGdldEZpZWxkTmFtZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViU2VjdGlvbkZpZWxkcy5tYXAoZmllbGQgPT4gZmllbGQuY29kZSk7XG4gIH1cblxuICBnZXRBY3Rpb25zKCk6IEZvcm1BY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViU2VjdGlvbkFjdGlvbnM7XG4gIH1cblxuICBnZXRBY3Rpb25OYW1lcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3ViU2VjdGlvbkFjdGlvbnMubWFwKGFjdGlvbiA9PiBhY3Rpb24uYWN0aW9uQ29kZSk7XG4gIH1cblxuICBhY3RpdmF0ZSgpIHtcbiAgICBpZiAoIXRoaXMuYWN0aXZlKSB7XG4gICAgICB0aGlzLmFjdGl2ZSA9IHRydWU7XG4gICAgICAvLyB0aGlzLnN1YnNlY3Rpb25Db2RlICYmIHRoaXMuX2FjdGl2YXRpb24ubmV4dCh0aGlzLnN1YnNlY3Rpb25Db2RlKTtcbiAgICB9XG4gIH1cblxuICBpbmFjdGl2YXRlKCkge1xuICAgIGlmICh0aGlzLmFjdGl2ZSkge1xuICAgICAgdGhpcy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIC8vIHRoaXMuc3Vic2VjdGlvbkNvZGUgJiYgdGhpcy5faW5hY3RpdmF0aW9uLm5leHQodGhpcy5zdWJzZWN0aW9uQ29kZSk7XG4gICAgfVxuICB9XG59XG4iXX0=
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2VjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1YWluLW5nLWZvcm1zLWxpYi9zcmMvbGliL2NsYXNzZXMvZm9ybXMvc3Vic2VjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV2RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFaEQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGtCQUFrQjtJQUNsRCxhQUFhLEdBQWtCLElBQUksQ0FBQztJQUNwQyxhQUFhLEdBQWtCLElBQUksQ0FBQztJQUNwQyxlQUFlLEdBQWtCLElBQUksQ0FBQztJQUN0QyxnQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO0lBQ3ZDLG1CQUFtQixHQUFVLEVBQUUsQ0FBQztJQUNoQyxpQkFBaUIsR0FBVSxFQUFFLENBQUM7SUFDOUIsaUJBQWlCLEdBQVUsRUFBRSxDQUFDO0lBQzlCLGtCQUFrQixHQUFVLEVBQUUsQ0FBQztJQUMvQixjQUFjLEdBQVEsRUFBRSxDQUFDO0lBQ3pCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFFeEIsWUFBWSxrQkFBa0IsRUFBRSxVQUFVLEVBQUUsVUFBVTtRQUNwRCxLQUFLLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsMkJBQTJCLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUNwRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsa0JBQWtCLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFF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QyxJQUFJLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNwQixxRUFBcUU7UUFDdkUsQ0FBQztJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDckIsdUVBQXVFO1FBQ3pFLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtUGllY2VQcm9wYWdhdGUgfSBmcm9tICcuL3BpZWNlLXByb3BhZ2F0ZSc7XG5pbXBvcnQgeyBGb3JtQWN0aW9uIH0gZnJvbSAnLi9hY3Rpb24nO1xuaW1wb3J0IHsgZWxlbWVudFR5cGVzIH0gZnJvbSAnLi9mb3JtLmNvbnN0YW50cyc7XG5cbmV4cG9ydCBjbGFzcyBSZWNvcmRGb3JtU3ViU2VjdGlvbiBleHRlbmRzIEZvcm1QaWVjZVByb3BhZ2F0ZSB7XG4gIHByaXZhdGUgX2N1c3RvbVJlbmRlcjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3N1YnNlY3Rpb25JZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX3N1YnNlY3Rpb25Db2RlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfc3Vic2VjdGlvblRpdGxlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfc3ViU2VjdGlvbkVsZW1lbnRzOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIF9zdWJTZWN0aW9uRmllbGRzOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIF9zdWJTZWN0aW9uVGFibGVzOiBhbnlbXSA9IFtdO1xuICBwcml2YXRlIF9zdWJTZWN0aW9uQWN0aW9uczogYW55W10gPSBbXTtcbiAgcHJpdmF0ZSBfZWxlbWVudHNBcnJheTogYW55ID0ge307XG4gIHByaXZhdGUgX2FjdGl2ZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHN1YnNlY3Rpb25SZWNlaXZlZCwgZm9ybU9iamVjdCwgZm9ybUNvbmZpZykge1xuICAgIHN1cGVyKHN1YnNlY3Rpb25SZWNlaXZlZCwgZm9ybUNvbmZpZyk7XG4gICAgdGhpcy5wcm9wYWdhdGlvbkN1c3RvbUF0dHJpYnV0ZXMgPSB0aGlzLl9mb3JtQ29uZmlnPy5wcm9wYWdhdGlvbkN1c3RvbUF0dHJpYnV0ZXM/LnN1YnNlY3Rpb25zID8/IFtdO1xuICAgIGlmICghc3Vic2VjdGlvblJlY2VpdmVkKSB7IHJldHVybjsgfVxuICAgIHRoaXMuX3N1YnNlY3Rpb25JZCA9IChzdWJzZWN0aW9uUmVjZWl2ZWQuc3Vic2VjdGlvbklkKSA/IHN1YnNlY3Rpb25SZWNlaXZlZC5zdWJzZWN0aW9uSWQudG9TdHJpbmcoKSA6ICcnO1xuICAgIHRoaXMuX3N1YnNlY3Rpb25Db2RlID0gKHN1YnNlY3Rpb25SZWNlaXZlZC5zdWJzZWN0aW9uQ29kZSkgPyBzdWJzZWN0aW9uUmVjZWl2ZWQuc3Vic2VjdGlvbkNvZGUgOiAnJztcbiAgICB0aGlzLl9zdWJzZWN0aW9uVGl0bGUgPSAoc3Vic2VjdGlvblJlY2VpdmVkLnN1YnNlY3Rpb25UaXRsZSkgPyBzdWJzZWN0aW9uUmVjZWl2ZWQuc3Vic2VjdGlvblRpdGxlIDogJyc7XG4gICAgaWYgKHN1YnNlY3Rpb25SZWNlaXZlZC5lbGVtZW50cykge1xuICAgICAgZm9yIChjb25zdCByZWNlaXZlZEVsZW1lbnQgb2Ygc3Vic2VjdGlvblJlY2VpdmVkLmVsZW1lbnRzKSB7XG4gICAgICAgIGxldCBlbGVtZW50T2JqZWN0OiBhbnkgPSBudWxsO1xuICAgICAgICBsZXQgYXJyYXlUb0FkZDogYW55W10gPSBbXTtcbiAgICAgICAgY29uc3QgeyB0eXBlLCBjb2RlIH0gPSByZWNlaXZlZEVsZW1lbnQ7XG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgZWxlbWVudFR5cGVzLmZpZWxkOlxuICAgICAgICAgICAgZWxlbWVudE9iamVjdCA9IGZvcm1PYmplY3QuZ2V0RmllbGQoY29kZSk7XG4gICAgICAgICAgICBhcnJheVRvQWRkID0gdGhpcy5fc3ViU2VjdGlvbkZpZWxkcztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgZWxlbWVudFR5cGVzLnRhYmxlOlxuICAgICAgICAgICAgZWxlbWVudE9iamVjdCA9IGZvcm1PYmplY3QuZ2V0VGFibGUoY29kZSk7XG4gICAgICAgICAgICBhcnJheVRvQWRkID0gdGhpcy5fc3ViU2VjdGlvblRhYmxlcztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgZWxlbWVudFR5cGVzLmFjdGlvbjpcbiAgICAgICAgICAgIGVsZW1lbnRPYmplY3QgPSBmb3JtT2JqZWN0LmdldEFjdGlvbihjb2RlKTtcbiAgICAgICAgICAgIGFycmF5VG9BZGQgPSB0aGlzLl9zdWJTZWN0aW9uQWN0aW9ucztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChlbGVtZW50T2JqZWN0KSB7XG4gICAgICAgICAgZWxlbWVudE9iamVjdC5lbGVtZW50VHlwZSA9IHR5cGU7XG4gICAgICAgICAgYXJyYXlUb0FkZC5wdXNoKGVsZW1lbnRPYmplY3QpO1xuICAgICAgICAgIHRoaXMuX3N1YlNlY3Rpb25FbGVtZW50cy5wdXNoKGVsZW1lbnRPYmplY3QpO1xuICAgICAgICAgIHRoaXMuX2VsZW1lbnRzQXJyYXlbY29kZV0gPSBlbGVtZW50T2JqZWN0O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZ2V0IGN1c3RvbVJlbmRlcigpIHsgcmV0dXJuIHRoaXMuX2N1c3RvbVJlbmRlcjsgfVxuICBzZXQgY3VzdG9tUmVuZGVyKGN1c3RvbVJlbmRlck5hbWUpIHsgdGhpcy5fY3VzdG9tUmVuZGVyID0gY3VzdG9tUmVuZGVyTmFtZTsgfVxuXG4gIGdldCBzdWJzZWN0aW9uSWQoKSB7IHJldHVybiB0aGlzLl9zdWJzZWN0aW9uSWQ7IH1cbiAgZ2V0IHN1YnNlY3Rpb25Db2RlKCkgeyByZXR1cm4gdGhpcy5fc3Vic2VjdGlvbkNvZGU7IH1cbiAgZ2V0IHN1YnNlY3Rpb25UaXRsZSgpIHsgcmV0dXJuIHRoaXMuX3N1YnNlY3Rpb25UaXRsZTsgfVxuICBnZXQgc3ViU2VjdGlvbkVsZW1lbnRzKCkgeyByZXR1cm4gdGhpcy5fc3ViU2VjdGlvbkVsZW1lbnRzOyB9XG4gIGdldCBzdWJTZWN0aW9uRmllbGRzKCkgeyByZXR1cm4gdGhpcy5fc3ViU2VjdGlvbkZpZWxkczsgfVxuICBnZXQgc3ViU2VjdGlvblRhYmxlcygpIHsgcmV0dXJuIHRoaXMuX3N1YlNlY3Rpb25UYWJsZXM7IH1cbiAgZ2V0IHN1YlNlY3Rpb25BY3Rpb25zKCkgeyByZXR1cm4gdGhpcy5fc3ViU2VjdGlvbkFjdGlvbnM7IH1cbiAgZ2V0IGVsZW1lbnRzQXJyYXkoKSB7IHJldHVybiB0aGlzLl9lbGVtZW50c0FycmF5OyB9XG4gIGdldCBhY3RpdmUoKSB7IHJldHVybiB0aGlzLl9hY3RpdmU7IH1cblxuICBzZXQgc3Vic2VjdGlvbklkKHN1YnNlY3Rpb25JZCkgeyB0aGlzLl9zdWJzZWN0aW9uSWQgPSBzdWJzZWN0aW9uSWQ7IH1cbiAgc2V0IHN1YnNlY3Rpb25Db2RlKHN1YnNlY3Rpb25Db2RlKSB7IHRoaXMuX3N1YnNlY3Rpb25Db2RlID0gc3Vic2VjdGlvbkNvZGU7IH1cbiAgc2V0IHN1YnNlY3Rpb25UaXRsZShzdWJzZWN0aW9uVGl0bGUpIHsgdGhpcy5fc3Vic2VjdGlvblRpdGxlID0gc3Vic2VjdGlvblRpdGxlOyB9XG4gIHNldCBzdWJTZWN0aW9uRWxlbWVudHMoc3ViU2VjdGlvbkVsZW1lbnRzKSB7IHRoaXMuX3N1YlNlY3Rpb25FbGVtZW50cyA9IHN1YlNlY3Rpb25FbGVtZW50czsgfVxuICBzZXQgc3ViU2VjdGlvbkZpZWxkcyhzdWJTZWN0aW9uRmllbGRzKSB7IHRoaXMuX3N1YlNlY3Rpb25GaWVsZHMgPSBzdWJTZWN0aW9uRmllbGRzOyB9XG4gIHNldCBzdWJTZWN0aW9uVGFibGVzKHN1YlNlY3Rpb25UYWJsZXMpIHsgdGhpcy5fc3ViU2VjdGlvblRhYmxlcyA9IHN1YlNlY3Rpb25UYWJsZXM7IH1cbiAgc2V0IHN1YlNlY3Rpb25BY3Rpb25zKHN1YlNlY3Rpb25BY3Rpb25zKSB7IHRoaXMuX3N1YlNlY3Rpb25BY3Rpb25zID0gc3ViU2VjdGlvbkFjdGlvbnM7IH1cbiAgc2V0IGVsZW1lbnRzQXJyYXkoZWxlbWVudHNBcnJheSkgeyB0aGlzLl9lbGVtZW50c0FycmF5ID0gZWxlbWVudHNBcnJheTsgfVxuICBzZXQgYWN0aXZlKGFjdGl2ZSkgeyB0aGlzLl9hY3RpdmUgPSBhY3RpdmU7IH1cblxuICBnZXRGaWVsZChuYW1lKSB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YlNlY3Rpb25GaWVsZHMuZmluZChmbGQgPT4gZmxkLm5hbWUgPT09IG5hbWUpO1xuICB9XG5cbiAgZ2V0RmllbGRzKCkge1xuICAgIHJldHVybiB0aGlzLl9zdWJTZWN0aW9uRmllbGRzO1xuICB9XG5cbiAgZ2V0RmllbGROYW1lcygpIHtcbiAgICByZXR1cm4gdGhpcy5fc3ViU2VjdGlvbkZpZWxkcy5tYXAoZmllbGQgPT4gZmllbGQuY29kZSk7XG4gIH1cblxuICBnZXRBY3Rpb25zKCk6IEZvcm1BY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuX3N1YlNlY3Rpb25BY3Rpb25zO1xuICB9XG5cbiAgZ2V0QWN0aW9uTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLl9zdWJTZWN0aW9uQWN0aW9ucy5tYXAoYWN0aW9uID0+IGFjdGlvbi5hY3Rpb25Db2RlKTtcbiAgfVxuXG4gIGFjdGl2YXRlKCkge1xuICAgIGlmICghdGhpcy5fYWN0aXZlKSB7XG4gICAgICB0aGlzLl9hY3RpdmUgPSB0cnVlO1xuICAgICAgLy8gdGhpcy5zdWJzZWN0aW9uQ29kZSAmJiB0aGlzLl9hY3RpdmF0aW9uLm5leHQodGhpcy5zdWJzZWN0aW9uQ29kZSk7XG4gICAgfVxuICB9XG5cbiAgaW5hY3RpdmF0ZSgpIHtcbiAgICBpZiAodGhpcy5fYWN0aXZlKSB7XG4gICAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZTtcbiAgICAgIC8vIHRoaXMuc3Vic2VjdGlvbkNvZGUgJiYgdGhpcy5faW5hY3RpdmF0aW9uLm5leHQodGhpcy5zdWJzZWN0aW9uQ29kZSk7XG4gICAgfVxuICB9XG59XG4iXX0=