@lluc_llull/ui-lib 0.4.5 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/esm2022/lib/components/core/category-progress/category-progress.component.mjs +3 -3
  2. package/esm2022/lib/components/core/header-clear/header-clear.component.mjs +24 -7
  3. package/esm2022/lib/components/core/header-clear/header-clear.interface.mjs +1 -1
  4. package/esm2022/lib/components/core/header-mobile/header-mobile.component.mjs +24 -7
  5. package/esm2022/lib/components/core/header-mobile/header-mobile.interface.mjs +1 -1
  6. package/esm2022/lib/components/core/lang-modal/lang-modal.component.mjs +3 -3
  7. package/esm2022/lib/components/core/nav-modal/nav-modal.component.mjs +3 -3
  8. package/esm2022/lib/components/core/section-intro/section-intro.component.mjs +3 -3
  9. package/esm2022/lib/services/index.mjs +2 -1
  10. package/esm2022/lib/services/mapper/component-mappers/header-clear.mapper.mjs +2 -1
  11. package/esm2022/lib/services/theme/index.mjs +2 -0
  12. package/esm2022/lib/services/theme/theme.service.mjs +73 -0
  13. package/fesm2022/lluc_llull-ui-lib.mjs +122 -20
  14. package/fesm2022/lluc_llull-ui-lib.mjs.map +1 -1
  15. package/lib/components/core/header-clear/header-clear.component.d.ts +13 -4
  16. package/lib/components/core/header-clear/header-clear.interface.d.ts +1 -0
  17. package/lib/components/core/header-mobile/header-mobile.component.d.ts +14 -5
  18. package/lib/components/core/header-mobile/header-mobile.interface.d.ts +1 -0
  19. package/lib/services/index.d.ts +1 -0
  20. package/lib/services/theme/index.d.ts +1 -0
  21. package/lib/services/theme/theme.service.d.ts +16 -0
  22. package/package.json +1 -1
  23. package/src/lib/styles/main.css +53 -19
  24. package/styles/main.css +53 -19
@@ -3,11 +3,11 @@ import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  export class CategoryProgressComponent {
5
5
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CategoryProgressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CategoryProgressComponent, isStandalone: true, selector: "lib-category-progress", inputs: { pretitle: "pretitle", title: "title", categories: "categories" }, ngImport: i0, template: "<div class=\"category-progress\">\n @if (pretitle){\n <h3 class=\"pretitle\">{{pretitle}}</h3>\n }\n @if (title){\n <h2 class=\"title\">{{title}}</h2>\n }\n <div class=\"progress-grid\">\n @for (category of categories; track $index) {\n <div class=\"category\">\n <h3 class=\"subtitle\">{{ category.title }}</h3>\n \n @for (item of category.items; track $index){\n <div class=\"item\">\n <span class=\"label\">{{ item.label }}</span>\n <div class=\"bar\">\n <div class=\"fill\" [style.width.%]=\"item.value\"></div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n \n</div>\n", styles: [":root{--color-primary: #007bff;--color-secondary: #6c757d;--color-text: #111;--color-bg: #f9f9f9;--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--button-primary-bg: #007bff;--button-primary-text: #f9f9f9;--button-primary-bg-hover: #033468;--button-primary-text-hover: #f9f9f9;--button-secondary-bg: #6c757d;--button-secondary-text: #f9f9f9;--button-secondary-bg-hover: #1c1e20;--button-secondary-text-hover: #f9f9f9;--button-link-text: #111111;--button-link-text-hover: #007bff;--header-clear-bg: #007bff;--header-mobile-bg: #007bff;--modal-bg: #f9f9f9;--close-btn: #111;--item-text: #111}.category-progress{text-align:start;padding:2rem 10rem;align-items:start}@media (max-width: 768px){.category-progress{padding:2rem 4rem}}.title{text-transform:uppercase}.progress-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem}.category{display:flex;flex-direction:column;gap:1.5rem}.category-title{font-weight:600;font-size:1.1rem}.item .label{font-size:.9rem;margin-bottom:.3rem;display:block}.item .bar{background-color:#ccc;height:6px;border-radius:3px;overflow:hidden}.item .bar .fill{background-color:#000;height:100%;width:0;transition:width .3s ease}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: CategoryProgressComponent, isStandalone: true, selector: "lib-category-progress", inputs: { pretitle: "pretitle", title: "title", categories: "categories" }, ngImport: i0, template: "<div class=\"category-progress\">\n @if (pretitle){\n <h3 class=\"pretitle\">{{pretitle}}</h3>\n }\n @if (title){\n <h2 class=\"title\">{{title}}</h2>\n }\n <div class=\"progress-grid\">\n @for (category of categories; track $index) {\n <div class=\"category\">\n <h3 class=\"subtitle\">{{ category.title }}</h3>\n \n @for (item of category.items; track $index){\n <div class=\"item\">\n <span class=\"label\">{{ item.label }}</span>\n <div class=\"bar\">\n <div class=\"fill\" [style.width.%]=\"item.value\"></div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n \n</div>\n", styles: [":root{--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem}.category-progress{text-align:start;padding:2rem 10rem;align-items:start}@media (max-width: 768px){.category-progress{padding:2rem 4rem}}.title{text-transform:uppercase}.progress-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem}.category{display:flex;flex-direction:column;gap:1.5rem}.category-title{font-weight:600;font-size:1.1rem}.item .label{font-size:.9rem;margin-bottom:.3rem;display:block}.item .bar{background-color:var(--progress-bg);height:6px;border-radius:3px;overflow:hidden}.item .bar .fill{background-color:var(--progress-color);height:100%;width:0;transition:width .3s ease}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7
7
  }
8
8
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CategoryProgressComponent, decorators: [{
9
9
  type: Component,
10
- args: [{ selector: 'lib-category-progress', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"category-progress\">\n @if (pretitle){\n <h3 class=\"pretitle\">{{pretitle}}</h3>\n }\n @if (title){\n <h2 class=\"title\">{{title}}</h2>\n }\n <div class=\"progress-grid\">\n @for (category of categories; track $index) {\n <div class=\"category\">\n <h3 class=\"subtitle\">{{ category.title }}</h3>\n \n @for (item of category.items; track $index){\n <div class=\"item\">\n <span class=\"label\">{{ item.label }}</span>\n <div class=\"bar\">\n <div class=\"fill\" [style.width.%]=\"item.value\"></div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n \n</div>\n", styles: [":root{--color-primary: #007bff;--color-secondary: #6c757d;--color-text: #111;--color-bg: #f9f9f9;--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--button-primary-bg: #007bff;--button-primary-text: #f9f9f9;--button-primary-bg-hover: #033468;--button-primary-text-hover: #f9f9f9;--button-secondary-bg: #6c757d;--button-secondary-text: #f9f9f9;--button-secondary-bg-hover: #1c1e20;--button-secondary-text-hover: #f9f9f9;--button-link-text: #111111;--button-link-text-hover: #007bff;--header-clear-bg: #007bff;--header-mobile-bg: #007bff;--modal-bg: #f9f9f9;--close-btn: #111;--item-text: #111}.category-progress{text-align:start;padding:2rem 10rem;align-items:start}@media (max-width: 768px){.category-progress{padding:2rem 4rem}}.title{text-transform:uppercase}.progress-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem}.category{display:flex;flex-direction:column;gap:1.5rem}.category-title{font-weight:600;font-size:1.1rem}.item .label{font-size:.9rem;margin-bottom:.3rem;display:block}.item .bar{background-color:#ccc;height:6px;border-radius:3px;overflow:hidden}.item .bar .fill{background-color:#000;height:100%;width:0;transition:width .3s ease}\n"] }]
10
+ args: [{ selector: 'lib-category-progress', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"category-progress\">\n @if (pretitle){\n <h3 class=\"pretitle\">{{pretitle}}</h3>\n }\n @if (title){\n <h2 class=\"title\">{{title}}</h2>\n }\n <div class=\"progress-grid\">\n @for (category of categories; track $index) {\n <div class=\"category\">\n <h3 class=\"subtitle\">{{ category.title }}</h3>\n \n @for (item of category.items; track $index){\n <div class=\"item\">\n <span class=\"label\">{{ item.label }}</span>\n <div class=\"bar\">\n <div class=\"fill\" [style.width.%]=\"item.value\"></div>\n </div>\n </div>\n }\n </div>\n }\n </div>\n \n</div>\n", styles: [":root{--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem}.category-progress{text-align:start;padding:2rem 10rem;align-items:start}@media (max-width: 768px){.category-progress{padding:2rem 4rem}}.title{text-transform:uppercase}.progress-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem}.category{display:flex;flex-direction:column;gap:1.5rem}.category-title{font-weight:600;font-size:1.1rem}.item .label{font-size:.9rem;margin-bottom:.3rem;display:block}.item .bar{background-color:var(--progress-bg);height:6px;border-radius:3px;overflow:hidden}.item .bar .fill{background-color:var(--progress-color);height:100%;width:0;transition:width .3s ease}\n"] }]
11
11
  }], propDecorators: { pretitle: [{
12
12
  type: Input
13
13
  }], title: [{
@@ -15,4 +15,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
15
15
  }], categories: [{
16
16
  type: Input
17
17
  }] } });
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktcHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2NhdGVnb3J5LXByb2dyZXNzL2NhdGVnb3J5LXByb2dyZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9jYXRlZ29yeS1wcm9ncmVzcy9jYXRlZ29yeS1wcm9ncmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVzFFLE1BQU0sT0FBTyx5QkFBeUI7K0dBQXpCLHlCQUF5QjttR0FBekIseUJBQXlCLDZKQ1p0QyxtckJBeUJBLCt6Q0RsQlksWUFBWTs7NEZBS1gseUJBQXlCO2tCQVJyQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBR04sdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2F0ZWdvcnlQcm9ncmVzc0kgfSBmcm9tICcuL2NhdGVnb3J5LXByb2dyZXNzLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jYXRlZ29yeS1wcm9ncmVzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2F0ZWdvcnktcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY2F0ZWdvcnktcHJvZ3Jlc3MuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlQcm9ncmVzc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHByZXRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgY2F0ZWdvcmllcz86IFByb2dyZXNzQ2F0ZWdvcnlJW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZ3Jlc3NJdGVtSSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZ3Jlc3NDYXRlZ29yeUkge1xuICB0aXRsZTogc3RyaW5nO1xuICBpdGVtczogUHJvZ3Jlc3NJdGVtSVtdO1xufVxuIiwiPGRpdiBjbGFzcz1cImNhdGVnb3J5LXByb2dyZXNzXCI+XG4gIEBpZiAocHJldGl0bGUpe1xuICAgIDxoMyBjbGFzcz1cInByZXRpdGxlXCI+e3twcmV0aXRsZX19PC9oMz5cbiAgfVxuICBAaWYgKHRpdGxlKXtcbiAgICA8aDIgY2xhc3M9XCJ0aXRsZVwiPnt7dGl0bGV9fTwvaDI+XG4gIH1cbiAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWdyaWRcIj5cbiAgICBAZm9yIChjYXRlZ29yeSBvZiBjYXRlZ29yaWVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeVwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJzdWJ0aXRsZVwiPnt7IGNhdGVnb3J5LnRpdGxlIH19PC9oMz5cbiAgICBcbiAgICAgICAgQGZvciAoaXRlbSBvZiBjYXRlZ29yeS5pdGVtczsgdHJhY2sgJGluZGV4KXtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxsXCIgW3N0eWxlLndpZHRoLiVdPVwiaXRlbS52YWx1ZVwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG4gIFxuPC9kaXY+XG4iXX0=
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktcHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktbGliL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2NhdGVnb3J5LXByb2dyZXNzL2NhdGVnb3J5LXByb2dyZXNzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9jYXRlZ29yeS1wcm9ncmVzcy9jYXRlZ29yeS1wcm9ncmVzcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBVzFFLE1BQU0sT0FBTyx5QkFBeUI7K0dBQXpCLHlCQUF5QjttR0FBekIseUJBQXlCLDZKQ1p0QyxtckJBeUJBLHMwQkRsQlksWUFBWTs7NEZBS1gseUJBQXlCO2tCQVJyQyxTQUFTOytCQUNFLHVCQUF1QixjQUNyQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBR04sdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2F0ZWdvcnlQcm9ncmVzc0kgfSBmcm9tICcuL2NhdGVnb3J5LXByb2dyZXNzLmludGVyZmFjZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jYXRlZ29yeS1wcm9ncmVzcycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vY2F0ZWdvcnktcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY2F0ZWdvcnktcHJvZ3Jlc3MuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQ2F0ZWdvcnlQcm9ncmVzc0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHByZXRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgY2F0ZWdvcmllcz86IFByb2dyZXNzQ2F0ZWdvcnlJW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZ3Jlc3NJdGVtSSB7XG4gIGxhYmVsOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJvZ3Jlc3NDYXRlZ29yeUkge1xuICB0aXRsZTogc3RyaW5nO1xuICBpdGVtczogUHJvZ3Jlc3NJdGVtSVtdO1xufVxuIiwiPGRpdiBjbGFzcz1cImNhdGVnb3J5LXByb2dyZXNzXCI+XG4gIEBpZiAocHJldGl0bGUpe1xuICAgIDxoMyBjbGFzcz1cInByZXRpdGxlXCI+e3twcmV0aXRsZX19PC9oMz5cbiAgfVxuICBAaWYgKHRpdGxlKXtcbiAgICA8aDIgY2xhc3M9XCJ0aXRsZVwiPnt7dGl0bGV9fTwvaDI+XG4gIH1cbiAgPGRpdiBjbGFzcz1cInByb2dyZXNzLWdyaWRcIj5cbiAgICBAZm9yIChjYXRlZ29yeSBvZiBjYXRlZ29yaWVzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJjYXRlZ29yeVwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJzdWJ0aXRsZVwiPnt7IGNhdGVnb3J5LnRpdGxlIH19PC9oMz5cbiAgICBcbiAgICAgICAgQGZvciAoaXRlbSBvZiBjYXRlZ29yeS5pdGVtczsgdHJhY2sgJGluZGV4KXtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbVwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYmFyXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWxsXCIgW3N0eWxlLndpZHRoLiVdPVwiaXRlbS52YWx1ZVwiPjwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG4gIFxuPC9kaXY+XG4iXX0=
@@ -1,31 +1,48 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { LinkTypeDirective } from '../../../directives';
3
4
  import { LangModalComponent } from "../lang-modal";
