@updevs/components 1.0.0-alpha.6 → 1.0.0-alpha.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/card/directives/card-actions.directive.d.ts +1 -2
  2. package/card/directives/card-footer.directive.d.ts +1 -2
  3. package/card/directives/card-header.directive.d.ts +1 -2
  4. package/card/directives/card-image.directive.d.ts +1 -2
  5. package/esm2022/button/button.component.mjs +5 -5
  6. package/esm2022/button/upd-button.module.mjs +5 -5
  7. package/esm2022/card/card.component.mjs +4 -4
  8. package/esm2022/card/directives/card-actions.directive.mjs +8 -8
  9. package/esm2022/card/directives/card-footer.directive.mjs +8 -8
  10. package/esm2022/card/directives/card-header.directive.mjs +8 -8
  11. package/esm2022/card/directives/card-image.directive.mjs +8 -8
  12. package/esm2022/card/upd-card.module.mjs +5 -5
  13. package/esm2022/dropdown/dropdown.component.mjs +10 -11
  14. package/esm2022/dropdown/upd-dropdown.module.mjs +5 -5
  15. package/esm2022/form/form.module.mjs +5 -5
  16. package/esm2022/form-controls/checkbox/checkbox.component.mjs +5 -5
  17. package/esm2022/form-controls/checkbox/upd-checkbox.module.mjs +5 -5
  18. package/esm2022/form-controls/input/directives/input-append.directive.mjs +8 -8
  19. package/esm2022/form-controls/input/directives/input-prepend.directive.mjs +8 -8
  20. package/esm2022/form-controls/input/input.component.mjs +4 -4
  21. package/esm2022/form-controls/input/upd-input.module.mjs +5 -5
  22. package/esm2022/form-controls/radio/radio.component.mjs +5 -5
  23. package/esm2022/form-controls/radio/upd-radio.module.mjs +5 -5
  24. package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +9 -10
  25. package/esm2022/form-controls/select/components/single/select.component.mjs +9 -10
  26. package/esm2022/form-controls/select/models/abstractions/base-select.component.mjs +4 -4
  27. package/esm2022/form-controls/select/upd-select.module.mjs +5 -5
  28. package/esm2022/form-controls/textarea/textarea.component.mjs +5 -5
  29. package/esm2022/form-controls/textarea/upd-textarea.module.mjs +5 -5
  30. package/esm2022/form-controls/time-picker/time-picker.component.mjs +4 -4
  31. package/esm2022/form-controls/time-picker/time-selector/time-selector.component.mjs +7 -8
  32. package/esm2022/form-controls/time-picker/upd-time-picker.module.mjs +6 -6
  33. package/esm2022/layout/abstractions/base-page.component.mjs +6 -6
  34. package/esm2022/layout/layouts/blank-layout/blank-layout.component.mjs +4 -4
  35. package/esm2022/layout/layouts/blank-layout/blank-layout.module.mjs +5 -5
  36. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.mjs +17 -19
  37. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.mjs +6 -6
  38. package/esm2022/layout/models/upd-layout-config.model.mjs +1 -1
  39. package/esm2022/layout/pages/auth-flow/auth-flow-routing.module.mjs +5 -5
  40. package/esm2022/layout/pages/auth-flow/auth-flow.module.mjs +5 -5
  41. package/esm2022/layout/pages/auth-flow/logged-out/logged-out.component.mjs +4 -4
  42. package/esm2022/layout/pages/auth-flow/login/login.component.mjs +6 -6
  43. package/esm2022/layout/pages/auth-flow/oauth-callback/oauth-callback.component.mjs +4 -4
  44. package/esm2022/layout/partials/footer/footer-copyright.directive.mjs +5 -7
  45. package/esm2022/layout/partials/footer/footer.component.mjs +13 -12
  46. package/esm2022/layout/partials/header/header.component.mjs +16 -18
  47. package/esm2022/layout/partials/page-header/page-header.component.mjs +6 -7
  48. package/esm2022/layout/partials/sidebar/sidebar.component.mjs +14 -15
  49. package/esm2022/layout/services/upd-layout-config.service.mjs +6 -6
  50. package/esm2022/layout/upd-layout.module.mjs +5 -5
  51. package/esm2022/lib/upd-components.module.mjs +5 -5
  52. package/esm2022/link/link.component.mjs +4 -4
  53. package/esm2022/link/upd-link.module.mjs +5 -5
  54. package/esm2022/list/list.component.mjs +10 -10
  55. package/esm2022/list/upd-list.module.mjs +6 -6
  56. package/esm2022/popover/popover.component.mjs +5 -5
  57. package/esm2022/popover/popover.directive.mjs +15 -15
  58. package/esm2022/popover/upd-popover.module.mjs +5 -5
  59. package/fesm2022/updevs-components-button.mjs +8 -8
  60. package/fesm2022/updevs-components-button.mjs.map +1 -1
  61. package/fesm2022/updevs-components-card.mjs +32 -32
  62. package/fesm2022/updevs-components-card.mjs.map +1 -1
  63. package/fesm2022/updevs-components-dropdown.mjs +14 -15
  64. package/fesm2022/updevs-components-dropdown.mjs.map +1 -1
  65. package/fesm2022/updevs-components-form-controls-checkbox.mjs +8 -8
  66. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -1
  67. package/fesm2022/updevs-components-form-controls-input.mjs +20 -20
  68. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -1
  69. package/fesm2022/updevs-components-form-controls-radio.mjs +8 -8
  70. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -1
  71. package/fesm2022/updevs-components-form-controls-select.mjs +20 -21
  72. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -1
  73. package/fesm2022/updevs-components-form-controls-textarea.mjs +8 -8
  74. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -1
  75. package/fesm2022/updevs-components-form-controls-time-picker.mjs +14 -15
  76. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -1
  77. package/fesm2022/updevs-components-form.mjs +4 -4
  78. package/fesm2022/updevs-components-form.mjs.map +1 -1
  79. package/fesm2022/updevs-components-layout.mjs +98 -101
  80. package/fesm2022/updevs-components-layout.mjs.map +1 -1
  81. package/fesm2022/updevs-components-link.mjs +7 -7
  82. package/fesm2022/updevs-components-link.mjs.map +1 -1
  83. package/fesm2022/updevs-components-list.mjs +14 -14
  84. package/fesm2022/updevs-components-list.mjs.map +1 -1
  85. package/fesm2022/updevs-components-popover.mjs +22 -22
  86. package/fesm2022/updevs-components-popover.mjs.map +1 -1
  87. package/fesm2022/updevs-components.mjs +4 -4
  88. package/fesm2022/updevs-components.mjs.map +1 -1
  89. package/form-controls/input/directives/input-append.directive.d.ts +1 -2
  90. package/form-controls/input/directives/input-prepend.directive.d.ts +1 -2
  91. package/layout/abstractions/base-page.component.d.ts +1 -2
  92. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.d.ts +4 -5
  93. package/layout/partials/footer/footer-copyright.directive.d.ts +0 -1
  94. package/layout/partials/footer/footer.component.d.ts +1 -3
  95. package/layout/partials/header/header.component.d.ts +4 -6
  96. package/layout/partials/sidebar/sidebar.component.d.ts +1 -3
  97. package/list/list.component.d.ts +3 -4
  98. package/package.json +5 -5
  99. package/popover/popover.directive.d.ts +8 -10
@@ -1,19 +1,18 @@
1
1
  import * as i0 from '@angular/core';
2
- import { inject, Directive, Component, NgModule, TemplateRef, ViewEncapsulation, HostBinding, ContentChild, Input, InjectionToken, Injectable, Inject } from '@angular/core';
3
- import * as i1$1 from '@updevs/sdk/layout';
4
- import { BaseComponent, LayoutService, UpdCoreLayoutModule } from '@updevs/sdk/layout';
5
- import * as i2 from '@angular/common';
2
+ import { inject, Directive, Component, NgModule, TemplateRef, ViewEncapsulation, HostBinding, ContentChild, Input, ChangeDetectorRef, InjectionToken, Injectable, Inject } from '@angular/core';
3
+ import { BaseComponent, LayoutService, UpdCoreLayoutConfigService, UpdCoreLayoutModule } from '@updevs/sdk/layout';
4
+ import * as i1 from '@angular/common';
6
5
  import { CommonModule } from '@angular/common';
7
- import * as i1$2 from '@angular/router';
8
- import { NavigationStart, RouterModule } from '@angular/router';
9
- import * as i4 from '@updevs/icons';
6
+ import * as i1$4 from '@angular/router';
7
+ import { Router, NavigationStart, RouterModule } from '@angular/router';
8
+ import * as i1$2 from '@updevs/icons';
10
9
  import { UpdIconsModule } from '@updevs/icons';
11
- import * as i2$1 from '@updevs/components/button';
10
+ import * as i1$3 from '@updevs/components/button';
12
11
  import { UpdButtonModule } from '@updevs/components/button';
13
- import * as i5 from '@updevs/components/link';
12
+ import * as i2 from '@updevs/components/link';
14
13
  import { UpdLinkModule } from '@updevs/components/link';
15
- import * as i1 from '@ngneat/transloco';
16
- import { TranslocoModule } from '@ngneat/transloco';
14
+ import * as i1$1 from '@ngneat/transloco';
15
+ import { TranslocoService, TranslocoModule } from '@ngneat/transloco';
17
16
  import { RouteDataModel } from '@updevs/sdk/routes';
18
17
  import { filter } from 'rxjs';
19
18
  import { AuthService } from '@updevs/sdk/security';
@@ -26,36 +25,36 @@ import { FormsModule } from '@angular/forms';
26
25
  // eslint-disable-next-line @angular-eslint/directive-class-suffix
