{"file":"patternlib-footer.entry.js","mappings":"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","names":[],"sources":["./src/components/footer/patternlib-footer/patternlib-footer.scss?tag=patternlib-footer&encapsulation=shadow","./src/components/footer/patternlib-footer/patternlib-footer.tsx"],"sourcesContent":["@mixin link {\n @apply text-gray-400 font-text no-underline cursor-pointer;\n}\n\n.footer {\n @apply flex w-full bg-black;\n\n .footer-container {\n @apply w-full font-text pt-[60px] pb-[20px] px-[120px];\n\n .footer-wrapper {\n @apply flex flex-wrap justify-between;\n\n .footer-section {\n @apply mt-[10px] mr-[10px] mb-[60px] ml-[10px] w-[240px];\n\n .footer-section-title {\n @apply font-text-bold text-copy leading-[40px] text-white pb-[20px];\n }\n\n .footer-section-item {\n @apply leading-[40px];\n\n a {\n @include link;\n @apply text-white text-copy-smaller font-medium;\n }\n }\n }\n }\n }\n\n .footer-bottom {\n @apply flex relative justify-between items-center w-full font-text text-copy-smaller font-medium text-gray-400;\n\n .footer-liebherr-icon {\n @apply cursor-pointer;\n padding: 0 0.8vw 0 10px;\n }\n\n .footer-additional-link {\n @apply flex leading-[30px];\n\n .footer-section-item {\n padding: 0 1.5vw 0 0;\n a {\n @include link;\n }\n }\n }\n\n .footer-arrow-icon {\n @apply absolute z-10 right-[-76px] bottom-[4px] cursor-pointer;\n }\n }\n\n .footer-portal {\n @apply w-full h-[96px] items-center justify-between flex-nowrap;\n\n & .footer-liebherr-icon {\n @apply pl-[120px] cursor-pointer;\n }\n\n .footer-portal-text {\n div {\n @apply px-[20px];\n }\n\n @apply text-white leading-4 font-text text-copy-extra-small;\n\n a {\n @include link;\n }\n }\n }\n}\n\n@media (max-width: theme('screens.md')) {\n .footer {\n .area-two {\n grid-area: 2 / 1 / auto / auto;\n }\n\n .area-three {\n grid-area: 2 / 2 / auto / auto;\n @apply pr-[20px] pb-[48px];\n }\n }\n}\n\n@media (max-width: theme('screens.xl')) {\n .footer {\n .footer-container {\n @apply pb-[40px];\n .footer-wrapper {\n padding: 60px 0 0 0;\n .footer-section {\n .footer-section-title {\n @apply pb-[0];\n }\n }\n }\n\n .footer-additional-link {\n .footer-section-item:last-child {\n @apply pb-[74px];\n }\n\n @apply block px-[10px] py-0;\n\n .footer-section-item {\n @apply leading-[40px] text-copy-smaller;\n a {\n @include link;\n }\n }\n }\n }\n\n .footer-bottom {\n @apply flex justify-between;\n\n .footer-arrow-icon {\n @apply relative right-0 bottom-0;\n }\n\n .footer-additional-link {\n @apply hidden;\n }\n }\n\n .footer-portal {\n & .footer-liebherr-icon {\n @apply pl-[20px];\n }\n }\n }\n}\n\n@media (max-width: theme('screens.lg')) {\n .footer {\n .footer-container {\n .footer-additional-link {\n .footer-section-item:last-child {\n @apply pb-[74px];\n }\n }\n }\n }\n}\n\n@media (max-width: theme('screens.md')) {\n .footer {\n .footer-container {\n padding: 40px 40px 40px 60px;\n\n .footer-wrapper {\n @apply p-0;\n }\n }\n }\n}\n\n@media (max-width: theme('screens.md')) {\n .footer {\n .footer-portal {\n @apply h-auto;\n\n & .footer-liebherr-icon {\n @apply pb-[48px];\n }\n\n .footer-portal-text {\n @apply pb-[48px];\n div {\n @apply pb-[24px];\n }\n }\n }\n }\n}\n","import { Component, Element, Event, EventEmitter, h, Method, Prop, Watch } from '@stencil/core';\n\nimport { ClassNames, LhClickArrowTop, LhClickBrandLogo, LhClickLink } from '../../../utils/interfaces';\n\nconst arrowTop = (\n \n \n \n \n);\n\nconst logo = (\n \n \n \n);\n\nexport interface LinksValue {\n title: string;\n items: LinksValueItem[];\n}\nexport interface LinksValueItem {\n label: string;\n to: string;\n itemId: number | string;\n target: '_blank' | '_self' | '_parent' | '_top';\n}\n\nexport interface AdditionalLinksValue {\n label: string;\n to: string;\n itemId: number | string;\n target: '_blank' | '_self' | '_parent' | '_top';\n}\n\n@Component({\n tag: 'patternlib-footer',\n styleUrl: 'patternlib-footer.scss',\n shadow: true,\n})\nexport class PatternlibFooter {\n private _links: LinksValue[] = [];\n private _additionalLinks: AdditionalLinksValue[] = [];\n\n @Element() hostElement: HTMLPatternlibFooterElement;\n\n /**\n * Pass an array to the footer, which contains title and items\n */\n @Prop() links: LinksValue[] | string = '';\n\n /**\n * Pass an array to the footer, which contains label and url\n */\n @Prop() additionalLinks: AdditionalLinksValue[] | string = '';\n\n /**\n * Define to show or hidden the arrow to top icon on the footer\n */\n @Prop() showArrowIcon = false;\n\n /**\n * Provide a method to be triggered each time the arrow-top icon is clicked.\n **/\n @Event({ eventName: 'lhClickArrowTop' }) clickArrowTop: EventEmitter;\n /**\n * Provide a method to be triggered each time a link is clicked.\n */\n @Event({ eventName: 'lhClickLink' }) clickLink: EventEmitter;\n /**\n * Provide a method to be triggered each time the brand-logo is clicked.\n */\n @Event({ eventName: 'lhClickBrandLogo' }) clickBrandLogo: EventEmitter;\n\n @Watch('links')\n arrayLinksWatcher(newValue: LinksValue[] | string): void {\n if (typeof newValue === 'string' && newValue != '') {\n this._links = JSON.parse(newValue);\n } else if (Array.isArray(newValue)) {\n this._links = newValue;\n } else {\n this._links = [];\n }\n }\n\n @Watch('additionalLinks')\n arrayAdditionalLinksWatcher(newValue: AdditionalLinksValue[] | string): void {\n if (typeof newValue === 'string' && newValue != '') {\n this._additionalLinks = JSON.parse(newValue);\n } else if (Array.isArray(newValue)) {\n this._additionalLinks = newValue;\n } else {\n this._additionalLinks = [];\n }\n }\n\n /**\n * Set the prop screenSize from outside (e.g. ResizeObserver)\n * @param {ScreenSize['screen']} screen - The size of the Screen\n * @deprecated\n */\n @Method()\n async setScreenSize(_: any): Promise {\n return;\n }\n\n componentWillLoad(): void {\n this.arrayLinksWatcher(this.links);\n this.arrayAdditionalLinksWatcher(this.additionalLinks);\n }\n\n private openLink = (itemId: number | string) => () => {\n if (itemId !== null) {\n this.clickLink.emit({ itemId: itemId });\n }\n };\n\n private handleArrowTopClick = () => {\n this.clickArrowTop.emit();\n };\n\n private handleBrandLogoClick = () => {\n this.clickBrandLogo.emit();\n };\n\n private ifNoLinks = (): boolean => {\n return this.links == null || this.links === '' || (Array.isArray(this.links) && (this.links as LinksValue[]).length === 0);\n };\n\n render(): any {\n const footerClass: ClassNames = {\n footer: true,\n };\n\n const footerContainerClass: ClassNames = {\n 'footer-container': true,\n };\n\n const footerWrapperClass: ClassNames = {\n 'footer-wrapper': true,\n };\n\n const footerSectionClass: ClassNames = {\n 'footer-section': true,\n };\n\n const footerSectionTitleClass: ClassNames = {\n 'footer-section-title': true,\n };\n\n const footerSectionItemClass: ClassNames = {\n 'footer-section-item': true,\n };\n\n const footerBottomClass: ClassNames = {\n 'footer-bottom': true,\n };\n\n const liebherrIconClass: ClassNames = {\n 'footer-liebherr-icon': true,\n 'area-two': this.ifNoLinks(),\n 'w-[163px] sm:w-[124px] box-content': true,\n };\n\n const arrowIconClass: ClassNames = {\n 'footer-arrow-icon': true,\n 'pr-[24px]': this.ifNoLinks() && this.showArrowIcon,\n 'area-three': this.ifNoLinks(),\n };\n\n const additionalLinksClass: ClassNames = {\n 'hidden lg:block footer-additional-link': true,\n };\n\n const footerPortalClass: ClassNames = {\n 'footer-portal grid tablet:flex md:pt-0': true,\n 'pt-[60px]': this.ifNoLinks(),\n };\n\n const footerPortalTextClass: ClassNames = { 'flex flex-col tablet:flex-row footer-portal-text': true };\n\n const logoInFooter = (\n
\n {logo}\n
\n );\n\n const footerPortal = (\n
\n {logoInFooter}\n
\n {this._additionalLinks.map(item => {\n return (\n \n );\n })}\n
\n
\n {this.showArrowIcon ? arrowTop : ''}\n
\n
\n );\n\n const footerBottom = (\n
\n {logoInFooter}\n\n
\n {this._additionalLinks.map(item => {\n return (\n \n );\n })}\n
\n
\n {this.showArrowIcon ? arrowTop : ''}\n
\n
\n );\n\n const footerDefault = (\n
\n
\n {this._links.map(sectionItem => {\n return (\n
\n
{sectionItem.title}
\n {sectionItem.items.map(item => {\n return (\n \n );\n })}\n
\n );\n })}\n
\n
\n {this._additionalLinks.map(item => {\n return (\n \n );\n })}\n
\n {footerBottom}\n
\n );\n\n return ;\n }\n}\n"],"version":3}