{"version":3,"mappings":";sRAOA,MAAeA,GAAA,CACb,QAAS,CACP,kBAAkBC,EAA4B,CACrC,OAAAC,EAAkB,KAAK,SAAUD,CAAK,CAC/C,EACA,yBAAyBA,EAA4B,CACnD,OAAOE,EAAyBF,CAAK,CACvC,CACF,CACF,ECfMG,EAA2B,UAAM,OAAO,qCAA+B,0BAExEC,GAAU,CACb,MAAO,CACE,OACL,WAAY,CAAC,EACb,cAAe,GACf,eAAgB,GAChB,SAAU,IAEd,EACA,SAAU,CACR,YAAa,CACX,eAAQ,MAAM,sBAAsB,EAC7B,EACT,EACA,gBAAiB,CACR,YAAK,WAAW,OAAQC,GAAO,KAAK,WAAWA,CAAE,IAAM,MAAS,CACzE,CACF,EACA,MAAO,CACL,gBAAiB,CACf,KAAK,oBAAoB,CAC3B,EACA,eAAgB,CACd,KAAK,oBAAoB,CAC3B,CACF,EACA,QAAS,CACP,MAAM,qBAAsB,CAC1B,GAEE,OAAK,eACL,KAAK,gBACL,EAAE,KAAK,SAAS,KAAK,gBAAkB,KAAK,SAAS,KAAK,iBAC1D,KAAK,eAAe,SAAW,GAI7B,IACF,KAAK,cAAgB,GACrB,MAAMC,EAAoB,KAAK,eAC5B,MAAM,EAAG,EAAE,EACX,IAAKC,IAAiB,CAAE,YAAAA,CAAA,EAAc,EACnC,CAAE,KAAAC,CAAK,EAAI,MAAM,KAAK,QAAQ,MAAM,CACxC,OAAQ,MAAML,EAAA,GAA4B,QAC1C,UAAW,CACT,WAAY,KAAK,SAAS,WAAW,EACrC,SAAU,KAAK,SAAS,aAAa,EACrC,OAAQ,KAAK,SAAS,KAAK,GAAG,EAC9B,YAAa,KAAK,SAAS,KAAK,YAAY,EAC5C,QAASG,CACX,EACD,EACG,IAACE,EAAK,sBAAuB,CAC/B,QAAQ,MAAM,6BAA6B,EAC3C,KAAK,eAAiB,GACtB,MACF,CACKA,EAAA,sBAAsB,QAASC,GAAc,CAC5CA,IACG,gBAAWA,EAAU,WAAW,EAAIA,EAC3C,CACD,EACDH,EAAkB,QAAQ,CAAC,CAAE,YAAAC,KAAkB,CACzC,KAAK,WAAWA,CAAW,IAAM,SAC9B,gBAAWA,CAAW,EAAI,KACjC,CACD,SACD,CACM,UAAI,QAASG,GAAY,WAAWA,EAAS,KAAK,QAAQ,CAAC,EACjE,KAAK,SAAW,KAAK,IAAI,IAAM,KAAK,SAAW,GAAG,EAClD,KAAK,cAAgB,EACvB,CACF,CACF,CACF,EC5EKN,GAAU,CACb,MAAO,CACL,MAAO,CACL,eAAgB,GAEnB,EACD,SAAU,CACR,aAAc,CACZ,GAAI,KAAK,QAAQ,SAAW,GAAK,KAAK,eAAgB,CACpD,MAAMO,EAAQ,KAAK,SAAS,KAAK,MAAK,EAChCC,EAAU,KAAK,SAAS,KAAK,QAAO,EAC1C,GAAID,GAAS,CAACC,EACZ,MAAO,CACL,CACE,oBAAqB,gBACrB,KAAM,eACN,aAAc,oBACd,UAAW,KACZ,GAGL,GAAI,CAACD,GAASC,EACZ,MAAO,CACL,CACE,oBAAqB,gBACrB,KAAM,eACN,aAAc,sBACd,UAAW,OACZ,EAGP,CAEA,OAAO,IACR,CACF,EACD,QAAS,CACP,gBAAgBC,EAAS,CACvB,IAAIC,EAAU,KAAK,gBACd,KAAK,aAAe,CAAE,GAAE,IAAKC,IAAY,CACxC,GAAGA,EACH,KAAMA,EAAO,WAAaA,EAAO,IACnC,EAAE,EACF,KAAK,QAETF,EAAQ,QAAQ,CAAC,CAAE,QAAAG,EAAS,MAAAhB,CAAI,IAAQ,CAEtC,MAAMiB,EAAmBH,EAAQ,OACjCA,EAAUA,EAAQ,OACfI,GAAaA,EAAS,sBAAwBF,EAAQ,qBAErDC,IAAqBH,EAAQ,QAC/B,KAAK,mBAAkB,EAIrBd,IACFc,EAAQ,KAAKE,CAAO,EACpB,KAAK,mBAAkB,EAE3B,CAAC,EAEI,KAAK,iBAGRF,EAAQ,KAAK,CAACK,EAAOC,IACnBD,EAAM,oBAAoB,cAAcC,EAAO,mBAAmB,GAGpE,KAAK,QAAUN,EAElB,EAED,mBAAoB,CAClB,KAAK,eAAiB,EACvB,EACD,oBAAqB,CACnB,KAAK,eAAiB,EACvB,CACF,CACH,iICzCA,MAAMO,EAAOC,EAQPC,EAAWP,GAA0B,CACrCA,EAAQ,UAGZK,EAAK,SAAU,CAAE,QAAAL,EAAkB,MAAO,CAACA,EAAQ,SAAU,+wBCX1DZ,EAAU,CACb,KAAM,gBACN,WAAY,aACVoB,EACA,cAAAC,CACD,EACD,MAAO,CACL,QAAS,CACP,KAAM,OACN,QAAS,KAAO,GACjB,EACD,MAAO,CACL,KAAM,OACN,QAAS,KAAO,GACjB,CACF,EACD,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,MAAO,CACL,MAAO,EACP,MAAO,EAEV,EACD,SAAU,CACR,cAAe,CACb,KAAM,CACJ,OAAO,OAAO,KAAK,KAAK,CACzB,EACD,IAAIzB,EAAO,CACT,KAAK,MAAQ,OAAOA,CAAK,CAC1B,CACF,EACD,cAAe,CACb,KAAM,CACJ,OAAO,OAAO,KAAK,KAAK,CACzB,EACD,IAAIA,EAAO,CACT,KAAK,MAAQ,OAAOA,CAAK,CAC1B,CACF,EACD,UAAW,CACT,OAAO,KAAK,QAAQ,UAAY,KAAK,SAAW,GAAK,KAAK,QAC3D,EACD,UAAW,CACT,OAAO,KAAK,MAAM,OAAO,KAAK,QAAQ,gBAAgB,CAAC,CACxD,EACD,UAAW,CACT,OAAO,KAAK,KAAK,OAAO,KAAK,QAAQ,gBAAgB,CAAC,CACvD,EACD,UAAW,CACT,KAAM,CAAE,cAAA0B,CAAY,EAAM,KAAK,MAC/B,OAAKA,EAGE,IAAM,CAACA,EAFL,CAGV,CACF,EACD,SAAU,CAER,KAAK,MACH,KAAK,QAAQ,mBAAqB,KAAK,QAAQ,iBAC3C,KAAK,SACL,OAAO,KAAK,QAAQ,gBAAgB,EAC1C,KAAK,MACH,KAAK,QAAQ,mBAAqB,KAAK,QAAQ,iBAC3C,KAAK,SACL,OAAO,KAAK,QAAQ,gBAAgB,CAC3C,EACD,QAAS,CACP,gBAAgBC,EAAU,CACxB,GAAI,EAACA,GAAA,MAAAA,EAAU,QAAQ,CACrB,QAAQ,MAAM,mBAAoBA,CAAQ,EAC1C,MACF,CACA,CAAC,KAAK,MAAO,KAAK,KAAK,EAAIA,EAC3B,KAAK,MAAM,QAAQ,CACpB,EACD,eAAeA,EAAU,CACvB,CAAC,KAAK,MAAO,KAAK,KAAK,EAAIA,CAC5B,EACD,aAAaC,EAAe,CAC1B,MAAMD,EAAW,OAAOC,CAAa,EAGnC,OAAO,MAAMD,CAAQ,GACrB,CAAC,OAAO,UAAUA,CAAQ,GAC1BA,EAAW,KAAK,UAChBA,EAAW,KAAK,UAChBA,EAAW,KAAK,QAKlB,KAAK,MAAQA,EACb,KAAK,MAAM,QAAQ,EACpB,EACD,aAAaC,EAAe,CAC1B,MAAMD,EAAW,OAAOC,CAAa,EAGnCA,IAAkB,IAClB,OAAO,MAAMD,CAAQ,GACrB,CAAC,OAAO,UAAUA,CAAQ,GAC1BA,EAAW,KAAK,UAChBA,EAAW,KAAK,UAChBA,EAAW,KAAK,QAKlB,KAAK,MAAQA,EACb,KAAK,MAAM,QAAQ,EACpB,CACF,CACH,EA1JOE,EAAA,OAAM,gBAAgB,EAWpBC,EAAA,OAAM,4BAA4B,4EAXzC,OAAAC,EAAA,EAAAC,EAkCM,MAlCNH,EAkCM,CAjCJI,EASEC,EAAA,CARA,MAAM,UACL,IAAKC,EAAQ,SACb,IAAKA,EAAQ,SACb,MAAK,CAAGC,EAAK,MAAEA,EAAK,OACpB,SAAUD,EAAQ,SAClB,SAAUA,EAAQ,SAClB,UAAUA,EAAe,gBACzB,SAAQA,EAAc,2FAEzBE,EAsBM,MAtBNP,EAsBM,CArBJG,EASEK,EAAA,CARC,cAAaH,EAAa,cAC1B,MAAK,IAAMI,EAAK,MAAC,IAAI,IACrB,SAAUJ,EAAQ,SAClB,IAAKA,EAAQ,SACb,IAAKA,EAAQ,SACd,YAAU,oBACV,2BACC,SAAQA,EAAY,gFAEvBK,EAAA,KAAAA,EAAA,GAAAH,EAA6B,MAAxB,OAAM,UAAU,EAAC,IAAC,KACvBJ,EASEK,EAAA,CARC,cAAaH,EAAa,cAC1B,MAAK,IAAMI,EAAK,MAAC,IAAI,IACrB,SAAUJ,EAAQ,SAClB,IAAKA,EAAQ,SACb,IAAKA,EAAQ,SACd,YAAU,oBACV,2BACC,SAAQA,EAAY,gJCVxB/B,EAAU,CACb,KAAM,wBACN,WAAY,CACV,cAAAqC,CACD,EACD,WAAY,CACV,aAAcC,EAAc,SAC7B,EACD,MAAO,CACL,MAAO,CACL,KAAM,OACN,QAAS,KAAO,GACjB,CACF,EACD,MAAO,CAAC,QAAQ,EAChB,MAAO,CACL,MAAO,CACL,SAAU,CAAE,EAEf,EACD,SAAU,CAER,KAAK,SAAW,KAAK,MAAM,QAC5B,EACD,QAAS,CACP,gBAAiB,CACX,KAAK,gBACP,KAAK,eAAe,SAEtB,KAAK,QAAO,CACb,EACD,UAAW,CACJ,KAAK,iBACR,KAAK,eAAiBC,EAAS,IAAK,SAAY,CAC9C,KAAK,QAAO,CACd,CAAC,GAGH,KAAK,eAAc,CACpB,EACD,SAAU,CACR,MAAMC,EAAS,KAAK,MAAM,cACvB,IAAKC,GAAkB,CACtB,KAAM,CACJ,QAAS,CAAE,KAAAC,EAAM,iBAAAC,EAAkB,iBAAAC,EAAkB,KAAAC,CAAM,EAC3D,MAAAC,EACA,MAAAC,CACF,EAAIN,EACE,CAAE,oBAAAO,CAAkB,EAAM,KAAK,MAE/BC,EAAW,OAAOH,CAAK,EACvBI,EAAW,OAAOH,CAAK,EAE7B,OACE,OAAOD,CAAK,GAAK,OAAOH,CAAgB,GACxC,OAAOI,CAAK,GAAK,OAAOH,CAAgB,EAEjC,CACL,MAAO,GACP,QAAS,CACP,KAAAF,EACA,oBAAAM,EACA,SAAU,GACV,iBAAAL,EACA,iBAAAC,EACA,KAAAC,CACD,GAIE,CACL,MAAO,GACP,QAAS,CACP,KAAAH,EACA,oBAAAM,EACA,SAAU,GACV,iBAAkBC,EAClB,iBAAkBC,CACnB,GAEJ,EACA,OAAQC,GAAUA,IAAU,IAAI,EAC/BX,EAAO,QACT,KAAK,MAAM,SAAU,GAAGA,CAAM,CAEjC,CACF,CACH,EA1GIf,EAAA,OAAM,0BAA0B,2EAFlC,OAAA2B,GAAAzB,EAAA,EAAAC,EAYM,MAZNH,EAYM,EARJE,EAAA,IAAAC,EAOEyB,EAZN,KAAAC,EAMwBtB,EAAQ,SAAnBpB,QADT2C,EAOEC,EAAA,CALC,IAAK5C,EAAQ,KAPpB,WAQM,IAAI,gBACH,QAASA,EACT,MAAOuB,EAAK,MACZ,SAAQJ,EAAQ,gEATFA,EAAc,8ECc9B/B,GAAU,CACb,KAAM,sBACN,WAAY,CACV,YAAAyD,CACD,EACD,MAAO,CACL,MAAO,CACL,KAAM,OACN,QAAS,KAAO,GACjB,EACD,gBAAiB,CACf,KAAM,OACN,QAAS,IACV,CACF,EACD,MAAO,CAAC,QAAS,QAAQ,EACzB,SAAU,CACR,UAAW,CACT,KAAM,CAAE,SAAAC,CAAO,EAAM,KAAK,iBAAmB,KAAK,MAClD,OAAOA,EAAS,IAAK9C,IAAa,CAChC,KAAMA,EAAQ,KACd,IAAK,GAAGA,EAAQ,IAAI,GAAG,KAAK,gBAAkB,KAAO,EAAE,GACvD,oBAAqB,KAAK,MAAM,oBAChC,SAAU,KAAK,UAAUA,CAAO,EAChC,MAAOA,EAAQ,UACf,SAAUA,EAAQ,QACnB,EAAC,CACH,CACF,EACD,QAAS,CACP,OAAQ,CACF,KAAK,MAAM,MACb,KAAK,MAAM,MAAM,QAEjB,KAAK,MAAM,OAAO,CAErB,EACD,gBAAiB,CACf,KAAK,MAAM,SAAS,QAASA,GAAY,CACvC,KAAK,MAAM,SAAU,CACnB,MAAO,GACP,QAAS,CACP,GAAGA,EACH,SAAU,EACX,CACH,CAAC,CACH,CAAC,EACD,KAAK,MAAK,CACX,EACD,UAAUA,EAAS,CACjB,GAAIA,EAAQ,aACV,MAAO,GAET,GAAI,KAAK,gBAAiB,CACxB,MAAM+C,EAAuB,KAAK,MAAM,SAAS,KAC9CC,GAAkBA,EAAc,OAAShD,EAAQ,MAEpD,OAAO+C,GAAA,YAAAA,EAAsB,YAC/B,CAEA,MAAO,EACR,EACD,UAAU/C,EAAS,CACjB,OAAI,KAAK,gBACA,KAAK,MAAM,SAAS,KAAMgD,GAAkBA,EAAc,OAAShD,EAAQ,IAAI,EAGjFA,EAAQ,YAAc,CAC9B,EACD,OAAO,CAAE,MAAAhB,EAAO,QAAAgB,GAAW,CACzB,MAAMiD,EAAW,CACf,KAAM,KAAK,MAAM,KACjB,SAAU,CACR,GAAG,KAAK,MAAM,SAAS,OACpBC,GAAiBA,EAAa,UAAYA,EAAa,OAASlD,EAAQ,IAC1E,CACF,GAEChB,GACFiE,EAAS,SAAS,KAAK,CACrB,oBAAqBjD,EAAQ,oBAC7B,KAAMA,EAAQ,KACd,SAAU,EACZ,CAAC,EAGH,KAAK,MAAM,SAAU,CACnB,MAAAhB,EACA,QAAS,CACP,oBAAqBgB,EAAQ,oBAC7B,KAAMA,EAAQ,KACd,SAAUhB,CACX,CACH,CAAC,EACD,KAAK,MAAK,CACX,CACF,CACH,iEAhHE2D,EASEQ,EAAA,CARA,IAAI,QACH,KAAM5B,EAAK,MAAC,KACZ,SAAUJ,EAAQ,SAClB,KAAMI,EAAK,MAAC,KACb,MAAM,yBACL,uBAAO6B,EAAK,gBACZ,SAAQjC,EAAM,OACd,iBAAiBA,EAAc,gJC6D/B/B,GAAU,CACb,KAAM,oBACN,WAAY,CACV,sBAAAiE,EACA,oBAAAC,GACA,SAAAC,EACA,yBAAAC,CACD,EACD,MAAO,CACL,MAAO,CACL,KAAM,OACN,SAAU,EACX,EACD,KAAM,CACJ,KAAM,OACP,EACD,IAAK,CACH,KAAM,OACN,QAAS,IACV,EACD,mBAAoB,CAClB,KAAM,SACN,QAAS,IACV,CACF,EACD,MAAO,CAAC,SAAU,QAAS,aAAa,EACxC,MAAO,CACL,MAAO,CACL,aAAc,CAAE,EAChB,aAAc,GAEjB,EACD,SAAU,CACR,eAAgB,CACd,KAAM,CACJ,MAAO,CAAE,KAAAC,CAAM,CACjB,EAAI,KACJ,MAAO,CAAC,QAAS,SAAS,EAAE,SAASA,CAAI,CAC1C,EACD,MAAO,CACL,OAAOC,EAAwB,KAAK,MAAM,IAAI,CAC/C,CACF,EACD,MAAO,CACL,IAAI/C,EAAU,CACZ,KAAK,gBAAgBA,CAAQ,CAC9B,CACF,EACD,SAAU,CACR,KAAK,gBAAgB,KAAK,GAAG,CAC9B,EACD,QAAS,CACP,gBAAgBgD,EAAK,CACfA,IAAQ,GAAK,KAAK,oBACpB,KAAK,mBAAmB,KAAK,GAAG,CAEnC,EACD,SAAU,CACR,KAAK,MAAM,OAAO,CACnB,EACD,YAAa,CACX,KAAK,MAAM,aAAa,CACzB,EACD,YAAYC,EAAQ,CAClB,KAAK,MAAM,SAAU,GAAGA,CAAM,CAC/B,CACF,CACH,MAzIA,iBAkDI,MAAM,wBAEDC,GAAA,OAAM,6BAA6B,2JAlDjCT,EAAM,QA8CfrC,IAAAC,EAWM,MAXNF,GAWM,CAPJO,EAEM,MAFNwC,GAEMC,EADD3C,EAAI,SAETF,EAGE8C,EAAA,CAFC,MAAOxC,EAAK,MACZ,SAAQJ,EAAQ,+CAxDrBwB,EA6CYqB,EAAA,CA9Cd,MAGI,MAAM,uBACL,KAAMzC,EAAI,KACV,KAAMJ,EAAI,KACV,SAAUI,EAAK,MAAC,SAChB,gBAAeJ,EAAa,cAC7B,SACC,aAAaA,EAAU,WACvB,uBAAOiC,EAAK,gBACZ,SAAY5B,EAAA,KAAAA,EAAA,OAAAoC,IAAWR,EAAA,kBAAmBQ,CAAM,KAEtC,kBACT,IAMW,CANKrC,EAAA,MAAM,OAAI,cACxBP,EAIWyB,EAAA,CAnBnB,OAAAC,EAeoCnB,QAAM,SAAjBvB,IAfzBe,EAAA,EAAAC,EAAAyB,EAAA,MAgB0BzC,EAAQ,UAAxBe,EAAA,EAAAC,EAEWyB,GAlBrB,QAAAwB,EAiBeH,EAAA9D,EAAQ,IAAI,WAjB3BkE,EAAA,2BAsBQlD,EAQWyB,EAAA,CA9BnB,OAAAC,EAsBoCnB,QAAM,SAAjBvB,IAtBzBe,EAAA,EAAAC,EAAAyB,EAAA,MAwBkBzC,EAAQ,cADhBgB,EAMO,QAJJ,IAAKhB,EAAQ,IAEX,EAAA8D,EAAA9D,EAAQ,gBAAgB,EAAG,IAAI8D,EAAAvC,EAAA,MAAM,IAAI,EAAG,MAAMuC,EAAA9D,EAAQ,gBAAgB,EAAG,IAC7E8D,EAAAvC,EAAA,MAAM,IAAI,MA5BzB2C,EAAA,8BAAAC,EAiCI,IAKE,CAJM5C,EAAA,MAAM,OAAI,YADlBoB,EAKEyB,EAAA,CAtCN,MAmCO,MAAO7C,EAAK,MACZ,SAAQJ,EAAQ,SAChB,QAAOA,EAAO,iDAGJA,EAAa,mBAD1BwB,EAKE0B,EAAA,CA5CN,MAyCO,MAAO9C,EAAK,MACZ,SAAQJ,EAAQ,SAChB,QAAOA,EAAO,sDAEjBH,EAAmD,MA7CvDH,GA6CmBiD,EAAAvC,EAAA,MAAM,IAAI,EAAG,IAACuC,EAAGvC,EAAK,MAAC,IAAI,QA7C9C,kGCAe+C,GAACvE,GACVA,EAAO,iBACF,GAAGA,EAAO,gBAAgB,IAAIA,EAAO,gBAAgB,GAEvDA,EAAO,MAAQA,EAAO,KCJhBwE,GAACxE,GACVA,EAAO,iBACF,CACL,oBAAqBA,EAAO,oBAC5B,iBAAkBA,EAAO,iBACzB,iBAAkBA,EAAO,gBAC/B,EAES,CACL,oBAAqBA,EAAO,oBAC5B,KAAMA,EAAO,IACjB","names":["_sfc_main$7","value","getLocalizedValue","getValueWithoutSeparator","GET_MULTIPLE_BEST_PRICES","_sfc_main","id","unknownBestPrices","productCode","data","bestPrice","resolve","isDiy","isProfi","changes","filters","filter","element","oldFiltersLength","oldFacet","first","second","emit","__emit","onClick","TextInputFi","RangeSliderFi","decimalPlaces","newValue","newValueInput","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_createVNode","_component_range_slider_fi","$options","$data","_createElementVNode","_component_text_input_fi","$props","_cache","SliderElement","vClickOutside","throttle","facets","sliderElement","name","absoluteMinValue","absoluteMaxValue","unit","lower","upper","associatedFieldName","newLower","newUpper","facet","_withDirectives","_Fragment","_renderList","_createBlock","_component_slider_element","FacetListFi","elements","elementInActualFacet","actualElement","newFacet","facetElement","_component_facet_list_fi","_ctx","FactFinderSliderFacet","FactFinderTextFacet","SelectFi","FactFinderFiteCheckboxFi","type","factFinderNgNameCleaner","idx","params","_hoisted_3","_toDisplayString","_component_fact_finder_fite_checkbox_fi","_component_select_fi","_createTextVNode","_createCommentVNode","_withCtx","_component_fact_finder_text_facet","_component_fact_finder_slider_facet","stringifyFilterValue","toFilterInput"],"ignoreList":[],"sources":["../../src/mixins/localizedValueMixin.vue","../../src/mixins/multiBestPriceMixin.vue","../../src/components/search-fact-finder-fi/autoFiltersMixin.vue","../../src/components/search-fact-finder-fi/fact-finder-fite-checkbox-fi/FactFinderFiteCheckboxFi.vue","../../src/components/search-fact-finder-fi/fact-finder-facet-fi/fact-finder-slider-facet/SliderElement.vue","../../src/components/search-fact-finder-fi/fact-finder-facet-fi/fact-finder-slider-facet/FactFinderSliderFacet.vue","../../src/components/search-fact-finder-fi/fact-finder-facet-fi/fact-finder-text-facet/FactFinderTextFacet.vue","../../src/components/search-fact-finder-fi/fact-finder-facet-fi/FactFinderFacetFi.vue","../../src/components/search-fact-finder-fi/stringifyFilterValue.js","../../src/components/search-fact-finder-fi/toFilterInput.js"],"sourcesContent":["<script lang=\"ts\">\nimport {\n  getLocalizedValue,\n  getValueWithoutSeparator,\n  type LocalizedValueParam,\n} from 'composables/localizedValue';\n\nexport default {\n  methods: {\n    getLocalizedValue(value: LocalizedValueParam) {\n      return getLocalizedValue(this.$fischer, value);\n    },\n    getValueWithoutSeparator(value: LocalizedValueParam) {\n      return getValueWithoutSeparator(value);\n    },\n  },\n};\n</script>\n","<script>\nconst GET_MULTIPLE_BEST_PRICES = () => import('gql/getMultipleBestPrices.gql');\n\nexport default {\n  data() {\n    return {\n      bestPrices: {},\n      loadingPrices: false,\n      pricesNotFound: false,\n      throttle: 1000,\n    };\n  },\n  computed: {\n    productIds() {\n      console.error('implement productIds');\n      return [];\n    },\n    requiresPrices() {\n      return this.productIds.filter((id) => this.bestPrices[id] === undefined);\n    },\n  },\n  watch: {\n    requiresPrices() {\n      this.updatePriceRequests();\n    },\n    loadingPrices() {\n      this.updatePriceRequests();\n    },\n  },\n  methods: {\n    async updatePriceRequests() {\n      if (\n        IS_SSR ||\n        this.loadingPrices ||\n        this.pricesNotFound ||\n        !(this.$fischer.shop.isOnlineShop() || this.$fischer.shop.isClosedShop()) ||\n        this.requiresPrices.length === 0\n      ) {\n        return;\n      }\n      try {\n        this.loadingPrices = true;\n        const unknownBestPrices = this.requiresPrices\n          .slice(0, 20) // do not overload backend\n          .map((productCode) => ({ productCode }));\n        const { data } = await this.$apollo.query({\n          query: (await GET_MULTIPLE_BEST_PRICES()).default,\n          variables: {\n            baseSiteId: this.$fischer.baseSiteId(),\n            language: this.$fischer.siteLanguage(),\n            userId: this.$fischer.user.id(),\n            accessToken: this.$fischer.user.accessToken(),\n            queries: unknownBestPrices,\n          },\n        });\n        if (!data.getMultipleBestPrices) {\n          console.error('Did not receive best prices');\n          this.pricesNotFound = true;\n          return;\n        }\n        data.getMultipleBestPrices.forEach((bestPrice) => {\n          if (bestPrice) {\n            this.bestPrices[bestPrice.productCode] = bestPrice;\n          }\n        });\n        unknownBestPrices.forEach(({ productCode }) => {\n          if (this.bestPrices[productCode] === undefined) {\n            this.bestPrices[productCode] = null;\n          }\n        });\n      } finally {\n        await new Promise((resolve) => setTimeout(resolve, this.throttle)); // throttle and make sure requiresPrices is evalueated\n        this.throttle = Math.min(3000, this.throttle + 200);\n        this.loadingPrices = false;\n      }\n    },\n  },\n};\n</script>\n","<script>\nexport default {\n  data() {\n    return {\n      useAutoFilters: true,\n    };\n  },\n  computed: {\n    autoFilters() {\n      if (this.filters.length === 0 && this.useAutoFilters) {\n        const isDiy = this.$fischer.user.isDiy();\n        const isProfi = this.$fischer.user.isProfi();\n        if (isDiy && !isProfi) {\n          return [\n            {\n              associatedFieldName: 'Profi / DIY_A',\n              name: 'DIY~~~!Profi',\n              displayField: 'Profi / DIY (DIY)',\n              fakeValue: 'DIY',\n            },\n          ];\n        }\n        if (!isDiy && isProfi) {\n          return [\n            {\n              associatedFieldName: 'Profi / DIY_A',\n              name: 'Profi~~~!DIY',\n              displayField: 'Profi / DIY (Profi)',\n              fakeValue: 'Profi',\n            },\n          ];\n        }\n      }\n\n      return null;\n    },\n  },\n  methods: {\n    applyChanges(...changes) {\n      let filters = this.useAutoFilters\n        ? (this.autoFilters || []).map((filter) => ({\n            ...filter,\n            name: filter.fakeValue || filter.name,\n          }))\n        : this.filters;\n\n      changes.forEach(({ element, value }) => {\n        // remove old filter if already active\n        const oldFiltersLength = filters.length;\n        filters = filters.filter(\n          (oldFacet) => oldFacet.associatedFieldName !== element.associatedFieldName,\n        );\n        if (oldFiltersLength !== filters.length) {\n          this.disableAutoFilters();\n        }\n\n        // add to active filters\n        if (value) {\n          filters.push(element);\n          this.disableAutoFilters();\n        }\n      });\n\n      if (!this.useAutoFilters) {\n        // sort for better cache hits and consistent urls\n        // there should not be too many filters, so performance overhead for localeCompare should not matter\n        filters.sort((first, second) =>\n          first.associatedFieldName.localeCompare(second.associatedFieldName),\n        );\n\n        this.filters = filters;\n      }\n    },\n\n    enableAutoFilters() {\n      this.useAutoFilters = true;\n    },\n    disableAutoFilters() {\n      this.useAutoFilters = false;\n    },\n  },\n};\n</script>\n","<template>\n  <div\n    v-for=\"(element, index) in facet.elements\"\n    :key=\"index\"\n    role=\"radio\"\n    :aria-checked=\"element.selected\"\n    :class=\"{\n      'fact-finder-fite-checkbox-fi': true,\n      'fact-finder-fite-checkbox-fi--disabled': element.disabled,\n      'fact-finder-fite-checkbox-fi--selected': element.selected,\n    }\"\n    @click.capture.stop=\"onClick(element)\"\n  >\n    <label\n      class=\"fact-finder-fite-checkbox-fi__label\"\n      :class=\"{\n        'fact-finder-fite-checkbox-fi__label-selected': element.selected,\n        'fact-finder-fite-checkbox-fi__label-disabled': element.disabled,\n      }\"\n    >\n      {{ element.text }} {{ facet.unit }}\n      <icon-fi\n        :icon=\"element.selected ? 'radio-btn-on' : 'radio-btn-off'\"\n        :class=\"{\n          'fact-finder-fite-checkbox-fi__checkbox': true,\n          'fact-finder-fite-checkbox-fi__checkbox--disabled': element.disabled,\n        }\"\n      />\n    </label>\n  </div>\n</template>\n<script setup lang=\"ts\">\nimport { IconFi } from 'atoms/index';\n\nimport type {\n  Facet,\n  FacetChange,\n  FacetElement,\n} from '../fact-finder-facet-fi/fact-finder-facet-type';\n\nconst emit = defineEmits<{\n  change: [FacetChange];\n}>();\n\ndefineProps<{\n  facet: Facet;\n}>();\n\nconst onClick = (element: FacetElement) => {\n  if (element.disabled) {\n    return;\n  }\n  emit('change', { element: element, value: !element.selected });\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@import './fact-finder-fite-checkbox-fi';\n</style>\n","<template>\n  <div class=\"slider-element\">\n    <range-slider-fi\n      class=\"fi-px-6\"\n      :min=\"minValue\"\n      :max=\"maxValue\"\n      :value=\"[lower, upper]\"\n      :disabled=\"disabled\"\n      :interval=\"interval\"\n      @drag-end=\"onDragEndSlider\"\n      @change=\"onChangeSlider\"\n    />\n    <div class=\"slider-element__text-input\">\n      <text-input-fi\n        :model-value=\"lowerAsString\"\n        :label=\"`[${group.unit}]`\"\n        :disabled=\"disabled\"\n        :min=\"minValue\"\n        :max=\"maxValue\"\n        data-test=\"range-value-lower\"\n        show-localized-values\n        @change=\"onInputLower\"\n      />\n      <div class=\"fi-px-12\">-</div>\n      <text-input-fi\n        :model-value=\"upperAsString\"\n        :label=\"`[${group.unit}]`\"\n        :disabled=\"disabled\"\n        :min=\"minValue\"\n        :max=\"maxValue\"\n        data-test=\"range-value-upper\"\n        show-localized-values\n        @change=\"onInputUpper\"\n      />\n    </div>\n  </div>\n</template>\n\n<script>\nimport { RangeSliderFi, TextInputFi } from 'atoms';\n\nexport default {\n  name: 'SliderElement',\n  components: {\n    TextInputFi,\n    RangeSliderFi,\n  },\n  props: {\n    element: {\n      type: Object,\n      default: () => ({}),\n    },\n    group: {\n      type: Object,\n      default: () => ({}),\n    },\n  },\n  emits: ['change'],\n  data() {\n    return {\n      lower: 0,\n      upper: 0,\n    };\n  },\n  computed: {\n    lowerAsString: {\n      get() {\n        return String(this.lower);\n      },\n      set(value) {\n        this.lower = Number(value);\n      },\n    },\n    upperAsString: {\n      get() {\n        return String(this.upper);\n      },\n      set(value) {\n        this.upper = Number(value);\n      },\n    },\n    disabled() {\n      return this.element.disabled || this.minValue + 1 >= this.maxValue;\n    },\n    minValue() {\n      return Math.floor(Number(this.element.absoluteMinValue));\n    },\n    maxValue() {\n      return Math.ceil(Number(this.element.absoluteMaxValue));\n    },\n    interval() {\n      const { decimalPlaces } = this.group;\n      if (!decimalPlaces) {\n        return 1;\n      }\n      return 10 ** -decimalPlaces;\n    },\n  },\n  created() {\n    // select rounded values when fact-finder returns default outer ranges\n    this.lower =\n      this.element.selectedMinValue === this.element.absoluteMinValue\n        ? this.minValue\n        : Number(this.element.selectedMinValue);\n    this.upper =\n      this.element.selectedMaxValue === this.element.absoluteMaxValue\n        ? this.maxValue\n        : Number(this.element.selectedMaxValue);\n  },\n  methods: {\n    onDragEndSlider(newValue) {\n      if (!newValue?.length) {\n        console.error('invalid newValue', newValue);\n        return;\n      }\n      [this.lower, this.upper] = newValue;\n      this.$emit('change');\n    },\n    onChangeSlider(newValue) {\n      [this.lower, this.upper] = newValue;\n    },\n    onInputLower(newValueInput) {\n      const newValue = Number(newValueInput);\n\n      if (\n        Number.isNaN(newValue) ||\n        !Number.isInteger(newValue) ||\n        newValue < this.minValue ||\n        newValue > this.maxValue ||\n        newValue > this.upper\n      ) {\n        return;\n      }\n\n      this.lower = newValue;\n      this.$emit('change');\n    },\n    onInputUpper(newValueInput) {\n      const newValue = Number(newValueInput);\n\n      if (\n        newValueInput === '' ||\n        Number.isNaN(newValue) ||\n        !Number.isInteger(newValue) ||\n        newValue > this.maxValue ||\n        newValue < this.minValue ||\n        newValue < this.lower\n      ) {\n        return;\n      }\n\n      this.upper = newValue;\n      this.$emit('change');\n    },\n  },\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import './slider-element';\n</style>\n","<template>\n  <div\n    v-click-outside=\"onClickOutside\"\n    class=\"fact-finder-slider-facet\"\n  >\n    <slider-element\n      v-for=\"element in elements\"\n      :key=\"element.name\"\n      ref=\"sliderElement\"\n      :element=\"element\"\n      :group=\"group\"\n      @change=\"onChange\"\n    />\n  </div>\n</template>\n\n<script>\nimport vClickOutside from 'click-outside-vue3';\nimport { throttle } from 'throttle-debounce';\n\nimport SliderElement from './SliderElement';\n\nexport default {\n  name: 'FactFinderSliderFacet',\n  components: {\n    SliderElement,\n  },\n  directives: {\n    clickOutside: vClickOutside.directive,\n  },\n  props: {\n    group: {\n      type: Object,\n      default: () => ({}),\n    },\n  },\n  emits: ['change'],\n  data() {\n    return {\n      elements: [],\n    };\n  },\n  created() {\n    // NOTE: elements will not be reactive, since it changes when a value updates, thus re-creating the slider and resetting its values\n    this.elements = this.group.elements;\n  },\n  methods: {\n    onClickOutside() {\n      if (this.changeThrottle) {\n        this.changeThrottle.cancel();\n      }\n      this.onApply();\n    },\n    onChange() {\n      if (!this.changeThrottle) {\n        this.changeThrottle = throttle(400, async () => {\n          this.onApply();\n        });\n      }\n\n      this.changeThrottle();\n    },\n    onApply() {\n      const facets = this.$refs.sliderElement\n        .map((sliderElement) => {\n          const {\n            element: { name, absoluteMinValue, absoluteMaxValue, unit },\n            lower,\n            upper,\n          } = sliderElement;\n          const { associatedFieldName } = this.group;\n\n          const newLower = String(lower);\n          const newUpper = String(upper);\n\n          if (\n            Number(lower) <= Number(absoluteMinValue) &&\n            Number(upper) >= Number(absoluteMaxValue)\n          ) {\n            return {\n              value: false,\n              element: {\n                name,\n                associatedFieldName,\n                selected: false,\n                absoluteMinValue,\n                absoluteMaxValue,\n                unit,\n              },\n            };\n          }\n\n          return {\n            value: true,\n            element: {\n              name,\n              associatedFieldName,\n              selected: true,\n              selectedMinValue: newLower,\n              selectedMaxValue: newUpper,\n            },\n          };\n        })\n        .filter((facet) => facet !== null);\n      if (facets.length) {\n        this.$emit('change', ...facets);\n      }\n    },\n  },\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import './fact-finder-slider-facet';\n</style>\n","<template>\n  <facet-list-fi\n    ref=\"facet\"\n    :name=\"facet.name\"\n    :elements=\"elements\"\n    :unit=\"facet.unit\"\n    class=\"fact-finder-text-facet\"\n    @close=\"$emit('close')\"\n    @change=\"change\"\n    @clear-selection=\"clearSelection\"\n  />\n</template>\n\n<script>\nimport { FacetListFi } from 'atoms';\n\nexport default {\n  name: 'FactFinderTextFacet',\n  components: {\n    FacetListFi,\n  },\n  props: {\n    facet: {\n      type: Object,\n      default: () => ({}),\n    },\n    unselectedFacet: {\n      type: Object,\n      default: null,\n    },\n  },\n  emits: ['close', 'change'],\n  computed: {\n    elements() {\n      const { elements } = this.unselectedFacet || this.facet;\n      return elements.map((element) => ({\n        name: element.text,\n        key: `${element.text}${this.unselectedFacet ? '_r' : ''}`,\n        associatedFieldName: this.facet.associatedFieldName,\n        selected: this.isChecked(element),\n        count: element.totalHits,\n        disabled: element.disabled, // TODO\n      }));\n    },\n  },\n  methods: {\n    close() {\n      if (this.$refs.facet) {\n        this.$refs.facet.close();\n      } else {\n        this.$emit('close');\n      }\n    },\n    clearSelection() {\n      this.facet.elements.forEach((element) => {\n        this.$emit('change', {\n          value: false,\n          element: {\n            ...element,\n            selected: false,\n          },\n        });\n      });\n      this.close();\n    },\n    isChecked(element) {\n      if (element.selectedBool) {\n        return true;\n      }\n      if (this.unselectedFacet) {\n        const elementInActualFacet = this.facet.elements.find(\n          (actualElement) => actualElement.text === element.text,\n        );\n        return elementInActualFacet?.selectedBool;\n      }\n\n      return false;\n    },\n    isEnabled(element) {\n      if (this.unselectedFacet) {\n        return this.facet.elements.some((actualElement) => actualElement.name === element.name);\n      }\n\n      return element.recordCount > 0;\n    },\n    change({ value, element }) {\n      const newFacet = {\n        name: this.facet.name,\n        elements: [\n          ...this.facet.elements.filter(\n            (facetElement) => facetElement.selected && facetElement.name !== element.name,\n          ),\n        ],\n      };\n      if (value) {\n        newFacet.elements.push({\n          associatedFieldName: element.associatedFieldName,\n          name: element.name,\n          selected: true,\n        });\n      }\n\n      this.$emit('change', {\n        value,\n        element: {\n          associatedFieldName: element.associatedFieldName,\n          name: element.name,\n          selected: value,\n        },\n      });\n      this.close();\n    },\n  },\n};\n</script>\n\n<style scoped lang=\"scss\">\n@import './fact-finder-text-facet';\n</style>\n","<template>\n  <select-fi\n    v-if=\"!isFite\"\n    class=\"fact-finder-facet-fi\"\n    :open=\"open\"\n    :name=\"name\"\n    :disabled=\"facet.disabled\"\n    :mobile-inline=\"isSliderFacet\"\n    large\n    @toggle-open=\"toggleOpen\"\n    @close=\"$emit('close')\"\n    @change=\"(...params) => $emit('change', ...params)\"\n  >\n    <template #selectionMobile>\n      <template v-if=\"facet.type === 'TEXT'\">\n        <template v-for=\"element in facet.elements\">\n          <template v-if=\"element.selected\">\n            {{ element.text }}\n          </template>\n        </template>\n      </template>\n      <template v-else>\n        <template v-for=\"element in facet.elements\">\n          <span\n            v-if=\"element.selected\"\n            :key=\"element.name\"\n          >\n            {{ element.selectedMinValue }} {{ facet.unit }} - {{ element.selectedMaxValue }}\n            {{ facet.unit }}\n          </span>\n        </template>\n      </template>\n    </template>\n    <fact-finder-text-facet\n      v-if=\"facet.type === 'TEXT'\"\n      :facet=\"facet\"\n      @change=\"onChange\"\n      @close=\"onClose\"\n    />\n    <fact-finder-slider-facet\n      v-else-if=\"isSliderFacet\"\n      :group=\"facet\"\n      @change=\"onChange\"\n      @close=\"onClose\"\n    />\n    <div v-else>{{ facet.name }} {{ facet.type }}</div>\n  </select-fi>\n\n  <div\n    v-else\n    class=\"fact-finder-facet-fi\"\n  >\n    <div class=\"fact-finder-facet-fi__label\">\n      {{ name }}\n    </div>\n    <fact-finder-fite-checkbox-fi\n      :facet=\"facet\"\n      @change=\"onChange\"\n    />\n  </div>\n</template>\n\n<script>\nimport { SelectFi } from 'atoms';\nimport factFinderNgNameCleaner from 'components/search-fact-finder-fi/factFinderNgNameCleaner';\n\nimport FactFinderFiteCheckboxFi from '../fact-finder-fite-checkbox-fi/FactFinderFiteCheckboxFi';\nimport FactFinderSliderFacet from './fact-finder-slider-facet/FactFinderSliderFacet';\nimport FactFinderTextFacet from './fact-finder-text-facet/FactFinderTextFacet';\n\nexport default {\n  name: 'FactFinderFacetFi',\n  components: {\n    FactFinderSliderFacet,\n    FactFinderTextFacet,\n    SelectFi,\n    FactFinderFiteCheckboxFi,\n  },\n  props: {\n    facet: {\n      type: Object,\n      required: true,\n    },\n    open: {\n      type: Boolean,\n    },\n    idx: {\n      type: Number,\n      default: null,\n    },\n    registerDomElement: {\n      type: Function,\n      default: null,\n    },\n  },\n  emits: ['change', 'close', 'toggle-open'],\n  data() {\n    return {\n      wrapperStyle: {},\n      internalOpen: false,\n    };\n  },\n  computed: {\n    isSliderFacet() {\n      const {\n        facet: { type },\n      } = this;\n      return ['FLOAT', 'INTEGER'].includes(type);\n    },\n    name() {\n      return factFinderNgNameCleaner(this.facet.name);\n    },\n  },\n  watch: {\n    idx(newValue) {\n      this.registerElement(newValue);\n    },\n  },\n  mounted() {\n    this.registerElement(this.idx);\n  },\n  methods: {\n    registerElement(idx) {\n      if (idx === 0 && this.registerDomElement) {\n        this.registerDomElement(this.$el);\n      }\n    },\n    onClose() {\n      this.$emit('close');\n    },\n    toggleOpen() {\n      this.$emit('toggle-open');\n    },\n    onChange(...params) {\n      this.$emit('change', ...params);\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\">\n@import './fact-finder-facet-fi-unscoped';\n</style>\n","export default (filter) => {\n  if (filter.selectedMaxValue) {\n    return `${filter.selectedMinValue}-${filter.selectedMaxValue}`;\n  }\n  return filter.name || filter.text;\n};\n","export default (filter) => {\n  if (filter.selectedMaxValue) {\n    return {\n      associatedFieldName: filter.associatedFieldName,\n      selectedMinValue: filter.selectedMinValue,\n      selectedMaxValue: filter.selectedMaxValue,\n    };\n  }\n  return {\n    associatedFieldName: filter.associatedFieldName,\n    name: filter.name,\n  };\n};\n"],"file":"assets/toFilterInput-HMx3i2fY.js"}