@messaia/cdk-cms 21.1.0-rc.9 → 22.0.0-rc.1

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.
@@ -1,6 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Injectable, inject, ViewChild, Component, Directive, Inject, ViewEncapsulation, NgModule } from '@angular/core';
3
- import * as i3$1 from '@angular/router';
2
+ import { Injectable, inject, ViewChild, ChangeDetectionStrategy, Component, Directive, Inject, ViewEncapsulation, NgModule } from '@angular/core';
3
+ import * as i1$1 from '@angular/router';
4
4
  import { RouterModule } from '@angular/router';
5
5
  import * as i2 from '@messaia/cdk';
6
6
  import { prop, required, AuditEntity, Column, FormField, Display, Grid, FormFieldType, Utils, Api, Table, GenericService, GenericReactiveFormComponent, EnumService, RxReactiveFormsModule, MatFormFieldEditorDirective, VdLayoutNavComponent, VdLayoutCardOverComponent, VdGenericFormComponent, VdEditorDirective, AuthHelper, SaveAction, VdFileInputComponent, BaseComponent, VdChipsComponent, GlobalRoles } from '@messaia/cdk';
@@ -8,22 +8,22 @@ import { VdAuditComponent, DocumentBase, VdDynamicListComponent, VdDynamicFormCo
8
8
  import { ENTER, COMMA } from '@angular/cdk/keycodes';
9
9
  import * as i3 from '@angular/common/http';
10
10
  import { HttpEventType, HttpResponse } from '@angular/common/http';
11
- import * as i5 from '@angular/forms';
11
+ import * as i4 from '@angular/forms';
12
12
  import { ReactiveFormsModule, FormsModule } from '@angular/forms';
13
- import * as i9 from '@angular/material/button';
13
+ import * as i8 from '@angular/material/button';
14
14
  import { MatButtonModule } from '@angular/material/button';
15
- import * as i7 from '@angular/material/expansion';
15
+ import * as i6 from '@angular/material/expansion';
16
16
  import { MatExpansionModule } from '@angular/material/expansion';
17
- import * as i8 from '@angular/material/form-field';
17
+ import * as i7 from '@angular/material/form-field';
18
18
  import { MatFormFieldModule } from '@angular/material/form-field';
19
- import * as i6 from '@tinymce/tinymce-angular';
19
+ import * as i5 from '@tinymce/tinymce-angular';
20
20
  import { EditorModule } from '@tinymce/tinymce-angular';
21
21
  import { of, map as map$1 } from 'rxjs';
22
22
  import { __decorate, __metadata } from 'tslib';
23
23
  import { map } from 'rxjs/operators';
24
- import * as i4 from '@angular/material/dialog';
24
+ import * as i3$1 from '@angular/material/dialog';
25
25
  import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
26
- import * as i7$2 from '@ctrl/ngx-codemirror';
26
+ import * as i6$2 from '@ctrl/ngx-codemirror';
27
27
  import { CodemirrorModule } from '@ctrl/ngx-codemirror';
28
28
  import 'codemirror/addon/edit/closetag';
29
29
  import 'codemirror/addon/edit/matchbrackets';
@@ -34,9 +34,9 @@ import { saveAs } from 'file-saver';
34
34
  import { MatCard } from '@angular/material/card';
35
35
  import { MatDivider } from '@angular/material/divider';
36
36
  import { MatIcon } from '@angular/material/icon';
37
- import * as i5$1 from '@angular/material/progress-bar';
37
+ import * as i4$1 from '@angular/material/progress-bar';
38
38
  import { MatProgressBarModule } from '@angular/material/progress-bar';
39
- import * as i7$1 from 'ng2-pdf-viewer';
39
+ import * as i6$1 from 'ng2-pdf-viewer';
40
40
  import { PdfViewerModule } from 'ng2-pdf-viewer';
41
41
  import * as i1 from 'angular-auth-oidc-client';
42
42
 
@@ -379,7 +379,6 @@ __decorate([
379
379
  sortBy: 'id'
380
380
  }),
381
381
  multiple: true,
382
- triggerMode: 'chip',
383
382
  hide: (_, __, ctx) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients),
384
383
  compareWith: (o, v) => o.clientId === v.clientId,
385
384
  mapper: (x) => x.map(y => new ContentClient({ clientId: y.id, clientName: y.displayName })),
@@ -410,7 +409,6 @@ __decorate([
410
409
  clientId: x.clientJoins?.map(y => y.clientId)
411
410
  }),
412
411
  multiple: true,
413
- triggerMode: 'chip',
414
412
  hide: (_, __, ctx) => (!ctx.isAdmin && !ctx.isClientAdmin) || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),
415
413
  compareWith: (o, v) => o.departmentId === v.departmentId,
416
414
  mapper: (x) => x.map(y => new ContentDepartment({ departmentId: y.id, departmentName: y.displayName })),
@@ -444,10 +442,10 @@ class ContentService extends GenericService {
444
442
  isAliasAvailable(item) {
445
443
  return this.create(item, '/isAliasAvailable').pipe(map((x) => x.value));
446
444
  }
447
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
448
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ContentService, providedIn: 'root' });
445
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ContentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
446
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ContentService, providedIn: 'root' });
449
447
  }
450
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ContentService, decorators: [{
448
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ContentService, decorators: [{
451
449
  type: Injectable,
452
450
  args: [{ providedIn: 'root' }]
453
451
  }], ctorParameters: () => [] });
