@valtimo-plugins/freemarker 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/models/freemarker-template.mjs +17 -0
- package/esm2022/lib/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 +87 -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 +39 -0
- package/esm2022/lib/plugins/mail-template/components/mail-template-editor/mail-template-editor.component.mjs +168 -0
- package/esm2022/lib/plugins/mail-template/components/mail-template-list/mail-template-list.component.mjs +104 -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 +158 -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/services/freemarker-template-management.service.mjs +68 -0
- package/esm2022/lib/services/index.mjs +17 -0
- package/esm2022/public_api.mjs +29 -0
- package/esm2022/valtimo-plugins-freemarker.mjs +5 -0
- package/fesm2022/valtimo-plugins-freemarker.mjs +1047 -0
- package/fesm2022/valtimo-plugins-freemarker.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/models/freemarker-template.d.ts +40 -0
- package/lib/models/index.d.ts +1 -0
- package/lib/plugins/mail-template/assets/index.d.ts +1 -0
- package/lib/plugins/mail-template/assets/mail-template-plugin-logo.d.ts +2 -0
- package/lib/plugins/mail-template/components/generate-mail-content/generate-mail-content.component.d.ts +33 -0
- package/lib/plugins/mail-template/components/generate-mail-file/generate-mail-file.component.d.ts +33 -0
- package/lib/plugins/mail-template/components/mail-template-add-edit-modal/mail-template-add-edit-modal.component.d.ts +29 -0
- package/lib/plugins/mail-template/components/mail-template-configuration/mail-template-configuration.component.d.ts +25 -0
- package/lib/plugins/mail-template/components/mail-template-delete-modal/mail-template-delete-modal.component.d.ts +11 -0
- package/lib/plugins/mail-template/components/mail-template-editor/mail-template-editor.component.d.ts +50 -0
- package/lib/plugins/mail-template/components/mail-template-list/mail-template-list.component.d.ts +32 -0
- package/lib/plugins/mail-template/mail-template-management-routing.module.d.ts +8 -0
- package/lib/plugins/mail-template/mail-template-plugin-module.d.ts +20 -0
- package/lib/plugins/mail-template/mail-template-plugin.specification.d.ts +3 -0
- package/lib/plugins/mail-template/models/config.d.ts +12 -0
- package/lib/plugins/mail-template/models/index.d.ts +1 -0
- package/lib/services/freemarker-template-management.service.d.ts +20 -0
- package/lib/services/index.d.ts +1 -0
- package/package.json +29 -0
- package/public_api.d.ts +10 -0
|
@@ -0,0 +1,39 @@
|
|
|
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 * as i0 from "@angular/core";
|
|
18
|
+
import * as i1 from "@valtimo/components";
|
|
19
|
+
export class MailTemplateDeleteModalComponent {
|
|
20
|
+
constructor() {
|
|
21
|
+
this.deleteEvent = new EventEmitter();
|
|
22
|
+
}
|
|
23
|
+
onDelete(templates) {
|
|
24
|
+
this.deleteEvent.emit(templates);
|
|
25
|
+
}
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MailTemplateDeleteModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MailTemplateDeleteModalComponent, selector: "valtimo-mail-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: "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 }); }
|
|
28
|
+
}
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MailTemplateDeleteModalComponent, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: 'valtimo-mail-template-delete-modal', changeDetection: ChangeDetectionStrategy.OnPush, 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" }]
|
|
32
|
+
}], propDecorators: { deleteRowKeys: [{
|
|
33
|
+
type: Input
|
|
34
|
+
}], showDeleteModal$: [{
|
|
35
|
+
type: Input
|
|
36
|
+
}], deleteEvent: [{
|
|
37
|
+
type: Output
|
|
38
|
+
}] } });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbC10ZW1wbGF0ZS1kZWxldGUtbW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9mcmVlbWFya2VyL3NyYy9saWIvcGx1Z2lucy9tYWlsLXRlbXBsYXRlL2NvbXBvbmVudHMvbWFpbC10ZW1wbGF0ZS1kZWxldGUtbW9kYWwvbWFpbC10ZW1wbGF0ZS1kZWxldGUtbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9mcmVlbWFya2VyL3NyYy9saWIvcGx1Z2lucy9tYWlsLXRlbXBsYXRlL2NvbXBvbmVudHMvbWFpbC10ZW1wbGF0ZS1kZWxldGUtbW9kYWwvbWFpbC10ZW1wbGF0ZS1kZWxldGUtbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFROUYsTUFBTSxPQUFPLGdDQUFnQztJQUw3QztRQVFZLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUM7S0FLM0Q7SUFIUSxRQUFRLENBQUMsU0FBd0I7UUFDdEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbkMsQ0FBQzsrR0FQVSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQyxxTUN4QjdDLHNnQ0F5QkE7OzRGRERhLGdDQUFnQztrQkFMNUMsU0FBUzsrQkFDRSxvQ0FBb0MsbUJBRTdCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLW1haWwtdGVtcGxhdGUtZGVsZXRlLW1vZGFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL21haWwtdGVtcGxhdGUtZGVsZXRlLW1vZGFsLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1haWxUZW1wbGF0ZURlbGV0ZU1vZGFsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgZGVsZXRlUm93S2V5czogQXJyYXk8c3RyaW5nPjtcbiAgQElucHV0KCkgc2hvd0RlbGV0ZU1vZGFsJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgQE91dHB1dCgpIGRlbGV0ZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxBcnJheTxzdHJpbmc+PigpO1xuXG4gIHB1YmxpYyBvbkRlbGV0ZSh0ZW1wbGF0ZXM6IEFycmF5PHN0cmluZz4pOiB2b2lkIHtcbiAgICB0aGlzLmRlbGV0ZUV2ZW50LmVtaXQodGVtcGxhdGVzKTtcbiAgfVxufVxuIiwiPCEtLVxuICB+IENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICB+XG4gIH4gTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gIH4geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICB+IFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICB+XG4gIH4gaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICB+XG4gIH4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICB+IGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAgfiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgfiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gIH4gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gIC0tPlxuXG48dmFsdGltby1jb25maXJtYXRpb24tbW9kYWxcbiAgY29uZmlybUJ1dHRvblRleHRUcmFuc2xhdGlvbktleT1cImludGVyZmFjZS5kZWxldGVcIlxuICBjb25maXJtQnV0dG9uVHlwZT1cImRhbmdlclwiXG4gIGNvbnRlbnRUcmFuc2xhdGlvbktleT1cInRlbXBsYXRlLmRlbGV0ZU1vZGFsQ29udGVudFwiXG4gIFtvdXRwdXRPbkNvbmZpcm1dPVwiZGVsZXRlUm93S2V5c1wiXG4gIFtzaG93TW9kYWxTdWJqZWN0JF09XCJzaG93RGVsZXRlTW9kYWwkXCJcbiAgdGl0bGVUcmFuc2xhdGlvbktleT1cImludGVyZmFjZS5kZWxldGVcIlxuICAoY29uZmlybUV2ZW50KT1cIm9uRGVsZXRlKCRldmVudClcIlxuPjwvdmFsdGltby1jb25maXJtYXRpb24tbW9kYWw+XG4iXX0=
|
|
@@ -0,0 +1,168 @@
|
|
|
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 { NotificationService } from 'carbon-components-angular';
|
|
19
|
+
import * as i0 from "@angular/core";
|
|
20
|
+
import * as i1 from "../../../../services";
|
|
21
|
+
import * as i2 from "@angular/router";
|
|
22
|
+
import * as i3 from "@valtimo/components";
|
|
23
|
+
import * as i4 from "carbon-components-angular";
|
|
24
|
+
import * as i5 from "@ngx-translate/core";
|
|
25
|
+
import * as i6 from "@angular/common";
|
|
26
|
+
import * as i7 from "../mail-template-delete-modal/mail-template-delete-modal.component";
|
|
27
|
+
export class MailTemplateEditorComponent {
|
|
28
|
+
constructor(templateService, route, pageTitleService, router, notificationService, translateService, breadcrumbService) {
|
|
29
|
+
this.templateService = templateService;
|
|
30
|
+
this.route = route;
|
|
31
|
+
this.pageTitleService = pageTitleService;
|
|
32
|
+
this.router = router;
|
|
33
|
+
this.notificationService = notificationService;
|
|
34
|
+
this.translateService = translateService;
|
|
35
|
+
this.breadcrumbService = breadcrumbService;
|
|
36
|
+
this.model$ = new BehaviorSubject(null);
|
|
37
|
+
this.template$ = new BehaviorSubject(null);
|
|
38
|
+
this.saveDisabled$ = new BehaviorSubject(true);
|
|
39
|
+
this.editorDisabled$ = new BehaviorSubject(false);
|
|
40
|
+
this.moreDisabled$ = new BehaviorSubject(true);
|
|
41
|
+
this.showDeleteModal$ = new BehaviorSubject(false);
|
|
42
|
+
this.updatedModelValue$ = new BehaviorSubject('');
|
|
43
|
+
this._caseDefinitionName$ = this.route.params.pipe(map(params => params?.name), filter(caseDefinitionName => !!caseDefinitionName));
|
|
44
|
+
this.templateKey$ = this.route.params.pipe(map(params => params?.key), filter(templateKey => !!templateKey));
|
|
45
|
+
}
|
|
46
|
+
ngOnInit() {
|
|
47
|
+
this.loadTemplate();
|
|
48
|
+
}
|
|
49
|
+
ngAfterViewInit() {
|
|
50
|
+
this.initBreadcrumb();
|
|
51
|
+
}
|
|
52
|
+
ngOnDestroy() {
|
|
53
|
+
this.pageTitleService.enableReset();
|
|
54
|
+
this.breadcrumbService.clearThirdBreadcrumb();
|
|
55
|
+
}
|
|
56
|
+
onValid(valid) {
|
|
57
|
+
this.saveDisabled$.next(valid === false);
|
|
58
|
+
}
|
|
59
|
+
onValueChange(value) {
|
|
60
|
+
this.updatedModelValue$.next(value);
|
|
61
|
+
}
|
|
62
|
+
updateTemplate() {
|
|
63
|
+
this.disableEditor();
|
|
64
|
+
this.disableSave();
|
|
65
|
+
this.disableMore();
|
|
66
|
+
combineLatest([this.updatedModelValue$, this._caseDefinitionName$, this.templateKey$]).pipe(switchMap(([updatedModelValue, caseDefinitionName, templateKey]) => this.templateService.updateTemplate({
|
|
67
|
+
key: templateKey,
|
|
68
|
+
caseDefinitionName,
|
|
69
|
+
type: 'mail',
|
|
70
|
+
content: updatedModelValue,
|
|
71
|
+
})), take(1)).subscribe({
|
|
72
|
+
next: result => {
|
|
73
|
+
this.enableMore();
|
|
74
|
+
this.enableSave();
|
|
75
|
+
this.enableEditor();
|
|
76
|
+
this.showSuccessMessage(result.key);
|
|
77
|
+
this.setModel(result.content);
|
|
78
|
+
this.template$.next(result);
|
|
79
|
+
},
|
|
80
|
+
error: () => {
|
|
81
|
+
this.enableMore();
|
|
82
|
+
this.enableSave();
|
|
83
|
+
this.enableEditor();
|
|
84
|
+
},
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
onDelete(templates) {
|
|
88
|
+
this.disableEditor();
|
|
89
|
+
this.disableSave();
|
|
90
|
+
this.disableMore();
|
|
91
|
+
this._caseDefinitionName$.pipe(take(1)).subscribe(caseDefinitionName => this.templateService.deleteTemplates({ caseDefinitionName, type: 'mail', templates }).pipe(take(1)).subscribe(_ => this.router.navigate([`/dossier-management/dossier/${caseDefinitionName}`])));
|
|
92
|
+
}
|
|
93
|
+
showDeleteModal() {
|
|
94
|
+
this.showDeleteModal$.next(true);
|
|
95
|
+
}
|
|
96
|
+
loadTemplate() {
|
|
97
|
+
combineLatest([this._caseDefinitionName$, this.templateKey$]).pipe(tap(([_, key]) => {
|
|
98
|
+
this.pageTitleService.setCustomPageTitle(`Mail template: ${key}`, true);
|
|
99
|
+
}), switchMap(([caseDefinitionName, key]) => this.templateService.getMailTemplate(caseDefinitionName, key)), take(1)).subscribe(result => {
|
|
100
|
+
this.enableMore();
|
|
101
|
+
this.enableSave();
|
|
102
|
+
this.enableEditor();
|
|
103
|
+
this.setModel(result.content);
|
|
104
|
+
this.refreshViewer(result.content);
|
|
105
|
+
this.template$.next(result);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
setModel(content) {
|
|
109
|
+
this.model$.next({
|
|
110
|
+
value: content,
|
|
111
|
+
language: 'freemarker2',
|
|
112
|
+
});
|
|
113
|
+
this.updatedModelValue$.next(content);
|
|
114
|
+
}
|
|
115
|
+
disableMore() {
|
|
116
|
+
this.moreDisabled$.next(true);
|
|
117
|
+
}
|
|
118
|
+
enableMore() {
|
|
119
|
+
this.moreDisabled$.next(false);
|
|
120
|
+
}
|
|
121
|
+
disableSave() {
|
|
122
|
+
this.saveDisabled$.next(true);
|
|
123
|
+
}
|
|
124
|
+
enableSave() {
|
|
125
|
+
this.saveDisabled$.next(false);
|
|
126
|
+
}
|
|
127
|
+
disableEditor() {
|
|
128
|
+
this.editorDisabled$.next(true);
|
|
129
|
+
}
|
|
130
|
+
enableEditor() {
|
|
131
|
+
this.editorDisabled$.next(false);
|
|
132
|
+
}
|
|
133
|
+
onSelectedTabViewer() {
|
|
134
|
+
this.updatedModelValue$.pipe(take(1)).subscribe(html => this.refreshViewer(html));
|
|
135
|
+
}
|
|
136
|
+
refreshViewer(html) {
|
|
137
|
+
setTimeout(() => {
|
|
138
|
+
document.getElementById('html-viewer-iframe').srcdoc = html;
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
initBreadcrumb() {
|
|
142
|
+
this._caseDefinitionName$.subscribe(caseDefinitionName => {
|
|
143
|
+
this.breadcrumbService.setThirdBreadcrumb({
|
|
144
|
+
route: [`/dossier-management/dossier/${caseDefinitionName}`],
|
|
145
|
+
content: caseDefinitionName,
|
|
146
|
+
href: `/dossier-management/dossier/${caseDefinitionName}`,
|
|
147
|
+
});
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
showSuccessMessage(key) {
|
|
151
|
+
this.notificationService.showToast({
|
|
152
|
+
caption: this.translateService.instant(`${key} was saved successfully`, {
|
|
153
|
+
key,
|
|
154
|
+
}),
|
|
155
|
+
type: 'success',
|
|
156
|
+
duration: 4000,
|
|
157
|
+
showClose: true,
|
|
158
|
+
title: this.translateService.instant('Saved successfully'),
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MailTemplateEditorComponent, 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 }); }
|
|
162
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MailTemplateEditorComponent, 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 Mail templates use <a target=\"_blank\" href=\"https://www.w3schools.com/html/html_intro.asp\">HTML</a> for the mail\n layout. <a target=\"_blank\" href=\"https://freemarker.apache.org/docs/dgui_quickstart_basics.html\">FreeMarker</a>\n can be used to create placeholders inside the HTML. The data-model for FreeMarker is based upon <a\n target=\"_blank\" href=\"https://docs.valtimo.nl/reference/modules/value-resolver\">Valtimo value-resolvers</a>\n with a slightly different notation. For example: ${doc.firstName}. Retrieves\n the `firstName` from the case.\n </div>\n\n <cds-tabs type=\"contained\">\n <cds-tab [active]=\"true\" [heading]=\"'Editor'\">\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 </cds-tab>\n <cds-tab [heading]=\"'Viewer'\" (selected)=\"onSelectedTabViewer()\">\n <iframe title=\"HTML Viewer\" id=\"html-viewer-iframe\">\n </iframe>\n </cds-tab>\n </cds-tabs>\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-mail-template-delete-modal\n [deleteRowKeys]=\"[obs.templateKey]\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-mail-template-delete-modal>\n</ng-container>\n", styles: ["::ng-deep .cds--tab-content{background:var(--cds-layer)!important}::ng-deep #html-viewer-iframe{width:100%;height:calc(100vh - 219px)}.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: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.EditorComponent, selector: "valtimo-editor", inputs: ["editorOptions", "model", "disabled", "formatOnLoad", "widthPx", "heightPx", "heightStyle", "jsonSchema", "fitPage", "fitPageExtraSpace"], outputs: ["validEvent", "valueChangeEvent"] }, { kind: "directive", type: i4.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { 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: "directive", type: i4.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "directive", type: i3.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { kind: "component", type: i4.Tabs, selector: "cds-tabs, ibm-tabs", inputs: ["position", "cacheActive", "followFocus", "isNavigation", "ariaLabel", "ariaLabelledby", "type", "theme", "skeleton"] }, { kind: "component", type: i4.Tab, selector: "cds-tab, ibm-tab", inputs: ["heading", "title", "context", "active", "disabled", "tabIndex", "id", "cacheActive", "tabContent", "templateContext"], outputs: ["selected"] }, { kind: "component", type: i7.MailTemplateDeleteModalComponent, selector: "valtimo-mail-template-delete-modal", inputs: ["deleteRowKeys", "showDeleteModal$"], outputs: ["deleteEvent"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
163
|
+
}
|
|
164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MailTemplateEditorComponent, decorators: [{
|
|
165
|
+
type: Component,
|
|
166
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, providers: [NotificationService], 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 Mail templates use <a target=\"_blank\" href=\"https://www.w3schools.com/html/html_intro.asp\">HTML</a> for the mail\n layout. <a target=\"_blank\" href=\"https://freemarker.apache.org/docs/dgui_quickstart_basics.html\">FreeMarker</a>\n can be used to create placeholders inside the HTML. The data-model for FreeMarker is based upon <a\n target=\"_blank\" href=\"https://docs.valtimo.nl/reference/modules/value-resolver\">Valtimo value-resolvers</a>\n with a slightly different notation. For example: ${doc.firstName}. Retrieves\n the `firstName` from the case.\n </div>\n\n <cds-tabs type=\"contained\">\n <cds-tab [active]=\"true\" [heading]=\"'Editor'\">\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 </cds-tab>\n <cds-tab [heading]=\"'Viewer'\" (selected)=\"onSelectedTabViewer()\">\n <iframe title=\"HTML Viewer\" id=\"html-viewer-iframe\">\n </iframe>\n </cds-tab>\n </cds-tabs>\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-mail-template-delete-modal\n [deleteRowKeys]=\"[obs.templateKey]\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-mail-template-delete-modal>\n</ng-container>\n", styles: ["::ng-deep .cds--tab-content{background:var(--cds-layer)!important}::ng-deep #html-viewer-iframe{width:100%;height:calc(100vh - 219px)}.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"] }]
|
|
167
|
+
}], ctorParameters: () => [{ type: i1.FreemarkerTemplateManagementService }, { type: i2.ActivatedRoute }, { type: i3.PageTitleService }, { type: i2.Router }, { type: i4.NotificationService }, { type: i5.TranslateService }, { type: i3.BreadcrumbService }] });
|
|
168
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbC10ZW1wbGF0ZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9mcmVlbWFya2VyL3NyYy9saWIvcGx1Z2lucy9tYWlsLXRlbXBsYXRlL2NvbXBvbmVudHMvbWFpbC10ZW1wbGF0ZS1lZGl0b3IvbWFpbC10ZW1wbGF0ZS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9mcmVlbWFya2VyL3NyYy9saWIvcGx1Z2lucy9tYWlsLXRlbXBsYXRlL2NvbXBvbmVudHMvbWFpbC10ZW1wbGF0ZS1lZGl0b3IvbWFpbC10ZW1wbGF0ZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQWdCLHVCQUF1QixFQUFFLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFDbkcsT0FBTyxFQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUduRyxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7O0FBVzlELE1BQU0sT0FBTywyQkFBMkI7SUFxQnBDLFlBQ3FCLGVBQW9ELEVBQ3BELEtBQXFCLEVBQ3JCLGdCQUFrQyxFQUNsQyxNQUFjLEVBQ2QsbUJBQXdDLEVBQ3hDLGdCQUFrQyxFQUNsQyxpQkFBb0M7UUFOcEMsb0JBQWUsR0FBZixlQUFlLENBQXFDO1FBQ3BELFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLHdCQUFtQixHQUFuQixtQkFBbUIs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QUFDO1lBQy9CLE9BQU8sRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsR0FBRyx5QkFBeUIsRUFBRTtnQkFDcEUsR0FBRzthQUNOLENBQUM7WUFDRixJQUFJLEVBQUUsU0FBUztZQUNmLFFBQVEsRUFBRSxJQUFJO1lBQ2QsU0FBUyxFQUFFLElBQUk7WUFDZixLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQztTQUM3RCxDQUFDLENBQUM7SUFDUCxDQUFDOytHQXhMUSwyQkFBMkI7bUdBQTNCLDJCQUEyQix1Q0FGekIsQ0FBQyxtQkFBbUIsQ0FBQywwQkM3QnBDLHFySEEyRkE7OzRGRDVEYSwyQkFBMkI7a0JBTnZDLFNBQVM7c0NBRVcsdUJBQXVCLENBQUMsTUFBTSxhQUVwQyxDQUFDLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIHN3aXRjaE1hcCwgdGFrZSwgdGFwfSBmcm9tICdyeGpzJztcbmltcG9ydCB7QWN0aXZhdGVkUm91dGUsIFJvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7QnJlYWRjcnVtYlNlcnZpY2UsIEVkaXRvck1vZGVsLCBQYWdlVGl0bGVTZXJ2aWNlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7Tm90aWZpY2F0aW9uU2VydmljZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtGcmVlbWFya2VyVGVtcGxhdGVNYW5hZ2VtZW50U2VydmljZX0gZnJvbSAnLi4vLi4vLi4vLi4vc2VydmljZXMnO1xuaW1wb3J0IHtUZW1wbGF0ZVJlc3BvbnNlfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICB0ZW1wbGF0ZVVybDogJy4vbWFpbC10ZW1wbGF0ZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHN0eWxlVXJsczogWycuL21haWwtdGVtcGxhdGUtZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbTm90aWZpY2F0aW9uU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIE1haWxUZW1wbGF0ZUVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgbW9kZWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFZGl0b3JNb2RlbCB8IG51bGw+KG51bGwpO1xuICAgIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRlbXBsYXRlUmVzcG9uc2UgfCBudWxsPihudWxsKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2F2ZURpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4odHJ1ZSk7XG4gICAgcHVibGljIHJlYWRvbmx5IGVkaXRvckRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHB1YmxpYyByZWFkb25seSBtb3JlRGlzYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2hvd0RlbGV0ZU1vZGFsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHB1YmxpYyByZWFkb25seSB1cGRhdGVkTW9kZWxWYWx1ZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZz4oJycpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2FzZURlZmluaXRpb25OYW1lJDogT2JzZXJ2YWJsZTxzdHJpbmc+ID1cbiAgICAgICAgdGhpcy5yb3V0ZS5wYXJhbXMucGlwZShcbiAgICAgICAgICAgIG1hcChwYXJhbXMgPT4gcGFyYW1zPy5uYW1lKSxcbiAgICAgICAgICAgIGZpbHRlcihjYXNlRGVmaW5pdGlvbk5hbWUgPT4gISFjYXNlRGVmaW5pdGlvbk5hbWUpXG4gICAgICAgICk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGVLZXkkOiBPYnNlcnZhYmxlPHN0cmluZz4gPVxuICAgICAgICB0aGlzLnJvdXRlLnBhcmFtcy5waXBlKFxuICAgICAgICAgICAgbWFwKHBhcmFtcyA9PiBwYXJhbXM/LmtleSksXG4gICAgICAgICAgICBmaWx0ZXIodGVtcGxhdGVLZXkgPT4gISF0ZW1wbGF0ZUtleSlcbiAgICAgICAgKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlU2VydmljZTogRnJlZW1hcmtlclRlbXBsYXRlTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHBhZ2VUaXRsZVNlcnZpY2U6IFBhZ2VUaXRsZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGJyZWFkY3J1bWJTZXJ2aWNlOiBCcmVhZGNydW1iU2VydmljZSxcbiAgICApIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZFRlbXBsYXRlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbml0QnJlYWRjcnVtYigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5wYWdlVGl0bGVTZXJ2aWNlLmVuYWJsZVJlc2V0KCk7XG4gICAgICAgIHRoaXMuYnJlYWRjcnVtYlNlcnZpY2UuY2xlYXJUaGlyZEJyZWFkY3J1bWIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25WYWxpZCh2YWxpZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLnNhdmVEaXNhYmxlZCQubmV4dCh2YWxpZCA9PT0gZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblZhbHVlQ2hhbmdlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVkTW9kZWxWYWx1ZSQubmV4dCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZVRlbXBsYXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRpc2FibGVFZGl0b3IoKTtcbiAgICAgICAgdGhpcy5kaXNhYmxlU2F2ZSgpO1xuICAgICAgICB0aGlzLmRpc2FibGVNb3JlKCk7XG5cbiAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy51cGRhdGVkTW9kZWxWYWx1ZSQsIHRoaXMuX2Nhc2VEZWZpbml0aW9uTmFtZSQsIHRoaXMudGVtcGxhdGVLZXkkXSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoW3VwZGF0ZWRNb2RlbFZhbHVlLCBjYXNlRGVmaW5pdGlvbk5hbWUsIHRlbXBsYXRlS2V5XSkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnRlbXBsYXRlU2VydmljZS51cGRhdGVUZW1wbGF0ZShcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAga2V5OiB0ZW1wbGF0ZUtleSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2VEZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdtYWlsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6IHVwZGF0ZWRNb2RlbFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRha2UoMSlcbiAgICAgICAgKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgbmV4dDogcmVzdWx0ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZU1vcmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZVNhdmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmVuYWJsZUVkaXRvcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1N1Y2Nlc3NNZXNzYWdlKHJlc3VsdC5rZXkpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0TW9kZWwocmVzdWx0LmNvbnRlbnQpO1xuICAgICAgICAgICAgICAgIHRoaXMudGVtcGxhdGUkLm5leHQocmVzdWx0KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlcnJvcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlTW9yZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlU2F2ZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZW5hYmxlRWRpdG9yKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25EZWxldGUodGVtcGxhdGVzOiBBcnJheTxzdHJpbmc+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZUVkaXRvcigpO1xuICAgICAgICB0aGlzLmRpc2FibGVTYXZlKCk7XG4gICAgICAgIHRoaXMuZGlzYWJsZU1vcmUoKTtcblxuICAgICAgICB0aGlzLl9jYXNlRGVmaW5pdGlvbk5hbWUkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGNhc2VEZWZpbml0aW9uTmFtZSA9PlxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZGVsZXRlVGVtcGxhdGVzKHtjYXNlRGVmaW5pdGlvbk5hbWUsIHR5cGU6ICdtYWlsJywgdGVtcGxhdGVzfSkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoXyA9PlxuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgL2Rvc3NpZXItbWFuYWdlbWVudC9kb3NzaWVyLyR7Y2FzZURlZmluaXRpb25OYW1lfWBdKVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93RGVsZXRlTW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd0RlbGV0ZU1vZGFsJC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZFRlbXBsYXRlKCk6IHZvaWQge1xuICAgICAgICBjb21iaW5lTGF0ZXN0KFt0aGlzLl9jYXNlRGVmaW5pdGlvbk5hbWUkLCB0aGlzLnRlbXBsYXRlS2V5JF0pLnBpcGUoXG4gICAgICAgICAgICB0YXAoKFtfLCBrZXldKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wYWdlVGl0bGVTZXJ2aWNlLnNldEN1c3RvbVBhZ2VUaXRsZShgTWFpbCB0ZW1wbGF0ZTogJHtrZXl9YCwgdHJ1ZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgoW2Nhc2VEZWZpbml0aW9uTmFtZSwga2V5XSkgPT4gdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZ2V0TWFpbFRlbXBsYXRlKGNhc2VEZWZpbml0aW9uTmFtZSwga2V5KSksXG4gICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICApLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVNb3JlKCk7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZVNhdmUoKTtcbiAgICAgICAgICAgIHRoaXMuZW5hYmxlRWRpdG9yKCk7XG4gICAgICAgICAgICB0aGlzLnNldE1vZGVsKHJlc3VsdC5jb250ZW50KTtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaFZpZXdlcihyZXN1bHQuY29udGVudCk7XG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlJC5uZXh0KHJlc3VsdCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TW9kZWwoY29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW9kZWwkLm5leHQoe1xuICAgICAgICAgICAgdmFsdWU6IGNvbnRlbnQsXG4gICAgICAgICAgICBsYW5ndWFnZTogJ2ZyZWVtYXJrZXIyJyxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMudXBkYXRlZE1vZGVsVmFsdWUkLm5leHQoY29udGVudCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNhYmxlTW9yZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tb3JlRGlzYWJsZWQkLm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbmFibGVNb3JlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vcmVEaXNhYmxlZCQubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNhYmxlU2F2ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zYXZlRGlzYWJsZWQkLm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBlbmFibGVTYXZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNhdmVEaXNhYmxlZCQubmV4dChmYWxzZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkaXNhYmxlRWRpdG9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRvckRpc2FibGVkJC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZW5hYmxlRWRpdG9yKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVkaXRvckRpc2FibGVkJC5uZXh0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25TZWxlY3RlZFRhYlZpZXdlcigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVkTW9kZWxWYWx1ZSQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoaHRtbCA9PlxuICAgICAgICAgICAgdGhpcy5yZWZyZXNoVmlld2VyKGh0bWwpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWZyZXNoVmlld2VyKGh0bWw6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaHRtbC12aWV3ZXItaWZyYW1lJykgYXMgSFRNTElGcmFtZUVsZW1lbnQpLnNyY2RvYyA9IGh0bWw7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEJyZWFkY3J1bWIoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Nhc2VEZWZpbml0aW9uTmFtZSQuc3Vic2NyaWJlKGNhc2VEZWZpbml0aW9uTmFtZSA9PiB7XG4gICAgICAgICAgICB0aGlzLmJyZWFkY3J1bWJTZXJ2aWNlLnNldFRoaXJkQnJlYWRjcnVtYih7XG4gICAgICAgICAgICAgICAgcm91dGU6IFtgL2Rvc3NpZXItbWFuYWdlbWVudC9kb3NzaWVyLyR7Y2FzZURlZmluaXRpb25OYW1lfWBdLFxuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGNhc2VEZWZpbml0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICBocmVmOiBgL2Rvc3NpZXItbWFuYWdlbWVudC9kb3NzaWVyLyR7Y2FzZURlZmluaXRpb25OYW1lfWAsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93U3VjY2Vzc01lc3NhZ2Uoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnNob3dUb2FzdCh7XG4gICAgICAgICAgICBjYXB0aW9uOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgJHtrZXl9IHdhcyBzYXZlZCBzdWNjZXNzZnVsbHlgLCB7XG4gICAgICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0eXBlOiAnc3VjY2VzcycsXG4gICAgICAgICAgICBkdXJhdGlvbjogNDAwMCxcbiAgICAgICAgICAgIHNob3dDbG9zZTogdHJ1ZSxcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnU2F2ZWQgc3VjY2Vzc2Z1bGx5JyksXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdJZj1cIntcbiAgICBtb2RlbDogbW9kZWwkIHwgYXN5bmMsXG4gICAgdXBkYXRlZE1vZGVsVmFsdWU6IHVwZGF0ZWRNb2RlbFZhbHVlJCB8IGFzeW5jLFxuICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSQgfCBhc3luYyxcbiAgfSBhcyBvYnNcIj5cblxuICAgIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS1leHBsYW5hdGlvblwiPlxuICAgICAgICBNYWlsIHRlbXBsYXRlcyB1c2UgPGEgdGFyZ2V0PVwiX2JsYW5rXCIgaHJlZj1cImh0dHBzOi8vd3d3Lnczc2Nob29scy5jb20vaHRtbC9odG1sX2ludHJvLmFzcFwiPkhUTUw8L2E+IGZvciB0aGUgbWFpbFxuICAgICAgICBsYXlvdXQuIDxhIHRhcmdldD1cIl9ibGFua1wiIGhyZWY9XCJodHRwczovL2ZyZWVtYXJrZXIuYXBhY2hlLm9yZy9kb2NzL2RndWlfcXVpY2tzdGFydF9iYXNpY3MuaHRtbFwiPkZyZWVNYXJrZXI8L2E+XG4gICAgICAgIGNhbiBiZSB1c2VkIHRvIGNyZWF0ZSBwbGFjZWhvbGRlcnMgaW5zaWRlIHRoZSBIVE1MLiBUaGUgZGF0YS1tb2RlbCBmb3IgRnJlZU1hcmtlciBpcyBiYXNlZCB1cG9uIDxhXG4gICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIiBocmVmPVwiaHR0cHM6Ly9kb2NzLnZhbHRpbW8ubmwvcmVmZXJlbmNlL21vZHVsZXMvdmFsdWUtcmVzb2x2ZXJcIj5WYWx0aW1vIHZhbHVlLXJlc29sdmVyczwvYT5cbiAgICAgICAgd2l0aCBhIHNsaWdodGx5IGRpZmZlcmVudCBub3RhdGlvbi4gRm9yIGV4YW1wbGU6ICQmIzEyMztkb2MuZmlyc3ROYW1lJiMxMjU7LiBSZXRyaWV2ZXNcbiAgICAgICAgdGhlIGBmaXJzdE5hbWVgIGZyb20gdGhlIGNhc2UuXG4gICAgPC9kaXY+XG5cbiAgICA8Y2RzLXRhYnMgdHlwZT1cImNvbnRhaW5lZFwiPlxuICAgICAgICA8Y2RzLXRhYiBbYWN0aXZlXT1cInRydWVcIiBbaGVhZGluZ109XCInRWRpdG9yJ1wiPlxuICAgICAgICAgICAgPHZhbHRpbW8tZWRpdG9yXG4gICAgICAgICAgICAgICAgICAgIFttb2RlbF09XCJvYnMubW9kZWxcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiKGVkaXRvckRpc2FibGVkJCB8IGFzeW5jKSB8fCBvYnMudGVtcGxhdGUucmVhZE9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAodmFsaWRFdmVudCk9XCJvblZhbGlkKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2VFdmVudCk9XCJvblZhbHVlQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICBbZml0UGFnZV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgW2ZpdFBhZ2VFeHRyYVNwYWNlXT1cIjgwXCJcbiAgICAgICAgICAgID48L3ZhbHRpbW8tZWRpdG9yPlxuICAgICAgICA8L2Nkcy10YWI+XG4gICAgICAgIDxjZHMtdGFiIFtoZWFkaW5nXT1cIidWaWV3ZXInXCIgKHNlbGVjdGVkKT1cIm9uU2VsZWN0ZWRUYWJWaWV3ZXIoKVwiPlxuICAgICAgICAgICAgPGlmcmFtZSB0aXRsZT1cIkhUTUwgVmlld2VyXCIgaWQ9XCJodG1sLXZpZXdlci1pZnJhbWVcIj5cbiAgICAgICAgICAgIDwvaWZyYW1lPlxuICAgICAgICA8L2Nkcy10YWI+XG4gICAgPC9jZHMtdGFicz5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyIHJlbmRlckluUGFnZUhlYWRlcj5cbiAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJ7XG4gICAgICAgICAgICAgICAgbW9kZWw6IG1vZGVsJCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgIG1vcmVEaXNhYmxlZDogbW9yZURpc2FibGVkJCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgIHRlbXBsYXRlOiB0ZW1wbGF0ZSQgfCBhc3luYyxcbiAgICAgICAgICAgICB9IGFzIG9ic1wiXG4gICAgICAgICAgICAgY2xhc3M9XCJidXR0b25zLWNvbnRhaW5lclwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxjZHMtb3ZlcmZsb3ctbWVudSBjbGFzcz1cIm92ZXJmbG93LWJ1dHRvblwiPlxuICAgICAgICAgICAgICAgIDxjZHMtb3ZlcmZsb3ctbWVudS1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJvYnMubW9yZURpc2FibGVkIHx8IG9icy50ZW1wbGF0ZS5yZWFkT25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZGFuZ2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZCk9XCJzaG93RGVsZXRlTW9kYWwoKVwiXG4gICAgICAgICAgICAgICAgPnt7ICdpbnRlcmZhY2UuZGVsZXRlJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvY2RzLW92ZXJmbG93LW1lbnUtb3B0aW9uXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9jZHMtb3ZlcmZsb3ctbWVudT5cblxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiKHNhdmVEaXNhYmxlZCQgfCBhc3luYykgfHwgb2JzLnRlbXBsYXRlLnJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJtZFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGRhdGVUZW1wbGF0ZSgpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyAnaW50ZXJmYWNlLnNhdmUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwic2F2ZVwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInt0ZW1wbGF0ZUtleTogdGVtcGxhdGVLZXkkIHwgYXN5bmN9IGFzIG9ic1wiPlxuICAgIDx2YWx0aW1vLW1haWwtdGVtcGxhdGUtZGVsZXRlLW1vZGFsXG4gICAgICAgICAgICBbZGVsZXRlUm93S2V5c109XCJbb2JzLnRlbXBsYXRlS2V5XVwiXG4gICAgICAgICAgICBbc2hvd0RlbGV0ZU1vZGFsJF09XCJzaG93RGVsZXRlTW9kYWwkXCJcbiAgICAgICAgICAgIChkZWxldGVFdmVudCk9XCJvbkRlbGV0ZSgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC92YWx0aW1vLW1haWwtdGVtcGxhdGUtZGVsZXRlLW1vZGFsPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2015-2024 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, ViewChild, } from '@angular/core';
|
|
17
|
+
import { BehaviorSubject, filter, map, switchMap, take } from 'rxjs';
|
|
18
|
+
import { CarbonListComponent, ViewType } from '@valtimo/components';
|
|
19
|
+
import * as i0 from "@angular/core";
|
|
20
|
+
import * as i1 from "../../../../services";
|
|
21
|
+
import * as i2 from "@angular/router";
|
|
22
|
+
import * as i3 from "@angular/common";
|
|
23
|
+
import * as i4 from "@valtimo/components";
|
|
24
|
+
import * as i5 from "carbon-components-angular";
|
|
25
|
+
import * as i6 from "../mail-template-add-edit-modal/mail-template-add-edit-modal.component";
|
|
26
|
+
import * as i7 from "../mail-template-delete-modal/mail-template-delete-modal.component";
|
|
27
|
+
import * as i8 from "@ngx-translate/core";
|
|
28
|
+
export class MailTemplateListComponent {
|
|
29
|
+
constructor(templateService, router, route) {
|
|
30
|
+
this.templateService = templateService;
|
|
31
|
+
this.router = router;
|
|
32
|
+
this.route = route;
|
|
33
|
+
this.fields = [
|
|
34
|
+
{
|
|
35
|
+
viewType: ViewType.TEXT,
|
|
36
|
+
key: 'key',
|
|
37
|
+
label: 'Key',
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
viewType: ViewType.BOOLEAN,
|
|
41
|
+
key: 'readOnly',
|
|
42
|
+
label: 'Read only',
|
|
43
|
+
},
|
|
44
|
+
];
|
|
45
|
+
this._caseDefinitionName$ = this.route.params.pipe(map(params => params?.name), filter(caseDefinitionName => !!caseDefinitionName));
|
|
46
|
+
this.templates$ = new BehaviorSubject(null);
|
|
47
|
+
this.showAddModal$ = new BehaviorSubject(false);
|
|
48
|
+
this.showDeleteModal$ = new BehaviorSubject(false);
|
|
49
|
+
this.selectedRowKeys$ = new BehaviorSubject([]);
|
|
50
|
+
this.loading$ = new BehaviorSubject(true);
|
|
51
|
+
}
|
|
52
|
+
ngOnInit() {
|
|
53
|
+
this.reloadTemplateList();
|
|
54
|
+
}
|
|
55
|
+
openAddModal() {
|
|
56
|
+
this.showAddModal$.next(true);
|
|
57
|
+
}
|
|
58
|
+
onAdd(data) {
|
|
59
|
+
if (!data) {
|
|
60
|
+
this.showAddModal$.next(false);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
this._caseDefinitionName$.pipe(take(1), switchMap(caseDefinitionName => this.templateService.addTemplate({ caseDefinitionName, type: 'mail', ...data }))).subscribe(template => {
|
|
64
|
+
this.showAddModal$.next(false);
|
|
65
|
+
this.gotoMailTemplateEditor(template.caseDefinitionName, template.key);
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
showDeleteModal() {
|
|
69
|
+
this.setSelectedTemplateKeys();
|
|
70
|
+
this.showDeleteModal$.next(true);
|
|
71
|
+
}
|
|
72
|
+
onDelete(templates) {
|
|
73
|
+
this.loading$.next(true);
|
|
74
|
+
this._caseDefinitionName$.pipe(take(1), switchMap(caseDefinitionName => this.templateService.deleteTemplates({ caseDefinitionName, type: 'mail', templates }))).subscribe(_ => {
|
|
75
|
+
this.reloadTemplateList();
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
onRowClick(template) {
|
|
79
|
+
this._caseDefinitionName$.pipe(take(1)).subscribe(caseDefinitionName => this.gotoMailTemplateEditor(caseDefinitionName, template.key));
|
|
80
|
+
}
|
|
81
|
+
gotoMailTemplateEditor(caseDefinitionName, key) {
|
|
82
|
+
this.router.navigate([`/dossier-management/dossier/${caseDefinitionName}/mail-template/${key}`]);
|
|
83
|
+
}
|
|
84
|
+
reloadTemplateList() {
|
|
85
|
+
this.loading$.next(true);
|
|
86
|
+
this._caseDefinitionName$.pipe(switchMap(caseDefinitionName => this.templateService.getAllMailTemplates(caseDefinitionName)), map(templatePage => templatePage.content), take(1)).subscribe(templateListItems => {
|
|
87
|
+
this.templates$.next(templateListItems);
|
|
88
|
+
this.loading$.next(false);
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
setSelectedTemplateKeys() {
|
|
92
|
+
this.selectedRowKeys$.next(this.carbonList.selectedItems.map((template) => template.key));
|
|
93
|
+
}
|
|
94
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MailTemplateListComponent, deps: [{ token: i1.FreemarkerTemplateManagementService }, { token: i2.Router }, { token: i2.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
95
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: MailTemplateListComponent, selector: "ng-component", viewQueries: [{ propertyName: "carbonList", first: true, predicate: CarbonListComponent, descendants: true }], 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-carbon-list\n [header]=\"false\"\n [items]=\"templates$ | async\"\n [fields]=\"fields\"\n [loading]=\"loading$ | async\"\n [showSelectionColumn]=\"true\"\n (rowClicked)=\"onRowClick($event)\"\n>\n <ng-container header> {{ 'Title' }} </ng-container>\n\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addTemplateButton\"></ng-container>\n </div>\n\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showDeleteModal()\">\n {{ 'interface.delete' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addTemplateButton\"\n description=\"{{ 'Come back later.' }}\"\n title=\"{{ 'No templates found' }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-mail-template-add-edit-modal\n [open]=\"showAddModal$ | async\"\n (closeEvent)=\"onAdd($event)\"\n></valtimo-mail-template-add-edit-modal>\n\n<ng-container *ngIf=\"{selectedRowKeys: selectedRowKeys$ | async} as obs\">\n <valtimo-mail-template-delete-modal\n [deleteRowKeys]=\"obs.selectedRowKeys\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-mail-template-delete-modal>\n</ng-container>\n\n<ng-template #addTemplateButton>\n <button cdsButton=\"primary\" (click)=\"openAddModal()\">\n {{ 'Add' }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.CarbonListComponent, selector: "valtimo-carbon-list", inputs: ["items", "fields", "tableTranslations", "paginatorConfig", "pagination", "loading", "actions", "actionItems", "header", "hideColumnHeader", "initialSortState", "sortState", "isSearchable", "enableSingleSelection", "lastColumnTemplate", "paginationIdentifier", "showSelectionColumn", "striped", "hideToolbar", "lockedTooltipTranslationKey", "movingRowsEnabled", "dragAndDrop", "dragAndDropDisabled"], outputs: ["rowClicked", "paginationClicked", "paginationSet", "search", "sortChanged", "moveRow", "itemsReordered"] }, { kind: "component", type: i4.CarbonNoResultsComponent, selector: "valtimo-no-results", inputs: ["action", "description", "illustration", "title", "smallPadding", "collapseVertically", "alwaysRenderVertically"] }, { kind: "directive", type: i5.Button, selector: "[cdsButton], [ibmButton]", inputs: ["ibmButton", "cdsButton", "size", "skeleton", "iconOnly", "isExpressive"] }, { kind: "directive", type: i5.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i6.MailTemplateAddEditModalComponent, selector: "valtimo-mail-template-add-edit-modal", inputs: ["open", "type", "defaultKeyValue"], outputs: ["closeEvent"] }, { kind: "component", type: i7.MailTemplateDeleteModalComponent, selector: "valtimo-mail-template-delete-modal", inputs: ["deleteRowKeys", "showDeleteModal$"], outputs: ["deleteEvent"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
96
|
+
}
|
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: MailTemplateListComponent, decorators: [{
|
|
98
|
+
type: Component,
|
|
99
|
+
args: [{ changeDetection: ChangeDetectionStrategy.OnPush, 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-carbon-list\n [header]=\"false\"\n [items]=\"templates$ | async\"\n [fields]=\"fields\"\n [loading]=\"loading$ | async\"\n [showSelectionColumn]=\"true\"\n (rowClicked)=\"onRowClick($event)\"\n>\n <ng-container header> {{ 'Title' }} </ng-container>\n\n <div carbonToolbarContent>\n <ng-container [ngTemplateOutlet]=\"addTemplateButton\"></ng-container>\n </div>\n\n <ng-container carbonToolbarActions>\n <button cdsButton=\"primary\" (click)=\"showDeleteModal()\">\n {{ 'interface.delete' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"trash-can\" size=\"16\"></svg>\n </button>\n </ng-container>\n\n <valtimo-no-results\n [action]=\"addTemplateButton\"\n description=\"{{ 'Come back later.' }}\"\n title=\"{{ 'No templates found' }}\"\n ></valtimo-no-results>\n</valtimo-carbon-list>\n\n<valtimo-mail-template-add-edit-modal\n [open]=\"showAddModal$ | async\"\n (closeEvent)=\"onAdd($event)\"\n></valtimo-mail-template-add-edit-modal>\n\n<ng-container *ngIf=\"{selectedRowKeys: selectedRowKeys$ | async} as obs\">\n <valtimo-mail-template-delete-modal\n [deleteRowKeys]=\"obs.selectedRowKeys\"\n [showDeleteModal$]=\"showDeleteModal$\"\n (deleteEvent)=\"onDelete($event)\"\n >\n </valtimo-mail-template-delete-modal>\n</ng-container>\n\n<ng-template #addTemplateButton>\n <button cdsButton=\"primary\" (click)=\"openAddModal()\">\n {{ 'Add' }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"add\" size=\"16\"></svg>\n </button>\n</ng-template>\n" }]
|
|
100
|
+
}], ctorParameters: () => [{ type: i1.FreemarkerTemplateManagementService }, { type: i2.Router }, { type: i2.ActivatedRoute }], propDecorators: { carbonList: [{
|
|
101
|
+
type: ViewChild,
|
|
102
|
+
args: [CarbonListComponent]
|
|
103
|
+
}] } });
|
|
104
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbC10ZW1wbGF0ZS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vZnJlZW1hcmtlci9zcmMvbGliL3BsdWdpbnMvbWFpbC10ZW1wbGF0ZS9jb21wb25lbnRzL21haWwtdGVtcGxhdGUtbGlzdC9tYWlsLXRlbXBsYXRlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9mcmVlbWFya2VyL3NyYy9saWIvcGx1Z2lucy9tYWlsLXRlbXBsYXRlL2NvbXBvbmVudHMvbWFpbC10ZW1wbGF0ZS1saXN0L21haWwtdGVtcGxhdGUtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsU0FBUyxHQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBQyxlQUFlLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsSUFBSSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRS9FLE9BQU8sRUFBQyxtQkFBbUIsRUFBZ0IsUUFBUSxFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7Ozs7QUFRaEYsTUFBTSxPQUFPLHlCQUF5QjtJQTJCbEMsWUFDcUIsZUFBb0QsRUFDcEQsTUFBYyxFQUNkLEtBQXFCO1FBRnJCLG9CQUFlLEdBQWYsZUFBZSxDQUFxQztRQUNwRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUEzQm5DLFdBQU0sR0FBbUI7WUFDNUI7Z0JBQ0ksUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJO2dCQUN2QixHQUFHLEVBQUUsS0FBSztnQkFDVixLQUFLLEVBQUUsS0FBSzthQUNmO1lBQ0Q7Z0JBQ0ksUUFBUSxF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LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdDaGlsZCx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIGZpbHRlciwgbWFwLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAsIHRha2V9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtDYXJib25MaXN0Q29tcG9uZW50LCBDb2x1bW5Db25maWcsIFZpZXdUeXBlfSBmcm9tICdAdmFsdGltby9jb21wb25lbnRzJztcbmltcG9ydCB7RnJlZW1hcmtlclRlbXBsYXRlTWFuYWdlbWVudFNlcnZpY2V9IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7VGVtcGxhdGVMaXN0SXRlbX0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgdGVtcGxhdGVVcmw6ICcuL21haWwtdGVtcGxhdGUtbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE1haWxUZW1wbGF0ZUxpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBWaWV3Q2hpbGQoQ2FyYm9uTGlzdENvbXBvbmVudCkgY2FyYm9uTGlzdDogQ2FyYm9uTGlzdENvbXBvbmVudDtcblxuICAgIHB1YmxpYyBmaWVsZHM6IENvbHVtbkNvbmZpZ1tdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICB2aWV3VHlwZTogVmlld1R5cGUuVEVYVCxcbiAgICAgICAgICAgIGtleTogJ2tleScsXG4gICAgICAgICAgICBsYWJlbDogJ0tleScsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHZpZXdUeXBlOiBWaWV3VHlwZS5CT09MRUFOLFxuICAgICAgICAgICAga2V5OiAncmVhZE9ubHknLFxuICAgICAgICAgICAgbGFiZWw6ICdSZWFkIG9ubHknLFxuICAgICAgICB9LFxuICAgIF07XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9jYXNlRGVmaW5pdGlvbk5hbWUkOiBPYnNlcnZhYmxlPHN0cmluZz4gPSB0aGlzLnJvdXRlLnBhcmFtcy5waXBlKFxuICAgICAgICBtYXAocGFyYW1zID0+IHBhcmFtcz8ubmFtZSksXG4gICAgICAgIGZpbHRlcihjYXNlRGVmaW5pdGlvbk5hbWUgPT4gISFjYXNlRGVmaW5pdGlvbk5hbWUpLFxuICAgICk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGVzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VGVtcGxhdGVMaXN0SXRlbVtdIHwgbnVsbD4obnVsbCk7XG4gICAgcHVibGljIHJlYWRvbmx5IHNob3dBZGRNb2RhbCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgc2hvd0RlbGV0ZU1vZGFsJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZFJvd0tleXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxBcnJheTxzdHJpbmc+PihbXSk7XG4gICAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHRlbXBsYXRlU2VydmljZTogRnJlZW1hcmtlclRlbXBsYXRlTWFuYWdlbWVudFNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyOiBSb3V0ZXIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICAgKSB7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlbG9hZFRlbXBsYXRlTGlzdCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuQWRkTW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2hvd0FkZE1vZGFsJC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvbkFkZChkYXRhPzogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICghZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5zaG93QWRkTW9kYWwkLm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY2FzZURlZmluaXRpb25OYW1lJC5waXBlKFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcChjYXNlRGVmaW5pdGlvbk5hbWUgPT4gdGhpcy50ZW1wbGF0ZVNlcnZpY2UuYWRkVGVtcGxhdGUoe2Nhc2VEZWZpbml0aW9uTmFtZSwgdHlwZTogJ21haWwnLCAuLi5kYXRhfSkpXG4gICAgICAgICkuc3Vic2NyaWJlKHRlbXBsYXRlID0+IHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0FkZE1vZGFsJC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgIHRoaXMuZ290b01haWxUZW1wbGF0ZUVkaXRvcih0ZW1wbGF0ZS5jYXNlRGVmaW5pdGlvbk5hbWUsIHRlbXBsYXRlLmtleSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzaG93RGVsZXRlTW9kYWwoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0U2VsZWN0ZWRUZW1wbGF0ZUtleXMoKTtcbiAgICAgICAgdGhpcy5zaG93RGVsZXRlTW9kYWwkLm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIG9uRGVsZXRlKHRlbXBsYXRlczogQXJyYXk8c3RyaW5nPik6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRpbmckLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuX2Nhc2VEZWZpbml0aW9uTmFtZSQucGlwZShcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBzd2l0Y2hNYXAoY2FzZURlZmluaXRpb25OYW1lID0+IHRoaXMudGVtcGxhdGVTZXJ2aWNlLmRlbGV0ZVRlbXBsYXRlcyh7Y2FzZURlZmluaXRpb25OYW1lLCB0eXBlOiAnbWFpbCcsIHRlbXBsYXRlc30pKSxcbiAgICAgICAgKS5zdWJzY3JpYmUoXyA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbG9hZFRlbXBsYXRlTGlzdCgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgb25Sb3dDbGljayh0ZW1wbGF0ZTogVGVtcGxhdGVMaXN0SXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jYXNlRGVmaW5pdGlvbk5hbWUkLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGNhc2VEZWZpbml0aW9uTmFtZSA9PlxuICAgICAgICAgICAgdGhpcy5nb3RvTWFpbFRlbXBsYXRlRWRpdG9yKGNhc2VEZWZpbml0aW9uTmFtZSwgdGVtcGxhdGUua2V5KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ290b01haWxUZW1wbGF0ZUVkaXRvcihjYXNlRGVmaW5pdGlvbk5hbWU6IHN0cmluZywga2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2AvZG9zc2llci1tYW5hZ2VtZW50L2Rvc3NpZXIvJHtjYXNlRGVmaW5pdGlvbk5hbWV9L21haWwtdGVtcGxhdGUvJHtrZXl9YF0pXG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZWxvYWRUZW1wbGF0ZUxpc3QoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9hZGluZyQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5fY2FzZURlZmluaXRpb25OYW1lJC5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKGNhc2VEZWZpbml0aW9uTmFtZSA9PiB0aGlzLnRlbXBsYXRlU2VydmljZS5nZXRBbGxNYWlsVGVtcGxhdGVzKGNhc2VEZWZpbml0aW9uTmFtZSkpLFxuICAgICAgICAgICAgbWFwKHRlbXBsYXRlUGFnZSA9PiB0ZW1wbGF0ZVBhZ2UuY29udGVudCksXG4gICAgICAgICAgICB0YWtlKDEpXG4gICAgICAgICkuc3Vic2NyaWJlKHRlbXBsYXRlTGlzdEl0ZW1zID0+IHtcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVzJC5uZXh0KHRlbXBsYXRlTGlzdEl0ZW1zKTtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyQubmV4dChmYWxzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0U2VsZWN0ZWRUZW1wbGF0ZUtleXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRSb3dLZXlzJC5uZXh0KHRoaXMuY2FyYm9uTGlzdC5zZWxlY3RlZEl0ZW1zLm1hcCgodGVtcGxhdGU6IFRlbXBsYXRlTGlzdEl0ZW0pID0+IHRlbXBsYXRlLmtleSkpO1xuICAgIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHZhbHRpbW8tY2FyYm9uLWxpc3RcbiAgICAgICAgW2hlYWRlcl09XCJmYWxzZVwiXG4gICAgICAgIFtpdGVtc109XCJ0ZW1wbGF0ZXMkIHwgYXN5bmNcIlxuICAgICAgICBbZmllbGRzXT1cImZpZWxkc1wiXG4gICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmckIHwgYXN5bmNcIlxuICAgICAgICBbc2hvd1NlbGVjdGlvbkNvbHVtbl09XCJ0cnVlXCJcbiAgICAgICAgKHJvd0NsaWNrZWQpPVwib25Sb3dDbGljaygkZXZlbnQpXCJcbj5cbiAgICA8bmctY29udGFpbmVyIGhlYWRlcj4ge3sgJ1RpdGxlJyB9fSA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgY2FyYm9uVG9vbGJhckNvbnRlbnQ+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiYWRkVGVtcGxhdGVCdXR0b25cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cblxuICAgIDxuZy1jb250YWluZXIgY2FyYm9uVG9vbGJhckFjdGlvbnM+XG4gICAgICAgIDxidXR0b24gY2RzQnV0dG9uPVwicHJpbWFyeVwiIChjbGljayk9XCJzaG93RGVsZXRlTW9kYWwoKVwiPlxuICAgICAgICAgICAge3sgJ2ludGVyZmFjZS5kZWxldGUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJ0cmFzaC1jYW5cIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8dmFsdGltby1uby1yZXN1bHRzXG4gICAgICAgICAgICBbYWN0aW9uXT1cImFkZFRlbXBsYXRlQnV0dG9uXCJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uPVwie3sgJ0NvbWUgYmFjayBsYXRlci4nIH19XCJcbiAgICAgICAgICAgIHRpdGxlPVwie3sgJ05vIHRlbXBsYXRlcyBmb3VuZCcgfX1cIlxuICAgID48L3ZhbHRpbW8tbm8tcmVzdWx0cz5cbjwvdmFsdGltby1jYXJib24tbGlzdD5cblxuPHZhbHRpbW8tbWFpbC10ZW1wbGF0ZS1hZGQtZWRpdC1tb2RhbFxuICAgICAgICBbb3Blbl09XCJzaG93QWRkTW9kYWwkIHwgYXN5bmNcIlxuICAgICAgICAoY2xvc2VFdmVudCk9XCJvbkFkZCgkZXZlbnQpXCJcbj48L3ZhbHRpbW8tbWFpbC10ZW1wbGF0ZS1hZGQtZWRpdC1tb2RhbD5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIntzZWxlY3RlZFJvd0tleXM6IHNlbGVjdGVkUm93S2V5cyQgfCBhc3luY30gYXMgb2JzXCI+XG4gICAgPHZhbHRpbW8tbWFpbC10ZW1wbGF0ZS1kZWxldGUtbW9kYWxcbiAgICAgICAgICAgIFtkZWxldGVSb3dLZXlzXT1cIm9icy5zZWxlY3RlZFJvd0tleXNcIlxuICAgICAgICAgICAgW3Nob3dEZWxldGVNb2RhbCRdPVwic2hvd0RlbGV0ZU1vZGFsJFwiXG4gICAgICAgICAgICAoZGVsZXRlRXZlbnQpPVwib25EZWxldGUoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvdmFsdGltby1tYWlsLXRlbXBsYXRlLWRlbGV0ZS1tb2RhbD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2FkZFRlbXBsYXRlQnV0dG9uPlxuICAgIDxidXR0b24gY2RzQnV0dG9uPVwicHJpbWFyeVwiIChjbGljayk9XCJvcGVuQWRkTW9kYWwoKVwiPlxuICAgICAgICB7eyAnQWRkJyB9fVxuXG4gICAgICAgIDxzdmcgY2xhc3M9XCJjZHMtLWJ0bl9faWNvblwiIGNkc0ljb249XCJhZGRcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgICA8L2J1dHRvbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -0,0 +1,48 @@
|
|
|
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 { CommonModule } from '@angular/common';
|
|
17
|
+
import { NgModule } from '@angular/core';
|
|
18
|
+
import { RouterModule } from '@angular/router';
|
|
19
|
+
import { ROLE_ADMIN } from '@valtimo/config';
|
|
20
|
+
import { AuthGuardService } from '@valtimo/security';
|
|
21
|
+
import { MailTemplateEditorComponent } from './components/mail-template-editor/mail-template-editor.component';
|
|
22
|
+
import * as i0 from "@angular/core";
|
|
23
|
+
import * as i1 from "@angular/router";
|
|
24
|
+
const routes = [
|
|
25
|
+
{
|
|
26
|
+
path: 'dossier-management/dossier/:name/mail-template/:key',
|
|
27
|
+
component: MailTemplateEditorComponent,
|
|
28
|
+
canActivate: [AuthGuardService],
|
|
29
|
+
data: {
|
|
30
|
+
title: 'Mail Template Editor',
|
|
31
|
+
templates: [ROLE_ADMIN],
|
|
32
|
+
customPageTitle: true,
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
export class TemplateManagementRoutingModule {
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TemplateManagementRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
38
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.12", ngImport: i0, type: TemplateManagementRoutingModule, imports: [CommonModule, i1.RouterModule], exports: [RouterModule] }); }
|
|
39
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TemplateManagementRoutingModule, imports: [CommonModule, RouterModule.forChild(routes), RouterModule] }); }
|
|
40
|
+
}
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TemplateManagementRoutingModule, decorators: [{
|
|
42
|
+
type: NgModule,
|
|
43
|
+
args: [{
|
|
44
|
+
imports: [CommonModule, RouterModule.forChild(routes)],
|
|
45
|
+
exports: [RouterModule],
|
|
46
|
+
}]
|
|
47
|
+
}] });
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbC10ZW1wbGF0ZS1tYW5hZ2VtZW50LXJvdXRpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmFsdGltby9mcmVlbWFya2VyL3NyYy9saWIvcGx1Z2lucy9tYWlsLXRlbXBsYXRlL21haWwtdGVtcGxhdGUtbWFuYWdlbWVudC1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQVMsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0VBQWtFLENBQUM7OztBQUU3RyxNQUFNLE1BQU0sR0FBVztJQUNyQjtRQUNFLElBQUksRUFBRSxxREFBcUQ7UUFDM0QsU0FBUyxFQUFFLDJCQUEyQjtRQUN0QyxXQUFXLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztRQUMvQixJQUFJLEVBQUU7WUFDSixLQUFLLEVBQUUsc0JBQXNCO1lBQzdCLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQztZQUN2QixlQUFlLEVBQUUsSUFBSTtTQUN0QjtLQUNGO0NBQ0YsQ0FBQztBQU1GLE1BQU0sT0FBTywrQkFBK0I7K0dBQS9CLCtCQUErQjtnSEFBL0IsK0JBQStCLFlBSGhDLFlBQVksOEJBQ1osWUFBWTtnSEFFWCwrQkFBK0IsWUFIaEMsWUFBWSxFQUFFLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzNDLFlBQVk7OzRGQUVYLCtCQUErQjtrQkFKM0MsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDdEQsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Uk9MRV9BRE1JTn0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7QXV0aEd1YXJkU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vc2VjdXJpdHknO1xuaW1wb3J0IHtNYWlsVGVtcGxhdGVFZGl0b3JDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy9tYWlsLXRlbXBsYXRlLWVkaXRvci9tYWlsLXRlbXBsYXRlLWVkaXRvci5jb21wb25lbnQnO1xuXG5jb25zdCByb3V0ZXM6IFJvdXRlcyA9IFtcbiAge1xuICAgIHBhdGg6ICdkb3NzaWVyLW1hbmFnZW1lbnQvZG9zc2llci86bmFtZS9tYWlsLXRlbXBsYXRlLzprZXknLFxuICAgIGNvbXBvbmVudDogTWFpbFRlbXBsYXRlRWRpdG9yQ29tcG9uZW50LFxuICAgIGNhbkFjdGl2YXRlOiBbQXV0aEd1YXJkU2VydmljZV0sXG4gICAgZGF0YToge1xuICAgICAgdGl0bGU6ICdNYWlsIFRlbXBsYXRlIEVkaXRvcicsXG4gICAgICB0ZW1wbGF0ZXM6IFtST0xFX0FETUlOXSxcbiAgICAgIGN1c3RvbVBhZ2VUaXRsZTogdHJ1ZSxcbiAgICB9LFxuICB9LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLmZvckNoaWxkKHJvdXRlcyldLFxuICBleHBvcnRzOiBbUm91dGVyTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVNYW5hZ2VtZW50Um91dGluZ01vZHVsZSB7fVxuIl19
|