{"version":3,"sources":["../../ts/src/in-page/PageView.ts"],"names":["EMPTY_RESULT","indexes","noResults","query","textAll","textEmpty","totalItems","urlAll","PageView","config","isEmpty","searchQuery","time","hide","visible","request","xhr","abort","result","ts","Date","getTime","loading","filters","filterList","forEach","value","key","ajax","url","dataType","type","data","q","store_id","storeId","cat","limit","page","buckets","currency","success","observable","activeIndex","Map","sendRequest","debounce","searchBarView","SearchBarView","indexListView","IndexListView","itemListView","ItemListView","sidebarView","SidebarView","subscribe","toggleClass","document","on","e"],"mappings":"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","sourcesContent":["import { Config, Result } from \"../types\"\nimport _ from \"underscore\"\nimport ko from \"knockout\"\nimport $ from \"jquery\"\nimport { IndexListView } from \"./IndexListView\"\nimport { SearchBarView } from \"./SearchBarView\"\nimport { ItemListView } from \"./ItemListView\"\nimport { SidebarView } from \"./SidebarView\"\n\nconst EMPTY_RESULT = {\n indexes: [],\n noResults: false,\n query: \"\",\n textAll: \"\",\n textEmpty: \"\",\n totalItems: 0,\n urlAll: \"\",\n}\n\nexport class PageView {\n visible: KnockoutObservable\n loading: KnockoutObservable\n sendRequest: () => void\n xhr: JQueryXHR | null\n config: Config\n result: KnockoutObservable\n time: KnockoutObservable\n\n activeIndex: KnockoutObservable\n searchQuery: KnockoutObservable\n filterList: KnockoutObservable>\n\n searchBarView: SearchBarView\n indexListView: IndexListView\n itemListView: ItemListView\n sidebarView: SidebarView\n\n constructor(config: Config) {\n this.config = config\n this.visible = ko.observable(false)\n this.loading = ko.observable(false)\n this.searchQuery = ko.observable(\"\")\n this.activeIndex = ko.observable(\"magento_catalog_product\")\n this.filterList = ko.observable(new Map())\n this.sendRequest = _.debounce(this.request, 10)\n this.xhr = null\n this.result = ko.observable(EMPTY_RESULT)\n this.time = ko.observable(0)\n\n this.searchBarView = new SearchBarView({\n query: this.searchQuery,\n visible: this.visible,\n })\n\n this.indexListView = new IndexListView({\n result: this.result,\n activeIndex: this.activeIndex,\n })\n\n this.itemListView = new ItemListView({\n result: this.result,\n activeIndex: this.activeIndex,\n })\n\n this.sidebarView = new SidebarView({\n result: this.result,\n activeIndex: this.activeIndex,\n filterList: this.filterList,\n })\n\n this.visible.subscribe(visible => {\n $(\"html\").toggleClass(\"mstInPage\", visible)\n })\n\n $(document).on(\"keyup\", e => {\n if (e.key === \"Escape\") {\n this.searchQuery() == \"\" && this.visible(false)\n }\n })\n\n this.searchQuery.subscribe(this.sendRequest)\n this.filterList.subscribe(this.sendRequest)\n }\n\n isEmpty = () => {\n return this.searchQuery() === \"\" || this.time() === 0\n }\n\n hide = () => {\n this.visible(false)\n }\n\n request = () => {\n this.xhr?.abort()\n\n if (this.searchQuery() === \"\") {\n this.result(EMPTY_RESULT)\n this.time(0)\n\n return\n }\n\n const ts = new Date().getTime()\n\n this.loading(true)\n\n const filters: any = {}\n this.filterList().forEach((value, key) => filters[key] = value)\n\n this.xhr = $.ajax({\n url: this.config.url,\n dataType: \"json\",\n type: \"GET\",\n data: {\n q: this.searchQuery(),\n store_id: this.config.storeId,\n cat: false,\n limit: 30,\n page: 1,\n buckets: [ \"category_ids\" ],\n filters: filters,\n currency: this.config.currency,\n },\n success: (data: Result) => {\n this.loading(false)\n this.result(data)\n this.time((new Date().getTime() - ts) / 1000)\n },\n })\n }\n}\n"],"file":"PageView.js"}