@rangertechnologies/ngnxt 2.1.77 → 2.1.78
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/nxt-app.module.mjs +8 -24
- package/esm2022/lib/pages/booklet/booklet.component.mjs +4 -4
- package/esm2022/lib/pages/questionbook/questionbook.component.mjs +19 -26
- package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +6 -25
- package/esm2022/lib/sample.mjs +1 -285
- package/fesm2022/rangertechnologies-ngnxt.mjs +16 -509
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/lib/nxt-app.module.d.ts +30 -33
- package/lib/pages/questionnaire/questionnaire.component.d.ts +0 -2
- package/lib/sample.d.ts +0 -1
- package/package.json +1 -1
- package/rangertechnologies-ngnxt-2.1.78.tgz +0 -0
- package/esm2022/lib/components/custom-rich-text/custom-rich-text.component.mjs +0 -177
- package/lib/components/custom-rich-text/custom-rich-text.component.d.ts +0 -29
- package/rangertechnologies-ngnxt-2.1.77.tgz +0 -0
package/lib/nxt-app.module.d.ts
CHANGED
|
@@ -10,40 +10,37 @@ import * as i8 from "./components/custom-date-picker/custom-date-picker.componen
|
|
|
10
10
|
import * as i9 from "./components/dropdown-with-flag/dropdown-with-flag.component";
|
|
11
11
|
import * as i10 from "./components/custom-dropdown/custom-dropdown.component";
|
|
12
12
|
import * as i11 from "./pages/booklet/booklet.component";
|
|
13
|
-
import * as i12 from "./components/
|
|
14
|
-
import * as i13 from "./
|
|
15
|
-
import * as i14 from "./
|
|
16
|
-
import * as i15 from "./
|
|
17
|
-
import * as i16 from "./
|
|
18
|
-
import * as i17 from "./components/
|
|
19
|
-
import * as i18 from "./components/
|
|
20
|
-
import * as i19 from "./components/
|
|
21
|
-
import * as i20 from "./components/
|
|
22
|
-
import * as i21 from "./components/custom-
|
|
23
|
-
import * as i22 from "./components/custom-
|
|
24
|
-
import * as i23 from "./components/custom-
|
|
25
|
-
import * as i24 from "./components/
|
|
26
|
-
import * as i25 from "./
|
|
27
|
-
import * as i26 from "./i18n.
|
|
28
|
-
import * as i27 from "./
|
|
29
|
-
import * as i28 from "./components/custom-
|
|
30
|
-
import * as i29 from "
|
|
31
|
-
import * as i30 from "
|
|
32
|
-
import * as i31 from "
|
|
33
|
-
import * as i32 from "
|
|
34
|
-
import * as i33 from "
|
|
35
|
-
import * as i34 from "
|
|
36
|
-
import * as i35 from "ng-
|
|
37
|
-
import * as i36 from "
|
|
38
|
-
import * as i37 from "
|
|
39
|
-
import * as i38 from "
|
|
40
|
-
import * as i39 from "
|
|
41
|
-
import * as i40 from "
|
|
42
|
-
import * as i41 from "ngx-spinner";
|
|
43
|
-
import * as i42 from "./i18n.module";
|
|
44
|
-
import * as i43 from "ng-circle-progress";
|
|
13
|
+
import * as i12 from "./components/search-box/search-box.component";
|
|
14
|
+
import * as i13 from "./pages/questionbook/questionbook.component";
|
|
15
|
+
import * as i14 from "./components/file-upload/file-upload.component";
|
|
16
|
+
import * as i15 from "./pages/summary-page/summary-page.component";
|
|
17
|
+
import * as i16 from "./components/file-view/file-view.component";
|
|
18
|
+
import * as i17 from "./components/dependent-table/dependent-table.component";
|
|
19
|
+
import * as i18 from "./components/custom-label/custom-label.component";
|
|
20
|
+
import * as i19 from "./components/table-appendix/table-appendix.component";
|
|
21
|
+
import * as i20 from "./components/custom-date/custom-date.component";
|
|
22
|
+
import * as i21 from "./components/custom-time/custom-time.component";
|
|
23
|
+
import * as i22 from "./components/custom-button/custom-button.component";
|
|
24
|
+
import * as i23 from "./components/custom-model/custom-model.component";
|
|
25
|
+
import * as i24 from "./components/loader/loader.component";
|
|
26
|
+
import * as i25 from "./i18n.component";
|
|
27
|
+
import * as i26 from "./i18n.pipe";
|
|
28
|
+
import * as i27 from "./components/custom-image/custom-image.component";
|
|
29
|
+
import * as i28 from "./components/custom-radio/custom-radio.component";
|
|
30
|
+
import * as i29 from "@angular/common";
|
|
31
|
+
import * as i30 from "@angular/forms";
|
|
32
|
+
import * as i31 from "mydatepicker";
|
|
33
|
+
import * as i32 from "ng-pick-datetime";
|
|
34
|
+
import * as i33 from "./directives/componenthost/componenthost.directive";
|
|
35
|
+
import * as i34 from "./pipe/get-value.pipe";
|
|
36
|
+
import * as i35 from "@ng-select/ng-select";
|
|
37
|
+
import * as i36 from "@angular/google-maps";
|
|
38
|
+
import * as i37 from "@angular/material/tooltip";
|
|
39
|
+
import * as i38 from "ngx-spinner";
|
|
40
|
+
import * as i39 from "./i18n.module";
|
|
41
|
+
import * as i40 from "ng-circle-progress";
|
|
45
42
|
export declare class NxtAppModule {
|
|
46
43
|
static ɵfac: i0.ɵɵFactoryDeclaration<NxtAppModule, never>;
|
|
47
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<NxtAppModule, [typeof i1.NxtAppComponent, typeof i2.QuestionnaireComponent, typeof i3.PickLocationComponent, typeof i4.CustomInputComponent, typeof i5.CustomTextAreaComponent, typeof i6.CustomTableComponent, typeof i7.CustomCalendarComponent, typeof i8.CustomDatePickerComponent, typeof i9.DropdownWithFlagComponent, typeof i10.CustomDropdownComponent, typeof i11.BookletComponent, typeof i12.
|
|
44
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NxtAppModule, [typeof i1.NxtAppComponent, typeof i2.QuestionnaireComponent, typeof i3.PickLocationComponent, typeof i4.CustomInputComponent, typeof i5.CustomTextAreaComponent, typeof i6.CustomTableComponent, typeof i7.CustomCalendarComponent, typeof i8.CustomDatePickerComponent, typeof i9.DropdownWithFlagComponent, typeof i10.CustomDropdownComponent, typeof i11.BookletComponent, typeof i12.SearchBoxComponent, typeof i13.QuestionbookComponent, typeof i14.FileUploadComponent, typeof i15.SummaryPageComponent, typeof i16.FileViewComponent, typeof i17.DependentTableComponent, typeof i18.CustomLabelComponent, typeof i19.TableAppendixComponent, typeof i20.CustomDateComponent, typeof i21.CustomTimeComponent, typeof i22.CustomButtonComponent, typeof i23.CustomModelComponent, typeof i24.LoaderComponent, typeof i25.I18nComponent, typeof i26.I18nPipe, typeof i27.CustomImageComponent, typeof i28.CustomRadioComponent], [typeof i29.CommonModule, typeof i30.FormsModule, typeof i31.MyDatePickerModule, typeof i32.OwlDateTimeModule, typeof i32.OwlNativeDateTimeModule, typeof i33.ComponenthostDirective, typeof i34.GetValuePipe, typeof i35.NgSelectModule, typeof i36.GoogleMapsModule, typeof i37.MatTooltipModule, typeof i30.ReactiveFormsModule, typeof i38.NgxSpinnerModule, typeof i39.I18nModule, typeof i40.NgCircleProgressModule], [typeof i1.NxtAppComponent, typeof i2.QuestionnaireComponent, typeof i11.BookletComponent, typeof i15.SummaryPageComponent, typeof i26.I18nPipe, typeof i25.I18nComponent]>;
|
|
48
45
|
static ɵinj: i0.ɵɵInjectorDeclaration<NxtAppModule>;
|
|
49
46
|
}
|
|
@@ -45,7 +45,6 @@ export declare class QuestionnaireComponent implements OnInit {
|
|
|
45
45
|
checkboxFlag: boolean;
|
|
46
46
|
textFlag: boolean;
|
|
47
47
|
taFlag: boolean;
|
|
48
|
-
rtaFlag: boolean;
|
|
49
48
|
dtFlag: boolean;
|
|
50
49
|
timeFlag: boolean;
|
|
51
50
|
dateFlag: boolean;
|
|
@@ -173,7 +172,6 @@ export declare class QuestionnaireComponent implements OnInit {
|
|
|
173
172
|
resetFlag(typ: any): void;
|
|
174
173
|
setOptions(records: any): void;
|
|
175
174
|
childEventCapture(event: any, ques?: any): void;
|
|
176
|
-
handleRichTextChange(value: string): void;
|
|
177
175
|
setSubQuestions(records: any): void;
|
|
178
176
|
optionChange(selValue: any): void;
|
|
179
177
|
clearError(): void;
|
package/lib/sample.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ export declare const TESTQB: QuestionBook;
|
|
|
3
3
|
export declare const TESTQUESTION: Question;
|
|
4
4
|
export declare const DTQUESTION: Question;
|
|
5
5
|
export declare const FILEQUESTION: Question;
|
|
6
|
-
export declare const RTAQUESTION: Question;
|
|
7
6
|
export declare const TAQUESTION: Question;
|
|
8
7
|
export declare const RADIOQUESTION: Question;
|
|
9
8
|
export declare const CHECKQUESTION: Question;
|
package/package.json
CHANGED
|
Binary file
|
|
@@ -1,177 +0,0 @@
|
|
|
1
|
-
// RS 06JAN2025
|
|
2
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
-
import Quill from 'quill';
|
|
4
|
-
import { Mention } from 'quill-mention';
|
|
5
|
-
import ImageResize from 'quill-image-resize-module';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../../i18n.service";
|
|
8
|
-
import * as i2 from "../../services/change.service";
|
|
9
|
-
import * as i3 from "ngx-quill";
|
|
10
|
-
import * as i4 from "@angular/common";
|
|
11
|
-
import * as i5 from "@angular/forms";
|
|
12
|
-
// Register Quill modules
|
|
13
|
-
Quill.register('modules/mention', Mention);
|
|
14
|
-
Quill.register('modules/imageResize', ImageResize);
|
|
15
|
-
// Define font families with their display names and actual CSS values
|
|
16
|
-
const fontFamilyArr = [
|
|
17
|
-
"Roboto Condensed",
|
|
18
|
-
"Times New Roman",
|
|
19
|
-
"Calibri",
|
|
20
|
-
"Calibri Light",
|
|
21
|
-
"Sans-Serif",
|
|
22
|
-
"Arial",
|
|
23
|
-
"Verdana",
|
|
24
|
-
"Georgia",
|
|
25
|
-
"Courier New",
|
|
26
|
-
"Comic Sans MS",
|
|
27
|
-
"Trebuchet MS",
|
|
28
|
-
"Lucida Console",
|
|
29
|
-
"Tahoma",
|
|
30
|
-
"Impact",
|
|
31
|
-
"Palatino Linotype",
|
|
32
|
-
"Segoe UI",
|
|
33
|
-
"Helvetica"
|
|
34
|
-
];
|
|
35
|
-
let fonts = Quill.import("attributors/style/font");
|
|
36
|
-
fonts.whitelist = fontFamilyArr; // Updated with additional fonts
|
|
37
|
-
Quill.register(fonts, true);
|
|
38
|
-
export const QuillConfiguration = {
|
|
39
|
-
toolbar: {
|
|
40
|
-
container: [
|
|
41
|
-
[{ 'font': fontFamilyArr }],
|
|
42
|
-
['bold', 'italic', 'underline', 'strike'],
|
|
43
|
-
['blockquote', 'code-block'],
|
|
44
|
-
[{ header: [1, 2, 3, 4, 5, 6, false] }],
|
|
45
|
-
[{ list: 'ordered' }, { list: 'bullet' }],
|
|
46
|
-
[{ color: [] }, { background: [] }],
|
|
47
|
-
[{ align: [] }],
|
|
48
|
-
['link', 'image', 'video'],
|
|
49
|
-
['formula'],
|
|
50
|
-
['clean'],
|
|
51
|
-
],
|
|
52
|
-
},
|
|
53
|
-
imageResize: {
|
|
54
|
-
displaySize: true,
|
|
55
|
-
modules: ['Resize', 'DisplaySize', 'Toolbar'],
|
|
56
|
-
toolbarStyles: {
|
|
57
|
-
backgroundColor: 'black',
|
|
58
|
-
border: 'none',
|
|
59
|
-
color: 'white'
|
|
60
|
-
},
|
|
61
|
-
handleStyles: {
|
|
62
|
-
backgroundColor: 'black',
|
|
63
|
-
border: 'none',
|
|
64
|
-
color: 'white'
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
mention: {
|
|
68
|
-
allowedChars: /^[A-Za-z\sÅÄÖåäö]*$/,
|
|
69
|
-
mentionDenotationChars: ['@', '#'],
|
|
70
|
-
source: function (searchTerm, renderList) {
|
|
71
|
-
const values = [
|
|
72
|
-
{ id: 1, value: 'User 1' },
|
|
73
|
-
{ id: 2, value: 'User 2' },
|
|
74
|
-
];
|
|
75
|
-
if (searchTerm.length === 0) {
|
|
76
|
-
renderList(values, searchTerm);
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
const matches = values.filter((item) => item.value.toLowerCase().includes(searchTerm.toLowerCase()));
|
|
80
|
-
renderList(matches, searchTerm);
|
|
81
|
-
}
|
|
82
|
-
},
|
|
83
|
-
},
|
|
84
|
-
};
|
|
85
|
-
export class CustomRichTextComponent {
|
|
86
|
-
i18nService;
|
|
87
|
-
changeService;
|
|
88
|
-
value = '';
|
|
89
|
-
placeholder;
|
|
90
|
-
error;
|
|
91
|
-
question;
|
|
92
|
-
rows; //The number of visible text lines for the control
|
|
93
|
-
readOnly = false;
|
|
94
|
-
textValueChange = new EventEmitter();
|
|
95
|
-
minLength;
|
|
96
|
-
maxLength;
|
|
97
|
-
// @Input() value: any = ''; // Set default value
|
|
98
|
-
quillConfiguration = QuillConfiguration;
|
|
99
|
-
subscription;
|
|
100
|
-
constructor(i18nService, changeService) {
|
|
101
|
-
this.i18nService = i18nService;
|
|
102
|
-
this.changeService = changeService;
|
|
103
|
-
}
|
|
104
|
-
ngOnInit() {
|
|
105
|
-
console.log('Rich Text Init:', {
|
|
106
|
-
value: this.value,
|
|
107
|
-
question: this.question
|
|
108
|
-
});
|
|
109
|
-
if (this.value === undefined || this.value === null) {
|
|
110
|
-
this.value = '';
|
|
111
|
-
this.textValueChange.emit('');
|
|
112
|
-
}
|
|
113
|
-
this.initializeDependency();
|
|
114
|
-
}
|
|
115
|
-
// Separated dependency initialization for better organization
|
|
116
|
-
initializeDependency() {
|
|
117
|
-
if (this.question?.subText) {
|
|
118
|
-
console.log('subText:', this.question.subText);
|
|
119
|
-
try {
|
|
120
|
-
const dependencyObj = JSON.parse(this.question.subText);
|
|
121
|
-
if (dependencyObj?.sourceQuestionId) {
|
|
122
|
-
this.subscription = this.changeService.changeAnnounced$.subscribe((changeValue) => {
|
|
123
|
-
console.log('Change Value:', changeValue);
|
|
124
|
-
if (changeValue && changeValue.valueObj &&
|
|
125
|
-
changeValue.fromQuestionId === dependencyObj.sourceQuestionId) {
|
|
126
|
-
this.value = changeValue.valueObj[dependencyObj.valueField];
|
|
127
|
-
this.textValueChange.emit(this.value);
|
|
128
|
-
}
|
|
129
|
-
this.changeService.confirmChange(dependencyObj.sourceQuestionId);
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
catch (error) {
|
|
134
|
-
console.error('Error parsing subText:', error);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
onEditorChange(event) {
|
|
139
|
-
if (event && event.html !== undefined) {
|
|
140
|
-
this.textValueChange.emit(event.html);
|
|
141
|
-
}
|
|
142
|
-
else {
|
|
143
|
-
this.textValueChange.emit('');
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
// Added ngOnDestroy to prevent memory leaks
|
|
147
|
-
ngOnDestroy() {
|
|
148
|
-
if (this.subscription) {
|
|
149
|
-
this.subscription.unsubscribe();
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CustomRichTextComponent, deps: [{ token: i1.I18nService }, { token: i2.ChangeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
153
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CustomRichTextComponent, selector: "app-custom-rich-text", inputs: { value: "value", placeholder: "placeholder", error: "error", question: "question", rows: "rows", readOnly: "readOnly", minLength: "minLength", maxLength: "maxLength" }, outputs: { textValueChange: "textValueChange" }, ngImport: i0, template: "<!-- RS 06JAN25 -->\r\n<div class=\"rich-text-container\" >\r\n <quill-editor\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n [modules]=\"quillConfiguration\"\r\n [readOnly]=\"readOnly\"\r\n (onContentChanged)=\"onEditorChange($event)\"\r\n [class.error]=\"error\">\r\n </quill-editor>\r\n <div *ngIf=\"error\" class=\"error-message\">\r\n {{ error }}\r\n </div>\r\n</div>", styles: [".rich-text-container{width:100%;margin:10px 0}.error{border:1px solid red}:is() .ql-editor img{cursor:pointer}:is() .image-resizer{display:block!important;visibility:visible!important}:is() .ql-editor .image-resizer{border:1px dashed #000;position:absolute}:is() .ql-editor .image-resizer .handle{background-color:#000;border:1px solid #fff;border-radius:50%;height:12px;width:12px;position:absolute}\n"], dependencies: [{ kind: "component", type: i3.QuillEditorComponent, selector: "quill-editor" }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
|
|
154
|
-
}
|
|
155
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CustomRichTextComponent, decorators: [{
|
|
156
|
-
type: Component,
|
|
157
|
-
args: [{ selector: 'app-custom-rich-text', template: "<!-- RS 06JAN25 -->\r\n<div class=\"rich-text-container\" >\r\n <quill-editor\r\n [(ngModel)]=\"value\"\r\n [placeholder]=\"placeholder\"\r\n [modules]=\"quillConfiguration\"\r\n [readOnly]=\"readOnly\"\r\n (onContentChanged)=\"onEditorChange($event)\"\r\n [class.error]=\"error\">\r\n </quill-editor>\r\n <div *ngIf=\"error\" class=\"error-message\">\r\n {{ error }}\r\n </div>\r\n</div>", styles: [".rich-text-container{width:100%;margin:10px 0}.error{border:1px solid red}:is() .ql-editor img{cursor:pointer}:is() .image-resizer{display:block!important;visibility:visible!important}:is() .ql-editor .image-resizer{border:1px dashed #000;position:absolute}:is() .ql-editor .image-resizer .handle{background-color:#000;border:1px solid #fff;border-radius:50%;height:12px;width:12px;position:absolute}\n"] }]
|
|
158
|
-
}], ctorParameters: function () { return [{ type: i1.I18nService }, { type: i2.ChangeService }]; }, propDecorators: { value: [{
|
|
159
|
-
type: Input
|
|
160
|
-
}], placeholder: [{
|
|
161
|
-
type: Input
|
|
162
|
-
}], error: [{
|
|
163
|
-
type: Input
|
|
164
|
-
}], question: [{
|
|
165
|
-
type: Input
|
|
166
|
-
}], rows: [{
|
|
167
|
-
type: Input
|
|
168
|
-
}], readOnly: [{
|
|
169
|
-
type: Input
|
|
170
|
-
}], textValueChange: [{
|
|
171
|
-
type: Output
|
|
172
|
-
}], minLength: [{
|
|
173
|
-
type: Input
|
|
174
|
-
}], maxLength: [{
|
|
175
|
-
type: Input
|
|
176
|
-
}] } });
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXJpY2gtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9jdXN0b20tcmljaC10ZXh0L2N1c3RvbS1yaWNoLXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXJpY2gtdGV4dC9jdXN0b20tcmljaC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGVBQWU7QUFDZixPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBTTFGLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sV0FBVyxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7O0FBRXBELHlCQUF5QjtBQUN6QixLQUFLLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzNDLEtBQUssQ0FBQyxRQUFRLENBQUMscUJBQXFCLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFbkQsc0VBQXNFO0FBQ3RFLE1BQU0sYUFBYSxHQUFHO0lBQ3BCLGtCQUFrQjtJQUNsQixpQkFBaUI7SUFDakIsU0FBUztJQUNULGVBQWU7SUFDZixZQUFZO0lBQ1osT0FBTztJQUNQLFNBQVM7SUFDVCxTQUFTO0lBQ1QsYUFBYTtJQUNiLGVBQWU7SUFDZixjQUFjO0lBQ2QsZ0JBQWdCO0lBQ2hCLFFBQVE7SUFDUixRQUFRO0lBQ1IsbUJBQW1CO0lBQ25CLFVBQVU7SUFDVixXQUFXO0NBQ1osQ0FBQztBQUNGLElBQUksS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsd0JBQXdCLENBQUMs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QkFBakIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8gUlMgMDZKQU4yMDI1XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4uLy4uL2kxOG4uc2VydmljZSc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbmdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBEZXBlbmRlbmN5TWV0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvZGVwZW5kZW5jeU1ldGEnO1xyXG5pbXBvcnQgeyBRdWlsbE1vZHVsZXMgfSBmcm9tICduZ3gtcXVpbGwnO1xyXG5pbXBvcnQgUXVpbGwgZnJvbSAncXVpbGwnO1xyXG5pbXBvcnQgeyBNZW50aW9uIH0gZnJvbSAncXVpbGwtbWVudGlvbic7XHJcbmltcG9ydCBJbWFnZVJlc2l6ZSBmcm9tICdxdWlsbC1pbWFnZS1yZXNpemUtbW9kdWxlJztcclxuXHJcbi8vIFJlZ2lzdGVyIFF1aWxsIG1vZHVsZXNcclxuUXVpbGwucmVnaXN0ZXIoJ21vZHVsZXMvbWVudGlvbicsIE1lbnRpb24pO1xyXG5RdWlsbC5yZWdpc3RlcignbW9kdWxlcy9pbWFnZVJlc2l6ZScsIEltYWdlUmVzaXplKTtcclxuXHJcbi8vIERlZmluZSBmb250IGZhbWlsaWVzIHdpdGggdGhlaXIgZGlzcGxheSBuYW1lcyBhbmQgYWN0dWFsIENTUyB2YWx1ZXNcclxuY29uc3QgZm9udEZhbWlseUFyciA9IFtcclxuICBcIlJvYm90byBDb25kZW5zZWRcIiwgXHJcbiAgXCJUaW1lcyBOZXcgUm9tYW5cIiwgXHJcbiAgXCJDYWxpYnJpXCIsIFxyXG4gIFwiQ2FsaWJyaSBMaWdodFwiLCBcclxuICBcIlNhbnMtU2VyaWZcIiwgXHJcbiAgXCJBcmlhbFwiLCBcclxuICBcIlZlcmRhbmFcIiwgXHJcbiAgXCJHZW9yZ2lhXCIsIFxyXG4gIFwiQ291cmllciBOZXdcIiwgXHJcbiAgXCJDb21pYyBTYW5zIE1TXCIsIFxyXG4gIFwiVHJlYnVjaGV0IE1TXCIsIFxyXG4gIFwiTHVjaWRhIENvbnNvbGVcIiwgXHJcbiAgXCJUYWhvbWFcIiwgXHJcbiAgXCJJbXBhY3RcIiwgXHJcbiAgXCJQYWxhdGlubyBMaW5vdHlwZVwiLCBcclxuICBcIlNlZ29lIFVJXCIsIFxyXG4gIFwiSGVsdmV0aWNhXCJcclxuXTtcclxubGV0IGZvbnRzID0gUXVpbGwuaW1wb3J0KFwiYXR0cmlidXRvcnMvc3R5bGUvZm9udFwiKTtcclxuZm9udHMud2hpdGVsaXN0ID0gZm9udEZhbWlseUFycjsgLy8gVXBkYXRlZCB3aXRoIGFkZGl0aW9uYWwgZm9udHNcclxuUXVpbGwucmVnaXN0ZXIoZm9udHMsIHRydWUpO1xyXG5cclxuZXhwb3J0IGNvbnN0IFF1aWxsQ29uZmlndXJhdGlvbjogUXVpbGxNb2R1bGVzID0ge1xyXG4gIHRvb2xiYXI6IHtcclxuICAgIGNvbnRhaW5lcjogW1xyXG4gICAgICBbeyAnZm9udCc6IGZvbnRGYW1pbHlBcnIgfV0sXHJcbiAgICAgIFsnYm9sZCcsICdpdGFsaWMnLCAndW5kZXJsaW5lJywgJ3N0cmlrZSddLFxyXG4gICAgICBbJ2Jsb2NrcXVvdGUnLCAnY29kZS1ibG9jayddLFxyXG4gICAgICBbeyBoZWFkZXI6IFsxLCAyLCAzLCA0LCA1LCA2LCBmYWxzZV0gfV0sXHJcbiAgICAgIFt7IGxpc3Q6ICdvcmRlcmVkJyB9LCB7IGxpc3Q6ICdidWxsZXQnIH1dLFxyXG4gICAgICBbeyBjb2xvcjogW10gfSwgeyBiYWNrZ3JvdW5kOiBbXSB9XSxcclxuICAgICAgW3sgYWxpZ246IFtdIH1dLFxyXG4gICAgICBbJ2xpbmsnLCAnaW1hZ2UnLCAndmlkZW8nXSxcclxuICAgICAgWydmb3JtdWxhJ10sXHJcbiAgICAgIFsnY2xlYW4nXSxcclxuICAgIF0sXHJcbiAgfSxcclxuaW1hZ2VSZXNpemU6IHtcclxuICBkaXNwbGF5U2l6ZTogdHJ1ZSxcclxuICBtb2R1bGVzOiBbJ1Jlc2l6ZScsICdEaXNwbGF5U2l6ZScsICdUb29sYmFyJ10sXHJcbiAgdG9vbGJhclN0eWxlczoge1xyXG4gICAgYmFja2dyb3VuZENvbG9yOiAnYmxhY2snLFxyXG4gICAgYm9yZGVyOiAnbm9uZScsXHJcbiAgICBjb2xvcjogJ3doaXRlJ1xyXG4gIH0sXHJcbiAgaGFuZGxlU3R5bGVzOiB7XHJcbiAgICBiYWNrZ3JvdW5kQ29sb3I6ICdibGFjaycsXHJcbiAgICBib3JkZXI6ICdub25lJyxcclxuICAgIGNvbG9yOiAnd2hpdGUnXHJcbiAgfVxyXG59LFxyXG4gIG1lbnRpb246IHtcclxuICAgIGFsbG93ZWRDaGFyczogL15bQS1aYS16XFxzw4XDhMOWw6XDpMO2XSokLyxcclxuICAgIG1lbnRpb25EZW5vdGF0aW9uQ2hhcnM6IFsnQCcsICcjJ10sXHJcbiAgICBzb3VyY2U6IGZ1bmN0aW9uIChzZWFyY2hUZXJtOiBzdHJpbmcsIHJlbmRlckxpc3Q6IGFueSkge1xyXG4gICAgICBjb25zdCB2YWx1ZXMgPSBbXHJcbiAgICAgICAgeyBpZDogMSwgdmFsdWU6ICdVc2VyIDEnIH0sXHJcbiAgICAgICAgeyBpZDogMiwgdmFsdWU6ICdVc2VyIDInIH0sXHJcbiAgICAgIF07XHJcblxyXG4gICAgICBpZiAoc2VhcmNoVGVybS5sZW5ndGggPT09IDApIHtcclxuICAgICAgICByZW5kZXJMaXN0KHZhbHVlcywgc2VhcmNoVGVybSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHZhbHVlcy5maWx0ZXIoKGl0ZW0pID0+XHJcbiAgICAgICAgICBpdGVtLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybS50b0xvd2VyQ2FzZSgpKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmVuZGVyTGlzdChtYXRjaGVzLCBzZWFyY2hUZXJtKTtcclxuICAgICAgfVxyXG4gICAgfSxcclxuICB9LFxyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY3VzdG9tLXJpY2gtdGV4dCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2N1c3RvbS1yaWNoLXRleHQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1yaWNoLXRleHQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tUmljaFRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7IFxyXG4gIEBJbnB1dCgpIHZhbHVlOiBhbnkgfCBhbnlbXSA9ICcnO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZXJyb3I6IGFueTtcclxuICBASW5wdXQoKSBxdWVzdGlvbjogYW55O1xyXG4gIEBJbnB1dCgpIHJvd3M6TnVtYmVyOyAvL1RoZSBudW1iZXIgb2YgdmlzaWJsZSB0ZXh0IGxpbmVzIGZvciB0aGUgY29udHJvbFxyXG4gIEBJbnB1dCgpIHJlYWRPbmx5ID0gZmFsc2U7XHJcbiAgQE91dHB1dCgpIHRleHRWYWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBASW5wdXQoKSBtaW5MZW5ndGg/OiBudW1iZXI7XHJcbiAgQElucHV0KCkgbWF4TGVuZ3RoPzogbnVtYmVyO1xyXG4gIC8vIEBJbnB1dCgpIHZhbHVlOiBhbnkgPSAnJzsgLy8gU2V0IGRlZmF1bHQgdmFsdWVcclxuXHJcbiAgcXVpbGxDb25maWd1cmF0aW9uOiBRdWlsbE1vZHVsZXMgPSBRdWlsbENvbmZpZ3VyYXRpb247XHJcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247ICBcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VTZXJ2aWNlOiBDaGFuZ2VTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBjb25zb2xlLmxvZygnUmljaCBUZXh0IEluaXQ6Jywge1xyXG4gICAgICB2YWx1ZTogdGhpcy52YWx1ZSxcclxuICAgICAgcXVlc3Rpb246IHRoaXMucXVlc3Rpb25cclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMudmFsdWUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLnZhbHVlID09PSBudWxsKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSAnJztcclxuICAgICAgdGhpcy50ZXh0VmFsdWVDaGFuZ2UuZW1pdCgnJyk7XHJcblxyXG4gICAgfVxyXG4gICAgdGhpcy5pbml0aWFsaXplRGVwZW5kZW5jeSgpO1xyXG4gIH1cclxuXHJcbiAgLy8gU2VwYXJhdGVkIGRlcGVuZGVuY3kgaW5pdGlhbGl6YXRpb24gZm9yIGJldHRlciBvcmdhbml6YXRpb25cclxuICBwcml2YXRlIGluaXRpYWxpemVEZXBlbmRlbmN5KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMucXVlc3Rpb24/LnN1YlRleHQpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnc3ViVGV4dDonLCB0aGlzLnF1ZXN0aW9uLnN1YlRleHQpO1xyXG4gICAgICAgIHRyeSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRlcGVuZGVuY3lPYmo6IERlcGVuZGVuY3lNZXRhID0gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLnN1YlRleHQpO1xyXG4gICAgICAgICAgICBpZiAoZGVwZW5kZW5jeU9iaj8uc291cmNlUXVlc3Rpb25JZCkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLmNoYW5nZVNlcnZpY2UuY2hhbmdlQW5ub3VuY2VkJC5zdWJzY3JpYmUoXHJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZVZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKCdDaGFuZ2UgVmFsdWU6JywgY2hhbmdlVmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2hhbmdlVmFsdWUgJiYgY2hhbmdlVmFsdWUudmFsdWVPYmogJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoYW5nZVZhbHVlLmZyb21RdWVzdGlvbklkID09PSBkZXBlbmRlbmN5T2JqLnNvdXJjZVF1ZXN0aW9uSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudmFsdWUgPSBjaGFuZ2VWYWx1ZS52YWx1ZU9ialtkZXBlbmRlbmN5T2JqLnZhbHVlRmllbGRdO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50ZXh0VmFsdWVDaGFuZ2UuZW1pdCh0aGlzLnZhbHVlKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVNlcnZpY2UuY29uZmlybUNoYW5nZShkZXBlbmRlbmN5T2JqLnNvdXJjZVF1ZXN0aW9uSWQpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBwYXJzaW5nIHN1YlRleHQ6JywgZXJyb3IpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuXHJcbm9uRWRpdG9yQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICBpZiAoZXZlbnQgJiYgZXZlbnQuaHRtbCAhPT0gdW5kZWZpbmVkKSB7XHJcbiAgICB0aGlzLnRleHRWYWx1ZUNoYW5nZS5lbWl0KGV2ZW50Lmh0bWwpO1xyXG4gIH0gZWxzZSB7XHJcbiAgICB0aGlzLnRleHRWYWx1ZUNoYW5nZS5lbWl0KCcnKTtcclxuICB9XHJcbn1cclxuICAvLyBBZGRlZCBuZ09uRGVzdHJveSB0byBwcmV2ZW50IG1lbW9yeSBsZWFrc1xyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8IS0tIFJTIDA2SkFOMjUgLS0+XHJcbjxkaXYgY2xhc3M9XCJyaWNoLXRleHQtY29udGFpbmVyXCIgPlxyXG4gIDxxdWlsbC1lZGl0b3JcclxuICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgIFttb2R1bGVzXT1cInF1aWxsQ29uZmlndXJhdGlvblwiXHJcbiAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxyXG4gICAgKG9uQ29udGVudENoYW5nZWQpPVwib25FZGl0b3JDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICBbY2xhc3MuZXJyb3JdPVwiZXJyb3JcIj5cclxuICA8L3F1aWxsLWVkaXRvcj5cclxuICA8ZGl2ICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5cclxuICAgIHt7IGVycm9yIH19XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { EventEmitter, OnInit, OnDestroy } from '@angular/core';
|
|
2
|
-
import { I18nService } from '../../i18n.service';
|
|
3
|
-
import { Subscription } from 'rxjs';
|
|
4
|
-
import { ChangeService } from '../../services/change.service';
|
|
5
|
-
import { QuillModules } from 'ngx-quill';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export declare const QuillConfiguration: QuillModules;
|
|
8
|
-
export declare class CustomRichTextComponent implements OnInit, OnDestroy {
|
|
9
|
-
i18nService: I18nService;
|
|
10
|
-
private changeService;
|
|
11
|
-
value: any | any[];
|
|
12
|
-
placeholder: string;
|
|
13
|
-
error: any;
|
|
14
|
-
question: any;
|
|
15
|
-
rows: Number;
|
|
16
|
-
readOnly: boolean;
|
|
17
|
-
textValueChange: EventEmitter<string>;
|
|
18
|
-
minLength?: number;
|
|
19
|
-
maxLength?: number;
|
|
20
|
-
quillConfiguration: QuillModules;
|
|
21
|
-
subscription: Subscription;
|
|
22
|
-
constructor(i18nService: I18nService, changeService: ChangeService);
|
|
23
|
-
ngOnInit(): void;
|
|
24
|
-
private initializeDependency;
|
|
25
|
-
onEditorChange(event: any): void;
|
|
26
|
-
ngOnDestroy(): void;
|
|
27
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CustomRichTextComponent, never>;
|
|
28
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CustomRichTextComponent, "app-custom-rich-text", never, { "value": "value"; "placeholder": "placeholder"; "error": "error"; "question": "question"; "rows": "rows"; "readOnly": "readOnly"; "minLength": "minLength"; "maxLength": "maxLength"; }, { "textValueChange": "textValueChange"; }, never, never, false>;
|
|
29
|
-
}
|
|
Binary file
|