27
26
  class BasePageComponent extends BaseComponent {
28
27
  constructor() {
29
- super();
28
+ super(...arguments);
30
29
  this._layoutService = inject(LayoutService);
31
30
  }
32
31
  ngOnDestroy() {
33
32
  super.ngOnDestroy();
34
33
  // TODO: clear subheader.
35
34
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BasePageComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
37
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.11", type: BasePageComponent, usesInheritance: true, ngImport: i0 }); }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BasePageComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
36
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: BasePageComponent, usesInheritance: true, ngImport: i0 }); }
38
37
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BasePageComponent, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BasePageComponent, decorators: [{
40
39
  type: Directive,
41
40
  args: [{}]
42
- }], ctorParameters: function () { return []; } });
41
+ }] });
43
42
 
44
43
  class BlankLayoutComponent {
45
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BlankLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: BlankLayoutComponent, selector: "upd-blank-layout", ngImport: i0, template: "<p>blank-layout works!</p>\n", styles: [""] }); }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BlankLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: BlankLayoutComponent, selector: "upd-blank-layout", ngImport: i0, template: "<p>blank-layout works!</p>\n", styles: [""] }); }
47
46
  }
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BlankLayoutComponent, decorators: [{
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BlankLayoutComponent, decorators: [{
49
48
  type: Component,
50
49
  args: [{ selector: 'upd-blank-layout', template: "<p>blank-layout works!</p>\n" }]
51
50
  }] });
52
51
 
