@valtimo/layout 11.3.2 → 12.1.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.
Files changed (44) hide show
  1. package/assets/css/app.css +1 -1
  2. package/assets/img/emptystate-empty.svg +261 -0
  3. package/assets/img/emptystate-error.svg +245 -0
  4. package/assets/img/emptystate-error404.svg +146 -0
  5. package/assets/img/emptystate-no-result.svg +327 -0
  6. package/assets/img/emptystate-not-authorised.svg +279 -0
  7. package/assets/img/emptystate-success.svg +118 -0
  8. package/assets/img/no-dashboards.svg +156 -0
  9. package/assets/img/no-widgets.svg +214 -0
  10. package/assets/img/valtimo/favicons/browserconfig.xml +1 -1
  11. package/assets/img/widget-management/style/default.svg +26 -0
  12. package/assets/img/widget-management/style/high-contrast.svg +26 -0
  13. package/assets/img/widget-management/types/angular.svg +66 -0
  14. package/assets/img/widget-management/types/collection.svg +1 -0
  15. package/assets/img/widget-management/types/fields.svg +26 -0
  16. package/assets/img/widget-management/types/formio.svg +55 -0
  17. package/assets/img/widget-management/types/table.svg +119 -0
  18. package/assets/img/widget-management/width/full-width.svg +44 -0
  19. package/assets/img/widget-management/width/half.svg +26 -0
  20. package/assets/img/widget-management/width/quarter.svg +17 -0
  21. package/assets/img/widget-management/width/three-quarters.svg +35 -0
  22. package/assets/js/app.js +1 -1
  23. package/esm2022/lib/components/layout/layout.component.mjs +7 -7
  24. package/esm2022/lib/components/layout-internal/layout-internal.component.mjs +7 -7
  25. package/esm2022/lib/components/layout-public/layout-public.component.mjs +7 -9
  26. package/esm2022/lib/components/translation-management/translation-management.component.mjs +185 -0
  27. package/esm2022/lib/layout.module.mjs +6 -6
  28. package/esm2022/lib/services/layout/layout.service.mjs +6 -6
  29. package/esm2022/lib/translation-management-routing.module.mjs +43 -0
  30. package/esm2022/lib/translation-management.module.mjs +66 -0
  31. package/esm2022/public_api.mjs +3 -2
  32. package/fesm2022/valtimo-layout.mjs +311 -37
  33. package/fesm2022/valtimo-layout.mjs.map +1 -1
  34. package/lib/components/layout-public/layout-public.component.d.ts +1 -4
  35. package/lib/components/layout-public/layout-public.component.d.ts.map +1 -1
  36. package/lib/components/translation-management/translation-management.component.d.ts +46 -0
  37. package/lib/components/translation-management/translation-management.component.d.ts.map +1 -0
  38. package/lib/translation-management-routing.module.d.ts +8 -0
  39. package/lib/translation-management-routing.module.d.ts.map +1 -0
  40. package/lib/translation-management.module.d.ts +13 -0
  41. package/lib/translation-management.module.d.ts.map +1 -0
  42. package/package.json +7 -6
  43. package/public_api.d.ts +1 -0
  44. package/public_api.d.ts.map +1 -1
