{
  "version": 3,
  "sources": ["../src/catalog-filters.js"],
  "sourcesContent": ["/**\n * Catalog Filters - preserves filter values when clicking subservice links\n * Used in: templates/core/includes/catalog_filters.html\n *\n * Problem: When user selects filters (gender, outcall, etc.) and then clicks\n * on a subservice link, the filters are lost because the link navigates away\n * before the form is submitted.\n *\n * Solution: Intercept clicks on subservice links, collect current form values,\n * and append them as query parameters to the link URL.\n */\n\n(function() {\n  'use strict';\n\n  /**\n   * Collect form values as URL search params\n   * @param {HTMLFormElement} form\n   * @returns {URLSearchParams}\n   */\n  function collectFormParams(form) {\n    const params = new URLSearchParams();\n    const formData = new FormData(form);\n\n    for (const [key, value] of formData.entries()) {\n      // Skip empty values and pagination\n      if (value && key !== 'page') {\n        params.append(key, value);\n      }\n    }\n\n    return params;\n  }\n\n  /**\n   * Build URL with form parameters\n   * @param {string} baseUrl - The subservice URL\n   * @param {URLSearchParams} params - Form parameters\n   * @returns {string}\n   */\n  function buildUrlWithParams(baseUrl, params) {\n    // Remove existing query string from base URL\n    const url = new URL(baseUrl, window.location.origin);\n\n    // Clear existing params and add new ones\n    url.search = '';\n\n    // Add form params\n    for (const [key, value] of params.entries()) {\n      url.searchParams.append(key, value);\n    }\n\n    return url.pathname + (url.search ? url.search : '');\n  }\n\n  /**\n   * Initialize filter link handling\n   */\n  function init() {\n    // Find all filter forms (sidebar and offcanvas)\n    const filterForms = document.querySelectorAll('form[method=\"get\"]');\n\n    filterForms.forEach(form => {\n      // Find subservice links inside this form\n      const subserviceLinks = form.querySelectorAll('[data-subservice-link]');\n\n      subserviceLinks.forEach(link => {\n        link.addEventListener('click', function(e) {\n          e.preventDefault();\n\n          const baseUrl = this.getAttribute('href');\n          const params = collectFormParams(form);\n          const fullUrl = buildUrlWithParams(baseUrl, params);\n\n          window.location.href = fullUrl;\n        });\n      });\n    });\n  }\n\n  // Initialize when DOM is ready\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', init);\n  } else {\n    init();\n  }\n})();\n"],
  "mappings": "OAYC,UAAW,CACV,aAOA,SAASA,EAAkBC,EAAM,CAC/B,IAAMC,EAAS,IAAI,gBACbC,EAAW,IAAI,SAASF,CAAI,EAElC,OAAW,CAACG,EAAKC,CAAK,IAAKF,EAAS,QAAQ,EAEtCE,GAASD,IAAQ,QACnBF,EAAO,OAAOE,EAAKC,CAAK,EAI5B,OAAOH,CACT,CAQA,SAASI,EAAmBC,EAASL,EAAQ,CAE3C,IAAMM,EAAM,IAAI,IAAID,EAAS,OAAO,SAAS,MAAM,EAGnDC,EAAI,OAAS,GAGb,OAAW,CAACJ,EAAKC,CAAK,IAAKH,EAAO,QAAQ,EACxCM,EAAI,aAAa,OAAOJ,EAAKC,CAAK,EAGpC,OAAOG,EAAI,UAAYA,EAAI,OAASA,EAAI,OAAS,GACnD,CAKA,SAASC,GAAO,CAEM,SAAS,iBAAiB,oBAAoB,EAEtD,QAAQR,GAAQ,CAEFA,EAAK,iBAAiB,wBAAwB,EAEtD,QAAQS,GAAQ,CAC9BA,EAAK,iBAAiB,QAAS,SAASC,EAAG,CACzCA,EAAE,eAAe,EAEjB,IAAMJ,EAAU,KAAK,aAAa,MAAM,EAClCL,EAASF,EAAkBC,CAAI,EAC/BW,EAAUN,EAAmBC,EAASL,CAAM,EAElD,OAAO,SAAS,KAAOU,CACzB,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAGI,SAAS,aAAe,UAC1B,SAAS,iBAAiB,mBAAoBH,CAAI,EAElDA,EAAK,CAET,GAAG",
  "names": ["collectFormParams", "form", "params", "formData", "key", "value", "buildUrlWithParams", "baseUrl", "url", "init", "link", "e", "fullUrl"]
}