53
52
  class BlankLayoutModule {
54
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BlankLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
55
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: BlankLayoutModule, declarations: [BlankLayoutComponent], imports: [CommonModule], exports: [BlankLayoutComponent] }); }
56
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BlankLayoutModule, imports: [CommonModule] }); }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BlankLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
54
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: BlankLayoutModule, declarations: [BlankLayoutComponent], imports: [CommonModule], exports: [BlankLayoutComponent] }); }
55
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BlankLayoutModule, imports: [CommonModule] }); }
57
56
  }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: BlankLayoutModule, decorators: [{
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: BlankLayoutModule, decorators: [{
59
58
  type: NgModule,
60
59
  args: [{
61
60
  imports: [
@@ -97,22 +96,19 @@ var pt$1 = /*#__PURE__*/Object.freeze({
97
96
  });
98
97
 
99
98
  class FooterCopyrightDirective {
100
- constructor() {
101
- }
102
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FooterCopyrightDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
103
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.11", type: FooterCopyrightDirective, selector: "[updFooterCopyright]", ngImport: i0 }); }
99
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FooterCopyrightDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
100
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.1", type: FooterCopyrightDirective, selector: "[updFooterCopyright]", ngImport: i0 }); }
104
101
  }
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FooterCopyrightDirective, decorators: [{
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FooterCopyrightDirective, decorators: [{
106
103
  type: Directive,
107
104
  args: [{
108
105
  selector: '[updFooterCopyright]'
109
106
  }]
110
- }], ctorParameters: function () { return []; } });
107
+ }] });
111
108
 
112
109
  class FooterComponent extends BaseComponent {
113
- constructor(translocoService) {
114
- super();
115
- this.translocoService = translocoService;
110
+ constructor() {
111
+ super(...arguments);
116
112
  this.wrapperClasses = '';
117
113
  /**
118
114
  * Whether the footer will always be shown.
@@ -139,6 +135,7 @@ class FooterComponent extends BaseComponent {
139
135
  */
140
136
  this.copyrightSuffix = '';
141
137
  this.baseWrapperClasses = 'footer d-print-none';
138
+ this.translocoService = inject(TranslocoService);
142
139
  }
143
140
  ngOnInit() {
144
141
  const footerCpsSub = this.translocoService.selectTranslate('Footer.AllRightsReserved').subscribe(r => this.copyrightSuffix = r);
@@ -155,13 +152,13 @@ class FooterComponent extends BaseComponent {
155
152
  const transparentCls = this.isTransparent ? ' footer-transparent' : '';
156
153
  this.wrapperClasses = `${this.baseWrapperClasses}${stickyBottomCls}${transparentCls}`;
157
154
  }
158
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FooterComponent, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
159
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: FooterComponent, selector: "upd-footer", host: { properties: { "class": "this.wrapperClasses" } }, queries: [{ propertyName: "footerCopyrightTemplate", first: true, predicate: FooterCopyrightDirective, descendants: true, read: TemplateRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container-xl\">\n <div class=\"row text-center align-items-center flex-row-reverse\">\n <div class=\"col-lg-auto ms-lg-auto\">\n <ul *ngIf=\"links.length > 0\" class=\"list-inline list-inline-dots mb-0\">\n <li *ngFor=\"let link of links\" class=\"list-inline-item\">\n <a href=\"{{link.url}}\" target=\"{{link.target}}\" class=\"link-secondary\">\n <span [innerHTML]=\"link.text\"></span>\n <ng-container *transloco=\"let t\">\n {{t('Layout.Aloha')}}\n </ng-container>\n </a>\n </li>\n </ul>\n </div>\n <div class=\"col-12 col-lg-auto mt-3 mt-lg-0\">\n <ng-container *ngIf=\"!!footerCopyrightTemplate; else defaultFooterTpl\"\n [ngTemplateOutlet]=\"footerCopyrightTemplate\"></ng-container>\n <ng-template #defaultFooterTpl>\n <ul class=\"list-inline list-inline-dots mb-0\">\n <li class=\"list-inline-item\">\n {{copyrightPrefix}} &copy; {{currentYear}} {{copyrightSuffix}}\n </li>\n <li *ngIf=\"!!version\" class=\"list-inline-item\">\n {{version}}\n </li>\n </ul>\n </ng-template>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }], encapsulation: i0.ViewEncapsulation.None }); }
155
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FooterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
156
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: FooterComponent, selector: "upd-footer", host: { properties: { "class": "this.wrapperClasses" } }, queries: [{ propertyName: "footerCopyrightTemplate", first: true, predicate: FooterCopyrightDirective, descendants: true, read: TemplateRef, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container-xl\">\n <div class=\"row text-center align-items-center flex-row-reverse\">\n <div class=\"col-lg-auto ms-lg-auto\">\n @if (links.length > 0) {\n <ul class=\"list-inline list-inline-dots mb-0\">\n @for (link of links; track link) {\n <li class=\"list-inline-item\">\n <a href=\"{{link.url}}\" target=\"{{link.target}}\" class=\"link-secondary\">\n <span [innerHTML]=\"link.text\"></span>\n <ng-container *transloco=\"let t\">\n {{ t('Layout.Aloha') }}\n </ng-container>\n </a>\n </li>\n }\n </ul>\n }\n </div>\n <div class=\"col-12 col-lg-auto mt-3 mt-lg-0\">\n @if (!!footerCopyrightTemplate) {\n <ng-container [ngTemplateOutlet]=\"footerCopyrightTemplate\"></ng-container>\n } @else {\n <ul class=\"list-inline list-inline-dots mb-0\">\n <li class=\"list-inline-item\">\n {{ copyrightPrefix }} &copy; {{ currentYear }} {{ copyrightSuffix }}\n </li>\n @if (!!version) {\n <li class=\"list-inline-item\">\n {{ version }}\n </li>\n }\n </ul>\n }\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$1.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoLang", "translocoLoadingTpl"] }], encapsulation: i0.ViewEncapsulation.None }); }
160
157
  }
161
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: FooterComponent, decorators: [{
158
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: FooterComponent, decorators: [{
162
159
  type: Component,
163
- args: [{ selector: 'upd-footer', encapsulation: ViewEncapsulation.None, template: "<div class=\"container-xl\">\n <div class=\"row text-center align-items-center flex-row-reverse\">\n <div class=\"col-lg-auto ms-lg-auto\">\n <ul *ngIf=\"links.length > 0\" class=\"list-inline list-inline-dots mb-0\">\n <li *ngFor=\"let link of links\" class=\"list-inline-item\">\n <a href=\"{{link.url}}\" target=\"{{link.target}}\" class=\"link-secondary\">\n <span [innerHTML]=\"link.text\"></span>\n <ng-container *transloco=\"let t\">\n {{t('Layout.Aloha')}}\n </ng-container>\n </a>\n </li>\n </ul>\n </div>\n <div class=\"col-12 col-lg-auto mt-3 mt-lg-0\">\n <ng-container *ngIf=\"!!footerCopyrightTemplate; else defaultFooterTpl\"\n [ngTemplateOutlet]=\"footerCopyrightTemplate\"></ng-container>\n <ng-template #defaultFooterTpl>\n <ul class=\"list-inline list-inline-dots mb-0\">\n <li class=\"list-inline-item\">\n {{copyrightPrefix}} &copy; {{currentYear}} {{copyrightSuffix}}\n </li>\n <li *ngIf=\"!!version\" class=\"list-inline-item\">\n {{version}}\n </li>\n </ul>\n </ng-template>\n </div>\n </div>\n</div>\n" }]
164
- }], ctorParameters: function () { return [{ type: i1.TranslocoService }]; }, propDecorators: { wrapperClasses: [{
160
+ args: [{ selector: 'upd-footer', encapsulation: ViewEncapsulation.None, template: "<div class=\"container-xl\">\n <div class=\"row text-center align-items-center flex-row-reverse\">\n <div class=\"col-lg-auto ms-lg-auto\">\n @if (links.length > 0) {\n <ul class=\"list-inline list-inline-dots mb-0\">\n @for (link of links; track link) {\n <li class=\"list-inline-item\">\n <a href=\"{{link.url}}\" target=\"{{link.target}}\" class=\"link-secondary\">\n <span [innerHTML]=\"link.text\"></span>\n <ng-container *transloco=\"let t\">\n {{ t('Layout.Aloha') }}\n </ng-container>\n </a>\n </li>\n }\n </ul>\n }\n </div>\n <div class=\"col-12 col-lg-auto mt-3 mt-lg-0\">\n @if (!!footerCopyrightTemplate) {\n <ng-container [ngTemplateOutlet]=\"footerCopyrightTemplate\"></ng-container>\n } @else {\n <ul class=\"list-inline list-inline-dots mb-0\">\n <li class=\"list-inline-item\">\n {{ copyrightPrefix }} &copy; {{ currentYear }} {{ copyrightSuffix }}\n </li>\n @if (!!version) {\n <li class=\"list-inline-item\">\n {{ version }}\n </li>\n }\n </ul>\n }\n </div>\n </div>\n</div>\n" }]
161
+ }], propDecorators: { wrapperClasses: [{
165
162
  type: HostBinding,
166
163
  args: ['class']
167
164
  }], footerCopyrightTemplate: [{
@@ -170,11 +167,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
170
167
  }] } });
171
168
 
172
169
  class HeaderComponent extends BaseComponent {
173
- constructor(coreLayoutConfigService, layoutService, translocoService) {
174
- super();
175
- this.coreLayoutConfigService = coreLayoutConfigService;
176
- this.layoutService = layoutService;
177
- this.translocoService = translocoService;
170
+ constructor() {
171
+ super(...arguments);
178
172
  this.wrapperClasses = '';
179
173
  this.style = 'light';
180
174
  this.showSearchBar = true;
@@ -186,6 +180,9 @@ class HeaderComponent extends BaseComponent {
186
180
  this.showLanguageSwitcher = true; // TODO: add on config.
187
181
  this.showUserMenu = false;
188
182
  this.baseWrapperClasses = 'navbar navbar-expand-md d-none d-lg-flex d-print-none';
183
+ this.coreLayoutConfigService = inject(UpdCoreLayoutConfigService);
184
+ this.layoutService = inject(LayoutService);
185
+ this.translocoService = inject(TranslocoService);
189
186
  }
190
187
  ngOnInit() {
191
188
  this.updateWrapperClasses();
@@ -225,13 +222,13 @@ class HeaderComponent extends BaseComponent {
225
222
  updateWrapperClasses() {
226
223
  this.wrapperClasses = `${this.baseWrapperClasses} navbar-${this.style}`;
227
224
  }
228
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: HeaderComponent, deps: [{ token: i1$1.UpdCoreLayoutConfigService }, { token: i1$1.LayoutService }, { token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.Component }); }
229
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: HeaderComponent, selector: "upd-header", inputs: { style: "style", showSearchBar: "showSearchBar" }, host: { properties: { "class": "this.wrapperClasses" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container-xl\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-nav flex-row order-md-last\">\n <div class=\"d-none d-md-flex me-3\">\n <div class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchTheme()\">\n <upd-icon [tablerIcon]=\"nextThemeIcon\"></upd-icon>\n </upd-link>\n </div>\n <div *ngIf=\"showLanguageSwitcher\" class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchLanguage()\">\n <upd-icon tablerIcon=\"flag\"></upd-icon>\n </upd-link>\n </div>\n <div *ngIf=\"showNotifications\" class=\"nav-item dropdown d-none d-md-flex\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"openNotifications()\">\n <upd-icon [tablerIcon]=\"currentNotificationsIcon\"></upd-icon>\n <span *ngIf=\"hasNewNotifications\" class=\"badge bg-red\"></span>\n </upd-link>\n <div class=\"dropdown-menu dropdown-menu-arrow dropdown-menu-end dropdown-menu-card\">\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">Last updates</h3>\n </div>\n <div class=\"list-group list-group-flush list-group-hoverable\">\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-red d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 1</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Change deprecated html tags to text decoration classes (#29604)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 2</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n justify-content:between \u21D2 justify-content:space-between (#29734)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions show\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-yellow\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 3</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Update change-version.js (#29736)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-green d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 4</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Regenerate package-lock.json (#29730)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"showUserMenu\" class=\"nav-item dropdown\">\n <a href=\"#\" class=\"nav-link d-flex lh-1 text-reset p-0\" data-bs-toggle=\"dropdown\"\n aria-label=\"Open user menu\">\n <!--<span class=\"avatar avatar-sm\" style=\"background-image: url(./static/avatars/000m.jpg)\"></span>-->\n <span class=\"avatar avatar-sm\"></span>\n <div class=\"d-none d-xl-block ps-2\">\n <div>Eros Stein</div>\n <div class=\"mt-1 small text-muted\">Administrator</div>\n </div>\n </a>\n <div class=\"dropdown-menu dropdown-menu-end dropdown-menu-arrow\">\n <a href=\"#\" class=\"dropdown-item\">Status</a>\n <a href=\"./profile.html\" class=\"dropdown-item\">Profile</a>\n <a href=\"#\" class=\"dropdown-item\">Feedback</a>\n <div class=\"dropdown-divider\"></div>\n <a href=\"./settings.html\" class=\"dropdown-item\">Settings</a>\n <a href=\"./sign-in.html\" class=\"dropdown-item\">Logout</a>\n </div>\n </div>\n </div>\n <div *ngIf=\"showSearchBar\" class=\"collapse navbar-collapse\">\n <div>\n <form autocomplete=\"off\" novalidate>\n <div class=\"input-icon\">\n <span class=\"input-icon-addon\">\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </span>\n <input type=\"text\" value=\"\" class=\"form-control\" placeholder=\"Search\u2026\">\n </div>\n </form>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "removeDefaultClasses", "customClasses", "tablerIcon", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i5.LinkComponent, selector: "upd-link", inputs: ["href", "target", "customClasses", "isNavigation"], outputs: ["clicked"] }], encapsulation: i0.ViewEncapsulation.None }); }
225
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: HeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
226
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: HeaderComponent, selector: "upd-header", inputs: { style: "style", showSearchBar: "showSearchBar" }, host: { properties: { "class": "this.wrapperClasses" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container-xl\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-nav flex-row order-md-last\">\n <div class=\"d-none d-md-flex me-3\">\n <div class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchTheme()\">\n <upd-icon [tablerIcon]=\"nextThemeIcon\"></upd-icon>\n </upd-link>\n </div>\n @if (showLanguageSwitcher) {\n <div class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchLanguage()\">\n <upd-icon tablerIcon=\"flag\"></upd-icon>\n </upd-link>\n </div>\n }\n @if (showNotifications) {\n <div class=\"nav-item dropdown d-none d-md-flex\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"openNotifications()\">\n <upd-icon [tablerIcon]=\"currentNotificationsIcon\"></upd-icon>\n @if (hasNewNotifications) {\n <span class=\"badge bg-red\"></span>\n }\n </upd-link>\n <div class=\"dropdown-menu dropdown-menu-arrow dropdown-menu-end dropdown-menu-card\">\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">Last updates</h3>\n </div>\n <div class=\"list-group list-group-flush list-group-hoverable\">\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-red d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 1</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Change deprecated html tags to text decoration classes (#29604)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 2</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n justify-content:between \u21D2 justify-content:space-between (#29734)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions show\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-yellow\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 3</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Update change-version.js (#29736)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-green d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 4</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Regenerate package-lock.json (#29730)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n @if (showUserMenu) {\n <div class=\"nav-item dropdown\">\n <a href=\"#\" class=\"nav-link d-flex lh-1 text-reset p-0\" data-bs-toggle=\"dropdown\"\n aria-label=\"Open user menu\">\n <!--<span class=\"avatar avatar-sm\" style=\"background-image: url(./static/avatars/000m.jpg)\"></span>-->\n <span class=\"avatar avatar-sm\"></span>\n <div class=\"d-none d-xl-block ps-2\">\n <div>Eros Stein</div>\n <div class=\"mt-1 small text-muted\">Administrator</div>\n </div>\n </a>\n <div class=\"dropdown-menu dropdown-menu-end dropdown-menu-arrow\">\n <a href=\"#\" class=\"dropdown-item\">Status</a>\n <a href=\"./profile.html\" class=\"dropdown-item\">Profile</a>\n <a href=\"#\" class=\"dropdown-item\">Feedback</a>\n <div class=\"dropdown-divider\"></div>\n <a href=\"./settings.html\" class=\"dropdown-item\">Settings</a>\n <a href=\"./sign-in.html\" class=\"dropdown-item\">Logout</a>\n </div>\n </div>\n }\n </div>\n @if (showSearchBar) {\n <div class=\"collapse navbar-collapse\">\n <div>\n <form autocomplete=\"off\" novalidate>\n <div class=\"input-icon\">\n <span class=\"input-icon-addon\">\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </span>\n <input type=\"text\" value=\"\" class=\"form-control\" placeholder=\"Search\u2026\">\n </div>\n </form>\n </div>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i1$2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "removeDefaultClasses", "customClasses", "tablerIcon", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i2.LinkComponent, selector: "upd-link", inputs: ["href", "target", "customClasses", "isNavigation"], outputs: ["clicked"] }], encapsulation: i0.ViewEncapsulation.None }); }
230
227
  }
231
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: HeaderComponent, decorators: [{
228
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: HeaderComponent, decorators: [{
232
229
  type: Component,
233
- args: [{ selector: 'upd-header', encapsulation: ViewEncapsulation.None, template: "<div class=\"container-xl\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-nav flex-row order-md-last\">\n <div class=\"d-none d-md-flex me-3\">\n <div class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchTheme()\">\n <upd-icon [tablerIcon]=\"nextThemeIcon\"></upd-icon>\n </upd-link>\n </div>\n <div *ngIf=\"showLanguageSwitcher\" class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchLanguage()\">\n <upd-icon tablerIcon=\"flag\"></upd-icon>\n </upd-link>\n </div>\n <div *ngIf=\"showNotifications\" class=\"nav-item dropdown d-none d-md-flex\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"openNotifications()\">\n <upd-icon [tablerIcon]=\"currentNotificationsIcon\"></upd-icon>\n <span *ngIf=\"hasNewNotifications\" class=\"badge bg-red\"></span>\n </upd-link>\n <div class=\"dropdown-menu dropdown-menu-arrow dropdown-menu-end dropdown-menu-card\">\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">Last updates</h3>\n </div>\n <div class=\"list-group list-group-flush list-group-hoverable\">\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-red d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 1</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Change deprecated html tags to text decoration classes (#29604)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 2</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n justify-content:between \u21D2 justify-content:space-between (#29734)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions show\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-yellow\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 3</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Update change-version.js (#29736)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-green d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 4</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Regenerate package-lock.json (#29730)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"showUserMenu\" class=\"nav-item dropdown\">\n <a href=\"#\" class=\"nav-link d-flex lh-1 text-reset p-0\" data-bs-toggle=\"dropdown\"\n aria-label=\"Open user menu\">\n <!--<span class=\"avatar avatar-sm\" style=\"background-image: url(./static/avatars/000m.jpg)\"></span>-->\n <span class=\"avatar avatar-sm\"></span>\n <div class=\"d-none d-xl-block ps-2\">\n <div>Eros Stein</div>\n <div class=\"mt-1 small text-muted\">Administrator</div>\n </div>\n </a>\n <div class=\"dropdown-menu dropdown-menu-end dropdown-menu-arrow\">\n <a href=\"#\" class=\"dropdown-item\">Status</a>\n <a href=\"./profile.html\" class=\"dropdown-item\">Profile</a>\n <a href=\"#\" class=\"dropdown-item\">Feedback</a>\n <div class=\"dropdown-divider\"></div>\n <a href=\"./settings.html\" class=\"dropdown-item\">Settings</a>\n <a href=\"./sign-in.html\" class=\"dropdown-item\">Logout</a>\n </div>\n </div>\n </div>\n <div *ngIf=\"showSearchBar\" class=\"collapse navbar-collapse\">\n <div>\n <form autocomplete=\"off\" novalidate>\n <div class=\"input-icon\">\n <span class=\"input-icon-addon\">\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </span>\n <input type=\"text\" value=\"\" class=\"form-control\" placeholder=\"Search\u2026\">\n </div>\n </form>\n </div>\n </div>\n</div>\n" }]
234
- }], ctorParameters: function () { return [{ type: i1$1.UpdCoreLayoutConfigService }, { type: i1$1.LayoutService }, { type: i1.TranslocoService }]; }, propDecorators: { wrapperClasses: [{
230
+ args: [{ selector: 'upd-header', encapsulation: ViewEncapsulation.None, template: "<div class=\"container-xl\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-nav flex-row order-md-last\">\n <div class=\"d-none d-md-flex me-3\">\n <div class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchTheme()\">\n <upd-icon [tablerIcon]=\"nextThemeIcon\"></upd-icon>\n </upd-link>\n </div>\n @if (showLanguageSwitcher) {\n <div class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchLanguage()\">\n <upd-icon tablerIcon=\"flag\"></upd-icon>\n </upd-link>\n </div>\n }\n @if (showNotifications) {\n <div class=\"nav-item dropdown d-none d-md-flex\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"openNotifications()\">\n <upd-icon [tablerIcon]=\"currentNotificationsIcon\"></upd-icon>\n @if (hasNewNotifications) {\n <span class=\"badge bg-red\"></span>\n }\n </upd-link>\n <div class=\"dropdown-menu dropdown-menu-arrow dropdown-menu-end dropdown-menu-card\">\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">Last updates</h3>\n </div>\n <div class=\"list-group list-group-flush list-group-hoverable\">\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-red d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 1</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Change deprecated html tags to text decoration classes (#29604)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 2</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n justify-content:between \u21D2 justify-content:space-between (#29734)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions show\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-yellow\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 3</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Update change-version.js (#29736)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-green d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 4</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Regenerate package-lock.json (#29730)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n @if (showUserMenu) {\n <div class=\"nav-item dropdown\">\n <a href=\"#\" class=\"nav-link d-flex lh-1 text-reset p-0\" data-bs-toggle=\"dropdown\"\n aria-label=\"Open user menu\">\n <!--<span class=\"avatar avatar-sm\" style=\"background-image: url(./static/avatars/000m.jpg)\"></span>-->\n <span class=\"avatar avatar-sm\"></span>\n <div class=\"d-none d-xl-block ps-2\">\n <div>Eros Stein</div>\n <div class=\"mt-1 small text-muted\">Administrator</div>\n </div>\n </a>\n <div class=\"dropdown-menu dropdown-menu-end dropdown-menu-arrow\">\n <a href=\"#\" class=\"dropdown-item\">Status</a>\n <a href=\"./profile.html\" class=\"dropdown-item\">Profile</a>\n <a href=\"#\" class=\"dropdown-item\">Feedback</a>\n <div class=\"dropdown-divider\"></div>\n <a href=\"./settings.html\" class=\"dropdown-item\">Settings</a>\n <a href=\"./sign-in.html\" class=\"dropdown-item\">Logout</a>\n </div>\n </div>\n }\n </div>\n @if (showSearchBar) {\n <div class=\"collapse navbar-collapse\">\n <div>\n <form autocomplete=\"off\" novalidate>\n <div class=\"input-icon\">\n <span class=\"input-icon-addon\">\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </span>\n <input type=\"text\" value=\"\" class=\"form-control\" placeholder=\"Search\u2026\">\n </div>\n </form>\n </div>\n </div>\n }\n</div>\n" }]
231
+ }], propDecorators: { wrapperClasses: [{
235
232
  type: HostBinding,
236
233
  args: ['class']
237
234
  }], style: [{
@@ -241,12 +238,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
241
238
  }] } });
242
239
 
243
240
  class SidebarComponent extends BaseComponent {
244
- constructor(router) {
245
- super();
246
- this.router = router;
241
+ constructor() {
242
+ super(...arguments);
247
243
  this.wrapperClasses = 'navbar navbar-vertical navbar-expand-lg';
248
244
  this.theme = 'dark';
249
245
  this.menuItems = [];
246
+ this.router = inject(Router);
250
247
  }
251
248
  ngOnInit() {
252
249
  // TODO: remove demo code.
@@ -360,13 +357,13 @@ class SidebarComponent extends BaseComponent {
360
357
  item = item.parent;
361
358
  }
362
359
  }
363
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: SidebarComponent, deps: [{ token: i1$2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
364
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: SidebarComponent, selector: "upd-sidebar", host: { properties: { "class": "this.wrapperClasses", "attr.data-bs-theme": "this.theme" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <h1 class=\"navbar-brand navbar-brand-autodark\">\n <a href=\".\">\n <img width=\"110\" height=\"32\" class=\"navbar-brand-image upd-brand-logo\"/>\n </a>\n </h1>\n <div class=\"collapse navbar-collapse\">\n <ul class=\"navbar-nav pt-lg-3\">\n <li *ngFor=\"let item of menuItems\" class=\"nav-item\" [class.dropdown]=\"hasChildren(item)\"\n [class.active]=\"item.isActive\">\n <ng-container [ngTemplateOutlet]=\"itemTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n </li>\n </ul>\n </div>\n</div>\n\n<ng-template #itemTpl let-item=\"menuItem\">\n <upd-link [isNavigation]=\"true\" (clicked)=\"onMenuItemClick(item)\"\n [customClasses]=\"[hasChildren(item) ? 'dropdown-toggle' : '', item.isActive ? 'show' : '']\">\n <span class=\"nav-link-icon d-md-none d-lg-inline-block\">\n <upd-icon [model]=\"item.icon\"></upd-icon>\n </span>\n <span class=\"nav-link-title\">{{item.title}}</span>\n </upd-link>\n <ng-container *ngIf=\"hasChildren(item)\" [ngTemplateOutlet]=\"childrenTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n</ng-template>\n\n<ng-template #childrenTpl let-item=\"menuItem\">\n <div class=\"dropdown-menu\" [class.show]=\"item.isActive\">\n <div class=\"dropdown-menu-columns\">\n <div class=\"dropdown-menu-column\">\n <ng-container *ngFor=\"let child of item.children\">\n <upd-link *ngIf=\"!hasChildren(child); else grandchildTpl\" (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', child.isActive ? 'active' : '']\">\n {{child.title}}\n </upd-link>\n <ng-template #grandchildTpl>\n <div class=\"dropend\">\n <upd-link (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', 'dropdown-toggle', child.isActive ? 'active' : '']\">\n {{child.title}}\n </upd-link>\n <div class=\"dropdown-menu\" [class.show]=\"child.isActive\">\n <ng-container *ngFor=\"let grandchild of child.children\">\n <upd-link (clicked)=\"onMenuItemClick(grandchild)\"\n [customClasses]=\"['dropdown-item', grandchild.isActive ? 'active' : '']\">\n {{grandchild.title}}\n </upd-link>\n </ng-container>\n </div>\n </div>\n </ng-template>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "removeDefaultClasses", "customClasses", "tablerIcon", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i5.LinkComponent, selector: "upd-link", inputs: ["href", "target", "customClasses", "isNavigation"], outputs: ["clicked"] }], encapsulation: i0.ViewEncapsulation.None }); }
360
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SidebarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
361
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: SidebarComponent, selector: "upd-sidebar", host: { properties: { "class": "this.wrapperClasses", "attr.data-bs-theme": "this.theme" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <h1 class=\"navbar-brand navbar-brand-autodark\">\n <a href=\".\">\n <img width=\"110\" height=\"32\" class=\"navbar-brand-image upd-brand-logo\"/>\n </a>\n </h1>\n <div class=\"collapse navbar-collapse\">\n <ul class=\"navbar-nav pt-lg-3\">\n @for (item of menuItems; track item) {\n <li class=\"nav-item\" [class.dropdown]=\"hasChildren(item)\" [class.active]=\"item.isActive\">\n <ng-container [ngTemplateOutlet]=\"itemTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n </li>\n }\n </ul>\n </div>\n</div>\n\n<ng-template #itemTpl let-item=\"menuItem\">\n <upd-link [isNavigation]=\"true\" (clicked)=\"onMenuItemClick(item)\"\n [customClasses]=\"[hasChildren(item) ? 'dropdown-toggle' : '', item.isActive ? 'show' : '']\">\n <span class=\"nav-link-icon d-md-none d-lg-inline-block\">\n <upd-icon [model]=\"item.icon\"></upd-icon>\n </span>\n <span class=\"nav-link-title\">{{ item.title }}</span>\n </upd-link>\n @if (hasChildren(item)) {\n <ng-container [ngTemplateOutlet]=\"childrenTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n }\n</ng-template>\n\n<ng-template #childrenTpl let-item=\"menuItem\">\n <div class=\"dropdown-menu\" [class.show]=\"item.isActive\">\n <div class=\"dropdown-menu-columns\">\n <div class=\"dropdown-menu-column\">\n @for (child of item.children; track child) {\n @if (!hasChildren(child)) {\n <upd-link (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', child.isActive ? 'active' : '']\">\n {{ child.title }}\n </upd-link>\n } @else {\n <div class=\"dropend\">\n <upd-link (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', 'dropdown-toggle', child.isActive ? 'active' : '']\">\n {{ child.title }}\n </upd-link>\n <div class=\"dropdown-menu\" [class.show]=\"child.isActive\">\n @for (grandchild of child.children; track grandchild) {\n <upd-link (clicked)=\"onMenuItemClick(grandchild)\"\n [customClasses]=\"['dropdown-item', grandchild.isActive ? 'active' : '']\">\n {{ grandchild.title }}\n </upd-link>\n }\n </div>\n </div>\n }\n }\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "removeDefaultClasses", "customClasses", "tablerIcon", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i2.LinkComponent, selector: "upd-link", inputs: ["href", "target", "customClasses", "isNavigation"], outputs: ["clicked"] }], encapsulation: i0.ViewEncapsulation.None }); }
365
362
  }
366
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: SidebarComponent, decorators: [{
363
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SidebarComponent, decorators: [{
367
364
  type: Component,
368
- args: [{ selector: 'upd-sidebar', encapsulation: ViewEncapsulation.None, template: "<div class=\"container-fluid\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <h1 class=\"navbar-brand navbar-brand-autodark\">\n <a href=\".\">\n <img width=\"110\" height=\"32\" class=\"navbar-brand-image upd-brand-logo\"/>\n </a>\n </h1>\n <div class=\"collapse navbar-collapse\">\n <ul class=\"navbar-nav pt-lg-3\">\n <li *ngFor=\"let item of menuItems\" class=\"nav-item\" [class.dropdown]=\"hasChildren(item)\"\n [class.active]=\"item.isActive\">\n <ng-container [ngTemplateOutlet]=\"itemTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n </li>\n </ul>\n </div>\n</div>\n\n<ng-template #itemTpl let-item=\"menuItem\">\n <upd-link [isNavigation]=\"true\" (clicked)=\"onMenuItemClick(item)\"\n [customClasses]=\"[hasChildren(item) ? 'dropdown-toggle' : '', item.isActive ? 'show' : '']\">\n <span class=\"nav-link-icon d-md-none d-lg-inline-block\">\n <upd-icon [model]=\"item.icon\"></upd-icon>\n </span>\n <span class=\"nav-link-title\">{{item.title}}</span>\n </upd-link>\n <ng-container *ngIf=\"hasChildren(item)\" [ngTemplateOutlet]=\"childrenTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n</ng-template>\n\n<ng-template #childrenTpl let-item=\"menuItem\">\n <div class=\"dropdown-menu\" [class.show]=\"item.isActive\">\n <div class=\"dropdown-menu-columns\">\n <div class=\"dropdown-menu-column\">\n <ng-container *ngFor=\"let child of item.children\">\n <upd-link *ngIf=\"!hasChildren(child); else grandchildTpl\" (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', child.isActive ? 'active' : '']\">\n {{child.title}}\n </upd-link>\n <ng-template #grandchildTpl>\n <div class=\"dropend\">\n <upd-link (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', 'dropdown-toggle', child.isActive ? 'active' : '']\">\n {{child.title}}\n </upd-link>\n <div class=\"dropdown-menu\" [class.show]=\"child.isActive\">\n <ng-container *ngFor=\"let grandchild of child.children\">\n <upd-link (clicked)=\"onMenuItemClick(grandchild)\"\n [customClasses]=\"['dropdown-item', grandchild.isActive ? 'active' : '']\">\n {{grandchild.title}}\n </upd-link>\n </ng-container>\n </div>\n </div>\n </ng-template>\n </ng-container>\n </div>\n </div>\n </div>\n</ng-template>\n" }]
369
- }], ctorParameters: function () { return [{ type: i1$2.Router }]; }, propDecorators: { wrapperClasses: [{
365
+ args: [{ selector: 'upd-sidebar', encapsulation: ViewEncapsulation.None, template: "<div class=\"container-fluid\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <h1 class=\"navbar-brand navbar-brand-autodark\">\n <a href=\".\">\n <img width=\"110\" height=\"32\" class=\"navbar-brand-image upd-brand-logo\"/>\n </a>\n </h1>\n <div class=\"collapse navbar-collapse\">\n <ul class=\"navbar-nav pt-lg-3\">\n @for (item of menuItems; track item) {\n <li class=\"nav-item\" [class.dropdown]=\"hasChildren(item)\" [class.active]=\"item.isActive\">\n <ng-container [ngTemplateOutlet]=\"itemTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n </li>\n }\n </ul>\n </div>\n</div>\n\n<ng-template #itemTpl let-item=\"menuItem\">\n <upd-link [isNavigation]=\"true\" (clicked)=\"onMenuItemClick(item)\"\n [customClasses]=\"[hasChildren(item) ? 'dropdown-toggle' : '', item.isActive ? 'show' : '']\">\n <span class=\"nav-link-icon d-md-none d-lg-inline-block\">\n <upd-icon [model]=\"item.icon\"></upd-icon>\n </span>\n <span class=\"nav-link-title\">{{ item.title }}</span>\n </upd-link>\n @if (hasChildren(item)) {\n <ng-container [ngTemplateOutlet]=\"childrenTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n }\n</ng-template>\n\n<ng-template #childrenTpl let-item=\"menuItem\">\n <div class=\"dropdown-menu\" [class.show]=\"item.isActive\">\n <div class=\"dropdown-menu-columns\">\n <div class=\"dropdown-menu-column\">\n @for (child of item.children; track child) {\n @if (!hasChildren(child)) {\n <upd-link (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', child.isActive ? 'active' : '']\">\n {{ child.title }}\n </upd-link>\n } @else {\n <div class=\"dropend\">\n <upd-link (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', 'dropdown-toggle', child.isActive ? 'active' : '']\">\n {{ child.title }}\n </upd-link>\n <div class=\"dropdown-menu\" [class.show]=\"child.isActive\">\n @for (grandchild of child.children; track grandchild) {\n <upd-link (clicked)=\"onMenuItemClick(grandchild)\"\n [customClasses]=\"['dropdown-item', grandchild.isActive ? 'active' : '']\">\n {{ grandchild.title }}\n </upd-link>\n }\n </div>\n </div>\n }\n }\n </div>\n </div>\n </div>\n</ng-template>\n" }]
366
+ }], propDecorators: { wrapperClasses: [{
370
367
  type: HostBinding,
371
368
  args: ['class']
372
369
  }], theme: [{
@@ -375,22 +372,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
375
372
  }] } });
376
373
 
377
374
  class PageHeaderComponent {
378
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: PageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
379
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: PageHeaderComponent, selector: "upd-page-header", inputs: { model: "model" }, ngImport: i0, template: "<div class=\"page-header d-print-none\">\n <div class=\"container-xl\">\n <div class=\"row g-2 align-items-center\">\n <div class=\"col\">\n <div class=\"page-pretitle\">\n {{model.titleHeader}}\n </div>\n <h2 class=\"page-title\">\n {{model.title}}\n </h2>\n </div>\n <div *ngIf=\"(model.actionButtons?.length || 0) > 0\" class=\"col-auto ms-auto d-print-none\">\n <div class=\"btn-list\">\n <upd-button *ngFor=\"let btn of model.actionButtons\" [model]=\"btn!\"></upd-button>\n </div>\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "upd-button", inputs: ["text", "model", "colorStyle", "brandColorStyle", "customClasses", "isActive", "isDisabled", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "shouldIgnoreBtnClass"], outputs: ["clicked"] }] }); }
375
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: PageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
376
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: PageHeaderComponent, selector: "upd-page-header", inputs: { model: "model" }, ngImport: i0, template: "<div class=\"page-header d-print-none\">\n <div class=\"container-xl\">\n <div class=\"row g-2 align-items-center\">\n <div class=\"col\">\n <div class=\"page-pretitle\">\n {{ model.titleHeader }}\n </div>\n <h2 class=\"page-title\">\n {{ model.title }}\n </h2>\n </div>\n @if ((model.actionButtons?.length || 0) > 0) {\n <div class=\"col-auto ms-auto d-print-none\">\n <div class=\"btn-list\">\n @for (btn of model.actionButtons; track btn) {\n <upd-button [model]=\"btn!\"></upd-button>\n }\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i1$3.ButtonComponent, selector: "upd-button", inputs: ["text", "model", "colorStyle", "brandColorStyle", "customClasses", "isActive", "isDisabled", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "shouldIgnoreBtnClass"], outputs: ["clicked"] }] }); }
380
377
  }
381
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: PageHeaderComponent, decorators: [{
378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: PageHeaderComponent, decorators: [{
382
379
  type: Component,
383
- args: [{ selector: 'upd-page-header', template: "<div class=\"page-header d-print-none\">\n <div class=\"container-xl\">\n <div class=\"row g-2 align-items-center\">\n <div class=\"col\">\n <div class=\"page-pretitle\">\n {{model.titleHeader}}\n </div>\n <h2 class=\"page-title\">\n {{model.title}}\n </h2>\n </div>\n <div *ngIf=\"(model.actionButtons?.length || 0) > 0\" class=\"col-auto ms-auto d-print-none\">\n <div class=\"btn-list\">\n <upd-button *ngFor=\"let btn of model.actionButtons\" [model]=\"btn!\"></upd-button>\n </div>\n </div>\n </div>\n </div>\n</div>\n" }]
380
+ args: [{ selector: 'upd-page-header', template: "<div class=\"page-header d-print-none\">\n <div class=\"container-xl\">\n <div class=\"row g-2 align-items-center\">\n <div class=\"col\">\n <div class=\"page-pretitle\">\n {{ model.titleHeader }}\n </div>\n <h2 class=\"page-title\">\n {{ model.title }}\n </h2>\n </div>\n @if ((model.actionButtons?.length || 0) > 0) {\n <div class=\"col-auto ms-auto d-print-none\">\n <div class=\"btn-list\">\n @for (btn of model.actionButtons; track btn) {\n <upd-button [model]=\"btn!\"></upd-button>\n }\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n" }]
384
381
  }], propDecorators: { model: [{
385
382
  type: Input
386
383
  }] } });
387
384
 
388
385
  class VerticalSidebarLayoutComponent extends BaseComponent {
389
- constructor(changeDetectorRef, layoutService) {
390
- super();
391
- this.changeDetectorRef = changeDetectorRef;
392
- this.layoutService = layoutService;
386
+ constructor() {
387
+ super(...arguments);
393
388
  this.showPageHeader = false;
389
+ this.changeDetectorRef = inject(ChangeDetectorRef);
390
+ this.layoutService = inject(LayoutService);
394
391
  }
395
392
  ngOnInit() {
396
393
  const pHeaderSub = this.layoutService.onPageHeaderChange.subscribe(ph => {
@@ -400,21 +397,21 @@ class VerticalSidebarLayoutComponent extends BaseComponent {
400
397
  });
401
398
  this.addSubscriptions(pHeaderSub);
402
399
  }
403
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: VerticalSidebarLayoutComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.LayoutService }], target: i0.ɵɵFactoryTarget.Component }); }
404
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: VerticalSidebarLayoutComponent, selector: "upd-vertical-sidebar-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"page\">\n <upd-sidebar></upd-sidebar>\n <upd-header></upd-header>\n\n <div class=\"page-wrapper\">\n <upd-page-header *ngIf=\"showPageHeader\" [model]=\"pageHeader!\"></upd-page-header>\n <div class=\"page-body\">\n <div class=\"container-xl\">\n <router-outlet></router-outlet>\n </div>\n </div>\n <upd-footer></upd-footer>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: FooterComponent, selector: "upd-footer" }, { kind: "component", type: HeaderComponent, selector: "upd-header", inputs: ["style", "showSearchBar"] }, { kind: "component", type: SidebarComponent, selector: "upd-sidebar" }, { kind: "component", type: PageHeaderComponent, selector: "upd-page-header", inputs: ["model"] }], encapsulation: i0.ViewEncapsulation.None }); }
400
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VerticalSidebarLayoutComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
401
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: VerticalSidebarLayoutComponent, selector: "upd-vertical-sidebar-layout", usesInheritance: true, ngImport: i0, template: "<div class=\"page\">\n <upd-sidebar></upd-sidebar>\n <upd-header></upd-header>\n\n <div class=\"page-wrapper\">\n @if (showPageHeader) {\n <upd-page-header [model]=\"pageHeader!\"></upd-page-header>\n }\n <div class=\"page-body\">\n <div class=\"container-xl\">\n <router-outlet></router-outlet>\n </div>\n </div>\n <upd-footer></upd-footer>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: i1$4.RouterOutlet, selector: "router-outlet", inputs: ["name"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "component", type: FooterComponent, selector: "upd-footer" }, { kind: "component", type: HeaderComponent, selector: "upd-header", inputs: ["style", "showSearchBar"] }, { kind: "component", type: SidebarComponent, selector: "upd-sidebar" }, { kind: "component", type: PageHeaderComponent, selector: "upd-page-header", inputs: ["model"] }], encapsulation: i0.ViewEncapsulation.None }); }
405
402
  }
406
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: VerticalSidebarLayoutComponent, decorators: [{
403
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VerticalSidebarLayoutComponent, decorators: [{
407
404
  type: Component,
408
- args: [{ selector: 'upd-vertical-sidebar-layout', encapsulation: ViewEncapsulation.None, template: "<div class=\"page\">\n <upd-sidebar></upd-sidebar>\n <upd-header></upd-header>\n\n <div class=\"page-wrapper\">\n <upd-page-header *ngIf=\"showPageHeader\" [model]=\"pageHeader!\"></upd-page-header>\n <div class=\"page-body\">\n <div class=\"container-xl\">\n <router-outlet></router-outlet>\n </div>\n </div>\n <upd-footer></upd-footer>\n </div>\n</div>\n" }]
409
- }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1$1.LayoutService }]; } });
405
+ args: [{ selector: 'upd-vertical-sidebar-layout', encapsulation: ViewEncapsulation.None, template: "<div class=\"page\">\n <upd-sidebar></upd-sidebar>\n <upd-header></upd-header>\n\n <div class=\"page-wrapper\">\n @if (showPageHeader) {\n <upd-page-header [model]=\"pageHeader!\"></upd-page-header>\n }\n <div class=\"page-body\">\n <div class=\"container-xl\">\n <router-outlet></router-outlet>\n </div>\n </div>\n <upd-footer></upd-footer>\n </div>\n</div>\n" }]
406
+ }] });
410
407
 
411
408
  class VerticalSidebarLayoutModule {
412
409
  constructor(translocoService) {
413
410
  translocoService.setTranslation(en$1, 'en');
414
411
  translocoService.setTranslation(pt$1, 'pt');
415
412
  }
416
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: VerticalSidebarLayoutModule, deps: [{ token: i1.TranslocoService }], target: i0.ɵɵFactoryTarget.NgModule }); }
417
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: VerticalSidebarLayoutModule, declarations: [VerticalSidebarLayoutComponent,
413
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VerticalSidebarLayoutModule, deps: [{ token: i1$1.TranslocoService }], target: i0.ɵɵFactoryTarget.NgModule }); }
414
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: VerticalSidebarLayoutModule, declarations: [VerticalSidebarLayoutComponent,
418
415
  FooterComponent,
419
416
  HeaderComponent,
420
417
  SidebarComponent,
@@ -429,7 +426,7 @@ class VerticalSidebarLayoutModule {
429
426
  HeaderComponent,
430
427
  SidebarComponent,
431
428
  PageHeaderComponent] }); }
432
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: VerticalSidebarLayoutModule, providers: [
429
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VerticalSidebarLayoutModule, providers: [
433
430
  FooterCopyrightDirective
434
431
  ], imports: [CommonModule,
435
432
  RouterModule,
@@ -439,7 +436,7 @@ class VerticalSidebarLayoutModule {
439
436
  UpdButtonModule,
440
437
  UpdLinkModule] }); }
441
438
  }
442
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: VerticalSidebarLayoutModule, decorators: [{
439
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: VerticalSidebarLayoutModule, decorators: [{
443
440
  type: NgModule,
444
441
  args: [{
445
442
  imports: [
@@ -469,13 +466,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
469
466
  FooterCopyrightDirective
470
467
  ]
471
468
  }]
472
- }], ctorParameters: function () { return [{ type: i1.TranslocoService }]; } });
469
+ }], ctorParameters: () => [{ type: i1$1.TranslocoService }] });
473
470
 
