{"version":3,"sources":["webpack:///./src/modules/FilterableGridModule/FilterableGridModule.store.ts","webpack:///./src/modules/FilterableGridModule/FilterableGridModule.types.ts","webpack:///./src/common/ApiService/HttpVerb.ts","webpack:///./src/utils/loaderUtils.ts","webpack:///./src/common/ApiService/ApiService.ts","webpack:///./src/utils/toastUtils.ts","webpack:///./src/modules/FilterableGridModule/FilterableGridModule.api.ts"],"names":["INIT_GRID","UPDATE_FILTER","UPDATE_OUTER_FILTER","APPLY_FILTERS","CLEAR_FILTERS","UPDATE_SORTING","UPDATE_FILTER_COUNTS","LOAD_MORE","UPDATE_PAGE","actions","dispatch","gettersT","HideFilters","params","fullReplace","isInitial","paging","PageSize","GET_PAGE_SIZE","Start","option","commit","RESET_CARD_STATE","TOGGLE_FILTER","state","filterName","filter","Filters","find","f","Name","Options","value","UPDATE_FILTER_VALUE","IsDropdown","o","Checked","Value","forEach","IsSingleCheckbox","updatePage","filtersToShow","GET_FILTERS_TO_SHOW","M_CLEAR_FILTERS","sortingValue","M_UPDATE_SORTING","PAGE_COUNT_FOR_UPDATE","CURRENT_PAGE_COUNT","getters","Endpoint","length","counts","IS_FE","cards","GET_FILTERED_CARDS","FilterCounts","FEAllCards","TotalCount","M_UPDATE_FILTER_COUNTS","SET_LOADING_STATE","showCount","pagedCards","slice","page","Cards","Paging","Total","M_UPDATE_FE_PAGE","Sorting","CurrentSorting","showLoading","undefined","IsFullReplace","EmptyGridMessage","SET_EMPTY_GRID_MESSAGE","M_UPDATE_PAGE","CHANGE_FILTERS","M_UPDATE_HEADER_BUTTON","M_HIDE_SHOW_HEADER_BUTTON","M_UPDATE_MASONRY","mutations","payload","Masonry","TopTitle","MainTitle","ResetCardsState","IsLoading","filters","c","push","Object","keys","filterCounts","item","HeaderCta","assign","isHidden","HeaderButtonHidden","PAGE_CARDS","rootState","rootGetters","pageSize","isInBreakpoint","PageSizeSmall","PageSizeMedium","Math","max","filtered","sorting","s","Data","Field","Direction","registerModule","data","firstSorting","toString","namespaced","store","getFilterOptions","filterItem","Groups","map","g","reduce","aggr","getCheckedOptions","getCheckedFilter","isFinder","opt","type","Header","Text","String","toUpperCase","getCheckedFilters","checkedFilters","getUnitedCheckedFilters","results","getCheckedValues","getCheckedCount","count","current","getFilterValues","values","uncheckAll","setFilterCount","Count","Id","filterCards","isFiltersFitCard","card","every","isFilterFitCard","checked","some","isOptionFitCard","cardValue","split","n","parseInt","v","Array","isArray","includes","getFilterCountsByCards","acc","filteredCards","HttpVerb","hideLoader","service","options","cancelTokens","cache","defaultOptions","verb","GET","cancel","returnData","handleErrors","cacheResults","redirectUrl","this","call","method","key","getCacheKey","Promise","resolve","axiosParams","createAxiosParams","addDataToParams","addCancelToken","request","a","then","r","handleError","window","location","href","redirectObject","JSON","stringify","error","response","resp","errorCode","status","errors","ModelState","err","msg","Type","ToastType","Danger","Message","Error","toLowerCase","Item","SegmentElement","sendEvent","captcha_score","error_message","message","ExceptionMessage","baseURL","url","headers","callMetaName","tokens","source","CancelToken","cancelToken","token","stopOnSuccess","finally","catch","HandleStatusObject","success","fail","IsOk","showToastMessage","messages","delay","getService","endPoint","POST","GetFilterCounts","endpoint","GetPage"],"mappings":"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","file":"109.c5bd9392b93ef110b9bd.js","sourcesContent":["import { Module, ActionTree, MutationTree, GetterTree, Store } from 'vuex';\n\nimport { RootState } from '@/store/types';\nimport { registerSubModule } from '@/utils/vueUtils';\n\nimport {\n GetFilterCounts,\n GetPage,\n GridPage,\n FilterCounts,\n ApiPaging,\n PagingResult,\n} from './FilterableGridModule.api';\nimport {\n FilterableGridViewModel,\n FilterOption,\n uncheckAll,\n getFilterValues,\n setFilterCount,\n IGridCard,\n FilterItem,\n getFilterCountsByCards,\n filterCards,\n} from './FilterableGridModule.types';\nimport { RootGetters } from '@/store/getters';\nimport { sort } from '@/utils/commonUtils';\nimport CtaLinkItem from '@/common/interfaces/CtaLinkItem';\n\nexport interface FilterableGridModuleState extends FilterableGridViewModel {\n ResetCardsState: boolean;\n CurrentSorting: string;\n FEAllCards?: IGridCard[];\n IsLoading: boolean;\n HeaderButtonHidden?: boolean;\n}\n\ninterface UpdatePageParams {\n fullReplace: boolean; // false only for paging actions\n paging: ApiPaging;\n isInitial?: boolean;\n}\n\ninterface OuterFilterParams {\n filter: FilterItem;\n filterName: string;\n value: number | string | boolean;\n}\n\nexport const INIT_GRID = 'INIT_GRID';\nexport const UPDATE_FILTER = 'UPDATE_FILTER';\nexport const UPDATE_OUTER_FILTER = 'UPDATE_OUTER_FILTER';\nexport const APPLY_FILTERS = 'APPLY_FILTERS';\nexport const CLEAR_FILTERS = 'CLEAR_FILTERS';\nexport const UPDATE_SORTING = 'UPDATE_SORTING';\n// export const CHANGE_PAGE = 'CHANGE_PAGE';\nexport const UPDATE_FILTER_COUNTS = 'UPDATE_FILTER_COUNTS';\nexport const LOAD_MORE = 'LOAD_MORE';\nexport const UPDATE_PAGE = 'UPDATE_PAGE';\nconst actions: ActionTree = {\n [INIT_GRID]({ dispatch, getters, state }) {\n const gettersT: ModuleGetters = getters;\n\n if (!state.HideFilters) dispatch(UPDATE_FILTER_COUNTS);\n\n const params: UpdatePageParams = {\n fullReplace: true,\n isInitial: true,\n paging: {\n PageSize: gettersT.GET_PAGE_SIZE,\n Start: 0,\n },\n };\n dispatch(UPDATE_PAGE, params);\n },\n [UPDATE_FILTER]({ commit, dispatch }, option: FilterOption) {\n commit(RESET_CARD_STATE);\n commit(TOGGLE_FILTER, option);\n dispatch(UPDATE_FILTER_COUNTS);\n },\n [UPDATE_OUTER_FILTER]({ state, commit, dispatch }, params: OuterFilterParams) {\n if (params.filterName) {\n const filter = state.Filters.find((f) => f.Name === params.filterName);\n if (filter) {\n const option = filter.Options[0];\n const value = params.value;\n\n commit(UPDATE_FILTER_VALUE, { option, value });\n dispatch(APPLY_FILTERS);\n }\n }\n\n if (params.filter && params.filter.IsDropdown) {\n // Toggle to uncheck previous and check current value\n params.filter.Options.filter(\n (o) => (o.Checked && o.Value !== params.value) || (!o.Checked && o.Value === params.value),\n ).forEach((o) => commit(TOGGLE_FILTER, o));\n dispatch(APPLY_FILTERS);\n }\n if (params.filter && params.filter.IsSingleCheckbox) {\n commit(TOGGLE_FILTER, params.filter.Options[0]);\n dispatch(UPDATE_FILTER_COUNTS);\n dispatch(APPLY_FILTERS);\n }\n },\n [CLEAR_FILTERS]({ commit, dispatch, getters }, updatePage: boolean) {\n const gettersT: ModuleGetters = getters;\n\n const filtersToShow = gettersT.GET_FILTERS_TO_SHOW?.filter(\n (f) => !f.IsDropdown && !f.IsSingleCheckbox,\n );\n\n commit(M_CLEAR_FILTERS, filtersToShow);\n\n dispatch(UPDATE_FILTER_COUNTS);\n if (updatePage) {\n dispatch(APPLY_FILTERS);\n }\n },\n [APPLY_FILTERS]({ dispatch, getters }) {\n const gettersT: ModuleGetters = getters;\n\n const params: UpdatePageParams = {\n fullReplace: true,\n paging: {\n PageSize: gettersT.GET_PAGE_SIZE,\n Start: 0,\n },\n };\n dispatch(UPDATE_PAGE, params);\n },\n [UPDATE_SORTING]({ commit, dispatch, state, getters }, sortingValue: string) {\n const gettersT: ModuleGetters = getters;\n\n commit(M_UPDATE_SORTING, sortingValue);\n\n const params: UpdatePageParams = {\n fullReplace: true,\n paging: {\n PageSize: gettersT.PAGE_COUNT_FOR_UPDATE,\n Start: 0,\n },\n };\n\n commit(RESET_CARD_STATE);\n\n dispatch(UPDATE_PAGE, params);\n },\n [LOAD_MORE]({ state, commit, dispatch, getters }) {\n const gettersT: ModuleGetters = getters;\n const params: UpdatePageParams = {\n fullReplace: false,\n paging: {\n PageSize: gettersT.GET_PAGE_SIZE,\n Start: gettersT.CURRENT_PAGE_COUNT,\n },\n };\n dispatch(UPDATE_PAGE, params);\n },\n // [CHANGE_PAGE]({ dispatch }) {\n // const params: UpdatePageParams = { fullReplace: false };\n // dispatch(UPDATE_PAGE, params);\n // },\n\n // API actions\n async [UPDATE_FILTER_COUNTS]({ state, commit, getters }) {\n const gettersT = getters as ModuleGetters;\n const { Endpoint, Filters } = state;\n\n const filtersToShow = gettersT.GET_FILTERS_TO_SHOW?.filter((f) => !f.IsDropdown);\n\n if (filtersToShow?.length && Filters) {\n let counts: FilterCounts = null;\n if (gettersT.IS_FE) {\n const cards = gettersT.GET_FILTERED_CARDS;\n\n counts = {\n FilterCounts: getFilterCountsByCards(state.FEAllCards, Filters),\n TotalCount: cards.length,\n };\n\n // console.log('counts', cards.length, counts);\n } else {\n counts = await GetFilterCounts(Endpoint, getFilterValues(Filters));\n }\n\n commit(M_UPDATE_FILTER_COUNTS, counts);\n }\n },\n async [UPDATE_PAGE]({ state, commit, getters }, params: UpdatePageParams) {\n try {\n commit(SET_LOADING_STATE, true);\n const gettersT = getters as ModuleGetters;\n\n let page: GridPage = null;\n if (gettersT.IS_FE) {\n const cards = getters.GET_FILTERED_CARDS;\n const showCount = params.paging.Start + params.paging.PageSize;\n const pagedCards = params.paging.PageSize === -1 ? cards : cards.slice(0, showCount);\n\n page = {\n Cards: pagedCards,\n Paging: {\n Total: cards.length,\n },\n };\n\n commit(M_UPDATE_FE_PAGE, page);\n } else {\n const page = await GetPage(\n state.Endpoint,\n {\n Paging: params.paging, // Depends on current breakpoint\n Filters: state.Filters ? getFilterValues(state.Filters) : {},\n Sorting: state.CurrentSorting,\n },\n params.isInitial ? { showLoading: false } : undefined,\n );\n\n page.IsFullReplace = params.fullReplace;\n\n if (!state.EmptyGridMessage && page.Paging.Total == 0 && state.Filters)\n commit(SET_EMPTY_GRID_MESSAGE, \"No results. Try adjusting your search by removing filters or changing your dates\");\n\n commit(M_UPDATE_PAGE, page);\n }\n } catch (e) {\n //console.log(e);\n } finally {\n commit(SET_LOADING_STATE, false);\n }\n },\n};\n\nexport const TOGGLE_FILTER = 'TOGGLE_FILTER';\nexport const CHANGE_FILTERS = 'APPLY_FILTERS';\nexport const M_CLEAR_FILTERS = 'CLEAR_FILTERS';\nexport const M_UPDATE_SORTING = 'UPDATE_SORTING';\nexport const M_UPDATE_FE_PAGE = 'M_UPDATE_FE_PAGE';\nexport const M_UPDATE_PAGE = 'M_UPDATE_PAGE';\nexport const M_UPDATE_FILTER_COUNTS = 'M_UPDATE_FILTER_COUNTS';\nexport const SET_LOADING_STATE = 'SET_LOADING_STATE';\nexport const SET_EMPTY_GRID_MESSAGE = 'SET_EMPTY_GRID_MESSAGE';\nexport const UPDATE_FILTER_VALUE = 'UPDATE_FILTER_VALUE';\nexport const M_UPDATE_HEADER_BUTTON = 'M_UPDATE_HEADER_BUTTON';\nexport const M_HIDE_SHOW_HEADER_BUTTON = 'M_HIDE_SHOW_HEADER_BUTTON';\nexport const RESET_CARD_STATE = 'RESET_CARD_STATE';\nexport const M_UPDATE_MASONRY = 'M_UPDATE_MASONRY';\n\nconst mutations: MutationTree = {\n [M_UPDATE_MASONRY](state, payload) {\n state.Masonry.TopTitle = payload.TopTitle;\n state.Masonry.MainTitle = payload.MainTitle;\n },\n [RESET_CARD_STATE](state) {\n state.ResetCardsState = !state.ResetCardsState;\n },\n [SET_LOADING_STATE](state, payload) {\n state.IsLoading = payload;\n },\n [SET_EMPTY_GRID_MESSAGE](state, payload) {\n state.EmptyGridMessage = payload;\n },\n [TOGGLE_FILTER](state, option: FilterOption) {\n // eslint-disable-next-line no-param-reassign\n option.Checked = !option.Checked;\n },\n [UPDATE_FILTER_VALUE](state, { option, value }) {\n option.Value = value;\n },\n [M_CLEAR_FILTERS](state, filters: FilterItem[]) {\n filters.forEach(uncheckAll);\n },\n [M_UPDATE_SORTING](state, sortingValue: string) {\n state.CurrentSorting = sortingValue;\n },\n [M_UPDATE_FE_PAGE](state, page: GridPage) {\n if (state.Paging) {\n state.Paging.Total = page.Paging.Total;\n }\n\n state.Cards = page.Cards;\n },\n [M_UPDATE_PAGE](state, page: GridPage) {\n state.Paging.Total = page.Paging.Total;\n if (page.IsFullReplace) {\n state.Cards = page.Cards;\n } else {\n page.Cards.forEach((c) => state.Cards.push(c));\n }\n },\n [M_UPDATE_FILTER_COUNTS](state, counts: FilterCounts) {\n // state.Paging.Total = counts.TotalCount;\n\n Object.keys(counts.FilterCounts).forEach((filterName) => {\n const filter = state.Filters?.find((f) => f.Name === filterName);\n const filterCounts = counts.FilterCounts[filterName];\n\n if (filter && filterCounts) {\n setFilterCount(filter, filterCounts);\n }\n });\n },\n [M_UPDATE_HEADER_BUTTON](state, item: CtaLinkItem) {\n state.HeaderCta = Object.assign({}, state.HeaderCta, item);\n },\n [M_HIDE_SHOW_HEADER_BUTTON](state, isHidden: boolean) {\n state.HeaderButtonHidden = !isHidden;\n },\n};\n\nexport const GET_PAGE_SIZE = 'GET_PAGE_SIZE';\nexport const CURRENT_PAGE_COUNT = 'CURRENT_PAGE_COUNT';\nexport const PAGE_COUNT_FOR_UPDATE = 'PAGE_COUNT_FOR_UPDATE';\nexport const GET_FILTERS_TO_SHOW = 'GET_FILTERS_TO_SHOW';\n\nexport const GET_FILTERED_CARDS = 'GET_FILTERED_CARDS';\nexport const PAGE_CARDS = 'PAGE_CARDS';\nexport const IS_FE = 'IS_FE';\n\ninterface ModuleGetters {\n GET_PAGE_SIZE: number;\n CURRENT_PAGE_COUNT: number;\n PAGE_COUNT_FOR_UPDATE: number;\n GET_FILTERS_TO_SHOW: FilterItem[];\n GET_FILTERED_CARDS: IGridCard[];\n PAGE_CARDS: IGridCard[];\n IS_FE: boolean;\n}\n\nconst getters: GetterTree = {\n [GET_PAGE_SIZE](state, getters, rootState, rootGetters: RootGetters) {\n let pageSize = state.Paging?.PageSize;\n if (rootGetters.isInBreakpoint('xs')) pageSize = state.Paging?.PageSizeSmall;\n if (rootGetters.isInBreakpoint('md')) pageSize = state.Paging?.PageSizeMedium;\n pageSize = pageSize || -1;\n\n return pageSize;\n },\n [CURRENT_PAGE_COUNT](state) {\n return state.Cards.length;\n },\n [PAGE_COUNT_FOR_UPDATE](state, getters: ModuleGetters) {\n const gettersT = getters as ModuleGetters;\n\n return Math.max(gettersT.CURRENT_PAGE_COUNT, gettersT.GET_PAGE_SIZE);\n },\n [GET_FILTERS_TO_SHOW](state) {\n // filter single option filter (edge case for sub-pages)\n return state.Filters?.filter(\n (f) => !(f.Options && !f.IsSingleCheckbox && f.Options.length === 1 && f.Options[0].Checked),\n );\n },\n [GET_FILTERED_CARDS](state) {\n // Only FE\n let filtered = [...state.FEAllCards];\n const sorting = state.Sorting?.find((s) => s.Value === state.CurrentSorting);\n\n if (state.Filters?.length) {\n filtered = filterCards(filtered, state.Filters);\n }\n\n if (sorting) {\n sort(filtered, (c) => c[sorting.Data.Field], sorting.Data.Direction, true);\n }\n\n return filtered;\n },\n [PAGE_CARDS](state) {\n return state.Cards;\n },\n [IS_FE](state) {\n return !state.Endpoint;\n },\n};\n\nconst registerModule = registerSubModule(\n (data: FilterableGridViewModel) => {\n let firstSorting: string = '';\n if (data.Sorting && data.Sorting[0]) firstSorting = data.Sorting[0].Value.toString();\n\n const state: FilterableGridModuleState = {\n ...data,\n CurrentSorting: data.CurrentSorting || firstSorting,\n IsLoading: false,\n ResetCardsState: false,\n };\n\n if (!data.Endpoint) {\n state.FEAllCards = state.Cards;\n state.Cards = [];\n }\n\n return {\n namespaced: true,\n state,\n actions,\n mutations,\n getters,\n } as Module;\n },\n 'FilterableGridModule',\n);\n\nexport default async (store: Store, data: FilterableGridViewModel) =>\n registerModule(store, data);\n","import { FilterValuesModel, FilterCountItem, FilterCountsItem } from './FilterableGridModule.api';\nimport CtaLinkItem from '@/common/interfaces/CtaLinkItem';\nimport LinkItem from '@/common/interfaces/LinkItem';\n\nexport interface IGridCard {\n Id?: number;\n CardType?: string;\n}\n\nexport interface FilterableGridViewModel {\n CtaText?: string;\n DottedLine?: boolean; // show footer dotted line\n Header?: string; // DestinationGrid (\"All destinations\")\n TitleLarge?: string;\n ShowHeaderCount?: boolean; // DestinationsGrid (\"(30) All destinations\")\n ShowLeftResultCount?: boolean; // TeamMemberGrid (\"800 Results\")\n HeaderCta?: CtaLinkItem; // BrochureGrid \"Submit Orders\" button\n Filters?: FilterItem[];\n CurrentSorting?: string;\n Sorting?: SortingOption[];\n Cards: IGridCard[];\n Masonry?: MasonrySettings;\n Paging?: PagingModel;\n Endpoint?: string;\n EmptyGridMessage?: string; //Message shown if there is no cards\n DisclaimerMessage?: string;\n ViewMoreLink?: LinkItem;\n HideFilters?: boolean;\n HideSorting?: boolean;\n AppliedFilters?: AppliedFilters;\n NoteText?: string;\n}\n\nexport interface MasonrySettings {\n TopTitle: string;\n MainTitle: string;\n MasonryField: string;\n}\n\nexport interface SortingOption {\n Title: string;\n Value: string | number;\n Data?: {\n Field: string;\n Direction: 'asc' | 'desc';\n };\n}\n\nexport interface PagingModel {\n Total: number;\n PageSize: number; // desktop (-1 for all)\n PageSizeMedium?: number; // tablet\n PageSizeSmall?: number; // mobile\n LoadMoreButton?: CtaLinkItem;\n ViewCounts: boolean; // \"Viewing 12 of 800\" - M061-TeamMemberGrid\n AdditionalButton?: CtaLinkItem; // Not sure about this one\n // for full paging\n // CurrentPage?: number; //\n // AllPages?: number;\n // IsFull?: boolean; // LoadMore is not full\n}\n\nexport interface FilterItem {\n Header: string;\n Name: string;\n Options?: FilterOption[];\n Groups?: FilterOptionsGroup[];\n IsDropdown?: boolean;\n IsSingleCheckbox?: boolean;\n}\n\nexport interface FilterOptionsGroup {\n Header: string;\n Options: FilterOption[];\n}\n\nexport interface FilterOption {\n Text: string;\n Value: string | number;\n Count: number;\n Checked: boolean;\n}\n\nexport interface SegmentFilterOption {\n type: string,\n value: string,\n}\nexport interface AppliedFilters\n{\n Destination: string,\n Itinerary: string,\n StartDate :string,\n EndDate :string\n}\n\nexport const getFilterOptions = (filterItem: FilterItem) => {\n if (filterItem.Options) {\n return filterItem.Options;\n }\n if (filterItem.Groups) {\n return filterItem.Groups.map((g) => g.Options).reduce((aggr, item) => [...aggr, ...item], []);\n }\n return [];\n};\n\nexport const getCheckedOptions = (filterItem: FilterItem): FilterOption[] =>\n getFilterOptions(filterItem).filter((o) => o.Checked);\n\nexport const getCheckedFilter = (filterItem: FilterItem, isFinder: boolean): SegmentFilterOption[] =>\n getFilterOptions(filterItem).filter((o) => o.Checked).map(opt => {\n const type = filterItem.Header;\n if (type === 'Dates' && !isFinder) return { value: `${opt.Text} ${String(opt.Value).slice(0, 4)}`, type }\n if (type === 'Dates' && isFinder) {\n if (opt.Text.length === 3) {\n opt.Text = `${opt.Text} ${String(opt.Value).slice(0, 4)}`\n }\n return { value: `${opt.Text.toUpperCase()}`, type }\n }\n return { value: opt.Text, type }\n })\n\nexport const getCheckedFilters = (filters: FilterItem[], isFinder = false) => {\n const checkedFilters = filters.map(filter => getCheckedFilter(filter, isFinder));\n return getUnitedCheckedFilters(checkedFilters)\n}\nexport const getUnitedCheckedFilters = (filters: Array) =>\n filters.reduce((results: SegmentFilterOption[], filter: SegmentFilterOption[]) => {\n if (filter.length) filter.map(filterItem => results.push(filterItem))\n return results;\n }, [])\n\nexport const getCheckedValues = (filterItem: FilterItem): any[] => {\n return getCheckedOptions(filterItem).map((o) => o.Value);\n};\n\nexport const getCheckedCount = (filters: FilterItem[]) =>\n filters.reduce((count, current) => count + getCheckedOptions(current).length, 0);\n\nexport const getFilterValues = (filters: FilterItem[]): FilterValuesModel => {\n return filters.reduce(\n (values: FilterValuesModel, filter: FilterItem) => ({\n ...values,\n [filter.Name]: getCheckedValues(filter),\n }),\n {},\n );\n};\n\nexport const uncheckAll = (filterItem: FilterItem): void =>\n getFilterOptions(filterItem).forEach((o) => (o.Checked = false));\n\nexport const setFilterCount = (filterItem: FilterItem, counts: FilterCountItem[]) =>\n getFilterOptions(filterItem).forEach(\n (o) => (o.Count = counts.find((c) => c.Id == o.Value)?.Count || 0),\n );\n\nexport const filterCards = (cards: any[], filters: FilterItem[]) => {\n return cards.filter((c) => isFiltersFitCard(c, filters));\n};\n\nexport const isFiltersFitCard = (card: any[], filters: FilterItem[]) => {\n return filters.every((f) => isFilterFitCard(card, f));\n};\n\nexport const isFilterFitCard = (card: any, filter: FilterItem) => {\n const checked = getCheckedOptions(filter);\n return !checked.length || checked.some((o) => isOptionFitCard(card, o, filter));\n};\n\nexport const isOptionFitCard = (card: any, option: FilterOption, filter: FilterItem) => {\n const cardValue = card[filter.Name];\n\n if (filter.Name === 'Durations') {\n const [start, end] = option.Text.split(' ')[0]\n .split('-')\n .map((n) => parseInt(n));\n\n return (cardValue as string[]).some((v) => start <= +v && end && +v <= end);\n } else {\n const { Value } = option;\n\n if (Array.isArray(cardValue)) {\n return cardValue.includes(Value);\n } else {\n return Value == cardValue;\n }\n }\n};\n\nexport const getFilterCountsByCards = (cards: any[], filters: FilterItem[]) => {\n return filters.reduce((acc: FilterCountsItem, filter) => {\n const filteredCards = filterCards(\n cards,\n filters.filter((f) => f !== filter),\n );\n return {\n ...acc,\n [filter.Name]: [\n ...getFilterOptions(filter).map(\n (o) =>\n ({\n Id: o.Value,\n Count: filteredCards.filter((c) => isOptionFitCard(c, o, filter)).length,\n } as FilterCountItem),\n ),\n ],\n };\n }, {} as FilterCountsItem);\n};\n","export enum HttpVerb {\n GET = 'GET',\n POST = 'POST',\n DELETE = 'DELETE',\n PUT = 'PUT',\n PATCH = 'PATCH',\n}\n","import { HIDE_LOADER, SHOW_LOADER } from '@/store/modules/overlayModule';\nimport { getStore } from '@/store/index';\n\nexport const hideLoader = () => {\n getStore().commit(HIDE_LOADER);\n};\n\nexport const showLoader = () => {\n getStore().commit(SHOW_LOADER);\n};\n","import axios, { AxiosRequestConfig, CancelTokenSource, AxiosPromise, AxiosError } from 'axios';\nimport ApiServiceOptions from './ApiServiceOptions';\nimport { HttpVerb } from './HttpVerb';\nimport HandleStatusParams from './HandleStatusParams';\nimport { isLocal, devRoot, isString, isSSR } from '@/utils/commonUtils';\nimport { hideLoader, showLoader } from '@/utils/loaderUtils';\nimport { showToastMessage } from '@/utils/toastUtils';\nimport ToastType from '@/common/interfaces/enums/ToastType';\nimport { SegmentElement } from '@/plugins/utm/SegmentElement';\n\nexport const defaultErrorMessage = 'Something went wrong!';\n\nexport default class ApiService {\n private options: ApiServiceOptions;\n private cancelTokens: { [id: string]: CancelTokenSource } = {};\n private cache: { [key: string]: any } = {};\n constructor(service: string, options?: ApiServiceOptions) {\n const defaultOptions: ApiServiceOptions = {\n verb: HttpVerb.GET,\n cancel: true,\n showLoading: true,\n returnData: false,\n handleErrors: true,\n cacheResults: false,\n redirectUrl: false,\n };\n if (isLocal()) {\n service = `${devRoot}${service}`;\n }\n if (isSSR()) {\n service = `${devRoot}${service}`;\n }\n\n this.options = { service, ...defaultOptions, ...options };\n }\n\n call(method: string, data?: {}, options?: ApiServiceOptions): Promise {\n options = { ...this.options, ...options };\n\n let key = '';\n if (options.cacheResults) {\n key = this.getCacheKey(method, data);\n if (this.cache[key] !== undefined) {\n return Promise.resolve(this.cache[key]);\n }\n }\n\n const axiosParams = this.createAxiosParams(method, options);\n\n this.addDataToParams(axiosParams, data);\n\n if (options.cancel) {\n this.addCancelToken(axiosParams);\n }\n\n let request = axios.request(axiosParams);\n\n if (options.showLoading) {\n this.showLoading(request, options.redirectUrl !== true);\n }\n\n if (options.handleErrors) {\n request.then((r) => r, this.handleError);\n }\n\n if (options.returnData) {\n request = request.then((r) => r.data);\n }\n\n if (options.cacheResults) {\n request.then((r) => {\n this.cache[key] = r;\n });\n }\n\n if (options.redirectUrl) {\n request.then((r) => {\n if (isString(options.redirectUrl)) {\n window.location.href = options.redirectUrl.toString();\n } else {\n const redirectObject: { redirectUrl: string } = r as any;\n if (redirectObject.redirectUrl) window.location.href = redirectObject.redirectUrl;\n }\n });\n }\n\n return request;\n }\n\n private getCacheKey(method: string, data?: {}) {\n return `${method}:${JSON.stringify(data)}`;\n }\n\n private handleError(error: AxiosError) {\n if (error && error.response) {\n const resp = error.response;\n const errorCode = resp.status;\n if (errorCode === 400) {\n if (resp.data) {\n let errors = Object.values(resp.data?.ModelState || resp.data);\n if (isString(resp.data)) {\n errors = [resp.data];\n }\n\n const messages = [];\n errors.forEach((err) => {\n if (Array.isArray(err)) {\n err.forEach((msg) => {\n messages.push({\n Text: msg,\n Type: ToastType.Danger,\n });\n });\n } else {\n messages.push({\n Text: err,\n Type: ToastType.Danger,\n });\n }\n });\n if (messages.length) showToastMessage(messages);\n }\n }\n if (errorCode === 401) {\n if (resp.data.Message) {\n window.location.href = resp.data.Message;\n }\n }\n if (errorCode > 401 && errorCode < 500) {\n if (resp.data.Message) {\n showToastMessage([\n {\n Text: resp.data.Message,\n Type: ToastType.Danger,\n },\n ]);\n }\n }\n\n if (errorCode === 406 && resp.data.Data.Error && resp.data.Data.Error.toLowerCase().includes('captcha')) {\n if (resp.data.Data.Item) {\n SegmentElement.sendEvent('errorReceived', {\n captcha_score: resp.data.Data.Item,\n error_message: resp.data.Data.Error,\n }, true)\n }\n showToastMessage([\n {\n Text: resp.data.Data.Error,\n Type: ToastType.Danger,\n },\n ]);\n }\n\n if (errorCode >= 500 && errorCode < 600) {\n let message = resp.data.ExceptionMessage;\n if (!message && isString(resp.data)) {\n message = resp.data;\n }\n\n if (message) {\n showToastMessage([\n {\n Text: message,\n Type: ToastType.Danger,\n },\n ]);\n }\n }\n }\n }\n\n private createAxiosParams(method: string, options: ApiServiceOptions) {\n const axiosParams: AxiosRequestConfig = {\n method: options.verb,\n baseURL: options.service,\n url: method,\n headers: options.headers,\n };\n\n return axiosParams;\n }\n\n private addDataToParams(params: AxiosRequestConfig, data?: {}) {\n if (data) {\n if (params.method === HttpVerb.GET) {\n params.params = data;\n } else {\n params.data = data;\n }\n }\n }\n\n private addCancelToken(params: AxiosRequestConfig) {\n const callMetaName: string = `${params.method},${params.baseURL},${params.url}`;\n\n const tokens = this.cancelTokens;\n\n if (tokens[callMetaName] !== undefined) {\n tokens[callMetaName].cancel();\n }\n\n const source = axios.CancelToken.source();\n tokens[callMetaName] = source;\n\n params.cancelToken = source.token;\n }\n\n private showLoading(request: AxiosPromise, stopOnSuccess: boolean = true) {\n if (request) {\n showLoader();\n if (stopOnSuccess) {\n request.finally(() => {\n hideLoader();\n });\n } else {\n request.catch(() => {\n hideLoader();\n });\n }\n }\n }\n\n static HandleStatusObject(params: HandleStatusParams) {\n // const { response, success, fail, errorMessage, toastParams } = params;\n const { response, success, fail } = params;\n\n const status = (response as any).data || response;\n if (status.IsOk) {\n if (success) {\n success(status.Item);\n }\n } else {\n if (fail) {\n fail(status.error, status.Item);\n }\n\n // showErrorToast(errorMessage || status.Error || defaultErrorMessage, toastParams);\n }\n\n return status.IsOk;\n }\n}\n","import { getStore } from '@/store/index';\nimport { SHOW_TOAST } from '@/store/modules/toastModule';\nimport NotificationToast from '@/common/interfaces/modules/NotificationToast';\n\nexport const showToastMessage = (messages: NotificationToast[], delay: number = 5000) => {\n getStore().dispatch(SHOW_TOAST, [messages, delay]);\n};\n","import ApiService from '@/common/ApiService/ApiService';\nimport { HttpVerb } from '@/common/ApiService/HttpVerb';\nimport { IGridCard } from './FilterableGridModule.types';\nimport ApiServiceOptions from '@/common/ApiService/ApiServiceOptions';\n\nexport interface GridPage {\n Cards: IGridCard[];\n Paging: PagingResult;\n // only for FE (when you need to replace current page)\n IsFullReplace?: boolean;\n}\n\nexport interface ApiPaging {\n Start: number;\n PageSize: number;\n}\n\nexport interface PagingResult {\n Total: number;\n // TODO add full paging result\n}\n\nexport interface FilterValuesModel {\n [key: string]: any | [];\n}\n\nexport interface PageOptionsModel extends FilterValuesModel {\n Sorting: string;\n Paging: ApiPaging;\n Filters: FilterValuesModel;\n}\n\nexport interface FilterCountItem {\n Id: number;\n Count: number;\n}\n\nexport interface FilterCountsItem {\n [key: string]: FilterCountItem[];\n}\n\nexport interface FilterCounts {\n FilterCounts: FilterCountsItem;\n TotalCount: number;\n}\n\nexport const getService = (endPoint: string) => {\n return new ApiService(endPoint, {\n verb: HttpVerb.POST,\n showLoading: false,\n cancel: true,\n returnData: true,\n });\n};\n\nexport const GetFilterCounts = async (\n endpoint: string,\n data: FilterValuesModel,\n): Promise => {\n return getService(endpoint).call('GetFilterCounts', data);\n};\n\nexport const GetPage = async (\n endpoint: string,\n data: PageOptionsModel,\n options: ApiServiceOptions = { showLoading: true },\n): Promise => {\n return getService(endpoint).call('GetPage', data, options);\n};\n"],"sourceRoot":""}