{
  "version": 3,
  "sources": ["/cdn/shop/t/274/assets/header-actions.js?agl_account_popup=unified-account-v11"],
  "sourcesContent": ["import { Component } from '@theme/component';\nimport { StandardEvents, CartLinesUpdateEvent } from '@shopify/events';\nimport { DrawerOpenEvent, DrawerCloseEvent } from '@theme/theme-drawer';\n\n/**\n * Header actions component that manages cart notifications and the\n * cart-drawer trigger's `aria-expanded` state.\n *\n * @typedef {object} Refs\n * @property {HTMLElement} liveRegion - The live region for cart announcements.\n *\n * @extends {Component<Refs>}\n */\nclass HeaderActions extends Component {\n  requiredRefs = ['liveRegion'];\n\n  /** @type {HTMLElement | null} */\n  accountPopover = null;\n\n  /** @type {HTMLElement | null} */\n  accountPopoverTrigger = null;\n\n  /** @type {HTMLElement | null} */\n  accountPopoverPanel = null;\n\n  /** @type {HTMLButtonElement | null} */\n  accountPopoverClose = null;\n\n  /** @type {HTMLElement | null} */\n  accountPortalLogin = null;\n\n  #portalSession = 'unknown';\n  #sessionRequest = null;\n  #sessionAbort = null;\n  #sessionEpoch = 0;\n  #expiryTimer = null;\n  #pollTimer = null;\n\n\n  /** @type {HTMLElement | null} */\n  accountPortalLogout = null;\n\n  connectedCallback() {\n    super.connectedCallback();\n    this.accountPopover = this.querySelector('[data-account-popover]');\n    this.accountPopoverTrigger = this.querySelector('[data-account-popover-trigger]');\n    this.accountPopoverPanel = this.querySelector('[data-account-popover-panel]');\n    this.accountPopoverClose = this.querySelector('[data-account-popover-close]');\n    this.accountPortalLogin = this.querySelector('[data-account-portal-login]');\n    this.accountPortalLogout = this.querySelector('[data-account-portal-logout]');\n\n    document.addEventListener(StandardEvents.cartLinesUpdate, this.#onCartUpdate);\n    document.addEventListener(DrawerOpenEvent.eventName, this.#onDrawerStateChange);\n    document.addEventListener(DrawerCloseEvent.eventName, this.#onDrawerStateChange);\n    document.addEventListener('click', this.#onDocumentClick);\n    document.addEventListener('keydown', this.#onKeydown);\n    window.addEventListener('resize', this.#onResize);\n    window.addEventListener('focus', this.#onSessionResume);\n    window.addEventListener('pageshow', this.#onSessionResume);\n    window.addEventListener('pagehide', this.#onSessionSuspend);\n    document.addEventListener('visibilitychange', this.#onSessionVisibility);\n    window.visualViewport?.addEventListener('resize', this.#onResize);\n    window.visualViewport?.addEventListener('scroll', this.#onResize);\n    this.accountPopoverTrigger?.addEventListener('click', this.#onAccountTriggerClick);\n    this.accountPopoverClose?.addEventListener('click', this.#onAccountClose);\n\n    this.#syncCartTriggerAriaExpanded();\n    if (this.accountPopover) {\n      this.#setPortalSession('unknown');\n      void this.#refreshPortalSession();\n    }\n  }\n\n  disconnectedCallback() {\n    super.disconnectedCallback();\n    document.removeEventListener(StandardEvents.cartLinesUpdate, this.#onCartUpdate);\n    document.removeEventListener(DrawerOpenEvent.eventName, this.#onDrawerStateChange);\n    document.removeEventListener(DrawerCloseEvent.eventName, this.#onDrawerStateChange);\n    document.removeEventListener('click', this.#onDocumentClick);\n    document.removeEventListener('keydown', this.#onKeydown);\n    window.removeEventListener('resize', this.#onResize);\n    window.removeEventListener('focus', this.#onSessionResume);\n    window.removeEventListener('pageshow', this.#onSessionResume);\n    window.removeEventListener('pagehide', this.#onSessionSuspend);\n    document.removeEventListener('visibilitychange', this.#onSessionVisibility);\n    window.visualViewport?.removeEventListener('resize', this.#onResize);\n    window.visualViewport?.removeEventListener('scroll', this.#onResize);\n    this.accountPopoverTrigger?.removeEventListener('click', this.#onAccountTriggerClick);\n    this.accountPopoverClose?.removeEventListener('click', this.#onAccountClose);\n\n    this.#onSessionSuspend();\n  }\n\n  #onSessionSuspend = () => {\n    this.#sessionEpoch++;\n    this.#sessionAbort?.abort();\n    this.#sessionRequest = null;\n    clearTimeout(this.#expiryTimer);\n    clearTimeout(this.#pollTimer);\n    this.#setAccountPopoverOpen(false);\n    this.#setPortalSession('unknown');\n  };\n\n  #onSessionResume = () => {\n    if (!this.accountPopover || document.visibilityState === 'hidden') return;\n    if (this.#sessionRequest) {\n      this.#sessionEpoch++;\n      this.#sessionAbort?.abort();\n      this.#sessionRequest = null;\n    }\n    return this.#refreshPortalSession();\n  };\n\n  #onSessionVisibility = () => {\n    if (document.visibilityState !== 'hidden') void this.#onSessionResume();\n  };\n\n  #scheduleSessionPoll = () => {\n    clearTimeout(this.#pollTimer);\n    if (this.accountPopoverPanel?.hidden !== false) return;\n    this.#pollTimer = setTimeout(async () => {\n      if (document.visibilityState !== 'hidden') await this.#refreshPortalSession();\n      this.#scheduleSessionPoll();\n    }, 30000);\n  };\n\n  // Status only: no customer data, CSRF issuance or session-cookie rotation.\n  #refreshPortalSession = () => {\n    if (this.#sessionRequest) return this.#sessionRequest;\n    const epoch = this.#sessionEpoch;\n    const controller = new AbortController();\n    this.#sessionAbort = controller;\n    this.#sessionRequest = (async () => {\n      let state = 'unknown';\n      let expiresAt = 0;\n      try {\n        const response = await fetch('https://account-api.guedeslopes.pt/api/portal/session', {\n          method: 'GET', credentials: 'include', cache: 'no-store', redirect: 'error',\n          headers: { Accept: 'application/json' },\n          signal: AbortSignal.any([controller.signal, AbortSignal.timeout(4000)]),\n        });\n        if (response.status !== 200 && response.status !== 401) throw new Error('Session unavailable');\n        if (!response.headers.get('content-type')?.includes('application/json')) throw new Error('Invalid session response');\n        const text = await response.text();\n        if (text.length > 1024) throw new Error('Invalid session response');\n        const value = JSON.parse(text);\n        if (!value || typeof value !== 'object' || Array.isArray(value)) throw new Error('Invalid session response');\n        const keys = Object.keys(value).sort().join(',');\n        if (response.status === 401 && keys === 'authenticated' && value.authenticated === false) state = 'anonymous';\n        else if (response.status === 200 && keys === 'authenticated,expiresAt' && value.authenticated === true &&\n          typeof value.expiresAt === 'string' && Date.parse(value.expiresAt) > Date.now()) {\n          state = 'authenticated';\n          expiresAt = Date.parse(value.expiresAt);\n        }\n      } catch {\n        // An outage is unknown, not evidence that a customer must log in again.\n      }\n      if (epoch === this.#sessionEpoch && this.isConnected) {\n        this.#setPortalSession(state);\n        clearTimeout(this.#expiryTimer);\n        if (state === 'authenticated') this.#expiryTimer = setTimeout(() => {\n          this.#setPortalSession('anonymous');\n          void this.#refreshPortalSession();\n        }, Math.min(expiresAt - Date.now(), 2147483647));\n      }\n    })().finally(() => {\n      if (epoch === this.#sessionEpoch) this.#sessionRequest = null;\n    });\n    return this.#sessionRequest;\n  };\n\n  #setPortalSession = (state) => {\n    this.#portalSession = state;\n    this.setAttribute('data-portal-session', state);\n    if (this.accountPopover) this.accountPopover.hidden = false;\n    const loginHadFocus = document.activeElement === this.accountPortalLogin;\n    const logoutHadFocus = document.activeElement === this.accountPortalLogout;\n    if (this.accountPortalLogin) this.accountPortalLogin.hidden = state !== 'anonymous';\n    if (this.accountPortalLogout) this.accountPortalLogout.hidden = state !== 'authenticated';\n    this.accountPopoverTrigger?.setAttribute('aria-busy', String(state === 'unknown'));\n    if (state === 'unknown') {\n      this.#setAccountPopoverOpen(false);\n      if (loginHadFocus || logoutHadFocus) this.accountPopoverTrigger?.focus();\n    } else if (state === 'authenticated' && loginHadFocus) {\n      this.accountPortalLogout?.focus();\n    } else if (state === 'anonymous' && logoutHadFocus) {\n      this.accountPortalLogin?.focus();\n    }\n  };\n\n  /**\n   * Positions an account surface inside the viewport. The authenticated mobile\n   * sheet is bottom anchored; desktop remains under the same trigger in all states.\n   * @param {HTMLElement} trigger\n   * @param {HTMLElement} surfaceHost\n   * @param {number} preferredWidth\n   */\n  #positionAccountSurface = (trigger, surfaceHost, preferredWidth) => {\n    const viewportGutter = 12;\n    const surfaceGap = 6;\n    const width = Math.min(preferredWidth, window.innerWidth - viewportGutter * 2);\n    const triggerRect = trigger.getBoundingClientRect();\n    const centeredLeft = triggerRect.left + triggerRect.width / 2 - width / 2;\n    const viewportLeft = Math.max(viewportGutter, Math.min(centeredLeft, window.innerWidth - width - viewportGutter));\n    const isCustomPopover = surfaceHost.matches('[data-account-popover]');\n    const containingBlock = isCustomPopover ? surfaceHost.closest('.header') : null;\n    const containingBlockRect = containingBlock?.getBoundingClientRect();\n    const coordinateLeft = containingBlockRect?.left ?? 0;\n    const coordinateTop = containingBlockRect?.top ?? 0;\n    const left = viewportLeft - coordinateLeft;\n    const top = triggerRect.bottom + surfaceGap - coordinateTop;\n    let resolvedTop = top;\n\n    if (isCustomPopover && window.matchMedia('(max-width: 749px)').matches) {\n      const panel = surfaceHost.querySelector('[data-account-popover-panel]');\n      const panelRect = panel?.getBoundingClientRect();\n      const viewportBottom =\n        (window.visualViewport?.offsetTop ?? 0) + (window.visualViewport?.height ?? window.innerHeight);\n\n      if (panelRect?.height) {\n        resolvedTop = viewportBottom - panelRect.height - viewportGutter - coordinateTop;\n      }\n    }\n\n    surfaceHost.style.setProperty('--agl-account-dialog-left', `${left}px`);\n    surfaceHost.style.setProperty('--agl-account-dialog-width', `${width}px`);\n    surfaceHost.style.setProperty('--agl-account-dialog-top', `${resolvedTop}px`);\n  };\n\n\n  #setAccountPopoverOpen = (open) => {\n    if (!this.accountPopover || !this.accountPopoverTrigger || !this.accountPopoverPanel) return;\n    if (open && this.#portalSession === 'unknown') return;\n    this.accountPopoverPanel.hidden = !open;\n    this.accountPopoverTrigger.setAttribute('aria-expanded', String(open));\n    if (open) this.#positionAccountSurface(this.accountPopoverTrigger, this.accountPopover, 360);\n    this.#scheduleSessionPoll();\n  };\n\n  #onAccountTriggerClick = async () => {\n    if (!this.accountPopoverPanel) return;\n    if (!this.accountPopoverPanel.hidden) {\n      this.#setAccountPopoverOpen(false);\n      return;\n    }\n    const epoch = this.#sessionEpoch;\n    await this.#refreshPortalSession();\n    if (!this.isConnected || epoch !== this.#sessionEpoch) return;\n    this.#setAccountPopoverOpen(true);\n  };\n\n  #onAccountClose = () => {\n    this.#setAccountPopoverOpen(false);\n    this.accountPopoverTrigger?.focus();\n  };\n\n  #onDocumentClick = (event) => {\n    if (!this.accountPopover || this.accountPopoverPanel?.hidden !== false) return;\n    const target = /** @type {Node | null} */ (event.target);\n    if (target && !this.accountPopover.contains(target)) this.#setAccountPopoverOpen(false);\n  };\n\n  #onKeydown = (event) => {\n    if (event.key !== 'Escape' || this.accountPopoverPanel?.hidden !== false) return;\n    this.#setAccountPopoverOpen(false);\n    this.accountPopoverTrigger?.focus();\n  };\n\n\n  #onResize = () => {\n    if (this.accountPopoverPanel?.hidden === false && this.accountPopover && this.accountPopoverTrigger) {\n      this.#positionAccountSurface(this.accountPopoverTrigger, this.accountPopover, 360);\n    }\n\n  };\n\n  #syncCartTriggerAriaExpanded = () => {\n    const cartDrawer = document.getElementById('cart-drawer');\n    if (!cartDrawer) return;\n    const trigger = this.querySelector('[aria-controls=\"cart-drawer\"]');\n    if (!trigger) return;\n    trigger.setAttribute('aria-expanded', cartDrawer.hasAttribute('open') ? 'true' : 'false');\n  };\n\n  /**\n   * Syncs `aria-expanded` on the cart-drawer trigger when the drawer opens or closes.\n   * @param {Event} event\n   */\n  #onDrawerStateChange = (event) => {\n    const target = /** @type {HTMLElement | null} */ (event.target);\n    if (target?.id !== 'cart-drawer') return;\n    this.#syncCartTriggerAriaExpanded();\n  };\n\n  /**\n   * Handles cart update events and announces the new count to screen readers.\n   * @param {CartLinesUpdateEvent} event\n   */\n  #onCartUpdate = (event) => {\n    event.promise\n      ?.then(({ cart }) => {\n        const cartCount = cart?.totalQuantity;\n        if (cartCount === undefined) return;\n\n        this.refs.liveRegion.textContent = `${Theme.translations.cart_count}: ${cartCount}`;\n      })\n      .catch((error) => {\n        if (error?.name !== 'AbortError') console.warn('[header-actions] Event promise rejected:', error);\n      });\n  };\n}\n\nif (!customElements.get('header-actions')) {\n  customElements.define('header-actions', HeaderActions);\n}\n"],
  "mappings": "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",
  "names": []
}