474
471
  class LoggedOutComponent {
475
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: LoggedOutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
476
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: LoggedOutComponent, selector: "upd-logged-out", ngImport: i0, template: "<p>logged-out works!</p>\n", styles: [""] }); }
472
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LoggedOutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
473
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: LoggedOutComponent, selector: "upd-logged-out", ngImport: i0, template: "<p>logged-out works!</p>\n", styles: [""] }); }
477
474
  }
478
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: LoggedOutComponent, decorators: [{
475
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LoggedOutComponent, decorators: [{
479
476
  type: Component,
480
477
  args: [{ selector: 'upd-logged-out', template: "<p>logged-out works!</p>\n" }]
481
478
  }] });
@@ -492,19 +489,19 @@ class LoginComponent {
492
489
  login() {
493
490
  this.authService.login(this.username, this.password).subscribe();
494
491
  }
495
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: LoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
496
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: LoginComponent, selector: "upd-login", ngImport: i0, template: "<div class=\"page page-center\">\n <ng-container [ngSwitch]=\"layout\">\n <div *ngSwitchCase=\"'centered-box'\" class=\"container container-tight py-4\">\n <ng-container [ngTemplateOutlet]=\"loginCard\"></ng-container>\n </div>\n <div *ngSwitchCase=\"'box-with-picture'\" class=\"container container-normal py-4\">\n <div class=\"row align-items-center g-4\">\n <div class=\"col-lg\">\n <div class=\"container-tight\">\n <ng-container [ngTemplateOutlet]=\"loginCard\"></ng-container>\n </div>\n </div>\n <div class=\"col-lg d-none d-lg-block\">\n <img height=\"300\" class=\"d-block mx-auto upd-right-login-image\"/>\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n\n<ng-template #loginCard>\n <div class=\"text-center mb-4\">\n <a href=\".\" class=\"navbar-brand navbar-brand-autodark\">\n <img height=\"36\" class=\"navbar-brand-image upd-brand-logo\"/>\n </a>\n </div>\n <div class=\"card card-md\">\n <div class=\"card-body\">\n <h2 class=\"h2 text-center mb-4\" i18n>Login to your account</h2>\n <form action=\"./\" method=\"get\" autocomplete=\"off\" novalidate>\n <div class=\"mb-3\">\n <label class=\"form-label\">Email address</label>\n <input type=\"email\" class=\"form-control\" name=\"username\" [(ngModel)]=\"username\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">\n Password\n <span class=\"form-label-description\">\n <a href=\"./forgot-password.html\" i18n>I forgot my password</a>\n </span>\n </label>\n <div class=\"input-group input-group-flat\">\n <input type=\"password\" class=\"form-control\" name=\"password\" [(ngModel)]=\"password\">\n <span class=\"input-group-text\">\n <a href=\"#\" class=\"link-secondary\" title=\"Show password\" data-bs-toggle=\"tooltip\"><!-- Download SVG icon from http://tabler-icons.io/i/eye -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\"\n d=\"M0 0h24v24H0z\" fill=\"none\"/><circle cx=\"12\" cy=\"12\" r=\"2\"/><path\n d=\"M22 12c-2.667 4.667 -6 7 -10 7s-7.333 -2.333 -10 -7c2.667 -4.667 6 -7 10 -7s7.333 2.333 10 7\"/></svg>\n </a>\n </span>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\"/>\n <span class=\"form-check-label\" i18n>Remember me on this device</span>\n </label>\n </div>\n <div class=\"form-footer\">\n <upd-button (clicked)=\"login()\" customClasses=\"w-100\">\n <span i18n>Sign in</span>\n </upd-button>\n </div>\n </form>\n </div>\n <div class=\"hr-text\" i18n>or</div>\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col\"><a href=\"#\" class=\"btn w-100\">\n <!-- Download SVG icon from http://tabler-icons.io/i/brand-github -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-github\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\n stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5\"/>\n </svg>\n Login with Github\n </a></div>\n <div class=\"col\"><a href=\"#\" class=\"btn w-100\">\n <!-- Download SVG icon from http://tabler-icons.io/i/brand-twitter -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-twitter\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\n stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c-.002 -.249 1.51 -2.772 1.818 -4.013z\"/>\n </svg>\n Login with Twitter\n </a></div>\n </div>\n </div>\n </div>\n <div class=\"text-center text-muted mt-3\">\n Don't have account yet? <a href=\"./sign-up.html\" tabindex=\"-1\" i18n>Sign up</a>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2$1.ButtonComponent, selector: "upd-button", inputs: ["text", "model", "colorStyle", "brandColorStyle", "customClasses", "isActive", "isDisabled", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "shouldIgnoreBtnClass"], outputs: ["clicked"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
492
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
493
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: LoginComponent, selector: "upd-login", ngImport: i0, template: "<div class=\"page page-center\">\n @switch (layout) {\n @case ('centered-box') {\n <div class=\"container container-tight py-4\">\n <ng-container [ngTemplateOutlet]=\"loginCard\"></ng-container>\n </div>\n }\n @case ('box-with-picture') {\n <div class=\"container container-normal py-4\">\n <div class=\"row align-items-center g-4\">\n <div class=\"col-lg\">\n <div class=\"container-tight\">\n <ng-container [ngTemplateOutlet]=\"loginCard\"></ng-container>\n </div>\n </div>\n <div class=\"col-lg d-none d-lg-block\">\n <img height=\"300\" class=\"d-block mx-auto upd-right-login-image\"/>\n </div>\n </div>\n </div>\n }\n }\n</div>\n\n<ng-template #loginCard>\n <div class=\"text-center mb-4\">\n <a href=\".\" class=\"navbar-brand navbar-brand-autodark\">\n <img height=\"36\" class=\"navbar-brand-image upd-brand-logo\"/>\n </a>\n </div>\n <div class=\"card card-md\">\n <div class=\"card-body\">\n <h2 class=\"h2 text-center mb-4\" i18n>Login to your account</h2>\n <form action=\"./\" method=\"get\" autocomplete=\"off\" novalidate>\n <div class=\"mb-3\">\n <label class=\"form-label\">Email address</label>\n <input type=\"email\" class=\"form-control\" name=\"username\" [(ngModel)]=\"username\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">\n Password\n <span class=\"form-label-description\">\n <a href=\"./forgot-password.html\" i18n>I forgot my password</a>\n </span>\n </label>\n <div class=\"input-group input-group-flat\">\n <input type=\"password\" class=\"form-control\" name=\"password\" [(ngModel)]=\"password\">\n <span class=\"input-group-text\">\n <a href=\"#\" class=\"link-secondary\" title=\"Show password\" data-bs-toggle=\"tooltip\"><!-- Download SVG icon from http://tabler-icons.io/i/eye -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\"\n d=\"M0 0h24v24H0z\" fill=\"none\"/><circle cx=\"12\" cy=\"12\" r=\"2\"/><path\n d=\"M22 12c-2.667 4.667 -6 7 -10 7s-7.333 -2.333 -10 -7c2.667 -4.667 6 -7 10 -7s7.333 2.333 10 7\"/></svg>\n </a>\n </span>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\"/>\n <span class=\"form-check-label\" i18n>Remember me on this device</span>\n </label>\n </div>\n <div class=\"form-footer\">\n <upd-button (clicked)=\"login()\" customClasses=\"w-100\">\n <span i18n>Sign in</span>\n </upd-button>\n </div>\n </form>\n </div>\n <div class=\"hr-text\" i18n>or</div>\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col\"><a href=\"#\" class=\"btn w-100\">\n <!-- Download SVG icon from http://tabler-icons.io/i/brand-github -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-github\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\n stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5\"/>\n </svg>\n Login with Github\n </a></div>\n <div class=\"col\"><a href=\"#\" class=\"btn w-100\">\n <!-- Download SVG icon from http://tabler-icons.io/i/brand-twitter -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-twitter\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\n stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c-.002 -.249 1.51 -2.772 1.818 -4.013z\"/>\n </svg>\n Login with Twitter\n </a></div>\n </div>\n </div>\n </div>\n <div class=\"text-center text-muted mt-3\">\n Don't have account yet? <a href=\"./sign-up.html\" tabindex=\"-1\" i18n>Sign up</a>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$3.ButtonComponent, selector: "upd-button", inputs: ["text", "model", "colorStyle", "brandColorStyle", "customClasses", "isActive", "isDisabled", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "shouldIgnoreBtnClass"], outputs: ["clicked"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }], encapsulation: i0.ViewEncapsulation.None }); }
497
494
  }