@@ -0,0 +1,185 @@
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 { Component, Inject } from '@angular/core';
17
+ import { BehaviorSubject, combineLatest, map, switchMap, take, tap } from 'rxjs';
18
+ import { isEqual } from 'lodash';
19
+ import { DOCUMENT } from '@angular/common';
20
+ import * as i0 from "@angular/core";
21
+ import * as i1 from "@ngx-translate/core";
22
+ import * as i2 from "@valtimo/config";
23
+ import * as i3 from "@valtimo/components";
24
+ import * as i4 from "@angular/common";
25
+ import * as i5 from "carbon-components-angular";
26
+ export class TranslationManagementComponent {
27
+ constructor(translateService, localizationService, pageHeaderService, document) {
28
+ this.translateService = translateService;
29
+ this.localizationService = localizationService;
30
+ this.pageHeaderService = pageHeaderService;
31
+ this.document = document;
32
+ this.loading$ = new BehaviorSubject(true);
33
+ this.allChangedValuesValid$ = new BehaviorSubject(false);
34
+ this.disabled$ = new BehaviorSubject(false);
35
+ this._languageOptions$ = new BehaviorSubject(undefined);
36
+ this._refreshLocalizations$ = new BehaviorSubject(null);
37
+ this._localizationTranslations$ = this._refreshLocalizations$.pipe(tap(() => this.loading$.next(true)), switchMap(() => this.localizationService.getMergedLocalizations()), tap(() => this.loading$.next(false)));
38
+ this._defaultValues = [];
39
+ this._changedValues$ = new BehaviorSubject(undefined);
40
+ this.showConfirmationModal$ = new BehaviorSubject(false);
41
+ this.valuesChanged$ = this._changedValues$.pipe(map(changedValues => !isEqual(changedValues, this._defaultValues)));
42
+ this.localizationTranslationValues$ = combineLatest([
43
+ this._languageOptions$,
44
+ this._localizationTranslations$,
45
+ this.translateService.stream('key'),
46
+ ]).pipe(map(([languageOptions, localizationTranslations]) => this.mapMergedLocalizationsToMultiInput(languageOptions, localizationTranslations)), tap(defaultValues => {
47
+ this._defaultValues = defaultValues;
48
+ }));
49
+ this.multiInputTiles$ = combineLatest([
50
+ this._languageOptions$,
51
+ this.translateService.stream('key'),
52
+ ]).pipe(map(([languageOptions]) => {
53
+ const objToReturn = {};
54
+ objToReturn[0] = this.translateService.instant('listColumn.key');
55
+ languageOptions.forEach((languageOption, index) => {
56
+ objToReturn[index + 1] = this.translateService.instant(`settings.language.options.${languageOption}`);
57
+ });
58
+ return objToReturn;
59
+ }));
60
+ this.amountOfArbitraryValues$ = this.multiInputTiles$.pipe(map(multiInputTitles => Object.keys(multiInputTitles).length));
61
+ this.compactMode$ = this.pageHeaderService.compactMode$;
62
+ }
63
+ ngOnInit() {
64
+ this.setLanguages();
65
+ }
66
+ validChange(valid) {
67
+ this.allChangedValuesValid$.next(valid);
68
+ }
69
+ valueChange(value) {
70
+ this._changedValues$.next(value);
71
+ }
72
+ saveAndRefresh() {
73
+ this.saveChanges(true);
74
+ }
75
+ saveAndStay() {
76
+ this.saveChanges();
77
+ }
78
+ cancel() {
79
+ this.hideModal();
80
+ }
81
+ showModal() {
82
+ this.showConfirmationModal$.next(true);
83
+ }
84
+ saveChanges(reload = false) {
85
+ this.disable();
86
+ combineLatest([this._changedValues$, this._languageOptions$])
87
+ .pipe(take(1), map(([changedValues, languageOptions]) => this.getLocalizationsForUpdateRequest(changedValues, languageOptions)), switchMap(updatedLocalizations => this.localizationService.updateLocalizations(updatedLocalizations)))
88
+ .subscribe(() => {
89
+ if (reload) {
90
+ this.document?.defaultView?.location?.reload();
91
+ }
92
+ else {
93
+ this._refreshLocalizations$.next(null);
94
+ this.enable();
95
+ }
96
+ });
97
+ }
98
+ setLanguages() {
99
+ this._languageOptions$.next(this.translateService.langs);
100
+ }
101
+ disable() {
102
+ this.disabled$.next(true);
103
+ }
104
+ enable() {
105
+ this.disabled$.next(false);
106
+ }
107
+ hideModal() {
108
+ this.showConfirmationModal$.next(false);
109
+ }
110
+ flattenObject(ob) {
111
+ const toReturn = {};
112
+ for (const i in ob) {
113
+ if (!ob.hasOwnProperty(i))
114
+ continue;
115
+ if (typeof ob[i] == 'object' && ob[i] !== null) {
116
+ const flatObject = this.flattenObject(ob[i]);
117
+ for (const x in flatObject) {
118
+ if (!flatObject.hasOwnProperty(x))
119
+ continue;
120
+ toReturn[i + '.' + x] = flatObject[x];
121
+ }
122
+ }
123
+ else {
124
+ toReturn[i] = ob[i];
125
+ }
126
+ }
127
+ return toReturn;
128
+ }
129
+ unflattenObject(obj, delimiter = '.') {
130
+ return Object.keys(obj).reduce((res, k) => {
131
+ k.split(delimiter).reduce((acc, e, i, keys) => acc[e] ||
132
+ (acc[e] = isNaN(Number(keys[i + 1])) ? (keys.length - 1 === i ? obj[k] : {}) : []), res);
133
+ return res;
134
+ }, {});
135
+ }
136
+ getLocalizationsForUpdateRequest(changedValues, languageOptions) {
137
+ const localizations = [];
138
+ const translationObject = {};
139
+ languageOptions.forEach(languageOption => {
140
+ translationObject[languageOption] = {};
141
+ });
142
+ changedValues.forEach(changedValue => {
143
+ languageOptions.forEach((languageOption, index) => {
144
+ translationObject[languageOption] = {
145
+ ...translationObject[languageOption],
146
+ [changedValue[0]]: changedValue[index + 1],
147
+ };
148
+ });
149
+ });
150
+ languageOptions.forEach(languageOption => {
151
+ translationObject[languageOption] = this.unflattenObject(translationObject[languageOption]);
152
+ });
153
+ Object.keys(translationObject).forEach(languageKey => {
154
+ localizations.push({ languageKey, content: translationObject[languageKey] });
155
+ });
156
+ return localizations;
157
+ }
158
+ mapMergedLocalizationsToMultiInput(languageOptions, mergedLocalizations) {
159
+ if (Object.keys(mergedLocalizations).length === 0) {
160
+ return [];
161
+ }
162
+ const firstLanguageOption = languageOptions[0];
163
+ const firstLanguageTranslations = firstLanguageOption && mergedLocalizations[firstLanguageOption];
164
+ const flattenedFirstLanguageTranslations = firstLanguageTranslations && this.flattenObject(firstLanguageTranslations);
165
+ return Object.keys(flattenedFirstLanguageTranslations).map(flattenedTranslationKey => {
166
+ const emptyArbitraryValue = {};
167
+ emptyArbitraryValue['0'] = flattenedTranslationKey;
168
+ languageOptions.forEach((languageOption, index) => {
169
+ emptyArbitraryValue[`${index + 1}`] =
170
+ this.flattenObject(mergedLocalizations[languageOption])[flattenedTranslationKey] || '';
171
+ });
172
+ return emptyArbitraryValue;
173
+ });
174
+ }
175
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TranslationManagementComponent, deps: [{ token: i1.TranslateService }, { token: i2.LocalizationService }, { token: i3.PageHeaderService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
176
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.3", type: TranslationManagementComponent, selector: "valtimo-translation-management", ngImport: i0, template: "<!--\n ~ Copyright 2015-2024 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 localizationTranslationValues: localizationTranslationValues$ | async,\n loading: loading$ | async,\n disabled: disabled$ | async,\n multiInputTitles: multiInputTiles$ | async,\n amountOfArbitraryValues: amountOfArbitraryValues$ | async,\n showConfirmationModal: showConfirmationModal$,\n allChangedValuesValid: allChangedValuesValid$ | async,\n valuesChanged: valuesChanged$ | async,\n compactMode: compactMode$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"!obs.loading && obs.localizationTranslationValues; else loading\">\n <valtimo-carbon-multi-input\n [disabled]=\"obs.disabled\"\n [arbitraryAmountTitles]=\"obs.multiInputTitles\"\n [fullWidth]=\"true\"\n [minimumAmountOfRows]=\"0\"\n type=\"arbitraryAmount\"\n [arbitraryValueAmount]=\"obs.amountOfArbitraryValues\"\n [defaultValues]=\"obs.localizationTranslationValues\"\n (allValuesValidEvent)=\"validChange($event)\"\n (valueChange)=\"valueChange($event)\"\n addRowTranslationKey=\"translationManagement.add\"\n ></valtimo-carbon-multi-input>\n </ng-container>\n\n <ng-template #loading>\n <div class=\"loading-container\"><cds-loading></cds-loading></div>\n </ng-template>\n\n <valtimo-confirmation-modal\n [showModalSubject$]=\"obs.showConfirmationModal\"\n (confirmEvent)=\"saveAndRefresh()\"\n (optionalEvent)=\"saveAndStay()\"\n (cancelEvent)=\"cancel()\"\n [showOptionalButton]=\"true\"\n cancelButtonType=\"ghost\"\n optionalButtonType=\"secondary\"\n confirmButtonTextTranslationKey=\"translationManagement.saveWithReload\"\n optionalButtonTextTranslationKey=\"translationManagement.saveWithoutReload\"\n titleTranslationKey=\"translationManagement.modalTitle\"\n contentTranslationKey=\"translationManagement.modalContent\"\n [spacerAfterCancelButton]=\"true\"\n ></valtimo-confirmation-modal>\n\n <ng-container renderInPageHeader>\n <ng-template>\n <button\n cdsButton=\"primary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"showModal()\"\n [disabled]=\"!obs.allChangedValuesValid || obs.disabled || !obs.valuesChanged\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </ng-template>\n </ng-container>\n</ng-container>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center}\n/*!\n * Copyright 2015-2024 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: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.CarbonMultiInputComponent, selector: "valtimo-carbon-multi-input", inputs: ["name", "title", "titleTranslationKey", "type", "arbitraryValueAmount", "arbitraryAmountTitles", "initialAmountOfRows", "minimumAmountOfRows", "maxRows", "addRowText", "addRowTranslationKey", "deleteRowText", "deleteRowTranslationKey", "disabled", "defaultValues", "margin", "tooltip", "required", "keyColumnTitle", "valueColumnTitle", "dropdownColumnTitle", "hideDeleteButton", "hideAddButton", "dropdownItems", "dropdownWidth", "fullWidth", "carbonTheme"], outputs: ["valueChange", "allValuesValidEvent"] }, { kind: "component", type: i5.Loading, selector: "cds-loading, ibm-loading", inputs: ["title", "isActive", "size", "overlay"] }, { kind: "directive", type: i3.RenderInPageHeaderDirective, selector: "[renderInPageHeader]", inputs: ["fullWidth"] }, { 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: i3.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"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] }); }
177
+ }
178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TranslationManagementComponent, decorators: [{
179
+ type: Component,
180
+ args: [{ selector: 'valtimo-translation-management', template: "<!--\n ~ Copyright 2015-2024 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 localizationTranslationValues: localizationTranslationValues$ | async,\n loading: loading$ | async,\n disabled: disabled$ | async,\n multiInputTitles: multiInputTiles$ | async,\n amountOfArbitraryValues: amountOfArbitraryValues$ | async,\n showConfirmationModal: showConfirmationModal$,\n allChangedValuesValid: allChangedValuesValid$ | async,\n valuesChanged: valuesChanged$ | async,\n compactMode: compactMode$ | async\n } as obs\"\n>\n <ng-container *ngIf=\"!obs.loading && obs.localizationTranslationValues; else loading\">\n <valtimo-carbon-multi-input\n [disabled]=\"obs.disabled\"\n [arbitraryAmountTitles]=\"obs.multiInputTitles\"\n [fullWidth]=\"true\"\n [minimumAmountOfRows]=\"0\"\n type=\"arbitraryAmount\"\n [arbitraryValueAmount]=\"obs.amountOfArbitraryValues\"\n [defaultValues]=\"obs.localizationTranslationValues\"\n (allValuesValidEvent)=\"validChange($event)\"\n (valueChange)=\"valueChange($event)\"\n addRowTranslationKey=\"translationManagement.add\"\n ></valtimo-carbon-multi-input>\n </ng-container>\n\n <ng-template #loading>\n <div class=\"loading-container\"><cds-loading></cds-loading></div>\n </ng-template>\n\n <valtimo-confirmation-modal\n [showModalSubject$]=\"obs.showConfirmationModal\"\n (confirmEvent)=\"saveAndRefresh()\"\n (optionalEvent)=\"saveAndStay()\"\n (cancelEvent)=\"cancel()\"\n [showOptionalButton]=\"true\"\n cancelButtonType=\"ghost\"\n optionalButtonType=\"secondary\"\n confirmButtonTextTranslationKey=\"translationManagement.saveWithReload\"\n optionalButtonTextTranslationKey=\"translationManagement.saveWithoutReload\"\n titleTranslationKey=\"translationManagement.modalTitle\"\n contentTranslationKey=\"translationManagement.modalContent\"\n [spacerAfterCancelButton]=\"true\"\n ></valtimo-confirmation-modal>\n\n <ng-container renderInPageHeader>\n <ng-template>\n <button\n cdsButton=\"primary\"\n [size]=\"obs.compactMode ? 'sm' : 'md'\"\n (click)=\"showModal()\"\n [disabled]=\"!obs.allChangedValuesValid || obs.disabled || !obs.valuesChanged\"\n >\n {{ 'interface.save' | translate }}\n\n <svg class=\"cds--btn__icon\" cdsIcon=\"save\" size=\"16\"></svg>\n </button>\n </ng-template>\n </ng-container>\n</ng-container>\n", styles: [".loading-container{display:flex;width:100%;justify-content:center}\n/*!\n * Copyright 2015-2024 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"] }]
181
+ }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.LocalizationService }, { type: i3.PageHeaderService }, { type: Document, decorators: [{
182
+ type: Inject,
183
+ args: [DOCUMENT]
184
+ }] }] });
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tbWFuYWdlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2xheW91dC9zcmMvbGliL2NvbXBvbmVudHMvdHJhbnNsYXRpb24tbWFuYWdlbWVudC90cmFuc2xhdGlvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbGF5b3V0L3NyYy9saWIvY29tcG9uZW50cy90cmFuc2xhdGlvbi1tYW5hZ2VtZW50L3RyYW5zbGF0aW9uLW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFTM0YsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUMvQixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFPekMsTUFBTSxPQUFPLDhCQUE4QjtJQTZEekMsWUFDbUIsZ0JBQWtDLEVBQ2xDLG1CQUF3QyxFQUN4QyxpQkFBb0MsRUFDbEIsUUFBa0I7UUFIcEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWhFdkMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQzlDLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUFVLEtB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QkFBbUIsSUFBSSxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sa0NBQWtDLEdBQ3RDLHlCQUF5QixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUU3RSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUNuRixNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztZQUUvQixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyx1QkFBdUIsQ0FBQztZQUVuRCxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNoRCxtQkFBbUIsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNGLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxtQkFBbUIsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OEdBaE9VLDhCQUE4QixzSEFpRS9CLFFBQVE7a0dBakVQLDhCQUE4QixzRUNsQzNDLHMvRkE4RUE7OzJGRDVDYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0UsZ0NBQWdDOzswQkFxRXZDLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtMb2NhbGl6YXRpb24sIExvY2FsaXphdGlvblNlcnZpY2UsIE1lcmdlZExvY2FsaXphdGlvbnN9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge1xuICBBcmJpdHJhcnlJbnB1dFRpdGxlcyxcbiAgTXVsdGlJbnB1dEtleVZhbHVlLFxuICBNdWx0aUlucHV0T3V0cHV0LFxuICBQYWdlSGVhZGVyU2VydmljZSxcbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge2lzRXF1YWx9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXRyYW5zbGF0aW9uLW1hbmFnZW1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJhbnNsYXRpb24tbWFuYWdlbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RyYW5zbGF0aW9uLW1hbmFnZW1lbnQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25NYW5hZ2VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHJlYWRvbmx5IGFsbENoYW5nZWRWYWx1ZXNWYWxpZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xhbmd1YWdlT3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PHN0cmluZz4+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlZnJlc2hMb2NhbGl6YXRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvY2FsaXphdGlvblRyYW5zbGF0aW9ucyQgPSB0aGlzLl9yZWZyZXNoTG9jYWxpemF0aW9ucyQucGlwZShcbiAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nJC5uZXh0KHRydWUpKSxcbiAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmdldE1lcmdlZExvY2FsaXphdGlvbnMoKSksXG4gICAgdGFwKCgpID0+IHRoaXMubG9hZGluZyQubmV4dChmYWxzZSkpXG4gICk7XG5cbiAgcHJpdmF0ZSBfZGVmYXVsdFZhbHVlczogQXJyYXk8TXVsdGlJbnB1dEtleVZhbHVlPiA9IFtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZWRWYWx1ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNdWx0aUlucHV0T3V0cHV0Pih1bmRlZmluZWQpO1xuXG4gIHB1YmxpYyByZWFkb25seSBzaG93Q29uZmlybWF0aW9uTW9kYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlc0NoYW5nZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fY2hhbmdlZFZhbHVlcyQucGlwZShcbiAgICBtYXAoY2hhbmdlZFZhbHVlcyA9PiAhaXNFcXVhbChjaGFuZ2VkVmFsdWVzLCB0aGlzLl9kZWZhdWx0VmFsdWVzKSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbG9jYWxpemF0aW9uVHJhbnNsYXRpb25WYWx1ZXMkOiBPYnNlcnZhYmxlPEFycmF5PE11bHRpSW5wdXRLZXlWYWx1ZT4+ID1cbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuX2xhbmd1YWdlT3B0aW9ucyQsXG4gICAgICB0aGlzLl9sb2NhbGl6YXRpb25UcmFuc2xhdGlvbnMkLFxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2xhbmd1YWdlT3B0aW9ucywgbG9jYWxpemF0aW9uVHJhbnNsYXRpb25zXSkgPT5cbiAgICAgICAgdGhpcy5tYXBNZXJnZWRMb2NhbGl6YXRpb25zVG9NdWx0aUlucHV0KGxhbmd1YWdlT3B0aW9ucywgbG9jYWxpemF0aW9uVHJhbnNsYXRpb25zKVxuICAgICAgKSxcbiAgICAgIHRhcChkZWZhdWx0VmFsdWVzID0+IHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRWYWx1ZXM7XG4gICAgICB9KVxuICAgICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG11bHRpSW5wdXRUaWxlcyQ6IE9ic2VydmFibGU8QXJiaXRyYXJ5SW5wdXRUaXRsZXM+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fbGFuZ3VhZ2VPcHRpb25zJCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtsYW5ndWFnZU9wdGlvbnNdKSA9PiB7XG4gICAgICBjb25zdCBvYmpUb1JldHVybiA9IHt9O1xuICAgICAgb2JqVG9SZXR1cm5bMF0gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnbGlzdENvbHVtbi5rZXknKTtcblxuICAgICAgbGFuZ3VhZ2VPcHRpb25zLmZvckVhY2goKGxhbmd1YWdlT3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICBvYmpUb1JldHVybltpbmRleCArIDFdID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgYHNldHRpbmdzLmxhbmd1YWdlLm9wdGlvbnMuJHtsYW5ndWFnZU9wdGlvbn1gXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIG9ialRvUmV0dXJuO1xuICAgIH0pXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGFtb3VudE9mQXJiaXRyYXJ5VmFsdWVzJDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy5tdWx0aUlucHV0VGlsZXMkLnBpcGUoXG4gICAgbWFwKG11bHRpSW5wdXRUaXRsZXMgPT4gT2JqZWN0LmtleXMobXVsdGlJbnB1dFRpdGxlcykubGVuZ3RoKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb21wYWN0TW9kZSQgPSB0aGlzLnBhZ2VIZWFkZXJTZXJ2aWNlLmNvbXBhY3RNb2RlJDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnZUhlYWRlclNlcnZpY2U6IFBhZ2VIZWFkZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50XG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRMYW5ndWFnZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZENoYW5nZSh2YWxpZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuYWxsQ2hhbmdlZFZhbHVlc1ZhbGlkJC5uZXh0KHZhbGlkKTtcbiAgfVxuXG4gIHB1YmxpYyB2YWx1ZUNoYW5nZSh2YWx1ZTogTXVsdGlJbnB1dE91dHB1dCk6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZWRWYWx1ZXMkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHNhdmVBbmRSZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZUNoYW5nZXModHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZUFuZFN0YXkoKTogdm9pZCB7XG4gICAgdGhpcy5zYXZlQ2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVNb2RhbCgpO1xuICB9XG5cbiAgcHVibGljIHNob3dNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDb25maXJtYXRpb25Nb2RhbCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlQ2hhbmdlcyhyZWxvYWQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZSgpO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5fY2hhbmdlZFZhbHVlcyQsIHRoaXMuX2xhbmd1YWdlT3B0aW9ucyRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIG1hcCgoW2NoYW5nZWRWYWx1ZXMsIGxhbmd1YWdlT3B0aW9uc10pID0+XG4gICAgICAgICAgdGhpcy5nZXRMb2NhbGl6YXRpb25zRm9yVXBkYXRlUmVxdWVzdChjaGFuZ2VkVmFsdWVzLCBsYW5ndWFnZU9wdGlvbnMpXG4gICAgICAgICksXG4gICAgICAgIHN3aXRjaE1hcCh1cGRhdGVkTG9jYWxpemF0aW9ucyA9PlxuICAgICAgICAgIHRoaXMubG9jYWxpemF0aW9uU2VydmljZS51cGRhdGVMb2NhbGl6YXRpb25zKHVwZGF0ZWRMb2NhbGl6YXRpb25zKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHJlbG9hZCkge1xuICAgICAgICAgIHRoaXMuZG9jdW1lbnQ/LmRlZmF1bHRWaWV3Py5sb2NhdGlvbj8ucmVsb2FkKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcmVmcmVzaExvY2FsaXphdGlvbnMkLm5leHQobnVsbCk7XG4gICAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldExhbmd1YWdlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9sYW5ndWFnZU9wdGlvbnMkLm5leHQodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmxhbmdzKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmFibGUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGhpZGVNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDb25maXJtYXRpb25Nb2RhbCQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGZsYXR0ZW5PYmplY3Qob2I6IG9iamVjdCk6IG9iamVjdCB7XG4gICAgY29uc3QgdG9SZXR1cm4gPSB7fTtcblxuICAgIGZvciAoY29uc3QgaSBpbiBvYikge1xuICAgICAgaWYgKCFvYi5oYXNPd25Qcm9wZXJ0eShpKSkgY29udGludWU7XG5cbiAgICAgIGlmICh0eXBlb2Ygb2JbaV0gPT0gJ29iamVjdCcgJiYgb2JbaV0gIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgZmxhdE9iamVjdCA9IHRoaXMuZmxhdHRlbk9iamVjdChvYltpXSk7XG4gICAgICAgIGZvciAoY29uc3QgeCBpbiBmbGF0T2JqZWN0KSB7XG4gICAgICAgICAgaWYgKCFmbGF0T2JqZWN0Lmhhc093blByb3BlcnR5KHgpKSBjb250aW51ZTtcblxuICAgICAgICAgIHRvUmV0dXJuW2kgKyAnLicgKyB4XSA9IGZsYXRPYmplY3RbeF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRvUmV0dXJuW2ldID0gb2JbaV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0b1JldHVybjtcbiAgfVxuXG4gIHByaXZhdGUgdW5mbGF0dGVuT2JqZWN0KG9iajogb2JqZWN0LCBkZWxpbWl0ZXIgPSAnLicpOiBvYmplY3Qge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgocmVzLCBrKSA9PiB7XG4gICAgICBrLnNwbGl0KGRlbGltaXRlcikucmVkdWNlKFxuICAgICAgICAoYWNjLCBlLCBpLCBrZXlzKSA9PlxuICAgICAgICAgIGFjY1tlXSB8fFxuICAgICAgICAgIChhY2NbZV0gPSBpc05hTihOdW1iZXIoa2V5c1tpICsgMV0pKSA/IChrZXlzLmxlbmd0aCAtIDEgPT09IGkgPyBvYmpba10gOiB7fSkgOiBbXSksXG4gICAgICAgIHJlc1xuICAgICAgKTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSwge30pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMb2NhbGl6YXRpb25zRm9yVXBkYXRlUmVxdWVzdChcbiAgICBjaGFuZ2VkVmFsdWVzOiBNdWx0aUlucHV0T3V0cHV0LFxuICAgIGxhbmd1YWdlT3B0aW9uczogc3RyaW5nW11cbiAgKTogTG9jYWxpemF0aW9uW10ge1xuICAgIGNvbnN0IGxvY2FsaXphdGlvbnM6IExvY2FsaXphdGlvbltdID0gW107XG4gICAgY29uc3QgdHJhbnNsYXRpb25PYmplY3QgPSB7fTtcblxuICAgIGxhbmd1YWdlT3B0aW9ucy5mb3JFYWNoKGxhbmd1YWdlT3B0aW9uID0+IHtcbiAgICAgIHRyYW5zbGF0aW9uT2JqZWN0W2xhbmd1YWdlT3B0aW9uXSA9IHt9O1xuICAgIH0pO1xuXG4gICAgY2hhbmdlZFZhbHVlcy5mb3JFYWNoKGNoYW5nZWRWYWx1ZSA9PiB7XG4gICAgICBsYW5ndWFnZU9wdGlvbnMuZm9yRWFjaCgobGFuZ3VhZ2VPcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICAgIHRyYW5zbGF0aW9uT2JqZWN0W2xhbmd1YWdlT3B0aW9uXSA9IHtcbiAgICAgICAgICAuLi50cmFuc2xhdGlvbk9iamVjdFtsYW5ndWFnZU9wdGlvbl0sXG4gICAgICAgICAgW2NoYW5nZWRWYWx1ZVswXV06IGNoYW5nZWRWYWx1ZVtpbmRleCArIDFdLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBsYW5ndWFnZU9wdGlvbnMuZm9yRWFjaChsYW5ndWFnZU9wdGlvbiA9PiB7XG4gICAgICB0cmFuc2xhdGlvbk9iamVjdFtsYW5ndWFnZU9wdGlvbl0gPSB0aGlzLnVuZmxhdHRlbk9iamVjdCh0cmFuc2xhdGlvbk9iamVjdFtsYW5ndWFnZU9wdGlvbl0pO1xuICAgIH0pO1xuXG4gICAgT2JqZWN0LmtleXModHJhbnNsYXRpb25PYmplY3QpLmZvckVhY2gobGFuZ3VhZ2VLZXkgPT4ge1xuICAgICAgbG9jYWxpemF0aW9ucy5wdXNoKHtsYW5ndWFnZUtleSwgY29udGVudDogdHJhbnNsYXRpb25PYmplY3RbbGFuZ3VhZ2VLZXldfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbG9jYWxpemF0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgbWFwTWVyZ2VkTG9jYWxpemF0aW9uc1RvTXVsdGlJbnB1dChcbiAgICBsYW5ndWFnZU9wdGlvbnM6IHN0cmluZ1tdLFxuICAgIG1lcmdlZExvY2FsaXphdGlvbnM6IE1lcmdlZExvY2FsaXphdGlvbnNcbiAgKSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKG1lcmdlZExvY2FsaXphdGlvbnMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0TGFuZ3VhZ2VPcHRpb24gPSBsYW5ndWFnZU9wdGlvbnNbMF07XG4gICAgY29uc3QgZmlyc3RMYW5ndWFnZVRyYW5zbGF0aW9ucyA9XG4gICAgICBmaXJzdExhbmd1YWdlT3B0aW9uICYmIG1lcmdlZExvY2FsaXphdGlvbnNbZmlyc3RMYW5ndWFnZU9wdGlvbl07XG4gICAgY29uc3QgZmxhdHRlbmVkRmlyc3RMYW5ndWFnZVRyYW5zbGF0aW9ucyA9XG4gICAgICBmaXJzdExhbmd1YWdlVHJhbnNsYXRpb25zICYmIHRoaXMuZmxhdHRlbk9iamVjdChmaXJzdExhbmd1YWdlVHJhbnNsYXRpb25zKTtcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhmbGF0dGVuZWRGaXJzdExhbmd1YWdlVHJhbnNsYXRpb25zKS5tYXAoZmxhdHRlbmVkVHJhbnNsYXRpb25LZXkgPT4ge1xuICAgICAgY29uc3QgZW1wdHlBcmJpdHJhcnlWYWx1ZSA9IHt9O1xuXG4gICAgICBlbXB0eUFyYml0cmFyeVZhbHVlWycwJ10gPSBmbGF0dGVuZWRUcmFuc2xhdGlvbktleTtcblxuICAgICAgbGFuZ3VhZ2VPcHRpb25zLmZvckVhY2goKGxhbmd1YWdlT3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICBlbXB0eUFyYml0cmFyeVZhbHVlW2Ake2luZGV4ICsgMX1gXSA9XG4gICAgICAgICAgdGhpcy5mbGF0dGVuT2JqZWN0KG1lcmdlZExvY2FsaXphdGlvbnNbbGFuZ3VhZ2VPcHRpb25dKVtmbGF0dGVuZWRUcmFuc2xhdGlvbktleV0gfHwgJyc7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGVtcHR5QXJiaXRyYXJ5VmFsdWU7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICBsb2NhbGl6YXRpb25UcmFuc2xhdGlvblZhbHVlczogbG9jYWxpemF0aW9uVHJhbnNsYXRpb25WYWx1ZXMkIHwgYXN5bmMsXG4gICAgbG9hZGluZzogbG9hZGluZyQgfCBhc3luYyxcbiAgICBkaXNhYmxlZDogZGlzYWJsZWQkIHwgYXN5bmMsXG4gICAgbXVsdGlJbnB1dFRpdGxlczogbXVsdGlJbnB1dFRpbGVzJCB8IGFzeW5jLFxuICAgIGFtb3VudE9mQXJiaXRyYXJ5VmFsdWVzOiBhbW91bnRPZkFyYml0cmFyeVZhbHVlcyQgfCBhc3luYyxcbiAgICBzaG93Q29uZmlybWF0aW9uTW9kYWw6IHNob3dDb25maXJtYXRpb25Nb2RhbCQsXG4gICAgYWxsQ2hhbmdlZFZhbHVlc1ZhbGlkOiBhbGxDaGFuZ2VkVmFsdWVzVmFsaWQkIHwgYXN5bmMsXG4gICAgdmFsdWVzQ2hhbmdlZDogdmFsdWVzQ2hhbmdlZCQgfCBhc3luYyxcbiAgICBjb21wYWN0TW9kZTogY29tcGFjdE1vZGUkIHwgYXN5bmNcbiAgfSBhcyBvYnNcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW9icy5sb2FkaW5nICYmIG9icy5sb2NhbGl6YXRpb25UcmFuc2xhdGlvblZhbHVlczsgZWxzZSBsb2FkaW5nXCI+XG4gICAgPHZhbHRpbW8tY2FyYm9uLW11bHRpLWlucHV0XG4gICAgICBbZGlzYWJsZWRdPVwib2JzLmRpc2FibGVkXCJcbiAgICAgIFthcmJpdHJhcnlBbW91bnRUaXRsZXNdPVwib2JzLm11bHRpSW5wdXRUaXRsZXNcIlxuICAgICAgW2Z1bGxXaWR0aF09XCJ0cnVlXCJcbiAgICAgIFttaW5pbXVtQW1vdW50T2ZSb3dzXT1cIjBcIlxuICAgICAgdHlwZT1cImFyYml0cmFyeUFtb3VudFwiXG4gICAgICBbYXJiaXRyYXJ5VmFsdWVBbW91bnRdPVwib2JzLmFtb3VudE9mQXJiaXRyYXJ5VmFsdWVzXCJcbiAgICAgIFtkZWZhdWx0VmFsdWVzXT1cIm9icy5sb2NhbGl6YXRpb25UcmFuc2xhdGlvblZhbHVlc1wiXG4gICAgICAoYWxsVmFsdWVzVmFsaWRFdmVudCk9XCJ2YWxpZENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICh2YWx1ZUNoYW5nZSk9XCJ2YWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgIGFkZFJvd1RyYW5zbGF0aW9uS2V5PVwidHJhbnNsYXRpb25NYW5hZ2VtZW50LmFkZFwiXG4gICAgPjwvdmFsdGltby1jYXJib24tbXVsdGktaW5wdXQ+XG4gIDwvbmctY29udGFpbmVyPlxuXG4gIDxuZy10ZW1wbGF0ZSAjbG9hZGluZz5cbiAgICA8ZGl2IGNsYXNzPVwibG9hZGluZy1jb250YWluZXJcIj48Y2RzLWxvYWRpbmc+PC9jZHMtbG9hZGluZz48L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8dmFsdGltby1jb25maXJtYXRpb24tbW9kYWxcbiAgICBbc2hvd01vZGFsU3ViamVjdCRdPVwib2JzLnNob3dDb25maXJtYXRpb25Nb2RhbFwiXG4gICAgKGNvbmZpcm1FdmVudCk9XCJzYXZlQW5kUmVmcmVzaCgpXCJcbiAgICAob3B0aW9uYWxFdmVudCk9XCJzYXZlQW5kU3RheSgpXCJcbiAgICAoY2FuY2VsRXZlbnQpPVwiY2FuY2VsKClcIlxuICAgIFtzaG93T3B0aW9uYWxCdXR0b25dPVwidHJ1ZVwiXG4gICAgY2FuY2VsQnV0dG9uVHlwZT1cImdob3N0XCJcbiAgICBvcHRpb25hbEJ1dHRvblR5cGU9XCJzZWNvbmRhcnlcIlxuICAgIGNvbmZpcm1CdXR0b25UZXh0VHJhbnNsYXRpb25LZXk9XCJ0cmFuc2xhdGlvbk1hbmFnZW1lbnQuc2F2ZVdpdGhSZWxvYWRcIlxuICAgIG9wdGlvbmFsQnV0dG9uVGV4dFRyYW5zbGF0aW9uS2V5PVwidHJhbnNsYXRpb25NYW5hZ2VtZW50LnNhdmVXaXRob3V0UmVsb2FkXCJcbiAgICB0aXRsZVRyYW5zbGF0aW9uS2V5PVwidHJhbnNsYXRpb25NYW5hZ2VtZW50Lm1vZGFsVGl0bGVcIlxuICAgIGNvbnRlbnRUcmFuc2xhdGlvbktleT1cInRyYW5zbGF0aW9uTWFuYWdlbWVudC5tb2RhbENvbnRlbnRcIlxuICAgIFtzcGFjZXJBZnRlckNhbmNlbEJ1dHRvbl09XCJ0cnVlXCJcbiAgPjwvdmFsdGltby1jb25maXJtYXRpb24tbW9kYWw+XG5cbiAgPG5nLWNvbnRhaW5lciByZW5kZXJJblBhZ2VIZWFkZXI+XG4gICAgPG5nLXRlbXBsYXRlPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjZHNCdXR0b249XCJwcmltYXJ5XCJcbiAgICAgICAgW3NpemVdPVwib2JzLmNvbXBhY3RNb2RlID8gJ3NtJyA6ICdtZCdcIlxuICAgICAgICAoY2xpY2spPVwic2hvd01vZGFsKClcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIW9icy5hbGxDaGFuZ2VkVmFsdWVzVmFsaWQgfHwgb2JzLmRpc2FibGVkIHx8ICFvYnMudmFsdWVzQ2hhbmdlZFwiXG4gICAgICA+XG4gICAgICAgIHt7ICdpbnRlcmZhY2Uuc2F2ZScgfCB0cmFuc2xhdGUgfX1cblxuICAgICAgICA8c3ZnIGNsYXNzPVwiY2RzLS1idG5fX2ljb25cIiBjZHNJY29uPVwic2F2ZVwiIHNpemU9XCIxNlwiPjwvc3ZnPlxuICAgICAgPC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
3
  *
