@valtimo-plugins/freemarker 8.1.0 → 8.1.1-V12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/esm2022/lib/models/freemarker-template.mjs +17 -0
- package/esm2022/lib/models/index.mjs +17 -0
- package/esm2022/lib/plugins/document-generator/assets/document-generator-plugin-logo.mjs +18 -0
- package/esm2022/lib/plugins/document-generator/assets/index.mjs +17 -0
- package/esm2022/lib/plugins/document-generator/components/document-generator-configuration/document-generator-configuration.component.mjs +77 -0
- package/esm2022/lib/plugins/document-generator/components/document-template-add-edit-modal/document-template-add-edit-modal.component.mjs +117 -0
- package/esm2022/lib/plugins/document-generator/components/document-template-delete-modal/document-template-delete-modal.component.mjs +42 -0
- package/esm2022/lib/plugins/document-generator/components/document-template-editor/document-template-editor.component.mjs +211 -0
- package/esm2022/lib/plugins/document-generator/components/document-template-list/document-template-list.component.mjs +126 -0
- package/esm2022/lib/plugins/document-generator/components/generate-csv/generate-csv.component.mjs +94 -0
- package/esm2022/lib/plugins/document-generator/components/generate-pdf/generate-pdf.component.mjs +94 -0
- package/esm2022/lib/plugins/document-generator/document-generator-management-routing.module.mjs +48 -0
- package/esm2022/lib/plugins/document-generator/document-generator-plugin-module.mjs +137 -0
- package/esm2022/lib/plugins/document-generator/document-generator-plugin.specification.mjs +74 -0
- package/esm2022/lib/plugins/document-generator/models/config.mjs +18 -0
- package/esm2022/lib/plugins/document-generator/models/index.mjs +17 -0
- package/esm2022/lib/plugins/mail-template/assets/index.mjs +17 -0
- package/esm2022/lib/plugins/mail-template/assets/mail-template-plugin-logo.mjs +18 -0
- package/esm2022/lib/plugins/mail-template/components/generate-mail-content/generate-mail-content.component.mjs +94 -0
- package/esm2022/lib/plugins/mail-template/components/generate-mail-file/generate-mail-file.component.mjs +94 -0
- package/esm2022/lib/plugins/mail-template/components/mail-template-add-edit-modal/mail-template-add-edit-modal.component.mjs +92 -0
- package/esm2022/lib/plugins/mail-template/components/mail-template-configuration/mail-template-configuration.component.mjs +77 -0
- package/esm2022/lib/plugins/mail-template/components/mail-template-delete-modal/mail-template-delete-modal.component.mjs +40 -0
- package/esm2022/lib/plugins/mail-template/components/mail-template-editor/mail-template-editor.component.mjs +201 -0
- package/esm2022/lib/plugins/mail-template/components/mail-template-list/mail-template-list.component.mjs +124 -0
- package/esm2022/lib/plugins/mail-template/mail-template-management-routing.module.mjs +48 -0
- package/esm2022/lib/plugins/mail-template/mail-template-plugin-module.mjs +154 -0
- package/esm2022/lib/plugins/mail-template/mail-template-plugin.specification.mjs +74 -0
- package/esm2022/lib/plugins/mail-template/models/config.mjs +17 -0
- package/esm2022/lib/plugins/mail-template/models/index.mjs +17 -0
- package/esm2022/lib/plugins/text-template/assets/index.mjs +17 -0
- package/esm2022/lib/plugins/text-template/assets/text-template-plugin-logo.mjs +18 -0
- package/esm2022/lib/plugins/text-template/components/generate-text-file/generate-text-file.component.mjs +94 -0
- package/esm2022/lib/plugins/text-template/components/text-template-add-edit-modal/text-template-add-edit-modal.component.mjs +92 -0
- package/esm2022/lib/plugins/text-template/components/text-template-configuration/text-template-configuration.component.mjs +77 -0
- package/esm2022/lib/plugins/text-template/components/text-template-delete-modal/text-template-delete-modal.component.mjs +42 -0
- package/esm2022/lib/plugins/text-template/components/text-template-editor/text-template-editor.component.mjs +189 -0
- package/esm2022/lib/plugins/text-template/components/text-template-list/text-template-list.component.mjs +124 -0
- package/esm2022/lib/plugins/text-template/models/config.mjs +17 -0
- package/esm2022/lib/plugins/text-template/models/index.mjs +17 -0
- package/esm2022/lib/plugins/text-template/text-template-management-routing.module.mjs +48 -0
- package/esm2022/lib/plugins/text-template/text-template-plugin-module.mjs +149 -0
- package/esm2022/lib/plugins/text-template/text-template-plugin.specification.mjs +66 -0
- package/esm2022/lib/services/freemarker-template-management.service.mjs +84 -0
- package/esm2022/lib/services/index.mjs +17 -0
- package/esm2022/public_api.mjs +54 -0
- package/esm2022/valtimo-plugins-freemarker.mjs +5 -0
- package/fesm2022/valtimo-plugins-freemarker.mjs +448 -468
- package/fesm2022/valtimo-plugins-freemarker.mjs.map +1 -1
- package/lib/models/freemarker-template.d.ts +11 -11
- package/lib/plugins/document-generator/components/document-template-add-edit-modal/document-template-add-edit-modal.component.d.ts +4 -4
- package/lib/plugins/document-generator/components/document-template-editor/document-template-editor.component.d.ts +7 -7
- package/lib/plugins/document-generator/components/document-template-list/document-template-list.component.d.ts +4 -7
- package/lib/plugins/document-generator/components/generate-csv/generate-csv.component.d.ts +7 -7
- package/lib/plugins/document-generator/components/generate-pdf/generate-pdf.component.d.ts +7 -7
- package/lib/plugins/document-generator/document-generator-plugin-module.d.ts +1 -1
- package/lib/plugins/mail-template/components/generate-mail-content/generate-mail-content.component.d.ts +10 -9
- package/lib/plugins/mail-template/components/generate-mail-file/generate-mail-file.component.d.ts +10 -9
- package/lib/plugins/mail-template/components/mail-template-add-edit-modal/mail-template-add-edit-modal.component.d.ts +2 -2
- package/lib/plugins/mail-template/components/mail-template-editor/mail-template-editor.component.d.ts +6 -6
- package/lib/plugins/mail-template/components/mail-template-list/mail-template-list.component.d.ts +3 -6
- package/lib/plugins/mail-template/mail-template-plugin-module.d.ts +5 -2
- package/lib/plugins/text-template/components/generate-text-file/generate-text-file.component.d.ts +10 -9
- package/lib/plugins/text-template/components/text-template-add-edit-modal/text-template-add-edit-modal.component.d.ts +2 -2
- package/lib/plugins/text-template/components/text-template-editor/text-template-editor.component.d.ts +6 -6
- package/lib/plugins/text-template/components/text-template-list/text-template-list.component.d.ts +3 -6
- package/lib/plugins/text-template/text-template-plugin-module.d.ts +5 -1
- package/lib/services/freemarker-template-management.service.d.ts +9 -10
- package/package.json +3 -1
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
17
|
+
import { ReactiveFormsModule, Validators } from '@angular/forms';
|
|
18
|
+
import { CARBON_CONSTANTS } from '@valtimo/components';
|
|
19
|
+
import { CommonModule } from '@angular/common';
|
|
20
|
+
import { ButtonModule, InputModule, ModalModule } from 'carbon-components-angular';
|
|
21
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
22
|
+
import * as i0 from "@angular/core";
|
|
23
|
+
import * as i1 from "@angular/forms";
|
|
24
|
+
import * as i2 from "@valtimo/components";
|
|
25
|
+
import * as i3 from "@angular/common";
|
|
26
|
+
import * as i4 from "carbon-components-angular";
|
|
27
|
+
import * as i5 from "@ngx-translate/core";
|
|
28
|
+
export class TextTemplateAddEditModalComponent {
|
|
29
|
+
set defaultKeyValue(value) {
|
|
30
|
+
this._defaultKeyValue = value;
|
|
31
|
+
this.setDefaultKeyValue(value);
|
|
32
|
+
}
|
|
33
|
+
get key() {
|
|
34
|
+
return this.form?.get('key');
|
|
35
|
+
}
|
|
36
|
+
constructor(fb, keyGeneratorService) {
|
|
37
|
+
this.fb = fb;
|
|
38
|
+
this.keyGeneratorService = keyGeneratorService;
|
|
39
|
+
this.open = false;
|
|
40
|
+
this.type = 'add';
|
|
41
|
+
this.closeEvent = new EventEmitter();
|
|
42
|
+
this.form = this.fb.group({
|
|
43
|
+
key: this.fb.control('', Validators.required),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
ngOnInit() {
|
|
47
|
+
}
|
|
48
|
+
onCancel() {
|
|
49
|
+
this.closeEvent.emit(null);
|
|
50
|
+
this.resetForm();
|
|
51
|
+
}
|
|
52
|
+
onConfirm() {
|
|
53
|
+
if (!this.key) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this.closeEvent.emit({ key: this.keyGeneratorService.getUniqueKey(this.key.value, []) });
|
|
57
|
+
this.resetForm();
|
|
58
|
+
}
|
|
59
|
+
setDefaultKeyValue(value) {
|
|
60
|
+
this.key.setValue(value);
|
|
61
|
+
}
|
|
62
|
+
resetForm() {
|
|
63
|
+
setTimeout(() => {
|
|
64
|
+
this.form.reset();
|
|
65
|
+
if (this.type === 'edit') {
|
|
66
|
+
this.setDefaultKeyValue(this._defaultKeyValue);
|
|
67
|
+
}
|
|
68
|
+
}, CARBON_CONSTANTS.modalAnimationMs);
|
|
69
|
+
}
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextTemplateAddEditModalComponent, deps: [{ token: i1.FormBuilder }, { token: i2.KeyGeneratorService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TextTemplateAddEditModalComponent, isStandalone: true, selector: "valtimo-text-template-add-edit-modal", inputs: { open: "open", type: "type", defaultKeyValue: "defaultKeyValue" }, outputs: { closeEvent: "closeEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{\n isAdd: type === 'add'\n } as vars\"\n [open]=\"open\"\n showFooter=\"true\"\n [title]=\"vars.title\"\n valtimoCdsModal\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{\n vars.isAdd\n ? 'Add'\n : 'Edit'\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\">\n <cds-label [invalid]=\"key.dirty && key.invalid\">\n {{ 'Key' }}\n\n <input\n formControlName=\"key\"\n cdsText\n placeholder=\"{{ 'key' }}\"\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"key.dirty && key.invalid\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"this.form.invalid\" (click)=\"onConfirm()\" cdsButton=\"primary\">\n {{ vars.isAdd ? ('interface.create' | translate) : ('interface.save' | translate) }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i4.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: ModalModule }, { kind: "component", type: i4.Modal, selector: "cds-modal, ibm-modal", inputs: ["size", "theme", "ariaLabel", "open", "trigger", "hasScrollingContent"], outputs: ["overlaySelected", "close"] }, { kind: "component", type: i4.ModalHeader, selector: "cds-modal-header, ibm-modal-header", inputs: ["theme", "closeLabel", "showCloseButton"], outputs: ["closeSelect"] }, { kind: "component", type: i4.ModalFooter, selector: "cds-modal-footer, ibm-modal-footer" }, { kind: "directive", type: i4.ModalContent, selector: "[cdsModalContent], [ibmModalContent]", inputs: ["hasForm"] }, { kind: "directive", type: i4.ModalHeaderHeading, selector: "[cdsModalHeaderHeading], [ibmModalHeaderHeading]" }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: InputModule }, { kind: "component", type: i4.Label, selector: "cds-label, ibm-label", inputs: ["labelInputID", "disabled", "skeleton", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "directive", type: i4.TextInput, selector: "[cdsText], [ibmText]", inputs: ["theme", "size", "invalid", "warn", "skeleton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
72
|
+
}
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextTemplateAddEditModalComponent, decorators: [{
|
|
74
|
+
type: Component,
|
|
75
|
+
args: [{ standalone: true, selector: 'valtimo-text-template-add-edit-modal', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
76
|
+
CommonModule,
|
|
77
|
+
ButtonModule,
|
|
78
|
+
TranslateModule,
|
|
79
|
+
ModalModule,
|
|
80
|
+
ReactiveFormsModule,
|
|
81
|
+
InputModule
|
|
82
|
+
], template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<cds-modal\n *ngIf=\"{\n isAdd: type === 'add'\n } as vars\"\n [open]=\"open\"\n showFooter=\"true\"\n [title]=\"vars.title\"\n valtimoCdsModal\n>\n <cds-modal-header [showCloseButton]=\"true\" (closeSelect)=\"onCancel()\">\n <h3 cdsModalHeaderHeading>\n {{\n vars.isAdd\n ? 'Add'\n : 'Edit'\n }}\n </h3>\n </cds-modal-header>\n\n <section cdsModalContent>\n <form [formGroup]=\"form\">\n <cds-label [invalid]=\"key.dirty && key.invalid\">\n {{ 'Key' }}\n\n <input\n formControlName=\"key\"\n cdsText\n placeholder=\"{{ 'key' }}\"\n [attr.modal-primary-focus]=\"true\"\n [invalid]=\"key.dirty && key.invalid\"\n />\n </cds-label>\n </form>\n </section>\n\n <cds-modal-footer>\n <button cdsButton=\"ghost\" (click)=\"onCancel()\">\n {{ 'interface.cancel' | translate }}\n </button>\n\n <button [disabled]=\"this.form.invalid\" (click)=\"onConfirm()\" cdsButton=\"primary\">\n {{ vars.isAdd ? ('interface.create' | translate) : ('interface.save' | translate) }}\n </button>\n </cds-modal-footer>\n</cds-modal>\n" }]
|
|
83
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.KeyGeneratorService }], propDecorators: { open: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}], type: [{
|
|
86
|
+
type: Input
|
|
87
|
+
}], defaultKeyValue: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], closeEvent: [{
|
|
90
|
+
type: Output
|
|
91
|
+
}] } });
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC10ZW1wbGF0ZS1hZGQtZWRpdC1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vLXBsdWdpbnMvZnJlZW1hcmtlci9zcmMvbGliL3BsdWdpbnMvdGV4dC10ZW1wbGF0ZS9jb21wb25lbnRzL3RleHQtdGVtcGxhdGUtYWRkLWVkaXQtbW9kYWwvdGV4dC10ZW1wbGF0ZS1hZGQtZWRpdC1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vLXBsdWdpbnMvZnJlZW1hcmtlci9zcmMvbGliL3BsdWdpbnMvdGV4dC10ZW1wbGF0ZS9jb21wb25lbnRzL3RleHQtdGVtcGxhdGUtYWRkLWVkaXQtbW9kYWwvdGV4dC10ZW1wbGF0ZS1hZGQtZWRpdC1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEdBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFjLG1CQUFtQixFQUFFLFVBQVUsRUFBa0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RixPQUFPLEVBQUMsZ0JBQWdCLEVBQXNCLE1BQU0scUJBQXFCLENBQUM7QUFDMUUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2pGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7OztBQWdCcEQsTUFBTSxPQUFPLGlDQUFpQztJQUkxQyxJQUFhLGVBQWUsQ0FBQyxLQUFhO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDOUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFVRCxJQUFXLEdBQUc7UUFDVixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxZQUNxQixFQUFlLEVBQ2YsbUJBQXdDO1FBRHhDLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBdEJwRCxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsU0FBSSxHQUEwQixLQUFLLENBQUM7UUFPbkMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUEwQyxDQUFDO1FBRTNFLFNBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUN4QixHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7U0FDaEQsQ0FBQyxDQUFDO0lBWUgsQ0FBQztJQUVNLFFBQVE7SUFDZixDQUFDO0lBRU0sUUFBUTtRQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU0sU0FBUztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDWixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUMsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sa0JBQWtCLENBQUMsS0FBYTtRQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRU8sU0FBUztRQUNiLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2xCLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ25ELENBQUM7UUFDTCxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMxQyxDQUFDOytHQXZEUSxpQ0FBaUM7bUdBQWpDLGlDQUFpQyxtTkN0QzlDLG15REE2REEsMkNEL0JRLFlBQVksa0lBQ1osWUFBWSxnTUFDWixlQUFlLDJGQUNmLFdBQVcsK3NCQUNYLG1CQUFtQiw0OEJBQ25CLFdBQVc7OzRGQUdOLGlDQUFpQztrQkFkN0MsU0FBUztpQ0FDTSxJQUFJLFlBQ04sc0NBQXNDLG1CQUUvQix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNMLFlBQVk7d0JBQ1osWUFBWTt3QkFDWixlQUFlO3dCQUNmLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixXQUFXO3FCQUNkO2tIQUdRLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRU8sZUFBZTtzQkFBM0IsS0FBSztnQkFLSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycywgQWJzdHJhY3RDb250cm9sfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1RlbXBsYXRlTWV0YWRhdGFNb2RhbH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7Q0FSQk9OX0NPTlNUQU5UUywgS2V5R2VuZXJhdG9yU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7QnV0dG9uTW9kdWxlLCBJbnB1dE1vZHVsZSwgTW9kYWxNb2R1bGV9IGZyb20gJ2NhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXInO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAndmFsdGltby10ZXh0LXRlbXBsYXRlLWFkZC1lZGl0LW1vZGFsJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGV4dC10ZW1wbGF0ZS1hZGQtZWRpdC1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBNb2RhbE1vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgSW5wdXRNb2R1bGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRleHRUZW1wbGF0ZUFkZEVkaXRNb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgb3BlbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHR5cGU6IFRlbXBsYXRlTWV0YWRhdGFNb2RhbCA9ICdhZGQnO1xuXG4gICAgQElucHV0KCkgc2V0IGRlZmF1bHRLZXlWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2RlZmF1bHRLZXlWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldERlZmF1bHRLZXlWYWx1ZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGNsb3NlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHsga2V5OiBzdHJpbmc7IG1ldGFkYXRhPzogYW55IH0gfCBudWxsPigpO1xuXG4gICAgcHVibGljIGZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgICAga2V5OiB0aGlzLmZiLmNvbnRyb2woJycsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgIH0pO1xuXG4gICAgcHJpdmF0ZSBfZGVmYXVsdEtleVZhbHVlITogc3RyaW5nO1xuXG4gICAgcHVibGljIGdldCBrZXkoKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybT8uZ2V0KCdrZXknKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkga2V5R2VuZXJhdG9yU2VydmljZTogS2V5R2VuZXJhdG9yU2VydmljZSxcbiAgICApIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgfVxuXG4gICAgcHVibGljIG9uQ2FuY2VsKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNsb3NlRXZlbnQuZW1pdChudWxsKTtcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Db25maXJtKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMua2V5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsb3NlRXZlbnQuZW1pdCh7a2V5OiB0aGlzLmtleUdlbmVyYXRvclNlcnZpY2UuZ2V0VW5pcXVlS2V5KHRoaXMua2V5LnZhbHVlLCBbXSl9KTtcbiAgICAgICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldERlZmF1bHRLZXlWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMua2V5LnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlc2V0Rm9ybSgpOiB2b2lkIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvcm0ucmVzZXQoKTtcbiAgICAgICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdlZGl0Jykge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0RGVmYXVsdEtleVZhbHVlKHRoaXMuX2RlZmF1bHRLZXlWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIENBUkJPTl9DT05TVEFOVFMubW9kYWxBbmltYXRpb25Ncyk7XG4gICAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48Y2RzLW1vZGFsXG4gICpuZ0lmPVwie1xuICAgIGlzQWRkOiB0eXBlID09PSAnYWRkJ1xuICB9IGFzIHZhcnNcIlxuICBbb3Blbl09XCJvcGVuXCJcbiAgc2hvd0Zvb3Rlcj1cInRydWVcIlxuICBbdGl0bGVdPVwidmFycy50aXRsZVwiXG4gIHZhbHRpbW9DZHNNb2RhbFxuPlxuICA8Y2RzLW1vZGFsLWhlYWRlciBbc2hvd0Nsb3NlQnV0dG9uXT1cInRydWVcIiAoY2xvc2VTZWxlY3QpPVwib25DYW5jZWwoKVwiPlxuICAgIDxoMyBjZHNNb2RhbEhlYWRlckhlYWRpbmc+XG4gICAgICB7e1xuICAgICAgICB2YXJzLmlzQWRkXG4gICAgICAgICAgPyAnQWRkJ1xuICAgICAgICAgIDogJ0VkaXQnXG4gICAgICB9fVxuICAgIDwvaDM+XG4gIDwvY2RzLW1vZGFsLWhlYWRlcj5cblxuICA8c2VjdGlvbiBjZHNNb2RhbENvbnRlbnQ+XG4gICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCI+XG4gICAgICA8Y2RzLWxhYmVsIFtpbnZhbGlkXT1cImtleS5kaXJ0eSAmJiBrZXkuaW52YWxpZFwiPlxuICAgICAgICB7eyAnS2V5JyB9fVxuXG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImtleVwiXG4gICAgICAgICAgY2RzVGV4dFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ2tleScgfX1cIlxuICAgICAgICAgIFthdHRyLm1vZGFsLXByaW1hcnktZm9jdXNdPVwidHJ1ZVwiXG4gICAgICAgICAgW2ludmFsaWRdPVwia2V5LmRpcnR5ICYmIGtleS5pbnZhbGlkXCJcbiAgICAgICAgLz5cbiAgICAgIDwvY2RzLWxhYmVsPlxuICAgIDwvZm9ybT5cbiAgPC9zZWN0aW9uPlxuXG4gIDxjZHMtbW9kYWwtZm9vdGVyPlxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwiZ2hvc3RcIiAoY2xpY2spPVwib25DYW5jZWwoKVwiPlxuICAgICAge3sgJ2ludGVyZmFjZS5jYW5jZWwnIHwgdHJhbnNsYXRlIH19XG4gICAgPC9idXR0b24+XG5cbiAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJ0aGlzLmZvcm0uaW52YWxpZFwiIChjbGljayk9XCJvbkNvbmZpcm0oKVwiIGNkc0J1dHRvbj1cInByaW1hcnlcIj5cbiAgICAgIHt7IHZhcnMuaXNBZGQgPyAoJ2ludGVyZmFjZS5jcmVhdGUnIHwgdHJhbnNsYXRlKSA6ICgnaW50ZXJmYWNlLnNhdmUnIHwgdHJhbnNsYXRlKSB9fVxuICAgIDwvYnV0dG9uPlxuICA8L2Nkcy1tb2RhbC1mb290ZXI+XG48L2Nkcy1tb2RhbD5cbiJdfQ==
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2022 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
17
|
+
import { BehaviorSubject, combineLatest, take } from 'rxjs';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
import * as i1 from "@angular/common";
|
|
20
|
+
import * as i2 from "@valtimo/components";
|
|
21
|
+
import * as i3 from "@valtimo/plugin";
|
|
22
|
+
export class TextTemplateConfigurationComponent {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.valid = new EventEmitter();
|
|
25
|
+
this.configuration = new EventEmitter();
|
|
26
|
+
this.formValue$ = new BehaviorSubject(null);
|
|
27
|
+
this.valid$ = new BehaviorSubject(false);
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
this.openSaveSubscription();
|
|
31
|
+
}
|
|
32
|
+
ngOnDestroy() {
|
|
33
|
+
this.saveSubscription?.unsubscribe();
|
|
34
|
+
}
|
|
35
|
+
formValueChange(formValue) {
|
|
36
|
+
this.formValue$.next(formValue);
|
|
37
|
+
this.handleValid(formValue);
|
|
38
|
+
}
|
|
39
|
+
handleValid(formValue) {
|
|
40
|
+
const valid = !!(formValue.configurationTitle);
|
|
41
|
+
this.valid$.next(valid);
|
|
42
|
+
this.valid.emit(valid);
|
|
43
|
+
}
|
|
44
|
+
openSaveSubscription() {
|
|
45
|
+
this.saveSubscription = this.save$?.subscribe(_ => {
|
|
46
|
+
combineLatest([this.formValue$, this.valid$])
|
|
47
|
+
.pipe(take(1))
|
|
48
|
+
.subscribe(([formValue, valid]) => {
|
|
49
|
+
if (valid) {
|
|
50
|
+
this.configuration.emit(formValue);
|
|
51
|
+
this.injectCaseTab();
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
injectCaseTab() {
|
|
57
|
+
}
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextTemplateConfigurationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TextTemplateConfigurationComponent, selector: "valtimo-text-template-configuration", inputs: { save$: "save$", disabled$: "disabled$", pluginId: "pluginId", prefillConfiguration$: "prefillConfiguration$" }, outputs: { valid: "valid", configuration: "configuration" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n [widthPx]=\"350\"\n placeholder=\"Text Template Plugin\"\n >\n </v-input>\n</v-form>\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FormComponent, selector: "v-form", inputs: ["className"], outputs: ["valueChange"] }, { kind: "component", type: i2.InputComponent, selector: "v-input", inputs: ["name", "type", "title", "titleTranslationKey", "defaultValue", "widthPx", "fullWidth", "margin", "smallMargin", "disabled", "step", "min", "maxLength", "tooltip", "required", "hideNumberSpinBox", "smallLabel", "rows", "clear$", "carbonTheme", "placeholder", "dataTestId", "trim"], outputs: ["valueChange"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i3.PluginTranslatePipe, name: "pluginTranslate" }] }); }
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextTemplateConfigurationComponent, decorators: [{
|
|
62
|
+
type: Component,
|
|
63
|
+
args: [{ selector: 'valtimo-text-template-configuration', template: "<!--\n ~ Copyright 2015-2022 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<v-form\n (valueChange)=\"formValueChange($event)\"\n *ngIf=\"{\n disabled: disabled$ | async,\n prefill: prefillConfiguration$ ? (prefillConfiguration$ | async) : null\n } as obs\"\n>\n <v-input\n name=\"configurationTitle\"\n [title]=\"'configurationTitle' | pluginTranslate: pluginId | async\"\n [margin]=\"true\"\n [disabled]=\"obs.disabled\"\n [defaultValue]=\"obs.prefill?.configurationTitle\"\n [required]=\"true\"\n [tooltip]=\"'configurationTitleTooltip' | pluginTranslate: pluginId | async\"\n [widthPx]=\"350\"\n placeholder=\"Text Template Plugin\"\n >\n </v-input>\n</v-form>\n" }]
|
|
64
|
+
}], ctorParameters: () => [], propDecorators: { save$: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}], disabled$: [{
|
|
67
|
+
type: Input
|
|
68
|
+
}], pluginId: [{
|
|
69
|
+
type: Input
|
|
70
|
+
}], prefillConfiguration$: [{
|
|
71
|
+
type: Input
|
|
72
|
+
}], valid: [{
|
|
73
|
+
type: Output
|
|
74
|
+
}], configuration: [{
|
|
75
|
+
type: Output
|
|
76
|
+
}] } });
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC10ZW1wbGF0ZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8tcGx1Z2lucy9mcmVlbWFya2VyL3NyYy9saWIvcGx1Z2lucy90ZXh0LXRlbXBsYXRlL2NvbXBvbmVudHMvdGV4dC10ZW1wbGF0ZS1jb25maWd1cmF0aW9uL3RleHQtdGVtcGxhdGUtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vLXBsdWdpbnMvZnJlZW1hcmtlci9zcmMvbGliL3BsdWdpbnMvdGV4dC10ZW1wbGF0ZS9jb21wb25lbnRzL3RleHQtdGVtcGxhdGUtY29uZmlndXJhdGlvbi90ZXh0LXRlbXBsYXRlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV4RixPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBaUMsSUFBSSxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7OztBQU96RixNQUFNLE9BQU8sa0NBQWtDO0lBVTdDO1FBSFUsVUFBSyxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBQzNELGtCQUFhLEdBQTBDLElBQUksWUFBWSxFQUEyQixDQUFDO1FBTTVGLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBNEIsSUFBSSxDQUFDLENBQUM7UUFDbEUsV0FBTSxHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBSjNELENBQUM7SUFNSixRQUFRO1FBQ04sSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGVBQWUsQ0FBQyxTQUE2QjtRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFTyxXQUFXLENBQUMsU0FBNkI7UUFDL0MsTUFBTSxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEQsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7aUJBQzFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2IsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtnQkFDaEMsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDVixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFVLENBQUMsQ0FBQztvQkFDcEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN2QixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxhQUFhO0lBQ3JCLENBQUM7K0dBbkRVLGtDQUFrQzttR0FBbEMsa0NBQWtDLGtRQ3pCL0MsdXdDQW9DQTs7NEZEWGEsa0NBQWtDO2tCQUo5QyxTQUFTOytCQUNFLHFDQUFxQzt3REFNdEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0ksS0FBSztzQkFBZCxNQUFNO2dCQUNHLGFBQWE7c0JBQXRCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMiBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1BsdWdpbkNvbmZpZ3VyYXRpb25Db21wb25lbnQsIFBsdWdpbkNvbmZpZ3VyYXRpb25EYXRhfSBmcm9tICdAdmFsdGltby9wbHVnaW4nO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCB0YWtlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7VGV4dFRlbXBsYXRlQ29uZmlnfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXRleHQtdGVtcGxhdGUtY29uZmlndXJhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0LXRlbXBsYXRlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwnLFxufSlcbmV4cG9ydCBjbGFzcyBUZXh0VGVtcGxhdGVDb25maWd1cmF0aW9uQ29tcG9uZW50XG4gIGltcGxlbWVudHMgUGx1Z2luQ29uZmlndXJhdGlvbkNvbXBvbmVudCwgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgQElucHV0KCkgc2F2ZSQhOiBPYnNlcnZhYmxlPHZvaWQ+O1xuICBASW5wdXQoKSBkaXNhYmxlZCQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICBASW5wdXQoKSBwbHVnaW5JZCE6IHN0cmluZztcbiAgQElucHV0KCkgcHJlZmlsbENvbmZpZ3VyYXRpb24kITogT2JzZXJ2YWJsZTxUZXh0VGVtcGxhdGVDb25maWc+O1xuICBAT3V0cHV0KCkgdmFsaWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcbiAgQE91dHB1dCgpIGNvbmZpZ3VyYXRpb246IEV2ZW50RW1pdHRlcjxQbHVnaW5Db25maWd1cmF0aW9uRGF0YT4gPSBuZXcgRXZlbnRFbWl0dGVyPFBsdWdpbkNvbmZpZ3VyYXRpb25EYXRhPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICApIHt9XG5cbiAgcHJpdmF0ZSBzYXZlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHJlYWRvbmx5IGZvcm1WYWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRleHRUZW1wbGF0ZUNvbmZpZyB8IG51bGw+KG51bGwpO1xuICBwcml2YXRlIHJlYWRvbmx5IHZhbGlkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub3BlblNhdmVTdWJzY3JpcHRpb24oKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc2F2ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGZvcm1WYWx1ZUNoYW5nZShmb3JtVmFsdWU6IFRleHRUZW1wbGF0ZUNvbmZpZyk6IHZvaWQge1xuICAgIHRoaXMuZm9ybVZhbHVlJC5uZXh0KGZvcm1WYWx1ZSk7XG4gICAgdGhpcy5oYW5kbGVWYWxpZChmb3JtVmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVWYWxpZChmb3JtVmFsdWU6IFRleHRUZW1wbGF0ZUNvbmZpZyk6IHZvaWQge1xuICAgIGNvbnN0IHZhbGlkID0gISEoZm9ybVZhbHVlLmNvbmZpZ3VyYXRpb25UaXRsZSk7XG5cbiAgICB0aGlzLnZhbGlkJC5uZXh0KHZhbGlkKTtcbiAgICB0aGlzLnZhbGlkLmVtaXQodmFsaWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBvcGVuU2F2ZVN1YnNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLnNhdmVTdWJzY3JpcHRpb24gPSB0aGlzLnNhdmUkPy5zdWJzY3JpYmUoXyA9PiB7XG4gICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLmZvcm1WYWx1ZSQsIHRoaXMudmFsaWQkXSlcbiAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZSgoW2Zvcm1WYWx1ZSwgdmFsaWRdKSA9PiB7XG4gICAgICAgICAgaWYgKHZhbGlkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpZ3VyYXRpb24uZW1pdChmb3JtVmFsdWUhKTtcbiAgICAgICAgICAgIHRoaXMuaW5qZWN0Q2FzZVRhYigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGluamVjdENhc2VUYWIoKSB7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIyIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHYtZm9ybVxuICAodmFsdWVDaGFuZ2UpPVwiZm9ybVZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAqbmdJZj1cIntcbiAgICBkaXNhYmxlZDogZGlzYWJsZWQkIHwgYXN5bmMsXG4gICAgcHJlZmlsbDogcHJlZmlsbENvbmZpZ3VyYXRpb24kID8gKHByZWZpbGxDb25maWd1cmF0aW9uJCB8IGFzeW5jKSA6IG51bGxcbiAgfSBhcyBvYnNcIlxuPlxuICA8di1pbnB1dFxuICAgIG5hbWU9XCJjb25maWd1cmF0aW9uVGl0bGVcIlxuICAgIFt0aXRsZV09XCInY29uZmlndXJhdGlvblRpdGxlJyB8IHBsdWdpblRyYW5zbGF0ZTogcGx1Z2luSWQgfCBhc3luY1wiXG4gICAgW21hcmdpbl09XCJ0cnVlXCJcbiAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICBbZGVmYXVsdFZhbHVlXT1cIm9icy5wcmVmaWxsPy5jb25maWd1cmF0aW9uVGl0bGVcIlxuICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICBbdG9vbHRpcF09XCInY29uZmlndXJhdGlvblRpdGxlVG9vbHRpcCcgfCBwbHVnaW5UcmFuc2xhdGU6IHBsdWdpbklkIHwgYXN5bmNcIlxuICAgIFt3aWR0aFB4XT1cIjM1MFwiXG4gICAgcGxhY2Vob2xkZXI9XCJUZXh0IFRlbXBsYXRlIFBsdWdpblwiXG4gID5cbiAgPC92LWlucHV0PlxuPC92LWZvcm0+XG4iXX0=
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
|
|
17
|
+
import { ConfirmationModalModule } from '@valtimo/components';
|
|
18
|
+
import * as i0 from "@angular/core";
|
|
19
|
+
import * as i1 from "@valtimo/components";
|
|
20
|
+
export class TextTemplateDeleteModalComponent {
|
|
21
|
+
constructor() {
|
|
22
|
+
this.deleteEvent = new EventEmitter();
|
|
23
|
+
}
|
|
24
|
+
onDelete(templates) {
|
|
25
|
+
this.deleteEvent.emit(templates);
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextTemplateDeleteModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TextTemplateDeleteModalComponent, isStandalone: true, selector: "valtimo-text-template-delete-modal", inputs: { deleteRowKeys: "deleteRowKeys", showDeleteModal$: "showDeleteModal$" }, outputs: { deleteEvent: "deleteEvent" }, ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"template.deleteModalContent\"\n [outputOnConfirm]=\"deleteRowKeys\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete($event)\"\n></valtimo-confirmation-modal>\n", dependencies: [{ kind: "ngmodule", type: ConfirmationModalModule }, { kind: "component", type: i1.ConfirmationModalComponent, selector: "valtimo-confirmation-modal", inputs: ["titleTranslationKey", "title", "content", "contentTranslationKey", "confirmButtonText", "confirmButtonTextTranslationKey", "confirmButtonType", "showOptionalButton", "optionalButtonText", "optionalButtonTextTranslationKey", "optionalButtonType", "cancelButtonText", "cancelButtonTextTranslationKey", "cancelButtonType", "showModalSubject$", "outputOnConfirm", "outputOnOptional", "spacerAfterCancelButton"], outputs: ["confirmEvent", "optionalEvent", "cancelEvent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextTemplateDeleteModalComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ standalone: true, selector: 'valtimo-text-template-delete-modal', changeDetection: ChangeDetectionStrategy.OnPush, imports: [
|
|
33
|
+
ConfirmationModalModule
|
|
34
|
+
], template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<valtimo-confirmation-modal\n confirmButtonTextTranslationKey=\"interface.delete\"\n confirmButtonType=\"danger\"\n contentTranslationKey=\"template.deleteModalContent\"\n [outputOnConfirm]=\"deleteRowKeys\"\n [showModalSubject$]=\"showDeleteModal$\"\n titleTranslationKey=\"interface.delete\"\n (confirmEvent)=\"onDelete($event)\"\n></valtimo-confirmation-modal>\n" }]
|
|
35
|
+
}], propDecorators: { deleteRowKeys: [{
|
|
36
|
+
type: Input
|
|
37
|
+
}], showDeleteModal$: [{
|
|
38
|
+
type: Input
|
|
39
|
+
}], deleteEvent: [{
|
|
40
|
+
type: Output
|
|
41
|
+
}] } });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC10ZW1wbGF0ZS1kZWxldGUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby1wbHVnaW5zL2ZyZWVtYXJrZXIvc3JjL2xpYi9wbHVnaW5zL3RleHQtdGVtcGxhdGUvY29tcG9uZW50cy90ZXh0LXRlbXBsYXRlLWRlbGV0ZS1tb2RhbC90ZXh0LXRlbXBsYXRlLWRlbGV0ZS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vLXBsdWdpbnMvZnJlZW1hcmtlci9zcmMvbGliL3BsdWdpbnMvdGV4dC10ZW1wbGF0ZS9jb21wb25lbnRzL3RleHQtdGVtcGxhdGUtZGVsZXRlLW1vZGFsL3RleHQtdGVtcGxhdGUtZGVsZXRlLW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBVzVELE1BQU0sT0FBTyxnQ0FBZ0M7SUFUN0M7UUFZYyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0tBSzdEO0lBSFUsUUFBUSxDQUFDLFNBQXFCO1FBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7K0dBUFEsZ0NBQWdDO21HQUFoQyxnQ0FBZ0MseU5DN0I3QyxzZ0NBeUJBLDJDRENRLHVCQUF1Qjs7NEZBR2xCLGdDQUFnQztrQkFUNUMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sb0NBQW9DLG1CQUU3Qix1QkFBdUIsQ0FBQyxNQUFNLFdBQ3RDO3dCQUNMLHVCQUF1QjtxQkFDMUI7OEJBR1EsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NvbmZpcm1hdGlvbk1vZGFsTW9kdWxlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3ZhbHRpbW8tdGV4dC10ZW1wbGF0ZS1kZWxldGUtbW9kYWwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZXh0LXRlbXBsYXRlLWRlbGV0ZS1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb25maXJtYXRpb25Nb2RhbE1vZHVsZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGV4dFRlbXBsYXRlRGVsZXRlTW9kYWxDb21wb25lbnQge1xuICAgIEBJbnB1dCgpIGRlbGV0ZVJvd0tleXM6IEFycmF5PHN0cmluZz47XG4gICAgQElucHV0KCkgc2hvd0RlbGV0ZU1vZGFsJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICBAT3V0cHV0KCkgZGVsZXRlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPEFycmF5PHN0cmluZz4+KCk7XG5cbiAgICBwdWJsaWMgb25EZWxldGUodGVtcGxhdGVzOiBBcnJheTxhbnk+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVsZXRlRXZlbnQuZW1pdCh0ZW1wbGF0ZXMpO1xuICAgIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsXG4gIGNvbmZpcm1CdXR0b25UZXh0VHJhbnNsYXRpb25LZXk9XCJpbnRlcmZhY2UuZGVsZXRlXCJcbiAgY29uZmlybUJ1dHRvblR5cGU9XCJkYW5nZXJcIlxuICBjb250ZW50VHJhbnNsYXRpb25LZXk9XCJ0ZW1wbGF0ZS5kZWxldGVNb2RhbENvbnRlbnRcIlxuICBbb3V0cHV0T25Db25maXJtXT1cImRlbGV0ZVJvd0tleXNcIlxuICBbc2hvd01vZGFsU3ViamVjdCRdPVwic2hvd0RlbGV0ZU1vZGFsJFwiXG4gIHRpdGxlVHJhbnNsYXRpb25LZXk9XCJpbnRlcmZhY2UuZGVsZXRlXCJcbiAgKGNvbmZpcm1FdmVudCk9XCJvbkRlbGV0ZSgkZXZlbnQpXCJcbj48L3ZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsPlxuIl19
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2023 Ritense BV, the Netherlands.
|
|
3
|
+
*
|
|
4
|
+
* Licensed under EUPL, Version 1.2 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" basis,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
17
|
+
import { BehaviorSubject, combineLatest, filter, map, switchMap, take, tap } from 'rxjs';
|
|
18
|
+
import { CarbonListModule, EditorModule, RenderInPageHeaderDirectiveModule } from '@valtimo/components';
|
|
19
|
+
import { ButtonModule, DialogModule, IconModule, NotificationService, TabsModule } from 'carbon-components-angular';
|
|
20
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
21
|
+
import { CommonModule } from '@angular/common';
|
|
22
|
+
import { TextTemplateDeleteModalComponent } from '../text-template-delete-modal/text-template-delete-modal.component';
|
|
23
|
+
import * as i0 from "@angular/core";
|
|
24
|
+
import * as i1 from "../../../../services";
|
|
25
|
+
import * as i2 from "@angular/router";
|
|
26
|
+
import * as i3 from "@valtimo/components";
|
|
27
|
+
import * as i4 from "carbon-components-angular";
|
|
28
|
+
import * as i5 from "@ngx-translate/core";
|
|
29
|
+
import * as i6 from "@angular/common";
|
|
30
|
+
export class TextTemplateEditorComponent {
|
|
31
|
+
constructor(templateService, route, pageTitleService, router, notificationService, translateService, breadcrumbService) {
|
|
32
|
+
this.templateService = templateService;
|
|
33
|
+
this.route = route;
|
|
34
|
+
this.pageTitleService = pageTitleService;
|
|
35
|
+
this.router = router;
|
|
36
|
+
this.notificationService = notificationService;
|
|
37
|
+
this.translateService = translateService;
|
|
38
|
+
this.breadcrumbService = breadcrumbService;
|
|
39
|
+
this.model$ = new BehaviorSubject(null);
|
|
40
|
+
this.template$ = new BehaviorSubject(null);
|
|
41
|
+
this.saveDisabled$ = new BehaviorSubject(true);
|
|
42
|
+
this.editorDisabled$ = new BehaviorSubject(false);
|
|
43
|
+
this.moreDisabled$ = new BehaviorSubject(true);
|
|
44
|
+
this.showDeleteModal$ = new BehaviorSubject(false);
|
|
45
|
+
this.updatedModelValue$ = new BehaviorSubject('');
|
|
46
|
+
this.initialModelValue$ = new BehaviorSubject('');
|
|
47
|
+
this.isValid$ = new BehaviorSubject(true);
|
|
48
|
+
this._caseDefinitionName$ = this.route.params.pipe(map(params => params?.name), filter(caseDefinitionName => !!caseDefinitionName));
|
|
49
|
+
this.templateKey$ = this.route.params.pipe(map(params => params?.key), filter(templateKey => !!templateKey));
|
|
50
|
+
}
|
|
51
|
+
ngOnInit() {
|
|
52
|
+
this.loadTemplate();
|
|
53
|
+
this.initSaveButtonLogic();
|
|
54
|
+
}
|
|
55
|
+
ngAfterViewInit() {
|
|
56
|
+
this.initBreadcrumb();
|
|
57
|
+
}
|
|
58
|
+
ngOnDestroy() {
|
|
59
|
+
this.pageTitleService.enableReset();
|
|
60
|
+
this.breadcrumbService.clearThirdBreadcrumb();
|
|
61
|
+
}
|
|
62
|
+
onValid(valid) {
|
|
63
|
+
if (typeof valid === 'boolean') {
|
|
64
|
+
this.isValid$.next(valid);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
onValueChange(value) {
|
|
68
|
+
this.updatedModelValue$.next(value);
|
|
69
|
+
}
|
|
70
|
+
updateTemplate() {
|
|
71
|
+
this.disableEditor();
|
|
72
|
+
this.disableSave();
|
|
73
|
+
this.disableMore();
|
|
74
|
+
combineLatest([this.updatedModelValue$, this._caseDefinitionName$, this.templateKey$]).pipe(switchMap(([updatedModelValue, caseDefinitionName, templateKey]) => this.templateService.updateTemplate({
|
|
75
|
+
key: templateKey,
|
|
76
|
+
caseDefinitionName,
|
|
77
|
+
type: 'text',
|
|
78
|
+
content: updatedModelValue,
|
|
79
|
+
})), take(1)).subscribe({
|
|
80
|
+
next: result => {
|
|
81
|
+
this.enableMore();
|
|
82
|
+
this.enableSave();
|
|
83
|
+
this.enableEditor();
|
|
84
|
+
this.showSuccessMessage(result.key);
|
|
85
|
+
this.setModel(result.content);
|
|
86
|
+
this.initialModelValue$.next(result.content);
|
|
87
|
+
this.template$.next(result);
|
|
88
|
+
},
|
|
89
|
+
error: () => {
|
|
90
|
+
this.enableMore();
|
|
91
|
+
this.enableSave();
|
|
92
|
+
this.enableEditor();
|
|
93
|
+
},
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
onDelete(templates) {
|
|
97
|
+
this.disableEditor();
|
|
98
|
+
this.disableSave();
|
|
99
|
+
this.disableMore();
|
|
100
|
+
this._caseDefinitionName$.pipe(take(1)).subscribe(caseDefinitionName => this.templateService.deleteTemplates({
|
|
101
|
+
caseDefinitionName,
|
|
102
|
+
type: 'text',
|
|
103
|
+
templates
|
|
104
|
+
}).pipe(take(1)).subscribe(_ => this.router.navigate([`/dossier-management/dossier/${caseDefinitionName}`])));
|
|
105
|
+
}
|
|
106
|
+
showDeleteModal() {
|
|
107
|
+
this.showDeleteModal$.next(true);
|
|
108
|
+
}
|
|
109
|
+
loadTemplate() {
|
|
110
|
+
combineLatest([this._caseDefinitionName$, this.templateKey$]).pipe(tap(([_, key]) => {
|
|
111
|
+
this.pageTitleService.setCustomPageTitle(`Text Template: ${key}`, true);
|
|
112
|
+
}), switchMap(([caseDefinitionName, key]) => this.templateService.getTextTemplate(caseDefinitionName, key)), take(1)).subscribe(result => {
|
|
113
|
+
this.enableMore();
|
|
114
|
+
this.enableSave();
|
|
115
|
+
this.enableEditor();
|
|
116
|
+
this.setModel(result.content);
|
|
117
|
+
this.initialModelValue$.next(result.content);
|
|
118
|
+
this.template$.next(result);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
initSaveButtonLogic() {
|
|
122
|
+
combineLatest([this.updatedModelValue$, this.initialModelValue$, this.isValid$]).subscribe(([updatedValue, initialValue, isValid]) => {
|
|
123
|
+
this.saveDisabled$.next(!isValid || updatedValue === initialValue);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
setModel(content) {
|
|
127
|
+
this.model$.next({
|
|
128
|
+
value: content,
|
|
129
|
+
language: 'freemarker2',
|
|
130
|
+
});
|
|
131
|
+
this.updatedModelValue$.next(content);
|
|
132
|
+
}
|
|
133
|
+
disableMore() {
|
|
134
|
+
this.moreDisabled$.next(true);
|
|
135
|
+
}
|
|
136
|
+
enableMore() {
|
|
137
|
+
this.moreDisabled$.next(false);
|
|
138
|
+
}
|
|
139
|
+
disableSave() {
|
|
140
|
+
this.saveDisabled$.next(true);
|
|
141
|
+
}
|
|
142
|
+
enableSave() {
|
|
143
|
+
this.saveDisabled$.next(false);
|
|
144
|
+
}
|
|
145
|
+
disableEditor() {
|
|
146
|
+
this.editorDisabled$.next(true);
|
|
147
|
+
}
|
|
148
|
+
enableEditor() {
|
|
149
|
+
this.editorDisabled$.next(false);
|
|
150
|
+
}
|
|
151
|
+
initBreadcrumb() {
|
|
152
|
+
this._caseDefinitionName$.subscribe(caseDefinitionName => {
|
|
153
|
+
this.breadcrumbService.setThirdBreadcrumb({
|
|
154
|
+
route: [`/dossier-management/dossier/${caseDefinitionName}`],
|
|
155
|
+
content: caseDefinitionName,
|
|
156
|
+
href: `/dossier-management/dossier/${caseDefinitionName}`,
|
|
157
|
+
});
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
showSuccessMessage(key) {
|
|
161
|
+
this.notificationService.showToast({
|
|
162
|
+
caption: this.translateService.instant(`${key} was saved successfully`, {
|
|
163
|
+
key,
|
|
164
|
+
}),
|
|
165
|
+
type: 'success',
|
|
166
|
+
duration: 4000,
|
|
167
|
+
showClose: true,
|
|
168
|
+
title: this.translateService.instant('Saved successfully'),
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextTemplateEditorComponent, deps: [{ token: i1.FreemarkerTemplateManagementService }, { token: i2.ActivatedRoute }, { token: i3.PageTitleService }, { token: i2.Router }, { token: i4.NotificationService }, { token: i5.TranslateService }, { token: i3.BreadcrumbService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
172
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: TextTemplateEditorComponent, isStandalone: true, selector: "ng-component", providers: [NotificationService], ngImport: i0, template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n model: model$ | async,\n updatedModelValue: updatedModelValue$ | async,\n template: template$ | async,\n } as obs\">\n\n <div class=\"template-explanation\">\n Text Templates use <a target=\"_blank\" href=\"https://freemarker.apache.org/docs/dgui_quickstart_basics.html\">FreeMarker</a>\n to create placeholders inside the text. The data-model for FreeMarker is based upon nested <a\n target=\"_blank\" href=\"https://docs.valtimo.nl/features/value-resolvers\">Valtimo value-resolvers</a>\n with a slightly different notation. For example: ${doc.firstName}. Retrieves\n the `firstName` from the case.\n\n Text Templates can be used as value resolvers. For example: ${template.my-text-template} or\n `template:my-text-template`.\n </div>\n\n <valtimo-editor\n [model]=\"obs.model\"\n [disabled]=\"(editorDisabled$ | async) || obs.template?.readOnly\"\n (validEvent)=\"onValid($event)\"\n (valueChangeEvent)=\"onValueChange($event)\"\n [fitPage]=\"true\"\n [fitPageExtraSpace]=\"80\"\n ></valtimo-editor>\n</ng-container>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div *ngIf=\"{\n model: model$ | async,\n moreDisabled: moreDisabled$ | async,\n template: template$ | async,\n } as obs\"\n class=\"buttons-container\"\n >\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option\n [disabled]=\"obs.moreDisabled || obs.template?.readOnly\"\n type=\"danger\"\n (selected)=\"showDeleteModal()\"\n >{{ 'interface.delete' | translate }}\n </cds-overflow-menu-option\n >\n </cds-overflow-menu>\n\n <button\n [disabled]=\"(saveDisabled$ | async) || obs.template?.readOnly\"\n cdsButton=\"primary\"\n size=\"md\"\n (click)=\"updateTemplate()\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"{templateKey: templateKey$ | async} as obs\">\n <valtimo-text-template-delete-modal\n [deleteRowKeys]=\"[{key: obs.templateKey, type: 'text'}]\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-text-template-delete-modal>\n</ng-container>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center}.overflow-button{margin-right:16px}.buttons-container{display:flex;flex-direction:row}.template-explanation{margin-top:16px;margin-bottom:24px}\n/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: TabsModule }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i4.OverflowMenu, selector: "cds-overflow-menu, ibm-overflow-menu", inputs: ["buttonLabel", "flip", "placement", "open", "customTrigger", "offset", "wrapperClass", "triggerClass"], outputs: ["openChange"] }, { kind: "component", type: i4.OverflowMenuOption, selector: "cds-overflow-menu-option, ibm-overflow-menu-option", inputs: ["divider", "type", "disabled", "href", "target", "innerClass"], outputs: ["selected"] }, { kind: "component", type: TextTemplateDeleteModalComponent, selector: "valtimo-text-template-delete-modal", inputs: ["deleteRowKeys", "showDeleteModal$"], outputs: ["deleteEvent"] }, { kind: "ngmodule", type: CarbonListModule }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i4.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "ngmodule", type: EditorModule }, { kind: "component", type: i3.EditorComponent, selector: "valtimo-editor", inputs: ["editorOptions", "model", "disabled", "formatOnLoad", "widthPx", "heightPx", "heightStyle", "jsonSchema", "fitPage", "fitPageExtraSpace"], outputs: ["validEvent", "valueChangeEvent"] }, { kind: "ngmodule", type: IconModule }, { kind: "directive", type: i4.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "ngmodule", type: RenderInPageHeaderDirectiveModule }, { kind: "directive", type: i3.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
173
|
+
}
|
|
174
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TextTemplateEditorComponent, decorators: [{
|
|
175
|
+
type: Component,
|
|
176
|
+
args: [{ standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [NotificationService], imports: [
|
|
177
|
+
CommonModule,
|
|
178
|
+
TranslateModule,
|
|
179
|
+
TabsModule,
|
|
180
|
+
DialogModule,
|
|
181
|
+
TextTemplateDeleteModalComponent,
|
|
182
|
+
CarbonListModule,
|
|
183
|
+
ButtonModule,
|
|
184
|
+
EditorModule,
|
|
185
|
+
IconModule,
|
|
186
|
+
RenderInPageHeaderDirectiveModule,
|
|
187
|
+
], template: "<!--\n ~ Copyright 2015-2023 Ritense BV, the Netherlands.\n ~\n ~ Licensed under EUPL, Version 1.2 (the \"License\");\n ~ you may not use this file except in compliance with the License.\n ~ You may obtain a copy of the License at\n ~\n ~ https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n ~\n ~ Unless required by applicable law or agreed to in writing, software\n ~ distributed under the License is distributed on an \"AS IS\" basis,\n ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ~ See the License for the specific language governing permissions and\n ~ limitations under the License.\n -->\n\n<ng-container\n *ngIf=\"{\n model: model$ | async,\n updatedModelValue: updatedModelValue$ | async,\n template: template$ | async,\n } as obs\">\n\n <div class=\"template-explanation\">\n Text Templates use <a target=\"_blank\" href=\"https://freemarker.apache.org/docs/dgui_quickstart_basics.html\">FreeMarker</a>\n to create placeholders inside the text. The data-model for FreeMarker is based upon nested <a\n target=\"_blank\" href=\"https://docs.valtimo.nl/features/value-resolvers\">Valtimo value-resolvers</a>\n with a slightly different notation. For example: ${doc.firstName}. Retrieves\n the `firstName` from the case.\n\n Text Templates can be used as value resolvers. For example: ${template.my-text-template} or\n `template:my-text-template`.\n </div>\n\n <valtimo-editor\n [model]=\"obs.model\"\n [disabled]=\"(editorDisabled$ | async) || obs.template?.readOnly\"\n (validEvent)=\"onValid($event)\"\n (valueChangeEvent)=\"onValueChange($event)\"\n [fitPage]=\"true\"\n [fitPageExtraSpace]=\"80\"\n ></valtimo-editor>\n</ng-container>\n\n<ng-container renderInPageHeader>\n <ng-template>\n <div *ngIf=\"{\n model: model$ | async,\n moreDisabled: moreDisabled$ | async,\n template: template$ | async,\n } as obs\"\n class=\"buttons-container\"\n >\n <cds-overflow-menu class=\"overflow-button\">\n <cds-overflow-menu-option\n [disabled]=\"obs.moreDisabled || obs.template?.readOnly\"\n type=\"danger\"\n (selected)=\"showDeleteModal()\"\n >{{ 'interface.delete' | translate }}\n </cds-overflow-menu-option\n >\n </cds-overflow-menu>\n\n <button\n [disabled]=\"(saveDisabled$ | async) || obs.template?.readOnly\"\n cdsButton=\"primary\"\n size=\"md\"\n (click)=\"updateTemplate()\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-container *ngIf=\"{templateKey: templateKey$ | async} as obs\">\n <valtimo-text-template-delete-modal\n [deleteRowKeys]=\"[{key: obs.templateKey, type: 'text'}]\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-text-template-delete-modal>\n</ng-container>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center}.overflow-button{margin-right:16px}.buttons-container{display:flex;flex-direction:row}.template-explanation{margin-top:16px;margin-bottom:24px}\n/*!\n * Copyright 2015-2023 Ritense BV, the Netherlands.\n *\n * Licensed under EUPL, Version 1.2 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" basis,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n"] }]
|
|
188
|
+
}], ctorParameters: () => [{ type: i1.FreemarkerTemplateManagementService }, { type: i2.ActivatedRoute }, { type: i3.PageTitleService }, { type: i2.Router }, { type: i4.NotificationService }, { type: i5.TranslateService }, { type: i3.BreadcrumbService }] });
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC10ZW1wbGF0ZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby1wbHVnaW5zL2ZyZWVtYXJrZXIvc3JjL2xpYi9wbHVnaW5zL3RleHQtdGVtcGxhdGUvY29tcG9uZW50cy90ZXh0LXRlbXBsYXRlLWVkaXRvci90ZXh0LXRlbXBsYXRlLWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vLXBsdWdpbnMvZnJlZW1hcmtlci9zcmMvbGliL3BsdWdpbnMvdGV4dC10ZW1wbGF0ZS9jb21wb25lbnRzL3RleHQtdGVtcGxhdGUtZWRpdG9yL3RleHQtdGVtcGxhdGUtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFnQix1QkFBdUIsRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBQyxlQUFlLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFbkcsT0FBTyxFQUVILGdCQUFnQixFQUVoQixZQUFZLEVBRVosaUNBQWlDLEVBQ3BDLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQ2xILE9BQU8sRUFBQyxlQUFlLEVBQW1CLE1BQU0scUJBQXFCLENBQUM7QUFHdEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxnQ0FBZ0MsRUFBQyxNQUFNLG9FQUFvRSxDQUFDOzs7Ozs7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QUFpQzs7NEZBRzVCLDJCQUEyQjtrQkFuQnZDLFNBQVM7aUNBQ00sSUFBSSxtQkFFQyx1QkFBdUIsQ0FBQyxNQUFNLGFBRXBDLENBQUMsbUJBQW1CLENBQUMsV0FDdkI7d0JBQ0wsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFVBQVU7d0JBQ1YsWUFBWTt3QkFDWixnQ0FBZ0M7d0JBQ2hDLGdCQUFnQjt3QkFDaEIsWUFBWTt3QkFDWixZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsaUNBQWlDO3FCQUNwQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlLCBSb3V0ZXJ9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1xuICAgIEJyZWFkY3J1bWJTZXJ2aWNlLFxuICAgIENhcmJvbkxpc3RNb2R1bGUsXG4gICAgRWRpdG9yTW9kZWwsXG4gICAgRWRpdG9yTW9kdWxlLFxuICAgIFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgUmVuZGVySW5QYWdlSGVhZGVyRGlyZWN0aXZlTW9kdWxlXG59IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGUsIERpYWxvZ01vZHVsZSwgSWNvbk1vZHVsZSwgTm90aWZpY2F0aW9uU2VydmljZSwgVGFic01vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0ZyZWVtYXJrZXJUZW1wbGF0ZU1hbmFnZW1lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge1RlbXBsYXRlUmVzcG9uc2V9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7VGV4dFRlbXBsYXRlRGVsZXRlTW9kYWxDb21wb25lbnR9IGZyb20gJy4uL3RleHQtdGVtcGxhdGUtZGVsZXRlLW1vZGFsL3RleHQtdGVtcGxhdGUtZGVsZXRlLW1vZGFsLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RleHQtdGVtcGxhdGUtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBzdHlsZVVybHM6IFsnLi90ZXh0LXRlbXBsYXRlLWVkaXRvci5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW05vdGlmaWNhdGlvblNlcnZpY2VdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIFRhYnNNb2R1bGUsXG4gICAgICAgIERpYWxvZ01vZHVsZSxcbiAgICAgICAgVGV4dFRlbXBsYXRlRGVsZXRlTW9kYWxDb21wb25lbnQsXG4gICAgICAgIENhcmJvbkxpc3RNb2R1bGUsXG4gICAgICAgIEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgRWRpdG9yTW9kdWxlLFxuICAgICAgICBJY29uTW9kdWxlLFxuICAgICAgICBSZW5kZXJJblBhZ2VIZWFkZXJEaXJlY3RpdmVNb2R1bGUsXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUZXh0VGVtcGxhdGVFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIHJlYWRvbmx5IG1vZGVsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RWRpdG9yTW9kZWwgfCBudWxsPihudWxsKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxUZW1wbGF0ZVJlc3BvbnNlIHwgbnVsbD4obnVsbCk7XG4gICAgcHVibGljIHJlYWRvbmx5IHNhdmVEaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuICAgIHB1YmxpYyByZWFkb25seSBlZGl0b3JEaXNhYmxlZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbW9yZURpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gICAgcHVibGljIHJlYWRvbmx5IHNob3dEZWxldGVNb2RhbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgdXBkYXRlZE1vZGVsVmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5pdGlhbE1vZGVsVmFsdWUkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNWYWxpZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRydWUpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2FzZURlZmluaXRpb25OYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID1cbiAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMucGlwZShcbiAgICAgICAgICAgIG1hcChwYXJhbXMgPT4gcGFyYW1zPy5uYW1lKSxcbiAgICAgICAgICAgIGZpbHRlcihjYXNlRGVmaW5pdGlvbk5hbWUgPT4gISFjYXNlRGVmaW5pdGlvbk5hbWUpXG4gICAgICAgICk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGVLZXkkOiBPYnNlcnZhYmxlPHN0cmluZz4gPVxuICAgICAgICB0aGlzLnJvdXRlLnBhcmFtcy5waXBlKFxuICAgICAgICAgICAgbWFwKHBhcmFtcyA9PiBwYXJhbXM/LmtleSksXG4gICAgICAgICAgICBmaWx0ZXIodGVtcGxhdGVLZXkgPT4gISF0ZW1wbGF0ZUtleSlcbiAgICAgICAgKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlU2VydmljZTogRnJlZW1hcmtlclRlbXBsYXRlTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VUaXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGJyZWFkY3J1bWJTZXJ2aWNlOiBCcmVhZGNydW1iU2VydmljZVxuICAgICkge1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5sb2FkVGVtcGxhdGUoKTtcbiAgICAgICAgdGhpcy5pbml0U2F2ZUJ1dHRvbkxvZ2ljKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0QnJlYWRjcnVtYigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlVGl0bGVTZXJ2aWNlLmVuYWJsZVJlc2V0KCk7XG4gICAgICAgIHRoaXMuYnJlYWRjcnVtYlNlcnZpY2UuY2xlYXJUaGlyZEJyZWFkY3J1bWIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25WYWxpZCh2YWxpZDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsaWQgPT09ICdib29sZWFuJykge1xuICAgICAgICAgICAgdGhpcy5pc1ZhbGlkJC5uZXh0KHZhbGlkKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVkTW9kZWxWYWx1ZSQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVRlbXBsYXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVFZGl0b3IoKTtcbiAgICAgICAgdGhpcy5kaXNhYmxlU2F2ZSgpO1xuICAgICAgICB0aGlzLmRpc2FibGVNb3JlKCk7XG5cbiAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy51cGRhdGVkTW9kZWxWYWx1ZSQsIHRoaXMuX2Nhc2VEZWZpbml0aW9uTmFtZSQsIHRoaXMudGVtcGxhdGVLZXkkXSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoW3VwZGF0ZWRNb2RlbFZhbHVlLCBjYXNlRGVmaW5pdGlvbk5hbWUsIHRlbXBsYXRlS2V5XSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlU2VydmljZS51cGRhdGVUZW1wbGF0ZShcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiB0ZW1wbGF0ZUtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VEZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHVwZGF0ZWRNb2RlbFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogcmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZU1vcmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZVNhdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZUVkaXRvcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1N1Y2Nlc3NNZXNzYWdlKHJlc3VsdC5rZXkpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TW9kZWwocmVzdWx0LmNvbnRlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbE1vZGVsVmFsdWUkLm5leHQocmVzdWx0LmNvbnRlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMudGVtcGxhdGUkLm5leHQocmVzdWx0KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlTW9yZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlU2F2ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlRWRpdG9yKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25EZWxldGUodGVtcGxhdGVzOiBBcnJheTxhbnk+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZUVkaXRvcigpO1xuICAgICAgICB0aGlzLmRpc2FibGVTYXZlKCk7XG4gICAgICAgIHRoaXMuZGlzYWJsZU1vcmUoKTtcblxuICAgICAgICB0aGlzLl9jYXNlRGVmaW5pdGlvbk5hbWUkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGNhc2VEZWZpbml0aW9uTmFtZSA9PlxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZGVsZXRlVGVtcGxhdGVzKHtcbiAgICAgICAgICAgICAgICBjYXNlRGVmaW5pdGlvbk5hbWUsXG4gICAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlc1xuICAgICAgICAgICAgfSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoXyA9PlxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL2Rvc3NpZXItbWFuYWdlbWVudC9kb3NzaWVyLyR7Y2FzZURlZmluaXRpb25OYW1lfWBdKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93RGVsZXRlTW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd0RlbGV0ZU1vZGFsJC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFRlbXBsYXRlKCk6IHZvaWQge1xuICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLl9jYXNlRGVmaW5pdGlvbk5hbWUkLCB0aGlzLnRlbXBsYXRlS2V5JF0pLnBpcGUoXG4gICAgICAgICAgICB0YXAoKFtfLCBrZXldKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlVGl0bGVTZXJ2aWNlLnNldEN1c3RvbVBhZ2VUaXRsZShgVGV4dCBUZW1wbGF0ZTogJHtrZXl9YCwgdHJ1ZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoW2Nhc2VEZWZpbml0aW9uTmFtZSwga2V5XSkgPT4gdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZ2V0VGV4dFRlbXBsYXRlKGNhc2VEZWZpbml0aW9uTmFtZSwga2V5KSksXG4gICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICApLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVNb3JlKCk7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZVNhdmUoKTtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlRWRpdG9yKCk7XG4gICAgICAgICAgICB0aGlzLnNldE1vZGVsKHJlc3VsdC5jb250ZW50KTtcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbE1vZGVsVmFsdWUkLm5leHQocmVzdWx0LmNvbnRlbnQpO1xuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZSQubmV4dChyZXN1bHQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRTYXZlQnV0dG9uTG9naWMoKTogdm9pZCB7XG4gICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMudXBkYXRlZE1vZGVsVmFsdWUkLCB0aGlzLmluaXRpYWxNb2RlbFZhbHVlJCwgdGhpcy5pc1ZhbGlkJF0pLnN1YnNjcmliZShcbiAgICAgICAgICAgIChbdXBkYXRlZFZhbHVlLCBpbml0aWFsVmFsdWUsIGlzVmFsaWRdKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zYXZlRGlzYWJsZWQkLm5leHQoIWlzVmFsaWQgfHwgdXBkYXRlZFZhbHVlID09PSBpbml0aWFsVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TW9kZWwoY29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9kZWwkLm5leHQoe1xuICAgICAgICAgICAgdmFsdWU6IGNvbnRlbnQsXG4gICAgICAgICAgICBsYW5ndWFnZTogJ2ZyZWVtYXJrZXIyJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudXBkYXRlZE1vZGVsVmFsdWUkLm5leHQoY29udGVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNhYmxlTW9yZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3JlRGlzYWJsZWQkLm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbmFibGVNb3JlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vcmVEaXNhYmxlZCQubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNhYmxlU2F2ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zYXZlRGlzYWJsZWQkLm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbmFibGVTYXZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNhdmVEaXNhYmxlZCQubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNhYmxlRWRpdG9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRvckRpc2FibGVkJC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW5hYmxlRWRpdG9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRvckRpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRCcmVhZGNydW1iKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jYXNlRGVmaW5pdGlvbk5hbWUkLnN1YnNjcmliZShjYXNlRGVmaW5pdGlvbk5hbWUgPT4ge1xuICAgICAgICAgICAgdGhpcy5icmVhZGNydW1iU2VydmljZS5zZXRUaGlyZEJyZWFkY3J1bWIoe1xuICAgICAgICAgICAgICAgIHJvdXRlOiBbYC9kb3NzaWVyLW1hbmFnZW1lbnQvZG9zc2llci8ke2Nhc2VEZWZpbml0aW9uTmFtZX1gXSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBjYXNlRGVmaW5pdGlvbk5hbWUsXG4gICAgICAgICAgICAgICAgaHJlZjogYC9kb3NzaWVyLW1hbmFnZW1lbnQvZG9zc2llci8ke2Nhc2VEZWZpbml0aW9uTmFtZX1gLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2hvd1N1Y2Nlc3NNZXNzYWdlKGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5zaG93VG9hc3Qoe1xuICAgICAgICAgICAgY2FwdGlvbjogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoYCR7a2V5fSB3YXMgc2F2ZWQgc3VjY2Vzc2Z1bGx5YCwge1xuICAgICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdHlwZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgICAgZHVyYXRpb246IDQwMDAsXG4gICAgICAgICAgICBzaG93Q2xvc2U6IHRydWUsXG4gICAgICAgICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ1NhdmVkIHN1Y2Nlc3NmdWxseScpLFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8IS0tXG4gIH4gQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gIH5cbiAgfiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAgfiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gIH4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gIH5cbiAgfiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gIH5cbiAgfiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gIH4gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICB+IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICB+IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgfiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAgLS0+XG5cbjxuZy1jb250YWluZXJcbiAgICAgICAgKm5nSWY9XCJ7XG4gICAgbW9kZWw6IG1vZGVsJCB8IGFzeW5jLFxuICAgIHVwZGF0ZWRNb2RlbFZhbHVlOiB1cGRhdGVkTW9kZWxWYWx1ZSQgfCBhc3luYyxcbiAgICB0ZW1wbGF0ZTogdGVtcGxhdGUkIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCI+XG5cbiAgICA8ZGl2IGNsYXNzPVwidGVtcGxhdGUtZXhwbGFuYXRpb25cIj5cbiAgICAgICAgVGV4dCBUZW1wbGF0ZXMgdXNlIDxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL2ZyZWVtYXJrZXIuYXBhY2hlLm9yZy9kb2NzL2RndWlfcXVpY2tzdGFydF9iYXNpY3MuaHRtbFwiPkZyZWVNYXJrZXI8L2E+XG4gICAgICAgIHRvIGNyZWF0ZSBwbGFjZWhvbGRlcnMgaW5zaWRlIHRoZSB0ZXh0LiBUaGUgZGF0YS1tb2RlbCBmb3IgRnJlZU1hcmtlciBpcyBiYXNlZCB1cG9uIG5lc3RlZCA8YVxuICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cImh0dHBzOi8vZG9jcy52YWx0aW1vLm5sL2ZlYXR1cmVzL3ZhbHVlLXJlc29sdmVyc1wiPlZhbHRpbW8gdmFsdWUtcmVzb2x2ZXJzPC9hPlxuICAgICAgICB3aXRoIGEgc2xpZ2h0bHkgZGlmZmVyZW50IG5vdGF0aW9uLiBGb3IgZXhhbXBsZTogJCYjMTIzO2RvYy5maXJzdE5hbWUmIzEyNTsuIFJldHJpZXZlc1xuICAgICAgICB0aGUgYGZpcnN0TmFtZWAgZnJvbSB0aGUgY2FzZS5cblxuICAgICAgICBUZXh0IFRlbXBsYXRlcyBjYW4gYmUgdXNlZCBhcyB2YWx1ZSByZXNvbHZlcnMuIEZvciBleGFtcGxlOiAkJiMxMjM7dGVtcGxhdGUubXktdGV4dC10ZW1wbGF0ZSYjMTI1OyBvclxuICAgICAgICBgdGVtcGxhdGU6bXktdGV4dC10ZW1wbGF0ZWAuXG4gICAgPC9kaXY+XG5cbiAgICA8dmFsdGltby1lZGl0b3JcbiAgICAgICAgICAgIFttb2RlbF09XCJvYnMubW9kZWxcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIihlZGl0b3JEaXNhYmxlZCQgfCBhc3luYykgfHwgb2JzLnRlbXBsYXRlPy5yZWFkT25seVwiXG4gICAgICAgICAgICAodmFsaWRFdmVudCk9XCJvblZhbGlkKCRldmVudClcIlxuICAgICAgICAgICAgKHZhbHVlQ2hhbmdlRXZlbnQpPVwib25WYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFtmaXRQYWdlXT1cInRydWVcIlxuICAgICAgICAgICAgW2ZpdFBhZ2VFeHRyYVNwYWNlXT1cIjgwXCJcbiAgICA+PC92YWx0aW1vLWVkaXRvcj5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyIHJlbmRlckluUGFnZUhlYWRlcj5cbiAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ7XG4gICAgICAgICAgICAgICAgbW9kZWw6IG1vZGVsJCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgIG1vcmVEaXNhYmxlZDogbW9yZURpc2FibGVkJCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSQgfCBhc3luYyxcbiAgICAgICAgICAgICB9IGFzIG9ic1wiXG4gICAgICAgICAgICAgY2xhc3M9XCJidXR0b25zLWNvbnRhaW5lclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxjZHMtb3ZlcmZsb3ctbWVudSBjbGFzcz1cIm92ZXJmbG93LWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxjZHMtb3ZlcmZsb3ctbWVudS1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJvYnMubW9yZURpc2FibGVkIHx8IG9icy50ZW1wbGF0ZT8ucmVhZE9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImRhbmdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoc2VsZWN0ZWQpPVwic2hvd0RlbGV0ZU1vZGFsKClcIlxuICAgICAgICAgICAgICAgID57eyAnaW50ZXJmYWNlLmRlbGV0ZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2Nkcy1vdmVyZmxvdy1tZW51LW9wdGlvblxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvY2RzLW92ZXJmbG93LW1lbnU+XG5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIihzYXZlRGlzYWJsZWQkIHwgYXN5bmMpIHx8IG9icy50ZW1wbGF0ZT8ucmVhZE9ubHlcIlxuICAgICAgICAgICAgICAgICAgICBjZHNCdXR0b249XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgc2l6ZT1cIm1kXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cInVwZGF0ZVRlbXBsYXRlKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7ICdpbnRlcmZhY2Uuc2F2ZScgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJzYXZlXCIgc2l6ZT1cIjE2XCI+PC9zdmc+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwie3RlbXBsYXRlS2V5OiB0ZW1wbGF0ZUtleSQgfCBhc3luY30gYXMgb2JzXCI+XG4gICAgPHZhbHRpbW8tdGV4dC10ZW1wbGF0ZS1kZWxldGUtbW9kYWxcbiAgICAgICAgICAgIFtkZWxldGVSb3dLZXlzXT1cIlt7a2V5OiBvYnMudGVtcGxhdGVLZXksIHR5cGU6ICd0ZXh0J31dXCJcbiAgICAgICAgICAgIFtzaG93RGVsZXRlTW9kYWwkXT1cInNob3dEZWxldGVNb2RhbCRcIlxuICAgICAgICAgICAgKGRlbGV0ZUV2ZW50KT1cIm9uRGVsZXRlKCRldmVudClcIlxuICAgID5cbiAgICA8L3ZhbHRpbW8tdGV4dC10ZW1wbGF0ZS1kZWxldGUtbW9kYWw+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|