{"version":3,"file":"globalSearchField-CPp0o6pO.js","sources":["../../../../Coloplast.UI/src/shared/mixins/globalSearchAutosuggestResultsMixin.js","../../../../Coloplast.UI/src/shared/components/globalSearch/globalSearchField.vue"],"sourcesContent":["import { mapGetters, mapActions, mapMutations } from 'vuex';\r\nimport ShortCodeSearchService from \"shared/services/shortCodeSearch.service\";\r\nimport * as _ from 'lodash';\r\nimport { prepareSearchPhrase } from 'shared/utils/queryParams.utils';\r\n\r\nexport default {\r\n\tdata: function () {\r\n\t\treturn {\r\n\t\t\tsearchField: {},\r\n\t\t};\r\n\t},\r\n\tprops: {\r\n\t\tshortCodeApiUri: {\r\n\t\t\ttype: String,\r\n\t\t\trequired: true\r\n\t\t},\r\n\t},\r\n\tcomputed: {\r\n\t\t...mapGetters({\r\n\t\t\tglobalSearchModel: 'getGlobalSearchModel',\r\n\t\t\tglobalAutoSuggestSearchResults: 'getGlobalAutoSuggestSearchResults',\r\n\t\t\tnoAutocompleteItems: 'getNoAutocompleteItems',\r\n\t\t\tisSearchPage: 'getIsSearchPage',\r\n\t\t\tlanguage: 'getCulture',\r\n\t\t\tselectedSuggestionIndex: 'getSelectedSuggestionIndex',\r\n\t\t}),\r\n\t\tsearchPageUrl() {\r\n\t\t\tif (!_.isEmpty(this.globalSearchModel) && this.globalSearchModel.SearchResultPageUrl)\r\n\t\t\t\treturn this.globalSearchModel.SearchResultPageUrl;\r\n\t\t\telse\r\n\t\t\t\treturn '';\r\n\t\t},\r\n\t\tstartAutocompleteSearch() {\r\n\t\t\treturn this.localSearchPhrase.length >= this.globalSearchModel.AutoSuggestionMinimumCharacters;\r\n\t\t},\r\n\t\tsearchAutocompleteResultsVisible() {\r\n\t\t\treturn this.localSearchPhrase.length > 0 && this.globalAutoSuggestSearchResults?.length > 0 || !!this.noAutocompleteItems;\r\n\t\t},\r\n\t\tlocalSearchPhrase() {\r\n\t\t\tif (this.searchField && !_.isEmpty(this.searchField)) {\r\n\t\t\t\treturn this.$refs.searchField?.localSeachPhrase || '';\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\t\t},\r\n\t\tisFirstAutoSuggestCardFocused(){\r\n\t\t\treturn this.selectedSuggestionIndex == 0\r\n\t\t},\r\n\t\tisLastAutoSuggestCardFocused() {\r\n\t\t\treturn this.selectedSuggestionIndex == this.globalAutoSuggestSearchResults.length - 1 && this.globalAutoSuggestSearchResults.length != 0\r\n\t\t}\r\n\t},\r\n\tcreated() {\r\n\t\t//to cancel and clear autosuggestions if it is clicked outside\r\n\t\twindow.addEventListener('click', (e) => {\r\n\t\t\tif (!this.$el.contains(e.target)) {\r\n\t\t\t\tthis.cancelAutosuggestionSearch();\r\n\t\t\t}\r\n\t\t})\r\n\t},\r\n\tbeforeDestroy() {\r\n\t\tdocument.removeEventListener('click');\r\n\t},\r\n\r\n\tmounted() {\r\n\t\tthis.$nextTick(() => {\r\n\t\t\tthis.searchField = this.$refs.searchField;\r\n\t\t})\r\n\t},\r\n\twatch: {\r\n\t\tsearchAutocompleteResultsVisible: {\r\n\t\t\timmediate: true,\r\n\t\t\tdeep: true,\r\n\t\t\thandler(newVal) {\r\n\t\t\t\tif (newVal) {\r\n\t\t\t\t\tdocument.body.style.overflow = 'hidden';\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tdocument.body.removeAttribute('style');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\tmethods: {\r\n\t\t...mapActions([\r\n\t\t\t'autoSuggestGlobalSearch',\r\n\t\t\t'cancelAutosuggestionSearch',\r\n\t\t]),\r\n\t\t...mapMutations([\r\n\t\t\t'setSelectedSuggestionIndex'\r\n\t\t]),\r\n\t\tautoSuggestSearch() {\r\n\t\t\tif (this.startAutocompleteSearch) {\r\n\t\t\t\tthis.autoSuggestGlobalSearch({ searchPhrase: this.localSearchPhrase, language: this.language });\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t/**\r\n\t\t * Make sure not to assign it directly as event handler\r\n\t\t * for event that emits general search phrase.\r\n\t\t * It would treat search phrase as \"facet\" parameter\r\n\t\t * resulting in not finding results.\r\n\t\t *\r\n\t\t * @example\r\n\t\t * // DON'T\r\n\t\t * v-on:search=\"executeSearch\"\r\n\t\t *\r\n\t\t * // DO\r\n\t\t * v-on:search=\"handleSearch\"\r\n\t\t * handleSearch: () => {\r\n\t\t * \tthis.executeSearch();\r\n\t\t * }\r\n\t\t */\r\n\t\tasync executeSearch(facet = null) {\r\n\t\t\tconst searchPhrase = this.localSearchPhrase.trim();\r\n\r\n\t\t\t// not for the search page field\r\n\r\n\t\t\t// first do short code search\r\n\t\t\tconst shortCodeRegex = /^[A-Za-z0-9]{4,6}$/;\r\n\r\n\t\t\tif (shortCodeRegex.test(searchPhrase)) {\r\n\t\t\t\tconst response = await this.shortCodeSearch(searchPhrase);\r\n\r\n\t\t\t\t// if no result from short code search, do keyword search\r\n\t\t\t\tif (!response?.data?.items?.length && !facet) {\r\n\t\t\t\t\twindow.location.assign(`${this.searchPageUrl}?q=${searchPhrase}`);\r\n\t\t\t\t} else if (!response?.data?.items?.length && facet) {\r\n\t\t\t\t\twindow.location.assign(`${this.searchPageUrl}?q=${searchPhrase}&fc=${facet}`);\r\n\t\t\t\t}\r\n\t\t\t} else if (searchPhrase.length && !facet) {\r\n\t\t\t\twindow.location.assign(`${this.searchPageUrl}?q=${prepareSearchPhrase(searchPhrase)}`);\r\n\t\t\t} else if (searchPhrase.length && facet) {\r\n\t\t\t\twindow.location.assign(`${this.searchPageUrl}?q=${prepareSearchPhrase(searchPhrase)}&fc=${facet}`);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tshortCodeSearch(phrase) {\r\n\t\t\tconst response = ShortCodeSearchService.getShortCode(`${this.shortCodeApiUri}${phrase}`);\r\n\r\n\t\t\tresponse.then(({data}) => {\r\n\t\t\t\tif (data?.items?.length > 0) {\r\n\t\t\t\t\tlocation.href = `${location.protocol}//${location.host}${data.items[0].url}`;\r\n\t\t\t\t}\r\n\t\t\t})\r\n\r\n\t\t\treturn response;\r\n\t\t},\r\n\r\n\t\thandleDescSuggestion() {\r\n\t\t\tif (this.isFirstAutoSuggestCardFocused) {\r\n\t\t\t\tthis.setSearchInputFocus();\r\n\t\t\t\tthis.setSelectedSuggestionIndex(\"reset\");\r\n\t\t\t} else {\r\n\t\t\t\tthis.setSelectedSuggestionIndex(\"desc\");\r\n\t\t\t}\r\n\t\t},\r\n\t\thandleAscSuggestion() {\r\n\t\t\tif ( !this.isLastAutoSuggestCardFocused ) {\r\n\t\t\t\tthis.setSelectedSuggestionIndex(\"asc\");\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tsetSearchInputFocus() {\r\n\t\t\tlet inputRef = this.isSearchPage ? this.$refs.searchField.$el : this.$refs.GlobalSearchPopup;\r\n\t\t\tconst searchField = inputRef.querySelector('.c-global-search__field');\r\n\t\t\tif (searchField != null) {\r\n\t\t\t\tthis.$nextTick(() => {\r\n\t\t\t\t\tsearchField.focus();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n}\r\n","\r\n\r\n\r\n"],"names":["globalSearchAutosuggestResultsMixin","mapGetters","_.isEmpty","_a","newVal","mapActions","mapMutations","facet","searchPhrase","response","_b","_d","_c","prepareSearchPhrase","phrase","ShortCodeSearchService","data","searchField","_sfc_main","globalSearchEvents","val","DsIconButton","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_createElementVNode","$options","args","_createVNode","_component_DsIconButton","$props","_normalizeClass","_ctx","$event","_renderSlot"],"mappings":"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"}