4
4
  * Licensed under EUPL, Version 1.2 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -22,8 +22,8 @@ import { LayoutInternalComponent } from './components/layout-internal/layout-int
22
22
  import { CommonModule } from '@angular/common';
23
23
  import * as i0 from "@angular/core";
24
24
  export class LayoutModule {
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
26
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: LayoutModule, declarations: [LayoutComponent, LayoutPublicComponent, LayoutInternalComponent], imports: [RouterModule,
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
26
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: LayoutModule, declarations: [LayoutComponent, LayoutPublicComponent, LayoutInternalComponent], imports: [RouterModule,
27
27
  MenuRoutingModule,
28
28
  TopbarModule,
29
29
  LeftSidebarModule,
@@ -32,7 +32,7 @@ export class LayoutModule {
32
32
  AlertModule,
33
33
  CommonModule,
34
34
  PromptModule], exports: [LayoutComponent] }); }
35
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayoutModule, imports: [RouterModule,
35
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LayoutModule, imports: [RouterModule,
36
36
  MenuRoutingModule,
37
37
  TopbarModule,
38
38
  LeftSidebarModule,
@@ -42,7 +42,7 @@ export class LayoutModule {
42
42
  CommonModule,
43
43
  PromptModule] }); }
44
44
  }
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayoutModule, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LayoutModule, decorators: [{
46
46
  type: NgModule,
47
47
  args: [{
48
48
  declarations: [LayoutComponent, LayoutPublicComponent, LayoutInternalComponent],
@@ -60,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
60
60
  exports: [LayoutComponent],
61
61
  }]
62
62
  }] });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbGF5b3V0L3NyYy9saWIvbGF5b3V0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixZQUFZLEdBQ2IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDekYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDL0YsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDOztBQWlCN0MsTUFBTSxPQUFPLFlBQVk7K0dBQVosWUFBWTtnSEFBWixZQUFZLGlCQWRSLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsYUFFNUUsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsV0FBVztZQUNYLFlBQVk7WUFDWixZQUFZLGFBRUosZUFBZTtnSEFFZCxZQUFZLFlBWnJCLFlBQVk7WUFDWixpQkFBaUI7WUFDakIsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxZQUFZO1lBQ1osWUFBWTs7NEZBSUgsWUFBWTtrQkFmeEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxlQUFlLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLENBQUM7b0JBQy9FLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjMgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xheW91dENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2xheW91dC9sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEFsZXJ0TW9kdWxlLFxuICBMZWZ0U2lkZWJhck1vZHVsZSxcbiAgTWVudVJvdXRpbmdNb2R1bGUsXG4gIFBhZ2VIZWFkZXJNb2R1bGUsXG4gIFByb21wdE1vZHVsZSxcbiAgUmlnaHRTaWRlYmFyTW9kdWxlLFxuICBUb3BiYXJNb2R1bGUsXG59IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0xheW91dFB1YmxpY0NvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2xheW91dC1wdWJsaWMvbGF5b3V0LXB1YmxpYy5jb21wb25lbnQnO1xuaW1wb3J0IHtMYXlvdXRJbnRlcm5hbENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2xheW91dC1pbnRlcm5hbC9sYXlvdXQtaW50ZXJuYWwuY29tcG9uZW50JztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtMYXlvdXRDb21wb25lbnQsIExheW91dFB1YmxpY0NvbXBvbmVudCwgTGF5b3V0SW50ZXJuYWxDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIE1lbnVSb3V0aW5nTW9kdWxlLFxuICAgIFRvcGJhck1vZHVsZSxcbiAgICBMZWZ0U2lkZWJhck1vZHVsZSxcbiAgICBSaWdodFNpZGViYXJNb2R1bGUsXG4gICAgUGFnZUhlYWRlck1vZHVsZSxcbiAgICBBbGVydE1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUHJvbXB0TW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbTGF5b3V0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0TW9kdWxlIHt9XG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbGF5b3V0L3NyYy9saWIvbGF5b3V0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ3JFLE9BQU8sRUFDTCxXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQixnQkFBZ0IsRUFDaEIsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixZQUFZLEdBQ2IsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sb0RBQW9ELENBQUM7QUFDekYsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sd0RBQXdELENBQUM7QUFDL0YsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDOztBQWlCN0MsTUFBTSxPQUFPLFlBQVk7OEdBQVosWUFBWTsrR0FBWixZQUFZLGlCQWRSLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSx1QkFBdUIsYUFFNUUsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLGtCQUFrQjtZQUNsQixnQkFBZ0I7WUFDaEIsV0FBVztZQUNYLFlBQVk7WUFDWixZQUFZLGFBRUosZUFBZTsrR0FFZCxZQUFZLFlBWnJCLFlBQVk7WUFDWixpQkFBaUI7WUFDakIsWUFBWTtZQUNaLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsZ0JBQWdCO1lBQ2hCLFdBQVc7WUFDWCxZQUFZO1lBQ1osWUFBWTs7MkZBSUgsWUFBWTtrQkFmeEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxlQUFlLEVBQUUscUJBQXFCLEVBQUUsdUJBQXVCLENBQUM7b0JBQy9FLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osWUFBWTtxQkFDYjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xheW91dENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2xheW91dC9sYXlvdXQuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEFsZXJ0TW9kdWxlLFxuICBMZWZ0U2lkZWJhck1vZHVsZSxcbiAgTWVudVJvdXRpbmdNb2R1bGUsXG4gIFBhZ2VIZWFkZXJNb2R1bGUsXG4gIFByb21wdE1vZHVsZSxcbiAgUmlnaHRTaWRlYmFyTW9kdWxlLFxuICBUb3BiYXJNb2R1bGUsXG59IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge0xheW91dFB1YmxpY0NvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2xheW91dC1wdWJsaWMvbGF5b3V0LXB1YmxpYy5jb21wb25lbnQnO1xuaW1wb3J0IHtMYXlvdXRJbnRlcm5hbENvbXBvbmVudH0gZnJvbSAnLi9jb21wb25lbnRzL2xheW91dC1pbnRlcm5hbC9sYXlvdXQtaW50ZXJuYWwuY29tcG9uZW50JztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtMYXlvdXRDb21wb25lbnQsIExheW91dFB1YmxpY0NvbXBvbmVudCwgTGF5b3V0SW50ZXJuYWxDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIE1lbnVSb3V0aW5nTW9kdWxlLFxuICAgIFRvcGJhck1vZHVsZSxcbiAgICBMZWZ0U2lkZWJhck1vZHVsZSxcbiAgICBSaWdodFNpZGViYXJNb2R1bGUsXG4gICAgUGFnZUhlYWRlck1vZHVsZSxcbiAgICBBbGVydE1vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUHJvbXB0TW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbTGF5b3V0Q29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0TW9kdWxlIHt9XG4iXX0=
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
3
  *
