{"version":3,"file":"catalog_filters_controller-BanTBJwa.js","sources":["../../../frontend/turbo_storefront/controllers/catalog_filters_controller.js"],"sourcesContent":["import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n  static targets = ['form', 'search', 'resetSearch', 'select']\n\n  static values = {\n    searchUrl: { type: String, default: '/catalog/search' },\n    resetUrl: String,\n  }\n\n  connect() {\n    this.onTurboSubmitStart = this.onTurboSubmitStart.bind(this)\n\n    window.addEventListener('turbo:submit-start', this.onTurboSubmitStart)\n    window.addEventListener('popstate', this.onPopStateListener)\n  }\n\n  disconnect() {\n    window.removeEventListener('turbo:submit-start', this.onTurboSubmitStart)\n    window.removeEventListener('popstate', this.onPopStateListener)\n  }\n\n  search(event) {\n    if (event.key === 'Enter') {\n      event.preventDefault()\n      this.formTarget.requestSubmit()\n    }\n  }\n\n  onTurboSubmitStart(event) {\n    if (event.target !== this.formTarget) return\n\n    const params = {}\n    Array.from(event.target.elements).forEach(field => {\n      if (field.name !== 'utf8' && field.name !== 'format' && field.value.length > 0) {\n        params[field.name] = field.value\n      }\n    })\n\n    const url = new URLSearchParams(params)\n\n    window.history.pushState({ turbo_frame_history: true }, '', `${this.searchUrlValue}?${url.toString()}`)\n  }\n\n  onPopStateListener(event) {\n    if (event.state.turbo_frame_history) {\n      window.Turbo.visit(window.location.href, { action: 'replace' })\n    } else {\n      window.location.replace(window.location.href)\n    }\n  }\n\n  changeFilter() {\n    this.formTarget.requestSubmit()\n  }\n\n  clearNextPageFrames() {\n    const nextPageFrames = [\n      ...Array.from(document.querySelectorAll('turbo-frame[id^=author_content_page_]')),\n      ...Array.from(document.querySelectorAll('turbo-frame[id^=catalog_content_page_]')),\n      ...Array.from(document.querySelectorAll('turbo-frame[id^=category_content_page_]'))\n    ]\n\n    nextPageFrames.forEach(x => x.remove())\n  }\n\n  resetFilter() {\n    if (!this.resetUrlValue) {\n      // eslint-disable-next-line no-return-assign\n      this.selectTargets.forEach(select => {\n        select.setValue('')\n      })\n      this.formTarget.requestSubmit()\n      return\n    }\n\n    if (this.searchTarget.value) {\n      // eslint-disable-next-line no-return-assign\n      this.selectTargets.forEach(select => {\n        select.setValue('')\n      })\n      this.formTarget.requestSubmit()\n    } else {\n      window.Turbo.visit(this.resetUrlValue)\n    }\n  }\n\n  resetSearch() {\n    if (!this.resetUrlValue) {\n      this.searchTarget.value = null\n      this.resetSearchTarget.style.display = 'none'\n      this.formTarget.requestSubmit()\n      return\n    }\n\n    if (this.selectTargets.every(x => x.value[0] === '')) {\n      window.Turbo.visit(this.resetUrlValue)\n    } else {\n      this.searchTarget.value = null\n      this.resetSearchTarget.style.display = 'none'\n      this.formTarget.requestSubmit()\n    }\n  }\n}\n"],"names":["catalog_filters_controller","Controller","event","params","field","url","x","select","__publicField"],"mappings":"0PACe,MAAKA,UAASC,CAAW,CAStC,SAAU,CACR,KAAK,mBAAqB,KAAK,mBAAmB,KAAK,IAAI,EAC3D,OAAO,iBAAiB,qBAAsB,KAAK,kBAAkB,EACrE,OAAO,iBAAiB,WAAY,KAAK,kBAAkB,CAC5D,CACD,YAAa,CACX,OAAO,oBAAoB,qBAAsB,KAAK,kBAAkB,EACxE,OAAO,oBAAoB,WAAY,KAAK,kBAAkB,CAC/D,CACD,OAAOC,EAAO,CACRA,EAAM,MAAQ,UAChBA,EAAM,eAAc,EACpB,KAAK,WAAW,gBAEnB,CACD,mBAAmBA,EAAO,CACxB,GAAIA,EAAM,SAAW,KAAK,WAAY,OACtC,MAAMC,EAAS,CAAA,EACf,MAAM,KAAKD,EAAM,OAAO,QAAQ,EAAE,QAAQE,GAAS,CAC7CA,EAAM,OAAS,QAAUA,EAAM,OAAS,UAAYA,EAAM,MAAM,OAAS,IAC3ED,EAAOC,EAAM,IAAI,EAAIA,EAAM,MAEnC,CAAK,EACD,MAAMC,EAAM,IAAI,gBAAgBF,CAAM,EACtC,OAAO,QAAQ,UAAU,CACvB,oBAAqB,EAC3B,EAAO,GAAI,GAAG,KAAK,cAAc,IAAIE,EAAI,UAAU,EAAE,CAClD,CACD,mBAAmBH,EAAO,CACpBA,EAAM,MAAM,oBACd,OAAO,MAAM,MAAM,OAAO,SAAS,KAAM,CACvC,OAAQ,SAChB,CAAO,EAED,OAAO,SAAS,QAAQ,OAAO,SAAS,IAAI,CAE/C,CACD,cAAe,CACb,KAAK,WAAW,eACjB,CACD,qBAAsB,CACG,CAAC,GAAG,MAAM,KAAK,SAAS,iBAAiB,uCAAuC,CAAC,EAAG,GAAG,MAAM,KAAK,SAAS,iBAAiB,wCAAwC,CAAC,EAAG,GAAG,MAAM,KAAK,SAAS,iBAAiB,yCAAyC,CAAC,CAAC,EACnQ,QAAQI,GAAKA,EAAE,OAAQ,CAAA,CACvC,CACD,aAAc,CACZ,GAAI,CAAC,KAAK,cAAe,CAEvB,KAAK,cAAc,QAAQC,GAAU,CACnCA,EAAO,SAAS,EAAE,CAC1B,CAAO,EACD,KAAK,WAAW,gBAChB,MACD,CACG,KAAK,aAAa,OAEpB,KAAK,cAAc,QAAQA,GAAU,CACnCA,EAAO,SAAS,EAAE,CAC1B,CAAO,EACD,KAAK,WAAW,iBAEhB,OAAO,MAAM,MAAM,KAAK,aAAa,CAExC,CACD,aAAc,CACZ,GAAI,CAAC,KAAK,cAAe,CACvB,KAAK,aAAa,MAAQ,KAC1B,KAAK,kBAAkB,MAAM,QAAU,OACvC,KAAK,WAAW,gBAChB,MACD,CACG,KAAK,cAAc,MAAMD,GAAKA,EAAE,MAAM,CAAC,IAAM,EAAE,EACjD,OAAO,MAAM,MAAM,KAAK,aAAa,GAErC,KAAK,aAAa,MAAQ,KAC1B,KAAK,kBAAkB,MAAM,QAAU,OACvC,KAAK,WAAW,gBAEnB,CACH,CAtFEE,EADkBR,EACX,UAAU,CAAC,OAAQ,SAAU,cAAe,QAAQ,GAC3DQ,EAFkBR,EAEX,SAAS,CACd,UAAW,CACT,KAAM,OACN,QAAS,iBACV,EACD,SAAU,MACd"}