@messaia/cdk-cms 20.0.8 → 20.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/messaia-cdk-cms.mjs +432 -330
- package/fesm2022/messaia-cdk-cms.mjs.map +1 -1
- package/index.d.ts +33 -14
- 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,
|
|
@@ -445,10 +446,10 @@ class ContentService extends GenericService {
|
|
|
445
446
|
isAliasAvailable(item) {
|
|
446
447
|
return this.create(item, '/isAliasAvailable').pipe(map((x) => x.value));
|
|
447
448
|
}
|
|
448
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
449
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0
|
|
449
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
450
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ContentService, providedIn: 'root' });
|
|
450
451
|
}
|
|
451
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
452
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ContentService, decorators: [{
|
|
452
453
|
type: Injectable,
|
|
453
454
|
args: [{ providedIn: 'root' }]
|
|
454
455
|
}], ctorParameters: () => [] });
|
|
@@ -700,16 +701,16 @@ class ContentFormComponent extends GenericReactiveFormComponent {
|
|
|
700
701
|
this.routeSubscription.unsubscribe();
|
|
701
702
|
}
|
|
702
703
|
}
|
|
703
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
704
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0
|
|
704
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ContentFormComponent, deps: [{ token: ContentService }, { token: i2.FileService }, { token: i3.HttpClient }, { token: i3$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
705
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", 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
|
//-----------------------
|
|
710
711
|
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"] }] });
|
|
711
712
|
}
|
|
712
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
713
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ContentFormComponent, decorators: [{
|
|
713
714
|
type: Component,
|
|
714
715
|
args: [{ selector: 'app-content-form', imports: [
|
|
715
716
|
CommonModule,
|
|
@@ -840,10 +841,10 @@ class DocumentService extends DocumentGenericService {
|
|
|
840
841
|
sendMail(id) {
|
|
841
842
|
return this.update(`sendMail/${id}`, null);
|
|
842
843
|
}
|
|
843
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
844
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0
|
|
844
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: DocumentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
845
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: DocumentService, providedIn: 'root' });
|
|
845
846
|
}
|
|
846
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
847
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: DocumentService, decorators: [{
|
|
847
848
|
type: Injectable,
|
|
848
849
|
args: [{ providedIn: 'root' }]
|
|
849
850
|
}], ctorParameters: () => [] });
|
|
@@ -944,10 +945,10 @@ class DocumentFormBaseComponent extends GenericReactiveFormComponent {
|
|
|
944
945
|
departmentId: this.currentUser?.departmentId
|
|
945
946
|
}), this.data || {}));
|
|
946
947
|
}
|
|
947
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
948
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.0
|
|
948
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: DocumentFormBaseComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
|
|
949
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.0", type: DocumentFormBaseComponent, isStandalone: true, usesInheritance: true, ngImport: i0 });
|
|
949
950
|
}
|
|
950
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
951
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: DocumentFormBaseComponent, decorators: [{
|
|
951
952
|
type: Directive
|
|
952
953
|
}], ctorParameters: () => [{ type: i0.Type }, { type: undefined }, { type: i2.FileService }, { type: i4.MatDialogRef }, { type: i3$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: undefined }] });
|
|
953
954
|
|
|
@@ -976,10 +977,10 @@ class DocumentDialogComponent extends DocumentFormBaseComponent {
|
|
|
976
977
|
onBeforeFormBuild() {
|
|
977
978
|
this.item.isPublic = true;
|
|
978
979
|
}
|
|
979
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
980
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0
|
|
980
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", 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 });
|
|
981
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", 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
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
983
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: DocumentDialogComponent, decorators: [{
|
|
983
984
|
type: Component,
|
|
984
985
|
args: [{
|
|
985
986
|
selector: 'document-dialog',
|
|
@@ -990,13 +991,345 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImpor
|
|
|
990
991
|
MatDialogModule,
|
|
991
992
|
MatFormFieldModule,
|
|
992
993
|
VdGenericFormComponent,
|
|
993
|
-
VdFileInputComponent
|
|
994
|
-
]
|
|
995
|
-
}]
|
|
996
|
-
}], ctorParameters: () => [{ type: DocumentService }, { type: i2.FileService }, { type: i3$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i4.MatDialogRef }, { type: Document, decorators: [{
|
|
997
|
-
type: Inject,
|
|
998
|
-
args: [MAT_DIALOG_DATA]
|
|
999
|
-
}] }] });
|
|
994
|
+
VdFileInputComponent
|
|
995
|
+
]
|
|
996
|
+
}]
|
|
997
|
+
}], ctorParameters: () => [{ type: DocumentService }, { type: i2.FileService }, { type: i3$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i4.MatDialogRef }, { type: Document, decorators: [{
|
|
998
|
+
type: Inject,
|
|
999
|
+
args: [MAT_DIALOG_DATA]
|
|
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.3.0", ngImport: i0, type: FaqService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1249
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: FaqService, providedIn: 'root' });
|
|
1250
|
+
}
|
|
1251
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", 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.3.0", 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.3.0", 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.3.0", 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 }] });
|
|
1000
1333
|
|
|
1001
1334
|
var TemplateType;
|
|
1002
1335
|
(function (TemplateType) {
|
|
@@ -1350,10 +1683,10 @@ class TemplateService extends GenericService {
|
|
|
1350
1683
|
constructor() {
|
|
1351
1684
|
super('template');
|
|
1352
1685
|
}
|
|
1353
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
1354
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0
|
|
1686
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TemplateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1687
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TemplateService, providedIn: 'root' });
|
|
1355
1688
|
}
|
|
1356
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
1689
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TemplateService, decorators: [{
|
|
1357
1690
|
type: Injectable,
|
|
1358
1691
|
args: [{ providedIn: 'root' }]
|
|
1359
1692
|
}], ctorParameters: () => [] });
|
|
@@ -1365,10 +1698,10 @@ class TemplateDocService extends GenericService {
|
|
|
1365
1698
|
constructor() {
|
|
1366
1699
|
super('templateDoc');
|
|
1367
1700
|
}
|
|
1368
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
1369
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0
|
|
1701
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TemplateDocService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1702
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TemplateDocService, providedIn: 'root' });
|
|
1370
1703
|
}
|
|
1371
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
1704
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TemplateDocService, decorators: [{
|
|
1372
1705
|
type: Injectable,
|
|
1373
1706
|
args: [{ providedIn: 'root' }]
|
|
1374
1707
|
}], ctorParameters: () => [] });
|
|
@@ -1380,10 +1713,10 @@ class TemplatePreviewService extends GenericService {
|
|
|
1380
1713
|
constructor() {
|
|
1381
1714
|
super('templatePreview');
|
|
1382
1715
|
}
|
|
1383
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
1384
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0
|
|
1716
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TemplatePreviewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1717
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TemplatePreviewService, providedIn: 'root' });
|
|
1385
1718
|
}
|
|
1386
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
1719
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TemplatePreviewService, decorators: [{
|
|
1387
1720
|
type: Injectable,
|
|
1388
1721
|
args: [{ providedIn: 'root' }]
|
|
1389
1722
|
}], ctorParameters: () => [] });
|
|
@@ -1547,10 +1880,10 @@ class TemplatePreviewDialogComponent extends BaseComponent {
|
|
|
1547
1880
|
this.dialogRef.removePanelClass('full-screen');
|
|
1548
1881
|
}
|
|
1549
1882
|
}
|
|
1550
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
1551
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0
|
|
1883
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", 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 });
|
|
1884
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", 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
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
1886
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TemplatePreviewDialogComponent, decorators: [{
|
|
1554
1887
|
type: Component,
|
|
1555
1888
|
args: [{ selector: 'app-template-preview', imports: [
|
|
1556
1889
|
CommonModule,
|
|
@@ -1723,10 +2056,10 @@ class TemplateFormComponent extends GenericReactiveFormComponent {
|
|
|
1723
2056
|
this.form.markAllAsTouched();
|
|
1724
2057
|
});
|
|
1725
2058
|
}
|
|
1726
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
1727
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0
|
|
2059
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", 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 });
|
|
2060
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.0", 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
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
2062
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: TemplateFormComponent, decorators: [{
|
|
1730
2063
|
type: Component,
|
|
1731
2064
|
args: [{ selector: 'app-template-form', encapsulation: ViewEncapsulation.None, imports: [
|
|
1732
2065
|
CommonModule,
|
|
@@ -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.
|
|
@@ -2360,10 +2460,10 @@ class DocumentListProjectionResolve {
|
|
|
2360
2460
|
return projection;
|
|
2361
2461
|
}));
|
|
2362
2462
|
}
|
|
2363
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
2364
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0
|
|
2463
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: DocumentListProjectionResolve, deps: [{ token: i1.OidcSecurityService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2464
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: DocumentListProjectionResolve });
|
|
2365
2465
|
}
|
|
2366
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
2466
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: DocumentListProjectionResolve, decorators: [{
|
|
2367
2467
|
type: Injectable
|
|
2368
2468
|
}], ctorParameters: () => [{ type: i1.OidcSecurityService }] });
|
|
2369
2469
|
|
|
@@ -2383,10 +2483,10 @@ class ExcludedColumnsResolve {
|
|
|
2383
2483
|
resolve() {
|
|
2384
2484
|
return of(this.settings?.multitenantable ? [] : ['client.displayName']);
|
|
2385
2485
|
}
|
|
2386
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
2387
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0
|
|
2486
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ExcludedColumnsResolve, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2487
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ExcludedColumnsResolve });
|
|
2388
2488
|
}
|
|
2389
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
2489
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ExcludedColumnsResolve, decorators: [{
|
|
2390
2490
|
type: Injectable
|
|
2391
2491
|
}] });
|
|
2392
2492
|
|
|
@@ -2406,10 +2506,10 @@ class ExcludedFieldsResolve {
|
|
|
2406
2506
|
resolve() {
|
|
2407
2507
|
return of(this.settings?.multitenantable ? [] : ['clientId']);
|
|
2408
2508
|
}
|
|
2409
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
2410
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0
|
|
2509
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ExcludedFieldsResolve, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2510
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ExcludedFieldsResolve });
|
|
2411
2511
|
}
|
|
2412
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
2512
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ExcludedFieldsResolve, decorators: [{
|
|
2413
2513
|
type: Injectable
|
|
2414
2514
|
}] });
|
|
2415
2515
|
|
|
@@ -2453,10 +2553,10 @@ class FormIncludesResolve {
|
|
|
2453
2553
|
return includes;
|
|
2454
2554
|
}));
|
|
2455
2555
|
}
|
|
2456
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
2457
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0
|
|
2556
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: FormIncludesResolve, deps: [{ token: i1.OidcSecurityService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2557
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: FormIncludesResolve });
|
|
2458
2558
|
}
|
|
2459
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
2559
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: FormIncludesResolve, decorators: [{
|
|
2460
2560
|
type: Injectable
|
|
2461
2561
|
}], ctorParameters: () => [{ type: i1.OidcSecurityService }] });
|
|
2462
2562
|
|
|
@@ -2476,10 +2576,10 @@ class FormValidationResolve {
|
|
|
2476
2576
|
resolve() {
|
|
2477
2577
|
return of(this.settings?.multitenantable ? { clientId: { required: true } } : {});
|
|
2478
2578
|
}
|
|
2479
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
2480
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0
|
|
2579
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: FormValidationResolve, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2580
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: FormValidationResolve });
|
|
2481
2581
|
}
|
|
2482
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
2582
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: FormValidationResolve, decorators: [{
|
|
2483
2583
|
type: Injectable
|
|
2484
2584
|
}] });
|
|
2485
2585
|
|
|
@@ -2523,30 +2623,47 @@ class ListProjectionResolve {
|
|
|
2523
2623
|
return projection;
|
|
2524
2624
|
}));
|
|
2525
2625
|
}
|
|
2526
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
2527
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0
|
|
2626
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ListProjectionResolve, deps: [{ token: i1.OidcSecurityService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2627
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ListProjectionResolve });
|
|
2528
2628
|
}
|
|
2529
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
2629
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ListProjectionResolve, decorators: [{
|
|
2530
2630
|
type: Injectable
|
|
2531
2631
|
}], ctorParameters: () => [{ type: i1.OidcSecurityService }] });
|
|
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
|
|
2545
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0
|
|
2658
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SettingsResolve, deps: [{ token: CmsSettings }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2659
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SettingsResolve });
|
|
2546
2660
|
}
|
|
2547
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
2661
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", 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,17 +2694,17 @@ 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 },
|
|
2585
2702
|
{ path: 'documents', component: VdDynamicListComponent, data: { classType: Document, addDialogType: DocumentDialogComponent, query: { type: DocumentType.Document } }, resolve: DocsListResolve },
|
|
2586
2703
|
];
|
|
2587
2704
|
class VdCmsRoutingModule {
|
|
2588
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
2589
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0
|
|
2590
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0
|
|
2705
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: VdCmsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2706
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: VdCmsRoutingModule, imports: [i3$1.RouterModule], exports: [RouterModule] });
|
|
2707
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: VdCmsRoutingModule, providers: [
|
|
2591
2708
|
SettingsResolve,
|
|
2592
2709
|
ListProjectionResolve,
|
|
2593
2710
|
DocumentListProjectionResolve,
|
|
@@ -2597,7 +2714,7 @@ class VdCmsRoutingModule {
|
|
|
2597
2714
|
FormValidationResolve
|
|
2598
2715
|
], imports: [RouterModule.forChild(routes), RouterModule] });
|
|
2599
2716
|
}
|
|
2600
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
2717
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: VdCmsRoutingModule, decorators: [{
|
|
2601
2718
|
type: NgModule,
|
|
2602
2719
|
args: [{
|
|
2603
2720
|
imports: [RouterModule.forChild(routes)],
|
|
@@ -2615,11 +2732,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImpor
|
|
|
2615
2732
|
}] });
|
|
2616
2733
|
|
|
2617
2734
|
class VdCmsModule {
|
|
2618
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
2619
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.0
|
|
2620
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.0
|
|
2735
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: VdCmsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2736
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.0", ngImport: i0, type: VdCmsModule, imports: [VdCmsRoutingModule] });
|
|
2737
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: VdCmsModule, imports: [VdCmsRoutingModule] });
|
|
2621
2738
|
}
|
|
2622
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
2739
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: VdCmsModule, decorators: [{
|
|
2623
2740
|
type: NgModule,
|
|
2624
2741
|
args: [{
|
|
2625
2742
|
imports: [
|
|
@@ -2649,25 +2766,10 @@ class ContentVariableService extends GenericService {
|
|
|
2649
2766
|
isNameAvailable(item) {
|
|
2650
2767
|
return this.create(item, '/isNameAvailable').pipe(map((x) => x.value));
|
|
2651
2768
|
}
|
|
2652
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
2653
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0
|
|
2654
|
-
}
|
|
2655
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ContentVariableService, decorators: [{
|
|
2656
|
-
type: Injectable,
|
|
2657
|
-
args: [{ providedIn: 'root' }]
|
|
2658
|
-
}], ctorParameters: () => [] });
|
|
2659
|
-
|
|
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' });
|
|
2769
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ContentVariableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2770
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ContentVariableService, providedIn: 'root' });
|
|
2669
2771
|
}
|
|
2670
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
2772
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: ContentVariableService, decorators: [{
|
|
2671
2773
|
type: Injectable,
|
|
2672
2774
|
args: [{ providedIn: 'root' }]
|
|
2673
2775
|
}], ctorParameters: () => [] });
|
|
@@ -2679,10 +2781,10 @@ class SliderService extends GenericService {
|
|
|
2679
2781
|
constructor() {
|
|
2680
2782
|
super('slider');
|
|
2681
2783
|
}
|
|
2682
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0
|
|
2683
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0
|
|
2784
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SliderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2785
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SliderService, providedIn: 'root' });
|
|
2684
2786
|
}
|
|
2685
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0
|
|
2787
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.0", ngImport: i0, type: SliderService, decorators: [{
|
|
2686
2788
|
type: Injectable,
|
|
2687
2789
|
args: [{ providedIn: 'root' }]
|
|
2688
2790
|
}], ctorParameters: () => [] });
|