@bizdoc/core 1.16.27 → 1.16.28
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/assets/themes/brown.min.css +8 -8
- package/assets/themes/dark.min.css +8 -8
- package/assets/themes/deep-purple-light-blue.min.css +8 -8
- package/assets/themes/deep-purple-teal.min.css +8 -8
- package/assets/themes/default.min.css +8 -8
- package/assets/themes/green.min.css +8 -8
- package/assets/themes/indigo.min.css +8 -8
- package/esm2020/lib/admin/configuration-designer/elements/cube.component.mjs +3 -3
- package/esm2020/lib/admin/localized-string.component.mjs +52 -0
- package/esm2020/lib/core/controls/signature.input.mjs +149 -0
- package/esm2020/lib/core/mailbox.service.mjs +11 -2
- package/esm2020/lib/core/models.mjs +1 -1
- package/esm2020/lib/core/pipes/localized-string.pipe.mjs +24 -0
- package/esm2020/lib/core/slots/pane-ref.mjs +3 -2
- package/esm2020/lib/core/translations.mjs +45 -4
- package/esm2020/lib/reports/report-ref.mjs +1 -1
- package/esm2020/lib/reports/report-viewer.component.mjs +5 -2
- package/esm2020/lib/shared.module.mjs +11 -8
- package/esm2020/lib/system.module.mjs +8 -11
- package/esm2020/public-api.mjs +3 -2
- package/fesm2015/bizdoc-core.mjs +346 -323
- package/fesm2015/bizdoc-core.mjs.map +1 -1
- package/fesm2020/bizdoc-core.mjs +346 -320
- package/fesm2020/bizdoc-core.mjs.map +1 -1
- package/lib/admin/localized-string.component.d.ts +20 -0
- package/lib/core/controls/signature.input.d.ts +53 -0
- package/lib/core/mailbox.service.d.ts +2 -1
- package/lib/core/models.d.ts +7 -0
- package/lib/core/pipes/localized-string.pipe.d.ts +11 -0
- package/lib/core/slots/pane-ref.d.ts +10 -9
- package/lib/core/translations.d.ts +41 -0
- package/lib/reports/report-ref.d.ts +2 -0
- package/lib/shared.module.d.ts +137 -136
- package/lib/system.module.d.ts +31 -32
- package/package.json +11 -9
- package/public-api.d.ts +3 -2
- package/esm2020/lib/admin/configuration-designer/elements/survey-form.component.mjs +0 -44
- package/esm2020/lib/admin/form/survey/survey.component.mjs +0 -180
- package/esm2020/lib/compose/survey/survey.component.mjs +0 -73
- package/lib/admin/configuration-designer/elements/survey-form.component.d.ts +0 -18
- package/lib/admin/form/survey/survey.component.d.ts +0 -123
- package/lib/compose/survey/survey.component.d.ts +0 -17
@@ -1,73 +0,0 @@
|
|
1
|
-
import { __decorate } from "tslib";
|
2
|
-
import { Component } from "@angular/core";
|
3
|
-
import { Validators } from "@angular/forms";
|
4
|
-
import { BizDoc } from "../../core/decorators";
|
5
|
-
import * as i0 from "@angular/core";
|
6
|
-
import * as i1 from "@angular/forms";
|
7
|
-
import * as i2 from "../form-ref";
|
8
|
-
import * as i3 from "@angular/common";
|
9
|
-
import * as i4 from "@angular/flex-layout/flex";
|
10
|
-
import * as i5 from "@syncfusion/ej2-angular-richtexteditor";
|
11
|
-
import * as i6 from "@angular/material/datepicker";
|
12
|
-
import * as i7 from "@angular/material/radio";
|
13
|
-
import * as i8 from "@angular/material/form-field";
|
14
|
-
import * as i9 from "@angular/material/checkbox";
|
15
|
-
import * as i10 from "@angular/cdk/text-field";
|
16
|
-
import * as i11 from "@angular/material/input";
|
17
|
-
import * as i12 from "../../core/controls/select.input";
|
18
|
-
import * as i13 from "../../core/controls/auto-complete.input";
|
19
|
-
import * as i14 from "../../core/controls/address.input";
|
20
|
-
import * as i15 from "../../core/pipes/calendar.pipe";
|
21
|
-
import * as i16 from "../../core/pipes/translate.pipe";
|
22
|
-
import * as i17 from "../../core/pipes/sanitize-html.pipe";
|
23
|
-
let SurveyFormComponent = class SurveyFormComponent {
|
24
|
-
constructor(_fb, ref) {
|
25
|
-
this._fb = _fb;
|
26
|
-
this.metadata = ref.options;
|
27
|
-
this.form = _fb.group({});
|
28
|
-
this.metadata.questions.forEach(q => {
|
29
|
-
const ctrl = _fb.control(null);
|
30
|
-
if (q.required)
|
31
|
-
ctrl.addValidators(Validators.required);
|
32
|
-
if (q.defaultValue !== undefined)
|
33
|
-
ctrl.setValue(q.defaultValue);
|
34
|
-
if (q.type === 'Text') {
|
35
|
-
if (q.pattern)
|
36
|
-
ctrl.addValidators(Validators.pattern(q.pattern));
|
37
|
-
if (q.minLength)
|
38
|
-
ctrl.addValidators(Validators.minLength(q.minLength));
|
39
|
-
if (q.maxLength)
|
40
|
-
ctrl.addValidators(Validators.minLength(q.maxLength));
|
41
|
-
}
|
42
|
-
else if (q.type === 'YesNo') {
|
43
|
-
if (q.defaultValue && q.required)
|
44
|
-
ctrl.addValidators(Validators.requiredTrue);
|
45
|
-
}
|
46
|
-
else if (q.type === 'Checkbox') {
|
47
|
-
if (q.required)
|
48
|
-
ctrl.addValidators(Validators.requiredTrue);
|
49
|
-
}
|
50
|
-
else if (q.type === 'Number') {
|
51
|
-
if (q.min)
|
52
|
-
ctrl.addValidators(Validators.max(q.max));
|
53
|
-
if (q.min)
|
54
|
-
ctrl.addValidators(Validators.max(q.max));
|
55
|
-
}
|
56
|
-
this.form.addControl(q.name, ctrl);
|
57
|
-
});
|
58
|
-
}
|
59
|
-
onBind(data, version) {
|
60
|
-
this.data = data;
|
61
|
-
}
|
62
|
-
};
|
63
|
-
SurveyFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SurveyFormComponent, deps: [{ token: i1.FormBuilder }, { token: i2.FormRef }], target: i0.ɵɵFactoryTarget.Component });
|
64
|
-
SurveyFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.0", type: SurveyFormComponent, selector: "ng-component", ngImport: i0, template: "<ng-container [ngSwitch]=\"mode\">\r\n <form [formGroup]=\"form\" autocomplete=\"off\" *ngSwitchCase=\"'edit'\">\r\n <section *ngFor=\"let q of metadata.questions\">\r\n <h2 class=\"mat-title\">{{q.label}}</h2>\r\n <p class=\"mat-body\" *ngIf=\"q.description\">{{q.description}}</p>\r\n <ng-container [ngSwitch]=\"q.type\">\r\n <mat-form-field *ngSwitchCase=\"'Select'\" appearance=\"outline\">\r\n <mat-label>{{q.placeholder}}</mat-label>\r\n <bizdoc-select [placeholder]=\"q.placeholder\" [type]=\"q.dataType\" [formControlName]=\"q.name\" [required]=\"q.required\"></bizdoc-select>\r\n </mat-form-field>\r\n <mat-form-field *ngSwitchCase=\"'Autocomplete'\" appearance=\"outline\">\r\n <mat-label>{{q.placeholder}}</mat-label>\r\n <bizdoc-autocomplete [type]=\"q.dataType\" [formControlName]=\"q.name\" [required]=\"q.required\"></bizdoc-autocomplete>\r\n </mat-form-field>\r\n <mat-form-field *ngSwitchCase=\"'Date'\" appearance=\"outline\">\r\n <mat-label>{{q.placeholder}}</mat-label>\r\n <input matInput\r\n [placeholder]=\"q.placeholder\"\r\n [formControlName]=\"q.name\"\r\n [required]=\"q.required\"\r\n [min]=\"q.min\"\r\n [max]=\"q.max\"\r\n [matDatepicker]=\"picker\" />\r\n <mat-datepicker-toggle [for]=\"picker\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field *ngSwitchCase=\"'Text'\" appearance=\"outline\">\r\n <textarea [placeholder]=\"q.placeholder\" matInput [formControlName]=\"q.name\" cdkTextareaAutosize\r\n [required]=\"q.required\" [minlength]=\"q.minLength\" [maxlength]=\"q.maxLength\"></textarea>\r\n </mat-form-field>\r\n <ejs-richtexteditor *ngSwitchCase=\"'Html'\"\r\n [placeholder]=\"q.placeholder\" [formControlName]=\"q.name\"\r\n [required]=\"q.required\" [minlength]=\"q.minLength\" [maxlength]=\"q.maxLength\"></ejs-richtexteditor>\r\n <mat-checkbox [formControlName]=\"q.name\" *ngSwitchCase=\"'Checkbox'\">{{q.label}}</mat-checkbox>\r\n <mat-radio-group [formControlName]=\"q.name\" *ngSwitchCase=\"'Choice'\">\r\n <mat-radio-button [value]=\"o.key\" *ngFor=\"let o of q.options | keyvalue\">{{o.value}}</mat-radio-button>\r\n </mat-radio-group>\r\n <mat-form-field appearance=\"outline\" fxFlex *ngSwitchCase=\"'Number'\">\r\n <input matInput [placeholder]=\"q.placeholder\" [required]=\"q.required\" [formControlName]=\"q.name\" type=\"number\" />\r\n </mat-form-field>\r\n <mat-radio-group [formControlName]=\"q.name\" *ngSwitchCase=\"'YesNo'\">\r\n <mat-radio-button [value]=\"true\">{{'Yes'|translate}}</mat-radio-button>\r\n <mat-radio-button [value]=\"false\">{{'No'|translate}}</mat-radio-button>\r\n </mat-radio-group>\r\n <mat-form-field appearance=\"outline\" fxFlex *ngSwitchDefault>\r\n <ng-container [ngSwitch]=\"q.kind\">\r\n <bizdoc-address [placeholder]=\"q.placeholder\" [required]=\"q.required\" [formControlName]=\"q.name\" *ngSwitchCase=\"'Address'\"></bizdoc-address>\r\n <input matInput [placeholder]=\"q.placeholder\" [required]=\"q.required\" [formControlName]=\"q.name\" type=\"tel\" *ngSwitchCase=\"'PhoneNumber'\" />\r\n <input matInput [placeholder]=\"q.placeholder\" [required]=\"q.required\" [formControlName]=\"q.name\" type=\"email\" *ngSwitchCase=\"'EmailAddress'\" />\r\n <input matInput [placeholder]=\"q.placeholder\" [required]=\"q.required\" [formControlName]=\"q.name\" type=\"url\" *ngSwitchCase=\"'Url'\" />\r\n <input matInput [placeholder]=\"q.placeholder\" [required]=\"q.required\" [formControlName]=\"q.name\" type=\"password\" *ngSwitchCase=\"'Password'\" />\r\n <input matInput [placeholder]=\"q.placeholder\" [required]=\"q.required\" [formControlName]=\"q.name\" *ngSwitchDefault />\r\n </ng-container>\r\n </mat-form-field>\r\n \r\n </ng-container>\r\n </section>\r\n </form>\r\n <div *ngSwitchDefault>\r\n <section *ngFor=\"let q of metadata.questions\">\r\n <h2 class=\"mat-title\">{{q.label}}</h2>\r\n <p class=\"mat-body\" *ngIf=\"q.description\">{{q.description}}</p>\r\n <ng-container [ngSwitch]=\"q.type\">\r\n <div *ngSwitchCase=\"'Select'\">\r\n <span>{{model[q.name] | dataType: q.dataType | async}}</span>\r\n </div>\r\n <div *ngSwitchCase=\"'Autocomplete'\">\r\n <span>{{model[q.name] | dataType: q.dataType | async}}</span>\r\n </div>\r\n <div *ngSwitchCase=\"'Date'\">\r\n <span>{{model[q.name] | amCalendar}}</span>\r\n </div>\r\n <p *ngSwitchCase=\"'Text'\" [innerHTML]=\"model[q.name]\"></p>\r\n <p *ngSwitchCase=\"'Html'\" [innerHTML]=\"model[q.name]|sanitizeHtml\"></p>\r\n <mat-checkbox [formControlName]=\"q.name\" *ngSwitchCase=\"'Checkbox'\">{{q.label}}</mat-checkbox>\r\n <mat-radio-group [formControlName]=\"q.name\" *ngSwitchCase=\"'Choice'\" disabled>\r\n <mat-radio-button [value]=\"o.key\" *ngFor=\"let o of q.options | keyvalue\">{{o.value}}</mat-radio-button>\r\n </mat-radio-group>\r\n <div *ngSwitchCase=\"'Number'\">\r\n <span>{{model[q.name]|number}}</span>\r\n </div>\r\n <mat-radio-group [formControlName]=\"q.name\" *ngSwitchCase=\"'YesNo'\" disabled>\r\n <mat-radio-button [value]=\"true\">{{'Yes'|translate}}</mat-radio-button>\r\n <mat-radio-button [value]=\"false\">{{'No'|translate}}</mat-radio-button>\r\n </mat-radio-group>\r\n <div fxFlex *ngSwitchDefault>\r\n <ng-container [ngSwitch]=\"q.kind\">\r\n <a *ngSwitchCase=\"'PhoneNumber'\" [href]=\"'tel:'+model[q.name]\">{{model[q.name]}}</a>\r\n <a *ngSwitchCase=\"'EmailAddress'\" [href]=\"model[q.name]\">{{model[q.name]}}</a>\r\n <a *ngSwitchCase=\"'Url'\" [href]=\"model[q.name]\">\r\n {{model[q.name]}}\r\n </a>\r\n <span *ngSwitchCase=\"'Password'\">\r\n </span>\r\n <span *ngSwitchDefault>{{model[q.name]}}</span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </section>\r\n </div>\r\n</ng-container>\r\n", styles: ["form{padding:8px}section{display:block}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "component", type: i5.RichTextEditorComponent, selector: "ejs-richtexteditor", inputs: ["autoSaveOnIdle", "backgroundColor", "bulletFormatList", "cssClass", "editorMode", "enableAutoUrl", "enableHtmlEncode", "enableHtmlSanitizer", "enablePersistence", "enableResize", "enableRtl", "enableTabKey", "enableXhtml", "enabled", "enterKey", "fileManagerSettings", "floatingToolbarOffset", "fontColor", "fontFamily", "fontSize", "format", "formatter", "height", "htmlAttributes", "iframeSettings", "inlineMode", "insertImageSettings", "keyConfig", "locale", "maxLength", "numberFormatList", "pasteCleanupSettings", "placeholder", "quickToolbarSettings", "readonly", "saveInterval", "shiftEnterKey", "showCharCount", "tableSettings", "toolbarSettings", "undoRedoSteps", "undoRedoTimer", "value", "valueTemplate", "width"], outputs: ["actionBegin", "actionComplete", "afterImageDelete", "afterPasteCleanup", "beforeDialogClose", "beforeDialogOpen", "beforeImageDrop", "beforeImageUpload", "beforePasteCleanup", "beforeQuickToolbarOpen", "beforeSanitizeHtml", "blur", "change", "created", "destroyed", "dialogClose", "dialogOpen", "focus", "imageRemoving", "imageSelected", "imageUploadFailed", "imageUploadSuccess", "imageUploading", "quickToolbarClose", "quickToolbarOpen", "resizeStart", "resizeStop", "resizing", "toolbarClick", "toolbarStatusUpdate", "updatedToolbarStatus", "valueChange"] }, { kind: "component", type: i6.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i6.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i6.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i7.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i7.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i9.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i10.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: i11.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: i12.TypeSelect, selector: "bizdoc-select", inputs: ["type", "scope", "multiple", "placeholder", "required", "disabled", "text", "value"], outputs: ["selectionChange", "textChange"] }, { kind: "component", type: i13.TypeAutocomplete, selector: "bizdoc-autocomplete", inputs: ["type", "placeholder", "text", "required", "disabled", "value", "minimumChars", "textFormControlName", "textFormControl"], outputs: ["textChange", "optionSelected"] }, { kind: "component", type: i14.AddressInput, selector: "bizdoc-address", inputs: ["debounce", "location", "country", "placeholder", "required", "disabled", "value"], outputs: ["optionSelected"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.DecimalPipe, name: "number" }, { kind: "pipe", type: i3.KeyValuePipe, name: "keyvalue" }, { kind: "pipe", type: i15.CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: i16.TranslatePipe, name: "translate" }, { kind: "pipe", type: i17.SanitizeHtmlPipe, name: "sanitizeHtml" }] });
|
65
|
-
SurveyFormComponent = __decorate([
|
66
|
-
BizDoc({ selector: 'bizdoc-survey-form' })
|
67
|
-
], SurveyFormComponent);
|
68
|
-
export { SurveyFormComponent };
|
69
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.0", ngImport: i0, type: SurveyFormComponent, decorators: [{
|
70
|
-
type: Component,
|
71
|
-
args: [{ template: "<ng-container [ngSwitch]=\"mode\">\r\n <form [formGroup]=\"form\" autocomplete=\"off\" *ngSwitchCase=\"'edit'\">\r\n <section *ngFor=\"let q of metadata.questions\">\r\n <h2 class=\"mat-title\">{{q.label}}</h2>\r\n <p class=\"mat-body\" *ngIf=\"q.description\">{{q.description}}</p>\r\n <ng-container [ngSwitch]=\"q.type\">\r\n <mat-form-field *ngSwitchCase=\"'Select'\" appearance=\"outline\">\r\n <mat-label>{{q.placeholder}}</mat-label>\r\n <bizdoc-select [placeholder]=\"q.placeholder\" [type]=\"q.dataType\" [formControlName]=\"q.name\" [required]=\"q.required\"></bizdoc-select>\r\n </mat-form-field>\r\n <mat-form-field *ngSwitchCase=\"'Autocomplete'\" appearance=\"outline\">\r\n <mat-label>{{q.placeholder}}</mat-label>\r\n <bizdoc-autocomplete [type]=\"q.dataType\" [formControlName]=\"q.name\" [required]=\"q.required\"></bizdoc-autocomplete>\r\n </mat-form-field>\r\n <mat-form-field *ngSwitchCase=\"'Date'\" appearance=\"outline\">\r\n <mat-label>{{q.placeholder}}</mat-label>\r\n <input matInput\r\n [placeholder]=\"q.placeholder\"\r\n [formControlName]=\"q.name\"\r\n [required]=\"q.required\"\r\n [min]=\"q.min\"\r\n [max]=\"q.max\"\r\n [matDatepicker]=\"picker\" />\r\n <mat-datepicker-toggle [for]=\"picker\" matSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field *ngSwitchCase=\"'Text'\" appearance=\"outline\">\r\n <textarea [placeholder]=\"q.placeholder\" matInput [formControlName]=\"q.name\" cdkTextareaAutosize\r\n [required]=\"q.required\" [minlength]=\"q.minLength\" [maxlength]=\"q.maxLength\"></textarea>\r\n </mat-form-field>\r\n <ejs-richtexteditor *ngSwitchCase=\"'Html'\"\r\n [placeholder]=\"q.placeholder\" [formControlName]=\"q.name\"\r\n [required]=\"q.required\" [minlength]=\"q.minLength\" [maxlength]=\"q.maxLength\"></ejs-richtexteditor>\r\n <mat-checkbox [formControlName]=\"q.name\" *ngSwitchCase=\"'Checkbox'\">{{q.label}}</mat-checkbox>\r\n <mat-radio-group [formControlName]=\"q.name\" *ngSwitchCase=\"'Choice'\">\r\n <mat-radio-button [value]=\"o.key\" *ngFor=\"let o of q.options | keyvalue\">{{o.value}}</mat-radio-button>\r\n </mat-radio-group>\r\n <mat-form-field appearance=\"outline\" fxFlex *ngSwitchCase=\"'Number'\">\r\n <input matInput [placeholder]=\"q.placeholder\" [required]=\"q.required\" [formControlName]=\"q.name\" type=\"number\" />\r\n </mat-form-field>\r\n <mat-radio-group [formControlName]=\"q.name\" *ngSwitchCase=\"'YesNo'\">\r\n <mat-radio-button [value]=\"true\">{{'Yes'|translate}}</mat-radio-button>\r\n <mat-radio-button [value]=\"false\">{{'No'|translate}}</mat-radio-button>\r\n </mat-radio-group>\r\n <mat-form-field appearance=\"outline\" fxFlex *ngSwitchDefault>\r\n <ng-container [ngSwitch]=\"q.kind\">\r\n <bizdoc-address [placeholder]=\"q.placeholder\" [required]=\"q.required\" [formControlName]=\"q.name\" *ngSwitchCase=\"'Address'\"></bizdoc-address>\r\n <input matInput [placeholder]=\"q.placeholder\" [required]=\"q.required\" [formControlName]=\"q.name\" type=\"tel\" *ngSwitchCase=\"'PhoneNumber'\" />\r\n <input matInput [placeholder]=\"q.placeholder\" [required]=\"q.required\" [formControlName]=\"q.name\" type=\"email\" *ngSwitchCase=\"'EmailAddress'\" />\r\n <input matInput [placeholder]=\"q.placeholder\" [required]=\"q.required\" [formControlName]=\"q.name\" type=\"url\" *ngSwitchCase=\"'Url'\" />\r\n <input matInput [placeholder]=\"q.placeholder\" [required]=\"q.required\" [formControlName]=\"q.name\" type=\"password\" *ngSwitchCase=\"'Password'\" />\r\n <input matInput [placeholder]=\"q.placeholder\" [required]=\"q.required\" [formControlName]=\"q.name\" *ngSwitchDefault />\r\n </ng-container>\r\n </mat-form-field>\r\n \r\n </ng-container>\r\n </section>\r\n </form>\r\n <div *ngSwitchDefault>\r\n <section *ngFor=\"let q of metadata.questions\">\r\n <h2 class=\"mat-title\">{{q.label}}</h2>\r\n <p class=\"mat-body\" *ngIf=\"q.description\">{{q.description}}</p>\r\n <ng-container [ngSwitch]=\"q.type\">\r\n <div *ngSwitchCase=\"'Select'\">\r\n <span>{{model[q.name] | dataType: q.dataType | async}}</span>\r\n </div>\r\n <div *ngSwitchCase=\"'Autocomplete'\">\r\n <span>{{model[q.name] | dataType: q.dataType | async}}</span>\r\n </div>\r\n <div *ngSwitchCase=\"'Date'\">\r\n <span>{{model[q.name] | amCalendar}}</span>\r\n </div>\r\n <p *ngSwitchCase=\"'Text'\" [innerHTML]=\"model[q.name]\"></p>\r\n <p *ngSwitchCase=\"'Html'\" [innerHTML]=\"model[q.name]|sanitizeHtml\"></p>\r\n <mat-checkbox [formControlName]=\"q.name\" *ngSwitchCase=\"'Checkbox'\">{{q.label}}</mat-checkbox>\r\n <mat-radio-group [formControlName]=\"q.name\" *ngSwitchCase=\"'Choice'\" disabled>\r\n <mat-radio-button [value]=\"o.key\" *ngFor=\"let o of q.options | keyvalue\">{{o.value}}</mat-radio-button>\r\n </mat-radio-group>\r\n <div *ngSwitchCase=\"'Number'\">\r\n <span>{{model[q.name]|number}}</span>\r\n </div>\r\n <mat-radio-group [formControlName]=\"q.name\" *ngSwitchCase=\"'YesNo'\" disabled>\r\n <mat-radio-button [value]=\"true\">{{'Yes'|translate}}</mat-radio-button>\r\n <mat-radio-button [value]=\"false\">{{'No'|translate}}</mat-radio-button>\r\n </mat-radio-group>\r\n <div fxFlex *ngSwitchDefault>\r\n <ng-container [ngSwitch]=\"q.kind\">\r\n <a *ngSwitchCase=\"'PhoneNumber'\" [href]=\"'tel:'+model[q.name]\">{{model[q.name]}}</a>\r\n <a *ngSwitchCase=\"'EmailAddress'\" [href]=\"model[q.name]\">{{model[q.name]}}</a>\r\n <a *ngSwitchCase=\"'Url'\" [href]=\"model[q.name]\">\r\n {{model[q.name]}}\r\n </a>\r\n <span *ngSwitchCase=\"'Password'\">\r\n </span>\r\n <span *ngSwitchDefault>{{model[q.name]}}</span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </section>\r\n </div>\r\n</ng-container>\r\n", styles: ["form{padding:8px}section{display:block}\n"] }]
|
72
|
-
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.FormRef }]; } });
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VydmV5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS9zdXJ2ZXkvc3VydmV5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnJhcmllcy9jb3JlL3NyYy9saWIvY29tcG9zZS9zdXJ2ZXkvc3VydmV5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBMEIsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU3hDLElBQU0sbUJBQW1CLEdBQXpCLE1BQU0sbUJBQW1CO0lBRzlCLFlBQW9CLEdBQWdCLEVBQ2xDLEdBQWlDO1FBRGYsUUFBRyxHQUFILEdBQUcsQ0FBYTtRQUVsQyxJQUFJLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQ3JCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNsQyxNQUFNLElBQUksR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQy9CLElBQUksQ0FBQyxDQUFDLFFBQVE7Z0JBQ1osSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDMUMsSUFBSyxDQUFZLENBQUMsWUFBWSxLQUFLLFNBQVM7Z0JBQzFDLElBQUksQ0FBQyxRQUFRLENBQUUsQ0FBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUU7Z0JBQ3JCLElBQUssQ0FBVSxDQUFDLE9BQU87b0JBQ3JCLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBRSxDQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDOUQsSUFBSyxDQUFVLENBQUMsU0FBUztvQkFDdkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFFLENBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO2dCQUNsRSxJQUFLLENBQVUsQ0FBQyxTQUFTO29CQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUUsQ0FBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7YUFDbkU7aUJBQ0ksSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRTtnQkFDM0IsSUFBSSxDQUFDLENBQUMsWUFBWSxJQUFJLENBQUMsQ0FBQyxRQUFRO29CQUM5QixJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUMvQztpQkFDSSxJQUFJLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxFQUFFO2dCQUM5QixJQUFJLENBQUMsQ0FBQyxRQUFRO29CQUNaLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQy9DO2lCQUNJLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLEVBQUU7Z0JBQzVCLElBQUssQ0FBWSxDQUFDLEdBQUc7b0JBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBRSxDQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDeEQsSUFBSyxDQUFZLENBQUMsR0FBRztvQkFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFFLENBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO2FBQ3pEO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUNwQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFHRCxNQUFNLENBQUMsSUFBd0IsRUFBRSxPQUFhO1FBQzVDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO0lBQ25CLENBQUM7O2dIQTNDVSxtQkFBbUI7b0dBQW5CLG1CQUFtQixvRENiaEMsMjRNQXFHQTtBRHhGYSxtQkFBbUI7SUFEL0IsTUFBTSxDQUFDLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLENBQUM7R0FDOUIsbUJBQW1CLENBK0MvQjtTQS9DWSxtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFML0IsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgU3VydmV5TWV0YWRhdGEsIFRleHQsIE51bWJlciB9IGZyb20gXCIuLi8uLi9hZG1pbi9mb3JtL3N1cnZleS9zdXJ2ZXkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEZvcm1Db21wb25lbnQsIFZpZXdNb2RlIH0gZnJvbSBcIi4uLy4uL2NvcmUvYmFzZVwiO1xyXG5pbXBvcnQgeyBCaXpEb2MgfSBmcm9tIFwiLi4vLi4vY29yZS9kZWNvcmF0b3JzXCI7XHJcbmltcG9ydCB7IERvY3VtZW50TW9kZWwgfSBmcm9tIFwiLi4vLi4vY29yZS9tb2RlbHNcIjtcclxuaW1wb3J0IHsgRm9ybVJlZiB9IGZyb20gXCIuLi9mb3JtLXJlZlwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGVVcmw6ICdzdXJ2ZXkuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydzdXJ2ZXkuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuQEJpekRvYyh7IHNlbGVjdG9yOiAnYml6ZG9jLXN1cnZleS1mb3JtJyB9KVxyXG5leHBvcnQgY2xhc3MgU3VydmV5Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIEZvcm1Db21wb25lbnQ8YW55PiB7XHJcbiAgbWV0YWRhdGE6IFN1cnZleU1ldGFkYXRhO1xyXG4gIGRhdGE6IERvY3VtZW50TW9kZWw8YW55PjtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mYjogRm9ybUJ1aWxkZXIsXHJcbiAgICByZWY6IEZvcm1SZWY8YW55LCBTdXJ2ZXlNZXRhZGF0YT4pIHtcclxuICAgIHRoaXMubWV0YWRhdGEgPSByZWYub3B0aW9ucztcclxuICAgIHRoaXMuZm9ybSA9IF9mYi5ncm91cCh7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubWV0YWRhdGEucXVlc3Rpb25zLmZvckVhY2gocSA9PiB7XHJcbiAgICAgIGNvbnN0IGN0cmwgPSBfZmIuY29udHJvbChudWxsKTtcclxuICAgICAgaWYgKHEucmVxdWlyZWQpXHJcbiAgICAgICAgY3RybC5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xyXG4gICAgICBpZiAoKHEgYXMgTnVtYmVyKS5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZClcclxuICAgICAgICBjdHJsLnNldFZhbHVlKChxIGFzIE51bWJlcikuZGVmYXVsdFZhbHVlKTtcclxuICAgICAgaWYgKHEudHlwZSA9PT0gJ1RleHQnKSB7XHJcbiAgICAgICAgaWYgKChxIGFzIFRleHQpLnBhdHRlcm4pXHJcbiAgICAgICAgICBjdHJsLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5wYXR0ZXJuKChxIGFzIFRleHQpLnBhdHRlcm4pKTtcclxuICAgICAgICBpZiAoKHEgYXMgVGV4dCkubWluTGVuZ3RoKVxyXG4gICAgICAgICAgY3RybC5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMubWluTGVuZ3RoKChxIGFzIFRleHQpLm1pbkxlbmd0aCkpO1xyXG4gICAgICAgIGlmICgocSBhcyBUZXh0KS5tYXhMZW5ndGgpXHJcbiAgICAgICAgICBjdHJsLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5taW5MZW5ndGgoKHEgYXMgVGV4dCkubWF4TGVuZ3RoKSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSBpZiAocS50eXBlID09PSAnWWVzTm8nKSB7XHJcbiAgICAgICAgaWYgKHEuZGVmYXVsdFZhbHVlICYmIHEucmVxdWlyZWQpXHJcbiAgICAgICAgICBjdHJsLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZFRydWUpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2UgaWYgKHEudHlwZSA9PT0gJ0NoZWNrYm94Jykge1xyXG4gICAgICAgIGlmIChxLnJlcXVpcmVkKVxyXG4gICAgICAgICAgY3RybC5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWRUcnVlKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChxLnR5cGUgPT09ICdOdW1iZXInKSB7XHJcbiAgICAgICAgaWYgKChxIGFzIE51bWJlcikubWluKVxyXG4gICAgICAgICAgY3RybC5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMubWF4KChxIGFzIE51bWJlcikubWF4KSk7XHJcbiAgICAgICAgaWYgKChxIGFzIE51bWJlcikubWluKVxyXG4gICAgICAgICAgY3RybC5hZGRWYWxpZGF0b3JzKFZhbGlkYXRvcnMubWF4KChxIGFzIE51bWJlcikubWF4KSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5mb3JtLmFkZENvbnRyb2wocS5uYW1lLCBjdHJsKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHJlYWRvbmx5IGZvcm06IEZvcm1Hcm91cDxhbnk+O1xyXG4gIG1vZGU6IFZpZXdNb2RlO1xyXG4gIG9uQmluZChkYXRhOiBEb2N1bWVudE1vZGVsPGFueT4sIHZlcnNpb24/OiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0YSA9IGRhdGE7XHJcbiAgfVxyXG4gIC8vICBvblNhdmUoKSB7XHJcbiAgLy8gICAgcmV0dXJuIHRydWU7XHJcbiAgLy8gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJtb2RlXCI+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgKm5nU3dpdGNoQ2FzZT1cIidlZGl0J1wiPlxyXG4gICAgPHNlY3Rpb24gKm5nRm9yPVwibGV0IHEgb2YgbWV0YWRhdGEucXVlc3Rpb25zXCI+XHJcbiAgICAgIDxoMiBjbGFzcz1cIm1hdC10aXRsZVwiPnt7cS5sYWJlbH19PC9oMj5cclxuICAgICAgPHAgY2xhc3M9XCJtYXQtYm9keVwiICpuZ0lmPVwicS5kZXNjcmlwdGlvblwiPnt7cS5kZXNjcmlwdGlvbn19PC9wPlxyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJxLnR5cGVcIj5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgKm5nU3dpdGNoQ2FzZT1cIidTZWxlY3QnXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+e3txLnBsYWNlaG9sZGVyfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxiaXpkb2Mtc2VsZWN0IFtwbGFjZWhvbGRlcl09XCJxLnBsYWNlaG9sZGVyXCIgW3R5cGVdPVwicS5kYXRhVHlwZVwiIFtmb3JtQ29udHJvbE5hbWVdPVwicS5uYW1lXCIgW3JlcXVpcmVkXT1cInEucmVxdWlyZWRcIj48L2JpemRvYy1zZWxlY3Q+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgKm5nU3dpdGNoQ2FzZT1cIidBdXRvY29tcGxldGUnXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICAgIDxtYXQtbGFiZWw+e3txLnBsYWNlaG9sZGVyfX08L21hdC1sYWJlbD5cclxuICAgICAgICAgIDxiaXpkb2MtYXV0b2NvbXBsZXRlIFt0eXBlXT1cInEuZGF0YVR5cGVcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInEubmFtZVwiIFtyZXF1aXJlZF09XCJxLnJlcXVpcmVkXCI+PC9iaXpkb2MtYXV0b2NvbXBsZXRlPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkICpuZ1N3aXRjaENhc2U9XCInRGF0ZSdcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgICAgPG1hdC1sYWJlbD57e3EucGxhY2Vob2xkZXJ9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IG1hdElucHV0XHJcbiAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInEucGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbE5hbWVdPVwicS5uYW1lXCJcclxuICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicS5yZXF1aXJlZFwiXHJcbiAgICAgICAgICAgICAgICAgW21pbl09XCJxLm1pblwiXHJcbiAgICAgICAgICAgICAgICAgW21heF09XCJxLm1heFwiXHJcbiAgICAgICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCIgLz5cclxuICAgICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgW2Zvcl09XCJwaWNrZXJcIiBtYXRTdWZmaXg+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XHJcbiAgICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcj48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkICpuZ1N3aXRjaENhc2U9XCInVGV4dCdcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgICAgPHRleHRhcmVhIFtwbGFjZWhvbGRlcl09XCJxLnBsYWNlaG9sZGVyXCIgbWF0SW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJxLm5hbWVcIiBjZGtUZXh0YXJlYUF1dG9zaXplXHJcbiAgICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cInEucmVxdWlyZWRcIiBbbWlubGVuZ3RoXT1cInEubWluTGVuZ3RoXCIgW21heGxlbmd0aF09XCJxLm1heExlbmd0aFwiPjwvdGV4dGFyZWE+XHJcbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8ZWpzLXJpY2h0ZXh0ZWRpdG9yICpuZ1N3aXRjaENhc2U9XCInSHRtbCdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInEucGxhY2Vob2xkZXJcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInEubmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwicS5yZXF1aXJlZFwiIFttaW5sZW5ndGhdPVwicS5taW5MZW5ndGhcIiBbbWF4bGVuZ3RoXT1cInEubWF4TGVuZ3RoXCI+PC9lanMtcmljaHRleHRlZGl0b3I+XHJcbiAgICAgICAgPG1hdC1jaGVja2JveCBbZm9ybUNvbnRyb2xOYW1lXT1cInEubmFtZVwiICpuZ1N3aXRjaENhc2U9XCInQ2hlY2tib3gnXCI+e3txLmxhYmVsfX08L21hdC1jaGVja2JveD5cclxuICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIFtmb3JtQ29udHJvbE5hbWVdPVwicS5uYW1lXCIgKm5nU3dpdGNoQ2FzZT1cIidDaG9pY2UnXCI+XHJcbiAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbdmFsdWVdPVwiby5rZXlcIiAqbmdGb3I9XCJsZXQgbyBvZiBxLm9wdGlvbnMgfCBrZXl2YWx1ZVwiPnt7by52YWx1ZX19PC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGZ4RmxleCAqbmdTd2l0Y2hDYXNlPVwiJ051bWJlcidcIj5cclxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwicS5wbGFjZWhvbGRlclwiIFtyZXF1aXJlZF09XCJxLnJlcXVpcmVkXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxLm5hbWVcIiB0eXBlPVwibnVtYmVyXCIgLz5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgW2Zvcm1Db250cm9sTmFtZV09XCJxLm5hbWVcIiAqbmdTd2l0Y2hDYXNlPVwiJ1llc05vJ1wiPlxyXG4gICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cInRydWVcIj57eydZZXMnfHRyYW5zbGF0ZX19PC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cImZhbHNlXCI+e3snTm8nfHRyYW5zbGF0ZX19PC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGZ4RmxleCAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicS5raW5kXCI+XHJcbiAgICAgICAgICAgIDxiaXpkb2MtYWRkcmVzcyBbcGxhY2Vob2xkZXJdPVwicS5wbGFjZWhvbGRlclwiIFtyZXF1aXJlZF09XCJxLnJlcXVpcmVkXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxLm5hbWVcIiAqbmdTd2l0Y2hDYXNlPVwiJ0FkZHJlc3MnXCI+PC9iaXpkb2MtYWRkcmVzcz5cclxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFtwbGFjZWhvbGRlcl09XCJxLnBsYWNlaG9sZGVyXCIgW3JlcXVpcmVkXT1cInEucmVxdWlyZWRcIiBbZm9ybUNvbnRyb2xOYW1lXT1cInEubmFtZVwiIHR5cGU9XCJ0ZWxcIiAqbmdTd2l0Y2hDYXNlPVwiJ1Bob25lTnVtYmVyJ1wiIC8+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwicS5wbGFjZWhvbGRlclwiIFtyZXF1aXJlZF09XCJxLnJlcXVpcmVkXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxLm5hbWVcIiB0eXBlPVwiZW1haWxcIiAqbmdTd2l0Y2hDYXNlPVwiJ0VtYWlsQWRkcmVzcydcIiAvPlxyXG4gICAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgW3BsYWNlaG9sZGVyXT1cInEucGxhY2Vob2xkZXJcIiBbcmVxdWlyZWRdPVwicS5yZXF1aXJlZFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicS5uYW1lXCIgdHlwZT1cInVybFwiICpuZ1N3aXRjaENhc2U9XCInVXJsJ1wiIC8+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwicS5wbGFjZWhvbGRlclwiIFtyZXF1aXJlZF09XCJxLnJlcXVpcmVkXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxLm5hbWVcIiB0eXBlPVwicGFzc3dvcmRcIiAqbmdTd2l0Y2hDYXNlPVwiJ1Bhc3N3b3JkJ1wiIC8+XHJcbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBbcGxhY2Vob2xkZXJdPVwicS5wbGFjZWhvbGRlclwiIFtyZXF1aXJlZF09XCJxLnJlcXVpcmVkXCIgW2Zvcm1Db250cm9sTmFtZV09XCJxLm5hbWVcIiAqbmdTd2l0Y2hEZWZhdWx0IC8+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICZuYnNwO1xyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvc2VjdGlvbj5cclxuICA8L2Zvcm0+XHJcbiAgPGRpdiAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgPHNlY3Rpb24gKm5nRm9yPVwibGV0IHEgb2YgbWV0YWRhdGEucXVlc3Rpb25zXCI+XHJcbiAgICAgIDxoMiBjbGFzcz1cIm1hdC10aXRsZVwiPnt7cS5sYWJlbH19PC9oMj5cclxuICAgICAgPHAgY2xhc3M9XCJtYXQtYm9keVwiICpuZ0lmPVwicS5kZXNjcmlwdGlvblwiPnt7cS5kZXNjcmlwdGlvbn19PC9wPlxyXG4gICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJxLnR5cGVcIj5cclxuICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInU2VsZWN0J1wiPlxyXG4gICAgICAgICAgPHNwYW4+e3ttb2RlbFtxLm5hbWVdIHwgZGF0YVR5cGU6IHEuZGF0YVR5cGUgfCBhc3luY319PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidBdXRvY29tcGxldGUnXCI+XHJcbiAgICAgICAgICA8c3Bhbj57e21vZGVsW3EubmFtZV0gfCBkYXRhVHlwZTogcS5kYXRhVHlwZSB8IGFzeW5jfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ0RhdGUnXCI+XHJcbiAgICAgICAgICA8c3Bhbj57e21vZGVsW3EubmFtZV0gfCBhbUNhbGVuZGFyfX08L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPHAgKm5nU3dpdGNoQ2FzZT1cIidUZXh0J1wiIFtpbm5lckhUTUxdPVwibW9kZWxbcS5uYW1lXVwiPjwvcD5cclxuICAgICAgICA8cCAqbmdTd2l0Y2hDYXNlPVwiJ0h0bWwnXCIgW2lubmVySFRNTF09XCJtb2RlbFtxLm5hbWVdfHNhbml0aXplSHRtbFwiPjwvcD5cclxuICAgICAgICA8bWF0LWNoZWNrYm94IFtmb3JtQ29udHJvbE5hbWVdPVwicS5uYW1lXCIgKm5nU3dpdGNoQ2FzZT1cIidDaGVja2JveCdcIj57e3EubGFiZWx9fTwvbWF0LWNoZWNrYm94PlxyXG4gICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgW2Zvcm1Db250cm9sTmFtZV09XCJxLm5hbWVcIiAqbmdTd2l0Y2hDYXNlPVwiJ0Nob2ljZSdcIiBkaXNhYmxlZD5cclxuICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJvLmtleVwiICpuZ0Zvcj1cImxldCBvIG9mIHEub3B0aW9ucyB8IGtleXZhbHVlXCI+e3tvLnZhbHVlfX08L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ051bWJlcidcIj5cclxuICAgICAgICAgIDxzcGFuPnt7bW9kZWxbcS5uYW1lXXxudW1iZXJ9fTwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8bWF0LXJhZGlvLWdyb3VwIFtmb3JtQ29udHJvbE5hbWVdPVwicS5uYW1lXCIgKm5nU3dpdGNoQ2FzZT1cIidZZXNObydcIiBkaXNhYmxlZD5cclxuICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJ0cnVlXCI+e3snWWVzJ3x0cmFuc2xhdGV9fTwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJmYWxzZVwiPnt7J05vJ3x0cmFuc2xhdGV9fTwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICA8L21hdC1yYWRpby1ncm91cD5cclxuICAgICAgICA8ZGl2IGZ4RmxleCAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwicS5raW5kXCI+XHJcbiAgICAgICAgICAgIDxhICpuZ1N3aXRjaENhc2U9XCInUGhvbmVOdW1iZXInXCIgW2hyZWZdPVwiJ3RlbDonK21vZGVsW3EubmFtZV1cIj57e21vZGVsW3EubmFtZV19fTwvYT5cclxuICAgICAgICAgICAgPGEgKm5nU3dpdGNoQ2FzZT1cIidFbWFpbEFkZHJlc3MnXCIgW2hyZWZdPVwibW9kZWxbcS5uYW1lXVwiPnt7bW9kZWxbcS5uYW1lXX19PC9hPlxyXG4gICAgICAgICAgICA8YSAqbmdTd2l0Y2hDYXNlPVwiJ1VybCdcIiBbaHJlZl09XCJtb2RlbFtxLm5hbWVdXCI+XHJcbiAgICAgICAgICAgICAge3ttb2RlbFtxLm5hbWVdfX1cclxuICAgICAgICAgICAgPC9hPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ1Bhc3N3b3JkJ1wiPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ1N3aXRjaERlZmF1bHQ+e3ttb2RlbFtxLm5hbWVdfX08L3NwYW4+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L3NlY3Rpb24+XHJcbiAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
@@ -1,18 +0,0 @@
|
|
1
|
-
import { ElementRef, OnInit } from "@angular/core";
|
2
|
-
import { FormBuilder } from "@angular/forms";
|
3
|
-
import { PanesRouter } from "../../../core/slots/router.service";
|
4
|
-
import { SurveyMetadata } from "../../form/survey/survey.component";
|
5
|
-
import { DesignerRef } from "../declarations";
|
6
|
-
import { DesignerElementComponentBase } from "../designer.base";
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
export declare class SurveyFormDesignComponent extends DesignerElementComponentBase<SurveyMetadata> implements OnInit {
|
9
|
-
private _router;
|
10
|
-
readonly form: import("@angular/forms").FormGroup<{
|
11
|
-
questions: import("@angular/forms").FormControl<any>;
|
12
|
-
}>;
|
13
|
-
constructor(fb: FormBuilder, element: ElementRef<any>, ref: DesignerRef, _router: PanesRouter);
|
14
|
-
ngOnInit(): void;
|
15
|
-
design(): void;
|
16
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SurveyFormDesignComponent, never>;
|
17
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SurveyFormDesignComponent, "ng-component", never, {}, {}, never, never, false>;
|
18
|
-
}
|
@@ -1,123 +0,0 @@
|
|
1
|
-
import { CdkDragDrop } from "@angular/cdk/drag-drop";
|
2
|
-
import { ChangeDetectorRef, ElementRef, OnInit } from "@angular/core";
|
3
|
-
import { FormArray, FormBuilder, FormControl, FormGroup } from "@angular/forms";
|
4
|
-
import { Cube, FieldKind, Type } from "../../../core/models";
|
5
|
-
import { PromptService } from "../../../core/prompt.service";
|
6
|
-
import { SessionService } from "../../../core/session.service";
|
7
|
-
import { PaneRef } from "../../../core/slots/pane-ref";
|
8
|
-
import { UtilityRef } from "../../utility-ref";
|
9
|
-
import * as i0 from "@angular/core";
|
10
|
-
/** */
|
11
|
-
export declare class SurveyDesignerComponent implements OnInit {
|
12
|
-
private _fb;
|
13
|
-
private _pane;
|
14
|
-
private _cd;
|
15
|
-
private _ps;
|
16
|
-
private _session;
|
17
|
-
private _el;
|
18
|
-
private _ref;
|
19
|
-
loading: boolean;
|
20
|
-
tools: boolean;
|
21
|
-
saving: boolean;
|
22
|
-
model: SurveyMetadata;
|
23
|
-
readonly history: string[];
|
24
|
-
historyIndex: number;
|
25
|
-
readonly datatypes: Type[];
|
26
|
-
readonly cubes: Cube[];
|
27
|
-
readonly questions: FormArray<FormControl<unknown>>;
|
28
|
-
readonly form: FormGroup<{
|
29
|
-
questions: FormArray<FormControl<unknown>>;
|
30
|
-
}>;
|
31
|
-
title: string;
|
32
|
-
settings: boolean;
|
33
|
-
private _formId;
|
34
|
-
constructor(_fb: FormBuilder, _pane: PaneRef<any>, _cd: ChangeDetectorRef, _ps: PromptService, _session: SessionService, _el: ElementRef, _ref: UtilityRef<boolean, {
|
35
|
-
metadata: SurveyMetadata;
|
36
|
-
formId: string;
|
37
|
-
}, SurveyMetadata, string>);
|
38
|
-
ngOnInit(): void;
|
39
|
-
private _open;
|
40
|
-
private _assign;
|
41
|
-
private _questionform;
|
42
|
-
add(type: any, evt?: Event): void;
|
43
|
-
remove(question: FormGroup): void;
|
44
|
-
private _notifyChange;
|
45
|
-
undo(): void;
|
46
|
-
redo(): void;
|
47
|
-
private _restore;
|
48
|
-
/**
|
49
|
-
* Ctrl-s save; Ctrl-z undo
|
50
|
-
* @param event
|
51
|
-
*/
|
52
|
-
handleKeyboardEvent(event: KeyboardEvent): void;
|
53
|
-
drop(event: CdkDragDrop<FormGroup>, collection: FormArray): void;
|
54
|
-
save(): void;
|
55
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SurveyDesignerComponent, never>;
|
56
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SurveyDesignerComponent, "ng-component", never, {}, {}, never, never, false>;
|
57
|
-
}
|
58
|
-
export interface SurveyMetadata {
|
59
|
-
questions: Question[];
|
60
|
-
}
|
61
|
-
export declare type Question = Text | Html | Date | Number | Select | Choice | YesNo | Checkbox;
|
62
|
-
interface QuestionBase {
|
63
|
-
name: string;
|
64
|
-
label: string;
|
65
|
-
required?: boolean;
|
66
|
-
description?: string;
|
67
|
-
}
|
68
|
-
export interface Html extends QuestionBase {
|
69
|
-
type: 'Html';
|
70
|
-
lines?: number;
|
71
|
-
placeholder?: string;
|
72
|
-
}
|
73
|
-
export interface Text extends QuestionBase {
|
74
|
-
type: 'Text';
|
75
|
-
pattern?: string;
|
76
|
-
minLength?: number;
|
77
|
-
maxLength?: number;
|
78
|
-
prefixIcon?: string;
|
79
|
-
sufixIcon?: string;
|
80
|
-
lines?: number;
|
81
|
-
kind?: FieldKind;
|
82
|
-
placeholder?: string;
|
83
|
-
}
|
84
|
-
export interface Checkbox extends QuestionBase {
|
85
|
-
type: 'Checkbox';
|
86
|
-
defaultValue?: boolean;
|
87
|
-
}
|
88
|
-
export interface YesNo extends QuestionBase {
|
89
|
-
type: 'YesNo';
|
90
|
-
defaultValue?: boolean;
|
91
|
-
}
|
92
|
-
export interface Date extends QuestionBase {
|
93
|
-
type: 'Date';
|
94
|
-
prefixIcon?: string;
|
95
|
-
sufixIcon?: string;
|
96
|
-
defaultValue?: Date;
|
97
|
-
placeholder?: string;
|
98
|
-
}
|
99
|
-
export interface Number extends QuestionBase {
|
100
|
-
type: 'Number';
|
101
|
-
placeholder?: string;
|
102
|
-
defaultValue?: number;
|
103
|
-
prefixIcon?: string;
|
104
|
-
sufixIcon?: string;
|
105
|
-
min?: number;
|
106
|
-
max?: number;
|
107
|
-
}
|
108
|
-
export interface Select extends QuestionBase {
|
109
|
-
type: 'Select';
|
110
|
-
prefixIcon?: string;
|
111
|
-
sufixIcon?: string;
|
112
|
-
dataType?: string;
|
113
|
-
defaultValue?: string;
|
114
|
-
multiple?: boolean;
|
115
|
-
}
|
116
|
-
export interface Choice extends QuestionBase {
|
117
|
-
type: 'Choice';
|
118
|
-
options: {
|
119
|
-
[name: string]: string;
|
120
|
-
};
|
121
|
-
defaultValue?: string;
|
122
|
-
}
|
123
|
-
export {};
|
@@ -1,17 +0,0 @@
|
|
1
|
-
import { FormBuilder, FormGroup } from "@angular/forms";
|
2
|
-
import { SurveyMetadata } from "../../admin/form/survey/survey.component";
|
3
|
-
import { FormComponent, ViewMode } from "../../core/base";
|
4
|
-
import { DocumentModel } from "../../core/models";
|
5
|
-
import { FormRef } from "../form-ref";
|
6
|
-
import * as i0 from "@angular/core";
|
7
|
-
export declare class SurveyFormComponent implements FormComponent<any> {
|
8
|
-
private _fb;
|
9
|
-
metadata: SurveyMetadata;
|
10
|
-
data: DocumentModel<any>;
|
11
|
-
constructor(_fb: FormBuilder, ref: FormRef<any, SurveyMetadata>);
|
12
|
-
readonly form: FormGroup<any>;
|
13
|
-
mode: ViewMode;
|
14
|
-
onBind(data: DocumentModel<any>, version?: any): void;
|
15
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<SurveyFormComponent, never>;
|
16
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SurveyFormComponent, "ng-component", never, {}, {}, never, never, false>;
|
17
|
-
}
|