498
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: LoginComponent, decorators: [{
495
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: LoginComponent, decorators: [{
499
496
  type: Component,
500
- args: [{ selector: 'upd-login', encapsulation: ViewEncapsulation.None, template: "<div class=\"page page-center\">\n <ng-container [ngSwitch]=\"layout\">\n <div *ngSwitchCase=\"'centered-box'\" class=\"container container-tight py-4\">\n <ng-container [ngTemplateOutlet]=\"loginCard\"></ng-container>\n </div>\n <div *ngSwitchCase=\"'box-with-picture'\" class=\"container container-normal py-4\">\n <div class=\"row align-items-center g-4\">\n <div class=\"col-lg\">\n <div class=\"container-tight\">\n <ng-container [ngTemplateOutlet]=\"loginCard\"></ng-container>\n </div>\n </div>\n <div class=\"col-lg d-none d-lg-block\">\n <img height=\"300\" class=\"d-block mx-auto upd-right-login-image\"/>\n </div>\n </div>\n </div>\n </ng-container>\n</div>\n\n<ng-template #loginCard>\n <div class=\"text-center mb-4\">\n <a href=\".\" class=\"navbar-brand navbar-brand-autodark\">\n <img height=\"36\" class=\"navbar-brand-image upd-brand-logo\"/>\n </a>\n </div>\n <div class=\"card card-md\">\n <div class=\"card-body\">\n <h2 class=\"h2 text-center mb-4\" i18n>Login to your account</h2>\n <form action=\"./\" method=\"get\" autocomplete=\"off\" novalidate>\n <div class=\"mb-3\">\n <label class=\"form-label\">Email address</label>\n <input type=\"email\" class=\"form-control\" name=\"username\" [(ngModel)]=\"username\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">\n Password\n <span class=\"form-label-description\">\n <a href=\"./forgot-password.html\" i18n>I forgot my password</a>\n </span>\n </label>\n <div class=\"input-group input-group-flat\">\n <input type=\"password\" class=\"form-control\" name=\"password\" [(ngModel)]=\"password\">\n <span class=\"input-group-text\">\n <a href=\"#\" class=\"link-secondary\" title=\"Show password\" data-bs-toggle=\"tooltip\"><!-- Download SVG icon from http://tabler-icons.io/i/eye -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\"\n d=\"M0 0h24v24H0z\" fill=\"none\"/><circle cx=\"12\" cy=\"12\" r=\"2\"/><path\n d=\"M22 12c-2.667 4.667 -6 7 -10 7s-7.333 -2.333 -10 -7c2.667 -4.667 6 -7 10 -7s7.333 2.333 10 7\"/></svg>\n </a>\n </span>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\"/>\n <span class=\"form-check-label\" i18n>Remember me on this device</span>\n </label>\n </div>\n <div class=\"form-footer\">\n <upd-button (clicked)=\"login()\" customClasses=\"w-100\">\n <span i18n>Sign in</span>\n </upd-button>\n </div>\n </form>\n </div>\n <div class=\"hr-text\" i18n>or</div>\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col\"><a href=\"#\" class=\"btn w-100\">\n <!-- Download SVG icon from http://tabler-icons.io/i/brand-github -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-github\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\n stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5\"/>\n </svg>\n Login with Github\n </a></div>\n <div class=\"col\"><a href=\"#\" class=\"btn w-100\">\n <!-- Download SVG icon from http://tabler-icons.io/i/brand-twitter -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-twitter\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\n stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c-.002 -.249 1.51 -2.772 1.818 -4.013z\"/>\n </svg>\n Login with Twitter\n </a></div>\n </div>\n </div>\n </div>\n <div class=\"text-center text-muted mt-3\">\n Don't have account yet? <a href=\"./sign-up.html\" tabindex=\"-1\" i18n>Sign up</a>\n </div>\n</ng-template>\n" }]
501
- }], ctorParameters: function () { return []; } });
497
+ args: [{ selector: 'upd-login', encapsulation: ViewEncapsulation.None, template: "<div class=\"page page-center\">\n @switch (layout) {\n @case ('centered-box') {\n <div class=\"container container-tight py-4\">\n <ng-container [ngTemplateOutlet]=\"loginCard\"></ng-container>\n </div>\n }\n @case ('box-with-picture') {\n <div class=\"container container-normal py-4\">\n <div class=\"row align-items-center g-4\">\n <div class=\"col-lg\">\n <div class=\"container-tight\">\n <ng-container [ngTemplateOutlet]=\"loginCard\"></ng-container>\n </div>\n </div>\n <div class=\"col-lg d-none d-lg-block\">\n <img height=\"300\" class=\"d-block mx-auto upd-right-login-image\"/>\n </div>\n </div>\n </div>\n }\n }\n</div>\n\n<ng-template #loginCard>\n <div class=\"text-center mb-4\">\n <a href=\".\" class=\"navbar-brand navbar-brand-autodark\">\n <img height=\"36\" class=\"navbar-brand-image upd-brand-logo\"/>\n </a>\n </div>\n <div class=\"card card-md\">\n <div class=\"card-body\">\n <h2 class=\"h2 text-center mb-4\" i18n>Login to your account</h2>\n <form action=\"./\" method=\"get\" autocomplete=\"off\" novalidate>\n <div class=\"mb-3\">\n <label class=\"form-label\">Email address</label>\n <input type=\"email\" class=\"form-control\" name=\"username\" [(ngModel)]=\"username\">\n </div>\n <div class=\"mb-2\">\n <label class=\"form-label\">\n Password\n <span class=\"form-label-description\">\n <a href=\"./forgot-password.html\" i18n>I forgot my password</a>\n </span>\n </label>\n <div class=\"input-group input-group-flat\">\n <input type=\"password\" class=\"form-control\" name=\"password\" [(ngModel)]=\"password\">\n <span class=\"input-group-text\">\n <a href=\"#\" class=\"link-secondary\" title=\"Show password\" data-bs-toggle=\"tooltip\"><!-- Download SVG icon from http://tabler-icons.io/i/eye -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path stroke=\"none\"\n d=\"M0 0h24v24H0z\" fill=\"none\"/><circle cx=\"12\" cy=\"12\" r=\"2\"/><path\n d=\"M22 12c-2.667 4.667 -6 7 -10 7s-7.333 -2.333 -10 -7c2.667 -4.667 6 -7 10 -7s7.333 2.333 10 7\"/></svg>\n </a>\n </span>\n </div>\n </div>\n <div class=\"mb-2\">\n <label class=\"form-check\">\n <input type=\"checkbox\" class=\"form-check-input\"/>\n <span class=\"form-check-label\" i18n>Remember me on this device</span>\n </label>\n </div>\n <div class=\"form-footer\">\n <upd-button (clicked)=\"login()\" customClasses=\"w-100\">\n <span i18n>Sign in</span>\n </upd-button>\n </div>\n </form>\n </div>\n <div class=\"hr-text\" i18n>or</div>\n <div class=\"card-body\">\n <div class=\"row\">\n <div class=\"col\"><a href=\"#\" class=\"btn w-100\">\n <!-- Download SVG icon from http://tabler-icons.io/i/brand-github -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-github\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\n stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M9 19c-4.3 1.4 -4.3 -2.5 -6 -3m12 5v-3.5c0 -1 .1 -1.4 -.5 -2c2.8 -.3 5.5 -1.4 5.5 -6a4.6 4.6 0 0 0 -1.3 -3.2a4.2 4.2 0 0 0 -.1 -3.2s-1.1 -.3 -3.5 1.3a12.3 12.3 0 0 0 -6.2 0c-2.4 -1.6 -3.5 -1.3 -3.5 -1.3a4.2 4.2 0 0 0 -.1 3.2a4.6 4.6 0 0 0 -1.3 3.2c0 4.6 2.7 5.7 5.5 6c-.6 .6 -.6 1.2 -.5 2v3.5\"/>\n </svg>\n Login with Github\n </a></div>\n <div class=\"col\"><a href=\"#\" class=\"btn w-100\">\n <!-- Download SVG icon from http://tabler-icons.io/i/brand-twitter -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-twitter\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\n stroke-width=\"2\" stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M22 4.01c-1 .49 -1.98 .689 -3 .99c-1.121 -1.265 -2.783 -1.335 -4.38 -.737s-2.643 2.06 -2.62 3.737v1c-3.245 .083 -6.135 -1.395 -8 -4c0 0 -4.182 7.433 4 11c-1.872 1.247 -3.739 2.088 -6 2c3.308 1.803 6.913 2.423 10.034 1.517c3.58 -1.04 6.522 -3.723 7.651 -7.742a13.84 13.84 0 0 0 .497 -3.753c-.002 -.249 1.51 -2.772 1.818 -4.013z\"/>\n </svg>\n Login with Twitter\n </a></div>\n </div>\n </div>\n </div>\n <div class=\"text-center text-muted mt-3\">\n Don't have account yet? <a href=\"./sign-up.html\" tabindex=\"-1\" i18n>Sign up</a>\n </div>\n</ng-template>\n" }]
498
+ }], ctorParameters: () => [] });
502
499
 
