@lluc_llull/ui-lib 0.33.3 → 0.33.4
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.
|
@@ -46,11 +46,11 @@ class HeaderClearComponent {
|
|
|
46
46
|
this.isMenuOpen = !this.isMenuOpen;
|
|
47
47
|
}
|
|
48
48
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: HeaderClearComponent, deps: [{ token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
49
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: HeaderClearComponent, isStandalone: true, selector: "lib-header-clear", inputs: { logo: "logo", logoDark: "logoDark", navItems: "navItems", socialItems: "socialItems", homeLink: "homeLink", navigation: "navigation", lang: "lang" }, outputs: { langModal: "langModal", theme: "theme" }, usesOnChanges: true, ngImport: i0, template: "<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de men\u00FA -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (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 [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n", styles: [".header-clear{border-radius:0;position:sticky;top:0;z-index:100;padding-block:0;margin-top:1rem;transition:background .3s ease,box-shadow .3s ease;background:var(--header-bg)}.header-clear.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014}.header-clear.is-scrolled .header-logo a{padding-inline:1.5rem}.header-clear.is-scrolled .header-logo span{color:var(--header-logo-text-dark)}.header-clear.is-scrolled .header-actions{padding-inline:1.5rem}.header-clear.is-scrolled .header-actions .btn-header{background:var(--header-bg-fixed-light)}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:80px;height:80px;object-fit:contain;object-position:left}.header-logo span{display:flex}.header-actions{display:flex;align-items:center;justify-content:flex-end;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"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "color"] }, { kind: "directive", type: HeaderScrollDirective, selector: "[headerScroll]", inputs: ["scrollThreshold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
49
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: HeaderClearComponent, isStandalone: true, selector: "lib-header-clear", inputs: { logo: "logo", logoDark: "logoDark", navItems: "navItems", socialItems: "socialItems", homeLink: "homeLink", navigation: "navigation", lang: "lang" }, outputs: { langModal: "langModal", theme: "theme" }, usesOnChanges: true, ngImport: i0, template: "<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de men\u00FA -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (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 [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n", styles: [".header-clear{border-radius:0;position:sticky;top:0;z-index:100;padding-block:0;margin-top:1rem;transition:background .3s ease,box-shadow .3s ease;background:var(--header-bg)}.header-clear.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014}.header-clear.is-scrolled .header-logo a{padding-inline:1.5rem}.header-clear.is-scrolled .header-logo span{color:var(--header-logo-text-dark)}.header-clear.is-scrolled .header-actions{padding-inline:1.5rem}.header-clear.is-scrolled .header-actions .btn-header{background:var(--header-bg-fixed-light)}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:80px;height:80px;object-fit:contain;object-position:left}.header-logo span{display:flex;min-width:10rem}.header-actions{display:flex;align-items:center;justify-content:flex-end;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"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "color"] }, { kind: "directive", type: HeaderScrollDirective, selector: "[headerScroll]", inputs: ["scrollThreshold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
50
50
|
}
|
|
51
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: HeaderClearComponent, decorators: [{
|
|
52
52
|
type: Component,
|
|
53
|
-
args: [{ selector: 'lib-header-clear', standalone: true, imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective, UiIconComponent, HeaderScrollDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de men\u00FA -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (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 [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n", styles: [".header-clear{border-radius:0;position:sticky;top:0;z-index:100;padding-block:0;margin-top:1rem;transition:background .3s ease,box-shadow .3s ease;background:var(--header-bg)}.header-clear.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014}.header-clear.is-scrolled .header-logo a{padding-inline:1.5rem}.header-clear.is-scrolled .header-logo span{color:var(--header-logo-text-dark)}.header-clear.is-scrolled .header-actions{padding-inline:1.5rem}.header-clear.is-scrolled .header-actions .btn-header{background:var(--header-bg-fixed-light)}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:80px;height:80px;object-fit:contain;object-position:left}.header-logo span{display:flex}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:1rem}.lang{text-transform:uppercase}\n"] }]
|
|
53
|
+
args: [{ selector: 'lib-header-clear', standalone: true, imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective, UiIconComponent, HeaderScrollDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de men\u00FA -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (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 [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n", styles: [".header-clear{border-radius:0;position:sticky;top:0;z-index:100;padding-block:0;margin-top:1rem;transition:background .3s ease,box-shadow .3s ease;background:var(--header-bg)}.header-clear.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014}.header-clear.is-scrolled .header-logo a{padding-inline:1.5rem}.header-clear.is-scrolled .header-logo span{color:var(--header-logo-text-dark)}.header-clear.is-scrolled .header-actions{padding-inline:1.5rem}.header-clear.is-scrolled .header-actions .btn-header{background:var(--header-bg-fixed-light)}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:80px;height:80px;object-fit:contain;object-position:left}.header-logo span{display:flex;min-width:10rem}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:1rem}.lang{text-transform:uppercase}\n"] }]
|
|
54
54
|
}], ctorParameters: () => [{ type: i1.ThemeService }], propDecorators: { logo: [{
|
|
55
55
|
type: Input
|
|
56
56
|
}], logoDark: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lluc_llull-ui-lib-headers-header-clear.mjs","sources":["../../../projects/ui-lib/headers/header-clear/header-clear.component.ts","../../../projects/ui-lib/headers/header-clear/header-clear.component.html","../../../projects/ui-lib/headers/header-clear/lluc_llull-ui-lib-headers-header-clear.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { HeaderScrollDirective, LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport {\n UiLibButtonI,\n UiLibImageI,\n UiLibNavItemsI,\n UiLibSocialItemsI,\n} from '@lluc_llull/ui-lib/interfaces';\nimport { Theme, ThemeService } from '@lluc_llull/ui-lib/theme';\nimport { Subscription } from 'rxjs';\nimport { mapNavModal } from '@lluc_llull/ui-lib/mapper';\nimport { LangModalComponent, NavModalComponent } from '@lluc_llull/ui-lib/modals';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-header-clear',\n standalone: true,\n imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective, UiIconComponent, HeaderScrollDirective],\n templateUrl: './header-clear.component.html',\n styleUrl: './header-clear.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderClearComponent implements OnInit, OnDestroy, OnChanges {\n isMenuOpen = false;\n currentTheme: Theme = 'light';\n private themeSubscription?: Subscription;\n\n @Input() logo?: UiLibImageI;\n @Input() logoDark?: UiLibImageI;\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() homeLink?: UiLibButtonI;\n @Input() navigation: any;\n @Input() lang: string = 'es';\n\n @Output() langModal = new EventEmitter<void>();\n @Output() theme = new EventEmitter<void>();\n\n constructor(private themeService: ThemeService) {}\n\n ngOnInit(): void {\n this.themeSubscription = this.themeService.currentTheme$.subscribe((theme) => {\n this.currentTheme = theme;\n });\n }\n\n ngOnChanges() {\n this.navItems = mapNavModal(this.navigation, this.lang);\n }\n\n ngOnDestroy(): void {\n this.themeSubscription?.unsubscribe();\n }\n\n openLanguagesModal(): void {\n this.langModal.emit();\n }\n\n toggleTheme(): void {\n this.themeService.toggleTheme();\n this.theme.emit();\n }\n\n toggleMenu(): void {\n this.isMenuOpen = !this.isMenuOpen;\n }\n}\n","<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de menú -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</header>\n\n@if (isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;MAgCa,oBAAoB,CAAA;AAgBT,IAAA,YAAA;IAfpB,UAAU,GAAG,KAAK;IAClB,YAAY,GAAU,OAAO;AACrB,IAAA,iBAAiB;AAEhB,IAAA,IAAI;AACJ,IAAA,QAAQ;AACR,IAAA,QAAQ;AACR,IAAA,WAAW;AACX,IAAA,QAAQ;AACR,IAAA,UAAU;IACV,IAAI,GAAW,IAAI;AAElB,IAAA,SAAS,GAAG,IAAI,YAAY,EAAQ;AACpC,IAAA,KAAK,GAAG,IAAI,YAAY,EAAQ;AAE1C,IAAA,WAAA,CAAoB,YAA0B,EAAA;QAA1B,IAAA,CAAA,YAAY,GAAZ,YAAY;IAAiB;IAEjD,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACzE,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK;AAC7B,QAAA,CAAC,CAAC;IACN;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC;IAC3D;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,iBAAiB,EAAE,WAAW,EAAE;IACzC;IAEA,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE;IACzB;IAEA,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;IACrB;IAEA,UAAU,GAAA;AACN,QAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU;IACtC;wGA3CS,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;4FAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCjC,g5CAyCA,EAAA,MAAA,EAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"lluc_llull-ui-lib-headers-header-clear.mjs","sources":["../../../projects/ui-lib/headers/header-clear/header-clear.component.ts","../../../projects/ui-lib/headers/header-clear/header-clear.component.html","../../../projects/ui-lib/headers/header-clear/lluc_llull-ui-lib-headers-header-clear.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { HeaderScrollDirective, LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport {\n UiLibButtonI,\n UiLibImageI,\n UiLibNavItemsI,\n UiLibSocialItemsI,\n} from '@lluc_llull/ui-lib/interfaces';\nimport { Theme, ThemeService } from '@lluc_llull/ui-lib/theme';\nimport { Subscription } from 'rxjs';\nimport { mapNavModal } from '@lluc_llull/ui-lib/mapper';\nimport { LangModalComponent, NavModalComponent } from '@lluc_llull/ui-lib/modals';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-header-clear',\n standalone: true,\n imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective, UiIconComponent, HeaderScrollDirective],\n templateUrl: './header-clear.component.html',\n styleUrl: './header-clear.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderClearComponent implements OnInit, OnDestroy, OnChanges {\n isMenuOpen = false;\n currentTheme: Theme = 'light';\n private themeSubscription?: Subscription;\n\n @Input() logo?: UiLibImageI;\n @Input() logoDark?: UiLibImageI;\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() homeLink?: UiLibButtonI;\n @Input() navigation: any;\n @Input() lang: string = 'es';\n\n @Output() langModal = new EventEmitter<void>();\n @Output() theme = new EventEmitter<void>();\n\n constructor(private themeService: ThemeService) {}\n\n ngOnInit(): void {\n this.themeSubscription = this.themeService.currentTheme$.subscribe((theme) => {\n this.currentTheme = theme;\n });\n }\n\n ngOnChanges() {\n this.navItems = mapNavModal(this.navigation, this.lang);\n }\n\n ngOnDestroy(): void {\n this.themeSubscription?.unsubscribe();\n }\n\n openLanguagesModal(): void {\n this.langModal.emit();\n }\n\n toggleTheme(): void {\n this.themeService.toggleTheme();\n this.theme.emit();\n }\n\n toggleMenu(): void {\n this.isMenuOpen = !this.isMenuOpen;\n }\n}\n","<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de menú -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</header>\n\n@if (isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -46,11 +46,11 @@ class HeaderClearComponent {
|
|
|
46
46
|
this.isMenuOpen = !this.isMenuOpen;
|
|
47
47
|
}
|
|
48
48
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: HeaderClearComponent, deps: [{ token: i1.ThemeService }], target: i0.ɵɵFactoryTarget.Component });
|
|
49
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: HeaderClearComponent, isStandalone: true, selector: "lib-header-clear", inputs: { logo: "logo", logoDark: "logoDark", navItems: "navItems", socialItems: "socialItems", homeLink: "homeLink", navigation: "navigation", lang: "lang" }, outputs: { langModal: "langModal", theme: "theme" }, usesOnChanges: true, ngImport: i0, template: "<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de men\u00FA -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (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 [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n", styles: [".header-clear{border-radius:0;position:sticky;top:0;z-index:100;padding-block:0;margin-top:1rem;transition:background .3s ease,box-shadow .3s ease;background:var(--header-bg)}.header-clear.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014}.header-clear.is-scrolled .header-logo a{padding-inline:1.5rem}.header-clear.is-scrolled .header-logo span{color:var(--header-logo-text-dark)}.header-clear.is-scrolled .header-actions{padding-inline:1.5rem}.header-clear.is-scrolled .header-actions .btn-header{background:var(--header-bg-fixed-light)}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:80px;height:80px;object-fit:contain;object-position:left}.header-logo span{display:flex}.header-actions{display:flex;align-items:center;justify-content:flex-end;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"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "color"] }, { kind: "directive", type: HeaderScrollDirective, selector: "[headerScroll]", inputs: ["scrollThreshold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
49
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.25", type: HeaderClearComponent, isStandalone: true, selector: "lib-header-clear", inputs: { logo: "logo", logoDark: "logoDark", navItems: "navItems", socialItems: "socialItems", homeLink: "homeLink", navigation: "navigation", lang: "lang" }, outputs: { langModal: "langModal", theme: "theme" }, usesOnChanges: true, ngImport: i0, template: "<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de men\u00FA -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (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 [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n", styles: [".header-clear{border-radius:0;position:sticky;top:0;z-index:100;padding-block:0;margin-top:1rem;transition:background .3s ease,box-shadow .3s ease;background:var(--header-bg)}.header-clear.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014}.header-clear.is-scrolled .header-logo a{padding-inline:1.5rem}.header-clear.is-scrolled .header-logo span{color:var(--header-logo-text-dark)}.header-clear.is-scrolled .header-actions{padding-inline:1.5rem}.header-clear.is-scrolled .header-actions .btn-header{background:var(--header-bg-fixed-light)}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:80px;height:80px;object-fit:contain;object-position:left}.header-logo span{display:flex;min-width:10rem}.header-actions{display:flex;align-items:center;justify-content:flex-end;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"] }, { kind: "component", type: UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "color"] }, { kind: "directive", type: HeaderScrollDirective, selector: "[headerScroll]", inputs: ["scrollThreshold"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
50
50
|
}
|
|
51
51
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.25", ngImport: i0, type: HeaderClearComponent, decorators: [{
|
|
52
52
|
type: Component,
|
|
53
|
-
args: [{ selector: 'lib-header-clear', standalone: true, imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective, UiIconComponent, HeaderScrollDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de men\u00FA -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (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 [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n", styles: [".header-clear{border-radius:0;position:sticky;top:0;z-index:100;padding-block:0;margin-top:1rem;transition:background .3s ease,box-shadow .3s ease;background:var(--header-bg)}.header-clear.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014}.header-clear.is-scrolled .header-logo a{padding-inline:1.5rem}.header-clear.is-scrolled .header-logo span{color:var(--header-logo-text-dark)}.header-clear.is-scrolled .header-actions{padding-inline:1.5rem}.header-clear.is-scrolled .header-actions .btn-header{background:var(--header-bg-fixed-light)}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:80px;height:80px;object-fit:contain;object-position:left}.header-logo span{display:flex}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:1rem}.lang{text-transform:uppercase}\n"] }]
|
|
53
|
+
args: [{ selector: 'lib-header-clear', standalone: true, imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective, UiIconComponent, HeaderScrollDirective], changeDetection: ChangeDetectionStrategy.OnPush, template: "<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de men\u00FA -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (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 [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n", styles: [".header-clear{border-radius:0;position:sticky;top:0;z-index:100;padding-block:0;margin-top:1rem;transition:background .3s ease,box-shadow .3s ease;background:var(--header-bg)}.header-clear.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014}.header-clear.is-scrolled .header-logo a{padding-inline:1.5rem}.header-clear.is-scrolled .header-logo span{color:var(--header-logo-text-dark)}.header-clear.is-scrolled .header-actions{padding-inline:1.5rem}.header-clear.is-scrolled .header-actions .btn-header{background:var(--header-bg-fixed-light)}.header-logo{display:flex;align-items:center;gap:.5rem;color:var(--header-logo-text)}.header-logo img{width:80px;height:80px;object-fit:contain;object-position:left}.header-logo span{display:flex;min-width:10rem}.header-actions{display:flex;align-items:center;justify-content:flex-end;gap:1rem}.lang{text-transform:uppercase}\n"] }]
|
|
54
54
|
}], ctorParameters: () => [{ type: i1.ThemeService }], propDecorators: { logo: [{
|
|
55
55
|
type: Input
|
|
56
56
|
}], logoDark: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lluc_llull-ui-lib-headers.mjs","sources":["../../../projects/ui-lib/headers/header-clear/header-clear.component.ts","../../../projects/ui-lib/headers/header-clear/header-clear.component.html","../../../projects/ui-lib/headers/header-mobile/header-mobile.component.ts","../../../projects/ui-lib/headers/header-mobile/header-mobile.component.html","../../../projects/ui-lib/headers/lluc_llull-ui-lib-headers.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { HeaderScrollDirective, LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport {\n UiLibButtonI,\n UiLibImageI,\n UiLibNavItemsI,\n UiLibSocialItemsI,\n} from '@lluc_llull/ui-lib/interfaces';\nimport { Theme, ThemeService } from '@lluc_llull/ui-lib/theme';\nimport { Subscription } from 'rxjs';\nimport { mapNavModal } from '@lluc_llull/ui-lib/mapper';\nimport { LangModalComponent, NavModalComponent } from '@lluc_llull/ui-lib/modals';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-header-clear',\n standalone: true,\n imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective, UiIconComponent, HeaderScrollDirective],\n templateUrl: './header-clear.component.html',\n styleUrl: './header-clear.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderClearComponent implements OnInit, OnDestroy, OnChanges {\n isMenuOpen = false;\n currentTheme: Theme = 'light';\n private themeSubscription?: Subscription;\n\n @Input() logo?: UiLibImageI;\n @Input() logoDark?: UiLibImageI;\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() homeLink?: UiLibButtonI;\n @Input() navigation: any;\n @Input() lang: string = 'es';\n\n @Output() langModal = new EventEmitter<void>();\n @Output() theme = new EventEmitter<void>();\n\n constructor(private themeService: ThemeService) {}\n\n ngOnInit(): void {\n this.themeSubscription = this.themeService.currentTheme$.subscribe((theme) => {\n this.currentTheme = theme;\n });\n }\n\n ngOnChanges() {\n this.navItems = mapNavModal(this.navigation, this.lang);\n }\n\n ngOnDestroy(): void {\n this.themeSubscription?.unsubscribe();\n }\n\n openLanguagesModal(): void {\n this.langModal.emit();\n }\n\n toggleTheme(): void {\n this.themeService.toggleTheme();\n this.theme.emit();\n }\n\n toggleMenu(): void {\n this.isMenuOpen = !this.isMenuOpen;\n }\n}\n","<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de menú -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</header>\n\n@if (isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport {\n UiLibButtonI,\n UiLibImageI,\n UiLibNavItemsI,\n UiLibSocialItemsI,\n} from '@lluc_llull/ui-lib/interfaces';\nimport { Theme, ThemeService } from '@lluc_llull/ui-lib/theme';\nimport { Subscription } from 'rxjs';\nimport { mapNavModal } from '@lluc_llull/ui-lib/mapper';\nimport { LangModalComponent, NavModalComponent } from '@lluc_llull/ui-lib/modals';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-header-mobile',\n standalone: true,\n imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective, UiIconComponent],\n templateUrl: './header-mobile.component.html',\n styleUrl: './header-mobile.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderMobileComponent implements OnInit, OnChanges, OnDestroy {\n isMenuOpen = false;\n currentTheme: Theme = 'light';\n private themeSubscription?: Subscription;\n\n @Input() logo?: UiLibImageI;\n @Input() logoDark?: UiLibImageI;\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() homeLink?: UiLibButtonI;\n @Input() navigation: any;\n @Input() lang: string = 'es';\n\n @Output() langModal = new EventEmitter<void>();\n @Output() theme = new EventEmitter<void>();\n\n constructor(private themeService: ThemeService) {}\n\n ngOnInit(): void {\n this.themeSubscription = this.themeService.currentTheme$.subscribe((theme) => {\n this.currentTheme = theme;\n });\n }\n\n ngOnChanges() {\n this.navItems = mapNavModal(this.navigation, this.lang);\n }\n\n ngOnDestroy(): void {\n this.themeSubscription?.unsubscribe();\n }\n\n openLanguagesModal(): void {\n this.langModal.emit();\n }\n\n toggleTheme(): void {\n this.themeService.toggleTheme();\n this.theme.emit();\n }\n\n toggleMenu(): void {\n this.isMenuOpen = !this.isMenuOpen;\n }\n}\n","<header class=\"header-mobile\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n </div>\n </a>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-header\" (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-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'moon' : 'sun'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n </div>\n\n <!-- Icono de menú -->\n <div class=\"right\">\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</div>\n\n@if (isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lluc_llull-ui-lib-headers.mjs","sources":["../../../projects/ui-lib/headers/header-clear/header-clear.component.ts","../../../projects/ui-lib/headers/header-clear/header-clear.component.html","../../../projects/ui-lib/headers/header-mobile/header-mobile.component.ts","../../../projects/ui-lib/headers/header-mobile/header-mobile.component.html","../../../projects/ui-lib/headers/lluc_llull-ui-lib-headers.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { HeaderScrollDirective, LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport {\n UiLibButtonI,\n UiLibImageI,\n UiLibNavItemsI,\n UiLibSocialItemsI,\n} from '@lluc_llull/ui-lib/interfaces';\nimport { Theme, ThemeService } from '@lluc_llull/ui-lib/theme';\nimport { Subscription } from 'rxjs';\nimport { mapNavModal } from '@lluc_llull/ui-lib/mapper';\nimport { LangModalComponent, NavModalComponent } from '@lluc_llull/ui-lib/modals';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-header-clear',\n standalone: true,\n imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective, UiIconComponent, HeaderScrollDirective],\n templateUrl: './header-clear.component.html',\n styleUrl: './header-clear.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderClearComponent implements OnInit, OnDestroy, OnChanges {\n isMenuOpen = false;\n currentTheme: Theme = 'light';\n private themeSubscription?: Subscription;\n\n @Input() logo?: UiLibImageI;\n @Input() logoDark?: UiLibImageI;\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() homeLink?: UiLibButtonI;\n @Input() navigation: any;\n @Input() lang: string = 'es';\n\n @Output() langModal = new EventEmitter<void>();\n @Output() theme = new EventEmitter<void>();\n\n constructor(private themeService: ThemeService) {}\n\n ngOnInit(): void {\n this.themeSubscription = this.themeService.currentTheme$.subscribe((theme) => {\n this.currentTheme = theme;\n });\n }\n\n ngOnChanges() {\n this.navItems = mapNavModal(this.navigation, this.lang);\n }\n\n ngOnDestroy(): void {\n this.themeSubscription?.unsubscribe();\n }\n\n openLanguagesModal(): void {\n this.langModal.emit();\n }\n\n toggleTheme(): void {\n this.themeService.toggleTheme();\n this.theme.emit();\n }\n\n toggleMenu(): void {\n this.isMenuOpen = !this.isMenuOpen;\n }\n}\n","<header class=\"header-clear main-grid col-span-full sm:col-span-12 sm:col-start-1\" headerScroll [scrollThreshold]=\"60\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo col-span-full sm:col-span-4 sm:col-start-1\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n <span>LLUC LLULL</span>\n </div>\n </a>\n\n <div class=\"header-actions col-span-full sm:col-span-6 sm:col-start-7\">\n <!-- Idioma -->\n <button class=\"btn btn-header\" (click)=\"openLanguagesModal()\">\n <span class=\"lang\">{{ lang }}</span>\n </button>\n\n <!-- Icono de tema -->\n <button class=\"btn btn-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'sun' : 'moon'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n\n <!-- Icono de menú -->\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</header>\n\n@if (isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n} from '@angular/core';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport {\n UiLibButtonI,\n UiLibImageI,\n UiLibNavItemsI,\n UiLibSocialItemsI,\n} from '@lluc_llull/ui-lib/interfaces';\nimport { Theme, ThemeService } from '@lluc_llull/ui-lib/theme';\nimport { Subscription } from 'rxjs';\nimport { mapNavModal } from '@lluc_llull/ui-lib/mapper';\nimport { LangModalComponent, NavModalComponent } from '@lluc_llull/ui-lib/modals';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-header-mobile',\n standalone: true,\n imports: [CommonModule, LangModalComponent, NavModalComponent, LinkTypeDirective, UiIconComponent],\n templateUrl: './header-mobile.component.html',\n styleUrl: './header-mobile.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeaderMobileComponent implements OnInit, OnChanges, OnDestroy {\n isMenuOpen = false;\n currentTheme: Theme = 'light';\n private themeSubscription?: Subscription;\n\n @Input() logo?: UiLibImageI;\n @Input() logoDark?: UiLibImageI;\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() homeLink?: UiLibButtonI;\n @Input() navigation: any;\n @Input() lang: string = 'es';\n\n @Output() langModal = new EventEmitter<void>();\n @Output() theme = new EventEmitter<void>();\n\n constructor(private themeService: ThemeService) {}\n\n ngOnInit(): void {\n this.themeSubscription = this.themeService.currentTheme$.subscribe((theme) => {\n this.currentTheme = theme;\n });\n }\n\n ngOnChanges() {\n this.navItems = mapNavModal(this.navigation, this.lang);\n }\n\n ngOnDestroy(): void {\n this.themeSubscription?.unsubscribe();\n }\n\n openLanguagesModal(): void {\n this.langModal.emit();\n }\n\n toggleTheme(): void {\n this.themeService.toggleTheme();\n this.theme.emit();\n }\n\n toggleMenu(): void {\n this.isMenuOpen = !this.isMenuOpen;\n }\n}\n","<header class=\"header-mobile\">\n <a [href]=\"homeLink?.url\" [linkType]=\"homeLink?.linkType\">\n <div class=\"header-logo\">\n <!-- Logo -->\n <img\n [src]=\"currentTheme === 'dark' ? logoDark?.url : logo?.url\"\n [alt]=\"currentTheme === 'dark' ? logoDark?.alt : logo?.alt\"\n />\n </div>\n </a>\n</header>\n\n<div class=\"header-actions\">\n <!-- Idioma -->\n <div class=\"left\">\n <button class=\"btn btn-header\" (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-header\" aria-label=\"Toggle theme\" (click)=\"toggleTheme()\">\n <ui-icon\n [name]=\"currentTheme === 'dark' ? 'moon' : 'sun'\"\n [size]=\"17\"\n [color]=\"'var(--color-primary)'\"\n ></ui-icon>\n </button>\n </div>\n\n <!-- Icono de menú -->\n <div class=\"right\">\n <button class=\"btn btn-header\" aria-label=\"Open nav\" (click)=\"toggleMenu()\">\n <span>☰</span>\n </button>\n </div>\n</div>\n\n@if (isMenuOpen && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n (close)=\"isMenuOpen = false\"\n ></lib-nav-modal>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lluc_llull/ui-lib",
|
|
3
|
-
"version": "0.33.
|
|
3
|
+
"version": "0.33.4",
|
|
4
4
|
"description": "Angular UI component library",
|
|
5
5
|
"author": "lluc_llull",
|
|
6
6
|
"license": "MIT",
|
|
@@ -63,14 +63,14 @@
|
|
|
63
63
|
"types": "./feedback/index.d.ts",
|
|
64
64
|
"default": "./fesm2022/lluc_llull-ui-lib-feedback.mjs"
|
|
65
65
|
},
|
|
66
|
-
"./footers": {
|
|
67
|
-
"types": "./footers/index.d.ts",
|
|
68
|
-
"default": "./fesm2022/lluc_llull-ui-lib-footers.mjs"
|
|
69
|
-
},
|
|
70
66
|
"./headers": {
|
|
71
67
|
"types": "./headers/index.d.ts",
|
|
72
68
|
"default": "./fesm2022/lluc_llull-ui-lib-headers.mjs"
|
|
73
69
|
},
|
|
70
|
+
"./footers": {
|
|
71
|
+
"types": "./footers/index.d.ts",
|
|
72
|
+
"default": "./fesm2022/lluc_llull-ui-lib-footers.mjs"
|
|
73
|
+
},
|
|
74
74
|
"./interfaces": {
|
|
75
75
|
"types": "./interfaces/index.d.ts",
|
|
76
76
|
"default": "./fesm2022/lluc_llull-ui-lib-interfaces.mjs"
|
|
@@ -163,6 +163,14 @@
|
|
|
163
163
|
"types": "./feedback/404/index.d.ts",
|
|
164
164
|
"default": "./fesm2022/lluc_llull-ui-lib-feedback-404.mjs"
|
|
165
165
|
},
|
|
166
|
+
"./headers/header-clear": {
|
|
167
|
+
"types": "./headers/header-clear/index.d.ts",
|
|
168
|
+
"default": "./fesm2022/lluc_llull-ui-lib-headers-header-clear.mjs"
|
|
169
|
+
},
|
|
170
|
+
"./headers/header-mobile": {
|
|
171
|
+
"types": "./headers/header-mobile/index.d.ts",
|
|
172
|
+
"default": "./fesm2022/lluc_llull-ui-lib-headers-header-mobile.mjs"
|
|
173
|
+
},
|
|
166
174
|
"./footers/columns-footer": {
|
|
167
175
|
"types": "./footers/columns-footer/index.d.ts",
|
|
168
176
|
"default": "./fesm2022/lluc_llull-ui-lib-footers-columns-footer.mjs"
|
|
@@ -182,14 +190,6 @@
|
|
|
182
190
|
"./footers/visual-footer": {
|
|
183
191
|
"types": "./footers/visual-footer/index.d.ts",
|
|
184
192
|
"default": "./fesm2022/lluc_llull-ui-lib-footers-visual-footer.mjs"
|
|
185
|
-
},
|
|
186
|
-
"./headers/header-clear": {
|
|
187
|
-
"types": "./headers/header-clear/index.d.ts",
|
|
188
|
-
"default": "./fesm2022/lluc_llull-ui-lib-headers-header-clear.mjs"
|
|
189
|
-
},
|
|
190
|
-
"./headers/header-mobile": {
|
|
191
|
-
"types": "./headers/header-mobile/index.d.ts",
|
|
192
|
-
"default": "./fesm2022/lluc_llull-ui-lib-headers-header-mobile.mjs"
|
|
193
193
|
}
|
|
194
194
|
}
|
|
195
195
|
}
|