@valtimo/layout 12.2.1 → 12.4.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.
@@ -42,13 +42,13 @@ export class LayoutInternalComponent {
42
42
  this._observer.disconnect();
43
43
  }
44
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutInternalComponent, deps: [{ token: i1.LayoutService }, { token: i0.Renderer2 }, { token: i2.UserInterfaceService }, { token: i2.ShellService }], target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LayoutInternalComponent, selector: "valtimo-layout-internal", viewQueries: [{ propertyName: "mainContentRef", first: true, predicate: ["mainContent"], descendants: true }], 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<valtimo-topbar></valtimo-topbar>\n<main\n class=\"cds--content\"\n [ngClass]=\"{\n 'cds--content--sidebar':\n (sideBarExpanded$ | async) && (collapsibleWidescreenMenu$ | async) === false\n }\"\n #mainContent\n>\n <valtimo-left-sidebar [hidden]=\"layoutService.isFullscreen\"></valtimo-left-sidebar>\n <valtimo-alert></valtimo-alert>\n <valtimo-page-header [hidden]=\"layoutService.isFullscreen\"></valtimo-page-header>\n <router-outlet></router-outlet>\n <valtimo-right-sidebar></valtimo-right-sidebar>\n <v-prompt></v-prompt>\n</main>\n", styles: ["::ng-deep .cds--content{padding-top:24px!important}@media screen and (max-width: 767px){.be-content{margin-left:0!important}}@media only screen and (min-width: 1056px){.cds--content--sidebar{padding-left:18rem}}\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: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i2.TopbarComponent, selector: "valtimo-topbar" }, { kind: "component", type: i2.LeftSidebarComponent, selector: "valtimo-left-sidebar" }, { kind: "component", type: i2.RightSidebarComponent, selector: "valtimo-right-sidebar" }, { kind: "component", type: i2.PageHeaderComponent, selector: "valtimo-page-header" }, { kind: "component", type: i2.AlertComponent, selector: "valtimo-alert" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.PromptComponent, selector: "v-prompt", inputs: ["appearingDelayMs", "maxWidthPx"], outputs: ["closeEvent"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LayoutInternalComponent, selector: "valtimo-layout-internal", viewQueries: [{ propertyName: "mainContentRef", first: true, predicate: ["mainContent"], descendants: true }], 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<valtimo-topbar></valtimo-topbar>\n<main\n class=\"cds--content\"\n [ngClass]=\"{\n 'cds--content--sidebar':\n (sideBarExpanded$ | async) && (collapsibleWidescreenMenu$ | async) === false,\n }\"\n #mainContent\n>\n <valtimo-left-sidebar [hidden]=\"layoutService.isFullscreen\"></valtimo-left-sidebar>\n <valtimo-alert></valtimo-alert>\n <valtimo-page-header [hidden]=\"layoutService.isFullscreen\"></valtimo-page-header>\n <router-outlet></router-outlet>\n <valtimo-right-sidebar></valtimo-right-sidebar>\n <v-prompt></v-prompt>\n</main>\n", styles: ["::ng-deep .cds--content{padding-top:24px!important}@media screen and (max-width: 767px){.be-content{margin-left:0!important}}@media only screen and (min-width: 1056px){.cds--content--sidebar{padding-left:18rem}}\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: i3.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i2.TopbarComponent, selector: "valtimo-topbar" }, { kind: "component", type: i2.LeftSidebarComponent, selector: "valtimo-left-sidebar" }, { kind: "component", type: i2.RightSidebarComponent, selector: "valtimo-right-sidebar" }, { kind: "component", type: i2.PageHeaderComponent, selector: "valtimo-page-header" }, { kind: "component", type: i2.AlertComponent, selector: "valtimo-alert" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.PromptComponent, selector: "v-prompt", inputs: ["appearingDelayMs", "maxWidthPx"], outputs: ["closeEvent"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
46
46
  }
47
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutInternalComponent, decorators: [{
48
48
  type: Component,
49
- args: [{ selector: 'valtimo-layout-internal', 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<valtimo-topbar></valtimo-topbar>\n<main\n class=\"cds--content\"\n [ngClass]=\"{\n 'cds--content--sidebar':\n (sideBarExpanded$ | async) && (collapsibleWidescreenMenu$ | async) === false\n }\"\n #mainContent\n>\n <valtimo-left-sidebar [hidden]=\"layoutService.isFullscreen\"></valtimo-left-sidebar>\n <valtimo-alert></valtimo-alert>\n <valtimo-page-header [hidden]=\"layoutService.isFullscreen\"></valtimo-page-header>\n <router-outlet></router-outlet>\n <valtimo-right-sidebar></valtimo-right-sidebar>\n <v-prompt></v-prompt>\n</main>\n", styles: ["::ng-deep .cds--content{padding-top:24px!important}@media screen and (max-width: 767px){.be-content{margin-left:0!important}}@media only screen and (min-width: 1056px){.cds--content--sidebar{padding-left:18rem}}\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"] }]
49
+ args: [{ selector: 'valtimo-layout-internal', 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<valtimo-topbar></valtimo-topbar>\n<main\n class=\"cds--content\"\n [ngClass]=\"{\n 'cds--content--sidebar':\n (sideBarExpanded$ | async) && (collapsibleWidescreenMenu$ | async) === false,\n }\"\n #mainContent\n>\n <valtimo-left-sidebar [hidden]=\"layoutService.isFullscreen\"></valtimo-left-sidebar>\n <valtimo-alert></valtimo-alert>\n <valtimo-page-header [hidden]=\"layoutService.isFullscreen\"></valtimo-page-header>\n <router-outlet></router-outlet>\n <valtimo-right-sidebar></valtimo-right-sidebar>\n <v-prompt></v-prompt>\n</main>\n", styles: ["::ng-deep .cds--content{padding-top:24px!important}@media screen and (max-width: 767px){.be-content{margin-left:0!important}}@media only screen and (min-width: 1056px){.cds--content--sidebar{padding-left:18rem}}\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"] }]
50
50
  }], ctorParameters: () => [{ type: i1.LayoutService }, { type: i0.Renderer2 }, { type: i2.UserInterfaceService }, { type: i2.ShellService }], propDecorators: { mainContentRef: [{
51
51
  type: ViewChild,
52
52
  args: ['mainContent']
53
53
  }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWludGVybmFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbGF5b3V0L3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQtaW50ZXJuYWwvbGF5b3V0LWludGVybmFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbGF5b3V0L3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQtaW50ZXJuYWwvbGF5b3V0LWludGVybmFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFnQixTQUFTLEVBQW9DLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBWXBHLE1BQU0sT0FBTyx1QkFBdUI7SUFTbEMsWUFDUyxhQUE0QixFQUNsQixRQUFtQixFQUNuQixvQkFBMEMsRUFDMUMsWUFBMEI7UUFIcEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBVjdCLG9CQUFlLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQztRQUM1RCxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO1FBQ3RELCtCQUEwQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsMEJBQTBCLENBQUM7UUFVeEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sZUFBZTtRQUNwQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUM7K0dBN0JVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDhLQzVCcEMsOHJDQWdDQTs7NEZESmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHlCQUF5Qjt3S0FLVCxjQUFjO3NCQUF2QyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBSZW5kZXJlcjIsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xheW91dFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xheW91dC9sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQge1NoZWxsU2VydmljZSwgVXNlckludGVyZmFjZVNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdmFyXG5kZWNsYXJlIHZhciBBcHA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tbGF5b3V0LWludGVybmFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC1pbnRlcm5hbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xheW91dC1pbnRlcm5hbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRJbnRlcm5hbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ21haW5Db250ZW50JykgbWFpbkNvbnRlbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNob3dQYWdlSGVhZGVyJCA9IHRoaXMudXNlckludGVyZmFjZVNlcnZpY2Uuc2hvd1BhZ2VIZWFkZXIkO1xuICBwdWJsaWMgcmVhZG9ubHkgc2lkZUJhckV4cGFuZGVkJCA9IHRoaXMuc2hlbGxTZXJ2aWNlLnNpZGVCYXJFeHBhbmRlZCQ7XG4gIHB1YmxpYyByZWFkb25seSBjb2xsYXBzaWJsZVdpZGVzY3JlZW5NZW51JCA9IHRoaXMuc2hlbGxTZXJ2aWNlLmNvbGxhcHNpYmxlV2lkZXNjcmVlbk1lbnUkO1xuXG4gIHByaXZhdGUgX29ic2VydmVyITogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlckludGVyZmFjZVNlcnZpY2U6IFVzZXJJbnRlcmZhY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2hlbGxTZXJ2aWNlOiBTaGVsbFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhkb2N1bWVudC5ib2R5LCAnYmUtYW5pbWF0ZScpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBBcHAuaW5pdCgpO1xuICAgIHRoaXMuc2hlbGxTZXJ2aWNlLnNldENvbnRlbnRFbGVtZW50KHRoaXMubWFpbkNvbnRlbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5fb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgdGhpcy5zaGVsbFNlcnZpY2Uub25NYWluQ29udGVudFJlc2l6ZSgpO1xuICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5tYWluQ29udGVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHZhbHRpbW8tdG9wYmFyPjwvdmFsdGltby10b3BiYXI+XG48bWFpblxuICBjbGFzcz1cImNkcy0tY29udGVudFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnY2RzLS1jb250ZW50LS1zaWRlYmFyJzpcbiAgICAgIChzaWRlQmFyRXhwYW5kZWQkIHwgYXN5bmMpICYmIChjb2xsYXBzaWJsZVdpZGVzY3JlZW5NZW51JCB8IGFzeW5jKSA9PT0gZmFsc2VcbiAgfVwiXG4gICNtYWluQ29udGVudFxuPlxuICA8dmFsdGltby1sZWZ0LXNpZGViYXIgW2hpZGRlbl09XCJsYXlvdXRTZXJ2aWNlLmlzRnVsbHNjcmVlblwiPjwvdmFsdGltby1sZWZ0LXNpZGViYXI+XG4gIDx2YWx0aW1vLWFsZXJ0PjwvdmFsdGltby1hbGVydD5cbiAgPHZhbHRpbW8tcGFnZS1oZWFkZXIgW2hpZGRlbl09XCJsYXlvdXRTZXJ2aWNlLmlzRnVsbHNjcmVlblwiPjwvdmFsdGltby1wYWdlLWhlYWRlcj5cbiAgPHJvdXRlci1vdXRsZXQ+PC9yb3V0ZXItb3V0bGV0PlxuICA8dmFsdGltby1yaWdodC1zaWRlYmFyPjwvdmFsdGltby1yaWdodC1zaWRlYmFyPlxuICA8di1wcm9tcHQ+PC92LXByb21wdD5cbjwvbWFpbj5cbiJdfQ==
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWludGVybmFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbGF5b3V0L3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQtaW50ZXJuYWwvbGF5b3V0LWludGVybmFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbGF5b3V0L3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQtaW50ZXJuYWwvbGF5b3V0LWludGVybmFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBRUgsT0FBTyxFQUFnQixTQUFTLEVBQW9DLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7Ozs7O0FBWXBHLE1BQU0sT0FBTyx1QkFBdUI7SUFTbEMsWUFDUyxhQUE0QixFQUNsQixRQUFtQixFQUNuQixvQkFBMEMsRUFDMUMsWUFBMEI7UUFIcEMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBVjdCLG9CQUFlLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQztRQUM1RCxxQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDO1FBQ3RELCtCQUEwQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsMEJBQTBCLENBQUM7UUFVeEYsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxZQUFZLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU0sZUFBZTtRQUNwQixHQUFHLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxHQUFHLEVBQUU7WUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzlCLENBQUM7K0dBN0JVLHVCQUF1QjttR0FBdkIsdUJBQXVCLDhLQzVCcEMsK3JDQWdDQTs7NEZESmEsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLHlCQUF5Qjt3S0FLVCxjQUFjO3NCQUF2QyxTQUFTO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IDIwMTUtMjAyNCBSaXRlbnNlIEJWLCB0aGUgTmV0aGVybGFuZHMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgRVVQTCwgVmVyc2lvbiAxLjIgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiBodHRwczovL2pvaW51cC5lYy5ldXJvcGEuZXUvY29sbGVjdGlvbi9ldXBsL2V1cGwtdGV4dC1ldXBsLTEyXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIGJhc2lzLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBSZW5kZXJlcjIsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xheW91dFNlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xheW91dC9sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQge1NoZWxsU2VydmljZSwgVXNlckludGVyZmFjZVNlcnZpY2V9IGZyb20gJ0B2YWx0aW1vL2NvbXBvbmVudHMnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdmFyXG5kZWNsYXJlIHZhciBBcHA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZhbHRpbW8tbGF5b3V0LWludGVybmFsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC1pbnRlcm5hbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xheW91dC1pbnRlcm5hbC5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBMYXlvdXRJbnRlcm5hbENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIEBWaWV3Q2hpbGQoJ21haW5Db250ZW50JykgbWFpbkNvbnRlbnRSZWY6IEVsZW1lbnRSZWY7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNob3dQYWdlSGVhZGVyJCA9IHRoaXMudXNlckludGVyZmFjZVNlcnZpY2Uuc2hvd1BhZ2VIZWFkZXIkO1xuICBwdWJsaWMgcmVhZG9ubHkgc2lkZUJhckV4cGFuZGVkJCA9IHRoaXMuc2hlbGxTZXJ2aWNlLnNpZGVCYXJFeHBhbmRlZCQ7XG4gIHB1YmxpYyByZWFkb25seSBjb2xsYXBzaWJsZVdpZGVzY3JlZW5NZW51JCA9IHRoaXMuc2hlbGxTZXJ2aWNlLmNvbGxhcHNpYmxlV2lkZXNjcmVlbk1lbnUkO1xuXG4gIHByaXZhdGUgX29ic2VydmVyITogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGxheW91dFNlcnZpY2U6IExheW91dFNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlckludGVyZmFjZVNlcnZpY2U6IFVzZXJJbnRlcmZhY2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2hlbGxTZXJ2aWNlOiBTaGVsbFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyhkb2N1bWVudC5ib2R5LCAnYmUtYW5pbWF0ZScpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBBcHAuaW5pdCgpO1xuICAgIHRoaXMuc2hlbGxTZXJ2aWNlLnNldENvbnRlbnRFbGVtZW50KHRoaXMubWFpbkNvbnRlbnRSZWYubmF0aXZlRWxlbWVudCk7XG4gICAgdGhpcy5fb2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgdGhpcy5zaGVsbFNlcnZpY2Uub25NYWluQ29udGVudFJlc2l6ZSgpO1xuICAgIH0pO1xuICAgIHRoaXMuX29ic2VydmVyLm9ic2VydmUodGhpcy5tYWluQ29udGVudFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPHZhbHRpbW8tdG9wYmFyPjwvdmFsdGltby10b3BiYXI+XG48bWFpblxuICBjbGFzcz1cImNkcy0tY29udGVudFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnY2RzLS1jb250ZW50LS1zaWRlYmFyJzpcbiAgICAgIChzaWRlQmFyRXhwYW5kZWQkIHwgYXN5bmMpICYmIChjb2xsYXBzaWJsZVdpZGVzY3JlZW5NZW51JCB8IGFzeW5jKSA9PT0gZmFsc2UsXG4gIH1cIlxuICAjbWFpbkNvbnRlbnRcbj5cbiAgPHZhbHRpbW8tbGVmdC1zaWRlYmFyIFtoaWRkZW5dPVwibGF5b3V0U2VydmljZS5pc0Z1bGxzY3JlZW5cIj48L3ZhbHRpbW8tbGVmdC1zaWRlYmFyPlxuICA8dmFsdGltby1hbGVydD48L3ZhbHRpbW8tYWxlcnQ+XG4gIDx2YWx0aW1vLXBhZ2UtaGVhZGVyIFtoaWRkZW5dPVwibGF5b3V0U2VydmljZS5pc0Z1bGxzY3JlZW5cIj48L3ZhbHRpbW8tcGFnZS1oZWFkZXI+XG4gIDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cbiAgPHZhbHRpbW8tcmlnaHQtc2lkZWJhcj48L3ZhbHRpbW8tcmlnaHQtc2lkZWJhcj5cbiAgPHYtcHJvbXB0Pjwvdi1wcm9tcHQ+XG48L21haW4+XG4iXX0=
@@ -173,13 +173,13 @@ export class TranslationManagementComponent {
173
173
  });
174
174
  }
175
175
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", 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.12", 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" }] }); }
176
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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
177
  }