4
4
  * Licensed under EUPL, Version 1.2 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -25,13 +25,13 @@ export class LayoutService {
25
25
  toggleFullscreen() {
26
26
  this.fullscreen = !this.fullscreen;
27
27
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayoutService, providedIn: 'root' }); }
28
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LayoutService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
29
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LayoutService, providedIn: 'root' }); }
30
30
  }
31
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: LayoutService, decorators: [{
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: LayoutService, decorators: [{
32
32
  type: Injectable,
33
33
  args: [{
34
34
  providedIn: 'root',
35
35
  }]
36
- }], ctorParameters: function () { return []; } });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2xheW91dC9zcmMvbGliL3NlcnZpY2VzL2xheW91dC9sYXlvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBS3pDLE1BQU0sT0FBTyxhQUFhO0lBR3hCO1FBRlEsZUFBVSxHQUFHLEtBQUssQ0FBQztJQUVaLENBQUM7SUFFaEIsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3JDLENBQUM7K0dBWFUsYUFBYTttSEFBYixhQUFhLGNBRlosTUFBTTs7NEZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyMyBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0U2VydmljZSB7XG4gIHByaXZhdGUgZnVsbHNjcmVlbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgZ2V0IGlzRnVsbHNjcmVlbigpIHtcbiAgICByZXR1cm4gdGhpcy5mdWxsc2NyZWVuO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUZ1bGxzY3JlZW4oKSB7XG4gICAgdGhpcy5mdWxsc2NyZWVuID0gIXRoaXMuZnVsbHNjcmVlbjtcbiAgfVxufVxuIl19
36
+ }], ctorParameters: () => [] });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2xheW91dC9zcmMvbGliL3NlcnZpY2VzL2xheW91dC9sYXlvdXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUVILE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7O0FBS3pDLE1BQU0sT0FBTyxhQUFhO0lBR3hCO1FBRlEsZUFBVSxHQUFHLEtBQUssQ0FBQztJQUVaLENBQUM7SUFFaEIsSUFBVyxZQUFZO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUN6QixDQUFDO0lBRU0sZ0JBQWdCO1FBQ3JCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3JDLENBQUM7OEdBWFUsYUFBYTtrSEFBYixhQUFhLGNBRlosTUFBTTs7MkZBRVAsYUFBYTtrQkFIekIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTGF5b3V0U2VydmljZSB7XG4gIHByaXZhdGUgZnVsbHNjcmVlbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBwdWJsaWMgZ2V0IGlzRnVsbHNjcmVlbigpIHtcbiAgICByZXR1cm4gdGhpcy5mdWxsc2NyZWVuO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUZ1bGxzY3JlZW4oKSB7XG4gICAgdGhpcy5mdWxsc2NyZWVuID0gIXRoaXMuZnVsbHNjcmVlbjtcbiAgfVxufVxuIl19
@@ -0,0 +1,43 @@
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 { NgModule } from '@angular/core';
17
+ import { RouterModule } from '@angular/router';
18
+ import { ROLE_ADMIN } from '@valtimo/config';
19
+ import { AuthGuardService } from '@valtimo/security';
20
+ import { TranslationManagementComponent } from './components/translation-management/translation-management.component';
21
+ import * as i0 from "@angular/core";
22
+ import * as i1 from "@angular/router";
23
+ const routes = [
24
+ {
25
+ path: 'translation-management',
26
+ component: TranslationManagementComponent,
27
+ canActivate: [AuthGuardService],
28
+ data: { title: 'Translations', roles: [ROLE_ADMIN] },
29
+ },
30
+ ];
31
+ export class TranslationManagementRoutingModule {
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TranslationManagementRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
33
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: TranslationManagementRoutingModule, imports: [i1.RouterModule], exports: [RouterModule] }); }
34
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TranslationManagementRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
35
+ }
36
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TranslationManagementRoutingModule, decorators: [{
37
+ type: NgModule,
38
+ args: [{
39
+ imports: [RouterModule.forChild(routes)],
40
+ exports: [RouterModule],
41
+ }]
42
+ }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tbWFuYWdlbWVudC1yb3V0aW5nLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbGF5b3V0L3NyYy9saWIvdHJhbnNsYXRpb24tbWFuYWdlbWVudC1yb3V0aW5nLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBUyxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSxzRUFBc0UsQ0FBQzs7O0FBRXBILE1BQU0sTUFBTSxHQUFXO0lBQ3JCO1FBQ0UsSUFBSSxFQUFFLHdCQUF3QjtRQUM5QixTQUFTLEVBQUUsOEJBQThCO1FBQ3pDLFdBQVcsRUFBRSxDQUFDLGdCQUFnQixDQUFDO1FBQy9CLElBQUksRUFBRSxFQUFDLEtBQUssRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLENBQUMsVUFBVSxDQUFDLEVBQUM7S0FDbkQ7Q0FDRixDQUFDO0FBTUYsTUFBTSxPQUFPLGtDQUFrQzs4R0FBbEMsa0NBQWtDOytHQUFsQyxrQ0FBa0Msd0NBRm5DLFlBQVk7K0dBRVgsa0NBQWtDLFlBSG5DLFlBQVksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQzdCLFlBQVk7OzJGQUVYLGtDQUFrQztrQkFKOUMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7aUJBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGUsIFJvdXRlc30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Uk9MRV9BRE1JTn0gZnJvbSAnQHZhbHRpbW8vY29uZmlnJztcbmltcG9ydCB7QXV0aEd1YXJkU2VydmljZX0gZnJvbSAnQHZhbHRpbW8vc2VjdXJpdHknO1xuaW1wb3J0IHtUcmFuc2xhdGlvbk1hbmFnZW1lbnRDb21wb25lbnR9IGZyb20gJy4vY29tcG9uZW50cy90cmFuc2xhdGlvbi1tYW5hZ2VtZW50L3RyYW5zbGF0aW9uLW1hbmFnZW1lbnQuY29tcG9uZW50JztcblxuY29uc3Qgcm91dGVzOiBSb3V0ZXMgPSBbXG4gIHtcbiAgICBwYXRoOiAndHJhbnNsYXRpb24tbWFuYWdlbWVudCcsXG4gICAgY29tcG9uZW50OiBUcmFuc2xhdGlvbk1hbmFnZW1lbnRDb21wb25lbnQsXG4gICAgY2FuQWN0aXZhdGU6IFtBdXRoR3VhcmRTZXJ2aWNlXSxcbiAgICBkYXRhOiB7dGl0bGU6ICdUcmFuc2xhdGlvbnMnLCByb2xlczogW1JPTEVfQURNSU5dfSxcbiAgfSxcbl07XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtSb3V0ZXJNb2R1bGUuZm9yQ2hpbGQocm91dGVzKV0sXG4gIGV4cG9ydHM6IFtSb3V0ZXJNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbk1hbmFnZW1lbnRSb3V0aW5nTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,66 @@
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 { CommonModule } from '@angular/common';
17
+ import { NgModule } from '@angular/core';
18
+ import { TranslationManagementComponent } from './components/translation-management/translation-management.component';
19
+ import { TranslationManagementRoutingModule } from './translation-management-routing.module';
20
+ import { TranslateModule } from '@ngx-translate/core';
21
+ import { CarbonMultiInputModule, ConfirmationModalModule, MultiInputFormModule, RenderInPageHeaderDirectiveModule, } from '@valtimo/components';
22
+ import { ButtonModule, IconModule, LoadingModule } from 'carbon-components-angular';
23
+ import * as i0 from "@angular/core";
24
+ export class TranslationManagementModule {
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TranslationManagementModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
26
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.3", ngImport: i0, type: TranslationManagementModule, declarations: [TranslationManagementComponent], imports: [CommonModule,
27
+ TranslateModule,
28
+ TranslationManagementRoutingModule,
29
+ MultiInputFormModule,
30
+ CarbonMultiInputModule,
31
+ LoadingModule,
32
+ RenderInPageHeaderDirectiveModule,
33
+ ButtonModule,
34
+ IconModule,
35
+ ConfirmationModalModule] }); }
36
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TranslationManagementModule, imports: [CommonModule,
37
+ TranslateModule,
38
+ TranslationManagementRoutingModule,
39
+ MultiInputFormModule,
40
+ CarbonMultiInputModule,
41
+ LoadingModule,
42
+ RenderInPageHeaderDirectiveModule,
43
+ ButtonModule,
44
+ IconModule,
45
+ ConfirmationModalModule] }); }
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: TranslationManagementModule, decorators: [{
48
+ type: NgModule,
49
+ args: [{
50
+ declarations: [TranslationManagementComponent],
51
+ imports: [
52
+ CommonModule,
53
+ TranslateModule,
54
+ TranslationManagementRoutingModule,
55
+ MultiInputFormModule,
56
+ CarbonMultiInputModule,
57
+ LoadingModule,
58
+ RenderInPageHeaderDirectiveModule,
59
+ ButtonModule,
60
+ IconModule,
61
+ ConfirmationModalModule,
62
+ ],
63
+ exports: [],
64
+ }]
65
+ }] });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tbWFuYWdlbWVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2xheW91dC9zcmMvbGliL3RyYW5zbGF0aW9uLW1hbmFnZW1lbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sc0VBQXNFLENBQUM7QUFDcEgsT0FBTyxFQUFDLGtDQUFrQyxFQUFDLE1BQU0seUNBQXlDLENBQUM7QUFDM0YsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixpQ0FBaUMsR0FDbEMsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQzs7QUFrQmxGLE1BQU0sT0FBTywyQkFBMkI7OEdBQTNCLDJCQUEyQjsrR0FBM0IsMkJBQTJCLGlCQWZ2Qiw4QkFBOEIsYUFFM0MsWUFBWTtZQUNaLGVBQWU7WUFDZixrQ0FBa0M7WUFDbEMsb0JBQW9CO1lBQ3BCLHNCQUFzQjtZQUN0QixhQUFhO1lBQ2IsaUNBQWlDO1lBQ2pDLFlBQVk7WUFDWixVQUFVO1lBQ1YsdUJBQXVCOytHQUlkLDJCQUEyQixZQWJwQyxZQUFZO1lBQ1osZUFBZTtZQUNmLGtDQUFrQztZQUNsQyxvQkFBb0I7WUFDcEIsc0JBQXNCO1lBQ3RCLGFBQWE7WUFDYixpQ0FBaUM7WUFDakMsWUFBWTtZQUNaLFVBQVU7WUFDVix1QkFBdUI7OzJGQUlkLDJCQUEyQjtrQkFoQnZDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsOEJBQThCLENBQUM7b0JBQzlDLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2Ysa0NBQWtDO3dCQUNsQyxvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsYUFBYTt3QkFDYixpQ0FBaUM7d0JBQ2pDLFlBQVk7d0JBQ1osVUFBVTt3QkFDVix1QkFBdUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRSxFQUFFO2lCQUNaIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VHJhbnNsYXRpb25NYW5hZ2VtZW50Q29tcG9uZW50fSBmcm9tICcuL2NvbXBvbmVudHMvdHJhbnNsYXRpb24tbWFuYWdlbWVudC90cmFuc2xhdGlvbi1tYW5hZ2VtZW50LmNvbXBvbmVudCc7XG5pbXBvcnQge1RyYW5zbGF0aW9uTWFuYWdlbWVudFJvdXRpbmdNb2R1bGV9IGZyb20gJy4vdHJhbnNsYXRpb24tbWFuYWdlbWVudC1yb3V0aW5nLm1vZHVsZSc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge1xuICBDYXJib25NdWx0aUlucHV0TW9kdWxlLFxuICBDb25maXJtYXRpb25Nb2RhbE1vZHVsZSxcbiAgTXVsdGlJbnB1dEZvcm1Nb2R1bGUsXG4gIFJlbmRlckluUGFnZUhlYWRlckRpcmVjdGl2ZU1vZHVsZSxcbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge0J1dHRvbk1vZHVsZSwgSWNvbk1vZHVsZSwgTG9hZGluZ01vZHVsZX0gZnJvbSAnY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhcic7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1RyYW5zbGF0aW9uTWFuYWdlbWVudENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIFRyYW5zbGF0aW9uTWFuYWdlbWVudFJvdXRpbmdNb2R1bGUsXG4gICAgTXVsdGlJbnB1dEZvcm1Nb2R1bGUsXG4gICAgQ2FyYm9uTXVsdGlJbnB1dE1vZHVsZSxcbiAgICBMb2FkaW5nTW9kdWxlLFxuICAgIFJlbmRlckluUGFnZUhlYWRlckRpcmVjdGl2ZU1vZHVsZSxcbiAgICBCdXR0b25Nb2R1bGUsXG4gICAgSWNvbk1vZHVsZSxcbiAgICBDb25maXJtYXRpb25Nb2RhbE1vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uTWFuYWdlbWVudE1vZHVsZSB7fVxuIl19
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright 2015-2023 Ritense BV, the Netherlands.
2
+ * Copyright 2015-2024 Ritense BV, the Netherlands.
3
3
  *
