@lluc_llull/ui-lib 0.34.2 → 0.35.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.
- package/fesm2022/lluc_llull-ui-lib-content-asymmetric-media.mjs +10 -3
- package/fesm2022/lluc_llull-ui-lib-content-asymmetric-media.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-category-progress.mjs +18 -5
- package/fesm2022/lluc_llull-ui-lib-content-category-progress.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-columns-media-stacked.mjs +10 -3
- package/fesm2022/lluc_llull-ui-lib-content-columns-media-stacked.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-contact-minimal.mjs +18 -5
- package/fesm2022/lluc_llull-ui-lib-content-contact-minimal.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-hero-section.mjs +6 -13
- package/fesm2022/lluc_llull-ui-lib-content-hero-section.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-media-intro.mjs +10 -3
- package/fesm2022/lluc_llull-ui-lib-content-media-intro.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-media-split.mjs +34 -21
- package/fesm2022/lluc_llull-ui-lib-content-media-split.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-mosaic-grid.mjs +10 -3
- package/fesm2022/lluc_llull-ui-lib-content-mosaic-grid.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-section-intro.mjs +8 -1
- package/fesm2022/lluc_llull-ui-lib-content-section-intro.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-split-previewer.mjs +20 -7
- package/fesm2022/lluc_llull-ui-lib-content-split-previewer.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-split-showcase.mjs +12 -5
- package/fesm2022/lluc_llull-ui-lib-content-split-showcase.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content-stacked-rows.mjs +18 -5
- package/fesm2022/lluc_llull-ui-lib-content-stacked-rows.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-content.mjs +172 -74
- package/fesm2022/lluc_llull-ui-lib-content.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-directives.mjs +230 -11
- package/fesm2022/lluc_llull-ui-lib-directives.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-feedback-404.mjs +10 -4
- package/fesm2022/lluc_llull-ui-lib-feedback-404.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-feedback.mjs +10 -4
- package/fesm2022/lluc_llull-ui-lib-feedback.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-footers-columns-footer.mjs +39 -15
- package/fesm2022/lluc_llull-ui-lib-footers-columns-footer.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-footers-legal-footer.mjs +2 -2
- package/fesm2022/lluc_llull-ui-lib-footers-legal-footer.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-footers-social-footer.mjs +2 -2
- package/fesm2022/lluc_llull-ui-lib-footers-social-footer.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-footers-visual-footer.mjs +2 -2
- package/fesm2022/lluc_llull-ui-lib-footers-visual-footer.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-footers.mjs +44 -21
- package/fesm2022/lluc_llull-ui-lib-footers.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-headers-header-clear.mjs +4 -4
- package/fesm2022/lluc_llull-ui-lib-headers-header-clear.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-headers-header-mobile.mjs +2 -2
- package/fesm2022/lluc_llull-ui-lib-headers-header-mobile.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-headers.mjs +6 -6
- package/fesm2022/lluc_llull-ui-lib-headers.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-modals.mjs +4 -4
- package/fesm2022/lluc_llull-ui-lib-modals.mjs.map +1 -1
- package/fesm2022/lluc_llull-ui-lib-shared.mjs +3 -1
- package/fesm2022/lluc_llull-ui-lib-shared.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/styles/main.css +71 -1
- package/styles/main.css +71 -1
- package/types/lluc_llull-ui-lib-content-category-progress.d.ts +10 -0
- package/types/lluc_llull-ui-lib-content-contact-minimal.d.ts +10 -0
- package/types/lluc_llull-ui-lib-content-split-previewer.d.ts +10 -0
- package/types/lluc_llull-ui-lib-content.d.ts +30 -0
- package/types/lluc_llull-ui-lib-directives.d.ts +51 -2
- package/types/lluc_llull-ui-lib-feedback-404.d.ts +10 -0
- package/types/lluc_llull-ui-lib-feedback.d.ts +10 -0
- package/types/lluc_llull-ui-lib-footers-columns-footer.d.ts +1 -0
- package/types/lluc_llull-ui-lib-footers.d.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lluc_llull-ui-lib-footers.mjs","names":[],"sources":["../../../projects/ui-lib/footers/legal-footer/legal-footer.component.ts","../../../projects/ui-lib/footers/legal-footer/legal-footer.component.html","../../../projects/ui-lib/footers/links-footer/links-footer.component.ts","../../../projects/ui-lib/footers/links-footer/links-footer.component.html","../../../projects/ui-lib/footers/social-footer/social-footer.component.ts","../../../projects/ui-lib/footers/social-footer/social-footer.component.html","../../../projects/ui-lib/footers/visual-footer/visual-footer.component.ts","../../../projects/ui-lib/footers/visual-footer/visual-footer.component.html","../../../projects/ui-lib/footers/columns-footer/columns-footer.component.ts","../../../projects/ui-lib/footers/columns-footer/columns-footer.component.html"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI } from '@lluc_llull/ui-lib/interfaces';\n\nexport type LegalFooterVariant = 'simple' | 'extended';\n\n@Component({\n selector: 'lib-legal-footer',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './legal-footer.component.html',\n styleUrl: './legal-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class LegalFooterComponent {\n @Input() year?: number;\n @Input() brand?: string;\n @Input() credits?: string;\n @Input() links?: UiLibButtonI[];\n @Input() variant: LegalFooterVariant = 'simple';\n}\n","<div class=\"legal-footer col-span-full sm:col-span-12 sm:col-start-1\" [ngClass]=\"variant\">\n <!-- Variante simple -->\n @if (variant === 'simple') {\n <div class=\"legal-footer__simple main-grid col-span-full\">\n <span class=\"legal-footer__simple-brand col-span-full sm:col-span-6 sm:col-start-1\">\n <b>{{ brand }} © {{ year }}</b>\n </span>\n <span class=\"legal-footer__simple-credits col-span-full sm:col-span-6 sm:col-start-7\">{{ credits }}</span>\n </div>\n }\n\n <!-- Variante extendida -->\n @if (variant === 'extended') {\n <div class=\"legal-footer__extended col-span-full\">\n <span class=\"legal-footer__year col-span-full sm:col-span-3 sm:col-start-1\">\n <b>{{ brand }} © {{ year }}</b>\n </span>\n\n <div class=\"legal-footer__right col-span-full sm:col-span-9 sm:col-start-4\">\n @if (links?.length) {\n <ul class=\"legal-footer__links\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\">{{ link.label }}</a>\n </li>\n }\n <li class=\"legal-footer__credits\">{{ credits }}</li>\n </ul>\n }\n </div>\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\n\n@Component({\n selector: 'lib-links-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './links-footer.component.html',\n styleUrl: './links-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class LinksFooterComponent {\n @Input() links?: UiLibButtonI[];\n}\n","@if (links) {\n <div class=\"links-footer main-grid col-span-full\">\n <ul class=\"col-span-full\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\" [linkType]=\"link.linkType\" class=\"btn btn-link\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI, UiLibImageI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport { SwiperDirective } from '@lluc_llull/ui-lib/sliders';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-social-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective, SwiperDirective, UiIconComponent],\n templateUrl: './social-footer.component.html',\n styleUrl: './social-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class SocialFooterComponent {\n @Input() images?: UiLibImageI[];\n @Input() socials?: UiLibButtonI[];\n @Input() hashtag?: string;\n}\n","<div class=\"social-footer main-grid col-span-full sm:col-span-12 sm:col-start-1\">\n <div class=\"social-footer__slider-images swiper col-span-full\" appSwiper>\n <div class=\"swiper-wrapper\">\n @for (image of images; track $index) {\n <div class=\"swiper-slide\">\n <img [src]=\"image?.url\" [alt]=\"image?.alt || ''\" />\n </div>\n }\n </div>\n <div class=\"swiper-button-prev\">\n <ui-icon name=\"arrow-left\" [size]=\"17\" color=\"#fff\"></ui-icon>\n </div>\n <div class=\"swiper-button-next\">\n <ui-icon name=\"arrow-right\" [size]=\"17\" color=\"#fff\"></ui-icon>\n </div>\n </div>\n\n <div class=\"social-footer__bottom-section main-grid col-span-full\">\n @if (hashtag) {\n <div class=\"social-footer__hashtag col-span-full sm:col-span-6 sm:col-start-1\">\n <span>{{ hashtag }}</span>\n </div>\n }\n @if (socials) {\n <div class=\"social-footer__socials col-span-full sm:col-span-6 sm:col-start-7\">\n @for (social of socials; track $index) {\n <a [href]=\"social.url\" [attr.aria-label]=\"social.label\" [linkType]=\"social.linkType\">\n @if (social.icon) {\n <ui-icon [name]=\"social.icon\" [size]=\"28\"></ui-icon>\n }\n </a>\n }\n </div>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibAddressI, UiLibButtonI, UiLibImageI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\n\n@Component({\n selector: 'lib-visual-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './visual-footer.component.html',\n styleUrl: './visual-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class VisualFooterComponent {\n @Input() contactTitle?: string;\n @Input() contactPhone?: UiLibButtonI;\n @Input() contactEmail?: UiLibButtonI;\n @Input() addressTitle?: string;\n @Input() address?: UiLibAddressI;\n @Input() socialsTitle?: string;\n @Input() socials?: UiLibButtonI[];\n @Input() image?: UiLibImageI;\n}\n","<div class=\"visual-footer main-grid col-span-full sm:col-span-12 sm:col-start-1\">\n <div class=\"visual-footer__texts col-span-full sm:col-span-3 sm:col-start-1\">\n <div class=\"visual-footer__contact\">\n @if (contactTitle) {\n <h2 class=\"title\">{{ contactTitle }}</h2>\n }\n @if (contactPhone) {\n <a [href]=\"contactPhone.url\" [linkType]=\"contactPhone.linkType\" class=\"btn btn-link\">\n <span>{{ contactPhone.label }}</span>\n </a>\n }\n @if (contactEmail) {\n <a [href]=\"contactEmail.url\" [linkType]=\"contactEmail.linkType\" class=\"btn btn-link\">\n <span>{{ contactEmail.label }}</span>\n </a>\n }\n </div>\n <div class=\"visual-footer__address\">\n @if (addressTitle) {\n <h2 class=\"title\">{{ addressTitle }}</h2>\n }\n <p class=\"text\">\n <span>{{ address?.address }}</span>\n <span>{{ address?.cp }} {{ address?.city }}</span>\n <span>{{ address?.province }} {{ address?.country }}</span>\n </p>\n </div>\n <div class=\"visual-footer__socials\">\n @if (socialsTitle) {\n <h2 class=\"title\">{{ socialsTitle }}</h2>\n }\n @if (socials) {\n @for (social of socials; track $index) {\n <a [href]=\"social.url\" [linkType]=\"social.linkType\" class=\"btn btn-link\">\n <span>{{ social.label }}</span>\n </a>\n }\n }\n </div>\n </div>\n <div class=\"visual-footer__image col-span-full sm:col-span-8 sm:col-start-5\">\n @if (image) {\n <img [src]=\"image.url\" [alt]=\"image.alt\" loading=\"lazy\" />\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport { UiLibButtonI } from '@lluc_llull/ui-lib/interfaces';\n\n@Component({\n selector: 'lib-columns-footer',\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './columns-footer.component.html',\n styleUrl: './columns-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class ColumnsFooterComponent {\n @Input() columns?: ColumnsFooterItemI[];\n @Input() copyright?: ColumnsFooterCopyRightI;\n}\n\nexport interface ColumnsFooterItemI {\n title: string;\n items: UiLibButtonI[];\n}\n\nexport interface ColumnsFooterCopyRightI {\n year: string;\n name?: string;\n rights?: string;\n}\n","<div class=\"columns-footer-wrapper col-span-full\">\n <div class=\"columns-footer main-grid col-span-full sm:col-span-12 sm:col-start-1\">\n @if (columns?.[0]; as column1) {\n <div class=\"columns-footer__one col-span-full sm:col-span-3 sm:col-start-1\">\n @if (column1.title) {\n <h4 class=\"columns-footer__one-title\">\n {{ column1.title }}\n </h4>\n }\n @if (column1.items && column1.items.length > 0) {\n <ul class=\"columns-footer__one-list\">\n @for (item of column1.items; track $index) {\n <li class=\"columns-footer__one-item\">\n <a [href]=\"item.url\" [linkType]=\"item.linkType\">{{ item.label }}</a>\n </li>\n }\n </ul>\n }\n </div>\n }\n @if (columns?.[1]; as column2) {\n <div class=\"columns-footer__two col-span-full sm:col-span-6 sm:col-start-4\">\n @if (column2.title) {\n <h4 class=\"columns-footer__two-title\">\n {{ column2.title }}\n </h4>\n }\n @if (column2.items && column2.items.length > 0) {\n <ul class=\"columns-footer__two-list\">\n @for (item of column2.items; track $index) {\n <li class=\"columns-footer__two-item\">\n <a [href]=\"item.url\" [linkType]=\"item.linkType\">{{ item.label }}</a>\n </li>\n }\n </ul>\n }\n </div>\n }\n @if (columns?.[2]; as column3) {\n <div class=\"columns-footer__three col-span-full sm:col-span-3 sm:col-start-10\">\n @if (column3.title) {\n <h4 class=\"columns-footer__three-title\">\n {{ column3.title }}\n </h4>\n }\n @if (column3.items && column3.items.length > 0) {\n <ul class=\"columns-footer__three-list\">\n @for (item of column3.items; track $index) {\n <li class=\"columns-footer__three-item\" [class.mt-separator]=\"$index > 0 && item.linkType !== column3.items[$index - 1].linkType\">\n <a [href]=\"item.url\" [linkType]=\"item.linkType\">{{ item.label }}</a>\n </li>\n }\n </ul>\n }\n </div>\n }\n </div>\n <div class=\"columns-footer__copyright col-span-full sm:col-span-12 sm:col-start-1\">\n @if (copyright) {\n <div class=\"columns-footer__copyright-text\">\n <span>{{ copyright.year }}</span>\n <span>{{ copyright.name }}</span>\n <span>{{ copyright.rights }}</span>\n </div>\n }\n </div>\n @if (copyright?.name; as signature) {\n <div class=\"columns-footer__signature\" aria-label=\"{{ signature }}\">\n @let signatureParts = signature.split(' ');\n <span>\n <em>{{ signatureParts[0] }}</em>\n <strong>{{ signatureParts[1] }}</strong>\n </span>\n </div>\n }\n</div>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lluc_llull-ui-lib-footers.mjs","names":[],"sources":["../../../projects/ui-lib/footers/legal-footer/legal-footer.component.ts","../../../projects/ui-lib/footers/legal-footer/legal-footer.component.html","../../../projects/ui-lib/footers/links-footer/links-footer.component.ts","../../../projects/ui-lib/footers/links-footer/links-footer.component.html","../../../projects/ui-lib/footers/social-footer/social-footer.component.ts","../../../projects/ui-lib/footers/social-footer/social-footer.component.html","../../../projects/ui-lib/footers/visual-footer/visual-footer.component.ts","../../../projects/ui-lib/footers/visual-footer/visual-footer.component.html","../../../projects/ui-lib/footers/columns-footer/columns-footer.component.ts","../../../projects/ui-lib/footers/columns-footer/columns-footer.component.html"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI } from '@lluc_llull/ui-lib/interfaces';\n\nexport type LegalFooterVariant = 'simple' | 'extended';\n\n@Component({\n selector: 'lib-legal-footer',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './legal-footer.component.html',\n styleUrl: './legal-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class LegalFooterComponent {\n @Input() year?: number;\n @Input() brand?: string;\n @Input() credits?: string;\n @Input() links?: UiLibButtonI[];\n @Input() variant: LegalFooterVariant = 'simple';\n}\n","<div class=\"legal-footer col-span-full sm:col-span-12 sm:col-start-1\" [ngClass]=\"variant\">\n <!-- Variante simple -->\n @if (variant === 'simple') {\n <div class=\"legal-footer__simple main-grid col-span-full\">\n <span class=\"legal-footer__simple-brand col-span-full sm:col-span-6 sm:col-start-1\">\n <b>{{ brand }} © {{ year }}</b>\n </span>\n <span class=\"legal-footer__simple-credits col-span-full sm:col-span-6 sm:col-start-7\">{{ credits }}</span>\n </div>\n }\n\n <!-- Variante extendida -->\n @if (variant === 'extended') {\n <div class=\"legal-footer__extended col-span-full\">\n <span class=\"legal-footer__year col-span-full sm:col-span-3 sm:col-start-1\">\n <b>{{ brand }} © {{ year }}</b>\n </span>\n\n <div class=\"legal-footer__right col-span-full sm:col-span-9 sm:col-start-4\">\n @if (links?.length) {\n <ul class=\"legal-footer__links\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\">{{ link.label }}</a>\n </li>\n }\n <li class=\"legal-footer__credits\">{{ credits }}</li>\n </ul>\n }\n </div>\n </div>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\n\n@Component({\n selector: 'lib-links-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './links-footer.component.html',\n styleUrl: './links-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class LinksFooterComponent {\n @Input() links?: UiLibButtonI[];\n}\n","@if (links) {\n <div class=\"links-footer main-grid col-span-full\">\n <ul class=\"col-span-full\">\n @for (link of links; track $index) {\n <li>\n <a [href]=\"link.url\" [linkType]=\"link.linkType\" class=\"btn btn-link\">\n {{ link.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibButtonI, UiLibImageI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport { SwiperDirective } from '@lluc_llull/ui-lib/sliders';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-social-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective, SwiperDirective, UiIconComponent],\n templateUrl: './social-footer.component.html',\n styleUrl: './social-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class SocialFooterComponent {\n @Input() images?: UiLibImageI[];\n @Input() socials?: UiLibButtonI[];\n @Input() hashtag?: string;\n}\n","<div class=\"social-footer main-grid col-span-full sm:col-span-12 sm:col-start-1\">\n <div class=\"social-footer__slider-images swiper col-span-full\" appSwiper>\n <div class=\"swiper-wrapper\">\n @for (image of images; track $index) {\n <div class=\"swiper-slide\">\n <img [src]=\"image?.url\" [alt]=\"image?.alt || ''\" />\n </div>\n }\n </div>\n <div class=\"swiper-button-prev\">\n <ui-icon name=\"arrow-left\" [size]=\"17\" color=\"#fff\"></ui-icon>\n </div>\n <div class=\"swiper-button-next\">\n <ui-icon name=\"arrow-right\" [size]=\"17\" color=\"#fff\"></ui-icon>\n </div>\n </div>\n\n <div class=\"social-footer__bottom-section main-grid col-span-full\">\n @if (hashtag) {\n <div class=\"social-footer__hashtag col-span-full sm:col-span-6 sm:col-start-1\">\n <span>{{ hashtag }}</span>\n </div>\n }\n @if (socials) {\n <div class=\"social-footer__socials col-span-full sm:col-span-6 sm:col-start-7\">\n @for (social of socials; track $index) {\n <a [href]=\"social.url\" [attr.aria-label]=\"social.label\" [linkType]=\"social.linkType\">\n @if (social.icon) {\n <ui-icon [name]=\"social.icon\" [size]=\"28\"></ui-icon>\n }\n </a>\n }\n </div>\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { UiLibAddressI, UiLibButtonI, UiLibImageI } from '@lluc_llull/ui-lib/interfaces';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\n\n@Component({\n selector: 'lib-visual-footer',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective],\n templateUrl: './visual-footer.component.html',\n styleUrl: './visual-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class VisualFooterComponent {\n @Input() contactTitle?: string;\n @Input() contactPhone?: UiLibButtonI;\n @Input() contactEmail?: UiLibButtonI;\n @Input() addressTitle?: string;\n @Input() address?: UiLibAddressI;\n @Input() socialsTitle?: string;\n @Input() socials?: UiLibButtonI[];\n @Input() image?: UiLibImageI;\n}\n","<div class=\"visual-footer main-grid col-span-full sm:col-span-12 sm:col-start-1\">\n <div class=\"visual-footer__texts col-span-full sm:col-span-3 sm:col-start-1\">\n <div class=\"visual-footer__contact\">\n @if (contactTitle) {\n <h2 class=\"title\">{{ contactTitle }}</h2>\n }\n @if (contactPhone) {\n <a [href]=\"contactPhone.url\" [linkType]=\"contactPhone.linkType\" class=\"btn btn-link\">\n <span>{{ contactPhone.label }}</span>\n </a>\n }\n @if (contactEmail) {\n <a [href]=\"contactEmail.url\" [linkType]=\"contactEmail.linkType\" class=\"btn btn-link\">\n <span>{{ contactEmail.label }}</span>\n </a>\n }\n </div>\n <div class=\"visual-footer__address\">\n @if (addressTitle) {\n <h2 class=\"title\">{{ addressTitle }}</h2>\n }\n <p class=\"text\">\n <span>{{ address?.address }}</span>\n <span>{{ address?.cp }} {{ address?.city }}</span>\n <span>{{ address?.province }} {{ address?.country }}</span>\n </p>\n </div>\n <div class=\"visual-footer__socials\">\n @if (socialsTitle) {\n <h2 class=\"title\">{{ socialsTitle }}</h2>\n }\n @if (socials) {\n @for (social of socials; track $index) {\n <a [href]=\"social.url\" [linkType]=\"social.linkType\" class=\"btn btn-link\">\n <span>{{ social.label }}</span>\n </a>\n }\n }\n </div>\n </div>\n <div class=\"visual-footer__image col-span-full sm:col-span-8 sm:col-start-5\">\n @if (image) {\n <img [src]=\"image.url\" [alt]=\"image.alt\" loading=\"lazy\" />\n }\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport { UiLibButtonI } from '@lluc_llull/ui-lib/interfaces';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-columns-footer',\n imports: [CommonModule, LinkTypeDirective, UiIconComponent],\n templateUrl: './columns-footer.component.html',\n styleUrl: './columns-footer.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n style: 'display: contents',\n },\n})\nexport class ColumnsFooterComponent {\n @Input() columns?: ColumnsFooterItemI[];\n @Input() copyright?: ColumnsFooterCopyRightI;\n\n scrollToTop(): void {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n }\n}\n\nexport interface ColumnsFooterItemI {\n title: string;\n items: UiLibButtonI[];\n}\n\nexport interface ColumnsFooterCopyRightI {\n year: string;\n name?: string;\n rights?: string;\n}\n","<div class=\"columns-footer-wrapper col-span-full\">\n <div class=\"columns-footer main-grid col-span-full sm:col-span-12 sm:col-start-1\">\n @if (columns?.[0]; as column1) {\n <div class=\"columns-footer__one col-span-full sm:col-span-3 sm:col-start-1\">\n @if (column1.title) {\n <h4 class=\"columns-footer__one-title\">\n {{ column1.title }}\n </h4>\n }\n @if (column1.items && column1.items.length > 0) {\n <ul class=\"columns-footer__one-list\">\n @for (item of column1.items; track $index) {\n <li class=\"columns-footer__one-item\">\n <a [href]=\"item.url\" [linkType]=\"item.linkType\">{{ item.label }}</a>\n </li>\n }\n </ul>\n }\n <button\n type=\"button\"\n class=\"columns-footer__one-to-top\"\n aria-label=\"Volver arriba\"\n (click)=\"scrollToTop()\"\n >\n <ui-icon name=\"arrow-up-right\" [size]=\"20\" color=\"currentColor\"></ui-icon>\n </button>\n </div>\n }\n @if (columns?.[1]; as column2) {\n <div class=\"columns-footer__two col-span-full sm:col-span-6 sm:col-start-4\">\n @if (column2.title) {\n <h4 class=\"columns-footer__two-title\">\n {{ column2.title }}\n </h4>\n }\n @if (column2.items && column2.items.length > 0) {\n <ul class=\"columns-footer__two-list\">\n @for (item of column2.items; track $index) {\n <li class=\"columns-footer__two-item\">\n <a [href]=\"item.url\" [linkType]=\"item.linkType\">{{ item.label }}</a>\n </li>\n }\n </ul>\n }\n </div>\n }\n @if (columns?.[2]; as column3) {\n <div class=\"columns-footer__three col-span-full sm:col-span-3 sm:col-start-10\">\n @if (column3.title) {\n <h4 class=\"columns-footer__three-title\">\n {{ column3.title }}\n </h4>\n }\n @if (column3.items && column3.items.length > 0) {\n <ul class=\"columns-footer__three-list\">\n @for (item of column3.items; track $index) {\n <li class=\"columns-footer__three-item\" [class.mt-separator]=\"$index > 0 && item.linkType !== column3.items[$index - 1].linkType\">\n <a [href]=\"item.url\" [linkType]=\"item.linkType\">{{ item.label }}</a>\n </li>\n }\n </ul>\n }\n </div>\n }\n </div>\n <div class=\"columns-footer__copyright col-span-full sm:col-span-12 sm:col-start-1\">\n @if (copyright) {\n <div class=\"columns-footer__copyright-text\">\n <span>{{ copyright.year }}</span>\n <span>{{ copyright.name }}</span>\n <span>{{ copyright.rights }}</span>\n </div>\n }\n </div>\n @if (copyright?.name; as signature) {\n <div class=\"columns-footer__signature\" aria-label=\"{{ signature }}\">\n @let signatureParts = signature.split(' ');\n <span>\n <em>{{ signatureParts[0] }}</em>\n <strong>{{ signatureParts[1] }}</strong>\n </span>\n </div>\n }\n</div>\n"],"mappings":"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"}
|
|
@@ -89,8 +89,8 @@ var HeaderClearComponent = class HeaderClearComponent {
|
|
|
89
89
|
},
|
|
90
90
|
usesOnChanges: true,
|
|
91
91
|
ngImport: i0,
|
|
92
|
-
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]=\"'
|
|
93
|
-
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"],
|
|
92
|
+
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]=\"'currentColor'\"\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 || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n",
|
|
93
|
+
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;border:4px solid var(--border-primary)}.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{border:4px solid var(--border-primary);background:var(--button-header-bg)}.header-clear.is-scrolled .header-actions .btn-header:hover{background:var(--button-header-bg-scrolled-hover)!important}.header-clear.is-scrolled.is-over-light{background:var(--header-bg-fixed-light)}.header-clear.is-scrolled.is-over-light .header-logo span{color:var(--header-logo-text-light)}.header-clear.is-scrolled.is-over-dark,.header-clear.is-scrolled.is-over-dark .header-actions .btn-header{border:4px solid var(--border-secondary)}.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"],
|
|
94
94
|
dependencies: [
|
|
95
95
|
{
|
|
96
96
|
kind: "ngmodule",
|
|
@@ -152,8 +152,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
152
152
|
HeaderScrollDirective
|
|
153
153
|
],
|
|
154
154
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
155
|
-
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]=\"'
|
|
156
|
-
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"]
|
|
155
|
+
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]=\"'currentColor'\"\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 || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n",
|
|
156
|
+
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;border:4px solid var(--border-primary)}.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{border:4px solid var(--border-primary);background:var(--button-header-bg)}.header-clear.is-scrolled .header-actions .btn-header:hover{background:var(--button-header-bg-scrolled-hover)!important}.header-clear.is-scrolled.is-over-light{background:var(--header-bg-fixed-light)}.header-clear.is-scrolled.is-over-light .header-logo span{color:var(--header-logo-text-light)}.header-clear.is-scrolled.is-over-dark,.header-clear.is-scrolled.is-over-dark .header-actions .btn-header{border:4px solid var(--border-secondary)}.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"]
|
|
157
157
|
}]
|
|
158
158
|
}],
|
|
159
159
|
ctorParameters: () => [{ type: i1.ThemeService }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lluc_llull-ui-lib-headers-header-clear.mjs","names":[],"sources":["../../../projects/ui-lib/headers/header-clear/header-clear.component.ts","../../../projects/ui-lib/headers/header-clear/header-clear.component.html"],"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 { 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, 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 isMenuClosing = 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 if (this.isMenuOpen) {\n this.closeMenu();\n return;\n }\n\n this.isMenuClosing = false;\n this.isMenuOpen = true;\n }\n\n closeMenu(): void {\n if (!this.isMenuOpen && !this.isMenuClosing) return;\n\n this.isMenuClosing = true;\n this.isMenuOpen = false;\n }\n\n finishMenuClose(event: TransitionEvent): void {\n if (!this.isMenuClosing || event.propertyName !== 'visibility') return;\n if (!(event.target instanceof HTMLElement) || !event.target.classList.contains('modal-content')) return;\n\n this.isMenuClosing = false;\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]=\"'
|
|
1
|
+
{"version":3,"file":"lluc_llull-ui-lib-headers-header-clear.mjs","names":[],"sources":["../../../projects/ui-lib/headers/header-clear/header-clear.component.ts","../../../projects/ui-lib/headers/header-clear/header-clear.component.html"],"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 { 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, 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 isMenuClosing = 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 if (this.isMenuOpen) {\n this.closeMenu();\n return;\n }\n\n this.isMenuClosing = false;\n this.isMenuOpen = true;\n }\n\n closeMenu(): void {\n if (!this.isMenuOpen && !this.isMenuClosing) return;\n\n this.isMenuClosing = true;\n this.isMenuOpen = false;\n }\n\n finishMenuClose(event: TransitionEvent): void {\n if (!this.isMenuClosing || event.propertyName !== 'visibility') return;\n if (!(event.target instanceof HTMLElement) || !event.target.classList.contains('modal-content')) return;\n\n this.isMenuClosing = false;\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]=\"'currentColor'\"\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 || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n"],"mappings":";;;;;;;;AAgCA,IAAa,uBAAb,MAAa,qBAAoB;CAiBT;CAhBpB,aAAa;CACb,gBAAgB;CAChB,eAAsB;CACd;CAEC;CACA;CACA;CACA;CACA;CACA;CACA,OAAe;CAEd,YAAY,IAAI,aAAY;CAC5B,QAAQ,IAAI,aAAY;CAElC,YAAoB,cAA0B;EAA1B,KAAA,eAAA;CAA6B;CAEjD,WAAQ;EACJ,KAAK,oBAAoB,KAAK,aAAa,cAAc,WAAW,UAAS;GACzE,KAAK,eAAe;EACxB,CAAC;CACL;CAEA,cAAW;EACP,KAAK,WAAW,YAAY,KAAK,YAAY,KAAK,IAAI;CAC1D;CAEA,cAAW;EACP,KAAK,mBAAmB,YAAW;CACvC;CAEA,qBAAkB;EACd,KAAK,UAAU,KAAI;CACvB;CAEA,cAAW;EACP,KAAK,aAAa,YAAW;EAC7B,KAAK,MAAM,KAAI;CACnB;CAEA,aAAU;EACN,IAAI,KAAK,YAAY;GACjB,KAAK,UAAS;GACd;EACJ;EAEA,KAAK,gBAAgB;EACrB,KAAK,aAAa;CACtB;CAEA,YAAS;EACL,IAAI,CAAC,KAAK,cAAc,CAAC,KAAK,eAAe;EAE7C,KAAK,gBAAgB;EACrB,KAAK,aAAa;CACtB;CAEA,gBAAgB,OAAsB;EAClC,IAAI,CAAC,KAAK,iBAAiB,MAAM,iBAAiB,cAAc;EAChE,IAAI,EAAE,MAAM,kBAAkB,gBAAgB,CAAC,MAAM,OAAO,UAAU,SAAS,eAAe,GAAG;EAEjG,KAAK,gBAAgB;CACzB;CAhES,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAoB,MAAA,CAAA,EAAA,OAAA,GAAA,aAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAApB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAoB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,MAAA;GAAA,UAAA;GAAA,UAAA;GAAA,aAAA;GAAA,UAAA;GAAA,YAAA;GAAA,MAAA;EAAA;EAAA,SAAA;GAAA,WAAA;GAAA,OAAA;EAAA;EAAA,eAAA;EAAA,UAAA;EAAA,UChCjC;EA2CA,QAAA,CAAA,u4CAAA;EAAA,cAAA;GAAA;IAAA,MAAA;IAAA,MDhBc;GAAY;GAAA;IAAA,MAAA;IAAA,MAAE;IAAiB,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;IAAA;IAAA,SAAA,CAAA,OAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAiB,UAAA;IAAA,QAAA,CAAA,YAAA,MAAA;IAAA,SAAA,CAAA,eAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAe,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;IAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAqB,UAAA;IAAA,QAAA,CAAA,iBAAA;GAAA;EAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAK3F,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAoB,YAAA,CAAA;EARhC,MAAA;EACa,MAAA,CAAA;GAAA,UAAA;GAAkB,YAChB;GAAI,SACP;IAAC;IAAc;IAAmB;IAAmB;IAAiB;GAAqB;GAAC,iBAGpF,wBAAwB;GAAM,UAAA;GAAA,QAAA,CAAA,u4CAAA;EAAA,CAAA;;;;E,SAQ9C,MAAA,M;E,aACA,MAAA,M;E,aACA,MAAA,M;E,gBACA,MAAA,M;E,aACA,MAAA,M;E,eACA,MAAA,M;E,SACA,MAAA,M;E,cAEA,MAAA,O;E,UACA,MAAA,O"}
|
|
@@ -90,7 +90,7 @@ var HeaderMobileComponent = class HeaderMobileComponent {
|
|
|
90
90
|
usesOnChanges: true,
|
|
91
91
|
ngImport: i0,
|
|
92
92
|
template: "<header class=\"header-mobile\" headerScroll [scrollThreshold]=\"60\">\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 || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n",
|
|
93
|
-
styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;z-index:100;
|
|
93
|
+
styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;left:0;right:0;z-index:100;box-sizing:border-box;background:var(--header-bg);transition:background .3s ease,box-shadow .3s ease}.header-mobile.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014;border:4px solid black}.header-mobile.is-scrolled.is-over-light{background:var(--header-bg-fixed-light)}.header-mobile.is-scrolled.is-over-dark{border:4px solid var(--border-secondary)}.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: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;border:4px solid black}.header-actions .center{margin:0 auto}.lang{text-transform:uppercase}\n"],
|
|
94
94
|
dependencies: [
|
|
95
95
|
{
|
|
96
96
|
kind: "ngmodule",
|
|
@@ -153,7 +153,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
153
153
|
],
|
|
154
154
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
155
155
|
template: "<header class=\"header-mobile\" headerScroll [scrollThreshold]=\"60\">\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 || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n",
|
|
156
|
-
styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;z-index:100;
|
|
156
|
+
styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;left:0;right:0;z-index:100;box-sizing:border-box;background:var(--header-bg);transition:background .3s ease,box-shadow .3s ease}.header-mobile.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014;border:4px solid black}.header-mobile.is-scrolled.is-over-light{background:var(--header-bg-fixed-light)}.header-mobile.is-scrolled.is-over-dark{border:4px solid var(--border-secondary)}.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: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;border:4px solid black}.header-actions .center{margin:0 auto}.lang{text-transform:uppercase}\n"]
|
|
157
157
|
}]
|
|
158
158
|
}],
|
|
159
159
|
ctorParameters: () => [{ type: i1.ThemeService }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lluc_llull-ui-lib-headers-header-mobile.mjs","names":[],"sources":["../../../projects/ui-lib/headers/header-mobile/header-mobile.component.ts","../../../projects/ui-lib/headers/header-mobile/header-mobile.component.html"],"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 { 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, NavModalComponent, HeaderScrollDirective, 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 isMenuClosing = 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 if (this.isMenuOpen) {\n this.closeMenu();\n return;\n }\n\n this.isMenuClosing = false;\n this.isMenuOpen = true;\n }\n\n closeMenu(): void {\n if (!this.isMenuOpen && !this.isMenuClosing) return;\n\n this.isMenuClosing = true;\n this.isMenuOpen = false;\n }\n\n finishMenuClose(event: TransitionEvent): void {\n if (!this.isMenuClosing || event.propertyName !== 'visibility') return;\n if (!(event.target instanceof HTMLElement) || !event.target.classList.contains('modal-content')) return;\n\n this.isMenuClosing = false;\n }\n}\n","<header class=\"header-mobile\" headerScroll [scrollThreshold]=\"60\">\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 || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n"],"mappings":";;;;;;;;AAgCA,IAAa,wBAAb,MAAa,sBAAqB;CAiBV;CAhBpB,aAAa;CACb,gBAAgB;CAChB,eAAsB;CACd;CAEC;CACA;CACA;CACA;CACA;CACA;CACA,OAAe;CAEd,YAAY,IAAI,aAAY;CAC5B,QAAQ,IAAI,aAAY;CAElC,YAAoB,cAA0B;EAA1B,KAAA,eAAA;CAA6B;CAEjD,WAAQ;EACJ,KAAK,oBAAoB,KAAK,aAAa,cAAc,WAAW,UAAS;GACzE,KAAK,eAAe;EACxB,CAAC;CACL;CAEA,cAAW;EACP,KAAK,WAAW,YAAY,KAAK,YAAY,KAAK,IAAI;CAC1D;CAEA,cAAW;EACP,KAAK,mBAAmB,YAAW;CACvC;CAEA,qBAAkB;EACd,KAAK,UAAU,KAAI;CACvB;CAEA,cAAW;EACP,KAAK,aAAa,YAAW;EAC7B,KAAK,MAAM,KAAI;CACnB;CAEA,aAAU;EACN,IAAI,KAAK,YAAY;GACjB,KAAK,UAAS;GACd;EACJ;EAEA,KAAK,gBAAgB;EACrB,KAAK,aAAa;CACtB;CAEA,YAAS;EACL,IAAI,CAAC,KAAK,cAAc,CAAC,KAAK,eAAe;EAE7C,KAAK,gBAAgB;EACrB,KAAK,aAAa;CACtB;CAEA,gBAAgB,OAAsB;EAClC,IAAI,CAAC,KAAK,iBAAiB,MAAM,iBAAiB,cAAc;EAChE,IAAI,EAAE,MAAM,kBAAkB,gBAAgB,CAAC,MAAM,OAAO,UAAU,SAAS,eAAe,GAAG;EAEjG,KAAK,gBAAgB;CACzB;CAhES,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAqB,MAAA,CAAA,EAAA,OAAA,GAAA,aAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAArB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAqB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,MAAA;GAAA,UAAA;GAAA,UAAA;GAAA,aAAA;GAAA,UAAA;GAAA,YAAA;GAAA,MAAA;EAAA;EAAA,SAAA;GAAA,WAAA;GAAA,OAAA;EAAA;EAAA,eAAA;EAAA,UAAA;EAAA,UChClC;EAgDA,QAAA,CAAA
|
|
1
|
+
{"version":3,"file":"lluc_llull-ui-lib-headers-header-mobile.mjs","names":[],"sources":["../../../projects/ui-lib/headers/header-mobile/header-mobile.component.ts","../../../projects/ui-lib/headers/header-mobile/header-mobile.component.html"],"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 { 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, NavModalComponent, HeaderScrollDirective, 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 isMenuClosing = 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 if (this.isMenuOpen) {\n this.closeMenu();\n return;\n }\n\n this.isMenuClosing = false;\n this.isMenuOpen = true;\n }\n\n closeMenu(): void {\n if (!this.isMenuOpen && !this.isMenuClosing) return;\n\n this.isMenuClosing = true;\n this.isMenuOpen = false;\n }\n\n finishMenuClose(event: TransitionEvent): void {\n if (!this.isMenuClosing || event.propertyName !== 'visibility') return;\n if (!(event.target instanceof HTMLElement) || !event.target.classList.contains('modal-content')) return;\n\n this.isMenuClosing = false;\n }\n}\n","<header class=\"header-mobile\" headerScroll [scrollThreshold]=\"60\">\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 || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n"],"mappings":";;;;;;;;AAgCA,IAAa,wBAAb,MAAa,sBAAqB;CAiBV;CAhBpB,aAAa;CACb,gBAAgB;CAChB,eAAsB;CACd;CAEC;CACA;CACA;CACA;CACA;CACA;CACA,OAAe;CAEd,YAAY,IAAI,aAAY;CAC5B,QAAQ,IAAI,aAAY;CAElC,YAAoB,cAA0B;EAA1B,KAAA,eAAA;CAA6B;CAEjD,WAAQ;EACJ,KAAK,oBAAoB,KAAK,aAAa,cAAc,WAAW,UAAS;GACzE,KAAK,eAAe;EACxB,CAAC;CACL;CAEA,cAAW;EACP,KAAK,WAAW,YAAY,KAAK,YAAY,KAAK,IAAI;CAC1D;CAEA,cAAW;EACP,KAAK,mBAAmB,YAAW;CACvC;CAEA,qBAAkB;EACd,KAAK,UAAU,KAAI;CACvB;CAEA,cAAW;EACP,KAAK,aAAa,YAAW;EAC7B,KAAK,MAAM,KAAI;CACnB;CAEA,aAAU;EACN,IAAI,KAAK,YAAY;GACjB,KAAK,UAAS;GACd;EACJ;EAEA,KAAK,gBAAgB;EACrB,KAAK,aAAa;CACtB;CAEA,YAAS;EACL,IAAI,CAAC,KAAK,cAAc,CAAC,KAAK,eAAe;EAE7C,KAAK,gBAAgB;EACrB,KAAK,aAAa;CACtB;CAEA,gBAAgB,OAAsB;EAClC,IAAI,CAAC,KAAK,iBAAiB,MAAM,iBAAiB,cAAc;EAChE,IAAI,EAAE,MAAM,kBAAkB,gBAAgB,CAAC,MAAM,OAAO,UAAU,SAAS,eAAe,GAAG;EAEjG,KAAK,gBAAgB;CACzB;CAhES,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAqB,MAAA,CAAA,EAAA,OAAA,GAAA,aAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAArB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAqB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,MAAA;GAAA,UAAA;GAAA,UAAA;GAAA,aAAA;GAAA,UAAA;GAAA,YAAA;GAAA,MAAA;EAAA;EAAA,SAAA;GAAA,WAAA;GAAA,OAAA;EAAA;EAAA,eAAA;EAAA,UAAA;EAAA,UChClC;EAgDA,QAAA,CAAA,++BAAA;EAAA,cAAA;GAAA;IAAA,MAAA;IAAA,MDrBc;GAAY;GAAA;IAAA,MAAA;IAAA,MAAE;IAAiB,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;IAAA;IAAA,SAAA,CAAA,OAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAqB,UAAA;IAAA,QAAA,CAAA,iBAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAiB,UAAA;IAAA,QAAA,CAAA,YAAA,MAAA;IAAA,SAAA,CAAA,eAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAe,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;IAAA;GAAA;EAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAK3F,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAqB,YAAA,CAAA;EARjC,MAAA;EACa,MAAA,CAAA;GAAA,UAAA;GAAmB,YACjB;GAAI,SACP;IAAC;IAAc;IAAmB;IAAuB;IAAmB;GAAe;GAAC,iBAGpF,wBAAwB;GAAM,UAAA;GAAA,QAAA,CAAA,++BAAA;EAAA,CAAA;;;;E,SAQ9C,MAAA,M;E,aACA,MAAA,M;E,aACA,MAAA,M;E,gBACA,MAAA,M;E,aACA,MAAA,M;E,eACA,MAAA,M;E,SACA,MAAA,M;E,cAEA,MAAA,O;E,UACA,MAAA,O"}
|
|
@@ -89,8 +89,8 @@ var HeaderClearComponent = class HeaderClearComponent {
|
|
|
89
89
|
},
|
|
90
90
|
usesOnChanges: true,
|
|
91
91
|
ngImport: i0,
|
|
92
|
-
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]=\"'
|
|
93
|
-
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"],
|
|
92
|
+
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]=\"'currentColor'\"\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 || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n",
|
|
93
|
+
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;border:4px solid var(--border-primary)}.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{border:4px solid var(--border-primary);background:var(--button-header-bg)}.header-clear.is-scrolled .header-actions .btn-header:hover{background:var(--button-header-bg-scrolled-hover)!important}.header-clear.is-scrolled.is-over-light{background:var(--header-bg-fixed-light)}.header-clear.is-scrolled.is-over-light .header-logo span{color:var(--header-logo-text-light)}.header-clear.is-scrolled.is-over-dark,.header-clear.is-scrolled.is-over-dark .header-actions .btn-header{border:4px solid var(--border-secondary)}.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"],
|
|
94
94
|
dependencies: [
|
|
95
95
|
{
|
|
96
96
|
kind: "ngmodule",
|
|
@@ -152,8 +152,8 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
152
152
|
HeaderScrollDirective
|
|
153
153
|
],
|
|
154
154
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
155
|
-
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]=\"'
|
|
156
|
-
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"]
|
|
155
|
+
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]=\"'currentColor'\"\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 || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n",
|
|
156
|
+
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;border:4px solid var(--border-primary)}.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{border:4px solid var(--border-primary);background:var(--button-header-bg)}.header-clear.is-scrolled .header-actions .btn-header:hover{background:var(--button-header-bg-scrolled-hover)!important}.header-clear.is-scrolled.is-over-light{background:var(--header-bg-fixed-light)}.header-clear.is-scrolled.is-over-light .header-logo span{color:var(--header-logo-text-light)}.header-clear.is-scrolled.is-over-dark,.header-clear.is-scrolled.is-over-dark .header-actions .btn-header{border:4px solid var(--border-secondary)}.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"]
|
|
157
157
|
}]
|
|
158
158
|
}],
|
|
159
159
|
ctorParameters: () => [{ type: i1.ThemeService }],
|
|
@@ -253,7 +253,7 @@ var HeaderMobileComponent = class HeaderMobileComponent {
|
|
|
253
253
|
usesOnChanges: true,
|
|
254
254
|
ngImport: i0,
|
|
255
255
|
template: "<header class=\"header-mobile\" headerScroll [scrollThreshold]=\"60\">\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 || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n",
|
|
256
|
-
styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;z-index:100;
|
|
256
|
+
styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;left:0;right:0;z-index:100;box-sizing:border-box;background:var(--header-bg);transition:background .3s ease,box-shadow .3s ease}.header-mobile.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014;border:4px solid black}.header-mobile.is-scrolled.is-over-light{background:var(--header-bg-fixed-light)}.header-mobile.is-scrolled.is-over-dark{border:4px solid var(--border-secondary)}.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: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;border:4px solid black}.header-actions .center{margin:0 auto}.lang{text-transform:uppercase}\n"],
|
|
257
257
|
dependencies: [
|
|
258
258
|
{
|
|
259
259
|
kind: "ngmodule",
|
|
@@ -316,7 +316,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
316
316
|
],
|
|
317
317
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
318
318
|
template: "<header class=\"header-mobile\" headerScroll [scrollThreshold]=\"60\">\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 || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n",
|
|
319
|
-
styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;z-index:100;
|
|
319
|
+
styles: [".header-mobile{display:flex;justify-content:center;align-items:center;padding:1rem 0;border-radius:0;position:fixed;top:0;left:0;right:0;z-index:100;box-sizing:border-box;background:var(--header-bg);transition:background .3s ease,box-shadow .3s ease}.header-mobile.is-scrolled{background:var(--header-bg-fixed-dark);box-shadow:0 2px 12px #00000014;border:4px solid black}.header-mobile.is-scrolled.is-over-light{background:var(--header-bg-fixed-light)}.header-mobile.is-scrolled.is-over-dark{border:4px solid var(--border-secondary)}.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: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;border:4px solid black}.header-actions .center{margin:0 auto}.lang{text-transform:uppercase}\n"]
|
|
320
320
|
}]
|
|
321
321
|
}],
|
|
322
322
|
ctorParameters: () => [{ type: i1.ThemeService }],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lluc_llull-ui-lib-headers.mjs","names":[],"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"],"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 { 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, 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 isMenuClosing = 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 if (this.isMenuOpen) {\n this.closeMenu();\n return;\n }\n\n this.isMenuClosing = false;\n this.isMenuOpen = true;\n }\n\n closeMenu(): void {\n if (!this.isMenuOpen && !this.isMenuClosing) return;\n\n this.isMenuClosing = true;\n this.isMenuOpen = false;\n }\n\n finishMenuClose(event: TransitionEvent): void {\n if (!this.isMenuClosing || event.propertyName !== 'visibility') return;\n if (!(event.target instanceof HTMLElement) || !event.target.classList.contains('modal-content')) return;\n\n this.isMenuClosing = false;\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 || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\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 { 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 { 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, NavModalComponent, HeaderScrollDirective, 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 isMenuClosing = 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 if (this.isMenuOpen) {\n this.closeMenu();\n return;\n }\n\n this.isMenuClosing = false;\n this.isMenuOpen = true;\n }\n\n closeMenu(): void {\n if (!this.isMenuOpen && !this.isMenuClosing) return;\n\n this.isMenuClosing = true;\n this.isMenuOpen = false;\n }\n\n finishMenuClose(event: TransitionEvent): void {\n if (!this.isMenuClosing || event.propertyName !== 'visibility') return;\n if (!(event.target instanceof HTMLElement) || !event.target.classList.contains('modal-content')) return;\n\n this.isMenuClosing = false;\n }\n}\n","<header class=\"header-mobile\" headerScroll [scrollThreshold]=\"60\">\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 || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lluc_llull-ui-lib-headers.mjs","names":[],"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"],"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 { 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, 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 isMenuClosing = 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 if (this.isMenuOpen) {\n this.closeMenu();\n return;\n }\n\n this.isMenuClosing = false;\n this.isMenuOpen = true;\n }\n\n closeMenu(): void {\n if (!this.isMenuOpen && !this.isMenuClosing) return;\n\n this.isMenuClosing = true;\n this.isMenuOpen = false;\n }\n\n finishMenuClose(event: TransitionEvent): void {\n if (!this.isMenuClosing || event.propertyName !== 'visibility') return;\n if (!(event.target instanceof HTMLElement) || !event.target.classList.contains('modal-content')) return;\n\n this.isMenuClosing = false;\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]=\"'currentColor'\"\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 || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\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 { 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 { 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, NavModalComponent, HeaderScrollDirective, 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 isMenuClosing = 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 if (this.isMenuOpen) {\n this.closeMenu();\n return;\n }\n\n this.isMenuClosing = false;\n this.isMenuOpen = true;\n }\n\n closeMenu(): void {\n if (!this.isMenuOpen && !this.isMenuClosing) return;\n\n this.isMenuClosing = true;\n this.isMenuOpen = false;\n }\n\n finishMenuClose(event: TransitionEvent): void {\n if (!this.isMenuClosing || event.propertyName !== 'visibility') return;\n if (!(event.target instanceof HTMLElement) || !event.target.classList.contains('modal-content')) return;\n\n this.isMenuClosing = false;\n }\n}\n","<header class=\"header-mobile\" headerScroll [scrollThreshold]=\"60\">\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 || isMenuClosing) && navItems && navItems.length > 0) {\n <lib-nav-modal\n [navItems]=\"navItems\"\n [socialItems]=\"socialItems\"\n [closing]=\"isMenuClosing\"\n (close)=\"closeMenu()\"\n (transitionend)=\"finishMenuClose($event)\"\n ></lib-nav-modal>\n}\n"],"mappings":"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"}
|
|
@@ -39,7 +39,7 @@ var LangModalComponent = class LangModalComponent {
|
|
|
39
39
|
host: { properties: { "class.is-closing": "closing" } },
|
|
40
40
|
ngImport: i0,
|
|
41
41
|
template: "<button\n (click)=\"closeModal()\"\n class=\"close-btn\"\n [class.is-closing]=\"closing\"\n type=\"button\"\n aria-label=\"Close modal\"\n>\n ✕\n</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n @if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track lang.id) {\n <li (click)=\"selectLang(lang)\">\n <span class=\"modal-item\">{{ lang.label }}</span>\n </li>\n }\n </ol>\n }\n</div>\n",
|
|
42
|
-
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.42s}.modal-content{position:relative;z-index:1;opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .34s,visibility 1ms linear 779ms}.close-btn.is-closing{opacity:0;pointer-events:none}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing{transform:none;transition-duration:1ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.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;transition:opacity .18s cubic-bezier(.22,1,.36,1)}ol{padding:0;margin:0;text-align:center;
|
|
42
|
+
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.42s}.modal-content{position:relative;z-index:1;display:grid;justify-items:center;inline-size:fit-content;max-inline-size:calc(100vw - 2rem);opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .34s,visibility 1ms linear 779ms}.close-btn.is-closing{opacity:0;pointer-events:none}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing{transform:none;transition-duration:1ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.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;transition:opacity .18s cubic-bezier(.22,1,.36,1)}ol{padding:0;margin:0;text-align:center;inline-size:fit-content;max-inline-size:100%;list-style:none;counter-reset:item}ol>li{opacity:1;transform:translateY(0);transition:opacity .42s cubic-bezier(.22,1,.36,1) .36s,transform .42s cubic-bezier(.22,1,.36,1) .36s}@starting-style{ol>li{opacity:0;transform:translateY(16px)}}@media(prefers-reduced-motion:reduce){ol>li{transform:none;transition-duration:1ms;transition-delay:0ms}}li{cursor:pointer;text-align:start;text-transform:uppercase;counter-increment:item}li:before{content:counter(item,decimal-leading-zero) \". \"}.modal-item{display:inline-block;padding:4px;border:4px solid transparent;font-size:3.5rem}@media(max-width:768px){.modal-item{font-size:3rem}}.modal-item:hover{background:var(--modal-hover);border:4px solid var(--border-primary)}\n"],
|
|
43
43
|
dependencies: [{
|
|
44
44
|
kind: "ngmodule",
|
|
45
45
|
type: CommonModule
|
|
@@ -61,7 +61,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
61
61
|
host: { "[class.is-closing]": "closing" },
|
|
62
62
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
63
63
|
template: "<button\n (click)=\"closeModal()\"\n class=\"close-btn\"\n [class.is-closing]=\"closing\"\n type=\"button\"\n aria-label=\"Close modal\"\n>\n ✕\n</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n @if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track lang.id) {\n <li (click)=\"selectLang(lang)\">\n <span class=\"modal-item\">{{ lang.label }}</span>\n </li>\n }\n </ol>\n }\n</div>\n",
|
|
64
|
-
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.42s}.modal-content{position:relative;z-index:1;opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .34s,visibility 1ms linear 779ms}.close-btn.is-closing{opacity:0;pointer-events:none}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing{transform:none;transition-duration:1ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.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;transition:opacity .18s cubic-bezier(.22,1,.36,1)}ol{padding:0;margin:0;text-align:center;
|
|
64
|
+
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.42s}.modal-content{position:relative;z-index:1;display:grid;justify-items:center;inline-size:fit-content;max-inline-size:calc(100vw - 2rem);opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .34s,visibility 1ms linear 779ms}.close-btn.is-closing{opacity:0;pointer-events:none}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing{transform:none;transition-duration:1ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.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;transition:opacity .18s cubic-bezier(.22,1,.36,1)}ol{padding:0;margin:0;text-align:center;inline-size:fit-content;max-inline-size:100%;list-style:none;counter-reset:item}ol>li{opacity:1;transform:translateY(0);transition:opacity .42s cubic-bezier(.22,1,.36,1) .36s,transform .42s cubic-bezier(.22,1,.36,1) .36s}@starting-style{ol>li{opacity:0;transform:translateY(16px)}}@media(prefers-reduced-motion:reduce){ol>li{transform:none;transition-duration:1ms;transition-delay:0ms}}li{cursor:pointer;text-align:start;text-transform:uppercase;counter-increment:item}li:before{content:counter(item,decimal-leading-zero) \". \"}.modal-item{display:inline-block;padding:4px;border:4px solid transparent;font-size:3.5rem}@media(max-width:768px){.modal-item{font-size:3rem}}.modal-item:hover{background:var(--modal-hover);border:4px solid var(--border-primary)}\n"]
|
|
65
65
|
}]
|
|
66
66
|
}],
|
|
67
67
|
propDecorators: {
|
|
@@ -102,7 +102,7 @@ var NavModalComponent = class NavModalComponent {
|
|
|
102
102
|
host: { properties: { "class.is-closing": "closing" } },
|
|
103
103
|
ngImport: i0,
|
|
104
104
|
template: "<button (click)=\"closeModal()\" class=\"close-btn\" [class.is-closing]=\"closing\" type=\"button\" aria-label=\"Close menu\">✕</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n\n @if (navItems?.length) {\n <ol>\n @for (item of navItems; track item.name) {\n <a [href]=\"item.url\" [linkType]=\"item.linkType\" (click)=\"closeModal()\">\n <li>\n <span class=\"modal-item\">{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n }\n\n @if (socialItems?.length) {\n <div class=\"btn-group\">\n @for (social of socialItems; track social.label) {\n <a class=\"btn btn-link\" [href]=\"social.url\" [linkType]=\"social.linkType\">\n <ui-icon [name]=\"social.icon!\" [size]=\"17\" [color]=\"'var(--color-primary)'\"></ui-icon>\n {{ social.label }}\n </a>\n }\n </div>\n }\n</div>\n",
|
|
105
|
-
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.66s}.modal-content{position:relative;z-index:1;opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .58s,visibility 1ms linear 1019ms}.modal-content.is-closing ol>a{opacity:0;transform:translateY(16px);transition-delay:.24s;transition-duration:.42s}.modal-content.is-closing .btn-group{opacity:0;transform:translateY(12px);transition-delay:0ms;transition-duration:.22s}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing,ol>a,.btn-group{transform:none;transition-duration:1ms;transition-delay:0ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.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;transition:opacity .18s cubic-bezier(.22,1,.36,1)}.close-btn.is-closing{opacity:0;pointer-events:none;transition-duration:.22s}ol{padding:0;margin:0;text-align:center;
|
|
105
|
+
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.66s}.modal-content{position:relative;z-index:1;display:grid;justify-items:center;inline-size:fit-content;max-inline-size:calc(100vw - 2rem);opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .58s,visibility 1ms linear 1019ms}.modal-content.is-closing ol>a{opacity:0;transform:translateY(16px);transition-delay:.24s;transition-duration:.42s}.modal-content.is-closing .btn-group{opacity:0;transform:translateY(12px);transition-delay:0ms;transition-duration:.22s}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing,ol>a,.btn-group{transform:none;transition-duration:1ms;transition-delay:0ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.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;transition:opacity .18s cubic-bezier(.22,1,.36,1)}.close-btn.is-closing{opacity:0;pointer-events:none;transition-duration:.22s}ol{padding:0;margin:0;text-align:center;inline-size:fit-content;max-inline-size:100%;list-style:none;counter-reset:item}ol>a{display:block;opacity:1;transform:translateY(0);transition:opacity .42s cubic-bezier(.22,1,.36,1) .36s,transform .42s cubic-bezier(.22,1,.36,1) .36s}@starting-style{ol>a{opacity:0;transform:translateY(16px)}}.btn-group{margin-top:0;opacity:1;transform:translateY(0);transition:opacity .22s cubic-bezier(.22,1,.36,1) .8s,transform .22s cubic-bezier(.22,1,.36,1) .8s}@starting-style{.btn-group{opacity:0;transform:translateY(12px)}}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) \". \"}.btn-link{text-transform:none}.modal-item{display:inline-block;padding:4px;border:4px solid transparent}.modal-item:hover{background:var(--modal-hover);border:4px solid var(--border-primary)}@media(max-width:768px){.modal-item{font-size:2.5rem}}\n"],
|
|
106
106
|
dependencies: [
|
|
107
107
|
{
|
|
108
108
|
kind: "ngmodule",
|
|
@@ -147,7 +147,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
147
147
|
host: { "[class.is-closing]": "closing" },
|
|
148
148
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
149
149
|
template: "<button (click)=\"closeModal()\" class=\"close-btn\" [class.is-closing]=\"closing\" type=\"button\" aria-label=\"Close menu\">✕</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n\n @if (navItems?.length) {\n <ol>\n @for (item of navItems; track item.name) {\n <a [href]=\"item.url\" [linkType]=\"item.linkType\" (click)=\"closeModal()\">\n <li>\n <span class=\"modal-item\">{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n }\n\n @if (socialItems?.length) {\n <div class=\"btn-group\">\n @for (social of socialItems; track social.label) {\n <a class=\"btn btn-link\" [href]=\"social.url\" [linkType]=\"social.linkType\">\n <ui-icon [name]=\"social.icon!\" [size]=\"17\" [color]=\"'var(--color-primary)'\"></ui-icon>\n {{ social.label }}\n </a>\n }\n </div>\n }\n</div>\n",
|
|
150
|
-
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.66s}.modal-content{position:relative;z-index:1;opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .58s,visibility 1ms linear 1019ms}.modal-content.is-closing ol>a{opacity:0;transform:translateY(16px);transition-delay:.24s;transition-duration:.42s}.modal-content.is-closing .btn-group{opacity:0;transform:translateY(12px);transition-delay:0ms;transition-duration:.22s}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing,ol>a,.btn-group{transform:none;transition-duration:1ms;transition-delay:0ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.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;transition:opacity .18s cubic-bezier(.22,1,.36,1)}.close-btn.is-closing{opacity:0;pointer-events:none;transition-duration:.22s}ol{padding:0;margin:0;text-align:center;
|
|
150
|
+
styles: [":host{position:fixed;inset:0;width:100vw;height:100vh;background:transparent;isolation:isolate;z-index:1000;display:flex;align-items:center;justify-content:center}:host:before{content:\"\";position:absolute;inset:0;z-index:0;background:var(--modal-bg);opacity:1;transform:scaleY(1);transform-origin:top center;transition:transform .36s cubic-bezier(.22,1,.36,1),opacity .36s cubic-bezier(.22,1,.36,1)}@starting-style{:host:before{opacity:0;transform:scaleY(0)}}:host.is-closing:before{transform-origin:top center;opacity:0;transform:scaleY(0);transition-delay:.66s}.modal-content{position:relative;z-index:1;display:grid;justify-items:center;inline-size:fit-content;max-inline-size:calc(100vw - 2rem);opacity:1;transform:translateY(0) scale(1);transform-origin:center;transition:opacity .26s cubic-bezier(.22,1,.36,1) .18s}@starting-style{.modal-content{opacity:0}}.modal-content.is-closing{opacity:0;visibility:hidden;transition:opacity .26s cubic-bezier(.22,1,.36,1) .58s,visibility 1ms linear 1019ms}.modal-content.is-closing ol>a{opacity:0;transform:translateY(16px);transition-delay:.24s;transition-duration:.42s}.modal-content.is-closing .btn-group{opacity:0;transform:translateY(12px);transition-delay:0ms;transition-duration:.22s}@media(prefers-reduced-motion:reduce){.modal-content,.modal-content.is-closing,ol>a,.btn-group{transform:none;transition-duration:1ms;transition-delay:0ms}:host:before,:host.is-closing:before{opacity:0;transform:scaleY(0);transition-delay:0ms;transition-duration:1ms}}.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;transition:opacity .18s cubic-bezier(.22,1,.36,1)}.close-btn.is-closing{opacity:0;pointer-events:none;transition-duration:.22s}ol{padding:0;margin:0;text-align:center;inline-size:fit-content;max-inline-size:100%;list-style:none;counter-reset:item}ol>a{display:block;opacity:1;transform:translateY(0);transition:opacity .42s cubic-bezier(.22,1,.36,1) .36s,transform .42s cubic-bezier(.22,1,.36,1) .36s}@starting-style{ol>a{opacity:0;transform:translateY(16px)}}.btn-group{margin-top:0;opacity:1;transform:translateY(0);transition:opacity .22s cubic-bezier(.22,1,.36,1) .8s,transform .22s cubic-bezier(.22,1,.36,1) .8s}@starting-style{.btn-group{opacity:0;transform:translateY(12px)}}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) \". \"}.btn-link{text-transform:none}.modal-item{display:inline-block;padding:4px;border:4px solid transparent}.modal-item:hover{background:var(--modal-hover);border:4px solid var(--border-primary)}@media(max-width:768px){.modal-item{font-size:2.5rem}}\n"]
|
|
151
151
|
}]
|
|
152
152
|
}],
|
|
153
153
|
propDecorators: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lluc_llull-ui-lib-modals.mjs","names":[],"sources":["../../../projects/ui-lib/modals/lang-modal/lang-modal.component.ts","../../../projects/ui-lib/modals/lang-modal/lang-modal.component.html","../../../projects/ui-lib/modals/nav-modal/nav-modal.component.ts","../../../projects/ui-lib/modals/nav-modal/nav-modal.component.html"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { UiLibLangItemI } from '@lluc_llull/ui-lib/interfaces';\n\n@Component({\n selector: 'lib-lang-modal',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './lang-modal.component.html',\n styleUrl: './lang-modal.component.scss',\n host: {\n '[class.is-closing]': 'closing',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LangModalComponent {\n @Input() langs: UiLibLangItemI[] = [];\n @Input() closing = false;\n\n @Output() close = new EventEmitter<void>();\n @Output() select = new EventEmitter<UiLibLangItemI>();\n\n selectLang(lang: UiLibLangItemI) {\n this.select.emit(lang);\n }\n\n closeModal() {\n this.close.emit();\n }\n}\n","<button\n (click)=\"closeModal()\"\n class=\"close-btn\"\n [class.is-closing]=\"closing\"\n type=\"button\"\n aria-label=\"Close modal\"\n>\n ✕\n</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n @if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track lang.id) {\n <li (click)=\"selectLang(lang)\">\n <span class=\"modal-item\">{{ lang.label }}</span>\n </li>\n }\n </ol>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport { UiLibNavItemsI, UiLibSocialItemsI } from '@lluc_llull/ui-lib/interfaces';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-nav-modal',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective, UiIconComponent],\n templateUrl: './nav-modal.component.html',\n styleUrl: './nav-modal.component.scss',\n host: {\n '[class.is-closing]': 'closing',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavModalComponent {\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() closing = false;\n\n @Output() close = new EventEmitter<void>();\n\n closeModal() {\n this.close.emit();\n }\n}\n","<button (click)=\"closeModal()\" class=\"close-btn\" [class.is-closing]=\"closing\" type=\"button\" aria-label=\"Close menu\">✕</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n\n @if (navItems?.length) {\n <ol>\n @for (item of navItems; track item.name) {\n <a [href]=\"item.url\" [linkType]=\"item.linkType\" (click)=\"closeModal()\">\n <li>\n <span class=\"modal-item\">{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n }\n\n @if (socialItems?.length) {\n <div class=\"btn-group\">\n @for (social of socialItems; track social.label) {\n <a class=\"btn btn-link\" [href]=\"social.url\" [linkType]=\"social.linkType\">\n <ui-icon [name]=\"social.icon!\" [size]=\"17\" [color]=\"'var(--color-primary)'\"></ui-icon>\n {{ social.label }}\n </a>\n }\n </div>\n }\n</div>\n"],"mappings":";;;;;AAeA,IAAa,qBAAb,MAAa,mBAAkB;CAClB,QAA0B,CAAA;CAC1B,UAAU;CAET,QAAQ,IAAI,aAAY;CACxB,SAAS,IAAI,aAAY;CAEnC,WAAW,MAAoB;EAC3B,KAAK,OAAO,KAAK,IAAI;CACzB;CAEA,aAAU;EACN,KAAK,MAAM,KAAI;CACnB;CAbS,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAkB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAlB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAkB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,OAAA;GAAA,SAAA;EAAA;EAAA,SAAA;GAAA,OAAA;GAAA,QAAA;EAAA;EAAA,MAAA,EAAA,YAAA,EAAA,oBAAA,UAAA,EAAA;EAAA,UAAA;EAAA,UCf/B;EAoBA,QAAA,CAAA,
|
|
1
|
+
{"version":3,"file":"lluc_llull-ui-lib-modals.mjs","names":[],"sources":["../../../projects/ui-lib/modals/lang-modal/lang-modal.component.ts","../../../projects/ui-lib/modals/lang-modal/lang-modal.component.html","../../../projects/ui-lib/modals/nav-modal/nav-modal.component.ts","../../../projects/ui-lib/modals/nav-modal/nav-modal.component.html"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { UiLibLangItemI } from '@lluc_llull/ui-lib/interfaces';\n\n@Component({\n selector: 'lib-lang-modal',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './lang-modal.component.html',\n styleUrl: './lang-modal.component.scss',\n host: {\n '[class.is-closing]': 'closing',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LangModalComponent {\n @Input() langs: UiLibLangItemI[] = [];\n @Input() closing = false;\n\n @Output() close = new EventEmitter<void>();\n @Output() select = new EventEmitter<UiLibLangItemI>();\n\n selectLang(lang: UiLibLangItemI) {\n this.select.emit(lang);\n }\n\n closeModal() {\n this.close.emit();\n }\n}\n","<button\n (click)=\"closeModal()\"\n class=\"close-btn\"\n [class.is-closing]=\"closing\"\n type=\"button\"\n aria-label=\"Close modal\"\n>\n ✕\n</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n @if (langs && langs.length > 0) {\n <ol>\n @for (lang of langs; track lang.id) {\n <li (click)=\"selectLang(lang)\">\n <span class=\"modal-item\">{{ lang.label }}</span>\n </li>\n }\n </ol>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { LinkTypeDirective } from '@lluc_llull/ui-lib/directives';\nimport { UiLibNavItemsI, UiLibSocialItemsI } from '@lluc_llull/ui-lib/interfaces';\nimport { UiIconComponent } from '@lluc_llull/ui-lib/shared';\n\n@Component({\n selector: 'lib-nav-modal',\n standalone: true,\n imports: [CommonModule, LinkTypeDirective, UiIconComponent],\n templateUrl: './nav-modal.component.html',\n styleUrl: './nav-modal.component.scss',\n host: {\n '[class.is-closing]': 'closing',\n },\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NavModalComponent {\n @Input() navItems?: UiLibNavItemsI[];\n @Input() socialItems?: UiLibSocialItemsI[];\n @Input() closing = false;\n\n @Output() close = new EventEmitter<void>();\n\n closeModal() {\n this.close.emit();\n }\n}\n","<button (click)=\"closeModal()\" class=\"close-btn\" [class.is-closing]=\"closing\" type=\"button\" aria-label=\"Close menu\">✕</button>\n<div class=\"modal-content\" [class.is-closing]=\"closing\">\n\n @if (navItems?.length) {\n <ol>\n @for (item of navItems; track item.name) {\n <a [href]=\"item.url\" [linkType]=\"item.linkType\" (click)=\"closeModal()\">\n <li>\n <span class=\"modal-item\">{{ item.label }}</span>\n </li>\n </a>\n }\n </ol>\n }\n\n @if (socialItems?.length) {\n <div class=\"btn-group\">\n @for (social of socialItems; track social.label) {\n <a class=\"btn btn-link\" [href]=\"social.url\" [linkType]=\"social.linkType\">\n <ui-icon [name]=\"social.icon!\" [size]=\"17\" [color]=\"'var(--color-primary)'\"></ui-icon>\n {{ social.label }}\n </a>\n }\n </div>\n }\n</div>\n"],"mappings":";;;;;AAeA,IAAa,qBAAb,MAAa,mBAAkB;CAClB,QAA0B,CAAA;CAC1B,UAAU;CAET,QAAQ,IAAI,aAAY;CACxB,SAAS,IAAI,aAAY;CAEnC,WAAW,MAAoB;EAC3B,KAAK,OAAO,KAAK,IAAI;CACzB;CAEA,aAAU;EACN,KAAK,MAAM,KAAI;CACnB;CAbS,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAkB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAlB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAkB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,OAAA;GAAA,SAAA;EAAA;EAAA,SAAA;GAAA,OAAA;GAAA,QAAA;EAAA;EAAA,MAAA,EAAA,YAAA,EAAA,oBAAA,UAAA,EAAA;EAAA,UAAA;EAAA,UCf/B;EAoBA,QAAA,CAAA,2vEAAA;EAAA,cAAA,CAAA;GAAA,MAAA;GAAA,MDbc;EAAY,CAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAQb,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAkB,YAAA,CAAA;EAX9B,MAAA;EACa,MAAA,CAAA;GAAA,UAAA;GAAgB,YACd;GAAI,SACP,CAAC,YAAY;GAAC,MAGjB,EACF,sBAAsB,UACzB;GAAA,iBACgB,wBAAwB;GAAM,UAAA;GAAA,QAAA,CAAA,2vEAAA;EAAA,CAAA;;;E,UAG9C,MAAA,M;E,YACA,MAAA,M;E,UAEA,MAAA,O;E,WACA,MAAA,O;;;AEHL,IAAa,oBAAb,MAAa,kBAAiB;CACjB;CACA;CACA,UAAU;CAET,QAAQ,IAAI,aAAY;CAElC,aAAU;EACN,KAAK,MAAM,KAAI;CACnB;CATS,OAAA,OAAA,GAAA,mBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,UAAA;EAAA,MAAA;EAAiB,MAAA,CAAA;EAAA,QAAA,GAAA,gBAAA;CAAA,CAAA;CAAjB,OAAA,OAAA,GAAA,qBAAA;EAAA,YAAA;EAAA,SAAA;EAAA,MAAA;EAAiB,cAAA;EAAA,UAAA;EAAA,QAAA;GAAA,UAAA;GAAA,aAAA;GAAA,SAAA;EAAA;EAAA,SAAA,EAAA,OAAA,QAAA;EAAA,MAAA,EAAA,YAAA,EAAA,oBAAA,UAAA,EAAA;EAAA,UAAA;EAAA,UCjB9B;EA0BA,QAAA,CAAA,ouFAAA;EAAA,cAAA;GAAA;IAAA,MAAA;IAAA,MDjBc;GAAY;GAAA;IAAA,MAAA;IAAA,MAAE;IAAiB,UAAA;IAAA,QAAA,CAAA,YAAA,MAAA;IAAA,SAAA,CAAA,eAAA;GAAA;GAAA;IAAA,MAAA;IAAA,MAAE;IAAe,UAAA;IAAA,QAAA;KAAA;KAAA;KAAA;IAAA;GAAA;EAAA;EAAA,iBAAA,GAAA,wBAAA;CAAA,CAAA;;AAQjD,GAAA,yBAAA;CAAA,YAAA;CAAA,SAAA;CAAA,UAAA;CAAA,MAAA;CAAiB,YAAA,CAAA;EAX7B,MAAA;EACa,MAAA,CAAA;GAAA,UAAA;GAAe,YACb;GAAI,SACP;IAAC;IAAc;IAAmB;GAAe;GAAC,MAGrD,EACF,sBAAsB,UACzB;GAAA,iBACgB,wBAAwB;GAAM,UAAA;GAAA,QAAA,CAAA,ouFAAA;EAAA,CAAA;;;E,aAG9C,MAAA,M;E,gBACA,MAAA,M;E,YACA,MAAA,M;E,UAEA,MAAA,O"}
|
|
@@ -3,7 +3,7 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
import { Component, HostBinding, Inject, Input, Optional } from "@angular/core";
|
|
4
4
|
import * as simpleIcons from "simple-icons";
|
|
5
5
|
import * as i1$1 from "lucide-angular";
|
|
6
|
-
import { ArrowLeft, ArrowRight, Home, LUCIDE_ICONS, LucideAngularModule, LucideIconProvider, Moon, MoveRight, Sun } from "lucide-angular";
|
|
6
|
+
import { ArrowLeft, ArrowRight, ArrowUpRight, Home, LUCIDE_ICONS, LucideAngularModule, LucideIconProvider, Moon, MoveRight, Sun } from "lucide-angular";
|
|
7
7
|
import * as i1 from "@cloudinary/ng";
|
|
8
8
|
import { CloudinaryModule, lazyload, responsive } from "@cloudinary/ng";
|
|
9
9
|
import { CloudinaryImage } from "@cloudinary/url-gen";
|
|
@@ -59,6 +59,7 @@ var UiIconComponent = class UiIconComponent {
|
|
|
59
59
|
useValue: new LucideIconProvider({
|
|
60
60
|
ArrowLeft,
|
|
61
61
|
ArrowRight,
|
|
62
|
+
ArrowUpRight,
|
|
62
63
|
Home,
|
|
63
64
|
Moon,
|
|
64
65
|
MoveRight,
|
|
@@ -112,6 +113,7 @@ i0.ɵɵngDeclareClassMetadata({
|
|
|
112
113
|
useValue: new LucideIconProvider({
|
|
113
114
|
ArrowLeft,
|
|
114
115
|
ArrowRight,
|
|
116
|
+
ArrowUpRight,
|
|
115
117
|
Home,
|
|
116
118
|
Moon,
|
|
117
119
|
MoveRight,
|