178
178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslationManagementComponent, decorators: [{
179
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"] }]
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
181
  }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i2.LocalizationService }, { type: i3.PageHeaderService }, { type: Document, decorators: [{
182
182
  type: Inject,
183
183
  args: [DOCUMENT]
184
184
  }] }] });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tbWFuYWdlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2xheW91dC9zcmMvbGliL2NvbXBvbmVudHMvdHJhbnNsYXRpb24tbWFuYWdlbWVudC90cmFuc2xhdGlvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbGF5b3V0L3NyYy9saWIvY29tcG9uZW50cy90cmFuc2xhdGlvbi1tYW5hZ2VtZW50L3RyYW5zbGF0aW9uLW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFTM0YsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUMvQixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFPekMsTUFBTSxPQUFPLDhCQUE4QjtJQTZEekMsWUFDbUIsZ0JBQWtDLEVBQ2xDLG1CQUF3QyxFQUN4QyxpQkFBb0MsRUFDbEIsUUFBa0I7UUFIcEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWhFdkMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQzlDLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUFVLEtB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QkFBbUIsSUFBSSxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sa0NBQWtDLEdBQ3RDLHlCQUF5QixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUU3RSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUNuRixNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztZQUUvQixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyx1QkFBdUIsQ0FBQztZQUVuRCxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNoRCxtQkFBbUIsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNGLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxtQkFBbUIsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBaE9VLDhCQUE4QixzSEFpRS9CLFFBQVE7bUdBakVQLDhCQUE4QixzRUNsQzNDLHMvRkE4RUE7OzRGRDVDYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0UsZ0NBQWdDOzswQkFxRXZDLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtMb2NhbGl6YXRpb24sIExvY2FsaXphdGlvblNlcnZpY2UsIE1lcmdlZExvY2FsaXphdGlvbnN9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge1xuICBBcmJpdHJhcnlJbnB1dFRpdGxlcyxcbiAgTXVsdGlJbnB1dEtleVZhbHVlLFxuICBNdWx0aUlucHV0T3V0cHV0LFxuICBQYWdlSGVhZGVyU2VydmljZSxcbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge2lzRXF1YWx9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXRyYW5zbGF0aW9uLW1hbmFnZW1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJhbnNsYXRpb24tbWFuYWdlbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RyYW5zbGF0aW9uLW1hbmFnZW1lbnQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25NYW5hZ2VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHJlYWRvbmx5IGFsbENoYW5nZWRWYWx1ZXNWYWxpZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+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==
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tbWFuYWdlbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92YWx0aW1vL2xheW91dC9zcmMvbGliL2NvbXBvbmVudHMvdHJhbnNsYXRpb24tbWFuYWdlbWVudC90cmFuc2xhdGlvbi1tYW5hZ2VtZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZhbHRpbW8vbGF5b3V0L3NyYy9saWIvY29tcG9uZW50cy90cmFuc2xhdGlvbi1tYW5hZ2VtZW50L3RyYW5zbGF0aW9uLW1hbmFnZW1lbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN4RCxPQUFPLEVBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQWMsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFTM0YsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLFFBQVEsQ0FBQztBQUMvQixPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7QUFPekMsTUFBTSxPQUFPLDhCQUE4QjtJQTZEekMsWUFDbUIsZ0JBQWtDLEVBQ2xDLG1CQUF3QyxFQUN4QyxpQkFBb0MsRUFDbEIsUUFBa0I7UUFIcEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ3hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQWhFdkMsYUFBUSxHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQzlDLDJCQUFzQixHQUFHLElBQUksZUFBZSxDQUFVLEtB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QkFBbUIsSUFBSSxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBQ2xFLE1BQU0sa0NBQWtDLEdBQ3RDLHlCQUF5QixJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUU3RSxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLENBQUMsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsRUFBRTtZQUNuRixNQUFNLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztZQUUvQixtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyx1QkFBdUIsQ0FBQztZQUVuRCxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNoRCxtQkFBbUIsQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNGLENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxtQkFBbUIsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBaE9VLDhCQUE4QixzSEFpRS9CLFFBQVE7bUdBakVQLDhCQUE4QixzRUNsQzNDLHUvRkE4RUE7OzRGRDVDYSw4QkFBOEI7a0JBTDFDLFNBQVM7K0JBQ0UsZ0NBQWdDOzswQkFxRXZDLE1BQU07MkJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciBFVVBMLCBWZXJzaW9uIDEuMiAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqIGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBPYnNlcnZhYmxlLCBzd2l0Y2hNYXAsIHRha2UsIHRhcH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtMb2NhbGl6YXRpb24sIExvY2FsaXphdGlvblNlcnZpY2UsIE1lcmdlZExvY2FsaXphdGlvbnN9IGZyb20gJ0B2YWx0aW1vL2NvbmZpZyc7XG5pbXBvcnQge1xuICBBcmJpdHJhcnlJbnB1dFRpdGxlcyxcbiAgTXVsdGlJbnB1dEtleVZhbHVlLFxuICBNdWx0aUlucHV0T3V0cHV0LFxuICBQYWdlSGVhZGVyU2VydmljZSxcbn0gZnJvbSAnQHZhbHRpbW8vY29tcG9uZW50cyc7XG5pbXBvcnQge2lzRXF1YWx9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2YWx0aW1vLXRyYW5zbGF0aW9uLW1hbmFnZW1lbnQnLFxuICB0ZW1wbGF0ZVVybDogJy4vdHJhbnNsYXRpb24tbWFuYWdlbWVudC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3RyYW5zbGF0aW9uLW1hbmFnZW1lbnQuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVHJhbnNsYXRpb25NYW5hZ2VtZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0cnVlKTtcbiAgcHVibGljIHJlYWRvbmx5IGFsbENoYW5nZWRWYWx1ZXNWYWxpZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2xhbmd1YWdlT3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFycmF5PHN0cmluZz4+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3JlZnJlc2hMb2NhbGl6YXRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVsbD4obnVsbCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2xvY2FsaXphdGlvblRyYW5zbGF0aW9ucyQgPSB0aGlzLl9yZWZyZXNoTG9jYWxpemF0aW9ucyQucGlwZShcbiAgICB0YXAoKCkgPT4gdGhpcy5sb2FkaW5nJC5uZXh0KHRydWUpKSxcbiAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmdldE1lcmdlZExvY2FsaXphdGlvbnMoKSksXG4gICAgdGFwKCgpID0+IHRoaXMubG9hZGluZyQubmV4dChmYWxzZSkpXG4gICk7XG5cbiAgcHJpdmF0ZSBfZGVmYXVsdFZhbHVlczogQXJyYXk8TXVsdGlJbnB1dEtleVZhbHVlPiA9IFtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2NoYW5nZWRWYWx1ZXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNdWx0aUlucHV0T3V0cHV0Pih1bmRlZmluZWQpO1xuXG4gIHB1YmxpYyByZWFkb25seSBzaG93Q29uZmlybWF0aW9uTW9kYWwkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHZhbHVlc0NoYW5nZWQkOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5fY2hhbmdlZFZhbHVlcyQucGlwZShcbiAgICBtYXAoY2hhbmdlZFZhbHVlcyA9PiAhaXNFcXVhbChjaGFuZ2VkVmFsdWVzLCB0aGlzLl9kZWZhdWx0VmFsdWVzKSlcbiAgKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgbG9jYWxpemF0aW9uVHJhbnNsYXRpb25WYWx1ZXMkOiBPYnNlcnZhYmxlPEFycmF5PE11bHRpSW5wdXRLZXlWYWx1ZT4+ID1cbiAgICBjb21iaW5lTGF0ZXN0KFtcbiAgICAgIHRoaXMuX2xhbmd1YWdlT3B0aW9ucyQsXG4gICAgICB0aGlzLl9sb2NhbGl6YXRpb25UcmFuc2xhdGlvbnMkLFxuICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSgna2V5JyksXG4gICAgXSkucGlwZShcbiAgICAgIG1hcCgoW2xhbmd1YWdlT3B0aW9ucywgbG9jYWxpemF0aW9uVHJhbnNsYXRpb25zXSkgPT5cbiAgICAgICAgdGhpcy5tYXBNZXJnZWRMb2NhbGl6YXRpb25zVG9NdWx0aUlucHV0KGxhbmd1YWdlT3B0aW9ucywgbG9jYWxpemF0aW9uVHJhbnNsYXRpb25zKVxuICAgICAgKSxcbiAgICAgIHRhcChkZWZhdWx0VmFsdWVzID0+IHtcbiAgICAgICAgdGhpcy5fZGVmYXVsdFZhbHVlcyA9IGRlZmF1bHRWYWx1ZXM7XG4gICAgICB9KVxuICAgICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IG11bHRpSW5wdXRUaWxlcyQ6IE9ic2VydmFibGU8QXJiaXRyYXJ5SW5wdXRUaXRsZXM+ID0gY29tYmluZUxhdGVzdChbXG4gICAgdGhpcy5fbGFuZ3VhZ2VPcHRpb25zJCxcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2Uuc3RyZWFtKCdrZXknKSxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtsYW5ndWFnZU9wdGlvbnNdKSA9PiB7XG4gICAgICBjb25zdCBvYmpUb1JldHVybiA9IHt9O1xuICAgICAgb2JqVG9SZXR1cm5bMF0gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnbGlzdENvbHVtbi5rZXknKTtcblxuICAgICAgbGFuZ3VhZ2VPcHRpb25zLmZvckVhY2goKGxhbmd1YWdlT3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICBvYmpUb1JldHVybltpbmRleCArIDFdID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgYHNldHRpbmdzLmxhbmd1YWdlLm9wdGlvbnMuJHtsYW5ndWFnZU9wdGlvbn1gXG4gICAgICAgICk7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIG9ialRvUmV0dXJuO1xuICAgIH0pXG4gICk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGFtb3VudE9mQXJiaXRyYXJ5VmFsdWVzJDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy5tdWx0aUlucHV0VGlsZXMkLnBpcGUoXG4gICAgbWFwKG11bHRpSW5wdXRUaXRsZXMgPT4gT2JqZWN0LmtleXMobXVsdGlJbnB1dFRpdGxlcykubGVuZ3RoKVxuICApO1xuXG4gIHB1YmxpYyByZWFkb25seSBjb21wYWN0TW9kZSQgPSB0aGlzLnBhZ2VIZWFkZXJTZXJ2aWNlLmNvbXBhY3RNb2RlJDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGFnZUhlYWRlclNlcnZpY2U6IFBhZ2VIZWFkZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgcmVhZG9ubHkgZG9jdW1lbnQ6IERvY3VtZW50XG4gICkge31cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRMYW5ndWFnZXMoKTtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZENoYW5nZSh2YWxpZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuYWxsQ2hhbmdlZFZhbHVlc1ZhbGlkJC5uZXh0KHZhbGlkKTtcbiAgfVxuXG4gIHB1YmxpYyB2YWx1ZUNoYW5nZSh2YWx1ZTogTXVsdGlJbnB1dE91dHB1dCk6IHZvaWQge1xuICAgIHRoaXMuX2NoYW5nZWRWYWx1ZXMkLm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHNhdmVBbmRSZWZyZXNoKCk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZUNoYW5nZXModHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZUFuZFN0YXkoKTogdm9pZCB7XG4gICAgdGhpcy5zYXZlQ2hhbmdlcygpO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbCgpOiB2b2lkIHtcbiAgICB0aGlzLmhpZGVNb2RhbCgpO1xuICB9XG5cbiAgcHVibGljIHNob3dNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDb25maXJtYXRpb25Nb2RhbCQubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlQ2hhbmdlcyhyZWxvYWQgPSBmYWxzZSk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZSgpO1xuXG4gICAgY29tYmluZUxhdGVzdChbdGhpcy5fY2hhbmdlZFZhbHVlcyQsIHRoaXMuX2xhbmd1YWdlT3B0aW9ucyRdKVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2UoMSksXG4gICAgICAgIG1hcCgoW2NoYW5nZWRWYWx1ZXMsIGxhbmd1YWdlT3B0aW9uc10pID0+XG4gICAgICAgICAgdGhpcy5nZXRMb2NhbGl6YXRpb25zRm9yVXBkYXRlUmVxdWVzdChjaGFuZ2VkVmFsdWVzLCBsYW5ndWFnZU9wdGlvbnMpXG4gICAgICAgICksXG4gICAgICAgIHN3aXRjaE1hcCh1cGRhdGVkTG9jYWxpemF0aW9ucyA9PlxuICAgICAgICAgIHRoaXMubG9jYWxpemF0aW9uU2VydmljZS51cGRhdGVMb2NhbGl6YXRpb25zKHVwZGF0ZWRMb2NhbGl6YXRpb25zKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHJlbG9hZCkge1xuICAgICAgICAgIHRoaXMuZG9jdW1lbnQ/LmRlZmF1bHRWaWV3Py5sb2NhdGlvbj8ucmVsb2FkKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5fcmVmcmVzaExvY2FsaXphdGlvbnMkLm5leHQobnVsbCk7XG4gICAgICAgICAgdGhpcy5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNldExhbmd1YWdlcygpOiB2b2lkIHtcbiAgICB0aGlzLl9sYW5ndWFnZU9wdGlvbnMkLm5leHQodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmxhbmdzKTtcbiAgfVxuXG4gIHByaXZhdGUgZGlzYWJsZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbmFibGUoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlZCQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGhpZGVNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDb25maXJtYXRpb25Nb2RhbCQubmV4dChmYWxzZSk7XG4gIH1cblxuICBwcml2YXRlIGZsYXR0ZW5PYmplY3Qob2I6IG9iamVjdCk6IG9iamVjdCB7XG4gICAgY29uc3QgdG9SZXR1cm4gPSB7fTtcblxuICAgIGZvciAoY29uc3QgaSBpbiBvYikge1xuICAgICAgaWYgKCFvYi5oYXNPd25Qcm9wZXJ0eShpKSkgY29udGludWU7XG5cbiAgICAgIGlmICh0eXBlb2Ygb2JbaV0gPT0gJ29iamVjdCcgJiYgb2JbaV0gIT09IG51bGwpIHtcbiAgICAgICAgY29uc3QgZmxhdE9iamVjdCA9IHRoaXMuZmxhdHRlbk9iamVjdChvYltpXSk7XG4gICAgICAgIGZvciAoY29uc3QgeCBpbiBmbGF0T2JqZWN0KSB7XG4gICAgICAgICAgaWYgKCFmbGF0T2JqZWN0Lmhhc093blByb3BlcnR5KHgpKSBjb250aW51ZTtcblxuICAgICAgICAgIHRvUmV0dXJuW2kgKyAnLicgKyB4XSA9IGZsYXRPYmplY3RbeF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRvUmV0dXJuW2ldID0gb2JbaV07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0b1JldHVybjtcbiAgfVxuXG4gIHByaXZhdGUgdW5mbGF0dGVuT2JqZWN0KG9iajogb2JqZWN0LCBkZWxpbWl0ZXIgPSAnLicpOiBvYmplY3Qge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyhvYmopLnJlZHVjZSgocmVzLCBrKSA9PiB7XG4gICAgICBrLnNwbGl0KGRlbGltaXRlcikucmVkdWNlKFxuICAgICAgICAoYWNjLCBlLCBpLCBrZXlzKSA9PlxuICAgICAgICAgIGFjY1tlXSB8fFxuICAgICAgICAgIChhY2NbZV0gPSBpc05hTihOdW1iZXIoa2V5c1tpICsgMV0pKSA/IChrZXlzLmxlbmd0aCAtIDEgPT09IGkgPyBvYmpba10gOiB7fSkgOiBbXSksXG4gICAgICAgIHJlc1xuICAgICAgKTtcbiAgICAgIHJldHVybiByZXM7XG4gICAgfSwge30pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRMb2NhbGl6YXRpb25zRm9yVXBkYXRlUmVxdWVzdChcbiAgICBjaGFuZ2VkVmFsdWVzOiBNdWx0aUlucHV0T3V0cHV0LFxuICAgIGxhbmd1YWdlT3B0aW9uczogc3RyaW5nW11cbiAgKTogTG9jYWxpemF0aW9uW10ge1xuICAgIGNvbnN0IGxvY2FsaXphdGlvbnM6IExvY2FsaXphdGlvbltdID0gW107XG4gICAgY29uc3QgdHJhbnNsYXRpb25PYmplY3QgPSB7fTtcblxuICAgIGxhbmd1YWdlT3B0aW9ucy5mb3JFYWNoKGxhbmd1YWdlT3B0aW9uID0+IHtcbiAgICAgIHRyYW5zbGF0aW9uT2JqZWN0W2xhbmd1YWdlT3B0aW9uXSA9IHt9O1xuICAgIH0pO1xuXG4gICAgY2hhbmdlZFZhbHVlcy5mb3JFYWNoKGNoYW5nZWRWYWx1ZSA9PiB7XG4gICAgICBsYW5ndWFnZU9wdGlvbnMuZm9yRWFjaCgobGFuZ3VhZ2VPcHRpb24sIGluZGV4KSA9PiB7XG4gICAgICAgIHRyYW5zbGF0aW9uT2JqZWN0W2xhbmd1YWdlT3B0aW9uXSA9IHtcbiAgICAgICAgICAuLi50cmFuc2xhdGlvbk9iamVjdFtsYW5ndWFnZU9wdGlvbl0sXG4gICAgICAgICAgW2NoYW5nZWRWYWx1ZVswXV06IGNoYW5nZWRWYWx1ZVtpbmRleCArIDFdLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBsYW5ndWFnZU9wdGlvbnMuZm9yRWFjaChsYW5ndWFnZU9wdGlvbiA9PiB7XG4gICAgICB0cmFuc2xhdGlvbk9iamVjdFtsYW5ndWFnZU9wdGlvbl0gPSB0aGlzLnVuZmxhdHRlbk9iamVjdCh0cmFuc2xhdGlvbk9iamVjdFtsYW5ndWFnZU9wdGlvbl0pO1xuICAgIH0pO1xuXG4gICAgT2JqZWN0LmtleXModHJhbnNsYXRpb25PYmplY3QpLmZvckVhY2gobGFuZ3VhZ2VLZXkgPT4ge1xuICAgICAgbG9jYWxpemF0aW9ucy5wdXNoKHtsYW5ndWFnZUtleSwgY29udGVudDogdHJhbnNsYXRpb25PYmplY3RbbGFuZ3VhZ2VLZXldfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbG9jYWxpemF0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgbWFwTWVyZ2VkTG9jYWxpemF0aW9uc1RvTXVsdGlJbnB1dChcbiAgICBsYW5ndWFnZU9wdGlvbnM6IHN0cmluZ1tdLFxuICAgIG1lcmdlZExvY2FsaXphdGlvbnM6IE1lcmdlZExvY2FsaXphdGlvbnNcbiAgKSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKG1lcmdlZExvY2FsaXphdGlvbnMpLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IGZpcnN0TGFuZ3VhZ2VPcHRpb24gPSBsYW5ndWFnZU9wdGlvbnNbMF07XG4gICAgY29uc3QgZmlyc3RMYW5ndWFnZVRyYW5zbGF0aW9ucyA9XG4gICAgICBmaXJzdExhbmd1YWdlT3B0aW9uICYmIG1lcmdlZExvY2FsaXphdGlvbnNbZmlyc3RMYW5ndWFnZU9wdGlvbl07XG4gICAgY29uc3QgZmxhdHRlbmVkRmlyc3RMYW5ndWFnZVRyYW5zbGF0aW9ucyA9XG4gICAgICBmaXJzdExhbmd1YWdlVHJhbnNsYXRpb25zICYmIHRoaXMuZmxhdHRlbk9iamVjdChmaXJzdExhbmd1YWdlVHJhbnNsYXRpb25zKTtcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhmbGF0dGVuZWRGaXJzdExhbmd1YWdlVHJhbnNsYXRpb25zKS5tYXAoZmxhdHRlbmVkVHJhbnNsYXRpb25LZXkgPT4ge1xuICAgICAgY29uc3QgZW1wdHlBcmJpdHJhcnlWYWx1ZSA9IHt9O1xuXG4gICAgICBlbXB0eUFyYml0cmFyeVZhbHVlWycwJ10gPSBmbGF0dGVuZWRUcmFuc2xhdGlvbktleTtcblxuICAgICAgbGFuZ3VhZ2VPcHRpb25zLmZvckVhY2goKGxhbmd1YWdlT3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICBlbXB0eUFyYml0cmFyeVZhbHVlW2Ake2luZGV4ICsgMX1gXSA9XG4gICAgICAgICAgdGhpcy5mbGF0dGVuT2JqZWN0KG1lcmdlZExvY2FsaXphdGlvbnNbbGFuZ3VhZ2VPcHRpb25dKVtmbGF0dGVuZWRUcmFuc2xhdGlvbktleV0gfHwgJyc7XG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIGVtcHR5QXJiaXRyYXJ5VmFsdWU7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjwhLS1cbiAgfiBDb3B5cmlnaHQgMjAxNS0yMDI0IFJpdGVuc2UgQlYsIHRoZSBOZXRoZXJsYW5kcy5cbiAgflxuICB+IExpY2Vuc2VkIHVuZGVyIEVVUEwsIFZlcnNpb24gMS4yICh0aGUgXCJMaWNlbnNlXCIpO1xuICB+IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgfiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgflxuICB+IGh0dHBzOi8vam9pbnVwLmVjLmV1cm9wYS5ldS9jb2xsZWN0aW9uL2V1cGwvZXVwbC10ZXh0LWV1cGwtMTJcbiAgflxuICB+IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgfiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgYmFzaXMsXG4gIH4gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gIH4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICB+IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICAtLT5cblxuPG5nLWNvbnRhaW5lclxuICAqbmdJZj1cIntcbiAgICBsb2NhbGl6YXRpb25UcmFuc2xhdGlvblZhbHVlczogbG9jYWxpemF0aW9uVHJhbnNsYXRpb25WYWx1ZXMkIHwgYXN5bmMsXG4gICAgbG9hZGluZzogbG9hZGluZyQgfCBhc3luYyxcbiAgICBkaXNhYmxlZDogZGlzYWJsZWQkIHwgYXN5bmMsXG4gICAgbXVsdGlJbnB1dFRpdGxlczogbXVsdGlJbnB1dFRpbGVzJCB8IGFzeW5jLFxuICAgIGFtb3VudE9mQXJiaXRyYXJ5VmFsdWVzOiBhbW91bnRPZkFyYml0cmFyeVZhbHVlcyQgfCBhc3luYyxcbiAgICBzaG93Q29uZmlybWF0aW9uTW9kYWw6IHNob3dDb25maXJtYXRpb25Nb2RhbCQsXG4gICAgYWxsQ2hhbmdlZFZhbHVlc1ZhbGlkOiBhbGxDaGFuZ2VkVmFsdWVzVmFsaWQkIHwgYXN5bmMsXG4gICAgdmFsdWVzQ2hhbmdlZDogdmFsdWVzQ2hhbmdlZCQgfCBhc3luYyxcbiAgICBjb21wYWN0TW9kZTogY29tcGFjdE1vZGUkIHwgYXN5bmMsXG4gIH0gYXMgb2JzXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFvYnMubG9hZGluZyAmJiBvYnMubG9jYWxpemF0aW9uVHJhbnNsYXRpb25WYWx1ZXM7IGVsc2UgbG9hZGluZ1wiPlxuICAgIDx2YWx0aW1vLWNhcmJvbi1tdWx0aS1pbnB1dFxuICAgICAgW2Rpc2FibGVkXT1cIm9icy5kaXNhYmxlZFwiXG4gICAgICBbYXJiaXRyYXJ5QW1vdW50VGl0bGVzXT1cIm9icy5tdWx0aUlucHV0VGl0bGVzXCJcbiAgICAgIFtmdWxsV2lkdGhdPVwidHJ1ZVwiXG4gICAgICBbbWluaW11bUFtb3VudE9mUm93c109XCIwXCJcbiAgICAgIHR5cGU9XCJhcmJpdHJhcnlBbW91bnRcIlxuICAgICAgW2FyYml0cmFyeVZhbHVlQW1vdW50XT1cIm9icy5hbW91bnRPZkFyYml0cmFyeVZhbHVlc1wiXG4gICAgICBbZGVmYXVsdFZhbHVlc109XCJvYnMubG9jYWxpemF0aW9uVHJhbnNsYXRpb25WYWx1ZXNcIlxuICAgICAgKGFsbFZhbHVlc1ZhbGlkRXZlbnQpPVwidmFsaWRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICBhZGRSb3dUcmFuc2xhdGlvbktleT1cInRyYW5zbGF0aW9uTWFuYWdlbWVudC5hZGRcIlxuICAgID48L3ZhbHRpbW8tY2FyYm9uLW11bHRpLWlucHV0PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8bmctdGVtcGxhdGUgI2xvYWRpbmc+XG4gICAgPGRpdiBjbGFzcz1cImxvYWRpbmctY29udGFpbmVyXCI+PGNkcy1sb2FkaW5nPjwvY2RzLWxvYWRpbmc+PC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG5cbiAgPHZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsXG4gICAgW3Nob3dNb2RhbFN1YmplY3QkXT1cIm9icy5zaG93Q29uZmlybWF0aW9uTW9kYWxcIlxuICAgIChjb25maXJtRXZlbnQpPVwic2F2ZUFuZFJlZnJlc2goKVwiXG4gICAgKG9wdGlvbmFsRXZlbnQpPVwic2F2ZUFuZFN0YXkoKVwiXG4gICAgKGNhbmNlbEV2ZW50KT1cImNhbmNlbCgpXCJcbiAgICBbc2hvd09wdGlvbmFsQnV0dG9uXT1cInRydWVcIlxuICAgIGNhbmNlbEJ1dHRvblR5cGU9XCJnaG9zdFwiXG4gICAgb3B0aW9uYWxCdXR0b25UeXBlPVwic2Vjb25kYXJ5XCJcbiAgICBjb25maXJtQnV0dG9uVGV4dFRyYW5zbGF0aW9uS2V5PVwidHJhbnNsYXRpb25NYW5hZ2VtZW50LnNhdmVXaXRoUmVsb2FkXCJcbiAgICBvcHRpb25hbEJ1dHRvblRleHRUcmFuc2xhdGlvbktleT1cInRyYW5zbGF0aW9uTWFuYWdlbWVudC5zYXZlV2l0aG91dFJlbG9hZFwiXG4gICAgdGl0bGVUcmFuc2xhdGlvbktleT1cInRyYW5zbGF0aW9uTWFuYWdlbWVudC5tb2RhbFRpdGxlXCJcbiAgICBjb250ZW50VHJhbnNsYXRpb25LZXk9XCJ0cmFuc2xhdGlvbk1hbmFnZW1lbnQubW9kYWxDb250ZW50XCJcbiAgICBbc3BhY2VyQWZ0ZXJDYW5jZWxCdXR0b25dPVwidHJ1ZVwiXG4gID48L3ZhbHRpbW8tY29uZmlybWF0aW9uLW1vZGFsPlxuXG4gIDxuZy1jb250YWluZXIgcmVuZGVySW5QYWdlSGVhZGVyPlxuICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgIDxidXR0b25cbiAgICAgICAgY2RzQnV0dG9uPVwicHJpbWFyeVwiXG4gICAgICAgIFtzaXplXT1cIm9icy5jb21wYWN0TW9kZSA/ICdzbScgOiAnbWQnXCJcbiAgICAgICAgKGNsaWNrKT1cInNob3dNb2RhbCgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFvYnMuYWxsQ2hhbmdlZFZhbHVlc1ZhbGlkIHx8IG9icy5kaXNhYmxlZCB8fCAhb2JzLnZhbHVlc0NoYW5nZWRcIlxuICAgICAgPlxuICAgICAgICB7eyAnaW50ZXJmYWNlLnNhdmUnIHwgdHJhbnNsYXRlIH19XG5cbiAgICAgICAgPHN2ZyBjbGFzcz1cImNkcy0tYnRuX19pY29uXCIgY2RzSWNvbj1cInNhdmVcIiBzaXplPVwiMTZcIj48L3N2Zz5cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG4iXX0=
@@ -114,11 +114,11 @@ class LayoutInternalComponent {
114
114
  this._observer.disconnect();
115
115
  }
