{"version":3,"mappings":";gKAYA,MAAMA,EAAmB,CACvB,MAAgB,qEAChB,KAAgB,mBAChB,MAAgB,mDAChB,aAAgB,wBAChB,eAAgB,iCAClB,EAGA,MAAMC,UAAyBC,CAAe,CAG5C,YAAYC,EAA0B,CACpC,MAAMC,EAAkB,OAAO,OAAO,GAAIJ,EAAkBG,CAAQ,EAEpE,MAAMC,EAAiB,EAAI,EAC3B,KAAK,SAAWA,EAEhB,KAAK,gBAAkB,KAAK,IAAI,QAAQA,EAAgB,cAAc,EAIlE,KAAK,gBAAgB,OAAS,GAChCC,EAAe,KAAK,gBAAgB,CAAC,EAAmBC,GAAM,CAC5D,KAAK,WAAWA,CAAC,EAClB,CACH,CAGQ,SAASC,EAAS,CACrB,UAAK,aAAcA,CAAG,EAGrB,WAAWD,EAAS,CAC1B,MAAME,EAASF,EAAE,OAEbE,GAAU,MAEFC,EAAED,CAAM,EACZ,QAAQ,oBAAoB,EAAE,OAAS,GAK7CE,EAAA,uCACF,yCACC,KAAK,IAAM,CACL,SAAI,QAAQ,OAAO,EACzB,EAEL,CAGA,MAAMC,EAAU,CACd,OAAOR,EAAyB,CACvB,WAAIF,EAAiBE,CAAQ,EAExC","names":["DEFAULT_SELECTOR","SortSelectPicker","JSSelectPicker","selector","merged_selector","onClickOutside","e","val","target","$","__vitePreload","Factory"],"ignoreList":[],"sources":["../../../app/assets/javascripts/components/js_selectpicker/sort_selectpicker.ts"],"sourcesContent":["\nimport $ from \"jquery\"\nimport \"plugins/select2\"\nimport {\n onClickOutside,\n} from \"plugins/vanilla-clickout\"\nimport {\n JSSelectPicker,\n InputSelector,\n} from \"./base\"\n\n\nconst DEFAULT_SELECTOR = {\n scope: \".cell-listing-filter__filter-option--no-of-bedrooms-range__wrapper\",\n main: \".js-selectpicker\",\n arrow: \".select2-selection__arrow b[role=\\\"presentation\\\"]\",\n first_option: \"option:nth-of-type(1)\",\n original_scope: \".listing-search-result--sorting\",\n}\n\n\nclass SortSelectPicker extends JSSelectPicker {\n protected $original_scope: JQuery\n\n constructor(selector?: InputSelector) {\n const merged_selector = Object.assign({}, DEFAULT_SELECTOR, selector)\n\n super(merged_selector, true)\n this.selector = merged_selector\n\n this.$original_scope = this.$el.closest(merged_selector.original_scope)\n\n // This object might be created even expected element does not exist\n // Thus must check existence of expected element first\n if (this.$original_scope.length > 0) {\n onClickOutside(this.$original_scope[0] as HTMLElement, (e) => {\n this.onClickout(e)\n })\n }\n }\n\n protected onChange(val: any){\n this.emit(\"val_change\", val)\n }\n\n private onClickout(e: Event){\n const target = e.target\n\n if (target == null) { return }\n\n const $el = $(target)\n if ($el.closest(\".select2-container\").length > 0){\n return\n }\n\n import(\n \"select2/dist/js/select2.full\"\n )\n .then(() => {\n this.$el.select2(\"close\")\n })\n }\n}\n\n\nconst Factory = {\n create(selector?: InputSelector){\n return new SortSelectPicker(selector)\n },\n}\n\nexport {\n Factory as default,\n Factory,\n SortSelectPicker,\n}\nexport type {\n InputSelector,\n}\n"],"file":"assets/sort_selectpicker-9Q-jftwj.js"}