@@ -456,8 +454,6 @@ class ContentFormComponent extends GenericReactiveFormComponent {
456
454
  service;
457
455
  fileService;
458
456
  httpClient;
459
- route;
460
- changeDetectorRef;
461
457
  /**
462
458
  * Injects the CmsSettings service using Angular's `inject()` function.
463
459
  * This allows access to the CmsSettings instance outside of constructor-based dependency injection,
@@ -499,13 +495,11 @@ class ContentFormComponent extends GenericReactiveFormComponent {
499
495
  /**
500
496
  * Constructor
501
497
  */
502
- constructor(service, fileService, httpClient, route, changeDetectorRef) {
503
- super(Content, service, route, changeDetectorRef);
498
+ constructor(service, fileService, httpClient) {
499
+ super(Content, service);
504
500
  this.service = service;
505
501
  this.fileService = fileService;
506
502
  this.httpClient = httpClient;
507
- this.route = route;
508
- this.changeDetectorRef = changeDetectorRef;
509
503
  if (this.settings?.multitenantable || this.settings?.multiClients) {
510
504
  this.include('ClientJoins', true);
511
505
  }
@@ -699,12 +693,12 @@ class ContentFormComponent extends GenericReactiveFormComponent {
699
693
  this.routeSubscription.unsubscribe();
700
694
  }
701
695
  }
702
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ContentFormComponent, deps: [{ token: ContentService }, { token: i2.FileService }, { token: i3.HttpClient }, { token: i3$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
703
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", 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 @if (form) {\r\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n <vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n <mat-accordion [multi]=\"!isEditMode\">\r\n <!-- #region Details -->\r\n <mat-expansion-panel expanded=\"true\" id=\"details\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\r\n <ng-template vd-editor let-field=\"field\" let-formGroup=\"formGroup\">\r\n <mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\" flex>\r\n <mat-label>{{field.label}}</mat-label>\r\n <editor [formControlName]=\"field.name\" [init]=\"editorConfig\" tinyMatFormControl flex></editor>\r\n @if (field.hint) {\r\n <mat-hint>{{field.hint}}</mat-hint>\r\n }\r\n @for (errorMessage of formGroup.controls[field.name]['errorMessages']; track errorMessage) {\r\n <mat-error>{{errorMessage}}</mat-error>\r\n }\r\n </mat-form-field>\r\n </ng-template>\r\n </vd-generic-form>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n @if (isEditMode || true) {\r\n <button type=\"button\" mat-button (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n }\r\n <button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n <!-- #endregion -->\r\n <!-- #region Audit -->\r\n @if (isEditMode) {\r\n <mat-expansion-panel id=\"audit\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span i18n=\"@@audit\">Audit</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-audit [entity]=\"item\"> </vd-audit>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n }\r\n <!-- #endregion -->\r\n </mat-accordion>\r\n </vd-layout-card-over>\r\n </form>\r\n }\r\n</vd-layout-nav>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.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: i6.EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "licenseKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i7.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i7.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i7.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i7.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i7.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i7.MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i8.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i9.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: 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"] }] });
696
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ContentFormComponent, deps: [{ token: ContentService }, { token: i2.FileService }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
697
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", 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 @if (form) {\r\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n <vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n <mat-accordion [multi]=\"!isEditMode\">\r\n <!-- #region Details -->\r\n <mat-expansion-panel expanded=\"true\" id=\"details\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\r\n <ng-template vd-editor let-field=\"field\" let-formGroup=\"formGroup\">\r\n <mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\" flex>\r\n <mat-label>{{field.label}}</mat-label>\r\n <editor [formControlName]=\"field.name\" [init]=\"editorConfig\" tinyMatFormControl flex></editor>\r\n @if (field.hint) {\r\n <mat-hint>{{field.hint}}</mat-hint>\r\n }\r\n @for (errorMessage of formGroup.controls[field.name]['errorMessages']; track errorMessage) {\r\n <mat-error>{{errorMessage}}</mat-error>\r\n }\r\n </mat-form-field>\r\n </ng-template>\r\n </vd-generic-form>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n @if (isEditMode || true) {\r\n <button type=\"button\" mat-button (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n }\r\n <button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n <!-- #endregion -->\r\n <!-- #region Audit -->\r\n @if (isEditMode) {\r\n <mat-expansion-panel id=\"audit\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span i18n=\"@@audit\">Audit</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-audit [entity]=\"item\"> </vd-audit>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n }\r\n <!-- #endregion -->\r\n </mat-accordion>\r\n </vd-layout-card-over>\r\n </form>\r\n }\r\n</vd-layout-nav>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.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: i5.EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "licenseKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i6.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i6.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i6.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i6.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i6.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i6.MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.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: 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"], outputs: ["init"] }, { kind: "directive", type: VdEditorDirective, selector: "[vd-editor]ng-template" }, { kind: "component", type: VdAuditComponent, selector: "vd-audit", inputs: ["entity"] }], changeDetection: i0.ChangeDetectionStrategy.Eager });
704
698
  }
705
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ContentFormComponent, decorators: [{
699
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ContentFormComponent, decorators: [{
706
700
  type: Component,
707
- args: [{ selector: 'app-content-form', imports: [
701
+ args: [{ selector: 'app-content-form', changeDetection: ChangeDetectionStrategy.Eager, imports: [
708
702
  ReactiveFormsModule,
709
703
  RxReactiveFormsModule,
710
704
  EditorModule,
@@ -718,7 +712,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
718
712
  VdEditorDirective,
719
713
  VdAuditComponent
720
714
  ], template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Content\" i18n-toolbarTitle=\"@@content\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n @if (form) {\r\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n <vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n <mat-accordion [multi]=\"!isEditMode\">\r\n <!-- #region Details -->\r\n <mat-expansion-panel expanded=\"true\" id=\"details\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\r\n <ng-template vd-editor let-field=\"field\" let-formGroup=\"formGroup\">\r\n <mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\" flex>\r\n <mat-label>{{field.label}}</mat-label>\r\n <editor [formControlName]=\"field.name\" [init]=\"editorConfig\" tinyMatFormControl flex></editor>\r\n @if (field.hint) {\r\n <mat-hint>{{field.hint}}</mat-hint>\r\n }\r\n @for (errorMessage of formGroup.controls[field.name]['errorMessages']; track errorMessage) {\r\n <mat-error>{{errorMessage}}</mat-error>\r\n }\r\n </mat-form-field>\r\n </ng-template>\r\n </vd-generic-form>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n @if (isEditMode || true) {\r\n <button type=\"button\" mat-button (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n }\r\n <button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n <!-- #endregion -->\r\n <!-- #region Audit -->\r\n @if (isEditMode) {\r\n <mat-expansion-panel id=\"audit\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span i18n=\"@@audit\">Audit</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-audit [entity]=\"item\"> </vd-audit>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n }\r\n <!-- #endregion -->\r\n </mat-accordion>\r\n </vd-layout-card-over>\r\n </form>\r\n }\r\n</vd-layout-nav>" }]
721
- }], ctorParameters: () => [{ type: ContentService }, { type: i2.FileService }, { type: i3.HttpClient }, { type: i3$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { formElement: [{
715
+ }], ctorParameters: () => [{ type: ContentService }, { type: i2.FileService }, { type: i3.HttpClient }], propDecorators: { formElement: [{
722
716
  type: ViewChild,
723
717
  args: ['form', { static: false }]
724
718
  }], editorComponent: [{
@@ -836,10 +830,10 @@ class DocumentService extends DocumentGenericService {
836
830
  sendMail(id) {
837
831
  return this.update(`sendMail/${id}`, null);
838
832
  }
839
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DocumentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
840
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DocumentService, providedIn: 'root' });
833
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DocumentService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
834
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DocumentService, providedIn: 'root' });
841
835
  }
842
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DocumentService, decorators: [{
836
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DocumentService, decorators: [{
843
837
  type: Injectable,
844
838
  args: [{ providedIn: 'root' }]
845
839
  }], ctorParameters: () => [] });
@@ -868,8 +862,6 @@ class DocumentFormBaseComponent extends GenericReactiveFormComponent {
868
862
  documentService;
869
863
  fileService;
870
864
  dialogRef;
871
- route;
872
- changeDetectorRef;
873
865
  data;
874
866
  /**
875
867
  * Upload status
@@ -882,14 +874,12 @@ class DocumentFormBaseComponent extends GenericReactiveFormComponent {
882
874
  /**
883
875
  * Constructor
884
876
  */
885
- constructor(entityType, documentService, fileService, dialogRef, route, changeDetectorRef, data) {
886
- super(entityType, documentService, route, changeDetectorRef);
877
+ constructor(entityType, documentService, fileService, dialogRef, data) {
878
+ super(entityType, documentService);
887
879
  this.entityType = entityType;
888
880
  this.documentService = documentService;
889
881
  this.fileService = fileService;
890
882
  this.dialogRef = dialogRef;
891
- this.route = route;
892
- this.changeDetectorRef = changeDetectorRef;
893
883
  this.data = data;
894
884
  this.item = data;
895
885
  }
@@ -942,29 +932,25 @@ class DocumentFormBaseComponent extends GenericReactiveFormComponent {
942
932
  departmentId: this.currentUser?.departmentId
943
933
  }), this.data || {}));
944
934
  }
945
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DocumentFormBaseComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
946
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: DocumentFormBaseComponent, isStandalone: true, usesInheritance: true, ngImport: i0 });
935
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DocumentFormBaseComponent, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
936
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: DocumentFormBaseComponent, isStandalone: true, usesInheritance: true, ngImport: i0 });
947
937
  }
948
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DocumentFormBaseComponent, decorators: [{
938
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DocumentFormBaseComponent, decorators: [{
949
939
  type: Directive
950
- }], ctorParameters: () => [{ type: i0.Type }, { type: undefined }, { type: i2.FileService }, { type: i4.MatDialogRef }, { type: i3$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: undefined }] });
940
+ }], ctorParameters: () => [{ type: i0.Type }, { type: undefined }, { type: i2.FileService }, { type: i3$1.MatDialogRef }, { type: undefined }] });
951
941
 
