{"version":3,"file":"footer.DZAWJOiw.js","sources":["../../../../../packages/icons-web/src/lib/icons/facebook/facebook.ts","../../../../../packages/icons-web/src/lib/icons/twitter/twitter.ts","../../../../../packages/icons-web/src/lib/icons/linkedin/linkedin.ts","../../../../../packages/icons-web/src/lib/icons/youtube/youtube.ts","../../../../../packages/icons-web/src/lib/icons/instagram/instagram.ts","../../../../../packages/icons-web/src/lib/icons/whatsapp/whatsapp.ts","../../../../../packages/web-components/src/lib/components/footer/footer.ts"],"sourcesContent":["import { html } from 'lit';\nimport { pdsCustomIconElement as customElement } from '../../../decorators/pds-icon';\nimport { PdsCustomIcon } from '../PdsCustomIcon';\n\n@customElement('pds-icon-facebook')\nexport class PdsIconFacebook extends PdsCustomIcon {\n render() {\n return html``;\n }\n}\n","import { html } from 'lit';\nimport { pdsCustomIconElement as customElement } from '../../../decorators/pds-icon';\nimport { PdsCustomIcon } from '../PdsCustomIcon';\n\n@customElement('pds-icon-twitter')\nexport class PdsIconTwitter extends PdsCustomIcon {\n render() {\n return html``;\n }\n}\n","import { html } from 'lit';\nimport { pdsCustomIconElement as customElement } from '../../../decorators/pds-icon';\nimport { PdsCustomIcon } from '../PdsCustomIcon';\n\n@customElement('pds-icon-linkedin')\nexport class PdsIconLinkedin extends PdsCustomIcon {\n render() {\n return html``;\n }\n}\n","import { html } from 'lit';\nimport { pdsCustomIconElement as customElement } from '../../../decorators/pds-icon';\nimport { PdsCustomIcon } from '../PdsCustomIcon';\n\n@customElement('pds-icon-youtube')\nexport class PdsIconYoutube extends PdsCustomIcon {\n render() {\n return html``;\n }\n}\n","import { html } from 'lit';\nimport { pdsCustomIconElement as customElement } from '../../../decorators/pds-icon';\nimport { PdsCustomIcon } from '../PdsCustomIcon';\n\n@customElement('pds-icon-instagram')\nexport class PdsIconInstagram extends PdsCustomIcon {\n render() {\n return html``;\n }\n}\n","import { html } from 'lit';\nimport { pdsCustomIconElement as customElement } from '../../../decorators/pds-icon';\nimport { PdsCustomIcon } from '../PdsCustomIcon';\n\n@customElement('pds-icon-whatsapp')\nexport class PdsIconWhatsapp extends PdsCustomIcon {\n render() {\n return html``;\n }\n}\n","import { html, nothing } from 'lit';\nimport { property, query, queryAssignedElements } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { pdsCustomElement as customElement } from '../../decorators/pds-custom-element';\nimport { PdsElement } from '../PdsElement';\nimport styles from './footer.scss?inline';\nimport '@principal/design-system-icons-web/facebook';\nimport '@principal/design-system-icons-web/twitter';\nimport '@principal/design-system-icons-web/linkedin';\nimport '@principal/design-system-icons-web/youtube';\nimport '@principal/design-system-icons-web/instagram';\nimport '@principal/design-system-icons-web/whatsapp';\nimport '../band/band';\nimport '../accordion/accordion';\nimport '../footer-nav/footer-nav';\nimport '../footer-nav-item/footer-nav-item';\nimport '../heading/heading';\nimport '../layout-container/layout-container';\nimport '../link/link';\nimport '../list/list';\nimport '../list-item/list-item';\nimport '../logo/logo';\nimport '../footer-contact-link/footer-contact-link';\n\nexport type SocialIconObject = {\n type:\n | 'facebook'\n | 'linkedin'\n | 'twitter'\n | 'youtube'\n | 'instagram'\n | 'whatsapp';\n url: string;\n ariaLabel: string;\n};\n\n/**\n * @summary The 亚洲无码footer component\n *\n * @slot default Optional: A pds-footer-nav element containing one or more pds-footer-nav-item elements\n * @slot heading Optional: Heading for the footer\n * @slot additional-info Optional: Adds an additional info section into the superFooter\n * @slot legal-text Optional: Custom legal text\n * @slot logo Optional: Custom logo, restricted to pds-logo, img, and svg elements\n * @slot custom-contact Optional: Custom contact links, restricted to pds-list elements\n * @slot custom-legal-links Optional: Custom links appended to the end of the Legal links, restricted to pds-list elements\n * @slot social-icons Optional: Override of the default social icons, restricted to pds-list elements\n */\n@customElement('pds-footer', {\n category: 'component',\n type: 'component',\n state: 'stable',\n styles,\n})\nexport class PdsFooter extends PdsElement {\n connectedCallback() {\n super.connectedCallback();\n this.initLocalization();\n }\n /**\n * - **default** renders the footer-nav used for primary actions on a dark background\n * - **subtle** renders the footer-nav-item used for primary actions on a subtle background\n */\n\n @property({ type: String })\n variant: 'default' | 'subtle' = 'default';\n\n /**\n * - Specifes target to open the linked document\n */\n @property()\n target?: '_self' | '_blank' | '_parent' | '_top' = '_self';\n\n /**\n * Specifies information about a linked document\n * Automatically set to 'noopener noreferrer' when target is '_blank'\n */\n @property()\n rel?: string;\n\n /**\n * Hide default contact phone link\n */\n @property({ type: Boolean })\n hideContactPhone: boolean = false;\n\n /**\n * Hide default help link\n */\n @property({ type: Boolean })\n hideHelpLink: boolean = false;\n\n /**\n * Hide default contact link\n */\n @property({ type: String })\n hideContactLink: boolean = false;\n\n /**\n * Link for 'Trouble logging in?' prompt\n */\n @property({ type: String })\n loginSupportLink: string = '/help';\n\n /**\n * Web link for terms of use guidelines\n */\n @property({ type: String })\n termsOfUseLink: string = '/terms-of-use';\n\n /**\n * Web link for disclosures\n */\n @property({ type: String })\n disclosuresLink: string =\n '/products-services-disclosures';\n\n /**\n * Web link for privacy policy\n */\n @property({ type: String })\n privacyLink: string = '/privacy-policies';\n\n /**\n * Web link for security policy\n */\n @property({ type: String })\n securityLink: string = '/security-policies';\n\n /**\n * Web link for reporting fraud\n */\n @property({ type: String })\n reportFraudLink: string =\n '/about-us/our-company/policies/report-fraud-or-unethical-conduct';\n\n /**\n * Web link for accessibility commitment\n */\n @property({ type: String })\n accessibilityLink: string =\n '/accessibility-commitment';\n\n /**\n * Context-specific footer behavior\n * - **login** provides a link for login assistance\n * - **super** provides logo above an optional footer nav populated with footer nav items\n */\n @property({ type: String })\n behavior: 'login' | 'super' | 'default' = 'default';\n\n /**\n * Link for the logo\n */\n @property({ type: String })\n logohref: string = '';\n\n /**\n * String for a custom aria label describing the logo element\n * - By default, aria label for the logo will read \"Link to 亚洲无码homepage\"\n * - Pass a string of \"false\" in order to suppress the aria label attribute\n */\n @property()\n logoAriaLabel: string;\n\n /**\n * Set to true to hide the logo in a super footer. This is NOT recommended unless you have a sticky header that will cause incorrect vertical alignment on the page.\n */\n @property({ type: Boolean })\n hideLogo: boolean = false;\n\n /**\n * Hide the social icons\n */\n @property({ type: Boolean })\n hideSocialIcons: boolean = false;\n\n /**\n * show mobile app badges\n */\n @property({ type: Boolean })\n showMobileAppBadges: boolean = false;\n\n /**\n * Hide all the legal links\n */\n @property({ type: Boolean })\n hideLegalLinks: boolean = false;\n\n /**\n * Hide terms of use link\n */\n @property({ type: Boolean })\n hideTermsOfUseLink: boolean = false;\n\n /**\n * Hide disclosure link\n */\n @property({ type: Boolean })\n hideDisclosureLink: boolean = false;\n\n /**\n * Hide privacy link\n */\n @property({ type: Boolean })\n hidePrivacyLink: boolean = false;\n\n /**\n * Hide security link\n */\n @property({ type: Boolean })\n hideSecurityLink: boolean = false;\n\n /**\n * Hide report fraud link\n */\n @property({ type: Boolean })\n hideReportFraudLink: boolean = false;\n\n /**\n * Hide accesibility commitment link\n */\n @property({ type: Boolean })\n hideAccessibilityLink: boolean = false;\n\n /**\n * Aria label for legal-nav\n */\n @property()\n legalNavAriaLabel: string;\n\n /**\n * variant for layout container\n * - **narrow** renders the layout-container narrower than the default\n */\n @property({ type: String })\n layoutContainerVariant: 'default' | 'narrow' = 'default';\n\n /**\n * Remove layout container padding\n * - **md** removes padding from the layout container below md breakpoint\n * - **all** removes padding from the layout container at all screens (used for nested layout containers)\n */\n @property({ type: String })\n layoutContainerRemovePadding?: 'md' | 'all';\n\n /**\n * @internal\n */\n @queryAssignedElements({ slot: undefined, selector: 'pds-footer-nav' })\n footerNavs: HTMLElement[];\n\n /**\n * @internal\n */\n @queryAssignedElements({ slot: 'custom-contact' })\n customContactLinks: HTMLElement[];\n\n /**\n * @internal\n */\n @queryAssignedElements({ slot: 'custom-legal-links' })\n customLegalLinks: HTMLElement[];\n\n /**\n * @internal\n */\n @queryAssignedElements({ slot: 'social-icons' })\n customSocialIcons: HTMLElement[];\n\n /**\n * @internal\n */\n @query('.pds-c-footer__contact-navigation')\n contactNav: HTMLElement;\n\n /**\n * @internal\n */\n @query('.pds-c-footer__legal-nav')\n legalNav: HTMLElement;\n\n /**\n * @internal\n */\n addVariantToFooterNavs() {\n const accordionVariant = this.variant === 'default' ? 'inverted' : 'strong';\n\n if (this.footerNavs && this.footerNavs.length !== 0) {\n this.footerNavs.forEach((footerNavItem) => {\n footerNavItem.setAttribute('variant', accordionVariant);\n });\n }\n\n return '';\n }\n\n protected override firstUpdated() {\n super.firstUpdated();\n this.setWindowResizeHandler();\n this.addVariantToFooterNavs();\n this.setCustomSocialIconStyles();\n this.handleSlotValidation('custom-contact');\n this.handleSlotValidation('social-icons');\n // Need to wrap this in a setTimeout to prevent\n // hydration issues with the custom legal links\n // since they are appended in the DOM\n setTimeout(() => {\n this.insertCustomLegalLinks();\n }, 1000);\n }\n\n updated() {\n this.setCustomContactStyles();\n this.setContactNavStyles();\n }\n\n /**\n * @internal\n */\n getCurrentYear(): string {\n return new Date().getFullYear().toString();\n }\n\n /**\n * @internal\n */\n setLinkVariant() {\n // this assignment looks counterintuitive, but the \"default\" footer color scheme is inverted, not default\n return this.variant === 'default' ? 'inverted' : 'default';\n }\n\n /**\n * @internal\n */\n setBandVariant() {\n return this.variant === 'default' ? 'strong' : 'subtle';\n }\n\n /**\n * @internal\n */\n setEmphasisLinkVariant() {\n return this.variant === 'default' ? 'emphasis-inverted' : 'emphasis';\n }\n\n /**\n * @internal\n */\n setAccordionVariant() {\n return this.variant === 'default' ? 'inverted' : 'strong';\n }\n\n /**\n * @internal\n */\n loginSupport() {\n return html`