{"version":3,"file":"index-Zfd1gkyA.js","sources":["../../../app/assets/javascripts/apps/spacious_website/pages/shared/mobile_ver/components/save_search/index.ts"],"sourcesContent":["import $ from \"jquery\"\nimport u from \"umbrellajs\"\n\nimport SaveManager from \"concepts/listings/searches/saved/manager\"\n\nimport {EventEmitter} from \"events\"\n\ninterface Selector {\n scope: string | UmbrellaInstance\n main: string | UmbrellaInstance\n\n save_button: string | UmbrellaInstance\n}\ninterface InputSelector {\n scope?: string | UmbrellaInstance\n main?: string | UmbrellaInstance\n\n save_button?: string | UmbrellaInstance\n}\nconst DEFAULT_SELECTOR = {\n scope: \".page-cities-search-for-sale\",\n main: \".page--shared--mobile-ver-pages--save-and-share-search-banner\",\n\n save_button: \".page--shared--mobile-ver-pages--save-and-share-search-banner-button\",\n}\n\nconst DISMISSED_CLASS = \"page--shared--mobile-ver-pages--save-and-share-search-banner--dismissed\"\nconst HIDE_CLASS = \"page--shared--mobile-ver-pages--save-and-share-search-banner--hide\"\nconst SAVED_CLASS = \"page--shared--mobile-ver-pages--save-and-share-search-banner--saved\"\n\nclass SaveSearchContainer extends EventEmitter {\n protected selector: Selector\n\n protected $scope: UmbrellaInstance\n protected $el: UmbrellaInstance\n protected $save_button: UmbrellaInstance\n\n constructor(selector?: InputSelector){\n super()\n\n this.selector = Object.assign({}, DEFAULT_SELECTOR, selector)\n\n this.$scope = u(this.selector.scope)\n this.$el = this.$scope.find(this.selector.main)\n this.$save_button = this.$el.find(this.selector.save_button)\n\n this.bind_action()\n }\n\n public dismiss(){\n this.$el.addClass(HIDE_CLASS)\n this.$el.addClass(DISMISSED_CLASS)\n }\n\n public show(){\n this.$el.removeClass(SAVED_CLASS)\n this.$el.removeClass(DISMISSED_CLASS)\n this.$el.removeClass(HIDE_CLASS)\n }\n\n protected set_save_button_loading(){\n this.$save_button.addClass(\"loading\")\n }\n\n protected set_save_button_idle(){\n this.$save_button.removeClass(\"loading\")\n }\n\n protected bind_action(){\n SaveManager.on(\"save_click:action\", () => {\n this.set_save_button_loading()\n })\n\n SaveManager.on(\"save_click:idle\", () => {\n this.set_save_button_idle()\n })\n\n SaveManager.on(\"save_click:success\", () => {\n this.set_save_button_idle()\n this.$el.addClass(SAVED_CLASS)\n })\n\n let last_scroll_top = 0\n\n $(window).scroll(() => {\n if (this.$el.hasClass(DISMISSED_CLASS)){\n return\n }\n\n const current_scroll_top = $(window).scrollTop() || 0\n\n if (current_scroll_top > 46 && (current_scroll_top > last_scroll_top)){\n this.$el.addClass(HIDE_CLASS)\n }else{\n this.$el.removeClass(HIDE_CLASS)\n }\n\n last_scroll_top = current_scroll_top\n })\n\n }\n}\n\nconst Factory = {\n _instance: null as null | SaveSearchContainer,\n instance(selector?: InputSelector){\n if (this._instance != null) { return this._instance }\n\n this._instance = this.create(selector)\n return this._instance\n },\n create(selector?: InputSelector){\n return new SaveSearchContainer(selector)\n },\n}\n\nexport {\n Factory,\n SaveSearchContainer,\n}\n"],"names":["DEFAULT_SELECTOR","DISMISSED_CLASS","HIDE_CLASS","SAVED_CLASS","SaveSearchContainer","EventEmitter","selector","u","SaveManager","last_scroll_top","$","current_scroll_top","Factory"],"mappings":"uKAmBA,MAAMA,EAAmB,CACvB,MAAoB,+BACpB,KAAoB,gEAEpB,YAAoB,sEACtB,EAEMC,EAAkB,0EAClBC,EAAa,qEACbC,EAAc,sEAEpB,MAAMC,UAA4BC,EAAAA,YAAa,CAO7C,YAAYC,EAAyB,CAC7B,MAAA,EAEN,KAAK,SAAW,OAAO,OAAO,CAAC,EAAGN,EAAkBM,CAAQ,EAE5D,KAAK,OAASC,EAAE,KAAK,SAAS,KAAK,EACnC,KAAK,IAAM,KAAK,OAAO,KAAK,KAAK,SAAS,IAAI,EAC9C,KAAK,aAAe,KAAK,IAAI,KAAK,KAAK,SAAS,WAAW,EAE3D,KAAK,YAAY,CAAA,CAGZ,SAAS,CACT,KAAA,IAAI,SAASL,CAAU,EACvB,KAAA,IAAI,SAASD,CAAe,CAAA,CAG5B,MAAM,CACN,KAAA,IAAI,YAAYE,CAAW,EAC3B,KAAA,IAAI,YAAYF,CAAe,EAC/B,KAAA,IAAI,YAAYC,CAAU,CAAA,CAGvB,yBAAyB,CAC5B,KAAA,aAAa,SAAS,SAAS,CAAA,CAG5B,sBAAsB,CACzB,KAAA,aAAa,YAAY,SAAS,CAAA,CAG/B,aAAa,CACTM,EAAA,GAAG,oBAAqB,IAAM,CACxC,KAAK,wBAAwB,CAAA,CAC9B,EAEWA,EAAA,GAAG,kBAAmB,IAAM,CACtC,KAAK,qBAAqB,CAAA,CAC3B,EAEWA,EAAA,GAAG,qBAAsB,IAAM,CACzC,KAAK,qBAAqB,EACrB,KAAA,IAAI,SAASL,CAAW,CAAA,CAC9B,EAED,IAAIM,EAAkB,EAEpBC,EAAA,MAAM,EAAE,OAAO,IAAM,CACrB,GAAI,KAAK,IAAI,SAAST,CAAe,EACnC,OAGF,MAAMU,EAAqBD,EAAE,MAAM,EAAE,UAAe,GAAA,EAEhDC,EAAqB,IAAOA,EAAqBF,EAC9C,KAAA,IAAI,SAASP,CAAU,EAEvB,KAAA,IAAI,YAAYA,CAAU,EAGfO,EAAAE,CAAA,CACnB,CAAA,CAGL,CAEA,MAAMC,EAAU,CACd,UAAW,KACX,SAASN,EAAyB,CAC5B,OAAA,KAAK,WAAa,KAAe,KAAK,WAErC,KAAA,UAAY,KAAK,OAAOA,CAAQ,EAC9B,KAAK,UACd,EACA,OAAOA,EAAyB,CACvB,OAAA,IAAIF,EAAoBE,CAAQ,CAAA,CAE3C"}