952
942
  class DocumentDialogComponent extends DocumentFormBaseComponent {
953
943
  documentService;
954
944
  fileService;
955
- route;
956
- changeDetectorRef;
957
945
  dialogRef;
958
946
  data;
959
947
  /**
960
948
  * Constructor
961
949
  */
962
- constructor(documentService, fileService, route, changeDetectorRef, dialogRef, data = new Document()) {
963
- super(Document, documentService, fileService, dialogRef, route, changeDetectorRef, data);
950
+ constructor(documentService, fileService, dialogRef, data = new Document()) {
951
+ super(Document, documentService, fileService, dialogRef, data);
964
952
  this.documentService = documentService;
965
953
  this.fileService = fileService;
966
- this.route = route;
967
- this.changeDetectorRef = changeDetectorRef;
968
954
  this.dialogRef = dialogRef;
969
955
  this.data = data;
970
956
  }
@@ -974,14 +960,15 @@ class DocumentDialogComponent extends DocumentFormBaseComponent {
974
960
  onBeforeFormBuild() {
975
961
  this.item.isPublic = true;
976
962
  }
977
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", 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 });
978
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", 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 @if(form){\n <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>\n }", isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.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: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.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"] }] });
963
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DocumentDialogComponent, deps: [{ token: DocumentService }, { token: i2.FileService }, { token: i3$1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
964
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", 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 @if(form){\n <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>\n }", isInline: true, dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i3$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i3$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "component", type: VdGenericFormComponent, selector: "vd-generic-form", inputs: ["formGroup", "classType", "formDefinition", "fieldGroups", "groupName", "fieldSets", "context", "debugValue", "readonly", "separatorKeysCodes"], outputs: ["init"] }, { kind: "component", type: VdFileInputComponent, selector: "[vd-file-input]", inputs: ["accept", "placeholder", "required", "multiple", "disabled", "errorState"], outputs: ["select", "clear"] }], changeDetection: i0.ChangeDetectionStrategy.Eager });
979
965
  }
980
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DocumentDialogComponent, decorators: [{
966
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DocumentDialogComponent, decorators: [{
981
967
  type: Component,
982
968
  args: [{
983
969
  selector: 'document-dialog',
984
970
  template: DocumentFormTemplate,
971
+ changeDetection: ChangeDetectionStrategy.Eager,
985
972
  imports: [
986
973
  ReactiveFormsModule,
987
974
  MatDialogModule,
@@ -990,7 +977,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
990
977
  VdFileInputComponent
991
978
  ]
992
979
  }]
993
- }], ctorParameters: () => [{ type: DocumentService }, { type: i2.FileService }, { type: i3$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: i4.MatDialogRef }, { type: Document, decorators: [{
980
+ }], ctorParameters: () => [{ type: DocumentService }, { type: i2.FileService }, { type: i3$1.MatDialogRef }, { type: Document, decorators: [{
994
981
  type: Inject,
995
982
  args: [MAT_DIALOG_DATA]
996
983
  }] }] });
@@ -1241,10 +1228,10 @@ class FaqService extends GenericService {
1241
1228
  constructor() {
1242
1229
  super('faq');
1243
1230
  }
1244
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FaqService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1245
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FaqService, providedIn: 'root' });
1231
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FaqService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1232
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FaqService, providedIn: 'root' });
1246
1233
  }
1247
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FaqService, decorators: [{
1234
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FaqService, decorators: [{
1248
1235
  type: Injectable,
1249
1236
  args: [{ providedIn: 'root' }]
1250
1237
  }], ctorParameters: () => [] });
