@messaia/cdk-cms 20.0.0-RC.3 → 20.0.0-RC.4

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.
@@ -10,7 +10,7 @@ import * as i5 from '@angular/common';
10
10
  import { CommonModule } from '@angular/common';
11
11
  import * as i3 from '@angular/common/http';
12
12
  import { HttpEventType, HttpResponse } from '@angular/common/http';
13
- import * as i6 from '@angular/forms';
13
+ import * as i7 from '@angular/forms';
14
14
  import { ReactiveFormsModule, FormsModule } from '@angular/forms';
15
15
  import * as i10 from '@angular/material/button';
16
16
  import { MatButtonModule } from '@angular/material/button';
@@ -18,14 +18,14 @@ import * as i8 from '@angular/material/expansion';
18
18
  import { MatExpansionModule } from '@angular/material/expansion';
19
19
  import * as i9 from '@angular/material/form-field';
20
20
  import { MatFormFieldModule } from '@angular/material/form-field';
21
- import * as i7 from '@tinymce/tinymce-angular';
21
+ import * as i7$1 from '@tinymce/tinymce-angular';
22
22
  import { EditorModule } from '@tinymce/tinymce-angular';
23
23
  import { of, map as map$1 } from 'rxjs';
24
24
  import { __decorate, __metadata } from 'tslib';
25
25
  import { map } from 'rxjs/operators';
26
26
  import * as i4 from '@angular/material/dialog';
27
27
  import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
28
- import * as i9$1 from '@ctrl/ngx-codemirror';
28
+ import * as i8$2 from '@ctrl/ngx-codemirror';
29
29
  import { CodemirrorModule } from '@ctrl/ngx-codemirror';
30
30
  import 'codemirror/addon/edit/closetag';
31
31
  import 'codemirror/addon/edit/matchbrackets';
@@ -36,7 +36,7 @@ import { saveAs } from 'file-saver';
36
36
  import { MatCard } from '@angular/material/card';
37
37
  import { MatDivider } from '@angular/material/divider';
38
38
  import { MatIcon } from '@angular/material/icon';
39
- import * as i6$1 from '@angular/material/progress-bar';
39
+ import * as i6 from '@angular/material/progress-bar';
40
40
  import { MatProgressBarModule } from '@angular/material/progress-bar';
41
41
  import * as i8$1 from 'ng2-pdf-viewer';
42
42
  import { PdfViewerModule } from 'ng2-pdf-viewer';
