var __assign,makeSearchComponentStore,__spreadArray;Vue.component("loading",{template:'<div class="loadingSpinner text-center">\n    <i class="fas fa-spinner fa-spin fa-3x" style="color: #169AD7;"><\/i>\n    <p>Loading...<\/p>\n<\/div>'});__assign=this&&this.__assign||function(){return __assign=Object.assign||function(n){for(var t,r,i=1,u=arguments.length;i<u;i++){t=arguments[i];for(r in t)Object.prototype.hasOwnProperty.call(t,r)&&(n[r]=t[r])}return n},__assign.apply(this,arguments)};makeSearchComponentStore=function(){return new Vuex.Store({state:{loading:!0,context:{url:null,searchFields:[]},query:{defaultKeywords:null,userKeywords:null,searchFields:[],filterExpression:null,orderBy:null,itemLimit:10,skip:0,facetFields:[],facetFilters:{},language:null,otherSearchOptions:{}},results:{totalCount:0,search:[],facets:[]},error:null,router:null,storeType:"search"},mutations:{init:function(n,t){t.context&&(n.context=__assign(__assign({},n.context),t.context));t.query&&(n.query=__assign(__assign({},n.query),t.query))},loading:function(n,t){n.loading=t},results:function(n,t){n.results=t},userKeywords:function(n,t){n.query.userKeywords=t},filterExpression:function(n,t){n.query.filterExpression=t},skipResults:function(n,t){n.query.skip=t},addFacetFilterValue:function(n,t){var i=n.query.facetFilters[t.id]||[],r;i.includes(t.value)?i=i.filter(function(n){return n!==t.value}):i.push(t.value);r=__assign({},n.query.facetFilters);i.length?r[t.id]=i:delete r[t.id];n.query.facetFilters=r},setFacetFilter:function(n,t){var r=n.query.facetFilters[t.id],i=__assign({},n.query.facetFilters);!t&&r?delete i[t.id]:i[t.id]=t.values;n.query.facetFilters=i},setOtherSearchOptions:function(n,t){n.query.otherSearchOptions=__assign(__assign({},n.query.otherSearchOptions),t)},setFromRoute:function(n){var t=n.router.currentRoute.query;n.query.userKeywords=t.k||null;n.query.facetFilters=t.f?JSON.parse(t.f):{};n.query.skip=parseInt(t.s)||0},setRouter:function(n,t){n.router=t},removeFiltersForFacet:function(n,t){var i=__assign({},n.query.facetFilters);delete i[t];n.query.facetFilters=i},removeFiltersForFacets:function(n,t){var i=__assign({},n.query.facetFilters);t.forEach(function(n){delete i[n]});n.query.facetFilters=i},clearAllFacetFilters:function(n){n.query.facetFilters={}},reset:function(n){n.query.facetFilters={};n.query.userKeywords=null;n.query.skip=0},error:function(n,t){n.error=t}},actions:{init:function(n,t){var i=n.commit,r=n.dispatch,u=n.state;if(t.router&&i("setRouter",t.router),i("init",{context:t.context,query:t.query}),u.router&&(i("setFromRoute"),window.addEventListener("popstate",function(){r("updateFromRoute")})),t.fetch!==!1)return r("fetchResults")},skipResults:function(n,t){var i=n.commit,r=n.dispatch;return i("skipResults",t),r("fetchResults")},newKeywordQuery:function(n,t){var i=n.commit,r=n.dispatch;return i("userKeywords",t),i("skipResults",0),r("fetchResults")},newFilterExpression:function(n,t){var i=n.commit,r=n.dispatch;return i("filterExpression",t),i("skipResults",0),r("fetchResults")},addFacetFilterValue:function(n,t){var i=n.commit,r=n.dispatch;return i("addFacetFilterValue",t),i("skipResults",0),r("fetchResults")},setFacetFilter:function(n,t){var i=n.commit,r=n.dispatch;return i("setFacetFilter",t),i("skipResults",0),r("fetchResults")},setMultipleFacetFilters:function(n,t){var i=n.commit,r=n.dispatch;return t.forEach(function(n){i("setFacetFilter",n)}),i("skipResults",0),r("fetchResults")},setOtherSearchOptions:function(n,t){var i=n.commit,r=n.dispatch;return i("setOtherSearchOptions",t),r("fetchResults")},removeFiltersForFacet:function(n,t){var i=n.commit,r=n.dispatch;return i("removeFiltersForFacet",t),i("skipResults",0),r("fetchResults")},removeFiltersForFacets:function(n,t){var i=n.commit,r=n.dispatch;return i("removeFiltersForFacets",t),i("skipResults",0),r("fetchResults")},clearAllFacetFilters:function(n){var t=n.commit,i=n.dispatch;return t("clearAllFacetFilters"),t("skipResults",0),i("fetchResults")},reset:function(n){var t=n.commit,i=n.dispatch;return t("reset"),i("fetchResults")},updateFromRoute:function(n){var t=n.commit,i=n.dispatch;return t("setFromRoute"),i("fetchResults")},updateRoute:function(n){var t=n.state,r=t.router.currentRoute,i=__assign({},r.query);t.query.userKeywords?i.k=t.query.userKeywords:delete i.k;Object.keys(t.query.facetFilters).length?i.f=JSON.stringify(t.query.facetFilters):delete i.f;t.query.skip?i.s=t.query.skip:delete i.s;JSON.stringify(i)!=JSON.stringify(r.query)&&t.router.push({query:i})},fetchResults:function(n){var i=n.commit,r=n.dispatch,t=n.state;return i("loading",!0),new Promise(function(n,u){var f,e,o={searchQuery:t.query.userKeywords,filterKeywords:t.query.defaultKeywords,searchFields:t.query.searchFields,filterExpression:t.query.filterExpression,orderBy:t.query.orderBy,itemLimit:t.query.itemLimit,skip:t.query.skip,facetFields:t.query.facetFields,language:t.query.language};((f=Object.keys(t.query.facetFilters))===null||f===void 0?void 0:f.length)&&(o.facetFilters=t.query.facetFilters);((e=Object.keys(t.query.otherSearchOptions))===null||e===void 0?void 0:e.length)&&(o.otherOptions=t.query.otherSearchOptions);$.ajax({url:t.context.url,method:"POST",contentType:"application/json",data:JSON.stringify(o)}).then(function(u){i("results",{totalCount:u.totalCount,search:u.results,facets:u.facets});t.router&&r("updateRoute");i("error",null);i("loading",!1);n()}).fail(function(n){i("error",n);i("loading",!1);u(n)})})}}})};Vue.component("search-base",{props:{url:String,searchQuery:String,defaultKeywords:String,searchFields:{type:Array,"default":function(){return[]}},itemLimit:{type:Number,"default":0},facetFields:{type:Array,"default":function(){return[]}},otherOptions:{type:Object,"default":function(){return{}}}},router:Daktronics.Components.GetVueRouter(),created:function(){var n=this;this.$store.commit("setRouter",this.$router);this.$store.dispatch("init",{context:{url:this.url},query:{userKeywords:this.searchQuery,defaultKeywords:this.defaultKeywords,searchFields:this.searchFields,itemLimit:this.itemLimit,facetFields:this.facetFields,otherSearchOptions:this.otherOptions}}).then(function(){n.$root.$emit("search-loaded")})},template:"<div><\/div>"});Vue.component("search-box",{props:{searchValue:String,title:{type:String,"default":"Search"},placeholder:{type:String,"default":"Search..."},showReset:{type:Boolean,"default":!0}},data:function(){return{textValue:""}},watch:{searchValue:function(n){!this.textValue&&n&&(this.textValue=n)}},methods:{updateSearchValue:function(){this.$emit("update-search-value",this.textValue)},reset:function(){this.textValue="";this.$emit("reset")}},template:'\n<div class="input-group dak-search-box">\n    <input type="text"\n            class="form-control"\n            :aria-label="title"\n            :placeholder="placeholder"\n            v-model="textValue"\n            @keyup.enter="updateSearchValue" />\n    <div class="input-group-append search-button">\n        <span class="input-group-text" @click="updateSearchValue" :title="title"><i class="fas fa-search"><\/i><\/span>\n        <span v-if="showReset" class="input-group-text" @click="reset" title="Reset"><i class="fas fa-undo-alt"><\/i><\/span>\n\t<\/div>\n<\/div>'});$(".search-box-content-block").length&&$(".search-box-content-block").each(function(){var n=$(this).attr("id");new Vue({el:"#"+n,methods:{updateUserSearchQuery:function(n){var t=this.$el.getAttribute("data-search-page"),i=this.$el.getAttribute("data-query-param");window.location.href=encodeURI("".concat(t,"?").concat(i,"=").concat(n))}}})});__spreadArray=this&&this.__spreadArray||function(n,t,i){if(i||arguments.length===2)for(var r=0,f=t.length,u;r<f;r++)!u&&r in t||(u||(u=Array.prototype.slice.call(t,0,r)),u[r]=t[r]);return n.concat(u||Array.prototype.slice.call(t))};Vue.component("search-facets",{props:{facetResults:{type:Array,"default":function(){return[]}}},data:function(){return{facetsShowing:null}},computed:{dropDownRefiners:function(){return this.facetResults.filter(function(n){return!n.advancedOnly})}},watch:{facetResults:function(){var n=this;this.$nextTick(function(){return n.showHideDropdowns()})}},methods:{clearFilters:function(){this.$store.dispatch("clearAllFacetFilters");this.$root.$emit("clear-facets")},showHideDropdowns:function(){var n=$(".facet-dropdowns>*"),u=n.parent().width(),i=function(n,t){return n+$(t).outerWidth()},r=n.filter(":not(a)"),t=n.get().reduce(i,0),f=r.filter(":hidden");for(f.length&&t<u&&(f.first().removeClass("d-none"),t=n.get().reduce(i,0));t>0&&t>=u;)r.filter(":visible").last().addClass("d-none"),t=n.get().reduce(i,0);this.facetsShowing=r.filter(":visible").length}},created:function(){var n=this;$(window).on("resize",function(){setTimeout(function(){n.showHideDropdowns()},20)});this.showHideDropdowns()},template:'\n<div>\n    <div class="facet-dropdowns text-center d-none d-md-flex flex-nowrap justify-content-center">\n        <search-facet-dropdown v-for="(facet, index) in dropDownRefiners" :key="index"\n                                :facet="facet"><\/search-facet-dropdown>\n        <a v-show="facetResults !== null && facetsShowing < facetResults.length"\n            class="btn btn-outline-primary dak-btn-refiner my-3 mx-1 py-2 px-3 text-nowrap"\n            href="#" role="button" data-toggle="modal" data-target="#allRefinersModal"><i class="fas fa-filter"><\/i> More Filters...<\/a>\n    <\/div>\n    <div class="text-center d-md-none">\n        <a class="btn btn-block w-50 btn-outline-primary dak-btn-refiner my-3 mx-auto py-2 px-3"\n            href="#" role="button" data-toggle="modal" data-target="#allRefinersModal"><i class="fas fa-filter"><\/i> Filter...<\/a>\n    <\/div>\n    <div class="modal fade" id="allRefinersModal" tabindex="-1" role="dialog" aria-labelledby="allRefinersModalTitle" aria-hidden="true">\n        <div class="modal-dialog modal-dialog-scrollable modal-lg" role="document">\n            <div class="modal-content">\n                <div class="modal-header">\n                    <h3 class="modal-title" id="allRefinersModalTitle">All Filters<\/h3>\n                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;<\/span><\/button>\n                <\/div>\n                <div class="modal-body text-left">\n                    <div class="accordion" id="allRefinersAccordion">\n                        <search-facet-collapse v-for="facet in facetResults" :key="facet.id"\n                                                :facet="facet"\n                                                parent-selector="#allRefinersAccordion"><\/search-facet-collapse>\n                        <slot><\/slot>\n                    <\/div>\n                <\/div>\n                <div class="modal-footer">\n                    <button type="button" class="btn btn-outline-secondary" @click="clearFilters">Clear<\/button>\n                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Done<\/button>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>'});Vue.component("search-facet-dropdown",{props:{facet:Object},computed:{selections:function(){return this.$store.state.query.facetFilters[this.facet.id]||[]},label:function(){var n="All "+this.facet.pluralLabel;return this.selections.length===1?n=this.selections[0]:this.selections.length>1&&(n=this.selections[0]+" and others"),n},topResults:function(){var n=[];return this.facet.results&&(n=__spreadArray([],this.facet.results,!0).filter(function(n,t){return t<15})),n}},methods:{applyFacetFilter:function(n){this.$store.dispatch("addFacetFilterValue",{id:this.facet.id,value:n.label})},clearRefinement:function(){this.$store.dispatch("removeFiltersForFacet",this.facet.id)},facetResultIsSelected:function(n){return this.selections.includes(n.label)}},template:'\n<div>\n  <div class="btn-group dropdown">\n      <button class="btn btn-outline-primary dak-btn-refiner dropdown-toggle my-3 mx-1 py-2 px-3"\n          href="#" type="button" data-toggle="dropdown"\n          aria-haspopup="true" aria-expanded="false"\n          :disabled="!facet.results || facet.results.length === 0"\n      >{{ label }}<\/button>\n      <div class="dropdown-menu">\n          <a class="dropdown-item dak-refiner-result"\n              v-show="selections.length > 0"\n              v-on:click="clearRefinement()"\n          ><span>All {{ facet.pluralLabel }}<\/span><\/a>\n          <a v-for="result in topResults"\n              v-on:click="applyFacetFilter(result)"\n              v-bind:class="{ \'font-weight-bold\': facetResultIsSelected(result) }"\n              class="dropdown-item dak-refiner-result"\n          ><span>{{ result.label }}<\/span>\n            <span class="dak-refiner-result-count">({{ result.count }})<\/span><\/a>\n      <\/div>\n  <\/div>\n<\/div>'});Vue.component("search-facet-collapse",{props:{facet:Object,parentSelector:String},data:function(){return{columnCount:2}},computed:{id:function(){return this.facet.id},selections:function(){return this.$store.state.query.facetFilters[this.facet.id]||[]},sortedResults:function(){var n=[];return this.facet.results&&(n=__spreadArray([],this.facet.results,!0).sort(function(n,t){var i=n.label.toUpperCase(),r=t.label.toUpperCase();return i<r?-1:i>r?1:0})),n},columns:function(){for(var i=[],r=0,u=function(){var f=n.facet.results.length/n.columnCount,t=r,u=f+t,e={"class":"col-lg-".concat(12/n.columnCount),results:n.sortedResults.filter(function(n,i){return i>=t&&i<u})};i.push(e);r=u},n=this,t=0;t<this.columnCount;t++)u(t);return i}},methods:{isSelected:function(n){return this.selections.some(function(t){return t===n.label})},onChange:function(n){var t={id:this.facet.id,value:n.label};this.$store.dispatch("addFacetFilterValue",t)}},template:'\n<div>\n    <div class="accordionHeading invert position-relative">\n        <h2><a :href="\'#\' + id"\n                class="stretched-link"\n                data-toggle="collapse"\n                aria-expanded="false"\n                :aria-controls="id">{{facet.label}}<\/a><\/h2>\n    <\/div>\n    <div class="collapse container-fluid" :id="id" :data-parent="parentSelector">\n        <div class="row pt-2 pb-3">\n            <div v-for="(column, index) in columns" :key="index" :class="column.class">\n                <div v-for="(result, index) in column.results" :key="result.value" class="form-check">\n                    <input class="form-check-input"\n                            type="checkbox"\n                            :id="id + index.toString()"\n                            :value="result.label"\n                            :checked="isSelected(result)"\n                            @change="onChange(result)">\n                    <label class="form-check-label" :for="id + index.toString()">\n                        {{ result.label || \'(Not specified)\' }} <span class="dak-refiner-result-count">({{ result.count }})<\/span>\n                    <\/label>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    <hr class="my-2">\n<\/div>'});Vue.component("search-paging",{props:{totalRows:Number,startRow:Number,rowLimit:Number,pageLimit:Number},data:function(){return{pages:[]}},computed:{pageCount:function(){return Math.ceil(this.totalRows/this.rowLimit)},onFirstPage:function(){return this.currentPageNumber<=1},onLastPage:function(){return this.currentPageNumber>=this.pageCount},currentPageNumber:function(){return this.getPageNumber(this.startRow,this.rowLimit)},currentPage:function(){var n=this;return this.pages.find(function(t){return t.number===n.currentPageNumber})}},watch:{startRow:function(){this.setPages()},rowLimit:function(){this.setPages()},totalRows:function(){this.setPages()}},methods:{getPageByNumber:function(n){return this.pages.find(function(t){return t.number===n})},goToNextPage:function(n,t){var i=n?-1:1,r=this.currentPageNumber+i;nextPage=this.getPageByNumber(r);this.goToPage(nextPage,t)},goToPage:function(n,t){return t&&t.preventDefault(),this.$emit("change-page",n.startRow),this.$nextTick(function(){this.emitPagingData()}),!1},getPageNumber:function(n,t){return n===0?1:Math.floor(n/t+1)},getStartRowForPage:function(n,t){return n===1?0:n*t},setPages:function(){for(var i=[],r=this.getPageNumber(this.startRow,this.rowLimit),t=Math.max(r-Math.ceil(this.pageLimit/2),0),u=Math.min(t+this.pageLimit,this.pageCount),n=t;n>=t&&n<u;)i.push({number:n+1,startRow:n*this.rowLimit}),n++;this.pages=i;this.emitPagingData()},emitPagingData:function(){var n={pages:this.pages,currentPage:this.currentPage};this.$emit("update-paging-data",n)}},created:function(){this.setPages()},template:'\n<ul v-if="totalRows > rowLimit" class="pagination justify-content-center">\n    <li class="page-item" v-bind:class="{disabled: onFirstPage}">\n        <a class="page-link dak-page-link" href="#"\n        v-bind:tabindex="onFirstPage ? -1 : 0"\n        v-bind:aria-disabled="onFirstPage ? \'true\' : \'false\'"\n        v-on:click="goToNextPage(true, $event)"\n        >Previous<\/a>\n    <\/li>\n    <li class="page-item" v-for="page in pages" v-bind:class="{active: page.number === currentPageNumber}">\n        <a class="page-link dak-page-link" href="#" v-on:click="goToPage(page, $event)">{{ page.number }}<\/a>\n    <\/li>\n    <li class="page-item" v-bind:class="{disabled: onLastPage}">\n        <a class="page-link dak-page-link" href="#" \n        v-bind:tabindex="onLastPage ? -1 : 0"\n        v-bind:aria-disabled="onLastPage ? \'true\' : \'false\'"\n        v-on:click="goToNextPage(false, $event)"\n        >Next<\/a>\n    <\/li>\n<\/ul>'})