4
5
  import { NavModalComponent } from "../nav-modal";
5
- import { LinkTypeDirective } from '../../../directives';
6
6
  import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../services/theme";
7
8
  export class HeaderClearComponent {
8
- constructor() {
9
+ constructor(themeService) {
10
+ this.themeService = themeService;
9
11
  this.isMenuOpen = false;
12
+ this.currentTheme = 'light';
10
13
  this.langModal = new EventEmitter();
11
14
  this.theme = new EventEmitter();
12
15
  }
16
+ ngOnInit() {
17
+ this.themeSubscription = this.themeService.currentTheme$.subscribe(theme => {
18
+ this.currentTheme = theme;
19
+ });
20
+ }
21
+ ngOnDestroy() {
22
+ this.themeSubscription?.unsubscribe();
23
+ }
13
24
  openLanguagesModal() {
14
25
  this.langModal.emit();
15
26
  }
16
27
  toggleTheme() {
28
+ this.themeService.toggleTheme();
17
29
  this.theme.emit();
18
30
  }
19
31
  toggleMenu() {
20
32
  this.isMenuOpen = !this.isMenuOpen;
21
33
  }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderClearComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: HeaderClearComponent, isStandalone: true, selector: "lib-header-clear", inputs: { logo: "logo", lang: "lang", navItems: "navItems", homeLink: "homeLink" }, outputs: { langModal: "langModal", theme: "theme" }, ngImport: i0, template: "<header class=\"header-clear\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img [src]=\"logo?.url\" [alt]=\"logo?.alt\" />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions\">\n <!-- Idioma -->\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{lang}}</span>\n </button>\n\n <!-- Icono de recarga -->\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>\uD83C\uDF19</span>\n </button>\n\n <!-- Icono de men\u00FA -->\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>\u2630</span>\n </button>\n </div>\n</header>\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n", styles: [".header-clear{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;border-radius:0;position:sticky;top:0;z-index:100}.header-logo{display:flex;align-items:center;gap:.5rem}.header-logo img{width:36px;height:36px;object-fit:contain;object-position:center}.header-actions{display:flex;align-items:center;gap:1rem}.lang{text-transform:uppercase}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: NavModalComponent, selector: "lib-nav-modal", inputs: ["navItems", "socialItems"], outputs: ["close"] }, { kind: "directive", type: LinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href"], outputs: ["anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
+ getThemeIcon() {
35
+ return this.currentTheme === 'light' ? '🌙' : '☀️';
36
+ }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderClearComponent, deps: [{ token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: HeaderClearComponent, isStandalone: true, selector: "lib-header-clear", inputs: { logo: "logo", logoDark: "logoDark", lang: "lang", navItems: "navItems", homeLink: "homeLink" }, outputs: { langModal: "langModal", theme: "theme" }, ngImport: i0, template: "<header class=\"header-clear\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\" [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\" />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions\">\n <!-- Idioma -->\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{lang}}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>{{getThemeIcon()}}</span>\n </button>\n\n <!-- Icono de men\u00FA -->\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>\u2630</span>\n </button>\n </div>\n</header>\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n", styles: [".header-clear{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;border-radius:0;position:sticky;top:0;z-index:100}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:36px;height:36px;object-fit:contain;object-position:center}.header-actions{display:flex;align-items:center;gap:1rem}.lang{text-transform:uppercase}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: NavModalComponent, selector: "lib-nav-modal", inputs: ["navItems", "socialItems"], outputs: ["close"] }, { kind: "directive", type: LinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href"], outputs: ["anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
39
  }
25
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderClearComponent, decorators: [{
26
41
  type: Component,
27
- args: [{ selector: 'lib-header-clear', standalone: true, imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"header-clear\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img [src]=\"logo?.url\" [alt]=\"logo?.alt\" />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions\">\n <!-- Idioma -->\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{lang}}</span>\n </button>\n\n <!-- Icono de recarga -->\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>\uD83C\uDF19</span>\n </button>\n\n <!-- Icono de men\u00FA -->\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>\u2630</span>\n </button>\n </div>\n</header>\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n", styles: [".header-clear{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;border-radius:0;position:sticky;top:0;z-index:100}.header-logo{display:flex;align-items:center;gap:.5rem}.header-logo img{width:36px;height:36px;object-fit:contain;object-position:center}.header-actions{display:flex;align-items:center;gap:1rem}.lang{text-transform:uppercase}\n"] }]
28
- }], propDecorators: { logo: [{
42
+ args: [{ selector: 'lib-header-clear', standalone: true, imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"header-clear\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\" [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\" />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions\">\n <!-- Idioma -->\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{lang}}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>{{getThemeIcon()}}</span>\n </button>\n\n <!-- Icono de men\u00FA -->\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>\u2630</span>\n </button>\n </div>\n</header>\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n", styles: [".header-clear{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;border-radius:0;position:sticky;top:0;z-index:100}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:36px;height:36px;object-fit:contain;object-position:center}.header-actions{display:flex;align-items:center;gap:1rem}.lang{text-transform:uppercase}\n"] }]
43
+ }], ctorParameters: () => [{ type: i1.ThemeService }], propDecorators: { logo: [{
44
+ type: Input
45
+ }], logoDark: [{
29
46
  type: Input
30
47
  }], lang: [{
31
48
  type: Input
@@ -38,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
38
55
  }], theme: [{
39
56
  type: Output
40
57
  }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNsZWFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9oZWFkZXItY2xlYXIvaGVhZGVyLWNsZWFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9oZWFkZXItY2xlYXIvaGVhZGVyLWNsZWFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFJakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBVXhELE1BQU0sT0FBTyxvQkFBb0I7SUFSakM7UUFTRSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBT1QsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDckMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FhNUM7SUFYQyxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUNyQyxDQUFDOytHQXJCVSxvQkFBb0I7bUdBQXBCLG9CQUFvQixxTkNqQmpDLDI1QkFpQ0EsNGFEckJZLFlBQVksK0JBQXNCLGlCQUFpQixtSEFBRSxpQkFBaUI7OzRGQUtyRSxvQkFBb0I7a0JBUmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxtQkFHaEUsdUJBQXVCLENBQUMsTUFBTTs4QkFLdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMYW5nTW9kYWxDb21wb25lbnQgfSBmcm9tIFwiLi4vbGFuZy1tb2RhbFwiO1xuaW1wb3J0IHsgTmF2TW9kYWxDb21wb25lbnQgfSBmcm9tIFwiLi4vbmF2LW1vZGFsXCI7XG5pbXBvcnQgeyBVaUxpYkltYWdlSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvdWktbGliLWltYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVaUxpYk5hdkl0ZW1zSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvdWktbGliLW5hdi1pdGVtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVWlMaWJCdXR0b25JIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy91aS1saWItYnV0dG9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBMaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItaGVhZGVyLWNsZWFyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTGFuZ01vZGFsQ29tcG9uZW50LCBOYXZNb2RhbENvbXBvbmVudCwgTGlua1R5cGVEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLWNsZWFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2hlYWRlci1jbGVhci5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBIZWFkZXJDbGVhckNvbXBvbmVudCB7XG4gIGlzTWVudU9wZW4gPSBmYWxzZTtcbiAgXG4gIEBJbnB1dCgpIGxvZ28/OiBVaUxpYkltYWdlSTtcbiAgQElucHV0KCkgbGFuZz86IHN0cmluZztcbiAgQElucHV0KCkgbmF2SXRlbXM/OiBVaUxpYk5hdkl0ZW1zSVtdO1xuICBASW5wdXQoKSBob21lTGluaz86IFVpTGliQnV0dG9uSTtcblxuICBAT3V0cHV0KCkgbGFuZ01vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgdGhlbWUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgb3Blbkxhbmd1YWdlc01vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMubGFuZ01vZGFsLmVtaXQoKTtcbiAgfVxuXG4gIHRvZ2dsZVRoZW1lKCk6IHZvaWQge1xuICAgIHRoaXMudGhlbWUuZW1pdCgpO1xuICB9XG5cbiAgdG9nZ2xlTWVudSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzTWVudU9wZW4gPSAhdGhpcy5pc01lbnVPcGVuO1xuICB9XG59XG4iLCI8aGVhZGVyIGNsYXNzPVwiaGVhZGVyLWNsZWFyXCI+XG4gIDxhIFtocmVmXT1cImhvbWVMaW5rPy51cmxcIiBbbGlua1R5cGVdPVwiaG9tZUxpbms/LmxpbmtUeXBlXCI+XG4gICAgPGRpdiBjbGFzcz1cImhlYWRlci1sb2dvXCI+XG4gICAgICA8IS0tIExvZ28gLS0+XG4gICAgICA8aW1nIFtzcmNdPVwibG9nbz8udXJsXCIgW2FsdF09XCJsb2dvPy5hbHRcIiAvPlxuICAgICAgPHNwYW4+TExVQyBMTFVMTDwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9hPlxuXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItYWN0aW9uc1wiPlxuICAgIDwhLS0gSWRpb21hIC0tPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwib3Blbkxhbmd1YWdlc01vZGFsKClcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibGFuZ1wiPnt7bGFuZ319PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPCEtLSBJY29ubyBkZSByZWNhcmdhIC0tPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwidG9nZ2xlVGhlbWUoKVwiPlxuICAgICAgPHNwYW4+8J+MmTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDwhLS0gSWNvbm8gZGUgbWVuw7ogLS0+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJ0b2dnbGVNZW51KClcIj5cbiAgICAgIDxzcGFuPuKYsDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2hlYWRlcj5cblxuQGlmKGlzTWVudU9wZW4gJiYgbmF2SXRlbXMgJiYgbmF2SXRlbXMubGVuZ3RoID4gMCkge1xuICA8bGliLW5hdi1tb2RhbFxuICAgIFtuYXZJdGVtc109XCJuYXZJdGVtc1wiXG4gICAgKGNsb3NlKT1cImlzTWVudU9wZW4gPSBmYWxzZVwiXG4gID48L2xpYi1uYXYtbW9kYWw+XG59XG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNsZWFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9oZWFkZXItY2xlYXIvaGVhZGVyLWNsZWFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9oZWFkZXItY2xlYXIvaGVhZGVyLWNsZWFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUl4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7QUFXakQsTUFBTSxPQUFPLG9CQUFvQjtJQWMvQixZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWI5QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGlCQUFZLEdBQVUsT0FBTyxDQUFDO1FBU3BCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3JDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRU0sQ0FBQztJQUVsRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6RSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckQsQ0FBQzsrR0F6Q1Usb0JBQW9CO21HQUFwQixvQkFBb0IsMk9DbkJqQyxrL0JBaUNBLDBjRG5CWSxZQUFZLCtCQUFzQixpQkFBaUIsbUhBQUUsaUJBQWlCOzs0RkFLckUsb0JBQW9CO2tCQVJoQyxTQUFTOytCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsbUJBR2hFLHVCQUF1QixDQUFDLE1BQU07aUZBT3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgVWlMaWJCdXR0b25JIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy91aS1saWItYnV0dG9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVaUxpYkltYWdlSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvdWktbGliLWltYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVaUxpYk5hdkl0ZW1zSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvdWktbGliLW5hdi1pdGVtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTGFuZ01vZGFsQ29tcG9uZW50IH0gZnJvbSBcIi4uL2xhbmctbW9kYWxcIjtcbmltcG9ydCB7IE5hdk1vZGFsQ29tcG9uZW50IH0gZnJvbSBcIi4uL25hdi1tb2RhbFwiO1xuaW1wb3J0IHsgVGhlbWUsIFRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RoZW1lJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWhlYWRlci1jbGVhcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIExhbmdNb2RhbENvbXBvbmVudCwgTmF2TW9kYWxDb21wb25lbnQsIExpbmtUeXBlRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2hlYWRlci1jbGVhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9oZWFkZXItY2xlYXIuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ2xlYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIGlzTWVudU9wZW4gPSBmYWxzZTtcbiAgY3VycmVudFRoZW1lOiBUaGVtZSA9ICdsaWdodCc7XG4gIHByaXZhdGUgdGhlbWVTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gIFxuICBASW5wdXQoKSBsb2dvPzogVWlMaWJJbWFnZUk7XG4gIEBJbnB1dCgpIGxvZ29EYXJrPzogVWlMaWJJbWFnZUk7XG4gIEBJbnB1dCgpIGxhbmc/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hdkl0ZW1zPzogVWlMaWJOYXZJdGVtc0lbXTtcbiAgQElucHV0KCkgaG9tZUxpbms/OiBVaUxpYkJ1dHRvbkk7XG5cbiAgQE91dHB1dCgpIGxhbmdNb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHRoZW1lID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGhlbWVTZXJ2aWNlOiBUaGVtZVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50aGVtZVN1YnNjcmlwdGlvbiA9IHRoaXMudGhlbWVTZXJ2aWNlLmN1cnJlbnRUaGVtZSQuc3Vic2NyaWJlKHRoZW1lID0+IHtcbiAgICAgIHRoaXMuY3VycmVudFRoZW1lID0gdGhlbWU7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnRoZW1lU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb3Blbkxhbmd1YWdlc01vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMubGFuZ01vZGFsLmVtaXQoKTtcbiAgfVxuXG4gIHRvZ2dsZVRoZW1lKCk6IHZvaWQge1xuICAgIHRoaXMudGhlbWVTZXJ2aWNlLnRvZ2dsZVRoZW1lKCk7XG4gICAgdGhpcy50aGVtZS5lbWl0KCk7XG4gIH1cblxuICB0b2dnbGVNZW51KCk6IHZvaWQge1xuICAgIHRoaXMuaXNNZW51T3BlbiA9ICF0aGlzLmlzTWVudU9wZW47XG4gIH1cblxuICBnZXRUaGVtZUljb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VGhlbWUgPT09ICdsaWdodCcgPyAn8J+MmScgOiAn4piA77iPJztcbiAgfVxufVxuIiwiPGhlYWRlciBjbGFzcz1cImhlYWRlci1jbGVhclwiPlxuICA8YSBbaHJlZl09XCJob21lTGluaz8udXJsXCIgW2xpbmtUeXBlXT1cImhvbWVMaW5rPy5saW5rVHlwZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItbG9nb1wiPlxuICAgICAgPCEtLSBMb2dvIC0tPlxuICAgICAgPGltZyBbc3JjXT1cImN1cnJlbnRUaGVtZSA9PT0gJ2RhcmsnID8gbG9nb0Rhcms/LnVybCA6IGxvZ28/LnVybFwiIFthbHRdPVwiY3VycmVudFRoZW1lID09PSAnZGFyaycgPyBsb2dvRGFyaz8uYWx0IDogbG9nbz8uYWx0XCIgLz5cbiAgICAgIDxzcGFuPkxMVUMgTExVTEw8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvYT5cblxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWFjdGlvbnNcIj5cbiAgICA8IS0tIElkaW9tYSAtLT5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cIm9wZW5MYW5ndWFnZXNNb2RhbCgpXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImxhbmdcIj57e2xhbmd9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDwhLS0gSWNvbm8gZGUgdGVtYSAtLT5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInRvZ2dsZVRoZW1lKClcIj5cbiAgICAgIDxzcGFuPnt7Z2V0VGhlbWVJY29uKCl9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDwhLS0gSWNvbm8gZGUgbWVuw7ogLS0+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJ0b2dnbGVNZW51KClcIj5cbiAgICAgIDxzcGFuPuKYsDwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2hlYWRlcj5cblxuQGlmKGlzTWVudU9wZW4gJiYgbmF2SXRlbXMgJiYgbmF2SXRlbXMubGVuZ3RoID4gMCkge1xuICA8bGliLW5hdi1tb2RhbFxuICAgIFtuYXZJdGVtc109XCJuYXZJdGVtc1wiXG4gICAgKGNsb3NlKT1cImlzTWVudU9wZW4gPSBmYWxzZVwiXG4gID48L2xpYi1uYXYtbW9kYWw+XG59XG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNsZWFyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9oZWFkZXItY2xlYXIvaGVhZGVyLWNsZWFyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVWlMaWJCdXR0b25JIH0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZXMvdWktbGliLWJ1dHRvbi5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFVpTGliSW1hZ2VJIH0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZXMvdWktbGliLWltYWdlLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgVWlMaWJOYXZJdGVtc0kgfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlcy91aS1saWItbmF2LWl0ZW1zLmludGVyZmFjZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlckNsZWFySSB7XG4gIGxvZ28/OiBVaUxpYkltYWdlSTtcbiAgbGFuZz86IHN0cmluZztcbiAgbmF2SXRlbXM/OiBVaUxpYk5hdkl0ZW1zSVtdO1xuICBob21lTGluaz86IFVpTGliQnV0dG9uSTtcbn0iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNsZWFyLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9oZWFkZXItY2xlYXIvaGVhZGVyLWNsZWFyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVWlMaWJCdXR0b25JIH0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZXMvdWktbGliLWJ1dHRvbi5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFVpTGliSW1hZ2VJIH0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZXMvdWktbGliLWltYWdlLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgVWlMaWJOYXZJdGVtc0kgfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlcy91aS1saWItbmF2LWl0ZW1zLmludGVyZmFjZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlckNsZWFySSB7XG4gIGxvZ28/OiBVaUxpYkltYWdlSTtcbiAgbG9nb0Rhcms/OiBVaUxpYkltYWdlSTtcbiAgbGFuZz86IHN0cmluZztcbiAgbmF2SXRlbXM/OiBVaUxpYk5hdkl0ZW1zSVtdO1xuICBob21lTGluaz86IFVpTGliQnV0dG9uSTtcbn0iXX0=
@@ -1,31 +1,48 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
3
+ import { LinkTypeDirective } from '../../../directives/link-type.directive';
3
4
  import { LangModalComponent } from '../lang-modal/lang-modal.component';
4
5
  import { NavModalComponent } from '../nav-modal/nav-modal.component';
5
- import { LinkTypeDirective } from '../../../directives/link-type.directive';
6
6
  import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../services/theme";
7
8
  export class HeaderMobileComponent {
8
- constructor() {
9
+ constructor(themeService) {
10
+ this.themeService = themeService;
9
11
  this.isMenuOpen = false;
12
+ this.currentTheme = 'light';
10
13
  this.langModal = new EventEmitter();
11
14
  this.theme = new EventEmitter();
12
15
  }
16
+ ngOnInit() {
17
+ this.themeSubscription = this.themeService.currentTheme$.subscribe(theme => {
18
+ this.currentTheme = theme;
19
+ });
20
+ }
21
+ ngOnDestroy() {
22
+ this.themeSubscription?.unsubscribe();
23
+ }
13
24
  openLanguagesModal() {
14
25
  this.langModal.emit();
15
26
  }
16
27
  toggleTheme() {
28
+ this.themeService.toggleTheme();
17
29
  this.theme.emit();
18
30
  }
19
31
  toggleMenu() {
20
32
  this.isMenuOpen = !this.isMenuOpen;
21
33
  }
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderMobileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
23
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: HeaderMobileComponent, isStandalone: true, selector: "lib-header-mobile", inputs: { logo: "logo", lang: "lang", navItems: "navItems", homeLink: "homeLink" }, outputs: { langModal: "langModal", theme: "theme" }, ngImport: i0, template: "<header class=\"header-mobile\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img [src]=\"logo?.url\" [alt]=\"logo?.alt\" />\n <span>LLUC LLULL</span>\n </div>\n </a>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n </div>\n\n <!-- Icono de recarga -->\n <div class=\"center\">\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>\uD83C\uDF19</span>\n </button>\n </div>\n\n <!-- Icono de men\u00FA -->\n <div class=\"right\">\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>\u2630</span>\n </button>\n </div>\n</div>\n\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n\n", styles: [":root{--color-primary: #007bff;--color-secondary: #6c757d;--color-text: #111;--color-bg: #f9f9f9;--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--button-primary-bg: #007bff;--button-primary-text: #f9f9f9;--button-primary-bg-hover: #033468;--button-primary-text-hover: #f9f9f9;--button-secondary-bg: #6c757d;--button-secondary-text: #f9f9f9;--button-secondary-bg-hover: #1c1e20;--button-secondary-text-hover: #f9f9f9;--button-link-text: #111111;--button-link-text-hover: #007bff;--header-clear-bg: #007bff;--header-mobile-bg: #007bff;--modal-bg: #f9f9f9;--close-btn: #111;--item-text: #111}.header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;z-index:100;background-color:var(--header-mobile-bg);width:100vw}.header-logo{display:flex;align-items:center;gap:.5rem}.header-logo img{width:36px;height:36px;object-fit:contain;object-position:center}.header-actions{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background-color:var(--header-mobile-bg);z-index:100;box-sizing:border-box}.header-actions .center{margin:0 auto}.lang{text-transform:uppercase}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: NavModalComponent, selector: "lib-nav-modal", inputs: ["navItems", "socialItems"], outputs: ["close"] }, { kind: "directive", type: LinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href"], outputs: ["anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
+ getThemeIcon() {
35
+ return this.currentTheme === 'light' ? '🌙' : '☀️';
36
+ }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderMobileComponent, deps: [{ token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Component }); }
38
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: HeaderMobileComponent, isStandalone: true, selector: "lib-header-mobile", inputs: { logo: "logo", logoDark: "logoDark", lang: "lang", navItems: "navItems", homeLink: "homeLink" }, outputs: { langModal: "langModal", theme: "theme" }, ngImport: i0, template: "<header class=\"header-mobile\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\" [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\" />\n <span>LLUC LLULL</span>\n </div>\n </a>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n </div>\n\n <!-- Icono de tema -->\n <div class=\"center\">\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>{{getThemeIcon()}}</span>\n </button>\n </div>\n\n <!-- Icono de men\u00FA -->\n <div class=\"right\">\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>\u2630</span>\n </button>\n </div>\n</div>\n\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n\n", styles: [":root{--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem}.header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;z-index:100;background-color:var(--header-mobile-bg);width:100vw}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:36px;height:36px;object-fit:contain;object-position:center}.header-actions{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background-color:var(--header-mobile-bg);z-index:100;box-sizing:border-box}.header-actions .center{margin:0 auto}.lang{text-transform:uppercase}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: NavModalComponent, selector: "lib-nav-modal", inputs: ["navItems", "socialItems"], outputs: ["close"] }, { kind: "directive", type: LinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href"], outputs: ["anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
24
39
  }
25
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: HeaderMobileComponent, decorators: [{
26
41
  type: Component,
27
- args: [{ selector: 'lib-header-mobile', standalone: true, imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"header-mobile\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img [src]=\"logo?.url\" [alt]=\"logo?.alt\" />\n <span>LLUC LLULL</span>\n </div>\n </a>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n </div>\n\n <!-- Icono de recarga -->\n <div class=\"center\">\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>\uD83C\uDF19</span>\n </button>\n </div>\n\n <!-- Icono de men\u00FA -->\n <div class=\"right\">\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>\u2630</span>\n </button>\n </div>\n</div>\n\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n\n", styles: [":root{--color-primary: #007bff;--color-secondary: #6c757d;--color-text: #111;--color-bg: #f9f9f9;--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--button-primary-bg: #007bff;--button-primary-text: #f9f9f9;--button-primary-bg-hover: #033468;--button-primary-text-hover: #f9f9f9;--button-secondary-bg: #6c757d;--button-secondary-text: #f9f9f9;--button-secondary-bg-hover: #1c1e20;--button-secondary-text-hover: #f9f9f9;--button-link-text: #111111;--button-link-text-hover: #007bff;--header-clear-bg: #007bff;--header-mobile-bg: #007bff;--modal-bg: #f9f9f9;--close-btn: #111;--item-text: #111}.header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;z-index:100;background-color:var(--header-mobile-bg);width:100vw}.header-logo{display:flex;align-items:center;gap:.5rem}.header-logo img{width:36px;height:36px;object-fit:contain;object-position:center}.header-actions{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background-color:var(--header-mobile-bg);z-index:100;box-sizing:border-box}.header-actions .center{margin:0 auto}.lang{text-transform:uppercase}\n"] }]
28
- }], propDecorators: { logo: [{
42
+ args: [{ selector: 'lib-header-mobile', standalone: true, imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"header-mobile\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\" [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\" />\n <span>LLUC LLULL</span>\n </div>\n </a>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-primary\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n </div>\n\n <!-- Icono de tema -->\n <div class=\"center\">\n <button class=\"btn btn-primary\" (click)=\"toggleTheme()\">\n <span>{{getThemeIcon()}}</span>\n </button>\n </div>\n\n <!-- Icono de men\u00FA -->\n <div class=\"right\">\n <button class=\"btn btn-primary\" (click)=\"toggleMenu()\">\n <span>\u2630</span>\n </button>\n </div>\n</div>\n\n\n@if(isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n\n", styles: [":root{--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem}.header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;z-index:100;background-color:var(--header-mobile-bg);width:100vw}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:36px;height:36px;object-fit:contain;object-position:center}.header-actions{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:.5rem 1rem;background-color:var(--header-mobile-bg);z-index:100;box-sizing:border-box}.header-actions .center{margin:0 auto}.lang{text-transform:uppercase}\n"] }]
43
+ }], ctorParameters: () => [{ type: i1.ThemeService }], propDecorators: { logo: [{
44
+ type: Input
45
+ }], logoDark: [{
29
46
  type: Input
30
47
  }], lang: [{
31
48
  type: Input
@@ -38,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
38
55
  }], theme: [{
39
56
  type: Output
40
57
  }] } });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1vYmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvaGVhZGVyLW1vYmlsZS9oZWFkZXItbW9iaWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9oZWFkZXItbW9iaWxlL2hlYWRlci1tb2JpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFckUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUNBQXlDLENBQUM7O0FBVzVFLE1BQU0sT0FBTyxxQkFBcUI7SUFSbEM7UUFTRSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBT1QsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDckMsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FhNUM7SUFYQyxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUNyQyxDQUFDOytHQXJCVSxxQkFBcUI7bUdBQXJCLHFCQUFxQixzTkNqQmxDLGlnQ0F5Q0EseTBDRDdCWSxZQUFZLCtCQUFzQixpQkFBaUIsbUhBQUUsaUJBQWlCOzs0RkFLckUscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUMsbUJBR2hFLHVCQUF1QixDQUFDLE1BQU07OEJBS3RDLElBQUk7c0JBQVosS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVWlMaWJOYXZJdGVtc0kgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL3VpLWxpYi1uYXYtaXRlbXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IExhbmdNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2xhbmctbW9kYWwvbGFuZy1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9uYXYtbW9kYWwvbmF2LW1vZGFsLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVaUxpYkltYWdlSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvdWktbGliLWltYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBMaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBVaUxpYkJ1dHRvbkkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL3VpLWxpYi1idXR0b24uaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWhlYWRlci1tb2JpbGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBMYW5nTW9kYWxDb21wb25lbnQsIE5hdk1vZGFsQ29tcG9uZW50LCBMaW5rVHlwZURpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXItbW9iaWxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2hlYWRlci1tb2JpbGUuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyTW9iaWxlQ29tcG9uZW50IHtcbiAgaXNNZW51T3BlbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGxvZ28/OiBVaUxpYkltYWdlSTtcbiAgQElucHV0KCkgbGFuZz86IHN0cmluZztcbiAgQElucHV0KCkgbmF2SXRlbXM/OiBVaUxpYk5hdkl0ZW1zSVtdO1xuICBASW5wdXQoKSBob21lTGluaz86IFVpTGliQnV0dG9uSTtcblxuICBAT3V0cHV0KCkgbGFuZ01vZGFsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgdGhlbWUgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgb3Blbkxhbmd1YWdlc01vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMubGFuZ01vZGFsLmVtaXQoKTtcbiAgfVxuXG4gIHRvZ2dsZVRoZW1lKCk6IHZvaWQge1xuICAgIHRoaXMudGhlbWUuZW1pdCgpO1xuICB9XG5cbiAgdG9nZ2xlTWVudSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzTWVudU9wZW4gPSAhdGhpcy5pc01lbnVPcGVuO1xuICB9XG59XG4iLCI8aGVhZGVyIGNsYXNzPVwiaGVhZGVyLW1vYmlsZVwiPlxuICA8YSBbaHJlZl09XCJob21lTGluaz8udXJsXCIgW2xpbmtUeXBlXT1cImhvbWVMaW5rPy5saW5rVHlwZVwiPlxuICAgIDxkaXYgY2xhc3M9XCJoZWFkZXItbG9nb1wiPlxuICAgICAgPCEtLSBMb2dvIC0tPlxuICAgICAgPGltZyBbc3JjXT1cImxvZ28/LnVybFwiIFthbHRdPVwibG9nbz8uYWx0XCIgLz5cbiAgICAgIDxzcGFuPkxMVUMgTExVTEw8L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvYT5cbjwvaGVhZGVyPlxuXG48ZGl2IGNsYXNzPVwiaGVhZGVyLWFjdGlvbnNcIj5cbiAgPCEtLSBJZGlvbWEgLS0+XG4gIDxkaXYgY2xhc3M9XCJsZWZ0XCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJvcGVuTGFuZ3VhZ2VzTW9kYWwoKVwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJsYW5nXCI+e3sgbGFuZyB9fTwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBJY29ubyBkZSByZWNhcmdhIC0tPlxuICA8ZGl2IGNsYXNzPVwiY2VudGVyXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeVwiIChjbGljayk9XCJ0b2dnbGVUaGVtZSgpXCI+XG4gICAgICA8c3Bhbj7wn4yZPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8IS0tIEljb25vIGRlIG1lbsO6IC0tPlxuICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiPlxuICAgICAgPHNwYW4+4piwPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG5cbkBpZihpc01lbnVPcGVuICYmIG5hdkl0ZW1zICYmIG5hdkl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgPGxpYi1uYXYtbW9kYWxcbiAgICBbbmF2SXRlbXNdPVwibmF2SXRlbXNcIlxuICAgIChjbG9zZSk9XCJpc01lbnVPcGVuID0gZmFsc2VcIlxuICA+PC9saWItbmF2LW1vZGFsPlxufVxuXG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1vYmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvaGVhZGVyLW1vYmlsZS9oZWFkZXItbW9iaWxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9oZWFkZXItbW9iaWxlL2hlYWRlci1tb2JpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBSzVFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7QUFVckUsTUFBTSxPQUFPLHFCQUFxQjtJQWNoQyxZQUFvQixZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWI5QyxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGlCQUFZLEdBQVUsT0FBTyxDQUFDO1FBU3BCLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3JDLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRU0sQ0FBQztJQUVsRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUN6RSxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxZQUFZO1FBQ1YsT0FBTyxJQUFJLENBQUMsWUFBWSxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDckQsQ0FBQzsrR0F6Q1UscUJBQXFCO21HQUFyQixxQkFBcUIsNE9DbkJsQyx3bENBeUNBLCswQkQzQlksWUFBWSwrQkFBc0IsaUJBQWlCLG1IQUFFLGlCQUFpQjs7NEZBS3JFLHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLGlCQUFpQixDQUFDLG1CQUdoRSx1QkFBdUIsQ0FBQyxNQUFNO2lGQU90QyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csS0FBSztzQkFBZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTGlua1R5cGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2xpbmstdHlwZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgVWlMaWJCdXR0b25JIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy91aS1saWItYnV0dG9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVaUxpYkltYWdlSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvdWktbGliLWltYWdlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBVaUxpYk5hdkl0ZW1zSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvdWktbGliLW5hdi1pdGVtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVGhlbWUsIFRoZW1lU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3RoZW1lJztcbmltcG9ydCB7IExhbmdNb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2xhbmctbW9kYWwvbGFuZy1tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmF2TW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9uYXYtbW9kYWwvbmF2LW1vZGFsLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1oZWFkZXItbW9iaWxlJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTGFuZ01vZGFsQ29tcG9uZW50LCBOYXZNb2RhbENvbXBvbmVudCwgTGlua1R5cGVEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vaGVhZGVyLW1vYmlsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9oZWFkZXItbW9iaWxlLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIEhlYWRlck1vYmlsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgaXNNZW51T3BlbiA9IGZhbHNlO1xuICBjdXJyZW50VGhlbWU6IFRoZW1lID0gJ2xpZ2h0JztcbiAgcHJpdmF0ZSB0aGVtZVN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICBASW5wdXQoKSBsb2dvPzogVWlMaWJJbWFnZUk7XG4gIEBJbnB1dCgpIGxvZ29EYXJrPzogVWlMaWJJbWFnZUk7XG4gIEBJbnB1dCgpIGxhbmc/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hdkl0ZW1zPzogVWlMaWJOYXZJdGVtc0lbXTtcbiAgQElucHV0KCkgaG9tZUxpbms/OiBVaUxpYkJ1dHRvbkk7XG5cbiAgQE91dHB1dCgpIGxhbmdNb2RhbCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHRoZW1lID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdGhlbWVTZXJ2aWNlOiBUaGVtZVNlcnZpY2UpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50aGVtZVN1YnNjcmlwdGlvbiA9IHRoaXMudGhlbWVTZXJ2aWNlLmN1cnJlbnRUaGVtZSQuc3Vic2NyaWJlKHRoZW1lID0+IHtcbiAgICAgIHRoaXMuY3VycmVudFRoZW1lID0gdGhlbWU7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnRoZW1lU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgb3Blbkxhbmd1YWdlc01vZGFsKCk6IHZvaWQge1xuICAgIHRoaXMubGFuZ01vZGFsLmVtaXQoKTtcbiAgfVxuXG4gIHRvZ2dsZVRoZW1lKCk6IHZvaWQge1xuICAgIHRoaXMudGhlbWVTZXJ2aWNlLnRvZ2dsZVRoZW1lKCk7XG4gICAgdGhpcy50aGVtZS5lbWl0KCk7XG4gIH1cblxuICB0b2dnbGVNZW51KCk6IHZvaWQge1xuICAgIHRoaXMuaXNNZW51T3BlbiA9ICF0aGlzLmlzTWVudU9wZW47XG4gIH1cblxuICBnZXRUaGVtZUljb24oKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VGhlbWUgPT09ICdsaWdodCcgPyAn8J+MmScgOiAn4piA77iPJztcbiAgfVxufVxuIiwiPGhlYWRlciBjbGFzcz1cImhlYWRlci1tb2JpbGVcIj5cbiAgPGEgW2hyZWZdPVwiaG9tZUxpbms/LnVybFwiIFtsaW5rVHlwZV09XCJob21lTGluaz8ubGlua1R5cGVcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWxvZ29cIj5cbiAgICAgIDwhLS0gTG9nbyAtLT5cbiAgICAgIDxpbWcgW3NyY109XCJjdXJyZW50VGhlbWUgPT09ICdkYXJrJyA/IGxvZ29EYXJrPy51cmwgOiBsb2dvPy51cmxcIiBbYWx0XT1cImN1cnJlbnRUaGVtZSA9PT0gJ2RhcmsnID8gbG9nb0Rhcms/LmFsdCA6IGxvZ28/LmFsdFwiIC8+XG4gICAgICA8c3Bhbj5MTFVDIExMVUxMPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L2E+XG48L2hlYWRlcj5cblxuPGRpdiBjbGFzcz1cImhlYWRlci1hY3Rpb25zXCI+XG4gIDwhLS0gSWRpb21hIC0tPlxuICA8ZGl2IGNsYXNzPVwibGVmdFwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwib3Blbkxhbmd1YWdlc01vZGFsKClcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibGFuZ1wiPnt7IGxhbmcgfX08L3NwYW4+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuXG4gIDwhLS0gSWNvbm8gZGUgdGVtYSAtLT5cbiAgPGRpdiBjbGFzcz1cImNlbnRlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiAoY2xpY2spPVwidG9nZ2xlVGhlbWUoKVwiPlxuICAgICAgPHNwYW4+e3tnZXRUaGVtZUljb24oKX19PC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8IS0tIEljb25vIGRlIG1lbsO6IC0tPlxuICA8ZGl2IGNsYXNzPVwicmlnaHRcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cInRvZ2dsZU1lbnUoKVwiPlxuICAgICAgPHNwYW4+4piwPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG5cbkBpZihpc01lbnVPcGVuICYmIG5hdkl0ZW1zICYmIG5hdkl0ZW1zLmxlbmd0aCA+IDApIHtcbiAgPGxpYi1uYXYtbW9kYWxcbiAgICBbbmF2SXRlbXNdPVwibmF2SXRlbXNcIlxuICAgIChjbG9zZSk9XCJpc01lbnVPcGVuID0gZmFsc2VcIlxuICA+PC9saWItbmF2LW1vZGFsPlxufVxuXG4iXX0=
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1vYmlsZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvaGVhZGVyLW1vYmlsZS9oZWFkZXItbW9iaWxlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVWlMaWJCdXR0b25JIH0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZXMvdWktbGliLWJ1dHRvbi5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFVpTGliSW1hZ2VJIH0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZXMvdWktbGliLWltYWdlLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgVWlMaWJOYXZJdGVtc0kgfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlcy91aS1saWItbmF2LWl0ZW1zLmludGVyZmFjZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlck1vYmlsZUkge1xuICBsb2dvPzogVWlMaWJJbWFnZUk7XG4gIGxhbmc/OiBzdHJpbmc7XG4gIG5hdkl0ZW1zPzogVWlMaWJOYXZJdGVtc0lbXTtcbiAgaG9tZUxpbms/OiBVaUxpYkJ1dHRvbkk7XG59Il19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLW1vYmlsZS5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvaGVhZGVyLW1vYmlsZS9oZWFkZXItbW9iaWxlLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVWlMaWJCdXR0b25JIH0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZXMvdWktbGliLWJ1dHRvbi5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IFVpTGliSW1hZ2VJIH0gZnJvbSBcIi4uLy4uLy4uL2ludGVyZmFjZXMvdWktbGliLWltYWdlLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgVWlMaWJOYXZJdGVtc0kgfSBmcm9tIFwiLi4vLi4vLi4vaW50ZXJmYWNlcy91aS1saWItbmF2LWl0ZW1zLmludGVyZmFjZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIEhlYWRlck1vYmlsZUkge1xuICBsb2dvPzogVWlMaWJJbWFnZUk7XG4gIGxvZ29EYXJrPzogVWlMaWJJbWFnZUk7XG4gIGxhbmc/OiBzdHJpbmc7XG4gIG5hdkl0ZW1zPzogVWlMaWJOYXZJdGVtc0lbXTtcbiAgaG9tZUxpbms/OiBVaUxpYkJ1dHRvbkk7XG59Il19
@@ -17,11 +17,11 @@ export class LangModalComponent {
17
17
  this.dialogRef?.close();
18
18
  }
19
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LangModalComponent, deps: [{ token: MAT_DIALOG_DATA, optional: true }, { token: i1.MatDialogRef, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
20
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LangModalComponent, isStandalone: true, selector: "lib-lang-modal", ngImport: i0, template: "<div class=\"modal-content\">\n <button (click)=\"closeModal()\" class=\"close-btn\">\u2715</button>\n @if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track $index) {\n <li (click)=\"selectLang(lang)\">\n <span class=\"item\">{{ lang.label }}</span>\n </li>\n }\n </ol>\n }\n</div>\n", styles: [":root{--color-primary: #007bff;--color-secondary: #6c757d;--color-text: #111;--color-bg: #f9f9f9;--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--button-primary-bg: #007bff;--button-primary-text: #f9f9f9;--button-primary-bg-hover: #033468;--button-primary-text-hover: #f9f9f9;--button-secondary-bg: #6c757d;--button-secondary-text: #f9f9f9;--button-secondary-bg-hover: #1c1e20;--button-secondary-text-hover: #f9f9f9;--button-link-text: #111111;--button-link-text-hover: #007bff;--header-clear-bg: #007bff;--header-mobile-bg: #007bff;--modal-bg: #f9f9f9;--close-btn: #111;--item-text: #111}:host{position:fixed;inset:0;width:100vw;height:100vh;background:var(--modal-bg);z-index:1000;display:flex;align-items:center;justify-content:center}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001}ol{padding:0;margin:0;text-align:center;width:100%;max-width:400px;list-style:none;counter-reset:item}li{cursor:pointer;text-align:start;text-transform:uppercase;counter-increment:item}li:before{content:counter(item,decimal-leading-zero) \". \"}.item{font-size:3.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: LangModalComponent, isStandalone: true, selector: "lib-lang-modal", ngImport: i0, template: "<div class=\"modal-content\">\n <button (click)=\"closeModal()\" class=\"close-btn\">\u2715</button>\n @if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track $index) {\n <li (click)=\"selectLang(lang)\">\n <span class=\"item\">{{ lang.label }}</span>\n </li>\n }\n </ol>\n }\n</div>\n", styles: [":root{--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem}:host{position:fixed;inset:0;width:100vw;height:100vh;background:var(--modal-bg);z-index:1000;display:flex;align-items:center;justify-content:center}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001}ol{padding:0;margin:0;text-align:center;width:100%;max-width:400px;list-style:none;counter-reset:item}li{cursor:pointer;text-align:start;text-transform:uppercase;counter-increment:item}li:before{content:counter(item,decimal-leading-zero) \". \"}.item{font-size:3.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
21
21
  }
22
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LangModalComponent, decorators: [{
23
23
  type: Component,
24
- args: [{ selector: 'lib-lang-modal', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"modal-content\">\n <button (click)=\"closeModal()\" class=\"close-btn\">\u2715</button>\n @if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track $index) {\n <li (click)=\"selectLang(lang)\">\n <span class=\"item\">{{ lang.label }}</span>\n </li>\n }\n </ol>\n }\n</div>\n", styles: [":root{--color-primary: #007bff;--color-secondary: #6c757d;--color-text: #111;--color-bg: #f9f9f9;--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--button-primary-bg: #007bff;--button-primary-text: #f9f9f9;--button-primary-bg-hover: #033468;--button-primary-text-hover: #f9f9f9;--button-secondary-bg: #6c757d;--button-secondary-text: #f9f9f9;--button-secondary-bg-hover: #1c1e20;--button-secondary-text-hover: #f9f9f9;--button-link-text: #111111;--button-link-text-hover: #007bff;--header-clear-bg: #007bff;--header-mobile-bg: #007bff;--modal-bg: #f9f9f9;--close-btn: #111;--item-text: #111}:host{position:fixed;inset:0;width:100vw;height:100vh;background:var(--modal-bg);z-index:1000;display:flex;align-items:center;justify-content:center}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001}ol{padding:0;margin:0;text-align:center;width:100%;max-width:400px;list-style:none;counter-reset:item}li{cursor:pointer;text-align:start;text-transform:uppercase;counter-increment:item}li:before{content:counter(item,decimal-leading-zero) \". \"}.item{font-size:3.5rem}\n"] }]
24
+ args: [{ selector: 'lib-lang-modal', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"modal-content\">\n <button (click)=\"closeModal()\" class=\"close-btn\">\u2715</button>\n @if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track $index) {\n <li (click)=\"selectLang(lang)\">\n <span class=\"item\">{{ lang.label }}</span>\n </li>\n }\n </ol>\n }\n</div>\n", styles: [":root{--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem}:host{position:fixed;inset:0;width:100vw;height:100vh;background:var(--modal-bg);z-index:1000;display:flex;align-items:center;justify-content:center}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001}ol{padding:0;margin:0;text-align:center;width:100%;max-width:400px;list-style:none;counter-reset:item}li{cursor:pointer;text-align:start;text-transform:uppercase;counter-increment:item}li:before{content:counter(item,decimal-leading-zero) \". \"}.item{font-size:3.5rem}\n"] }]
25
25
  }], ctorParameters: () => [{ type: undefined, decorators: [{
26
26
  type: Optional
27
27
  }, {
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
30
30
  }] }, { type: i1.MatDialogRef, decorators: [{
31
31
  type: Optional
32
32
  }] }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvbGFuZy1tb2RhbC9sYW5nLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9sYW5nLW1vZGFsL2xhbmctbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7O0FBZTVGLE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFDOEMsSUFBbUIsRUFDNUMsU0FBNEM7UUFEbkIsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUM1QyxjQUFTLEdBQVQsU0FBUyxDQUFtQztRQUUvRCxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQW9CO1FBQzdCLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDOytHQWhCVSxrQkFBa0Isa0JBSVAsZUFBZTttR0FKMUIsa0JBQWtCLDBFQ25CL0IsdVZBWUEsK3lDREVZLFlBQVk7OzRGQUtYLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBR04sdUJBQXVCLENBQUMsTUFBTTs7MEJBTTVDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs7MEJBQ2xDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVWlMaWJMYW5nSXRlbUkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL3VpLWxpYi1sYW5nLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IG1hcExhbmdNb2RhbCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21hcHBlci9jb21wb25lbnQtbWFwcGVycy9sYW5nLW1vZGFsLm1hcHBlcic7XG5cbmludGVyZmFjZSBMYW5nTW9kYWxEYXRhIHtcbiAgbGFuZ3M6IGFueVtdO1xuICBjdXJyZW50TGFuZzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItbGFuZy1tb2RhbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbGFuZy1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9sYW5nLW1vZGFsLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExhbmdNb2RhbENvbXBvbmVudCB7XG4gIGxhbmdzITogVWlMaWJMYW5nSXRlbUlbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IExhbmdNb2RhbERhdGEsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZ1JlZj86IE1hdERpYWxvZ1JlZjxMYW5nTW9kYWxDb21wb25lbnQ+XG4gICkge1xuICAgIHRoaXMubGFuZ3MgPSBtYXBMYW5nTW9kYWwoZGF0YS5sYW5ncywgZGF0YS5jdXJyZW50TGFuZyk7XG4gIH1cblxuICBzZWxlY3RMYW5nKGxhbmc6IFVpTGliTGFuZ0l0ZW1JKSB7XG4gICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKGxhbmcpO1xuICB9XG5cbiAgY2xvc2VNb2RhbCgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCIgY2xhc3M9XCJjbG9zZS1idG5cIj7inJU8L2J1dHRvbj5cbiAgQGlmIChsYW5ncyAmJiBsYW5ncy5sZW5ndGggPiAwKSB7XG4gICAgPG9sPlxuICAgICAgQGZvciAobGFuZyBvZiBsYW5nczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxsaSAoY2xpY2spPVwic2VsZWN0TGFuZyhsYW5nKVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaXRlbVwiPnt7IGxhbmcubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgPC9vbD5cbiAgfVxuPC9kaXY+XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZy1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvbGFuZy1tb2RhbC9sYW5nLW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9sYW5nLW1vZGFsL2xhbmctbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFnQixNQUFNLDBCQUEwQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7O0FBZTVGLE1BQU0sT0FBTyxrQkFBa0I7SUFHN0IsWUFDOEMsSUFBbUIsRUFDNUMsU0FBNEM7UUFEbkIsU0FBSSxHQUFKLElBQUksQ0FBZTtRQUM1QyxjQUFTLEdBQVQsU0FBUyxDQUFtQztRQUUvRCxJQUFJLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQW9CO1FBQzdCLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUMxQixDQUFDOytHQWhCVSxrQkFBa0Isa0JBSVAsZUFBZTttR0FKMUIsa0JBQWtCLDBFQ25CL0IsdVZBWUEsdXhCREVZLFlBQVk7OzRGQUtYLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDRSxnQkFBZ0IsY0FDZCxJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsbUJBR04sdUJBQXVCLENBQUMsTUFBTTs7MEJBTTVDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsZUFBZTs7MEJBQ2xDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgVWlMaWJMYW5nSXRlbUkgfSBmcm9tICcuLi8uLi8uLi9pbnRlcmZhY2VzL3VpLWxpYi1sYW5nLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IG1hcExhbmdNb2RhbCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL21hcHBlci9jb21wb25lbnQtbWFwcGVycy9sYW5nLW1vZGFsLm1hcHBlcic7XG5cbmludGVyZmFjZSBMYW5nTW9kYWxEYXRhIHtcbiAgbGFuZ3M6IGFueVtdO1xuICBjdXJyZW50TGFuZzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItbGFuZy1tb2RhbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vbGFuZy1tb2RhbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9sYW5nLW1vZGFsLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExhbmdNb2RhbENvbXBvbmVudCB7XG4gIGxhbmdzITogVWlMaWJMYW5nSXRlbUlbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgcHVibGljIGRhdGE6IExhbmdNb2RhbERhdGEsXG4gICAgQE9wdGlvbmFsKCkgcHVibGljIGRpYWxvZ1JlZj86IE1hdERpYWxvZ1JlZjxMYW5nTW9kYWxDb21wb25lbnQ+XG4gICkge1xuICAgIHRoaXMubGFuZ3MgPSBtYXBMYW5nTW9kYWwoZGF0YS5sYW5ncywgZGF0YS5jdXJyZW50TGFuZyk7XG4gIH1cblxuICBzZWxlY3RMYW5nKGxhbmc6IFVpTGliTGFuZ0l0ZW1JKSB7XG4gICAgdGhpcy5kaWFsb2dSZWY/LmNsb3NlKGxhbmcpO1xuICB9XG5cbiAgY2xvc2VNb2RhbCgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZj8uY2xvc2UoKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cIm1vZGFsLWNvbnRlbnRcIj5cbiAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCIgY2xhc3M9XCJjbG9zZS1idG5cIj7inJU8L2J1dHRvbj5cbiAgQGlmIChsYW5ncyAmJiBsYW5ncy5sZW5ndGggPiAwKSB7XG4gICAgPG9sPlxuICAgICAgQGZvciAobGFuZyBvZiBsYW5nczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgIDxsaSAoY2xpY2spPVwic2VsZWN0TGFuZyhsYW5nKVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaXRlbVwiPnt7IGxhbmcubGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvbGk+XG4gICAgICB9XG4gICAgPC9vbD5cbiAgfVxuPC9kaXY+XG4iXX0=
@@ -10,11 +10,11 @@ export class NavModalComponent {
10
10
  this.close.emit();
11
11
  }
12
12
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
13
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: NavModalComponent, isStandalone: true, selector: "lib-nav-modal", inputs: { navItems: "navItems", socialItems: "socialItems" }, outputs: { close: "close" }, ngImport: i0, template: "<div class=\"modal-content\">\n <button (click)=\"closeModal()\" class=\"close-btn\">\u2715</button>\n @if (navItems && navItems.length > 0) {\n <ol>\n @for (item of navItems; track $index) {\n <a [href]=\"item.url\" [linkType]=\"item.linkType\" (click)=\"closeModal()\">\n <li>\n <span class=\"item\">{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n }\n</div>\n", styles: [":root{--color-primary: #007bff;--color-secondary: #6c757d;--color-text: #111;--color-bg: #f9f9f9;--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--button-primary-bg: #007bff;--button-primary-text: #f9f9f9;--button-primary-bg-hover: #033468;--button-primary-text-hover: #f9f9f9;--button-secondary-bg: #6c757d;--button-secondary-text: #f9f9f9;--button-secondary-bg-hover: #1c1e20;--button-secondary-text-hover: #f9f9f9;--button-link-text: #111111;--button-link-text-hover: #007bff;--header-clear-bg: #007bff;--header-mobile-bg: #007bff;--modal-bg: #f9f9f9;--close-btn: #111;--item-text: #111}:host{position:fixed;inset:0;width:100vw;height:100vh;background:var(--modal-bg);z-index:1000;display:flex;align-items:center;justify-content:center}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001}ol{padding:0;margin:0;text-align:center;width:100%;max-width:400px;list-style:none;counter-reset:item}li{cursor:pointer;text-align:start;counter-increment:item}a{text-decoration:none;text-transform:uppercase;color:var(--item-color)}li:before{content:counter(item,decimal-leading-zero) \". \"}.item{font-size:3.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: LinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href"], outputs: ["anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
13
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: NavModalComponent, isStandalone: true, selector: "lib-nav-modal", inputs: { navItems: "navItems", socialItems: "socialItems" }, outputs: { close: "close" }, ngImport: i0, template: "<div class=\"modal-content\">\n <button (click)=\"closeModal()\" class=\"close-btn\">\u2715</button>\n @if (navItems && navItems.length > 0) {\n <ol>\n @for (item of navItems; track $index) {\n <a [href]=\"item.url\" [linkType]=\"item.linkType\" (click)=\"closeModal()\">\n <li>\n <span class=\"item\">{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n }\n</div>\n", styles: [":root{--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem}:host{position:fixed;inset:0;width:100vw;height:100vh;background:var(--modal-bg);z-index:1000;display:flex;align-items:center;justify-content:center}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001}ol{padding:0;margin:0;text-align:center;width:100%;max-width:400px;list-style:none;counter-reset:item}li{cursor:pointer;text-align:start;counter-increment:item}a{text-decoration:none;text-transform:uppercase;color:var(--item-color)}li:before{content:counter(item,decimal-leading-zero) \". \"}.item{font-size:3.5rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: LinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href"], outputs: ["anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14
14
  }
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: NavModalComponent, decorators: [{
16
16
  type: Component,
17
- args: [{ selector: 'lib-nav-modal', standalone: true, imports: [CommonModule, LinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"modal-content\">\n <button (click)=\"closeModal()\" class=\"close-btn\">\u2715</button>\n @if (navItems && navItems.length > 0) {\n <ol>\n @for (item of navItems; track $index) {\n <a [href]=\"item.url\" [linkType]=\"item.linkType\" (click)=\"closeModal()\">\n <li>\n <span class=\"item\">{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n }\n</div>\n", styles: [":root{--color-primary: #007bff;--color-secondary: #6c757d;--color-text: #111;--color-bg: #f9f9f9;--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--button-primary-bg: #007bff;--button-primary-text: #f9f9f9;--button-primary-bg-hover: #033468;--button-primary-text-hover: #f9f9f9;--button-secondary-bg: #6c757d;--button-secondary-text: #f9f9f9;--button-secondary-bg-hover: #1c1e20;--button-secondary-text-hover: #f9f9f9;--button-link-text: #111111;--button-link-text-hover: #007bff;--header-clear-bg: #007bff;--header-mobile-bg: #007bff;--modal-bg: #f9f9f9;--close-btn: #111;--item-text: #111}:host{position:fixed;inset:0;width:100vw;height:100vh;background:var(--modal-bg);z-index:1000;display:flex;align-items:center;justify-content:center}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001}ol{padding:0;margin:0;text-align:center;width:100%;max-width:400px;list-style:none;counter-reset:item}li{cursor:pointer;text-align:start;counter-increment:item}a{text-decoration:none;text-transform:uppercase;color:var(--item-color)}li:before{content:counter(item,decimal-leading-zero) \". \"}.item{font-size:3.5rem}\n"] }]
17
+ args: [{ selector: 'lib-nav-modal', standalone: true, imports: [CommonModule, LinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"modal-content\">\n <button (click)=\"closeModal()\" class=\"close-btn\">\u2715</button>\n @if (navItems && navItems.length > 0) {\n <ol>\n @for (item of navItems; track $index) {\n <a [href]=\"item.url\" [linkType]=\"item.linkType\" (click)=\"closeModal()\">\n <li>\n <span class=\"item\">{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n }\n</div>\n", styles: [":root{--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem}:host{position:fixed;inset:0;width:100vw;height:100vh;background:var(--modal-bg);z-index:1000;display:flex;align-items:center;justify-content:center}.close-btn{position:absolute;top:1rem;right:2rem;background:none;border:none;color:var(--close-btn);font-size:1.5rem;font-weight:700;cursor:pointer;z-index:1001}ol{padding:0;margin:0;text-align:center;width:100%;max-width:400px;list-style:none;counter-reset:item}li{cursor:pointer;text-align:start;counter-increment:item}a{text-decoration:none;text-transform:uppercase;color:var(--item-color)}li:before{content:counter(item,decimal-leading-zero) \". \"}.item{font-size:3.5rem}\n"] }]
18
18
  }], propDecorators: { navItems: [{
19
19
  type: Input
20
20
  }], socialItems: [{
@@ -22,4 +22,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
22
22
  }], close: [{
23
23
  type: Output
24
24
  }] } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9uYXYtbW9kYWwvbmF2LW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9uYXYtbW9kYWwvbmF2LW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQVU1RSxNQUFNLE9BQU8saUJBQWlCO0lBUjlCO1FBWVksVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FLNUM7SUFIQyxVQUFVO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDOytHQVJVLGlCQUFpQjttR0FBakIsaUJBQWlCLG9LQ2I5Qiw4YUFjQSw4MUNETlksWUFBWSwrQkFBRSxpQkFBaUI7OzRGQUs5QixpQkFBaUI7a0JBUjdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxtQkFHekIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVpTGliTmF2SXRlbXNJIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy91aS1saWItbmF2LWl0ZW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBMaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1uYXYtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBMaW5rVHlwZURpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXYtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbmF2LW1vZGFsLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5hdk1vZGFsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbmF2SXRlbXM/OiBVaUxpYk5hdkl0ZW1zSVtdO1xuICBASW5wdXQoKSBzb2NpYWxJdGVtcz86IFVpTGliTmF2SXRlbXNJW107XG5cbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNsb3NlTW9kYWwoKSB7XG4gICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gIDxidXR0b24gKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiIGNsYXNzPVwiY2xvc2UtYnRuXCI+4pyVPC9idXR0b24+XG4gIEBpZiAobmF2SXRlbXMgJiYgbmF2SXRlbXMubGVuZ3RoID4gMCkge1xuICAgIDxvbD5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgbmF2SXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8YSBbaHJlZl09XCJpdGVtLnVybFwiIFtsaW5rVHlwZV09XCJpdGVtLmxpbmtUeXBlXCIgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiPlxuICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaXRlbVwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC9hPlxuICAgICAgfVxuICAgIDwvb2w+XG4gIH1cbjwvZGl2PlxuIl19
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9uYXYtbW9kYWwvbmF2LW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9uYXYtbW9kYWwvbmF2LW1vZGFsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQVU1RSxNQUFNLE9BQU8saUJBQWlCO0lBUjlCO1FBWVksVUFBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FLNUM7SUFIQyxVQUFVO1FBQ1IsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDOytHQVJVLGlCQUFpQjttR0FBakIsaUJBQWlCLG9LQ2I5Qiw4YUFjQSxzMEJETlksWUFBWSwrQkFBRSxpQkFBaUI7OzRGQUs5QixpQkFBaUI7a0JBUjdCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxtQkFHekIsdUJBQXVCLENBQUMsTUFBTTs4QkFHdEMsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLEtBQUs7c0JBQWQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVpTGliTmF2SXRlbXNJIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcy91aS1saWItbmF2LWl0ZW1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBMaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1uYXYtbW9kYWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBMaW5rVHlwZURpcmVjdGl2ZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXYtbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbmF2LW1vZGFsLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIE5hdk1vZGFsQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbmF2SXRlbXM/OiBVaUxpYk5hdkl0ZW1zSVtdO1xuICBASW5wdXQoKSBzb2NpYWxJdGVtcz86IFVpTGliTmF2SXRlbXNJW107XG5cbiAgQE91dHB1dCgpIGNsb3NlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGNsb3NlTW9kYWwoKSB7XG4gICAgdGhpcy5jbG9zZS5lbWl0KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtb2RhbC1jb250ZW50XCI+XG4gIDxidXR0b24gKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiIGNsYXNzPVwiY2xvc2UtYnRuXCI+4pyVPC9idXR0b24+XG4gIEBpZiAobmF2SXRlbXMgJiYgbmF2SXRlbXMubGVuZ3RoID4gMCkge1xuICAgIDxvbD5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgbmF2SXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8YSBbaHJlZl09XCJpdGVtLnVybFwiIFtsaW5rVHlwZV09XCJpdGVtLmxpbmtUeXBlXCIgKGNsaWNrKT1cImNsb3NlTW9kYWwoKVwiPlxuICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaXRlbVwiPnt7IGl0ZW0ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgPC9hPlxuICAgICAgfVxuICAgIDwvb2w+XG4gIH1cbjwvZGl2PlxuIl19
@@ -4,11 +4,11 @@ import { LinkTypeDirective } from '../../../directives/link-type.directive';
4
4
  import * as i0 from "@angular/core";
5
5
  export class SectionIntroComponent {
6
6
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionIntroComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
7
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SectionIntroComponent, isStandalone: true, selector: "lib-section-intro", inputs: { pretitle: "pretitle", title: "title", subtitle: "subtitle", text: "text", button: "button" }, ngImport: i0, template: "<div class=\"section-intro\">\n @if(pretitle){\n <h2 class=\"pretitle\">{{pretitle}}</h2>\n }\n @if(title){\n <h1 class=\"title\">{{title}}</h1>\n }\n @if(subtitle){\n <h2 class=\"subtitle\">{{subtitle}}</h2>\n }\n @if(text){\n <p class=\"text\">{{text}}</p>\n }\n @if(button){\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn btn-link\"\n >\n {{button.label}} \n </a>\n }\n</div>\n", styles: [":root{--color-primary: #007bff;--color-secondary: #6c757d;--color-text: #111;--color-bg: #f9f9f9;--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--button-primary-bg: #007bff;--button-primary-text: #f9f9f9;--button-primary-bg-hover: #033468;--button-primary-text-hover: #f9f9f9;--button-secondary-bg: #6c757d;--button-secondary-text: #f9f9f9;--button-secondary-bg-hover: #1c1e20;--button-secondary-text-hover: #f9f9f9;--button-link-text: #111111;--button-link-text-hover: #007bff;--header-clear-bg: #007bff;--header-mobile-bg: #007bff;--modal-bg: #f9f9f9;--close-btn: #111;--item-text: #111}.section-intro{text-align:start;padding:2rem 10rem;align-items:start}@media (max-width: 768px){.section-intro{padding:2rem 4rem}}.title,.subtitle{text-transform:uppercase}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: LinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href"], outputs: ["anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
7
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: SectionIntroComponent, isStandalone: true, selector: "lib-section-intro", inputs: { pretitle: "pretitle", title: "title", subtitle: "subtitle", text: "text", button: "button" }, ngImport: i0, template: "<div class=\"section-intro\">\n @if(pretitle){\n <h2 class=\"pretitle\">{{pretitle}}</h2>\n }\n @if(title){\n <h1 class=\"title\">{{title}}</h1>\n }\n @if(subtitle){\n <h2 class=\"subtitle\">{{subtitle}}</h2>\n }\n @if(text){\n <p class=\"text\">{{text}}</p>\n }\n @if(button){\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn btn-link\"\n >\n {{button.label}} \n </a>\n }\n</div>\n", styles: [":root{--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem}.section-intro{text-align:start;padding:2rem 10rem;align-items:start}@media (max-width: 768px){.section-intro{padding:2rem 4rem}}.title,.subtitle{text-transform:uppercase}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: LinkTypeDirective, selector: "[linkType]", inputs: ["linkType", "href"], outputs: ["anchorClicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8
8
  }
9
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: SectionIntroComponent, decorators: [{
10
10
  type: Component,
11
- args: [{ selector: 'lib-section-intro', standalone: true, imports: [CommonModule, LinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"section-intro\">\n @if(pretitle){\n <h2 class=\"pretitle\">{{pretitle}}</h2>\n }\n @if(title){\n <h1 class=\"title\">{{title}}</h1>\n }\n @if(subtitle){\n <h2 class=\"subtitle\">{{subtitle}}</h2>\n }\n @if(text){\n <p class=\"text\">{{text}}</p>\n }\n @if(button){\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn btn-link\"\n >\n {{button.label}} \n </a>\n }\n</div>\n", styles: [":root{--color-primary: #007bff;--color-secondary: #6c757d;--color-text: #111;--color-bg: #f9f9f9;--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem;--button-primary-bg: #007bff;--button-primary-text: #f9f9f9;--button-primary-bg-hover: #033468;--button-primary-text-hover: #f9f9f9;--button-secondary-bg: #6c757d;--button-secondary-text: #f9f9f9;--button-secondary-bg-hover: #1c1e20;--button-secondary-text-hover: #f9f9f9;--button-link-text: #111111;--button-link-text-hover: #007bff;--header-clear-bg: #007bff;--header-mobile-bg: #007bff;--modal-bg: #f9f9f9;--close-btn: #111;--item-text: #111}.section-intro{text-align:start;padding:2rem 10rem;align-items:start}@media (max-width: 768px){.section-intro{padding:2rem 4rem}}.title,.subtitle{text-transform:uppercase}\n"] }]
11
+ args: [{ selector: 'lib-section-intro', standalone: true, imports: [CommonModule, LinkTypeDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"section-intro\">\n @if(pretitle){\n <h2 class=\"pretitle\">{{pretitle}}</h2>\n }\n @if(title){\n <h1 class=\"title\">{{title}}</h1>\n }\n @if(subtitle){\n <h2 class=\"subtitle\">{{subtitle}}</h2>\n }\n @if(text){\n <p class=\"text\">{{text}}</p>\n }\n @if(button){\n <a\n [href]=\"button.url\"\n [linkType]=\"button.linkType\"\n class=\"btn btn-link\"\n >\n {{button.label}} \n </a>\n }\n</div>\n", styles: [":root{--font-base: \"Inter\", system-ui, sans-serif;--font-size-base: 16px;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 2rem}.section-intro{text-align:start;padding:2rem 10rem;align-items:start}@media (max-width: 768px){.section-intro{padding:2rem 4rem}}.title,.subtitle{text-transform:uppercase}\n"] }]
12
12
  }], propDecorators: { pretitle: [{
13
13
  type: Input
14
14
  }], title: [{
@@ -20,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
20
20
  }], button: [{
21
21
  type: Input
22
22
  }] } });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1pbnRyby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvc2VjdGlvbi1pbnRyby9zZWN0aW9uLWludHJvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9zZWN0aW9uLWludHJvL3NlY3Rpb24taW50cm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQVU1RSxNQUFNLE9BQU8scUJBQXFCOytHQUFyQixxQkFBcUI7bUdBQXJCLHFCQUFxQixxTENibEMsK2NBdUJBLHc1QkRmWSxZQUFZLCtCQUFFLGlCQUFpQjs7NEZBSzlCLHFCQUFxQjtrQkFSakMsU0FBUzsrQkFDRSxtQkFBbUIsY0FDakIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGlCQUFpQixDQUFDLG1CQUd6Qix1QkFBdUIsQ0FBQyxNQUFNOzhCQUd0QyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVpTGliQnV0dG9uSSB9IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgTGlua1R5cGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2xpbmstdHlwZS5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItc2VjdGlvbi1pbnRybycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIExpbmtUeXBlRGlyZWN0aXZlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlY3Rpb24taW50cm8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vc2VjdGlvbi1pbnRyby5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTZWN0aW9uSW50cm9Db21wb25lbnQge1xuICBASW5wdXQoKSBwcmV0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgdGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHN1YnRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0Pzogc3RyaW5nO1xuICBASW5wdXQoKSBidXR0b24/OiBVaUxpYkJ1dHRvbkk7XG59XG4iLCI8ZGl2IGNsYXNzPVwic2VjdGlvbi1pbnRyb1wiPlxuICBAaWYocHJldGl0bGUpe1xuICAgIDxoMiBjbGFzcz1cInByZXRpdGxlXCI+e3twcmV0aXRsZX19PC9oMj5cbiAgfVxuICBAaWYodGl0bGUpe1xuICAgIDxoMSBjbGFzcz1cInRpdGxlXCI+e3t0aXRsZX19PC9oMT5cbiAgfVxuICBAaWYoc3VidGl0bGUpe1xuICAgIDxoMiBjbGFzcz1cInN1YnRpdGxlXCI+e3tzdWJ0aXRsZX19PC9oMj5cbiAgfVxuICBAaWYodGV4dCl7XG4gICAgPHAgY2xhc3M9XCJ0ZXh0XCI+e3t0ZXh0fX08L3A+XG4gIH1cbiAgQGlmKGJ1dHRvbil7XG4gICAgPGFcbiAgICAgIFtocmVmXT1cImJ1dHRvbi51cmxcIlxuICAgICAgW2xpbmtUeXBlXT1cImJ1dHRvbi5saW5rVHlwZVwiXG4gICAgICBjbGFzcz1cImJ0biBidG4tbGlua1wiXG4gICAgPlxuICAgICAge3tidXR0b24ubGFiZWx9fSAgXG4gICAgPC9hPlxuICB9XG48L2Rpdj5cbiJdfQ==
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi1pbnRyby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9jb21wb25lbnRzL2NvcmUvc2VjdGlvbi1pbnRyby9zZWN0aW9uLWludHJvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9zZWN0aW9uLWludHJvL3NlY3Rpb24taW50cm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQVU1RSxNQUFNLE9BQU8scUJBQXFCOytHQUFyQixxQkFBcUI7bUdBQXJCLHFCQUFxQixxTENibEMsK2NBdUJBLGdZRGZZLFlBQVksK0JBQUUsaUJBQWlCOzs0RkFLOUIscUJBQXFCO2tCQVJqQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsbUJBR3pCLHVCQUF1QixDQUFDLE1BQU07OEJBR3RDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVWlMaWJCdXR0b25JIH0gZnJvbSAnLi4vLi4vLi4vaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBMaW5rVHlwZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvbGluay10eXBlLmRpcmVjdGl2ZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1zZWN0aW9uLWludHJvJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTGlua1R5cGVEaXJlY3RpdmVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VjdGlvbi1pbnRyby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9zZWN0aW9uLWludHJvLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNlY3Rpb25JbnRyb0NvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHByZXRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgc3VidGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRleHQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJ1dHRvbj86IFVpTGliQnV0dG9uSTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJzZWN0aW9uLWludHJvXCI+XG4gIEBpZihwcmV0aXRsZSl7XG4gICAgPGgyIGNsYXNzPVwicHJldGl0bGVcIj57e3ByZXRpdGxlfX08L2gyPlxuICB9XG4gIEBpZih0aXRsZSl7XG4gICAgPGgxIGNsYXNzPVwidGl0bGVcIj57e3RpdGxlfX08L2gxPlxuICB9XG4gIEBpZihzdWJ0aXRsZSl7XG4gICAgPGgyIGNsYXNzPVwic3VidGl0bGVcIj57e3N1YnRpdGxlfX08L2gyPlxuICB9XG4gIEBpZih0ZXh0KXtcbiAgICA8cCBjbGFzcz1cInRleHRcIj57e3RleHR9fTwvcD5cbiAgfVxuICBAaWYoYnV0dG9uKXtcbiAgICA8YVxuICAgICAgW2hyZWZdPVwiYnV0dG9uLnVybFwiXG4gICAgICBbbGlua1R5cGVdPVwiYnV0dG9uLmxpbmtUeXBlXCJcbiAgICAgIGNsYXNzPVwiYnRuIGJ0bi1saW5rXCJcbiAgICA+XG4gICAgICB7e2J1dHRvbi5sYWJlbH19ICBcbiAgICA8L2E+XG4gIH1cbjwvZGl2PlxuIl19
@@ -1,3 +1,4 @@
1
1
  export * from './mapper';
2
2
  export * from './screen-sizer';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tYXBwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JlZW4tc2l6ZXInO1xuIl19
3
+ export * from './theme';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGdCQUFnQixDQUFDO0FBQy9CLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9tYXBwZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JlZW4tc2l6ZXInO1xuZXhwb3J0ICogZnJvbSAnLi90aGVtZSc7XG5cbiJdfQ==
@@ -7,9 +7,10 @@ export const mapHeaderClear = (props) => {
7
7
  const navItems = mapNavModalWithLang(props?.['nav-modal']?.navLinks || [], currentLang);
8
8
  return {
9
9
  logo: mapImage(props?.logo),
10
+ logoDark: mapImage(props?.logoDark),
10
11
  lang: currentLang,
11
12
  navItems: navItems,
12
13
  homeLink: navItems[0]
13
14
  };
14
15
  };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNsZWFyLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL3NlcnZpY2VzL21hcHBlci9jb21wb25lbnQtbWFwcGVycy9oZWFkZXItY2xlYXIubWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUd6RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDekQsaUNBQWlDO0lBQ2pDLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDO0lBRXhDLGdFQUFnRTtJQUNoRSxNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRXhGLE9BQU87UUFDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLFdBQVc7UUFDakIsUUFBUSxFQUFFLFFBQVE7UUFDbEIsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7S0FDdEIsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IG1hcEltYWdlIH0gZnJvbSBcIi4uLy4uLy4uL3V0aWxzL3V0aWxzXCI7XG5pbXBvcnQgeyBtYXBOYXZNb2RhbFdpdGhMYW5nIH0gZnJvbSBcIi4vbmF2LW1vZGFsLm1hcHBlclwiO1xuaW1wb3J0IHsgQ29tcG9uZW50TWFwcGVyRm4gfSBmcm9tIFwiLi90eXBlc1wiO1xuXG5leHBvcnQgY29uc3QgbWFwSGVhZGVyQ2xlYXI6IENvbXBvbmVudE1hcHBlckZuID0gKHByb3BzKSA9PiB7XG4gIC8vIE9idGVuZXIgZWwgaWRpb21hIGRlIGxhcyBwcm9wc1xuICBjb25zdCBjdXJyZW50TGFuZyA9IHByb3BzPy5sYW5nIHx8ICdlcyc7XG4gIFxuICAvLyBNYXBlYXIgc29sbyBsb3MgbmF2TGlua3MgZGVsIG5hdi1tb2RhbCBjb24gZWwgaWRpb21hIGNvcnJlY3RvXG4gIGNvbnN0IG5hdkl0ZW1zID0gbWFwTmF2TW9kYWxXaXRoTGFuZyhwcm9wcz8uWyduYXYtbW9kYWwnXT8ubmF2TGlua3MgfHwgW10sIGN1cnJlbnRMYW5nKTtcbiAgXG4gIHJldHVybiB7IFxuICAgIGxvZ286IG1hcEltYWdlKHByb3BzPy5sb2dvKSxcbiAgICBsYW5nOiBjdXJyZW50TGFuZyxcbiAgICBuYXZJdGVtczogbmF2SXRlbXMsXG4gICAgaG9tZUxpbms6IG5hdkl0ZW1zWzBdXG4gIH07XG59OyJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNsZWFyLm1hcHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL3NlcnZpY2VzL21hcHBlci9jb21wb25lbnQtbWFwcGVycy9oZWFkZXItY2xlYXIubWFwcGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUd6RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQXNCLENBQUMsS0FBSyxFQUFFLEVBQUU7SUFDekQsaUNBQWlDO0lBQ2pDLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDO0lBRXhDLGdFQUFnRTtJQUNoRSxNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRXhGLE9BQU87UUFDTCxJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUM7UUFDM0IsUUFBUSxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsUUFBUSxDQUFDO1FBQ25DLElBQUksRUFBRSxXQUFXO1FBQ2pCLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0tBQ3RCLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBtYXBJbWFnZSB9IGZyb20gXCIuLi8uLi8uLi91dGlscy91dGlsc1wiO1xuaW1wb3J0IHsgbWFwTmF2TW9kYWxXaXRoTGFuZyB9IGZyb20gXCIuL25hdi1tb2RhbC5tYXBwZXJcIjtcbmltcG9ydCB7IENvbXBvbmVudE1hcHBlckZuIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuZXhwb3J0IGNvbnN0IG1hcEhlYWRlckNsZWFyOiBDb21wb25lbnRNYXBwZXJGbiA9IChwcm9wcykgPT4ge1xuICAvLyBPYnRlbmVyIGVsIGlkaW9tYSBkZSBsYXMgcHJvcHNcbiAgY29uc3QgY3VycmVudExhbmcgPSBwcm9wcz8ubGFuZyB8fCAnZXMnO1xuICBcbiAgLy8gTWFwZWFyIHNvbG8gbG9zIG5hdkxpbmtzIGRlbCBuYXYtbW9kYWwgY29uIGVsIGlkaW9tYSBjb3JyZWN0b1xuICBjb25zdCBuYXZJdGVtcyA9IG1hcE5hdk1vZGFsV2l0aExhbmcocHJvcHM/LlsnbmF2LW1vZGFsJ10/Lm5hdkxpbmtzIHx8IFtdLCBjdXJyZW50TGFuZyk7XG4gIFxuICByZXR1cm4geyBcbiAgICBsb2dvOiBtYXBJbWFnZShwcm9wcz8ubG9nbyksXG4gICAgbG9nb0Rhcms6IG1hcEltYWdlKHByb3BzPy5sb2dvRGFyayksXG4gICAgbGFuZzogY3VycmVudExhbmcsXG4gICAgbmF2SXRlbXM6IG5hdkl0ZW1zLFxuICAgIGhvbWVMaW5rOiBuYXZJdGVtc1swXVxuICB9O1xufTsiXX0=
@@ -0,0 +1,2 @@
1
+ export * from './theme.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1saWIvc3JjL2xpYi9zZXJ2aWNlcy90aGVtZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi90aGVtZS5zZXJ2aWNlJzsiXX0=
@@ -0,0 +1,73 @@
1
+ import { isPlatformBrowser } from '@angular/common';
2
+ import { Inject, Injectable, PLATFORM_ID } from '@angular/core';
3
+ import { BehaviorSubject } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export class ThemeService {
6
+ constructor(platformId) {
7
+ this.platformId = platformId;
8
+ this.currentThemeSubject = new BehaviorSubject('light');
9
+ this.currentTheme$ = this.currentThemeSubject.asObservable();
10
+ // Aplicar tema por defecto al inicio
11
+ if (isPlatformBrowser(this.platformId)) {
12
+ this.applyTheme('light');
13
+ }
14
+ }
15
+ getCurrentTheme() {
16
+ return this.currentThemeSubject.value;
17
+ }
18
+ setTheme(theme) {
19
+ this.currentThemeSubject.next(theme);
20
+ this.applyTheme(theme);
21
+ // NO guardar automáticamente en localStorage - solo cuando el usuario hace toggle
22
+ }
23
+ toggleTheme() {
24
+ const currentTheme = this.getCurrentTheme();
25
+ const newTheme = currentTheme === 'light' ? 'dark' : 'light';
26
+ // Guardar en localStorage solo cuando el usuario hace toggle
27
+ if (isPlatformBrowser(this.platformId)) {
28
+ localStorage.setItem('theme', newTheme);
29
+ }
30
+ this.setTheme(newTheme);
31
+ }
32
+ resetTheme() {
33
+ if (isPlatformBrowser(this.platformId)) {
34
+ localStorage.removeItem('theme');
35
+ this.currentThemeSubject.next('light');
36
+ this.applyTheme('light');
37
+ }
38
+ }
39
+ // Método para cargar el tema guardado (opcional)
40
+ loadSavedTheme() {
41
+ if (isPlatformBrowser(this.platformId)) {
42
+ const savedTheme = localStorage.getItem('theme');
43
+ if (savedTheme) {
44
+ this.setTheme(savedTheme);
45
+ }
46
+ }
47
+ }
48
+ applyTheme(theme) {
49
+ // Solo aplicar en el navegador
50
+ if (!isPlatformBrowser(this.platformId)) {
51
+ return;
52
+ }
53
+ const root = document.documentElement;
54
+ if (theme === 'dark') {
55
+ root.setAttribute('data-theme', 'dark');
56
+ }
57
+ else {
58
+ root.setAttribute('data-theme', 'light');
59
+ }
60
+ }
61
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ThemeService, deps: [{ token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
62
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ThemeService, providedIn: 'root' }); }
63
+ }
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ThemeService, decorators: [{
65
+ type: Injectable,
66
+ args: [{
67
+ providedIn: 'root'
68
+ }]
69
+ }], ctorParameters: () => [{ type: Object, decorators: [{
70
+ type: Inject,
71
+ args: [PLATFORM_ID]
72
+ }] }] });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWxpYi9zcmMvbGliL3NlcnZpY2VzL3RoZW1lL3RoZW1lLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBT3ZDLE1BQU0sT0FBTyxZQUFZO0lBSXZCLFlBQXlDLFVBQWtCO1FBQWxCLGVBQVUsR0FBVixVQUFVLENBQVE7UUFIbkQsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQVEsT0FBTyxDQUFDLENBQUM7UUFDM0Qsa0JBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7UUFHN0QscUNBQXFDO1FBQ3JDLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVNLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDO0lBQ3hDLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBWTtRQUMxQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsa0ZBQWtGO0lBQ3BGLENBQUM7SUFFTSxXQUFXO1FBQ2hCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM1QyxNQUFNLFFBQVEsR0FBVSxZQUFZLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUVwRSw2REFBNkQ7UUFDN0QsSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRU0sVUFBVTtRQUNmLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDdkMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUM7SUFFRCxpREFBaUQ7SUFDMUMsY0FBYztRQUNuQixJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sVUFBVSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFVLENBQUM7WUFDMUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzVCLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVPLFVBQVUsQ0FBQyxLQUFZO1FBQzdCLCtCQUErQjtRQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7WUFDeEMsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBRXRDLElBQUksS0FBSyxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7K0dBaEVVLFlBQVksa0JBSUgsV0FBVzttSEFKcEIsWUFBWSxjQUZYLE1BQU07OzRGQUVQLFlBQVk7a0JBSHhCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFLYyxNQUFNOzJCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIFBMQVRGT1JNX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgVGhlbWUgPSAnbGlnaHQnIHwgJ2RhcmsnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBUaGVtZVNlcnZpY2Uge1xuICBwcml2YXRlIGN1cnJlbnRUaGVtZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFRoZW1lPignbGlnaHQnKTtcbiAgcHVibGljIGN1cnJlbnRUaGVtZSQgPSB0aGlzLmN1cnJlbnRUaGVtZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBPYmplY3QpIHtcbiAgICAvLyBBcGxpY2FyIHRlbWEgcG9yIGRlZmVjdG8gYWwgaW5pY2lvXG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgIHRoaXMuYXBwbHlUaGVtZSgnbGlnaHQnKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudFRoZW1lKCk6IFRoZW1lIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VGhlbWVTdWJqZWN0LnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldFRoZW1lKHRoZW1lOiBUaGVtZSk6IHZvaWQge1xuICAgIHRoaXMuY3VycmVudFRoZW1lU3ViamVjdC5uZXh0KHRoZW1lKTtcbiAgICB0aGlzLmFwcGx5VGhlbWUodGhlbWUpO1xuICAgIC8vIE5PIGd1YXJkYXIgYXV0b23DoXRpY2FtZW50ZSBlbiBsb2NhbFN0b3JhZ2UgLSBzb2xvIGN1YW5kbyBlbCB1c3VhcmlvIGhhY2UgdG9nZ2xlXG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlVGhlbWUoKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFRoZW1lID0gdGhpcy5nZXRDdXJyZW50VGhlbWUoKTtcbiAgICBjb25zdCBuZXdUaGVtZTogVGhlbWUgPSBjdXJyZW50VGhlbWUgPT09ICdsaWdodCcgPyAnZGFyaycgOiAnbGlnaHQnO1xuICAgIFxuICAgIC8vIEd1YXJkYXIgZW4gbG9jYWxTdG9yYWdlIHNvbG8gY3VhbmRvIGVsIHVzdWFyaW8gaGFjZSB0b2dnbGVcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3RoZW1lJywgbmV3VGhlbWUpO1xuICAgIH1cbiAgICBcbiAgICB0aGlzLnNldFRoZW1lKG5ld1RoZW1lKTtcbiAgfVxuXG4gIHB1YmxpYyByZXNldFRoZW1lKCk6IHZvaWQge1xuICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSgndGhlbWUnKTtcbiAgICAgIHRoaXMuY3VycmVudFRoZW1lU3ViamVjdC5uZXh0KCdsaWdodCcpO1xuICAgICAgdGhpcy5hcHBseVRoZW1lKCdsaWdodCcpO1xuICAgIH1cbiAgfVxuXG4gIC8vIE3DqXRvZG8gcGFyYSBjYXJnYXIgZWwgdGVtYSBndWFyZGFkbyAob3BjaW9uYWwpXG4gIHB1YmxpYyBsb2FkU2F2ZWRUaGVtZSgpOiB2b2lkIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgY29uc3Qgc2F2ZWRUaGVtZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCd0aGVtZScpIGFzIFRoZW1lO1xuICAgICAgaWYgKHNhdmVkVGhlbWUpIHtcbiAgICAgICAgdGhpcy5zZXRUaGVtZShzYXZlZFRoZW1lKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5VGhlbWUodGhlbWU6IFRoZW1lKTogdm9pZCB7XG4gICAgLy8gU29sbyBhcGxpY2FyIGVuIGVsIG5hdmVnYWRvclxuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJvb3QgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG4gICAgXG4gICAgaWYgKHRoZW1lID09PSAnZGFyaycpIHtcbiAgICAgIHJvb3Quc2V0QXR0cmlidXRlKCdkYXRhLXRoZW1lJywgJ2RhcmsnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcm9vdC5zZXRBdHRyaWJ1dGUoJ2RhdGEtdGhlbWUnLCAnbGlnaHQnKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==