@@ -703,7 +703,7 @@ class ContentFormComponent extends GenericReactiveFormComponent {
703
703
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ContentFormComponent, deps: [{ token: ContentService }, { token: i2.FileService }, { token: i3.HttpClient }, { token: i3$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
704
704
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: ContentFormComponent, isStandalone: true, selector: "app-content-form", viewQueries: [{ propertyName: "formElement", first: true, predicate: ["form"], descendants: true }, { propertyName: "editorComponent", first: true, predicate: ["editor"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Content\" i18n-toolbarTitle=\"@@content\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\r\n\t\t\t\t\t\t\t<ng-template vd-editor let-field=\"field\" let-formGroup=\"formGroup\">\r\n\t\t\t\t\t\t\t\t<mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\" flex>\r\n\t\t\t\t\t\t\t\t\t<mat-label>{{field.label}}</mat-label>\r\n\t\t\t\t\t\t\t\t\t<editor [formControlName]=\"field.name\" [init]=\"editorConfig\" tinyMatFormControl flex></editor>\r\n\t\t\t\t\t\t\t\t\t<mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n\t\t\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of formGroup.controls[field.name]['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t</vd-generic-form>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button *ngIf=\"isEditMode || true\" (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-audit [entity]=\"item\"> </vd-audit>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type:
705
705
  //-----------------------
706
- ReactiveFormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: RxReactiveFormsModule }, { kind: "directive", type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { kind: "directive", type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { kind: "directive", type: i2.RxFormControlDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["rxalpha", "rxalphaNumeric", "rxascii", "rxcompare", "rxcompose", "rxcontains", "rxcreditCard", "rxdataUri", "rxdifferent", "rxdigit", "rxemail", "rxendsWith", "rxeven", "rxextension", "rxfactor", "rxfileSize", "rxgreaterThanEqualTo", "rxgreaterThan", "rxhexColor", "rxjson", "rxlatitude", "rxlatLong", "rxleapYear", "rxlessThan", "rxlessThanEqualTo", "rxlongitude", "rxlowerCase", "rxmac", "rxmaxDate", "rxmaxLength", "rxmaxNumber", "rxminDate", "rxminLength", "rxminNumber", "rxnumeric", "rxodd", "rxpassword", "rxport", "rxprimeNumber", "rxrequired", "rxrange", "rxrule", "rxstartsWith", "rxtime", "rxupperCase", "rxurl", "rxunique", "rxnotEmpty", "rxcusip", "rxgrid", "rxdate"] }, { kind: "ngmodule", type: EditorModule }, { kind: "component", type: i7.EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "licenseKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }, { kind: "ngmodule", type:
706
+ ReactiveFormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: RxReactiveFormsModule }, { kind: "directive", type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { kind: "directive", type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { kind: "directive", type: i2.RxFormControlDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["rxalpha", "rxalphaNumeric", "rxascii", "rxcompare", "rxcompose", "rxcontains", "rxcreditCard", "rxdataUri", "rxdifferent", "rxdigit", "rxemail", "rxendsWith", "rxeven", "rxextension", "rxfactor", "rxfileSize", "rxgreaterThanEqualTo", "rxgreaterThan", "rxhexColor", "rxjson", "rxlatitude", "rxlatLong", "rxleapYear", "rxlessThan", "rxlessThanEqualTo", "rxlongitude", "rxlowerCase", "rxmac", "rxmaxDate", "rxmaxLength", "rxmaxNumber", "rxminDate", "rxminLength", "rxminNumber", "rxnumeric", "rxodd", "rxpassword", "rxport", "rxprimeNumber", "rxrequired", "rxrange", "rxrule", "rxstartsWith", "rxtime", "rxupperCase", "rxurl", "rxunique", "rxnotEmpty", "rxcusip", "rxgrid", "rxdate"] }, { kind: "ngmodule", type: EditorModule }, { kind: "component", type: i7$1.EditorComponent, selector: "editor", inputs: ["cloudChannel", "apiKey", "licenseKey", "init", "id", "initialValue", "outputFormat", "inline", "tagName", "plugins", "toolbar", "modelEvents", "allowedEvents", "ignoreEvents", "disabled"] }, { kind: "ngmodule", type:
707
707
  //-----------------------
708
708
  MatExpansionModule }, { kind: "directive", type: i8.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i8.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i8.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i8.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i8.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i8.MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i10.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: MatFormFieldEditorDirective, selector: "[tinyMatFormControl]", inputs: ["errorStateMatcher", "disabled", "id", "placeholder", "required", "value"], outputs: ["editorChange"] }, { kind: "component", type:
709
709
  //-----------------------
@@ -977,7 +977,7 @@ class DocumentDialogComponent extends DocumentFormBaseComponent {
977
977
  this.item.isPublic = true;
978
978
  }
979
979
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: DocumentDialogComponent, deps: [{ token: DocumentService }, { token: i2.FileService }, { token: i3$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
980
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: DocumentDialogComponent, isStandalone: true, selector: "document-dialog", usesInheritance: true, ngImport: i0, template: "\n <div mat-dialog-title class=\"mat-headline-6\" i18n=\"@@newDocument\">New document</div>\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\n <ng-template vd-file let-field=\"field\" let-formGroup=\"formGroup\">\n <mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\n <mat-label>{{field.header}}</mat-label>\n <div vd-file-input [formControlName]=\"field.name\" (select)=\"upload($event)\" [accept]=\"field.fileExtensions\"></div>\n </mat-form-field>\n </ng-template>\n </vd-generic-form>\n <div mat-dialog-actions class=\"pad-top\">\n <button type=\"submit\" mat-flat-button [disabled]=\"isSaving\" color=\"primary\" i18n=\"@@save\">Save</button>\n <button type=\"button\" mat-button (click)=\"cancel()\" i18n=\"@@cancel\">Cancel</button>\n </div>\n </form>", isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "component", type: VdGenericFormComponent, selector: "vd-generic-form", inputs: ["formGroup", "classType", "formDefinition", "fieldGroups", "groupName", "fieldSets", "context", "debugValue", "readonly", "separatorKeysCodes"] }, { kind: "component", type: VdFileInputComponent, selector: "[vd-file-input]", inputs: ["accept", "placeholder", "required", "multiple", "disabled", "errorState"], outputs: ["select", "clear"] }] });
980
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: DocumentDialogComponent, isStandalone: true, selector: "document-dialog", usesInheritance: true, ngImport: i0, template: "\n <div mat-dialog-title class=\"mat-headline-6\" i18n=\"@@newDocument\">New document</div>\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\n <vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\n <ng-template vd-file let-field=\"field\" let-formGroup=\"formGroup\">\n <mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\n <mat-label>{{field.header}}</mat-label>\n <div vd-file-input [formControlName]=\"field.name\" (select)=\"upload($event)\" [accept]=\"field.fileExtensions\"></div>\n </mat-form-field>\n </ng-template>\n </vd-generic-form>\n <div mat-dialog-actions class=\"pad-top\">\n <button type=\"submit\" mat-flat-button [disabled]=\"isSaving\" color=\"primary\" i18n=\"@@save\">Save</button>\n <button type=\"button\" mat-button (click)=\"cancel()\" i18n=\"@@cancel\">Cancel</button>\n </div>\n </form>", isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "component", type: VdGenericFormComponent, selector: "vd-generic-form", inputs: ["formGroup", "classType", "formDefinition", "fieldGroups", "groupName", "fieldSets", "context", "debugValue", "readonly", "separatorKeysCodes"] }, { kind: "component", type: VdFileInputComponent, selector: "[vd-file-input]", inputs: ["accept", "placeholder", "required", "multiple", "disabled", "errorState"], outputs: ["select", "clear"] }] });
981
981
  }
982
982
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: DocumentDialogComponent, decorators: [{
983
983
  type: Component,
@@ -1548,7 +1548,7 @@ class TemplatePreviewDialogComponent extends BaseComponent {
1548
1548
  }
1549
1549
  }
1550
1550
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: TemplatePreviewDialogComponent, deps: [{ token: TemplatePreviewService }, { token: i4.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i3$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1551
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: TemplatePreviewDialogComponent, isStandalone: true, selector: "app-template-preview", viewQueries: [{ propertyName: "iframeRef", first: true, predicate: ["iframeRef"], descendants: true }, { propertyName: "emailModel", first: true, predicate: ["email"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div mat-dialog-title>\r\n <span i18n=\"@@templatePreview\">Template preview</span>\r\n <span flex></span>\r\n <div *ngIf=\"data.type == TemplateType.Pdf && pdfSrc ||true\">\r\n <a mat-icon-button (click)=\"download()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">download</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomIn()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_in</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomOut()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_out</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"toggleMaximize()\" class=\"maximize-button\">\r\n <mat-icon>{{ isMaximized ? 'fullscreen_exit' : 'fullscreen' }}</mat-icon>\r\n </a>\r\n </div>\r\n</div>\r\n<form #form=\"ngForm\" novalidate layout=\"column\" flex>\r\n <!-- #region Entity -->\r\n <div layout=\"row\" flex *ngIf=\"data.endpoint\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label>{{data.entityName}}</mat-label>\r\n <vd-chips [(ngModel)]=\"data.entityId\" [endpoint]=\"data.endpoint\" [params]=\"{sortBy: 'id'}\" text=\"displayName\" name=\"entityId\" #entityId=\"ngModel\" [placeholder]=\"data.entityName??''\" required flex>\r\n <ng-template vd-chip let-entity=\"chip\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n <ng-template vd-autocomplete-option let-entity=\"option\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n </vd-chips>\r\n <mat-error *ngIf=\"entityId.errors!['required']\"><span>{{data.entityName}}</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <div layout=\"column\" layout-gt-sm=\"row\" class=\"push-bottom\" flex *ngIf=\"isLoading\">\r\n <div flex layout-margin>\r\n <div class=\"push-bottom-sm\" i18n=\"@@pleaseWait\">Please Wait...</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n </div>\r\n\r\n <!-- #region PDF Content -->\r\n <mat-card *ngIf=\"data.type == TemplateType.Pdf\" flex>\r\n <pdf-viewer [src]=\"pdfSrc\" *ngIf=\"data.type == TemplateType.Pdf && pdfSrc\" [render-text]=\"true\" [zoom]=\"zoom\" [zoom-scale]=\"zoomScale\" [show-borders]=\"true\" [original-size]=\"false\" [autoresize]=\"true\"></pdf-viewer>\r\n </mat-card>\r\n <!-- #region Content -->\r\n\r\n <div *ngIf=\"data.type != TemplateType.Pdf\" layout=\"column\" class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <!-- #region Content -->\r\n <div class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <iframe #iframeRef frameborder=\"0\"></iframe>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Email-->\r\n <div layout-gt-sm=\"row\" layout=\"column\" class=\"pad-top\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label i18n=\"@@email\">Email</mat-label>\r\n <input matInput type=\"email\" name=\"email\" [(ngModel)]=\"data.email\" #email=\"ngModel\" email placeholder=\"Email\" i18n-placeholder=\"@@email\">\r\n <mat-error *ngIf=\"email.errors && email.errors!['required']\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n <mat-error *ngIf=\"!email.errors!['required'] && email.errors!['email']\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isInvalid\"> is invalid</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div mat-dialog-actions class=\"pad-left\">\r\n <button type=\"button\" mat-flat-button color=\"primary\" (click)=\"cancel()\" [autofocus]=\"true\" i18n=\"@@close\">Close</button>\r\n <button type=\"button\" mat-flat-button (click)=\"sendMail()\" [disabled]=\"data.email == undefined || !emailModel?.valid\" i18n=\"@@sendMail\">Send mail</button>\r\n </div>\r\n</form>", styles: [".content{overflow:scroll;min-height:200px;max-height:500px;border:1px solid #e5e5e5;border-radius:4px;padding:8px}iframe{width:100%;height:100%;min-height:200px;border:1px solid #e5e5e5;border-radius:4px}pdf-viewer{display:block;margin-left:-16px;width:calc(100% + 32px);height:calc(100vh - 170px);background:#dbdbdb}.mat-mdc-dialog-title{display:flex;padding:8px 12px;align-items:center}.dialog-content{width:100%;height:100%;box-sizing:border-box}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i6$1.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: VdChipsComponent, selector: "vd-chips", inputs: ["classType", "chips", "endpoint", "params", "projection", "paginated", "customValue", "context", "key", "searchField", "searchFields", "filters", "removable", "selectFirst", "debounce", "autocompleteCssClass", "suffixButtons"], outputs: ["initSelect", "selected", "cleared", "launch", "chipFocus"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: PdfViewerModule }, { kind: "component", type: i8$1.PdfViewerComponent, selector: "pdf-viewer", inputs: ["src", "c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }] });
1551
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: TemplatePreviewDialogComponent, isStandalone: true, selector: "app-template-preview", viewQueries: [{ propertyName: "iframeRef", first: true, predicate: ["iframeRef"], descendants: true }, { propertyName: "emailModel", first: true, predicate: ["email"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div mat-dialog-title>\r\n <span i18n=\"@@templatePreview\">Template preview</span>\r\n <span flex></span>\r\n <div *ngIf=\"data.type == TemplateType.Pdf && pdfSrc ||true\">\r\n <a mat-icon-button (click)=\"download()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">download</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomIn()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_in</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomOut()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_out</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"toggleMaximize()\" class=\"maximize-button\">\r\n <mat-icon>{{ isMaximized ? 'fullscreen_exit' : 'fullscreen' }}</mat-icon>\r\n </a>\r\n </div>\r\n</div>\r\n<form #form=\"ngForm\" novalidate layout=\"column\" flex>\r\n <!-- #region Entity -->\r\n <div layout=\"row\" flex *ngIf=\"data.endpoint\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label>{{data.entityName}}</mat-label>\r\n <vd-chips [(ngModel)]=\"data.entityId\" [endpoint]=\"data.endpoint\" [params]=\"{sortBy: 'id'}\" text=\"displayName\" name=\"entityId\" #entityId=\"ngModel\" [placeholder]=\"data.entityName??''\" required flex>\r\n <ng-template vd-chip let-entity=\"chip\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n <ng-template vd-autocomplete-option let-entity=\"option\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n </vd-chips>\r\n <mat-error *ngIf=\"entityId.errors!['required']\"><span>{{data.entityName}}</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <div layout=\"column\" layout-gt-sm=\"row\" class=\"push-bottom\" flex *ngIf=\"isLoading\">\r\n <div flex layout-margin>\r\n <div class=\"push-bottom-sm\" i18n=\"@@pleaseWait\">Please Wait...</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n </div>\r\n\r\n <!-- #region PDF Content -->\r\n <mat-card *ngIf=\"data.type == TemplateType.Pdf\" flex>\r\n <pdf-viewer [src]=\"pdfSrc\" *ngIf=\"data.type == TemplateType.Pdf && pdfSrc\" [render-text]=\"true\" [zoom]=\"zoom\" [zoom-scale]=\"zoomScale\" [show-borders]=\"true\" [original-size]=\"false\" [autoresize]=\"true\"></pdf-viewer>\r\n </mat-card>\r\n <!-- #region Content -->\r\n\r\n <div *ngIf=\"data.type != TemplateType.Pdf\" layout=\"column\" class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <!-- #region Content -->\r\n <div class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <iframe #iframeRef frameborder=\"0\"></iframe>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Email-->\r\n <div layout-gt-sm=\"row\" layout=\"column\" class=\"pad-top\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label i18n=\"@@email\">Email</mat-label>\r\n <input matInput type=\"email\" name=\"email\" [(ngModel)]=\"data.email\" #email=\"ngModel\" email placeholder=\"Email\" i18n-placeholder=\"@@email\">\r\n <mat-error *ngIf=\"email.errors && email.errors!['required']\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n <mat-error *ngIf=\"!email.errors!['required'] && email.errors!['email']\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isInvalid\"> is invalid</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div mat-dialog-actions class=\"pad-left\">\r\n <button type=\"button\" mat-flat-button color=\"primary\" (click)=\"cancel()\" [autofocus]=\"true\" i18n=\"@@close\">Close</button>\r\n <button type=\"button\" mat-flat-button (click)=\"sendMail()\" [disabled]=\"data.email == undefined || !emailModel?.valid\" i18n=\"@@sendMail\">Send mail</button>\r\n </div>\r\n</form>", styles: [".content{overflow:scroll;min-height:200px;max-height:500px;border:1px solid #e5e5e5;border-radius:4px;padding:8px}iframe{width:100%;height:100%;min-height:200px;border:1px solid #e5e5e5;border-radius:4px}pdf-viewer{display:block;margin-left:-16px;width:calc(100% + 32px);height:calc(100vh - 170px);background:#dbdbdb}.mat-mdc-dialog-title{display:flex;padding:8px 12px;align-items:center}.dialog-content{width:100%;height:100%;box-sizing:border-box}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i9.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i9.MatLabel, selector: "mat-label" }, { kind: "directive", type: i9.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i6.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: VdChipsComponent, selector: "vd-chips", inputs: ["classType", "chips", "endpoint", "params", "projection", "paginated", "customValue", "context", "key", "searchField", "searchFields", "filters", "removable", "selectFirst", "debounce", "autocompleteCssClass", "suffixButtons"], outputs: ["initSelect", "selected", "cleared", "launch", "chipFocus"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i7.EmailValidator, selector: "[email][formControlName],[email][formControl],[email][ngModel]", inputs: ["email"] }, { kind: "directive", type: i7.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: PdfViewerModule }, { kind: "component", type: i8$1.PdfViewerComponent, selector: "pdf-viewer", inputs: ["src", "c-maps-url", "page", "render-text", "render-text-mode", "original-size", "show-all", "stick-to-page", "zoom", "zoom-scale", "rotation", "external-link-target", "autoresize", "fit-to-page", "show-borders"], outputs: ["after-load-complete", "page-rendered", "pages-initialized", "text-layer-rendered", "error", "on-progress", "pageChange"] }] });
1552
1552
  }
1553
1553
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: TemplatePreviewDialogComponent, decorators: [{
1554
1554
  type: Component,
@@ -1724,18 +1724,20 @@ class TemplateFormComponent extends GenericReactiveFormComponent {
1724
1724
  });
1725
1725
  }
1726
1726
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: TemplateFormComponent, deps: [{ token: TemplateService }, { token: TemplateDocService }, { token: i2.FileService }, { token: i4.MatDialog }, { token: i3$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
1727
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: TemplateFormComponent, isStandalone: true, selector: "app-template-form", usesInheritance: true, ngImport: i0, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [fieldSets]=\"['details']\" [context]=\"this\"></vd-generic-form>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Content -->\r\n\t\t\t\t<mat-expansion-panel id=\"content\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@content\">Content</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<div layout-margin>\r\n\t\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"showPreview()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Content -->\r\n\t\t\t\t<mat-expansion-panel id=\"testData\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@testData\">Test Data</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<div layout-margin>\r\n\t\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"showPreview()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-audit [entity]=\"item\"> </vd-audit>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>", styles: ["codemirror{width:100%}.CodeMirror{height:500px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i8.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i8.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i8.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i8.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i8.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i8.MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "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: "ngmodule", type: CodemirrorModule }, { kind: "component", type: i9$1.CodemirrorComponent, selector: "ngx-codemirror", inputs: ["className", "name", "autoFocus", "options", "preserveScrollPosition"], outputs: ["cursorActivity", "focusChange", "scroll", "drop", "codeMirrorLoaded"] }, { kind: "component", type: VdAuditComponent, selector: "vd-audit", inputs: ["entity"] }], encapsulation: i0.ViewEncapsulation.None });
1727
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.0.3", type: TemplateFormComponent, isStandalone: true, selector: "app-template-form", usesInheritance: true, ngImport: i0, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [fieldSets]=\"['details']\" [context]=\"this\"></vd-generic-form>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Content -->\r\n\t\t\t\t<mat-expansion-panel id=\"content\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@content\">Content</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<div layout-margin>\r\n\t\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"showPreview()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Content -->\r\n\t\t\t\t<mat-expansion-panel id=\"testData\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@testData\">Test Data</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<div layout-margin>\r\n\t\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"showPreview()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-audit [entity]=\"item\"> </vd-audit>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>", styles: ["codemirror{width:100%}.CodeMirror{height:500px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: RxReactiveFormsModule }, { kind: "directive", type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { kind: "directive", type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { kind: "directive", type: i2.RxFormControlDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["rxalpha", "rxalphaNumeric", "rxascii", "rxcompare", "rxcompose", "rxcontains", "rxcreditCard", "rxdataUri", "rxdifferent", "rxdigit", "rxemail", "rxendsWith", "rxeven", "rxextension", "rxfactor", "rxfileSize", "rxgreaterThanEqualTo", "rxgreaterThan", "rxhexColor", "rxjson", "rxlatitude", "rxlatLong", "rxleapYear", "rxlessThan", "rxlessThanEqualTo", "rxlongitude", "rxlowerCase", "rxmac", "rxmaxDate", "rxmaxLength", "rxmaxNumber", "rxminDate", "rxminLength", "rxminNumber", "rxnumeric", "rxodd", "rxpassword", "rxport", "rxprimeNumber", "rxrequired", "rxrange", "rxrule", "rxstartsWith", "rxtime", "rxupperCase", "rxurl", "rxunique", "rxnotEmpty", "rxcusip", "rxgrid", "rxdate"] }, { kind: "ngmodule", type: CodemirrorModule }, { kind: "component", type: i8$2.CodemirrorComponent, selector: "ngx-codemirror", inputs: ["className", "name", "autoFocus", "options", "preserveScrollPosition"], outputs: ["cursorActivity", "focusChange", "scroll", "drop", "codeMirrorLoaded"] }, { kind: "ngmodule", type: MatExpansionModule }, { kind: "directive", type: i8.MatAccordion, selector: "mat-accordion", inputs: ["hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { kind: "component", type: i8.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "directive", type: i8.MatExpansionPanelActionRow, selector: "mat-action-row" }, { kind: "component", type: i8.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: i8.MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: i8.MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i10.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: VdLayoutNavComponent, selector: "vd-layout-nav", inputs: ["toolbarTitle", "editMode", "actions", "data", "context", "hideToolbar", "icon", "logo", "color", "hideToggle", "backNavigationRoute", "navigationRoute"], outputs: ["reload"] }, { kind: "component", type: VdLayoutCardOverComponent, selector: "vd-layout-card-over", inputs: ["cardTitle", "cardSubtitle", "cardWidth", "color"] }, { kind: "component", type: VdGenericFormComponent, selector: "vd-generic-form", inputs: ["formGroup", "classType", "formDefinition", "fieldGroups", "groupName", "fieldSets", "context", "debugValue", "readonly", "separatorKeysCodes"] }, { kind: "component", type: VdAuditComponent, selector: "vd-audit", inputs: ["entity"] }], encapsulation: i0.ViewEncapsulation.None });
1728
1728
  }
1729
1729
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: TemplateFormComponent, decorators: [{
1730
1730
  type: Component,
1731
1731
  args: [{ selector: 'app-template-form', encapsulation: ViewEncapsulation.None, imports: [
1732
1732
  CommonModule,
1733
- MatExpansionModule,
1734
1733
  ReactiveFormsModule,
1734
+ RxReactiveFormsModule,
1735
+ CodemirrorModule,
1736
+ MatExpansionModule,
1737
+ MatButtonModule,
1735
1738
  VdLayoutNavComponent,
1736
1739
  VdLayoutCardOverComponent,
1737
1740
  VdGenericFormComponent,
1738
- CodemirrorModule,
1739
1741
  VdAuditComponent
1740
1742
  ], template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [fieldSets]=\"['details']\" [context]=\"this\"></vd-generic-form>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Content -->\r\n\t\t\t\t<mat-expansion-panel id=\"content\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@content\">Content</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<div layout-margin>\r\n\t\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"showPreview()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Content -->\r\n\t\t\t\t<mat-expansion-panel id=\"testData\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@testData\">Test Data</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<div layout-margin>\r\n\t\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"showPreview()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-audit [entity]=\"item\"> </vd-audit>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>", styles: ["codemirror{width:100%}.CodeMirror{height:500px}\n"] }]
1741
1743
  }], ctorParameters: () => [{ type: TemplateService }, { type: TemplateDocService }, { type: i2.FileService }, { type: i4.MatDialog }, { type: i3$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }] });
@@ -1 +1 @@
1
- {"version":3,"file":"messaia-cdk-cms.mjs","sources":["../../../projects/cdk-cms/src/lib/enums/content-type.ts","../../../projects/cdk-cms/src/lib/enums/wrap-tag.ts","../../../projects/cdk-cms/src/lib/models/cms-settings.ts","../../../projects/cdk-cms/src/lib/models/content-client.ts","../../../projects/cdk-cms/src/lib/models/content-department.ts","../../../projects/cdk-cms/src/lib/models/content.ts","../../../projects/cdk-cms/src/lib/services/content.ts","../../../projects/cdk-cms/src/lib/components/content-form/content-form.ts","../../../projects/cdk-cms/src/lib/components/content-form/content-form.html","../../../projects/cdk-cms/src/lib/models/document.ts","../../../projects/cdk-cms/src/lib/services/document-generic.ts","../../../projects/cdk-cms/src/lib/services/document.service`.ts","../../../projects/cdk-cms/src/lib/templates/document-form.template.ts","../../../projects/cdk-cms/src/lib/components/document-form-base/document-form-base.ts","../../../projects/cdk-cms/src/lib/components/document-dialog/document-dialog.ts","../../../projects/cdk-cms/src/lib/enums/template-type.ts","../../../projects/cdk-cms/src/lib/models/template-client.ts","../../../projects/cdk-cms/src/lib/models/template-department.ts","../../../projects/cdk-cms/src/lib/models/template.ts","../../../projects/cdk-cms/src/lib/models/template-preview.ts","../../../projects/cdk-cms/src/lib/services/template.ts","../../../projects/cdk-cms/src/lib/services/template-doc.ts","../../../projects/cdk-cms/src/lib/services/template-preview.ts","../../../projects/cdk-cms/src/lib/components/template-preview-dialog/template-preview-dialog.ts","../../../projects/cdk-cms/src/lib/components/template-preview-dialog/template-preview-dialog.html","../../../projects/cdk-cms/src/lib/components/template-form/template-form.ts","../../../projects/cdk-cms/src/lib/components/template-form/template-form.html","../../../projects/cdk-cms/src/lib/models/content-variable-client.ts","../../../projects/cdk-cms/src/lib/models/content-variable-department.ts","../../../projects/cdk-cms/src/lib/models/content-variable.ts","../../../projects/cdk-cms/src/lib/models/faq-client.ts","../../../projects/cdk-cms/src/lib/models/faq-department.ts","../../../projects/cdk-cms/src/lib/models/faq.ts","../../../projects/cdk-cms/src/lib/models/slider.ts","../../../projects/cdk-cms/src/lib/resolvers/document-list-projection.resolve.ts","../../../projects/cdk-cms/src/lib/resolvers/excluded-columns.resolve.ts","../../../projects/cdk-cms/src/lib/resolvers/excluded-fields.resolve.ts","../../../projects/cdk-cms/src/lib/resolvers/form-includes.resolve.ts","../../../projects/cdk-cms/src/lib/resolvers/form-validation.resolve.ts","../../../projects/cdk-cms/src/lib/resolvers/list-projection.resolve.ts","../../../projects/cdk-cms/src/lib/resolvers/settings.resolve.ts","../../../projects/cdk-cms/src/lib/cms-routing.module.ts","../../../projects/cdk-cms/src/lib/cms.module.ts","../../../projects/cdk-cms/src/lib/enums/faq-scope.ts","../../../projects/cdk-cms/src/lib/services/content-variable.ts","../../../projects/cdk-cms/src/lib/services/faq.ts","../../../projects/cdk-cms/src/lib/services/slider.ts","../../../projects/cdk-cms/src/lib/public-api.ts","../../../projects/cdk-cms/src/public-api.ts","../../../projects/cdk-cms/src/messaia-cdk-cms.ts"],"sourcesContent":["export enum ContentType {\r\n Page = 1,\r\n Block\r\n}","export enum WrapTag {\r\n None = '',\r\n Section = 'section',\r\n Div = 'div',\r\n Address = 'address',\r\n Article = 'article'\r\n}","\r\nexport class CmsSettings {\r\n /**\r\n * @property\r\n */\r\n public multiClients?: boolean = false;\r\n\r\n /**\r\n * @property\r\n */\r\n public multiDepartments?: boolean = false;\r\n\r\n /**\r\n * @property\r\n */\r\n public multitenantable?: boolean = false;\r\n\r\n /**\r\n * @property\r\n */\r\n public styleUrlEndpoint?: Function;\r\n\r\n /**\r\n * @property\r\n */\r\n public editorHeight?: string = '700px';\r\n\r\n /**\r\n * constructor\r\n * @param init \r\n */\r\n public constructor(init?: Partial<CmsSettings>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class ContentClient {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public contentId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public clientId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public client?: any;\r\n\r\n /**\r\n * @property\r\n */\r\n public clientName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<ContentClient>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class ContentDepartment {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public contentId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public departmentId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public department?: any;\r\n\r\n /**\r\n * @property\r\n */\r\n public departmentName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<ContentDepartment>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { Api, AuditEntity, Column, Display, FormField, FormFieldType, Grid, prop, required, Table, Utils } from \"@messaia/cdk\";\r\nimport { ContentType } from \"../enums/content-type\";\r\nimport { WrapTag } from \"../enums/wrap-tag\";\r\nimport { ContentClient } from \"./content-client\";\r\nimport { ContentDepartment } from \"./content-department\";\r\n\r\n@Api('content')\r\n@Table({\r\n endpoint: 'content',\r\n projection: ['id', 'createdDate', 'name', 'title', 'enabled'],\r\n duplicable: true\r\n})\r\nexport class Content extends AuditEntity {\r\n /**\r\n * @property Defines the type of the content.\r\n * @description Optional enum property indicating the content's type.\r\n * @type {ContentType}\r\n */\r\n @prop()\r\n public type?: ContentType;\r\n\r\n /**\r\n * @property Identifier for the section the content belongs to.\r\n * @description Optional number representing the section ID.\r\n * @type {number}\r\n */\r\n @prop()\r\n public sectionId?: number;\r\n\r\n /**\r\n * @property The title of the content.\r\n * @description This required property represents the human-readable title displayed in the UI.\r\n * @type {string}\r\n */\r\n @required()\r\n @Column()\r\n @FormField({ row: 20 })\r\n @Display($localize`:@@title:Title`)\r\n public title?: string;\r\n\r\n /**\r\n * @property Internal name of the content.\r\n * @description This required property is used for internal reference and URLs.\r\n * @type {string}\r\n */\r\n @required()\r\n @Column({ maxWidth: 190, display: Grid.Md })\r\n @FormField({ row: 30 })\r\n @Display($localize`:@@name:Name`)\r\n public name?: string;\r\n\r\n /**\r\n * @property Aliases of the content.\r\n * @description Optional string used to define alternative names or keywords.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({ row: 40, type: FormFieldType.Chips })\r\n @Display($localize`:@@aliases:Aliases`)\r\n public aliases?: string;\r\n\r\n /**\r\n * @property The wrap tag used for HTML structure.\r\n * @description Optional property that defines how the content is wrapped in the DOM.\r\n * @type {WrapTag}\r\n */\r\n @prop()\r\n @FormField({ row: 50 })\r\n @Display($localize`:@@wrap:Wrap`)\r\n public wrapTag: WrapTag = WrapTag.Section;\r\n\r\n /**\r\n * @property Layout identifier or class name.\r\n * @description Optional layout style applied to this content block.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({ row: 50 })\r\n @Display($localize`:@@layout:Layout`)\r\n public layout?: string;\r\n\r\n /**\r\n * @property Main body of the content.\r\n * @description Optional HTML or markdown content.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({ row: 60, type: FormFieldType.Editor })\r\n @Display($localize`:@@content:Content`)\r\n public body?: string;\r\n\r\n /**\r\n * @property Embedded script.\r\n * @description Optional JavaScript code associated with the content.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({\r\n row: 80,\r\n type: FormFieldType.TextArea,\r\n hint: $localize`:@@scriptHint:Do not include <script> tags.`\r\n })\r\n @Display($localize`:@@bodyScript:Body Script`)\r\n public script?: string;\r\n\r\n /**\r\n * @property headScript\r\n * @description This optional property allows insertion of custom JavaScript code inside the <head> tag of the HTML document.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({\r\n row: 70,\r\n type: FormFieldType.TextArea,\r\n hint: $localize`:@@headScriptHint:Do not include <script> tags.`\r\n })\r\n @Display($localize`:@@headScript:Head Script`)\r\n public headScript?: string;\r\n\r\n /**\r\n * @property noScript\r\n * @description This optional property allows inserting content inside a <noscript> tag, which is rendered when JavaScript is disabled.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({\r\n row: 90,\r\n type: FormFieldType.TextArea,\r\n hint: $localize`:@@noScriptHint:Do not include <noscript> tags.`\r\n })\r\n @Display($localize`:@@noScript:NoScript`)\r\n public noScript?: string;\r\n\r\n /**\r\n * @property Embedded style.\r\n * @description Optional CSS styling specific to this content.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({\r\n row: 100,\r\n type: FormFieldType.TextArea,\r\n hint: $localize`:@@styleHint:Do not include <style> or <link> tags.`\r\n })\r\n @Display($localize`:@@style:Style`)\r\n public style?: string;\r\n\r\n /**\r\n * @property Indicates whether the title should be shown.\r\n * @description This optional boolean defaults to true and determines title visibility.\r\n * @type {boolean}\r\n */\r\n @prop()\r\n @FormField({ row: 200 })\r\n @Display($localize`:@@showTitle:Show title`)\r\n public showTitle: boolean = true;\r\n\r\n /**\r\n * @property Indicates whether the content is enabled.\r\n * @description This boolean property enables or disables the content, default is true.\r\n * @type {boolean}\r\n */\r\n @prop()\r\n @Column({\r\n index: 20,\r\n event: 'toggle'\r\n })\r\n @FormField({ row: 210 })\r\n @Display($localize`:@@enabled:Enabled`)\r\n public enabled: boolean = true;\r\n\r\n /**\r\n * @property Associated clients for this content.\r\n * @description This required property defines which clients the content is related to.\r\n * @type {ContentClient[]}\r\n */\r\n @required({ conditionalExpression: (x: Content) => true })\r\n @Column<Content>({\r\n index: 5,\r\n name: 'clientJoins.client.displayName',\r\n sortBy: 'clientJoins.Min(client.displayName)',\r\n content: (x) => x ? Utils.joinArray(x?.clientJoins?.map(y => y.client?.displayName ?? '') ?? []) : undefined,\r\n display: Grid.Lg,\r\n maxWidth: 200,\r\n hide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients),\r\n })\r\n @FormField<Content, ContentClient>({\r\n row: 1,\r\n endpoint: 'client',\r\n params: () => ({\r\n enabled: true,\r\n projection: 'id,displayName',\r\n sortBy: 'id'\r\n }),\r\n multiple: true,\r\n triggerMode: 'chip',\r\n compareWith: (o, v) => o.clientId === v.clientId,\r\n mapper: (x: { id: number, displayName: string }[]) => x.map(y => new ContentClient({ clientId: y.id, clientName: y.displayName })),\r\n optionTemplate: (x) => x?.clientName,\r\n triggerMapper: (x) => x?.clientName\r\n })\r\n @Display($localize`:@@projects:Projects`)\r\n public clientJoins?: ContentClient[];\r\n\r\n /**\r\n * @property Associated departments for this content.\r\n * @description Optional departments related to this content, with visibility based on admin context.\r\n * @type {ContentDepartment[]}\r\n */\r\n @prop()\r\n @Column<Content>({\r\n index: 5,\r\n name: 'departmentJoins.department.displayName',\r\n sortBy: 'departmentJoins.Min(department.displayName)',\r\n content: (x) => x ? Utils.joinArray(x?.departmentJoins?.map(y => y.department?.displayName ?? '') ?? []) : undefined,\r\n display: Grid.Lg,\r\n maxWidth: 200,\r\n hide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n })\r\n @FormField<Content, ContentDepartment>({\r\n row: 10,\r\n endpoint: 'department',\r\n params: (x) => ({\r\n enabled: true,\r\n projection: 'id,displayName',\r\n sortBy: 'id',\r\n clientId: x.clientJoins?.map(y => y.clientId)\r\n }),\r\n multiple: true,\r\n triggerMode: 'chip',\r\n hide: (_, __, ctx: any) => (!ctx.isAdmin && !ctx.isClientAdmin) || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n compareWith: (o, v) => o.departmentId === v.departmentId,\r\n mapper: (x: { id: number, displayName: string }[]) => x.map(y => new ContentDepartment({ departmentId: y.id, departmentName: y.displayName })),\r\n optionTemplate: (x) => x?.departmentName,\r\n triggerMapper: (x) => x?.departmentName\r\n })\r\n @Display($localize`:@@departments:Departments`)\r\n public departmentJoins?: ContentDepartment[];\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { GenericService } from '@messaia/cdk';\r\nimport { map } from 'rxjs/operators';\r\nimport { Content } from '../models/content';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ContentService extends GenericService<Content> {\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper('content');\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if the specified alias is available.\r\n\t * @param id \r\n\t * @param alias \r\n\t */\r\n\tpublic isAliasAvailable(item: Content) {\r\n\t\treturn this.create(item, '/isAliasAvailable').pipe(map((x: any) => x.value));\r\n\t}\r\n}","import { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClient, HttpEventType, HttpResponse } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, inject, ViewChild } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatChipInputEvent } from '@angular/material/chips';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { EnumService, FileService, GenericReactiveFormComponent, MatFormFieldEditorDirective, RxReactiveFormsModule, VdEditorDirective, VdGenericFormComponent, VdLayoutCardOverComponent, VdLayoutNavComponent } from '@messaia/cdk';\r\nimport { VdAuditComponent } from '@messaia/cdk-base';\r\nimport { EditorComponent, EditorModule } from '@tinymce/tinymce-angular';\r\nimport { of, Subscription } from 'rxjs';\r\nimport { ContentType } from '../../enums/content-type';\r\nimport { WrapTag } from '../../enums/wrap-tag';\r\nimport { CmsSettings } from '../../models/cms-settings';\r\nimport { Content } from '../../models/content';\r\nimport { ContentClient, ContentDepartment } from '../../public-api';\r\nimport { ContentService } from '../../services/content';\r\n\r\n@Component({\r\n\tselector: 'app-content-form',\r\n\ttemplateUrl: './content-form.html',\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\t//-----------------------\r\n\t\tReactiveFormsModule,\r\n\t\tRxReactiveFormsModule,\r\n\t\tEditorModule,\r\n\t\t//-----------------------\r\n\t\tMatExpansionModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatButtonModule,\r\n\t\tMatFormFieldEditorDirective,\r\n\t\t//-----------------------\r\n\t\tVdLayoutNavComponent,\r\n\t\tVdLayoutCardOverComponent,\r\n\t\tVdGenericFormComponent,\r\n\t\tVdEditorDirective,\r\n\t\tVdAuditComponent\r\n\t]\r\n})\r\nexport class ContentFormComponent extends GenericReactiveFormComponent<Content, ContentService> {\r\n\t/**\r\n\t * Injects the CmsSettings service using Angular's `inject()` function.\r\n\t * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n\t * commonly used in standalone components or functional-style Angular APIs.\r\n\t */\r\n\tpublic override settings: CmsSettings = inject(CmsSettings);\r\n\r\n\t/**\r\n\t * Router Subscription\r\n\t */\r\n\tpublic routeSubscription?: Subscription;\r\n\r\n\t/**\r\n\t * The status of the issue\r\n\t */\r\n\tpublic type?: ContentType;\r\n\r\n\t/**\r\n\t * Content status\r\n\t */\r\n\tpublic ContentType: typeof ContentType = ContentType;\r\n\r\n\t/**\r\n\t * Wrap tag enum\r\n\t */\r\n\tpublic wrapTags: any[] = EnumService.toArray(WrapTag);\r\n\r\n\t/**\r\n\t * Separator keys codes\r\n\t */\r\n\tpublic separatorKeysCodes: number[] = [ENTER, COMMA];\r\n\r\n\t/**\r\n\t * Gets the aliases control\r\n\t */\r\n\tget aliasesControl() { return this.form.controls['aliases']; }\r\n\r\n\t/**\r\n\t * A ref to form html element\r\n\t */\r\n\t@ViewChild('form', { static: false })\r\n\tpublic formElement?: HTMLFormElement;\r\n\r\n\t/**\r\n\t * A ref to tinymce editor\r\n\t */\r\n\t@ViewChild('editor', { static: false })\r\n\tpublic editorComponent?: EditorComponent;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor(\r\n\t\tprotected override service: ContentService,\r\n\t\tprotected fileService: FileService,\r\n\t\tprotected httpClient: HttpClient,\r\n\t\tprotected override route: ActivatedRoute,\r\n\t\tprotected override changeDetectorRef: ChangeDetectorRef\r\n\t) {\r\n\t\tsuper(Content, service, route, changeDetectorRef)\r\n\r\n\t\tif (this.settings?.multitenantable || this.settings?.multiClients) {\r\n\t\t\tthis.include('ClientJoins', true);\r\n\t\t}\r\n\r\n\t\tif (this.settings?.multitenantable || this.settings?.multiDepartments) {\r\n\t\t\tthis.include('DepartmentJoins', true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Lifecycle hook that is called after data-bound properties \r\n\t * of a directive are initialized.\r\n\t */\r\n\toverride ngOnInit(): void {\r\n\t\t/* Filter by status, if any */\r\n\t\tthis.routeSubscription = this.route.params.subscribe((params: any) => {\r\n\t\t\tthis.type = EnumService.parse(ContentType, params.type);\r\n\t\t});\r\n\r\n\t\t/* Get some props from route snapshot */\r\n\t\tthis.route.data.subscribe((data: any) => {\r\n\t\t\tthis.formValidation = data.formValidation;\r\n\t\t});\r\n\r\n\t\tsuper.ngOnInit();\r\n\t}\r\n\r\n\t/**\r\n\t * Shows client joins in the form\r\n\t * @returns \r\n\t */\r\n\tpublic showClientJoins(): boolean {\r\n\t\treturn (!this.canCreate || (!this.settings?.multitenantable && !this.settings?.multiClients)) || this.isClientAdmin;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if the specified alias is available.\r\n\t */\r\n\tpublic isAliasAvailable() {\r\n\t\tthis.service.isAliasAvailable(this.item!).subscribe((x: boolean) => {\r\n\t\t\tthis.formElement!['form']?.controls['alias'].setErrors(x ? null : { 'inUse': true });\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Set client\r\n\t */\r\n\tpublic setClient(): void {\r\n\t\tthis.isEditorInitialized = false;\r\n\t\tthis.configEditor();\r\n\t\tthis.editorComponent?.editor?.setContent(this.item?.body!);\r\n\t}\r\n\r\n\t/**\r\n\t * Add a aliases to the current field\r\n\t * @param event \r\n\t */\r\n\tpublic addAliases(event: MatChipInputEvent): void {\r\n\t\t/* Add our aliass */\r\n\t\tif ((event.value || '').trim()) {\r\n\t\t\tthis.aliasesControl.setValue([...this.aliasesControl.value, event.value.trim()]);\r\n\t\t\tthis.aliasesControl.updateValueAndValidity();\r\n\t\t\tthis.aliasesControl.markAsDirty();\r\n\t\t}\r\n\r\n\t\t/* Reset the input value */\r\n\t\tif (event.input) {\r\n\t\t\tevent.input.value = '';\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Removes a aliases\r\n\t * @param aliass \r\n\t */\r\n\tpublic removeAliases(aliass: string): void {\r\n\t\tconst index = this.aliasesControl.value.indexOf(aliass);\r\n\t\tif (index >= 0) {\r\n\t\t\tthis.aliasesControl.value.splice(index, 1);\r\n\t\t\tthis.aliasesControl.updateValueAndValidity();\r\n\t\t\tthis.aliasesControl.markAsDirty();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a new instance of the Template\r\n\t */\r\n\tprotected override newInstance(): Content {\r\n\t\tlet item = Object.assign(new Content(), <Content>{\r\n\t\t\ttype: this.type,\r\n\t\t\twrapTag: this.type == ContentType.Block ? '' : WrapTag.Section,\r\n\t\t\tshowTitle: this.type == ContentType.Block ? false : true\r\n\t\t});\r\n\r\n\t\t/* Get clientId */\r\n\t\tif (!this.isEditMode) {\r\n\t\t\tif (this.isClientAdmin || this.isDepartmentAdmin) {\r\n\t\t\t\titem.clientJoins = [new ContentClient({ clientId: this.currentUser.clientId })];\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isDepartmentAdmin) {\r\n\t\t\t\titem.departmentJoins = [new ContentDepartment({ departmentId: this.currentUser.departmentId })];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/* Init the tinymce editor */\r\n\t\tthis.isEditorInitialized = false;\r\n\t\treturn item;\r\n\t}\r\n\r\n\t/**\r\n\t * Event emitted when the form has built.\r\n\t */\r\n\tprotected override onAfterFormBuild(): void {\r\n\t\tsuper.onAfterFormBuild();\r\n\t\tthis.configEditor();\r\n\t}\r\n\r\n\t/**\r\n\t * Configures the tinymce editor\r\n\t */\r\n\tprivate configEditor(): void {\r\n\t\tif (this.settings?.multitenantable && this.formValue?.clientId && this.settings?.styleUrlEndpoint) {\r\n\t\t\tthis.httpClient.get(this.settings.styleUrlEndpoint(this.formValue.clientId)).subscribe({\r\n\t\t\t\tnext: (x: any) => super.initEditor(Object.assign(this.getEditorConfig(), { content_css: x.value })),\r\n\t\t\t\terror: () => super.initEditor(Object.assign(this.getEditorConfig()))\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tsuper.initEditor(this.getEditorConfig());\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates config for the editor\r\n\t * @returns \r\n\t */\r\n\tprivate getEditorConfig(): any {\r\n\t\treturn {\r\n\t\t\tpromotion: false,\r\n\t\t\ttoolbar: `${this.editorToolbar} snippetsButton`,\r\n\t\t\tforced_root_blocks: false,\r\n\t\t\theight: this.settings?.editorHeight || '700px',\r\n\t\t\tfile_picker_types: 'file image media',\r\n\t\t\timage_advtab: true,\r\n\t\t\tallow_html_in_named_anchor: true,\r\n\t\t\tvalid_children: '+a[div|span|img|h1|h2|h3|h4|h5|h6|br|hr|video],+span[i]',\r\n\t\t\tvalid_elements: '*[*]',\r\n\t\t\timages_upload_handler: (blobInfo: any, progress: Function) => new Promise((resolve, reject) => {\r\n\t\t\t\tvar clientIds: number[] = this.formValue?.clientJoins?.map((x: ContentClient) => x.clientId) ?? [];\r\n\t\t\t\tthis.fileService.upload(blobInfo.blob(), `upload`, {\r\n\t\t\t\t\tclientId: clientIds.length == 1 ? clientIds[0] : null,\r\n\t\t\t\t\tpath: clientIds.length == 1 ? 'images' : 'common/images',\r\n\t\t\t\t\tisPublic: true\r\n\t\t\t\t}).subscribe({\r\n\t\t\t\t\tnext: (event: any) => {\r\n\t\t\t\t\t\tif (event.type === HttpEventType.UploadProgress) {\r\n\r\n\t\t\t\t\t\t\t/* Calculate the progress percentage */\r\n\t\t\t\t\t\t\tconst percentDone = Math.round(100 * event.loaded / event.total);\r\n\r\n\t\t\t\t\t\t\t/* Pass the percentage into the progress-stream */\r\n\t\t\t\t\t\t\tconsole.info(percentDone);\r\n\t\t\t\t\t\t} else if (event instanceof HttpResponse) {\r\n\t\t\t\t\t\t\tconsole.log('Upload finished!');\r\n\t\t\t\t\t\t\tresolve(event.body.publicLink);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror: (error: any) => {\r\n\t\t\t\t\t\treject('Image upload failed due to a XHR Transport error:' + error);\r\n\t\t\t\t\t\tconsole.log('Image upload failed due to a XHR Transport error:' + error);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn of({});\r\n\t\t\t}),\r\n\t\t\tsetup: function (editor: any) {\r\n\t\t\t\t/* Add snippets button to the toolbar */\r\n\t\t\t\teditor.ui.registry.addMenuButton('snippetsButton', {\r\n\t\t\t\t\ttext: 'Snippets',\r\n\t\t\t\t\tfetch: function (callback: any) {\r\n\t\t\t\t\t\tcallback([\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\ttype: 'menuitem',\r\n\t\t\t\t\t\t\t\ttext: 'Variable',\r\n\t\t\t\t\t\t\t\tonAction: () => editor.insertContent('{{var name}}')\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\ttype: 'menuitem',\r\n\t\t\t\t\t\t\t\ttext: 'Block',\r\n\t\t\t\t\t\t\t\tonAction: () => editor.insertContent('{{block name=\"...\"}}')\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\ttype: 'menuitem',\r\n\t\t\t\t\t\t\t\ttext: 'View Component',\r\n\t\t\t\t\t\t\t\tonAction: () => editor.insertContent('{{vc name=\"...\"}}')\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t]);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Cleanup subscriptions when this component is destroyed.\r\n\t */\r\n\toverride ngOnDestroy(): void {\r\n\t\tsuper.ngOnDestroy();\r\n\t\tif (this.routeSubscription) {\r\n\t\t\tthis.routeSubscription.unsubscribe();\r\n\t\t}\r\n\t}\r\n}","<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Content\" i18n-toolbarTitle=\"@@content\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\r\n\t\t\t\t\t\t\t<ng-template vd-editor let-field=\"field\" let-formGroup=\"formGroup\">\r\n\t\t\t\t\t\t\t\t<mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\" flex>\r\n\t\t\t\t\t\t\t\t\t<mat-label>{{field.label}}</mat-label>\r\n\t\t\t\t\t\t\t\t\t<editor [formControlName]=\"field.name\" [init]=\"editorConfig\" tinyMatFormControl flex></editor>\r\n\t\t\t\t\t\t\t\t\t<mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n\t\t\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of formGroup.controls[field.name]['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t</vd-generic-form>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button *ngIf=\"isEditMode || true\" (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-audit [entity]=\"item\"> </vd-audit>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>","import { AuthHelper, Column, Display, FormField, Grid, prop, required, Table } from \"@messaia/cdk\";\r\nimport { DocumentBase } from \"@messaia/cdk-base\";\r\n\r\n@Table({\r\n endpoint: 'document',\r\n projection: ['id', 'createdDate', 'name', 'extension', 'publicLink'],\r\n editable: false,\r\n downloadable: true\r\n})\r\nexport class Document extends DocumentBase {\r\n /**\r\n * @property\r\n */\r\n @required()\r\n @Column({\r\n index: 10,\r\n name: 'client.displayName',\r\n sortBy: 'client.displayName',\r\n maxWidth: 200,\r\n display: Grid.Lg,\r\n hide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients),\r\n })\r\n @FormField<Document>({\r\n row: 1,\r\n endpoint: 'client',\r\n projection: 'id,name',\r\n params: (x) => { return { enabled: true } },\r\n readonly: (x) => (x.id ?? 0) > 0,\r\n hide: (_, __, ctx) => ctx?.currentUser?.isDepartmentAdmin\r\n })\r\n @Display($localize`:@@project:Project`)\r\n public clientId?: number = AuthHelper.user.clientId;\r\n\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n @Column({\r\n index: 11,\r\n name: 'department.displayName',\r\n sortBy: 'department.displayName',\r\n maxWidth: 200,\r\n display: Grid.Lg,\r\n hide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n })\r\n @FormField<Document>({\r\n row: 2,\r\n endpoint: 'department',\r\n projection: 'id,name',\r\n params: (x) => { return { clientId: x.clientId, enabled: true } },\r\n fetchCondition: (x) => (x.clientId ?? 0) > 0,\r\n readonly: (x) => (x.id ?? 0) > 0 || !x.clientId,\r\n hide: (_, __, ctx) => ctx?.currentUser?.isDepartmentAdmin\r\n })\r\n @Display($localize`:@@department:Department`)\r\n public departmentId?: number = AuthHelper.user.departmentId;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public path: string = 'docs';\r\n\r\n /**\r\n * constructor\r\n * @param init \r\n */\r\n public constructor(init?: Partial<Document>) {\r\n super(init);\r\n Object.assign(this, init);\r\n }\r\n}","import { GenericService } from '@messaia/cdk';\r\nimport { DocumentBase } from '@messaia/cdk-base';\r\n\r\nexport abstract class DocumentGenericService<TDocument extends DocumentBase> extends GenericService<TDocument> {\r\n\r\n /**\r\n * Constructor\r\n * @param serviceName\r\n */\r\n constructor(serviceName?: string) {\r\n super(serviceName);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Document } from '../models/document';\r\nimport { DocumentGenericService } from './document-generic';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class DocumentService extends DocumentGenericService<Document> {\r\n\r\n /**\r\n * Constructor\r\n */\r\n constructor() {\r\n super('document');\r\n }\r\n\r\n /**\r\n * Sends an email to the customer\r\n * @param id The ID of the document\r\n */\r\n public sendMail(id: number): Observable<any> {\r\n return this.update(`sendMail/${id}`, null);\r\n }\r\n}","\r\n\r\nexport const DocumentFormTemplate = `\r\n <div mat-dialog-title class=\"mat-headline-6\" i18n=\"@@newDocument\">New document</div>\r\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\r\n <ng-template vd-file let-field=\"field\" let-formGroup=\"formGroup\">\r\n <mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <div vd-file-input [formControlName]=\"field.name\" (select)=\"upload($event)\" [accept]=\"field.fileExtensions\"></div>\r\n </mat-form-field>\r\n </ng-template>\r\n </vd-generic-form>\r\n <div mat-dialog-actions class=\"pad-top\">\r\n <button type=\"submit\" mat-flat-button [disabled]=\"isSaving\" color=\"primary\" i18n=\"@@save\">Save</button>\r\n <button type=\"button\" mat-button (click)=\"cancel()\" i18n=\"@@cancel\">Cancel</button>\r\n </div>\r\n </form>`;","import { HttpEventType, HttpResponse } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Directive, Type } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { FileService, GenericReactiveFormComponent, SaveAction } from '@messaia/cdk';\r\nimport { DocumentBase } from \"@messaia/cdk-base\";\r\nimport { DocumentGenericService } from '../../services/document-generic';\r\n\r\n@Directive()\r\nexport abstract class DocumentFormBaseComponent<TDocument extends DocumentBase, TDocumentService extends DocumentGenericService<TDocument>> extends GenericReactiveFormComponent<TDocument, TDocumentService> {\r\n /**\r\n * Upload status\r\n */\r\n public isUploading: boolean = false;\r\n\r\n /**\r\n * Upload progress\r\n */\r\n public uploadProgress: number = 0;\r\n\r\n /**\r\n * Constructor\r\n */\r\n constructor(\r\n protected entityType: Type<TDocument>,\r\n protected documentService: TDocumentService,\r\n protected fileService: FileService,\r\n protected dialogRef: MatDialogRef<DocumentFormBaseComponent<TDocument, TDocumentService>>,\r\n protected override route: ActivatedRoute,\r\n protected override changeDetectorRef: ChangeDetectorRef,\r\n protected data: TDocument\r\n ) {\r\n super(entityType, documentService, route, changeDetectorRef)\r\n this.item = data;\r\n }\r\n\r\n /**\r\n * Uploads a new document\r\n */\r\n public upload(file: File | FileList): void {\r\n if (file != null) {\r\n this.fileService\r\n .upload(file as File, `upload`, new this.entityType(Object.assign(this.data || {}, this.formValue)))\r\n .subscribe({\r\n next: (event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n\r\n /* Calculate the progress percentage */\r\n const percentDone = Math.round(100 * event.loaded / event.total);\r\n\r\n /* Pass the percentage into the progress-stream */\r\n this.uploadProgress = percentDone;\r\n } else if (event instanceof HttpResponse) {\r\n this.form.patchValue(<Document>event.body);\r\n }\r\n },\r\n complete: () => this.isUploading = false,\r\n error: () => this.isUploading = false\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Event emitted after data submition\r\n * @param action \r\n * @param response \r\n */\r\n protected override onAfterSubmit(_1: SaveAction = SaveAction.SaveAndClose, _2: any = null): void {\r\n this.isSaving = false;\r\n this.cancel();\r\n }\r\n\r\n /**\r\n * Closes the dialog\r\n */\r\n public cancel(): void {\r\n this.dialogRef.close();\r\n this.reloadPage();\r\n }\r\n\r\n /**\r\n * Creates a new instance of the TEntity\r\n */\r\n protected override newInstance(): TDocument {\r\n return super.newInstance(Object.assign(new this.entityType({\r\n clientId: this.currentUser?.clientId,\r\n departmentId: this.currentUser?.departmentId\r\n }), this.data || {}));\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, Inject } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { FileService, VdFileInputComponent, VdGenericFormComponent } from '@messaia/cdk';\r\nimport { Document } from '../../models/document';\r\nimport { DocumentService } from '../../services/document.service`';\r\nimport { DocumentFormTemplate } from '../../templates/document-form.template';\r\nimport { DocumentFormBaseComponent } from '../document-form-base/document-form-base';\r\n\r\n@Component({\r\n\tselector: 'document-dialog',\r\n\ttemplate: DocumentFormTemplate,\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatDialogModule,\r\n\t\tMatFormFieldModule,\r\n\t\tVdGenericFormComponent,\r\n\t\tVdFileInputComponent\r\n\t]\r\n})\r\nexport class DocumentDialogComponent extends DocumentFormBaseComponent<Document, DocumentService> {\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor(\r\n\t\tprotected override documentService: DocumentService,\r\n\t\tprotected override fileService: FileService,\r\n\t\tprotected override route: ActivatedRoute,\r\n\t\tprotected override changeDetectorRef: ChangeDetectorRef,\r\n\t\tpublic override dialogRef: MatDialogRef<DocumentDialogComponent>,\r\n\t\t@Inject(MAT_DIALOG_DATA) public override data: Document = new Document()\r\n\t) {\r\n\t\tsuper(Document, documentService, fileService, dialogRef, route, changeDetectorRef, data)\r\n\t}\r\n\r\n\t/**\r\n\t * Event emitted before the form has built.\r\n\t */\r\n\tprotected override onBeforeFormBuild(): void {\r\n\t\tthis.item!.isPublic = true;\r\n\t}\r\n}","export enum TemplateType {\r\n Email,\r\n Pdf\r\n}","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class TemplateClient {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public templateId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public clientId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public client?: any;\r\n\r\n /**\r\n * @property\r\n */\r\n public clientName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<TemplateClient>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class TemplateDepartment {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public templateId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public departmentId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public department?: any;\r\n\r\n /**\r\n * @property\r\n */\r\n public departmentName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<TemplateDepartment>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { AuditEntity, Column, Display, FormField, FormFieldType, Grid, prop, required, Table, Utils } from \"@messaia/cdk\";\r\nimport { Attachment } from \"@messaia/cdk-base\";\r\nimport { TemplateType } from \"../enums/template-type\";\r\nimport { TemplateClient } from \"./template-client\";\r\nimport { TemplateDepartment } from \"./template-department\";\r\n\r\n@Table({\r\n\tendpoint: 'template',\r\n\tprojection: ['id', 'createdDate', 'name', 'key', 'subject', 'type', 'enabled'],\r\n\tduplicable: true\r\n})\r\nexport class Template extends AuditEntity {\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required()\r\n\t@FormField({\r\n\t\trow: 20,\r\n\t\tenumType: TemplateType,\r\n\t\tfieldSets: ['details']\r\n\t})\r\n\t@Display($localize`:@@type:Type`)\r\n\tpublic type: TemplateType = TemplateType.Email;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required()\r\n\t@Column()\r\n\t@FormField({\r\n\t\trow: 10,\r\n\t\tfieldSets: ['details']\r\n\t})\r\n\t@Display($localize`:@@name:Name`)\r\n\tpublic name?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@FormField<Template>({\r\n\t\trow: 15,\r\n\t\tendpoint: 'templateDoc',\r\n\t\toptionTextProperty: 'key',\r\n\t\toptionValueProperty: 'key',\r\n\t\tfieldSets: ['details'],\r\n\t\tchange: (_, __, ___, ctx: any) => ctx?.loadDraft()\r\n\t})\r\n\t@Display($localize`:@@draft:Draft`)\r\n\tpublic draft?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@Column({ maxWidth: 250, display: Grid.Lg })\r\n\t@FormField({\r\n\t\trow: 30,\r\n\t\tfieldSets: ['details']\r\n\t})\r\n\t@Display($localize`:@@subject:Subject`)\r\n\tpublic subject?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required()\r\n\t@Column({ maxWidth: 150, display: Grid.Lg })\r\n\t@FormField({\r\n\t\trow: 20,\r\n\t\tfieldSets: ['details']\r\n\t})\r\n\t@Display('Key')\r\n\tpublic key?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@FormField({\r\n\t\trow: 40,\r\n\t\ttype: FormFieldType.TextArea,\r\n\t\tfieldSets: ['details']\r\n\t})\r\n\t@Display($localize`:@@notice:Notice`)\r\n\tpublic notice?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@Display($localize`:@@email:Email`)\r\n\tpublic email?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required()\r\n\tpublic content?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\tpublic dummyData?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required({ conditionalExpression: (x: Template) => true })\r\n\t@Column<Template>({\r\n\t\tindex: 5,\r\n\t\tfilter: 'clientJoins.client.displayName',\r\n\t\tsortBy: 'clientJoins.Min(client.displayName)',\r\n\t\tcontent: (x) => x ? Utils.joinArray(x.clientJoins?.map(y => y.client?.displayName ?? '') ?? []) : undefined,\r\n\t\tdisplay: Grid.Lg,\r\n\t\tmaxWidth: 200,\r\n\t\thide: (_, __, ctx: any) => (!ctx.canCreate || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients)) || ctx.isClientAdmin,\r\n\t})\r\n\t@FormField<Template, TemplateClient>({\r\n\t\trow: 1,\r\n\t\tendpoint: 'client',\r\n\t\tparams: () => {\r\n\t\t\treturn {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\tprojection: 'id,displayName',\r\n\t\t\t\tsortBy: 'id'\r\n\t\t\t}\r\n\t\t},\r\n\t\tmultiple: true,\r\n\t\ttriggerMode: 'chip',\r\n\t\tfieldSets: ['details'],\r\n\t\thide: (_, __, ctx: any) => (!ctx.canCreate || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients)) || ctx.isClientAdmin,\r\n\t\tcompareWith: (o, v) => o.clientId === v.clientId,\r\n\t\tmapper: (x: { id: number, displayName: string }[]) => x.map(y => new TemplateClient({ clientId: y.id, clientName: y.displayName })),\r\n\t\toptionTemplate: (x) => x?.clientName,\r\n\t\ttriggerMapper: (x) => x?.clientName\r\n\t})\r\n\t@Display($localize`:@@projects:Projects`)\r\n\tpublic clientJoins?: TemplateClient[];\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@Column<Template>({\r\n\t\tindex: 5,\r\n\t\tfilter: 'departmentJoins.department.displayName',\r\n\t\tsortBy: 'departmentJoins.Min(department.displayName)',\r\n\t\tcontent: (x) => x ? Utils.joinArray(x.departmentJoins?.map(y => y.department?.displayName ?? '') ?? []) : undefined,\r\n\t\tdisplay: Grid.Lg,\r\n\t\tmaxWidth: 200,\r\n\t\thide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n\t})\r\n\t@FormField<Template, TemplateDepartment>({\r\n\t\trow: 2,\r\n\t\tendpoint: 'department',\r\n\t\tparams: (x) => {\r\n\t\t\treturn {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\tprojection: 'id,displayName',\r\n\t\t\t\tsortBy: 'id',\r\n\t\t\t\tclientId: x.clientJoins?.map(y => y.clientId)\r\n\t\t\t}\r\n\t\t},\r\n\t\tmultiple: true,\r\n\t\ttriggerMode: 'chip',\r\n\t\tfieldSets: ['details'],\r\n\t\thide: (_, __, ctx: any) => (!ctx.isAdmin && !ctx.isClientAdmin) || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n\t\tcompareWith: (o, v) => o.departmentId === v.departmentId,\r\n\t\tmapper: (x: { id: number, displayName: string }[]) => x.map(y => new TemplateDepartment({ departmentId: y.id, departmentName: y.displayName })),\r\n\t\toptionTemplate: (x) => x?.departmentName,\r\n\t\ttriggerMapper: (x) => x?.departmentName\r\n\t})\r\n\t@Display($localize`:@@departments:Departments`)\r\n\tpublic departmentJoins?: TemplateDepartment[];\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@Column({ event: 'toggle' })\r\n\t@FormField({\r\n\t\trow: 100,\r\n\t\tfieldSets: ['details']\r\n\t})\r\n\t@Display($localize`:@@enabled:Enabled`)\r\n\tpublic enabled?: true;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\tpublic attachments: Attachment[] = [];\r\n}","import { TemplateType } from \"../enums/template-type\";\r\n\r\nexport class TemplatePreview {\r\n /**\r\n * @property\r\n */\r\n public type?: TemplateType\r\n\r\n /**\r\n * @property\r\n */\r\n public endpoint?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n public displayName?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n public entityName?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n public entityId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public templateId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public email?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n public subject?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n public content?: string;\r\n\r\n /**\r\n * constructor\r\n * @param init \r\n */\r\n public constructor(init?: Partial<TemplatePreview>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { GenericService } from '@messaia/cdk';\r\nimport { Template } from '../models/template';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TemplateService extends GenericService<Template> {\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper('template');\r\n\t}\r\n}","import { Injectable } from '@angular/core';\r\nimport { GenericService } from '@messaia/cdk';\r\nimport { Template } from '../models/template';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TemplateDocService extends GenericService<Template> {\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper('templateDoc');\r\n\t}\r\n}","import { Injectable } from '@angular/core';\r\nimport { GenericService } from '@messaia/cdk';\r\nimport { TemplatePreview } from '../models/template-preview';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TemplatePreviewService extends GenericService<TemplatePreview> {\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper('templatePreview');\r\n\t}\r\n}","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, ElementRef, Inject, ViewChild } from '@angular/core';\r\nimport { FormsModule, NgModel } from '@angular/forms';\r\nimport { MatCard } from '@angular/material/card';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatDivider } from '@angular/material/divider';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { BaseComponent, VdChipsComponent } from '@messaia/cdk';\r\nimport { saveAs } from 'file-saver';\r\nimport { PDFSource, PdfViewerModule } from 'ng2-pdf-viewer';\r\nimport { TemplateType } from '../../enums/template-type';\r\nimport { TemplatePreview } from '../../models/template-preview';\r\nimport { TemplatePreviewService } from '../../services/template-preview';\r\n\r\n@Component({\r\n selector: 'app-template-preview',\r\n templateUrl: 'template-preview-dialog.html',\r\n styleUrls: ['template-preview-dialog.scss'],\r\n imports: [\r\n CommonModule,\r\n MatIcon,\r\n MatFormFieldModule,\r\n MatProgressBarModule,\r\n MatDivider,\r\n MatCard,\r\n VdChipsComponent,\r\n FormsModule,\r\n PdfViewerModule\r\n ]\r\n})\r\nexport class TemplatePreviewDialogComponent extends BaseComponent {\r\n\r\n /**\r\n * TemplateType\r\n */\r\n public TemplateType: typeof TemplateType = TemplateType;\r\n\r\n /**\r\n * Pdf blob\r\n */\r\n public pdfBlob?: Blob;\r\n\r\n /**\r\n * PDF source\r\n */\r\n public pdfSrc?: string | Uint8Array | PDFSource;\r\n\r\n /**\r\n * Pdf zoom\r\n */\r\n public zoom = 0.98;\r\n\r\n /**\r\n * Pdf zoom scale\r\n */\r\n public zoomScale: 'page-height' | 'page-fit' | 'page-width' = 'page-width';\r\n\r\n /**\r\n * Track whether the dialog is maximized\r\n */\r\n public isMaximized = false;\r\n\r\n /* \r\n * Reference to the iframe element. \r\n * This will be used to manipulate the iframe's content programmatically.\r\n * 'static: false' indicates that the reference is resolved after view initialization.\r\n */\r\n @ViewChild('iframeRef', { static: false })\r\n public iframeRef?: ElementRef;\r\n\r\n /* \r\n * Reference to the NgModel directive for the input element.\r\n */\r\n @ViewChild('email')\r\n public emailModel?: NgModel;\r\n\r\n /**\r\n * Constructor\r\n * @param dialogRef \r\n * @param data \r\n */\r\n constructor(\r\n protected service: TemplatePreviewService,\r\n public dialogRef: MatDialogRef<TemplatePreviewDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: TemplatePreview,\r\n protected override route: ActivatedRoute,\r\n protected override changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n super(route, changeDetectorRef)\r\n this.data.email = localStorage.getItem('templatePreviewEmail') ?? '';\r\n }\r\n\r\n /**\r\n * Lifecycle hook that is called after data-bound properties\r\n * of a directive are initialized.\r\n */\r\n override ngOnInit(): void {\r\n /* Set loading state to true */\r\n this.isLoading = true;\r\n\r\n if (this.data.type == TemplateType.Pdf) {\r\n this.service.create(this.data, undefined, { responseType: 'arraybuffer' }).subscribe({\r\n next: (x) => {\r\n /* Set loading state to false */\r\n this.isLoading = false;\r\n\r\n /* Create a Blob from the response */\r\n this.pdfBlob = new Blob([<any>x], { type: 'application/pdf' });\r\n\r\n /* Create a URL for the PDF Blob */\r\n this.pdfSrc = URL.createObjectURL(this.pdfBlob);\r\n },\r\n error: () => {\r\n /* Handle error and set loading state to false */\r\n this.isLoading = false;\r\n }\r\n });\r\n } else {\r\n this.service.create(this.data).subscribe({\r\n next: (x: any) => {\r\n /* Set loading state to false */\r\n this.isLoading = false;\r\n\r\n /* Merge response data with existing data */\r\n Object.assign(this.data, x);\r\n\r\n /* Get the iframe element from the template reference variable */\r\n const iframe = this.iframeRef?.nativeElement;\r\n if (iframe) {\r\n /* Access the document object of the iframe */\r\n const doc = iframe.contentDocument || iframe.contentWindow.document;\r\n\r\n /* Write the HTML content to the iframe */\r\n doc.open();\r\n doc.write(x?.content ?? '');\r\n doc.close();\r\n }\r\n },\r\n error: () => {\r\n /* Handle error and set loading state to false */\r\n this.isLoading = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Sends a mail\r\n */\r\n public sendMail() {\r\n /* Throw an exception if this.data.email is null */\r\n if (this.data.email == null) {\r\n throw new Error('Email is null. Cannot send mail.');\r\n }\r\n\r\n this.service.create(this.data, '/sendMail').subscribe({\r\n next: (x) => {\r\n this.isLoading = false;\r\n localStorage.setItem('templatePreviewEmail', this.data.email!);\r\n this.snackBarService.open($localize`:@@snackbar.send.success:Data sent successfully.`, undefined, {\r\n duration: 3000,\r\n panelClass: ['primary']\r\n });\r\n },\r\n error: () => this.isLoading = false\r\n });\r\n }\r\n\r\n /**\r\n * Downloads the pdf\r\n */\r\n public download(): void {\r\n saveAs(this.pdfBlob!, \"Pdf.pdf\");\r\n }\r\n\r\n /**\r\n * Zooms in the pdf\r\n */\r\n public zoomIn(): void {\r\n this.zoom += 0.1;\r\n }\r\n\r\n /**\r\n * Zooms out the pdf\r\n */\r\n public zoomOut(): void {\r\n this.zoom += -0.1;\r\n }\r\n\r\n /**\r\n * Closes the dialog\r\n */\r\n public cancel(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n /**\r\n * Toggle the dialog between maximized and normal size\r\n */\r\n public toggleMaximize() {\r\n this.isMaximized = !this.isMaximized;\r\n /* Apply or remove the full-screen class based on the isMaximized flag */\r\n if (this.isMaximized) {\r\n this.dialogRef.addPanelClass('full-screen');\r\n } else {\r\n this.dialogRef.removePanelClass('full-screen');\r\n }\r\n }\r\n}","<div mat-dialog-title>\r\n <span i18n=\"@@templatePreview\">Template preview</span>\r\n <span flex></span>\r\n <div *ngIf=\"data.type == TemplateType.Pdf && pdfSrc ||true\">\r\n <a mat-icon-button (click)=\"download()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">download</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomIn()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_in</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomOut()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_out</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"toggleMaximize()\" class=\"maximize-button\">\r\n <mat-icon>{{ isMaximized ? 'fullscreen_exit' : 'fullscreen' }}</mat-icon>\r\n </a>\r\n </div>\r\n</div>\r\n<form #form=\"ngForm\" novalidate layout=\"column\" flex>\r\n <!-- #region Entity -->\r\n <div layout=\"row\" flex *ngIf=\"data.endpoint\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label>{{data.entityName}}</mat-label>\r\n <vd-chips [(ngModel)]=\"data.entityId\" [endpoint]=\"data.endpoint\" [params]=\"{sortBy: 'id'}\" text=\"displayName\" name=\"entityId\" #entityId=\"ngModel\" [placeholder]=\"data.entityName??''\" required flex>\r\n <ng-template vd-chip let-entity=\"chip\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n <ng-template vd-autocomplete-option let-entity=\"option\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n </vd-chips>\r\n <mat-error *ngIf=\"entityId.errors!['required']\"><span>{{data.entityName}}</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <div layout=\"column\" layout-gt-sm=\"row\" class=\"push-bottom\" flex *ngIf=\"isLoading\">\r\n <div flex layout-margin>\r\n <div class=\"push-bottom-sm\" i18n=\"@@pleaseWait\">Please Wait...</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n </div>\r\n\r\n <!-- #region PDF Content -->\r\n <mat-card *ngIf=\"data.type == TemplateType.Pdf\" flex>\r\n <pdf-viewer [src]=\"pdfSrc\" *ngIf=\"data.type == TemplateType.Pdf && pdfSrc\" [render-text]=\"true\" [zoom]=\"zoom\" [zoom-scale]=\"zoomScale\" [show-borders]=\"true\" [original-size]=\"false\" [autoresize]=\"true\"></pdf-viewer>\r\n </mat-card>\r\n <!-- #region Content -->\r\n\r\n <div *ngIf=\"data.type != TemplateType.Pdf\" layout=\"column\" class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <!-- #region Content -->\r\n <div class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <iframe #iframeRef frameborder=\"0\"></iframe>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Email-->\r\n <div layout-gt-sm=\"row\" layout=\"column\" class=\"pad-top\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label i18n=\"@@email\">Email</mat-label>\r\n <input matInput type=\"email\" name=\"email\" [(ngModel)]=\"data.email\" #email=\"ngModel\" email placeholder=\"Email\" i18n-placeholder=\"@@email\">\r\n <mat-error *ngIf=\"email.errors && email.errors!['required']\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n <mat-error *ngIf=\"!email.errors!['required'] && email.errors!['email']\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isInvalid\"> is invalid</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div mat-dialog-actions class=\"pad-left\">\r\n <button type=\"button\" mat-flat-button color=\"primary\" (click)=\"cancel()\" [autofocus]=\"true\" i18n=\"@@close\">Close</button>\r\n <button type=\"button\" mat-flat-button (click)=\"sendMail()\" [disabled]=\"data.email == undefined || !emailModel?.valid\" i18n=\"@@sendMail\">Send mail</button>\r\n </div>\r\n</form>","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, inject, ViewEncapsulation } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CodemirrorModule } from '@ctrl/ngx-codemirror';\r\nimport { FileService, GenericReactiveFormComponent, VdGenericFormComponent, VdLayoutCardOverComponent, VdLayoutNavComponent } from '@messaia/cdk';\r\nimport { Attachment, VdAuditComponent } from '@messaia/cdk-base';\r\nimport 'codemirror/addon/edit/closetag';\r\nimport 'codemirror/addon/edit/matchbrackets';\r\nimport 'codemirror/addon/selection/active-line';\r\nimport 'codemirror/mode/htmlmixed/htmlmixed';\r\nimport 'codemirror/mode/javascript/javascript';\r\nimport { saveAs } from 'file-saver';\r\nimport { TemplateType } from '../../enums/template-type';\r\nimport { CmsSettings } from '../../models/cms-settings';\r\nimport { Template } from '../../models/template';\r\nimport { TemplatePreview } from '../../models/template-preview';\r\nimport { TemplateService } from '../../services/template';\r\nimport { TemplateDocService } from '../../services/template-doc';\r\nimport { TemplatePreviewDialogComponent } from '../template-preview-dialog/template-preview-dialog';\r\n\r\n@Component({\r\n\tselector: 'app-template-form',\r\n\ttemplateUrl: './template-form.html',\r\n\tstyleUrls: ['./template-form.scss'],\r\n\tencapsulation: ViewEncapsulation.None,\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tMatExpansionModule,\r\n\t\tReactiveFormsModule,\r\n\t\tVdLayoutNavComponent,\r\n\t\tVdLayoutCardOverComponent,\r\n\t\tVdGenericFormComponent,\r\n\t\tCodemirrorModule,\r\n\t\tVdAuditComponent\r\n\t]\r\n})\r\nexport class TemplateFormComponent extends GenericReactiveFormComponent<Template, TemplateService> {\r\n\t/**\r\n\t * Injects the CmsSettings service using Angular's `inject()` function.\r\n\t * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n\t * commonly used in standalone components or functional-style Angular APIs.\r\n\t */\r\n\tpublic override settings: CmsSettings = inject(CmsSettings);\r\n\r\n\t/**\r\n\t * Represents the available template types.\r\n\t */\r\n\tpublic TemplateType: typeof TemplateType = TemplateType;\r\n\r\n\t/**\r\n\t * Retrieves the attachments form control.\r\n\t */\r\n\tget attachmentsControl() { return this.form.controls['attachments']; }\r\n\r\n\t/**\r\n\t * Configuration options for the HTML editor.\r\n\t */\r\n\tpublic override editorOptions: any = {\r\n\t\tlineNumbers: true,\r\n\t\ttheme: 'material',\r\n\t\tautoCloseTags: true,\r\n\t\tstyleActiveLine: true,\r\n\t\tmode: 'text/html',\r\n\t\tprofile: 'xhtml'\r\n\t};\r\n\r\n\t/**\r\n\t * Configuration options for the JSON editor.\r\n\t */\r\n\tpublic jsonEditorOptions: any = {\r\n\t\tlineNumbers: true,\r\n\t\ttheme: 'material',\r\n\t\tautoCloseTags: true,\r\n\t\tstyleActiveLine: true,\r\n\t\tmode: {\r\n\t\t\tname: \"javascript\",\r\n\t\t\tjson: true,\r\n\t\t\tstatementIndent: 2\r\n\t\t},\r\n\t\tprofile: 'xhtml',\r\n\t\tlineWrapping: true,\r\n\t\tindentWithTabs: false,\r\n\t\ttabSize: 2\r\n\t};\r\n\r\n\t/**\r\n\t * Initializes an instance of TemplateFormComponent.\r\n\t */\r\n\tconstructor(\r\n\t\tprotected override service: TemplateService,\r\n\t\tprotected templateDocService: TemplateDocService,\r\n\t\tprotected fileService: FileService,\r\n\t\tprotected override dialog: MatDialog,\r\n\t\tprotected override route: ActivatedRoute,\r\n\t\tprotected override changeDetectorRef: ChangeDetectorRef\r\n\t) {\r\n\t\tsuper(Template, service, route, changeDetectorRef);\r\n\r\n\t\tif (this.settings?.multitenantable || this.settings?.multiClients) {\r\n\t\t\tthis.include('ClientJoins', true);\r\n\t\t}\r\n\r\n\t\tif (this.settings?.multitenantable || this.settings?.multiDepartments) {\r\n\t\t\tthis.include('DepartmentJoins', true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Removes an attachment from the form.\r\n\t * @param attachment The attachment to remove.\r\n\t */\r\n\tpublic removeAttachment(attachment: Attachment): void {\r\n\t\tif (Array.isArray(this.item?.attachments)) {\r\n\t\t\tvar index = this.attachmentsControl.value.indexOf(attachment, 0);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tthis.dialogService.openConfirm({\r\n\t\t\t\t\tmessage: 'Möchten Sie diesen Anhang wirklich löschen?',\r\n\t\t\t\t\ttitle: 'Löschen bestätigen',\r\n\t\t\t\t\tcancelButton: $localize`:@@cancel:Cancel`,\r\n\t\t\t\t\tacceptButton: $localize`:@@yes:Yes`,\r\n\t\t\t\t}).afterClosed().subscribe((accept: boolean) => {\r\n\t\t\t\t\tif (accept) {\r\n\t\t\t\t\t\tthis.attachmentsControl.value.splice(index, 1);\r\n\t\t\t\t\t\tthis.attachmentsControl.updateValueAndValidity();\r\n\t\t\t\t\t\tthis.attachmentsControl.markAsDirty();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles file upload for attachments.\r\n\t * @param $event The file input event.\r\n\t */\r\n\tpublic uploadAttachment($event: Event): void {\r\n\t\tlet file = (($event?.target as HTMLInputElement).files ?? [])[0];\r\n\t\tif (file != null) {\r\n\t\t\t// this.fileService.upload(file, `upload`, { clientId: this.item.clientId, path: `${this.item.clientId ? '' : 'common/'}docs` }).subscribe(event => {\r\n\t\t\t// \tif (event.type === HttpEventType.UploadProgress) {\r\n\r\n\t\t\t// \t\t/* Calculate the progress percentage */\r\n\t\t\t// \t\tconst percentDone = Math.round(100 * event.loaded / event.total);\r\n\r\n\t\t\t// \t\t/* Pass the percentage into the progress-stream */\r\n\t\t\t// \t\tconsole.info(percentDone);\r\n\t\t\t// \t} else if (event instanceof HttpResponse) {\r\n\t\t\t// \t\t/* Add our attachments */\r\n\t\t\t// \t\tthis.attachmentsControl.setValue([...this.attachmentsControl.value, <Attachment>event.body]);\r\n\t\t\t// \t\tthis.attachmentsControl.updateValueAndValidity();\r\n\t\t\t// \t\tthis.attachmentsControl.markAsDirty();\r\n\t\t\t// \t}\r\n\t\t\t// });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Initiates a download for the specified attachment.\r\n\t * @param attachment The attachment to download.\r\n\t */\r\n\tpublic downloadAttachment(attachment: Attachment): void {\r\n\t\tif (attachment.id) {\r\n\t\t\tthis.service.download(`downloadAttachment/${attachment.id}`).subscribe(x => {\r\n\t\t\t\tsaveAs(new Blob([x.data], { type: '' }), x.filename);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Opens a preview dialog for the template.\r\n\t */\r\n\tpublic showPreview(): void {\r\n\t\tthis.dialog.open(TemplatePreviewDialogComponent, {\r\n\t\t\twidth: this.item?.type == TemplateType.Pdf ? '1020px' : '920px',\r\n\t\t\tdata: new TemplatePreview({\r\n\t\t\t\ttemplateId: this.item?.id,\r\n\t\t\t\ttype: this.item?.type\r\n\t\t\t}),\r\n\t\t\tpanelClass: ['dialog-full-screen']\r\n\t\t}).afterClosed().subscribe();\r\n\t}\r\n\r\n\t/**\r\n\t * Loads a draft version of the template.\r\n\t */\r\n\tpublic loadDraft(): void {\r\n\t\tthis.templateDocService.get(`${this.item?.draft}`).subscribe(x => {\r\n\t\t\tthis.form.patchValue(<Template>{\r\n\t\t\t\tsubject: x.subject?.length > 0 ? x.subject : this.item?.subject,\r\n\t\t\t\tcontent: x.content\r\n\t\t\t});\r\n\t\t\tthis.form.markAllAsTouched();\r\n\t\t});\r\n\t}\r\n}","<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [fieldSets]=\"['details']\" [context]=\"this\"></vd-generic-form>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Content -->\r\n\t\t\t\t<mat-expansion-panel id=\"content\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@content\">Content</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<div layout-margin>\r\n\t\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"showPreview()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Content -->\r\n\t\t\t\t<mat-expansion-panel id=\"testData\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@testData\">Test Data</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<div layout-margin>\r\n\t\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"showPreview()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-audit [entity]=\"item\"> </vd-audit>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class ContentVariableClient {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public contentVariableId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public clientId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public client?: any;\r\n\r\n /**\r\n * @property\r\n */\r\n public clientName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<ContentVariableClient>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class ContentVariableDepartment {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public contentVariableId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public departmentId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public department?: any;\r\n\r\n /**\r\n * @property\r\n */\r\n public departmentName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<ContentVariableDepartment>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { Api, AuditEntity, Column, Display, FormField, Grid, prop, required, Table, Utils } from \"@messaia/cdk\";\r\nimport { ContentVariableClient } from \"./content-variable-client\";\r\nimport { ContentVariableDepartment } from \"./content-variable-department\";\r\n\r\n@Api('contentvariable')\r\n@Table({\r\n endpoint: 'contentvariable',\r\n projection: ['id', 'createdDate', 'name', 'value', 'enabled']\r\n})\r\nexport class ContentVariable extends AuditEntity {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public title?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n @FormField({ row: 10 })\r\n @Column({})\r\n @Display($localize`:@@name:Name`)\r\n public name?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n @FormField({ row: 11 })\r\n @Column({ display: Grid.Sm })\r\n @Display($localize`:@@value:Value`)\r\n public value?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n @required({ conditionalExpression: (x: ContentVariable) => true })\r\n @Column<ContentVariable>({\r\n index: 5,\r\n name: 'clientJoins.client.displayName',\r\n sortBy: 'clientJoins.Min(client.displayName)',\r\n content: (x) => x ? Utils.joinArray(x?.clientJoins?.map(y => y.client?.displayName ?? '') ?? []) : undefined,\r\n display: Grid.Lg,\r\n maxWidth: 200,\r\n hide: (_, __, ctx: any) => (!ctx.canCreate || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients)) || ctx.isClientAdmin,\r\n })\r\n @FormField<ContentVariable, ContentVariableClient>({\r\n row: 1,\r\n endpoint: 'client',\r\n params: () => {\r\n return {\r\n enabled: true,\r\n projection: 'id,displayName',\r\n sortBy: 'id'\r\n }\r\n },\r\n multiple: true,\r\n triggerMode: 'chip',\r\n hide: (_, __, ctx: any) => (!ctx.canCreate || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients)) || ctx.isClientAdmin,\r\n compareWith: (o, v) => o.clientId === v.clientId,\r\n mapper: (x: { id: number, displayName: string }[]) => x.map(y => new ContentVariableClient({ clientId: y.id, clientName: y.displayName })),\r\n optionTemplate: (x) => x?.clientName,\r\n triggerMapper: (x) => x?.clientName\r\n })\r\n @Display($localize`:@@projects:Projects`)\r\n public clientJoins?: ContentVariableClient[];\r\n\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n @Column<ContentVariable>({\r\n index: 5,\r\n name: 'departmentJoins.department.displayName',\r\n sortBy: 'departmentJoins.Min(department.displayName)',\r\n content: (x) => x ? Utils.joinArray(x.departmentJoins?.map(y => y.department?.displayName ?? '') ?? []) : undefined,\r\n display: Grid.Lg,\r\n maxWidth: 200,\r\n hide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n })\r\n @FormField<ContentVariable, ContentVariableDepartment>({\r\n row: 2,\r\n endpoint: 'department',\r\n params: (x) => {\r\n return {\r\n enabled: true,\r\n projection: 'id,displayName',\r\n sortBy: 'id',\r\n clientId: x.clientJoins?.map(y => y.clientId)\r\n }\r\n },\r\n multiple: true,\r\n triggerMode: 'chip',\r\n hide: (_, __, ctx: any) => (!ctx.isAdmin && !ctx.isClientAdmin) || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n compareWith: (o, v) => o.departmentId === v.departmentId,\r\n mapper: (x: { id: number, displayName: string }[]) => x.map(y => new ContentVariableDepartment({ departmentId: y.id, departmentName: y.displayName })),\r\n optionTemplate: (x) => x?.departmentName,\r\n triggerMapper: (x) => x?.departmentName\r\n })\r\n @Display($localize`:@@departments:Departments`)\r\n public departmentJoins?: ContentVariableDepartment[];\r\n\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n @FormField({ row: 21 })\r\n @Column({ event: 'toggle' })\r\n @Display($localize`:@@enabled:Enabled`)\r\n public enabled?: boolean;\r\n}","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class FaqClient {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public faqId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public clientId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public client?: any;\r\n /**\r\n * @property\r\n */\r\n public clientName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<FaqClient>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class FaqDepartment {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public faqId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public departmentId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public department?: any;\r\n\r\n /**\r\n * @property\r\n */\r\n public departmentName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<FaqDepartment>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { Api, AuditEntity, Column, Display, FormField, FormFieldType, Grid, prop, required, Table, Utils } from \"@messaia/cdk\";\r\nimport { FaqClient } from \"./faq-client\";\r\nimport { FaqDepartment } from \"./faq-department\";\r\n\r\n@Api('faq')\r\n@Table({\r\n\tendpoint: 'faq',\r\n\tprojection: ['id', 'createdDate', 'question', 'group', 'enabled'],\r\n\tduplicable: true\r\n})\r\nexport class Faq extends AuditEntity {\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required()\r\n\t@Column({\r\n\t\tindex: 1,\r\n\t\tcontentLength: 30\r\n\t})\r\n\t@FormField({ row: 4 })\r\n\t@Display($localize`:@@question:Question`)\r\n\tpublic question?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required()\r\n\t@Column({\r\n\t\tindex: 2,\r\n\t\tmaxWidth: 160,\r\n\t\tdisplay: Grid.Lg\r\n\t})\r\n\t@FormField({\r\n\t\trow: 6,\r\n\t\ttype: FormFieldType.Autocomplete\r\n\t})\r\n\t@Display($localize`:@@group:Group`)\r\n\tpublic group?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required({ conditionalExpression: (x: Faq) => true })\r\n\t@Column<Faq>({\r\n\t\tindex: 5,\r\n\t\tname: 'clientJoins.client.displayName',\r\n\t\tsortBy: 'clientJoins.Min(client.displayName)',\r\n\t\tcontent: (x) => x ? Utils.joinArray(x.clientJoins?.map(y => y.client?.displayName ?? '') ?? []) : undefined,\r\n\t\tdisplay: Grid.Lg,\r\n\t\tmaxWidth: 200,\r\n\t\thide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients),\r\n\t})\r\n\t@FormField<Faq, FaqClient>({\r\n\t\trow: 1,\r\n\t\tendpoint: 'client',\r\n\t\tparams: () => {\r\n\t\t\treturn {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\tprojection: 'id,displayName',\r\n\t\t\t\tsortBy: 'id'\r\n\t\t\t}\r\n\t\t},\r\n\t\tmultiple: true,\r\n\t\ttriggerMode: 'chip',\r\n\t\thide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients),\r\n\t\tcompareWith: (o, v) => o.clientId === v.clientId,\r\n\t\tmapper: (x: { id: number, displayName: string }[]) => x.map(y => new FaqClient({ clientId: y.id, clientName: y.displayName })),\r\n\t\toptionTemplate: (x) => x?.clientName,\r\n\t\ttriggerMapper: (x) => x?.clientName\r\n\t})\r\n\t@Display($localize`:@@projects:Projects`)\r\n\tpublic clientJoins?: FaqClient[];\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@Column<Faq>({\r\n\t\tindex: 5,\r\n\t\tname: 'departmentJoins.department.displayName',\r\n\t\tsortBy: 'departmentJoins.Min(department.displayName)',\r\n\t\tcontent: (x) => x ? Utils.joinArray(x.departmentJoins?.map(y => y.department?.displayName ?? '') ?? []) : undefined,\r\n\t\tdisplay: Grid.Lg,\r\n\t\tmaxWidth: 200,\r\n\t\thide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n\t})\r\n\t@FormField<Faq, FaqDepartment>({\r\n\t\trow: 2,\r\n\t\tendpoint: 'department',\r\n\t\tparams: (x) => {\r\n\t\t\treturn {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\tprojection: 'id,displayName',\r\n\t\t\t\tsortBy: 'id',\r\n\t\t\t\tclientId: x.clientJoins?.map(y => y.clientId)\r\n\t\t\t}\r\n\t\t},\r\n\t\tmultiple: true,\r\n\t\ttriggerMode: 'chip',\r\n\t\thide: (_, __, ctx: any) => (!ctx.isAdmin && !ctx.isClientAdmin) || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n\t\tcompareWith: (o, v) => o.departmentId === v.departmentId,\r\n\t\tmapper: (x: { id: number, displayName: string }[]) => x.map(y => new FaqDepartment({ departmentId: y.id, departmentName: y.displayName })),\r\n\t\toptionTemplate: (x) => x?.departmentName,\r\n\t\ttriggerMapper: (x) => x?.departmentName\r\n\t})\r\n\t@Display($localize`:@@departments:Departments`)\r\n\tpublic departmentJoins?: FaqDepartment[];\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@FormField({ row: 6 })\r\n\t@Display($localize`:@@ordering:Ordering`)\r\n\tpublic ordering?: number;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required()\r\n\t@FormField({ row: 5, type: FormFieldType.Editor })\r\n\t@Display($localize`:@@answer:Answer`)\r\n\tpublic answer?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@Column({\r\n\t\tindex: 20,\r\n\t\tevent: 'toggle'\r\n\t})\r\n\t@FormField({ row: 10 })\r\n\t@Display($localize`:@@enabled:Enabled`)\r\n\tpublic enabled?: boolean;\r\n\r\n\t/**\r\n\t * constructor\r\n\t * @param init \r\n\t */\r\n\tpublic constructor(init?: Partial<Faq>) {\r\n\t\tsuper(init);\r\n\t\tObject.assign(this, init);\r\n\t}\r\n}","import {\r\n Api,\r\n AuditEntity,\r\n Column,\r\n Display,\r\n FormField,\r\n FormFieldType,\r\n Grid,\r\n prop,\r\n required,\r\n Table\r\n} from \"@messaia/cdk\";\r\n\r\n@Api('slider')\r\n@Table({\r\n projection: ['id', 'createdDate', 'client(displayName)', 'name', 'group', 'enabled'],\r\n})\r\nexport class Slider extends AuditEntity {\r\n /**\r\n * @property Slider name.\r\n * @description The title or identifier for the slider.\r\n * @type {string | undefined}\r\n */\r\n @required()\r\n @FormField({ row: 10 })\r\n @Column({})\r\n @Display($localize`:@@name:Name`)\r\n public name?: string;\r\n\r\n /**\r\n * @property Slider group.\r\n * @description A group identifier used to categorize sliders.\r\n * @type {string | undefined}\r\n */\r\n @required()\r\n @FormField({ row: 20 })\r\n @Column({ maxWidth: 150, display: Grid.Lg })\r\n @Display($localize`:@@group:Group`)\r\n public group?: string;\r\n\r\n /**\r\n * @property Slider content.\r\n * @description HTML or rich text content displayed within the slider.\r\n * @type {string | undefined}\r\n */\r\n @required()\r\n @FormField({ row: 50, type: FormFieldType.Editor })\r\n @Display($localize`:@@content:Content`)\r\n public content?: string;\r\n\r\n /**\r\n * @property Embedded style.\r\n * @description Optional CSS styling specific to this content.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({\r\n row: 60,\r\n type: FormFieldType.TextArea\r\n })\r\n @Display($localize`:@@style:Style`)\r\n public styleInline?: string;\r\n\r\n /**\r\n * @property Slider image path.\r\n * @description File path to the slider image, typically used internally.\r\n * @type {string | undefined}\r\n */\r\n @prop()\r\n public imagePath?: string;\r\n\r\n /**\r\n * @property Image file for the slider.\r\n * @description This property stores the image file for the slider, located in a common directory for slider images.\r\n * @type {string | undefined}\r\n */\r\n @FormField({\r\n row: 30,\r\n filePath: 'images/sliders',\r\n isPublicFile: true,\r\n fileExtensions: '.png,.jpg',\r\n change: (_, img, __, ctx: any) => ctx?.upload(img, 'images/sliders', true)\r\n })\r\n @Display($localize`:@@image:Image`)\r\n @prop()\r\n public image?: string;\r\n\r\n /**\r\n * @property CSS class.\r\n * @description Custom CSS class applied to the slider, useful for styling purposes.\r\n * @type {string | undefined}\r\n */\r\n @prop()\r\n @FormField({ row: 40 })\r\n @Display($localize`:@@cssClass:CSS Class`)\r\n public cssClass?: string;\r\n\r\n /**\r\n * @property Client ID.\r\n * @description Reference to the associated client or project.\r\n * @type {number | undefined}\r\n */\r\n @FormField({\r\n row: 1,\r\n endpoint: 'client?enabled=true&projection=id,name'\r\n })\r\n @Column({\r\n name: 'client.displayName',\r\n maxWidth: 250,\r\n display: Grid.Lg\r\n })\r\n @Display($localize`:@@project:Project`)\r\n @prop()\r\n public clientId?: number;\r\n\r\n /**\r\n * @property Ordering index.\r\n * @description Position of the slider in a sorted list.\r\n * @type {number | undefined}\r\n */\r\n @prop()\r\n @FormField({ row: 20 })\r\n @Display($localize`:@@ordering:Ordering`)\r\n public ordering?: number;\r\n\r\n /**\r\n * @property Enabled flag.\r\n * @description Indicates whether the slider is active or visible.\r\n * @type {boolean | undefined}\r\n */\r\n @prop()\r\n @FormField({ row: 100 })\r\n @Column({ event: 'toggle' })\r\n @Display($localize`:@@enabled:Enabled`)\r\n public enabled?: boolean;\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\n\r\nimport { AuthHelper, GlobalRoles } from \"@messaia/cdk\";\r\nimport { OidcSecurityService } from \"angular-auth-oidc-client\";\r\nimport { map, Observable } from \"rxjs\";\r\nimport { CmsSettings } from \"../models/cms-settings\";\r\n\r\n/**\r\n * Includes resolve service\r\n */\r\n@Injectable()\r\nexport class DocumentListProjectionResolve {\r\n /*\r\n * Injects the CmsSettings service using Angular's `inject()` function.\r\n * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n * commonly used in standalone components or functional-style Angular APIs.\r\n */\r\n private settings: CmsSettings = inject(CmsSettings);\r\n\r\n /**\r\n * Constructor\r\n * @param oidcSecurityService \r\n */\r\n constructor(private oidcSecurityService: OidcSecurityService,) { }\r\n\r\n /**\r\n * Resolves includes\r\n */\r\n resolve(): Observable<string[]> {\r\n var projection: any[] = [];\r\n\r\n return this.oidcSecurityService.checkAuth().pipe(map(x => {\r\n AuthHelper.user.isAuthenticated = x.isAuthenticated;\r\n if (x.userData) {\r\n AuthHelper.user = Object.assign(x.userData, {\r\n id: x.userData.sub,\r\n isAuthenticated: x.isAuthenticated\r\n });\r\n\r\n if (AuthHelper.hasRole(GlobalRoles.Administrator) && (this.settings?.multitenantable || this.settings?.multiClients)) {\r\n projection.push('client(displayName)');\r\n }\r\n\r\n if ((AuthHelper.hasRole(GlobalRoles.Administrator) || AuthHelper.hasRole(GlobalRoles.ClientAdministrator)) && (this.settings?.multitenantable || this.settings?.multiDepartments)) {\r\n projection.push('department(displayName)');\r\n }\r\n }\r\n\r\n return projection;\r\n }));\r\n }\r\n}","import { inject, Injectable } from \"@angular/core\";\r\n\r\nimport { Observable, of } from \"rxjs\";\r\nimport { CmsSettings } from \"../models/cms-settings\";\r\n\r\n/**\r\n * Excluded columns resolve service\r\n */\r\n@Injectable()\r\nexport class ExcludedColumnsResolve {\r\n /**\r\n * Injects the CmsSettings service using Angular's `inject()` function.\r\n * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n * commonly used in standalone components or functional-style Angular APIs.\r\n */\r\n private settings: CmsSettings = inject(CmsSettings);\r\n\r\n /**\r\n * Resolves excluded columns\r\n */\r\n resolve(): Observable<string[]> {\r\n return of(this.settings?.multitenantable ? [] : ['client.displayName']);\r\n }\r\n}","import { inject, Injectable } from \"@angular/core\";\r\n\r\nimport { Observable, of } from \"rxjs\";\r\nimport { CmsSettings } from \"../models/cms-settings\";\r\n\r\n/**\r\n * Excluded fields resolve service\r\n */\r\n@Injectable()\r\nexport class ExcludedFieldsResolve {\r\n /**\r\n * Injects the CmsSettings service using Angular's `inject()` function.\r\n * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n * commonly used in standalone components or functional-style Angular APIs.\r\n */\r\n private settings: CmsSettings = inject(CmsSettings);\r\n\r\n /**\r\n * Resolves excluded fields\r\n */\r\n resolve(): Observable<string[]> {\r\n return of(this.settings?.multitenantable ? [] : ['clientId']);\r\n }\r\n}","import { inject, Injectable } from \"@angular/core\";\r\n\r\nimport { AuthHelper } from \"@messaia/cdk\";\r\nimport { OidcSecurityService } from \"angular-auth-oidc-client\";\r\nimport { map, Observable } from \"rxjs\";\r\nimport { CmsSettings } from \"../models/cms-settings\";\r\n\r\n/**\r\n * Includes resolve service\r\n */\r\n@Injectable()\r\nexport class FormIncludesResolve {\r\n /**\r\n * Injects the CmsSettings service using Angular's `inject()` function.\r\n * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n * commonly used in standalone components or functional-style Angular APIs.\r\n */\r\n private settings: CmsSettings = inject(CmsSettings);\r\n\r\n /**\r\n * Constructor\r\n * @param oidcSecurityService \r\n */\r\n constructor(private oidcSecurityService: OidcSecurityService,) { }\r\n\r\n /**\r\n * Resolves includes\r\n */\r\n resolve(): Observable<string[]> {\r\n var includes: any[] = [];\r\n\r\n return this.oidcSecurityService.checkAuth().pipe(map(x => {\r\n AuthHelper.user.isAuthenticated = x.isAuthenticated;\r\n if (x.userData) {\r\n AuthHelper.user = Object.assign(x.userData, {\r\n id: x.userData.sub,\r\n isAuthenticated: x.isAuthenticated\r\n });\r\n\r\n if (this.settings?.multitenantable || this.settings?.multiClients) {\r\n includes.push('ClientJoins');\r\n }\r\n\r\n if (this.settings?.multitenantable || this.settings?.multiDepartments) {\r\n includes.push('DepartmentJoins');\r\n }\r\n }\r\n\r\n return includes;\r\n }));\r\n }\r\n}","import { inject, Injectable } from \"@angular/core\";\r\n\r\nimport { Observable, of } from \"rxjs\";\r\nimport { CmsSettings } from \"../models/cms-settings\";\r\n\r\n/**\r\n * Form validation resolve service\r\n */\r\n@Injectable()\r\nexport class FormValidationResolve {\r\n /**\r\n * Injects the CmsSettings service using Angular's `inject()` function.\r\n * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n * commonly used in standalone components or functional-style Angular APIs.\r\n */\r\n private settings: CmsSettings = inject(CmsSettings);\r\n\r\n /**\r\n * Resolves Form validation\r\n */\r\n resolve(): Observable<any> {\r\n return of(this.settings?.multitenantable ? { clientId: { required: true } } : {});\r\n }\r\n}","import { inject, Injectable } from \"@angular/core\";\r\n\r\nimport { AuthHelper, GlobalRoles } from \"@messaia/cdk\";\r\nimport { OidcSecurityService } from \"angular-auth-oidc-client\";\r\nimport { map, Observable } from \"rxjs\";\r\nimport { CmsSettings } from \"../models/cms-settings\";\r\n\r\n/**\r\n * Includes resolve service\r\n */\r\n@Injectable()\r\nexport class ListProjectionResolve {\r\n /**\r\n * Injects the CmsSettings service using Angular's `inject()` function.\r\n * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n * commonly used in standalone components or functional-style Angular APIs.\r\n */\r\n private settings: CmsSettings = inject(CmsSettings);\r\n\r\n /**\r\n * Constructor\r\n * @param oidcSecurityService \r\n */\r\n constructor(private oidcSecurityService: OidcSecurityService,) { }\r\n\r\n /**\r\n * Resolves includes\r\n */\r\n resolve(): Observable<string[]> {\r\n var projection: any[] = [];\r\n\r\n return this.oidcSecurityService.checkAuth().pipe(map(x => {\r\n AuthHelper.user.isAuthenticated = x.isAuthenticated;\r\n if (x.userData) {\r\n AuthHelper.user = Object.assign(x.userData, {\r\n id: x.userData.sub,\r\n isAuthenticated: x.isAuthenticated\r\n });\r\n\r\n if (AuthHelper.hasRole(GlobalRoles.Administrator) && (this.settings?.multitenantable || this.settings?.multiClients)) {\r\n projection.push('clientJoins(client(displayName))');\r\n }\r\n\r\n if ((AuthHelper.hasRole(GlobalRoles.Administrator) || AuthHelper.hasRole(GlobalRoles.ClientAdministrator)) && (this.settings?.multitenantable || this.settings?.multiDepartments)) {\r\n projection.push('departmentJoins(department(displayName))');\r\n }\r\n }\r\n\r\n return projection;\r\n }));\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot } from \"@angular/router\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { CmsSettings } from \"../models/cms-settings\";\r\n\r\n/**\r\n * Settings resolve service\r\n */\r\n@Injectable()\r\nexport class SettingsResolve {\r\n\r\n /**\r\n * Resolves settings\r\n */\r\n resolve(route: ActivatedRouteSnapshot): Observable<CmsSettings> {\r\n let settings = <CmsSettings>route.parent?.data['settings'];\r\n return of(settings);\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { ResolveData, RouterModule, Routes } from '@angular/router';\r\nimport { AuthHelper } from '@messaia/cdk';\r\nimport { DocumentType, VdDynamicFormComponent, VdDynamicListComponent } from '@messaia/cdk-base';\r\nimport { ContentFormComponent } from './components/content-form/content-form';\r\nimport { DocumentDialogComponent } from './components/document-dialog/document-dialog';\r\nimport { TemplateFormComponent } from './components/template-form/template-form';\r\nimport { ContentType } from './enums/content-type';\r\nimport { Content } from './models/content';\r\nimport { ContentVariable } from './models/content-variable';\r\nimport { Document } from './models/document';\r\nimport { Faq } from './models/faq';\r\nimport { Slider } from './models/slider';\r\nimport { Template } from './models/template';\r\nimport { DocumentListProjectionResolve } from './resolvers/document-list-projection.resolve';\r\nimport { ExcludedColumnsResolve } from './resolvers/excluded-columns.resolve';\r\nimport { ExcludedFieldsResolve } from './resolvers/excluded-fields.resolve';\r\nimport { FormIncludesResolve } from './resolvers/form-includes.resolve';\r\nimport { FormValidationResolve } from './resolvers/form-validation.resolve';\r\nimport { ListProjectionResolve } from './resolvers/list-projection.resolve';\r\nimport { SettingsResolve } from './resolvers/settings.resolve';\r\n\r\n\r\nconst ListResolve: ResolveData = {\r\n settings: SettingsResolve,\r\n projection: ListProjectionResolve,\r\n excludedColumns: ExcludedColumnsResolve\r\n};\r\n\r\nconst DocsListResolve: ResolveData = {\r\n settings: SettingsResolve,\r\n projection: DocumentListProjectionResolve,\r\n};\r\n\r\nconst FormResolve: ResolveData = {\r\n settings: SettingsResolve,\r\n updateIncludes: FormIncludesResolve,\r\n excludedFields: ExcludedFieldsResolve,\r\n formValidation: FormValidationResolve\r\n};\r\n\r\nconst routes: Routes = [\r\n { path: '', redirectTo: '/cms/contents/page', pathMatch: 'full' },\r\n { path: 'faq', redirectTo: '/cms/faqs', pathMatch: 'full' },\r\n\r\n { path: 'contents/page', component: VdDynamicListComponent, data: { classType: Content, query: { type: ContentType.Page } }, resolve: ListResolve },\r\n { path: 'contents/block', component: VdDynamicListComponent, data: { classType: Content, query: { type: ContentType.Block } }, resolve: ListResolve },\r\n { path: 'contents/:type/add', component: ContentFormComponent, resolve: FormResolve },\r\n { path: 'contents/:type/edit/:id', component: ContentFormComponent, resolve: FormResolve },\r\n\r\n { path: 'variables', component: VdDynamicListComponent, data: { classType: ContentVariable }, resolve: ListResolve },\r\n { path: 'variables/edit/:id', component: VdDynamicFormComponent, data: { classType: ContentVariable, subtitle: $localize`:@@variables:Variables` }, resolve: FormResolve },\r\n { path: 'variables/add', component: VdDynamicFormComponent, data: { classType: ContentVariable, subtitle: $localize`:@@variables:Variables` }, resolve: FormResolve },\r\n\r\n { path: 'templates', component: VdDynamicListComponent, data: { classType: Template, includes: 'Client' }, resolve: ListResolve },\r\n { path: 'templates/edit/:id', component: TemplateFormComponent, resolve: FormResolve },\r\n { path: 'templates/add', component: TemplateFormComponent, resolve: FormResolve },\r\n\r\n { path: 'faqs', component: VdDynamicListComponent, data: { classType: Faq }, resolve: ListResolve },\r\n { path: 'faqs/edit/:id', component: VdDynamicFormComponent, data: { classType: Faq, subtitle: $localize`:@@faq:FAQ` }, resolve: FormResolve },\r\n { path: 'faqs/add', component: VdDynamicFormComponent, data: { classType: Faq, query: { clientId: AuthHelper.user.clientId }, subtitle: $localize`:@@faq:FAQ` }, resolve: FormResolve },\r\n\r\n { path: 'sliders', component: VdDynamicListComponent, data: { classType: Slider }, resolve: ListResolve },\r\n { path: 'sliders/edit/:id', component: VdDynamicFormComponent, data: { classType: Slider, subtitle: $localize`:@@slider:Slider` }, resolve: FormResolve },\r\n { path: 'sliders/add', component: VdDynamicFormComponent, data: { classType: Slider, query: { clientId: AuthHelper.user.clientId }, subtitle: $localize`:@@slider:Slider` }, resolve: FormResolve },\r\n\r\n { path: 'documents', component: VdDynamicListComponent, data: { classType: Document, addDialogType: DocumentDialogComponent, query: { type: DocumentType.Document } }, resolve: DocsListResolve },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n providers: [\r\n SettingsResolve,\r\n ListProjectionResolve,\r\n DocumentListProjectionResolve,\r\n FormIncludesResolve,\r\n ExcludedColumnsResolve,\r\n ExcludedFieldsResolve,\r\n FormValidationResolve\r\n ]\r\n})\r\nexport class VdCmsRoutingModule { }","import { NgModule } from '@angular/core';\r\nimport { VdCmsRoutingModule } from './cms-routing.module';\r\n\r\n@NgModule({\r\n imports: [\r\n VdCmsRoutingModule\r\n ]\r\n})\r\nexport class VdCmsModule { }","export enum FaqScope {\r\n\tCustomerPortal,\r\n\tAdmin\r\n}","import { Injectable } from '@angular/core';\r\nimport { GenericService } from '@messaia/cdk';\r\nimport { map } from 'rxjs/operators';\r\nimport { ContentVariable } from '../models/content-variable';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ContentVariableService extends GenericService<ContentVariable> {\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper('contentVariable');\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if the specified alias is available.\r\n\t * @param id \r\n\t * @param alias \r\n\t */\r\n\tpublic isNameAvailable(item: ContentVariable) {\r\n\t\treturn this.create(item, '/isNameAvailable').pipe(map((x: any) => x.value));\r\n\t}\r\n}","import { Injectable } from '@angular/core';\r\nimport { GenericService } from '@messaia/cdk';\r\nimport { Faq } from '../models/faq';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class FaqService extends GenericService<Faq> {\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper('faq');\r\n\t}\r\n}","import { Injectable } from '@angular/core';\r\nimport { GenericService } from '@messaia/cdk';\r\nimport { Slider } from '../models/slider';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SliderService extends GenericService<Slider> {\r\n\r\n /**\r\n * Constructor\r\n */\r\n constructor() {\r\n super('slider');\r\n }\r\n}","/// <reference types=\"@angular/localize\" />\r\n\r\n/*\r\n * Public API Surface of cdk-base\r\n */\r\nexport * from './cms-routing.module';\r\nexport * from './cms.module';\r\nexport * from './components/content-form/content-form';\r\nexport * from './components/document-dialog/document-dialog';\r\nexport * from './components/document-form-base/document-form-base';\r\nexport * from './components/template-form/template-form';\r\nexport * from './components/template-preview-dialog/template-preview-dialog';\r\nexport * from './enums/content-type';\r\nexport * from './enums/faq-scope';\r\nexport * from './enums/template-type';\r\nexport * from './enums/wrap-tag';\r\nexport * from './models/cms-settings';\r\nexport * from './models/content';\r\nexport * from './models/content-client';\r\nexport * from './models/content-department';\r\nexport * from './models/content-variable';\r\nexport * from './models/content-variable-client';\r\nexport * from './models/content-variable-department';\r\nexport * from './models/document';\r\nexport * from './models/faq';\r\nexport * from './models/faq-client';\r\nexport * from './models/faq-department';\r\nexport * from './models/slider';\r\nexport * from './models/template';\r\nexport * from './models/template-client';\r\nexport * from './models/template-department';\r\nexport * from './models/template-preview';\r\nexport * from './resolvers/document-list-projection.resolve';\r\nexport * from './resolvers/excluded-columns.resolve';\r\nexport * from './resolvers/excluded-fields.resolve';\r\nexport * from './resolvers/form-includes.resolve';\r\nexport * from './resolvers/form-validation.resolve';\r\nexport * from './resolvers/list-projection.resolve';\r\nexport * from './resolvers/settings.resolve';\r\nexport * from './services/content';\r\nexport * from './services/content-variable';\r\nexport * from './services/document-generic';\r\nexport * from './services/document.service`';\r\nexport * from './services/faq';\r\nexport * from './services/slider';\r\nexport * from './services/template';\r\nexport * from './services/template-doc';\r\nexport * from './services/template-preview';\r\nexport * from './templates/document-form.template';\r\n\r\n","/*\r\n * Public API Surface of cdk-cms\r\n */\r\n\r\nexport * from './lib/public-api';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ContentService","i4","i7","i3","i5","i6","i8","i1.TemplateService","i2.TemplateDocService","map"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAAY;AAAZ,CAAA,UAAY,WAAW,EAAA;AACnB,IAAA,WAAA,CAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ;AACR,IAAA,WAAA,CAAA,WAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACT,CAAC,EAHW,WAAW,KAAX,WAAW,GAGtB,EAAA,CAAA,CAAA;;ICHW;AAAZ,CAAA,UAAY,OAAO,EAAA;AACf,IAAA,OAAA,CAAA,MAAA,CAAA,GAAA,EAAS;AACT,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,OAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,OAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACvB,CAAC,EANW,OAAO,KAAP,OAAO,GAMlB,EAAA,CAAA,CAAA;;MCLY,WAAW,CAAA;AACpB;;AAEG;IACI,YAAY,GAAa,KAAK;AAErC;;AAEG;IACI,gBAAgB,GAAa,KAAK;AAEzC;;AAEG;IACI,eAAe,GAAa,KAAK;AAExC;;AAEG;AACI,IAAA,gBAAgB;AAEvB;;AAEG;IACI,YAAY,GAAY,OAAO;AAEtC;;;AAGG;AACH,IAAA,WAAA,CAAmB,IAA2B,EAAA;AAC1C,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;;AAEhC;;AChCD;;AAEG;MACU,aAAa,CAAA;AACtB;;AAEG;AAEI,IAAA,SAAS;AAEhB;;AAEG;AAEI,IAAA,QAAQ;AAEf;;AAEG;AACI,IAAA,MAAM;AAEb;;AAEG;AACI,IAAA,UAAU;AAEjB;;;AAGG;AACH,IAAA,WAAA,CAAmB,IAA6B,EAAA;AAC5C,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;;AAEhC;AAzBU,UAAA,CAAA;AADN,IAAA,IAAI,EAAE;;AACmB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAMnB,UAAA,CAAA;AADN,IAAA,QAAQ,EAAE;;AACc,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;;ACd7B;;AAEG;MACU,iBAAiB,CAAA;AAC1B;;AAEG;AAEI,IAAA,SAAS;AAEhB;;AAEG;AAEI,IAAA,YAAY;AAEnB;;AAEG;AACI,IAAA,UAAU;AAEjB;;AAEG;AACI,IAAA,cAAc;AAErB;;;AAGG;AACH,IAAA,WAAA,CAAmB,IAAiC,EAAA;AAChD,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;;AAEhC;AAzBU,UAAA,CAAA;AADN,IAAA,IAAI,EAAE;;AACmB,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAMnB,UAAA,CAAA;AADN,IAAA,QAAQ,EAAE;;AACkB,CAAA,EAAA,iBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA;;ACJ1B,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,WAAW,CAAA;AACpC;;;;AAIG;AAEI,IAAA,IAAI;AAEX;;;;AAIG;AAEI,IAAA,SAAS;AAEhB;;;;AAIG;AAKI,IAAA,KAAK;AAEZ;;;;AAIG;AAKI,IAAA,IAAI;AAEX;;;;AAIG;AAII,IAAA,OAAO;AAEd;;;;AAIG;AAII,IAAA,OAAO,GAAY,OAAO,CAAC,OAAO;AAEzC;;;;AAIG;AAII,IAAA,MAAM;AAEb;;;;AAIG;AAII,IAAA,IAAI;AAEX;;;;AAIG;AAQI,IAAA,MAAM;AAEb;;;;AAIG;AAQI,IAAA,UAAU;AAEjB;;;;AAIG;AAQI,IAAA,QAAQ;AAEf;;;;AAIG;AAQI,IAAA,KAAK;AAEZ;;;;AAIG;IAII,SAAS,GAAY,IAAI;AAEhC;;;;AAIG;IAQI,OAAO,GAAY,IAAI;AAE9B;;;;AAIG;AA2BI,IAAA,WAAW;AAElB;;;;AAIG;AA6BI,IAAA,eAAe;;AA1Nf,UAAA,CAAA;AADN,IAAA,IAAI,EAAE;;AACmB,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAQnB,UAAA,CAAA;AADN,IAAA,IAAI,EAAE;;AACmB,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAWnB,UAAA,CAAA;AAJN,IAAA,QAAQ,EAAE;AACV,IAAA,MAAM,EAAE;AACR,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACtB,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,cAAA,CAAgB,CAAC;;AACb,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAWf,UAAA,CAAA;AAJN,IAAA,QAAQ,EAAE;AACV,IAAA,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;AAC3C,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACtB,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,YAAA,CAAc,CAAC;;AACZ,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAUd,UAAA,CAAA;AAHN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,KAAK,EAAE,CAAC;AACjD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,kBAAA,CAAoB,CAAC;;AACf,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAUjB,UAAA,CAAA;AAHN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACtB,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,YAAA,CAAc,CAAC;;AACS,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAUnC,UAAA,CAAA;AAHN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACtB,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,gBAAA,CAAkB,CAAC;;AACd,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAUhB,UAAA,CAAA;AAHN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;AAClD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,kBAAA,CAAoB,CAAC;;AAClB,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAcd,UAAA,CAAA;AAPN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC;AACP,QAAA,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,aAAa,CAAC,QAAQ;QAC5B,IAAI,EAAE,SAAS,CAAA,CAA6C,2CAAA;KAC/D,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,yBAAA,CAA2B,CAAC;;AACvB,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAchB,UAAA,CAAA;AAPN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC;AACP,QAAA,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,aAAa,CAAC,QAAQ;QAC5B,IAAI,EAAE,SAAS,CAAA,CAAiD,+CAAA;KACnE,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,yBAAA,CAA2B,CAAC;;AACnB,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA;AAcpB,UAAA,CAAA;AAPN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC;AACP,QAAA,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,aAAa,CAAC,QAAQ;QAC5B,IAAI,EAAE,SAAS,CAAA,CAAiD,+CAAA;KACnE,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,oBAAA,CAAsB,CAAC;;AAChB,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAclB,UAAA,CAAA;AAPN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC;AACP,QAAA,GAAG,EAAE,GAAG;QACR,IAAI,EAAE,aAAa,CAAC,QAAQ;QAC5B,IAAI,EAAE,SAAS,CAAA,CAAqD,mDAAA;KACvE,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,cAAA,CAAgB,CAAC;;AACb,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAUf,UAAA,CAAA;AAHN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACvB,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,uBAAA,CAAyB,CAAC;;AACX,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAc1B,UAAA,CAAA;AAPN,IAAA,IAAI,EAAE;AACN,IAAA,MAAM,CAAC;AACJ,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,KAAK,EAAE;KACV,CAAC;AACD,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACvB,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,kBAAA,CAAoB,CAAC;;AACR,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAiCxB,UAAA,CAAA;IA1BN,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAU,KAAK,IAAI,EAAE,CAAC;AACzD,IAAA,MAAM,CAAU;AACb,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,EAAE,gCAAgC;AACtC,QAAA,MAAM,EAAE,qCAAqC;AAC7C,QAAA,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS;QAC5G,OAAO,EAAE,IAAI,CAAC,EAAE;AAChB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC;KAC7G,CAAC;AACD,IAAA,SAAS,CAAyB;AAC/B,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,MAAM,EAAE,OAAO;AACX,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,UAAU,EAAE,gBAAgB;AAC5B,YAAA,MAAM,EAAE;SACX,CAAC;AACF,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;AAChD,QAAA,MAAM,EAAE,CAAC,CAAwC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAClI,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU;QACpC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;KAC5B,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,oBAAA,CAAsB,CAAC;;AACJ,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAmC9B,UAAA,CAAA;AA5BN,IAAA,IAAI,EAAE;AACN,IAAA,MAAM,CAAU;AACb,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,EAAE,wCAAwC;AAC9C,QAAA,MAAM,EAAE,6CAA6C;AACrD,QAAA,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS;QACpH,OAAO,EAAE,IAAI,CAAC,EAAE;AAChB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KACjH,CAAC;AACD,IAAA,SAAS,CAA6B;AACnC,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,MAAM,EAAE,CAAC,CAAC,MAAM;AACZ,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,UAAU,EAAE,gBAAgB;AAC5B,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ;SAC/C,CAAC;AACF,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC;AACtI,QAAA,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,YAAY;AACxD,QAAA,MAAM,EAAE,CAAC,CAAwC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,iBAAiB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9I,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,cAAc;QACxC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;KAC5B,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,0BAAA,CAA4B,CAAC;;AACF,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA;AAjOpC,OAAO,GAAA,UAAA,CAAA;IANnB,GAAG,CAAC,SAAS,CAAC;AACd,IAAA,KAAK,CAAC;AACH,QAAA,QAAQ,EAAE,SAAS;QACnB,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;AAC7D,QAAA,UAAU,EAAE;KACf;AACY,CAAA,EAAA,OAAO,CAkOnB;;ACxOK,MAAO,cAAe,SAAQ,cAAuB,CAAA;AAE1D;;AAEG;AACH,IAAA,WAAA,GAAA;QACC,KAAK,CAAC,SAAS,CAAC;;AAGjB;;;;AAIG;AACI,IAAA,gBAAgB,CAAC,IAAa,EAAA;QACpC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,mBAAmB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;;uGAfjE,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAd,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA;;2FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACsC5B,MAAO,oBAAqB,SAAQ,4BAAqD,CAAA;AAsD1E,IAAA,OAAA;AACT,IAAA,WAAA;AACA,IAAA,UAAA;AACS,IAAA,KAAA;AACA,IAAA,iBAAA;AAzDpB;;;;AAIG;AACa,IAAA,QAAQ,GAAgB,MAAM,CAAC,WAAW,CAAC;AAE3D;;AAEG;AACI,IAAA,iBAAiB;AAExB;;AAEG;AACI,IAAA,IAAI;AAEX;;AAEG;IACI,WAAW,GAAuB,WAAW;AAEpD;;AAEG;AACI,IAAA,QAAQ,GAAU,WAAW,CAAC,OAAO,CAAC,OAAO,CAAC;AAErD;;AAEG;AACI,IAAA,kBAAkB,GAAa,CAAC,KAAK,EAAE,KAAK,CAAC;AAEpD;;AAEG;AACH,IAAA,IAAI,cAAc,GAAA,EAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAE5D;;AAEG;AAEI,IAAA,WAAW;AAElB;;AAEG;AAEI,IAAA,eAAe;AAEtB;;AAEG;IACH,WACoB,CAAA,OAAuB,EAChC,WAAwB,EACxB,UAAsB,EACb,KAAqB,EACrB,iBAAoC,EAAA;QAEvD,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,CAAC;QAN9B,IAAO,CAAA,OAAA,GAAP,OAAO;QAChB,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAU,CAAA,UAAA,GAAV,UAAU;QACD,IAAK,CAAA,KAAA,GAAL,KAAK;QACL,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;AAIpC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE;AAClE,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;;AAGlC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE;AACtE,YAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC;;;AAIvC;;;AAGG;IACM,QAAQ,GAAA;;AAEhB,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAW,KAAI;AACpE,YAAA,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC;AACxD,SAAC,CAAC;;QAGF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAS,KAAI;AACvC,YAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc;AAC1C,SAAC,CAAC;QAEF,KAAK,CAAC,QAAQ,EAAE;;AAGjB;;;AAGG;IACI,eAAe,GAAA;QACrB,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,IAAI,CAAC,aAAa;;AAGpH;;AAEG;IACI,gBAAgB,GAAA;AACtB,QAAA,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAU,KAAI;YAClE,IAAI,CAAC,WAAY,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACrF,SAAC,CAAC;;AAGH;;AAEG;IACI,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;QAChC,IAAI,CAAC,YAAY,EAAE;AACnB,QAAA,IAAI,CAAC,eAAe,EAAE,MAAM,EAAE,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,IAAK,CAAC;;AAG3D;;;AAGG;AACI,IAAA,UAAU,CAAC,KAAwB,EAAA;;QAEzC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,EAAE;YAC/B,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AAChF,YAAA,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAE;AAC5C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;;;AAIlC,QAAA,IAAI,KAAK,CAAC,KAAK,EAAE;AAChB,YAAA,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE;;;AAIxB;;;AAGG;AACI,IAAA,aAAa,CAAC,MAAc,EAAA;AAClC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;AACvD,QAAA,IAAI,KAAK,IAAI,CAAC,EAAE;YACf,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,cAAc,CAAC,sBAAsB,EAAE;AAC5C,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE;;;AAInC;;AAEG;IACgB,WAAW,GAAA;QAC7B,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,EAAE,EAAW;YAChD,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,OAAO,EAAE,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,KAAK,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO;AAC9D,YAAA,SAAS,EAAE,IAAI,CAAC,IAAI,IAAI,WAAW,CAAC,KAAK,GAAG,KAAK,GAAG;AACpD,SAAA,CAAC;;AAGF,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACrB,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,iBAAiB,EAAE;AACjD,gBAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;;AAGhF,YAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC3B,gBAAA,IAAI,CAAC,eAAe,GAAG,CAAC,IAAI,iBAAiB,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,CAAC;;;;AAKjG,QAAA,IAAI,CAAC,mBAAmB,GAAG,KAAK;AAChC,QAAA,OAAO,IAAI;;AAGZ;;AAEG;IACgB,gBAAgB,GAAA;QAClC,KAAK,CAAC,gBAAgB,EAAE;QACxB,IAAI,CAAC,YAAY,EAAE;;AAGpB;;AAEG;IACK,YAAY,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,IAAI,CAAC,SAAS,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE;YAClG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;gBACtF,IAAI,EAAE,CAAC,CAAM,KAAK,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;AACnG,gBAAA,KAAK,EAAE,MAAM,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;AACnE,aAAA,CAAC;;aACI;YACN,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC;;;AAI1C;;;AAGG;IACK,eAAe,GAAA;QACtB,OAAO;AACN,YAAA,SAAS,EAAE,KAAK;AAChB,YAAA,OAAO,EAAE,CAAA,EAAG,IAAI,CAAC,aAAa,CAAiB,eAAA,CAAA;AAC/C,YAAA,kBAAkB,EAAE,KAAK;AACzB,YAAA,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE,YAAY,IAAI,OAAO;AAC9C,YAAA,iBAAiB,EAAE,kBAAkB;AACrC,YAAA,YAAY,EAAE,IAAI;AAClB,YAAA,0BAA0B,EAAE,IAAI;AAChC,YAAA,cAAc,EAAE,yDAAyD;AACzE,YAAA,cAAc,EAAE,MAAM;AACtB,YAAA,qBAAqB,EAAE,CAAC,QAAa,EAAE,QAAkB,KAAK,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;gBAC7F,IAAI,SAAS,GAAa,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,CAAgB,KAAK,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAClG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAA,MAAA,CAAQ,EAAE;AAClD,oBAAA,QAAQ,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI;AACrD,oBAAA,IAAI,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,GAAG,QAAQ,GAAG,eAAe;AACxD,oBAAA,QAAQ,EAAE;iBACV,CAAC,CAAC,SAAS,CAAC;AACZ,oBAAA,IAAI,EAAE,CAAC,KAAU,KAAI;wBACpB,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,cAAc,EAAE;;AAGhD,4BAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;;AAGhE,4BAAA,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;;AACnB,6BAAA,IAAI,KAAK,YAAY,YAAY,EAAE;AACzC,4BAAA,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;AAC/B,4BAAA,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;;qBAE/B;AACD,oBAAA,KAAK,EAAE,CAAC,KAAU,KAAI;AACrB,wBAAA,MAAM,CAAC,mDAAmD,GAAG,KAAK,CAAC;AACnE,wBAAA,OAAO,CAAC,GAAG,CAAC,mDAAmD,GAAG,KAAK,CAAC;;AAEzE,iBAAA,CAAC;AAEF,gBAAA,OAAO,EAAE,CAAC,EAAE,CAAC;AACd,aAAC,CAAC;YACF,KAAK,EAAE,UAAU,MAAW,EAAA;;gBAE3B,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,gBAAgB,EAAE;AAClD,oBAAA,IAAI,EAAE,UAAU;oBAChB,KAAK,EAAE,UAAU,QAAa,EAAA;AAC7B,wBAAA,QAAQ,CAAC;AACR,4BAAA;AACC,gCAAA,IAAI,EAAE,UAAU;AAChB,gCAAA,IAAI,EAAE,UAAU;gCAChB,QAAQ,EAAE,MAAM,MAAM,CAAC,aAAa,CAAC,cAAc;AACnD,6BAAA;AACD,4BAAA;AACC,gCAAA,IAAI,EAAE,UAAU;AAChB,gCAAA,IAAI,EAAE,OAAO;gCACb,QAAQ,EAAE,MAAM,MAAM,CAAC,aAAa,CAAC,sBAAsB;AAC3D,6BAAA;AACD,4BAAA;AACC,gCAAA,IAAI,EAAE,UAAU;AAChB,gCAAA,IAAI,EAAE,gBAAgB;gCACtB,QAAQ,EAAE,MAAM,MAAM,CAAC,aAAa,CAAC,mBAAmB;AACxD,6BAAA;AACD,yBAAA,CAAC;;AAEH,iBAAA,CAAC;;SAEH;;AAGF;;AAEG;IACM,WAAW,GAAA;QACnB,KAAK,CAAC,WAAW,EAAE;AACnB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC3B,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;;;uGA/Q1B,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,MAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC3CjC,i4FAiDgB,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDxBd,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;gBAEZ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,qBAAqB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,YAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,WAAA,EAAA,OAAA,EAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,YAAA,EAAA,SAAA,EAAA,QAAA,EAAA,cAAA,EAAA,QAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACrB,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,IAAA,EAAA,cAAA,EAAA,cAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,SAAA,EAAA,aAAA,EAAA,eAAA,EAAA,cAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA;;AAEZ,gBAAA,kBAAkB,EAClB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,kBAAkB,EAClB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,eAAe,qXACf,2BAA2B,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,UAAA,EAAA,OAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA;;AAE3B,gBAAA,oBAAoB,mPACpB,yBAAyB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,cAAA,EAAA,WAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACzB,sBAAsB,EACtB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,iBAAiB,mEACjB,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAGL,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAtBhC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAEnB,OAAA,EAAA;wBACR,YAAY;;wBAEZ,mBAAmB;wBACnB,qBAAqB;wBACrB,YAAY;;wBAEZ,kBAAkB;wBAClB,kBAAkB;wBAClB,eAAe;wBACf,2BAA2B;;wBAE3B,oBAAoB;wBACpB,yBAAyB;wBACzB,sBAAsB;wBACtB,iBAAiB;wBACjB;AACA,qBAAA,EAAA,QAAA,EAAA,i4FAAA,EAAA;kMA4CM,WAAW,EAAA,CAAA;sBADjB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAO7B,eAAe,EAAA,CAAA;sBADrB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;;;AEjFhC,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,YAAY,CAAA;AACtC;;AAEG;AAmBI,IAAA,QAAQ,GAAY,UAAU,CAAC,IAAI,CAAC,QAAQ;AAEnD;;AAEG;AAoBI,IAAA,YAAY,GAAY,UAAU,CAAC,IAAI,CAAC,YAAY;AAE3D;;AAEG;IAEI,IAAI,GAAW,MAAM;AAE5B;;;AAGG;AACH,IAAA,WAAA,CAAmB,IAAwB,EAAA;QACvC,KAAK,CAAC,IAAI,CAAC;AACX,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;;;AAtCtB,UAAA,CAAA;AAlBN,IAAA,QAAQ,EAAE;AACV,IAAA,MAAM,CAAC;AACJ,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,MAAM,EAAE,oBAAoB;AAC5B,QAAA,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,IAAI,CAAC,EAAE;AAChB,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC;KAC7G,CAAC;AACD,IAAA,SAAS,CAAW;AACjB,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,QAAQ,EAAE,QAAQ;AAClB,QAAA,UAAU,EAAE,SAAS;AACrB,QAAA,MAAM,EAAE,CAAC,CAAC,KAAO,EAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA,EAAE;AAC3C,QAAA,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC;AAChC,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,GAAG,EAAE,WAAW,EAAE;KAC3C,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,kBAAA,CAAoB,CAAC;;AACa,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAwB7C,UAAA,CAAA;AAnBN,IAAA,IAAI,EAAE;AACN,IAAA,MAAM,CAAC;AACJ,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,IAAI,EAAE,wBAAwB;AAC9B,QAAA,MAAM,EAAE,wBAAwB;AAChC,QAAA,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,IAAI,CAAC,EAAE;AAChB,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KACjH,CAAC;AACD,IAAA,SAAS,CAAW;AACjB,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,UAAU,EAAE,SAAS;QACrB,MAAM,EAAE,CAAC,CAAC,KAAO,EAAA,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA,EAAE;AACjE,QAAA,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC;AAC5C,QAAA,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ;AAC/C,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,GAAG,EAAE,WAAW,EAAE;KAC3C,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,wBAAA,CAA0B,CAAC;;AACe,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA;AAMrD,UAAA,CAAA;AADN,IAAA,QAAQ,EAAE;;AACkB,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AApDpB,QAAQ,GAAA,UAAA,CAAA;AANpB,IAAA,KAAK,CAAC;AACH,QAAA,QAAQ,EAAE,UAAU;QACpB,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC;AACpE,QAAA,QAAQ,EAAE,KAAK;AACf,QAAA,YAAY,EAAE;KACjB,CAAC;;AACW,CAAA,EAAA,QAAQ,CA8DpB;;ACpEK,MAAgB,sBAAuD,SAAQ,cAAyB,CAAA;AAE1G;;;AAGG;AACH,IAAA,WAAA,CAAY,WAAoB,EAAA;QAC5B,KAAK,CAAC,WAAW,CAAC;;AAEzB;;ACNK,MAAO,eAAgB,SAAQ,sBAAgC,CAAA;AAEjE;;AAEG;AACH,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,UAAU,CAAC;;AAGrB;;;AAGG;AACI,IAAA,QAAQ,CAAC,EAAU,EAAA;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA,SAAA,EAAY,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;;uGAdrC,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAf,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cADF,MAAM,EAAA,CAAA;;2FACnB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACHrB,MAAA,oBAAoB,GAAG,CAAA;;;;;;;;;;;;;;;;;ACO9B,MAAgB,yBAAsH,SAAQ,4BAAyD,CAAA;AAe3L,IAAA,UAAA;AACA,IAAA,eAAA;AACA,IAAA,WAAA;AACA,IAAA,SAAA;AACS,IAAA,KAAA;AACA,IAAA,iBAAA;AACT,IAAA,IAAA;AApBd;;AAEG;IACI,WAAW,GAAY,KAAK;AAEnC;;AAEG;IACI,cAAc,GAAW,CAAC;AAEjC;;AAEG;AACH,IAAA,WAAA,CACc,UAA2B,EAC3B,eAAiC,EACjC,WAAwB,EACxB,SAA+E,EACtE,KAAqB,EACrB,iBAAoC,EAC7C,IAAe,EAAA;QAEzB,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,KAAK,EAAE,iBAAiB,CAAC;QARlD,IAAU,CAAA,UAAA,GAAV,UAAU;QACV,IAAe,CAAA,eAAA,GAAf,eAAe;QACf,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAS,CAAA,SAAA,GAAT,SAAS;QACA,IAAK,CAAA,KAAA,GAAL,KAAK;QACL,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;QAC1B,IAAI,CAAA,IAAA,GAAJ,IAAI;AAGd,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;;AAGpB;;AAEG;AACI,IAAA,MAAM,CAAC,IAAqB,EAAA;AAC/B,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;AACd,YAAA,IAAI,CAAC;iBACA,MAAM,CAAC,IAAY,EAAE,CAAQ,MAAA,CAAA,EAAE,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAClG,iBAAA,SAAS,CAAC;AACP,gBAAA,IAAI,EAAE,CAAC,KAAK,KAAI;oBACZ,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,CAAC,cAAc,EAAE;;AAG7C,wBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC;;AAGhE,wBAAA,IAAI,CAAC,cAAc,GAAG,WAAW;;AAC9B,yBAAA,IAAI,KAAK,YAAY,YAAY,EAAE;wBACtC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAW,KAAK,CAAC,IAAI,CAAC;;iBAEjD;gBACD,QAAQ,EAAE,MAAM,IAAI,CAAC,WAAW,GAAG,KAAK;gBACxC,KAAK,EAAE,MAAM,IAAI,CAAC,WAAW,GAAG;AACnC,aAAA,CAAC;;;AAId;;;;AAIG;AACgB,IAAA,aAAa,CAAC,EAAiB,GAAA,UAAU,CAAC,YAAY,EAAE,KAAU,IAAI,EAAA;AACrF,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QACrB,IAAI,CAAC,MAAM,EAAE;;AAGjB;;AAEG;IACI,MAAM,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;QACtB,IAAI,CAAC,UAAU,EAAE;;AAGrB;;AAEG;IACgB,WAAW,GAAA;AAC1B,QAAA,OAAO,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC;AACvD,YAAA,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ;AACpC,YAAA,YAAY,EAAE,IAAI,CAAC,WAAW,EAAE;SACnC,CAAC,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;;uGA9EP,yBAAyB,EAAA,IAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAD9C;;;ACgBK,MAAO,uBAAwB,SAAQ,yBAAoD,CAAA;AAM5E,IAAA,eAAA;AACA,IAAA,WAAA;AACA,IAAA,KAAA;AACA,IAAA,iBAAA;AACH,IAAA,SAAA;AACyB,IAAA,IAAA;AAT1C;;AAEG;AACH,IAAA,WAAA,CACoB,eAAgC,EAChC,WAAwB,EACxB,KAAqB,EACrB,iBAAoC,EACvC,SAAgD,EACvB,IAAiB,GAAA,IAAI,QAAQ,EAAE,EAAA;AAExE,QAAA,KAAK,CAAC,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,CAAC;QAPrE,IAAe,CAAA,eAAA,GAAf,eAAe;QACf,IAAW,CAAA,WAAA,GAAX,WAAW;QACX,IAAK,CAAA,KAAA,GAAL,KAAK;QACL,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;QACpB,IAAS,CAAA,SAAA,GAAT,SAAS;QACgB,IAAI,CAAA,IAAA,GAAJ,IAAI;;AAK9C;;AAEG;IACgB,iBAAiB,GAAA;AACnC,QAAA,IAAI,CAAC,IAAK,CAAC,QAAQ,GAAG,IAAI;;AApBf,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,sKAW1B,eAAe,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAXZ,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,0hCAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EARlC,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,8DAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACf,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,sBAAsB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACtB,oBAAoB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAGT,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAZnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,OAAO,EAAE;wBACR,YAAY;wBACZ,mBAAmB;wBACnB,eAAe;wBACf,kBAAkB;wBAClB,sBAAsB;wBACtB;AACA;AACD,iBAAA;;0BAYE,MAAM;2BAAC,eAAe;;;ICnCb;AAAZ,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,YAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACL,IAAA,YAAA,CAAA,YAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAG;AACP,CAAC,EAHW,YAAY,KAAZ,YAAY,GAGvB,EAAA,CAAA,CAAA;;ACDD;;AAEG;MACU,cAAc,CAAA;AACvB;;AAEG;AAEI,IAAA,UAAU;AAEjB;;AAEG;AAEI,IAAA,QAAQ;AAEf;;AAEG;AACI,IAAA,MAAM;AAEb;;AAEG;AACI,IAAA,UAAU;AAEjB;;;AAGG;AACH,IAAA,WAAA,CAAmB,IAA8B,EAAA;AAC7C,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;;AAEhC;AAzBU,UAAA,CAAA;AADN,IAAA,IAAI,EAAE;;AACoB,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA;AAMpB,UAAA,CAAA;AADN,IAAA,QAAQ,EAAE;;AACc,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;;ACd7B;;AAEG;MACU,kBAAkB,CAAA;AAC3B;;AAEG;AAEI,IAAA,UAAU;AAEjB;;AAEG;AAEI,IAAA,YAAY;AAEnB;;AAEG;AACI,IAAA,UAAU;AAEjB;;AAEG;AACI,IAAA,cAAc;AAErB;;;AAGG;AACH,IAAA,WAAA,CAAmB,IAAkC,EAAA;AACjD,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;;AAEhC;AAzBU,UAAA,CAAA;AADN,IAAA,IAAI,EAAE;;AACoB,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,YAAA,EAAA,KAAA,CAAA,CAAA;AAMpB,UAAA,CAAA;AADN,IAAA,QAAQ,EAAE;;AACkB,CAAA,EAAA,kBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA;;ACL1B,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,WAAW,CAAA;AACxC;;AAEG;AAQI,IAAA,IAAI,GAAiB,YAAY,CAAC,KAAK;AAE9C;;AAEG;AAQI,IAAA,IAAI;AAEX;;AAEG;AAWI,IAAA,KAAK;AAEZ;;AAEG;AAQI,IAAA,OAAO;AAEd;;AAEG;AAQI,IAAA,GAAG;AAEV;;AAEG;AAQI,IAAA,MAAM;AAEb;;AAEG;AAGI,IAAA,KAAK;AAEZ;;AAEG;AAEI,IAAA,OAAO;AAEd;;AAEG;AAEI,IAAA,SAAS;AAEhB;;AAEG;AA+BI,IAAA,WAAW;AAElB;;AAEG;AAgCI,IAAA,eAAe;AAEtB;;AAEG;AAQI,IAAA,OAAO;AAEd;;AAEG;IAEI,WAAW,GAAiB,EAAE;;AA3K9B,UAAA,CAAA;AAPN,IAAA,QAAQ,EAAE;AACV,IAAA,SAAS,CAAC;AACV,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,QAAQ,EAAE,YAAY;QACtB,SAAS,EAAE,CAAC,SAAS;KACrB,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,YAAA,CAAc,CAAC;;AACc,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAYxC,UAAA,CAAA;AAPN,IAAA,QAAQ,EAAE;AACV,IAAA,MAAM,EAAE;AACR,IAAA,SAAS,CAAC;AACV,QAAA,GAAG,EAAE,EAAE;QACP,SAAS,EAAE,CAAC,SAAS;KACrB,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,YAAA,CAAc,CAAC;;AACZ,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAed,UAAA,CAAA;AAVN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAW;AACpB,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,QAAQ,EAAE,aAAa;AACvB,QAAA,kBAAkB,EAAE,KAAK;AACzB,QAAA,mBAAmB,EAAE,KAAK;QAC1B,SAAS,EAAE,CAAC,SAAS,CAAC;AACtB,QAAA,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,GAAQ,KAAK,GAAG,EAAE,SAAS;KAChD,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,cAAA,CAAgB,CAAC;;AACb,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAYf,UAAA,CAAA;AAPN,IAAA,IAAI,EAAE;AACN,IAAA,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;AAC3C,IAAA,SAAS,CAAC;AACV,QAAA,GAAG,EAAE,EAAE;QACP,SAAS,EAAE,CAAC,SAAS;KACrB,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,kBAAA,CAAoB,CAAC;;AACf,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAYjB,UAAA,CAAA;AAPN,IAAA,QAAQ,EAAE;AACV,IAAA,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;AAC3C,IAAA,SAAS,CAAC;AACV,QAAA,GAAG,EAAE,EAAE;QACP,SAAS,EAAE,CAAC,SAAS;KACrB,CAAC;IACD,OAAO,CAAC,KAAK,CAAC;;AACK,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,KAAA,EAAA,KAAA,CAAA,CAAA;AAYb,UAAA,CAAA;AAPN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC;AACV,QAAA,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,aAAa,CAAC,QAAQ;QAC5B,SAAS,EAAE,CAAC,SAAS;KACrB,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,gBAAA,CAAkB,CAAC;;AACd,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAOhB,UAAA,CAAA;AAFN,IAAA,IAAI,EAAE;AACN,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,cAAA,CAAgB,CAAC;;AACb,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAMf,UAAA,CAAA;AADN,IAAA,QAAQ,EAAE;;AACa,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAMjB,UAAA,CAAA;AADN,IAAA,IAAI,EAAE;;AACmB,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAmCnB,UAAA,CAAA;IA9BN,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAW,KAAK,IAAI,EAAE,CAAC;AAC1D,IAAA,MAAM,CAAW;AACjB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,gCAAgC;AACxC,QAAA,MAAM,EAAE,qCAAqC;AAC7C,QAAA,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS;QAC3G,OAAO,EAAE,IAAI,CAAC,EAAE;AAChB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,GAAG,CAAC,aAAa;KACnI,CAAC;AACD,IAAA,SAAS,CAA2B;AACpC,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,MAAK;YACZ,OAAO;AACN,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,UAAU,EAAE,gBAAgB;AAC5B,gBAAA,MAAM,EAAE;aACR;SACD;AACD,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,WAAW,EAAE,MAAM;QACnB,SAAS,EAAE,CAAC,SAAS,CAAC;AACtB,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,GAAG,CAAC,aAAa;AACnI,QAAA,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;AAChD,QAAA,MAAM,EAAE,CAAC,CAAwC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACnI,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU;QACpC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;KACzB,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,oBAAA,CAAsB,CAAC;;AACH,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAoC/B,UAAA,CAAA;AA/BN,IAAA,IAAI,EAAE;AACN,IAAA,MAAM,CAAW;AACjB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,MAAM,EAAE,wCAAwC;AAChD,QAAA,MAAM,EAAE,6CAA6C;AACrD,QAAA,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS;QACnH,OAAO,EAAE,IAAI,CAAC,EAAE;AAChB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAC9G,CAAC;AACD,IAAA,SAAS,CAA+B;AACxC,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,MAAM,EAAE,CAAC,CAAC,KAAI;YACb,OAAO;AACN,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,UAAU,EAAE,gBAAgB;AAC5B,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ;aAC5C;SACD;AACD,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,WAAW,EAAE,MAAM;QACnB,SAAS,EAAE,CAAC,SAAS,CAAC;AACtB,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC;AACtI,QAAA,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,YAAY;AACxD,QAAA,MAAM,EAAE,CAAC,CAAwC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,kBAAkB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/I,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,cAAc;QACxC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;KACzB,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,0BAAA,CAA4B,CAAC;;AACD,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA;AAYvC,UAAA,CAAA;AAPN,IAAA,IAAI,EAAE;AACN,IAAA,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC3B,IAAA,SAAS,CAAC;AACV,QAAA,GAAG,EAAE,GAAG;QACR,SAAS,EAAE,CAAC,SAAS;KACrB,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,kBAAA,CAAoB,CAAC;;AACjB,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAMf,UAAA,CAAA;AADN,IAAA,IAAI,EAAE;;AAC+B,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAtL1B,QAAQ,GAAA,UAAA,CAAA;AALpB,IAAA,KAAK,CAAC;AACN,QAAA,QAAQ,EAAE,UAAU;AACpB,QAAA,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC;AAC9E,QAAA,UAAU,EAAE;KACZ;AACY,CAAA,EAAA,QAAQ,CAuLpB;;MChMY,eAAe,CAAA;AACxB;;AAEG;AACI,IAAA,IAAI;AAEX;;AAEG;AACI,IAAA,QAAQ;AAEf;;AAEG;AACI,IAAA,WAAW;AAElB;;AAEG;AACI,IAAA,UAAU;AAEjB;;AAEG;AACI,IAAA,QAAQ;AAEf;;AAEG;AACI,IAAA,UAAU;AAEjB;;AAEG;AACI,IAAA,KAAK;AAEZ;;AAEG;AACI,IAAA,OAAO;AAEd;;AAEG;AACI,IAAA,OAAO;AAEd;;;AAGG;AACH,IAAA,WAAA,CAAmB,IAA+B,EAAA;AAC9C,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;;AAEhC;;AClDK,MAAO,eAAgB,SAAQ,cAAwB,CAAA;AAE5D;;AAEG;AACH,IAAA,WAAA,GAAA;QACC,KAAK,CAAC,UAAU,CAAC;;uGANN,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAf,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cADF,MAAM,EAAA,CAAA;;2FACnB,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACC5B,MAAO,kBAAmB,SAAQ,cAAwB,CAAA;AAE/D;;AAEG;AACH,IAAA,WAAA,GAAA;QACC,KAAK,CAAC,aAAa,CAAC;;uGANT,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cADL,MAAM,EAAA,CAAA;;2FACnB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACC5B,MAAO,sBAAuB,SAAQ,cAA+B,CAAA;AAE1E;;AAEG;AACH,IAAA,WAAA,GAAA;QACC,KAAK,CAAC,iBAAiB,CAAC;;uGANb,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA;;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;AC6B5B,MAAO,8BAA+B,SAAQ,aAAa,CAAA;AAoD/C,IAAA,OAAA;AACH,IAAA,SAAA;AACyB,IAAA,IAAA;AACb,IAAA,KAAA;AACA,IAAA,iBAAA;AAtDvB;;AAEG;IACI,YAAY,GAAwB,YAAY;AAEvD;;AAEG;AACI,IAAA,OAAO;AAEd;;AAEG;AACI,IAAA,MAAM;AAEb;;AAEG;IACI,IAAI,GAAG,IAAI;AAElB;;AAEG;IACI,SAAS,GAA8C,YAAY;AAE1E;;AAEG;IACI,WAAW,GAAG,KAAK;AAE1B;;;;AAIG;AAEI,IAAA,SAAS;AAEhB;;AAEG;AAEI,IAAA,UAAU;AAEjB;;;;AAIG;IACH,WACc,CAAA,OAA+B,EAClC,SAAuD,EAC9B,IAAqB,EAClC,KAAqB,EACrB,iBAAoC,EAAA;AAEvD,QAAA,KAAK,CAAC,KAAK,EAAE,iBAAiB,CAAC;QANrB,IAAO,CAAA,OAAA,GAAP,OAAO;QACV,IAAS,CAAA,SAAA,GAAT,SAAS;QACgB,IAAI,CAAA,IAAA,GAAJ,IAAI;QACjB,IAAK,CAAA,KAAA,GAAL,KAAK;QACL,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;AAGpC,QAAA,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,EAAE;;AAGxE;;;AAGG;IACM,QAAQ,GAAA;;AAEb,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QAErB,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,YAAY,CAAC,GAAG,EAAE;AACpC,YAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC,CAAC,SAAS,CAAC;AACjF,gBAAA,IAAI,EAAE,CAAC,CAAC,KAAI;;AAER,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;AAGtB,oBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,CAAM,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;;oBAG9D,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;iBAClD;gBACD,KAAK,EAAE,MAAK;;AAER,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;AAE7B,aAAA,CAAC;;aACC;YACH,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;AACrC,gBAAA,IAAI,EAAE,CAAC,CAAM,KAAI;;AAEb,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;oBAGtB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;;AAG3B,oBAAA,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa;oBAC5C,IAAI,MAAM,EAAE;;wBAER,MAAM,GAAG,GAAG,MAAM,CAAC,eAAe,IAAI,MAAM,CAAC,aAAa,CAAC,QAAQ;;wBAGnE,GAAG,CAAC,IAAI,EAAE;wBACV,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,IAAI,EAAE,CAAC;wBAC3B,GAAG,CAAC,KAAK,EAAE;;iBAElB;gBACD,KAAK,EAAE,MAAK;;AAER,oBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;;AAE7B,aAAA,CAAC;;;AAIV;;AAEG;IACI,QAAQ,GAAA;;QAEX,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;AACzB,YAAA,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC;;AAGvD,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,SAAS,CAAC;AAClD,YAAA,IAAI,EAAE,CAAC,CAAC,KAAI;AACR,gBAAA,IAAI,CAAC,SAAS,GAAG,KAAK;gBACtB,YAAY,CAAC,OAAO,CAAC,sBAAsB,EAAE,IAAI,CAAC,IAAI,CAAC,KAAM,CAAC;gBAC9D,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,SAAS,CAAA,CAAA,gDAAA,CAAkD,EAAE,SAAS,EAAE;AAC9F,oBAAA,QAAQ,EAAE,IAAI;oBACd,UAAU,EAAE,CAAC,SAAS;AACzB,iBAAA,CAAC;aACL;YACD,KAAK,EAAE,MAAM,IAAI,CAAC,SAAS,GAAG;AACjC,SAAA,CAAC;;AAGN;;AAEG;IACI,QAAQ,GAAA;AACX,QAAA,MAAM,CAAC,IAAI,CAAC,OAAQ,EAAE,SAAS,CAAC;;AAGpC;;AAEG;IACI,MAAM,GAAA;AACT,QAAA,IAAI,CAAC,IAAI,IAAI,GAAG;;AAGpB;;AAEG;IACI,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG;;AAGrB;;AAEG;IACI,MAAM,GAAA;AACT,QAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;;AAG1B;;AAEG;IACI,cAAc,GAAA;AACjB,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW;;AAEpC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AAClB,YAAA,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,aAAa,CAAC;;aACxC;AACH,YAAA,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,aAAa,CAAC;;;AA/K7C,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,iFAsD3B,eAAe,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAtDlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,8BAA8B,qSCjC3C,4sIAwEO,EAAA,MAAA,EAAA,CAAA,qcAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDlDC,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,0IACP,kBAAkB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,OAAA,EAAA,YAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAClB,oBAAoB,EACpB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,aAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,UAAU,uFACV,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACP,gBAAgB,EAChB,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,KAAA,EAAA,aAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,m5CACX,eAAe,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,KAAA,EAAA,YAAA,EAAA,MAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAGV,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAhB1C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAGvB,OAAA,EAAA;wBACL,YAAY;wBACZ,OAAO;wBACP,kBAAkB;wBAClB,oBAAoB;wBACpB,UAAU;wBACV,OAAO;wBACP,gBAAgB;wBAChB,WAAW;wBACX;AACH,qBAAA,EAAA,QAAA,EAAA,4sIAAA,EAAA,MAAA,EAAA,CAAA,qcAAA,CAAA,EAAA;;0BAwDI,MAAM;2BAAC,eAAe;wGAhBpB,SAAS,EAAA,CAAA;sBADf,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,WAAW,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAOlC,UAAU,EAAA,CAAA;sBADhB,SAAS;uBAAC,OAAO;;;AErChB,MAAO,qBAAsB,SAAQ,4BAAuD,CAAA;AAqD7E,IAAA,OAAA;AACT,IAAA,kBAAA;AACA,IAAA,WAAA;AACS,IAAA,MAAA;AACA,IAAA,KAAA;AACA,IAAA,iBAAA;AAzDpB;;;;AAIG;AACa,IAAA,QAAQ,GAAgB,MAAM,CAAC,WAAW,CAAC;AAE3D;;AAEG;IACI,YAAY,GAAwB,YAAY;AAEvD;;AAEG;AACH,IAAA,IAAI,kBAAkB,GAAA,EAAK,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAEpE;;AAEG;AACa,IAAA,aAAa,GAAQ;AACpC,QAAA,WAAW,EAAE,IAAI;AACjB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,aAAa,EAAE,IAAI;AACnB,QAAA,eAAe,EAAE,IAAI;AACrB,QAAA,IAAI,EAAE,WAAW;AACjB,QAAA,OAAO,EAAE;KACT;AAED;;AAEG;AACI,IAAA,iBAAiB,GAAQ;AAC/B,QAAA,WAAW,EAAE,IAAI;AACjB,QAAA,KAAK,EAAE,UAAU;AACjB,QAAA,aAAa,EAAE,IAAI;AACnB,QAAA,eAAe,EAAE,IAAI;AACrB,QAAA,IAAI,EAAE;AACL,YAAA,IAAI,EAAE,YAAY;AAClB,YAAA,IAAI,EAAE,IAAI;AACV,YAAA,eAAe,EAAE;AACjB,SAAA;AACD,QAAA,OAAO,EAAE,OAAO;AAChB,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,cAAc,EAAE,KAAK;AACrB,QAAA,OAAO,EAAE;KACT;AAED;;AAEG;IACH,WACoB,CAAA,OAAwB,EACjC,kBAAsC,EACtC,WAAwB,EACf,MAAiB,EACjB,KAAqB,EACrB,iBAAoC,EAAA;QAEvD,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,CAAC;QAP/B,IAAO,CAAA,OAAA,GAAP,OAAO;QAChB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;QAClB,IAAW,CAAA,WAAA,GAAX,WAAW;QACF,IAAM,CAAA,MAAA,GAAN,MAAM;QACN,IAAK,CAAA,KAAA,GAAL,KAAK;QACL,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB;AAIpC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE;AAClE,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC;;AAGlC,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE;AACtE,YAAA,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,IAAI,CAAC;;;AAIvC;;;AAGG;AACI,IAAA,gBAAgB,CAAC,UAAsB,EAAA;QAC7C,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE;AAC1C,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AAChE,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACf,gBAAA,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC;AAC9B,oBAAA,OAAO,EAAE,6CAA6C;AACtD,oBAAA,KAAK,EAAE,oBAAoB;oBAC3B,YAAY,EAAE,SAAS,CAAA,CAAkB,gBAAA,CAAA;oBACzC,YAAY,EAAE,SAAS,CAAA,CAAY,UAAA,CAAA;iBACnC,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,CAAC,MAAe,KAAI;oBAC9C,IAAI,MAAM,EAAE;wBACX,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;AAC9C,wBAAA,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE;AAChD,wBAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;;AAEvC,iBAAC,CAAC;;;;AAKL;;;AAGG;AACI,IAAA,gBAAgB,CAAC,MAAa,EAAA;AACpC,QAAA,IAAI,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAA2B,EAAC,KAAK,IAAI,EAAE,EAAE,CAAC,CAAC;AAChE,QAAA,IAAI,IAAI,IAAI,IAAI,EAAE;;;;;;;;;;;;;;;;AAmBnB;;;AAGG;AACI,IAAA,kBAAkB,CAAC,UAAsB,EAAA;AAC/C,QAAA,IAAI,UAAU,CAAC,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,UAAU,CAAC,EAAE,CAAA,CAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAG;gBAC1E,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC;AACrD,aAAC,CAAC;;;AAIJ;;AAEG;IACI,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,8BAA8B,EAAE;AAChD,YAAA,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,YAAY,CAAC,GAAG,GAAG,QAAQ,GAAG,OAAO;YAC/D,IAAI,EAAE,IAAI,eAAe,CAAC;AACzB,gBAAA,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE;AACzB,gBAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;aACjB,CAAC;YACF,UAAU,EAAE,CAAC,oBAAoB;AACjC,SAAA,CAAC,CAAC,WAAW,EAAE,CAAC,SAAS,EAAE;;AAG7B;;AAEG;IACI,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,IAAG;AAChE,YAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAW;gBAC9B,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO;gBAC/D,OAAO,EAAE,CAAC,CAAC;AACX,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE;AAC7B,SAAC,CAAC;;uGA5JS,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,oGCvClC,6tJAoFgB,EAAA,MAAA,EAAA,CAAA,mDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDvDd,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACZ,kBAAkB,EAClB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,EACnB,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAI,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,oBAAoB,mPACpB,yBAAyB,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,cAAA,EAAA,WAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACzB,sBAAsB,EACtB,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,WAAA,EAAA,WAAA,EAAA,SAAA,EAAA,YAAA,EAAA,UAAA,EAAA,oBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,gBAAgB,qRAChB,gBAAgB,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA;;2FAGL,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAhBjC,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EAGd,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC5B,OAAA,EAAA;wBACR,YAAY;wBACZ,kBAAkB;wBAClB,mBAAmB;wBACnB,oBAAoB;wBACpB,yBAAyB;wBACzB,sBAAsB;wBACtB,gBAAgB;wBAChB;AACA,qBAAA,EAAA,QAAA,EAAA,6tJAAA,EAAA,MAAA,EAAA,CAAA,mDAAA,CAAA,EAAA;;;AEnCF;;AAEG;MACU,qBAAqB,CAAA;AAC9B;;AAEG;AAEI,IAAA,iBAAiB;AAExB;;AAEG;AAEI,IAAA,QAAQ;AAEf;;AAEG;AACI,IAAA,MAAM;AAEb;;AAEG;AACI,IAAA,UAAU;AAEjB;;;AAGG;AACH,IAAA,WAAA,CAAmB,IAAqC,EAAA;AACpD,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;;AAEhC;AAzBU,UAAA,CAAA;AADN,IAAA,IAAI,EAAE;;AAC2B,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,KAAA,CAAA,CAAA;AAM3B,UAAA,CAAA;AADN,IAAA,QAAQ,EAAE;;AACc,CAAA,EAAA,qBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;;ACd7B;;AAEG;MACU,yBAAyB,CAAA;AAClC;;AAEG;AAEI,IAAA,iBAAiB;AAExB;;AAEG;AAEI,IAAA,YAAY;AAEnB;;AAEG;AACI,IAAA,UAAU;AAEjB;;AAEG;AACI,IAAA,cAAc;AAErB;;;AAGG;AACH,IAAA,WAAA,CAAmB,IAAyC,EAAA;AACxD,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;;AAEhC;AAzBU,UAAA,CAAA;AADN,IAAA,IAAI,EAAE;;AAC2B,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,mBAAA,EAAA,KAAA,CAAA,CAAA;AAM3B,UAAA,CAAA;AADN,IAAA,QAAQ,EAAE;;AACkB,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA;;ACP1B,IAAM,eAAe,GAArB,MAAM,eAAgB,SAAQ,WAAW,CAAA;AAC5C;;AAEG;AAEI,IAAA,KAAK;AAEZ;;AAEG;AAKI,IAAA,IAAI;AAEX;;AAEG;AAKI,IAAA,KAAK;AAEZ;;AAEG;AA8BI,IAAA,WAAW;AAElB;;AAEG;AA+BI,IAAA,eAAe;AAEtB;;AAEG;AAKI,IAAA,OAAO;;AAhGP,UAAA,CAAA;AADN,IAAA,IAAI,EAAE;;AACe,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AASf,UAAA,CAAA;AAJN,IAAA,QAAQ,EAAE;AACV,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,CAAC;AACV,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,YAAA,CAAc,CAAC;;AACZ,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AASd,UAAA,CAAA;AAJN,IAAA,QAAQ,EAAE;AACV,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;AAC5B,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,cAAA,CAAgB,CAAC;;AACb,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAkCf,UAAA,CAAA;IA7BN,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAkB,KAAK,IAAI,EAAE,CAAC;AACjE,IAAA,MAAM,CAAkB;AACrB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,EAAE,gCAAgC;AACtC,QAAA,MAAM,EAAE,qCAAqC;AAC7C,QAAA,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS;QAC5G,OAAO,EAAE,IAAI,CAAC,EAAE;AAChB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,GAAG,CAAC,aAAa;KACtI,CAAC;AACD,IAAA,SAAS,CAAyC;AAC/C,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,MAAK;YACT,OAAO;AACH,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,UAAU,EAAE,gBAAgB;AAC5B,gBAAA,MAAM,EAAE;aACX;SACJ;AACD,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,KAAK,GAAG,CAAC,aAAa;AACnI,QAAA,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;AAChD,QAAA,MAAM,EAAE,CAAC,CAAwC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,qBAAqB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1I,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU;QACpC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;KAC5B,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,oBAAA,CAAsB,CAAC;;AACI,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAmCtC,UAAA,CAAA;AA9BN,IAAA,IAAI,EAAE;AACN,IAAA,MAAM,CAAkB;AACrB,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,EAAE,wCAAwC;AAC9C,QAAA,MAAM,EAAE,6CAA6C;AACrD,QAAA,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS;QACnH,OAAO,EAAE,IAAI,CAAC,EAAE;AAChB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KACjH,CAAC;AACD,IAAA,SAAS,CAA6C;AACnD,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,MAAM,EAAE,CAAC,CAAC,KAAI;YACV,OAAO;AACH,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,UAAU,EAAE,gBAAgB;AAC5B,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ;aAC/C;SACJ;AACD,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC;AACtI,QAAA,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,YAAY;AACxD,QAAA,MAAM,EAAE,CAAC,CAAwC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,yBAAyB,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QACtJ,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,cAAc;QACxC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;KAC5B,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,0BAAA,CAA4B,CAAC;;AACM,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA;AAS9C,UAAA,CAAA;AAJN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACtB,IAAA,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC3B,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,kBAAA,CAAoB,CAAC;;AACd,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AArGhB,eAAe,GAAA,UAAA,CAAA;IAL3B,GAAG,CAAC,iBAAiB,CAAC;AACtB,IAAA,KAAK,CAAC;AACH,QAAA,QAAQ,EAAE,iBAAiB;QAC3B,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS;KAC/D;AACY,CAAA,EAAA,eAAe,CAsG3B;;AC7GD;;AAEG;MACU,SAAS,CAAA;AAClB;;AAEG;AAEI,IAAA,KAAK;AAEZ;;AAEG;AAEI,IAAA,QAAQ;AAEf;;AAEG;AACI,IAAA,MAAM;AACb;;AAEG;AACI,IAAA,UAAU;AAEjB;;;AAGG;AACH,IAAA,WAAA,CAAmB,IAAyB,EAAA;AACxC,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;;AAEhC;AAxBU,UAAA,CAAA;AADN,IAAA,IAAI,EAAE;;AACe,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAMf,UAAA,CAAA;AADN,IAAA,QAAQ,EAAE;;AACc,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;;ACd7B;;AAEG;MACU,aAAa,CAAA;AACtB;;AAEG;AAEI,IAAA,KAAK;AAEZ;;AAEG;AAEI,IAAA,YAAY;AAEnB;;AAEG;AACI,IAAA,UAAU;AAEjB;;AAEG;AACI,IAAA,cAAc;AAErB;;;AAGG;AACH,IAAA,WAAA,CAAmB,IAA6B,EAAA;AAC5C,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;;AAEhC;AAzBU,UAAA,CAAA;AADN,IAAA,IAAI,EAAE;;AACe,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAMf,UAAA,CAAA;AADN,IAAA,QAAQ,EAAE;;AACkB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,cAAA,EAAA,KAAA,CAAA,CAAA;;ACN1B,IAAM,GAAG,GAAT,MAAM,GAAI,SAAQ,WAAW,CAAA;AACnC;;AAEG;AAQI,IAAA,QAAQ;AAEf;;AAEG;AAYI,IAAA,KAAK;AAEZ;;AAEG;AA8BI,IAAA,WAAW;AAElB;;AAEG;AA+BI,IAAA,eAAe;AAEtB;;AAEG;AAII,IAAA,QAAQ;AAEf;;AAEG;AAII,IAAA,MAAM;AAEb;;AAEG;AAQI,IAAA,OAAO;AAEd;;;AAGG;AACH,IAAA,WAAA,CAAmB,IAAmB,EAAA;QACrC,KAAK,CAAC,IAAI,CAAC;AACX,QAAA,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC;;;AAzHnB,UAAA,CAAA;AAPN,IAAA,QAAQ,EAAE;AACV,IAAA,MAAM,CAAC;AACP,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,aAAa,EAAE;KACf,CAAC;AACD,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACrB,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,oBAAA,CAAsB,CAAC;;AAChB,CAAA,EAAA,GAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAgBlB,UAAA,CAAA;AAXN,IAAA,QAAQ,EAAE;AACV,IAAA,MAAM,CAAC;AACP,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,IAAI,CAAC;KACd,CAAC;AACD,IAAA,SAAS,CAAC;AACV,QAAA,GAAG,EAAE,CAAC;QACN,IAAI,EAAE,aAAa,CAAC;KACpB,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,cAAA,CAAgB,CAAC;;AACb,CAAA,EAAA,GAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAkCf,UAAA,CAAA;IA7BN,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAM,KAAK,IAAI,EAAE,CAAC;AACrD,IAAA,MAAM,CAAM;AACZ,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,EAAE,gCAAgC;AACtC,QAAA,MAAM,EAAE,qCAAqC;AAC7C,QAAA,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS;QAC3G,OAAO,EAAE,IAAI,CAAC,EAAE;AAChB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC;KAC1G,CAAC;AACD,IAAA,SAAS,CAAiB;AAC1B,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,MAAK;YACZ,OAAO;AACN,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,UAAU,EAAE,gBAAgB;AAC5B,gBAAA,MAAM,EAAE;aACR;SACD;AACD,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC;AAC1G,QAAA,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,QAAQ;AAChD,QAAA,MAAM,EAAE,CAAC,CAAwC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC9H,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,UAAU;QACpC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;KACzB,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,oBAAA,CAAsB,CAAC;;AACR,CAAA,EAAA,GAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAmC1B,UAAA,CAAA;AA9BN,IAAA,IAAI,EAAE;AACN,IAAA,MAAM,CAAM;AACZ,QAAA,KAAK,EAAE,CAAC;AACR,QAAA,IAAI,EAAE,wCAAwC;AAC9C,QAAA,MAAM,EAAE,6CAA6C;AACrD,QAAA,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,WAAW,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,SAAS;QACnH,OAAO,EAAE,IAAI,CAAC,EAAE;AAChB,QAAA,QAAQ,EAAE,GAAG;AACb,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAC9G,CAAC;AACD,IAAA,SAAS,CAAqB;AAC9B,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,QAAQ,EAAE,YAAY;AACtB,QAAA,MAAM,EAAE,CAAC,CAAC,KAAI;YACb,OAAO;AACN,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,UAAU,EAAE,gBAAgB;AAC5B,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,QAAQ,EAAE,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ;aAC5C;SACD;AACD,QAAA,QAAQ,EAAE,IAAI;AACd,QAAA,WAAW,EAAE,MAAM;AACnB,QAAA,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,GAAQ,KAAK,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,gBAAgB,CAAC;AACtI,QAAA,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,YAAY,KAAK,CAAC,CAAC,YAAY;AACxD,QAAA,MAAM,EAAE,CAAC,CAAwC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1I,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,cAAc;QACxC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;KACzB,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,0BAAA,CAA4B,CAAC;;AACN,CAAA,EAAA,GAAA,CAAA,SAAA,EAAA,iBAAA,EAAA,KAAA,CAAA,CAAA;AAQlC,UAAA,CAAA;AAHN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;AACrB,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,oBAAA,CAAsB,CAAC;;AAChB,CAAA,EAAA,GAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAQlB,UAAA,CAAA;AAHN,IAAA,QAAQ,EAAE;AACV,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;AACjD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,gBAAA,CAAkB,CAAC;;AACd,CAAA,EAAA,GAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAYhB,UAAA,CAAA;AAPN,IAAA,IAAI,EAAE;AACN,IAAA,MAAM,CAAC;AACP,QAAA,KAAK,EAAE,EAAE;AACT,QAAA,KAAK,EAAE;KACP,CAAC;AACD,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACtB,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,kBAAA,CAAoB,CAAC;;AACd,CAAA,EAAA,GAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AA5Hb,GAAG,GAAA,UAAA,CAAA;IANf,GAAG,CAAC,KAAK,CAAC;AACV,IAAA,KAAK,CAAC;AACN,QAAA,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC;AACjE,QAAA,UAAU,EAAE;KACZ,CAAC;;AACW,CAAA,EAAA,GAAG,CAsIf;;AC/HM,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQ,WAAW,CAAA;AACnC;;;;AAIG;AAKI,IAAA,IAAI;AAEX;;;;AAIG;AAKI,IAAA,KAAK;AAEZ;;;;AAIG;AAII,IAAA,OAAO;AAEd;;;;AAIG;AAOI,IAAA,WAAW;AAElB;;;;AAIG;AAEI,IAAA,SAAS;AAEhB;;;;AAIG;AAUI,IAAA,KAAK;AAEZ;;;;AAIG;AAII,IAAA,QAAQ;AAEf;;;;AAIG;AAYI,IAAA,QAAQ;AAEf;;;;AAIG;AAII,IAAA,QAAQ;AAEf;;;;AAIG;AAKI,IAAA,OAAO;;AA3GP,UAAA,CAAA;AAJN,IAAA,QAAQ,EAAE;AACV,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,CAAC;AACV,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,YAAA,CAAc,CAAC;;AACZ,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,MAAA,EAAA,KAAA,CAAA,CAAA;AAWd,UAAA,CAAA;AAJN,IAAA,QAAQ,EAAE;AACV,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACtB,IAAA,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;AAC3C,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,cAAA,CAAgB,CAAC;;AACb,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAUf,UAAA,CAAA;AAHN,IAAA,QAAQ,EAAE;AACV,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC;AAClD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,kBAAA,CAAoB,CAAC;;AACf,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AAajB,UAAA,CAAA;AANN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC;AACP,QAAA,GAAG,EAAE,EAAE;QACP,IAAI,EAAE,aAAa,CAAC;KACvB,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,cAAA,CAAgB,CAAC;;AACP,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,aAAA,EAAA,KAAA,CAAA,CAAA;AAQrB,UAAA,CAAA;AADN,IAAA,IAAI,EAAE;;AACmB,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,WAAA,EAAA,KAAA,CAAA,CAAA;AAgBnB,UAAA,CAAA;AATN,IAAA,SAAS,CAAC;AACP,QAAA,GAAG,EAAE,EAAE;AACP,QAAA,QAAQ,EAAE,gBAAgB;AAC1B,QAAA,YAAY,EAAE,IAAI;AAClB,QAAA,cAAc,EAAE,WAAW;QAC3B,MAAM,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAQ,KAAK,GAAG,EAAE,MAAM,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI;KAC5E,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,cAAA,CAAgB,CAAC;AAClC,IAAA,IAAI,EAAE;;AACe,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,OAAA,EAAA,KAAA,CAAA,CAAA;AAUf,UAAA,CAAA;AAHN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACtB,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,qBAAA,CAAuB,CAAC;;AACjB,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAkBlB,UAAA,CAAA;AAXN,IAAA,SAAS,CAAC;AACP,QAAA,GAAG,EAAE,CAAC;AACN,QAAA,QAAQ,EAAE;KACb,CAAC;AACD,IAAA,MAAM,CAAC;AACJ,QAAA,IAAI,EAAE,oBAAoB;AAC1B,QAAA,QAAQ,EAAE,GAAG;QACb,OAAO,EAAE,IAAI,CAAC;KACjB,CAAC;AACD,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,kBAAA,CAAoB,CAAC;AACtC,IAAA,IAAI,EAAE;;AACkB,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAUlB,UAAA,CAAA;AAHN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;AACtB,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,oBAAA,CAAsB,CAAC;;AAChB,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAWlB,UAAA,CAAA;AAJN,IAAA,IAAI,EAAE;AACN,IAAA,SAAS,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACvB,IAAA,MAAM,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;AAC3B,IAAA,OAAO,CAAC,SAAS,CAAA,CAAA,kBAAA,CAAoB,CAAC;;AACd,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,SAAA,EAAA,KAAA,CAAA,CAAA;AArHhB,MAAM,GAAA,UAAA,CAAA;IAJlB,GAAG,CAAC,QAAQ,CAAC;AACb,IAAA,KAAK,CAAC;AACH,QAAA,UAAU,EAAE,CAAC,IAAI,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,CAAC;KACvF;AACY,CAAA,EAAA,MAAM,CAsHlB;;AChID;;AAEG;MAEU,6BAA6B,CAAA;AAYlB,IAAA,mBAAA;AAXpB;;;;AAIG;AACK,IAAA,QAAQ,GAAgB,MAAM,CAAC,WAAW,CAAC;AAEnD;;;AAGG;AACH,IAAA,WAAA,CAAoB,mBAAwC,EAAA;QAAxC,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;;AAEvC;;AAEG;IACH,OAAO,GAAA;QACH,IAAI,UAAU,GAAU,EAAE;AAE1B,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,IAAI,CAACG,KAAG,CAAC,CAAC,IAAG;YACrD,UAAU,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe;AACnD,YAAA,IAAI,CAAC,CAAC,QAAQ,EAAE;gBACZ,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;AACxC,oBAAA,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG;oBAClB,eAAe,EAAE,CAAC,CAAC;AACtB,iBAAA,CAAC;gBAEF,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE;AAClH,oBAAA,UAAU,CAAC,IAAI,CAAC,qBAAqB,CAAC;;AAG1C,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE;AAC/K,oBAAA,UAAU,CAAC,IAAI,CAAC,yBAAyB,CAAC;;;AAIlD,YAAA,OAAO,UAAU;SACpB,CAAC,CAAC;;uGAtCE,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAA7B,6BAA6B,EAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBADzC;;;ACLD;;AAEG;MAEU,sBAAsB,CAAA;AAC/B;;;;AAIG;AACK,IAAA,QAAQ,GAAgB,MAAM,CAAC,WAAW,CAAC;AAEnD;;AAEG;IACH,OAAO,GAAA;AACH,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,EAAE,GAAG,CAAC,oBAAoB,CAAC,CAAC;;uGAZlE,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAtB,sBAAsB,EAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC;;;ACHD;;AAEG;MAEU,qBAAqB,CAAA;AAC9B;;;;AAIG;AACK,IAAA,QAAQ,GAAgB,MAAM,CAAC,WAAW,CAAC;AAEnD;;AAEG;IACH,OAAO,GAAA;AACH,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;;uGAZxD,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAArB,qBAAqB,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;;ACDD;;AAEG;MAEU,mBAAmB,CAAA;AAYR,IAAA,mBAAA;AAXpB;;;;AAIG;AACK,IAAA,QAAQ,GAAgB,MAAM,CAAC,WAAW,CAAC;AAEnD;;;AAGG;AACH,IAAA,WAAA,CAAoB,mBAAwC,EAAA;QAAxC,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;;AAEvC;;AAEG;IACH,OAAO,GAAA;QACH,IAAI,QAAQ,GAAU,EAAE;AAExB,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,IAAI,CAACA,KAAG,CAAC,CAAC,IAAG;YACrD,UAAU,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe;AACnD,YAAA,IAAI,CAAC,CAAC,QAAQ,EAAE;gBACZ,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;AACxC,oBAAA,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG;oBAClB,eAAe,EAAE,CAAC,CAAC;AACtB,iBAAA,CAAC;AAEF,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,IAAI,CAAC,QAAQ,EAAE,YAAY,EAAE;AAC/D,oBAAA,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;;AAGhC,gBAAA,IAAI,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,IAAI,CAAC,QAAQ,EAAE,gBAAgB,EAAE;AACnE,oBAAA,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC;;;AAIxC,YAAA,OAAO,QAAQ;SAClB,CAAC,CAAC;;uGAtCE,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAnB,mBAAmB,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;;ACLD;;AAEG;MAEU,qBAAqB,CAAA;AAC9B;;;;AAIG;AACK,IAAA,QAAQ,GAAgB,MAAM,CAAC,WAAW,CAAC;AAEnD;;AAEG;IACH,OAAO,GAAA;QACH,OAAO,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC;;uGAZ5E,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAArB,qBAAqB,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;;ACDD;;AAEG;MAEU,qBAAqB,CAAA;AAYV,IAAA,mBAAA;AAXpB;;;;AAIG;AACK,IAAA,QAAQ,GAAgB,MAAM,CAAC,WAAW,CAAC;AAEnD;;;AAGG;AACH,IAAA,WAAA,CAAoB,mBAAwC,EAAA;QAAxC,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB;;AAEvC;;AAEG;IACH,OAAO,GAAA;QACH,IAAI,UAAU,GAAU,EAAE;AAE1B,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,CAAC,IAAI,CAACA,KAAG,CAAC,CAAC,IAAG;YACrD,UAAU,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,eAAe;AACnD,YAAA,IAAI,CAAC,CAAC,QAAQ,EAAE;gBACZ,UAAU,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;AACxC,oBAAA,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG;oBAClB,eAAe,EAAE,CAAC,CAAC;AACtB,iBAAA,CAAC;gBAEF,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE;AAClH,oBAAA,UAAU,CAAC,IAAI,CAAC,kCAAkC,CAAC;;AAGvD,gBAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,eAAe,IAAI,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE;AAC/K,oBAAA,UAAU,CAAC,IAAI,CAAC,0CAA0C,CAAC;;;AAInE,YAAA,OAAO,UAAU;SACpB,CAAC,CAAC;;uGAtCE,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAArB,qBAAqB,EAAA,CAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;;ACLD;;AAEG;MAEU,eAAe,CAAA;AAExB;;AAEG;AACH,IAAA,OAAO,CAAC,KAA6B,EAAA;QACjC,IAAI,QAAQ,GAAgB,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC;AAC1D,QAAA,OAAO,EAAE,CAAC,QAAQ,CAAC;;uGAPd,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAf,eAAe,EAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B;;;ACeD,MAAM,WAAW,GAAgB;AAC7B,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,UAAU,EAAE,qBAAqB;AACjC,IAAA,eAAe,EAAE;CACpB;AAED,MAAM,eAAe,GAAgB;AACjC,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,UAAU,EAAE,6BAA6B;CAC5C;AAED,MAAM,WAAW,GAAgB;AAC7B,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,cAAc,EAAE,mBAAmB;AACnC,IAAA,cAAc,EAAE,qBAAqB;AACrC,IAAA,cAAc,EAAE;CACnB;AAED,MAAM,MAAM,GAAW;IACnB,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,oBAAoB,EAAE,SAAS,EAAE,MAAM,EAAE;IACjE,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE;AAE3D,IAAA,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;AACnJ,IAAA,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;IACrJ,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,WAAW,EAAE;IACrF,EAAE,IAAI,EAAE,yBAAyB,EAAE,SAAS,EAAE,oBAAoB,EAAE,OAAO,EAAE,WAAW,EAAE;AAE1F,IAAA,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;IACpH,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,CAAA,CAAwB,sBAAA,CAAA,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;IAC1K,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,CAAA,CAAwB,sBAAA,CAAA,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;IAErK,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;IACjI,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE,qBAAqB,EAAE,OAAO,EAAE,WAAW,EAAE;IACtF,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,qBAAqB,EAAE,OAAO,EAAE,WAAW,EAAE;AAEjF,IAAA,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;IACnG,EAAE,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,CAAA,CAAY,UAAA,CAAA,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;AAC7I,IAAA,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAA,CAAY,UAAA,CAAA,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;AAEvL,IAAA,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;IACzG,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAA,CAAkB,gBAAA,CAAA,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;AACzJ,IAAA,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAA,CAAkB,gBAAA,CAAA,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;AAEnM,IAAA,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,sBAAsB,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,uBAAuB,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE;CACpM;MAeY,kBAAkB,CAAA;uGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,0CAXjB,YAAY,CAAA,EAAA,CAAA;AAWb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,EAVhB,SAAA,EAAA;YACP,eAAe;YACf,qBAAqB;YACrB,6BAA6B;YAC7B,mBAAmB;YACnB,sBAAsB;YACtB,qBAAqB;YACrB;AACH,SAAA,EAAA,OAAA,EAAA,CAVS,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC7B,YAAY,CAAA,EAAA,CAAA;;2FAWb,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAb9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;AACvB,oBAAA,SAAS,EAAE;wBACP,eAAe;wBACf,qBAAqB;wBACrB,6BAA6B;wBAC7B,mBAAmB;wBACnB,sBAAsB;wBACtB,qBAAqB;wBACrB;AACH;AACJ,iBAAA;;;MCzEY,WAAW,CAAA;uGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,YAHhB,kBAAkB,CAAA,EAAA,CAAA;AAGb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,YAHhB,kBAAkB,CAAA,EAAA,CAAA;;2FAGb,WAAW,EAAA,UAAA,EAAA,CAAA;kBALvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL;AACH;AACJ,iBAAA;;;ICPW;AAAZ,CAAA,UAAY,QAAQ,EAAA;AACnB,IAAA,QAAA,CAAA,QAAA,CAAA,gBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,gBAAc;AACd,IAAA,QAAA,CAAA,QAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK;AACN,CAAC,EAHW,QAAQ,KAAR,QAAQ,GAGnB,EAAA,CAAA,CAAA;;ACGK,MAAO,sBAAuB,SAAQ,cAA+B,CAAA;AAE1E;;AAEG;AACH,IAAA,WAAA,GAAA;QACC,KAAK,CAAC,iBAAiB,CAAC;;AAGzB;;;;AAIG;AACI,IAAA,eAAe,CAAC,IAAqB,EAAA;QAC3C,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC;;uGAfhE,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAtB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cADT,MAAM,EAAA,CAAA;;2FACnB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACA5B,MAAO,UAAW,SAAQ,cAAmB,CAAA;AAElD;;AAEG;AACH,IAAA,WAAA,GAAA;QACC,KAAK,CAAC,KAAK,CAAC;;uGAND,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAV,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cADG,MAAM,EAAA,CAAA;;2FACnB,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACC5B,MAAO,aAAc,SAAQ,cAAsB,CAAA;AAErD;;AAEG;AACH,IAAA,WAAA,GAAA;QACI,KAAK,CAAC,QAAQ,CAAC;;uGANV,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cADA,MAAM,EAAA,CAAA;;2FACnB,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACJlC;AAEA;;AAEG;;ACJH;;AAEG;;ACFH;;AAEG;;;;"}
1
+ {"version":3,"file":"messaia-cdk-cms.mjs","sources":["../../../projects/cdk-cms/src/lib/enums/content-type.ts","../../../projects/cdk-cms/src/lib/enums/wrap-tag.ts","../../../projects/cdk-cms/src/lib/models/cms-settings.ts","../../../projects/cdk-cms/src/lib/models/content-client.ts","../../../projects/cdk-cms/src/lib/models/content-department.ts","../../../projects/cdk-cms/src/lib/models/content.ts","../../../projects/cdk-cms/src/lib/services/content.ts","../../../projects/cdk-cms/src/lib/components/content-form/content-form.ts","../../../projects/cdk-cms/src/lib/components/content-form/content-form.html","../../../projects/cdk-cms/src/lib/models/document.ts","../../../projects/cdk-cms/src/lib/services/document-generic.ts","../../../projects/cdk-cms/src/lib/services/document.service`.ts","../../../projects/cdk-cms/src/lib/templates/document-form.template.ts","../../../projects/cdk-cms/src/lib/components/document-form-base/document-form-base.ts","../../../projects/cdk-cms/src/lib/components/document-dialog/document-dialog.ts","../../../projects/cdk-cms/src/lib/enums/template-type.ts","../../../projects/cdk-cms/src/lib/models/template-client.ts","../../../projects/cdk-cms/src/lib/models/template-department.ts","../../../projects/cdk-cms/src/lib/models/template.ts","../../../projects/cdk-cms/src/lib/models/template-preview.ts","../../../projects/cdk-cms/src/lib/services/template.ts","../../../projects/cdk-cms/src/lib/services/template-doc.ts","../../../projects/cdk-cms/src/lib/services/template-preview.ts","../../../projects/cdk-cms/src/lib/components/template-preview-dialog/template-preview-dialog.ts","../../../projects/cdk-cms/src/lib/components/template-preview-dialog/template-preview-dialog.html","../../../projects/cdk-cms/src/lib/components/template-form/template-form.ts","../../../projects/cdk-cms/src/lib/components/template-form/template-form.html","../../../projects/cdk-cms/src/lib/models/content-variable-client.ts","../../../projects/cdk-cms/src/lib/models/content-variable-department.ts","../../../projects/cdk-cms/src/lib/models/content-variable.ts","../../../projects/cdk-cms/src/lib/models/faq-client.ts","../../../projects/cdk-cms/src/lib/models/faq-department.ts","../../../projects/cdk-cms/src/lib/models/faq.ts","../../../projects/cdk-cms/src/lib/models/slider.ts","../../../projects/cdk-cms/src/lib/resolvers/document-list-projection.resolve.ts","../../../projects/cdk-cms/src/lib/resolvers/excluded-columns.resolve.ts","../../../projects/cdk-cms/src/lib/resolvers/excluded-fields.resolve.ts","../../../projects/cdk-cms/src/lib/resolvers/form-includes.resolve.ts","../../../projects/cdk-cms/src/lib/resolvers/form-validation.resolve.ts","../../../projects/cdk-cms/src/lib/resolvers/list-projection.resolve.ts","../../../projects/cdk-cms/src/lib/resolvers/settings.resolve.ts","../../../projects/cdk-cms/src/lib/cms-routing.module.ts","../../../projects/cdk-cms/src/lib/cms.module.ts","../../../projects/cdk-cms/src/lib/enums/faq-scope.ts","../../../projects/cdk-cms/src/lib/services/content-variable.ts","../../../projects/cdk-cms/src/lib/services/faq.ts","../../../projects/cdk-cms/src/lib/services/slider.ts","../../../projects/cdk-cms/src/lib/public-api.ts","../../../projects/cdk-cms/src/public-api.ts","../../../projects/cdk-cms/src/messaia-cdk-cms.ts"],"sourcesContent":["export enum ContentType {\r\n Page = 1,\r\n Block\r\n}","export enum WrapTag {\r\n None = '',\r\n Section = 'section',\r\n Div = 'div',\r\n Address = 'address',\r\n Article = 'article'\r\n}","\r\nexport class CmsSettings {\r\n /**\r\n * @property\r\n */\r\n public multiClients?: boolean = false;\r\n\r\n /**\r\n * @property\r\n */\r\n public multiDepartments?: boolean = false;\r\n\r\n /**\r\n * @property\r\n */\r\n public multitenantable?: boolean = false;\r\n\r\n /**\r\n * @property\r\n */\r\n public styleUrlEndpoint?: Function;\r\n\r\n /**\r\n * @property\r\n */\r\n public editorHeight?: string = '700px';\r\n\r\n /**\r\n * constructor\r\n * @param init \r\n */\r\n public constructor(init?: Partial<CmsSettings>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class ContentClient {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public contentId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public clientId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public client?: any;\r\n\r\n /**\r\n * @property\r\n */\r\n public clientName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<ContentClient>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class ContentDepartment {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public contentId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public departmentId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public department?: any;\r\n\r\n /**\r\n * @property\r\n */\r\n public departmentName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<ContentDepartment>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { Api, AuditEntity, Column, Display, FormField, FormFieldType, Grid, prop, required, Table, Utils } from \"@messaia/cdk\";\r\nimport { ContentType } from \"../enums/content-type\";\r\nimport { WrapTag } from \"../enums/wrap-tag\";\r\nimport { ContentClient } from \"./content-client\";\r\nimport { ContentDepartment } from \"./content-department\";\r\n\r\n@Api('content')\r\n@Table({\r\n endpoint: 'content',\r\n projection: ['id', 'createdDate', 'name', 'title', 'enabled'],\r\n duplicable: true\r\n})\r\nexport class Content extends AuditEntity {\r\n /**\r\n * @property Defines the type of the content.\r\n * @description Optional enum property indicating the content's type.\r\n * @type {ContentType}\r\n */\r\n @prop()\r\n public type?: ContentType;\r\n\r\n /**\r\n * @property Identifier for the section the content belongs to.\r\n * @description Optional number representing the section ID.\r\n * @type {number}\r\n */\r\n @prop()\r\n public sectionId?: number;\r\n\r\n /**\r\n * @property The title of the content.\r\n * @description This required property represents the human-readable title displayed in the UI.\r\n * @type {string}\r\n */\r\n @required()\r\n @Column()\r\n @FormField({ row: 20 })\r\n @Display($localize`:@@title:Title`)\r\n public title?: string;\r\n\r\n /**\r\n * @property Internal name of the content.\r\n * @description This required property is used for internal reference and URLs.\r\n * @type {string}\r\n */\r\n @required()\r\n @Column({ maxWidth: 190, display: Grid.Md })\r\n @FormField({ row: 30 })\r\n @Display($localize`:@@name:Name`)\r\n public name?: string;\r\n\r\n /**\r\n * @property Aliases of the content.\r\n * @description Optional string used to define alternative names or keywords.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({ row: 40, type: FormFieldType.Chips })\r\n @Display($localize`:@@aliases:Aliases`)\r\n public aliases?: string;\r\n\r\n /**\r\n * @property The wrap tag used for HTML structure.\r\n * @description Optional property that defines how the content is wrapped in the DOM.\r\n * @type {WrapTag}\r\n */\r\n @prop()\r\n @FormField({ row: 50 })\r\n @Display($localize`:@@wrap:Wrap`)\r\n public wrapTag: WrapTag = WrapTag.Section;\r\n\r\n /**\r\n * @property Layout identifier or class name.\r\n * @description Optional layout style applied to this content block.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({ row: 50 })\r\n @Display($localize`:@@layout:Layout`)\r\n public layout?: string;\r\n\r\n /**\r\n * @property Main body of the content.\r\n * @description Optional HTML or markdown content.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({ row: 60, type: FormFieldType.Editor })\r\n @Display($localize`:@@content:Content`)\r\n public body?: string;\r\n\r\n /**\r\n * @property Embedded script.\r\n * @description Optional JavaScript code associated with the content.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({\r\n row: 80,\r\n type: FormFieldType.TextArea,\r\n hint: $localize`:@@scriptHint:Do not include <script> tags.`\r\n })\r\n @Display($localize`:@@bodyScript:Body Script`)\r\n public script?: string;\r\n\r\n /**\r\n * @property headScript\r\n * @description This optional property allows insertion of custom JavaScript code inside the <head> tag of the HTML document.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({\r\n row: 70,\r\n type: FormFieldType.TextArea,\r\n hint: $localize`:@@headScriptHint:Do not include <script> tags.`\r\n })\r\n @Display($localize`:@@headScript:Head Script`)\r\n public headScript?: string;\r\n\r\n /**\r\n * @property noScript\r\n * @description This optional property allows inserting content inside a <noscript> tag, which is rendered when JavaScript is disabled.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({\r\n row: 90,\r\n type: FormFieldType.TextArea,\r\n hint: $localize`:@@noScriptHint:Do not include <noscript> tags.`\r\n })\r\n @Display($localize`:@@noScript:NoScript`)\r\n public noScript?: string;\r\n\r\n /**\r\n * @property Embedded style.\r\n * @description Optional CSS styling specific to this content.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({\r\n row: 100,\r\n type: FormFieldType.TextArea,\r\n hint: $localize`:@@styleHint:Do not include <style> or <link> tags.`\r\n })\r\n @Display($localize`:@@style:Style`)\r\n public style?: string;\r\n\r\n /**\r\n * @property Indicates whether the title should be shown.\r\n * @description This optional boolean defaults to true and determines title visibility.\r\n * @type {boolean}\r\n */\r\n @prop()\r\n @FormField({ row: 200 })\r\n @Display($localize`:@@showTitle:Show title`)\r\n public showTitle: boolean = true;\r\n\r\n /**\r\n * @property Indicates whether the content is enabled.\r\n * @description This boolean property enables or disables the content, default is true.\r\n * @type {boolean}\r\n */\r\n @prop()\r\n @Column({\r\n index: 20,\r\n event: 'toggle'\r\n })\r\n @FormField({ row: 210 })\r\n @Display($localize`:@@enabled:Enabled`)\r\n public enabled: boolean = true;\r\n\r\n /**\r\n * @property Associated clients for this content.\r\n * @description This required property defines which clients the content is related to.\r\n * @type {ContentClient[]}\r\n */\r\n @required({ conditionalExpression: (x: Content) => true })\r\n @Column<Content>({\r\n index: 5,\r\n name: 'clientJoins.client.displayName',\r\n sortBy: 'clientJoins.Min(client.displayName)',\r\n content: (x) => x ? Utils.joinArray(x?.clientJoins?.map(y => y.client?.displayName ?? '') ?? []) : undefined,\r\n display: Grid.Lg,\r\n maxWidth: 200,\r\n hide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients),\r\n })\r\n @FormField<Content, ContentClient>({\r\n row: 1,\r\n endpoint: 'client',\r\n params: () => ({\r\n enabled: true,\r\n projection: 'id,displayName',\r\n sortBy: 'id'\r\n }),\r\n multiple: true,\r\n triggerMode: 'chip',\r\n compareWith: (o, v) => o.clientId === v.clientId,\r\n mapper: (x: { id: number, displayName: string }[]) => x.map(y => new ContentClient({ clientId: y.id, clientName: y.displayName })),\r\n optionTemplate: (x) => x?.clientName,\r\n triggerMapper: (x) => x?.clientName\r\n })\r\n @Display($localize`:@@projects:Projects`)\r\n public clientJoins?: ContentClient[];\r\n\r\n /**\r\n * @property Associated departments for this content.\r\n * @description Optional departments related to this content, with visibility based on admin context.\r\n * @type {ContentDepartment[]}\r\n */\r\n @prop()\r\n @Column<Content>({\r\n index: 5,\r\n name: 'departmentJoins.department.displayName',\r\n sortBy: 'departmentJoins.Min(department.displayName)',\r\n content: (x) => x ? Utils.joinArray(x?.departmentJoins?.map(y => y.department?.displayName ?? '') ?? []) : undefined,\r\n display: Grid.Lg,\r\n maxWidth: 200,\r\n hide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n })\r\n @FormField<Content, ContentDepartment>({\r\n row: 10,\r\n endpoint: 'department',\r\n params: (x) => ({\r\n enabled: true,\r\n projection: 'id,displayName',\r\n sortBy: 'id',\r\n clientId: x.clientJoins?.map(y => y.clientId)\r\n }),\r\n multiple: true,\r\n triggerMode: 'chip',\r\n hide: (_, __, ctx: any) => (!ctx.isAdmin && !ctx.isClientAdmin) || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n compareWith: (o, v) => o.departmentId === v.departmentId,\r\n mapper: (x: { id: number, displayName: string }[]) => x.map(y => new ContentDepartment({ departmentId: y.id, departmentName: y.displayName })),\r\n optionTemplate: (x) => x?.departmentName,\r\n triggerMapper: (x) => x?.departmentName\r\n })\r\n @Display($localize`:@@departments:Departments`)\r\n public departmentJoins?: ContentDepartment[];\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { GenericService } from '@messaia/cdk';\r\nimport { map } from 'rxjs/operators';\r\nimport { Content } from '../models/content';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ContentService extends GenericService<Content> {\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper('content');\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if the specified alias is available.\r\n\t * @param id \r\n\t * @param alias \r\n\t */\r\n\tpublic isAliasAvailable(item: Content) {\r\n\t\treturn this.create(item, '/isAliasAvailable').pipe(map((x: any) => x.value));\r\n\t}\r\n}","import { COMMA, ENTER } from '@angular/cdk/keycodes';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClient, HttpEventType, HttpResponse } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Component, inject, ViewChild } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatChipInputEvent } from '@angular/material/chips';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { EnumService, FileService, GenericReactiveFormComponent, MatFormFieldEditorDirective, RxReactiveFormsModule, VdEditorDirective, VdGenericFormComponent, VdLayoutCardOverComponent, VdLayoutNavComponent } from '@messaia/cdk';\r\nimport { VdAuditComponent } from '@messaia/cdk-base';\r\nimport { EditorComponent, EditorModule } from '@tinymce/tinymce-angular';\r\nimport { of, Subscription } from 'rxjs';\r\nimport { ContentType } from '../../enums/content-type';\r\nimport { WrapTag } from '../../enums/wrap-tag';\r\nimport { CmsSettings } from '../../models/cms-settings';\r\nimport { Content } from '../../models/content';\r\nimport { ContentClient, ContentDepartment } from '../../public-api';\r\nimport { ContentService } from '../../services/content';\r\n\r\n@Component({\r\n\tselector: 'app-content-form',\r\n\ttemplateUrl: './content-form.html',\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\t//-----------------------\r\n\t\tReactiveFormsModule,\r\n\t\tRxReactiveFormsModule,\r\n\t\tEditorModule,\r\n\t\t//-----------------------\r\n\t\tMatExpansionModule,\r\n\t\tMatFormFieldModule,\r\n\t\tMatButtonModule,\r\n\t\tMatFormFieldEditorDirective,\r\n\t\t//-----------------------\r\n\t\tVdLayoutNavComponent,\r\n\t\tVdLayoutCardOverComponent,\r\n\t\tVdGenericFormComponent,\r\n\t\tVdEditorDirective,\r\n\t\tVdAuditComponent\r\n\t]\r\n})\r\nexport class ContentFormComponent extends GenericReactiveFormComponent<Content, ContentService> {\r\n\t/**\r\n\t * Injects the CmsSettings service using Angular's `inject()` function.\r\n\t * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n\t * commonly used in standalone components or functional-style Angular APIs.\r\n\t */\r\n\tpublic override settings: CmsSettings = inject(CmsSettings);\r\n\r\n\t/**\r\n\t * Router Subscription\r\n\t */\r\n\tpublic routeSubscription?: Subscription;\r\n\r\n\t/**\r\n\t * The status of the issue\r\n\t */\r\n\tpublic type?: ContentType;\r\n\r\n\t/**\r\n\t * Content status\r\n\t */\r\n\tpublic ContentType: typeof ContentType = ContentType;\r\n\r\n\t/**\r\n\t * Wrap tag enum\r\n\t */\r\n\tpublic wrapTags: any[] = EnumService.toArray(WrapTag);\r\n\r\n\t/**\r\n\t * Separator keys codes\r\n\t */\r\n\tpublic separatorKeysCodes: number[] = [ENTER, COMMA];\r\n\r\n\t/**\r\n\t * Gets the aliases control\r\n\t */\r\n\tget aliasesControl() { return this.form.controls['aliases']; }\r\n\r\n\t/**\r\n\t * A ref to form html element\r\n\t */\r\n\t@ViewChild('form', { static: false })\r\n\tpublic formElement?: HTMLFormElement;\r\n\r\n\t/**\r\n\t * A ref to tinymce editor\r\n\t */\r\n\t@ViewChild('editor', { static: false })\r\n\tpublic editorComponent?: EditorComponent;\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor(\r\n\t\tprotected override service: ContentService,\r\n\t\tprotected fileService: FileService,\r\n\t\tprotected httpClient: HttpClient,\r\n\t\tprotected override route: ActivatedRoute,\r\n\t\tprotected override changeDetectorRef: ChangeDetectorRef\r\n\t) {\r\n\t\tsuper(Content, service, route, changeDetectorRef)\r\n\r\n\t\tif (this.settings?.multitenantable || this.settings?.multiClients) {\r\n\t\t\tthis.include('ClientJoins', true);\r\n\t\t}\r\n\r\n\t\tif (this.settings?.multitenantable || this.settings?.multiDepartments) {\r\n\t\t\tthis.include('DepartmentJoins', true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Lifecycle hook that is called after data-bound properties \r\n\t * of a directive are initialized.\r\n\t */\r\n\toverride ngOnInit(): void {\r\n\t\t/* Filter by status, if any */\r\n\t\tthis.routeSubscription = this.route.params.subscribe((params: any) => {\r\n\t\t\tthis.type = EnumService.parse(ContentType, params.type);\r\n\t\t});\r\n\r\n\t\t/* Get some props from route snapshot */\r\n\t\tthis.route.data.subscribe((data: any) => {\r\n\t\t\tthis.formValidation = data.formValidation;\r\n\t\t});\r\n\r\n\t\tsuper.ngOnInit();\r\n\t}\r\n\r\n\t/**\r\n\t * Shows client joins in the form\r\n\t * @returns \r\n\t */\r\n\tpublic showClientJoins(): boolean {\r\n\t\treturn (!this.canCreate || (!this.settings?.multitenantable && !this.settings?.multiClients)) || this.isClientAdmin;\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if the specified alias is available.\r\n\t */\r\n\tpublic isAliasAvailable() {\r\n\t\tthis.service.isAliasAvailable(this.item!).subscribe((x: boolean) => {\r\n\t\t\tthis.formElement!['form']?.controls['alias'].setErrors(x ? null : { 'inUse': true });\r\n\t\t});\r\n\t}\r\n\r\n\t/**\r\n\t * Set client\r\n\t */\r\n\tpublic setClient(): void {\r\n\t\tthis.isEditorInitialized = false;\r\n\t\tthis.configEditor();\r\n\t\tthis.editorComponent?.editor?.setContent(this.item?.body!);\r\n\t}\r\n\r\n\t/**\r\n\t * Add a aliases to the current field\r\n\t * @param event \r\n\t */\r\n\tpublic addAliases(event: MatChipInputEvent): void {\r\n\t\t/* Add our aliass */\r\n\t\tif ((event.value || '').trim()) {\r\n\t\t\tthis.aliasesControl.setValue([...this.aliasesControl.value, event.value.trim()]);\r\n\t\t\tthis.aliasesControl.updateValueAndValidity();\r\n\t\t\tthis.aliasesControl.markAsDirty();\r\n\t\t}\r\n\r\n\t\t/* Reset the input value */\r\n\t\tif (event.input) {\r\n\t\t\tevent.input.value = '';\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Removes a aliases\r\n\t * @param aliass \r\n\t */\r\n\tpublic removeAliases(aliass: string): void {\r\n\t\tconst index = this.aliasesControl.value.indexOf(aliass);\r\n\t\tif (index >= 0) {\r\n\t\t\tthis.aliasesControl.value.splice(index, 1);\r\n\t\t\tthis.aliasesControl.updateValueAndValidity();\r\n\t\t\tthis.aliasesControl.markAsDirty();\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates a new instance of the Template\r\n\t */\r\n\tprotected override newInstance(): Content {\r\n\t\tlet item = Object.assign(new Content(), <Content>{\r\n\t\t\ttype: this.type,\r\n\t\t\twrapTag: this.type == ContentType.Block ? '' : WrapTag.Section,\r\n\t\t\tshowTitle: this.type == ContentType.Block ? false : true\r\n\t\t});\r\n\r\n\t\t/* Get clientId */\r\n\t\tif (!this.isEditMode) {\r\n\t\t\tif (this.isClientAdmin || this.isDepartmentAdmin) {\r\n\t\t\t\titem.clientJoins = [new ContentClient({ clientId: this.currentUser.clientId })];\r\n\t\t\t}\r\n\r\n\t\t\tif (this.isDepartmentAdmin) {\r\n\t\t\t\titem.departmentJoins = [new ContentDepartment({ departmentId: this.currentUser.departmentId })];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t/* Init the tinymce editor */\r\n\t\tthis.isEditorInitialized = false;\r\n\t\treturn item;\r\n\t}\r\n\r\n\t/**\r\n\t * Event emitted when the form has built.\r\n\t */\r\n\tprotected override onAfterFormBuild(): void {\r\n\t\tsuper.onAfterFormBuild();\r\n\t\tthis.configEditor();\r\n\t}\r\n\r\n\t/**\r\n\t * Configures the tinymce editor\r\n\t */\r\n\tprivate configEditor(): void {\r\n\t\tif (this.settings?.multitenantable && this.formValue?.clientId && this.settings?.styleUrlEndpoint) {\r\n\t\t\tthis.httpClient.get(this.settings.styleUrlEndpoint(this.formValue.clientId)).subscribe({\r\n\t\t\t\tnext: (x: any) => super.initEditor(Object.assign(this.getEditorConfig(), { content_css: x.value })),\r\n\t\t\t\terror: () => super.initEditor(Object.assign(this.getEditorConfig()))\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tsuper.initEditor(this.getEditorConfig());\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Creates config for the editor\r\n\t * @returns \r\n\t */\r\n\tprivate getEditorConfig(): any {\r\n\t\treturn {\r\n\t\t\tpromotion: false,\r\n\t\t\ttoolbar: `${this.editorToolbar} snippetsButton`,\r\n\t\t\tforced_root_blocks: false,\r\n\t\t\theight: this.settings?.editorHeight || '700px',\r\n\t\t\tfile_picker_types: 'file image media',\r\n\t\t\timage_advtab: true,\r\n\t\t\tallow_html_in_named_anchor: true,\r\n\t\t\tvalid_children: '+a[div|span|img|h1|h2|h3|h4|h5|h6|br|hr|video],+span[i]',\r\n\t\t\tvalid_elements: '*[*]',\r\n\t\t\timages_upload_handler: (blobInfo: any, progress: Function) => new Promise((resolve, reject) => {\r\n\t\t\t\tvar clientIds: number[] = this.formValue?.clientJoins?.map((x: ContentClient) => x.clientId) ?? [];\r\n\t\t\t\tthis.fileService.upload(blobInfo.blob(), `upload`, {\r\n\t\t\t\t\tclientId: clientIds.length == 1 ? clientIds[0] : null,\r\n\t\t\t\t\tpath: clientIds.length == 1 ? 'images' : 'common/images',\r\n\t\t\t\t\tisPublic: true\r\n\t\t\t\t}).subscribe({\r\n\t\t\t\t\tnext: (event: any) => {\r\n\t\t\t\t\t\tif (event.type === HttpEventType.UploadProgress) {\r\n\r\n\t\t\t\t\t\t\t/* Calculate the progress percentage */\r\n\t\t\t\t\t\t\tconst percentDone = Math.round(100 * event.loaded / event.total);\r\n\r\n\t\t\t\t\t\t\t/* Pass the percentage into the progress-stream */\r\n\t\t\t\t\t\t\tconsole.info(percentDone);\r\n\t\t\t\t\t\t} else if (event instanceof HttpResponse) {\r\n\t\t\t\t\t\t\tconsole.log('Upload finished!');\r\n\t\t\t\t\t\t\tresolve(event.body.publicLink);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror: (error: any) => {\r\n\t\t\t\t\t\treject('Image upload failed due to a XHR Transport error:' + error);\r\n\t\t\t\t\t\tconsole.log('Image upload failed due to a XHR Transport error:' + error);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn of({});\r\n\t\t\t}),\r\n\t\t\tsetup: function (editor: any) {\r\n\t\t\t\t/* Add snippets button to the toolbar */\r\n\t\t\t\teditor.ui.registry.addMenuButton('snippetsButton', {\r\n\t\t\t\t\ttext: 'Snippets',\r\n\t\t\t\t\tfetch: function (callback: any) {\r\n\t\t\t\t\t\tcallback([\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\ttype: 'menuitem',\r\n\t\t\t\t\t\t\t\ttext: 'Variable',\r\n\t\t\t\t\t\t\t\tonAction: () => editor.insertContent('{{var name}}')\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\ttype: 'menuitem',\r\n\t\t\t\t\t\t\t\ttext: 'Block',\r\n\t\t\t\t\t\t\t\tonAction: () => editor.insertContent('{{block name=\"...\"}}')\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\ttype: 'menuitem',\r\n\t\t\t\t\t\t\t\ttext: 'View Component',\r\n\t\t\t\t\t\t\t\tonAction: () => editor.insertContent('{{vc name=\"...\"}}')\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t]);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t}\r\n\r\n\t/**\r\n\t * Cleanup subscriptions when this component is destroyed.\r\n\t */\r\n\toverride ngOnDestroy(): void {\r\n\t\tsuper.ngOnDestroy();\r\n\t\tif (this.routeSubscription) {\r\n\t\t\tthis.routeSubscription.unsubscribe();\r\n\t\t}\r\n\t}\r\n}","<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Content\" i18n-toolbarTitle=\"@@content\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\r\n\t\t\t\t\t\t\t<ng-template vd-editor let-field=\"field\" let-formGroup=\"formGroup\">\r\n\t\t\t\t\t\t\t\t<mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\" flex>\r\n\t\t\t\t\t\t\t\t\t<mat-label>{{field.label}}</mat-label>\r\n\t\t\t\t\t\t\t\t\t<editor [formControlName]=\"field.name\" [init]=\"editorConfig\" tinyMatFormControl flex></editor>\r\n\t\t\t\t\t\t\t\t\t<mat-hint *ngIf=\"field.hint\">{{field.hint}}</mat-hint>\r\n\t\t\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of formGroup.controls[field.name]['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t\t</vd-generic-form>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button *ngIf=\"isEditMode || true\" (click)=\"apply()\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-audit [entity]=\"item\"> </vd-audit>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>","import { AuthHelper, Column, Display, FormField, Grid, prop, required, Table } from \"@messaia/cdk\";\r\nimport { DocumentBase } from \"@messaia/cdk-base\";\r\n\r\n@Table({\r\n endpoint: 'document',\r\n projection: ['id', 'createdDate', 'name', 'extension', 'publicLink'],\r\n editable: false,\r\n downloadable: true\r\n})\r\nexport class Document extends DocumentBase {\r\n /**\r\n * @property\r\n */\r\n @required()\r\n @Column({\r\n index: 10,\r\n name: 'client.displayName',\r\n sortBy: 'client.displayName',\r\n maxWidth: 200,\r\n display: Grid.Lg,\r\n hide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients),\r\n })\r\n @FormField<Document>({\r\n row: 1,\r\n endpoint: 'client',\r\n projection: 'id,name',\r\n params: (x) => { return { enabled: true } },\r\n readonly: (x) => (x.id ?? 0) > 0,\r\n hide: (_, __, ctx) => ctx?.currentUser?.isDepartmentAdmin\r\n })\r\n @Display($localize`:@@project:Project`)\r\n public clientId?: number = AuthHelper.user.clientId;\r\n\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n @Column({\r\n index: 11,\r\n name: 'department.displayName',\r\n sortBy: 'department.displayName',\r\n maxWidth: 200,\r\n display: Grid.Lg,\r\n hide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n })\r\n @FormField<Document>({\r\n row: 2,\r\n endpoint: 'department',\r\n projection: 'id,name',\r\n params: (x) => { return { clientId: x.clientId, enabled: true } },\r\n fetchCondition: (x) => (x.clientId ?? 0) > 0,\r\n readonly: (x) => (x.id ?? 0) > 0 || !x.clientId,\r\n hide: (_, __, ctx) => ctx?.currentUser?.isDepartmentAdmin\r\n })\r\n @Display($localize`:@@department:Department`)\r\n public departmentId?: number = AuthHelper.user.departmentId;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public path: string = 'docs';\r\n\r\n /**\r\n * constructor\r\n * @param init \r\n */\r\n public constructor(init?: Partial<Document>) {\r\n super(init);\r\n Object.assign(this, init);\r\n }\r\n}","import { GenericService } from '@messaia/cdk';\r\nimport { DocumentBase } from '@messaia/cdk-base';\r\n\r\nexport abstract class DocumentGenericService<TDocument extends DocumentBase> extends GenericService<TDocument> {\r\n\r\n /**\r\n * Constructor\r\n * @param serviceName\r\n */\r\n constructor(serviceName?: string) {\r\n super(serviceName);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { Document } from '../models/document';\r\nimport { DocumentGenericService } from './document-generic';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class DocumentService extends DocumentGenericService<Document> {\r\n\r\n /**\r\n * Constructor\r\n */\r\n constructor() {\r\n super('document');\r\n }\r\n\r\n /**\r\n * Sends an email to the customer\r\n * @param id The ID of the document\r\n */\r\n public sendMail(id: number): Observable<any> {\r\n return this.update(`sendMail/${id}`, null);\r\n }\r\n}","\r\n\r\nexport const DocumentFormTemplate = `\r\n <div mat-dialog-title class=\"mat-headline-6\" i18n=\"@@newDocument\">New document</div>\r\n <form *ngIf=\"form\" [formGroup]=\"form\" (ngSubmit)=\"save()\">\r\n <vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [context]=\"this\">\r\n <ng-template vd-file let-field=\"field\" let-formGroup=\"formGroup\">\r\n <mat-form-field [attr.flex]=\"field.flex||0\" layout-margin appearance=\"outline\">\r\n <mat-label>{{field.header}}</mat-label>\r\n <div vd-file-input [formControlName]=\"field.name\" (select)=\"upload($event)\" [accept]=\"field.fileExtensions\"></div>\r\n </mat-form-field>\r\n </ng-template>\r\n </vd-generic-form>\r\n <div mat-dialog-actions class=\"pad-top\">\r\n <button type=\"submit\" mat-flat-button [disabled]=\"isSaving\" color=\"primary\" i18n=\"@@save\">Save</button>\r\n <button type=\"button\" mat-button (click)=\"cancel()\" i18n=\"@@cancel\">Cancel</button>\r\n </div>\r\n </form>`;","import { HttpEventType, HttpResponse } from '@angular/common/http';\r\nimport { ChangeDetectorRef, Directive, Type } from '@angular/core';\r\nimport { MatDialogRef } from '@angular/material/dialog';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { FileService, GenericReactiveFormComponent, SaveAction } from '@messaia/cdk';\r\nimport { DocumentBase } from \"@messaia/cdk-base\";\r\nimport { DocumentGenericService } from '../../services/document-generic';\r\n\r\n@Directive()\r\nexport abstract class DocumentFormBaseComponent<TDocument extends DocumentBase, TDocumentService extends DocumentGenericService<TDocument>> extends GenericReactiveFormComponent<TDocument, TDocumentService> {\r\n /**\r\n * Upload status\r\n */\r\n public isUploading: boolean = false;\r\n\r\n /**\r\n * Upload progress\r\n */\r\n public uploadProgress: number = 0;\r\n\r\n /**\r\n * Constructor\r\n */\r\n constructor(\r\n protected entityType: Type<TDocument>,\r\n protected documentService: TDocumentService,\r\n protected fileService: FileService,\r\n protected dialogRef: MatDialogRef<DocumentFormBaseComponent<TDocument, TDocumentService>>,\r\n protected override route: ActivatedRoute,\r\n protected override changeDetectorRef: ChangeDetectorRef,\r\n protected data: TDocument\r\n ) {\r\n super(entityType, documentService, route, changeDetectorRef)\r\n this.item = data;\r\n }\r\n\r\n /**\r\n * Uploads a new document\r\n */\r\n public upload(file: File | FileList): void {\r\n if (file != null) {\r\n this.fileService\r\n .upload(file as File, `upload`, new this.entityType(Object.assign(this.data || {}, this.formValue)))\r\n .subscribe({\r\n next: (event) => {\r\n if (event.type === HttpEventType.UploadProgress) {\r\n\r\n /* Calculate the progress percentage */\r\n const percentDone = Math.round(100 * event.loaded / event.total);\r\n\r\n /* Pass the percentage into the progress-stream */\r\n this.uploadProgress = percentDone;\r\n } else if (event instanceof HttpResponse) {\r\n this.form.patchValue(<Document>event.body);\r\n }\r\n },\r\n complete: () => this.isUploading = false,\r\n error: () => this.isUploading = false\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Event emitted after data submition\r\n * @param action \r\n * @param response \r\n */\r\n protected override onAfterSubmit(_1: SaveAction = SaveAction.SaveAndClose, _2: any = null): void {\r\n this.isSaving = false;\r\n this.cancel();\r\n }\r\n\r\n /**\r\n * Closes the dialog\r\n */\r\n public cancel(): void {\r\n this.dialogRef.close();\r\n this.reloadPage();\r\n }\r\n\r\n /**\r\n * Creates a new instance of the TEntity\r\n */\r\n protected override newInstance(): TDocument {\r\n return super.newInstance(Object.assign(new this.entityType({\r\n clientId: this.currentUser?.clientId,\r\n departmentId: this.currentUser?.departmentId\r\n }), this.data || {}));\r\n }\r\n}","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, Inject } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { FileService, VdFileInputComponent, VdGenericFormComponent } from '@messaia/cdk';\r\nimport { Document } from '../../models/document';\r\nimport { DocumentService } from '../../services/document.service`';\r\nimport { DocumentFormTemplate } from '../../templates/document-form.template';\r\nimport { DocumentFormBaseComponent } from '../document-form-base/document-form-base';\r\n\r\n@Component({\r\n\tselector: 'document-dialog',\r\n\ttemplate: DocumentFormTemplate,\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tReactiveFormsModule,\r\n\t\tMatDialogModule,\r\n\t\tMatFormFieldModule,\r\n\t\tVdGenericFormComponent,\r\n\t\tVdFileInputComponent\r\n\t]\r\n})\r\nexport class DocumentDialogComponent extends DocumentFormBaseComponent<Document, DocumentService> {\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor(\r\n\t\tprotected override documentService: DocumentService,\r\n\t\tprotected override fileService: FileService,\r\n\t\tprotected override route: ActivatedRoute,\r\n\t\tprotected override changeDetectorRef: ChangeDetectorRef,\r\n\t\tpublic override dialogRef: MatDialogRef<DocumentDialogComponent>,\r\n\t\t@Inject(MAT_DIALOG_DATA) public override data: Document = new Document()\r\n\t) {\r\n\t\tsuper(Document, documentService, fileService, dialogRef, route, changeDetectorRef, data)\r\n\t}\r\n\r\n\t/**\r\n\t * Event emitted before the form has built.\r\n\t */\r\n\tprotected override onBeforeFormBuild(): void {\r\n\t\tthis.item!.isPublic = true;\r\n\t}\r\n}","export enum TemplateType {\r\n Email,\r\n Pdf\r\n}","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class TemplateClient {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public templateId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public clientId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public client?: any;\r\n\r\n /**\r\n * @property\r\n */\r\n public clientName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<TemplateClient>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class TemplateDepartment {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public templateId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public departmentId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public department?: any;\r\n\r\n /**\r\n * @property\r\n */\r\n public departmentName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<TemplateDepartment>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { AuditEntity, Column, Display, FormField, FormFieldType, Grid, prop, required, Table, Utils } from \"@messaia/cdk\";\r\nimport { Attachment } from \"@messaia/cdk-base\";\r\nimport { TemplateType } from \"../enums/template-type\";\r\nimport { TemplateClient } from \"./template-client\";\r\nimport { TemplateDepartment } from \"./template-department\";\r\n\r\n@Table({\r\n\tendpoint: 'template',\r\n\tprojection: ['id', 'createdDate', 'name', 'key', 'subject', 'type', 'enabled'],\r\n\tduplicable: true\r\n})\r\nexport class Template extends AuditEntity {\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required()\r\n\t@FormField({\r\n\t\trow: 20,\r\n\t\tenumType: TemplateType,\r\n\t\tfieldSets: ['details']\r\n\t})\r\n\t@Display($localize`:@@type:Type`)\r\n\tpublic type: TemplateType = TemplateType.Email;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required()\r\n\t@Column()\r\n\t@FormField({\r\n\t\trow: 10,\r\n\t\tfieldSets: ['details']\r\n\t})\r\n\t@Display($localize`:@@name:Name`)\r\n\tpublic name?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@FormField<Template>({\r\n\t\trow: 15,\r\n\t\tendpoint: 'templateDoc',\r\n\t\toptionTextProperty: 'key',\r\n\t\toptionValueProperty: 'key',\r\n\t\tfieldSets: ['details'],\r\n\t\tchange: (_, __, ___, ctx: any) => ctx?.loadDraft()\r\n\t})\r\n\t@Display($localize`:@@draft:Draft`)\r\n\tpublic draft?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@Column({ maxWidth: 250, display: Grid.Lg })\r\n\t@FormField({\r\n\t\trow: 30,\r\n\t\tfieldSets: ['details']\r\n\t})\r\n\t@Display($localize`:@@subject:Subject`)\r\n\tpublic subject?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required()\r\n\t@Column({ maxWidth: 150, display: Grid.Lg })\r\n\t@FormField({\r\n\t\trow: 20,\r\n\t\tfieldSets: ['details']\r\n\t})\r\n\t@Display('Key')\r\n\tpublic key?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@FormField({\r\n\t\trow: 40,\r\n\t\ttype: FormFieldType.TextArea,\r\n\t\tfieldSets: ['details']\r\n\t})\r\n\t@Display($localize`:@@notice:Notice`)\r\n\tpublic notice?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@Display($localize`:@@email:Email`)\r\n\tpublic email?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required()\r\n\tpublic content?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\tpublic dummyData?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required({ conditionalExpression: (x: Template) => true })\r\n\t@Column<Template>({\r\n\t\tindex: 5,\r\n\t\tfilter: 'clientJoins.client.displayName',\r\n\t\tsortBy: 'clientJoins.Min(client.displayName)',\r\n\t\tcontent: (x) => x ? Utils.joinArray(x.clientJoins?.map(y => y.client?.displayName ?? '') ?? []) : undefined,\r\n\t\tdisplay: Grid.Lg,\r\n\t\tmaxWidth: 200,\r\n\t\thide: (_, __, ctx: any) => (!ctx.canCreate || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients)) || ctx.isClientAdmin,\r\n\t})\r\n\t@FormField<Template, TemplateClient>({\r\n\t\trow: 1,\r\n\t\tendpoint: 'client',\r\n\t\tparams: () => {\r\n\t\t\treturn {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\tprojection: 'id,displayName',\r\n\t\t\t\tsortBy: 'id'\r\n\t\t\t}\r\n\t\t},\r\n\t\tmultiple: true,\r\n\t\ttriggerMode: 'chip',\r\n\t\tfieldSets: ['details'],\r\n\t\thide: (_, __, ctx: any) => (!ctx.canCreate || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients)) || ctx.isClientAdmin,\r\n\t\tcompareWith: (o, v) => o.clientId === v.clientId,\r\n\t\tmapper: (x: { id: number, displayName: string }[]) => x.map(y => new TemplateClient({ clientId: y.id, clientName: y.displayName })),\r\n\t\toptionTemplate: (x) => x?.clientName,\r\n\t\ttriggerMapper: (x) => x?.clientName\r\n\t})\r\n\t@Display($localize`:@@projects:Projects`)\r\n\tpublic clientJoins?: TemplateClient[];\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@Column<Template>({\r\n\t\tindex: 5,\r\n\t\tfilter: 'departmentJoins.department.displayName',\r\n\t\tsortBy: 'departmentJoins.Min(department.displayName)',\r\n\t\tcontent: (x) => x ? Utils.joinArray(x.departmentJoins?.map(y => y.department?.displayName ?? '') ?? []) : undefined,\r\n\t\tdisplay: Grid.Lg,\r\n\t\tmaxWidth: 200,\r\n\t\thide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n\t})\r\n\t@FormField<Template, TemplateDepartment>({\r\n\t\trow: 2,\r\n\t\tendpoint: 'department',\r\n\t\tparams: (x) => {\r\n\t\t\treturn {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\tprojection: 'id,displayName',\r\n\t\t\t\tsortBy: 'id',\r\n\t\t\t\tclientId: x.clientJoins?.map(y => y.clientId)\r\n\t\t\t}\r\n\t\t},\r\n\t\tmultiple: true,\r\n\t\ttriggerMode: 'chip',\r\n\t\tfieldSets: ['details'],\r\n\t\thide: (_, __, ctx: any) => (!ctx.isAdmin && !ctx.isClientAdmin) || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n\t\tcompareWith: (o, v) => o.departmentId === v.departmentId,\r\n\t\tmapper: (x: { id: number, displayName: string }[]) => x.map(y => new TemplateDepartment({ departmentId: y.id, departmentName: y.displayName })),\r\n\t\toptionTemplate: (x) => x?.departmentName,\r\n\t\ttriggerMapper: (x) => x?.departmentName\r\n\t})\r\n\t@Display($localize`:@@departments:Departments`)\r\n\tpublic departmentJoins?: TemplateDepartment[];\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@Column({ event: 'toggle' })\r\n\t@FormField({\r\n\t\trow: 100,\r\n\t\tfieldSets: ['details']\r\n\t})\r\n\t@Display($localize`:@@enabled:Enabled`)\r\n\tpublic enabled?: true;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\tpublic attachments: Attachment[] = [];\r\n}","import { TemplateType } from \"../enums/template-type\";\r\n\r\nexport class TemplatePreview {\r\n /**\r\n * @property\r\n */\r\n public type?: TemplateType\r\n\r\n /**\r\n * @property\r\n */\r\n public endpoint?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n public displayName?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n public entityName?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n public entityId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public templateId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public email?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n public subject?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n public content?: string;\r\n\r\n /**\r\n * constructor\r\n * @param init \r\n */\r\n public constructor(init?: Partial<TemplatePreview>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { GenericService } from '@messaia/cdk';\r\nimport { Template } from '../models/template';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TemplateService extends GenericService<Template> {\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper('template');\r\n\t}\r\n}","import { Injectable } from '@angular/core';\r\nimport { GenericService } from '@messaia/cdk';\r\nimport { Template } from '../models/template';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TemplateDocService extends GenericService<Template> {\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper('templateDoc');\r\n\t}\r\n}","import { Injectable } from '@angular/core';\r\nimport { GenericService } from '@messaia/cdk';\r\nimport { TemplatePreview } from '../models/template-preview';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class TemplatePreviewService extends GenericService<TemplatePreview> {\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper('templatePreview');\r\n\t}\r\n}","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, ElementRef, Inject, ViewChild } from '@angular/core';\r\nimport { FormsModule, NgModel } from '@angular/forms';\r\nimport { MatCard } from '@angular/material/card';\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';\r\nimport { MatDivider } from '@angular/material/divider';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIcon } from '@angular/material/icon';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { BaseComponent, VdChipsComponent } from '@messaia/cdk';\r\nimport { saveAs } from 'file-saver';\r\nimport { PDFSource, PdfViewerModule } from 'ng2-pdf-viewer';\r\nimport { TemplateType } from '../../enums/template-type';\r\nimport { TemplatePreview } from '../../models/template-preview';\r\nimport { TemplatePreviewService } from '../../services/template-preview';\r\n\r\n@Component({\r\n selector: 'app-template-preview',\r\n templateUrl: 'template-preview-dialog.html',\r\n styleUrls: ['template-preview-dialog.scss'],\r\n imports: [\r\n CommonModule,\r\n MatIcon,\r\n MatFormFieldModule,\r\n MatProgressBarModule,\r\n MatDivider,\r\n MatCard,\r\n VdChipsComponent,\r\n FormsModule,\r\n PdfViewerModule\r\n ]\r\n})\r\nexport class TemplatePreviewDialogComponent extends BaseComponent {\r\n\r\n /**\r\n * TemplateType\r\n */\r\n public TemplateType: typeof TemplateType = TemplateType;\r\n\r\n /**\r\n * Pdf blob\r\n */\r\n public pdfBlob?: Blob;\r\n\r\n /**\r\n * PDF source\r\n */\r\n public pdfSrc?: string | Uint8Array | PDFSource;\r\n\r\n /**\r\n * Pdf zoom\r\n */\r\n public zoom = 0.98;\r\n\r\n /**\r\n * Pdf zoom scale\r\n */\r\n public zoomScale: 'page-height' | 'page-fit' | 'page-width' = 'page-width';\r\n\r\n /**\r\n * Track whether the dialog is maximized\r\n */\r\n public isMaximized = false;\r\n\r\n /* \r\n * Reference to the iframe element. \r\n * This will be used to manipulate the iframe's content programmatically.\r\n * 'static: false' indicates that the reference is resolved after view initialization.\r\n */\r\n @ViewChild('iframeRef', { static: false })\r\n public iframeRef?: ElementRef;\r\n\r\n /* \r\n * Reference to the NgModel directive for the input element.\r\n */\r\n @ViewChild('email')\r\n public emailModel?: NgModel;\r\n\r\n /**\r\n * Constructor\r\n * @param dialogRef \r\n * @param data \r\n */\r\n constructor(\r\n protected service: TemplatePreviewService,\r\n public dialogRef: MatDialogRef<TemplatePreviewDialogComponent>,\r\n @Inject(MAT_DIALOG_DATA) public data: TemplatePreview,\r\n protected override route: ActivatedRoute,\r\n protected override changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n super(route, changeDetectorRef)\r\n this.data.email = localStorage.getItem('templatePreviewEmail') ?? '';\r\n }\r\n\r\n /**\r\n * Lifecycle hook that is called after data-bound properties\r\n * of a directive are initialized.\r\n */\r\n override ngOnInit(): void {\r\n /* Set loading state to true */\r\n this.isLoading = true;\r\n\r\n if (this.data.type == TemplateType.Pdf) {\r\n this.service.create(this.data, undefined, { responseType: 'arraybuffer' }).subscribe({\r\n next: (x) => {\r\n /* Set loading state to false */\r\n this.isLoading = false;\r\n\r\n /* Create a Blob from the response */\r\n this.pdfBlob = new Blob([<any>x], { type: 'application/pdf' });\r\n\r\n /* Create a URL for the PDF Blob */\r\n this.pdfSrc = URL.createObjectURL(this.pdfBlob);\r\n },\r\n error: () => {\r\n /* Handle error and set loading state to false */\r\n this.isLoading = false;\r\n }\r\n });\r\n } else {\r\n this.service.create(this.data).subscribe({\r\n next: (x: any) => {\r\n /* Set loading state to false */\r\n this.isLoading = false;\r\n\r\n /* Merge response data with existing data */\r\n Object.assign(this.data, x);\r\n\r\n /* Get the iframe element from the template reference variable */\r\n const iframe = this.iframeRef?.nativeElement;\r\n if (iframe) {\r\n /* Access the document object of the iframe */\r\n const doc = iframe.contentDocument || iframe.contentWindow.document;\r\n\r\n /* Write the HTML content to the iframe */\r\n doc.open();\r\n doc.write(x?.content ?? '');\r\n doc.close();\r\n }\r\n },\r\n error: () => {\r\n /* Handle error and set loading state to false */\r\n this.isLoading = false;\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Sends a mail\r\n */\r\n public sendMail() {\r\n /* Throw an exception if this.data.email is null */\r\n if (this.data.email == null) {\r\n throw new Error('Email is null. Cannot send mail.');\r\n }\r\n\r\n this.service.create(this.data, '/sendMail').subscribe({\r\n next: (x) => {\r\n this.isLoading = false;\r\n localStorage.setItem('templatePreviewEmail', this.data.email!);\r\n this.snackBarService.open($localize`:@@snackbar.send.success:Data sent successfully.`, undefined, {\r\n duration: 3000,\r\n panelClass: ['primary']\r\n });\r\n },\r\n error: () => this.isLoading = false\r\n });\r\n }\r\n\r\n /**\r\n * Downloads the pdf\r\n */\r\n public download(): void {\r\n saveAs(this.pdfBlob!, \"Pdf.pdf\");\r\n }\r\n\r\n /**\r\n * Zooms in the pdf\r\n */\r\n public zoomIn(): void {\r\n this.zoom += 0.1;\r\n }\r\n\r\n /**\r\n * Zooms out the pdf\r\n */\r\n public zoomOut(): void {\r\n this.zoom += -0.1;\r\n }\r\n\r\n /**\r\n * Closes the dialog\r\n */\r\n public cancel(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n /**\r\n * Toggle the dialog between maximized and normal size\r\n */\r\n public toggleMaximize() {\r\n this.isMaximized = !this.isMaximized;\r\n /* Apply or remove the full-screen class based on the isMaximized flag */\r\n if (this.isMaximized) {\r\n this.dialogRef.addPanelClass('full-screen');\r\n } else {\r\n this.dialogRef.removePanelClass('full-screen');\r\n }\r\n }\r\n}","<div mat-dialog-title>\r\n <span i18n=\"@@templatePreview\">Template preview</span>\r\n <span flex></span>\r\n <div *ngIf=\"data.type == TemplateType.Pdf && pdfSrc ||true\">\r\n <a mat-icon-button (click)=\"download()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">download</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomIn()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_in</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"zoomOut()\">\r\n <mat-icon fontSet=\"material-symbols-outlined\">zoom_out</mat-icon>\r\n </a>\r\n <a mat-icon-button (click)=\"toggleMaximize()\" class=\"maximize-button\">\r\n <mat-icon>{{ isMaximized ? 'fullscreen_exit' : 'fullscreen' }}</mat-icon>\r\n </a>\r\n </div>\r\n</div>\r\n<form #form=\"ngForm\" novalidate layout=\"column\" flex>\r\n <!-- #region Entity -->\r\n <div layout=\"row\" flex *ngIf=\"data.endpoint\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label>{{data.entityName}}</mat-label>\r\n <vd-chips [(ngModel)]=\"data.entityId\" [endpoint]=\"data.endpoint\" [params]=\"{sortBy: 'id'}\" text=\"displayName\" name=\"entityId\" #entityId=\"ngModel\" [placeholder]=\"data.entityName??''\" required flex>\r\n <ng-template vd-chip let-entity=\"chip\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n <ng-template vd-autocomplete-option let-entity=\"option\">\r\n <span>{{entity[data.displayName??'']}}</span>\r\n </ng-template>\r\n </vd-chips>\r\n <mat-error *ngIf=\"entityId.errors!['required']\"><span>{{data.entityName}}</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <div layout=\"column\" layout-gt-sm=\"row\" class=\"push-bottom\" flex *ngIf=\"isLoading\">\r\n <div flex layout-margin>\r\n <div class=\"push-bottom-sm\" i18n=\"@@pleaseWait\">Please Wait...</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </div>\r\n </div>\r\n\r\n <!-- #region PDF Content -->\r\n <mat-card *ngIf=\"data.type == TemplateType.Pdf\" flex>\r\n <pdf-viewer [src]=\"pdfSrc\" *ngIf=\"data.type == TemplateType.Pdf && pdfSrc\" [render-text]=\"true\" [zoom]=\"zoom\" [zoom-scale]=\"zoomScale\" [show-borders]=\"true\" [original-size]=\"false\" [autoresize]=\"true\"></pdf-viewer>\r\n </mat-card>\r\n <!-- #region Content -->\r\n\r\n <div *ngIf=\"data.type != TemplateType.Pdf\" layout=\"column\" class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <!-- #region Content -->\r\n <div class=\"pad-top-none\" layout-padding margin-layout flex>\r\n <iframe #iframeRef frameborder=\"0\"></iframe>\r\n </div>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Email-->\r\n <div layout-gt-sm=\"row\" layout=\"column\" class=\"pad-top\">\r\n <mat-form-field flex layout-margin>\r\n <mat-label i18n=\"@@email\">Email</mat-label>\r\n <input matInput type=\"email\" name=\"email\" [(ngModel)]=\"data.email\" #email=\"ngModel\" email placeholder=\"Email\" i18n-placeholder=\"@@email\">\r\n <mat-error *ngIf=\"email.errors && email.errors!['required']\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isRequired\"> is required</span></mat-error>\r\n <mat-error *ngIf=\"!email.errors!['required'] && email.errors!['email']\"><span i18n=\"@@email\">Email</span><span i18n=\"@@isInvalid\"> is invalid</span></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <!-- #endregion -->\r\n </div>\r\n <mat-divider></mat-divider>\r\n <div mat-dialog-actions class=\"pad-left\">\r\n <button type=\"button\" mat-flat-button color=\"primary\" (click)=\"cancel()\" [autofocus]=\"true\" i18n=\"@@close\">Close</button>\r\n <button type=\"button\" mat-flat-button (click)=\"sendMail()\" [disabled]=\"data.email == undefined || !emailModel?.valid\" i18n=\"@@sendMail\">Send mail</button>\r\n </div>\r\n</form>","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectorRef, Component, inject, ViewEncapsulation } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CodemirrorModule } from '@ctrl/ngx-codemirror';\r\nimport { FileService, GenericReactiveFormComponent, RxReactiveFormsModule, VdGenericFormComponent, VdLayoutCardOverComponent, VdLayoutNavComponent } from '@messaia/cdk';\r\nimport { Attachment, VdAuditComponent } from '@messaia/cdk-base';\r\nimport 'codemirror/addon/edit/closetag';\r\nimport 'codemirror/addon/edit/matchbrackets';\r\nimport 'codemirror/addon/selection/active-line';\r\nimport 'codemirror/mode/htmlmixed/htmlmixed';\r\nimport 'codemirror/mode/javascript/javascript';\r\nimport { saveAs } from 'file-saver';\r\nimport { TemplateType } from '../../enums/template-type';\r\nimport { CmsSettings } from '../../models/cms-settings';\r\nimport { Template } from '../../models/template';\r\nimport { TemplatePreview } from '../../models/template-preview';\r\nimport { TemplateService } from '../../services/template';\r\nimport { TemplateDocService } from '../../services/template-doc';\r\nimport { TemplatePreviewDialogComponent } from '../template-preview-dialog/template-preview-dialog';\r\n\r\n@Component({\r\n\tselector: 'app-template-form',\r\n\ttemplateUrl: './template-form.html',\r\n\tstyleUrls: ['./template-form.scss'],\r\n\tencapsulation: ViewEncapsulation.None,\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tReactiveFormsModule,\r\n\t\tRxReactiveFormsModule,\r\n\t\tCodemirrorModule,\r\n\t\tMatExpansionModule,\r\n\t\tMatButtonModule,\r\n\t\tVdLayoutNavComponent,\r\n\t\tVdLayoutCardOverComponent,\r\n\t\tVdGenericFormComponent,\r\n\t\tVdAuditComponent\r\n\t]\r\n})\r\nexport class TemplateFormComponent extends GenericReactiveFormComponent<Template, TemplateService> {\r\n\t/**\r\n\t * Injects the CmsSettings service using Angular's `inject()` function.\r\n\t * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n\t * commonly used in standalone components or functional-style Angular APIs.\r\n\t */\r\n\tpublic override settings: CmsSettings = inject(CmsSettings);\r\n\r\n\t/**\r\n\t * Represents the available template types.\r\n\t */\r\n\tpublic TemplateType: typeof TemplateType = TemplateType;\r\n\r\n\t/**\r\n\t * Retrieves the attachments form control.\r\n\t */\r\n\tget attachmentsControl() { return this.form.controls['attachments']; }\r\n\r\n\t/**\r\n\t * Configuration options for the HTML editor.\r\n\t */\r\n\tpublic override editorOptions: any = {\r\n\t\tlineNumbers: true,\r\n\t\ttheme: 'material',\r\n\t\tautoCloseTags: true,\r\n\t\tstyleActiveLine: true,\r\n\t\tmode: 'text/html',\r\n\t\tprofile: 'xhtml'\r\n\t};\r\n\r\n\t/**\r\n\t * Configuration options for the JSON editor.\r\n\t */\r\n\tpublic jsonEditorOptions: any = {\r\n\t\tlineNumbers: true,\r\n\t\ttheme: 'material',\r\n\t\tautoCloseTags: true,\r\n\t\tstyleActiveLine: true,\r\n\t\tmode: {\r\n\t\t\tname: \"javascript\",\r\n\t\t\tjson: true,\r\n\t\t\tstatementIndent: 2\r\n\t\t},\r\n\t\tprofile: 'xhtml',\r\n\t\tlineWrapping: true,\r\n\t\tindentWithTabs: false,\r\n\t\ttabSize: 2\r\n\t};\r\n\r\n\t/**\r\n\t * Initializes an instance of TemplateFormComponent.\r\n\t */\r\n\tconstructor(\r\n\t\tprotected override service: TemplateService,\r\n\t\tprotected templateDocService: TemplateDocService,\r\n\t\tprotected fileService: FileService,\r\n\t\tprotected override dialog: MatDialog,\r\n\t\tprotected override route: ActivatedRoute,\r\n\t\tprotected override changeDetectorRef: ChangeDetectorRef\r\n\t) {\r\n\t\tsuper(Template, service, route, changeDetectorRef);\r\n\r\n\t\tif (this.settings?.multitenantable || this.settings?.multiClients) {\r\n\t\t\tthis.include('ClientJoins', true);\r\n\t\t}\r\n\r\n\t\tif (this.settings?.multitenantable || this.settings?.multiDepartments) {\r\n\t\t\tthis.include('DepartmentJoins', true);\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Removes an attachment from the form.\r\n\t * @param attachment The attachment to remove.\r\n\t */\r\n\tpublic removeAttachment(attachment: Attachment): void {\r\n\t\tif (Array.isArray(this.item?.attachments)) {\r\n\t\t\tvar index = this.attachmentsControl.value.indexOf(attachment, 0);\r\n\t\t\tif (index > -1) {\r\n\t\t\t\tthis.dialogService.openConfirm({\r\n\t\t\t\t\tmessage: 'Möchten Sie diesen Anhang wirklich löschen?',\r\n\t\t\t\t\ttitle: 'Löschen bestätigen',\r\n\t\t\t\t\tcancelButton: $localize`:@@cancel:Cancel`,\r\n\t\t\t\t\tacceptButton: $localize`:@@yes:Yes`,\r\n\t\t\t\t}).afterClosed().subscribe((accept: boolean) => {\r\n\t\t\t\t\tif (accept) {\r\n\t\t\t\t\t\tthis.attachmentsControl.value.splice(index, 1);\r\n\t\t\t\t\t\tthis.attachmentsControl.updateValueAndValidity();\r\n\t\t\t\t\t\tthis.attachmentsControl.markAsDirty();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Handles file upload for attachments.\r\n\t * @param $event The file input event.\r\n\t */\r\n\tpublic uploadAttachment($event: Event): void {\r\n\t\tlet file = (($event?.target as HTMLInputElement).files ?? [])[0];\r\n\t\tif (file != null) {\r\n\t\t\t// this.fileService.upload(file, `upload`, { clientId: this.item.clientId, path: `${this.item.clientId ? '' : 'common/'}docs` }).subscribe(event => {\r\n\t\t\t// \tif (event.type === HttpEventType.UploadProgress) {\r\n\r\n\t\t\t// \t\t/* Calculate the progress percentage */\r\n\t\t\t// \t\tconst percentDone = Math.round(100 * event.loaded / event.total);\r\n\r\n\t\t\t// \t\t/* Pass the percentage into the progress-stream */\r\n\t\t\t// \t\tconsole.info(percentDone);\r\n\t\t\t// \t} else if (event instanceof HttpResponse) {\r\n\t\t\t// \t\t/* Add our attachments */\r\n\t\t\t// \t\tthis.attachmentsControl.setValue([...this.attachmentsControl.value, <Attachment>event.body]);\r\n\t\t\t// \t\tthis.attachmentsControl.updateValueAndValidity();\r\n\t\t\t// \t\tthis.attachmentsControl.markAsDirty();\r\n\t\t\t// \t}\r\n\t\t\t// });\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Initiates a download for the specified attachment.\r\n\t * @param attachment The attachment to download.\r\n\t */\r\n\tpublic downloadAttachment(attachment: Attachment): void {\r\n\t\tif (attachment.id) {\r\n\t\t\tthis.service.download(`downloadAttachment/${attachment.id}`).subscribe(x => {\r\n\t\t\t\tsaveAs(new Blob([x.data], { type: '' }), x.filename);\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\t/**\r\n\t * Opens a preview dialog for the template.\r\n\t */\r\n\tpublic showPreview(): void {\r\n\t\tthis.dialog.open(TemplatePreviewDialogComponent, {\r\n\t\t\twidth: this.item?.type == TemplateType.Pdf ? '1020px' : '920px',\r\n\t\t\tdata: new TemplatePreview({\r\n\t\t\t\ttemplateId: this.item?.id,\r\n\t\t\t\ttype: this.item?.type\r\n\t\t\t}),\r\n\t\t\tpanelClass: ['dialog-full-screen']\r\n\t\t}).afterClosed().subscribe();\r\n\t}\r\n\r\n\t/**\r\n\t * Loads a draft version of the template.\r\n\t */\r\n\tpublic loadDraft(): void {\r\n\t\tthis.templateDocService.get(`${this.item?.draft}`).subscribe(x => {\r\n\t\t\tthis.form.patchValue(<Template>{\r\n\t\t\t\tsubject: x.subject?.length > 0 ? x.subject : this.item?.subject,\r\n\t\t\t\tcontent: x.content\r\n\t\t\t});\r\n\t\t\tthis.form.markAllAsTouched();\r\n\t\t});\r\n\t}\r\n}","<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [actions]=\"toolbarActions\" [data]=\"item\" [context]=\"this\">\r\n\t<form *ngIf=\"form\" [formGroup]=\"form\" novalidate (ngSubmit)=\"save()\">\r\n\t\t<vd-layout-card-over class=\"accordion\" cardWidth=\"70\" color=\"primary\" flex>\r\n\t\t\t<mat-accordion [multi]=\"!isEditMode\">\r\n\t\t\t\t<!-- #region Details -->\r\n\t\t\t\t<mat-expansion-panel expanded=\"true\" id=\"details\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title i18n=\"@@details\">Details</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-generic-form [formGroup]=\"form\" [fieldGroups]=\"fieldGroups\" [fieldSets]=\"['details']\" [context]=\"this\"></vd-generic-form>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Content -->\r\n\t\t\t\t<mat-expansion-panel id=\"content\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@content\">Content</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<div layout-margin>\r\n\t\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"showPreview()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Content -->\r\n\t\t\t\t<mat-expansion-panel id=\"testData\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@testData\">Test Data</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<div layout-margin>\r\n\t\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"submit\" mat-flat-button color=\"primary\" [disabled]=\"isSaving\" i18n=\"@@save\">Save</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"apply()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving\" i18n=\"@@apply\">Apply</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"showPreview()\" *ngIf=\"isEditMode\" [disabled]=\"isSaving || !form.pristine\" i18n=\"@@preview\">Preview</button>\r\n\t\t\t\t\t\t<button type=\"button\" mat-button (click)=\"back()\" i18n=\"@@cancel\">Cancel</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t<!-- #region Audit -->\r\n\t\t\t\t<mat-expansion-panel id=\"audit\" *ngIf=\"isEditMode\">\r\n\t\t\t\t\t<mat-expansion-panel-header>\r\n\t\t\t\t\t\t<mat-panel-title>\r\n\t\t\t\t\t\t\t<span i18n=\"@@audit\">Audit</span>\r\n\t\t\t\t\t\t</mat-panel-title>\r\n\t\t\t\t\t</mat-expansion-panel-header>\r\n\t\t\t\t\t<ng-template matExpansionPanelContent>\r\n\t\t\t\t\t\t<vd-audit [entity]=\"item\"> </vd-audit>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<mat-action-row>\r\n\t\t\t\t\t\t<button type=\"button\" mat-flat-button color=\"accent\" (click)=\"back()\" i18n=\"@@close\">Close</button>\r\n\t\t\t\t\t\t<span flex></span>\r\n\t\t\t\t\t</mat-action-row>\r\n\t\t\t\t</mat-expansion-panel>\r\n\t\t\t\t<!-- #endregion -->\r\n\t\t\t</mat-accordion>\r\n\t\t</vd-layout-card-over>\r\n\t</form>\r\n</vd-layout-nav>","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class ContentVariableClient {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public contentVariableId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public clientId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public client?: any;\r\n\r\n /**\r\n * @property\r\n */\r\n public clientName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<ContentVariableClient>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class ContentVariableDepartment {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public contentVariableId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public departmentId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public department?: any;\r\n\r\n /**\r\n * @property\r\n */\r\n public departmentName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<ContentVariableDepartment>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { Api, AuditEntity, Column, Display, FormField, Grid, prop, required, Table, Utils } from \"@messaia/cdk\";\r\nimport { ContentVariableClient } from \"./content-variable-client\";\r\nimport { ContentVariableDepartment } from \"./content-variable-department\";\r\n\r\n@Api('contentvariable')\r\n@Table({\r\n endpoint: 'contentvariable',\r\n projection: ['id', 'createdDate', 'name', 'value', 'enabled']\r\n})\r\nexport class ContentVariable extends AuditEntity {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public title?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n @FormField({ row: 10 })\r\n @Column({})\r\n @Display($localize`:@@name:Name`)\r\n public name?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n @FormField({ row: 11 })\r\n @Column({ display: Grid.Sm })\r\n @Display($localize`:@@value:Value`)\r\n public value?: string;\r\n\r\n /**\r\n * @property\r\n */\r\n @required({ conditionalExpression: (x: ContentVariable) => true })\r\n @Column<ContentVariable>({\r\n index: 5,\r\n name: 'clientJoins.client.displayName',\r\n sortBy: 'clientJoins.Min(client.displayName)',\r\n content: (x) => x ? Utils.joinArray(x?.clientJoins?.map(y => y.client?.displayName ?? '') ?? []) : undefined,\r\n display: Grid.Lg,\r\n maxWidth: 200,\r\n hide: (_, __, ctx: any) => (!ctx.canCreate || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients)) || ctx.isClientAdmin,\r\n })\r\n @FormField<ContentVariable, ContentVariableClient>({\r\n row: 1,\r\n endpoint: 'client',\r\n params: () => {\r\n return {\r\n enabled: true,\r\n projection: 'id,displayName',\r\n sortBy: 'id'\r\n }\r\n },\r\n multiple: true,\r\n triggerMode: 'chip',\r\n hide: (_, __, ctx: any) => (!ctx.canCreate || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients)) || ctx.isClientAdmin,\r\n compareWith: (o, v) => o.clientId === v.clientId,\r\n mapper: (x: { id: number, displayName: string }[]) => x.map(y => new ContentVariableClient({ clientId: y.id, clientName: y.displayName })),\r\n optionTemplate: (x) => x?.clientName,\r\n triggerMapper: (x) => x?.clientName\r\n })\r\n @Display($localize`:@@projects:Projects`)\r\n public clientJoins?: ContentVariableClient[];\r\n\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n @Column<ContentVariable>({\r\n index: 5,\r\n name: 'departmentJoins.department.displayName',\r\n sortBy: 'departmentJoins.Min(department.displayName)',\r\n content: (x) => x ? Utils.joinArray(x.departmentJoins?.map(y => y.department?.displayName ?? '') ?? []) : undefined,\r\n display: Grid.Lg,\r\n maxWidth: 200,\r\n hide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n })\r\n @FormField<ContentVariable, ContentVariableDepartment>({\r\n row: 2,\r\n endpoint: 'department',\r\n params: (x) => {\r\n return {\r\n enabled: true,\r\n projection: 'id,displayName',\r\n sortBy: 'id',\r\n clientId: x.clientJoins?.map(y => y.clientId)\r\n }\r\n },\r\n multiple: true,\r\n triggerMode: 'chip',\r\n hide: (_, __, ctx: any) => (!ctx.isAdmin && !ctx.isClientAdmin) || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n compareWith: (o, v) => o.departmentId === v.departmentId,\r\n mapper: (x: { id: number, displayName: string }[]) => x.map(y => new ContentVariableDepartment({ departmentId: y.id, departmentName: y.displayName })),\r\n optionTemplate: (x) => x?.departmentName,\r\n triggerMapper: (x) => x?.departmentName\r\n })\r\n @Display($localize`:@@departments:Departments`)\r\n public departmentJoins?: ContentVariableDepartment[];\r\n\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n @FormField({ row: 21 })\r\n @Column({ event: 'toggle' })\r\n @Display($localize`:@@enabled:Enabled`)\r\n public enabled?: boolean;\r\n}","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class FaqClient {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public faqId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public clientId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public client?: any;\r\n /**\r\n * @property\r\n */\r\n public clientName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<FaqClient>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { prop, required } from \"@messaia/cdk\";\r\n\r\n/**\r\n * @class\r\n */\r\nexport class FaqDepartment {\r\n /**\r\n * @property\r\n */\r\n @prop()\r\n public faqId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n @required()\r\n public departmentId?: number;\r\n\r\n /**\r\n * @property\r\n */\r\n public department?: any;\r\n\r\n /**\r\n * @property\r\n */\r\n public departmentName?: string;\r\n\r\n /**\r\n * Constructor\r\n * @param init\r\n */\r\n public constructor(init?: Partial<FaqDepartment>) {\r\n Object.assign(this, init);\r\n }\r\n}","import { Api, AuditEntity, Column, Display, FormField, FormFieldType, Grid, prop, required, Table, Utils } from \"@messaia/cdk\";\r\nimport { FaqClient } from \"./faq-client\";\r\nimport { FaqDepartment } from \"./faq-department\";\r\n\r\n@Api('faq')\r\n@Table({\r\n\tendpoint: 'faq',\r\n\tprojection: ['id', 'createdDate', 'question', 'group', 'enabled'],\r\n\tduplicable: true\r\n})\r\nexport class Faq extends AuditEntity {\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required()\r\n\t@Column({\r\n\t\tindex: 1,\r\n\t\tcontentLength: 30\r\n\t})\r\n\t@FormField({ row: 4 })\r\n\t@Display($localize`:@@question:Question`)\r\n\tpublic question?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required()\r\n\t@Column({\r\n\t\tindex: 2,\r\n\t\tmaxWidth: 160,\r\n\t\tdisplay: Grid.Lg\r\n\t})\r\n\t@FormField({\r\n\t\trow: 6,\r\n\t\ttype: FormFieldType.Autocomplete\r\n\t})\r\n\t@Display($localize`:@@group:Group`)\r\n\tpublic group?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required({ conditionalExpression: (x: Faq) => true })\r\n\t@Column<Faq>({\r\n\t\tindex: 5,\r\n\t\tname: 'clientJoins.client.displayName',\r\n\t\tsortBy: 'clientJoins.Min(client.displayName)',\r\n\t\tcontent: (x) => x ? Utils.joinArray(x.clientJoins?.map(y => y.client?.displayName ?? '') ?? []) : undefined,\r\n\t\tdisplay: Grid.Lg,\r\n\t\tmaxWidth: 200,\r\n\t\thide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients),\r\n\t})\r\n\t@FormField<Faq, FaqClient>({\r\n\t\trow: 1,\r\n\t\tendpoint: 'client',\r\n\t\tparams: () => {\r\n\t\t\treturn {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\tprojection: 'id,displayName',\r\n\t\t\t\tsortBy: 'id'\r\n\t\t\t}\r\n\t\t},\r\n\t\tmultiple: true,\r\n\t\ttriggerMode: 'chip',\r\n\t\thide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiClients),\r\n\t\tcompareWith: (o, v) => o.clientId === v.clientId,\r\n\t\tmapper: (x: { id: number, displayName: string }[]) => x.map(y => new FaqClient({ clientId: y.id, clientName: y.displayName })),\r\n\t\toptionTemplate: (x) => x?.clientName,\r\n\t\ttriggerMapper: (x) => x?.clientName\r\n\t})\r\n\t@Display($localize`:@@projects:Projects`)\r\n\tpublic clientJoins?: FaqClient[];\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@Column<Faq>({\r\n\t\tindex: 5,\r\n\t\tname: 'departmentJoins.department.displayName',\r\n\t\tsortBy: 'departmentJoins.Min(department.displayName)',\r\n\t\tcontent: (x) => x ? Utils.joinArray(x.departmentJoins?.map(y => y.department?.displayName ?? '') ?? []) : undefined,\r\n\t\tdisplay: Grid.Lg,\r\n\t\tmaxWidth: 200,\r\n\t\thide: (_, __, ctx: any) => !ctx.isAdmin || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n\t})\r\n\t@FormField<Faq, FaqDepartment>({\r\n\t\trow: 2,\r\n\t\tendpoint: 'department',\r\n\t\tparams: (x) => {\r\n\t\t\treturn {\r\n\t\t\t\tenabled: true,\r\n\t\t\t\tprojection: 'id,displayName',\r\n\t\t\t\tsortBy: 'id',\r\n\t\t\t\tclientId: x.clientJoins?.map(y => y.clientId)\r\n\t\t\t}\r\n\t\t},\r\n\t\tmultiple: true,\r\n\t\ttriggerMode: 'chip',\r\n\t\thide: (_, __, ctx: any) => (!ctx.isAdmin && !ctx.isClientAdmin) || (!ctx.settings?.multitenantable && !ctx.settings?.multiDepartments),\r\n\t\tcompareWith: (o, v) => o.departmentId === v.departmentId,\r\n\t\tmapper: (x: { id: number, displayName: string }[]) => x.map(y => new FaqDepartment({ departmentId: y.id, departmentName: y.displayName })),\r\n\t\toptionTemplate: (x) => x?.departmentName,\r\n\t\ttriggerMapper: (x) => x?.departmentName\r\n\t})\r\n\t@Display($localize`:@@departments:Departments`)\r\n\tpublic departmentJoins?: FaqDepartment[];\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@FormField({ row: 6 })\r\n\t@Display($localize`:@@ordering:Ordering`)\r\n\tpublic ordering?: number;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@required()\r\n\t@FormField({ row: 5, type: FormFieldType.Editor })\r\n\t@Display($localize`:@@answer:Answer`)\r\n\tpublic answer?: string;\r\n\r\n\t/**\r\n\t * @property\r\n\t */\r\n\t@prop()\r\n\t@Column({\r\n\t\tindex: 20,\r\n\t\tevent: 'toggle'\r\n\t})\r\n\t@FormField({ row: 10 })\r\n\t@Display($localize`:@@enabled:Enabled`)\r\n\tpublic enabled?: boolean;\r\n\r\n\t/**\r\n\t * constructor\r\n\t * @param init \r\n\t */\r\n\tpublic constructor(init?: Partial<Faq>) {\r\n\t\tsuper(init);\r\n\t\tObject.assign(this, init);\r\n\t}\r\n}","import {\r\n Api,\r\n AuditEntity,\r\n Column,\r\n Display,\r\n FormField,\r\n FormFieldType,\r\n Grid,\r\n prop,\r\n required,\r\n Table\r\n} from \"@messaia/cdk\";\r\n\r\n@Api('slider')\r\n@Table({\r\n projection: ['id', 'createdDate', 'client(displayName)', 'name', 'group', 'enabled'],\r\n})\r\nexport class Slider extends AuditEntity {\r\n /**\r\n * @property Slider name.\r\n * @description The title or identifier for the slider.\r\n * @type {string | undefined}\r\n */\r\n @required()\r\n @FormField({ row: 10 })\r\n @Column({})\r\n @Display($localize`:@@name:Name`)\r\n public name?: string;\r\n\r\n /**\r\n * @property Slider group.\r\n * @description A group identifier used to categorize sliders.\r\n * @type {string | undefined}\r\n */\r\n @required()\r\n @FormField({ row: 20 })\r\n @Column({ maxWidth: 150, display: Grid.Lg })\r\n @Display($localize`:@@group:Group`)\r\n public group?: string;\r\n\r\n /**\r\n * @property Slider content.\r\n * @description HTML or rich text content displayed within the slider.\r\n * @type {string | undefined}\r\n */\r\n @required()\r\n @FormField({ row: 50, type: FormFieldType.Editor })\r\n @Display($localize`:@@content:Content`)\r\n public content?: string;\r\n\r\n /**\r\n * @property Embedded style.\r\n * @description Optional CSS styling specific to this content.\r\n * @type {string}\r\n */\r\n @prop()\r\n @FormField({\r\n row: 60,\r\n type: FormFieldType.TextArea\r\n })\r\n @Display($localize`:@@style:Style`)\r\n public styleInline?: string;\r\n\r\n /**\r\n * @property Slider image path.\r\n * @description File path to the slider image, typically used internally.\r\n * @type {string | undefined}\r\n */\r\n @prop()\r\n public imagePath?: string;\r\n\r\n /**\r\n * @property Image file for the slider.\r\n * @description This property stores the image file for the slider, located in a common directory for slider images.\r\n * @type {string | undefined}\r\n */\r\n @FormField({\r\n row: 30,\r\n filePath: 'images/sliders',\r\n isPublicFile: true,\r\n fileExtensions: '.png,.jpg',\r\n change: (_, img, __, ctx: any) => ctx?.upload(img, 'images/sliders', true)\r\n })\r\n @Display($localize`:@@image:Image`)\r\n @prop()\r\n public image?: string;\r\n\r\n /**\r\n * @property CSS class.\r\n * @description Custom CSS class applied to the slider, useful for styling purposes.\r\n * @type {string | undefined}\r\n */\r\n @prop()\r\n @FormField({ row: 40 })\r\n @Display($localize`:@@cssClass:CSS Class`)\r\n public cssClass?: string;\r\n\r\n /**\r\n * @property Client ID.\r\n * @description Reference to the associated client or project.\r\n * @type {number | undefined}\r\n */\r\n @FormField({\r\n row: 1,\r\n endpoint: 'client?enabled=true&projection=id,name'\r\n })\r\n @Column({\r\n name: 'client.displayName',\r\n maxWidth: 250,\r\n display: Grid.Lg\r\n })\r\n @Display($localize`:@@project:Project`)\r\n @prop()\r\n public clientId?: number;\r\n\r\n /**\r\n * @property Ordering index.\r\n * @description Position of the slider in a sorted list.\r\n * @type {number | undefined}\r\n */\r\n @prop()\r\n @FormField({ row: 20 })\r\n @Display($localize`:@@ordering:Ordering`)\r\n public ordering?: number;\r\n\r\n /**\r\n * @property Enabled flag.\r\n * @description Indicates whether the slider is active or visible.\r\n * @type {boolean | undefined}\r\n */\r\n @prop()\r\n @FormField({ row: 100 })\r\n @Column({ event: 'toggle' })\r\n @Display($localize`:@@enabled:Enabled`)\r\n public enabled?: boolean;\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\n\r\nimport { AuthHelper, GlobalRoles } from \"@messaia/cdk\";\r\nimport { OidcSecurityService } from \"angular-auth-oidc-client\";\r\nimport { map, Observable } from \"rxjs\";\r\nimport { CmsSettings } from \"../models/cms-settings\";\r\n\r\n/**\r\n * Includes resolve service\r\n */\r\n@Injectable()\r\nexport class DocumentListProjectionResolve {\r\n /*\r\n * Injects the CmsSettings service using Angular's `inject()` function.\r\n * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n * commonly used in standalone components or functional-style Angular APIs.\r\n */\r\n private settings: CmsSettings = inject(CmsSettings);\r\n\r\n /**\r\n * Constructor\r\n * @param oidcSecurityService \r\n */\r\n constructor(private oidcSecurityService: OidcSecurityService,) { }\r\n\r\n /**\r\n * Resolves includes\r\n */\r\n resolve(): Observable<string[]> {\r\n var projection: any[] = [];\r\n\r\n return this.oidcSecurityService.checkAuth().pipe(map(x => {\r\n AuthHelper.user.isAuthenticated = x.isAuthenticated;\r\n if (x.userData) {\r\n AuthHelper.user = Object.assign(x.userData, {\r\n id: x.userData.sub,\r\n isAuthenticated: x.isAuthenticated\r\n });\r\n\r\n if (AuthHelper.hasRole(GlobalRoles.Administrator) && (this.settings?.multitenantable || this.settings?.multiClients)) {\r\n projection.push('client(displayName)');\r\n }\r\n\r\n if ((AuthHelper.hasRole(GlobalRoles.Administrator) || AuthHelper.hasRole(GlobalRoles.ClientAdministrator)) && (this.settings?.multitenantable || this.settings?.multiDepartments)) {\r\n projection.push('department(displayName)');\r\n }\r\n }\r\n\r\n return projection;\r\n }));\r\n }\r\n}","import { inject, Injectable } from \"@angular/core\";\r\n\r\nimport { Observable, of } from \"rxjs\";\r\nimport { CmsSettings } from \"../models/cms-settings\";\r\n\r\n/**\r\n * Excluded columns resolve service\r\n */\r\n@Injectable()\r\nexport class ExcludedColumnsResolve {\r\n /**\r\n * Injects the CmsSettings service using Angular's `inject()` function.\r\n * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n * commonly used in standalone components or functional-style Angular APIs.\r\n */\r\n private settings: CmsSettings = inject(CmsSettings);\r\n\r\n /**\r\n * Resolves excluded columns\r\n */\r\n resolve(): Observable<string[]> {\r\n return of(this.settings?.multitenantable ? [] : ['client.displayName']);\r\n }\r\n}","import { inject, Injectable } from \"@angular/core\";\r\n\r\nimport { Observable, of } from \"rxjs\";\r\nimport { CmsSettings } from \"../models/cms-settings\";\r\n\r\n/**\r\n * Excluded fields resolve service\r\n */\r\n@Injectable()\r\nexport class ExcludedFieldsResolve {\r\n /**\r\n * Injects the CmsSettings service using Angular's `inject()` function.\r\n * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n * commonly used in standalone components or functional-style Angular APIs.\r\n */\r\n private settings: CmsSettings = inject(CmsSettings);\r\n\r\n /**\r\n * Resolves excluded fields\r\n */\r\n resolve(): Observable<string[]> {\r\n return of(this.settings?.multitenantable ? [] : ['clientId']);\r\n }\r\n}","import { inject, Injectable } from \"@angular/core\";\r\n\r\nimport { AuthHelper } from \"@messaia/cdk\";\r\nimport { OidcSecurityService } from \"angular-auth-oidc-client\";\r\nimport { map, Observable } from \"rxjs\";\r\nimport { CmsSettings } from \"../models/cms-settings\";\r\n\r\n/**\r\n * Includes resolve service\r\n */\r\n@Injectable()\r\nexport class FormIncludesResolve {\r\n /**\r\n * Injects the CmsSettings service using Angular's `inject()` function.\r\n * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n * commonly used in standalone components or functional-style Angular APIs.\r\n */\r\n private settings: CmsSettings = inject(CmsSettings);\r\n\r\n /**\r\n * Constructor\r\n * @param oidcSecurityService \r\n */\r\n constructor(private oidcSecurityService: OidcSecurityService,) { }\r\n\r\n /**\r\n * Resolves includes\r\n */\r\n resolve(): Observable<string[]> {\r\n var includes: any[] = [];\r\n\r\n return this.oidcSecurityService.checkAuth().pipe(map(x => {\r\n AuthHelper.user.isAuthenticated = x.isAuthenticated;\r\n if (x.userData) {\r\n AuthHelper.user = Object.assign(x.userData, {\r\n id: x.userData.sub,\r\n isAuthenticated: x.isAuthenticated\r\n });\r\n\r\n if (this.settings?.multitenantable || this.settings?.multiClients) {\r\n includes.push('ClientJoins');\r\n }\r\n\r\n if (this.settings?.multitenantable || this.settings?.multiDepartments) {\r\n includes.push('DepartmentJoins');\r\n }\r\n }\r\n\r\n return includes;\r\n }));\r\n }\r\n}","import { inject, Injectable } from \"@angular/core\";\r\n\r\nimport { Observable, of } from \"rxjs\";\r\nimport { CmsSettings } from \"../models/cms-settings\";\r\n\r\n/**\r\n * Form validation resolve service\r\n */\r\n@Injectable()\r\nexport class FormValidationResolve {\r\n /**\r\n * Injects the CmsSettings service using Angular's `inject()` function.\r\n * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n * commonly used in standalone components or functional-style Angular APIs.\r\n */\r\n private settings: CmsSettings = inject(CmsSettings);\r\n\r\n /**\r\n * Resolves Form validation\r\n */\r\n resolve(): Observable<any> {\r\n return of(this.settings?.multitenantable ? { clientId: { required: true } } : {});\r\n }\r\n}","import { inject, Injectable } from \"@angular/core\";\r\n\r\nimport { AuthHelper, GlobalRoles } from \"@messaia/cdk\";\r\nimport { OidcSecurityService } from \"angular-auth-oidc-client\";\r\nimport { map, Observable } from \"rxjs\";\r\nimport { CmsSettings } from \"../models/cms-settings\";\r\n\r\n/**\r\n * Includes resolve service\r\n */\r\n@Injectable()\r\nexport class ListProjectionResolve {\r\n /**\r\n * Injects the CmsSettings service using Angular's `inject()` function.\r\n * This allows access to the CmsSettings instance outside of constructor-based dependency injection,\r\n * commonly used in standalone components or functional-style Angular APIs.\r\n */\r\n private settings: CmsSettings = inject(CmsSettings);\r\n\r\n /**\r\n * Constructor\r\n * @param oidcSecurityService \r\n */\r\n constructor(private oidcSecurityService: OidcSecurityService,) { }\r\n\r\n /**\r\n * Resolves includes\r\n */\r\n resolve(): Observable<string[]> {\r\n var projection: any[] = [];\r\n\r\n return this.oidcSecurityService.checkAuth().pipe(map(x => {\r\n AuthHelper.user.isAuthenticated = x.isAuthenticated;\r\n if (x.userData) {\r\n AuthHelper.user = Object.assign(x.userData, {\r\n id: x.userData.sub,\r\n isAuthenticated: x.isAuthenticated\r\n });\r\n\r\n if (AuthHelper.hasRole(GlobalRoles.Administrator) && (this.settings?.multitenantable || this.settings?.multiClients)) {\r\n projection.push('clientJoins(client(displayName))');\r\n }\r\n\r\n if ((AuthHelper.hasRole(GlobalRoles.Administrator) || AuthHelper.hasRole(GlobalRoles.ClientAdministrator)) && (this.settings?.multitenantable || this.settings?.multiDepartments)) {\r\n projection.push('departmentJoins(department(displayName))');\r\n }\r\n }\r\n\r\n return projection;\r\n }));\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { ActivatedRouteSnapshot } from \"@angular/router\";\r\nimport { Observable, of } from \"rxjs\";\r\nimport { CmsSettings } from \"../models/cms-settings\";\r\n\r\n/**\r\n * Settings resolve service\r\n */\r\n@Injectable()\r\nexport class SettingsResolve {\r\n\r\n /**\r\n * Resolves settings\r\n */\r\n resolve(route: ActivatedRouteSnapshot): Observable<CmsSettings> {\r\n let settings = <CmsSettings>route.parent?.data['settings'];\r\n return of(settings);\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { ResolveData, RouterModule, Routes } from '@angular/router';\r\nimport { AuthHelper } from '@messaia/cdk';\r\nimport { DocumentType, VdDynamicFormComponent, VdDynamicListComponent } from '@messaia/cdk-base';\r\nimport { ContentFormComponent } from './components/content-form/content-form';\r\nimport { DocumentDialogComponent } from './components/document-dialog/document-dialog';\r\nimport { TemplateFormComponent } from './components/template-form/template-form';\r\nimport { ContentType } from './enums/content-type';\r\nimport { Content } from './models/content';\r\nimport { ContentVariable } from './models/content-variable';\r\nimport { Document } from './models/document';\r\nimport { Faq } from './models/faq';\r\nimport { Slider } from './models/slider';\r\nimport { Template } from './models/template';\r\nimport { DocumentListProjectionResolve } from './resolvers/document-list-projection.resolve';\r\nimport { ExcludedColumnsResolve } from './resolvers/excluded-columns.resolve';\r\nimport { ExcludedFieldsResolve } from './resolvers/excluded-fields.resolve';\r\nimport { FormIncludesResolve } from './resolvers/form-includes.resolve';\r\nimport { FormValidationResolve } from './resolvers/form-validation.resolve';\r\nimport { ListProjectionResolve } from './resolvers/list-projection.resolve';\r\nimport { SettingsResolve } from './resolvers/settings.resolve';\r\n\r\n\r\nconst ListResolve: ResolveData = {\r\n settings: SettingsResolve,\r\n projection: ListProjectionResolve,\r\n excludedColumns: ExcludedColumnsResolve\r\n};\r\n\r\nconst DocsListResolve: ResolveData = {\r\n settings: SettingsResolve,\r\n projection: DocumentListProjectionResolve,\r\n};\r\n\r\nconst FormResolve: ResolveData = {\r\n settings: SettingsResolve,\r\n updateIncludes: FormIncludesResolve,\r\n excludedFields: ExcludedFieldsResolve,\r\n formValidation: FormValidationResolve\r\n};\r\n\r\nconst routes: Routes = [\r\n { path: '', redirectTo: '/cms/contents/page', pathMatch: 'full' },\r\n { path: 'faq', redirectTo: '/cms/faqs', pathMatch: 'full' },\r\n\r\n { path: 'contents/page', component: VdDynamicListComponent, data: { classType: Content, query: { type: ContentType.Page } }, resolve: ListResolve },\r\n { path: 'contents/block', component: VdDynamicListComponent, data: { classType: Content, query: { type: ContentType.Block } }, resolve: ListResolve },\r\n { path: 'contents/:type/add', component: ContentFormComponent, resolve: FormResolve },\r\n { path: 'contents/:type/edit/:id', component: ContentFormComponent, resolve: FormResolve },\r\n\r\n { path: 'variables', component: VdDynamicListComponent, data: { classType: ContentVariable }, resolve: ListResolve },\r\n { path: 'variables/edit/:id', component: VdDynamicFormComponent, data: { classType: ContentVariable, subtitle: $localize`:@@variables:Variables` }, resolve: FormResolve },\r\n { path: 'variables/add', component: VdDynamicFormComponent, data: { classType: ContentVariable, subtitle: $localize`:@@variables:Variables` }, resolve: FormResolve },\r\n\r\n { path: 'templates', component: VdDynamicListComponent, data: { classType: Template, includes: 'Client' }, resolve: ListResolve },\r\n { path: 'templates/edit/:id', component: TemplateFormComponent, resolve: FormResolve },\r\n { path: 'templates/add', component: TemplateFormComponent, resolve: FormResolve },\r\n\r\n { path: 'faqs', component: VdDynamicListComponent, data: { classType: Faq }, resolve: ListResolve },\r\n { path: 'faqs/edit/:id', component: VdDynamicFormComponent, data: { classType: Faq, subtitle: $localize`:@@faq:FAQ` }, resolve: FormResolve },\r\n { path: 'faqs/add', component: VdDynamicFormComponent, data: { classType: Faq, query: { clientId: AuthHelper.user.clientId }, subtitle: $localize`:@@faq:FAQ` }, resolve: FormResolve },\r\n\r\n { path: 'sliders', component: VdDynamicListComponent, data: { classType: Slider }, resolve: ListResolve },\r\n { path: 'sliders/edit/:id', component: VdDynamicFormComponent, data: { classType: Slider, subtitle: $localize`:@@slider:Slider` }, resolve: FormResolve },\r\n { path: 'sliders/add', component: VdDynamicFormComponent, data: { classType: Slider, query: { clientId: AuthHelper.user.clientId }, subtitle: $localize`:@@slider:Slider` }, resolve: FormResolve },\r\n\r\n { path: 'documents', component: VdDynamicListComponent, data: { classType: Document, addDialogType: DocumentDialogComponent, query: { type: DocumentType.Document } }, resolve: DocsListResolve },\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule],\r\n providers: [\r\n SettingsResolve,\r\n ListProjectionResolve,\r\n DocumentListProjectionResolve,\r\n FormIncludesResolve,\r\n ExcludedColumnsResolve,\r\n ExcludedFieldsResolve,\r\n FormValidationResolve\r\n ]\r\n})\r\nexport class VdCmsRoutingModule { }","import { NgModule } from '@angular/core';\r\nimport { VdCmsRoutingModule } from './cms-routing.module';\r\n\r\n@NgModule({\r\n imports: [\r\n VdCmsRoutingModule\r\n ]\r\n})\r\nexport class VdCmsModule { }","export enum FaqScope {\r\n\tCustomerPortal,\r\n\tAdmin\r\n}","import { Injectable } from '@angular/core';\r\nimport { GenericService } from '@messaia/cdk';\r\nimport { map } from 'rxjs/operators';\r\nimport { ContentVariable } from '../models/content-variable';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ContentVariableService extends GenericService<ContentVariable> {\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper('contentVariable');\r\n\t}\r\n\r\n\t/**\r\n\t * Checks if the specified alias is available.\r\n\t * @param id \r\n\t * @param alias \r\n\t */\r\n\tpublic isNameAvailable(item: ContentVariable) {\r\n\t\treturn this.create(item, '/isNameAvailable').pipe(map((x: any) => x.value));\r\n\t}\r\n}","import { Injectable } from '@angular/core';\r\nimport { GenericService } from '@messaia/cdk';\r\nimport { Faq } from '../models/faq';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class FaqService extends GenericService<Faq> {\r\n\r\n\t/**\r\n\t * Constructor\r\n\t */\r\n\tconstructor() {\r\n\t\tsuper('faq');\r\n\t}\r\n}","import { Injectable } from '@angular/core';\r\nimport { GenericService } from '@messaia/cdk';\r\nimport { Slider } from '../models/slider';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class SliderService extends GenericService<Slider> {\r\n\r\n /**\r\n * Constructor\r\n */\r\n constructor() {\r\n super('slider');\r\n }\r\n}","/// <reference types=\"@angular/localize\" />\r\n\r\n/*\r\n * Public API Surface of cdk-base\r\n */\r\nexport * from './cms-routing.module';\r\nexport * from './cms.module';\r\nexport * from './components/content-form/content-form';\r\nexport * from './components/document-dialog/document-dialog';\r\nexport * from './components/document-form-base/document-form-base';\r\nexport * from './components/template-form/template-form';\r\nexport * from './components/template-preview-dialog/template-preview-dialog';\r\nexport * from './enums/content-type';\r\nexport * from './enums/faq-scope';\r\nexport * from './enums/template-type';\r\nexport * from './enums/wrap-tag';\r\nexport * from './models/cms-settings';\r\nexport * from './models/content';\r\nexport * from './models/content-client';\r\nexport * from './models/content-department';\r\nexport * from './models/content-variable';\r\nexport * from './models/content-variable-client';\r\nexport * from './models/content-variable-department';\r\nexport * from './models/document';\r\nexport * from './models/faq';\r\nexport * from './models/faq-client';\r\nexport * from './models/faq-department';\r\nexport * from './models/slider';\r\nexport * from './models/template';\r\nexport * from './models/template-client';\r\nexport * from './models/template-department';\r\nexport * from './models/template-preview';\r\nexport * from './resolvers/document-list-projection.resolve';\r\nexport * from './resolvers/excluded-columns.resolve';\r\nexport * from './resolvers/excluded-fields.resolve';\r\nexport * from './resolvers/form-includes.resolve';\r\nexport * from './resolvers/form-validation.resolve';\r\nexport * from './resolvers/list-projection.resolve';\r\nexport * from './resolvers/settings.resolve';\r\nexport * from './services/content';\r\nexport * from './services/content-variable';\r\nexport * from './services/document-generic';\r\nexport * from './services/document.service`';\r\nexport * from './services/faq';\r\nexport * from './services/slider';\r\nexport * from './services/template';\r\nexport * from './services/template-doc';\r\nexport * from './services/template-preview';\r\nexport * from './templates/document-form.template';\r\n\r\n","/*\r\n * Public API Surface of cdk-cms\r\n */\r\n\r\nexport * from './lib/public-api';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.ContentService","i4","i6","i7","i3","i5","i8","i1.TemplateService","i2.TemplateDocService","i9","map"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@messaia/cdk-cms",
3
- "version": "20.0.0-RC.03",
3
+ "version": "20.0.0-RC.04",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^20.0.0",
6
6
  "@angular/core": "^20.0.0"