@muraai/mnl-form 0.0.1-alpha-414eea7 → 0.0.1-alpha-ea6e783
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.
- package/esm2022/lib/services/scoring.service.mjs +10 -2
- package/esm2022/lib/types/mu-helper-text.type.mjs +74 -20
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/muraai-mnl-form.mjs +80 -18
- package/fesm2022/muraai-mnl-form.mjs.map +1 -1
- package/lib/types/mu-helper-text.type.d.ts +6 -2
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -51,7 +51,15 @@ export class ScoringService {
|
|
|
51
51
|
break;
|
|
52
52
|
case 'exactMatch':
|
|
53
53
|
if (Array.isArray(scoring.answer)) {
|
|
54
|
-
|
|
54
|
+
// Handle case where answer is also an array (multiselect)
|
|
55
|
+
if (Array.isArray(answer)) {
|
|
56
|
+
// Check if answer is not empty AND all selected answers are in the expected answers
|
|
57
|
+
correct = answer.length > 0 && answer.every(a => scoring.answer.includes(a));
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
// Single value case
|
|
61
|
+
correct = scoring.answer.includes(answer);
|
|
62
|
+
}
|
|
55
63
|
}
|
|
56
64
|
break;
|
|
57
65
|
case 'range':
|
|
@@ -92,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
92
100
|
type: Injectable,
|
|
93
101
|
args: [{ providedIn: 'root' }]
|
|
94
102
|
}] });
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NvcmluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9zY29yaW5nLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNM0MsTUFBTSxPQUFPLGNBQWM7SUFFekIsV0FBVyxDQUFDLEtBQVUsRUFBRSxNQUEyQjtRQUNqRCxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sY0FBYyxDQUFDLEtBQVUsRUFBRSxNQUF1RDtRQUN6RixJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUM7UUFDbkIsSUFBSSxlQUFlLEdBQXNELEVBQUUsQ0FBQztRQUU1RSxNQUFNLGVBQWUsR0FBRyxDQUFDLFFBQXFELEVBQUUsRUFBRTtZQUNoRixNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQztZQUM1QyxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUM7WUFFbkQsNERBQTREO1lBQzVELElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdEMsMkRBQTJEO2dCQUMzRCxJQUFJLFFBQVEsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7b0JBQ2hDLFFBQVEsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUMvQyxDQUFDO2dCQUNELE9BQU87WUFDVCxDQUFDO1lBRUQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFD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SSxPQUFPLEVBQUUsQ0FBQztvQkFDWixhQUFhLElBQUksaUJBQWlCLENBQUM7Z0JBQ3JDLENBQUM7WUFDSCxDQUFDO1lBRUQsVUFBVSxJQUFJLGFBQWEsQ0FBQztZQUM1QixlQUFlLENBQUMsYUFBYSxDQUFDLEdBQUc7Z0JBQy9CLEtBQUssRUFBRSxhQUFhO2dCQUNwQixNQUFNLEVBQUUsY0FBYzthQUN2QixDQUFDO1FBQ0osQ0FBQyxDQUFDO1FBRUYsdUJBQXVCO1FBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFaEMsT0FBTztZQUNMLFVBQVU7WUFDVixlQUFlO1NBQ2hCLENBQUM7SUFDSixDQUFDO0lBR1MsY0FBYyxDQUFDLEdBQVEsRUFBRSxHQUEwQztRQUN6RSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QixPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUN2RCxDQUFDO1FBQ0QsT0FBTyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQixDQUFDOytHQTVHVSxjQUFjO21IQUFkLGNBQWMsY0FERCxNQUFNOzs0RkFDbkIsY0FBYztrQkFEMUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZvcm1seUZpZWxkQ29uZmlnIH0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQgeyBDdXN0b21Gb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJy4uLy4uL3B1YmxpYy1hcGknO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFNjb3JpbmdTZXJ2aWNlIHtcblxuICB1cGRhdGVTY29yZShtb2RlbDogYW55LCBmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10pIHtcbiAgICBjb25zdCByZXN1bHQgPSB0aGlzLmNhbGN1bGF0ZVNjb3JlKG1vZGVsLCBmaWVsZHMpO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuIHByaXZhdGUgY2FsY3VsYXRlU2NvcmUobW9kZWw6IGFueSwgZmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdIHwgQ3VzdG9tRm9ybWx5RmllbGRDb25maWdbXSkge1xuICBsZXQgdG90YWxTY29yZSA9IDA7XG4gIGxldCBjYXRlZ29yeVJlc3VsdHM6IFJlY29yZDxzdHJpbmcsIHsgc2NvcmU6IG51bWJlcjsgd2VpZ2h0OiBudW1iZXIgfT4gPSB7fTtcblxuICBjb25zdCBwcm9jZXNzQ2F0ZWdvcnkgPSAoY2F0ZWdvcnk6IEZvcm1seUZpZWxkQ29uZmlnIHwgQ3VzdG9tRm9ybWx5RmllbGRDb25maWcpID0+IHtcbiAgICBjb25zdCBjYXRlZ29yeUxhYmVsID0gY2F0ZWdvcnkucHJvcHM/LmxhYmVsO1xuICAgIGNvbnN0IGNhdGVnb3J5V2VpZ2h0ID0gY2F0ZWdvcnkucHJvcHM/LndlaWdodCA/PyAwO1xuXG4gICAgLy8gT25seSB0cmVhdCBhcyBzY29yaW5nIGNhdGVnb3J5IGlmIGl0IGhhcyBhIGxhYmVsICsgd2VpZ2h0XG4gICAgaWYgKCFjYXRlZ29yeUxhYmVsIHx8ICFjYXRlZ29yeVdlaWdodCkge1xuICAgICAgLy8gU3RpbGwgbmVlZCB0byBnbyBkZWVwZXIgaW4gY2FzZSBjaGlsZHJlbiBoYXZlIGNhdGVnb3JpZXNcbiAgICAgIGlmIChjYXRlZ29yeS5maWVsZEdyb3VwPy5sZW5ndGgpIHtcbiAgICAgICAgY2F0ZWdvcnkuZmllbGRHcm91cC5mb3JFYWNoKHByb2Nlc3NDYXRlZ29yeSk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcXVlc3Rpb25zID0gKGNhdGVnb3J5LmZpZWxkR3JvdXAgfHwgW10pLmZpbHRlcihxID0+IHEucHJvcHM/LnNjb3JpbmcpO1xuICAgIGlmIChxdWVzdGlvbnMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICBjb25zdCBzY29yZWRRdWVzdGlvbnMgPSBxdWVzdGlvbnMuZmlsdGVyKHEgPT4gcS5wcm9wcz8uaGFzU2NvcmVJbXBhY3QgIT09IGZhbHNlKTtcbiAgICBpZiAoc2NvcmVkUXVlc3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY2F0ZWdvcnlSZXN1bHRzW2NhdGVnb3J5TGFiZWxdID0ge1xuICAgICAgICBzY29yZTogMCxcbiAgICAgICAgd2VpZ2h0OiBjYXRlZ29yeVdlaWdodCxcbiAgICAgIH07XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcGVyUXVlc3Rpb25XZWlnaHQgPSBjYXRlZ29yeVdlaWdodCAvIHNjb3JlZFF1ZXN0aW9ucy5sZW5ndGg7XG4gICAgbGV0IGNhdGVnb3J5U2NvcmUgPSAwO1xuXG4gICAgZm9yIChjb25zdCBxIG9mIHNjb3JlZFF1ZXN0aW9ucykge1xuICAgICAgY29uc3QgcGFyZW50S2V5ID0gY2F0ZWdvcnkua2V5IGFzIGFueTtcbiAgICAgIGNvbnN0IG5lc3RlZFBhdGggPSBBcnJheS5pc0FycmF5KHBhcmVudEtleSlcbiAgICAgICAgPyBbLi4uKHBhcmVudEtleSBhcyBhbnlbXSksIHEua2V5IGFzIGFueV1cbiAgICAgICAgOiBbcGFyZW50S2V5IGFzIGFueSwgcS5rZXkgYXMgYW55XTtcbiAgICAgIGNvbnN0IGFuc3dlciA9IHRoaXMuZ2V0TmVzdGVkVmFsdWUobW9kZWwsIG5lc3RlZFBhdGggYXMgYW55KTtcblxuICAgICAgY29uc3Qgc2NvcmluZyA9IHEucHJvcHM/LnNjb3Jpbmc7XG4gICAgICBpZiAoIXNjb3JpbmcpIGNvbnRpbnVlO1xuXG4gICAgICBsZXQgY29ycmVjdCA9IGZhbHNlO1xuICAgICAgXG4gICAgICBzd2l0Y2ggKHNjb3JpbmcuY3JpdGVyaWEpIHtcbiAgICAgICAgY2FzZSAnYXR0ZW1wdGVkJzpcbiAgICAgICAgICBjb3JyZWN0ID1cbiAgICAgICAgICAgIGFuc3dlciAhPT0gbnVsbCAmJlxuICAgICAgICAgICAgYW5zd2VyICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgICAgICh0eXBlb2YgYW5zd2VyID09PSAnc3RyaW5nJyA/IGFuc3dlci50cmltKCkgIT09ICcnIDogdHJ1ZSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSAnZXhhY3RNYXRjaCc6XG4gICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoc2NvcmluZy5hbnN3ZXIpKSB7XG4gICAgICAgICAgICAvLyBIYW5kbGUgY2FzZSB3aGVyZSBhbnN3ZXIgaXMgYWxzbyBhbiBhcnJheSAobXVsdGlzZWxlY3QpXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShhbnN3ZXIpKSB7XG4gICAgICAgICAgICAgIC8vIENoZWNrIGlmIGFuc3dlciBpcyBub3QgZW1wdHkgQU5EIGFsbCBzZWxlY3RlZCBhbnN3ZXJzIGFyZSBpbiB0aGUgZXhwZWN0ZWQgYW5zd2Vyc1xuICAgICAgICAgICAgICBjb3JyZWN0ID0gYW5zd2VyLmxlbmd0aCA+IDAgJiYgYW5zd2VyLmV2ZXJ5KGEgPT4gc2NvcmluZy5hbnN3ZXIuaW5jbHVkZXMoYSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gU2luZ2xlIHZhbHVlIGNhc2VcbiAgICAgICAgICAgICAgY29ycmVjdCA9IHNjb3JpbmcuYW5zd2VyLmluY2x1ZGVzKGFuc3dlcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgJ3JhbmdlJzpcbiAgICAgICAgICBjb25zdCBudW0gPSB0eXBlb2YgYW5zd2VyID09PSAnbnVtYmVyJyA/IGFuc3dlciA6IE51bWJlcihhbnN3ZXIpO1xuICAgICAgICAgIGNvcnJlY3QgPVxuICAgICAgICAgICAgTnVtYmVyLmlzRmluaXRlKG51bSkgJiZcbiAgICAgICAgICAgIG51bSA+PSBzY29yaW5nLmFuc3dlci5taW4gJiZcbiAgICAgICAgICAgIG51bSA8PSBzY29yaW5nLmFuc3dlci5tYXg7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICAgIGlmIChjb3JyZWN0KSB7XG4gICAgICAgIGNhdGVnb3J5U2NvcmUgKz0gcGVyUXVlc3Rpb25XZWlnaHQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdG90YWxTY29yZSArPSBjYXRlZ29yeVNjb3JlO1xuICAgIGNhdGVnb3J5UmVzdWx0c1tjYXRlZ29yeUxhYmVsXSA9IHtcbiAgICAgIHNjb3JlOiBjYXRlZ29yeVNjb3JlLFxuICAgICAgd2VpZ2h0OiBjYXRlZ29yeVdlaWdodCxcbiAgICB9O1xuICB9O1xuXG4gIC8vIHN0YXJ0IHJlY3Vyc2l2ZSB3YWxrXG4gIGZpZWxkcy5mb3JFYWNoKHByb2Nlc3NDYXRlZ29yeSk7XG5cbiAgcmV0dXJuIHtcbiAgICB0b3RhbFNjb3JlLFxuICAgIGNhdGVnb3J5UmVzdWx0cyxcbiAgfTtcbn1cblxuXG4gIHByaXZhdGUgZ2V0TmVzdGVkVmFsdWUob2JqOiBhbnksIGtleTogc3RyaW5nIHwgbnVtYmVyIHwgKHN0cmluZyB8IG51bWJlcilbXSk6IGFueSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoa2V5KSkge1xuICAgICAgcmV0dXJuIGtleS5yZWR1Y2UoKGN1cnJlbnQsIGspID0+IGN1cnJlbnQ/LltrXSwgb2JqKTtcbiAgICB9XG4gICAgcmV0dXJuIG9iaj8uW2tleV07XG4gIH1cbn0iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { TextFieldModule } from '@angular/cdk/text-field';
|
|
1
2
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component } from '@angular/core';
|
|
3
|
+
import { Component, ViewChild } from '@angular/core';
|
|
3
4
|
import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
4
5
|
import { MatNativeDateModule } from '@angular/material/core';
|
|
5
6
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
@@ -13,9 +14,10 @@ import * as i0 from "@angular/core";
|
|
|
13
14
|
import * as i1 from "@angular/common";
|
|
14
15
|
import * as i2 from "@angular/material/input";
|
|
15
16
|
import * as i3 from "@angular/material/form-field";
|
|
16
|
-
import * as i4 from "@
|
|
17
|
-
import * as i5 from "@
|
|
18
|
-
import * as i6 from "@angular/
|
|
17
|
+
import * as i4 from "@angular/cdk/text-field";
|
|
18
|
+
import * as i5 from "@ngx-formly/core";
|
|
19
|
+
import * as i6 from "@angular/forms";
|
|
20
|
+
import * as i7 from "@angular/material/slide-toggle";
|
|
19
21
|
export class MnlFormHelperTextInputComponent extends FieldType {
|
|
20
22
|
get helperLabel() {
|
|
21
23
|
return this.to['helperProps']?.['helperLabel'] || 'Need help?';
|
|
@@ -74,6 +76,18 @@ export class MnlFormHelperTextInputComponent extends FieldType {
|
|
|
74
76
|
this.checked = true;
|
|
75
77
|
}
|
|
76
78
|
}
|
|
79
|
+
ngAfterViewInit() {
|
|
80
|
+
setTimeout(() => {
|
|
81
|
+
this.cdr.detectChanges();
|
|
82
|
+
this.autosize?.resizeToFitContent(true);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
resizeTextarea() {
|
|
86
|
+
if (this.autosize) {
|
|
87
|
+
this.cdr.detectChanges();
|
|
88
|
+
setTimeout(() => this.autosize?.resizeToFitContent(true), 50);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
77
91
|
toggleSlide() {
|
|
78
92
|
this.checked = !this.checked;
|
|
79
93
|
if (this.checked) {
|
|
@@ -133,9 +147,22 @@ export class MnlFormHelperTextInputComponent extends FieldType {
|
|
|
133
147
|
// Auto-open helper based on scoring criteria
|
|
134
148
|
switch (this.to['scoring']?.['criteria']) {
|
|
135
149
|
case 'exactMatch':
|
|
136
|
-
if (Array.isArray(this.to['scoring']?.['answer'])
|
|
137
|
-
|
|
138
|
-
this.
|
|
150
|
+
if (Array.isArray(this.to['scoring']?.['answer'])) {
|
|
151
|
+
// Handle multiselect case where answer is also an array
|
|
152
|
+
if (Array.isArray(this.originalValue)) {
|
|
153
|
+
// Check if not empty AND all selected answers are in expected answers
|
|
154
|
+
const isCorrect = this.originalValue.length > 0 &&
|
|
155
|
+
this.originalValue.every(a => this.to['scoring']?.['answer'].includes(a));
|
|
156
|
+
if (!isCorrect) {
|
|
157
|
+
this.checked = true;
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
// Single value case
|
|
162
|
+
if (!this.to['scoring']?.['answer'].includes(this.originalValue)) {
|
|
163
|
+
this.checked = true;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
139
166
|
}
|
|
140
167
|
break;
|
|
141
168
|
case 'range':
|
|
@@ -163,13 +190,30 @@ export class MnlFormHelperTextInputComponent extends FieldType {
|
|
|
163
190
|
break;
|
|
164
191
|
case 'exactMatch':
|
|
165
192
|
if (Array.isArray(this.to['scoring']?.['answer'])) {
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
193
|
+
// Handle multiselect case where answer is also an array
|
|
194
|
+
if (Array.isArray(this.originalValue)) {
|
|
195
|
+
// Check if not empty AND all selected answers are in expected answers
|
|
196
|
+
const isCorrect = this.originalValue.length > 0 &&
|
|
197
|
+
this.originalValue.every(a => this.to['scoring']?.['answer'].includes(a));
|
|
198
|
+
if (isCorrect) {
|
|
199
|
+
// Answer is correct - set empty value in helper
|
|
200
|
+
this.helperFormControl.setValue('');
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
// Answer is incorrect - set defaultHelperText in helper
|
|
204
|
+
this.helperFormControl.setValue(this.defaultHelperText);
|
|
205
|
+
}
|
|
169
206
|
}
|
|
170
207
|
else {
|
|
171
|
-
//
|
|
172
|
-
this.
|
|
208
|
+
// Single value case
|
|
209
|
+
if (this.to['scoring']?.['answer'].includes(this.originalValue)) {
|
|
210
|
+
// Answer is correct - set empty value in helper
|
|
211
|
+
this.helperFormControl.setValue('');
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
// Answer is incorrect - set defaultHelperText in helper
|
|
215
|
+
this.helperFormControl.setValue(this.defaultHelperText);
|
|
216
|
+
}
|
|
173
217
|
}
|
|
174
218
|
}
|
|
175
219
|
break;
|
|
@@ -193,7 +237,7 @@ export class MnlFormHelperTextInputComponent extends FieldType {
|
|
|
193
237
|
}
|
|
194
238
|
}
|
|
195
239
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MnlFormHelperTextInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
196
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MnlFormHelperTextInputComponent, isStandalone: true, selector: "mu-helper-text", usesInheritance: true, ngImport: i0, template: `
|
|
240
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MnlFormHelperTextInputComponent, isStandalone: true, selector: "mu-helper-text", viewQueries: [{ propertyName: "autosize", first: true, predicate: ["autosize"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
197
241
|
<div class="helper-text-container">
|
|
198
242
|
<!-- Helper Mode - Show toggle and conditional content -->
|
|
199
243
|
<div *ngIf="to['enableHelper']">
|
|
@@ -210,12 +254,15 @@ export class MnlFormHelperTextInputComponent extends FieldType {
|
|
|
210
254
|
|
|
211
255
|
<mat-form-field class="textarea" appearance="outline" *ngIf="checked">
|
|
212
256
|
<textarea
|
|
257
|
+
cdkTextareaAutosize
|
|
258
|
+
#autosize="cdkTextareaAutosize"
|
|
259
|
+
cdkAutosizeMinRows="2"
|
|
260
|
+
rows="2"
|
|
213
261
|
matInput
|
|
214
262
|
[formControl]="helperFormControl"
|
|
215
263
|
[readonly]="readonly || field.form?.disabled"
|
|
216
264
|
[disabled]="field.form?.disabled"
|
|
217
|
-
>
|
|
218
|
-
</textarea>
|
|
265
|
+
></textarea>
|
|
219
266
|
</mat-form-field>
|
|
220
267
|
</div>
|
|
221
268
|
|
|
@@ -225,7 +272,7 @@ export class MnlFormHelperTextInputComponent extends FieldType {
|
|
|
225
272
|
</formly-field>
|
|
226
273
|
</div>
|
|
227
274
|
</div>
|
|
228
|
-
`, isInline: true, styles: [".helper-text-container{display:flex;flex-direction:column}.answer{font-size:12px}.textarea{margin:0!important;width:100%}.flex-row{display:flex;flex-direction:row;justify-content:space-between}.w-full{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type:
|
|
275
|
+
`, isInline: true, styles: [".helper-text-container{display:flex;flex-direction:column}.answer{font-size:12px}.textarea{margin:0!important;width:100%}.flex-row{display:flex;flex-direction:row;justify-content:space-between}.w-full{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i5.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i7.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: TextFieldModule }] }); }
|
|
229
276
|
}
|
|
230
277
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MnlFormHelperTextInputComponent, decorators: [{
|
|
231
278
|
type: Component,
|
|
@@ -240,6 +287,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
240
287
|
MatSelectModule,
|
|
241
288
|
MatDatepickerModule,
|
|
242
289
|
MatNativeDateModule,
|
|
290
|
+
TextFieldModule
|
|
243
291
|
], template: `
|
|
244
292
|
<div class="helper-text-container">
|
|
245
293
|
<!-- Helper Mode - Show toggle and conditional content -->
|
|
@@ -257,12 +305,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
257
305
|
|
|
258
306
|
<mat-form-field class="textarea" appearance="outline" *ngIf="checked">
|
|
259
307
|
<textarea
|
|
308
|
+
cdkTextareaAutosize
|
|
309
|
+
#autosize="cdkTextareaAutosize"
|
|
310
|
+
cdkAutosizeMinRows="2"
|
|
311
|
+
rows="2"
|
|
260
312
|
matInput
|
|
261
313
|
[formControl]="helperFormControl"
|
|
262
314
|
[readonly]="readonly || field.form?.disabled"
|
|
263
315
|
[disabled]="field.form?.disabled"
|
|
264
|
-
>
|
|
265
|
-
</textarea>
|
|
316
|
+
></textarea>
|
|
266
317
|
</mat-form-field>
|
|
267
318
|
</div>
|
|
268
319
|
|
|
@@ -273,5 +324,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
273
324
|
</div>
|
|
274
325
|
</div>
|
|
275
326
|
`, styles: [".helper-text-container{display:flex;flex-direction:column}.answer{font-size:12px}.textarea{margin:0!important;width:100%}.flex-row{display:flex;flex-direction:row;justify-content:space-between}.w-full{width:100%}\n"] }]
|
|
276
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }]
|
|
277
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXUtaGVscGVyLXRleHQudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tbGliL3NyYy9saWIvdHlwZXMvbXUtaGVscGVyLXRleHQudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFxQixTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFHTCxZQUFZLEdBQ2IsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBd0VqRCxNQUFNLE9BQU8sK0JBQ1gsU0FBUSxTQUEwQjtJQU1sQyxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsSUFBSSxZQUFZLENBQUM7SUFDakUsQ0FBQztJQUNELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLElBQUks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a0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsbUJBQW1CO3dCQUNuQixtQkFBbUI7cUJBQ3BCLFlBQ1M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0NUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQge1xuICBGaWVsZFR5cGVDb25maWcsXG4gIEZvcm1seUZpZWxkQ29uZmlnLFxuICBGb3JtbHlNb2R1bGUsXG59IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdS1oZWxwZXItdGV4dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgRm9ybWx5TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdE5hdGl2ZURhdGVNb2R1bGUsXG4gIF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cImhlbHBlci10ZXh0LWNvbnRhaW5lclwiPlxuICAgICAgPCEtLSBIZWxwZXIgTW9kZSAtIFNob3cgdG9nZ2xlIGFuZCBjb25kaXRpb25hbCBjb250ZW50IC0tPlxuICAgICAgPGRpdiAqbmdJZj1cInRvWydlbmFibGVIZWxwZXInXVwiPlxuICAgICAgICA8bWF0LWxhYmVsPnt7IHRvLmxhYmVsIH19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJvcmlnaW5hbFZhbHVlXCIgY2xhc3M9XCJmbGV4LXJvd1wiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYW5zd2VyXCI+e3sgb3JpZ2luYWxWYWx1ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZVxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjaGVja2VkXCJcbiAgICAgICAgICAgICh0b2dnbGVDaGFuZ2UpPVwidG9nZ2xlU2xpZGUoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmllbGQuZm9ybT8uZGlzYWJsZWRcIlxuICAgICAgICAgICAgPnt7IGhlbHBlckxhYmVsIH19PC9tYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgICAgPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ0ZXh0YXJlYVwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgKm5nSWY9XCJjaGVja2VkXCI+XG4gICAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImhlbHBlckZvcm1Db250cm9sXCJcbiAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCBmaWVsZC5mb3JtPy5kaXNhYmxlZFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZmllbGQuZm9ybT8uZGlzYWJsZWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3RleHRhcmVhPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gRGVmYXVsdCBNb2RlIC0gU2hvdyBmaWVsZCBkaXJlY3RseSAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCIhdG9bJ2VuYWJsZUhlbHBlciddXCI+XG4gICAgICAgIDxmb3JtbHktZmllbGQgKm5nSWY9XCJkZWZhdWx0RmllbGRDb25maWdcIiBbZmllbGRdPVwiZGVmYXVsdEZpZWxkQ29uZmlnXCI+XG4gICAgICAgIDwvZm9ybWx5LWZpZWxkPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIGAsXG4gIHN0eWxlczogYFxuICAgICAuaGVscGVyLXRleHQtY29udGFpbmVye1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gICAgIH1cbiAgICAgLmFuc3dlcntcbiAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgfVxuICAgICAgLnRleHRhcmVhe1xuICAgICAgbWFyZ2luOiAwcHggIWltcG9ydGFudDtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICB9XG4gICAgIC5mbGV4LXJvd3tcbiAgICAgIGRpc3BsYXk6IGZsZXg7XG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICAgICAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICAgICB9XG4gICAgIC53LWZ1bGx7XG4gICAgICB3aWR0aDogMTAwJTtcbiAgICAgfVxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBNbmxGb3JtSGVscGVyVGV4dElucHV0Q29tcG9uZW50XG4gIGV4dGVuZHMgRmllbGRUeXBlPEZpZWxkVHlwZUNvbmZpZz5cbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgY2hlY2tlZCA9IGZhbHNlO1xuICBoZWxwZXJGb3JtQ29udHJvbCE6IEZvcm1Db250cm9sOyAvLyBTZXBhcmF0ZSBmb3JtIGNvbnRyb2wgZm9yIGhlbHBlciBtb2RlbFxuXG4gIGdldCBoZWxwZXJMYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy50b1snaGVscGVyUHJvcHMnXT8uWydoZWxwZXJMYWJlbCddIHx8ICdOZWVkIGhlbHA/JztcbiAgfVxuICBnZXQgZGVmYXVsdEhlbHBlclRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9bJ2hlbHBlclByb3BzJ10/LlsnZGVmYXVsdEhlbHBlclRleHQnXSB8fCAnJztcbiAgfVxuXG4gIC8vIEdldCB2YWx1ZSBmcm9tIHByaW1hcnkgbW9kZWwgKGFuc3dlcnMpXG4gIGdldCBvcmlnaW5hbFZhbHVlKCkge1xuICAgIGNvbnN0IGZpZWxkS2V5ID0gdGhpcy5maWVsZC5rZXkgYXMgc3RyaW5nO1xuICAgIHJldHVybiB0aGlzLmZpZWxkLm1vZGVsPy5bZmllbGRLZXldO1xuICB9XG5cbiAgLy8gR2V0L1NldCB2YWx1ZSBmcm9tIHNlY29uZGFyeSBtb2RlbCAoaGVscGVyKVxuICBnZXQgaGVscGVyTW9kZWwoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudG9bJ2hlbHBlck1vZGVsJ10gfHxcbiAgICAgIHRoaXMucHJvcHNbJ2hlbHBlck1vZGVsJ10gfHxcbiAgICAgIHRoaXMub3B0aW9ucz8uZm9ybVN0YXRlPy5bJ2hlbHBlck1vZGVsJ11cbiAgICApO1xuICB9XG5cbiAgZ2V0IGhlbHBlcktleSgpIHtcbiAgICByZXR1cm4gdGhpcy50b1snaGVscGVyS2V5J10gfHwgdGhpcy5maWVsZC5rZXk7XG4gIH1cblxuICBnZXQgY3VycmVudEhlbHBlclZhbHVlKCkge1xuICAgIGlmICh0aGlzLmhlbHBlck1vZGVsICYmIHRoaXMuaGVscGVyS2V5KSB7XG4gICAgICByZXR1cm4gdGhpcy5oZWxwZXJNb2RlbFt0aGlzLmhlbHBlcktleSBhcyBzdHJpbmddO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBzZXQgY3VycmVudEhlbHBlclZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5oZWxwZXJNb2RlbCAmJiB0aGlzLmhlbHBlcktleSkge1xuICAgICAgdGhpcy5oZWxwZXJNb2RlbFt0aGlzLmhlbHBlcktleSBhcyBzdHJpbmddID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHJlYWRvbmx5KCkge1xuICAgIHJldHVybiB0aGlzLnRvWydyZWFkb25seSddIHx8IHRoaXMucHJvcHNbJ3JlYWRvbmx5J10gfHwgZmFsc2U7XG4gIH1cblxuICBkZWZhdWx0RmllbGRDb25maWc/OiBGb3JtbHlGaWVsZENvbmZpZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gSW5pdGlhbGl6ZSBoZWxwZXIgZm9ybSBjb250cm9sIHdpdGggdmFsdWUgZnJvbSBoZWxwZXIgbW9kZWxcbiAgICB0aGlzLmhlbHBlckZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKHRoaXMuY3VycmVudEhlbHBlclZhbHVlIHx8ICcnKTtcblxuICAgIC8vIFN1YnNjcmliZSB0byBjaGFuZ2VzIGluIGhlbHBlciBmb3JtIGNvbnRyb2wgYW5kIHVwZGF0ZSBoZWxwZXIgbW9kZWxcbiAgICB0aGlzLmhlbHBlckZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnRIZWxwZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgLy8gRW1pdCBoZWxwZXIgbW9kZWwgY2hhbmdlIHRvIHBhcmVudCBjb21wb25lbnRcbiAgICAgIHRoaXMub3B0aW9ucz8uZm9ybVN0YXRlPy5bJ29uSGVscGVyTW9kZWxDaGFuZ2UnXT8uKHRoaXMuaGVscGVyTW9kZWwpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZXR1cERlZmF1bHRGaWVsZCgpO1xuXG4gICAgaWYgKHRoaXMudG9bJ2VuYWJsZUhlbHBlciddKSB7XG4gICAgICB0aGlzLnNldENvcnJlY3RWYWx1ZSgpO1xuICAgICAgdGhpcy5kZXRlcm1pbmVJbml0aWFsU3RhdGUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY3VycmVudEhlbHBlclZhbHVlICYmIHRoaXMuY3VycmVudEhlbHBlclZhbHVlLnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlU2xpZGUoKSB7XG4gICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICBpZiAodGhpcy5jaGVja2VkKSB7XG4gICAgICAvLyBXaGVuIHRvZ2dsZSBpcyBvcGVuZWQsIGNoZWNrIGlmIGhlbHBlciBmaWVsZCBpcyBlbXB0eVxuICAgICAgY29uc3QgY3VycmVudGhlbHBlciA9IHRoaXMuaGVscGVyRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICBpZiAoIWN1cnJlbnRoZWxwZXIgfHwgY3VycmVudGhlbHBlci50cmltKCkgPT09ICcnKSB7XG4gICAgICAgIHRoaXMuaGVscGVyRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5kZWZhdWx0SGVscGVyVGV4dCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGVscGVyRm9ybUNvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBzZXR1cERlZmF1bHRGaWVsZCgpIHtcbiAgICBjb25zdCBmaWVsZENvbmZpZyA9IHRoaXMudG9bJ2RlZmF1bHRGaWVsZENvbmZpZyddO1xuICAgIGlmIChmaWVsZENvbmZpZykge1xuICAgICAgLy8gR2V0IGN1cnJlbnQgdmFsdWUgZnJvbSBtb2RlbCBhbmQgc3luYyB3aXRoIGZvcm1Db250cm9sXG4gICAgICBjb25zdCBmaWVsZEtleSA9IHRoaXMuZmllbGQua2V5IGFzIHN0cmluZztcbiAgICAgIGNvbnN0IG1vZGVsVmFsdWUgPSB0aGlzLmZpZWxkLm1vZGVsPy5bZmllbGRLZXldO1xuICAgICAgXG4gICAgICAvLyBTeW5jIGZvcm1Db250cm9sIHZhbHVlIHdpdGggbW9kZWwgdmFsdWUgaWYgaXQgZXhpc3RzXG4gICAgICBpZiAobW9kZWxWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIG1vZGVsVmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShtb2RlbFZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIENyZWF0ZSBlbmhhbmNlZCBwcm9wcyB3aXRoIG5lY2Vzc2FyeSBmaXhlcyBmb3IgcHJvZHVjdGlvblxuICAgICAgY29uc3QgZW5oYW5jZWRQcm9wcyA9IHtcbiAgICAgICAgLi4uZmllbGRDb25maWcucHJvcHMsXG4gICAgICB9O1xuICAgICAgXG4gICAgICAvLyBGb3Igc2VsZWN0IGZpZWxkcywgYWRkIGNvbXBhcmVXaXRoIGZ1bmN0aW9uIHRvIGVuc3VyZSBwcm9wZXIgdmFsdWUgbWF0Y2hpbmcgaW4gcHJvZHVjdGlvbiBidWlsZHNcbiAgICAgIGlmIChmaWVsZENvbmZpZy50eXBlID09PSAnc2VsZWN0JyAmJiAhZW5oYW5jZWRQcm9wc1snY29tcGFyZVdpdGgnXSkge1xuICAgICAgICBlbmhhbmNlZFByb3BzWydjb21wYXJlV2l0aCddID0gKG8xOiBhbnksIG8yOiBhbnkpID0+IG8xID09PSBvMjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGhpcy5kZWZhdWx0RmllbGRDb25maWcgPSB7XG4gICAgICAgIHR5cGU6IGZpZWxkQ29uZmlnLnR5cGUsXG4gICAgICAgIGtleTogdGhpcy5maWVsZC5rZXkgfHwgZmllbGRDb25maWcua2V5IHx8ICdkZWZhdWx0S2V5JyxcbiAgICAgICAgZm9ybUNvbnRyb2w6IHRoaXMuZm9ybUNvbnRyb2wsXG4gICAgICAgIHByb3BzOiBlbmhhbmNlZFByb3BzLFxuICAgICAgICB3cmFwcGVyczogZmllbGRDb25maWcud3JhcHBlcnMgfHwgW10sXG4gICAgICAgIG1vZGVsT3B0aW9uczogZmllbGRDb25maWcubW9kZWxPcHRpb25zIHx8IHRoaXMuZmllbGQubW9kZWxPcHRpb25zIHx8IHt9LFxuICAgICAgICB2YWxpZGF0b3JzOiBmaWVsZENvbmZpZy52YWxpZGF0b3JzIHx8IHRoaXMuZmllbGQudmFsaWRhdG9ycyB8fCB7fSxcbiAgICAgICAgYXN5bmNWYWxpZGF0b3JzOlxuICAgICAgICAgIGZpZWxkQ29uZmlnLmFzeW5jVmFsaWRhdG9ycyB8fCB0aGlzLmZpZWxkLmFzeW5jVmFsaWRhdG9ycyB8fCB7fSxcbiAgICAgICAgaG9va3M6IGZpZWxkQ29uZmlnLmhvb2tzIHx8IHRoaXMuZmllbGQuaG9va3MgfHwge30sXG4gICAgICAgIGV4cHJlc3Npb25zOiBmaWVsZENvbmZpZy5leHByZXNzaW9ucyB8fCB0aGlzLmZpZWxkLmV4cHJlc3Npb25zIHx8IHt9LFxuICAgICAgICBoaWRlOiBmaWVsZENvbmZpZy5oaWRlICE9PSB1bmRlZmluZWQgPyBmaWVsZENvbmZpZy5oaWRlIDogZmFsc2UsXG4gICAgICAgIGNsYXNzTmFtZTogZmllbGRDb25maWcuY2xhc3NOYW1lIHx8IHRoaXMuZmllbGQuY2xhc3NOYW1lIHx8ICcnLFxuICAgICAgICBmaWVsZEdyb3VwQ2xhc3NOYW1lOlxuICAgICAgICAgIGZpZWxkQ29uZmlnLmZpZWxkR3JvdXBDbGFzc05hbWUgfHxcbiAgICAgICAgICB0aGlzLmZpZWxkLmZpZWxkR3JvdXBDbGFzc05hbWUgfHxcbiAgICAgICAgICAnJyxcbiAgICAgICAgcGFyZW50OiB0aGlzLmZpZWxkLnBhcmVudCxcbiAgICAgICAgb3B0aW9uczogdGhpcy5maWVsZC5vcHRpb25zLFxuICAgICAgICBtb2RlbDogdGhpcy5maWVsZC5tb2RlbCxcbiAgICAgICAgZm9ybTogdGhpcy5maWVsZC5mb3JtLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBkZXRlcm1pbmVJbml0aWFsU3RhdGUoKSB7XG4gICAgLy8gQXV0by1vcGVuIGhlbHBlciBiYXNlZCBvbiBzY29yaW5nIGNyaXRlcmlhXG4gICAgc3dpdGNoICh0aGlzLnRvWydzY29yaW5nJ10/LlsnY3JpdGVyaWEnXSkge1xuICAgICAgY2FzZSAnZXhhY3RNYXRjaCc6XG4gICAgICAgIGlmIChcbiAgICAgICAgICBBcnJheS5pc0FycmF5KHRoaXMudG9bJ3Njb3JpbmcnXT8uWydhbnN3ZXInXSkgJiZcbiAgICAgICAgICAhdGhpcy50b1snc2NvcmluZyddPy5bJ2Fuc3dlciddLmluY2x1ZGVzKHRoaXMub3JpZ2luYWxWYWx1ZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncmFuZ2UnOlxuICAgICAgICBjb25zdCBhbnN3ZXIgPSB0aGlzLm9yaWdpbmFsVmFsdWU7XG4gICAgICAgIGNvbnN0IG51bSA9IHR5cGVvZiBhbnN3ZXIgPT09ICdudW1iZXInID8gYW5zd2VyIDogTnVtYmVyKGFuc3dlcik7XG5cbiAgICAgICAgY29uc3QgY29ycmVjdCA9XG4gICAgICAgICAgTnVtYmVyLmlzRmluaXRlKG51bSkgJiZcbiAgICAgICAgICBudW0gPj0gdGhpcy50b1snc2NvcmluZyddPy5bJ2Fuc3dlciddLm1pbiAmJlxuICAgICAgICAgIG51bSA8PSB0aGlzLnRvWydzY29yaW5nJ10/LlsnYW5zd2VyJ10ubWF4O1xuXG4gICAgICAgIGlmICghY29ycmVjdCkge1xuICAgICAgICAgIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgc2V0Q29ycmVjdFZhbHVlKCkge1xuICAgIGNvbnN0IGN1cnJlbnRIZWxwZXJWYWx1ZSA9IHRoaXMuY3VycmVudEhlbHBlclZhbHVlO1xuXG4gICAgLy8gSWYgaGVscGVyIGFscmVhZHkgaGFzIGEgdmFsdWUgKHVzZXIgZWRpdGVkKSwgZG9uJ3Qgb3ZlcnJpZGVcbiAgICBpZiAoY3VycmVudEhlbHBlclZhbHVlICYmIGN1cnJlbnRIZWxwZXJWYWx1ZS50cmltKCkgIT09ICcnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoICh0aGlzLnRvWydzY29yaW5nJ10/LlsnY3JpdGVyaWEnXSkge1xuICAgICAgY2FzZSAnYXR0ZW1wdGVkJzpcbiAgICAgICAgLy8gRm9yIGF0dGVtcHRlZCwgc2V0IGRlZmF1bHRIZWxwZXJUZXh0XG4gICAgICAgIHRoaXMuaGVscGVyRm9ybUNvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAnZXhhY3RNYXRjaCc6XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMudG9bJ3Njb3JpbmcnXT8uWydhbnN3ZXInXSkpIHtcbiAgICAgICAgICBpZiAodGhpcy50b1snc2NvcmluZyddPy5bJ2Fuc3dlciddLmluY2x1ZGVzKHRoaXMub3JpZ2luYWxWYWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIEFuc3dlciBpcyBjb3JyZWN0IC0gc2V0IGVtcHR5IHZhbHVlIGluIGhlbHBlclxuICAgICAgICAgICAgdGhpcy5oZWxwZXJGb3JtQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIEFuc3dlciBpcyBpbmNvcnJlY3QgLSBzZXQgZGVmYXVsdEhlbHBlclRleHQgaW4gaGVscGVyXG4gICAgICAgICAgICB0aGlzLmhlbHBlckZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuZGVmYXVsdEhlbHBlclRleHQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncmFuZ2UnOlxuICAgICAgICBjb25zdCBhbnN3ZXIgPSB0aGlzLm9yaWdpbmFsVmFsdWU7XG4gICAgICAgIGNvbnN0IG51bSA9IHR5cGVvZiBhbnN3ZXIgPT09ICdudW1iZXInID8gYW5zd2VyIDogTnVtYmVyKGFuc3dlcik7XG5cbiAgICAgICAgY29uc3QgY29ycmVjdCA9XG4gICAgICAgICAgTnVtYmVyLmlzRmluaXRlKG51bSkgJiZcbiAgICAgICAgICBudW0gPj0gdGhpcy50b1snc2NvcmluZyddPy5bJ2Fuc3dlciddLm1pbiAmJlxuICAgICAgICAgIG51bSA8PSB0aGlzLnRvWydzY29yaW5nJ10/LlsnYW5zd2VyJ10ubWF4O1xuXG4gICAgICAgIGlmIChjb3JyZWN0KSB7XG4gICAgICAgICAgLy8gQW5zd2VyIGlzIGNvcnJlY3QgLSBzZXQgZW1wdHkgdmFsdWUgaW4gaGVscGVyXG4gICAgICAgICAgdGhpcy5oZWxwZXJGb3JtQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQW5zd2VyIGlzIGluY29ycmVjdCAtIHNldCBkZWZhdWx0SGVscGVyVGV4dCBpbiBoZWxwZXJcbiAgICAgICAgICB0aGlzLmhlbHBlckZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuZGVmYXVsdEhlbHBlclRleHQpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
327
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { autosize: [{
|
|
328
|
+
type: ViewChild,
|
|
329
|
+
args: ['autosize']
|
|
330
|
+
}] } });
|
|
331
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXUtaGVscGVyLXRleHQudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tbGliL3NyYy9saWIvdHlwZXMvbXUtaGVscGVyLXRleHQudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXVCLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQW9DLFNBQVMsRUFBVSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0YsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFHTCxZQUFZLEdBQ2IsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7OztBQTRFakQsTUFBTSxPQUFPLCtCQUNYLFNBQVEsU0FBMEI7SUFPbEMsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksWUFBWSxDQUFDO0lBQ2pFLENBQUM7SUFDRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElB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QUMsRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLENBQUM7cUJBQU0sQ0FBQztvQkFDTix3REFBd0Q7b0JBQ3hELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQzFELENBQUM7Z0JBQ0QsTUFBTTtZQUVSO2dCQUNFLE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQzsrR0FoUVUsK0JBQStCO21HQUEvQiwrQkFBK0IsdU1BMURoQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FtQ1QsK1JBL0NDLFlBQVksa0lBQ1osY0FBYyxxMUJBQ2QsWUFBWSx3SEFDWixtQkFBbUIseWtCQUNuQixXQUFXLHNQQUNYLGtCQUFrQiw4QkFDbEIsb0JBQW9CLHlYQUNwQixlQUFlLDhCQUNmLG1CQUFtQiw4QkFDbkIsbUJBQW1CLDhCQUNuQixlQUFlOzs0RkE0RE4sK0JBQStCO2tCQTFFM0MsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixXQUFXO3dCQUNYLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsbUJBQW1CO3dCQUNuQixlQUFlO3FCQUNoQixZQUNTOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DVDtzRkEyQnNCLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka1RleHRhcmVhQXV0b3NpemUsIFRleHRGaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXh0LWZpZWxkJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0TmF0aXZlRGF0ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXRTbGlkZVRvZ2dsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NsaWRlLXRvZ2dsZSc7XG5pbXBvcnQge1xuICBGaWVsZFR5cGVDb25maWcsXG4gIEZvcm1seUZpZWxkQ29uZmlnLFxuICBGb3JtbHlNb2R1bGUsXG59IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnQG5neC1mb3JtbHkvbWF0ZXJpYWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdS1oZWxwZXItdGV4dCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgRm9ybWx5TW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdFNsaWRlVG9nZ2xlTW9kdWxlLFxuICAgIE1hdFNlbGVjdE1vZHVsZSxcbiAgICBNYXREYXRlcGlja2VyTW9kdWxlLFxuICAgIE1hdE5hdGl2ZURhdGVNb2R1bGUsXG4gICAgVGV4dEZpZWxkTW9kdWxlIFxuICBdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgY2xhc3M9XCJoZWxwZXItdGV4dC1jb250YWluZXJcIj5cbiAgICAgIDwhLS0gSGVscGVyIE1vZGUgLSBTaG93IHRvZ2dsZSBhbmQgY29uZGl0aW9uYWwgY29udGVudCAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCJ0b1snZW5hYmxlSGVscGVyJ11cIj5cbiAgICAgICAgPG1hdC1sYWJlbD57eyB0by5sYWJlbCB9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8ZGl2ICpuZ0lmPVwib3JpZ2luYWxWYWx1ZVwiIGNsYXNzPVwiZmxleC1yb3dcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImFuc3dlclwiPnt7IG9yaWdpbmFsVmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY2hlY2tlZFwiXG4gICAgICAgICAgICAodG9nZ2xlQ2hhbmdlKT1cInRvZ2dsZVNsaWRlKClcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpZWxkLmZvcm0/LmRpc2FibGVkXCJcbiAgICAgICAgICAgID57eyBoZWxwZXJMYWJlbCB9fTwvbWF0LXNsaWRlLXRvZ2dsZVxuICAgICAgICAgID5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidGV4dGFyZWFcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiICpuZ0lmPVwiY2hlY2tlZFwiPlxuICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgY2RrVGV4dGFyZWFBdXRvc2l6ZVxuICAgICAgICAgICAgI2F1dG9zaXplPVwiY2RrVGV4dGFyZWFBdXRvc2l6ZVwiXG4gICAgICAgICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCIyXCJcbiAgICAgICAgICAgIHJvd3M9XCIyXCJcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiaGVscGVyRm9ybUNvbnRyb2xcIlxuICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5IHx8IGZpZWxkLmZvcm0/LmRpc2FibGVkXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmaWVsZC5mb3JtPy5kaXNhYmxlZFwiXG4gICAgICAgICAgPjwvdGV4dGFyZWE+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBEZWZhdWx0IE1vZGUgLSBTaG93IGZpZWxkIGRpcmVjdGx5IC0tPlxuICAgICAgPGRpdiAqbmdJZj1cIiF0b1snZW5hYmxlSGVscGVyJ11cIj5cbiAgICAgICAgPGZvcm1seS1maWVsZCAqbmdJZj1cImRlZmF1bHRGaWVsZENvbmZpZ1wiIFtmaWVsZF09XCJkZWZhdWx0RmllbGRDb25maWdcIj5cbiAgICAgICAgPC9mb3JtbHktZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3R5bGVzOiBgXG4gICAgIC5oZWxwZXItdGV4dC1jb250YWluZXJ7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICAgfVxuICAgICAuYW5zd2Vye1xuICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICB9XG4gICAgICAudGV4dGFyZWF7XG4gICAgICBtYXJnaW46IDBweCAhaW1wb3J0YW50O1xuICAgICAgd2lkdGg6IDEwMCU7XG4gICAgIH1cbiAgICAgLmZsZXgtcm93e1xuICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gICAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gICAgIH1cbiAgICAgLnctZnVsbHtcbiAgICAgIHdpZHRoOiAxMDAlO1xuICAgICB9XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIE1ubEZvcm1IZWxwZXJUZXh0SW5wdXRDb21wb25lbnRcbiAgZXh0ZW5kcyBGaWVsZFR5cGU8RmllbGRUeXBlQ29uZmlnPlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdFxue1xuICBAVmlld0NoaWxkKCdhdXRvc2l6ZScpIGF1dG9zaXplPzogQ2RrVGV4dGFyZWFBdXRvc2l6ZTtcbiAgY2hlY2tlZCA9IGZhbHNlO1xuICBoZWxwZXJGb3JtQ29udHJvbCE6IEZvcm1Db250cm9sOyAvLyBTZXBhcmF0ZSBmb3JtIGNvbnRyb2wgZm9yIGhlbHBlciBtb2RlbFxuXG4gIGdldCBoZWxwZXJMYWJlbCgpIHtcbiAgICByZXR1cm4gdGhpcy50b1snaGVscGVyUHJvcHMnXT8uWydoZWxwZXJMYWJlbCddIHx8ICdOZWVkIGhlbHA/JztcbiAgfVxuICBnZXQgZGVmYXVsdEhlbHBlclRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG9bJ2hlbHBlclByb3BzJ10/LlsnZGVmYXVsdEhlbHBlclRleHQnXSB8fCAnJztcbiAgfVxuXG4gIC8vIEdldCB2YWx1ZSBmcm9tIHByaW1hcnkgbW9kZWwgKGFuc3dlcnMpXG4gIGdldCBvcmlnaW5hbFZhbHVlKCkge1xuICAgIGNvbnN0IGZpZWxkS2V5ID0gdGhpcy5maWVsZC5rZXkgYXMgc3RyaW5nO1xuICAgIHJldHVybiB0aGlzLmZpZWxkLm1vZGVsPy5bZmllbGRLZXldO1xuICB9XG5cbiAgLy8gR2V0L1NldCB2YWx1ZSBmcm9tIHNlY29uZGFyeSBtb2RlbCAoaGVscGVyKVxuICBnZXQgaGVscGVyTW9kZWwoKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMudG9bJ2hlbHBlck1vZGVsJ10gfHxcbiAgICAgIHRoaXMucHJvcHNbJ2hlbHBlck1vZGVsJ10gfHxcbiAgICAgIHRoaXMub3B0aW9ucz8uZm9ybVN0YXRlPy5bJ2hlbHBlck1vZGVsJ11cbiAgICApO1xuICB9XG5cbiAgZ2V0IGhlbHBlcktleSgpIHtcbiAgICByZXR1cm4gdGhpcy50b1snaGVscGVyS2V5J10gfHwgdGhpcy5maWVsZC5rZXk7XG4gIH1cblxuICBnZXQgY3VycmVudEhlbHBlclZhbHVlKCkge1xuICAgIGlmICh0aGlzLmhlbHBlck1vZGVsICYmIHRoaXMuaGVscGVyS2V5KSB7XG4gICAgICByZXR1cm4gdGhpcy5oZWxwZXJNb2RlbFt0aGlzLmhlbHBlcktleSBhcyBzdHJpbmddO1xuICAgIH1cbiAgICByZXR1cm4gJyc7XG4gIH1cblxuICBzZXQgY3VycmVudEhlbHBlclZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5oZWxwZXJNb2RlbCAmJiB0aGlzLmhlbHBlcktleSkge1xuICAgICAgdGhpcy5oZWxwZXJNb2RlbFt0aGlzLmhlbHBlcktleSBhcyBzdHJpbmddID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHJlYWRvbmx5KCkge1xuICAgIHJldHVybiB0aGlzLnRvWydyZWFkb25seSddIHx8IHRoaXMucHJvcHNbJ3JlYWRvbmx5J10gfHwgZmFsc2U7XG4gIH1cblxuICBkZWZhdWx0RmllbGRDb25maWc/OiBGb3JtbHlGaWVsZENvbmZpZztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgLy8gSW5pdGlhbGl6ZSBoZWxwZXIgZm9ybSBjb250cm9sIHdpdGggdmFsdWUgZnJvbSBoZWxwZXIgbW9kZWxcbiAgICB0aGlzLmhlbHBlckZvcm1Db250cm9sID0gbmV3IEZvcm1Db250cm9sKHRoaXMuY3VycmVudEhlbHBlclZhbHVlIHx8ICcnKTtcblxuICAgIC8vIFN1YnNjcmliZSB0byBjaGFuZ2VzIGluIGhlbHBlciBmb3JtIGNvbnRyb2wgYW5kIHVwZGF0ZSBoZWxwZXIgbW9kZWxcbiAgICB0aGlzLmhlbHBlckZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLmN1cnJlbnRIZWxwZXJWYWx1ZSA9IHZhbHVlO1xuICAgICAgLy8gRW1pdCBoZWxwZXIgbW9kZWwgY2hhbmdlIHRvIHBhcmVudCBjb21wb25lbnRcbiAgICAgIHRoaXMub3B0aW9ucz8uZm9ybVN0YXRlPy5bJ29uSGVscGVyTW9kZWxDaGFuZ2UnXT8uKHRoaXMuaGVscGVyTW9kZWwpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zZXR1cERlZmF1bHRGaWVsZCgpO1xuXG4gICAgaWYgKHRoaXMudG9bJ2VuYWJsZUhlbHBlciddKSB7XG4gICAgICB0aGlzLnNldENvcnJlY3RWYWx1ZSgpO1xuICAgICAgdGhpcy5kZXRlcm1pbmVJbml0aWFsU3RhdGUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuY3VycmVudEhlbHBlclZhbHVlICYmIHRoaXMuY3VycmVudEhlbHBlclZhbHVlLnRyaW0oKSAhPT0gJycpIHtcbiAgICAgIHRoaXMuY2hlY2tlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgdGhpcy5hdXRvc2l6ZT8ucmVzaXplVG9GaXRDb250ZW50KHRydWUpO1xuICAgIH0pO1xuICB9XG5cblxuICBwdWJsaWMgcmVzaXplVGV4dGFyZWEoKSB7XG4gICAgaWYgKHRoaXMuYXV0b3NpemUpIHtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5hdXRvc2l6ZT8ucmVzaXplVG9GaXRDb250ZW50KHRydWUpLCA1MCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlU2xpZGUoKSB7XG4gICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICBpZiAodGhpcy5jaGVja2VkKSB7XG4gICAgICAvLyBXaGVuIHRvZ2dsZSBpcyBvcGVuZWQsIGNoZWNrIGlmIGhlbHBlciBmaWVsZCBpcyBlbXB0eVxuICAgICAgY29uc3QgY3VycmVudGhlbHBlciA9IHRoaXMuaGVscGVyRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICBpZiAoIWN1cnJlbnRoZWxwZXIgfHwgY3VycmVudGhlbHBlci50cmltKCkgPT09ICcnKSB7XG4gICAgICAgIHRoaXMuaGVscGVyRm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5kZWZhdWx0SGVscGVyVGV4dCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaGVscGVyRm9ybUNvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgIH1cbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBzZXR1cERlZmF1bHRGaWVsZCgpIHtcbiAgICBjb25zdCBmaWVsZENvbmZpZyA9IHRoaXMudG9bJ2RlZmF1bHRGaWVsZENvbmZpZyddO1xuICAgIGlmIChmaWVsZENvbmZpZykge1xuICAgICAgLy8gR2V0IGN1cnJlbnQgdmFsdWUgZnJvbSBtb2RlbCBhbmQgc3luYyB3aXRoIGZvcm1Db250cm9sXG4gICAgICBjb25zdCBmaWVsZEtleSA9IHRoaXMuZmllbGQua2V5IGFzIHN0cmluZztcbiAgICAgIGNvbnN0IG1vZGVsVmFsdWUgPSB0aGlzLmZpZWxkLm1vZGVsPy5bZmllbGRLZXldO1xuICAgICAgXG4gICAgICAvLyBTeW5jIGZvcm1Db250cm9sIHZhbHVlIHdpdGggbW9kZWwgdmFsdWUgaWYgaXQgZXhpc3RzXG4gICAgICBpZiAobW9kZWxWYWx1ZSAhPT0gdW5kZWZpbmVkICYmIG1vZGVsVmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShtb2RlbFZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIC8vIENyZWF0ZSBlbmhhbmNlZCBwcm9wcyB3aXRoIG5lY2Vzc2FyeSBmaXhlcyBmb3IgcHJvZHVjdGlvblxuICAgICAgY29uc3QgZW5oYW5jZWRQcm9wcyA9IHtcbiAgICAgICAgLi4uZmllbGRDb25maWcucHJvcHMsXG4gICAgICB9O1xuICAgICAgXG4gICAgICAvLyBGb3Igc2VsZWN0IGZpZWxkcywgYWRkIGNvbXBhcmVXaXRoIGZ1bmN0aW9uIHRvIGVuc3VyZSBwcm9wZXIgdmFsdWUgbWF0Y2hpbmcgaW4gcHJvZHVjdGlvbiBidWlsZHNcbiAgICAgIGlmIChmaWVsZENvbmZpZy50eXBlID09PSAnc2VsZWN0JyAmJiAhZW5oYW5jZWRQcm9wc1snY29tcGFyZVdpdGgnXSkge1xuICAgICAgICBlbmhhbmNlZFByb3BzWydjb21wYXJlV2l0aCddID0gKG8xOiBhbnksIG8yOiBhbnkpID0+IG8xID09PSBvMjtcbiAgICAgIH1cbiAgICAgIFxuICAgICAgdGhpcy5kZWZhdWx0RmllbGRDb25maWcgPSB7XG4gICAgICAgIHR5cGU6IGZpZWxkQ29uZmlnLnR5cGUsXG4gICAgICAgIGtleTogdGhpcy5maWVsZC5rZXkgfHwgZmllbGRDb25maWcua2V5IHx8ICdkZWZhdWx0S2V5JyxcbiAgICAgICAgZm9ybUNvbnRyb2w6IHRoaXMuZm9ybUNvbnRyb2wsXG4gICAgICAgIHByb3BzOiBlbmhhbmNlZFByb3BzLFxuICAgICAgICB3cmFwcGVyczogZmllbGRDb25maWcud3JhcHBlcnMgfHwgW10sXG4gICAgICAgIG1vZGVsT3B0aW9uczogZmllbGRDb25maWcubW9kZWxPcHRpb25zIHx8IHRoaXMuZmllbGQubW9kZWxPcHRpb25zIHx8IHt9LFxuICAgICAgICB2YWxpZGF0b3JzOiBmaWVsZENvbmZpZy52YWxpZGF0b3JzIHx8IHRoaXMuZmllbGQudmFsaWRhdG9ycyB8fCB7fSxcbiAgICAgICAgYXN5bmNWYWxpZGF0b3JzOlxuICAgICAgICAgIGZpZWxkQ29uZmlnLmFzeW5jVmFsaWRhdG9ycyB8fCB0aGlzLmZpZWxkLmFzeW5jVmFsaWRhdG9ycyB8fCB7fSxcbiAgICAgICAgaG9va3M6IGZpZWxkQ29uZmlnLmhvb2tzIHx8IHRoaXMuZmllbGQuaG9va3MgfHwge30sXG4gICAgICAgIGV4cHJlc3Npb25zOiBmaWVsZENvbmZpZy5leHByZXNzaW9ucyB8fCB0aGlzLmZpZWxkLmV4cHJlc3Npb25zIHx8IHt9LFxuICAgICAgICBoaWRlOiBmaWVsZENvbmZpZy5oaWRlICE9PSB1bmRlZmluZWQgPyBmaWVsZENvbmZpZy5oaWRlIDogZmFsc2UsXG4gICAgICAgIGNsYXNzTmFtZTogZmllbGRDb25maWcuY2xhc3NOYW1lIHx8IHRoaXMuZmllbGQuY2xhc3NOYW1lIHx8ICcnLFxuICAgICAgICBmaWVsZEdyb3VwQ2xhc3NOYW1lOlxuICAgICAgICAgIGZpZWxkQ29uZmlnLmZpZWxkR3JvdXBDbGFzc05hbWUgfHxcbiAgICAgICAgICB0aGlzLmZpZWxkLmZpZWxkR3JvdXBDbGFzc05hbWUgfHxcbiAgICAgICAgICAnJyxcbiAgICAgICAgcGFyZW50OiB0aGlzLmZpZWxkLnBhcmVudCxcbiAgICAgICAgb3B0aW9uczogdGhpcy5maWVsZC5vcHRpb25zLFxuICAgICAgICBtb2RlbDogdGhpcy5maWVsZC5tb2RlbCxcbiAgICAgICAgZm9ybTogdGhpcy5maWVsZC5mb3JtLFxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBkZXRlcm1pbmVJbml0aWFsU3RhdGUoKSB7XG4gICAgLy8gQXV0by1vcGVuIGhlbHBlciBiYXNlZCBvbiBzY29yaW5nIGNyaXRlcmlhXG4gICAgc3dpdGNoICh0aGlzLnRvWydzY29yaW5nJ10/LlsnY3JpdGVyaWEnXSkge1xuICAgICAgY2FzZSAnZXhhY3RNYXRjaCc6XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMudG9bJ3Njb3JpbmcnXT8uWydhbnN3ZXInXSkpIHtcbiAgICAgICAgICAvLyBIYW5kbGUgbXVsdGlzZWxlY3QgY2FzZSB3aGVyZSBhbnN3ZXIgaXMgYWxzbyBhbiBhcnJheVxuICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMub3JpZ2luYWxWYWx1ZSkpIHtcbiAgICAgICAgICAgIC8vIENoZWNrIGlmIG5vdCBlbXB0eSBBTkQgYWxsIHNlbGVjdGVkIGFuc3dlcnMgYXJlIGluIGV4cGVjdGVkIGFuc3dlcnNcbiAgICAgICAgICAgIGNvbnN0IGlzQ29ycmVjdCA9IHRoaXMub3JpZ2luYWxWYWx1ZS5sZW5ndGggPiAwICYmIFxuICAgICAgICAgICAgICB0aGlzLm9yaWdpbmFsVmFsdWUuZXZlcnkoYSA9PiB0aGlzLnRvWydzY29yaW5nJ10/LlsnYW5zd2VyJ10uaW5jbHVkZXMoYSkpO1xuICAgICAgICAgICAgaWYgKCFpc0NvcnJlY3QpIHtcbiAgICAgICAgICAgICAgdGhpcy5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gU2luZ2xlIHZhbHVlIGNhc2VcbiAgICAgICAgICAgIGlmICghdGhpcy50b1snc2NvcmluZyddPy5bJ2Fuc3dlciddLmluY2x1ZGVzKHRoaXMub3JpZ2luYWxWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgdGhpcy5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ3JhbmdlJzpcbiAgICAgICAgY29uc3QgYW5zd2VyID0gdGhpcy5vcmlnaW5hbFZhbHVlO1xuICAgICAgICBjb25zdCBudW0gPSB0eXBlb2YgYW5zd2VyID09PSAnbnVtYmVyJyA/IGFuc3dlciA6IE51bWJlcihhbnN3ZXIpO1xuXG4gICAgICAgIGNvbnN0IGNvcnJlY3QgPVxuICAgICAgICAgIE51bWJlci5pc0Zpbml0ZShudW0pICYmXG4gICAgICAgICAgbnVtID49IHRoaXMudG9bJ3Njb3JpbmcnXT8uWydhbnN3ZXInXS5taW4gJiZcbiAgICAgICAgICBudW0gPD0gdGhpcy50b1snc2NvcmluZyddPy5bJ2Fuc3dlciddLm1heDtcblxuICAgICAgICBpZiAoIWNvcnJlY3QpIHtcbiAgICAgICAgICB0aGlzLmNoZWNrZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIHNldENvcnJlY3RWYWx1ZSgpIHtcbiAgICBjb25zdCBjdXJyZW50SGVscGVyVmFsdWUgPSB0aGlzLmN1cnJlbnRIZWxwZXJWYWx1ZTtcblxuICAgIC8vIElmIGhlbHBlciBhbHJlYWR5IGhhcyBhIHZhbHVlICh1c2VyIGVkaXRlZCksIGRvbid0IG92ZXJyaWRlXG4gICAgaWYgKGN1cnJlbnRIZWxwZXJWYWx1ZSAmJiBjdXJyZW50SGVscGVyVmFsdWUudHJpbSgpICE9PSAnJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHN3aXRjaCAodGhpcy50b1snc2NvcmluZyddPy5bJ2NyaXRlcmlhJ10pIHtcbiAgICAgIGNhc2UgJ2F0dGVtcHRlZCc6XG4gICAgICAgIC8vIEZvciBhdHRlbXB0ZWQsIHNldCBkZWZhdWx0SGVscGVyVGV4dFxuICAgICAgICB0aGlzLmhlbHBlckZvcm1Db250cm9sLnNldFZhbHVlKCcnKTtcbiAgICAgICAgYnJlYWs7XG5cbiAgICAgIGNhc2UgJ2V4YWN0TWF0Y2gnOlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnRvWydzY29yaW5nJ10/LlsnYW5zd2VyJ10pKSB7XG4gICAgICAgICAgLy8gSGFuZGxlIG11bHRpc2VsZWN0IGNhc2Ugd2hlcmUgYW5zd2VyIGlzIGFsc28gYW4gYXJyYXlcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLm9yaWdpbmFsVmFsdWUpKSB7XG4gICAgICAgICAgICAvLyBDaGVjayBpZiBub3QgZW1wdHkgQU5EIGFsbCBzZWxlY3RlZCBhbnN3ZXJzIGFyZSBpbiBleHBlY3RlZCBhbnN3ZXJzXG4gICAgICAgICAgICBjb25zdCBpc0NvcnJlY3QgPSB0aGlzLm9yaWdpbmFsVmFsdWUubGVuZ3RoID4gMCAmJiBcbiAgICAgICAgICAgICAgdGhpcy5vcmlnaW5hbFZhbHVlLmV2ZXJ5KGEgPT4gdGhpcy50b1snc2NvcmluZyddPy5bJ2Fuc3dlciddLmluY2x1ZGVzKGEpKTtcbiAgICAgICAgICAgIGlmIChpc0NvcnJlY3QpIHtcbiAgICAgICAgICAgICAgLy8gQW5zd2VyIGlzIGNvcnJlY3QgLSBzZXQgZW1wdHkgdmFsdWUgaW4gaGVscGVyXG4gICAgICAgICAgICAgIHRoaXMuaGVscGVyRm9ybUNvbnRyb2wuc2V0VmFsdWUoJycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgLy8gQW5zd2VyIGlzIGluY29ycmVjdCAtIHNldCBkZWZhdWx0SGVscGVyVGV4dCBpbiBoZWxwZXJcbiAgICAgICAgICAgICAgdGhpcy5oZWxwZXJGb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmRlZmF1bHRIZWxwZXJUZXh0KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gU2luZ2xlIHZhbHVlIGNhc2VcbiAgICAgICAgICAgIGlmICh0aGlzLnRvWydzY29yaW5nJ10/LlsnYW5zd2VyJ10uaW5jbHVkZXModGhpcy5vcmlnaW5hbFZhbHVlKSkge1xuICAgICAgICAgICAgICAvLyBBbnN3ZXIgaXMgY29ycmVjdCAtIHNldCBlbXB0eSB2YWx1ZSBpbiBoZWxwZXJcbiAgICAgICAgICAgICAgdGhpcy5oZWxwZXJGb3JtQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBBbnN3ZXIgaXMgaW5jb3JyZWN0IC0gc2V0IGRlZmF1bHRIZWxwZXJUZXh0IGluIGhlbHBlclxuICAgICAgICAgICAgICB0aGlzLmhlbHBlckZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuZGVmYXVsdEhlbHBlclRleHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBicmVhaztcblxuICAgICAgY2FzZSAncmFuZ2UnOlxuICAgICAgICBjb25zdCBhbnN3ZXIgPSB0aGlzLm9yaWdpbmFsVmFsdWU7XG4gICAgICAgIGNvbnN0IG51bSA9IHR5cGVvZiBhbnN3ZXIgPT09ICdudW1iZXInID8gYW5zd2VyIDogTnVtYmVyKGFuc3dlcik7XG5cbiAgICAgICAgY29uc3QgY29ycmVjdCA9XG4gICAgICAgICAgTnVtYmVyLmlzRmluaXRlKG51bSkgJiZcbiAgICAgICAgICBudW0gPj0gdGhpcy50b1snc2NvcmluZyddPy5bJ2Fuc3dlciddLm1pbiAmJlxuICAgICAgICAgIG51bSA8PSB0aGlzLnRvWydzY29yaW5nJ10/LlsnYW5zd2VyJ10ubWF4O1xuXG4gICAgICAgIGlmIChjb3JyZWN0KSB7XG4gICAgICAgICAgLy8gQW5zd2VyIGlzIGNvcnJlY3QgLSBzZXQgZW1wdHkgdmFsdWUgaW4gaGVscGVyXG4gICAgICAgICAgdGhpcy5oZWxwZXJGb3JtQ29udHJvbC5zZXRWYWx1ZSgnJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgLy8gQW5zd2VyIGlzIGluY29ycmVjdCAtIHNldCBkZWZhdWx0SGVscGVyVGV4dCBpbiBoZWxwZXJcbiAgICAgICAgICB0aGlzLmhlbHBlckZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuZGVmYXVsdEhlbHBlclRleHQpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -8,4 +8,5 @@ export * from './lib/models/workflow-status.model';
|
|
|
8
8
|
export * from './lib/workflow-status/workflow-status.component';
|
|
9
9
|
export * from './lib/workflow-status/ workflow-status.module';
|
|
10
10
|
export * from './lib/confirmation-dialog/confirmation-dialog.component';
|
|
11
|
-
|
|
11
|
+
export * from './lib/types/mu-helper-text.type';
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0tbGliL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBmb3JtbHktbGliXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybWx5LWxpYi9mb3JtbHktc3RhbmRhbG9uZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybWx5LWxpYi9mb3JtbHktbGliLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvY3VzdG9tLWZvcm0tZmllbGQubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3dvcmtmbG93LXN0YXR1cy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93b3JrZmxvdy1zdGF0dXMvd29ya2Zsb3ctc3RhdHVzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi93b3JrZmxvdy1zdGF0dXMvIHdvcmtmbG93LXN0YXR1cy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29uZmlybWF0aW9uLWRpYWxvZy9jb25maXJtYXRpb24tZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi90eXBlcy9tdS1oZWxwZXItdGV4dC50eXBlJzsiXX0=
|
|
@@ -63,7 +63,9 @@ import { FormlyMatDatepickerModule } from '@ngx-formly/material/datepicker';
|
|
|
63
63
|
import * as i3$4 from '@angular/material/card';
|
|
64
64
|
import { MatCardModule } from '@angular/material/card';
|
|
65
65
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
66
|
-
import * as
|
|
66
|
+
import * as i4$2 from '@angular/cdk/text-field';
|
|
67
|
+
import { TextFieldModule } from '@angular/cdk/text-field';
|
|
68
|
+
import * as i7$3 from '@angular/material/slide-toggle';
|
|
67
69
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
68
70
|
import { FormlyMatCheckboxModule } from '@ngx-formly/material/checkbox';
|
|
69
71
|
import { FormlyMatInputModule } from '@ngx-formly/material/input';
|
|
@@ -4575,6 +4577,18 @@ class MnlFormHelperTextInputComponent extends FieldType$1 {
|
|
|
4575
4577
|
this.checked = true;
|
|
4576
4578
|
}
|
|
4577
4579
|
}
|
|
4580
|
+
ngAfterViewInit() {
|
|
4581
|
+
setTimeout(() => {
|
|
4582
|
+
this.cdr.detectChanges();
|
|
4583
|
+
this.autosize?.resizeToFitContent(true);
|
|
4584
|
+
});
|
|
4585
|
+
}
|
|
4586
|
+
resizeTextarea() {
|
|
4587
|
+
if (this.autosize) {
|
|
4588
|
+
this.cdr.detectChanges();
|
|
4589
|
+
setTimeout(() => this.autosize?.resizeToFitContent(true), 50);
|
|
4590
|
+
}
|
|
4591
|
+
}
|
|
4578
4592
|
toggleSlide() {
|
|
4579
4593
|
this.checked = !this.checked;
|
|
4580
4594
|
if (this.checked) {
|
|
@@ -4634,9 +4648,22 @@ class MnlFormHelperTextInputComponent extends FieldType$1 {
|
|
|
4634
4648
|
// Auto-open helper based on scoring criteria
|
|
4635
4649
|
switch (this.to['scoring']?.['criteria']) {
|
|
4636
4650
|
case 'exactMatch':
|
|
4637
|
-
if (Array.isArray(this.to['scoring']?.['answer'])
|
|
4638
|
-
|
|
4639
|
-
this.
|
|
4651
|
+
if (Array.isArray(this.to['scoring']?.['answer'])) {
|
|
4652
|
+
// Handle multiselect case where answer is also an array
|
|
4653
|
+
if (Array.isArray(this.originalValue)) {
|
|
4654
|
+
// Check if not empty AND all selected answers are in expected answers
|
|
4655
|
+
const isCorrect = this.originalValue.length > 0 &&
|
|
4656
|
+
this.originalValue.every(a => this.to['scoring']?.['answer'].includes(a));
|
|
4657
|
+
if (!isCorrect) {
|
|
4658
|
+
this.checked = true;
|
|
4659
|
+
}
|
|
4660
|
+
}
|
|
4661
|
+
else {
|
|
4662
|
+
// Single value case
|
|
4663
|
+
if (!this.to['scoring']?.['answer'].includes(this.originalValue)) {
|
|
4664
|
+
this.checked = true;
|
|
4665
|
+
}
|
|
4666
|
+
}
|
|
4640
4667
|
}
|
|
4641
4668
|
break;
|
|
4642
4669
|
case 'range':
|
|
@@ -4664,13 +4691,30 @@ class MnlFormHelperTextInputComponent extends FieldType$1 {
|
|
|
4664
4691
|
break;
|
|
4665
4692
|
case 'exactMatch':
|
|
4666
4693
|
if (Array.isArray(this.to['scoring']?.['answer'])) {
|
|
4667
|
-
|
|
4668
|
-
|
|
4669
|
-
|
|
4694
|
+
// Handle multiselect case where answer is also an array
|
|
4695
|
+
if (Array.isArray(this.originalValue)) {
|
|
4696
|
+
// Check if not empty AND all selected answers are in expected answers
|
|
4697
|
+
const isCorrect = this.originalValue.length > 0 &&
|
|
4698
|
+
this.originalValue.every(a => this.to['scoring']?.['answer'].includes(a));
|
|
4699
|
+
if (isCorrect) {
|
|
4700
|
+
// Answer is correct - set empty value in helper
|
|
4701
|
+
this.helperFormControl.setValue('');
|
|
4702
|
+
}
|
|
4703
|
+
else {
|
|
4704
|
+
// Answer is incorrect - set defaultHelperText in helper
|
|
4705
|
+
this.helperFormControl.setValue(this.defaultHelperText);
|
|
4706
|
+
}
|
|
4670
4707
|
}
|
|
4671
4708
|
else {
|
|
4672
|
-
//
|
|
4673
|
-
this.
|
|
4709
|
+
// Single value case
|
|
4710
|
+
if (this.to['scoring']?.['answer'].includes(this.originalValue)) {
|
|
4711
|
+
// Answer is correct - set empty value in helper
|
|
4712
|
+
this.helperFormControl.setValue('');
|
|
4713
|
+
}
|
|
4714
|
+
else {
|
|
4715
|
+
// Answer is incorrect - set defaultHelperText in helper
|
|
4716
|
+
this.helperFormControl.setValue(this.defaultHelperText);
|
|
4717
|
+
}
|
|
4674
4718
|
}
|
|
4675
4719
|
}
|
|
4676
4720
|
break;
|
|
@@ -4694,7 +4738,7 @@ class MnlFormHelperTextInputComponent extends FieldType$1 {
|
|
|
4694
4738
|
}
|
|
4695
4739
|
}
|
|
4696
4740
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MnlFormHelperTextInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4697
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MnlFormHelperTextInputComponent, isStandalone: true, selector: "mu-helper-text", usesInheritance: true, ngImport: i0, template: `
|
|
4741
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: MnlFormHelperTextInputComponent, isStandalone: true, selector: "mu-helper-text", viewQueries: [{ propertyName: "autosize", first: true, predicate: ["autosize"], descendants: true }], usesInheritance: true, ngImport: i0, template: `
|
|
4698
4742
|
<div class="helper-text-container">
|
|
4699
4743
|
<!-- Helper Mode - Show toggle and conditional content -->
|
|
4700
4744
|
<div *ngIf="to['enableHelper']">
|
|
@@ -4711,12 +4755,15 @@ class MnlFormHelperTextInputComponent extends FieldType$1 {
|
|
|
4711
4755
|
|
|
4712
4756
|
<mat-form-field class="textarea" appearance="outline" *ngIf="checked">
|
|
4713
4757
|
<textarea
|
|
4758
|
+
cdkTextareaAutosize
|
|
4759
|
+
#autosize="cdkTextareaAutosize"
|
|
4760
|
+
cdkAutosizeMinRows="2"
|
|
4761
|
+
rows="2"
|
|
4714
4762
|
matInput
|
|
4715
4763
|
[formControl]="helperFormControl"
|
|
4716
4764
|
[readonly]="readonly || field.form?.disabled"
|
|
4717
4765
|
[disabled]="field.form?.disabled"
|
|
4718
|
-
>
|
|
4719
|
-
</textarea>
|
|
4766
|
+
></textarea>
|
|
4720
4767
|
</mat-form-field>
|
|
4721
4768
|
</div>
|
|
4722
4769
|
|
|
@@ -4726,7 +4773,7 @@ class MnlFormHelperTextInputComponent extends FieldType$1 {
|
|
|
4726
4773
|
</formly-field>
|
|
4727
4774
|
</div>
|
|
4728
4775
|
</div>
|
|
4729
|
-
`, isInline: true, styles: [".helper-text-container{display:flex;flex-direction:column}.answer{font-size:12px}.textarea{margin:0!important;width:100%}.flex-row{display:flex;flex-direction:row;justify-content:space-between}.w-full{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$3.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i2$1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type:
|
|
4776
|
+
`, isInline: true, styles: [".helper-text-container{display:flex;flex-direction:column}.answer{font-size:12px}.textarea{margin:0!important;width:100%}.flex-row{display:flex;flex-direction:row;justify-content:space-between}.w-full{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i3$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4$2.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i2$1.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: MatSlideToggleModule }, { kind: "component", type: i7$3.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "ngmodule", type: MatNativeDateModule }, { kind: "ngmodule", type: TextFieldModule }] }); }
|
|
4730
4777
|
}
|
|
4731
4778
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: MnlFormHelperTextInputComponent, decorators: [{
|
|
4732
4779
|
type: Component,
|
|
@@ -4741,6 +4788,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
4741
4788
|
MatSelectModule,
|
|
4742
4789
|
MatDatepickerModule,
|
|
4743
4790
|
MatNativeDateModule,
|
|
4791
|
+
TextFieldModule
|
|
4744
4792
|
], template: `
|
|
4745
4793
|
<div class="helper-text-container">
|
|
4746
4794
|
<!-- Helper Mode - Show toggle and conditional content -->
|
|
@@ -4758,12 +4806,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
4758
4806
|
|
|
4759
4807
|
<mat-form-field class="textarea" appearance="outline" *ngIf="checked">
|
|
4760
4808
|
<textarea
|
|
4809
|
+
cdkTextareaAutosize
|
|
4810
|
+
#autosize="cdkTextareaAutosize"
|
|
4811
|
+
cdkAutosizeMinRows="2"
|
|
4812
|
+
rows="2"
|
|
4761
4813
|
matInput
|
|
4762
4814
|
[formControl]="helperFormControl"
|
|
4763
4815
|
[readonly]="readonly || field.form?.disabled"
|
|
4764
4816
|
[disabled]="field.form?.disabled"
|
|
4765
|
-
>
|
|
4766
|
-
</textarea>
|
|
4817
|
+
></textarea>
|
|
4767
4818
|
</mat-form-field>
|
|
4768
4819
|
</div>
|
|
4769
4820
|
|
|
@@ -4774,7 +4825,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
4774
4825
|
</div>
|
|
4775
4826
|
</div>
|
|
4776
4827
|
`, styles: [".helper-text-container{display:flex;flex-direction:column}.answer{font-size:12px}.textarea{margin:0!important;width:100%}.flex-row{display:flex;flex-direction:row;justify-content:space-between}.w-full{width:100%}\n"] }]
|
|
4777
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }]
|
|
4828
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { autosize: [{
|
|
4829
|
+
type: ViewChild,
|
|
4830
|
+
args: ['autosize']
|
|
4831
|
+
}] } });
|
|
4778
4832
|
|
|
4779
4833
|
const mnlFormProviders = [
|
|
4780
4834
|
importProvidersFrom(CommonsModule.forRoot(), CommonModule, ReactiveFormsModule, FormlyModule.forRoot({
|
|
@@ -4935,7 +4989,15 @@ class ScoringService {
|
|
|
4935
4989
|
break;
|
|
4936
4990
|
case 'exactMatch':
|
|
4937
4991
|
if (Array.isArray(scoring.answer)) {
|
|
4938
|
-
|
|
4992
|
+
// Handle case where answer is also an array (multiselect)
|
|
4993
|
+
if (Array.isArray(answer)) {
|
|
4994
|
+
// Check if answer is not empty AND all selected answers are in the expected answers
|
|
4995
|
+
correct = answer.length > 0 && answer.every(a => scoring.answer.includes(a));
|
|
4996
|
+
}
|
|
4997
|
+
else {
|
|
4998
|
+
// Single value case
|
|
4999
|
+
correct = scoring.answer.includes(answer);
|
|
5000
|
+
}
|
|
4939
5001
|
}
|
|
4940
5002
|
break;
|
|
4941
5003
|
case 'range':
|
|
@@ -5277,5 +5339,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
5277
5339
|
* Generated bundle index. Do not edit.
|
|
5278
5340
|
*/
|
|
5279
5341
|
|
|
5280
|
-
export { ConfirmationDialogComponent, MnlFormLibComponent, WorkflowStatusComponent, WorkflowStatusModule, mnlFormProviders };
|
|
5342
|
+
export { ConfirmationDialogComponent, MnlFormHelperTextInputComponent, MnlFormLibComponent, WorkflowStatusComponent, WorkflowStatusModule, mnlFormProviders };
|
|
5281
5343
|
//# sourceMappingURL=muraai-mnl-form.mjs.map
|