@messaia/cdk-cms 20.0.7 → 20.0.9
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/fesm2022/messaia-cdk-cms.mjs +364 -262
- package/fesm2022/messaia-cdk-cms.mjs.map +1 -1
- package/index.d.ts +31 -12
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@ import * as i5 from '@angular/common';
|
|
|
10
10
|
import { CommonModule } from '@angular/common';
|
|
11
11
|
import * as i3 from '@angular/common/http';
|
|
12
12
|
import { HttpEventType, HttpResponse } from '@angular/common/http';
|
|
13
|
-
import * as
|
|
13
|
+
import * as i6 from '@angular/forms';
|
|
14
14
|
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
15
15
|
import * as i10 from '@angular/material/button';
|
|
16
16
|
import { MatButtonModule } from '@angular/material/button';
|
|
@@ -18,7 +18,7 @@ import * as i8 from '@angular/material/expansion';
|
|
|
18
18
|
import { MatExpansionModule } from '@angular/material/expansion';
|
|
19
19
|
import * as i9 from '@angular/material/form-field';
|
|
20
20
|
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
21
|
-
import * as i7
|
|
21
|
+
import * as i7 from '@tinymce/tinymce-angular';
|
|
22
22
|
import { EditorModule } from '@tinymce/tinymce-angular';
|
|
23
23
|
import { of, map as map$1 } from 'rxjs';
|
|
24
24
|
import { __decorate, __metadata } from 'tslib';
|
|
@@ -36,7 +36,7 @@ import { saveAs } from 'file-saver';
|
|
|
36
36
|
import { MatCard } from '@angular/material/card';
|
|
37
37
|
import { MatDivider } from '@angular/material/divider';
|
|
38
38
|
import { MatIcon } from '@angular/material/icon';
|
|
39
|
-
import * as i6 from '@angular/material/progress-bar';
|
|
39
|
+
import * as i6$1 from '@angular/material/progress-bar';
|
|
40
40
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
41
41
|
import * as i8$1 from 'ng2-pdf-viewer';
|
|
42
42
|
import { PdfViewerModule } from 'ng2-pdf-viewer';
|
|
@@ -382,6 +382,7 @@ __decorate([
|
|
|
382
382
|
}),
|
|
383
383
|
multiple: true,
|
|
384
384
|
triggerMode: 'chip',
|
|
385
|
+
hide: (_, __, ctx) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients),
|
|
385
386
|
compareWith: (o, v) => o.clientId === v.clientId,
|
|
386
387
|
mapper: (x) => x.map(y => new ContentClient({ clientId: y.id, clientName: y.displayName })),
|
|
387
388
|
optionTemplate: (x) => x?.clientName,
|
|
@@ -703,7 +704,7 @@ class ContentFormComponent extends GenericReactiveFormComponent {
|
|
|
703
704
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ContentFormComponent, deps: [{ token: ContentService }, { token: i2.FileService }, { token: i3.HttpClient }, { token: i3$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
704
705
|
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: ContentFormComponent, isStandalone: true, selector: "app-content-form", viewQueries: [{ propertyName: "formElement", first: true, predicate: ["form"], descendants: true }, { propertyName: "editorComponent", first: true, predicate: ["editor"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Content\" i18n-toolbarTitle=\"@@content\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\r\n\t\t\t\t\t\t\t<ng-template vd-editor let-field=\"field\" let-formGroup=\"formGroup\">\r\n\t\t\t\t\t\t\t\t<mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\" flex>\r\n\t\t\t\t\t\t\t\t\t<mat-label>{{field.label}}</mat-label>\r\n\t\t\t\t\t\t\t\t\t<editor [formControlName]=\"field.name\" [init]=\"editorConfig\" tinyMatFormControl flex></editor>\r\n\t\t\t\t\t\t\t\t\t<mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n\t\t\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of formGroup.controls[field.name]['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t</vd-generic-form>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button *ngIf=\"isEditMode || true\" (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-audit [entity]=\"item\"> </vd-audit>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type:
|
|
705
706
|
//-----------------------
|
|
706
|
-
ReactiveFormsModule }, { kind: "directive", type:
|
|
707
|
+
ReactiveFormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: RxReactiveFormsModule }, { kind: "directive", type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { kind: "directive", type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { kind: "directive", type: i2.RxFormControlDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["rxalpha", "rxalphaNumeric", "rxascii", "rxcompare", "rxcompose", "rxcontains", "rxcreditCard", "rxdataUri", "rxdifferent", "rxdigit", "rxemail", "rxendsWith", "rxeven", "rxextension", "rxfactor", "rxfileSize", "rxgreaterThanEqualTo", "rxgreaterThan", "rxhexColor", "rxjson", "rxlatitude", "rxlatLong", "rxleapYear", "rxlessThan", "rxlessThanEqualTo", "rxlongitude", "rxlowerCase", "rxmac", "rxmaxDate", "rxmaxLength", "rxmaxNumber", "rxminDate", "rxminLength", "rxminNumber", "rxnumeric", "rxodd", "rxpassword", "rxport", "rxprimeNumber", "rxrequired", "rxrange", "rxrule", "rxstartsWith", "rxtime", "rxupperCase", "rxurl", "rxunique", "rxnotEmpty", "rxcusip", "rxgrid", "rxdate"] }, { kind: "ngmodule", type: EditorModule }, { kind: "component", type: i7.EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "licenseKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }, { kind: "ngmodule", type:
|
|
707
708
|
//-----------------------
|
|
708
709
|
MatExpansionModule }, { kind: "directive", type: i8.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i8.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i8.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i8.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i8.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i8.MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i10.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: MatFormFieldEditorDirective, selector: "[tinyMatFormControl]", inputs: ["errorStateMatcher", "disabled", "id", "placeholder", "required", "value"], outputs: ["editorChange"] }, { kind: "component", type:
|
|
709
710
|
//-----------------------
|
|
@@ -977,7 +978,7 @@ class DocumentDialogComponent extends DocumentFormBaseComponent {
|
|
|
977
978
|
this.item.isPublic = true;
|
|
978
979
|
}
|
|
979
980
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: DocumentDialogComponent, deps: [{ token: DocumentService }, { token: i2.FileService }, { token: i3$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
980
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: DocumentDialogComponent, isStandalone: true, selector: "document-dialog", usesInheritance: true, ngImport: i0, template: "\n <div mat-dialog-title class=\"mat-headline-6\" i18n=\"@@newDocument\">New document</div>\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\n <ng-template vd-file let-field=\"field\" let-formGroup=\"formGroup\">\n <mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\n <mat-label>{{field.header}}</mat-label>\n <div vd-file-input [formControlName]=\"field.name\" (select)=\"upload($event)\" [accept]=\"field.fileExtensions\"></div>\n </mat-form-field>\n </ng-template>\n </vd-generic-form>\n <div mat-dialog-actions class=\"pad-top\">\n <button type=\"submit\" mat-flat-button [disabled]=\"isSaving\" color=\"primary\" i18n=\"@@save\">Save</button>\n <button type=\"button\" mat-button (click)=\"cancel()\" i18n=\"@@cancel\">Cancel</button>\n </div>\n </form>", isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type:
|
|
981
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: DocumentDialogComponent, isStandalone: true, selector: "document-dialog", usesInheritance: true, ngImport: i0, template: "\n <div mat-dialog-title class=\"mat-headline-6\" i18n=\"@@newDocument\">New document</div>\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\n <ng-template vd-file let-field=\"field\" let-formGroup=\"formGroup\">\n <mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\n <mat-label>{{field.header}}</mat-label>\n <div vd-file-input [formControlName]=\"field.name\" (select)=\"upload($event)\" [accept]=\"field.fileExtensions\"></div>\n </mat-form-field>\n </ng-template>\n </vd-generic-form>\n <div mat-dialog-actions class=\"pad-top\">\n <button type=\"submit\" mat-flat-button [disabled]=\"isSaving\" color=\"primary\" i18n=\"@@save\">Save</button>\n <button type=\"button\" mat-button (click)=\"cancel()\" i18n=\"@@cancel\">Cancel</button>\n </div>\n </form>", isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "component", type: VdGenericFormComponent, selector: "vd-generic-form", inputs: ["formGroup", "classType", "formDefinition", "fieldGroups", "groupName", "fieldSets", "context", "debugValue", "readonly", "separatorKeysCodes"] }, { kind: "component", type: VdFileInputComponent, selector: "[vd-file-input]", inputs: ["accept", "placeholder", "required", "multiple", "disabled", "errorState"], outputs: ["select", "clear"] }] });
|
|
981
982
|
}
|
|
982
983
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: DocumentDialogComponent, decorators: [{
|
|
983
984
|
type: Component,
|
|
@@ -998,6 +999,338 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImpor
|
|
|
998
999
|
args: [MAT_DIALOG_DATA]
|
|
999
1000
|
}] }] });
|
|
1000
1001
|
|
|
1002
|
+
/**
|
|
1003
|
+
* @class
|
|
1004
|
+
*/
|
|
1005
|
+
class FaqClient {
|
|
1006
|
+
/**
|
|
1007
|
+
* @property
|
|
1008
|
+
*/
|
|
1009
|
+
faqId;
|
|
1010
|
+
/**
|
|
1011
|
+
* @property
|
|
1012
|
+
*/
|
|
1013
|
+
clientId;
|
|
1014
|
+
/**
|
|
1015
|
+
* @property
|
|
1016
|
+
*/
|
|
1017
|
+
client;
|
|
1018
|
+
/**
|
|
1019
|
+
* @property
|
|
1020
|
+
*/
|
|
1021
|
+
clientName;
|
|
1022
|
+
/**
|
|
1023
|
+
* Constructor
|
|
1024
|
+
* @param init
|
|
1025
|
+
*/
|
|
1026
|
+
constructor(init) {
|
|
1027
|
+
Object.assign(this, init);
|
|
1028
|
+
}
|
|
1029
|
+
}
|
|
1030
|
+
__decorate([
|
|
1031
|
+
prop(),
|
|
1032
|
+
__metadata("design:type", Number)
|
|
1033
|
+
], FaqClient.prototype, "faqId", void 0);
|
|
1034
|
+
__decorate([
|
|
1035
|
+
required(),
|
|
1036
|
+
__metadata("design:type", Number)
|
|
1037
|
+
], FaqClient.prototype, "clientId", void 0);
|
|
1038
|
+
|
|
1039
|
+
/**
|
|
1040
|
+
* @class
|
|
1041
|
+
*/
|
|
1042
|
+
class FaqDepartment {
|
|
1043
|
+
/**
|
|
1044
|
+
* @property
|
|
1045
|
+
*/
|
|
1046
|
+
faqId;
|
|
1047
|
+
/**
|
|
1048
|
+
* @property
|
|
1049
|
+
*/
|
|
1050
|
+
departmentId;
|
|
1051
|
+
/**
|
|
1052
|
+
* @property
|
|
1053
|
+
*/
|
|
1054
|
+
department;
|
|
1055
|
+
/**
|
|
1056
|
+
* @property
|
|
1057
|
+
*/
|
|
1058
|
+
departmentName;
|
|
1059
|
+
/**
|
|
1060
|
+
* Constructor
|
|
1061
|
+
* @param init
|
|
1062
|
+
*/
|
|
1063
|
+
constructor(init) {
|
|
1064
|
+
Object.assign(this, init);
|
|
1065
|
+
}
|
|
1066
|
+
}
|
|
1067
|
+
__decorate([
|
|
1068
|
+
prop(),
|
|
1069
|
+
__metadata("design:type", Number)
|
|
1070
|
+
], FaqDepartment.prototype, "faqId", void 0);
|
|
1071
|
+
__decorate([
|
|
1072
|
+
required(),
|
|
1073
|
+
__metadata("design:type", Number)
|
|
1074
|
+
], FaqDepartment.prototype, "departmentId", void 0);
|
|
1075
|
+
|
|
1076
|
+
let Faq = class Faq extends AuditEntity {
|
|
1077
|
+
/**
|
|
1078
|
+
* The question text
|
|
1079
|
+
* @type {string}
|
|
1080
|
+
*/
|
|
1081
|
+
question;
|
|
1082
|
+
/**
|
|
1083
|
+
* The group name
|
|
1084
|
+
* @type {string}
|
|
1085
|
+
*/
|
|
1086
|
+
group;
|
|
1087
|
+
/**
|
|
1088
|
+
* Associated clients
|
|
1089
|
+
* @type {FaqClient[]}
|
|
1090
|
+
*/
|
|
1091
|
+
clientJoins;
|
|
1092
|
+
/**
|
|
1093
|
+
* Associated departments
|
|
1094
|
+
* @type {FaqDepartment[]}
|
|
1095
|
+
*/
|
|
1096
|
+
departmentJoins;
|
|
1097
|
+
/**
|
|
1098
|
+
* Display order of the FAQ
|
|
1099
|
+
* @type {number}
|
|
1100
|
+
*/
|
|
1101
|
+
ordering;
|
|
1102
|
+
/**
|
|
1103
|
+
* The answer text
|
|
1104
|
+
* @type {string}
|
|
1105
|
+
*/
|
|
1106
|
+
answer;
|
|
1107
|
+
/**
|
|
1108
|
+
* Indicates if the FAQ is enabled
|
|
1109
|
+
* @type {boolean}
|
|
1110
|
+
*/
|
|
1111
|
+
enabled;
|
|
1112
|
+
/**
|
|
1113
|
+
* Constructor
|
|
1114
|
+
* @param init - Partial initialization object
|
|
1115
|
+
*/
|
|
1116
|
+
constructor(init) {
|
|
1117
|
+
super(init);
|
|
1118
|
+
Object.assign(this, init);
|
|
1119
|
+
}
|
|
1120
|
+
};
|
|
1121
|
+
__decorate([
|
|
1122
|
+
required(),
|
|
1123
|
+
Column({
|
|
1124
|
+
index: 1,
|
|
1125
|
+
contentLength: 30
|
|
1126
|
+
}),
|
|
1127
|
+
FormField({ row: 10 }),
|
|
1128
|
+
Display($localize `:@@question:Question`),
|
|
1129
|
+
__metadata("design:type", String)
|
|
1130
|
+
], Faq.prototype, "question", void 0);
|
|
1131
|
+
__decorate([
|
|
1132
|
+
required(),
|
|
1133
|
+
Column({
|
|
1134
|
+
index: 10,
|
|
1135
|
+
maxWidth: 160,
|
|
1136
|
+
display: Grid.Lg
|
|
1137
|
+
}),
|
|
1138
|
+
FormField({
|
|
1139
|
+
row: 20,
|
|
1140
|
+
type: FormFieldType.Autocomplete
|
|
1141
|
+
}),
|
|
1142
|
+
Display($localize `:@@group:Group`),
|
|
1143
|
+
__metadata("design:type", String)
|
|
1144
|
+
], Faq.prototype, "group", void 0);
|
|
1145
|
+
__decorate([
|
|
1146
|
+
required({ conditionalExpression: (x) => true }),
|
|
1147
|
+
Column({
|
|
1148
|
+
index: 1,
|
|
1149
|
+
name: 'clientJoins.client.displayName',
|
|
1150
|
+
sortBy: 'clientJoins.Min(client.displayName)',
|
|
1151
|
+
content: (x) => x ? Utils.joinArray(x.clientJoins?.map(y => y.client?.displayName ?? '') ?? []) : undefined,
|
|
1152
|
+
display: Grid.Lg,
|
|
1153
|
+
maxWidth: 200,
|
|
1154
|
+
hide: (_, __, ctx) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients),
|
|
1155
|
+
}),
|
|
1156
|
+
FormField({
|
|
1157
|
+
row: 1,
|
|
1158
|
+
endpoint: 'client',
|
|
1159
|
+
params: () => ({
|
|
1160
|
+
enabled: true,
|
|
1161
|
+
projection: 'id,displayName',
|
|
1162
|
+
sortBy: 'id'
|
|
1163
|
+
}),
|
|
1164
|
+
multiple: true,
|
|
1165
|
+
triggerMode: 'chip',
|
|
1166
|
+
hide: (_, __, ctx) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients),
|
|
1167
|
+
compareWith: (o, v) => o.clientId === v.clientId,
|
|
1168
|
+
mapper: (x) => x.map(y => new FaqClient({ clientId: y.id, clientName: y.displayName })),
|
|
1169
|
+
optionTemplate: (x) => x?.clientName,
|
|
1170
|
+
triggerMapper: (x) => x?.clientName
|
|
1171
|
+
}),
|
|
1172
|
+
Display($localize `:@@projects:Projects`),
|
|
1173
|
+
__metadata("design:type", Array)
|
|
1174
|
+
], Faq.prototype, "clientJoins", void 0);
|
|
1175
|
+
__decorate([
|
|
1176
|
+
prop(),
|
|
1177
|
+
Column({
|
|
1178
|
+
index: 5,
|
|
1179
|
+
name: 'departmentJoins.department.displayName',
|
|
1180
|
+
sortBy: 'departmentJoins.Min(department.displayName)',
|
|
1181
|
+
content: (x) => x ? Utils.joinArray(x.departmentJoins?.map(y => y.department?.displayName ?? '') ?? []) : undefined,
|
|
1182
|
+
display: Grid.Lg,
|
|
1183
|
+
maxWidth: 200,
|
|
1184
|
+
hide: (_, __, ctx) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),
|
|
1185
|
+
}),
|
|
1186
|
+
FormField({
|
|
1187
|
+
row: 5,
|
|
1188
|
+
endpoint: 'department',
|
|
1189
|
+
params: (x) => ({
|
|
1190
|
+
enabled: true,
|
|
1191
|
+
projection: 'id,displayName',
|
|
1192
|
+
sortBy: 'id',
|
|
1193
|
+
clientId: x.clientJoins?.map(y => y.clientId)
|
|
1194
|
+
}),
|
|
1195
|
+
multiple: true,
|
|
1196
|
+
triggerMode: 'chip',
|
|
1197
|
+
hide: (_, __, ctx) => (!ctx.isAdmin && !ctx.isClientAdmin) || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),
|
|
1198
|
+
compareWith: (o, v) => o.departmentId === v.departmentId,
|
|
1199
|
+
mapper: (x) => x.map(y => new FaqDepartment({ departmentId: y.id, departmentName: y.displayName })),
|
|
1200
|
+
optionTemplate: (x) => x?.departmentName,
|
|
1201
|
+
triggerMapper: (x) => x?.departmentName
|
|
1202
|
+
}),
|
|
1203
|
+
Display($localize `:@@departments:Departments`),
|
|
1204
|
+
__metadata("design:type", Array)
|
|
1205
|
+
], Faq.prototype, "departmentJoins", void 0);
|
|
1206
|
+
__decorate([
|
|
1207
|
+
prop(),
|
|
1208
|
+
FormField({ row: 20 }),
|
|
1209
|
+
Display($localize `:@@ordering:Ordering`),
|
|
1210
|
+
__metadata("design:type", Number)
|
|
1211
|
+
], Faq.prototype, "ordering", void 0);
|
|
1212
|
+
__decorate([
|
|
1213
|
+
required(),
|
|
1214
|
+
FormField({
|
|
1215
|
+
row: 50,
|
|
1216
|
+
type: FormFieldType.Editor
|
|
1217
|
+
}),
|
|
1218
|
+
Display($localize `:@@answer:Answer`),
|
|
1219
|
+
__metadata("design:type", String)
|
|
1220
|
+
], Faq.prototype, "answer", void 0);
|
|
1221
|
+
__decorate([
|
|
1222
|
+
prop(),
|
|
1223
|
+
Column({
|
|
1224
|
+
index: 100,
|
|
1225
|
+
event: 'toggle'
|
|
1226
|
+
}),
|
|
1227
|
+
FormField({ row: 100 }),
|
|
1228
|
+
Display($localize `:@@enabled:Enabled`),
|
|
1229
|
+
__metadata("design:type", Boolean)
|
|
1230
|
+
], Faq.prototype, "enabled", void 0);
|
|
1231
|
+
Faq = __decorate([
|
|
1232
|
+
Api('faq'),
|
|
1233
|
+
Table({
|
|
1234
|
+
endpoint: 'faq',
|
|
1235
|
+
projection: ['id', 'createdDate', 'question', 'group', 'enabled'],
|
|
1236
|
+
duplicable: true
|
|
1237
|
+
}),
|
|
1238
|
+
__metadata("design:paramtypes", [Object])
|
|
1239
|
+
], Faq);
|
|
1240
|
+
|
|
1241
|
+
class FaqService extends GenericService {
|
|
1242
|
+
/**
|
|
1243
|
+
* Constructor
|
|
1244
|
+
*/
|
|
1245
|
+
constructor() {
|
|
1246
|
+
super('faq');
|
|
1247
|
+
}
|
|
1248
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FaqService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1249
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FaqService, providedIn: 'root' });
|
|
1250
|
+
}
|
|
1251
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FaqService, decorators: [{
|
|
1252
|
+
type: Injectable,
|
|
1253
|
+
args: [{ providedIn: 'root' }]
|
|
1254
|
+
}], ctorParameters: () => [] });
|
|
1255
|
+
|
|
1256
|
+
class FaqFormComponent extends GenericReactiveFormComponent {
|
|
1257
|
+
service;
|
|
1258
|
+
fileService;
|
|
1259
|
+
httpClient;
|
|
1260
|
+
route;
|
|
1261
|
+
changeDetectorRef;
|
|
1262
|
+
/**
|
|
1263
|
+
* Injects the CmsSettings service using Angular's `inject()` function.
|
|
1264
|
+
* This allows access to the CmsSettings instance outside of constructor-based dependency injection,
|
|
1265
|
+
* commonly used in standalone components or functional-style Angular APIs.
|
|
1266
|
+
*/
|
|
1267
|
+
settings = inject(CmsSettings);
|
|
1268
|
+
/**
|
|
1269
|
+
* Constructor
|
|
1270
|
+
*/
|
|
1271
|
+
constructor(service, fileService, httpClient, route, changeDetectorRef) {
|
|
1272
|
+
super(Faq, service, route, changeDetectorRef);
|
|
1273
|
+
this.service = service;
|
|
1274
|
+
this.fileService = fileService;
|
|
1275
|
+
this.httpClient = httpClient;
|
|
1276
|
+
this.route = route;
|
|
1277
|
+
this.changeDetectorRef = changeDetectorRef;
|
|
1278
|
+
if (this.settings?.multitenantable || this.settings?.multiClients) {
|
|
1279
|
+
this.include('ClientJoins', true);
|
|
1280
|
+
}
|
|
1281
|
+
if (this.settings?.multitenantable || this.settings?.multiDepartments) {
|
|
1282
|
+
this.include('DepartmentJoins', true);
|
|
1283
|
+
}
|
|
1284
|
+
}
|
|
1285
|
+
/**
|
|
1286
|
+
* Lifecycle hook that is called after data-bound properties
|
|
1287
|
+
* of a directive are initialized.
|
|
1288
|
+
*/
|
|
1289
|
+
ngOnInit() {
|
|
1290
|
+
/* Get some props from route snapshot */
|
|
1291
|
+
this.route.data.subscribe((data) => {
|
|
1292
|
+
this.formValidation = data.formValidation;
|
|
1293
|
+
});
|
|
1294
|
+
super.ngOnInit();
|
|
1295
|
+
}
|
|
1296
|
+
/**
|
|
1297
|
+
* Shows client joins in the form
|
|
1298
|
+
* @returns
|
|
1299
|
+
*/
|
|
1300
|
+
showClientJoins() {
|
|
1301
|
+
return (!this.canCreate || (!this.settings?.multitenantable && !this.settings?.multiClients)) || this.isClientAdmin;
|
|
1302
|
+
}
|
|
1303
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FaqFormComponent, deps: [{ token: FaqService }, { token: i2.FileService }, { token: i3.HttpClient }, { token: i3$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1304
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: FaqFormComponent, isStandalone: true, selector: "app-faq-form", usesInheritance: true, ngImport: i0, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"FAQ\" i18n-toolbarTitle=\"@@faq\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\r\n\t\t\t\t\t\t\t<ng-template vd-editor let-field=\"field\" let-formGroup=\"formGroup\">\r\n\t\t\t\t\t\t\t\t<mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\" flex>\r\n\t\t\t\t\t\t\t\t\t<mat-label>{{field.label}}</mat-label>\r\n\t\t\t\t\t\t\t\t\t<editor [formControlName]=\"field.name\" [init]=\"editorConfig\" tinyMatFormControl flex></editor>\r\n\t\t\t\t\t\t\t\t\t<mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n\t\t\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of formGroup.controls[field.name]['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t</vd-generic-form>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button *ngIf=\"isEditMode || true\" (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-audit [entity]=\"item\"> </vd-audit>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type:
|
|
1305
|
+
//-----------------------
|
|
1306
|
+
ReactiveFormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: RxReactiveFormsModule }, { kind: "directive", type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { kind: "directive", type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { kind: "directive", type: i2.RxFormControlDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["rxalpha", "rxalphaNumeric", "rxascii", "rxcompare", "rxcompose", "rxcontains", "rxcreditCard", "rxdataUri", "rxdifferent", "rxdigit", "rxemail", "rxendsWith", "rxeven", "rxextension", "rxfactor", "rxfileSize", "rxgreaterThanEqualTo", "rxgreaterThan", "rxhexColor", "rxjson", "rxlatitude", "rxlatLong", "rxleapYear", "rxlessThan", "rxlessThanEqualTo", "rxlongitude", "rxlowerCase", "rxmac", "rxmaxDate", "rxmaxLength", "rxmaxNumber", "rxminDate", "rxminLength", "rxminNumber", "rxnumeric", "rxodd", "rxpassword", "rxport", "rxprimeNumber", "rxrequired", "rxrange", "rxrule", "rxstartsWith", "rxtime", "rxupperCase", "rxurl", "rxunique", "rxnotEmpty", "rxcusip", "rxgrid", "rxdate"] }, { kind: "ngmodule", type: EditorModule }, { kind: "component", type: i7.EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "licenseKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }, { kind: "ngmodule", type:
|
|
1307
|
+
//-----------------------
|
|
1308
|
+
MatExpansionModule }, { kind: "directive", type: i8.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i8.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i8.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i8.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i8.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i8.MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i10.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: MatFormFieldEditorDirective, selector: "[tinyMatFormControl]", inputs: ["errorStateMatcher", "disabled", "id", "placeholder", "required", "value"], outputs: ["editorChange"] }, { kind: "component", type:
|
|
1309
|
+
//-----------------------
|
|
1310
|
+
VdLayoutNavComponent, selector: "vd-layout-nav", inputs: ["toolbarTitle", "editMode", "actions", "data", "context", "hideToolbar", "icon", "logo", "color", "hideToggle", "backNavigationRoute", "navigationRoute"], outputs: ["reload"] }, { kind: "component", type: VdLayoutCardOverComponent, selector: "vd-layout-card-over", inputs: ["cardTitle", "cardSubtitle", "cardWidth", "color"] }, { kind: "component", type: VdGenericFormComponent, selector: "vd-generic-form", inputs: ["formGroup", "classType", "formDefinition", "fieldGroups", "groupName", "fieldSets", "context", "debugValue", "readonly", "separatorKeysCodes"] }, { kind: "directive", type: VdEditorDirective, selector: "[vd-editor]ng-template" }, { kind: "component", type: VdAuditComponent, selector: "vd-audit", inputs: ["entity"] }] });
|
|
1311
|
+
}
|
|
1312
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FaqFormComponent, decorators: [{
|
|
1313
|
+
type: Component,
|
|
1314
|
+
args: [{ selector: 'app-faq-form', imports: [
|
|
1315
|
+
CommonModule,
|
|
1316
|
+
//-----------------------
|
|
1317
|
+
ReactiveFormsModule,
|
|
1318
|
+
RxReactiveFormsModule,
|
|
1319
|
+
EditorModule,
|
|
1320
|
+
//-----------------------
|
|
1321
|
+
MatExpansionModule,
|
|
1322
|
+
MatFormFieldModule,
|
|
1323
|
+
MatButtonModule,
|
|
1324
|
+
MatFormFieldEditorDirective,
|
|
1325
|
+
//-----------------------
|
|
1326
|
+
VdLayoutNavComponent,
|
|
1327
|
+
VdLayoutCardOverComponent,
|
|
1328
|
+
VdGenericFormComponent,
|
|
1329
|
+
VdEditorDirective,
|
|
1330
|
+
VdAuditComponent
|
|
1331
|
+
], template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"FAQ\" i18n-toolbarTitle=\"@@faq\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\r\n\t\t\t\t\t\t\t<ng-template vd-editor let-field=\"field\" let-formGroup=\"formGroup\">\r\n\t\t\t\t\t\t\t\t<mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\" flex>\r\n\t\t\t\t\t\t\t\t\t<mat-label>{{field.label}}</mat-label>\r\n\t\t\t\t\t\t\t\t\t<editor [formControlName]=\"field.name\" [init]=\"editorConfig\" tinyMatFormControl flex></editor>\r\n\t\t\t\t\t\t\t\t\t<mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n\t\t\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of formGroup.controls[field.name]['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t</vd-generic-form>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button *ngIf=\"isEditMode || true\" (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-audit [entity]=\"item\"> </vd-audit>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>" }]
|
|
1332
|
+
}], ctorParameters: () => [{ type: FaqService }, { type: i2.FileService }, { type: i3.HttpClient }, { type: i3$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }] });
|
|
1333
|
+
|
|
1001
1334
|
var TemplateType;
|
|
1002
1335
|
(function (TemplateType) {
|
|
1003
1336
|
TemplateType[TemplateType["Email"] = 0] = "Email";
|
|
@@ -1548,7 +1881,7 @@ class TemplatePreviewDialogComponent extends BaseComponent {
|
|
|
1548
1881
|
}
|
|
1549
1882
|
}
|
|
1550
1883
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: TemplatePreviewDialogComponent, deps: [{ token: TemplatePreviewService }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i3$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1551
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: TemplatePreviewDialogComponent, isStandalone: true, selector: "app-template-preview", viewQueries: [{ propertyName: "iframeRef", first: true, predicate: ["iframeRef"], descendants: true }, { propertyName: "emailModel", first: true, predicate: ["email"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div mat-dialog-title>\r\n <span i18n=\"@@templatePreview\">Template preview</span>\r\n <span flex></span>\r\n <div *ngIf=\"data.type == TemplateType.Pdf && pdfSrc ||true\">\r\n <a mat-icon-button (click)=\"download()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">download</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomIn()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_in</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomOut()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_out</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"toggleMaximize()\" class=\"maximize-button\">\r\n <mat-icon>{{ isMaximized ? 'fullscreen_exit' : 'fullscreen' }}</mat-icon>\r\n </a>\r\n </div>\r\n</div>\r\n<form #form=\"ngForm\" novalidate layout=\"column\" flex>\r\n <!-- #region Entity -->\r\n <div layout=\"row\" flex *ngIf=\"data.endpoint\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label>{{data.entityName}}</mat-label>\r\n <vd-chips [(ngModel)]=\"data.entityId\" [endpoint]=\"data.endpoint\" [params]=\"{sortBy: 'id'}\" text=\"displayName\" name=\"entityId\" #entityId=\"ngModel\" [placeholder]=\"data.entityName??''\" required flex>\r\n <ng-template vd-chip let-entity=\"chip\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n <ng-template vd-autocomplete-option let-entity=\"option\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n </vd-chips>\r\n <mat-error *ngIf=\"entityId.errors!['required']\"><span>{{data.entityName}}</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <div layout=\"column\" layout-gt-sm=\"row\" class=\"push-bottom\" flex *ngIf=\"isLoading\">\r\n <div flex layout-margin>\r\n <div class=\"push-bottom-sm\" i18n=\"@@pleaseWait\">Please Wait...</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n </div>\r\n\r\n <!-- #region PDF Content -->\r\n <mat-card *ngIf=\"data.type == TemplateType.Pdf\" flex>\r\n <pdf-viewer [src]=\"pdfSrc\" *ngIf=\"data.type == TemplateType.Pdf && pdfSrc\" [render-text]=\"true\" [zoom]=\"zoom\" [zoom-scale]=\"zoomScale\" [show-borders]=\"true\" [original-size]=\"false\" [autoresize]=\"true\"></pdf-viewer>\r\n </mat-card>\r\n <!-- #region Content -->\r\n\r\n <div *ngIf=\"data.type != TemplateType.Pdf\" layout=\"column\" class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <!-- #region Content -->\r\n <div class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <iframe #iframeRef frameborder=\"0\"></iframe>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Email-->\r\n <div layout-gt-sm=\"row\" layout=\"column\" class=\"pad-top\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label i18n=\"@@email\">Email</mat-label>\r\n <input matInput type=\"email\" name=\"email\" [(ngModel)]=\"data.email\" #email=\"ngModel\" email placeholder=\"Email\" i18n-placeholder=\"@@email\">\r\n <mat-error *ngIf=\"email.errors && email.errors!['required']\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n <mat-error *ngIf=\"!email.errors!['required'] && email.errors!['email']\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isInvalid\"> is invalid</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div mat-dialog-actions class=\"pad-left\">\r\n <button type=\"button\" mat-flat-button color=\"primary\" (click)=\"cancel()\" [autofocus]=\"true\" i18n=\"@@close\">Close</button>\r\n <button type=\"button\" mat-flat-button (click)=\"sendMail()\" [disabled]=\"data.email == undefined || !emailModel?.valid\" i18n=\"@@sendMail\">Send mail</button>\r\n </div>\r\n</form>", styles: [".content{overflow:scroll;min-height:200px;max-height:500px;border:1px solid #e5e5e5;border-radius:4px;padding:8px}iframe{width:100%;height:100%;min-height:200px;border:1px solid #e5e5e5;border-radius:4px}pdf-viewer{display:block;margin-left:-16px;width:calc(100% + 32px);height:calc(100vh - 170px);background:#dbdbdb}.mat-mdc-dialog-title{display:flex;padding:8px 12px;align-items:center}.dialog-content{width:100%;height:100%;box-sizing:border-box}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: VdChipsComponent, selector: "vd-chips", inputs: ["classType", "chips", "endpoint", "params", "projection", "paginated", "customValue", "context", "key", "searchField", "searchFields", "filters", "removable", "selectFirst", "debounce", "autocompleteCssClass", "suffixButtons"], outputs: ["initSelect", "selected", "cleared", "launch", "chipFocus"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type:
|
|
1884
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: TemplatePreviewDialogComponent, isStandalone: true, selector: "app-template-preview", viewQueries: [{ propertyName: "iframeRef", first: true, predicate: ["iframeRef"], descendants: true }, { propertyName: "emailModel", first: true, predicate: ["email"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div mat-dialog-title>\r\n <span i18n=\"@@templatePreview\">Template preview</span>\r\n <span flex></span>\r\n <div *ngIf=\"data.type == TemplateType.Pdf && pdfSrc ||true\">\r\n <a mat-icon-button (click)=\"download()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">download</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomIn()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_in</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomOut()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_out</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"toggleMaximize()\" class=\"maximize-button\">\r\n <mat-icon>{{ isMaximized ? 'fullscreen_exit' : 'fullscreen' }}</mat-icon>\r\n </a>\r\n </div>\r\n</div>\r\n<form #form=\"ngForm\" novalidate layout=\"column\" flex>\r\n <!-- #region Entity -->\r\n <div layout=\"row\" flex *ngIf=\"data.endpoint\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label>{{data.entityName}}</mat-label>\r\n <vd-chips [(ngModel)]=\"data.entityId\" [endpoint]=\"data.endpoint\" [params]=\"{sortBy: 'id'}\" text=\"displayName\" name=\"entityId\" #entityId=\"ngModel\" [placeholder]=\"data.entityName??''\" required flex>\r\n <ng-template vd-chip let-entity=\"chip\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n <ng-template vd-autocomplete-option let-entity=\"option\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n </vd-chips>\r\n <mat-error *ngIf=\"entityId.errors!['required']\"><span>{{data.entityName}}</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <div layout=\"column\" layout-gt-sm=\"row\" class=\"push-bottom\" flex *ngIf=\"isLoading\">\r\n <div flex layout-margin>\r\n <div class=\"push-bottom-sm\" i18n=\"@@pleaseWait\">Please Wait...</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n </div>\r\n\r\n <!-- #region PDF Content -->\r\n <mat-card *ngIf=\"data.type == TemplateType.Pdf\" flex>\r\n <pdf-viewer [src]=\"pdfSrc\" *ngIf=\"data.type == TemplateType.Pdf && pdfSrc\" [render-text]=\"true\" [zoom]=\"zoom\" [zoom-scale]=\"zoomScale\" [show-borders]=\"true\" [original-size]=\"false\" [autoresize]=\"true\"></pdf-viewer>\r\n </mat-card>\r\n <!-- #region Content -->\r\n\r\n <div *ngIf=\"data.type != TemplateType.Pdf\" layout=\"column\" class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <!-- #region Content -->\r\n <div class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <iframe #iframeRef frameborder=\"0\"></iframe>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Email-->\r\n <div layout-gt-sm=\"row\" layout=\"column\" class=\"pad-top\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label i18n=\"@@email\">Email</mat-label>\r\n <input matInput type=\"email\" name=\"email\" [(ngModel)]=\"data.email\" #email=\"ngModel\" email placeholder=\"Email\" i18n-placeholder=\"@@email\">\r\n <mat-error *ngIf=\"email.errors && email.errors!['required']\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n <mat-error *ngIf=\"!email.errors!['required'] && email.errors!['email']\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isInvalid\"> is invalid</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div mat-dialog-actions class=\"pad-left\">\r\n <button type=\"button\" mat-flat-button color=\"primary\" (click)=\"cancel()\" [autofocus]=\"true\" i18n=\"@@close\">Close</button>\r\n <button type=\"button\" mat-flat-button (click)=\"sendMail()\" [disabled]=\"data.email == undefined || !emailModel?.valid\" i18n=\"@@sendMail\">Send mail</button>\r\n </div>\r\n</form>", styles: [".content{overflow:scroll;min-height:200px;max-height:500px;border:1px solid #e5e5e5;border-radius:4px;padding:8px}iframe{width:100%;height:100%;min-height:200px;border:1px solid #e5e5e5;border-radius:4px}pdf-viewer{display:block;margin-left:-16px;width:calc(100% + 32px);height:calc(100vh - 170px);background:#dbdbdb}.mat-mdc-dialog-title{display:flex;padding:8px 12px;align-items:center}.dialog-content{width:100%;height:100%;box-sizing:border-box}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i6$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: VdChipsComponent, selector: "vd-chips", inputs: ["classType", "chips", "endpoint", "params", "projection", "paginated", "customValue", "context", "key", "searchField", "searchFields", "filters", "removable", "selectFirst", "debounce", "autocompleteCssClass", "suffixButtons"], outputs: ["initSelect", "selected", "cleared", "launch", "chipFocus"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: PdfViewerModule }, { kind: "component", type: i8$1.PdfViewerComponent, selector: "pdf-viewer", inputs: ["src", "c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }] });
|
|
1552
1885
|
}
|
|
1553
1886
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: TemplatePreviewDialogComponent, decorators: [{
|
|
1554
1887
|
type: Component,
|
|
@@ -1724,7 +2057,7 @@ class TemplateFormComponent extends GenericReactiveFormComponent {
|
|
|
1724
2057
|
});
|
|
1725
2058
|
}
|
|
1726
2059
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: TemplateFormComponent, deps: [{ token: TemplateService }, { token: TemplateDocService }, { token: i2.FileService }, { token: i4.MatDialog }, { token: i3$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1727
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: TemplateFormComponent, isStandalone: true, selector: "app-template-form", usesInheritance: true, ngImport: i0, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [fieldSets]=\"['details']\" [context]=\"this\"></vd-generic-form>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Content -->\r\n\t\t\t\t<mat-expansion-panel id=\"content\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@content\">Content</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<div layout-margin>\r\n\t\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"showPreview()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Content -->\r\n\t\t\t\t<mat-expansion-panel id=\"testData\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@testData\">Test Data</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<div layout-margin>\r\n\t\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"showPreview()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-audit [entity]=\"item\"> </vd-audit>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>", styles: ["codemirror{width:100%}.CodeMirror{height:500px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type:
|
|
2060
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: TemplateFormComponent, isStandalone: true, selector: "app-template-form", usesInheritance: true, ngImport: i0, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [fieldSets]=\"['details']\" [context]=\"this\"></vd-generic-form>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Content -->\r\n\t\t\t\t<mat-expansion-panel id=\"content\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@content\">Content</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<div layout-margin>\r\n\t\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"showPreview()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Content -->\r\n\t\t\t\t<mat-expansion-panel id=\"testData\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@testData\">Test Data</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<div layout-margin>\r\n\t\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"showPreview()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-audit [entity]=\"item\"> </vd-audit>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>", styles: ["codemirror{width:100%}.CodeMirror{height:500px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: RxReactiveFormsModule }, { kind: "directive", type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { kind: "directive", type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { kind: "directive", type: i2.RxFormControlDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["rxalpha", "rxalphaNumeric", "rxascii", "rxcompare", "rxcompose", "rxcontains", "rxcreditCard", "rxdataUri", "rxdifferent", "rxdigit", "rxemail", "rxendsWith", "rxeven", "rxextension", "rxfactor", "rxfileSize", "rxgreaterThanEqualTo", "rxgreaterThan", "rxhexColor", "rxjson", "rxlatitude", "rxlatLong", "rxleapYear", "rxlessThan", "rxlessThanEqualTo", "rxlongitude", "rxlowerCase", "rxmac", "rxmaxDate", "rxmaxLength", "rxmaxNumber", "rxminDate", "rxminLength", "rxminNumber", "rxnumeric", "rxodd", "rxpassword", "rxport", "rxprimeNumber", "rxrequired", "rxrange", "rxrule", "rxstartsWith", "rxtime", "rxupperCase", "rxurl", "rxunique", "rxnotEmpty", "rxcusip", "rxgrid", "rxdate"] }, { kind: "ngmodule", type: CodemirrorModule }, { kind: "component", type: i8$2.CodemirrorComponent, selector: "ngx-codemirror", inputs: ["className", "name", "autoFocus", "options", "preserveScrollPosition"], outputs: ["cursorActivity", "focusChange", "scroll", "drop", "codeMirrorLoaded"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i8.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i8.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i8.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i8.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i8.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i8.MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i10.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: VdLayoutNavComponent, selector: "vd-layout-nav", inputs: ["toolbarTitle", "editMode", "actions", "data", "context", "hideToolbar", "icon", "logo", "color", "hideToggle", "backNavigationRoute", "navigationRoute"], outputs: ["reload"] }, { kind: "component", type: VdLayoutCardOverComponent, selector: "vd-layout-card-over", inputs: ["cardTitle", "cardSubtitle", "cardWidth", "color"] }, { kind: "component", type: VdGenericFormComponent, selector: "vd-generic-form", inputs: ["formGroup", "classType", "formDefinition", "fieldGroups", "groupName", "fieldSets", "context", "debugValue", "readonly", "separatorKeysCodes"] }, { kind: "component", type: VdAuditComponent, selector: "vd-audit", inputs: ["entity"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
1728
2061
|
}
|
|
1729
2062
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: TemplateFormComponent, decorators: [{
|
|
1730
2063
|
type: Component,
|
|
@@ -1940,239 +2273,6 @@ ContentVariable = __decorate([
|
|
|
1940
2273
|
})
|
|
1941
2274
|
], ContentVariable);
|
|
1942
2275
|
|
|
1943
|
-
/**
|
|
1944
|
-
* @class
|
|
1945
|
-
*/
|
|
1946
|
-
class FaqClient {
|
|
1947
|
-
/**
|
|
1948
|
-
* @property
|
|
1949
|
-
*/
|
|
1950
|
-
faqId;
|
|
1951
|
-
/**
|
|
1952
|
-
* @property
|
|
1953
|
-
*/
|
|
1954
|
-
clientId;
|
|
1955
|
-
/**
|
|
1956
|
-
* @property
|
|
1957
|
-
*/
|
|
1958
|
-
client;
|
|
1959
|
-
/**
|
|
1960
|
-
* @property
|
|
1961
|
-
*/
|
|
1962
|
-
clientName;
|
|
1963
|
-
/**
|
|
1964
|
-
* Constructor
|
|
1965
|
-
* @param init
|
|
1966
|
-
*/
|
|
1967
|
-
constructor(init) {
|
|
1968
|
-
Object.assign(this, init);
|
|
1969
|
-
}
|
|
1970
|
-
}
|
|
1971
|
-
__decorate([
|
|
1972
|
-
prop(),
|
|
1973
|
-
__metadata("design:type", Number)
|
|
1974
|
-
], FaqClient.prototype, "faqId", void 0);
|
|
1975
|
-
__decorate([
|
|
1976
|
-
required(),
|
|
1977
|
-
__metadata("design:type", Number)
|
|
1978
|
-
], FaqClient.prototype, "clientId", void 0);
|
|
1979
|
-
|
|
1980
|
-
/**
|
|
1981
|
-
* @class
|
|
1982
|
-
*/
|
|
1983
|
-
class FaqDepartment {
|
|
1984
|
-
/**
|
|
1985
|
-
* @property
|
|
1986
|
-
*/
|
|
1987
|
-
faqId;
|
|
1988
|
-
/**
|
|
1989
|
-
* @property
|
|
1990
|
-
*/
|
|
1991
|
-
departmentId;
|
|
1992
|
-
/**
|
|
1993
|
-
* @property
|
|
1994
|
-
*/
|
|
1995
|
-
department;
|
|
1996
|
-
/**
|
|
1997
|
-
* @property
|
|
1998
|
-
*/
|
|
1999
|
-
departmentName;
|
|
2000
|
-
/**
|
|
2001
|
-
* Constructor
|
|
2002
|
-
* @param init
|
|
2003
|
-
*/
|
|
2004
|
-
constructor(init) {
|
|
2005
|
-
Object.assign(this, init);
|
|
2006
|
-
}
|
|
2007
|
-
}
|
|
2008
|
-
__decorate([
|
|
2009
|
-
prop(),
|
|
2010
|
-
__metadata("design:type", Number)
|
|
2011
|
-
], FaqDepartment.prototype, "faqId", void 0);
|
|
2012
|
-
__decorate([
|
|
2013
|
-
required(),
|
|
2014
|
-
__metadata("design:type", Number)
|
|
2015
|
-
], FaqDepartment.prototype, "departmentId", void 0);
|
|
2016
|
-
|
|
2017
|
-
let Faq = class Faq extends AuditEntity {
|
|
2018
|
-
/**
|
|
2019
|
-
* @property
|
|
2020
|
-
*/
|
|
2021
|
-
question;
|
|
2022
|
-
/**
|
|
2023
|
-
* @property
|
|
2024
|
-
*/
|
|
2025
|
-
group;
|
|
2026
|
-
/**
|
|
2027
|
-
* @property
|
|
2028
|
-
*/
|
|
2029
|
-
clientJoins;
|
|
2030
|
-
/**
|
|
2031
|
-
* @property
|
|
2032
|
-
*/
|
|
2033
|
-
departmentJoins;
|
|
2034
|
-
/**
|
|
2035
|
-
* @property
|
|
2036
|
-
*/
|
|
2037
|
-
ordering;
|
|
2038
|
-
/**
|
|
2039
|
-
* @property
|
|
2040
|
-
*/
|
|
2041
|
-
answer;
|
|
2042
|
-
/**
|
|
2043
|
-
* @property
|
|
2044
|
-
*/
|
|
2045
|
-
enabled;
|
|
2046
|
-
/**
|
|
2047
|
-
* constructor
|
|
2048
|
-
* @param init
|
|
2049
|
-
*/
|
|
2050
|
-
constructor(init) {
|
|
2051
|
-
super(init);
|
|
2052
|
-
Object.assign(this, init);
|
|
2053
|
-
}
|
|
2054
|
-
};
|
|
2055
|
-
__decorate([
|
|
2056
|
-
required(),
|
|
2057
|
-
Column({
|
|
2058
|
-
index: 1,
|
|
2059
|
-
contentLength: 30
|
|
2060
|
-
}),
|
|
2061
|
-
FormField({ row: 4 }),
|
|
2062
|
-
Display($localize `:@@question:Question`),
|
|
2063
|
-
__metadata("design:type", String)
|
|
2064
|
-
], Faq.prototype, "question", void 0);
|
|
2065
|
-
__decorate([
|
|
2066
|
-
required(),
|
|
2067
|
-
Column({
|
|
2068
|
-
index: 2,
|
|
2069
|
-
maxWidth: 160,
|
|
2070
|
-
display: Grid.Lg
|
|
2071
|
-
}),
|
|
2072
|
-
FormField({
|
|
2073
|
-
row: 6,
|
|
2074
|
-
type: FormFieldType.Autocomplete
|
|
2075
|
-
}),
|
|
2076
|
-
Display($localize `:@@group:Group`),
|
|
2077
|
-
__metadata("design:type", String)
|
|
2078
|
-
], Faq.prototype, "group", void 0);
|
|
2079
|
-
__decorate([
|
|
2080
|
-
required({ conditionalExpression: (x) => true }),
|
|
2081
|
-
Column({
|
|
2082
|
-
index: 5,
|
|
2083
|
-
name: 'clientJoins.client.displayName',
|
|
2084
|
-
sortBy: 'clientJoins.Min(client.displayName)',
|
|
2085
|
-
content: (x) => x ? Utils.joinArray(x.clientJoins?.map(y => y.client?.displayName ?? '') ?? []) : undefined,
|
|
2086
|
-
display: Grid.Lg,
|
|
2087
|
-
maxWidth: 200,
|
|
2088
|
-
hide: (_, __, ctx) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients),
|
|
2089
|
-
}),
|
|
2090
|
-
FormField({
|
|
2091
|
-
row: 1,
|
|
2092
|
-
endpoint: 'client',
|
|
2093
|
-
params: () => {
|
|
2094
|
-
return {
|
|
2095
|
-
enabled: true,
|
|
2096
|
-
projection: 'id,displayName',
|
|
2097
|
-
sortBy: 'id'
|
|
2098
|
-
};
|
|
2099
|
-
},
|
|
2100
|
-
multiple: true,
|
|
2101
|
-
triggerMode: 'chip',
|
|
2102
|
-
hide: (_, __, ctx) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients),
|
|
2103
|
-
compareWith: (o, v) => o.clientId === v.clientId,
|
|
2104
|
-
mapper: (x) => x.map(y => new FaqClient({ clientId: y.id, clientName: y.displayName })),
|
|
2105
|
-
optionTemplate: (x) => x?.clientName,
|
|
2106
|
-
triggerMapper: (x) => x?.clientName
|
|
2107
|
-
}),
|
|
2108
|
-
Display($localize `:@@projects:Projects`),
|
|
2109
|
-
__metadata("design:type", Array)
|
|
2110
|
-
], Faq.prototype, "clientJoins", void 0);
|
|
2111
|
-
__decorate([
|
|
2112
|
-
prop(),
|
|
2113
|
-
Column({
|
|
2114
|
-
index: 5,
|
|
2115
|
-
name: 'departmentJoins.department.displayName',
|
|
2116
|
-
sortBy: 'departmentJoins.Min(department.displayName)',
|
|
2117
|
-
content: (x) => x ? Utils.joinArray(x.departmentJoins?.map(y => y.department?.displayName ?? '') ?? []) : undefined,
|
|
2118
|
-
display: Grid.Lg,
|
|
2119
|
-
maxWidth: 200,
|
|
2120
|
-
hide: (_, __, ctx) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),
|
|
2121
|
-
}),
|
|
2122
|
-
FormField({
|
|
2123
|
-
row: 2,
|
|
2124
|
-
endpoint: 'department',
|
|
2125
|
-
params: (x) => {
|
|
2126
|
-
return {
|
|
2127
|
-
enabled: true,
|
|
2128
|
-
projection: 'id,displayName',
|
|
2129
|
-
sortBy: 'id',
|
|
2130
|
-
clientId: x.clientJoins?.map(y => y.clientId)
|
|
2131
|
-
};
|
|
2132
|
-
},
|
|
2133
|
-
multiple: true,
|
|
2134
|
-
triggerMode: 'chip',
|
|
2135
|
-
hide: (_, __, ctx) => (!ctx.isAdmin && !ctx.isClientAdmin) || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),
|
|
2136
|
-
compareWith: (o, v) => o.departmentId === v.departmentId,
|
|
2137
|
-
mapper: (x) => x.map(y => new FaqDepartment({ departmentId: y.id, departmentName: y.displayName })),
|
|
2138
|
-
optionTemplate: (x) => x?.departmentName,
|
|
2139
|
-
triggerMapper: (x) => x?.departmentName
|
|
2140
|
-
}),
|
|
2141
|
-
Display($localize `:@@departments:Departments`),
|
|
2142
|
-
__metadata("design:type", Array)
|
|
2143
|
-
], Faq.prototype, "departmentJoins", void 0);
|
|
2144
|
-
__decorate([
|
|
2145
|
-
prop(),
|
|
2146
|
-
FormField({ row: 6 }),
|
|
2147
|
-
Display($localize `:@@ordering:Ordering`),
|
|
2148
|
-
__metadata("design:type", Number)
|
|
2149
|
-
], Faq.prototype, "ordering", void 0);
|
|
2150
|
-
__decorate([
|
|
2151
|
-
required(),
|
|
2152
|
-
FormField({ row: 5, type: FormFieldType.Editor }),
|
|
2153
|
-
Display($localize `:@@answer:Answer`),
|
|
2154
|
-
__metadata("design:type", String)
|
|
2155
|
-
], Faq.prototype, "answer", void 0);
|
|
2156
|
-
__decorate([
|
|
2157
|
-
prop(),
|
|
2158
|
-
Column({
|
|
2159
|
-
index: 20,
|
|
2160
|
-
event: 'toggle'
|
|
2161
|
-
}),
|
|
2162
|
-
FormField({ row: 10 }),
|
|
2163
|
-
Display($localize `:@@enabled:Enabled`),
|
|
2164
|
-
__metadata("design:type", Boolean)
|
|
2165
|
-
], Faq.prototype, "enabled", void 0);
|
|
2166
|
-
Faq = __decorate([
|
|
2167
|
-
Api('faq'),
|
|
2168
|
-
Table({
|
|
2169
|
-
endpoint: 'faq',
|
|
2170
|
-
projection: ['id', 'createdDate', 'question', 'group', 'enabled'],
|
|
2171
|
-
duplicable: true
|
|
2172
|
-
}),
|
|
2173
|
-
__metadata("design:paramtypes", [Object])
|
|
2174
|
-
], Faq);
|
|
2175
|
-
|
|
2176
2276
|
let Slider = class Slider extends AuditEntity {
|
|
2177
2277
|
/**
|
|
2178
2278
|
* @property Slider name.
|
|
@@ -2532,21 +2632,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImpor
|
|
|
2532
2632
|
|
|
2533
2633
|
/**
|
|
2534
2634
|
* Settings resolve service
|
|
2635
|
+
*
|
|
2636
|
+
* This resolver provides the CMS configuration settings for routes that depend on them.
|
|
2535
2637
|
*/
|
|
2536
2638
|
class SettingsResolve {
|
|
2639
|
+
cmsSettings;
|
|
2640
|
+
/**
|
|
2641
|
+
* Constructor injecting the CMS settings provided via Angular DI.
|
|
2642
|
+
*
|
|
2643
|
+
* @param cmsSettings - The CMS settings instance injected from the DI system.
|
|
2644
|
+
*/
|
|
2645
|
+
constructor(cmsSettings) {
|
|
2646
|
+
this.cmsSettings = cmsSettings;
|
|
2647
|
+
}
|
|
2537
2648
|
/**
|
|
2538
|
-
* Resolves settings
|
|
2649
|
+
* Resolves settings for a route.
|
|
2650
|
+
*
|
|
2651
|
+
* @param route - The activated route snapshot.
|
|
2652
|
+
* @returns An observable emitting the CMS settings.
|
|
2539
2653
|
*/
|
|
2540
2654
|
resolve(route) {
|
|
2541
|
-
|
|
2542
|
-
return of(
|
|
2655
|
+
/** Return the injected settings as an observable */
|
|
2656
|
+
return of(this.cmsSettings);
|
|
2543
2657
|
}
|
|
2544
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SettingsResolve, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2658
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SettingsResolve, deps: [{ token: CmsSettings }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2545
2659
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SettingsResolve });
|
|
2546
2660
|
}
|
|
2547
2661
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: SettingsResolve, decorators: [{
|
|
2548
2662
|
type: Injectable
|
|
2549
|
-
}]
|
|
2663
|
+
}], ctorParameters: () => [{ type: CmsSettings, decorators: [{
|
|
2664
|
+
type: Inject,
|
|
2665
|
+
args: [CmsSettings]
|
|
2666
|
+
}] }] });
|
|
2550
2667
|
|
|
2551
2668
|
const ListResolve = {
|
|
2552
2669
|
settings: SettingsResolve,
|
|
@@ -2577,8 +2694,8 @@ const routes = [
|
|
|
2577
2694
|
{ path: 'templates/edit/:id', component: TemplateFormComponent, resolve: FormResolve },
|
|
2578
2695
|
{ path: 'templates/add', component: TemplateFormComponent, resolve: FormResolve },
|
|
2579
2696
|
{ path: 'faqs', component: VdDynamicListComponent, data: { classType: Faq }, resolve: ListResolve },
|
|
2580
|
-
{ path: 'faqs/edit/:id', component:
|
|
2581
|
-
{ path: 'faqs/add', component:
|
|
2697
|
+
{ path: 'faqs/edit/:id', component: FaqFormComponent, resolve: FormResolve },
|
|
2698
|
+
{ path: 'faqs/add', component: FaqFormComponent, resolve: FormResolve },
|
|
2582
2699
|
{ path: 'sliders', component: VdDynamicListComponent, data: { classType: Slider }, resolve: ListResolve },
|
|
2583
2700
|
{ path: 'sliders/edit/:id', component: VdDynamicFormComponent, data: { classType: Slider, subtitle: $localize `:@@slider:Slider` }, resolve: FormResolve },
|
|
2584
2701
|
{ path: 'sliders/add', component: VdDynamicFormComponent, data: { classType: Slider, query: { clientId: AuthHelper.user.clientId }, subtitle: $localize `:@@slider:Slider` }, resolve: FormResolve },
|
|
@@ -2657,21 +2774,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImpor
|
|
|
2657
2774
|
args: [{ providedIn: 'root' }]
|
|
2658
2775
|
}], ctorParameters: () => [] });
|
|
2659
2776
|
|
|
2660
|
-
class FaqService extends GenericService {
|
|
2661
|
-
/**
|
|
2662
|
-
* Constructor
|
|
2663
|
-
*/
|
|
2664
|
-
constructor() {
|
|
2665
|
-
super('faq');
|
|
2666
|
-
}
|
|
2667
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FaqService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2668
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FaqService, providedIn: 'root' });
|
|
2669
|
-
}
|
|
2670
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: FaqService, decorators: [{
|
|
2671
|
-
type: Injectable,
|
|
2672
|
-
args: [{ providedIn: 'root' }]
|
|
2673
|
-
}], ctorParameters: () => [] });
|
|
2674
|
-
|
|
2675
2777
|
class SliderService extends GenericService {
|
|
2676
2778
|
/**
|
|
2677
2779
|
* Constructor
|