4
4
  * Licensed under EUPL, Version 1.2 (the "License");
5
5
  * you may not use this file except in compliance with the License.
@@ -19,4 +19,5 @@
19
19
  export * from './lib/services/layout/layout.service';
20
20
  export * from './lib/components/layout/layout.component';
21
21
  export * from './lib/layout.module';
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbGF5b3V0L3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUg7O0dBRUc7QUFFSCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxxQkFBcUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDIzIFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgbGF5b3V0XG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbGF5b3V0L2xheW91dC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbGF5b3V0L2xheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbGF5b3V0Lm1vZHVsZSc7XG4iXX0=
22
+ export * from './lib/translation-management.module';
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2FwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbGF5b3V0L3NyYy9wdWJsaWNfYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUg7O0dBRUc7QUFFSCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAyMDE1LTIwMjQgUml0ZW5zZSBCViwgdGhlIE5ldGhlcmxhbmRzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogaHR0cHM6Ly9qb2ludXAuZWMuZXVyb3BhLmV1L2NvbGxlY3Rpb24vZXVwbC9ldXBsLXRleHQtZXVwbC0xMlxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBiYXNpcyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBsYXlvdXRcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9sYXlvdXQvbGF5b3V0LnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9sYXlvdXQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RyYW5zbGF0aW9uLW1hbmFnZW1lbnQubW9kdWxlJztcbiJdfQ==