@@ -1253,8 +1240,6 @@ class FaqFormComponent extends GenericReactiveFormComponent {
1253
1240
  service;
1254
1241
  fileService;
1255
1242
  httpClient;
1256
- route;
1257
- changeDetectorRef;
1258
1243
  /**
1259
1244
  * Injects the CmsSettings service using Angular's `inject()` function.
1260
1245
  * This allows access to the CmsSettings instance outside of constructor-based dependency injection,
@@ -1264,13 +1249,11 @@ class FaqFormComponent extends GenericReactiveFormComponent {
1264
1249
  /**
1265
1250
  * Constructor
1266
1251
  */
1267
- constructor(service, fileService, httpClient, route, changeDetectorRef) {
1268
- super(Faq, service, route, changeDetectorRef);
1252
+ constructor(service, fileService, httpClient) {
1253
+ super(Faq, service);
1269
1254
  this.service = service;
1270
1255
  this.fileService = fileService;
1271
1256
  this.httpClient = httpClient;
1272
- this.route = route;
1273
- this.changeDetectorRef = changeDetectorRef;
1274
1257
  if (this.settings?.multitenantable || this.settings?.multiClients) {
1275
1258
  this.include('ClientJoins', true);
1276
1259
  }
@@ -1296,12 +1279,12 @@ class FaqFormComponent extends GenericReactiveFormComponent {
1296
1279
  showClientJoins() {
1297
1280
  return (!this.canCreate || (!this.settings?.multitenantable && !this.settings?.multiClients)) || this.isClientAdmin;
1298
1281
  }
1299
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FaqFormComponent, deps: [{ token: FaqService }, { token: i2.FileService }, { token: i3.HttpClient }, { token: i3$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1300
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", 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 @if (form) {\r\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n <vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n <mat-accordion [multi]=\"!isEditMode\">\r\n <!-- #region Details -->\r\n <mat-expansion-panel expanded=\"true\" id=\"details\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\r\n <ng-template vd-editor let-field=\"field\" let-formGroup=\"formGroup\">\r\n <mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\" flex>\r\n <mat-label>{{field.label}}</mat-label>\r\n <editor [formControlName]=\"field.name\" [init]=\"editorConfig\" tinyMatFormControl flex></editor>\r\n @if (field.hint) {\r\n <mat-hint>{{field.hint}}</mat-hint>\r\n }\r\n @for (errorMessage of formGroup.controls[field.name]['errorMessages']; track errorMessage) {\r\n <mat-error>{{errorMessage}}</mat-error>\r\n }\r\n </mat-form-field>\r\n </ng-template>\r\n </vd-generic-form>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n @if (isEditMode || true) {\r\n <button type=\"button\" mat-button (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n }\r\n <button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n <!-- #endregion -->\r\n <!-- #region Audit -->\r\n @if (isEditMode) {\r\n <mat-expansion-panel id=\"audit\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span i18n=\"@@audit\">Audit</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-audit [entity]=\"item\"> </vd-audit>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n }\r\n <!-- #endregion -->\r\n </mat-accordion>\r\n </vd-layout-card-over>\r\n </form>\r\n }\r\n</vd-layout-nav>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.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: i6.EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "licenseKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i7.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i7.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i7.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i7.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i7.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i7.MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i8.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i9.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: 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"] }] });
1282
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FaqFormComponent, deps: [{ token: FaqService }, { token: i2.FileService }, { token: i3.HttpClient }], target: i0.ɵɵFactoryTarget.Component });
1283
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", 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 @if (form) {\r\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n <vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n <mat-accordion [multi]=\"!isEditMode\">\r\n <!-- #region Details -->\r\n <mat-expansion-panel expanded=\"true\" id=\"details\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\r\n <ng-template vd-editor let-field=\"field\" let-formGroup=\"formGroup\">\r\n <mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\" flex>\r\n <mat-label>{{field.label}}</mat-label>\r\n <editor [formControlName]=\"field.name\" [init]=\"editorConfig\" tinyMatFormControl flex></editor>\r\n @if (field.hint) {\r\n <mat-hint>{{field.hint}}</mat-hint>\r\n }\r\n @for (errorMessage of formGroup.controls[field.name]['errorMessages']; track errorMessage) {\r\n <mat-error>{{errorMessage}}</mat-error>\r\n }\r\n </mat-form-field>\r\n </ng-template>\r\n </vd-generic-form>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n @if (isEditMode || true) {\r\n <button type=\"button\" mat-button (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n }\r\n <button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n <!-- #endregion -->\r\n <!-- #region Audit -->\r\n @if (isEditMode) {\r\n <mat-expansion-panel id=\"audit\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span i18n=\"@@audit\">Audit</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-audit [entity]=\"item\"> </vd-audit>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n }\r\n <!-- #endregion -->\r\n </mat-accordion>\r\n </vd-layout-card-over>\r\n </form>\r\n }\r\n</vd-layout-nav>", dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.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: i5.EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "licenseKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i6.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i6.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i6.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i6.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i6.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i6.MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.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: 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"], outputs: ["init"] }, { kind: "directive", type: VdEditorDirective, selector: "[vd-editor]ng-template" }, { kind: "component", type: VdAuditComponent, selector: "vd-audit", inputs: ["entity"] }], changeDetection: i0.ChangeDetectionStrategy.Eager });
1301
1284
  }
1302
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FaqFormComponent, decorators: [{
1285
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FaqFormComponent, decorators: [{
1303
1286
  type: Component,
1304
- args: [{ selector: 'app-faq-form', imports: [
1287
+ args: [{ selector: 'app-faq-form', changeDetection: ChangeDetectionStrategy.Eager, imports: [
1305
1288
  ReactiveFormsModule,
1306
1289
  RxReactiveFormsModule,
1307
1290
  EditorModule,
@@ -1315,7 +1298,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
1315
1298
  VdEditorDirective,
1316
1299
  VdAuditComponent
1317
1300
  ], template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"FAQ\" i18n-toolbarTitle=\"@@faq\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n @if (form) {\r\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n <vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n <mat-accordion [multi]=\"!isEditMode\">\r\n <!-- #region Details -->\r\n <mat-expansion-panel expanded=\"true\" id=\"details\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\r\n <ng-template vd-editor let-field=\"field\" let-formGroup=\"formGroup\">\r\n <mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\" flex>\r\n <mat-label>{{field.label}}</mat-label>\r\n <editor [formControlName]=\"field.name\" [init]=\"editorConfig\" tinyMatFormControl flex></editor>\r\n @if (field.hint) {\r\n <mat-hint>{{field.hint}}</mat-hint>\r\n }\r\n @for (errorMessage of formGroup.controls[field.name]['errorMessages']; track errorMessage) {\r\n <mat-error>{{errorMessage}}</mat-error>\r\n }\r\n </mat-form-field>\r\n </ng-template>\r\n </vd-generic-form>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n @if (isEditMode || true) {\r\n <button type=\"button\" mat-button (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n }\r\n <button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n <!-- #endregion -->\r\n <!-- #region Audit -->\r\n @if (isEditMode) {\r\n <mat-expansion-panel id=\"audit\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span i18n=\"@@audit\">Audit</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-audit [entity]=\"item\"> </vd-audit>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n }\r\n <!-- #endregion -->\r\n </mat-accordion>\r\n </vd-layout-card-over>\r\n </form>\r\n }\r\n</vd-layout-nav>" }]
1318
- }], ctorParameters: () => [{ type: FaqService }, { type: i2.FileService }, { type: i3.HttpClient }, { type: i3$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }] });
1301
+ }], ctorParameters: () => [{ type: FaqService }, { type: i2.FileService }, { type: i3.HttpClient }] });
1319
1302
 
1320
1303
  var TemplateType;
1321
1304
  (function (TemplateType) {
@@ -1741,10 +1724,10 @@ class TemplateService extends GenericService {
1741
1724
  constructor() {
1742
1725
  super('template');
1743
1726
  }
1744
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TemplateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1745
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TemplateService, providedIn: 'root' });
1727
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TemplateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1728
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TemplateService, providedIn: 'root' });
1746
1729
  }
1747
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TemplateService, decorators: [{
1730
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TemplateService, decorators: [{
1748
1731
  type: Injectable,
1749
1732
  args: [{ providedIn: 'root' }]
1750
1733
  }], ctorParameters: () => [] });
@@ -1756,10 +1739,10 @@ class TemplateDocService extends GenericService {
1756
1739
  constructor() {
1757
1740
  super('templateDoc');
1758
1741
  }
1759
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TemplateDocService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1760
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TemplateDocService, providedIn: 'root' });
1742
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TemplateDocService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1743
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TemplateDocService, providedIn: 'root' });
1761
1744
  }
1762
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TemplateDocService, decorators: [{
1745
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TemplateDocService, decorators: [{
1763
1746
  type: Injectable,
1764
1747
  args: [{ providedIn: 'root' }]
1765
1748
  }], ctorParameters: () => [] });