116
116
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutInternalComponent, deps: [{ token: LayoutService }, { token: i0.Renderer2 }, { token: i2.UserInterfaceService }, { token: i2.ShellService }], target: i0.ɵɵFactoryTarget.Component }); }
117
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LayoutInternalComponent, selector: "valtimo-layout-internal", viewQueries: [{ propertyName: "mainContentRef", first: true, predicate: ["mainContent"], descendants: true }], 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<valtimo-topbar></valtimo-topbar>\n<main\n class=\"cds--content\"\n [ngClass]=\"{\n 'cds--content--sidebar':\n (sideBarExpanded$ | async) && (collapsibleWidescreenMenu$ | async) === false\n }\"\n #mainContent\n>\n <valtimo-left-sidebar [hidden]=\"layoutService.isFullscreen\"></valtimo-left-sidebar>\n <valtimo-alert></valtimo-alert>\n <valtimo-page-header [hidden]=\"layoutService.isFullscreen\"></valtimo-page-header>\n <router-outlet></router-outlet>\n <valtimo-right-sidebar></valtimo-right-sidebar>\n <v-prompt></v-prompt>\n</main>\n", styles: ["::ng-deep .cds--content{padding-top:24px!important}@media screen and (max-width: 767px){.be-content{margin-left:0!important}}@media only screen and (min-width: 1056px){.cds--content--sidebar{padding-left:18rem}}\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: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i2.TopbarComponent, selector: "valtimo-topbar" }, { kind: "component", type: i2.LeftSidebarComponent, selector: "valtimo-left-sidebar" }, { kind: "component", type: i2.RightSidebarComponent, selector: "valtimo-right-sidebar" }, { kind: "component", type: i2.PageHeaderComponent, selector: "valtimo-page-header" }, { kind: "component", type: i2.AlertComponent, selector: "valtimo-alert" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.PromptComponent, selector: "v-prompt", inputs: ["appearingDelayMs", "maxWidthPx"], outputs: ["closeEvent"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
117
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: LayoutInternalComponent, selector: "valtimo-layout-internal", viewQueries: [{ propertyName: "mainContentRef", first: true, predicate: ["mainContent"], descendants: true }], 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<valtimo-topbar></valtimo-topbar>\n<main\n class=\"cds--content\"\n [ngClass]=\"{\n 'cds--content--sidebar':\n (sideBarExpanded$ | async) && (collapsibleWidescreenMenu$ | async) === false,\n }\"\n #mainContent\n>\n <valtimo-left-sidebar [hidden]=\"layoutService.isFullscreen\"></valtimo-left-sidebar>\n <valtimo-alert></valtimo-alert>\n <valtimo-page-header [hidden]=\"layoutService.isFullscreen\"></valtimo-page-header>\n <router-outlet></router-outlet>\n <valtimo-right-sidebar></valtimo-right-sidebar>\n <v-prompt></v-prompt>\n</main>\n", styles: ["::ng-deep .cds--content{padding-top:24px!important}@media screen and (max-width: 767px){.be-content{margin-left:0!important}}@media only screen and (min-width: 1056px){.cds--content--sidebar{padding-left:18rem}}\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: i1.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: i2.TopbarComponent, selector: "valtimo-topbar" }, { kind: "component", type: i2.LeftSidebarComponent, selector: "valtimo-left-sidebar" }, { kind: "component", type: i2.RightSidebarComponent, selector: "valtimo-right-sidebar" }, { kind: "component", type: i2.PageHeaderComponent, selector: "valtimo-page-header" }, { kind: "component", type: i2.AlertComponent, selector: "valtimo-alert" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.PromptComponent, selector: "v-prompt", inputs: ["appearingDelayMs", "maxWidthPx"], outputs: ["closeEvent"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] }); }
118
118
  }
119
119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LayoutInternalComponent, decorators: [{
120
120
  type: Component,
121
- args: [{ selector: 'valtimo-layout-internal', 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<valtimo-topbar></valtimo-topbar>\n<main\n class=\"cds--content\"\n [ngClass]=\"{\n 'cds--content--sidebar':\n (sideBarExpanded$ | async) && (collapsibleWidescreenMenu$ | async) === false\n }\"\n #mainContent\n>\n <valtimo-left-sidebar [hidden]=\"layoutService.isFullscreen\"></valtimo-left-sidebar>\n <valtimo-alert></valtimo-alert>\n <valtimo-page-header [hidden]=\"layoutService.isFullscreen\"></valtimo-page-header>\n <router-outlet></router-outlet>\n <valtimo-right-sidebar></valtimo-right-sidebar>\n <v-prompt></v-prompt>\n</main>\n", styles: ["::ng-deep .cds--content{padding-top:24px!important}@media screen and (max-width: 767px){.be-content{margin-left:0!important}}@media only screen and (min-width: 1056px){.cds--content--sidebar{padding-left:18rem}}\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"] }]
121
+ args: [{ selector: 'valtimo-layout-internal', 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<valtimo-topbar></valtimo-topbar>\n<main\n class=\"cds--content\"\n [ngClass]=\"{\n 'cds--content--sidebar':\n (sideBarExpanded$ | async) && (collapsibleWidescreenMenu$ | async) === false,\n }\"\n #mainContent\n>\n <valtimo-left-sidebar [hidden]=\"layoutService.isFullscreen\"></valtimo-left-sidebar>\n <valtimo-alert></valtimo-alert>\n <valtimo-page-header [hidden]=\"layoutService.isFullscreen\"></valtimo-page-header>\n <router-outlet></router-outlet>\n <valtimo-right-sidebar></valtimo-right-sidebar>\n <v-prompt></v-prompt>\n</main>\n", styles: ["::ng-deep .cds--content{padding-top:24px!important}@media screen and (max-width: 767px){.be-content{margin-left:0!important}}@media only screen and (min-width: 1056px){.cds--content--sidebar{padding-left:18rem}}\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"] }]
122
122
  }], ctorParameters: () => [{ type: LayoutService }, { type: i0.Renderer2 }, { type: i2.UserInterfaceService }, { type: i2.ShellService }], propDecorators: { mainContentRef: [{
123
123
  type: ViewChild,
124
124
  args: ['mainContent']
@@ -399,11 +399,11 @@ class TranslationManagementComponent {
399
399
  });
400
400
  }
401
401
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslationManagementComponent, deps: [{ token: i1$1.TranslateService }, { token: i2$1.LocalizationService }, { token: i2.PageHeaderService }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Component }); }
402
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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: i2.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: i2.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: i2.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$1.TranslatePipe, name: "translate" }] }); }
402
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", 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: i2.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: i2.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: i2.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$1.TranslatePipe, name: "translate" }] }); }
403
403
  }