503
500
  class OauthCallbackComponent {
504
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: OauthCallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
505
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.11", type: OauthCallbackComponent, selector: "upd-oauth-callback", ngImport: i0, template: "<p>oauth-callback works!</p>\n", styles: [""] }); }
501
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: OauthCallbackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
502
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: OauthCallbackComponent, selector: "upd-oauth-callback", ngImport: i0, template: "<p>oauth-callback works!</p>\n", styles: [""] }); }
506
503
  }
507
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: OauthCallbackComponent, decorators: [{
504
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: OauthCallbackComponent, decorators: [{
508
505
  type: Component,
509
506
  args: [{ selector: 'upd-oauth-callback', template: "<p>oauth-callback works!</p>\n" }]
510
507
  }] });
@@ -518,11 +515,11 @@ const routes = [
518
515
  { path: 'login', component: LoginComponent }
519
516
  ];
520
517
  class AuthFlowRoutingModule {
521
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
522
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
523
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowRoutingModule, imports: [RouterModule.forRoot(routes, { useHash: true }), RouterModule] }); }
518
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AuthFlowRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
519
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: AuthFlowRoutingModule, imports: [i1$4.RouterModule], exports: [RouterModule] }); }
520
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AuthFlowRoutingModule, imports: [RouterModule.forRoot(routes, { useHash: true }), RouterModule] }); }
524
521
  }