@@ -1771,10 +1754,10 @@ class TemplatePreviewService extends GenericService {
1771
1754
  constructor() {
1772
1755
  super('templatePreview');
1773
1756
  }
1774
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TemplatePreviewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1775
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TemplatePreviewService, providedIn: 'root' });
1757
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TemplatePreviewService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1758
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TemplatePreviewService, providedIn: 'root' });
1776
1759
  }
1777
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TemplatePreviewService, decorators: [{
1760
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TemplatePreviewService, decorators: [{
1778
1761
  type: Injectable,
1779
1762
  args: [{ providedIn: 'root' }]
1780
1763
  }], ctorParameters: () => [] });
@@ -1783,8 +1766,6 @@ class TemplatePreviewDialogComponent extends BaseComponent {
1783
1766
  service;
1784
1767
  dialogRef;
1785
1768
  data;
1786
- route;
1787
- changeDetectorRef;
1788
1769
  /**
1789
1770
  * TemplateType
1790
1771
  */
@@ -1824,13 +1805,11 @@ class TemplatePreviewDialogComponent extends BaseComponent {
1824
1805
  * @param dialogRef
1825
1806
  * @param data
1826
1807
  */
1827
- constructor(service, dialogRef, data, route, changeDetectorRef) {
1828
- super(route, changeDetectorRef);
1808
+ constructor(service, dialogRef, data) {
1809
+ super();
1829
1810
  this.service = service;
1830
1811
  this.dialogRef = dialogRef;
1831
1812
  this.data = data;
1832
- this.route = route;
1833
- this.changeDetectorRef = changeDetectorRef;
1834
1813
  this.data.email = localStorage.getItem('templatePreviewEmail') ?? '';
1835
1814
  }
1836
1815
  /**
@@ -1938,12 +1917,12 @@ class TemplatePreviewDialogComponent extends BaseComponent {
1938
1917
  this.dialogRef.removePanelClass('full-screen');
1939
1918
  }
1940
1919
  }
1941
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", 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 });
1942
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", 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 @if (data.type == TemplateType.Pdf && pdfSrc ||true) {\r\n <div>\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 }\r\n</div>\r\n<form #form=\"ngForm\" novalidate layout=\"column\" flex>\r\n <!-- #region Entity -->\r\n @if (data.endpoint) {\r\n <div layout=\"row\" flex>\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 @if (entityId.errors!['required']) {\r\n <mat-error><span>{{data.entityName}}</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n }\r\n <!-- #endregion -->\r\n\r\n @if (isLoading) {\r\n <div layout=\"column\" layout-gt-sm=\"row\" class=\"push-bottom\" flex>\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\r\n <!-- #region PDF Content -->\r\n @if (data.type == TemplateType.Pdf) {\r\n <mat-card flex>\r\n @if (data.type == TemplateType.Pdf && pdfSrc) {\r\n <pdf-viewer [src]=\"pdfSrc\" [render-text]=\"true\" [zoom]=\"zoom\" [zoom-scale]=\"zoomScale\" [show-borders]=\"true\" [original-size]=\"false\" [autoresize]=\"true\"></pdf-viewer>\r\n }\r\n </mat-card>\r\n }\r\n <!-- #region Content -->\r\n\r\n @if (data.type != TemplateType.Pdf) {\r\n <div 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 <!-- #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 @if (email.errors && email.errors!['required']) {\r\n <mat-error><span i18n=\"@@email\">Email</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n }\r\n @if (!email.errors!['required'] && email.errors!['email']) {\r\n <mat-error><span i18n=\"@@email\">Email</span><span i18n=\"@@isInvalid\"> is invalid</span></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n </div>\r\n }\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: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i5$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: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: PdfViewerModule }, { kind: "component", type: i7$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"] }] });
1920
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TemplatePreviewDialogComponent, deps: [{ token: TemplatePreviewService }, { token: i3$1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
1921
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", 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 @if (data.type == TemplateType.Pdf && pdfSrc ||true) {\r\n <div>\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 }\r\n</div>\r\n<form #form=\"ngForm\" novalidate layout=\"column\" flex>\r\n <!-- #region Entity -->\r\n @if (data.endpoint) {\r\n <div layout=\"row\" flex>\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 @if (entityId.errors!['required']) {\r\n <mat-error><span>{{data.entityName}}</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n }\r\n <!-- #endregion -->\r\n\r\n @if (isLoading) {\r\n <div layout=\"column\" layout-gt-sm=\"row\" class=\"push-bottom\" flex>\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\r\n <!-- #region PDF Content -->\r\n @if (data.type == TemplateType.Pdf) {\r\n <mat-card flex>\r\n @if (data.type == TemplateType.Pdf && pdfSrc) {\r\n <pdf-viewer [src]=\"pdfSrc\" [render-text]=\"true\" [zoom]=\"zoom\" [zoom-scale]=\"zoomScale\" [show-borders]=\"true\" [original-size]=\"false\" [autoresize]=\"true\"></pdf-viewer>\r\n }\r\n </mat-card>\r\n }\r\n <!-- #region Content -->\r\n\r\n @if (data.type != TemplateType.Pdf) {\r\n <div 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 <!-- #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 @if (email.errors && email.errors!['required']) {\r\n <mat-error><span i18n=\"@@email\">Email</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n }\r\n @if (!email.errors!['required'] && email.errors!['email']) {\r\n <mat-error><span i18n=\"@@email\">Email</span><span i18n=\"@@isInvalid\"> is invalid</span></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n </div>\r\n }\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: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatLabel, selector: "mat-label" }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i4$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: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox]):not([ngNoCva])[formControlName],textarea:not([ngNoCva])[formControlName],input:not([type=checkbox]):not([ngNoCva])[formControl],textarea:not([ngNoCva])[formControl],input:not([type=checkbox]):not([ngNoCva])[ngModel],textarea:not([ngNoCva])[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: PdfViewerModule }, { kind: "component", type: i6$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"] }], changeDetection: i0.ChangeDetectionStrategy.Eager });
1943
1922
  }
1944
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TemplatePreviewDialogComponent, decorators: [{
1923
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TemplatePreviewDialogComponent, decorators: [{
1945
1924
  type: Component,
1946
- args: [{ selector: 'app-template-preview', imports: [
1925
+ args: [{ selector: 'app-template-preview', changeDetection: ChangeDetectionStrategy.Eager, imports: [
1947
1926
  MatIcon,
1948
1927
  MatFormFieldModule,
1949
1928
  MatProgressBarModule,
@@ -1953,10 +1932,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
1953
1932
  FormsModule,
1954
1933
  PdfViewerModule
1955
1934
  ], template: "<div mat-dialog-title>\r\n <span i18n=\"@@templatePreview\">Template preview</span>\r\n <span flex></span>\r\n @if (data.type == TemplateType.Pdf && pdfSrc ||true) {\r\n <div>\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 }\r\n</div>\r\n<form #form=\"ngForm\" novalidate layout=\"column\" flex>\r\n <!-- #region Entity -->\r\n @if (data.endpoint) {\r\n <div layout=\"row\" flex>\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 @if (entityId.errors!['required']) {\r\n <mat-error><span>{{data.entityName}}</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n }\r\n <!-- #endregion -->\r\n\r\n @if (isLoading) {\r\n <div layout=\"column\" layout-gt-sm=\"row\" class=\"push-bottom\" flex>\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\r\n <!-- #region PDF Content -->\r\n @if (data.type == TemplateType.Pdf) {\r\n <mat-card flex>\r\n @if (data.type == TemplateType.Pdf && pdfSrc) {\r\n <pdf-viewer [src]=\"pdfSrc\" [render-text]=\"true\" [zoom]=\"zoom\" [zoom-scale]=\"zoomScale\" [show-borders]=\"true\" [original-size]=\"false\" [autoresize]=\"true\"></pdf-viewer>\r\n }\r\n </mat-card>\r\n }\r\n <!-- #region Content -->\r\n\r\n @if (data.type != TemplateType.Pdf) {\r\n <div 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 <!-- #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 @if (email.errors && email.errors!['required']) {\r\n <mat-error><span i18n=\"@@email\">Email</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n }\r\n @if (!email.errors!['required'] && email.errors!['email']) {\r\n <mat-error><span i18n=\"@@email\">Email</span><span i18n=\"@@isInvalid\"> is invalid</span></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n </div>\r\n }\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"] }]
1956
- }], ctorParameters: () => [{ type: TemplatePreviewService }, { type: i4.MatDialogRef }, { type: TemplatePreview, decorators: [{
1935
+ }], ctorParameters: () => [{ type: TemplatePreviewService }, { type: i3$1.MatDialogRef }, { type: TemplatePreview, decorators: [{
1957
1936
  type: Inject,
1958
1937
  args: [MAT_DIALOG_DATA]
1959
- }] }, { type: i3$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }], propDecorators: { iframeRef: [{
1938
+ }] }], propDecorators: { iframeRef: [{
1960
1939
  type: ViewChild,
1961
1940
  args: ['iframeRef', { static: false }]
1962
1941
  }], emailModel: [{
@@ -1969,8 +1948,6 @@ class TemplateFormComponent extends GenericReactiveFormComponent {
1969
1948
  templateDocService;
1970
1949
  fileService;
1971
1950
  dialog;
1972
- route;
1973
- changeDetectorRef;
1974
1951
  /**
1975
1952
  * Injects the CmsSettings service using Angular's `inject()` function.
1976
1953
  * This allows access to the CmsSettings instance outside of constructor-based dependency injection,
@@ -2017,14 +1994,12 @@ class TemplateFormComponent extends GenericReactiveFormComponent {
2017
1994
  /**
2018
1995
  * Initializes an instance of TemplateFormComponent.
2019
1996
  */
2020
- constructor(service, templateDocService, fileService, dialog, route, changeDetectorRef) {
2021
- super(Template, service, route, changeDetectorRef);
1997
+ constructor(service, templateDocService, fileService, dialog) {
1998
+ super(Template, service);
2022
1999
  this.service = service;
2023
2000
  this.templateDocService = templateDocService;
2024
2001
  this.fileService = fileService;
2025
2002
  this.dialog = dialog;
2026
- this.route = route;
2027
- this.changeDetectorRef = changeDetectorRef;
2028
2003
  if (this.settings?.multitenantable || this.settings?.multiClients) {
2029
2004
  this.include('ClientJoins', true);
2030
2005
  }
@@ -2113,12 +2088,12 @@ class TemplateFormComponent extends GenericReactiveFormComponent {
2113
2088
  this.form.markAllAsTouched();
2114
2089
  });
2115
2090
  }
2116
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", 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 });
2117
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.9", 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 @if (form) {\r\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n <vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n <mat-accordion [multi]=\"!isEditMode\">\r\n <!-- #region Details -->\r\n <mat-expansion-panel expanded=\"true\" id=\"details\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [fieldSets]=\"['details']\" [context]=\"this\"></vd-generic-form>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n @if (isEditMode) {\r\n <button type=\"button\" mat-button (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n }\r\n <button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n <!-- #endregion -->\r\n <!-- #region Content -->\r\n <mat-expansion-panel id=\"content\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span i18n=\"@@content\">Content</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <div layout-margin>\r\n <ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n </div>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n @if (isEditMode) {\r\n <button type=\"button\" mat-button (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n }\r\n @if (isEditMode) {\r\n <button type=\"button\" mat-button (click)=\"showPreview()\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n }\r\n <button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n <!-- #endregion -->\r\n <!-- #region Content -->\r\n <mat-expansion-panel id=\"testData\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span i18n=\"@@testData\">Test Data</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <div layout-margin>\r\n <ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n </div>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n @if (isEditMode) {\r\n <button type=\"button\" mat-button (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n }\r\n @if (isEditMode) {\r\n <button type=\"button\" mat-button (click)=\"showPreview()\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n }\r\n <button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n <!-- #endregion -->\r\n <!-- #region Audit -->\r\n @if (isEditMode) {\r\n <mat-expansion-panel id=\"audit\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span i18n=\"@@audit\">Audit</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-audit [entity]=\"item\"> </vd-audit>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n }\r\n <!-- #endregion -->\r\n </mat-accordion>\r\n </vd-layout-card-over>\r\n </form>\r\n }\r\n</vd-layout-nav>", styles: ["codemirror{width:100%}.CodeMirror{height:500px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.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: i7$2.CodemirrorComponent, selector: "ngx-codemirror", inputs: ["className", "name", "autoFocus", "options", "preserveScrollPosition"], outputs: ["cursorActivity", "focusChange", "scroll", "drop", "codeMirrorLoaded"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i7.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i7.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i7.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i7.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i7.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i7.MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i9.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 });
2091
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TemplateFormComponent, deps: [{ token: TemplateService }, { token: TemplateDocService }, { token: i2.FileService }, { token: i3$1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
2092
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", 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 @if (form) {\r\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n <vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n <mat-accordion [multi]=\"!isEditMode\">\r\n <!-- #region Details -->\r\n <mat-expansion-panel expanded=\"true\" id=\"details\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [fieldSets]=\"['details']\" [context]=\"this\"></vd-generic-form>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n @if (isEditMode) {\r\n <button type=\"button\" mat-button (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n }\r\n <button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n <!-- #endregion -->\r\n <!-- #region Content -->\r\n <mat-expansion-panel id=\"content\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span i18n=\"@@content\">Content</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <div layout-margin>\r\n <ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n </div>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n @if (isEditMode) {\r\n <button type=\"button\" mat-button (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n }\r\n @if (isEditMode) {\r\n <button type=\"button\" mat-button (click)=\"showPreview()\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n }\r\n <button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n <!-- #endregion -->\r\n <!-- #region Content -->\r\n <mat-expansion-panel id=\"testData\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span i18n=\"@@testData\">Test Data</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <div layout-margin>\r\n <ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n </div>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n @if (isEditMode) {\r\n <button type=\"button\" mat-button (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n }\r\n @if (isEditMode) {\r\n <button type=\"button\" mat-button (click)=\"showPreview()\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n }\r\n <button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n <!-- #endregion -->\r\n <!-- #region Audit -->\r\n @if (isEditMode) {\r\n <mat-expansion-panel id=\"audit\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span i18n=\"@@audit\">Audit</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-audit [entity]=\"item\"> </vd-audit>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n }\r\n <!-- #endregion -->\r\n </mat-accordion>\r\n </vd-layout-card-over>\r\n </form>\r\n }\r\n</vd-layout-nav>", styles: ["codemirror{width:100%}.CodeMirror{height:500px}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.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: i6$2.CodemirrorComponent, selector: "ngx-codemirror", inputs: ["className", "name", "autoFocus", "options", "preserveScrollPosition"], outputs: ["cursorActivity", "focusChange", "scroll", "drop", "codeMirrorLoaded"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i6.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i6.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i6.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i6.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i6.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i6.MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i8.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"], outputs: ["init"] }, { kind: "component", type: VdAuditComponent, selector: "vd-audit", inputs: ["entity"] }], changeDetection: i0.ChangeDetectionStrategy.Eager, encapsulation: i0.ViewEncapsulation.None });
2118
2093
  }
2119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: TemplateFormComponent, decorators: [{
2094
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: TemplateFormComponent, decorators: [{
2120
2095
  type: Component,
2121
- args: [{ selector: 'app-template-form', encapsulation: ViewEncapsulation.None, imports: [
2096
+ args: [{ selector: 'app-template-form', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.Eager, imports: [
2122
2097
  ReactiveFormsModule,
2123
2098
  RxReactiveFormsModule,
2124
2099
  CodemirrorModule,
@@ -2129,7 +2104,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
2129
2104
  VdGenericFormComponent,
2130
2105
  VdAuditComponent
2131
2106
  ], template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n @if (form) {\r\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n <vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n <mat-accordion [multi]=\"!isEditMode\">\r\n <!-- #region Details -->\r\n <mat-expansion-panel expanded=\"true\" id=\"details\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [fieldSets]=\"['details']\" [context]=\"this\"></vd-generic-form>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n @if (isEditMode) {\r\n <button type=\"button\" mat-button (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n }\r\n <button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n <!-- #endregion -->\r\n <!-- #region Content -->\r\n <mat-expansion-panel id=\"content\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span i18n=\"@@content\">Content</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <div layout-margin>\r\n <ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n </div>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n @if (isEditMode) {\r\n <button type=\"button\" mat-button (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n }\r\n @if (isEditMode) {\r\n <button type=\"button\" mat-button (click)=\"showPreview()\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n }\r\n <button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n <!-- #endregion -->\r\n <!-- #region Content -->\r\n <mat-expansion-panel id=\"testData\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span i18n=\"@@testData\">Test Data</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <div layout-margin>\r\n <ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n </div>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n @if (isEditMode) {\r\n <button type=\"button\" mat-button (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n }\r\n @if (isEditMode) {\r\n <button type=\"button\" mat-button (click)=\"showPreview()\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n }\r\n <button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n <!-- #endregion -->\r\n <!-- #region Audit -->\r\n @if (isEditMode) {\r\n <mat-expansion-panel id=\"audit\">\r\n <mat-expansion-panel-header>\r\n <mat-panel-title>\r\n <span i18n=\"@@audit\">Audit</span>\r\n </mat-panel-title>\r\n </mat-expansion-panel-header>\r\n <ng-template matExpansionPanelContent>\r\n <vd-audit [entity]=\"item\"> </vd-audit>\r\n </ng-template>\r\n <mat-action-row>\r\n <button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n <span flex></span>\r\n </mat-action-row>\r\n </mat-expansion-panel>\r\n }\r\n <!-- #endregion -->\r\n </mat-accordion>\r\n </vd-layout-card-over>\r\n </form>\r\n }\r\n</vd-layout-nav>", styles: ["codemirror{width:100%}.CodeMirror{height:500px}\n"] }]
2132
- }], ctorParameters: () => [{ type: TemplateService }, { type: TemplateDocService }, { type: i2.FileService }, { type: i4.MatDialog }, { type: i3$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }] });
2107
+ }], ctorParameters: () => [{ type: TemplateService }, { type: TemplateDocService }, { type: i2.FileService }, { type: i3$1.MatDialog }] });
2133
2108
 
2134
2109
  /**
2135
2110
  * @class
@@ -2271,7 +2246,6 @@ __decorate([
2271
2246
  };
2272
2247
  },
2273
2248
  multiple: true,
2274
- triggerMode: 'chip',
2275
2249
  hide: (_, __, ctx) => (!ctx.canCreate || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients)) || ctx.isClientAdmin,
2276
2250
  compareWith: (o, v) => o.clientId === v.clientId,
2277
2251
  mapper: (x) => x.map(y => new ContentVariableClient({ clientId: y.id, clientName: y.displayName })),
@@ -2304,7 +2278,6 @@ __decorate([
2304
2278
  };
2305
2279
  },
2306
2280
  multiple: true,
2307
- triggerMode: 'chip',
2308
2281
  hide: (_, __, ctx) => (!ctx.isAdmin && !ctx.isClientAdmin) || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),
2309
2282
  compareWith: (o, v) => o.departmentId === v.departmentId,
2310
2283
  mapper: (x) => x.map(y => new ContentVariableDepartment({ departmentId: y.id, departmentName: y.displayName })),
@@ -2516,10 +2489,10 @@ class DocumentListProjectionResolve {
2516
2489
  return projection;
2517
2490
  }));
2518
2491
  }
2519
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DocumentListProjectionResolve, deps: [{ token: i1.OidcSecurityService }], target: i0.ɵɵFactoryTarget.Injectable });
2520
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DocumentListProjectionResolve });
2492
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DocumentListProjectionResolve, deps: [{ token: i1.OidcSecurityService }], target: i0.ɵɵFactoryTarget.Injectable });
2493
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DocumentListProjectionResolve });
2521
2494
  }
2522
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: DocumentListProjectionResolve, decorators: [{
2495
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DocumentListProjectionResolve, decorators: [{
2523
2496
  type: Injectable
2524
2497
  }], ctorParameters: () => [{ type: i1.OidcSecurityService }] });
2525
2498
 
@@ -2539,10 +2512,10 @@ class ExcludedColumnsResolve {
2539
2512
  resolve() {
2540
2513
  return of(this.settings?.multitenantable ? [] : ['client.displayName']);
2541
2514
  }
2542
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ExcludedColumnsResolve, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2543
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ExcludedColumnsResolve });
2515
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ExcludedColumnsResolve, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2516
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ExcludedColumnsResolve });
2544
2517
  }
2545
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ExcludedColumnsResolve, decorators: [{
2518
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ExcludedColumnsResolve, decorators: [{
2546
2519
  type: Injectable
2547
2520
  }] });
2548
2521
 
@@ -2562,10 +2535,10 @@ class ExcludedFieldsResolve {
2562
2535
  resolve() {
2563
2536
  return of(this.settings?.multitenantable ? [] : ['clientId']);
2564
2537
  }
2565
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ExcludedFieldsResolve, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2566
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ExcludedFieldsResolve });
2538
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ExcludedFieldsResolve, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2539
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ExcludedFieldsResolve });
2567
2540
  }
2568
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ExcludedFieldsResolve, decorators: [{
2541
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ExcludedFieldsResolve, decorators: [{
2569
2542
  type: Injectable
2570
2543
  }] });
2571
2544
 
@@ -2609,10 +2582,10 @@ class FormIncludesResolve {
2609
2582
  return includes;
2610
2583
  }));
2611
2584
  }
2612
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FormIncludesResolve, deps: [{ token: i1.OidcSecurityService }], target: i0.ɵɵFactoryTarget.Injectable });
2613
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FormIncludesResolve });
2585
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FormIncludesResolve, deps: [{ token: i1.OidcSecurityService }], target: i0.ɵɵFactoryTarget.Injectable });
2586
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FormIncludesResolve });
2614
2587
  }
2615
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FormIncludesResolve, decorators: [{
2588
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FormIncludesResolve, decorators: [{
2616
2589
  type: Injectable
2617
2590
  }], ctorParameters: () => [{ type: i1.OidcSecurityService }] });
2618
2591
 
@@ -2632,10 +2605,10 @@ class FormValidationResolve {
2632
2605
  resolve() {
2633
2606
  return of(this.settings?.multitenantable ? { clientId: { required: true } } : {});
2634
2607
  }
2635
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FormValidationResolve, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2636
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FormValidationResolve });
2608
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FormValidationResolve, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2609
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FormValidationResolve });
2637
2610
  }
2638
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: FormValidationResolve, decorators: [{
2611
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: FormValidationResolve, decorators: [{
2639
2612
  type: Injectable
2640
2613
  }] });
2641
2614
 
@@ -2679,10 +2652,10 @@ class ListProjectionResolve {
2679
2652
  return projection;
2680
2653
  }));
2681
2654
  }
2682
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ListProjectionResolve, deps: [{ token: i1.OidcSecurityService }], target: i0.ɵɵFactoryTarget.Injectable });
2683
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ListProjectionResolve });
2655
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ListProjectionResolve, deps: [{ token: i1.OidcSecurityService }], target: i0.ɵɵFactoryTarget.Injectable });
2656
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ListProjectionResolve });
2684
2657
  }
2685
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ListProjectionResolve, decorators: [{
2658
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ListProjectionResolve, decorators: [{
2686
2659
  type: Injectable
2687
2660
  }], ctorParameters: () => [{ type: i1.OidcSecurityService }] });
2688
2661
 
@@ -2711,10 +2684,10 @@ class SettingsResolve {
2711
2684
  /** Return the injected settings as an observable */
2712
2685
  return of(this.cmsSettings);
2713
2686
  }