404
404
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TranslationManagementComponent, decorators: [{
405
405
  type: Component,
406
- 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"] }]
406
+ 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"] }]
407
407
  }], ctorParameters: () => [{ type: i1$1.TranslateService }, { type: i2$1.LocalizationService }, { type: i2.PageHeaderService }, { type: Document, decorators: [{
408
408
  type: Inject,
409
409
  args: [DOCUMENT]
@@ -1 +1 @@
1
- {"version":3,"file":"valtimo-layout.mjs","sources":["../../../../projects/valtimo/layout/src/lib/services/layout/layout.service.ts","../../../../projects/valtimo/layout/src/lib/components/layout-public/layout-public.component.ts","../../../../projects/valtimo/layout/src/lib/components/layout-public/layout-public.component.html","../../../../projects/valtimo/layout/src/lib/components/layout-internal/layout-internal.component.ts","../../../../projects/valtimo/layout/src/lib/components/layout-internal/layout-internal.component.html","../../../../projects/valtimo/layout/src/lib/components/layout/layout.component.ts","../../../../projects/valtimo/layout/src/lib/components/layout/layout.component.html","../../../../projects/valtimo/layout/src/lib/layout.module.ts","../../../../projects/valtimo/layout/src/lib/components/translation-management/translation-management.component.ts","../../../../projects/valtimo/layout/src/lib/components/translation-management/translation-management.component.html","../../../../projects/valtimo/layout/src/lib/translation-management-routing.module.ts","../../../../projects/valtimo/layout/src/lib/translation-management.module.ts","../../../../projects/valtimo/layout/src/public_api.ts","../../../../projects/valtimo/layout/src/valtimo-layout.ts"],"sourcesContent":["/*\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\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LayoutService {\n private fullscreen = false;\n\n constructor() {}\n\n public get isFullscreen() {\n return this.fullscreen;\n }\n\n public toggleFullscreen() {\n this.fullscreen = !this.fullscreen;\n }\n}\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\nimport {Component} from '@angular/core';\n\n@Component({\n selector: 'valtimo-layout-public',\n templateUrl: './layout-public.component.html',\n styleUrls: ['./layout-public.component.scss'],\n})\nexport class LayoutPublicComponent {}\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\n<div class=\"public-page-content\">\n <img src=\"assets/logo.svg\" class=\"logo\" />\n <router-outlet></router-outlet>\n</div>\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\nimport {AfterViewInit, Component, ElementRef, OnDestroy, Renderer2, ViewChild} from '@angular/core';\nimport {LayoutService} from '../../services/layout/layout.service';\nimport {ShellService, UserInterfaceService} from '@valtimo/components';\n\n// eslint-disable-next-line no-var\ndeclare var App;\n\n@Component({\n selector: 'valtimo-layout-internal',\n templateUrl: './layout-internal.component.html',\n styleUrls: ['./layout-internal.component.scss'],\n})\nexport class LayoutInternalComponent implements AfterViewInit, OnDestroy {\n @ViewChild('mainContent') mainContentRef: ElementRef;\n\n public readonly showPageHeader$ = this.userInterfaceService.showPageHeader$;\n public readonly sideBarExpanded$ = this.shellService.sideBarExpanded$;\n public readonly collapsibleWidescreenMenu$ = this.shellService.collapsibleWidescreenMenu$;\n\n private _observer!: ResizeObserver;\n\n constructor(\n public layoutService: LayoutService,\n private readonly renderer: Renderer2,\n private readonly userInterfaceService: UserInterfaceService,\n private readonly shellService: ShellService\n ) {\n this.renderer.addClass(document.body, 'be-animate');\n }\n\n public ngAfterViewInit(): void {\n App.init();\n this.shellService.setContentElement(this.mainContentRef.nativeElement);\n this._observer = new ResizeObserver(() => {\n this.shellService.onMainContentResize();\n });\n this._observer.observe(this.mainContentRef.nativeElement);\n }\n\n public ngOnDestroy(): void {\n this._observer.disconnect();\n }\n}\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\n<valtimo-topbar></valtimo-topbar>\n<main\n class=\"cds--content\"\n [ngClass]=\"{\n 'cds--content--sidebar':\n (sideBarExpanded$ | async) && (collapsibleWidescreenMenu$ | async) === false\n }\"\n #mainContent\n>\n <valtimo-left-sidebar [hidden]=\"layoutService.isFullscreen\"></valtimo-left-sidebar>\n <valtimo-alert></valtimo-alert>\n <valtimo-page-header [hidden]=\"layoutService.isFullscreen\"></valtimo-page-header>\n <router-outlet></router-outlet>\n <valtimo-right-sidebar></valtimo-right-sidebar>\n <v-prompt></v-prompt>\n</main>\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\nimport {\n AfterViewInit,\n Component,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {ActivatedRoute, NavigationEnd, Router} from '@angular/router';\nimport {filter} from 'rxjs/operators';\nimport {Subscription} from 'rxjs';\nimport {PlaceholderService} from 'carbon-components-angular';\n\n// eslint-disable-next-line no-var\ndeclare var App: any;\n\n@Component({\n selector: 'valtimo-layout',\n templateUrl: './layout.component.html',\n})\nexport class LayoutComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('carbonPlaceHolder', {static: true, read: ViewContainerRef})\n private readonly _carbonPlaceHolder: ViewContainerRef;\n\n public layoutType: string | null = null;\n private readonly _routerSub = new Subscription();\n private readonly _DEFAULT_LAYOUT = 'internal';\n\n constructor(\n private readonly router: Router,\n private readonly route: ActivatedRoute,\n private readonly placeHolderService: PlaceholderService\n ) {}\n\n public ngOnInit() {\n this.openRouterSubscription();\n }\n\n public ngAfterViewInit(): void {\n this.registerCarbonPlaceHolder();\n }\n\n public ngOnDestroy() {\n this._routerSub.unsubscribe();\n }\n\n private registerCarbonPlaceHolder(): void {\n if (this._carbonPlaceHolder) {\n this.placeHolderService.registerViewContainerRef(this._carbonPlaceHolder);\n }\n }\n\n private openRouterSubscription(): void {\n this._routerSub.add(\n this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(() => {\n const layout = this.route.snapshot.firstChild.data.layout;\n this.layoutType = layout ? layout : this._DEFAULT_LAYOUT;\n })\n );\n }\n}\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\n<div #carbonPlaceHolder class=\"carbon-placeholder\"></div>\n\n<valtimo-layout-public *ngIf=\"layoutType === 'public'\"></valtimo-layout-public>\n<valtimo-layout-internal *ngIf=\"layoutType === 'internal'\"></valtimo-layout-internal>\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\nimport {NgModule} from '@angular/core';\nimport {LayoutComponent} from './components/layout/layout.component';\nimport {\n AlertModule,\n LeftSidebarModule,\n MenuRoutingModule,\n PageHeaderModule,\n PromptModule,\n RightSidebarModule,\n TopbarModule,\n} from '@valtimo/components';\nimport {RouterModule} from '@angular/router';\nimport {LayoutPublicComponent} from './components/layout-public/layout-public.component';\nimport {LayoutInternalComponent} from './components/layout-internal/layout-internal.component';\nimport {CommonModule} from '@angular/common';\n\n@NgModule({\n declarations: [LayoutComponent, LayoutPublicComponent, LayoutInternalComponent],\n imports: [\n RouterModule,\n MenuRoutingModule,\n TopbarModule,\n LeftSidebarModule,\n RightSidebarModule,\n PageHeaderModule,\n AlertModule,\n CommonModule,\n PromptModule,\n ],\n exports: [LayoutComponent],\n})\nexport class LayoutModule {}\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\nimport {Component, Inject, OnInit} from '@angular/core';\nimport {BehaviorSubject, combineLatest, map, Observable, switchMap, take, tap} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Localization, LocalizationService, MergedLocalizations} from '@valtimo/config';\nimport {\n ArbitraryInputTitles,\n MultiInputKeyValue,\n MultiInputOutput,\n PageHeaderService,\n} from '@valtimo/components';\nimport {isEqual} from 'lodash';\nimport {DOCUMENT} from '@angular/common';\n\n@Component({\n selector: 'valtimo-translation-management',\n templateUrl: './translation-management.component.html',\n styleUrls: ['./translation-management.component.scss'],\n})\nexport class TranslationManagementComponent implements OnInit {\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly allChangedValuesValid$ = new BehaviorSubject<boolean>(false);\n public readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n private readonly _languageOptions$ = new BehaviorSubject<Array<string>>(undefined);\n private readonly _refreshLocalizations$ = new BehaviorSubject<null>(null);\n private readonly _localizationTranslations$ = this._refreshLocalizations$.pipe(\n tap(() => this.loading$.next(true)),\n switchMap(() => this.localizationService.getMergedLocalizations()),\n tap(() => this.loading$.next(false))\n );\n\n private _defaultValues: Array<MultiInputKeyValue> = [];\n\n private readonly _changedValues$ = new BehaviorSubject<MultiInputOutput>(undefined);\n\n public readonly showConfirmationModal$ = new BehaviorSubject<boolean>(false);\n\n public readonly valuesChanged$: Observable<boolean> = this._changedValues$.pipe(\n map(changedValues => !isEqual(changedValues, this._defaultValues))\n );\n\n public readonly localizationTranslationValues$: Observable<Array<MultiInputKeyValue>> =\n combineLatest([\n this._languageOptions$,\n this._localizationTranslations$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([languageOptions, localizationTranslations]) =>\n this.mapMergedLocalizationsToMultiInput(languageOptions, localizationTranslations)\n ),\n tap(defaultValues => {\n this._defaultValues = defaultValues;\n })\n );\n\n public readonly multiInputTiles$: Observable<ArbitraryInputTitles> = combineLatest([\n this._languageOptions$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([languageOptions]) => {\n const objToReturn = {};\n objToReturn[0] = this.translateService.instant('listColumn.key');\n\n languageOptions.forEach((languageOption, index) => {\n objToReturn[index + 1] = this.translateService.instant(\n `settings.language.options.${languageOption}`\n );\n });\n\n return objToReturn;\n })\n );\n\n public readonly amountOfArbitraryValues$: Observable<number> = this.multiInputTiles$.pipe(\n map(multiInputTitles => Object.keys(multiInputTitles).length)\n );\n\n public readonly compactMode$ = this.pageHeaderService.compactMode$;\n\n constructor(\n private readonly translateService: TranslateService,\n private readonly localizationService: LocalizationService,\n private readonly pageHeaderService: PageHeaderService,\n @Inject(DOCUMENT) private readonly document: Document\n ) {}\n\n public ngOnInit(): void {\n this.setLanguages();\n }\n\n public validChange(valid: boolean): void {\n this.allChangedValuesValid$.next(valid);\n }\n\n public valueChange(value: MultiInputOutput): void {\n this._changedValues$.next(value);\n }\n\n public saveAndRefresh(): void {\n this.saveChanges(true);\n }\n\n public saveAndStay(): void {\n this.saveChanges();\n }\n\n public cancel(): void {\n this.hideModal();\n }\n\n public showModal(): void {\n this.showConfirmationModal$.next(true);\n }\n\n public saveChanges(reload = false): void {\n this.disable();\n\n combineLatest([this._changedValues$, this._languageOptions$])\n .pipe(\n take(1),\n map(([changedValues, languageOptions]) =>\n this.getLocalizationsForUpdateRequest(changedValues, languageOptions)\n ),\n switchMap(updatedLocalizations =>\n this.localizationService.updateLocalizations(updatedLocalizations)\n )\n )\n .subscribe(() => {\n if (reload) {\n this.document?.defaultView?.location?.reload();\n } else {\n this._refreshLocalizations$.next(null);\n this.enable();\n }\n });\n }\n\n private setLanguages(): void {\n this._languageOptions$.next(this.translateService.langs);\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private hideModal(): void {\n this.showConfirmationModal$.next(false);\n }\n\n private flattenObject(ob: object): object {\n const toReturn = {};\n\n for (const i in ob) {\n if (!ob.hasOwnProperty(i)) continue;\n\n if (typeof ob[i] == 'object' && ob[i] !== null) {\n const flatObject = this.flattenObject(ob[i]);\n for (const x in flatObject) {\n if (!flatObject.hasOwnProperty(x)) continue;\n\n toReturn[i + '.' + x] = flatObject[x];\n }\n } else {\n toReturn[i] = ob[i];\n }\n }\n return toReturn;\n }\n\n private unflattenObject(obj: object, delimiter = '.'): object {\n return Object.keys(obj).reduce((res, k) => {\n k.split(delimiter).reduce(\n (acc, e, i, keys) =>\n acc[e] ||\n (acc[e] = isNaN(Number(keys[i + 1])) ? (keys.length - 1 === i ? obj[k] : {}) : []),\n res\n );\n return res;\n }, {});\n }\n\n private getLocalizationsForUpdateRequest(\n changedValues: MultiInputOutput,\n languageOptions: string[]\n ): Localization[] {\n const localizations: Localization[] = [];\n const translationObject = {};\n\n languageOptions.forEach(languageOption => {\n translationObject[languageOption] = {};\n });\n\n changedValues.forEach(changedValue => {\n languageOptions.forEach((languageOption, index) => {\n translationObject[languageOption] = {\n ...translationObject[languageOption],\n [changedValue[0]]: changedValue[index + 1],\n };\n });\n });\n\n languageOptions.forEach(languageOption => {\n translationObject[languageOption] = this.unflattenObject(translationObject[languageOption]);\n });\n\n Object.keys(translationObject).forEach(languageKey => {\n localizations.push({languageKey, content: translationObject[languageKey]});\n });\n\n return localizations;\n }\n\n private mapMergedLocalizationsToMultiInput(\n languageOptions: string[],\n mergedLocalizations: MergedLocalizations\n ) {\n if (Object.keys(mergedLocalizations).length === 0) {\n return [];\n }\n\n const firstLanguageOption = languageOptions[0];\n const firstLanguageTranslations =\n firstLanguageOption && mergedLocalizations[firstLanguageOption];\n const flattenedFirstLanguageTranslations =\n firstLanguageTranslations && this.flattenObject(firstLanguageTranslations);\n\n return Object.keys(flattenedFirstLanguageTranslations).map(flattenedTranslationKey => {\n const emptyArbitraryValue = {};\n\n emptyArbitraryValue['0'] = flattenedTranslationKey;\n\n languageOptions.forEach((languageOption, index) => {\n emptyArbitraryValue[`${index + 1}`] =\n this.flattenObject(mergedLocalizations[languageOption])[flattenedTranslationKey] || '';\n });\n\n return emptyArbitraryValue;\n });\n }\n}\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\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","/*\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 */\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {ROLE_ADMIN} from '@valtimo/config';\nimport {AuthGuardService} from '@valtimo/security';\nimport {TranslationManagementComponent} from './components/translation-management/translation-management.component';\n\nconst routes: Routes = [\n {\n path: 'translation-management',\n component: TranslationManagementComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Translations', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class TranslationManagementRoutingModule {}\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\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TranslationManagementComponent} from './components/translation-management/translation-management.component';\nimport {TranslationManagementRoutingModule} from './translation-management-routing.module';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n CarbonMultiInputModule,\n ConfirmationModalModule,\n MultiInputFormModule,\n RenderInPageHeaderDirectiveModule,\n} from '@valtimo/components';\nimport {ButtonModule, IconModule, LoadingModule} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [TranslationManagementComponent],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationManagementRoutingModule,\n MultiInputFormModule,\n CarbonMultiInputModule,\n LoadingModule,\n RenderInPageHeaderDirectiveModule,\n ButtonModule,\n IconModule,\n ConfirmationModalModule,\n ],\n exports: [],\n})\nexport class TranslationManagementModule {}\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\n/*\n * Public API Surface of layout\n */\n\nexport * from './lib/services/layout/layout.service';\nexport * from './lib/components/layout/layout.component';\nexport * from './lib/layout.module';\nexport * from './lib/translation-management.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.LayoutService","i3","i2","i4.LayoutPublicComponent","i5.LayoutInternalComponent","i1"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;AAcG;MAOU,aAAa,CAAA;AAGxB,IAAA,WAAA,GAAA;QAFQ,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;KAEX;AAEhB,IAAA,IAAW,YAAY,GAAA;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IAEM,gBAAgB,GAAA;AACrB,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;KACpC;+GAXU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACpBD;;;;;;;;;;;;;;AAcG;MASU,qBAAqB,CAAA;+GAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,6DCvBlC,oxBAoBA,EAAA,MAAA,EAAA,CAAA,ojCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDGa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,oxBAAA,EAAA,MAAA,EAAA,CAAA,ojCAAA,CAAA,EAAA,CAAA;;;AEnBnC;;;;;;;;;;;;;;AAcG;MAcU,uBAAuB,CAAA;AASlC,IAAA,WAAA,CACS,aAA4B,EAClB,QAAmB,EACnB,oBAA0C,EAC1C,YAA0B,EAAA;QAHpC,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QAClB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QACnB,IAAoB,CAAA,oBAAA,GAApB,oBAAoB,CAAsB;QAC1C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;AAV7B,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,CAAC,oBAAoB,CAAC,eAAe,CAAC;AAC5D,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC;AACtD,QAAA,IAAA,CAAA,0BAA0B,GAAG,IAAI,CAAC,YAAY,CAAC,0BAA0B,CAAC;QAUxF,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;KACrD;IAEM,eAAe,GAAA;QACpB,GAAG,CAAC,IAAI,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;AACvE,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,cAAc,CAAC,MAAK;AACvC,YAAA,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,CAAC;AAC1C,SAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;KAC3D;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;KAC7B;+GA7BU,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,uBAAuB,8KC5BpC,8rCAgCA,EAAA,MAAA,EAAA,CAAA,q1BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,eAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDJa,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,8rCAAA,EAAA,MAAA,EAAA,CAAA,q1BAAA,CAAA,EAAA,CAAA;qKAKT,cAAc,EAAA,CAAA;sBAAvC,SAAS;uBAAC,aAAa,CAAA;;;AE7B1B;;;;;;;;;;;;;;AAcG;MAsBU,eAAe,CAAA;AAQ1B,IAAA,WAAA,CACmB,MAAc,EACd,KAAqB,EACrB,kBAAsC,EAAA;QAFtC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAPlD,IAAU,CAAA,UAAA,GAAkB,IAAI,CAAC;AACvB,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAE,CAAC;QAChC,IAAe,CAAA,eAAA,GAAG,UAAU,CAAC;KAM1C;IAEG,QAAQ,GAAA;QACb,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEM,eAAe,GAAA;QACpB,IAAI,CAAC,yBAAyB,EAAE,CAAC;KAClC;IAEM,WAAW,GAAA;AAChB,QAAA,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;KAC/B;IAEO,yBAAyB,GAAA;AAC/B,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;YAC3B,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;SAC3E;KACF;IAEO,sBAAsB,GAAA;AAC5B,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,YAAY,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACtF,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC;AAC1D,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC;SAC1D,CAAC,CACH,CAAC;KACH;+GAvCU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,kBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAf,eAAe,EAAA,QAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAC2B,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECrCvE,63BAoBA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,qBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,uBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDgBa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,SAAS;+BACE,gBAAgB,EAAA,QAAA,EAAA,63BAAA,EAAA,CAAA;yIAKT,kBAAkB,EAAA,CAAA;sBADlC,SAAS;uBAAC,mBAAmB,EAAE,EAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAC,CAAA;;;AErCxE;;;;;;;;;;;;;;AAcG;MAiCU,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBAdR,eAAe,EAAE,qBAAqB,EAAE,uBAAuB,aAE5E,YAAY;YACZ,iBAAiB;YACjB,YAAY;YACZ,iBAAiB;YACjB,kBAAkB;YAClB,gBAAgB;YAChB,WAAW;YACX,YAAY;AACZ,YAAA,YAAY,aAEJ,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AAEd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAZrB,YAAY;YACZ,iBAAiB;YACjB,YAAY;YACZ,iBAAiB;YACjB,kBAAkB;YAClB,gBAAgB;YAChB,WAAW;YACX,YAAY;YACZ,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,YAAY,EAAA,UAAA,EAAA,CAAA;kBAfxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,eAAe,EAAE,qBAAqB,EAAE,uBAAuB,CAAC;AAC/E,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,iBAAiB;wBACjB,YAAY;wBACZ,iBAAiB;wBACjB,kBAAkB;wBAClB,gBAAgB;wBAChB,WAAW;wBACX,YAAY;wBACZ,YAAY;AACb,qBAAA;oBACD,OAAO,EAAE,CAAC,eAAe,CAAC;AAC3B,iBAAA,CAAA;;;AC9CD;;;;;;;;;;;;;;AAcG;MAoBU,8BAA8B,CAAA;AA6DzC,IAAA,WAAA,CACmB,gBAAkC,EAClC,mBAAwC,EACxC,iBAAoC,EAClB,QAAkB,EAAA;QAHpC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QAClC,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QACxC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAClB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAhEvC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,CAAC;AAC9C,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAC7D,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAE/C,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,eAAe,CAAgB,SAAS,CAAC,CAAC;AAClE,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,eAAe,CAAO,IAAI,CAAC,CAAC;QACzD,IAA0B,CAAA,0BAAA,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAC5E,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EACnC,SAAS,CAAC,MAAM,IAAI,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,CAAC,EAClE,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACrC,CAAC;QAEM,IAAc,CAAA,cAAA,GAA8B,EAAE,CAAC;AAEtC,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAmB,SAAS,CAAC,CAAC;AAEpE,QAAA,IAAA,CAAA,sBAAsB,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;QAE7D,IAAc,CAAA,cAAA,GAAwB,IAAI,CAAC,eAAe,CAAC,IAAI,CAC7E,GAAG,CAAC,aAAa,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CACnE,CAAC;QAEc,IAA8B,CAAA,8BAAA,GAC5C,aAAa,CAAC;AACZ,YAAA,IAAI,CAAC,iBAAiB;AACtB,YAAA,IAAI,CAAC,0BAA0B;AAC/B,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC;AACpC,SAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,eAAe,EAAE,wBAAwB,CAAC,KAC9C,IAAI,CAAC,kCAAkC,CAAC,eAAe,EAAE,wBAAwB,CAAC,CACnF,EACD,GAAG,CAAC,aAAa,IAAG;AAClB,YAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;SACrC,CAAC,CACH,CAAC;QAEY,IAAgB,CAAA,gBAAA,GAAqC,aAAa,CAAC;AACjF,YAAA,IAAI,CAAC,iBAAiB;AACtB,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC;SACpC,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,KAAI;YACxB,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,YAAA,WAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAEjE,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,KAAK,KAAI;AAChD,gBAAA,WAAW,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CACpD,CAAA,0BAAA,EAA6B,cAAc,CAAA,CAAE,CAC9C,CAAC;AACJ,aAAC,CAAC,CAAC;AAEH,YAAA,OAAO,WAAW,CAAC;SACpB,CAAC,CACH,CAAC;QAEc,IAAwB,CAAA,wBAAA,GAAuB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CACvF,GAAG,CAAC,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAC9D,CAAC;AAEc,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC;KAO/D;IAEG,QAAQ,GAAA;QACb,IAAI,CAAC,YAAY,EAAE,CAAC;KACrB;AAEM,IAAA,WAAW,CAAC,KAAc,EAAA;AAC/B,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzC;AAEM,IAAA,WAAW,CAAC,KAAuB,EAAA;AACxC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAClC;IAEM,cAAc,GAAA;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KACxB;IAEM,WAAW,GAAA;QAChB,IAAI,CAAC,WAAW,EAAE,CAAC;KACpB;IAEM,MAAM,GAAA;QACX,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAEM,SAAS,GAAA;AACd,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACxC;IAEM,WAAW,CAAC,MAAM,GAAG,KAAK,EAAA;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,aAAa,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC1D,aAAA,IAAI,CACH,IAAI,CAAC,CAAC,CAAC,EACP,GAAG,CAAC,CAAC,CAAC,aAAa,EAAE,eAAe,CAAC,KACnC,IAAI,CAAC,gCAAgC,CAAC,aAAa,EAAE,eAAe,CAAC,CACtE,EACD,SAAS,CAAC,oBAAoB,IAC5B,IAAI,CAAC,mBAAmB,CAAC,mBAAmB,CAAC,oBAAoB,CAAC,CACnE,CACF;aACA,SAAS,CAAC,MAAK;YACd,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;aAChD;iBAAM;AACL,gBAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvC,IAAI,CAAC,MAAM,EAAE,CAAC;aACf;AACH,SAAC,CAAC,CAAC;KACN;IAEO,YAAY,GAAA;QAClB,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;KAC1D;IAEO,OAAO,GAAA;AACb,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC3B;IAEO,MAAM,GAAA;AACZ,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC5B;IAEO,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzC;AAEO,IAAA,aAAa,CAAC,EAAU,EAAA;QAC9B,MAAM,QAAQ,GAAG,EAAE,CAAC;AAEpB,QAAA,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE;AAClB,YAAA,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;gBAAE,SAAS;AAEpC,YAAA,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;gBAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,gBAAA,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE;AAC1B,oBAAA,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC;wBAAE,SAAS;AAE5C,oBAAA,QAAQ,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;iBACvC;aACF;iBAAM;gBACL,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;aACrB;SACF;AACD,QAAA,OAAO,QAAQ,CAAC;KACjB;AAEO,IAAA,eAAe,CAAC,GAAW,EAAE,SAAS,GAAG,GAAG,EAAA;AAClD,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAI;YACxC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,MAAM,CACvB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,KACd,GAAG,CAAC,CAAC,CAAC;iBACL,GAAG,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,EACpF,GAAG,CACJ,CAAC;AACF,YAAA,OAAO,GAAG,CAAC;SACZ,EAAE,EAAE,CAAC,CAAC;KACR;IAEO,gCAAgC,CACtC,aAA+B,EAC/B,eAAyB,EAAA;QAEzB,MAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AAE7B,QAAA,eAAe,CAAC,OAAO,CAAC,cAAc,IAAG;AACvC,YAAA,iBAAiB,CAAC,cAAc,CAAC,GAAG,EAAE,CAAC;AACzC,SAAC,CAAC,CAAC;AAEH,QAAA,aAAa,CAAC,OAAO,CAAC,YAAY,IAAG;YACnC,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,KAAK,KAAI;gBAChD,iBAAiB,CAAC,cAAc,CAAC,GAAG;oBAClC,GAAG,iBAAiB,CAAC,cAAc,CAAC;oBACpC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,KAAK,GAAG,CAAC,CAAC;iBAC3C,CAAC;AACJ,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,eAAe,CAAC,OAAO,CAAC,cAAc,IAAG;AACvC,YAAA,iBAAiB,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC;AAC9F,SAAC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,WAAW,IAAG;AACnD,YAAA,aAAa,CAAC,IAAI,CAAC,EAAC,WAAW,EAAE,OAAO,EAAE,iBAAiB,CAAC,WAAW,CAAC,EAAC,CAAC,CAAC;AAC7E,SAAC,CAAC,CAAC;AAEH,QAAA,OAAO,aAAa,CAAC;KACtB;IAEO,kCAAkC,CACxC,eAAyB,EACzB,mBAAwC,EAAA;QAExC,IAAI,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACjD,YAAA,OAAO,EAAE,CAAC;SACX;AAED,QAAA,MAAM,mBAAmB,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC/C,MAAM,yBAAyB,GAC7B,mBAAmB,IAAI,mBAAmB,CAAC,mBAAmB,CAAC,CAAC;QAClE,MAAM,kCAAkC,GACtC,yBAAyB,IAAI,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC;QAE7E,OAAO,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,GAAG,CAAC,uBAAuB,IAAG;YACnF,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B,YAAA,mBAAmB,CAAC,GAAG,CAAC,GAAG,uBAAuB,CAAC;YAEnD,eAAe,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,KAAK,KAAI;AAChD,gBAAA,mBAAmB,CAAC,CAAG,EAAA,KAAK,GAAG,CAAC,EAAE,CAAC;AACjC,oBAAA,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,uBAAuB,CAAC,IAAI,EAAE,CAAC;AAC3F,aAAC,CAAC,CAAC;AAEH,YAAA,OAAO,mBAAmB,CAAC;AAC7B,SAAC,CAAC,CAAC;KACJ;AAhOU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,8BAA8B,0HAiE/B,QAAQ,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAjEP,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,8BAA8B,sEClC3C,s/FA8EA,EAAA,MAAA,EAAA,CAAA,osBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,yBAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,mBAAA,EAAA,iCAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,kCAAA,EAAA,oBAAA,EAAA,kBAAA,EAAA,gCAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,eAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAI,IAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FD5Ca,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAL1C,SAAS;+BACE,gCAAgC,EAAA,QAAA,EAAA,s/FAAA,EAAA,MAAA,EAAA,CAAA,osBAAA,CAAA,EAAA,CAAA;;0BAqEvC,MAAM;2BAAC,QAAQ,CAAA;;;AEnGpB;;;;;;;;;;;;;;AAcG;AAOH,MAAM,MAAM,GAAW;AACrB,IAAA;AACE,QAAA,IAAI,EAAE,wBAAwB;AAC9B,QAAA,SAAS,EAAE,8BAA8B;QACzC,WAAW,EAAE,CAAC,gBAAgB,CAAC;QAC/B,IAAI,EAAE,EAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,EAAC;AACnD,KAAA;CACF,CAAC;MAMW,kCAAkC,CAAA;+GAAlC,kCAAkC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAlC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kCAAkC,wCAFnC,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;gHAEX,kCAAkC,EAAA,OAAA,EAAA,CAHnC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC7B,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEX,kCAAkC,EAAA,UAAA,EAAA,CAAA;kBAJ9C,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA,CAAA;;;ACjCD;;;;;;;;;;;;;;AAcG;MA+BU,2BAA2B,CAAA;+GAA3B,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;gHAA3B,2BAA2B,EAAA,YAAA,EAAA,CAfvB,8BAA8B,CAAA,EAAA,OAAA,EAAA,CAE3C,YAAY;YACZ,eAAe;YACf,kCAAkC;YAClC,oBAAoB;YACpB,sBAAsB;YACtB,aAAa;YACb,iCAAiC;YACjC,YAAY;YACZ,UAAU;YACV,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;AAId,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,YAbpC,YAAY;YACZ,eAAe;YACf,kCAAkC;YAClC,oBAAoB;YACpB,sBAAsB;YACtB,aAAa;YACb,iCAAiC;YACjC,YAAY;YACZ,UAAU;YACV,uBAAuB,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAId,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAhBvC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,8BAA8B,CAAC;AAC9C,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,eAAe;wBACf,kCAAkC;wBAClC,oBAAoB;wBACpB,sBAAsB;wBACtB,aAAa;wBACb,iCAAiC;wBACjC,YAAY;wBACZ,UAAU;wBACV,uBAAuB;AACxB,qBAAA;AACD,oBAAA,OAAO,EAAE,EAAE;AACZ,iBAAA,CAAA;;;AC5CD;;;;;;;;;;;;;;AAcG;AAEH;;AAEG;;AClBH;;AAEG;;;;"}
1
+ {"version":3,"file":"valtimo-layout.mjs","sources":["../../../../projects/valtimo/layout/src/lib/services/layout/layout.service.ts","../../../../projects/valtimo/layout/src/lib/components/layout-public/layout-public.component.ts","../../../../projects/valtimo/layout/src/lib/components/layout-public/layout-public.component.html","../../../../projects/valtimo/layout/src/lib/components/layout-internal/layout-internal.component.ts","../../../../projects/valtimo/layout/src/lib/components/layout-internal/layout-internal.component.html","../../../../projects/valtimo/layout/src/lib/components/layout/layout.component.ts","../../../../projects/valtimo/layout/src/lib/components/layout/layout.component.html","../../../../projects/valtimo/layout/src/lib/layout.module.ts","../../../../projects/valtimo/layout/src/lib/components/translation-management/translation-management.component.ts","../../../../projects/valtimo/layout/src/lib/components/translation-management/translation-management.component.html","../../../../projects/valtimo/layout/src/lib/translation-management-routing.module.ts","../../../../projects/valtimo/layout/src/lib/translation-management.module.ts","../../../../projects/valtimo/layout/src/public_api.ts","../../../../projects/valtimo/layout/src/valtimo-layout.ts"],"sourcesContent":["/*\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\nimport {Injectable} from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class LayoutService {\n private fullscreen = false;\n\n constructor() {}\n\n public get isFullscreen() {\n return this.fullscreen;\n }\n\n public toggleFullscreen() {\n this.fullscreen = !this.fullscreen;\n }\n}\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\nimport {Component} from '@angular/core';\n\n@Component({\n selector: 'valtimo-layout-public',\n templateUrl: './layout-public.component.html',\n styleUrls: ['./layout-public.component.scss'],\n})\nexport class LayoutPublicComponent {}\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\n<div class=\"public-page-content\">\n <img src=\"assets/logo.svg\" class=\"logo\" />\n <router-outlet></router-outlet>\n</div>\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\nimport {AfterViewInit, Component, ElementRef, OnDestroy, Renderer2, ViewChild} from '@angular/core';\nimport {LayoutService} from '../../services/layout/layout.service';\nimport {ShellService, UserInterfaceService} from '@valtimo/components';\n\n// eslint-disable-next-line no-var\ndeclare var App;\n\n@Component({\n selector: 'valtimo-layout-internal',\n templateUrl: './layout-internal.component.html',\n styleUrls: ['./layout-internal.component.scss'],\n})\nexport class LayoutInternalComponent implements AfterViewInit, OnDestroy {\n @ViewChild('mainContent') mainContentRef: ElementRef;\n\n public readonly showPageHeader$ = this.userInterfaceService.showPageHeader$;\n public readonly sideBarExpanded$ = this.shellService.sideBarExpanded$;\n public readonly collapsibleWidescreenMenu$ = this.shellService.collapsibleWidescreenMenu$;\n\n private _observer!: ResizeObserver;\n\n constructor(\n public layoutService: LayoutService,\n private readonly renderer: Renderer2,\n private readonly userInterfaceService: UserInterfaceService,\n private readonly shellService: ShellService\n ) {\n this.renderer.addClass(document.body, 'be-animate');\n }\n\n public ngAfterViewInit(): void {\n App.init();\n this.shellService.setContentElement(this.mainContentRef.nativeElement);\n this._observer = new ResizeObserver(() => {\n this.shellService.onMainContentResize();\n });\n this._observer.observe(this.mainContentRef.nativeElement);\n }\n\n public ngOnDestroy(): void {\n this._observer.disconnect();\n }\n}\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\n<valtimo-topbar></valtimo-topbar>\n<main\n class=\"cds--content\"\n [ngClass]=\"{\n 'cds--content--sidebar':\n (sideBarExpanded$ | async) && (collapsibleWidescreenMenu$ | async) === false,\n }\"\n #mainContent\n>\n <valtimo-left-sidebar [hidden]=\"layoutService.isFullscreen\"></valtimo-left-sidebar>\n <valtimo-alert></valtimo-alert>\n <valtimo-page-header [hidden]=\"layoutService.isFullscreen\"></valtimo-page-header>\n <router-outlet></router-outlet>\n <valtimo-right-sidebar></valtimo-right-sidebar>\n <v-prompt></v-prompt>\n</main>\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\nimport {\n AfterViewInit,\n Component,\n OnDestroy,\n OnInit,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {ActivatedRoute, NavigationEnd, Router} from '@angular/router';\nimport {filter} from 'rxjs/operators';\nimport {Subscription} from 'rxjs';\nimport {PlaceholderService} from 'carbon-components-angular';\n\n// eslint-disable-next-line no-var\ndeclare var App: any;\n\n@Component({\n selector: 'valtimo-layout',\n templateUrl: './layout.component.html',\n})\nexport class LayoutComponent implements OnInit, AfterViewInit, OnDestroy {\n @ViewChild('carbonPlaceHolder', {static: true, read: ViewContainerRef})\n private readonly _carbonPlaceHolder: ViewContainerRef;\n\n public layoutType: string | null = null;\n private readonly _routerSub = new Subscription();\n private readonly _DEFAULT_LAYOUT = 'internal';\n\n constructor(\n private readonly router: Router,\n private readonly route: ActivatedRoute,\n private readonly placeHolderService: PlaceholderService\n ) {}\n\n public ngOnInit() {\n this.openRouterSubscription();\n }\n\n public ngAfterViewInit(): void {\n this.registerCarbonPlaceHolder();\n }\n\n public ngOnDestroy() {\n this._routerSub.unsubscribe();\n }\n\n private registerCarbonPlaceHolder(): void {\n if (this._carbonPlaceHolder) {\n this.placeHolderService.registerViewContainerRef(this._carbonPlaceHolder);\n }\n }\n\n private openRouterSubscription(): void {\n this._routerSub.add(\n this.router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(() => {\n const layout = this.route.snapshot.firstChild.data.layout;\n this.layoutType = layout ? layout : this._DEFAULT_LAYOUT;\n })\n );\n }\n}\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\n<div #carbonPlaceHolder class=\"carbon-placeholder\"></div>\n\n<valtimo-layout-public *ngIf=\"layoutType === 'public'\"></valtimo-layout-public>\n<valtimo-layout-internal *ngIf=\"layoutType === 'internal'\"></valtimo-layout-internal>\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\nimport {NgModule} from '@angular/core';\nimport {LayoutComponent} from './components/layout/layout.component';\nimport {\n AlertModule,\n LeftSidebarModule,\n MenuRoutingModule,\n PageHeaderModule,\n PromptModule,\n RightSidebarModule,\n TopbarModule,\n} from '@valtimo/components';\nimport {RouterModule} from '@angular/router';\nimport {LayoutPublicComponent} from './components/layout-public/layout-public.component';\nimport {LayoutInternalComponent} from './components/layout-internal/layout-internal.component';\nimport {CommonModule} from '@angular/common';\n\n@NgModule({\n declarations: [LayoutComponent, LayoutPublicComponent, LayoutInternalComponent],\n imports: [\n RouterModule,\n MenuRoutingModule,\n TopbarModule,\n LeftSidebarModule,\n RightSidebarModule,\n PageHeaderModule,\n AlertModule,\n CommonModule,\n PromptModule,\n ],\n exports: [LayoutComponent],\n})\nexport class LayoutModule {}\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\nimport {Component, Inject, OnInit} from '@angular/core';\nimport {BehaviorSubject, combineLatest, map, Observable, switchMap, take, tap} from 'rxjs';\nimport {TranslateService} from '@ngx-translate/core';\nimport {Localization, LocalizationService, MergedLocalizations} from '@valtimo/config';\nimport {\n ArbitraryInputTitles,\n MultiInputKeyValue,\n MultiInputOutput,\n PageHeaderService,\n} from '@valtimo/components';\nimport {isEqual} from 'lodash';\nimport {DOCUMENT} from '@angular/common';\n\n@Component({\n selector: 'valtimo-translation-management',\n templateUrl: './translation-management.component.html',\n styleUrls: ['./translation-management.component.scss'],\n})\nexport class TranslationManagementComponent implements OnInit {\n public readonly loading$ = new BehaviorSubject<boolean>(true);\n public readonly allChangedValuesValid$ = new BehaviorSubject<boolean>(false);\n public readonly disabled$ = new BehaviorSubject<boolean>(false);\n\n private readonly _languageOptions$ = new BehaviorSubject<Array<string>>(undefined);\n private readonly _refreshLocalizations$ = new BehaviorSubject<null>(null);\n private readonly _localizationTranslations$ = this._refreshLocalizations$.pipe(\n tap(() => this.loading$.next(true)),\n switchMap(() => this.localizationService.getMergedLocalizations()),\n tap(() => this.loading$.next(false))\n );\n\n private _defaultValues: Array<MultiInputKeyValue> = [];\n\n private readonly _changedValues$ = new BehaviorSubject<MultiInputOutput>(undefined);\n\n public readonly showConfirmationModal$ = new BehaviorSubject<boolean>(false);\n\n public readonly valuesChanged$: Observable<boolean> = this._changedValues$.pipe(\n map(changedValues => !isEqual(changedValues, this._defaultValues))\n );\n\n public readonly localizationTranslationValues$: Observable<Array<MultiInputKeyValue>> =\n combineLatest([\n this._languageOptions$,\n this._localizationTranslations$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([languageOptions, localizationTranslations]) =>\n this.mapMergedLocalizationsToMultiInput(languageOptions, localizationTranslations)\n ),\n tap(defaultValues => {\n this._defaultValues = defaultValues;\n })\n );\n\n public readonly multiInputTiles$: Observable<ArbitraryInputTitles> = combineLatest([\n this._languageOptions$,\n this.translateService.stream('key'),\n ]).pipe(\n map(([languageOptions]) => {\n const objToReturn = {};\n objToReturn[0] = this.translateService.instant('listColumn.key');\n\n languageOptions.forEach((languageOption, index) => {\n objToReturn[index + 1] = this.translateService.instant(\n `settings.language.options.${languageOption}`\n );\n });\n\n return objToReturn;\n })\n );\n\n public readonly amountOfArbitraryValues$: Observable<number> = this.multiInputTiles$.pipe(\n map(multiInputTitles => Object.keys(multiInputTitles).length)\n );\n\n public readonly compactMode$ = this.pageHeaderService.compactMode$;\n\n constructor(\n private readonly translateService: TranslateService,\n private readonly localizationService: LocalizationService,\n private readonly pageHeaderService: PageHeaderService,\n @Inject(DOCUMENT) private readonly document: Document\n ) {}\n\n public ngOnInit(): void {\n this.setLanguages();\n }\n\n public validChange(valid: boolean): void {\n this.allChangedValuesValid$.next(valid);\n }\n\n public valueChange(value: MultiInputOutput): void {\n this._changedValues$.next(value);\n }\n\n public saveAndRefresh(): void {\n this.saveChanges(true);\n }\n\n public saveAndStay(): void {\n this.saveChanges();\n }\n\n public cancel(): void {\n this.hideModal();\n }\n\n public showModal(): void {\n this.showConfirmationModal$.next(true);\n }\n\n public saveChanges(reload = false): void {\n this.disable();\n\n combineLatest([this._changedValues$, this._languageOptions$])\n .pipe(\n take(1),\n map(([changedValues, languageOptions]) =>\n this.getLocalizationsForUpdateRequest(changedValues, languageOptions)\n ),\n switchMap(updatedLocalizations =>\n this.localizationService.updateLocalizations(updatedLocalizations)\n )\n )\n .subscribe(() => {\n if (reload) {\n this.document?.defaultView?.location?.reload();\n } else {\n this._refreshLocalizations$.next(null);\n this.enable();\n }\n });\n }\n\n private setLanguages(): void {\n this._languageOptions$.next(this.translateService.langs);\n }\n\n private disable(): void {\n this.disabled$.next(true);\n }\n\n private enable(): void {\n this.disabled$.next(false);\n }\n\n private hideModal(): void {\n this.showConfirmationModal$.next(false);\n }\n\n private flattenObject(ob: object): object {\n const toReturn = {};\n\n for (const i in ob) {\n if (!ob.hasOwnProperty(i)) continue;\n\n if (typeof ob[i] == 'object' && ob[i] !== null) {\n const flatObject = this.flattenObject(ob[i]);\n for (const x in flatObject) {\n if (!flatObject.hasOwnProperty(x)) continue;\n\n toReturn[i + '.' + x] = flatObject[x];\n }\n } else {\n toReturn[i] = ob[i];\n }\n }\n return toReturn;\n }\n\n private unflattenObject(obj: object, delimiter = '.'): object {\n return Object.keys(obj).reduce((res, k) => {\n k.split(delimiter).reduce(\n (acc, e, i, keys) =>\n acc[e] ||\n (acc[e] = isNaN(Number(keys[i + 1])) ? (keys.length - 1 === i ? obj[k] : {}) : []),\n res\n );\n return res;\n }, {});\n }\n\n private getLocalizationsForUpdateRequest(\n changedValues: MultiInputOutput,\n languageOptions: string[]\n ): Localization[] {\n const localizations: Localization[] = [];\n const translationObject = {};\n\n languageOptions.forEach(languageOption => {\n translationObject[languageOption] = {};\n });\n\n changedValues.forEach(changedValue => {\n languageOptions.forEach((languageOption, index) => {\n translationObject[languageOption] = {\n ...translationObject[languageOption],\n [changedValue[0]]: changedValue[index + 1],\n };\n });\n });\n\n languageOptions.forEach(languageOption => {\n translationObject[languageOption] = this.unflattenObject(translationObject[languageOption]);\n });\n\n Object.keys(translationObject).forEach(languageKey => {\n localizations.push({languageKey, content: translationObject[languageKey]});\n });\n\n return localizations;\n }\n\n private mapMergedLocalizationsToMultiInput(\n languageOptions: string[],\n mergedLocalizations: MergedLocalizations\n ) {\n if (Object.keys(mergedLocalizations).length === 0) {\n return [];\n }\n\n const firstLanguageOption = languageOptions[0];\n const firstLanguageTranslations =\n firstLanguageOption && mergedLocalizations[firstLanguageOption];\n const flattenedFirstLanguageTranslations =\n firstLanguageTranslations && this.flattenObject(firstLanguageTranslations);\n\n return Object.keys(flattenedFirstLanguageTranslations).map(flattenedTranslationKey => {\n const emptyArbitraryValue = {};\n\n emptyArbitraryValue['0'] = flattenedTranslationKey;\n\n languageOptions.forEach((languageOption, index) => {\n emptyArbitraryValue[`${index + 1}`] =\n this.flattenObject(mergedLocalizations[languageOption])[flattenedTranslationKey] || '';\n });\n\n return emptyArbitraryValue;\n });\n }\n}\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\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","/*\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 */\nimport {NgModule} from '@angular/core';\nimport {RouterModule, Routes} from '@angular/router';\nimport {ROLE_ADMIN} from '@valtimo/config';\nimport {AuthGuardService} from '@valtimo/security';\nimport {TranslationManagementComponent} from './components/translation-management/translation-management.component';\n\nconst routes: Routes = [\n {\n path: 'translation-management',\n component: TranslationManagementComponent,\n canActivate: [AuthGuardService],\n data: {title: 'Translations', roles: [ROLE_ADMIN]},\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class TranslationManagementRoutingModule {}\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\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\nimport {TranslationManagementComponent} from './components/translation-management/translation-management.component';\nimport {TranslationManagementRoutingModule} from './translation-management-routing.module';\nimport {TranslateModule} from '@ngx-translate/core';\nimport {\n CarbonMultiInputModule,\n ConfirmationModalModule,\n MultiInputFormModule,\n RenderInPageHeaderDirectiveModule,\n} from '@valtimo/components';\nimport {ButtonModule, IconModule, LoadingModule} from 'carbon-components-angular';\n\n@NgModule({\n declarations: [TranslationManagementComponent],\n imports: [\n CommonModule,\n TranslateModule,\n TranslationManagementRoutingModule,\n MultiInputFormModule,\n CarbonMultiInputModule,\n LoadingModule,\n RenderInPageHeaderDirectiveModule,\n ButtonModule,\n IconModule,\n ConfirmationModalModule,\n ],\n exports: [],\n})\nexport class TranslationManagementModule {}\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\n/*\n * Public API Surface of layout\n */\n\nexport * from './lib/services/layout/layout.service';\nexport * from './lib/components/layout/layout.component';\nexport * from './lib/layout.module';\nexport * from './lib/translation-management.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.LayoutService","i3","i2","i4.LayoutPublicComponent","i5.LayoutInternalComponent","i1"],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@valtimo/layout",
3
3
  "license": "EUPL-1.2",
4
- "version": "12.2.1",
4
+ "version": "12.4.0",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^17.2.2",
7
7
  "@angular/core": "^17.2.2"