@messaia/cdk-cms 0.0.1-rc08 → 0.0.1-rc09
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.
|
@@ -160,9 +160,9 @@ export class TemplateFormComponent extends GenericReactiveFormComponent {
|
|
|
160
160
|
}
|
|
161
161
|
}
|
|
162
162
|
TemplateFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TemplateFormComponent, deps: [{ token: i1.TemplateService }, { token: i2.FileService }, { token: i3.MatDialog }, { token: i4.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
163
|
-
TemplateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: TemplateFormComponent, selector: "app-template-form", usesInheritance: true, ngImport: i0, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [menuItems]=\"toolbarMenuItems\" (reload)=\"reloadPage()\">\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\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t<mat-hint i18n=\"@@templateEmptyClientHint\">If empty this template will be used for all projects</mat-hint>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Type-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"type\" [enum]=\"TemplateType\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.type['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<!-- #region Name -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Key -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@key\">Key</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"key\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.key['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@subject\">Subject</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"subject\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.subject['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Attachments -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@attachments\">Attachments</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"attachments\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let attachment of form.controls.attachments.value\" [selectable]=\"true\" color=\"primary\" removable=\"true\" (removed)=\"removeAttachment(attachment)\" (click)=\"downloadAttachment(attachment)\" selected>\r\n\t\t\t\t\t\t\t\t\t{{attachment.originalName}}\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input placeholder=\"Attachments\" i18n-placeholder=\"@@attachments\" [matChipInputFor]=\"chipList\" [matChipInputAddOnBlur]=\"false\" (click)=\"fileInput.click()\" readonly>\r\n\t\t\t\t\t\t\t\t<mat-icon matSuffix (click)=\"fileInput.click()\">publish</mat-icon>\r\n\t\t\t\t\t\t\t\t<input hidden type=\"file\" accept=\"{{allowedExtensions}}\" #fileInput (change)=\"uploadAttachment($event.target.files[0])\" />\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Notice -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@notice\">Notice</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"notice\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.notice['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<vd-audit [item]=\"item\"> </vd-audit>\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: ["@import\"codemirror/lib/codemirror.css\";@import\"codemirror/theme/material.css\";codemirror{width:100%}.CodeMirror{height:500px}\n"], components: [{ type: i2.VdLayoutNavComponent, selector: "vd-layout-nav", inputs: ["toolbarTitle", "editMode", "menuItems", "icon", "logo", "color", "hideToggle", "backNavigationRoute", "navigationRoute"], outputs: ["reload"] }, { type: i2.VdLayoutCardOverComponent, selector: "vd-layout-card-over", inputs: ["cardTitle", "cardSubtitle", "cardWidth", "color"] }, { type: i5.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i5.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.VdSelectComponent, selector: "vd-select", inputs: ["multiple", "disabled", "sorted", "textPrefix", "endpoint", "params", "projection", "enum", "key", "text", "prefix", "options", "filteredOptions", "filterable", "cache", "sortBy", "searchField"], outputs: ["change", "itemChange", "selected", "itemSelected", "launch"] }, { type: i7.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i10.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i11.CodemirrorComponent, selector: "ngx-codemirror", inputs: ["className", "name", "autoFocus", "options", "preserveScrollPosition"], outputs: ["cursorActivity", "focusChange", "scroll", "drop"] }, { type: i12.VdAuditComponent, selector: "vd-audit", inputs: ["item"] }], directives: [{ type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i14.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i14.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { type: i5.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { type: i5.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i2.MatFormFieldReadonlyDirective, selector: "mat-form-field" }, { type: i6.MatLabel, selector: "mat-label" }, { type: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i14.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { 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"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.MatError, selector: "mat-error", inputs: ["id"] }, { type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i15.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i14.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i7.MatChipRemove, selector: "[matChipRemove]" }, { type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i6.MatSuffix, selector: "[matSuffix]" }, { type: i2.FileControlDirective, selector: "input[type=file]", inputs: ["writeFile", "extension", "fileSize", "file"] }, { type: i2.ImageFileControlDirective, selector: "input[type=file]", inputs: ["image"] }, { type: i5.MatExpansionPanelActionRow, selector: "mat-action-row" }], encapsulation: i0.ViewEncapsulation.None });
|
|
163
|
+
TemplateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: TemplateFormComponent, selector: "app-template-form", usesInheritance: true, ngImport: i0, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [menuItems]=\"toolbarMenuItems\" (reload)=\"reloadPage()\">\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\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t<mat-hint i18n=\"@@templateEmptyClientHint\">If empty this template will be used for all projects</mat-hint>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Type-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"type\" [enum]=\"TemplateType\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.type['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<!-- #region Name -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Key -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@key\">Key</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"key\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.key['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@subject\">Subject</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"subject\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.subject['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Attachments -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@attachments\">Attachments</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"attachments\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let attachment of form.controls.attachments.value\" [selectable]=\"true\" color=\"primary\" removable=\"true\" (removed)=\"removeAttachment(attachment)\" (click)=\"downloadAttachment(attachment)\" selected>\r\n\t\t\t\t\t\t\t\t\t{{attachment.originalName}}\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input placeholder=\"Attachments\" i18n-placeholder=\"@@attachments\" [matChipInputFor]=\"chipList\" [matChipInputAddOnBlur]=\"false\" (click)=\"fileInput.click()\" readonly>\r\n\t\t\t\t\t\t\t\t<mat-icon matSuffix (click)=\"fileInput.click()\">publish</mat-icon>\r\n\t\t\t\t\t\t\t\t<input hidden type=\"file\" accept=\"{{allowedExtensions}}\" #fileInput (change)=\"uploadAttachment($event.target.files[0])\" />\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Notice -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@notice\">Notice</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"notice\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.notice['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<vd-audit [item]=\"item\"> </vd-audit>\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: ["@import\"~codemirror/lib/codemirror.css\";@import\"~codemirror/theme/material.css\";codemirror{width:100%}.CodeMirror{height:500px}\n"], components: [{ type: i2.VdLayoutNavComponent, selector: "vd-layout-nav", inputs: ["toolbarTitle", "editMode", "menuItems", "icon", "logo", "color", "hideToggle", "backNavigationRoute", "navigationRoute"], outputs: ["reload"] }, { type: i2.VdLayoutCardOverComponent, selector: "vd-layout-card-over", inputs: ["cardTitle", "cardSubtitle", "cardWidth", "color"] }, { type: i5.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i5.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.VdSelectComponent, selector: "vd-select", inputs: ["multiple", "disabled", "sorted", "textPrefix", "endpoint", "params", "projection", "enum", "key", "text", "prefix", "options", "filteredOptions", "filterable", "cache", "sortBy", "searchField"], outputs: ["change", "itemChange", "selected", "itemSelected", "launch"] }, { type: i7.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i9.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i10.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i11.CodemirrorComponent, selector: "ngx-codemirror", inputs: ["className", "name", "autoFocus", "options", "preserveScrollPosition"], outputs: ["cursorActivity", "focusChange", "scroll", "drop"] }, { type: i12.VdAuditComponent, selector: "vd-audit", inputs: ["item"] }], directives: [{ type: i13.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i14.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i14.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i14.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { type: i5.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { type: i5.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i2.MatFormFieldReadonlyDirective, selector: "mat-form-field" }, { type: i6.MatLabel, selector: "mat-label" }, { type: i14.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i14.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { 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"] }, { type: i13.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.MatError, selector: "mat-error", inputs: ["id"] }, { type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i15.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i14.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i7.MatChipRemove, selector: "[matChipRemove]" }, { type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i6.MatSuffix, selector: "[matSuffix]" }, { type: i2.FileControlDirective, selector: "input[type=file]", inputs: ["writeFile", "extension", "fileSize", "file"] }, { type: i2.ImageFileControlDirective, selector: "input[type=file]", inputs: ["image"] }, { type: i5.MatExpansionPanelActionRow, selector: "mat-action-row" }], encapsulation: i0.ViewEncapsulation.None });
|
|
164
164
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TemplateFormComponent, decorators: [{
|
|
165
165
|
type: Component,
|
|
166
|
-
args: [{ selector: 'app-template-form', encapsulation: ViewEncapsulation.None, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [menuItems]=\"toolbarMenuItems\" (reload)=\"reloadPage()\">\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\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t<mat-hint i18n=\"@@templateEmptyClientHint\">If empty this template will be used for all projects</mat-hint>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Type-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"type\" [enum]=\"TemplateType\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.type['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<!-- #region Name -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Key -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@key\">Key</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"key\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.key['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@subject\">Subject</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"subject\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.subject['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Attachments -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@attachments\">Attachments</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"attachments\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let attachment of form.controls.attachments.value\" [selectable]=\"true\" color=\"primary\" removable=\"true\" (removed)=\"removeAttachment(attachment)\" (click)=\"downloadAttachment(attachment)\" selected>\r\n\t\t\t\t\t\t\t\t\t{{attachment.originalName}}\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input placeholder=\"Attachments\" i18n-placeholder=\"@@attachments\" [matChipInputFor]=\"chipList\" [matChipInputAddOnBlur]=\"false\" (click)=\"fileInput.click()\" readonly>\r\n\t\t\t\t\t\t\t\t<mat-icon matSuffix (click)=\"fileInput.click()\">publish</mat-icon>\r\n\t\t\t\t\t\t\t\t<input hidden type=\"file\" accept=\"{{allowedExtensions}}\" #fileInput (change)=\"uploadAttachment($event.target.files[0])\" />\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Notice -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@notice\">Notice</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"notice\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.notice['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<vd-audit [item]=\"item\"> </vd-audit>\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: ["@import\"codemirror/lib/codemirror.css\";@import\"codemirror/theme/material.css\";codemirror{width:100%}.CodeMirror{height:500px}\n"] }]
|
|
166
|
+
args: [{ selector: 'app-template-form', encapsulation: ViewEncapsulation.None, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [menuItems]=\"toolbarMenuItems\" (reload)=\"reloadPage()\">\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\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t<mat-hint i18n=\"@@templateEmptyClientHint\">If empty this template will be used for all projects</mat-hint>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Type-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"type\" [enum]=\"TemplateType\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.type['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<!-- #region Name -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Key -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@key\">Key</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"key\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.key['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@subject\">Subject</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"subject\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.subject['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Attachments -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@attachments\">Attachments</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"attachments\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let attachment of form.controls.attachments.value\" [selectable]=\"true\" color=\"primary\" removable=\"true\" (removed)=\"removeAttachment(attachment)\" (click)=\"downloadAttachment(attachment)\" selected>\r\n\t\t\t\t\t\t\t\t\t{{attachment.originalName}}\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input placeholder=\"Attachments\" i18n-placeholder=\"@@attachments\" [matChipInputFor]=\"chipList\" [matChipInputAddOnBlur]=\"false\" (click)=\"fileInput.click()\" readonly>\r\n\t\t\t\t\t\t\t\t<mat-icon matSuffix (click)=\"fileInput.click()\">publish</mat-icon>\r\n\t\t\t\t\t\t\t\t<input hidden type=\"file\" accept=\"{{allowedExtensions}}\" #fileInput (change)=\"uploadAttachment($event.target.files[0])\" />\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Notice -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@notice\">Notice</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"notice\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.notice['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<vd-audit [item]=\"item\"> </vd-audit>\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: ["@import\"~codemirror/lib/codemirror.css\";@import\"~codemirror/theme/material.css\";codemirror{width:100%}.CodeMirror{height:500px}\n"] }]
|
|
167
167
|
}], ctorParameters: function () { return [{ type: i1.TemplateService }, { type: i2.FileService }, { type: i3.MatDialog }, { type: i4.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; } });
|
|
168
168
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGstY21zL3NyYy9saWIvY29tbnBvbmVudHMvdGVtcGxhdGUtZm9ybS90ZW1wbGF0ZS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay1jbXMvc3JjL2xpYi9jb21ucG9uZW50cy90ZW1wbGF0ZS1mb3JtL3RlbXBsYXRlLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFckYsT0FBTyxnQ0FBZ0MsQ0FBQztBQUN4QyxPQUFPLHFDQUFxQyxDQUFDO0FBQzdDLE9BQU8sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxxQ0FBcUMsQ0FBQztBQUM3QyxPQUFPLHVDQUF1QyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFROUcsTUFBTSxPQUFPLHFCQUFzQixTQUFRLDRCQUF1RDtJQXFEakc7O09BRUc7SUFDSCxZQUNXLE9BQXdCLEVBQ3hCLFdBQXdCLEVBQ3hCLE1BQWlCLEVBQ2pCLEtBQXFCLEVBQ3JCLGlCQUFvQztRQUU5QyxLQUFLLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsaUJBQWlCLENBQUMsQ0FBQTtRQU54QyxZQUFPLEdBQVAsT0FBTyxDQUFpQjtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBQ2pCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUEzRC9DOztXQUVHO1FBQ0ksaUJBQVksR0FBd0IsWUFBWSxDQUFDO1FBRXhEOztXQUVHO1FBQ0ksa0JBQWEsR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLHFCQUFxQixDQUFDLElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV4Rzs7V0FFRztRQUNJLGFBQVEsR0FBZ0IsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQU9qRDs7V0FFRztRQUNJLGtCQUFhLEdBQVE7WUFDM0IsV0FBVyxFQUFFLElBQUk7WUFDakIsS0FBSyxFQUFFLFVBQVU7WUFDakIsYUFBYSxFQUFFLElBQUk7WUFDbkIsZUFBZSxFQUFFLElBQUk7WUFDckIsSUFBSSxFQUFFLFdBQVc7WUFDakIsT0FBTyxFQUFFLE9BQU87U0FDaEIsQ0FBQztRQUVGOztXQUVHO1FBQ0ksc0JBQWlCLEdBQVE7WUFDL0IsV0FBVyxFQUFFLElBQUk7WUFDakIsS0FBSyxFQUFFLFVBQVU7WUFDakIsYUFBYSxFQUFFLElBQUk7WUFDbkIsZUFBZSxFQUFFLElBQUk7WUFDckIsSUFBSSxFQUFFO2dCQUNMLElBQUksRUFBRSxZQUFZO2dCQUNsQixJQUFJLEVBQUUsSUFBSTtnQkFDVixlQUFlLEVBQUUsQ0FBQzthQUNsQjtZQUNELE9BQU8sRUFBRSxPQUFPO1lBQ2hCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLE9BQU8sRUFBRSxDQUFDO1NBQ1YsQ0FBQTtRQWFBLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBaEREOztPQUVHO0lBQ0gsSUFBSSxrQkFBa0IsS0FBSyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUErQ25FOzs7T0FHRztJQUNJLGdCQUFnQixDQUFDLFVBQXNCO1FBQzdDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3pDLElBQUksS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqRSxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRTtnQkFDZixJQUFJLENBQUMsYUFBYSxDQUFDLFdBQVcsQ0FBQztvQkFDOUIsT0FBTyxFQUFFLDZDQUE2QztvQkFDdEQsS0FBSyxFQUFFLG9CQUFvQjtvQkFDM0IsWUFBWSxFQUFFLFNBQVMsQ0FBQSxrQkFBa0I7b0JBQ3pDLFlBQVksRUFBRSxTQUFTLENBQUEsWUFBWTtpQkFDbkMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQWUsRUFBRSxFQUFFO29CQUM5QyxJQUFJLE1BQU0sRUFBRTt3QkFDWCxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7d0JBQy9DLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO3dCQUNqRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUM7cUJBQ3RDO2dCQUNGLENBQUMsQ0FBQyxDQUFDO2FBQ0g7U0FDRDtJQUNGLENBQUM7SUFFRDs7O09BR0c7SUFDSSxnQkFBZ0IsQ0FBQyxJQUFVO1FBQ2pDLElBQUksSUFBSSxJQUFJLElBQUksRUFBRTtZQUNqQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQy9JLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsY0FBYyxFQUFFO29CQUVoRCx1Q0FBdUM7b0JBQ3ZDLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUVqRSxrREFBa0Q7b0JBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7aUJBQzFCO3FCQUFNLElBQUksS0FBSyxZQUFZLFlBQVksRUFBRTtvQkFDekMseUJBQXlCO29CQUN6QixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFjLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO29CQUM3RixJQUFJLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztvQkFDakQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO2lCQUN0QztZQUNGLENBQUMsQ0FBQyxDQUFDO1NBQ0g7SUFDRixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksa0JBQWtCLENBQUMsVUFBc0I7UUFDL0MsSUFBSSxVQUFVLENBQUMsRUFBRSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLHNCQUFzQixVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzFFLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQUMsQ0FBQztTQUNIO0lBQ0YsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVztRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw4QkFBOEIsRUFBRTtZQUNoRCxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPO1lBQzlELElBQUksRUFBRSxJQUFJLGVBQWUsQ0FBQztnQkFDekIsVUFBVSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSTthQUNwQixDQUFDO1lBQ0YsVUFBVSxFQUFFLENBQUMsb0JBQW9CLENBQUM7U0FDbEMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQzlCLENBQUM7O2tIQTNJVyxxQkFBcUI7c0dBQXJCLHFCQUFxQixnRkN6QmxDLGtpU0FrS2dCOzJGRHpJSCxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0MsbUJBQW1CLGlCQUdkLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXZlbnRUeXBlLCBIdHRwUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgQXV0aEhlbHBlciwgRmlsZVNlcnZpY2UsIEdlbmVyaWNSZWFjdGl2ZUZvcm1Db21wb25lbnQgfSBmcm9tICdAbWVzc2FpYS9jZGsnO1xyXG5pbXBvcnQgeyBBdHRhY2htZW50IH0gZnJvbSAnQG1lc3NhaWEvY2RrLWJhc2UnO1xyXG5pbXBvcnQgJ2NvZGVtaXJyb3IvYWRkb24vZWRpdC9jbG9zZXRhZyc7XHJcbmltcG9ydCAnY29kZW1pcnJvci9hZGRvbi9lZGl0L21hdGNoYnJhY2tldHMnO1xyXG5pbXBvcnQgJ2NvZGVtaXJyb3IvYWRkb24vc2VsZWN0aW9uL2FjdGl2ZS1saW5lJztcclxuaW1wb3J0ICdjb2RlbWlycm9yL21vZGUvaHRtbG1peGVkL2h0bWxtaXhlZCc7XHJcbmltcG9ydCAnY29kZW1pcnJvci9tb2RlL2phdmFzY3JpcHQvamF2YXNjcmlwdCc7XHJcbmltcG9ydCB7IHNhdmVBcyB9IGZyb20gJ2ZpbGUtc2F2ZXInO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy90ZW1wbGF0ZS10eXBlJztcclxuaW1wb3J0IHsgQ21zU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9tb2RlbHMvY21zLXNldHRpbmdzJztcclxuaW1wb3J0IHsgVGVtcGxhdGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGVtcGxhdGUnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVByZXZpZXcgfSBmcm9tICcuLi8uLi9tb2RlbHMvdGVtcGxhdGUtcHJldmlldyc7XHJcbmltcG9ydCB7IFRlbXBsYXRlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RlbXBsYXRlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVByZXZpZXdEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi90ZW1wbGF0ZS1wcmV2aWV3LWRpYWxvZy90ZW1wbGF0ZS1wcmV2aWV3LWRpYWxvZy5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdhcHAtdGVtcGxhdGUtZm9ybScsXHJcblx0dGVtcGxhdGVVcmw6ICcuL3RlbXBsYXRlLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL3RlbXBsYXRlLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcclxuXHRlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUZvcm1Db21wb25lbnQgZXh0ZW5kcyBHZW5lcmljUmVhY3RpdmVGb3JtQ29tcG9uZW50PFRlbXBsYXRlLCBUZW1wbGF0ZVNlcnZpY2U+IHtcclxuXHJcblx0LyoqXHJcblx0ICogVGVtcGxhdGUgdHlwZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBUZW1wbGF0ZVR5cGU6IHR5cGVvZiBUZW1wbGF0ZVR5cGUgPSBUZW1wbGF0ZVR5cGU7XHJcblxyXG5cdC8qKlxyXG5cdCAqIFVzZWQgdG8gZGlzYWJsZSBzb21lIHByb3BlcnRpZXMgZm9yIGNsaWVudCBtYW5hZ2VyXHJcblx0ICovXHJcblx0cHVibGljIGlzQ2xpZW50QWRtaW4gPSBBdXRoSGVscGVyLmhhc1JvbGUoJ0NsaWVudEFkbWluaXN0cmF0b3InKSB8fCBBdXRoSGVscGVyLmhhc1JvbGUoJ0NsaWVudE1hbmFnZXInKTtcclxuXHJcblx0LyoqXHJcblx0ICogc2V0dGluZ3M6IENtc1NldHRpbmdzXHJcblx0ICovXHJcblx0cHVibGljIHNldHRpbmdzOiBDbXNTZXR0aW5ncyA9IG5ldyBDbXNTZXR0aW5ncygpO1xyXG5cclxuXHQvKipcclxuXHQgKiBHZXRzIHRoZSBhdHRhY2htZW50cyBjb250cm9sXHJcblx0ICovXHJcblx0Z2V0IGF0dGFjaG1lbnRzQ29udHJvbCgpIHsgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scy5hdHRhY2htZW50czsgfVxyXG5cclxuXHQvKipcclxuXHQgKiBFZGl0b3Igb3B0aW9uc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBlZGl0b3JPcHRpb25zOiBhbnkgPSB7XHJcblx0XHRsaW5lTnVtYmVyczogdHJ1ZSxcclxuXHRcdHRoZW1lOiAnbWF0ZXJpYWwnLFxyXG5cdFx0YXV0b0Nsb3NlVGFnczogdHJ1ZSxcclxuXHRcdHN0eWxlQWN0aXZlTGluZTogdHJ1ZSxcclxuXHRcdG1vZGU6ICd0ZXh0L2h0bWwnLFxyXG5cdFx0cHJvZmlsZTogJ3hodG1sJ1xyXG5cdH07XHJcblxyXG5cdC8qKlxyXG5cdCAqIEVkaXRvciBvcHRpb25zXHJcblx0ICovXHJcblx0cHVibGljIGpzb25FZGl0b3JPcHRpb25zOiBhbnkgPSB7XHJcblx0XHRsaW5lTnVtYmVyczogdHJ1ZSxcclxuXHRcdHRoZW1lOiAnbWF0ZXJpYWwnLFxyXG5cdFx0YXV0b0Nsb3NlVGFnczogdHJ1ZSxcclxuXHRcdHN0eWxlQWN0aXZlTGluZTogdHJ1ZSxcclxuXHRcdG1vZGU6IHtcclxuXHRcdFx0bmFtZTogXCJqYXZhc2NyaXB0XCIsXHJcblx0XHRcdGpzb246IHRydWUsXHJcblx0XHRcdHN0YXRlbWVudEluZGVudDogMlxyXG5cdFx0fSxcclxuXHRcdHByb2ZpbGU6ICd4aHRtbCcsXHJcblx0XHRsaW5lV3JhcHBpbmc6IHRydWUsXHJcblx0XHRpbmRlbnRXaXRoVGFiczogZmFsc2UsXHJcblx0XHR0YWJTaXplOiAyXHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDb25zdHJ1Y3RvclxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKFxyXG5cdFx0cHJvdGVjdGVkIHNlcnZpY2U6IFRlbXBsYXRlU2VydmljZSxcclxuXHRcdHByb3RlY3RlZCBmaWxlU2VydmljZTogRmlsZVNlcnZpY2UsXHJcblx0XHRwcm90ZWN0ZWQgZGlhbG9nOiBNYXREaWFsb2csXHJcblx0XHRwcm90ZWN0ZWQgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG5cdFx0cHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG5cdCkge1xyXG5cdFx0c3VwZXIoVGVtcGxhdGUsIHNlcnZpY2UsIHJvdXRlLCBjaGFuZ2VEZXRlY3RvclJlZilcclxuXHRcdHRoaXMuc2V0dGluZ3MgPSB0aGlzLmdldFNlcnZpY2UoQ21zU2V0dGluZ3MpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUmVtb3ZlcyBhIGF0dGFjaG1lbnRcclxuXHQgKiBAcGFyYW0gYXR0YWNobWVudCBcclxuXHQgKi9cclxuXHRwdWJsaWMgcmVtb3ZlQXR0YWNobWVudChhdHRhY2htZW50OiBBdHRhY2htZW50KTogdm9pZCB7XHJcblx0XHRpZiAoQXJyYXkuaXNBcnJheSh0aGlzLml0ZW0uYXR0YWNobWVudHMpKSB7XHJcblx0XHRcdHZhciBpbmRleCA9IHRoaXMuYXR0YWNobWVudHNDb250cm9sLnZhbHVlLmluZGV4T2YoYXR0YWNobWVudCwgMCk7XHJcblx0XHRcdGlmIChpbmRleCA+IC0xKSB7XHJcblx0XHRcdFx0dGhpcy5kaWFsb2dTZXJ2aWNlLm9wZW5Db25maXJtKHtcclxuXHRcdFx0XHRcdG1lc3NhZ2U6ICdNw7ZjaHRlbiBTaWUgZGllc2VuIEFuaGFuZyB3aXJrbGljaCBsw7ZzY2hlbj8nLFxyXG5cdFx0XHRcdFx0dGl0bGU6ICdMw7ZzY2hlbiBiZXN0w6R0aWdlbicsXHJcblx0XHRcdFx0XHRjYW5jZWxCdXR0b246ICRsb2NhbGl6ZWA6QEBjYW5jZWw6Q2FuY2VsYCxcclxuXHRcdFx0XHRcdGFjY2VwdEJ1dHRvbjogJGxvY2FsaXplYDpAQHllczpZZXNgLFxyXG5cdFx0XHRcdH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChhY2NlcHQ6IGJvb2xlYW4pID0+IHtcclxuXHRcdFx0XHRcdGlmIChhY2NlcHQpIHtcclxuXHRcdFx0XHRcdFx0dGhpcy5hdHRhY2htZW50c0NvbnRyb2wudmFsdWUuc3BsaWNlKGluZGV4LCAxKTtcclxuXHRcdFx0XHRcdFx0dGhpcy5hdHRhY2htZW50c0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG5cdFx0XHRcdFx0XHR0aGlzLmF0dGFjaG1lbnRzQ29udHJvbC5tYXJrQXNEaXJ0eSgpO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH0pO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBVcGxvYWRzIGEgYXR0YWNobWVudCBmaWxlXHJcblx0ICogQHBhcmFtIGZpbGUgXHJcblx0ICovXHJcblx0cHVibGljIHVwbG9hZEF0dGFjaG1lbnQoZmlsZTogRmlsZSk6IHZvaWQge1xyXG5cdFx0aWYgKGZpbGUgIT0gbnVsbCkge1xyXG5cdFx0XHR0aGlzLmZpbGVTZXJ2aWNlLnVwbG9hZChmaWxlLCBgdXBsb2FkYCwgeyBjbGllbnRJZDogdGhpcy5pdGVtLmNsaWVudElkLCBwYXRoOiBgJHt0aGlzLml0ZW0uY2xpZW50SWQgPyAnJyA6ICdjb21tb24vJ31kb2NzYCB9KS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xyXG5cdFx0XHRcdGlmIChldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzKSB7XHJcblxyXG5cdFx0XHRcdFx0LyogQ2FsY3VsYXRlIHRoZSBwcm9ncmVzcyBwZXJjZW50YWdlICovXHJcblx0XHRcdFx0XHRjb25zdCBwZXJjZW50RG9uZSA9IE1hdGgucm91bmQoMTAwICogZXZlbnQubG9hZGVkIC8gZXZlbnQudG90YWwpO1xyXG5cclxuXHRcdFx0XHRcdC8qIFBhc3MgdGhlIHBlcmNlbnRhZ2UgaW50byB0aGUgcHJvZ3Jlc3Mtc3RyZWFtICovXHJcblx0XHRcdFx0XHRjb25zb2xlLmluZm8ocGVyY2VudERvbmUpO1xyXG5cdFx0XHRcdH0gZWxzZSBpZiAoZXZlbnQgaW5zdGFuY2VvZiBIdHRwUmVzcG9uc2UpIHtcclxuXHRcdFx0XHRcdC8qIEFkZCBvdXIgYXR0YWNobWVudHMgKi9cclxuXHRcdFx0XHRcdHRoaXMuYXR0YWNobWVudHNDb250cm9sLnNldFZhbHVlKFsuLi50aGlzLmF0dGFjaG1lbnRzQ29udHJvbC52YWx1ZSwgPEF0dGFjaG1lbnQ+ZXZlbnQuYm9keV0pO1xyXG5cdFx0XHRcdFx0dGhpcy5hdHRhY2htZW50c0NvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG5cdFx0XHRcdFx0dGhpcy5hdHRhY2htZW50c0NvbnRyb2wubWFya0FzRGlydHkoKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRG93bmxvYWRzIGEgYXR0YWNobWVudFxyXG5cdCAqIEBwYXJhbSBhdHRhY2htZW50IFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBkb3dubG9hZEF0dGFjaG1lbnQoYXR0YWNobWVudDogQXR0YWNobWVudCk6IHZvaWQge1xyXG5cdFx0aWYgKGF0dGFjaG1lbnQuaWQpIHtcclxuXHRcdFx0dGhpcy5zZXJ2aWNlLmRvd25sb2FkKGBkb3dubG9hZEF0dGFjaG1lbnQvJHthdHRhY2htZW50LmlkfWApLnN1YnNjcmliZSh4ID0+IHtcclxuXHRcdFx0XHRzYXZlQXMobmV3IEJsb2IoW3guZGF0YV0sIHsgdHlwZTogJycgfSksIHguZmlsZW5hbWUpO1xyXG5cdFx0XHR9KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIFNob3dzIHRlbXBsYXRlIHByZXZpZXdcclxuXHQgKi9cclxuXHRwdWJsaWMgc2hvd1ByZXZpZXcoKTogdm9pZCB7XHJcblx0XHR0aGlzLmRpYWxvZy5vcGVuKFRlbXBsYXRlUHJldmlld0RpYWxvZ0NvbXBvbmVudCwge1xyXG5cdFx0XHR3aWR0aDogdGhpcy5pdGVtLnR5cGUgPT0gVGVtcGxhdGVUeXBlLlBkZiA/ICcxMDIwcHgnIDogJzkyMHB4JyxcclxuXHRcdFx0ZGF0YTogbmV3IFRlbXBsYXRlUHJldmlldyh7XHJcblx0XHRcdFx0dGVtcGxhdGVJZDogdGhpcy5pdGVtLmlkLFxyXG5cdFx0XHRcdHR5cGU6IHRoaXMuaXRlbS50eXBlXHJcblx0XHRcdH0pLFxyXG5cdFx0XHRwYW5lbENsYXNzOiBbJ2RpYWxvZy1mdWxsLXNjcmVlbiddXHJcblx0XHR9KS5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgpO1xyXG5cdH1cclxufSIsIjx2ZC1sYXlvdXQtbmF2IGNvbG9yPVwicHJpbWFyeVwiIFtiYWNrTmF2aWdhdGlvblJvdXRlXT1cImxpc3RSb3V0ZVwiIHRvb2xiYXJUaXRsZT1cIlRlbXBsYXRlXCIgaTE4bi10b29sYmFyVGl0bGU9XCJAQHRlbXBsYXRlXCIgW2VkaXRNb2RlXT1cImlzRWRpdE1vZGVcIiBbbWVudUl0ZW1zXT1cInRvb2xiYXJNZW51SXRlbXNcIiAocmVsb2FkKT1cInJlbG9hZFBhZ2UoKVwiPlxyXG5cdDxmb3JtICpuZ0lmPVwiZm9ybVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiIG5vdmFsaWRhdGUgKG5nU3VibWl0KT1cInNhdmUoKVwiPlxyXG5cdFx0PHZkLWxheW91dC1jYXJkLW92ZXIgY2xhc3M9XCJhY2NvcmRpb25cIiBjYXJkV2lkdGg9XCI3MFwiIGNvbG9yPVwicHJpbWFyeVwiIGZsZXg+XHJcblx0XHRcdDxtYXQtYWNjb3JkaW9uIFttdWx0aV09XCIhaXNFZGl0TW9kZVwiPlxyXG5cdFx0XHRcdDwhLS0gI3JlZ2lvbiBEZXRhaWxzIC0tPlxyXG5cdFx0XHRcdDxtYXQtZXhwYW5zaW9uLXBhbmVsIGV4cGFuZGVkPVwidHJ1ZVwiIGlkPVwiZGV0YWlsc1wiPlxyXG5cdFx0XHRcdFx0PG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cdFx0XHRcdFx0XHQ8bWF0LXBhbmVsLXRpdGxlIGkxOG49XCJAQGRldGFpbHNcIj5EZXRhaWxzPC9tYXQtcGFuZWwtdGl0bGU+XHJcblx0XHRcdFx0XHQ8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBDbGllbnQtLT5cclxuXHRcdFx0XHRcdDxkaXYgbGF5b3V0LWd0LXNtPVwicm93XCIgbGF5b3V0PVwiY29sdW1uXCIgKm5nSWY9XCJzZXR0aW5ncz8ubXVsdGl0ZW5hbnRhYmxlICYmICFpc0NsaWVudEFkbWluXCI+XHJcblx0XHRcdFx0XHRcdDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4gYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQGNsaWVudFwiPkNsaWVudDwvbWF0LWxhYmVsPlxyXG5cdFx0XHRcdFx0XHRcdDx2ZC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY2xpZW50SWRcIiBlbmRwb2ludD1cImNsaWVudD9lbmFibGVkPXRydWVcIiBsYXlvdXQ9XCJjb2x1bW5cIiBmbGV4PjwvdmQtc2VsZWN0PlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IGVycm9yTWVzc2FnZSBvZiBmb3JtLmNvbnRyb2xzLmNsaWVudElkWydlcnJvck1lc3NhZ2VzJ11cIj57e2Vycm9yTWVzc2FnZX19PC9tYXQtZXJyb3I+XHJcblx0XHRcdFx0XHRcdFx0PG1hdC1oaW50IGkxOG49XCJAQHRlbXBsYXRlRW1wdHlDbGllbnRIaW50XCI+SWYgZW1wdHkgdGhpcyB0ZW1wbGF0ZSB3aWxsIGJlIHVzZWQgZm9yIGFsbCBwcm9qZWN0czwvbWF0LWhpbnQ+XHJcblx0XHRcdFx0XHRcdDwvbWF0LWZvcm0tZmllbGQ+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gVHlwZS0tPlxyXG5cdFx0XHRcdFx0PGRpdiBsYXlvdXQtZ3Qtc209XCJyb3dcIiBsYXlvdXQ9XCJjb2x1bW5cIj5cclxuXHRcdFx0XHRcdFx0PG1hdC1mb3JtLWZpZWxkIGZsZXggbGF5b3V0LW1hcmdpbiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtbGFiZWwgaTE4bj1cIkBAdHlwZVwiPlR5cGU8L21hdC1sYWJlbD5cclxuXHRcdFx0XHRcdFx0XHQ8dmQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInR5cGVcIiBbZW51bV09XCJUZW1wbGF0ZVR5cGVcIiBsYXlvdXQ9XCJjb2x1bW5cIiBmbGV4PjwvdmQtc2VsZWN0PlxyXG5cdFx0XHRcdFx0XHRcdDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IGVycm9yTWVzc2FnZSBvZiBmb3JtLmNvbnRyb2xzLnR5cGVbJ2Vycm9yTWVzc2FnZXMnXVwiPnt7ZXJyb3JNZXNzYWdlfX08L21hdC1lcnJvcj5cclxuXHRcdFx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBOYW1lICYgU3ViamVjdCAtLT5cclxuXHRcdFx0XHRcdDxkaXYgbGF5b3V0PVwicm93XCIgZmxleD5cclxuXHRcdFx0XHRcdFx0PCEtLSAjcmVnaW9uIE5hbWUgLS0+XHJcblx0XHRcdFx0XHRcdDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4gYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQG5hbWVcIj5OYW1lPC9tYXQtbGFiZWw+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvck1lc3NhZ2Ugb2YgZm9ybS5jb250cm9scy5uYW1lWydlcnJvck1lc3NhZ2VzJ11cIj57e2Vycm9yTWVzc2FnZX19PC9tYXQtZXJyb3I+XHJcblx0XHRcdFx0XHRcdDwvbWF0LWZvcm0tZmllbGQ+XHJcblx0XHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBLZXkgLS0+XHJcblx0XHRcdFx0XHRcdDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4gYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQGtleVwiPktleTwvbWF0LWxhYmVsPlxyXG5cdFx0XHRcdFx0XHRcdDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJrZXlcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvck1lc3NhZ2Ugb2YgZm9ybS5jb250cm9scy5rZXlbJ2Vycm9yTWVzc2FnZXMnXVwiPnt7ZXJyb3JNZXNzYWdlfX08L21hdC1lcnJvcj5cclxuXHRcdFx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHRcdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0XHRcdFx0PCEtLSAjcmVnaW9uIFN1YmplY3QgLS0+XHJcblx0XHRcdFx0XHQ8ZGl2IGxheW91dD1cInJvd1wiIGZsZXg+XHJcblx0XHRcdFx0XHRcdDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4gYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWxhYmVsIGkxOG49XCJAQHN1YmplY3RcIj5TdWJqZWN0PC9tYXQtbGFiZWw+XHJcblx0XHRcdFx0XHRcdFx0PGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInN1YmplY3RcIj5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvck1lc3NhZ2Ugb2YgZm9ybS5jb250cm9scy5zdWJqZWN0WydlcnJvck1lc3NhZ2VzJ11cIj57e2Vycm9yTWVzc2FnZX19PC9tYXQtZXJyb3I+XHJcblx0XHRcdFx0XHRcdDwvbWF0LWZvcm0tZmllbGQ+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gQXR0YWNobWVudHMgLS0+XHJcblx0XHRcdFx0XHQ8ZGl2IGxheW91dD1cInJvd1wiIGZsZXg+XHJcblx0XHRcdFx0XHRcdDxtYXQtZm9ybS1maWVsZCBmbGV4IGxheW91dC1tYXJnaW4+XHJcblx0XHRcdFx0XHRcdFx0PG1hdC1sYWJlbCBpMThuPVwiQEBhdHRhY2htZW50c1wiPkF0dGFjaG1lbnRzPC9tYXQtbGFiZWw+XHJcblx0XHRcdFx0XHRcdFx0PG1hdC1jaGlwLWxpc3QgI2NoaXBMaXN0IGZvcm1Db250cm9sTmFtZT1cImF0dGFjaG1lbnRzXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bWF0LWNoaXAgKm5nRm9yPVwibGV0IGF0dGFjaG1lbnQgb2YgZm9ybS5jb250cm9scy5hdHRhY2htZW50cy52YWx1ZVwiIFtzZWxlY3RhYmxlXT1cInRydWVcIiBjb2xvcj1cInByaW1hcnlcIiByZW1vdmFibGU9XCJ0cnVlXCIgKHJlbW92ZWQpPVwicmVtb3ZlQXR0YWNobWVudChhdHRhY2htZW50KVwiIChjbGljayk9XCJkb3dubG9hZEF0dGFjaG1lbnQoYXR0YWNobWVudClcIiBzZWxlY3RlZD5cclxuXHRcdFx0XHRcdFx0XHRcdFx0e3thdHRhY2htZW50Lm9yaWdpbmFsTmFtZX19XHJcblx0XHRcdFx0XHRcdFx0XHRcdDxtYXQtaWNvbiBtYXRDaGlwUmVtb3ZlPmNhbmNlbDwvbWF0LWljb24+XHJcblx0XHRcdFx0XHRcdFx0XHQ8L21hdC1jaGlwPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGlucHV0IHBsYWNlaG9sZGVyPVwiQXR0YWNobWVudHNcIiBpMThuLXBsYWNlaG9sZGVyPVwiQEBhdHRhY2htZW50c1wiIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIiBbbWF0Q2hpcElucHV0QWRkT25CbHVyXT1cImZhbHNlXCIgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCIgcmVhZG9ubHk+XHJcblx0XHRcdFx0XHRcdFx0XHQ8bWF0LWljb24gbWF0U3VmZml4IChjbGljayk9XCJmaWxlSW5wdXQuY2xpY2soKVwiPnB1Ymxpc2g8L21hdC1pY29uPlxyXG5cdFx0XHRcdFx0XHRcdFx0PGlucHV0IGhpZGRlbiB0eXBlPVwiZmlsZVwiIGFjY2VwdD1cInt7YWxsb3dlZEV4dGVuc2lvbnN9fVwiICNmaWxlSW5wdXQgKGNoYW5nZSk9XCJ1cGxvYWRBdHRhY2htZW50KCRldmVudC50YXJnZXQuZmlsZXNbMF0pXCIgLz5cclxuXHRcdFx0XHRcdFx0XHQ8L21hdC1jaGlwLWxpc3Q+XHJcblx0XHRcdFx0XHRcdDwvbWF0LWZvcm0tZmllbGQ+XHJcblx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0XHQ8IS0tICNyZWdpb24gTm90aWNlIC0tPlxyXG5cdFx0XHRcdFx0PGRpdiBsYXlvdXQ9XCJyb3dcIiBmbGV4PlxyXG5cdFx0XHRcdFx0XHQ8bWF0LWZvcm0tZmllbGQgZmxleCBsYXlvdXQtbWFyZ2luIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XHJcblx0XHRcdFx0XHRcdFx0PG1hdC1sYWJlbCBpMThuPVwiQEBub3RpY2VcIj5Ob3RpY2U8L21hdC1sYWJlbD5cclxuXHRcdFx0XHRcdFx0XHQ8dGV4dGFyZWEgbWF0SW5wdXQgYXV0b2NvbXBsZXRlPVwib2ZmXCIgZm9ybUNvbnRyb2xOYW1lPVwibm90aWNlXCI+PC90ZXh0YXJlYT5cclxuXHRcdFx0XHRcdFx0XHQ8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBlcnJvck1lc3NhZ2Ugb2YgZm9ybS5jb250cm9scy5ub3RpY2VbJ2Vycm9yTWVzc2FnZXMnXVwiPnt7ZXJyb3JNZXNzYWdlfX08L21hdC1lcnJvcj5cclxuXHRcdFx0XHRcdFx0PC9tYXQtZm9ybS1maWVsZD5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHRcdDwhLS0gI3JlZ2lvbiBFbmFibGVkLS0+XHJcblx0XHRcdFx0XHQ8ZGl2IGxheW91dC1ndC1zbT1cInJvd1wiIGxheW91dD1cImNvbHVtblwiPlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGxheW91dC1tYXJnaW4gYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBjbGFzcz1cInB1c2gtdG9wIHB1c2gtYm90dG9tXCI+XHJcblx0XHRcdFx0XHRcdFx0PG1hdC1jaGVja2JveCBmb3JtQ29udHJvbE5hbWU9XCJlbmFibGVkXCIgaTE4bj1cIkBAYWN0aXZlXCI+QWN0aXZlPC9tYXQtY2hlY2tib3g+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8IS0tICNlbmRyZWdpb24gLS0+XHJcblxyXG5cdFx0XHRcdFx0PG1hdC1hY3Rpb24tcm93PlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImlzU2F2aW5nXCIgaTE4bj1cIkBAc2F2ZVwiPlNhdmU8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwiYXBwbHkoKVwiICpuZ0lmPVwiaXNFZGl0TW9kZVwiIFtkaXNhYmxlZF09XCJpc1NhdmluZ1wiIGkxOG49XCJAQGFwcGx5XCI+QXBwbHk8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwiYmFjaygpXCIgaTE4bj1cIkBAY2FuY2VsXCI+Q2FuY2VsPC9idXR0b24+XHJcblx0XHRcdFx0XHRcdDxzcGFuIGZsZXg+PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC9tYXQtYWN0aW9uLXJvdz5cclxuXHRcdFx0XHQ8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcblx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHQ8IS0tICNyZWdpb24gQ29udGVudCAtLT5cclxuXHRcdFx0XHQ8bWF0LWV4cGFuc2lvbi1wYW5lbCBpZD1cImNvbnRlbnRcIj5cclxuXHRcdFx0XHRcdDxtYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuXHRcdFx0XHRcdFx0PG1hdC1wYW5lbC10aXRsZT5cclxuXHRcdFx0XHRcdFx0XHQ8c3BhbiBpMThuPVwiQEBjb250ZW50XCI+Q29udGVudDwvc3Bhbj5cclxuXHRcdFx0XHRcdFx0PC9tYXQtcGFuZWwtdGl0bGU+XHJcblx0XHRcdFx0XHQ8L21hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cdFx0XHRcdFx0PGRpdiBsYXlvdXQtbWFyZ2luPlxyXG5cdFx0XHRcdFx0XHQ8bmd4LWNvZGVtaXJyb3IgZm9ybUNvbnRyb2xOYW1lPVwiY29udGVudFwiIHJvd3M9XCIxNjBcIiBbb3B0aW9uc109XCJlZGl0b3JPcHRpb25zXCI+PC9uZ3gtY29kZW1pcnJvcj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PG1hdC1hY3Rpb24tcm93PlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cImlzU2F2aW5nXCIgaTE4bj1cIkBAc2F2ZVwiPlNhdmU8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwiYXBwbHkoKVwiICpuZ0lmPVwiaXNFZGl0TW9kZVwiIFtkaXNhYmxlZF09XCJpc1NhdmluZ1wiIGkxOG49XCJAQGFwcGx5XCI+QXBwbHk8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwic2hvd1ByZXZpZXcoKVwiICpuZ0lmPVwiaXNFZGl0TW9kZVwiIFtkaXNhYmxlZF09XCJpc1NhdmluZyB8fCAhZm9ybS5wcmlzdGluZVwiIGkxOG49XCJAQHByZXZpZXdcIj5QcmV2aWV3PC9idXR0b24+XHJcblx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1idXR0b24gKGNsaWNrKT1cImJhY2soKVwiIGkxOG49XCJAQGNhbmNlbFwiPkNhbmNlbDwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHQ8c3BhbiBmbGV4Pjwvc3Bhbj5cclxuXHRcdFx0XHRcdDwvbWF0LWFjdGlvbi1yb3c+XHJcblx0XHRcdFx0PC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxyXG5cdFx0XHRcdDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcblx0XHRcdFx0PCEtLSAjcmVnaW9uIENvbnRlbnQgLS0+XHJcblx0XHRcdFx0PG1hdC1leHBhbnNpb24tcGFuZWwgaWQ9XCJ0ZXN0RGF0YVwiPlxyXG5cdFx0XHRcdFx0PG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cdFx0XHRcdFx0XHQ8bWF0LXBhbmVsLXRpdGxlPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGkxOG49XCJAQHRlc3REYXRhXCI+VGVzdCBEYXRhPC9zcGFuPlxyXG5cdFx0XHRcdFx0XHQ8L21hdC1wYW5lbC10aXRsZT5cclxuXHRcdFx0XHRcdDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XHJcblx0XHRcdFx0XHQ8ZGl2IGxheW91dC1tYXJnaW4+XHJcblx0XHRcdFx0XHRcdDxuZ3gtY29kZW1pcnJvciBmb3JtQ29udHJvbE5hbWU9XCJkdW1teURhdGFcIiByb3dzPVwiMTIwXCIgW29wdGlvbnNdPVwianNvbkVkaXRvck9wdGlvbnNcIj48L25neC1jb2RlbWlycm9yPlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8bWF0LWFjdGlvbi1yb3c+XHJcblx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiaXNTYXZpbmdcIiBpMThuPVwiQEBzYXZlXCI+U2F2ZTwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtYnV0dG9uIChjbGljayk9XCJhcHBseSgpXCIgKm5nSWY9XCJpc0VkaXRNb2RlXCIgW2Rpc2FibGVkXT1cImlzU2F2aW5nXCIgaTE4bj1cIkBAYXBwbHlcIj5BcHBseTwvYnV0dG9uPlxyXG5cdFx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtYnV0dG9uIChjbGljayk9XCJzaG93UHJldmlldygpXCIgKm5nSWY9XCJpc0VkaXRNb2RlXCIgW2Rpc2FibGVkXT1cImlzU2F2aW5nIHx8ICFmb3JtLnByaXN0aW5lXCIgaTE4bj1cIkBAcHJldmlld1wiPlByZXZpZXc8L2J1dHRvbj5cclxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LWJ1dHRvbiAoY2xpY2spPVwiYmFjaygpXCIgaTE4bj1cIkBAY2FuY2VsXCI+Q2FuY2VsPC9idXR0b24+XHJcblx0XHRcdFx0XHRcdDxzcGFuIGZsZXg+PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC9tYXQtYWN0aW9uLXJvdz5cclxuXHRcdFx0XHQ8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcblx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cclxuXHRcdFx0XHQ8IS0tICNyZWdpb24gQXVkaXQgLS0+XHJcblx0XHRcdFx0PG1hdC1leHBhbnNpb24tcGFuZWwgaWQ9XCJhdWRpdFwiICpuZ0lmPVwiaXNFZGl0TW9kZVwiPlxyXG5cdFx0XHRcdFx0PG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxyXG5cdFx0XHRcdFx0XHQ8bWF0LXBhbmVsLXRpdGxlPlxyXG5cdFx0XHRcdFx0XHRcdDxzcGFuIGkxOG49XCJAQGF1ZGl0XCI+QXVkaXQ8L3NwYW4+XHJcblx0XHRcdFx0XHRcdDwvbWF0LXBhbmVsLXRpdGxlPlxyXG5cdFx0XHRcdFx0PC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cclxuXHRcdFx0XHRcdDx2ZC1hdWRpdCBbaXRlbV09XCJpdGVtXCI+IDwvdmQtYXVkaXQ+XHJcblx0XHRcdFx0XHQ8bWF0LWFjdGlvbi1yb3c+XHJcblx0XHRcdFx0XHRcdDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiIChjbGljayk9XCJiYWNrKClcIiBpMThuPVwiQEBjbG9zZVwiPkNsb3NlPC9idXR0b24+XHJcblx0XHRcdFx0XHRcdDxzcGFuIGZsZXg+PC9zcGFuPlxyXG5cdFx0XHRcdFx0PC9tYXQtYWN0aW9uLXJvdz5cclxuXHRcdFx0XHQ8L21hdC1leHBhbnNpb24tcGFuZWw+XHJcblx0XHRcdFx0PCEtLSAjZW5kcmVnaW9uIC0tPlxyXG5cdFx0XHQ8L21hdC1hY2NvcmRpb24+XHJcblx0XHQ8L3ZkLWxheW91dC1jYXJkLW92ZXI+XHJcblx0PC9mb3JtPlxyXG48L3ZkLWxheW91dC1uYXY+Il19
|
|
@@ -978,10 +978,10 @@ class TemplateFormComponent extends GenericReactiveFormComponent {
|
|
|
978
978
|
}
|
|
979
979
|
}
|
|
980
980
|
TemplateFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TemplateFormComponent, deps: [{ token: TemplateService }, { token: i2.FileService }, { token: i4$1.MatDialog }, { token: i3$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
981
|
-
TemplateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: TemplateFormComponent, selector: "app-template-form", usesInheritance: true, ngImport: i0, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [menuItems]=\"toolbarMenuItems\" (reload)=\"reloadPage()\">\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\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t<mat-hint i18n=\"@@templateEmptyClientHint\">If empty this template will be used for all projects</mat-hint>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Type-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"type\" [enum]=\"TemplateType\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.type['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<!-- #region Name -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Key -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@key\">Key</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"key\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.key['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@subject\">Subject</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"subject\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.subject['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Attachments -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@attachments\">Attachments</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"attachments\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let attachment of form.controls.attachments.value\" [selectable]=\"true\" color=\"primary\" removable=\"true\" (removed)=\"removeAttachment(attachment)\" (click)=\"downloadAttachment(attachment)\" selected>\r\n\t\t\t\t\t\t\t\t\t{{attachment.originalName}}\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input placeholder=\"Attachments\" i18n-placeholder=\"@@attachments\" [matChipInputFor]=\"chipList\" [matChipInputAddOnBlur]=\"false\" (click)=\"fileInput.click()\" readonly>\r\n\t\t\t\t\t\t\t\t<mat-icon matSuffix (click)=\"fileInput.click()\">publish</mat-icon>\r\n\t\t\t\t\t\t\t\t<input hidden type=\"file\" accept=\"{{allowedExtensions}}\" #fileInput (change)=\"uploadAttachment($event.target.files[0])\" />\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Notice -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@notice\">Notice</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"notice\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.notice['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<vd-audit [item]=\"item\"> </vd-audit>\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: ["@import\"codemirror/lib/codemirror.css\";@import\"codemirror/theme/material.css\";codemirror{width:100%}.CodeMirror{height:500px}\n"], components: [{ type: i2.VdLayoutNavComponent, selector: "vd-layout-nav", inputs: ["toolbarTitle", "editMode", "menuItems", "icon", "logo", "color", "hideToggle", "backNavigationRoute", "navigationRoute"], outputs: ["reload"] }, { type: i2.VdLayoutCardOverComponent, selector: "vd-layout-card-over", inputs: ["cardTitle", "cardSubtitle", "cardWidth", "color"] }, { type: i5.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i5.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.VdSelectComponent, selector: "vd-select", inputs: ["multiple", "disabled", "sorted", "textPrefix", "endpoint", "params", "projection", "enum", "key", "text", "prefix", "options", "filteredOptions", "filterable", "cache", "sortBy", "searchField"], outputs: ["change", "itemChange", "selected", "itemSelected", "launch"] }, { type: i7.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i11$1.CodemirrorComponent, selector: "ngx-codemirror", inputs: ["className", "name", "autoFocus", "options", "preserveScrollPosition"], outputs: ["cursorActivity", "focusChange", "scroll", "drop"] }, { type: i14.VdAuditComponent, selector: "vd-audit", inputs: ["item"] }], directives: [{ type: i9$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i10$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i10$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { type: i5.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { type: i5.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i2.MatFormFieldReadonlyDirective, selector: "mat-form-field" }, { type: i6.MatLabel, selector: "mat-label" }, { type: i10$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { 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"] }, { type: i9$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.MatError, selector: "mat-error", inputs: ["id"] }, { type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i17.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i10$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i7.MatChipRemove, selector: "[matChipRemove]" }, { type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i6.MatSuffix, selector: "[matSuffix]" }, { type: i2.FileControlDirective, selector: "input[type=file]", inputs: ["writeFile", "extension", "fileSize", "file"] }, { type: i2.ImageFileControlDirective, selector: "input[type=file]", inputs: ["image"] }, { type: i5.MatExpansionPanelActionRow, selector: "mat-action-row" }], encapsulation: i0.ViewEncapsulation.None });
|
|
981
|
+
TemplateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: TemplateFormComponent, selector: "app-template-form", usesInheritance: true, ngImport: i0, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [menuItems]=\"toolbarMenuItems\" (reload)=\"reloadPage()\">\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\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t<mat-hint i18n=\"@@templateEmptyClientHint\">If empty this template will be used for all projects</mat-hint>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Type-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"type\" [enum]=\"TemplateType\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.type['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<!-- #region Name -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Key -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@key\">Key</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"key\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.key['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@subject\">Subject</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"subject\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.subject['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Attachments -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@attachments\">Attachments</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"attachments\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let attachment of form.controls.attachments.value\" [selectable]=\"true\" color=\"primary\" removable=\"true\" (removed)=\"removeAttachment(attachment)\" (click)=\"downloadAttachment(attachment)\" selected>\r\n\t\t\t\t\t\t\t\t\t{{attachment.originalName}}\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input placeholder=\"Attachments\" i18n-placeholder=\"@@attachments\" [matChipInputFor]=\"chipList\" [matChipInputAddOnBlur]=\"false\" (click)=\"fileInput.click()\" readonly>\r\n\t\t\t\t\t\t\t\t<mat-icon matSuffix (click)=\"fileInput.click()\">publish</mat-icon>\r\n\t\t\t\t\t\t\t\t<input hidden type=\"file\" accept=\"{{allowedExtensions}}\" #fileInput (change)=\"uploadAttachment($event.target.files[0])\" />\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Notice -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@notice\">Notice</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"notice\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.notice['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<vd-audit [item]=\"item\"> </vd-audit>\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: ["@import\"~codemirror/lib/codemirror.css\";@import\"~codemirror/theme/material.css\";codemirror{width:100%}.CodeMirror{height:500px}\n"], components: [{ type: i2.VdLayoutNavComponent, selector: "vd-layout-nav", inputs: ["toolbarTitle", "editMode", "menuItems", "icon", "logo", "color", "hideToggle", "backNavigationRoute", "navigationRoute"], outputs: ["reload"] }, { type: i2.VdLayoutCardOverComponent, selector: "vd-layout-card-over", inputs: ["cardTitle", "cardSubtitle", "cardWidth", "color"] }, { type: i5.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i5.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.VdSelectComponent, selector: "vd-select", inputs: ["multiple", "disabled", "sorted", "textPrefix", "endpoint", "params", "projection", "enum", "key", "text", "prefix", "options", "filteredOptions", "filterable", "cache", "sortBy", "searchField"], outputs: ["change", "itemChange", "selected", "itemSelected", "launch"] }, { type: i7.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i11$1.CodemirrorComponent, selector: "ngx-codemirror", inputs: ["className", "name", "autoFocus", "options", "preserveScrollPosition"], outputs: ["cursorActivity", "focusChange", "scroll", "drop"] }, { type: i14.VdAuditComponent, selector: "vd-audit", inputs: ["item"] }], directives: [{ type: i9$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i10$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i10$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { type: i5.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { type: i5.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i2.MatFormFieldReadonlyDirective, selector: "mat-form-field" }, { type: i6.MatLabel, selector: "mat-label" }, { type: i10$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { 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"] }, { type: i9$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.MatError, selector: "mat-error", inputs: ["id"] }, { type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i17.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i10$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i7.MatChipRemove, selector: "[matChipRemove]" }, { type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i6.MatSuffix, selector: "[matSuffix]" }, { type: i2.FileControlDirective, selector: "input[type=file]", inputs: ["writeFile", "extension", "fileSize", "file"] }, { type: i2.ImageFileControlDirective, selector: "input[type=file]", inputs: ["image"] }, { type: i5.MatExpansionPanelActionRow, selector: "mat-action-row" }], encapsulation: i0.ViewEncapsulation.None });
|
|
982
982
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TemplateFormComponent, decorators: [{
|
|
983
983
|
type: Component,
|
|
984
|
-
args: [{ selector: 'app-template-form', encapsulation: ViewEncapsulation.None, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [menuItems]=\"toolbarMenuItems\" (reload)=\"reloadPage()\">\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\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t<mat-hint i18n=\"@@templateEmptyClientHint\">If empty this template will be used for all projects</mat-hint>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Type-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"type\" [enum]=\"TemplateType\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.type['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<!-- #region Name -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Key -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@key\">Key</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"key\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.key['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@subject\">Subject</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"subject\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.subject['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Attachments -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@attachments\">Attachments</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"attachments\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let attachment of form.controls.attachments.value\" [selectable]=\"true\" color=\"primary\" removable=\"true\" (removed)=\"removeAttachment(attachment)\" (click)=\"downloadAttachment(attachment)\" selected>\r\n\t\t\t\t\t\t\t\t\t{{attachment.originalName}}\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input placeholder=\"Attachments\" i18n-placeholder=\"@@attachments\" [matChipInputFor]=\"chipList\" [matChipInputAddOnBlur]=\"false\" (click)=\"fileInput.click()\" readonly>\r\n\t\t\t\t\t\t\t\t<mat-icon matSuffix (click)=\"fileInput.click()\">publish</mat-icon>\r\n\t\t\t\t\t\t\t\t<input hidden type=\"file\" accept=\"{{allowedExtensions}}\" #fileInput (change)=\"uploadAttachment($event.target.files[0])\" />\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Notice -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@notice\">Notice</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"notice\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.notice['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<vd-audit [item]=\"item\"> </vd-audit>\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: ["@import\"codemirror/lib/codemirror.css\";@import\"codemirror/theme/material.css\";codemirror{width:100%}.CodeMirror{height:500px}\n"] }]
|
|
984
|
+
args: [{ selector: 'app-template-form', encapsulation: ViewEncapsulation.None, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [menuItems]=\"toolbarMenuItems\" (reload)=\"reloadPage()\">\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\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t<mat-hint i18n=\"@@templateEmptyClientHint\">If empty this template will be used for all projects</mat-hint>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Type-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"type\" [enum]=\"TemplateType\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.type['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<!-- #region Name -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Key -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@key\">Key</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"key\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.key['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@subject\">Subject</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"subject\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.subject['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Attachments -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@attachments\">Attachments</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"attachments\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let attachment of form.controls.attachments.value\" [selectable]=\"true\" color=\"primary\" removable=\"true\" (removed)=\"removeAttachment(attachment)\" (click)=\"downloadAttachment(attachment)\" selected>\r\n\t\t\t\t\t\t\t\t\t{{attachment.originalName}}\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input placeholder=\"Attachments\" i18n-placeholder=\"@@attachments\" [matChipInputFor]=\"chipList\" [matChipInputAddOnBlur]=\"false\" (click)=\"fileInput.click()\" readonly>\r\n\t\t\t\t\t\t\t\t<mat-icon matSuffix (click)=\"fileInput.click()\">publish</mat-icon>\r\n\t\t\t\t\t\t\t\t<input hidden type=\"file\" accept=\"{{allowedExtensions}}\" #fileInput (change)=\"uploadAttachment($event.target.files[0])\" />\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Notice -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@notice\">Notice</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"notice\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.notice['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<vd-audit [item]=\"item\"> </vd-audit>\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: ["@import\"~codemirror/lib/codemirror.css\";@import\"~codemirror/theme/material.css\";codemirror{width:100%}.CodeMirror{height:500px}\n"] }]
|
|
985
985
|
}], ctorParameters: function () { return [{ type: TemplateService }, { type: i2.FileService }, { type: i4$1.MatDialog }, { type: i3$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; } });
|
|
986
986
|
|
|
987
987
|
var DocumentType;
|
|
@@ -976,10 +976,10 @@ class TemplateFormComponent extends GenericReactiveFormComponent {
|
|
|
976
976
|
}
|
|
977
977
|
}
|
|
978
978
|
TemplateFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TemplateFormComponent, deps: [{ token: TemplateService }, { token: i2.FileService }, { token: i4$1.MatDialog }, { token: i3$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
979
|
-
TemplateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: TemplateFormComponent, selector: "app-template-form", usesInheritance: true, ngImport: i0, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [menuItems]=\"toolbarMenuItems\" (reload)=\"reloadPage()\">\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\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t<mat-hint i18n=\"@@templateEmptyClientHint\">If empty this template will be used for all projects</mat-hint>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Type-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"type\" [enum]=\"TemplateType\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.type['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<!-- #region Name -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Key -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@key\">Key</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"key\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.key['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@subject\">Subject</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"subject\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.subject['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Attachments -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@attachments\">Attachments</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"attachments\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let attachment of form.controls.attachments.value\" [selectable]=\"true\" color=\"primary\" removable=\"true\" (removed)=\"removeAttachment(attachment)\" (click)=\"downloadAttachment(attachment)\" selected>\r\n\t\t\t\t\t\t\t\t\t{{attachment.originalName}}\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input placeholder=\"Attachments\" i18n-placeholder=\"@@attachments\" [matChipInputFor]=\"chipList\" [matChipInputAddOnBlur]=\"false\" (click)=\"fileInput.click()\" readonly>\r\n\t\t\t\t\t\t\t\t<mat-icon matSuffix (click)=\"fileInput.click()\">publish</mat-icon>\r\n\t\t\t\t\t\t\t\t<input hidden type=\"file\" accept=\"{{allowedExtensions}}\" #fileInput (change)=\"uploadAttachment($event.target.files[0])\" />\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Notice -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@notice\">Notice</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"notice\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.notice['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<vd-audit [item]=\"item\"> </vd-audit>\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: ["@import\"codemirror/lib/codemirror.css\";@import\"codemirror/theme/material.css\";codemirror{width:100%}.CodeMirror{height:500px}\n"], components: [{ type: i2.VdLayoutNavComponent, selector: "vd-layout-nav", inputs: ["toolbarTitle", "editMode", "menuItems", "icon", "logo", "color", "hideToggle", "backNavigationRoute", "navigationRoute"], outputs: ["reload"] }, { type: i2.VdLayoutCardOverComponent, selector: "vd-layout-card-over", inputs: ["cardTitle", "cardSubtitle", "cardWidth", "color"] }, { type: i5.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i5.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.VdSelectComponent, selector: "vd-select", inputs: ["multiple", "disabled", "sorted", "textPrefix", "endpoint", "params", "projection", "enum", "key", "text", "prefix", "options", "filteredOptions", "filterable", "cache", "sortBy", "searchField"], outputs: ["change", "itemChange", "selected", "itemSelected", "launch"] }, { type: i7.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i11$1.CodemirrorComponent, selector: "ngx-codemirror", inputs: ["className", "name", "autoFocus", "options", "preserveScrollPosition"], outputs: ["cursorActivity", "focusChange", "scroll", "drop"] }, { type: i14.VdAuditComponent, selector: "vd-audit", inputs: ["item"] }], directives: [{ type: i9$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i10$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i10$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { type: i5.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { type: i5.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i2.MatFormFieldReadonlyDirective, selector: "mat-form-field" }, { type: i6.MatLabel, selector: "mat-label" }, { type: i10$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { 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"] }, { type: i9$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.MatError, selector: "mat-error", inputs: ["id"] }, { type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i17.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i10$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i7.MatChipRemove, selector: "[matChipRemove]" }, { type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i6.MatSuffix, selector: "[matSuffix]" }, { type: i2.FileControlDirective, selector: "input[type=file]", inputs: ["writeFile", "extension", "fileSize", "file"] }, { type: i2.ImageFileControlDirective, selector: "input[type=file]", inputs: ["image"] }, { type: i5.MatExpansionPanelActionRow, selector: "mat-action-row" }], encapsulation: i0.ViewEncapsulation.None });
|
|
979
|
+
TemplateFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.0", type: TemplateFormComponent, selector: "app-template-form", usesInheritance: true, ngImport: i0, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [menuItems]=\"toolbarMenuItems\" (reload)=\"reloadPage()\">\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\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t<mat-hint i18n=\"@@templateEmptyClientHint\">If empty this template will be used for all projects</mat-hint>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Type-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"type\" [enum]=\"TemplateType\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.type['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<!-- #region Name -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Key -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@key\">Key</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"key\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.key['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@subject\">Subject</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"subject\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.subject['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Attachments -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@attachments\">Attachments</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"attachments\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let attachment of form.controls.attachments.value\" [selectable]=\"true\" color=\"primary\" removable=\"true\" (removed)=\"removeAttachment(attachment)\" (click)=\"downloadAttachment(attachment)\" selected>\r\n\t\t\t\t\t\t\t\t\t{{attachment.originalName}}\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input placeholder=\"Attachments\" i18n-placeholder=\"@@attachments\" [matChipInputFor]=\"chipList\" [matChipInputAddOnBlur]=\"false\" (click)=\"fileInput.click()\" readonly>\r\n\t\t\t\t\t\t\t\t<mat-icon matSuffix (click)=\"fileInput.click()\">publish</mat-icon>\r\n\t\t\t\t\t\t\t\t<input hidden type=\"file\" accept=\"{{allowedExtensions}}\" #fileInput (change)=\"uploadAttachment($event.target.files[0])\" />\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Notice -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@notice\">Notice</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"notice\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.notice['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<vd-audit [item]=\"item\"> </vd-audit>\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: ["@import\"~codemirror/lib/codemirror.css\";@import\"~codemirror/theme/material.css\";codemirror{width:100%}.CodeMirror{height:500px}\n"], components: [{ type: i2.VdLayoutNavComponent, selector: "vd-layout-nav", inputs: ["toolbarTitle", "editMode", "menuItems", "icon", "logo", "color", "hideToggle", "backNavigationRoute", "navigationRoute"], outputs: ["reload"] }, { type: i2.VdLayoutCardOverComponent, selector: "vd-layout-card-over", inputs: ["cardTitle", "cardSubtitle", "cardWidth", "color"] }, { type: i5.MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["disabled", "expanded", "hideToggle", "togglePosition"], outputs: ["opened", "closed", "expandedChange", "afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { type: i5.MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["tabIndex", "expandedHeight", "collapsedHeight"] }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.VdSelectComponent, selector: "vd-select", inputs: ["multiple", "disabled", "sorted", "textPrefix", "endpoint", "params", "projection", "enum", "key", "text", "prefix", "options", "filteredOptions", "filterable", "cache", "sortBy", "searchField"], outputs: ["change", "itemChange", "selected", "itemSelected", "launch"] }, { type: i7.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i11$1.CodemirrorComponent, selector: "ngx-codemirror", inputs: ["className", "name", "autoFocus", "options", "preserveScrollPosition"], outputs: ["cursorActivity", "focusChange", "scroll", "drop"] }, { type: i14.VdAuditComponent, selector: "vd-audit", inputs: ["item"] }], directives: [{ type: i9$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i10$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i10$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.RxwebFormDirective, selector: "[formGroup],[rxwebForm]", inputs: ["formGroup", "rxwebForm"] }, { type: i5.MatAccordion, selector: "mat-accordion", inputs: ["multi", "hideToggle", "displayMode", "togglePosition"], exportAs: ["matAccordion"] }, { type: i5.MatExpansionPanelTitle, selector: "mat-panel-title" }, { type: i2.MatFormFieldReadonlyDirective, selector: "mat-form-field" }, { type: i6.MatLabel, selector: "mat-label" }, { type: i10$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.AsyncValidationDirective, selector: "[ngModel],[formControlName],[formControl]", inputs: ["async"] }, { 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"] }, { type: i9$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.MatError, selector: "mat-error", inputs: ["id"] }, { type: i6.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { type: i17.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i10$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i7.MatChipRemove, selector: "[matChipRemove]" }, { type: i7.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i6.MatSuffix, selector: "[matSuffix]" }, { type: i2.FileControlDirective, selector: "input[type=file]", inputs: ["writeFile", "extension", "fileSize", "file"] }, { type: i2.ImageFileControlDirective, selector: "input[type=file]", inputs: ["image"] }, { type: i5.MatExpansionPanelActionRow, selector: "mat-action-row" }], encapsulation: i0.ViewEncapsulation.None });
|
|
980
980
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.0", ngImport: i0, type: TemplateFormComponent, decorators: [{
|
|
981
981
|
type: Component,
|
|
982
|
-
args: [{ selector: 'app-template-form', encapsulation: ViewEncapsulation.None, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [menuItems]=\"toolbarMenuItems\" (reload)=\"reloadPage()\">\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\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t<mat-hint i18n=\"@@templateEmptyClientHint\">If empty this template will be used for all projects</mat-hint>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Type-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"type\" [enum]=\"TemplateType\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.type['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<!-- #region Name -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Key -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@key\">Key</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"key\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.key['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@subject\">Subject</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"subject\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.subject['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Attachments -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@attachments\">Attachments</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"attachments\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let attachment of form.controls.attachments.value\" [selectable]=\"true\" color=\"primary\" removable=\"true\" (removed)=\"removeAttachment(attachment)\" (click)=\"downloadAttachment(attachment)\" selected>\r\n\t\t\t\t\t\t\t\t\t{{attachment.originalName}}\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input placeholder=\"Attachments\" i18n-placeholder=\"@@attachments\" [matChipInputFor]=\"chipList\" [matChipInputAddOnBlur]=\"false\" (click)=\"fileInput.click()\" readonly>\r\n\t\t\t\t\t\t\t\t<mat-icon matSuffix (click)=\"fileInput.click()\">publish</mat-icon>\r\n\t\t\t\t\t\t\t\t<input hidden type=\"file\" accept=\"{{allowedExtensions}}\" #fileInput (change)=\"uploadAttachment($event.target.files[0])\" />\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Notice -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@notice\">Notice</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"notice\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.notice['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<vd-audit [item]=\"item\"> </vd-audit>\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: ["@import\"codemirror/lib/codemirror.css\";@import\"codemirror/theme/material.css\";codemirror{width:100%}.CodeMirror{height:500px}\n"] }]
|
|
982
|
+
args: [{ selector: 'app-template-form', encapsulation: ViewEncapsulation.None, template: "<vd-layout-nav color=\"primary\" [backNavigationRoute]=\"listRoute\" toolbarTitle=\"Template\" i18n-toolbarTitle=\"@@template\" [editMode]=\"isEditMode\" [menuItems]=\"toolbarMenuItems\" (reload)=\"reloadPage()\">\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\r\n\t\t\t\t\t<!-- #region Client-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\" *ngIf=\"settings?.multitenantable && !isClientAdmin\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@client\">Client</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"clientId\" endpoint=\"client?enabled=true\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.clientId['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t\t<mat-hint i18n=\"@@templateEmptyClientHint\">If empty this template will be used for all projects</mat-hint>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Type-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@type\">Type</mat-label>\r\n\t\t\t\t\t\t\t<vd-select formControlName=\"type\" [enum]=\"TemplateType\" layout=\"column\" flex></vd-select>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.type['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Name & Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<!-- #region Name -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@name\">Name</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"name\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.name['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t\t<!-- #region Key -->\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@key\">Key</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"key\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.key['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t\t<!-- #endregion -->\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Subject -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@subject\">Subject</mat-label>\r\n\t\t\t\t\t\t\t<input matInput formControlName=\"subject\">\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.subject['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Attachments -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin>\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@attachments\">Attachments</mat-label>\r\n\t\t\t\t\t\t\t<mat-chip-list #chipList formControlName=\"attachments\">\r\n\t\t\t\t\t\t\t\t<mat-chip *ngFor=\"let attachment of form.controls.attachments.value\" [selectable]=\"true\" color=\"primary\" removable=\"true\" (removed)=\"removeAttachment(attachment)\" (click)=\"downloadAttachment(attachment)\" selected>\r\n\t\t\t\t\t\t\t\t\t{{attachment.originalName}}\r\n\t\t\t\t\t\t\t\t\t<mat-icon matChipRemove>cancel</mat-icon>\r\n\t\t\t\t\t\t\t\t</mat-chip>\r\n\t\t\t\t\t\t\t\t<input placeholder=\"Attachments\" i18n-placeholder=\"@@attachments\" [matChipInputFor]=\"chipList\" [matChipInputAddOnBlur]=\"false\" (click)=\"fileInput.click()\" readonly>\r\n\t\t\t\t\t\t\t\t<mat-icon matSuffix (click)=\"fileInput.click()\">publish</mat-icon>\r\n\t\t\t\t\t\t\t\t<input hidden type=\"file\" accept=\"{{allowedExtensions}}\" #fileInput (change)=\"uploadAttachment($event.target.files[0])\" />\r\n\t\t\t\t\t\t\t</mat-chip-list>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Notice -->\r\n\t\t\t\t\t<div layout=\"row\" flex>\r\n\t\t\t\t\t\t<mat-form-field flex layout-margin appearance=\"outline\">\r\n\t\t\t\t\t\t\t<mat-label i18n=\"@@notice\">Notice</mat-label>\r\n\t\t\t\t\t\t\t<textarea matInput autocomplete=\"off\" formControlName=\"notice\"></textarea>\r\n\t\t\t\t\t\t\t<mat-error *ngFor=\"let errorMessage of form.controls.notice['errorMessages']\">{{errorMessage}}</mat-error>\r\n\t\t\t\t\t\t</mat-form-field>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\r\n\t\t\t\t\t<!-- #region Enabled-->\r\n\t\t\t\t\t<div layout-gt-sm=\"row\" layout=\"column\">\r\n\t\t\t\t\t\t<div layout-margin appearance=\"outline\" class=\"push-top push-bottom\">\r\n\t\t\t\t\t\t\t<mat-checkbox formControlName=\"enabled\" i18n=\"@@active\">Active</mat-checkbox>\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t\t<!-- #endregion -->\r\n\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"content\" rows=\"160\" [options]=\"editorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<div layout-margin>\r\n\t\t\t\t\t\t<ngx-codemirror formControlName=\"dummyData\" rows=\"120\" [options]=\"jsonEditorOptions\"></ngx-codemirror>\r\n\t\t\t\t\t</div>\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<vd-audit [item]=\"item\"> </vd-audit>\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: ["@import\"~codemirror/lib/codemirror.css\";@import\"~codemirror/theme/material.css\";codemirror{width:100%}.CodeMirror{height:500px}\n"] }]
|
|
983
983
|
}], ctorParameters: function () { return [{ type: TemplateService }, { type: i2.FileService }, { type: i4$1.MatDialog }, { type: i3$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }]; } });
|
|
984
984
|
|
|
985
985
|
let ContentVariable = class ContentVariable extends AuditEntity {
|