2714
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SettingsResolve, deps: [{ token: CmsSettings }], target: i0.ɵɵFactoryTarget.Injectable });
2715
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SettingsResolve });
2687
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SettingsResolve, deps: [{ token: CmsSettings }], target: i0.ɵɵFactoryTarget.Injectable });
2688
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SettingsResolve });
2716
2689
  }
2717
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SettingsResolve, decorators: [{
2690
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SettingsResolve, decorators: [{
2718
2691
  type: Injectable
2719
2692
  }], ctorParameters: () => [{ type: CmsSettings, decorators: [{
2720
2693
  type: Inject,
@@ -2758,9 +2731,9 @@ const routes = [
2758
2731
  { path: 'documents', component: VdDynamicListComponent, data: { classType: Document, addDialogType: DocumentDialogComponent, query: { type: DocumentType.Document } }, resolve: DocsListResolve },
2759
2732
  ];
2760
2733
  class VdCmsRoutingModule {
2761
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: VdCmsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2762
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: VdCmsRoutingModule, imports: [i3$1.RouterModule], exports: [RouterModule] });
2763
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: VdCmsRoutingModule, providers: [
2734
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: VdCmsRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2735
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: VdCmsRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] });
2736
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: VdCmsRoutingModule, providers: [
2764
2737
  SettingsResolve,
2765
2738
  ListProjectionResolve,
2766
2739
  DocumentListProjectionResolve,
@@ -2770,7 +2743,7 @@ class VdCmsRoutingModule {
2770
2743
  FormValidationResolve
2771
2744
  ], imports: [RouterModule.forChild(routes), RouterModule] });
2772
2745
  }
2773
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: VdCmsRoutingModule, decorators: [{
2746
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: VdCmsRoutingModule, decorators: [{
2774
2747
  type: NgModule,
2775
2748
  args: [{
2776
2749
  imports: [RouterModule.forChild(routes)],
@@ -2788,11 +2761,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImpor
2788
2761
  }] });
2789
2762
 
2790
2763
  class VdCmsModule {
2791
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: VdCmsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2792
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.9", ngImport: i0, type: VdCmsModule, imports: [VdCmsRoutingModule] });
2793
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: VdCmsModule, imports: [VdCmsRoutingModule] });
2764
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: VdCmsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
2765
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: VdCmsModule, imports: [VdCmsRoutingModule] });
2766
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: VdCmsModule, imports: [VdCmsRoutingModule] });
2794
2767
  }