525
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowRoutingModule, decorators: [{
522
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AuthFlowRoutingModule, decorators: [{
526
523
  type: NgModule,
527
524
  args: [{
528
525
  imports: [RouterModule.forRoot(routes, { useHash: true })],
@@ -531,8 +528,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImpo
531
528
  }] });
532
529
 
533
530
  class AuthFlowModule {
534
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
535
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowModule, declarations: [LoginComponent,
531
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AuthFlowModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
532
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: AuthFlowModule, declarations: [LoginComponent,
536
533
  OauthCallbackComponent,
537
534
  LoggedOutComponent], imports: [CommonModule,
538
535
  AuthFlowRoutingModule,
@@ -540,12 +537,12 @@ class AuthFlowModule {
540
537
  FormsModule], exports: [LoginComponent,
541
538
  OauthCallbackComponent,
542
539
  LoggedOutComponent] }); }
543
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowModule, imports: [CommonModule,
540
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AuthFlowModule, imports: [CommonModule,
544
541
  AuthFlowRoutingModule,
545
542
  UpdButtonModule,
546
543
  FormsModule] }); }
547
544
  }
548
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: AuthFlowModule, decorators: [{
545
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: AuthFlowModule, decorators: [{
549
546
  type: NgModule,
550
547
  args: [{
551
548
  imports: [
@@ -618,15 +615,15 @@ class UpdLayoutConfigService {
618
615
  constructor(layoutConfig) {
619
616
  this.config = new UpdLayoutConfigModel(layoutConfig);
620
617
  }
621
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdLayoutConfigService, deps: [{ token: LayoutConstants.defaultOptionsInjectionToken }], target: i0.ɵɵFactoryTarget.Injectable }); }
622
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdLayoutConfigService }); }
618
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdLayoutConfigService, deps: [{ token: LayoutConstants.defaultOptionsInjectionToken }], target: i0.ɵɵFactoryTarget.Injectable }); }
619
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdLayoutConfigService }); }
623
620
  }
624
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdLayoutConfigService, decorators: [{
621
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdLayoutConfigService, decorators: [{
625
622
  type: Injectable
626
- }], ctorParameters: function () { return [{ type: undefined, decorators: [{
623
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
627
624
  type: Inject,
628
625
  args: [LayoutConstants.defaultOptionsInjectionToken]
629
- }] }]; } });
626
+ }] }] });
630
627
 
631
628
  /**
632
629
  * Layout module.
@@ -644,15 +641,15 @@ class UpdLayoutModule {
644
641
  ]
645
642
  };
646
643
  }
647
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
648
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.11", ngImport: i0, type: UpdLayoutModule, imports: [CommonModule,
644
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
645
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: UpdLayoutModule, imports: [CommonModule,
649
646
  UpdCoreLayoutModule] }); }
650
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdLayoutModule, providers: [
647
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdLayoutModule, providers: [
651
648
  UpdLayoutConfigService
652
649
  ], imports: [CommonModule,
653
650
  UpdCoreLayoutModule] }); }
654
651
  }
655
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.11", ngImport: i0, type: UpdLayoutModule, decorators: [{
652
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdLayoutModule, decorators: [{
656
653
  type: NgModule,
657
654
  args: [{
658
655
  imports: [