2795
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: VdCmsModule, decorators: [{
2768
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: VdCmsModule, decorators: [{
2796
2769
  type: NgModule,
2797
2770
  args: [{
2798
2771
  imports: [
@@ -2822,10 +2795,10 @@ class ContentVariableService extends GenericService {
2822
2795
  isNameAvailable(item) {
2823
2796
  return this.create(item, '/isNameAvailable').pipe(map((x) => x.value));
2824
2797
  }
2825
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ContentVariableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2826
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ContentVariableService, providedIn: 'root' });
2798
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ContentVariableService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2799
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ContentVariableService, providedIn: 'root' });
2827
2800
  }
2828
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: ContentVariableService, decorators: [{
2801
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ContentVariableService, decorators: [{
2829
2802
  type: Injectable,
2830
2803
  args: [{ providedIn: 'root' }]
2831
2804
  }], ctorParameters: () => [] });
@@ -2837,10 +2810,10 @@ class SliderService extends GenericService {
2837
2810
  constructor() {
2838
2811
  super('slider');
2839
2812
  }
2840
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SliderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2841
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SliderService, providedIn: 'root' });
2813
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SliderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2814
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SliderService, providedIn: 'root' });
2842
2815
  }
2843
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: SliderService, decorators: [{
2816
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SliderService, decorators: [{
2844
2817
  type: Injectable,
2845
2818
  args: [{ providedIn: 'root' }]
2846
2819
  }], ctorParameters: () => [] });