{"version":3,"file":"js/101-f6dc57c8bc0916942e83.js","mappings":"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","sources":["webpack://artprice/./app/javascript/constants/events/index.js","webpack://artprice/./app/javascript/constants/indexes/chronological.js","webpack://artprice/./app/javascript/constants/indexes/geographical.js","webpack://artprice/./app/javascript/constants/indexes/medium.js","webpack://artprice/./app/javascript/constants/indexes/priceSegments.js","webpack://artprice/./app/javascript/constants/locales.js","webpack://artprice/./app/javascript/constants/myartprice.js","webpack://artprice/./app/javascript/constants/preferences.js","webpack://artprice/./app/javascript/constants/search/scope.js","webpack://artprice/./app/javascript/constants/utils.js","webpack://artprice/./app/javascript/services/account/messages.js","webpack://artprice/./app/javascript/redux/actions/account/messages.js","webpack://artprice/./app/javascript/services/agreements.js","webpack://artprice/./app/javascript/redux/actions/agreements.js","webpack://artprice/./app/javascript/services/auctioneers/contact.js","webpack://artprice/./app/javascript/redux/actions/auctioneers/contact.js","webpack://artprice/./app/javascript/services/auctioneers/medias.js","webpack://artprice/./app/javascript/redux/actions/auctioneers/medias.js","webpack://artprice/./app/javascript/services/auctioneers/sales.js","webpack://artprice/./app/javascript/redux/actions/auctioneers/sales.js","webpack://artprice/./app/javascript/services/auctioneers/stats.js","webpack://artprice/./app/javascript/redux/actions/auctioneers/stats.js","webpack://artprice/./app/javascript/redux/actions/dbEntities/artist.js","webpack://artprice/./app/javascript/redux/actions/dbEntities/auctioneer.js","webpack://artprice/./app/javascript/services/dbEntities/category.js","webpack://artprice/./app/javascript/redux/actions/dbEntities/category.js","webpack://artprice/./app/javascript/redux/actions/dbEntities/classified.js","webpack://artprice/./app/javascript/services/dbEntities/country.js","webpack://artprice/./app/javascript/redux/actions/dbEntities/country.js","webpack://artprice/./app/javascript/services/dbEntities/entity.js","webpack://artprice/./app/javascript/redux/actions/dbEntities/entity.js","webpack://artprice/./app/javascript/redux/actions/dbEntities/index.js","webpack://artprice/./app/javascript/redux/actions/dbEntities/lot.js","webpack://artprice/./app/javascript/services/dbEntities/lotartistassociationtype.js","webpack://artprice/./app/javascript/redux/actions/dbEntities/lotartistassociationtype.js","webpack://artprice/./app/javascript/redux/actions/dbEntities/sale.js","webpack://artprice/./app/javascript/redux/actions/dbEntities/store.js","webpack://artprice/./app/javascript/services/dbEntities/technique.js","webpack://artprice/./app/javascript/redux/actions/dbEntities/technique.js","webpack://artprice/./app/javascript/services/events/index.js","webpack://artprice/./app/javascript/redux/actions/events/index.js","webpack://artprice/./app/javascript/services/indexes/artist.js","webpack://artprice/./app/javascript/redux/actions/indexes/artist.js","webpack://artprice/./app/javascript/services/indexes/chronological.js","webpack://artprice/./app/javascript/redux/actions/indexes/chronological.js","webpack://artprice/./app/javascript/services/indexes/geographical.js","webpack://artprice/./app/javascript/redux/actions/indexes/geographical.js","webpack://artprice/./app/javascript/services/indexes/medium.js","webpack://artprice/./app/javascript/redux/actions/indexes/medium.js","webpack://artprice/./app/javascript/redux/actions/indexes/priceIndex.js","webpack://artprice/./app/javascript/services/indexes/priceSegments.js","webpack://artprice/./app/javascript/redux/actions/indexes/priceSegments.js","webpack://artprice/./app/javascript/services/indexes/ranking.js","webpack://artprice/./app/javascript/redux/actions/indexes/ranking.js","webpack://artprice/./app/javascript/services/indexes/summary.js","webpack://artprice/./app/javascript/redux/actions/indexes/summary.js","webpack://artprice/./app/javascript/services/indicator.js","webpack://artprice/./app/javascript/redux/actions/indicator.js","webpack://artprice/./app/javascript/redux/actions/marketplace/classifieds/messages.js","webpack://artprice/./app/javascript/redux/actions/marketplace/stores/index.js","webpack://artprice/./app/javascript/redux/actions/marketplace/stores/stats.js","webpack://artprice/./app/javascript/redux/actions/marketplace/stores/top.js","webpack://artprice/./app/javascript/services/marketplace/stores/favorite.js","webpack://artprice/./app/javascript/redux/actions/myartprice/data.js","webpack://artprice/./app/javascript/services/myartprice/artists.js","webpack://artprice/./app/javascript/services/myartprice/lots.js","webpack://artprice/./app/javascript/services/myartprice/settings.js","webpack://artprice/./app/javascript/redux/actions/myartprice/settings.js","webpack://artprice/./app/javascript/services/preferences.js","webpack://artprice/./app/javascript/redux/actions/preferences.js","webpack://artprice/./app/javascript/redux/actions/subscriptions/physicproduct.js","webpack://artprice/./app/javascript/services/wallet/promotion.js","webpack://artprice/./app/javascript/redux/actions/subscriptions/promotion.js","webpack://artprice/./app/javascript/redux/actions/subscriptions/settings.js","webpack://artprice/./app/javascript/redux/actions/subscriptions/stripe.js","webpack://artprice/./app/javascript/redux/actions/ui/asyncStatus.js","webpack://artprice/./app/javascript/redux/actions/ui/dictionary.js","webpack://artprice/./app/javascript/redux/actions/ui/switches.js","webpack://artprice/./app/javascript/redux/actions/ui/viewport.js","webpack://artprice/./app/javascript/redux/constants/marketplace/store/stats.js","webpack://artprice/./app/javascript/redux/selectors/account/messages.js","webpack://artprice/./app/javascript/redux/selectors/agreements.js","webpack://artprice/./app/javascript/redux/selectors/auctioneers/contact.js","webpack://artprice/./app/javascript/redux/selectors/auctioneers/medias.js","webpack://artprice/./app/javascript/redux/selectors/auctioneers/sales.js","webpack://artprice/./app/javascript/redux/selectors/auctioneers/stats.js","webpack://artprice/./app/javascript/redux/selectors/dbEntities.js","webpack://artprice/./app/javascript/redux/selectors/events/index.js","webpack://artprice/./app/javascript/redux/selectors/indexes/artist.js","webpack://artprice/./app/javascript/redux/selectors/indexes/chronological.js","webpack://artprice/./app/javascript/redux/selectors/indexes/geographical.js","webpack://artprice/./app/javascript/redux/selectors/indexes/medium.js","webpack://artprice/./app/javascript/utils/indexes/priceIndex.js","webpack://artprice/./app/javascript/redux/selectors/indexes/priceIndex.js","webpack://artprice/./app/javascript/redux/selectors/indexes/priceSegments.js","webpack://artprice/./app/javascript/redux/selectors/indexes/ranking.js","webpack://artprice/./app/javascript/redux/selectors/indexes/summary.js","webpack://artprice/./app/javascript/redux/selectors/marketplace/stores/index.js","webpack://artprice/./app/javascript/redux/selectors/marketplace/stores/stats.js","webpack://artprice/./app/javascript/redux/selectors/myartprice/data.js","webpack://artprice/./app/javascript/redux/selectors/myartprice/index.js","webpack://artprice/./app/javascript/redux/selectors/preferences.js","webpack://artprice/./app/javascript/redux/selectors/subscriptions/physicproducts.js","webpack://artprice/./app/javascript/redux/selectors/subscriptions/promotions.js","webpack://artprice/./app/javascript/redux/selectors/subscriptions/settings.js","webpack://artprice/./app/javascript/redux/selectors/subscriptions/stripe.js","webpack://artprice/./app/javascript/redux/slices/account/lotslists.js","webpack://artprice/./app/javascript/redux/slices/artist/index.js","webpack://artprice/./app/javascript/services/artdbweb/artist/index.js","webpack://artprice/./app/javascript/services/wallet/ami.js","webpack://artprice/./app/javascript/services/wallet/classified.js","webpack://artprice/./app/javascript/redux/slices/artprice/index.js","webpack://artprice/./app/javascript/services/wallet/estimate.js","webpack://artprice/./app/javascript/redux/slices/estimates/index.js","webpack://artprice/./app/javascript/redux/slices/footer/index.js","webpack://artprice/./app/javascript/redux/slices/header/index.js","webpack://artprice/./app/javascript/redux/slices/homepage/index.js","webpack://artprice/./app/javascript/redux/slices/payments/index.js","webpack://artprice/./app/javascript/redux/slices/promotion/index.js","webpack://artprice/./app/javascript/redux/slices/search/scoped.js","webpack://artprice/./app/javascript/utils/search/index.js","webpack://artprice/./app/javascript/redux/slices/search/universal.js","webpack://artprice/./app/javascript/services/userContext.js","webpack://artprice/./app/javascript/redux/slices/userContext/index.js","webpack://artprice/./app/javascript/redux/slices/userContext/selectors.js","webpack://artprice/./app/javascript/redux/reducers/events/index.js","webpack://artprice/./app/javascript/redux/reducers/indexes/index.js","webpack://artprice/./app/javascript/redux/reducers/indexes/artist.js","webpack://artprice/./app/javascript/redux/reducers/indexes/summary.js","webpack://artprice/./app/javascript/redux/reducers/indexes/priceIndex.js","webpack://artprice/./app/javascript/redux/reducers/indexes/chronological.js","webpack://artprice/./app/javascript/redux/reducers/indexes/geographical.js","webpack://artprice/./app/javascript/redux/reducers/indexes/priceSegments.js","webpack://artprice/./app/javascript/redux/reducers/indexes/medium.js","webpack://artprice/./app/javascript/redux/reducers/indexes/ranking.js","webpack://artprice/./app/javascript/redux/reducers/marketplace/stores/stats.js","webpack://artprice/./app/javascript/redux/reducers/marketplace/stores/index.js","webpack://artprice/./app/javascript/redux/reducers/marketplace/stores/top.js","webpack://artprice/./app/javascript/redux/reducers/marketplace/stores/list.js","webpack://artprice/./app/javascript/redux/reducers/marketplace/index.js","webpack://artprice/./app/javascript/redux/reducers/marketplace/manage/index.js","webpack://artprice/./app/javascript/redux/reducers/marketplace/messages/index.js","webpack://artprice/./app/javascript/redux/reducers/myartprice/index.js","webpack://artprice/./app/javascript/redux/reducers/myartprice/settings.js","webpack://artprice/./app/javascript/redux/reducers/myartprice/data.js","webpack://artprice/./app/javascript/redux/actions/ui/scroll.js","webpack://artprice/./app/javascript/redux/reducers/ui/index.js","webpack://artprice/./app/javascript/redux/reducers/ui/scroll.js","webpack://artprice/./app/javascript/redux/reducers/ui/viewport.js","webpack://artprice/./app/javascript/redux/reducers/ui/switches.js","webpack://artprice/./app/javascript/redux/reducers/ui/dictionary.js","webpack://artprice/./app/javascript/redux/reducers/ui/asyncStatus.js","webpack://artprice/./app/javascript/redux/reducers/indicator.js","webpack://artprice/./app/javascript/redux/reducers/auctioneers/index.js","webpack://artprice/./app/javascript/redux/reducers/auctioneers/stats.js","webpack://artprice/./app/javascript/redux/reducers/auctioneers/sales.js","webpack://artprice/./app/javascript/redux/reducers/auctioneers/medias.js","webpack://artprice/./app/javascript/redux/reducers/auctioneers/contact.js","webpack://artprice/./app/javascript/redux/reducers/preferences.js","webpack://artprice/./app/javascript/redux/actions/indexes/index.js","webpack://artprice/./app/javascript/redux/actions/index.js","webpack://artprice/./app/javascript/utils/object.js","webpack://artprice/./app/javascript/redux/reducers/dbEntities.js","webpack://artprice/./app/javascript/redux/reducers/account/index.js","webpack://artprice/./app/javascript/redux/reducers/account/messages.js","webpack://artprice/./app/javascript/redux/reducers/agreements.js","webpack://artprice/./app/javascript/redux/reducers/subscriptions/index.js","webpack://artprice/./app/javascript/redux/reducers/subscriptions/promotions.js","webpack://artprice/./app/javascript/redux/reducers/subscriptions/physicproducts.js","webpack://artprice/./app/javascript/redux/reducers/subscriptions/settings.js","webpack://artprice/./app/javascript/redux/reducers/subscriptions/stripe.js","webpack://artprice/./app/javascript/redux/reducers/index.js","webpack://artprice/./app/javascript/redux/slices/search/index.js","webpack://artprice/./app/javascript/redux/slices/index.js","webpack://artprice/./app/javascript/redux/store.js","webpack://artprice/./app/javascript/services/account/index.js","webpack://artprice/./app/javascript/services/analytics/aapi.js","webpack://artprice/./app/javascript/services/dbEntities/artist.js","webpack://artprice/./app/javascript/services/indexes/priceIndex.js","webpack://artprice/./app/javascript/services/marketplace/classifieds/index.js","webpack://artprice/./app/javascript/services/search/index.js","webpack://artprice/./app/javascript/services/stats/marketplace/index.js","webpack://artprice/./app/javascript/services/subscriptions/stripe.js","webpack://artprice/./app/javascript/services/wallet/customer.js","webpack://artprice/./app/javascript/services/wallet/customerlotslist.js","webpack://artprice/./app/javascript/services/wallet/physicproduct.js","webpack://artprice/./app/javascript/services/wallet/store.js","webpack://artprice/./app/javascript/utils/axios/internal.js","webpack://artprice/./app/javascript/utils/common/filters/index.js","webpack://artprice/./app/javascript/utils/cookie.js","webpack://artprice/./app/javascript/utils/dates/format.js","webpack://artprice/./app/javascript/utils/http.js","webpack://artprice/./app/javascript/utils/links/locale.js","webpack://artprice/./app/javascript/utils/storage.js","webpack://artprice/./app/javascript/constants/subscriptions.js","webpack://artprice/./app/javascript/utils/subscriptions/attentionNeeded.js","webpack://artprice/./app/javascript/utils/xRequestIdManager.js"],"sourcesContent":["export const FUTURE = 'events/FUTURE';\nexport const FUTURE_NOT_PARTNER = 'events/FUTURE_NOT_PARTNER';\nexport const PAST = 'events/PAST';\nexport const PAST_NOT_PARTNER = 'events/PAST_NOT_PARTNER';\nexport const HOME_PAGE = 'events/HOME_PAGE';\n\nexport const DT_START = 'events/dtStart';\nexport const DT_EXPIRE = 'events/dtExpire';\n\nexport const DEFAULT_COUNTRY_FILTER = 'country#all';\nexport const DEFAULT_DATE_START_FILTER = 'from#unset';\nexport const DEFAULT_DATE_EXPIRE_FILTER = 'to#unset';\nexport const DEFAULT_PAGE_FILTER = 'page#1';\nexport const DEFAULT_FILTERS = `${DEFAULT_COUNTRY_FILTER}&${DEFAULT_DATE_START_FILTER}&${DEFAULT_DATE_EXPIRE_FILTER}&${DEFAULT_PAGE_FILTER}`;\n\nexport const PER_PAGE = 15;\nexport const NOT_PARTNERS_PER_PAGE = 18;\n\n// La clé c'est nbAuction et nbFocusOn concaténés\n// desktopItems Correspondants aux nombre d'élements affichés sur desktop\nexport const EVENTS_DISPLAY_OPTIONS = {\n '01': { sm: 6, md: 8, desktopItems: 2 },\n '00': { sm: 12, md: 12, desktopItems: 3 },\n 11: { md: 4, desktopItems: 1 },\n 10: { sm: 6, md: 8, desktopItems: 2 },\n 21: { md: 4, desktopItems: 1 },\n 20: { sm: 12, md: 4, desktopItems: 1 },\n 31: { sm: 6, md: 8, desktopItems: 2 },\n 30: { sm: 12, md: 4, desktopItems: 1 },\n 41: { sm: 6, md: 8, desktopItems: 2 },\n 40: { sm: 12, md: 4, desktopItems: 1 },\n 51: { sm: 6, md: 8, desktopItems: 2 },\n 50: { sm: 12, md: 4, desktopItems: 1 },\n 61: { sm: 6, md: 8, desktopItems: 2 },\n 60: { sm: 12, md: 4, desktopItems: 1 },\n 71: { sm: 6, md: 8, desktopItems: 2 },\n 70: { sm: 12, md: 4, desktopItems: 1 },\n 81: { sm: 6, md: 8, desktopItems: 2 },\n 80: { sm: 12, md: 4, desktopItems: 1 },\n 91: { sm: 6, md: 8, desktopItems: 2 },\n 90: { sm: 12, md: 4, desktopItems: 1 },\n};\n","export const TAB_CA = 'chronological/CA';\n\nexport const TAB_SOLD = 'chronological/SOLD';\n\nexport const TAB_UNSOLD = 'chronological/UNSOLD';\n\nexport const TAB_AVERAGE = 'chronological/AVERAGE';\n","export const TAB_CA = 'geographical/CA';\nexport const TAB_SOLD = 'geographical/SOLD';\n","export const TAB_CA = 'medium/CA';\nexport const TAB_SOLD = 'medium/SOLD';\n","export const TAB_CA = 'priceSegments/CA';\nexport const TAB_SOLD = 'priceSegments/SOLD';\n","// MUST be ordered in the same way ALLOWED_LANGUAGES (in ruby)\nexport const MANAGED_LOCALES = ['en', 'fr', 'de', 'it', 'es', 'zh'];\n\nexport const HOSTNAME_PREFIXES = {\n en: 'www',\n fr: 'fr',\n de: 'de',\n it: 'it',\n es: 'es',\n zh: 'zh',\n};\n\nexport const LOCALE_BY_PREFIX = {\n www: 'en',\n fr: 'fr',\n de: 'de',\n it: 'it',\n es: 'es',\n zh: 'zh',\n};\n\nexport const FLAGS = {\n en: 'gb',\n fr: 'fr',\n de: 'de',\n it: 'it',\n es: 'es',\n zh: 'cn',\n};\n\nexport const LANGUAGES_RSX_KEY = {\n en: 'layouts.menu.m23',\n fr: 'layouts.menu.m22',\n de: 'layouts.menu.m24',\n it: 'layouts.menu.m26',\n es: 'layouts.menu.m25',\n zh: 'layouts.menu.m27',\n};\n","export const VERTICAL_BAR_CURRENT_ELEMENT_KEY = 'myArtpriceVerticalBarCurrentElementKey';\nexport const MYARTPRICE_DRAWER_ID = 'myartprice-vertical-bar';\n\nexport const SHORTCUT_SETTINGS_SECTIONS = 'myartprice/SHORTCUT_SECTIONS';\nexport const SHORTCUT_SETTINGS_CATEGORIES = 'myartprice/SHORTCUT_CATEGORIES';\nexport const SHORTCUT_SETTINGS_ARTISTS = 'myartprice/SHORTCUT_ARTISTS';\nexport const SHORTCUTS_SETTINGS = [SHORTCUT_SETTINGS_SECTIONS, SHORTCUT_SETTINGS_CATEGORIES, SHORTCUT_SETTINGS_ARTISTS];\n\n// Summary\nexport const SHORTCUT_SUMMARY = 'myartprice/SHORTCUT_SUMMARY';\nexport const MYARTPRICE_SUMMARY_FILTER = 'myartprice-summary-filter';\nexport const MYARTPRICE_SUMMARY_NEWS_ONLY = 'myartprice-summary-news-only';\n\n// Artists\nexport const SHORTCUT_LOTS_FUTURE_NEW = 'myartprice/SHORTCUT_LOTS_FUTURE_NEW';\nexport const SHORTCUT_LOTS_FUTURE_ALL = 'myartprice/SHORTCUT_LOTS_FUTURE_ALL';\nexport const SHORTCUT_LOTS_AUCTIONED_OFF = 'myartprice/SHORTCUT_LOTS_AUCTIONED_OFF';\nexport const SHORTCUT_LOTS_MARKETPLACE = 'myartprice/SHORTCUT_LOTS_MARKETPLACE';\nexport const SHORTCUTS_LOTS = [SHORTCUT_SUMMARY, SHORTCUT_LOTS_FUTURE_NEW, SHORTCUT_LOTS_FUTURE_ALL, SHORTCUT_LOTS_AUCTIONED_OFF, SHORTCUT_LOTS_MARKETPLACE];\n\n// Lots\nexport const SHORTCUT_LOTS_FOLLOW_PAST = 'myartprice/SHORTCUT_LOTS_FOLLOW_PAST';\nexport const SHORTCUT_LOTS_FOLLOW_FUTURE = 'myartprice/SHORTCUT_LOTS_FOLLOW_FUTURE';\nexport const SHORTCUT_LOTS_FOLLOW_ALL = 'myartprice/SHORTCUT_LOTS_FOLLOW_ALL';\nexport const SHORTCUT_LOTS_FOLLOW_MARKETPLACE = 'myartprice/SHORTCUT_LOTS_FOLLOW_MARKETPLACE';\nexport const SHORTCUTS_LOTS_FOLLOW = [SHORTCUT_LOTS_FOLLOW_PAST, SHORTCUT_LOTS_FOLLOW_FUTURE, SHORTCUT_LOTS_FOLLOW_ALL, SHORTCUT_LOTS_FOLLOW_MARKETPLACE];\n\n// Marketplace store\nexport const SHORTCUT_MARKETPLACE = 'myartprice/SHORTCUT_MARKETPLACE';\nexport const SHORTCUTS_MARKETPLACE = [SHORTCUT_MARKETPLACE];\n","import { flow } from 'lodash';\n\nimport { CURRENCIES as CURRENCIES_FROM_RAILS } from './rails';\n\nexport const CURRENCIES = CURRENCIES_FROM_RAILS;\nexport const DEFAULT_CURRENCIES = flow([Object.entries, arr => arr.filter(([_, { defaultCurrency }]) => defaultCurrency), Object.fromEntries])(CURRENCIES);\nexport const OPTIONAL_CURRENCIES = flow([Object.entries, arr => arr.filter(([_, { defaultCurrency }]) => !defaultCurrency), Object.fromEntries])(CURRENCIES);\n\nexport const LANGUAGES = {\n FRENCH: { iso2: 'fr' },\n ENGLISH: { iso2: 'en' },\n ITALIAN: { iso2: 'it' },\n SPANISH: { iso2: 'es' },\n GERMAN: { iso2: 'de' },\n CHINESE: { iso2: 'zh' },\n};\n","import {\n SEARCH_SCOPE_CLASSIFIEDS,\n SEARCH_SCOPE_LOTS,\n SEARCH_SCOPE_MARKETPLACE_MANAGE_MODIFICATION_REQUIRED,\n SEARCH_SCOPE_MARKETPLACE_MANAGE_MY_OFFERS,\n SEARCH_SCOPE_MARKETPLACE_MANAGE_OFFLINE,\n SEARCH_SCOPE_MARKETPLACE_MANAGE_ONLINE,\n SEARCH_SCOPE_MARKETPLACE_MANAGE_WAITING,\n SEARCH_SCOPE_MARKETPLACE_MANAGE_WINNING_AUCTIONS,\n SEARCH_SCOPE_MARKETPLACE_MANAGE_WITH_OFFERS,\n SEARCH_SCOPE_MYARTPRICE_STORE,\n SEARCH_SCOPE_MYARTPRICE_LOTS_AUCTIONED_OFF,\n SEARCH_SCOPE_MYARTPRICE_LOTS_FUTURE_ALL,\n SEARCH_SCOPE_MYARTPRICE_LOTS_MARKETPLACE,\n SEARCH_SCOPE_MYARTPRICE_LOTS_FUTURE_NEW,\n SEARCH_SCOPE_MYARTPRICE_LOTS_FOLLOW_FUTURE,\n SEARCH_SCOPE_MYARTPRICE_LOTS_FOLLOW_PAST,\n SEARCH_SCOPE_MYARTPRICE_LOTS_FOLLOW_MARKETPLACE,\n SEARCH_SCOPE_MYARTPRICE_MARKETPLACE,\n SEARCH_SCOPE_MYARTPRICE_LOTS_HISTORY,\n SEARCH_SCOPE_STORES,\n SEARCH_SCOPE_CLASSIFIEDS_IN_STORE,\n SEARCH_SCOPE_AUCTIONEER_FUTURE_SALES,\n SEARCH_SCOPE_AUCTIONEER_PAST_SALES,\n SEARCH_SCOPE_AUCTIONEER_SALE,\n SEARCH_SCOPE_AUCTIONEER_SALE_LOTS,\n SEARCH_SCOPE_ARTIST_LOTS_PAST,\n SEARCH_SCOPE_ARTIST_LOTS_FUTURE,\n SEARCH_SCOPE_ARTIST_LOTS_ALL,\n SEARCH_SCOPE_SALE_LOTS,\n SEARCH_SCOPE_SALES_FUTURES,\n SEARCH_SCOPE_ARTISTS,\n} from '../rails';\n\nexport const CLASSIFIEDS = SEARCH_SCOPE_CLASSIFIEDS;\nexport const STORES = SEARCH_SCOPE_STORES;\nexport const LOTS = SEARCH_SCOPE_LOTS;\nexport const AUCTIONEER_PAST_SALES = SEARCH_SCOPE_AUCTIONEER_PAST_SALES;\nexport const AUCTIONEER_SALE_LOTS = SEARCH_SCOPE_AUCTIONEER_SALE_LOTS;\nexport const AUCTIONEER_FUTURE_SALES = SEARCH_SCOPE_AUCTIONEER_FUTURE_SALES;\nexport const AUCTIONEER_SALE = SEARCH_SCOPE_AUCTIONEER_SALE;\nexport const MYARTPRICE_STORE = SEARCH_SCOPE_MYARTPRICE_STORE;\nexport const MYARTPRICE_LOTS_MARKETPLACE = SEARCH_SCOPE_MYARTPRICE_LOTS_MARKETPLACE;\nexport const MYARTPRICE_LOTS_FUTURE_ALL = SEARCH_SCOPE_MYARTPRICE_LOTS_FUTURE_ALL;\nexport const MYARTPRICE_LOTS_FUTURE_NEW = SEARCH_SCOPE_MYARTPRICE_LOTS_FUTURE_NEW;\nexport const MYARTPRICE_LOTS_FOLLOW_FUTURE = SEARCH_SCOPE_MYARTPRICE_LOTS_FOLLOW_FUTURE;\nexport const MYARTPRICE_LOTS_FOLLOW_PAST = SEARCH_SCOPE_MYARTPRICE_LOTS_FOLLOW_PAST;\nexport const MYARTPRICE_LOTS_FOLLOW_MARKETPLACE = SEARCH_SCOPE_MYARTPRICE_LOTS_FOLLOW_MARKETPLACE;\nexport const MYARTPRICE_LOTS_AUCTIONED_OFF = SEARCH_SCOPE_MYARTPRICE_LOTS_AUCTIONED_OFF;\nexport const MYARTPRICE_MARKETPLACE = SEARCH_SCOPE_MYARTPRICE_MARKETPLACE;\nexport const MARKETPLACE_MANAGE_ONLINE = SEARCH_SCOPE_MARKETPLACE_MANAGE_ONLINE;\nexport const MARKETPLACE_MANAGE_WAITING = SEARCH_SCOPE_MARKETPLACE_MANAGE_WAITING;\nexport const MARKETPLACE_MANAGE_OFFLINE = SEARCH_SCOPE_MARKETPLACE_MANAGE_OFFLINE;\nexport const MARKETPLACE_MANAGE_MODIFICATION_REQUIRED = SEARCH_SCOPE_MARKETPLACE_MANAGE_MODIFICATION_REQUIRED;\nexport const MARKETPLACE_MANAGE_WITH_OFFERS = SEARCH_SCOPE_MARKETPLACE_MANAGE_WITH_OFFERS;\nexport const MARKETPLACE_MANAGE_MY_OFFERS = SEARCH_SCOPE_MARKETPLACE_MANAGE_MY_OFFERS;\nexport const MARKETPLACE_MANAGE_WINNING_AUCTIONS = SEARCH_SCOPE_MARKETPLACE_MANAGE_WINNING_AUCTIONS;\nexport const CLASSIFIEDS_IN_STORE = SEARCH_SCOPE_CLASSIFIEDS_IN_STORE;\nexport const TOTAL_ACCESS = 'TOTAL_ACCESS';\nexport const TOTAL_ACCESS_LOTS = 'TOTAL_ACCESS_LOTS';\nexport const TOTAL_ACCESS_ARTISTS = 'TOTAL_ACCESS_ARTISTS';\nexport const TOTAL_ACCESS_AUCTIONEERS = 'TOTAL_ACCESS_AUCTIONEERS';\nexport const TOTAL_ACCESS_GEO = 'TOTAL_ACCESS_GEO';\nexport const TOTAL_ACCESS_CHRONO = 'TOTAL_ACCESS_CHRONO';\nexport const ARTISTS = SEARCH_SCOPE_ARTISTS;\nexport const ARTIST_LOTS_PAST = SEARCH_SCOPE_ARTIST_LOTS_PAST;\nexport const ARTIST_LOTS_FUTURE = SEARCH_SCOPE_ARTIST_LOTS_FUTURE;\nexport const ARTIST_LOTS_ALL = SEARCH_SCOPE_ARTIST_LOTS_ALL;\nexport const SALE_LOTS = SEARCH_SCOPE_SALE_LOTS;\nexport const MYARTPRICE_LOTS_HISTORY = SEARCH_SCOPE_MYARTPRICE_LOTS_HISTORY;\nexport const SALES_FUTURES = SEARCH_SCOPE_SALES_FUTURES;\n\nexport const ALL_SCOPES = [\n AUCTIONEER_PAST_SALES,\n AUCTIONEER_FUTURE_SALES,\n AUCTIONEER_SALE_LOTS,\n AUCTIONEER_SALE,\n CLASSIFIEDS,\n STORES,\n LOTS,\n ARTISTS,\n MYARTPRICE_LOTS_FUTURE_ALL,\n MYARTPRICE_LOTS_FUTURE_NEW,\n MYARTPRICE_LOTS_AUCTIONED_OFF,\n MYARTPRICE_LOTS_MARKETPLACE,\n MYARTPRICE_LOTS_FOLLOW_FUTURE,\n MYARTPRICE_LOTS_FOLLOW_PAST,\n MYARTPRICE_LOTS_FOLLOW_MARKETPLACE,\n MYARTPRICE_STORE,\n MYARTPRICE_MARKETPLACE,\n MARKETPLACE_MANAGE_ONLINE,\n MARKETPLACE_MANAGE_WAITING,\n MARKETPLACE_MANAGE_OFFLINE,\n MARKETPLACE_MANAGE_MODIFICATION_REQUIRED,\n MARKETPLACE_MANAGE_WITH_OFFERS,\n MARKETPLACE_MANAGE_MY_OFFERS,\n MARKETPLACE_MANAGE_WINNING_AUCTIONS,\n CLASSIFIEDS_IN_STORE,\n TOTAL_ACCESS,\n ARTIST_LOTS_PAST,\n ARTIST_LOTS_FUTURE,\n ARTIST_LOTS_ALL,\n SALE_LOTS,\n SALES_FUTURES,\n MYARTPRICE_LOTS_HISTORY,\n];\n\nexport const MYARTPRICE_LOTS = [MYARTPRICE_LOTS_AUCTIONED_OFF, MYARTPRICE_LOTS_FUTURE_ALL, MYARTPRICE_LOTS_FUTURE_NEW, MYARTPRICE_LOTS_MARKETPLACE];\nexport const MYARTPRICE_LOTS_FOLLOW = [MYARTPRICE_LOTS_FOLLOW_PAST, MYARTPRICE_LOTS_FOLLOW_FUTURE, MYARTPRICE_LOTS_FOLLOW_MARKETPLACE];\n","// To use in react component to prevent rerenders (checks are done by ref for objects)\nexport const EMPTY_OBJECT = Object.freeze({});\n\nexport const EMPTY_ARRAY = Object.freeze([]);\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const inbox = async (page = 1, perPage = 20) => {\n const response = await internalAxios.get(`/api/wallet/customer/inbox_messages.json?page=${page}&per=${perPage}`);\n return response.data;\n};\n\nexport const trash = async (page = 1, perPage = 20) => {\n const response = await internalAxios.get(`/api/wallet/customer/deleted_messages.json?page=${page}&per=${perPage}`);\n return response.data;\n};\n\nexport const sent = async (page = 1, perPage = 20) => {\n const response = await internalAxios.get(`/api/wallet/customer/sent_messages.json?page=${page}&per=${perPage}`);\n return response.data;\n};\n\nexport const markRead = async id => {\n const response = await internalAxios.post('/api/wallet/private_message/mark_read.json', { id });\n return response.data;\n};\n\nexport const create = async message => {\n const response = await internalAxios.post('/api/wallet/private_message/create.json', { message });\n return response.data;\n};\n\nexport const moveToTrash = async id => {\n const response = await internalAxios.post('/api/wallet/private_message/delete.json', { id });\n return response.data;\n};\n","import { count as countSelector } from '../../selectors/account/messages';\nimport { inbox, sent, trash, create as createService, markRead as markReadService, moveToTrash as moveToTrashService } from '../../../services/account/messages';\nimport { update } from '../dbEntities';\n\nexport const ACCOUNT_MESSAGES = 'account/ACCOUNT_MESSAGES';\nexport const updateAccountMessages = ({ result, error, loading }) => ({\n type: ACCOUNT_MESSAGES,\n result,\n error,\n loading,\n});\n\nexport function fetch({ folder, page, perPage }) {\n return async dispatch => {\n dispatch(updateAccountMessages({ loading: true }));\n try {\n let serviceFunction;\n switch (folder) {\n case 'sent':\n serviceFunction = sent;\n break;\n case 'trash':\n serviceFunction = trash;\n break;\n default:\n serviceFunction = inbox;\n }\n\n const result = await serviceFunction(page, perPage);\n\n dispatch(updateAccountMessages({ result: { count: result.count, perPage: result.per_page, idmessages: result.messages.map(({ id }) => id) }, loading: false }));\n dispatch(update({ messages: result.messages.reduce((ac, cv) => ({ ...ac, ...{ [cv.id]: cv } }), {}) }));\n } catch (err) {\n dispatch(\n updateAccountMessages({\n loading: false,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n };\n}\n\nexport function create({ message }) {\n return async dispatch => {\n const messages = await createService(message);\n\n dispatch(update({ messages }));\n };\n}\n\nexport function markRead({ id }) {\n return async dispatch => {\n const messages = await markReadService(id);\n\n dispatch(update({ messages }, true));\n };\n}\n\nexport const UPDATE_MESSAGE_COUNT = 'account/UPDATE_MESSAGE_COUNT';\nexport const updateMessageCount = ({ count }) => ({\n type: UPDATE_MESSAGE_COUNT,\n count,\n});\n\nexport const DELETE_FROM_CURRENT_FORLDER = 'account/DELETE_FROM_CURRENT_FORLDER';\nexport const deleteFromCurrentFolder = ({ id }) => ({\n type: DELETE_FROM_CURRENT_FORLDER,\n id,\n});\n\nexport function moveToTrash({ id }) {\n return async (dispatch, getState) => {\n const state = getState();\n const messages = await moveToTrashService(id);\n const count = countSelector(state);\n dispatch(deleteFromCurrentFolder({ id }));\n dispatch(updateMessageCount({ count: count - 1 }));\n dispatch(update({ messages }, true));\n };\n}\n","import { internalAxios } from '../utils/axios/internal';\n\nexport const fetch = async ({ idagreementtype }) => {\n const response = await internalAxios.get(`/api/agreement/current/${idagreementtype}`);\n return response.data;\n};\n","import { fetch as fetchService } from '../../services/agreements';\nimport { isAgreementLoading, getAgreement } from '../selectors/agreements';\n\nexport const UPDATE_AGREEMENT = 'account/UPDATE_AGREEMENT';\nexport const updateAgreement = ({ idagreementtype, result, error, loading }) => ({\n type: UPDATE_AGREEMENT,\n idagreementtype,\n result,\n error,\n loading,\n});\n\nexport function fetch({ idagreementtype, force }) {\n return async (dispatch, getState) => {\n const state = getState();\n if (isAgreementLoading(state, { idagreementtype }) || (!force && getAgreement(state, { idagreementtype }))) return;\n\n try {\n dispatch(updateAgreement({ idagreementtype, loading: true }));\n const data = await fetchService({ idagreementtype });\n\n dispatch(updateAgreement({ idagreementtype, result: data.result, loading: false }));\n } catch (err) {\n dispatch(\n updateAgreement({\n idagreementtype,\n loading: false,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n };\n}\n","import { internalAxios } from '../../utils/axios/internal';\n\n// eslint-disable-next-line import/prefer-default-export\nexport const send = async (data = {}) => {\n const response = await internalAxios.post('/api/auctioneers/contact/send_email', data);\n return response.data;\n};\n","import { send as sendService } from '../../../services/auctioneers/contact';\nimport { isSending } from '../../selectors/auctioneers/contact';\n\nexport const AUCTIONEERS_CLEAR_SENDING_STATUS = 'auctioneers/AUCTIONEERS_CLEAR_SENDING_STATUS';\nexport const clearSendingStatus = () => ({ type: AUCTIONEERS_CLEAR_SENDING_STATUS });\n\nexport const AUCTIONEERS_UPDATE_SENDING_STATUS = 'auctioneers/AUCTIONEERS_UPDATE_SENDING_STATUS';\nexport const updateSendingStatus = ({ data, error, sending = false }) => ({\n type: AUCTIONEERS_UPDATE_SENDING_STATUS,\n data,\n error,\n sending,\n});\n\nexport function send(message = {}) {\n return async (dispatch, getState) => {\n const state = getState();\n\n if (isSending(state)) return;\n dispatch(updateSendingStatus({ sending: true }));\n\n try {\n const { unauthorized, sent } = await sendService(message);\n dispatch(updateSendingStatus({ data: { unauthorized, sent }, sending: false }));\n } catch (err) {\n dispatch(\n updateSendingStatus({\n sending: false,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n };\n}\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const sources = async () => {\n const response = await internalAxios.get('/api/auctioneers/medias/get');\n return response.data;\n};\n","import { sources } from '../../../services/auctioneers/medias';\nimport { isSourcesLoading, getSources } from '../../selectors/auctioneers/medias';\n\nexport const AUCTIONEERS_MEDIA_SOURCES = 'auctioneers/AUCTIONEERS_MEDIA_SOURCES';\nexport const updateSources = ({ data, error, loading = false }) => ({\n type: AUCTIONEERS_MEDIA_SOURCES,\n data,\n error,\n loading,\n});\n\nexport function fetchSources() {\n return async (dispatch, getState) => {\n const state = getState();\n\n if (isSourcesLoading(state) || Object.keys(getSources(state)).length > 0) return;\n dispatch(updateSources({ loading: true }));\n\n try {\n const data = await sources();\n dispatch(updateSources({ data, loading: false }));\n } catch (err) {\n dispatch(\n updateSources({\n loading: false,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n };\n}\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const progress = async ({ ids }) => {\n const response = await internalAxios.post('/api/auctioneers/sales/progress', { ids });\n return response.data;\n};\n\nexport const sale = async ({ id }) => {\n const response = await internalAxios.get(`/api/auctioneers/sales/get/${id}`);\n return response.data;\n};\n\nexport const top5 = async ({ id }) => {\n const response = await internalAxios.get(`/api/auctioneers/sales/top5/${id}`);\n return response.data;\n};\n\nexport const geo = async ({ id }) => {\n const response = await internalAxios.get(`/api/auctioneers/sales/geo/${id}`);\n return response.data;\n};\n\nexport const push = async ({ ids }) => {\n const response = await internalAxios.post('/api/auctioneers/sales/push', { ids });\n return response.data;\n};\n\nexport const show = async ({ ids }) => {\n const response = await internalAxios.post('/api/auctioneers/sales/show', { ids });\n return response.data;\n};\n","import { progress, sale, top5, geo, push, show } from '../../../services/auctioneers/sales';\nimport { updateSales } from '../dbEntities/sale';\nimport { updateLots } from '../dbEntities/lot';\nimport { isShowLoading, isPushLoading, isProgressLoading } from '../../selectors/auctioneers/sales';\nimport { updateArtists } from '../dbEntities/artist';\n\nexport const AUCTIONEERS_SALE_GEO = 'auctioneers/AUCTIONEERS_SALE_GEO';\nexport const updateSaleGeo = ({ id, result, error, loading = false }) => ({\n type: AUCTIONEERS_SALE_GEO,\n result,\n id,\n error,\n loading,\n});\n\nexport function fetchSaleGeo({ id }) {\n return async dispatch => {\n dispatch(updateSaleGeo({ id, loading: true }));\n try {\n const result = await geo({ id });\n dispatch(updateSaleGeo({ id, result, loading: false }));\n } catch (err) {\n dispatch(\n updateSaleGeo({\n id,\n loading: false,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n };\n}\n\nexport const AUCTIONEERS_SALE_TOP_5 = 'auctioneers/AUCTIONEERS_SALE_TOP_5';\nexport const updateSaleTop5 = ({ id, idlots, error, loading = false }) => ({\n type: AUCTIONEERS_SALE_TOP_5,\n idlots,\n id,\n error,\n loading,\n});\n\nexport function fetchTop5Lots({ id }) {\n return async dispatch => {\n dispatch(updateSaleTop5({ id, loading: true }));\n try {\n const result = await top5({ id });\n dispatch(updateSaleTop5({ id, idlots: result.idlots, loading: false }));\n dispatch(updateLots({ lots: result.lots, forceUpdate: true }));\n dispatch(updateArtists({ artists: result.artists }));\n } catch (err) {\n dispatch(\n updateSaleTop5({\n id,\n loading: false,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n };\n}\n\nexport const AUCTIONEERS_SALES_PROGRESS = 'auctioneers/AUCTIONEERS_SALES_PROGRESS';\nexport const updateSalesProgress = ({ result, error, loading = false }) => ({\n type: AUCTIONEERS_SALES_PROGRESS,\n result,\n error,\n loading,\n});\n\nexport function getSalesProgress({ ids }) {\n return async (dispatch, getState) => {\n const state = getState();\n if (isProgressLoading(state)) return;\n\n dispatch(updateSalesProgress({ loading: true }));\n try {\n const result = await progress({ ids });\n dispatch(updateSalesProgress({ result, loading: false }));\n } catch (err) {\n dispatch(updateSalesProgress({ loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport const AUCTIONEERS_SALES_PUSH = 'auctioneers/AUCTIONEERS_SALES_PUSH';\nexport const updateSalesPush = ({ idsale, result, error, loading = false }) => ({\n type: AUCTIONEERS_SALES_PUSH,\n idsale,\n result,\n error,\n loading,\n});\n\nexport function getSalesPush({ ids }) {\n return async (dispatch, getState) => {\n const state = getState();\n if (isPushLoading(state) || ids.filter(id => Object.keys(state.auctioneers.sales.push).includes(id.toString())).length === ids.length) return;\n\n dispatch(updateSalesPush({ loading: true }));\n try {\n const result = await push({ ids });\n dispatch(updateSalesPush({ result, loading: false }));\n } catch (err) {\n dispatch(\n updateSalesPush({\n loading: false,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n };\n}\n\nexport const AUCTIONEERS_SALES_SHOW = 'auctioneers/AUCTIONEERS_SALES_SHOW';\nexport const updateSalesShow = ({ result, error, loading = false }) => ({\n type: AUCTIONEERS_SALES_SHOW,\n result,\n error,\n loading,\n});\n\nexport function getSalesShow({ ids }) {\n return async (dispatch, getState) => {\n const state = getState();\n\n if (isShowLoading(state) || ids.filter(id => Object.keys(state.auctioneers.sales.show).includes(id.toString())).length === ids.length) return;\n\n dispatch(updateSalesShow({ loading: true }));\n try {\n const result = await show({ ids });\n dispatch(updateSalesShow({ result, loading: false }));\n } catch (err) {\n dispatch(\n updateSalesShow({\n loading: false,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n };\n}\n\nexport function fetch({ id }) {\n return async dispatch => {\n dispatch(updateSales({ loading: true }));\n try {\n const result = await sale({ id });\n dispatch(updateSales({ sales: { [id]: result }, loading: false }));\n } catch (err) {\n dispatch(\n updateSales({\n loading: false,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n };\n}\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const statSales = async () => {\n const response = await internalAxios.get('/api/auctioneers/stats/sales');\n return response.data;\n};\n","import { statSales as statSalesService } from '../../../services/auctioneers/stats';\nimport { areStatsLoading, stats } from '../../selectors/auctioneers/stats';\n\nexport const AUCTIONEERS_UPDATE_STATS = 'auctioneers/AUCTIONEERS_UPDATE_STATS';\nexport const updateStats = ({ push, future, past, unauthorized, error, loading = false }) => ({\n type: AUCTIONEERS_UPDATE_STATS,\n push,\n future,\n past,\n unauthorized,\n error,\n loading,\n});\n\nexport function getStats() {\n return async (dispatch, getState) => {\n const state = getState();\n if (areStatsLoading(state) || stats(state).loaded) return;\n\n dispatch(updateStats({ loading: true }));\n try {\n const { push, future, past, unauthorized, error } = await statSalesService();\n dispatch(updateStats({ loading: false, push, future, past, unauthorized, error }));\n } catch (err) {\n dispatch(\n updateStats({\n loading: false,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n };\n}\n","import { set } from 'lodash';\nimport { getArtist, areArtistsLoading, getIdFreeArtist, isFreeArtistLoading } from '../../selectors/dbEntities';\nimport { free, getSome } from '../../../services/dbEntities/artist';\n\nexport const UPDATE_FREE_IDARTIST = 'dbEntities/UPDATE_FREE_IDARTIST';\nexport const updateFreeIdartist = ({ idartist, loading, error }) => ({\n type: UPDATE_FREE_IDARTIST,\n payload: {\n data: idartist,\n loading,\n error,\n },\n});\n\nexport const UPDATE_ARTISTS = 'dbEntities/UPDATE_ARTISTS';\nexport const updateArtists = ({ artists, loading, error }) => ({\n type: UPDATE_ARTISTS,\n payload: {\n data: artists,\n loading,\n error,\n },\n});\n\nexport const fetchArtists =\n ({ id, withDates = false }) =>\n async (dispatch, getState) => {\n const state = getState();\n if (areArtistsLoading(state) || getArtist(state, { id })) return;\n try {\n dispatch(updateArtists({ loading: true }));\n\n const artists = {};\n const data = await getSome([id], withDates);\n set(artists, id, data);\n\n dispatch(updateArtists({ loading: false, artists }));\n } catch (error) {\n dispatch(updateArtists({ loading: false, error }));\n }\n };\n\nexport const fetchFreeArtist = () => async (dispatch, getState) => {\n const state = getState();\n if (isFreeArtistLoading(state) || getIdFreeArtist(state)) return;\n try {\n dispatch(updateFreeIdartist({ loading: true }));\n const data = await free();\n dispatch(updateArtists({ artists: data.artists }));\n dispatch(updateFreeIdartist({ loading: false, idartist: data.idartist[0] }));\n } catch (error) {\n dispatch(updateFreeIdartist({ loading: false, error }));\n }\n};\n","export const UPDATE_AUCTIONEERS = 'dbEntities/UPDATE_AUCTIONEERS';\nexport const updateAuctioneers = ({ auctioneers, loading, error }) => ({\n type: UPDATE_AUCTIONEERS,\n payload: {\n data: auctioneers,\n loading,\n error,\n },\n});\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const getAll = async () => {\n const response = await internalAxios.get('/api/artdbweb/category/get');\n return response.data;\n};\n\nexport const getSome = async (ids = []) => {\n const response = await internalAxios.post('/api/artdbweb/category/get', { ids });\n return response.data;\n};\n","import { areCategoriesLoading, getCategory } from '../../selectors/dbEntities';\nimport { getSome } from '../../../services/dbEntities/category';\n\nexport const UPDATE_CATEGORIES = 'dbEntities/UPDATE_CATEGORIES';\nexport const updateCategories = ({ categories, loading, error }) => ({\n type: UPDATE_CATEGORIES,\n payload: {\n data: categories,\n loading,\n error,\n },\n});\n\nexport const fetchCategory =\n ({ id }) =>\n async (dispatch, getState) => {\n const state = getState();\n if (areCategoriesLoading(state) || getCategory(state, { id })) return;\n\n try {\n dispatch(updateCategories({ loading: true }));\n\n const categories = await getSome([id]);\n\n dispatch(updateCategories({ loading: false, categories }));\n } catch (error) {\n console.error(error);\n dispatch(updateCategories({ loading: false, error }));\n }\n };\n","export const UPDATE_CLASSIFIEDS = 'dbEntities/UPDATE_CLASSIFIEDS';\nexport const updateClassifieds = ({ classifieds, loading, error }) => ({\n type: UPDATE_CLASSIFIEDS,\n payload: {\n data: classifieds,\n loading,\n error,\n },\n});\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const getAll = async () => {\n const response = await internalAxios.get('/api/artdbweb/country/get');\n return response.data;\n};\n\nexport const getSome = async (ids = []) => {\n const response = await internalAxios.post('/api/artdbweb/country/get', { ids });\n return response.data;\n};\n","import { getCountry, areCountriesLoading } from '../../selectors/dbEntities';\nimport { getSome, getAll } from '../../../services/dbEntities/country';\n\nexport const UPDATE_COUNTRIES = 'dbEntities/UPDATE_COUNTRIES';\nexport const updateCountries = ({ countries, loading, error }) => ({\n type: UPDATE_COUNTRIES,\n payload: {\n data: countries,\n loading,\n error,\n },\n});\n\nexport const fetchAllCountries = () => async (dispatch, getState) => {\n const state = getState();\n if (areCountriesLoading(state)) return;\n try {\n dispatch(updateCountries({ loading: true }));\n const countries = await getAll();\n\n dispatch(updateCountries({ loading: false, countries }));\n } catch (error) {\n dispatch(updateCountries({ loading: false, error }));\n }\n};\n\nexport const fetchCountry =\n ({ id }) =>\n async (dispatch, getState) => {\n const state = getState();\n if (areCountriesLoading(state) || getCountry(state, { id })) return;\n try {\n dispatch(updateCountries({ loading: true }));\n\n const countries = await getSome([id]);\n\n dispatch(updateCountries({ loading: false, countries }));\n } catch (error) {\n dispatch(updateCountries({ loading: false, error }));\n }\n };\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const get = async (fetchUrl, id = []) => {\n const response = await internalAxios.post(fetchUrl, { id });\n return response.data;\n};\n","import { areEntitiesLoading, getEntity } from '../../selectors/dbEntities';\nimport { get } from '../../../services/dbEntities/entity';\n\nexport const UPDATE_ENTITY = 'dbEntities/UPDATE_ENTITY';\nexport const updateEntity = ({ data, entityName, loading, error, forceUpdate }) => ({\n type: UPDATE_ENTITY,\n payload: {\n data,\n forceUpdate,\n entityName,\n loading,\n error,\n },\n});\n\nexport const fetchEntity =\n ({ id, entityName, fetchUrl }) =>\n async (dispatch, getState) => {\n const state = getState();\n if (areEntitiesLoading(state, { entityName }) || getEntity(state, { entityName, id })) return;\n try {\n dispatch(updateEntity({ entityName, loading: true }));\n const data = await get(fetchUrl, id);\n dispatch(updateEntity({ entityName, loading: false, data }));\n } catch (error) {\n dispatch(updateEntity({ entityName, loading: false, error }));\n }\n };\n","import { updateArtists } from './artist';\nimport { updateAuctioneers } from './auctioneer';\nimport { updateCategories } from './category';\nimport { updateClassifieds } from './classified';\nimport { updateTechniques } from './technique';\nimport { updateCountries } from './country';\nimport { updateLots } from './lot';\nimport { updateSales } from './sale';\nimport { updateStores } from './store';\nimport { updateEntity } from './entity';\nimport { updateLotartistassociationtypes } from './lotartistassociationtype';\n\nexport const update =\n ({ lots, sales, artists, classifieds, categories, stores, auctioneers, techniques, countries, messages, messagetypes, lotartistassociationtypes, loading, error }, forceUpdate = false) =>\n dispatch => {\n if (sales) {\n dispatch(updateSales({ sales, loading, error }));\n }\n if (artists) {\n dispatch(updateArtists({ artists, loading, error }));\n }\n if (lots) {\n dispatch(updateLots({ lots, loading, error, forceUpdate }));\n }\n if (stores) {\n dispatch(updateStores({ stores, loading, error }));\n }\n if (classifieds) {\n dispatch(updateClassifieds({ classifieds, loading, error }));\n }\n if (auctioneers) {\n dispatch(updateAuctioneers({ auctioneers, loading, error }));\n }\n if (categories) {\n dispatch(updateCategories({ categories, loading, error }));\n }\n if (techniques) {\n dispatch(updateTechniques({ techniques, loading, error }));\n }\n if (lotartistassociationtypes) {\n dispatch(updateLotartistassociationtypes({ lotartistassociationtypes, loading, error }));\n }\n if (countries) {\n dispatch(updateCountries({ countries, loading, error }));\n }\n if (messages) {\n dispatch(updateEntity({ data: messages, entityName: 'messages', loading, error, forceUpdate }));\n }\n if (messagetypes) {\n dispatch(updateEntity({ data: messages, entityName: 'messagetypes', loading, error, forceUpdate }));\n }\n };\n","export const UPDATE_LOTS = 'dbEntities/UPDATE_LOTS';\nexport const updateLots = ({ lots, loading, error, forceUpdate }) => ({\n type: UPDATE_LOTS,\n payload: {\n data: lots,\n loading,\n error,\n forceUpdate,\n },\n});\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const getAll = async () => {\n const response = await internalAxios.get('/api/artdbweb/lotartistassociationtype/get');\n return response.data;\n};\n\nexport const getSome = async (ids = []) => {\n const response = await internalAxios.post('/api/artdbweb/lotartistassociationtype/get', { ids });\n return response.data;\n};\n","import * as selectors from '../../selectors/dbEntities';\nimport * as services from '../../../services/dbEntities/lotartistassociationtype';\n\nexport const UPDATE_LOTARTISTASSOCIATIONTYPES = 'dbEntities/UPDATE_LOTARTISTASSOCIATIONTYPES';\nexport const updateLotartistassociationtypes = ({ lotartistassociationtypes, loading, error }) => ({\n type: UPDATE_LOTARTISTASSOCIATIONTYPES,\n payload: {\n data: lotartistassociationtypes,\n loading,\n error,\n },\n});\n\nexport const fetchLotartistassociationtype =\n ({ id }) =>\n async (dispatch, getState) => {\n const state = getState();\n if (selectors.areLotartistassociationtypesLoading(state) || selectors.getLotartistassociationtype(state, { id })) return;\n try {\n dispatch(updateLotartistassociationtypes({ loading: true }));\n const lotartistassociationtypes = await services.getSome([id]);\n\n dispatch(updateLotartistassociationtypes({ loading: false, lotartistassociationtypes }));\n } catch (error) {\n dispatch(updateLotartistassociationtypes({ loading: false, error }));\n }\n };\n","export const UPDATE_SALES = 'dbEntities/UPDATE_SALES';\nexport const updateSales = ({ sales, loading, error }) => ({\n type: UPDATE_SALES,\n payload: {\n data: sales,\n loading,\n error,\n },\n});\n","export const UPDATE_STORES = 'dbEntities/UPDATE_STORES';\nexport const updateStores = ({ stores, loading, error }) => ({\n type: UPDATE_STORES,\n payload: {\n data: stores,\n loading,\n error,\n },\n});\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const getAll = async () => {\n const response = await internalAxios.get('/api/artdbweb/technique/get');\n return response.data;\n};\n\nexport const getSome = async (ids = []) => {\n const response = await internalAxios.post('/api/artdbweb/technique/get', { ids });\n return response.data;\n};\n","import * as selectors from '../../selectors/dbEntities';\nimport * as services from '../../../services/dbEntities/technique';\n\nexport const UPDATE_TECHNIQUES = 'dbEntities/UPDATE_TECHNIQUES';\nexport const updateTechniques = ({ techniques, loading, error }) => ({\n type: UPDATE_TECHNIQUES,\n payload: {\n data: techniques,\n loading,\n error,\n },\n});\n\nexport const fetchTechnique =\n ({ id }) =>\n async (dispatch, getState) => {\n const state = getState();\n if (selectors.areTechniquesLoading(state) || selectors.getTechnique(state, { id })) return;\n try {\n dispatch(updateTechniques({ loading: true }));\n const techniques = await services.getSome([id]);\n\n dispatch(updateTechniques({ loading: false, techniques }));\n } catch (error) {\n dispatch(updateTechniques({ loading: false, error }));\n }\n };\n","import { noFalsy } from '../../utils/common/filters';\nimport { internalAxios } from '../../utils/axios/internal';\n\nconst filtersToQueryString = ({ idcountry, from, to, page, perPage, offset }) => {\n const filters = [];\n if (idcountry) filters.push(`idcountry=${idcountry}`);\n if (from) filters.push(`from=${from}`);\n if (to) filters.push(`to=${to}`);\n if (page) filters.push(`page=${page}`);\n if (perPage) filters.push(`perPage=${perPage}`);\n if (offset) filters.push(`offset=${offset}`);\n\n if (filters.length <= 0) return '';\n return `?${filters.filter(noFalsy).join('&')}`;\n};\n\nexport const getFutures = async filters => {\n const response = await internalAxios.get(`/api/wallet/exposition/futures${filtersToQueryString(filters)}`);\n return response.data;\n};\n\nexport const getNotPartners = async filters => {\n const response = await internalAxios.get(`/api/wallet/exposition/not_partner${filtersToQueryString(filters)}`);\n return response.data;\n};\n\nexport const getPasts = async filters => {\n const response = await internalAxios.get(`/api/wallet/exposition/past${filtersToQueryString(filters)}`);\n return response.data;\n};\n\nexport const getPastsNotPartners = async filters => {\n const response = await internalAxios.get(`/api/wallet/exposition/past_not_partner${filtersToQueryString(filters)}`);\n return response.data;\n};\n\nexport const getHPEvents = async () => {\n const response = await internalAxios.get('/api/wallet/exposition/homepage_events');\n return response.data;\n};\n\nexport const get = async ({ idevent }) => {\n if (!idevent) return null;\n\n const response = await internalAxios.get(`/api/wallet/exposition/get?idevent=${idevent}`);\n return response.data;\n};\n\nexport const getCountryLabels = async ({ idcountry }) => {\n if (!idcountry) return null;\n\n const response = await internalAxios.get(`/api/wallet/exposition/get_country_labels?idcountry=${idcountry}`);\n return response.data;\n};\n\nexport const getWPData = async ({ slug, lang }) => {\n if (!slug || !lang) return null;\n\n const response = await internalAxios.get(`/api/wallet/exposition/get_wordpress_data?slug=${slug}&lang=${lang}`);\n return response.data;\n};\n\nexport const getWPMedia = async ({ idmedia }) => {\n if (!idmedia) return null;\n\n const response = await internalAxios.get(`/api/wallet/exposition/get_wordpress_media?idmedia=${idmedia}`);\n return response.data;\n};\n\nexport const getThumbnailFromSlug = async ({ slug }) => {\n if (!slug) return null;\n\n const response = await internalAxios.get(`/api/wallet/exposition/get_wordpress_thumbnail?slug=${slug}`);\n return response.data;\n};\n","import { get } from 'lodash';\n\nimport { getLang } from '../../selectors/preferences';\n\n// service\nimport * as service from '../../../services/events';\n\n// selector\nimport {\n getCountryLabels,\n areCountryLabelsLoading,\n getSelectedEventId,\n getSelectedEvent,\n isSelectedEventLoading,\n getWPData,\n getWPMedia,\n isWPMediaLoading,\n isWPMediaFromSlugLoading,\n getHPEventsIds,\n areHPEventsLoading,\n isWPDataLoading,\n isStoreLoading,\n getCountryFilter,\n getStore,\n getFuturesIds,\n getNotPartnersIds,\n getPastsNotPartnersIds,\n getPastsIds,\n areFuturesLoading,\n areNotPartnersLoading,\n arePastsLoading,\n arePastsNotPartnersLoading,\n getDatesFilter,\n getPageFilter,\n getIdmediaFromSlug,\n} from '../../selectors/events';\n\nimport { FUTURE, HOME_PAGE, FUTURE_NOT_PARTNER, PAST, PAST_NOT_PARTNER, PER_PAGE, NOT_PARTNERS_PER_PAGE } from '../../../constants/events';\n\nexport const UPDATE_SELECTED_EVENT = 'events/UPDATE_SELECTED_EVENT';\nexport const updateSelectedEventAction = ({ id }) => ({\n type: UPDATE_SELECTED_EVENT,\n payload: {\n id,\n },\n});\n\nexport const STORE_EVENTS = 'events/STORE_EVENTS';\nexport const storeEvents = ({ loading, data, error }) => ({\n type: STORE_EVENTS,\n payload: {\n loading,\n data,\n error,\n },\n});\n\nexport const SAVE_TOTAL_COUNT = 'events/SAVE_TOTAL_COUNT';\nexport const saveTotalCount = ({ eventsType, totalCount }) => ({\n type: SAVE_TOTAL_COUNT,\n payload: {\n eventsType,\n totalCount,\n },\n});\n\nexport const SAVE_EVENT = 'events/SAVE_EVENT';\nexport const saveEvent = ({ idevent, loading, data, error }) => ({\n type: SAVE_EVENT,\n payload: {\n idevent,\n loading,\n data,\n error,\n },\n});\n\nexport function fetchSelectedEventAction() {\n return async (dispatch, getState) => {\n const state = getState();\n const idevent = getSelectedEventId(state);\n if (!idevent || getSelectedEvent(state) || isSelectedEventLoading(state)) return;\n\n dispatch(saveEvent({ idevent, loading: true }));\n\n try {\n const data = await service.get({ idevent });\n\n dispatch(saveEvent({ idevent, loading: false, data }));\n } catch (err) {\n dispatch(saveEvent({ idevent, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport const SELECT_COUNTRY_FILTER = 'events/SELECT_COUNTRY_FILTER';\nexport const selectCountryFilterAction = ({ idcountry }) => ({\n type: SELECT_COUNTRY_FILTER,\n payload: { idcountry },\n});\n\nexport const SELECT_DATES_FILTER = 'events/SELECT_DATES_FILTER';\nexport const selectDatesFilterAction = ({ from, to }) => ({\n type: SELECT_DATES_FILTER,\n payload: {\n from,\n to,\n },\n});\n\nexport const SELECT_PAGE_FILTER = 'events/SELECT_PAGE_FILTER';\nexport const selectPageFilterAction = ({ page }) => ({\n type: SELECT_PAGE_FILTER,\n payload: {\n page,\n },\n});\n\nexport const UPDATE_WP_DATA = 'events/UPDATE_WP_DATA';\nexport const updateWPData = ({ lang, loading, data, error }) => ({\n type: UPDATE_WP_DATA,\n payload: {\n lang,\n loading,\n data,\n error,\n },\n});\n\nexport function fetchWordpressDataAction() {\n return async (dispatch, getState) => {\n const state = getState();\n const { slug } = getSelectedEvent(state) || {};\n if (!slug) return;\n const lang = getLang(state);\n if (!lang) return;\n if (getWPData(state) || isWPDataLoading(state)) return;\n\n dispatch(updateWPData({ lang, loading: true }));\n\n try {\n const data = await service.getWPData({ slug, lang });\n\n if (lang !== data.language) {\n dispatch(updateWPData({ lang, loading: false }));\n }\n\n dispatch(updateWPData({ lang: data.language || lang, loading: false, data }));\n } catch (err) {\n dispatch(updateWPData({ lang, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport const UPDATE_WP_MEDIA = 'events/UPDATE_WP_MEDIA';\nexport const updateWPMedia = ({ idmedia, loading, data, error }) => ({\n type: UPDATE_WP_MEDIA,\n payload: {\n idmedia,\n loading,\n data,\n error,\n },\n});\n\nexport function fetchWordpressMediaAction() {\n return async (dispatch, getState) => {\n const state = getState();\n const { main_image: idmedia } = getWPData(state) || {};\n if (!idmedia) return;\n if (getWPMedia(state, { idmedia }) || isWPMediaLoading(state, { idmedia })) return;\n\n dispatch(updateWPMedia({ idmedia, loading: true }));\n\n try {\n const data = await service.getWPMedia({ idmedia });\n\n dispatch(updateWPMedia({ idmedia, loading: false, data }));\n } catch (err) {\n dispatch(updateWPMedia({ idmedia, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport const UPDATE_WP_THUMBNAIL = 'events/UPDATE_WP_THUMBNAIL';\nexport const updateWPThumbnail = ({ slug, loading, idmedia, error }) => ({\n type: UPDATE_WP_THUMBNAIL,\n payload: { slug, loading, error, idmedia },\n});\n\nexport function fetchThumbnailAction({ slug }) {\n return async (dispatch, getState) => {\n const state = getState();\n if (!slug) return;\n\n try {\n if (getIdmediaFromSlug(state, { slug }) !== undefined || isWPMediaFromSlugLoading(state, { slug })) return;\n\n dispatch(updateWPThumbnail({ slug, loading: true }));\n\n const data = await service.getThumbnailFromSlug({ slug });\n const { id: idmedia = null } = data || {};\n\n dispatch(updateWPThumbnail({ slug, loading: false, idmedia }));\n\n if (getWPMedia(state, { idmedia })) return;\n dispatch(updateWPMedia({ idmedia, loading: false, data }));\n } catch (err) {\n dispatch(updateWPThumbnail({ slug, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport const SAVE_COUNTRY_LABELS = 'events/SAVE_COUNTRY_LABELS';\nexport const saveCountryLabels = ({ idcountry, loading, data, error }) => ({\n type: SAVE_COUNTRY_LABELS,\n payload: {\n idcountry,\n loading,\n data,\n error,\n },\n});\n\nexport function fetchCountryLabelsAction({ idcountry }) {\n return async (dispatch, getState) => {\n const state = getState();\n if (!idcountry || getCountryLabels(state, { idcountry }) || areCountryLabelsLoading(state, { idcountry })) return;\n\n dispatch(saveCountryLabels({ idcountry, loading: true }));\n\n try {\n const data = await service.getCountryLabels({ idcountry });\n\n dispatch(saveCountryLabels({ idcountry, loading: false, data }));\n } catch (err) {\n dispatch(saveCountryLabels({ idcountry, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport const SAVE_EVENTS_IDS_OF_TYPE = 'events/SAVE_EVENTS_IDS_OF_TYPE';\nexport const saveEventsIdsOfType = ({ ids, eventsType, loading, error }) => ({\n type: SAVE_EVENTS_IDS_OF_TYPE,\n payload: {\n ids,\n eventsType,\n loading,\n error,\n },\n});\n\nexport const formatAndStoreEvents = (dispatch, { state, events }) => {\n if (!dispatch || !events || events.length === 0) return;\n const store = getStore(state) || {};\n\n const data = {};\n events.forEach(event => {\n if (!store[event.id]) data[event.id] = event;\n });\n\n if (Object.keys(data).length > 0) {\n dispatch(storeEvents({ loading: false, data }));\n }\n};\n\nexport const saveIds = (dispatch, { events, eventsType }) => {\n if (!dispatch || !eventsType) return;\n\n const ids = events && events.length > 0 ? events.map(event => event.id) : [];\n dispatch(saveEventsIdsOfType({ ids, eventsType, loading: false }));\n};\n\nexport function fetchFutureEventsAction() {\n return async (dispatch, getState) => {\n const state = getState();\n\n if (get(getFuturesIds(state), 'length') > 0 || areFuturesLoading(state)) return;\n\n const idcountry = getCountryFilter(state);\n const { from, to } = getDatesFilter(state) || {};\n const page = getPageFilter(state);\n const perPage = PER_PAGE;\n\n dispatch(saveEventsIdsOfType({ eventsType: FUTURE, loading: true }));\n\n try {\n const { total_count: totalCount, events } = await service.getFutures({ idcountry, from, to, page, perPage });\n\n formatAndStoreEvents(dispatch, { state, events });\n saveIds(dispatch, { events, eventsType: FUTURE });\n\n dispatch(saveTotalCount({ eventsType: FUTURE, totalCount }));\n } catch (err) {\n dispatch(saveEventsIdsOfType({ eventsType: FUTURE, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport function fetchNotPartnerEventsAction({ offset = 0 } = {}) {\n return async (dispatch, getState) => {\n const state = getState();\n if (get(getNotPartnersIds(state), 'length') > offset || areNotPartnersLoading(state)) return;\n\n const idcountry = getCountryFilter(state);\n const { from, to } = getDatesFilter(state) || {};\n const perPage = NOT_PARTNERS_PER_PAGE;\n\n dispatch(saveEventsIdsOfType({ eventsType: FUTURE_NOT_PARTNER, loading: true }));\n\n try {\n // if offset given get page 2 with perPage = offset, else take page 1\n const { total_count: totalCount, events } = await service.getNotPartners({ idcountry, from, to, perPage, offset });\n\n formatAndStoreEvents(dispatch, { state, events });\n saveIds(dispatch, { events, eventsType: FUTURE_NOT_PARTNER });\n\n dispatch(saveTotalCount({ eventsType: FUTURE_NOT_PARTNER, totalCount }));\n } catch (err) {\n dispatch(saveEventsIdsOfType({ eventsType: FUTURE_NOT_PARTNER, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport function fetchPastEventsAction() {\n return async (dispatch, getState) => {\n const state = getState();\n\n if (get(getPastsIds(state), 'length') > 0 || arePastsLoading(state)) return;\n\n const idcountry = getCountryFilter(state);\n const { from, to } = getDatesFilter(state) || {};\n const page = getPageFilter(state);\n const perPage = PER_PAGE;\n\n dispatch(saveEventsIdsOfType({ eventsType: PAST, loading: true }));\n\n try {\n const { total_count: totalCount, events } = await service.getPasts({ idcountry, from, to, page, perPage });\n\n formatAndStoreEvents(dispatch, { state, events });\n saveIds(dispatch, { events, eventsType: PAST });\n\n dispatch(saveTotalCount({ eventsType: PAST, totalCount }));\n } catch (err) {\n dispatch(saveEventsIdsOfType({ eventsType: PAST, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport function fetchPastNotPartnerEventsAction({ offset = 0 } = {}) {\n return async (dispatch, getState) => {\n const state = getState();\n\n if (get(getPastsNotPartnersIds(state), 'length') > offset || arePastsNotPartnersLoading(state)) return;\n\n const idcountry = getCountryFilter(state);\n const { from, to } = getDatesFilter(state) || {};\n const perPage = NOT_PARTNERS_PER_PAGE;\n\n dispatch(saveEventsIdsOfType({ eventsType: PAST_NOT_PARTNER, loading: true }));\n\n try {\n // if offset given get page 2 with perPage = offset, else take page 1\n const { total_count: totalCount, events } = await service.getPastsNotPartners({ idcountry, from, to, perPage, offset });\n\n formatAndStoreEvents(dispatch, { state, events });\n saveIds(dispatch, { events, eventsType: PAST_NOT_PARTNER });\n\n dispatch(saveTotalCount({ eventsType: PAST_NOT_PARTNER, totalCount }));\n } catch (err) {\n dispatch(saveEventsIdsOfType({ eventsType: PAST_NOT_PARTNER, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport function fetchEventsAction() {\n return async (dispatch, getState) => {\n const state = getState();\n if (isStoreLoading(state)) return;\n\n dispatch(storeEvents({ loading: true }));\n\n dispatch(fetchFutureEventsAction());\n dispatch(fetchNotPartnerEventsAction());\n dispatch(fetchPastEventsAction());\n dispatch(fetchPastNotPartnerEventsAction());\n\n dispatch(storeEvents({ loading: false }));\n };\n}\n\nexport function fetchHPEventsAction() {\n return async (dispatch, getState) => {\n const state = getState();\n\n if (get(getHPEventsIds(state), 'length') > 0 || areHPEventsLoading(state)) return;\n dispatch(saveEventsIdsOfType({ eventsType: HOME_PAGE, loading: true }));\n\n try {\n const events = await service.getHPEvents();\n\n formatAndStoreEvents(dispatch, { state, events });\n saveIds(dispatch, { events, eventsType: HOME_PAGE });\n } catch (err) {\n dispatch(saveEventsIdsOfType({ eventsType: HOME_PAGE, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const artistInfosService = async ({ idartist }) => {\n const response = await internalAxios.get(`/api/artdbweb/indexes/artist_infos?idartist=${idartist}`);\n return response.data;\n};\n\nexport const artistOptionsService = async ({ idartist, idcurrency }) => {\n const response = await internalAxios.get(`/api/artdbweb/indexes/artist_options?idartist=${idartist}&idcurrency=${idcurrency}`);\n return response.data;\n};\n\nexport const indexesCountriesService = async ({ idartist }) => {\n const response = await internalAxios.get(`/api/artdbweb/indexes/countries?idartist=${idartist}`);\n return response.data;\n};\n\nexport const visibleYearsService = async ({ idartist }) => {\n const response = await internalAxios.get(`/api/artdbweb/indexes/artist_visible_years?idartist=${idartist}`);\n return response.data;\n};\n\nexport const shouldDisplayService = async ({ idartist }) => {\n const response = await internalAxios.get(`/api/artdbweb/indexes/artist_display?idartist=${idartist}`);\n return response.data;\n};\n","import { getCurrency } from '../../selectors/preferences';\nimport { CURRENCIES } from '../../../constants/preferences';\n\nimport { artistInfosService, artistOptionsService, indexesCountriesService, visibleYearsService, shouldDisplayService } from '../../../services/indexes/artist';\nimport {\n getIdartist,\n isArtistInfosLoading,\n isCountriesLoading,\n isArtistOptionsLoading,\n getArtistOptions,\n isVisibleYearsLoading,\n getCountries,\n getVisibleYears,\n getAllShouldDisplay,\n isDisplayLoading,\n getArtistInfos,\n} from '../../selectors/indexes/artist';\n\nexport const UPDATE_IDARTIST = 'indexes/artist/UPDATE_IDARTIST';\nexport const updateIdartist = ({ idartist }) => ({\n type: UPDATE_IDARTIST,\n payload: {\n idartist,\n },\n});\n\nexport const UPDATE_ARTIST_INFOS = 'indexes/artist/UPDATE_ARTIST_INFOS';\nexport const updateArtistInfos = ({ idartist, loading, data, error }) => ({\n type: UPDATE_ARTIST_INFOS,\n payload: {\n idartist,\n loading,\n data,\n error,\n },\n});\nexport function artistInfosAction({ idartist: optionalIdartist } = {}) {\n return async (dispatch, getState) => {\n const state = getState();\n const idartist = optionalIdartist || getIdartist(state);\n if (!idartist) return;\n\n if (isArtistInfosLoading(state, { idartist }) || getArtistInfos(state, { idartist })) return;\n dispatch(updateArtistInfos({ idartist, loading: true }));\n\n try {\n const data = await artistInfosService({ idartist });\n dispatch(updateArtistInfos({ idartist, loading: false, data }));\n } catch (err) {\n dispatch(updateArtistInfos({ idartist, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport const UPDATE_ARTIST_OPTIONS = 'indexes/artist/UPDATE_ARTIST_OPTIONS';\nexport const updateArtistOptions = ({ idartist, currency, loading, data, error }) => ({\n type: UPDATE_ARTIST_OPTIONS,\n payload: {\n idartist,\n currency,\n loading,\n data,\n error,\n },\n});\nexport function artistOptionsAction() {\n return async (dispatch, getState) => {\n const state = getState();\n if (isArtistOptionsLoading(state) || getArtistOptions(state) !== undefined) return;\n\n const idartist = getIdartist(state);\n const currency = getCurrency(state);\n\n if (!idartist || !currency) return;\n\n dispatch(updateArtistOptions({ idartist, currency, loading: true }));\n\n try {\n const data = await artistOptionsService({ idartist, idcurrency: CURRENCIES[currency].id });\n dispatch(updateArtistOptions({ idartist, currency, data, loading: false }));\n } catch (err) {\n dispatch(updateArtistOptions({ idartist, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport const UPDATE_ARTIST_COUNTRIES = 'indexes/artist/UPDATE_ARTIST_COUNTRIES';\nexport const updateCountries = ({ idartist, loading, data, error }) => ({\n type: UPDATE_ARTIST_COUNTRIES,\n payload: {\n idartist,\n loading,\n data,\n error,\n },\n});\nexport function fetchCountries() {\n return async (dispatch, getState) => {\n const state = getState();\n const idartist = getIdartist(state);\n if (!idartist) return;\n\n if (isCountriesLoading(state)) return;\n if (getCountries(state) !== undefined) return;\n dispatch(updateCountries({ idartist, loading: true }));\n\n try {\n const data = await indexesCountriesService({ idartist });\n dispatch(updateCountries({ idartist, loading: false, data }));\n } catch (err) {\n dispatch(updateCountries({ idartist, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport const UPDATE_VISIBLE_YEARS = 'indexes/artist/UPDATE_VISIBLE_YEARS';\nexport const updateVisibleYears = ({ idartist, loading, data, error }) => ({\n type: UPDATE_VISIBLE_YEARS,\n payload: {\n idartist,\n loading,\n data,\n error,\n },\n});\nexport function fetchVisibleYearsInCharts() {\n return async (dispatch, getState) => {\n const state = getState();\n const idartist = getIdartist(state);\n if (!idartist) return;\n\n if (isVisibleYearsLoading(state)) return;\n if (getVisibleYears(state) !== undefined) return;\n dispatch(updateVisibleYears({ idartist, loading: true }));\n\n try {\n const data = await visibleYearsService({ idartist });\n dispatch(updateVisibleYears({ idartist, loading: false, data }));\n } catch (err) {\n dispatch(updateVisibleYears({ idartist, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport const UPDATE_DISPLAY = 'indexes/artist/UPDATE_DISPLAY';\nexport const updateDisplay = ({ idartist, loading, data, error }) => ({\n type: UPDATE_DISPLAY,\n payload: {\n idartist,\n loading,\n data,\n error,\n },\n});\nexport function shouldDisplayAction({ idartist: optionalIdartist } = {}) {\n return async (dispatch, getState) => {\n const state = getState();\n\n const idartist = optionalIdartist || getIdartist(state);\n if (!idartist) return;\n\n if (isDisplayLoading(state, { idartist }) || getAllShouldDisplay(state, { idartist })) return;\n\n dispatch(updateDisplay({ idartist, loading: true }));\n try {\n const data = await shouldDisplayService({ idartist });\n dispatch(updateDisplay({ idartist, loading: false, data }));\n } catch (err) {\n dispatch(updateDisplay({ idartist, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n","import { TAB_CA, TAB_SOLD, TAB_UNSOLD, TAB_AVERAGE } from '../../constants/indexes/chronological';\nimport { internalAxios } from '../../utils/axios/internal';\n\nexport const chronologicalDataService = async ({ chartTab, idartist, idcurrency, idcountry, idcategory, minPrice, maxPrice }) => {\n let paramsUrl = '';\n if (idartist) paramsUrl += `idartist=${idartist}&`;\n else console.error('ERROR: idartist =', idartist);\n\n if (idcurrency) paramsUrl += `idcurrency=${idcurrency}&`;\n else console.error('ERROR: idcurrency =', idcurrency);\n\n if (idcountry) paramsUrl += `idcountry=${idcountry}&`;\n if (idcategory) paramsUrl += `idcategory=${idcategory}&`;\n\n if (maxPrice !== undefined) paramsUrl += `max_price=${maxPrice}&`;\n if (minPrice !== undefined) paramsUrl += `min_price=${minPrice}&`;\n\n paramsUrl += 'group_by=year';\n\n let apiAction = '';\n switch (chartTab) {\n case TAB_CA:\n apiAction = 'chronological_progression_ca';\n break;\n case TAB_SOLD:\n apiAction = 'chronological_progression_sold';\n break;\n case TAB_UNSOLD:\n apiAction = 'chronological_progression_unsold';\n break;\n case TAB_AVERAGE:\n apiAction = 'chronological_progression_average';\n break;\n default:\n throw new Error(`Unknown chartTab : ${chartTab}`);\n }\n\n const response = await internalAxios.get(`/api/artdbweb/indexes/${apiAction}?${paramsUrl}`);\n return response.data;\n};\n","import { getIdartist } from '../../selectors/indexes/artist';\nimport { getCurrency } from '../../selectors/preferences';\nimport { CURRENCIES } from '../../../constants/preferences';\n\nimport { getChronologicalDisplayedChartTab, getChronologicalOptions, getChronologicalData, isChronologicalDataLoading, createChartKey } from '../../selectors/indexes/chronological';\n\nimport { chronologicalDataService } from '../../../services/indexes/chronological';\n\nexport const UPDATE_CHRONOLOGICAL_OPTIONS = 'indexes/chronological/UPDATE_OPTIONS';\nexport const updateChronologicalOptions = ({ options }) => ({\n type: UPDATE_CHRONOLOGICAL_OPTIONS,\n payload: {\n options,\n },\n});\n\nexport const UPDATE_CHRONOLOGICAL_DISPLAYED_CHART_TAB = 'indexes/chronological/UPDATE_DISPLAYED_CHART_TAB';\nexport const updateChronologicalDisplayedChartTab = ({ chartTab }) => ({\n type: UPDATE_CHRONOLOGICAL_DISPLAYED_CHART_TAB,\n payload: {\n chartTab,\n },\n});\n\nexport const UPDATE_CHRONOLOGICAL_DATA = 'indexes/chronological/UPDATE_DATA';\nexport const updateChronologicalData = ({ idartist, currency, chartKey, loading, data, error }) => ({\n type: UPDATE_CHRONOLOGICAL_DATA,\n payload: {\n idartist,\n currency,\n chartKey,\n loading,\n data,\n error,\n },\n});\nexport function fetchChronologicalData() {\n return async (dispatch, getState) => {\n const state = getState();\n\n if (isChronologicalDataLoading(state) || getChronologicalData(state) !== undefined) return;\n\n const chartTab = getChronologicalDisplayedChartTab(state);\n const idartist = getIdartist(state);\n const currency = getCurrency(state);\n\n if (!idartist || !currency || !chartTab) return;\n\n const { idcategory, idcountry, minPrice, maxPrice, ...rest } = getChronologicalOptions(state) || {};\n\n if (Object.keys(rest).length > 0) console.error('ERROR: UNUSED OPTIONS {', rest, '}');\n\n const chartKey = createChartKey({ chartTab, idcategory, idcountry, minPrice, maxPrice });\n\n dispatch(updateChronologicalData({ idartist, currency, chartKey, loading: true }));\n try {\n const data = await chronologicalDataService({\n idcategory,\n idcountry,\n minPrice,\n maxPrice,\n chartTab,\n idartist,\n idcurrency: CURRENCIES[currency].id,\n });\n\n dispatch(updateChronologicalData({ idartist, currency, chartKey, data, loading: false }));\n } catch (err) {\n dispatch(updateChronologicalData({ idartist, currency, chartKey, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n","import { TAB_CA, TAB_SOLD } from '../../constants/indexes/geographical';\nimport { internalAxios } from '../../utils/axios/internal';\n\nexport const geographicalDataService = async ({ chartTab, idartist, idcurrency, idcategory, minYear, maxYear, minPrice, maxPrice }) => {\n let paramsUrl = '';\n if (idartist) paramsUrl += `idartist=${idartist}&`;\n else console.error('ERROR: idartist =', idartist);\n\n if (idcurrency) paramsUrl += `idcurrency=${idcurrency}&`;\n else console.error('ERROR: idcurrency =', idcurrency);\n\n if (idcategory) paramsUrl += `idcategory=${idcategory}&`;\n\n if (minYear !== undefined) paramsUrl += `min_year=${minYear}&`;\n if (maxYear !== undefined) paramsUrl += `max_year=${maxYear}&`;\n\n if (minPrice !== undefined) paramsUrl += `min_price=${minPrice}&`;\n if (maxPrice !== undefined) paramsUrl += `max_price=${maxPrice}&`;\n\n paramsUrl += 'group_by=idcountry';\n\n let apiAction = '';\n switch (chartTab) {\n case TAB_CA:\n apiAction = 'geographical_ca';\n break;\n case TAB_SOLD:\n apiAction = 'geographical_sold';\n break;\n default:\n throw new Error(`Unknown chartTab : ${chartTab}`);\n }\n\n const response = await internalAxios.get(`/api/artdbweb/indexes/${apiAction}?${paramsUrl}`);\n return response.data;\n};\n","import { getIdartist } from '../../selectors/indexes/artist';\n\nimport { geographicalDataService } from '../../../services/indexes/geographical';\nimport { createChartKey, getGeographicalData, getGeographicalDisplayedChartTab, getGeographicalOptions, isGeographicalDataLoading } from '../../selectors/indexes/geographical';\nimport { getCurrency } from '../../selectors/preferences';\nimport { CURRENCIES } from '../../../constants/preferences';\n\nexport const UPDATE_GEOGRAPHICAL_OPTIONS = 'indexes/geographical/UPDATE_OPTIONS';\nexport const updateGeographicalOptions = ({ options }) => ({\n type: UPDATE_GEOGRAPHICAL_OPTIONS,\n payload: {\n options,\n },\n});\n\nexport const UPDATE_GEOGRAPHICAL_DISPLAYED_CHART_TAB = 'indexes/geographical/UPDATE_DISPLAYED_CHART_TAB';\nexport const updateGeographicalDisplayedChartTab = ({ chartTab }) => ({\n type: UPDATE_GEOGRAPHICAL_DISPLAYED_CHART_TAB,\n payload: {\n chartTab,\n },\n});\n\nexport const UPDATE_GEOGRAPHICAL_DATA = 'indexes/geographical/UPDATE_DATA';\nexport const updateGeographicalData = ({ idartist, currency, chartKey, loading, data, error }) => ({\n type: UPDATE_GEOGRAPHICAL_DATA,\n payload: {\n idartist,\n currency,\n chartKey,\n loading,\n data,\n error,\n },\n});\nexport function fetchGeographicalData() {\n return async (dispatch, getState) => {\n const state = getState();\n\n if (isGeographicalDataLoading(state) || getGeographicalData(state) !== undefined) return;\n\n const chartTab = getGeographicalDisplayedChartTab(state);\n const idartist = getIdartist(state);\n const currency = getCurrency(state);\n\n if (!idartist || !currency || !chartTab) return;\n\n const { idcategory, minYear, maxYear, minPrice, maxPrice, ...rest } = getGeographicalOptions(state) || {};\n\n if (Object.keys(rest).length > 0) console.error('ERROR: UNUSED OPTIONS {', rest, '}');\n\n const chartKey = createChartKey({ chartTab, idcategory, minYear, maxYear, minPrice, maxPrice });\n\n dispatch(updateGeographicalData({ idartist, currency, chartKey, loading: true }));\n try {\n const data = await geographicalDataService({\n idcategory,\n minPrice,\n maxPrice,\n minYear,\n maxYear,\n chartTab,\n idartist,\n idcurrency: CURRENCIES[currency].id,\n });\n dispatch(updateGeographicalData({ idartist, currency, chartKey, data, loading: false }));\n } catch (err) {\n dispatch(updateGeographicalData({ idartist, currency, chartKey, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n","import { TAB_CA, TAB_SOLD } from '../../constants/indexes/medium';\nimport { internalAxios } from '../../utils/axios/internal';\n\nexport const mediumDataService = async ({ chartTab, idartist, idcurrency, idcountry, minYear, maxYear, minPrice, maxPrice }) => {\n let paramsUrl = '';\n if (idartist) paramsUrl += `idartist=${idartist}&`;\n else console.error('ERROR: idartist =', idartist);\n\n if (idcurrency) paramsUrl += `idcurrency=${idcurrency}&`;\n else console.error('ERROR: idcurrency =', idcurrency);\n\n if (idcountry) paramsUrl += `idcountry=${idcountry}&`;\n\n if (minYear !== undefined) paramsUrl += `min_year=${minYear}&`;\n if (maxYear !== undefined) paramsUrl += `max_year=${maxYear}&`;\n\n if (minPrice !== undefined) paramsUrl += `min_price=${minPrice}&`;\n if (maxPrice !== undefined) paramsUrl += `max_price=${maxPrice}&`;\n\n paramsUrl += 'group_by=idcategory';\n\n let apiAction = '';\n switch (chartTab) {\n case TAB_CA:\n apiAction = 'medium_ca';\n break;\n case TAB_SOLD:\n apiAction = 'medium_sold';\n break;\n default:\n throw new Error(`Unknown chartTab : ${chartTab}`);\n }\n\n const response = await internalAxios.get(`/api/artdbweb/indexes/${apiAction}?${paramsUrl}`);\n return response.data;\n};\n","import { getIdartist } from '../../selectors/indexes/artist';\n\nimport { mediumDataService } from '../../../services/indexes/medium';\nimport { createChartKey, isMediumDataLoading, getMediumData, getMediumDisplayedChartTab, getMediumOptions } from '../../selectors/indexes/medium';\n\nimport { getCurrency } from '../../selectors/preferences';\nimport { CURRENCIES } from '../../../constants/preferences';\n\nexport const UPDATE_MEDIUM_OPTIONS = 'indexes/medium/UPDATE_OPTIONS';\nexport const updateMediumOptions = ({ options }) => ({\n type: UPDATE_MEDIUM_OPTIONS,\n payload: {\n options,\n },\n});\n\nexport const UPDATE_MEDIUM_DISPLAYED_CHART_TAB = 'indexes/medium/UPDATE_DISPLAYED_CHART_TAB';\nexport const updateMediumDisplayedChartTab = ({ chartTab }) => ({\n type: UPDATE_MEDIUM_DISPLAYED_CHART_TAB,\n payload: {\n chartTab,\n },\n});\n\nexport const UPDATE_MEDIUM_DATA = 'indexes/medium/UPDATE_DATA';\nexport const updateMediumData = ({ idartist, currency, chartKey, loading, data, error }) => ({\n type: UPDATE_MEDIUM_DATA,\n payload: {\n idartist,\n currency,\n chartKey,\n loading,\n data,\n error,\n },\n});\nexport function fetchMediumData() {\n return async (dispatch, getState) => {\n const state = getState();\n\n if (isMediumDataLoading(state) || getMediumData(state) !== undefined) return;\n\n const chartTab = getMediumDisplayedChartTab(state);\n const idartist = getIdartist(state);\n const currency = getCurrency(state);\n\n if (!idartist || !currency || !chartTab) return;\n\n const { idcountry, minYear, maxYear, minPrice, maxPrice, ...rest } = getMediumOptions(state) || {};\n\n if (Object.keys(rest).length > 0) console.error('ERROR: UNUSED OPTIONS {', rest, '}');\n\n const chartKey = createChartKey({ chartTab, idcountry, minYear, maxYear, minPrice, maxPrice });\n\n dispatch(updateMediumData({ idartist, currency, chartKey, loading: true }));\n try {\n const data = await mediumDataService({\n idcountry,\n minPrice,\n maxPrice,\n minYear,\n maxYear,\n chartTab,\n idartist,\n idcurrency: CURRENCIES[currency].id,\n });\n\n dispatch(updateMediumData({ idartist, currency, chartKey, data, loading: false }));\n } catch (err) {\n dispatch(updateMediumData({ idartist, currency, chartKey, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n","import { getIdartist, getArtistOptions } from '../../selectors/indexes/artist';\nimport { getCurrency } from '../../selectors/preferences';\nimport { CURRENCIES } from '../../../constants/preferences';\n\nimport { artistDataService, globalIndexDataService, sAndP500DataService, cac40DataService, daxDataService, categoriesDataService } from '../../../services/indexes/priceIndex';\n\nimport {\n createChartKey,\n defaultMinYear,\n isArtistIndexDataLoading,\n isStockIndexDataLoading,\n isCategoryDataLoading,\n getPriceIndexOptions,\n getArtistIndexData,\n getStockIndexData,\n getCategoryData,\n isComparedArtistIndexDataLoading,\n getComparedArtistIndexData,\n getComparedArtistName,\n shouldDisplayComparedArtist,\n} from '../../selectors/indexes/priceIndex';\nimport { artistInfosAction, shouldDisplayAction } from './artist';\n\nexport const UPDATE_PRICE_INDEX_OPTIONS = 'indexes/priceIndex/UPDATE_PRICE_INDEX_OPTIONS';\nexport const updatePriceIndexOptions = ({ options }) => ({\n type: UPDATE_PRICE_INDEX_OPTIONS,\n payload: {\n options,\n },\n});\n\nexport const UPDATE_PRICE_INDEX_ARTIST_DATA = 'indexes/priceIndex/UPDATE_ARTIST_DATA';\nexport const updatePriceIndexArtistData = ({ idartist, currency, loading, data, error }) => ({\n type: UPDATE_PRICE_INDEX_ARTIST_DATA,\n payload: {\n idartist,\n currency,\n loading,\n data,\n error,\n },\n});\nexport function fetchArtistData({ idartist }) {\n return async (dispatch, getState) => {\n const state = getState();\n const currency = getCurrency(state);\n if (!currency) return;\n\n dispatch(updatePriceIndexArtistData({ idartist, currency, loading: true }));\n try {\n const data = await artistDataService({\n idartist,\n idcurrency: CURRENCIES[currency].id,\n });\n\n dispatch(updatePriceIndexArtistData({ idartist, currency, loading: false, data }));\n } catch (err) {\n dispatch(updatePriceIndexArtistData({ idartist, currency, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport function currentArtistDataAction() {\n return async (dispatch, getState) => {\n const state = getState();\n const idartist = getIdartist(state);\n if (!idartist || isArtistIndexDataLoading(state) || getArtistIndexData(state) !== undefined) return;\n await dispatch(fetchArtistData({ idartist }));\n };\n}\n\nexport function comparedArtistDataAction() {\n return async (dispatch, getState) => {\n const state = getState();\n const { idartist } = getPriceIndexOptions(state) || {};\n if (!idartist) return;\n if (getComparedArtistName(state) === undefined) {\n dispatch(artistInfosAction({ idartist }));\n }\n if (shouldDisplayComparedArtist(state) === undefined) {\n dispatch(shouldDisplayAction({ idartist }));\n }\n\n if (isComparedArtistIndexDataLoading(state) || getComparedArtistIndexData(state) !== undefined) return;\n await dispatch(fetchArtistData({ idartist }));\n };\n}\n\nexport const UPDATE_PRICE_INDEX_STOCK_INDEX_DATA = 'indexes/priceIndex/UPDATE_PRICE_INDEX_STOCK_INDEX_DATA';\nexport const updateStockIndexData = ({ idartist, currency, stockIndex, loading, data, error }) => ({\n type: UPDATE_PRICE_INDEX_STOCK_INDEX_DATA,\n payload: {\n idartist,\n currency,\n stockIndex,\n loading,\n data,\n error,\n },\n});\nexport function stockIndexDataAction() {\n return async (dispatch, getState) => {\n const state = getState();\n const idartist = getIdartist(state);\n const currency = getCurrency(state);\n if (!currency) return;\n\n const { stockIndex } = getPriceIndexOptions(state) || {};\n if (!stockIndex) return;\n\n if (isStockIndexDataLoading(state) || getStockIndexData(state)) return;\n dispatch(updateStockIndexData({ idartist, currency, stockIndex, loading: true }));\n try {\n const options = {\n idartist,\n idcurrency: CURRENCIES[currency].id,\n };\n let data;\n switch (stockIndex) {\n case 'globalIndex':\n data = await globalIndexDataService(options);\n break;\n case 'sp500':\n data = await sAndP500DataService(options);\n break;\n case 'cac40':\n data = await cac40DataService(options);\n break;\n case 'dax':\n data = await daxDataService(options);\n break;\n default:\n throw new Error('Stock index not correctly defined');\n }\n\n dispatch(updateStockIndexData({ idartist, currency, stockIndex, data, loading: false }));\n } catch (err) {\n dispatch(updateStockIndexData({ idartist, currency, stockIndex, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n\nexport const UPDATE_PRICE_INDEX_CATEGORIES_DATA = 'indexes/priceIndex/UPDATE_PRICE_INDEX_CATEGORIES_DATA';\nexport const updateCategoriesData = ({ idcategory, idartist, currency, chartKey, loading, data, error }) => ({\n type: UPDATE_PRICE_INDEX_CATEGORIES_DATA,\n payload: {\n idcategory,\n idartist,\n currency,\n chartKey,\n loading,\n data,\n error,\n },\n});\nexport function categoriesDataAction() {\n return async (dispatch, getState) => {\n const state = getState();\n const idartist = getIdartist(state);\n const currency = getCurrency(state);\n if (!currency) return;\n\n const { minYearIndex } = getArtistOptions(state) || {};\n const { idcategory, minYear = minYearIndex || defaultMinYear } = getPriceIndexOptions(state) || {};\n if (!idcategory) return;\n\n const chartKey = createChartKey({ minYear, state });\n\n if (!(isCategoryDataLoading(state, { idcategory }) || getCategoryData(state, { idcategory }))) {\n dispatch(updateCategoriesData({ idcategory, idartist, currency, chartKey, loading: true }));\n try {\n const data = await categoriesDataService({ idcategory, idartist, minYear, idcurrency: CURRENCIES[currency].id });\n dispatch(updateCategoriesData({ idcategory, idartist, currency, chartKey, data, loading: false }));\n } catch (err) {\n dispatch(updateCategoriesData({ idcategory, idartist, currency, chartKey, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n }\n };\n}\n","import { TAB_CA, TAB_SOLD } from '../../constants/indexes/priceSegments';\nimport { internalAxios } from '../../utils/axios/internal';\n\nexport const priceSegmentsDataService = async ({ chartTab, idartist, idcurrency, idcountry, idcategory, minYear, maxYear, minPrice, maxPrice }) => {\n let paramsUrl = '';\n if (idartist) paramsUrl += `idartist=${idartist}&`;\n else console.error('ERROR: idartist =', idartist);\n\n if (idcurrency) paramsUrl += `idcurrency=${idcurrency}&`;\n else console.error('ERROR: idcurrency =', idcurrency);\n\n if (idcountry) paramsUrl += `idcountry=${idcountry}&`;\n if (idcategory) paramsUrl += `idcategory=${idcategory}&`;\n\n if (minYear !== undefined) paramsUrl += `min_year=${minYear}&`;\n if (maxYear !== undefined) paramsUrl += `max_year=${maxYear}&`;\n\n if (minPrice !== undefined) paramsUrl += `min_price=${minPrice}&`;\n if (maxPrice !== undefined) paramsUrl += `max_price=${maxPrice}&`;\n\n paramsUrl += 'group_by=price_segment';\n\n let apiAction = '';\n switch (chartTab) {\n case TAB_CA:\n apiAction = 'price_segments_ca';\n break;\n case TAB_SOLD:\n apiAction = 'price_segments_sold';\n break;\n default:\n throw new Error(`Unknown chartTab : ${chartTab}`);\n }\n\n const response = await internalAxios.get(`/api/artdbweb/indexes/${apiAction}?${paramsUrl}`);\n return response.data;\n};\n","import { getIdartist } from '../../selectors/indexes/artist';\n\nimport { priceSegmentsDataService } from '../../../services/indexes/priceSegments';\nimport { createChartKey, isPriceSegmentsDataLoading, getPriceSegmentsData, getPriceSegmentsDisplayedChartTab, getPriceSegmentsOptions } from '../../selectors/indexes/priceSegments';\n\nimport { getCurrency } from '../../selectors/preferences';\nimport { CURRENCIES } from '../../../constants/preferences';\n\nexport const UPDATE_PRICE_SEGMENTS_OPTIONS = 'indexes/priceSegments/UPDATE_OPTIONS';\nexport const updatePriceSegmentsOptions = ({ options }) => ({\n type: UPDATE_PRICE_SEGMENTS_OPTIONS,\n payload: {\n options,\n },\n});\n\nexport const UPDATE_PRICE_SEGMENTS_DISPLAYED_CHART_TAB = 'indexes/priceSegments/UPDATE_DISPLAYED_CHART_TAB';\nexport const updatePriceSegmentsDisplayedChartTab = ({ chartTab }) => ({\n type: UPDATE_PRICE_SEGMENTS_DISPLAYED_CHART_TAB,\n payload: {\n chartTab,\n },\n});\n\nexport const UPDATE_PRICE_SEGMENTS_DATA = 'indexes/priceSegments/UPDATE_DATA';\nexport const updatePriceSegmentsData = ({ idartist, currency, chartKey, loading, data, error }) => ({\n type: UPDATE_PRICE_SEGMENTS_DATA,\n payload: {\n idartist,\n currency,\n chartKey,\n loading,\n data,\n error,\n },\n});\nexport function fetchPriceSegmentsData() {\n return async (dispatch, getState) => {\n const state = getState();\n\n if (isPriceSegmentsDataLoading(state) || getPriceSegmentsData(state) !== undefined) return;\n\n const chartTab = getPriceSegmentsDisplayedChartTab(state);\n const idartist = getIdartist(state);\n const currency = getCurrency(state);\n\n if (!idartist || !currency || !chartTab) return;\n\n const { idcategory, idcountry, minYear, maxYear, minPrice, maxPrice, ...rest } = getPriceSegmentsOptions(state) || {};\n\n if (Object.keys(rest).length > 0) console.error('ERROR: UNUSED OPTIONS {', rest, '}');\n\n const chartKey = createChartKey({ chartTab, idcategory, idcountry, minYear, maxYear, minPrice, maxPrice });\n\n dispatch(updatePriceSegmentsData({ idartist, currency, chartKey, loading: true }));\n try {\n const data = await priceSegmentsDataService({\n idcategory,\n idcountry,\n minPrice,\n maxPrice,\n minYear,\n maxYear,\n chartTab,\n idartist,\n idcurrency: CURRENCIES[currency].id,\n });\n\n dispatch(updatePriceSegmentsData({ idartist, currency, chartKey, data, loading: false }));\n } catch (err) {\n dispatch(updatePriceSegmentsData({ idartist, currency, chartKey, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const rankService = async ({ idartist, idcurrency }) => {\n const response = await internalAxios.get(`/api/artdbweb/indexes/artist_ranks/${idartist}?idcurrency=${idcurrency}`);\n return response.data;\n};\n","import { getIdartist } from '../../selectors/indexes/artist';\nimport { getRankingData, isRankingDataLoading } from '../../selectors/indexes/ranking';\nimport { getCurrency } from '../../selectors/preferences';\nimport { CURRENCIES } from '../../../constants/preferences';\nimport { rankService } from '../../../services/indexes/ranking';\n\nexport const UPDATE_RANKING_DATA = 'indexes/ranking/UPDATE_RANKING_DATA';\nexport const updateRankingData = ({ idartist, currency, loading, data, error }) => ({\n type: UPDATE_RANKING_DATA,\n payload: {\n idartist,\n currency,\n loading,\n data,\n error,\n },\n});\nexport const fetchRankingData = () => async (dispatch, getState) => {\n const state = getState();\n\n if (isRankingDataLoading(state) || getRankingData(state) !== undefined) return;\n const idartist = getIdartist(state);\n const currency = getCurrency(state);\n\n if (!idartist || !currency) return;\n\n dispatch(updateRankingData({ idartist, currency, loading: true }));\n try {\n const data = await rankService({ idartist, idcurrency: CURRENCIES[currency].id });\n dispatch(updateRankingData({ idartist, currency, loading: false, data }));\n } catch (err) {\n dispatch(updateRankingData({ idartist, currency, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n};\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const summaryIndexService = async ({ idartist, idcurrency }) => {\n const response = await internalAxios.get(`/api/artdbweb/indexes/summary_data?idartist=${idartist}&idcurrency=${idcurrency}`);\n return response.data;\n};\n","import { getIdartist } from '../../selectors/indexes/artist';\nimport { getCurrency } from '../../selectors/preferences';\nimport { CURRENCIES } from '../../../constants/preferences';\n\nimport { summaryIndexService } from '../../../services/indexes/summary';\nimport { isSummaryDataLoading } from '../../selectors/indexes/summary';\n\nexport const UPDATE_SUMMARY_DATA = 'indexes/summary/UPDATE_SUMMARY_DATA';\nexport const updateSummaryData = ({ idartist, currency, loading, data, error }) => ({\n type: UPDATE_SUMMARY_DATA,\n payload: {\n idartist,\n currency,\n loading,\n data,\n error,\n },\n});\nexport function summaryDataAction() {\n return async (dispatch, getState) => {\n const state = getState();\n const idartist = getIdartist(state);\n const currency = getCurrency(state);\n if (!idartist || !currency) return;\n\n if (isSummaryDataLoading(state) !== undefined) return;\n\n dispatch(updateSummaryData({ idartist, currency, loading: true }));\n try {\n const data = await summaryIndexService({ idartist, idcurrency: CURRENCIES[currency].id });\n dispatch(updateSummaryData({ idartist, currency, data, loading: false }));\n } catch (err) {\n dispatch(updateSummaryData({ idartist, currency, loading: false, error: { message: err.message, stack: err.stack } }));\n }\n };\n}\n","import { internalAxios } from '../utils/axios/internal';\n\n// eslint-disable-next-line\nexport const indicatorService = async ({ idlot, currency }) => {\n const response = await internalAxios.get(`/api/artdbweb/indicator/get/${idlot}?currency=${currency}&format=json`);\n return response.data;\n};\n","import { indicatorService } from '../../services/indicator';\n\nexport const ARTDBWEB_LOT_INDICATOR = 'ARTDBWEB_LOT_INDICATOR';\nexport const updateLotIndicator = ({ idlot, currency, result, error, loading = false }) => ({\n type: ARTDBWEB_LOT_INDICATOR,\n currency,\n idlot,\n result,\n error,\n loading,\n});\n\nexport function indicatorAction({ idlot, currency }) {\n return async dispatch => {\n dispatch(updateLotIndicator({ currency, idlot, loading: true }));\n try {\n const result = await indicatorService({ idlot, currency });\n dispatch(updateLotIndicator({ currency, idlot, loading: false, result }));\n } catch (err) {\n dispatch(\n updateLotIndicator({\n currency,\n idlot,\n loading: false,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n };\n}\n","import { createMessage as createMessageService, retrieveMessage as retrieveMessageService } from '../../../../services/marketplace/classifieds/index';\n\nexport const RETRIEVE_MESSAGES = 'marketplace/classifieds/RETRIEVE_MESSAGES';\nconst retrieveMessage = messages => ({\n type: RETRIEVE_MESSAGES,\n payload: messages,\n});\n\nexport const dispatchRetrieveMessage = idclassified => async dispatch => {\n const resp = await retrieveMessageService(idclassified);\n if (resp) dispatch(retrieveMessage(resp));\n};\n\nexport const CREATE_MESSAGE = 'marketplace/classifieds/CREATE_MESSAGE';\n/* const createMessage = ({ message, idclassified, idcustomerInterlocutor }) => ({\n type: CREATE_MESSAGE,\n payload: { message, idclassified, idcustomerInterlocutor },\n}); */\n\nexport const dispatchCreateMessage =\n ({ message, idclassified, idcustomerInterlocutor }) =>\n async dispatch => {\n /* const resp = */ await createMessageService({ message, idclassified, idcustomerInterlocutor });\n // dispatch(createMessage({ message, idclassified, idcustomerInterlocutor }));\n dispatch(dispatchRetrieveMessage(idclassified));\n };\n","/* eslint-disable arrow-body-style */\nimport { getStore as getStoreSelector } from '../../../selectors/marketplace/stores';\nimport {\n removeArtist as removeArtistService,\n addArtist as addArtistService,\n save as saveService,\n get as getService,\n uploadImage as uploadImageService,\n deleteImage as deleteImageService,\n setPrimaryImage as setPrimaryImageService,\n} from '../../../../services/wallet/store';\nimport { on, off } from '../../ui/switches';\n\nexport const UPDATE_STORE_IMAGE = 'marketplace/stores/UPDATE_STORE_IMAGE';\nexport const updateStoreImage = ({ id, imageSha1, loading = false }) => ({\n type: UPDATE_STORE_IMAGE,\n payload: {\n id,\n imageSha1,\n loading,\n },\n});\n\nexport const CLEAR_STORE_IMAGE_ERRORS = 'marketplace/stores/CLEAR_STORE_IMAGE_ERRORS';\nexport const clearStoreImageErrors = ({ id, imageSha1 }) => ({\n type: CLEAR_STORE_IMAGE_ERRORS,\n payload: {\n id,\n imageSha1,\n },\n});\n\nexport const UPLOAD_STORE_IMAGE_ERROR_CODE = 'marketplace/stores/UPLOAD_STORE_IMAGE_ERROR_CODE';\nexport const uploadStoreImageErrorCode = ({ id, imageSha1, errorCode }) => ({\n type: UPLOAD_STORE_IMAGE_ERROR_CODE,\n payload: {\n id,\n imageSha1,\n errorCode,\n },\n});\n\nexport const STORE_IMAGE_FORMAT_WARNING = 'marketplace/stores/STORE_IMAGE_FORMAT_WARNING';\nexport const storeImageFormatWarning = ({ id, imageSha1 }) => ({\n type: STORE_IMAGE_FORMAT_WARNING,\n payload: {\n id,\n imageSha1,\n },\n});\n\nexport const CLEAR_STORE_IMAGE_FORMAT_WARNING = 'marketplace/stores/CLEAR_STORE_IMAGE_FORMAT_WARNING';\nexport const clearStoreImageFormatWarning = ({ id, imageSha1 }) => {\n return {\n type: CLEAR_STORE_IMAGE_FORMAT_WARNING,\n payload: {\n id,\n imageSha1,\n },\n };\n};\n\nexport const UPDATE_STORE = 'marketplace/stores/UPDATE_STORE';\nexport const updateStore = ({ id, store, error, loading = false }) => ({\n type: UPDATE_STORE,\n payload: {\n id,\n store,\n error,\n loading,\n },\n});\n\nexport const get = id => async (dispatch, getState) => {\n const store = getStoreSelector(getState(), { idstore: id });\n if (!store) {\n dispatch(updateStore({ id, loading: true }));\n try {\n const fetchedStore = await getService(id);\n dispatch(updateStore({ id, loading: false, store: fetchedStore }));\n } catch (err) {\n console.error(err);\n dispatch(\n updateStore({\n id,\n loading: false,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n }\n};\n\nexport const save = (idstore, values) => {\n return async dispatch => {\n dispatch(on(`save-store-${idstore}`));\n dispatch(updateStore({ id: idstore, loading: true }));\n const savedStore = await saveService(idstore, values);\n dispatch(updateStore({ id: idstore, loading: false, store: savedStore }));\n dispatch(off(`save-store-${idstore}`));\n };\n};\n\nexport const removeArtist = (idstore, idartist) => {\n return async dispatch => {\n dispatch(on(`delete-store-artist-${idstore}-${idartist}`));\n dispatch(updateStore({ id: idstore, loading: true }));\n const store = await removeArtistService(idartist);\n dispatch(updateStore({ id: idstore, loading: false, store }));\n dispatch(off(`delete-store-artist-${idstore}-${idartist}`));\n };\n};\n\nexport const addArtist = (idstore, idartist) => {\n return async dispatch => {\n dispatch(on(`add-store-artist-${idstore}`));\n dispatch(updateStore({ id: idstore, loading: true }));\n const store = await addArtistService(idartist);\n dispatch(updateStore({ id: idstore, loading: false, store }));\n dispatch(off(`add-store-artist-${idstore}`));\n };\n};\n\nexport const uploadImage = (idstore, file, overridedImageId) => {\n return async (dispatch, getState) => {\n const store = getStoreSelector(getState(), { idstore });\n dispatch(updateStore({ store, id: idstore, loading: true }));\n dispatch(clearStoreImageFormatWarning({ id: idstore, imageSha1: overridedImageId }));\n const responseStatus = await uploadImageService(file, overridedImageId);\n const fetchedStore = await getService(idstore);\n dispatch(updateStore({ store: fetchedStore, id: idstore, loading: false }));\n // must be under dispatch(updateStore) because updateStore will override everything (including the errorCode)\n // (Should be refacto in the next iteration)\n if (responseStatus >= 400) {\n dispatch(uploadStoreImageErrorCode({ errorCode: responseStatus, id: idstore, imageSha1: overridedImageId }));\n }\n };\n};\n\nexport const deleteImage = (idstore, id) => {\n return async (dispatch, getState) => {\n dispatch(on(id));\n const store = getStoreSelector(getState(), { idstore });\n dispatch(updateStore({ store, id: idstore, loading: true }));\n await deleteImageService(id);\n const fetchedStore = await getService(idstore);\n dispatch(updateStore({ store: fetchedStore, id: idstore, loading: false }));\n dispatch(off(id));\n };\n};\n\nexport const setPrimaryImage = (idstore, id) => {\n return async (dispatch, getState) => {\n dispatch(on(id));\n const store = getStoreSelector(getState(), { idstore });\n dispatch(updateStore({ store, id: idstore, loading: true }));\n await setPrimaryImageService(id);\n const fetchedStore = await getService(idstore);\n dispatch(updateStore({ store: fetchedStore, id: idstore, loading: false }));\n dispatch(off(id));\n };\n};\n","import {\n createBestClassifiedsKey,\n isBestClassifiedsLoaded,\n isBestClassifiedsLoading,\n isCountryRepartitionLoaded,\n isCountryRepartitionLoading,\n isViewedClassifiedsLoaded,\n isViewedClassifiedsLoading,\n} from '../../../selectors/marketplace/stores/stats';\nimport { COUNTRY_REPARTITION_KEY, VIEWED_CLASSIFIEDS } from '../../../constants/marketplace/store/stats';\nimport { getBestClassifieds, getCountryRepartition, getViewedClassifieds } from '../../../../services/stats/marketplace';\nimport { formatFns } from '../../../../utils/dates/format';\n\nexport const CHOOSE_PERIOD = 'marketplace/stores/stats/CHOOSE_TOP_PERIOD';\nexport const choosePeriod = ({ start, end }) => ({\n type: CHOOSE_PERIOD,\n payload: {\n start,\n end,\n },\n});\n\nexport const UPDATE = 'marketplace/stores/stats/UPDATE';\nexport const update = ({ key, value, error, loading = false }) => ({\n type: UPDATE,\n payload: {\n key,\n value,\n error,\n loading,\n },\n});\n\nexport const fetchViewedClassifieds =\n ({ refresh = false } = {}) =>\n async (dispatch, getState) => {\n if (!refresh) {\n const state = getState();\n if (isViewedClassifiedsLoading(state) || isViewedClassifiedsLoaded(state) !== undefined) {\n return;\n }\n }\n dispatch(update({ key: VIEWED_CLASSIFIEDS, loading: true }));\n try {\n const result = await getViewedClassifieds();\n dispatch(update({ loading: false, key: VIEWED_CLASSIFIEDS, value: result }));\n const { start, end } = result[result.length - 1];\n dispatch(choosePeriod({ start, end }));\n } catch (err) {\n dispatch(\n update({\n loading: false,\n key: VIEWED_CLASSIFIEDS,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n };\n\nexport const fetchCountryRepartition =\n ({ refresh = false } = {}) =>\n async (dispatch, getState) => {\n if (!refresh) {\n const state = getState();\n if (isCountryRepartitionLoading(state) || isCountryRepartitionLoaded(state) !== undefined) {\n return;\n }\n }\n dispatch(update({ key: COUNTRY_REPARTITION_KEY, loading: true }));\n try {\n const result = await getCountryRepartition();\n dispatch(update({ loading: false, key: COUNTRY_REPARTITION_KEY, value: result }));\n } catch (err) {\n dispatch(\n update({\n loading: false,\n key: COUNTRY_REPARTITION_KEY,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n };\n\nexport const fetchBestClassifieds =\n ({ refresh = false, startDate, endDate = formatFns(new Date(), 'yyyy-MM-dd') } = {}) =>\n async (dispatch, getState) => {\n const params = { startDate, endDate };\n if (!refresh) {\n const state = getState();\n if (isBestClassifiedsLoading(state, params) || isBestClassifiedsLoaded(state, params) !== undefined) {\n return;\n }\n }\n const key = createBestClassifiedsKey(params);\n dispatch(update({ key, loading: true }));\n try {\n const result = await getBestClassifieds(params);\n dispatch(update({ loading: false, key, value: result }));\n } catch (err) {\n dispatch(\n update({\n loading: false,\n key,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n };\n\nexport const fetchAllStats =\n ({ refresh = false } = {}) =>\n async dispatch => {\n dispatch(fetchViewedClassifieds({ refresh }));\n dispatch(fetchCountryRepartition({ refresh }));\n };\n","import { getTop as getTopService } from '../../../../services/wallet/store';\nimport { getTopStores as getTopStoresSelector } from '../../../selectors/marketplace/stores';\n\nexport const UPDATE_TOP_STORES = 'marketplace/stores/UPDATE_TOP_STORES';\nexport const updateTopStores = ({ result, error, loading = false }) => ({\n type: UPDATE_TOP_STORES,\n payload: {\n result,\n error,\n loading,\n },\n});\n\nexport const fetchTopStores =\n ({ refresh = false } = {}) =>\n async (dispatch, getState) => {\n if (!refresh) {\n const topStores = getTopStoresSelector(getState());\n if (Array.isArray(topStores) && topStores.length > 0) {\n return;\n }\n }\n dispatch(updateTopStores({ loading: true }));\n try {\n const result = await getTopService();\n dispatch(updateTopStores({ loading: false, result }));\n } catch (err) {\n dispatch(\n updateTopStores({\n loading: false,\n error: {\n message: err.message,\n stack: err.stack,\n },\n }),\n );\n }\n };\n","import { internalAxios } from '../../../utils/axios/internal';\n\nexport const add = async id => {\n const response = await internalAxios.get(`/api/wallet/store/add_store_in_favorite/${id}.json`);\n return response.data;\n};\n\nexport const remove = async id => {\n const response = await internalAxios.get(`/api/wallet/store/remove_store_from_favorite/${id}.json`);\n return response.data;\n};\n\nexport const fetchFavoriteStores = async () => {\n const response = await internalAxios.get('/api/wallet/store/favorites');\n return response.data;\n};\n","import { updateArtists as updateArtistsEntities } from '../dbEntities/artist';\nimport { fetchArtists as fetchArtistsService, fetchSummary as fetchSummaryService, followArtist as followArtistService, unfollowArtist as unfollowArtistservice } from '../../../services/myartprice/artists';\nimport { followLot as followLotService, unfollowLot as unfollowLotservice, similarLot as similarLotService } from '../../../services/myartprice/lots';\nimport { followClassified as followClassifiedService, unfollowClassified as unfollowClassifiedService, fetchFavoriteClassifieds } from '../../../services/marketplace/classifieds';\nimport { areClassifiedsDataLoading, areDataLoading, areStoresDataLoading } from '../../selectors/myartprice/data';\nimport { fetchSettings } from './settings';\nimport { add as followStoreService, fetchFavoriteStores, remove as unfollowStoreService } from '../../../services/marketplace/stores/favorite';\n\nexport const UPDATE_ARTISTS = 'myartprice/data/UPDATE_ARTISTS';\nexport const updateArtists = ({ error, loading, artists, lvl }) => ({\n type: UPDATE_ARTISTS,\n payload: {\n artists,\n loading,\n error,\n lvl,\n },\n});\n\nexport const fetchSummary = () => async (dispatch, getState) => {\n const state = getState();\n if (areDataLoading(state)) return;\n\n try {\n dispatch(updateArtists({ loading: true }));\n dispatch(fetchSettings());\n const { artists, data } = await fetchSummaryService();\n dispatch(updateArtistsEntities({ artists }));\n dispatch(updateArtists({ loading: false, artists: data }));\n } catch (error) {\n console.error(error);\n dispatch(updateArtists({ loading: false, error: error.message }));\n }\n};\n\nexport const fetchArtists = () => async (dispatch, getState) => {\n const state = getState();\n if (areDataLoading(state)) return;\n\n try {\n dispatch(updateArtists({ loading: true }));\n const { artists, data } = await fetchArtistsService();\n dispatch(updateArtistsEntities({ artists }));\n dispatch(updateArtists({ loading: false, artists: data }));\n } catch (error) {\n console.error(error);\n dispatch(updateArtists({ loading: false, error: error.message }));\n }\n};\n\n// Artist\nexport const followArtist =\n ({ idartist }) =>\n async dispatch => {\n const { lvl, error, artists, data } = await followArtistService(idartist);\n dispatch(updateArtists({ loading: false, artists: data, error, lvl }));\n dispatch(updateArtistsEntities({ artists }));\n };\n\nexport const UPDATE_MYARTPRICE_CURRENT_PAGE = 'myartprice/data/UPDATE_MYARTPRICE_CURRENT_PAGE';\nexport function updateCurrentPage(payload) {\n return {\n type: UPDATE_MYARTPRICE_CURRENT_PAGE,\n payload,\n };\n}\n\nexport const UPDATE_MYARTPRICE_ENTITIES = 'myartprice/data/UPDATE_MYARTPRICE_ENTITIES';\nexport function updateEntities(payload) {\n return {\n type: UPDATE_MYARTPRICE_ENTITIES,\n payload,\n };\n}\n\nexport const UPDATE_MYARTPRICE_LOADING = 'myartprice/data/UPDATE_MYARTPRICE_LOADING';\nexport function updateLoading(payload) {\n return {\n type: UPDATE_MYARTPRICE_LOADING,\n payload,\n };\n}\n\nexport const UPDATE_MYARTPRICE_TOTAL_COUNT = 'myartprice/data/UPDATE_MYARTPRICE_TOTAL_COUNT';\nexport function updateTotalCount(payload) {\n return {\n type: UPDATE_MYARTPRICE_TOTAL_COUNT,\n payload,\n };\n}\n\nexport const UPDATE_MYARTPRICE_ID_ENTITIES = 'myartprice/data/UPDATE_MYARTPRICE_ID_ENTITIES';\nexport function updateIdEntities(payload) {\n return {\n type: UPDATE_MYARTPRICE_ID_ENTITIES,\n payload,\n };\n}\n\nexport const UPDATE_MYARTPRICE_SEARCH_SCOPE = 'myartprice/data/UPDATE_MYARTPRICE_SEARCH_SCOPE';\nexport function updateSearchScope(payload) {\n return {\n type: UPDATE_MYARTPRICE_SEARCH_SCOPE,\n payload,\n };\n}\n\nexport const INCLUDE_IN_PUSH = 'myartprice/artists/INCLUDE_IN_PUSH';\nexport const includeInPushArtist =\n ({ idartist }) =>\n async dispatch => {\n dispatch({\n type: INCLUDE_IN_PUSH,\n payload: {\n idartist,\n },\n });\n };\n\nexport const UNFOLLOW_ARTIST = 'myartprice/artists/UNFOLLOW_ARTIST';\nexport const unfollowArtist =\n ({ idartists }) =>\n async dispatch => {\n await unfollowArtistservice(idartists);\n dispatch({\n type: UNFOLLOW_ARTIST,\n payload: {\n idartists,\n },\n });\n };\n\n// Lots\nexport const ADD_LOT_FOLLOW = 'myartprice/lots/ADD_LOT_FOLLOW';\nexport function addLotFollow(payload) {\n return {\n type: ADD_LOT_FOLLOW,\n payload,\n };\n}\n\nexport const REMOVE_LOT_FOLLOW = 'myartprice/lots/REMOVE_LOT_FOLLOW';\nexport function removeLotFollow(payload) {\n return {\n type: REMOVE_LOT_FOLLOW,\n payload,\n };\n}\n\nexport const followLot = idlot => async dispatch => {\n const status = await followLotService(idlot);\n if (status.unauthorized !== true) {\n dispatch(addLotFollow({ loading: false, idlot }));\n }\n return status;\n};\n\nexport const unfollowLot = idlot => async dispatch => {\n const status = await unfollowLotservice(idlot);\n dispatch(removeLotFollow({ loading: false, status, idlot }));\n};\n\n// Classifieds\n\nexport const UPDATE_FAVORITE_CLASSIFIEDS = 'myartprice/data/UPDATE_FAVORITE_CLASSIFIEDS';\nconst updateFavoriteClassifieds = ({ error, loading, data }) => ({\n type: UPDATE_FAVORITE_CLASSIFIEDS,\n payload: {\n data,\n loading,\n error,\n },\n});\n\nexport const ADD_CLASSIFIED_FOLLOW = 'myartprice/classifieds/ADD_CLASSIFIED_FOLLOW';\nfunction addClassifiedFollowAction(payload) {\n return {\n type: ADD_CLASSIFIED_FOLLOW,\n payload,\n };\n}\n\nexport const REMOVE_CLASSIFIED_FOLLOW = 'myartprice/classifieds/REMOVE_CLASSIFIED_FOLLOW';\nfunction removeClassifiedFollowAction(payload) {\n return {\n type: REMOVE_CLASSIFIED_FOLLOW,\n payload,\n };\n}\n\nexport const followClassified = idclassified => async dispatch => {\n await followClassifiedService(idclassified);\n dispatch(addClassifiedFollowAction({ loading: false, idclassified }));\n};\n\nexport const unfollowClassified = idclassified => async dispatch => {\n const status = await unfollowClassifiedService(idclassified);\n dispatch(removeClassifiedFollowAction({ loading: false, status, idclassified }));\n};\n\nexport const fetchClassifieds = () => async (dispatch, getState) => {\n const state = getState();\n if (areClassifiedsDataLoading(state)) return;\n\n try {\n dispatch(updateFavoriteClassifieds({ loading: true }));\n const data = await fetchFavoriteClassifieds();\n dispatch(updateFavoriteClassifieds({ loading: false, data }));\n } catch (error) {\n console.error(error);\n dispatch(updateFavoriteClassifieds({ loading: false, error }));\n }\n};\n\n// Lot Similar\nexport const GET_LOT_SIMILAR = 'myartprice/lots/SIMILAR';\nexport function getLotSimilarAction(payload) {\n return {\n type: GET_LOT_SIMILAR,\n payload,\n };\n}\n\nexport const getLotSimilar = idlot => async dispatch => {\n try {\n const res = await similarLotService(idlot);\n dispatch(getLotSimilarAction({ loading: false, res }));\n } catch (error) {\n console.error(error);\n dispatch(getLotSimilarAction({ loading: false, res: {} }));\n }\n};\n\n// Store\n\nexport const ADD_STORE_FOLLOW = 'myartprice/classifieds/ADD_STORE_FOLLOW';\nfunction addStoreFollowAction(payload) {\n return {\n type: ADD_STORE_FOLLOW,\n payload,\n };\n}\n\nexport const REMOVE_STORE_FOLLOW = 'myartprice/classifieds/REMOVE_STORE_FOLLOW';\nfunction removeStoreFollowAction(payload) {\n return {\n type: REMOVE_STORE_FOLLOW,\n payload,\n };\n}\n\nexport const UPDATE_FAVORITE_STORES = 'myartprice/data/UPDATE_FAVORITE_STORES';\nconst updateFavoriteStore = ({ error, loading, data }) => ({\n type: UPDATE_FAVORITE_STORES,\n payload: {\n data,\n loading,\n error,\n },\n});\n\nexport const fetchStores = () => async (dispatch, getState) => {\n const state = getState();\n if (areStoresDataLoading(state)) return;\n\n try {\n dispatch(updateFavoriteStore({ loading: true }));\n const data = await fetchFavoriteStores();\n dispatch(updateFavoriteStore({ loading: false, data }));\n } catch (error) {\n console.error(error);\n dispatch(updateFavoriteStore({ loading: false, error }));\n }\n};\n\nexport const followStore = idstore => async dispatch => {\n const status = await followStoreService(idstore);\n dispatch(addStoreFollowAction({ loading: false, status, idstore }));\n};\n\nexport const unfollowStore = idstore => async dispatch => {\n const status = await unfollowStoreService(idstore);\n dispatch(removeStoreFollowAction({ loading: false, status, idstore }));\n};\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const fetchArtists = async () => {\n const response = await internalAxios.get('/api/myartprice/artists/favorites');\n return response.data;\n};\n\nexport const fetchSummary = async () => {\n const response = await internalAxios.get('/api/myartprice/artists/summary');\n return response.data;\n};\n\nexport const followArtist = async id => {\n const response = await internalAxios.post('/api/myartprice/settings/follow', { id });\n return response.data;\n};\n\nexport const unfollowArtist = async id => {\n const response = await internalAxios.post('/api/myartprice/settings/unfollow', { id });\n return response.data;\n};\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const followLot = async idlot => {\n const response = await internalAxios.post('/api/myartprice/settings/follow_lot', { id: idlot });\n return response.data;\n};\n\nexport const unfollowLot = async idlot => {\n const response = await internalAxios.post('/api/myartprice/settings/unfollow_lot', { id: idlot });\n return response.data;\n};\n\nexport const similarLot = async idlot => {\n const response = await internalAxios.post('/api/myartprice/lots/similar', { id: idlot });\n return response.data;\n};\n","import { SHORTCUT_SETTINGS_ARTISTS, SHORTCUT_SETTINGS_CATEGORIES, SHORTCUT_SETTINGS_SECTIONS } from '../../constants/myartprice';\nimport { internalAxios } from '../../utils/axios/internal';\n\nexport const updatePreferences = async (section, value, params = {}) => {\n let baseUrl = '/api/myartprice/settings/';\n switch (section) {\n case SHORTCUT_SETTINGS_ARTISTS:\n baseUrl = `${baseUrl}update_artist_include_in_push`;\n break;\n case SHORTCUT_SETTINGS_CATEGORIES:\n baseUrl = `${baseUrl}update_pushcategoryunsubscribe`;\n break;\n case SHORTCUT_SETTINGS_SECTIONS:\n baseUrl = `${baseUrl}update_pushunsubscribe`;\n break;\n default:\n throw new Error(`Unknown section : ${section}`);\n }\n\n const response = await internalAxios.post(baseUrl, { ...params, ...{ v: value } });\n return response.data;\n};\n\nexport const fetchSettings = async () => {\n const response = await internalAxios.get('/api/myartprice/settings/get_settings');\n return response.data;\n};\n\nexport const fetchCategoriesParams = async () => {\n const response = await internalAxios.get('/api/myartprice/settings/categories_settings');\n return response.data;\n};\n","import { updateCategories as updateCategoriesEntities } from '../dbEntities/category';\nimport { getParam, getCategoriesParams, areCategoriesLoading } from '../../selectors/myartprice';\nimport { getArtistParam } from '../../selectors/myartprice/data';\nimport { updatePreferences as updatePreferencesService, fetchCategoriesParams as fetchCategoriesParamsService, fetchSettings as fetchSettingsService } from '../../../services/myartprice/settings';\nimport { SHORTCUT_SETTINGS_ARTISTS } from '../../../constants/myartprice';\n\nexport const UPDATE_ARTIST_PREFERENCES = 'myartprice/settings/UPDATE_ARTIST_PREFERENCES';\nexport const UPDATE_SETTINGS_PREFERENCES = 'myartprice/settings/UPDATE_SETTINGS_PREFERENCES';\nexport const updatePreferences =\n (section, value, params = {}) =>\n async (dispatch, getState) => {\n let oldValue;\n const action = {\n type: UPDATE_SETTINGS_PREFERENCES,\n payload: {\n section,\n params,\n value,\n },\n };\n\n if (section === SHORTCUT_SETTINGS_ARTISTS) {\n action.type = UPDATE_ARTIST_PREFERENCES;\n oldValue = getArtistParam(getState(), { idartist: params.idartist, params });\n } else {\n oldValue = getParam(getState(), { idartist: params.idartist, params });\n }\n dispatch(action);\n\n try {\n const response = await updatePreferencesService(section, value, params);\n if (value !== response.result) {\n action.payload.value = response.result;\n dispatch(action);\n }\n } catch (e) {\n console.error(e);\n action.payload.value = oldValue;\n dispatch(action);\n }\n };\n\nexport const UPDATE_CATEGORIES = 'myartprice/settings/UPDATE_CATEGORIES';\nexport const updateCategories = ({ data, loading, error }) => ({\n type: UPDATE_CATEGORIES,\n payload: {\n data,\n loading,\n error,\n },\n});\n\nexport const fetchCategories = () => async (dispatch, getState) => {\n const state = getState();\n\n if (areCategoriesLoading(state) || getCategoriesParams(state)) {\n return;\n }\n try {\n dispatch(updateCategories({ loading: true }));\n const { categories, settings } = (await fetchCategoriesParamsService()) || {};\n dispatch(updateCategoriesEntities({ loading: false, categories }));\n dispatch(updateCategories({ loading: false, data: settings }));\n } catch (error) {\n dispatch(updateCategories({ loading: false, error }));\n }\n};\n\nexport const FETCH_SETTINGS = 'myartprice/settings/FETCH_SETTINGS';\nexport const fetchSettings = () => async dispatch => {\n const settings = (await fetchSettingsService()) || {};\n const { ended, futures, auctions, fixedPrice } = settings;\n dispatch({\n type: FETCH_SETTINGS,\n payload: {\n ended,\n futures,\n auctions,\n fixedPrice,\n },\n });\n};\n","import { internalAxios } from '../utils/axios/internal';\n\nexport const updateArtistLotsOrder = async ({ artistLotsSectionOrder }) => {\n const response = await internalAxios.post(`/api/account/preferences/ualo/${artistLotsSectionOrder}`);\n return response;\n};\n\nexport const updateHideArtistFollowRecommendationsModaleUntil = async () => {\n const response = await internalAxios.post('/api/account/preferences/uharfmu');\n return response;\n};\n","import { updatePreferredCurrency as updatePreferredCurrencyService, updatePreferredDimensionUnit as updatePreferredDimensionUnitService } from '../../services/account';\nimport { updateArtistLotsOrder, updateHideArtistFollowRecommendationsModaleUntil as updateHideArtistFollowRecommendationsModaleUntilService } from '../../services/preferences';\n\nexport const UPDATE_FRESHNESS_PREFERENCE = 'UPDATE_FRESHNESS_PREFERENCE';\nexport function updateFreshnessPreference({ freshness }) {\n return {\n type: UPDATE_FRESHNESS_PREFERENCE,\n freshness,\n };\n}\n\nexport const UPDATE_LANG_PREFERENCE = 'UPDATE_LANG_PREFERENCE';\nexport function updateLangPreference({ lang }) {\n return {\n type: UPDATE_LANG_PREFERENCE,\n lang,\n };\n}\n\nexport const UPDATE_CURRENCY_PREFERENCE = 'UPDATE_CURRENCY_PREFERENCE';\nexport function updateCurrencyPreference({ currency }) {\n return {\n type: UPDATE_CURRENCY_PREFERENCE,\n currency,\n };\n}\n\nexport function dispatchCurrencyPreference(currencyIso3) {\n return async dispatch => {\n dispatch(updateCurrencyPreference({ currency: currencyIso3 }));\n updatePreferredCurrencyService({ currency: currencyIso3 });\n };\n}\n\nexport const UPDATE_DIMENSION_PREFERENCE = 'UPDATE_DIMENSION_PREFERENCE';\nexport function updateDimensionPreference({ dimension }) {\n return {\n type: UPDATE_DIMENSION_PREFERENCE,\n dimension,\n };\n}\n\nexport function dispatchDimensionPreference({ dimensionUnit }) {\n return async dispatch => {\n dispatch(updateDimensionPreference({ dimension: dimensionUnit }));\n updatePreferredDimensionUnitService({ dimensionUnit });\n };\n}\n\nexport const UPDATE_ITEMS_PER_PAGE_PREFERENCE = 'UPDATE_ITEMS_PER_PAGE_PREFERENCE';\nexport function updateItemsPerPage({ itemsPerPage }) {\n return {\n type: UPDATE_ITEMS_PER_PAGE_PREFERENCE,\n itemsPerPage,\n };\n}\n\nexport const UPDATE_LOTS_VIEW_FORMAT_PREFERENCE = 'UPDATE_LOTS_VIEW_FORMAT_PREFERENCE';\nexport function updateLotsViewFormatPreference({ lotsViewFormat }) {\n return {\n type: UPDATE_LOTS_VIEW_FORMAT_PREFERENCE,\n lotsViewFormat,\n };\n}\n\nexport const UPDATE_ARTISTS_VIEW_FORMAT_PREFERENCE = 'UPDATE_ARTISTS_VIEW_FORMAT_PREFERENCE';\nexport function updateArtistsViewFormatPreference({ artistsViewFormat }) {\n return {\n type: UPDATE_ARTISTS_VIEW_FORMAT_PREFERENCE,\n artistsViewFormat,\n };\n}\n\nexport const UPDATE_PREFERENCE = 'UPDATE_PREFERENCE';\nexport function updatePreference({ currency, lang, dimension, artistLotsSectionOrder, hideArtistFollowRecommendationsModaleUntil }) {\n return {\n type: UPDATE_PREFERENCE,\n currency,\n lang,\n dimension,\n artistLotsSectionOrder,\n hideArtistFollowRecommendationsModaleUntil,\n };\n}\n\nexport function updateArtistLotsSectionOrder({ artistLotsSectionOrder }) {\n return async dispatch => {\n const { data } = await updateArtistLotsOrder({ artistLotsSectionOrder });\n dispatch(updatePreference({ artistLotsSectionOrder: data.preferences.artistLotsSectionOrder }));\n };\n}\n\nexport function updateHideArtistFollowRecommendationsModaleUntil() {\n return async dispatch => {\n const { data } = await updateHideArtistFollowRecommendationsModaleUntilService();\n dispatch(updatePreference({ hideArtistFollowRecommendationsModaleUntil: data.preferences.hideArtistFollowRecommendationsModaleUntil }));\n };\n}\n","import { areThemesLoading } from '../../selectors/subscriptions/physicproducts';\nimport { get } from '../../../services/wallet/physicproduct';\nimport { updateSettings } from './settings';\n\nexport const UPDATE_PHYSICPRODUCTS = 'subscriptions/UPDATE_PHYSICPRODUCTS';\nexport const updatePhysicproducts = ({ physicproducts, loading, error }) => ({\n type: UPDATE_PHYSICPRODUCTS,\n payload: {\n data: physicproducts,\n loading,\n error,\n },\n});\n\nexport const fetchPhysicproducts =\n ({ filter, image, promocode, quantity }) =>\n async (dispatch, getState) => {\n const state = getState();\n if (areThemesLoading(state)) return;\n try {\n dispatch(updatePhysicproducts({ loading: true }));\n const physicproducts = await get({ filter, image, promocode, quantity });\n\n dispatch(\n updateSettings({\n data: {\n hasAuctioneerDiscount: physicproducts.has_auctioneer_discount,\n hasLoyaltyDiscount: physicproducts.has_loyalty_discount,\n hasOnedayRefund: physicproducts.has_oneday_refund,\n },\n }),\n );\n\n dispatch(updatePhysicproducts({ loading: false, physicproducts }));\n } catch (error) {\n dispatch(updatePhysicproducts({ loading: false, error }));\n }\n };\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const get = async ({ id }) => {\n const response = await internalAxios.post('/api/wallet/promotion/get', { id });\n return response.data;\n};\n","import { getPromotion, arePromotionLoading } from '../../selectors/subscriptions/promotions';\nimport { get } from '../../../services/wallet/promotion';\n\nexport const UPDATE_PROMOTIONS = 'subscriptions/UPDATE_PROMOTIONS';\nexport const updatePromotions = ({ promotions, loading, error }) => ({\n type: UPDATE_PROMOTIONS,\n payload: {\n data: promotions,\n loading,\n error,\n },\n});\n\nexport const fetchPromotion =\n ({ id }) =>\n async (dispatch, getState) => {\n const state = getState();\n if (arePromotionLoading(state) || getPromotion(state, { id })) return;\n try {\n dispatch(updatePromotions({ loading: true }));\n const promotions = await get({ id });\n\n dispatch(updatePromotions({ loading: false, promotions }));\n } catch (error) {\n dispatch(updatePromotions({ loading: false, error }));\n }\n };\n","export const UPDATE_SUBSCRIPTIONS_SETTINGS = 'subscriptions/UPDATE_SUBSCRIPTIONS_SETTINGS';\nexport const updateSettings = ({ data, loading, error }) => ({\n type: UPDATE_SUBSCRIPTIONS_SETTINGS,\n payload: {\n data,\n loading,\n error,\n },\n});\n","import { isLoading } from '../../selectors/subscriptions/stripe';\nimport { getCustomer as getCustomerService } from '../../../services/subscriptions/stripe';\n\nexport const UPDATE_SUBSCRIPTIONS_STRIPE = 'subscriptions/UPDATE_SUBSCRIPTIONS_STRIPE';\nexport const updateStripe = ({ data, loading, error }) => ({\n type: UPDATE_SUBSCRIPTIONS_STRIPE,\n payload: {\n data,\n loading,\n error,\n },\n});\n\nexport const getCustomer = () => async (dispatch, getState) => {\n const state = getState();\n if (isLoading(state)) return;\n try {\n dispatch(updateStripe({ loading: true }));\n const customer = await getCustomerService();\n\n dispatch(updateStripe({ loading: false, data: customer }));\n } catch (error) {\n dispatch(updateStripe({ loading: false, error }));\n }\n};\n","export const BEGIN = 'ui/asyncStatus/BEGIN';\nexport const begin = ({ id }) => ({\n type: BEGIN,\n payload: {\n id,\n },\n});\n\nexport const END = 'ui/asyncStatus/END';\nexport const end = ({ id, error }) => ({\n type: END,\n payload: {\n id,\n error,\n },\n});\n","export const SET = 'ui/dictionary/set';\n\nexport const updateDictionary = (id, value) => ({\n type: SET,\n payload: {\n id,\n value,\n },\n});\n\nexport function set(id, value) {\n return async (dispatch, getState) => {\n const state = getState();\n if (state.ui.dictionary[id] === value) return;\n dispatch(updateDictionary(id, value));\n };\n}\n","export const ON = 'ui/switched/on';\nexport const on = id => ({\n type: ON,\n payload: {\n id,\n },\n});\n\nexport const OFF = 'ui/switched/off';\nexport const off = id => ({\n type: OFF,\n payload: {\n id,\n },\n});\n\nexport const TOGGLE = 'ui/switched/toggle';\nexport const toggle = id => ({\n type: TOGGLE,\n payload: {\n id,\n },\n});\n","export const UPDATE_VIEWPORT = 'ui/updateViewport';\nexport const updateViewport = (height, width) => ({\n type: UPDATE_VIEWPORT,\n payload: {\n height,\n width,\n },\n});\n","export const TOTAL_COUNT_KEY = 'totalCount';\n\nexport const COUNTRY_REPARTITION_KEY = 'countryRepartition';\n\nexport const BEST_CLASSIFIEDS = 'bestClassifieds';\n\nexport const BEST_ARTISTS = 'bestArtists';\n\nexport const INQUIRIES = 'inquiries';\n\nexport const PUBLISHED_CLASSIFIEDS = 'publishedClassifieds';\n\nexport const VIEWED_CLASSIFIEDS = 'viewedClassifieds';\n","import { get } from 'lodash';\nimport { EMPTY_ARRAY } from '../../../constants/utils';\n\nexport const ids = state => get(state, 'account.messages.idmessages', EMPTY_ARRAY);\nexport const count = state => get(state, 'account.messages.count', 0);\nexport const perPage = state => get(state, 'account.messages.perPage', 20);\nexport const loading = state => get(state, 'account.messages.lodaing', false);\n","import { get } from 'lodash';\n\nexport const getAgreement = (state, { idagreementtype }) => get(state, `agreements.${idagreementtype}`);\nexport const isAgreementLoading = (state, { idagreementtype }) => get(state, `agreements.${idagreementtype}.loading`) || false;\n","import { get } from 'lodash';\nimport { EMPTY_OBJECT } from '../../../constants/utils';\n\nexport const isSending = state => get(state, 'auctioneers.contact.sending', false);\nexport const getSendingStatus = state => get(state, 'auctioneers.contact.data', EMPTY_OBJECT);\n","import { get } from 'lodash';\nimport { EMPTY_OBJECT } from '../../../constants/utils';\n\nexport const getSources = state => get(state, 'auctioneers.medias.data', EMPTY_OBJECT);\nexport const isSourcesLoading = state => get(state, 'auctioneers.medias.loading', false);\n","import { get } from 'lodash';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '../../../constants/utils';\n\nexport const progress = (state, { id }) => get(state, `auctioneers.sales.progress.${id}`, EMPTY_OBJECT);\nexport const isProgressLoading = state => get(state, 'auctioneers.sales.progress.loading', false);\n\nexport const top5 = (state, { id }) => get(state, `auctioneers.sales.top5.${id}.idlots`, EMPTY_ARRAY);\nexport const isTop5Loading = (state, { id }) => get(state, `auctioneers.sales.top5.${id}.loading`, false);\n\nexport const geo = (state, { id }) => get(state, `auctioneers.sales.geo.${id}.data`, EMPTY_ARRAY);\nexport const isGeoLoading = (state, { id }) => get(state, `auctioneers.sales.geo.${id}.loading`, false);\n\nexport const push = (state, { id }) => get(state, `auctioneers.sales.push.${id}`, 0);\nexport const isPushLoading = state => get(state, 'auctioneers.sales.push.loading', false);\n\nexport const show = (state, { id }) => get(state, `auctioneers.sales.show.${id}`, 0);\nexport const isShowLoading = state => get(state, 'auctioneers.sales.show.loading', false);\n","import { get } from 'lodash';\nimport { EMPTY_OBJECT } from '../../../constants/utils';\n\nexport const stats = state => get(state, 'auctioneers.stats', EMPTY_OBJECT);\nexport const areStatsLoading = state => get(state, 'auctioneers.stats.loading', false);\n","import { get, pick } from 'lodash';\nimport { EMPTY_OBJECT } from '../../constants/utils';\n\nexport const areEntitiesLoading = (state, { entityName }) => get(state, `dbEntities.${entityName}.loading`, false);\nexport const getAllEntities = (state, { entityName }) => get(state, `dbEntities.${entityName}.data`, EMPTY_OBJECT);\nexport const getEntity = (state, { entityName, id }) => get(getAllEntities(state, { entityName }), id);\n\nexport const getAllLots = state => get(state, 'dbEntities.lots.data', EMPTY_OBJECT);\nexport const getAllSales = state => get(state, 'dbEntities.sales.data', EMPTY_OBJECT);\nexport const getAllArtists = state => get(state, 'dbEntities.artists.data', EMPTY_OBJECT);\nexport const getAllClassifieds = state => get(state, 'dbEntities.classifieds.data', EMPTY_OBJECT);\nexport const getAllStores = state => get(state, 'dbEntities.stores.data', EMPTY_OBJECT);\nexport const getAllAuctioneers = state => get(state, 'dbEntities.auctioneers.data', EMPTY_OBJECT);\nexport const getAllCategories = state => get(state, 'dbEntities.categories.data', EMPTY_OBJECT);\nexport const getAllTechniques = state => get(state, 'dbEntities.techniques.data', EMPTY_OBJECT);\nexport const getAllCountries = state => get(state, 'dbEntities.countries.data', EMPTY_OBJECT);\nexport const getAllLotartistassociationtypes = state => get(state, 'dbEntities.lotartistassociationtypes.data', EMPTY_OBJECT);\n\nexport const areSalesLoading = state => get(state, 'dbEntities.sales.loading', false);\nexport const areArtistsLoading = state => get(state, 'dbEntities.artists.loading', false);\nexport const isFreeArtistLoading = state => get(state, 'dbEntities.free.artist.loading', false);\nexport const areCategoriesLoading = state => get(state, 'dbEntities.categories.loading', false);\nexport const areTechniquesLoading = state => get(state, 'dbEntities.techniques.loading', false);\nexport const areCountriesLoading = state => get(state, 'dbEntities.countries.loading', false);\nexport const areLotartistassociationtypesLoading = state => get(state, 'dbEntities.countries.loading', false);\nexport const areLotsLoading = state => get(state, 'dbEntities.lots.loading', false);\nexport const isFreeLotLoading = state => get(state, 'dbEntities.free.lot.loading', false);\nexport const areClassifiedsLoading = state => get(state, 'dbEntities.classifieds.loading', false);\n\nexport const getCountries = (state, { ids }) => pick(getAllCountries(state), ids);\n\nexport const getIdFreeLot = state => get(state, 'dbEntities.free.lot.id');\nexport const getLot = (state, { id }) => get(getAllLots(state), id);\nexport const getClassified = (state, { id }) => get(getAllClassifieds(state), id);\nexport const getSale = (state, { id }) => get(getAllSales(state), id);\nexport const getIdFreeArtist = state => get(state, 'dbEntities.free.artist.id');\nexport const getArtist = (state, { id }) => get(getAllArtists(state), id);\nexport const getStore = (state, { id }) => get(getAllStores(state), id);\nexport const getAuctioneer = (state, { id }) => get(getAllAuctioneers(state), id);\nexport const getCategory = (state, { id }) => get(getAllCategories(state), id);\nexport const getTechnique = (state, { id }) => get(getAllTechniques(state), id);\nexport const getCountry = (state, { id }) => get(getAllCountries(state), id);\nexport const getLotartistassociationtype = (state, { id }) => get(getAllLotartistassociationtypes(state), id);\n\nexport const areClassifiedsError = state => get(state, 'dbEntities.classifieds.error', null);\n\nexport const getMessage = (state, { id }) => get(getAllEntities(state, { entityName: 'messages' }), id);\nexport const getAllMessagetype = state => getAllEntities(state, { entityName: 'messagetypes' });\n","import { get } from 'lodash';\nimport { createSelector } from 'reselect';\nimport { getLang } from '../preferences';\nimport {\n FUTURE,\n HOME_PAGE,\n FUTURE_NOT_PARTNER,\n PAST,\n PAST_NOT_PARTNER,\n DEFAULT_COUNTRY_FILTER,\n DEFAULT_DATE_START_FILTER,\n DEFAULT_DATE_EXPIRE_FILTER,\n DEFAULT_FILTERS,\n DEFAULT_PAGE_FILTER,\n PER_PAGE,\n} from '../../../constants/events';\n\nimport { noFalsy } from '../../../utils/common/filters';\nimport { EMPTY_ARRAY } from '../../../constants/utils';\n\nconst getEvents = state => state.events;\nexport const getStore = state => get(state, 'events.store.data');\nexport const isStoreLoading = state => get(state, 'events.store.loading');\n\nexport const getFilters = state => get(state, 'events.filters');\nexport const getCountriesStore = state => get(state, 'events.countries');\n\nexport const getEventDetails = state => get(state, 'events.details');\nexport const getMediasStore = state => get(state, 'events.medias');\n\nexport const populateIdsFromStore = ({ ids, store }) => {\n if (!ids || ids.length <= 0) return EMPTY_ARRAY;\n return ids.map(id => get(store, `${id}`)).filter(noFalsy);\n};\n\n// Filter on country\nexport const getCountryFilter = createSelector(getFilters, filters => get(filters, 'country'));\nexport const getDatesFilter = createSelector(getFilters, filters => get(filters, 'dates'));\nexport const getPageFilter = createSelector(getFilters, filters => get(filters, 'page') || 1);\n\nexport const getEventsFilters = createSelector(\n getCountryFilter,\n getDatesFilter,\n (store, { page } = {}) => page || getPageFilter(store),\n (country, dates = {}, page) => {\n let filters = '';\n const { from, to } = dates;\n filters += country ? `country#${country}` : DEFAULT_COUNTRY_FILTER;\n filters += '&';\n filters += from ? `from#${from}` : DEFAULT_DATE_START_FILTER;\n filters += '&';\n filters += to ? `to#${to}` : DEFAULT_DATE_EXPIRE_FILTER;\n filters += '&';\n filters += page ? `page#${page}` : DEFAULT_PAGE_FILTER;\n return filters;\n },\n);\n\n// Events\n// // Futures\nexport const getFuturesStore = createSelector(getEvents, getEventsFilters, (events, filters) => get(events, `${FUTURE}.${filters}`));\nexport const areFuturesLoading = createSelector(getFuturesStore, store => get(store, 'loading'));\nexport const getFuturesIds = createSelector(getFuturesStore, store => get(store, 'ids') || EMPTY_ARRAY);\nexport const getFuturesTotalCount = createSelector(getFuturesStore, store => get(store, 'totalCount'));\nexport const getFuturesIdsWithoutFilters = createSelector(getEvents, events => get(events, `${FUTURE}.${DEFAULT_FILTERS}.ids`));\nexport const getFutures = createSelector(getFuturesIds, getStore, (ids, store) => populateIdsFromStore({ ids, store }));\n\nexport const getCurrents = createSelector(getFutures, futures => {\n if (!futures || futures.length <= 0) return [];\n const today = new Date();\n return futures.filter(({ slug, dt_event_start: dtEventStart, dt_event_expire: dtEventExpire }) => !!slug && new Date(dtEventStart) <= today && new Date(dtEventExpire) >= today).slice();\n});\nexport const getUpcomings = createSelector(getFutures, futures => {\n if (!futures || futures.length <= 0) return [];\n const today = new Date();\n return futures.filter(({ slug, dt_event_start: dtEventStart }) => !!slug && new Date(dtEventStart) > today);\n});\n\nexport const getFuturesEventsPagesCount = createSelector(getFuturesTotalCount, futures => Math.ceil(futures / PER_PAGE));\n\n// // Not partner\nexport const getNotPartnersStore = createSelector(\n getEvents,\n store => getEventsFilters(store, { page: 1 }),\n (events, filters) => get(events, `${FUTURE_NOT_PARTNER}.${filters}`),\n);\nexport const areNotPartnersLoading = createSelector(getNotPartnersStore, store => get(store, 'loading'));\nexport const getNotPartnersIds = createSelector(getNotPartnersStore, store => get(store, 'ids'));\nexport const getNotPartnersTotalCount = createSelector(getNotPartnersStore, store => get(store, 'totalCount'));\nexport const getNotPartnersIdsWithoutFilters = createSelector(getEvents, events => get(events, `${FUTURE_NOT_PARTNER}.${DEFAULT_FILTERS}.ids`));\nexport const getNotPartners = createSelector(getNotPartnersIds, getStore, (ids, store) => populateIdsFromStore({ ids, store }));\n\n// // Past\nexport const getPastsStore = createSelector(getEvents, getEventsFilters, (events, filters) => get(events, `${PAST}.${filters}`));\nexport const arePastsLoading = createSelector(getPastsStore, store => get(store, 'loading'));\nexport const getPastsIds = createSelector(getPastsStore, getPageFilter, (store, page) => {\n const ids = get(store, 'ids') || [];\n if (ids.length > (page - 1) * PER_PAGE) {\n return ids.slice((page - 1) * PER_PAGE, PER_PAGE);\n }\n return ids;\n});\nexport const getPastsTotalCount = createSelector(getPastsStore, store => get(store, 'totalCount'));\nexport const getPastsIdsWithoutFilters = createSelector(getEvents, events => get(events, `${PAST}.${DEFAULT_FILTERS}.ids`));\nexport const getPasts = createSelector(getPastsIds, getStore, (ids, store) => populateIdsFromStore({ ids, store }));\n\nexport const getPastsEventsPagesCount = createSelector(getPastsTotalCount, pasts => Math.ceil(pasts / PER_PAGE));\n\n// // Past not partner\nexport const getPastsNotPartnersStore = createSelector(\n getEvents,\n store => getEventsFilters(store, { page: 1 }),\n (events, filters) => get(events, `${PAST_NOT_PARTNER}.${filters}`),\n);\nexport const arePastsNotPartnersLoading = createSelector(getPastsNotPartnersStore, store => get(store, 'loading'));\nexport const getPastsNotPartnersIds = createSelector(getPastsNotPartnersStore, store => get(store, 'ids'));\nexport const getPastsNotPartnersTotalCount = createSelector(getPastsNotPartnersStore, store => get(store, 'totalCount'));\nexport const getPastsNotPartnersIdsWithoutFilters = createSelector(getEvents, events => get(events, `${PAST_NOT_PARTNER}.${DEFAULT_FILTERS}.ids`));\nexport const getPastsNotPartners = createSelector(getPastsNotPartnersIds, getStore, (ids, store) => populateIdsFromStore({ ids, store }));\n\n// // Homepage\nexport const getHPEventsStore = createSelector(getEvents, events => get(events, `${HOME_PAGE}.${DEFAULT_FILTERS}`));\nexport const areHPEventsLoading = createSelector(getHPEventsStore, store => get(store, 'loading'));\nexport const getHPEventsIds = createSelector(getHPEventsStore, store => get(store, 'ids'));\nexport const getHPEvents = createSelector(getHPEventsIds, getStore, (ids, store) => populateIdsFromStore({ ids, store }));\n\n// Event details\nexport const getSelectedEventId = createSelector(getEventDetails, details => get(details, 'selectedEvent'));\n\nexport const getSelectedEvent = createSelector(getEventDetails, getSelectedEventId, (details, selectedEventId) => get(details, `${selectedEventId}.data`));\n\nexport const isSelectedEventLoading = createSelector(getEventDetails, getSelectedEventId, (details, selectedEventId) => get(details, `${selectedEventId}.loading`));\n\n// Wordpress\n// // Data\nexport const getWPData = createSelector(\n getEventDetails,\n getSelectedEventId,\n getLang,\n (details, selectedEventId, lang) => get(details, `${selectedEventId}.WP/${lang}.data`) || get(details, `${selectedEventId}.WP/en.data`),\n // if WP/{lang} is not populated, we try WP/en as default\n);\nexport const isWPDataLoading = createSelector(getEventDetails, getSelectedEventId, getLang, (details, selectedEventId, lang) => get(details, `${selectedEventId}.WP/${lang}.loading`));\n\n// // Media\nexport const getWPMedia = (state, { idmedia } = {}) => get(getMediasStore(state), `${idmedia}.data`);\nexport const isWPMediaLoading = (state, { idmedia } = {}) => get(getMediasStore(state), `${idmedia}.loading`);\n\n// // // Media from slug\nexport const getIdmediaFromSlug = (state, { slug } = {}) => get(getMediasStore(state), `bySlug.${slug}.idmedia`);\n\nexport const getWPMediaFromSlug = (state, { slug } = {}) => {\n const idmedia = getIdmediaFromSlug(state, { slug });\n if (!idmedia) return;\n return get(getEvents(state), `medias.${idmedia}.data`);\n};\nexport const isWPMediaFromSlugLoading = (state, { slug } = {}) => {\n const idmedia = getIdmediaFromSlug(state, { slug });\n if (!idmedia) return;\n return get(getEvents(state), `medias.${idmedia}.loading`);\n};\n\nexport const getFormatThumbnailLink = (state, { slug } = {}) => {\n const media = getWPMediaFromSlug(state, { slug });\n return get(media, 'formats.thumbnail.url');\n};\nexport const getFormatMediumLink = (state, { slug } = {}) => {\n const media = getWPMediaFromSlug(state, { slug });\n return get(media, 'formats.full.url');\n};\nexport const getOriginalSizeLink = (state, { slug } = {}) => {\n const media = getWPMediaFromSlug(state, { slug });\n return get(media, 'source');\n};\n\n// Country label(s)\nexport const getCountryLabels = (state, { idcountry } = {}) => get(getCountriesStore(state), `${idcountry}.data`);\nexport const getCountryLabel = (state, { idcountry } = {}) => {\n const lang = getLang(state);\n return get(getCountriesStore(state), `${idcountry}.data.${lang}`);\n};\nexport const areCountryLabelsLoading = (state, { idcountry } = {}) => get(getCountriesStore(state), `${idcountry}.loading`);\nconst compareIds = (id1, id2) => parseInt(id1, 10) === parseInt(id2, 10);\n\nexport const getCountriesOptions = (state, { isPastList = false } = {}) => {\n const countries = getCountriesStore(state);\n const lang = getLang(state);\n\n const store = getStore(state);\n\n if (!countries) return EMPTY_ARRAY;\n const countriesArray = Object.entries(countries);\n if (countriesArray.length <= 0) return EMPTY_ARRAY;\n\n let ids = [];\n\n if (isPastList) {\n const pasts = getPastsIdsWithoutFilters(state) || [];\n const pastsNotPartners = getPastsNotPartnersIdsWithoutFilters(state) || [];\n ids = [...pasts, ...pastsNotPartners];\n } else {\n const futures = getFuturesIdsWithoutFilters(state) || [];\n const notPartners = getNotPartnersIdsWithoutFilters(state) || [];\n ids = [...futures, ...notPartners];\n }\n\n const events = populateIdsFromStore({ ids, store });\n\n return countriesArray\n .filter(([id]) => events.find(({ idcountry }) => compareIds(idcountry, id)))\n .map(([key, { data }]) => ({\n value: key,\n label: get(data, lang),\n }));\n};\n","import { get } from 'lodash';\nimport { createSelector } from 'reselect';\nimport { getCurrency } from '../preferences';\n\nexport const getArtist = state => state.indexes.artist;\n\nexport const getIdartist = state => state.indexes.artist.idartist;\n\nexport const isArtistInfosLoading = (state, { idartist = getIdartist(state) } = {}) => get(getArtist(state), `${idartist}.infos.loading`);\nexport const getArtistInfos = (state, { idartist = getIdartist(state) } = {}) => get(getArtist(state), `${idartist}.infos.data`);\n\nexport const getArtistName = createSelector(getArtist, getIdartist, (artist, idartist) => get(artist, `${idartist}.infos.data.name`));\n\nexport const getArtistURL = createSelector(getArtist, getIdartist, (artist, idartist) => get(artist, `${idartist}.infos.data.url`));\n\n// artist options\nexport const isArtistOptionsLoading = createSelector(getArtist, getIdartist, getCurrency, (artist, idartist, currency) => get(artist, `${idartist}.${currency}.options.loading`));\n\nexport const getArtistOptions = createSelector(getArtist, getIdartist, getCurrency, (artist, idartist, currency) => get(artist, `${idartist}.${currency}.options.data`));\n\n// artist' categories\nexport const isCategoriesLoading = isArtistOptionsLoading;\n\nexport const getCategories = createSelector(getArtistOptions, artistOptions => get(artistOptions, 'categories'));\n\n// artist' countries\nexport const isCountriesLoading = createSelector(getArtist, getIdartist, (artist, idartist) => get(artist, `${idartist}.countries.loading`));\n\nexport const getCountries = createSelector(getArtist, getIdartist, (artist, idartist) => get(artist, `${idartist}.countries.data`));\n\n// artist' visible years\n// isVariableLoading ou areVariablesLoading ?\nexport const isVisibleYearsLoading = createSelector(getArtist, getIdartist, (artist, idartist) => get(artist, `${idartist}.visibleYears.loading`));\n\nexport const getVisibleYears = createSelector(getArtist, getIdartist, (artist, idartist) => get(artist, `${idartist}.visibleYears.data`));\n\nexport const getMaxVisibleYear = createSelector(getArtist, getIdartist, (artist, idartist) => {\n const maxYear = get(artist, `${idartist}.visibleYears.data.maxYear`);\n return maxYear ? parseInt(maxYear, 10) + 1 : undefined;\n});\n\n// shouldDisplay\nexport const isDisplayLoading = (state, { idartist = getIdartist(state) } = {}) => get(getArtist(state), `${idartist}.shouldDisplay.loading`);\n\nexport const getAllShouldDisplay = (state, { idartist = getIdartist(state) } = {}) => get(getArtist(state), `${idartist}.shouldDisplay.data`);\n\nexport const isSubscriptionNeeded = createSelector(getArtist, getIdartist, (artist, idartist) => get(artist, `${idartist}.shouldDisplay.data.subscriptionNeeded`));\n\nexport const hasIndexesSubscription = createSelector(getArtist, getIdartist, (artist, idartist) => get(artist, `${idartist}.shouldDisplay.data.hasIndexesSubscription`));\n","/* eslint-disable */\nimport { get } from 'lodash';\nimport { createSelector } from 'reselect';\nimport { getCurrency } from '../preferences';\nimport { getIdartist } from './artist';\n\nexport const createChartKey = ({ chartTab, idcategory = '', idcountry = '', minPrice, maxPrice }) => `${chartTab}-${idcategory}-${idcountry}-${Number.parseInt(minPrice, 10) || ''}-${Number.parseInt(maxPrice, 10) || ''}`;\n\nconst getChronological = state => state.indexes.chronological;\n\nexport const getChronologicalDisplayedChartTab = state => state.indexes.chronological.displayedChartTab;\nexport const getChronologicalOptions = state => state.indexes.chronological.options;\n\n// Chronological data\nexport const isChronologicalDataLoading = createSelector(\n getChronological,\n getIdartist,\n getCurrency,\n getChronologicalDisplayedChartTab,\n getChronologicalOptions,\n (chronological, idartist, currency, chartTab, options) => get(chronological, `${idartist}.${currency}.${createChartKey({ chartTab, ...options })}.loading`),\n);\n\nexport const getChronologicalData = createSelector(\n getChronological,\n getIdartist,\n getCurrency,\n getChronologicalDisplayedChartTab,\n getChronologicalOptions,\n (chronological, idartist, currency, chartTab, options) => get(chronological, `${idartist}.${currency}.${createChartKey({ chartTab, ...options })}.data`),\n);\n","/* eslint-disable */\nimport { get } from 'lodash';\nimport { createSelector } from 'reselect';\nimport { getIdartist } from './artist';\nimport { getCurrency } from '../preferences';\n\nexport const createChartKey = ({ chartTab, idcategory = '', minYear, maxYear, minPrice, maxPrice }) =>\n `${chartTab}-${idcategory}-${Number.parseInt(minYear, 10) || ''}-${Number.parseInt(maxYear, 10) || ''}-${Number.parseInt(minPrice, 10) || ''}-${Number.parseInt(maxPrice, 10) || ''}`;\n\nconst getGeographical = state => state.indexes.geographical;\n\nexport const getGeographicalDisplayedChartTab = state => state.indexes.geographical.displayedChartTab;\nexport const getGeographicalDisplayedChartType = state => state.indexes.geographical.displayedChartType;\nexport const getGeographicalOptions = state => state.indexes.geographical.options;\n\n// Price segments data\nexport const isGeographicalDataLoading = createSelector(\n getGeographical,\n getIdartist,\n getCurrency,\n getGeographicalDisplayedChartTab,\n getGeographicalOptions,\n (geographical, idartist, currency, chartTab, options) => get(geographical, `${idartist}.${currency}.${createChartKey({ chartTab, ...options })}.loading`),\n);\n\nexport const getGeographicalData = createSelector(\n getGeographical,\n getIdartist,\n getCurrency,\n getGeographicalDisplayedChartTab,\n getGeographicalOptions,\n (geographical, idartist, currency, chartTab, options) => get(geographical, `${idartist}.${currency}.${createChartKey({ chartTab, ...options })}.data`),\n);\n","/* eslint-disable */\nimport { get } from 'lodash';\nimport { createSelector } from 'reselect';\nimport { getIdartist } from './artist';\nimport { getCurrency } from '../preferences';\n\nexport const createChartKey = ({ chartTab, idcountry = '', minYear, maxYear, minPrice, maxPrice }) =>\n `${chartTab}-${idcountry}-${Number.parseInt(minYear, 10) || ''}-${Number.parseInt(maxYear, 10) || ''}-${Number.parseInt(minPrice, 10) || ''}-${Number.parseInt(maxPrice, 10) || ''}`;\n\nconst getMedium = state => state.indexes.medium;\n\nexport const getMediumDisplayedChartTab = state => state.indexes.medium.displayedChartTab;\nexport const getMediumDisplayedChartType = state => state.indexes.medium.displayedChartType;\nexport const getMediumOptions = state => state.indexes.medium.options;\n\n// Price segments data\nexport const isMediumDataLoading = createSelector(\n getMedium,\n getIdartist,\n getCurrency,\n getMediumDisplayedChartTab,\n getMediumOptions,\n (medium, idartist, currency, chartTab, options) => get(medium, `${idartist}.${currency}.${createChartKey({ chartTab, ...options })}.loading`),\n);\n\nexport const getMediumData = createSelector(\n getMedium,\n getIdartist,\n getCurrency,\n getMediumDisplayedChartTab,\n getMediumOptions,\n (medium, idartist, currency, chartTab, options) => get(medium, `${idartist}.${currency}.${createChartKey({ chartTab, ...options })}.data`),\n);\n","import { isSameDay } from 'date-fns/isSameDay';\nimport { formatFns } from '../dates/format';\n\nexport function normalizeData(data, options) {\n if (!Array.isArray(data) || data.length < 1) {\n return [];\n }\n // filter on data with year >= minYear\n let filteredData = data;\n if (options && options.minYear) {\n filteredData = data.filter(item => parseInt(formatFns(new Date(item.date), 'yyyy'), 10) >= parseInt(options.minYear, 10));\n }\n // to base 100\n const coeff = parseFloat(100 / filteredData[0].value);\n return filteredData.map(item => ({ ...item, value: parseFloat(item.value) * coeff }));\n}\n\nexport function valueAt({ values, date }) {\n const itemFound = values.find(el => isSameDay(new Date(el.date), new Date(date)));\n if (itemFound && itemFound.value) {\n return Number.parseFloat(itemFound.value.toFixed(2));\n }\n return null;\n}\n","/* eslint-disable function-paren-newline */\n\nimport { get } from 'lodash';\nimport { createSelector } from 'reselect';\nimport { getIdartist, getArtistOptions, getCategories, getArtist } from './artist';\nimport { getCurrency } from '../preferences';\nimport { normalizeData, valueAt } from '../../../utils/indexes/priceIndex';\nimport { formatFns } from '../../../utils/dates/format';\n\nexport const defaultMinYear = 2000;\n\nexport const createChartKey = ({ minYear, state }) => {\n if (!minYear && state) {\n const { minYearIndex } = getArtistOptions(state) || {};\n if (minYearIndex) return `${parseInt(minYearIndex, 10) + 1}`;\n }\n return `${minYear || defaultMinYear}`;\n};\n\nconst getPriceIndex = state => state.indexes.priceIndex;\nexport const getPriceIndexOptions = state => state.indexes.priceIndex.options;\n\n// should display\nexport const shouldDisplayPriceIndex = createSelector(getArtist, getIdartist, (artist, idartist) => get(artist, `${idartist}.shouldDisplay.data.priceIndex`));\n\nexport const getValuesWithArtistAndCurrency = createSelector(getPriceIndex, getIdartist, getCurrency, (priceIndex, idartist, currency) => get(priceIndex, `${idartist}.${currency}`));\n\n// indexed categories\nexport const getIndexedCategories = createSelector(getCategories, categories => categories && categories.filter(category => category.isIndexed));\n\n// artist data\nexport const isArtistIndexDataLoading = createSelector(getValuesWithArtistAndCurrency, artistCurrencyState => get(artistCurrencyState, 'artist.loading'));\nexport const getArtistIndexData = createSelector(getValuesWithArtistAndCurrency, artistCurrencyState => get(artistCurrencyState, 'artist.data'));\n\n// compared artist\nexport const isComparedArtistIndexDataLoading = createSelector(getPriceIndex, getPriceIndexOptions, getCurrency, (priceIndex, options, currency) =>\n get(priceIndex, `${options && options.idartist}.${currency}.artist.loading`),\n);\n\nexport const getComparedArtistIndexData = createSelector(getPriceIndex, getPriceIndexOptions, getCurrency, (priceIndex, options, currency) => get(priceIndex, `${options && options.idartist}.${currency}.artist.data`));\n\nexport const getComparedArtistName = createSelector(getArtist, getPriceIndexOptions, (artist, options) => get(artist, `${options && options.idartist}.infos.data.name`));\n\nexport const shouldDisplayComparedArtist = createSelector(getArtist, getPriceIndexOptions, (artist, options) => get(artist, `${options && options.idartist}.shouldDisplay.data.subscriptionNeeded`));\n\n// stock index data\nexport const isStockIndexDataLoading = createSelector(getValuesWithArtistAndCurrency, getPriceIndexOptions, (artistCurrencyState, options) => get(artistCurrencyState, `${options && options.stockIndex}.loading`));\nexport const getStockIndexData = createSelector(getValuesWithArtistAndCurrency, getPriceIndexOptions, (artistCurrencyState, options) => get(artistCurrencyState, `${options && options.stockIndex}.data`));\n\n// stock index data\nexport const isCategoryDataLoading = createSelector(getValuesWithArtistAndCurrency, getPriceIndexOptions, (artistCurrencyState, options) =>\n get(artistCurrencyState, `categories.${options && options.idcategory}.loading`),\n);\nexport const getCategoryData = createSelector(getValuesWithArtistAndCurrency, getPriceIndexOptions, (artistCurrencyState, options) => get(artistCurrencyState, `categories.${options && options.idcategory}.data`));\n\n// merged index loading\nexport const isMergedIndexDataLoading = createSelector(\n isArtistIndexDataLoading,\n isComparedArtistIndexDataLoading,\n isStockIndexDataLoading,\n isCategoryDataLoading,\n (artistLoading, comparedArtistLoading, stockLoading, categoryLoading) => artistLoading || comparedArtistLoading || stockLoading || categoryLoading,\n);\nexport const getMergedData = createSelector(\n getPriceIndexOptions,\n getArtistIndexData,\n getComparedArtistIndexData,\n getStockIndexData,\n getCategoryData,\n (options, artistData, comparedArtistData, stockData, categoryData) => {\n if (!Array.isArray(artistData)) {\n return null;\n }\n\n const normalizedArtistData = normalizeData(artistData, options);\n const normalizedStockIndexData = Array.isArray(stockData) ? normalizeData(stockData, options) : null;\n const normalizedCategoryData = Array.isArray(categoryData) ? normalizeData(categoryData, options) : null;\n const normalizedComparedArtistData = Array.isArray(comparedArtistData) ? normalizeData(comparedArtistData, options) : null;\n\n return normalizedArtistData.map(item => {\n const toReturn = {\n date: formatFns(new Date(item.date), 'P'),\n artist: Number.parseFloat(item.value.toFixed(2)),\n };\n\n if (options) {\n const { stockIndex, idcategory, idartist } = options;\n if (stockIndex && normalizedStockIndexData) {\n toReturn.stockIndex = valueAt({\n values: normalizedStockIndexData,\n date: item.date,\n });\n }\n if (idcategory && normalizedCategoryData) {\n toReturn[`category-${idcategory}`] = valueAt({\n values: normalizedCategoryData,\n date: item.date,\n });\n }\n if (idartist && normalizedComparedArtistData) {\n toReturn[`artist-${idartist}`] = valueAt({\n values: normalizedComparedArtistData,\n date: item.date,\n });\n }\n }\n\n return toReturn;\n });\n },\n);\nexport const getMergedVisibleData = createSelector(\n getPriceIndexOptions,\n getArtistIndexData,\n getComparedArtistIndexData,\n getStockIndexData,\n getCategoryData,\n (options = {}, artistData, comparedArtistData, stockData, categoryData) => ({\n artist: Array.isArray(artistData),\n comparedArtist: Boolean(options.idartist) && Array.isArray(comparedArtistData),\n stockIndex: Boolean(options.stockIndex) && Array.isArray(stockData),\n category: Boolean(options.idcategory) && Array.isArray(categoryData),\n }),\n);\n","/* eslint-disable */\nimport { get } from 'lodash';\nimport { createSelector } from 'reselect';\nimport { getIdartist } from './artist';\nimport { getCurrency } from '../preferences';\n\nexport const createChartKey = ({ chartTab, idcategory = '', idcountry = '', minYear, maxYear, minPrice, maxPrice }) =>\n `${chartTab}-${idcategory}-${idcountry}-${Number.parseInt(minYear, 10) || ''}-${Number.parseInt(maxYear, 10) || ''}-${Number.parseInt(minPrice, 10) || ''}-${Number.parseInt(maxPrice, 10) || ''}`;\n\nconst getPriceSegments = state => state.indexes.priceSegments;\n\nexport const getPriceSegmentsDisplayedChartTab = state => state.indexes.priceSegments.displayedChartTab;\nexport const getPriceSegmentsDisplayedChartType = state => state.indexes.priceSegments.displayedChartType;\nexport const getPriceSegmentsOptions = state => state.indexes.priceSegments.options;\n\n// Price segments data\nexport const isPriceSegmentsDataLoading = createSelector(\n getPriceSegments,\n getIdartist,\n getCurrency,\n getPriceSegmentsDisplayedChartTab,\n getPriceSegmentsOptions,\n (priceSegments, idartist, currency, chartTab, options) => get(priceSegments, `${idartist}.${currency}.${createChartKey({ chartTab, ...options })}.loading`),\n);\n\nexport const getPriceSegmentsData = createSelector(\n getPriceSegments,\n getIdartist,\n getCurrency,\n getPriceSegmentsDisplayedChartTab,\n getPriceSegmentsOptions,\n (priceSegments, idartist, currency, chartTab, options) => get(priceSegments, `${idartist}.${currency}.${createChartKey({ chartTab, ...options })}.data`),\n);\n","import { get } from 'lodash';\nimport { createSelector } from 'reselect';\nimport { getIdartist } from './artist';\nimport { getCurrency } from '../preferences';\n\nconst getRanking = state => state.indexes.ranking;\n\nexport const isRankingDataLoading = createSelector(getRanking, getIdartist, getCurrency, (ranking, idartist, currency) => get(ranking, `${idartist}.${currency}.loading`));\n\nexport const getRankingData = createSelector(getRanking, getIdartist, getCurrency, (ranking, idartist, currency) => {\n const data = get(ranking, `${idartist}.${currency}.data`);\n if (data === undefined) {\n return undefined;\n }\n return Object.entries(data).sort(([yearA], [yearB]) => yearB - yearA);\n});\n","import { get } from 'lodash';\nimport { createSelector } from 'reselect';\nimport { getCurrency } from '../preferences';\nimport { getIdartist } from './artist';\n\nconst getSummary = state => state.indexes.summary;\n\n// Summary data\nexport const isSummaryDataLoading = createSelector(getSummary, getIdartist, getCurrency, (summary, idartist, currency) => get(summary, `${idartist}.${currency}.loading`));\n\nexport const getSummaryData = createSelector(getSummary, getIdartist, getCurrency, (summary, idartist, currency) => get(summary, `${idartist}.${currency}.data`));\n","import { get } from 'lodash';\n\nexport const getTopStores = state => get(state.marketplace.stores.top, 'result');\nexport const getStore = (state, { idstore }) => get(state.marketplace.stores.list[idstore], 'store');\nexport const getStoreLoading = (state, { idstore }) => get(state.marketplace.stores.list[idstore], 'loading');\nexport const getErrorForStore = (state, { idstore }) => get(state.marketplace.stores.list[idstore], 'error');\nexport const getUpdateStoreImage = (state, { idstore, imageSha1 }) => {\n if (state.marketplace.stores.list[idstore].store.images) {\n const image = state.marketplace.stores.list[idstore].store.images.find(img => img.id === imageSha1);\n if (image) {\n return image.loading;\n }\n }\n return false;\n};\nexport const getErrorCodeForStoreImage = (state, { idstore, imageSha1 }) => {\n if (state.marketplace.stores.list[idstore].store.images) {\n const image = state.marketplace.stores.list[idstore].store.images.find(img => img.id === imageSha1);\n if (image) {\n return image.errorCode;\n }\n }\n return null;\n};\n","import { get } from 'lodash';\nimport { createSelector } from 'reselect';\nimport { COUNTRY_REPARTITION_KEY, BEST_CLASSIFIEDS, VIEWED_CLASSIFIEDS } from '../../../constants/marketplace/store/stats';\nimport { formatFns } from '../../../../utils/dates/format';\n\nexport const getDisplayedPeriod = state => get(state.marketplace.stores.stats, 'displayedPeriod');\n\nexport const isCountryRepartitionLoading = state => get(state.marketplace.stores.stats, `${COUNTRY_REPARTITION_KEY}.loading`);\nexport const isCountryRepartitionLoaded = state => get(state.marketplace.stores.stats, `${COUNTRY_REPARTITION_KEY}.data`) || get(state.marketplace.stores.stats, `${COUNTRY_REPARTITION_KEY}.error`);\nexport const getCountryRepartition = state => get(state.marketplace.stores.stats, `${COUNTRY_REPARTITION_KEY}.data`);\nexport const getPercentageCountryRepartition = createSelector(getCountryRepartition, countryRepartition => {\n if (Array.isArray(countryRepartition)) {\n const total = countryRepartition.reduce((sum, { value }) => sum + value, 0);\n return countryRepartition.map(row => ({ ...row, value: row.value / total })).sort(({ value: valueA }, { value: valueB }) => valueB - valueA);\n }\n return countryRepartition;\n});\n\nexport const isViewedClassifiedsLoading = state => get(state.marketplace.stores.stats, `${VIEWED_CLASSIFIEDS}.loading`);\nexport const isViewedClassifiedsLoaded = state => get(state.marketplace.stores.stats, `${VIEWED_CLASSIFIEDS}.data`) || get(state.marketplace.stores.stats, `${VIEWED_CLASSIFIEDS}.error`);\nexport const getViewedClassifieds = state => get(state.marketplace.stores.stats, `${VIEWED_CLASSIFIEDS}.data`);\nexport const getPeriods = createSelector(isViewedClassifiedsLoaded, getViewedClassifieds, (loaded, viewedClassifieds) => {\n if (loaded === undefined || viewedClassifieds === undefined) {\n return [];\n }\n return viewedClassifieds.filter(({ count }, index) => index === viewedClassifieds.length - 1 || count > 0).map(({ start, end }) => ({ start, end }));\n});\n\nexport const hasViewedClassifiedsError = state => get(state.marketplace.stores.stats, `${VIEWED_CLASSIFIEDS}.error`) !== undefined;\n\nexport const createBestClassifiedsKey = ({ startDate, endDate }) => `${BEST_CLASSIFIEDS}.${startDate}-${endDate}`;\nexport const isBestClassifiedsLoading = (state, { startDate, endDate = formatFns(new Date(), 'yyyy-MM-dd') }) => get(state.marketplace.stores.stats, `${createBestClassifiedsKey({ startDate, endDate })}.loading`);\nexport const isBestClassifiedsLoaded = (state, { startDate, endDate = formatFns(new Date(), 'yyyy-MM-dd') }) =>\n get(state.marketplace.stores.stats, `${createBestClassifiedsKey({ startDate, endDate })}.data`) || get(state.marketplace.stores.stats, `${createBestClassifiedsKey({ startDate, endDate })}.error`);\nexport const getBestClassifieds = (state, { startDate, endDate = formatFns(new Date(), 'yyyy-MM-dd') }) => get(state.marketplace.stores.stats, `${createBestClassifiedsKey({ startDate, endDate })}.data`);\n","import { get } from 'lodash';\nimport { createSelector } from 'reselect';\nimport { getAllArtists } from '../dbEntities';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '../../../constants/utils';\n\nconst artistsFromState = state => get(state, 'myartprice.data.artists', EMPTY_OBJECT);\nconst artistFromState = (state, { idartist }) => get(artistsFromState(state), idartist);\nexport const areDataLoading = state => get(state, 'myartprice.data.loading');\nexport const areClassifiedsDataLoading = state => get(state, 'myartprice.data.favoriteClassified.loading');\nexport const areStoresDataLoading = state => get(state, 'myartprice.data.favoriteStore.loading');\n\nexport const getArtists = createSelector(artistsFromState, getAllArtists, (dataArtistsFromFavorites, artistdataFromDbEntities) => {\n const artists = [];\n if (dataArtistsFromFavorites) {\n Object.entries(dataArtistsFromFavorites).forEach(([id, data]) => {\n if (artistdataFromDbEntities[id]) {\n const artist = artistdataFromDbEntities[id];\n artists.push({\n ...artist,\n ...data,\n });\n }\n });\n }\n return artists;\n});\n\nconst artistsSorted = (artists, sort, direction) => {\n artists.sort((a, b) => {\n if (a[sort] > b[sort]) {\n return direction === 'asc' ? 1 : -1;\n }\n\n if (a[sort] < b[sort]) {\n return direction === 'asc' ? -1 : 1;\n }\n\n return 0;\n });\n return artists;\n};\n\nexport const getSortedArtists = (state, { sort = 'name_for_sorting', direction = 'asc' }) => {\n const artists = getArtists(state);\n return artistsSorted(artists, sort, direction);\n};\n\nexport const getSearchScope = state => get(state, 'myartprice.data.searchScope', '');\n\nexport const getIds = state => get(state, `myartprice.data.ids`, EMPTY_ARRAY);\n\nexport const getEntities = state => get(state, `myartprice.data.entities`, EMPTY_OBJECT);\n\nexport const getCurrentPage = state => get(state, `myartprice.data.page`, 1);\n\nexport const getTotalCount = state => get(state, `myartprice.data.totalCount`, 0);\n\nexport const getLoading = state => get(state, `myartprice.data.loading`, false);\n\nexport const getArtistParam = (state, { idartist, param }) => get(artistFromState(state, { idartist }), param);\n\nexport const getFavoriteLot = state => get(state, 'myartprice.data.favoriteLot.data', EMPTY_ARRAY);\n\nexport const getIsFavoritedLot = (state, idlot) => get(state, 'myartprice.data.favoriteLot.data', EMPTY_ARRAY).includes(idlot);\n\nexport const getFavoriteClassified = state => get(state, 'myartprice.data.favoriteClassified.data', EMPTY_ARRAY);\n\nexport const getFavoriteStore = state => get(state, 'myartprice.data.favoriteStore.data', EMPTY_ARRAY);\n\nexport const getFavoriteArtist = state => get(state, 'myartprice.data.favoriteArtist.data', EMPTY_ARRAY);\n\nexport const getLotSimilar = state => get(state, 'myartprice.data.similarLots.res', EMPTY_OBJECT);\n\nexport const getError = state => get(state, 'myartprice.data.error');\n\nexport const getLvl = state => get(state, 'myartprice.datas.lvl');\n","import { createSelector } from 'reselect';\nimport { get } from 'lodash';\nimport { getAllCategories } from '../dbEntities';\n\nexport const getSettings = state => get(state, 'myartprice.settings');\nexport const areCategoriesLoading = state => get(state, 'myartprice.settings.categories.loading');\nexport const getCategoriesParams = state => get(state, 'myartprice.settings.categories.data');\n\nexport const getParam = (state, { param }) => get(state, `myartprice.settings.${param}`);\n\nexport const getCategories = createSelector(getCategoriesParams, getAllCategories, (categoriesParams, allCategories) => {\n if (!categoriesParams || !allCategories) return [];\n const toReturn = [];\n Object.entries(categoriesParams).forEach(([idcategory, setting]) => toReturn.push({ ...allCategories[idcategory], include_in_push: setting }));\n return toReturn;\n});\n","import { get } from 'lodash';\nimport { SEARCH_ITEMS_PER_PAGE } from '../../constants/rails';\n\nexport const getArtistsViewFormat = state => get(state, 'preferences.artistsViewFormat');\nexport const getLotsViewFormat = state => get(state, 'preferences.lotsViewFormat');\nexport const getDimension = state => get(state, 'preferences.dimension');\nexport const getCurrency = state => get(state, 'preferences.currency')?.toLowerCase();\nexport const getFreshness = state => get(state, 'preferences.freshness');\nexport const getLang = state => get(state, 'preferences.lang');\nexport const getArtistLotsSectionOrder = state => get(state, 'preferences.artistLotsSectionOrder', 1);\nexport const getHideArtistFollowRecommendationsModaleUntil = state => get(state, 'preferences.hideArtistFollowRecommendationsModaleUntil');\nexport const getItemsPerpage = state => get(state, 'preferences.itemsPerPage', SEARCH_ITEMS_PER_PAGE[0]);\n","import { get, keys } from 'lodash';\nimport { getSettings } from './settings';\n\nexport const getThemes = state => get(state, 'subscriptions.physicproducts.data');\nexport const areThemesLoading = state => get(state, 'subscriptions.physicproducts.loading', false);\nexport const areThemesInitialized = state => keys(get(state, 'subscriptions.physicproducts.data')).length > 0;\nexport const areThemesUnavailable = state => (areThemesInitialized(state) && getThemes(state).new) === undefined;\n\nexport const getTheme = (state, { idtheme }) => {\n const { view } = getSettings(state);\n const themes = getThemes(state);\n\n if (!themes || !themes[view]) return null;\n\n return themes[view].products.filter(theme => theme.idtheme === idtheme)[0];\n};\n\nexport const getSelectedTheme = state => {\n const { selectedIdtheme } = getSettings(state);\n return getTheme(state, { idtheme: selectedIdtheme });\n};\n\nexport const getSelectedPhysicproduct = state => {\n const { selectedIdphysicproduct } = getSettings(state);\n if (!selectedIdphysicproduct) return null;\n\n const theme = getSelectedTheme(state);\n if (!theme) return null;\n\n return theme.physicproducts.filter(p => p.idp === selectedIdphysicproduct)[0];\n};\n\nexport const getPromocodeStatus = state => {\n const themes = getThemes(state);\n const { view } = getSettings(state);\n\n return get(themes, `${view}.promotion_from_promocode.status`, 1);\n};\n","import { get } from 'lodash';\n\nexport const getPromotion = (state, { id }) => get(state, `subscriptions.promotions.data.${id}`);\nexport const arePromotionLoading = state => get(state, 'subscriptions.promotions.loading');\n","import { get } from 'lodash';\n\nexport const getSettings = state => get(state, 'subscriptions.settings');\n","import { get } from 'lodash';\n\nexport const isLoading = state => get(state, 'subscriptions.stripe.loading');\nexport const getCustomer = state => get(state, 'subscriptions.stripe.customer');\nexport const getPk = state => get(state, 'subscriptions.stripe.pk');\n","/* eslint-disable no-use-before-define */\n/* eslint-disable no-param-reassign */\nimport { createSlice } from '@reduxjs/toolkit';\nimport { get, uniq } from 'lodash';\nimport {\n deleteLots as deleteLotsService,\n moveLots as moveLotsService,\n renameList as renameListService,\n getLists as getListsService,\n createList as createListService,\n addLots as addLotsService,\n deleteLists as deleteListsService,\n copyLots as copyLotsService,\n getDataList,\n} from '../../../services/wallet/customerlotslist';\nimport { updateSales } from '../../actions/dbEntities/sale';\nimport { updateLots } from '../../actions/dbEntities/lot';\nimport { updateArtists } from '../../actions/dbEntities/artist';\nimport { updateAuctioneers } from '../../actions/dbEntities/auctioneer';\nimport { updateTechniques } from '../../actions/dbEntities/technique';\nimport { updateCategories } from '../../actions/dbEntities/category';\nimport { setSessionStorage, getSessionStorage } from '../../../utils/storage';\nimport { onClient } from '../../../utils/ssr';\n\nconst CURRENT_SELECTION = 'LotsListsCurrentSelection';\nconst CURRENT_SELECTION_KEY = 'LotsListsCurrentSelectionKey';\n\nlet currentSelectionKey;\nlet currentSelection = {};\nif (onClient()) {\n currentSelection = getSessionStorage(CURRENT_SELECTION, {});\n currentSelectionKey = getSessionStorage(CURRENT_SELECTION_KEY, undefined);\n}\n\nconst accountLotsListsSlice = createSlice({\n name: 'accountLotsLists',\n initialState: {\n lists: {},\n listsOrderedIds: [],\n listsLoading: false,\n dataListLoading: false,\n currentSelectionKey,\n currentSelection,\n addAndCreateButtonsVisibility: false,\n },\n reducers: {\n clear(state) {\n const key = state.currentSelectionKey;\n if (!key) return;\n\n state.currentSelection[key] = [];\n setSessionStorage(CURRENT_SELECTION, state.currentSelection);\n },\n addLots(state, action) {\n const { ids } = action.payload;\n const key = state.currentSelectionKey;\n\n if (!key) return;\n\n state.currentSelection[key] = uniq([...state.currentSelection[key], ...ids]);\n setSessionStorage(CURRENT_SELECTION, state.currentSelection);\n },\n removeLot(state, action) {\n const key = state.currentSelectionKey;\n if (!key) return;\n\n const { id } = action.payload;\n state.currentSelection[key] = state.currentSelection[key].filter(selectedId => id !== selectedId);\n setSessionStorage(CURRENT_SELECTION, state.currentSelection);\n },\n removeLots(state, action) {\n const key = state.currentSelectionKey;\n if (!key) return;\n\n const { ids } = action.payload;\n state.currentSelection[key] = state.currentSelection[key].filter(selectedId => !ids.includes(selectedId));\n setSessionStorage(CURRENT_SELECTION, state.currentSelection);\n },\n setCurrentSelectionKey(state, action) {\n const { key } = action.payload;\n state.currentSelectionKey = key;\n setSessionStorage(CURRENT_SELECTION_KEY, key);\n },\n setListsLoading(state, action) {\n const { loading } = action.payload;\n state.listsLoading = loading;\n },\n setAddAndCreateButtonsVisibility(state, action) {\n state.addAndCreateButtonsVisibility = action.payload;\n },\n setDataListLoading(state, action) {\n const { loading } = action.payload;\n state.dataListLoading = loading;\n },\n updateList(state, action) {\n const { list } = action.payload;\n state.lists[list.id] = list;\n },\n setLists(state, action) {\n const { lists } = action.payload;\n state.lists = lists;\n },\n setListsOrderedId(state, action) {\n const { orderedIds } = action.payload;\n state.listsOrderedIds = orderedIds;\n },\n appendList(state, action) {\n const { list } = action.payload;\n state.lists = {\n ...state.lists,\n [list.id]: list,\n };\n },\n updateListLotCount(state, action) {\n const { lotsCount, id } = action.payload;\n state.lists[id].lotsCount = lotsCount;\n },\n setListLotsOrder(state, action) {\n const { sortedIdlots } = action.payload;\n state.sortedIdlots = sortedIdlots;\n },\n },\n});\n\nexport const {\n clear,\n removeLot,\n removeLots,\n addLots,\n setListsLoading,\n setDataListLoading,\n setLists,\n appendList,\n updateListLotCount,\n setListLotsOrder,\n updateList,\n setCurrentSelectionKey,\n setListsOrderedId,\n setAddAndCreateButtonsVisibility,\n} = accountLotsListsSlice.actions;\n\n/* Call to services */\n\nexport const initializeWithKey =\n ({ newSelectionKey }) =>\n (dispatch, getState) => {\n const currentKey = getCurrentSelectionKey(getState());\n\n if (newSelectionKey !== currentKey) {\n dispatch(setCurrentSelectionKey({ key: newSelectionKey }));\n if (!getCurrentSelection(getState())) dispatch(clear());\n }\n };\n\nexport const fetchDataList =\n ({ id, sort, page, perPage }) =>\n async dispatch => {\n dispatch(setDataListLoading({ loading: true }));\n\n const { sortedIdlots, list, lots, artists, sales, auctioneers, techniques, categories } = await getDataList({ id, sort, page, perPage });\n\n dispatch(updateSales({ sales }));\n dispatch(updateLots({ lots, forceUpdate: true }));\n dispatch(updateArtists({ artists }));\n dispatch(updateAuctioneers({ auctioneers }));\n dispatch(updateTechniques({ techniques }));\n dispatch(updateCategories({ categories }));\n dispatch(updateList({ list }));\n dispatch(setListLotsOrder({ sortedIdlots }));\n dispatch(setDataListLoading({ loading: false }));\n };\n\nexport const fetchLists =\n ({ sort = 'label-asc' } = {}) =>\n async (dispatch, getState) => {\n const loading = getState().accountLotsLists.listsLoading;\n\n if (loading) return;\n\n dispatch(setListsLoading({ loading: true }));\n const { orderedIds, lists } = await getListsService({ sort });\n dispatch(setLists({ lists }));\n dispatch(setListsOrderedId({ orderedIds }));\n dispatch(setListsLoading({ loading: false }));\n };\n\nexport const renameList =\n ({ id, label }) =>\n async dispatch => {\n await renameListService({ id, label });\n dispatch(fetchLists());\n };\n\nexport const deleteLists =\n ({ ids }) =>\n async dispatch => {\n await deleteListsService({ ids });\n dispatch(fetchLists());\n };\n\nexport const appendToList =\n ({ idlist }) =>\n async (dispatch, getState) => {\n const idlots = getCurrentSelection(getState());\n\n if (idlots.length > 0) {\n await addLotsService({ id: idlist, idlots });\n dispatch(clear());\n dispatch(fetchLists());\n }\n };\n\nexport const deleteLots =\n ({ id, idlots, sort }) =>\n async dispatch => {\n await deleteLotsService({ id, idlots });\n dispatch(fetchDataList({ id, sort }));\n };\n\nexport const moveLots =\n ({ idfrom, idto, idlots, sort }) =>\n async dispatch => {\n const { listFrom, listTo } = await moveLotsService({ idfrom, idto, idlots });\n\n dispatch(updateListLotCount({ id: listFrom.id, lotsCount: listFrom.lotsCount }));\n dispatch(updateListLotCount({ id: listTo.id, lotsCount: listTo.lotsCount }));\n dispatch(fetchDataList({ id: idfrom, sort }));\n };\n\nexport const copyLots =\n ({ idfrom, idto, idlots }) =>\n async dispatch => {\n const { listFrom, listTo } = await copyLotsService({ idfrom, idto, idlots });\n\n dispatch(updateListLotCount({ id: listFrom.id, lotsCount: listFrom.lotsCount }));\n dispatch(updateListLotCount({ id: listTo.id, lotsCount: listTo.lotsCount }));\n };\n\nexport const createAndMoveLots =\n ({ idfrom, label, idlots, sort }) =>\n async dispatch => {\n const list = await createListService({ label });\n dispatch(appendList({ list }));\n dispatch(moveLots({ idfrom, idlots, idto: list.id, sort }));\n };\n\nexport const createAndCopyLots =\n ({ idfrom, label, idlots }) =>\n async dispatch => {\n const list = await createListService({ label });\n dispatch(appendList({ list }));\n dispatch(copyLots({ idfrom, idlots, idto: list.id }));\n };\n\nexport const createAndAppendToList =\n ({ label }) =>\n async dispatch => {\n const list = await createListService({ label });\n dispatch(fetchLists());\n dispatch(appendToList({ idlist: list.id }));\n };\n\n/* Selectors */\nexport const getAddAndCreateButtonsVisibility = state => get(state.accountLotsLists, 'addAndCreateButtonsVisibility');\nexport const getCurrentSelectionKey = state => get(state.accountLotsLists, 'currentSelectionKey');\nexport const getCurrentSelection = state => {\n const key = getCurrentSelectionKey(state);\n if (key) {\n return state.accountLotsLists.currentSelection[key];\n }\n\n return undefined;\n};\nexport const getLists = state => get(state.accountLotsLists, 'lists');\nexport const getListsLoading = state => get(state.accountLotsLists, 'listsLoading');\nexport const getListsOrderedIds = state => get(state.accountLotsLists, 'listsOrderedIds');\nexport const getList = (state, { id }) => get(state.accountLotsLists, `lists.${id}`);\nexport const getListLotsOrder = state => get(state.accountLotsLists, 'sortedIdlots');\nexport const getListDataLoading = state => get(state.accountLotsLists, 'dataListLoading');\nexport const isSelected = (state, { id }) => {\n const selection = getCurrentSelection(state);\n return selection?.filter(selectedId => id === selectedId).length > 0;\n};\nexport const isInLists = (state, { id }) => {\n const inLists = [];\n Object.values(state.accountLotsLists.lists).forEach(list => {\n if (list.idlots.includes(id)) {\n inLists.push(list.id);\n }\n });\n\n return inLists;\n};\n\nexport default accountLotsListsSlice.reducer;\n","/* eslint-disable no-param-reassign */\n\nimport { createSelector } from 'reselect';\nimport { get, isEmpty, uniq } from 'lodash';\nimport { createSlice } from '@reduxjs/toolkit';\nimport { getFree as getFreeService, getKnowledge as getKnowledgeService, getCollaborations as getCollaborationsService, getTop10 as getTop10Service, getCa as getCaService } from '../../../services/artdbweb/artist';\nimport { classifiedsForArtist } from '../../../services/wallet/classified';\nimport { articlesForArtist } from '../../../services/wallet/ami';\nimport { storesForArtist } from '../../../services/wallet/store';\nimport { internalAxios } from '../../../utils/axios/internal';\nimport { EMPTY_ARRAY } from '../../../constants/utils';\n\nconst artistSlice = createSlice({\n name: 'artist',\n initialState: {},\n reducers: {\n UpdateFiltersResultCount(state, action) {\n state.filtersResultCount = action.payload;\n },\n updateCollaborations(state, action) {\n state.collaborations = action.payload;\n },\n updateArticles(state, action) {\n state.articles = action.payload;\n },\n updateKnowledge(state, action) {\n state.knowledge = action.payload;\n },\n updateTop10(state, action) {\n state.top10 = action.payload;\n },\n updateCa(state, action) {\n state.ca = action.payload;\n },\n updateFree(state, action) {\n state.free = action.payload;\n },\n updateAilsSeen(state, action) {\n state.ailsSeen = uniq([...(state.ailsSeen || []), ...action.payload]);\n },\n updateStores(state, action) {\n state.stores = action.payload;\n },\n updateClassifieds(state, action) {\n state.classifieds = action.payload;\n },\n updateFollowRecomendationDisplay(state, action) {\n state.followRecomendationDisplay = action.payload;\n },\n },\n});\n\nconst getRootState = state => state.artist;\nexport const getFollowRecomendationDisplay = state => get(state.artist, 'followRecomendationDisplay', false);\nexport const getFree = state => get(state.artist, 'free');\nexport const getArtist = state => get(state.artist, 'artist');\nexport const getAils = state => get(state.artist, 'ails');\nexport const getSummaryData = state => get(state.artist, 'summaryData');\nexport const getLotsFuture = state => get(state.artist, 'lots.future');\nexport const getLotsPast = state => get(state.artist, 'lots.past');\nexport const getLots = state => get(state.artist, 'lots');\nexport const getCategories = state => get(state.artist, 'categories');\nexport const getCategoriesFuture = state => get(state.artist, 'categories.future');\nexport const getCategoriesPast = state => get(state.artist, 'categories.past');\nexport const getCa = state => get(state.artist, 'ca');\nexport const getCollaborations = state => get(state.artist, 'collaborations');\nexport const getArticles = state => get(state.artist, 'articles');\nexport const getStores = state => get(state.artist, 'stores');\nexport const getClassifieds = state => get(state.artist, 'classifieds');\nexport const getKnowledge = state => get(state.artist, 'knowledge');\nexport const getTop10 = state => get(state.artist, 'top10');\nexport const getAilsSeen = state => get(state.artist, 'ailsSeen', EMPTY_ARRAY);\nexport const getFiltersResultCount = state => get(state.artist, 'filtersResultCount.count');\nexport const getFiltersResultSearching = state => get(state.artist, 'filtersResultCount.searching') || false;\nexport const getLandingPage = createSelector(getRootState, state => get(state, 'ailForLandingpage', {}));\n\nexport const getMenuEntriesCount = state => {\n let total = 1; // Marketplace by default\n\n if (!isEmpty(getCategories(state).future)) total += 1;\n if (!isEmpty(getCategories(state).past)) total += 1;\n if (getArtist(state).macro) total += 1;\n if (!isEmpty(getArticles(state)?.items)) total += 1;\n if (!isEmpty(getCollaborations(state))) total += 1;\n if (!isEmpty(getTop10(state)) || !isEmpty(getKnowledge(state))) total += 1;\n\n return total;\n};\n\nexport const { updateFollowRecomendationDisplay, updateTop10, updateArticles, updateCollaborations, updateKnowledge, updateCa, updateFree, updateAilsSeen, updateStores, updateClassifieds, UpdateFiltersResultCount } =\n artistSlice.actions;\n\nexport const fetchTop10 = () => async (dispatch, getState) => {\n if (!getTop10(getState())) {\n try {\n const data = await getTop10Service();\n dispatch(updateTop10(data));\n } catch (e) {\n console.error(e);\n }\n }\n};\n\nexport const fetchFree = () => async (dispatch, getState) => {\n if (!getFree(getState())) {\n try {\n const data = await getFreeService();\n dispatch(updateFree(data));\n } catch (e) {\n console.error(e);\n }\n }\n};\n\nexport const fetchArticles =\n ({ id }) =>\n async (dispatch, getState) => {\n if (!getArticles(getState())) {\n try {\n const data = await articlesForArtist(id);\n dispatch(updateArticles(data));\n } catch (e) {\n console.error(e);\n }\n }\n };\n\nexport const fetchStores =\n ({ id }) =>\n async (dispatch, getState) => {\n if (!getStores(getState())) {\n try {\n const data = await storesForArtist(id);\n dispatch(updateStores(data));\n } catch (e) {\n console.error(e);\n }\n }\n };\n\nexport const fetchClassifieds =\n ({ id }) =>\n async (dispatch, getState) => {\n if (!getClassifieds(getState())) {\n try {\n const data = await classifiedsForArtist(id);\n dispatch(updateClassifieds(data));\n } catch (e) {\n console.error(e);\n }\n }\n };\n\nexport const fetchCollaborations =\n ({ id }) =>\n async (dispatch, getState) => {\n if (!getCollaborations(getState())) {\n try {\n const data = await getCollaborationsService({ id });\n dispatch(updateCollaborations(data));\n } catch (e) {\n console.error(e);\n }\n }\n };\n\nexport const fetchKnowledge =\n ({ id }) =>\n async (dispatch, getState) => {\n if (!getKnowledge(getState())) {\n try {\n const data = await getKnowledgeService({ id });\n dispatch(updateKnowledge(data));\n } catch (e) {\n console.error(e);\n }\n }\n };\n\nexport const fetchCa =\n ({ id }) =>\n async (dispatch, getState) => {\n if (!getCa(getState())) {\n try {\n const data = await getCaService({ id });\n dispatch(updateCa(data));\n } catch (e) {\n console.error(e);\n }\n }\n };\n\nexport const fetchFiltersResultCount =\n ({ params }) =>\n async (dispatch, getState) => {\n dispatch(UpdateFiltersResultCount({ searching: true }));\n try {\n const artist = getArtist(getState());\n const response = await internalAxios.get('/api/es/lots/search', { params: { ...params, idartist: artist.id } });\n dispatch(UpdateFiltersResultCount({ searching: false, count: response.data.totalCount }));\n } catch (e) {\n dispatch(UpdateFiltersResultCount({ searching: false }));\n console.error(e);\n }\n };\n\nexport default artistSlice.reducer;\n","import { internalAxios } from '../../../utils/axios/internal';\n\nexport const getKnowledge = async ({ id }) => {\n const response = await internalAxios.get(`/api/artdbweb/artist/knowledge/${id}`);\n return response.data;\n};\n\nexport const getTop10 = async () => {\n const response = await internalAxios.get(`/api/artdbweb/artist/top10`);\n return response.data;\n};\n\nexport const getCollaborations = async ({ id }) => {\n const response = await internalAxios.get(`/api/artdbweb/artist/collaborations/${id}`);\n return response.data;\n};\n\nexport const getCa = async ({ id }) => {\n const response = await internalAxios.get(`/api/artdbweb/artist/ca/${id}`);\n return response.data;\n};\n\nexport const getFree = async () => {\n const response = await internalAxios.get(`/api/artdbweb/artist/free`);\n return response.data.artists[response.data.idartist[0]];\n};\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const articlesForArtist = async idartist => {\n const response = await internalAxios.get(`/api/wallet/ami/articles/${idartist}`);\n return response.data;\n};\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const classifiedsForArtist = async idartist => {\n const response = await internalAxios.get(`/api/wallet/classified/classifieds_for_artist/${idartist}.json`);\n return response.data;\n};\n","import { createSlice } from '@reduxjs/toolkit';\nimport { get } from 'lodash';\n\nconst artpriceSlice = createSlice({\n name: 'artprice',\n initialState: {\n isCustomerServiceOpened: undefined,\n returnAfterLogin: undefined,\n },\n reducers: {},\n});\n\n/* Selectors */\n\nexport const getIsCustomerServiceOpened = state => get(state.artprice, 'isCustomerServiceOpened', false);\nexport const getReturnAfterLogin = state => get(state.artprice, 'returnAfterLogin', true);\nexport default artpriceSlice.reducer;\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const getPhysicproducts = async ({ promocode }) => {\n const response = await internalAxios.get('/api/wallet/physicproduct/list_estimates', { params: { promocode, format: 'json' } });\n return response.data;\n};\n","/* eslint-disable no-param-reassign */\n\nimport { createSlice } from '@reduxjs/toolkit';\nimport { get } from 'lodash';\nimport { getPhysicproducts as getPhysicproductsService } from '../../../services/wallet/estimate';\n\nconst estimatesSlice = createSlice({\n name: 'estimates',\n initialState: {\n physicproductsLoading: false,\n products: null,\n customerCurrency: null,\n promotion: null,\n },\n reducers: {\n updatePhysicproductsLoading(state, action) {\n state.physicproductsLoading = action.payload;\n },\n updatePhysicproducts(state, action) {\n state.products = action.payload;\n },\n updateCustomerCurrency(state, action) {\n state.customerCurrency = action.payload;\n },\n updatePromotion(state, action) {\n state.promotion = action.payload;\n },\n },\n});\n\nexport const { updatePhysicproductsLoading, updateCustomerCurrency, updatePhysicproducts, updatePromotion } = estimatesSlice.actions;\n\n/* Selectors */\n\nexport const getCustomerCurrency = state => get(state.estimates, 'customerCurrency', {});\nexport const getPhysicproducts = state => get(state.estimates, 'products', []);\nexport const getPhysicproductsLoading = state => get(state.estimates, 'physicproductsLoading', false);\nexport const getPromotion = state => get(state.estimates, 'promotion');\n\nexport const retrievePhysicproducts =\n ({ promocode }) =>\n async (dispatch, getState) => {\n const loading = getPhysicproductsLoading(getState());\n\n if (!loading) {\n dispatch(updatePhysicproductsLoading(true));\n try {\n const { items, customerCurrency, promotion_from_promocode: promotionFromPromocode } = await getPhysicproductsService({ promocode });\n dispatch(updatePhysicproducts(items));\n dispatch(updateCustomerCurrency(customerCurrency));\n dispatch(updatePromotion(promotionFromPromocode));\n } catch (e) {\n console.error(e);\n } finally {\n dispatch(updatePhysicproductsLoading(false));\n }\n }\n };\n\nexport default estimatesSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\nimport { get } from 'lodash';\n\nconst footerSlice = createSlice({\n name: 'footer',\n initialState: {\n lastAmciValue: undefined,\n },\n reducers: {},\n});\n\n/* Selectors */\n\nexport const getAmciLastValue = state => get(state.footer, 'lastAmciValue', 0.0);\n\nexport default footerSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\nimport { get, merge } from 'lodash';\nimport { fetchCounts as fetchCountsService } from '../../../services/myartprice';\nimport { hasUpgrades as hasUpgradesService } from '../../../services/wallet/customer';\nimport { EMPTY_OBJECT } from '../../../constants/utils';\n\nconst headerSlice = createSlice({\n name: 'header',\n initialState: {\n counts: {},\n hasUpgrades: false,\n },\n reducers: {\n updatehasUpgrades(state, action) {\n // eslint-disable-next-line no-param-reassign\n state.hasUpgrades = action.payload;\n },\n updateCounts(state, action) {\n merge(state.counts, action.payload);\n },\n },\n});\n\n/* Selectors */\n\nexport const isCountsLoading = state => get(state.header.counts, 'loading', false);\nexport const getArtistsCount = state => get(state.header.counts, 'artists', 0);\nexport const getArtistCountDetails = state => get(state.header.counts, 'details.artists', EMPTY_OBJECT);\nexport const getLotsCount = state => get(state.header.counts, 'lots', 0);\nexport const getStoreCount = state => get(state.header.counts, 'store', 0);\nexport const gethasUpgrades = state => state.header.hasUpgrades;\nexport const getTotalCount = state => getArtistsCount(state) + getLotsCount(state) + getStoreCount(state);\n\n/* Actions */\n\nexport const { updateCounts, updatehasUpgrades } = headerSlice.actions;\n\nexport const fetchHasUpgrades = () => async dispatch => {\n try {\n const hasUpgrades = await hasUpgradesService();\n dispatch(updatehasUpgrades(hasUpgrades));\n } catch (e) {\n console.error(e);\n dispatch(updatehasUpgrades(false));\n }\n};\nexport const fetchCounts = () => async (dispatch, getState) => {\n const isLoading = isCountsLoading(getState());\n if (!isLoading) {\n try {\n dispatch(updateCounts({ loading: true }));\n const counts = await fetchCountsService();\n dispatch(updateCounts(counts));\n } catch (e) {\n console.error(e);\n } finally {\n dispatch(updateCounts({ loading: false }));\n }\n }\n};\n\nexport default headerSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\nimport { get } from 'lodash';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '../../../constants/utils';\n\nconst homepageSlice = createSlice({\n name: 'header',\n initialState: {\n ails: {},\n articles: [],\n classifieds: [],\n events: [],\n reports: { items: [], main: null },\n stores: [],\n promotion: undefined,\n },\n reducers: {},\n});\n\n/* Selectors */\n\nexport const getStores = state => get(state, 'homepage.stores', EMPTY_OBJECT);\nexport const getEvents = state => get(state, 'homepage.events', EMPTY_OBJECT);\nexport const getClassifieds = state => get(state, 'homepage.classifieds', EMPTY_OBJECT);\nexport const getPromotion = state => get(state, 'homepage.promotion', EMPTY_OBJECT);\nexport const getMainReport = state => get(state, 'homepage.reports.main', EMPTY_OBJECT);\nexport const getReports = state => get(state, 'homepage.reports.items', EMPTY_OBJECT);\nexport const getArticles = state => get(state, 'homepage.articles', EMPTY_OBJECT);\nexport const getSaleAils = state => get(state, 'homepage.ails.sales', EMPTY_ARRAY);\nexport const getMegaBanAils = state => get(state, 'homepage.ails.megaBan');\nexport const getFocusOnAils = state => get(state, 'homepage.ails.focusOn');\n\n/* default export */\n\nexport default homepageSlice.reducer;\n","/* eslint-disable no-param-reassign */\n\nimport { createSlice } from '@reduxjs/toolkit';\nimport { get, merge } from 'lodash';\nimport { getAddresses as getAddressesService, setAddress } from '../../../services/wallet/customer';\nimport { getCart as getCartService } from '../../../services/wallet/physicproduct';\nimport { EMPTY_OBJECT } from '../../../constants/utils';\n\nconst paymentsSlice = createSlice({\n name: 'payments',\n initialState: {\n navigationStep: 1,\n cart: {},\n params: null,\n shipAddress: null,\n shipAddressLoading: false,\n billAddress: null,\n billAddressLoading: false,\n customerMutationRunning: false,\n },\n reducers: {\n updateNavigationStep(state, action) {\n state.navigationStep = action.payload;\n },\n updateCart(state, action) {\n state.cart = action.payload;\n },\n updateParams(state, action) {\n if (state?.params) {\n merge(state.params, action.payload);\n } else {\n state.params = action.payload;\n }\n },\n updateBillAddress(state, action) {\n state.billAddress = action.payload;\n },\n updateBillAddressLoading(state, action) {\n state.billAddressLoading = action.payload;\n },\n updateShipAddress(state, action) {\n state.shipAddress = action.payload;\n },\n updateShipAddressLoading(state, action) {\n state.shipAddressLoading = action.payload;\n },\n updateCustomerMutationRunning(state, action) {\n state.customerMutationRunning = action.payload;\n },\n },\n});\n\n/* Selectors */\n\nexport const navigationStep = state => get(state.payments, 'navigationStep', 1);\nexport const getCart = state => get(state.payments, 'cart', EMPTY_OBJECT);\nexport const getParams = state => get(state.payments, 'params', EMPTY_OBJECT);\nexport const getPromocode = state => get(state.payments, 'params.promocode', EMPTY_OBJECT);\nexport const getCartLoading = state => get(state.payments, 'cart.loading', false);\nexport const getShipAddress = state => get(state.payments, 'shipAddress', null);\nexport const getBillAddress = state => get(state.payments, 'billAddress', null);\nexport const getShipAddressLoading = state => get(state.payments, 'shipAddressLoading', false);\nexport const getBillAddressLoading = state => get(state.payments, 'billAddressLoading', false);\nexport const getCustomerMutationRunning = state => get(state.payments, 'customerMutationRunning', false);\nexport const getCartUnavailable = state => get(state.payments, 'cart.cart_unavailable_for_product', false);\nexport const getPromocodeStatus = state => get(state.payments, 'cart.promotion_from_promocode.status', 1);\n\n/* Actions */\nconst { updateBillAddress: updateBillAddressAction, updateBillAddressLoading, updateShipAddress: updateShipAddressAction, updateShipAddressLoading } = paymentsSlice.actions;\nexport const { updateParams, updateNavigationStep, updateCart, updateCustomerMutationRunning } = paymentsSlice.actions;\n\nexport const updateShipAddress = values => async (dispatch, getState) => {\n const loading = getShipAddressLoading(getState());\n\n if (!loading) {\n dispatch(updateShipAddressLoading(true));\n\n try {\n const data = await setAddress({ ...values, type_address: 'ship' });\n await dispatch(updateShipAddressAction(data));\n } catch (e) {\n console.error(e);\n } finally {\n dispatch(updateShipAddressLoading(false));\n }\n }\n};\n\nexport const updateBillAddress = values => async (dispatch, getState) => {\n const loading = getBillAddressLoading(getState());\n\n if (!loading) {\n dispatch(updateBillAddressLoading(true));\n\n try {\n const data = await setAddress({ ...values, type_address: 'bill' });\n await dispatch(updateBillAddressAction(data));\n } catch (e) {\n console.error(e);\n } finally {\n dispatch(updateBillAddressLoading(false));\n }\n }\n};\n\nexport const fetchAddress = () => async (dispatch, getState) => {\n const isLoading = getBillAddressLoading(getState()) || getShipAddressLoading(getState());\n\n if (!isLoading) {\n try {\n dispatch(updateBillAddressLoading(true));\n dispatch(updateShipAddressLoading(true));\n\n const { bill, ship } = await getAddressesService();\n\n dispatch(updateBillAddressAction(bill));\n dispatch(updateShipAddressAction(ship));\n } catch (e) {\n console.error(e);\n } finally {\n dispatch(updateBillAddressLoading(false));\n dispatch(updateShipAddressLoading(false));\n }\n }\n};\n\nexport const fetchCart =\n ({ type, image, promocode, idphysicproducts, idphysicsale }) =>\n async (dispatch, getState) => {\n const isLoading = getCartLoading(getState());\n if (!isLoading) {\n try {\n dispatch(updateCart({ loading: true }));\n const data = await getCartService({ type, image, promocode, idphysicproducts, idphysicsale });\n dispatch(updateCart({ ...data, loading: false }));\n } catch (e) {\n console.error(e);\n dispatch(updateCart({ loading: false }));\n }\n }\n };\n\nexport default paymentsSlice.reducer;\n","import { createSlice } from '@reduxjs/toolkit';\nimport { get } from 'lodash';\n\nconst promotionSlice = createSlice({\n name: 'promotion',\n initialState: {},\n reducers: {},\n});\n\nexport const getAutomaticallyApplied = state => get(state.promotion, 'automaticallyApplied');\nexport const getCode = state => get(state.promotion, 'code');\nexport const getBannerUrl = (state, { size }) => get(state.promotion, `banners.${size}`);\nexport const getBannerUrlSml = state => getBannerUrl(state, { size: 'sml' });\n// export const getBannerUrlLg = state => getBannerUrl(state, { size: 'lg' });\n// export const getBannerUrlMd = state => getBannerUrl(state, { size: 'md' });\n// export const getBannerUrlXl = state => getBannerUrl(state, { size: 'xl' });\n\nexport default promotionSlice.reducer;\n","/* eslint-disable no-param-reassign */\nimport Axios from 'axios';\nimport { createSelector, createSlice } from '@reduxjs/toolkit';\nimport { get, set, isEmpty, isPlainObject, isMatch } from 'lodash';\nimport { ensureCorrectScope } from '../../../utils/search';\nimport { fetchFacets as fetchFacetsService } from '../../../services/search';\nimport { EMPTY_OBJECT } from '../../../constants/utils';\n\n/* params & facets types */\nconst BASE = 'BASE';\nconst DRAFT = 'DRAFT';\nconst ADVANCED = 'ADVANCED';\nconst TYPES = [BASE, DRAFT, ADVANCED];\n\nfunction createEmptyScope() {\n return {\n [BASE]: {\n loading: false,\n loaded: false,\n },\n [DRAFT]: {\n loading: false,\n loaded: false,\n },\n [ADVANCED]: {\n loading: false,\n loaded: false,\n },\n options: EMPTY_OBJECT,\n };\n}\n\nconst scopedSlice = createSlice({\n name: 'scoped',\n initialState: {\n scopes: {}, // will contains every scopes info\n },\n reducers: {\n // ⌄ Every actions below needs the searchScope ⌄\n clear(state, action) {\n const { searchScope } = action.payload;\n state.scopes[searchScope] = createEmptyScope();\n },\n prepare(state, action) {\n const { searchScope } = action.payload;\n if (isEmpty(get(state.scopes, searchScope, {}))) {\n state.scopes[searchScope] = createEmptyScope();\n } else {\n TYPES.forEach(type => {\n set(state.scopes, `${searchScope}.${type}.loading`, false);\n set(state.scopes, `${searchScope}.${type}.loaded`, false);\n });\n set(state.scopes, `${searchScope}.options`, EMPTY_OBJECT);\n }\n },\n setOptions(state, action) {\n const { searchScope, options } = action.payload;\n set(state.scopes, `${searchScope}.options`, options);\n },\n // ⌄ Every actions below needs the type too ⌄\n setLoading(state, action) {\n const { searchScope, type, loading = true } = action.payload;\n set(state.scopes, `${searchScope}.${type}.loading`, loading);\n },\n mergeParams(state, action) {\n const { searchScope, type, params = EMPTY_OBJECT } = action.payload;\n const existingParams = get(state.scopes, `${searchScope}.${type}.params`, {});\n set(state.scopes, `${searchScope}.${type}.params`, { ...existingParams, ...params });\n },\n setParams(state, action) {\n const { searchScope, type, params = EMPTY_OBJECT } = action.payload;\n set(state.scopes, `${searchScope}.${type}.params`, params);\n },\n setFacets(state, action) {\n const { searchScope, type, facets, count, pages, sort } = action.payload;\n set(state.scopes, `${searchScope}.${type}.facets`, facets);\n set(state.scopes, `${searchScope}.${type}.count`, Number.parseInt(count, 10) || 0); // fallback on 0\n set(state.scopes, `${searchScope}.${type}.pages`, Number.parseInt(pages, 10));\n set(state.scopes, `${searchScope}.${type}.sort`, sort);\n },\n setLoaded(state, action) {\n const { searchScope, type, loaded = true } = action.payload;\n set(state.scopes, `${searchScope}.${type}.loaded`, loaded);\n if (loaded) {\n set(state.scopes, `${searchScope}.${type}.loading`, false);\n }\n },\n },\n});\n\n/* Selectors */\n\nconst getOptions = (state, { searchScope }) => get(state.search.scoped.scopes, `${searchScope}.options`);\nconst areFacetsLoading = (state, { searchScope, type }) => get(state.search.scoped.scopes, `${searchScope}.${type}.loading`, false);\nexport const areBaseFacetsLoading = (state, { searchScope }) => areFacetsLoading(state, { searchScope, type: BASE });\nexport const areDraftFacetsLoading = (state, { searchScope }) => areBaseFacetsLoading(state, { searchScope }) || areFacetsLoading(state, { searchScope, type: DRAFT }); // if base facets are loading, draft will change too\nconst getCount = (state, { searchScope, type }) => get(state.search.scoped.scopes, `${searchScope}.${type}.count`);\nexport const getDraftCount = (state, { searchScope }) => getCount(state, { searchScope, type: DRAFT });\nexport const getAdvancedCount = (state, { searchScope }) => getCount(state, { searchScope, type: ADVANCED });\nconst getParams = (state, { searchScope, type }) => get(state.search.scoped.scopes, `${searchScope}.${type}.params`, EMPTY_OBJECT);\nexport const getBaseParams = (state, { searchScope }) => getParams(state, { searchScope, type: BASE });\nexport const getDraftParams = (state, { searchScope }) => getParams(state, { searchScope, type: DRAFT });\nexport const getAdvancedParams = (state, { searchScope }) => getParams(state, { searchScope, type: ADVANCED });\n// will only work correctly while working with ONE searchScope\n// it you ever need to work with multiple searchScopes, check this: https://github.com/reduxjs/reselect#sharing-selectors-with-props-across-multiple-component-instances\nexport const getEffectiveDraftParams = createSelector(getBaseParams, getDraftParams, (baseParams, draftParams) => ({\n ...baseParams,\n ...draftParams,\n}));\n// same as above\nexport const getEffectiveAdvancedParams = createSelector(getBaseParams, getAdvancedParams, (baseParams, advancedParams) => ({\n ...baseParams,\n ...advancedParams,\n}));\nconst getFacets = (state, { searchScope, type, facet }) => get(state.search.scoped.scopes, facet ? `${searchScope}.${type}.facets.${facet}` : `${searchScope}.${type}.facets`, EMPTY_OBJECT);\nexport const getBaseFacets = (state, { searchScope, facet }) => getFacets(state, { searchScope, type: BASE, facet });\nexport const getDraftFacets = (state, { searchScope, facet }) => getFacets(state, { searchScope, type: DRAFT, facet });\nexport const getAdvancedFacets = (state, { searchScope, facet }) => getFacets(state, { searchScope, type: ADVANCED, facet });\n\nconst getLoaded = (state, { searchScope, type }) => get(state.search.scoped.scopes, `${searchScope}.${type}.loaded`, false);\nexport const getAdvancedLoaded = (state, { searchScope }) => getLoaded(state, { searchScope, type: ADVANCED });\n\n/* Actions */\n\nexport const { clear, prepare, setOptions, setLoading, setLoaded, mergeParams, setParams, setFacets } = scopedSlice.actions;\n\n/*\n This action will update the advanceParams (and consequently the facets)\n It will also set the draft params/facets to their corresponding advanced value\n */\nexport const updateAdvancedParams =\n ({ searchScope, params }) =>\n async (dispatch, getState) => {\n dispatch(setLoading({ searchScope, type: ADVANCED }));\n dispatch(setLoading({ searchScope, type: DRAFT }));\n\n const options = getOptions(getState(), { searchScope });\n\n dispatch(setParams({ searchScope, type: DRAFT, params }));\n dispatch(setParams({ searchScope, type: ADVANCED, params }));\n const effectiveAdvancedParams = getEffectiveAdvancedParams(getState(), { searchScope });\n try {\n const { facets, totalCount, totalPages, sort } = await fetchFacetsService(effectiveAdvancedParams, searchScope, options?.cancelPrevious);\n dispatch(setFacets({ searchScope, type: DRAFT, facets, count: totalCount, pages: totalPages, sort }));\n dispatch(setFacets({ searchScope, type: ADVANCED, facets, count: totalCount, pages: totalPages, sort }));\n\n dispatch(setLoaded({ searchScope, type: DRAFT }));\n dispatch(setLoaded({ searchScope, type: ADVANCED }));\n } catch (err) {\n if (!Axios.isCancel(err)) {\n throw err;\n }\n }\n };\n\n/*\n This actions will prepare the scope in case to function properly\n */\nexport const prepareScope = ({ searchScope, baseParams, advancedParams, options, clearScope = false }) => {\n ensureCorrectScope(searchScope);\n return async (dispatch, getState) => {\n if (clearScope) {\n dispatch(clear({ searchScope }));\n } else {\n dispatch(prepare({ searchScope }));\n }\n if (isPlainObject(options)) {\n dispatch(setOptions({ searchScope, options }));\n }\n dispatch(setLoading({ searchScope, type: BASE }));\n dispatch(setParams({ searchScope, type: BASE, params: baseParams }));\n // fetching baseFacets if we don't have them\n let baseFacets = getBaseFacets(getState(), { searchScope });\n let baseCount = -1;\n let basePages = -1;\n let baseSort;\n\n if (isEmpty(baseFacets)) {\n const { facets, totalCount, totalPages, sort } = await fetchFacetsService(baseParams, searchScope, options.cancelPrevious);\n baseFacets = facets;\n baseCount = totalCount;\n basePages = totalPages;\n baseSort = sort;\n dispatch(setFacets({ searchScope, type: BASE, facets: baseFacets, count: baseCount, pages: basePages, sort: baseSort }));\n }\n if (advancedParams) {\n await dispatch(updateAdvancedParams({ searchScope, params: advancedParams }));\n } else {\n dispatch(setFacets({ searchScope, type: DRAFT, facets: baseFacets, count: baseCount, pages: basePages, sort: baseSort }));\n dispatch(setFacets({ searchScope, type: ADVANCED, facets: baseFacets, count: baseCount, pages: basePages, sort: baseSort }));\n }\n dispatch(setLoaded({ searchScope, type: BASE }));\n };\n};\n\n/*\n This action will merge the new params into the existing draftParams\n It will also trigger the facet call and update the facets.\n\n lockedFacets can't be \"reduced\" by the facets you got.\n They can however be \"augmented\" if the new facet is a superset of the current facet.\n */\nexport const addToDraftParams =\n ({ searchScope, params, lockedFacets = [] }) =>\n async (dispatch, getState) => {\n if (areBaseFacetsLoading(getState(), { searchScope })) {\n console.warn('Trying to call addToDraftParams while the base facets are loading...');\n return;\n }\n\n // setup\n dispatch(setLoading({ searchScope, type: DRAFT }));\n dispatch(mergeParams({ searchScope, type: DRAFT, params }));\n const state = getState();\n // fetch facets\n const options = getOptions(state, { searchScope });\n const effectiveParams = getEffectiveDraftParams(state, { searchScope });\n try {\n const { facets, totalCount, totalPages, sort } = await fetchFacetsService(effectiveParams, searchScope, options.cancelPrevious);\n // keeping lockedFacets\n if (lockedFacets.length > 0) {\n lockedFacets.forEach(lockedFacet => {\n const existing = getDraftFacets(state, { searchScope, facet: lockedFacet });\n if (existing && isMatch(existing, get(facets, lockedFacet))) {\n facets[lockedFacet] = existing;\n }\n });\n }\n dispatch(setFacets({ searchScope, type: DRAFT, facets, count: totalCount, pages: totalPages, sort }));\n dispatch(setLoaded({ searchScope, type: DRAFT }));\n } catch (err) {\n if (!Axios.isCancel(err)) {\n throw err;\n }\n }\n };\n\nexport const updateDraftParams =\n ({ searchScope, params, lockedFacets = [] }) =>\n async (dispatch, getState) => {\n if (areBaseFacetsLoading(getState(), { searchScope })) {\n console.warn('Trying to call updateDraftParams while the base facets are loading...');\n return;\n }\n\n // setup\n dispatch(setLoading({ searchScope, type: DRAFT }));\n dispatch(setParams({ searchScope, type: DRAFT, params }));\n const state = getState();\n // fetch facets\n const options = getOptions(state, { searchScope });\n const effectiveParams = getEffectiveDraftParams(state, { searchScope });\n try {\n const { facets, totalCount, totalPages, sort } = await fetchFacetsService(effectiveParams, searchScope, options.cancelPrevious);\n // keeping lockedFacets\n if (lockedFacets.length > 0) {\n lockedFacets.forEach(lockedFacet => {\n const existing = getDraftFacets(state, { searchScope, facet: lockedFacet });\n if (existing) {\n facets[lockedFacet] = existing;\n }\n });\n }\n dispatch(setFacets({ searchScope, type: DRAFT, facets, count: totalCount, pages: totalPages, sort }));\n dispatch(setLoaded({ searchScope, type: DRAFT }));\n } catch (err) {\n if (!Axios.isCancel(err)) {\n throw err;\n }\n }\n };\n\n/*\n Reset draft params = put advancedParams inside\n */\nexport const resetDraftParams =\n ({ searchScope }) =>\n async (dispatch, getState) => {\n const state = getState();\n const advancedParams = getAdvancedParams(state, { searchScope });\n dispatch(updateDraftParams({ searchScope, params: advancedParams }));\n };\n\nexport default scopedSlice.reducer;\n","/* eslint-disable import/prefer-default-export */\nimport { ALL_SCOPES } from '../../constants/search/scope';\n\nexport function ensureCorrectScope(searchScope, additionalErrorStr = '') {\n if (!ALL_SCOPES.includes(searchScope)) {\n throw new Error(`Unknown scope : ${searchScope}${additionalErrorStr}`);\n }\n}\n","/* eslint-disable no-param-reassign */\nimport { createSlice } from '@reduxjs/toolkit';\nimport { get } from 'lodash';\n\nconst universalSlice = createSlice({\n name: 'universal',\n initialState: {\n layoutContainer: {\n open: false,\n transition: {\n origin: {\n selector: undefined,\n },\n },\n },\n },\n reducers: {\n openLayoutContainer(state) {\n state.layoutContainer.open = true;\n },\n closeLayoutContainer(state) {\n state.layoutContainer.open = false;\n },\n setTransitionOrigin(state, action) {\n state.layoutContainer.transition.origin = action.payload;\n },\n removeTransitionOrigin(state) {\n state.layoutContainer.transition.origin = {};\n },\n },\n});\n\n/* Selectors */\n\nexport const getTransitionOriginSelector = state => get(state.search.universal, 'layoutContainer.transition.origin.selector');\nexport const isLayoutContainerOpen = state => get(state.search.universal, 'layoutContainer.open', false);\n\n/* Actions */\n\nexport const { openLayoutContainer, closeLayoutContainer, setTransitionOrigin, removeTransitionOrigin } = universalSlice.actions;\n\nexport default universalSlice.reducer;\n","import { internalAxios } from '../utils/axios/internal';\n\nexport const updateIdprofessionaltype = async ({ idprofessionaltype }) => {\n const response = await internalAxios.get(`/api/wallet/customer/update_idprofessionaltype/${idprofessionaltype}`);\n return response.data;\n};\n\nexport const updateTvaIntra = async ({ tvaintra }) => {\n const response = await internalAxios.post('/api/wallet/customer/update_tvaintra.json', { tvaintra });\n return response.data;\n};\n\nexport const getReduxContext = async () => {\n const response = await internalAxios.get(`/api/wallet/customer/get_redux_context`);\n return response.data;\n};\n\nexport const getMarketplaceContext = async () => {\n const response = await internalAxios.get(`/api/wallet/customer/get_marketplace_context`);\n return response.data;\n};\n\nexport const getEstimateContext = async () => {\n const response = await internalAxios.get(`/api/wallet/customer/get_estimate_context`);\n return response.data;\n};\n\nexport const fetchUserContext = async idcustomer => {\n const response = await internalAxios.get('/api/wallet/customer/get_user_context', idcustomer);\n return response.data;\n};\n","import * as Sentry from '@sentry/react';\nimport { createSlice } from '@reduxjs/toolkit';\nimport { merge } from 'lodash';\nimport { begin, end } from '../../actions/ui/asyncStatus';\nimport { getEstimateContext, getMarketplaceContext, getReduxContext, updateIdprofessionaltype as updateIdprofessionaltypeService, updateTvaIntra as updateTvaIntraService } from '../../../services/userContext';\nimport { isEstimateLoaded, isEstimateLoading, isLoaded, isLoading, isMarketplaceLoaded, isMarketplaceLoading } from './selectors';\n\nconst userContextSlice = createSlice({\n name: 'userContext',\n initialState: {\n loading: false,\n loaded: false,\n },\n reducers: {\n update(state, action) {\n merge(state, action.payload);\n },\n },\n});\n\n/* Actions */\n\nexport const { update } = userContextSlice.actions;\n\nexport const ASYNC_UPDATE_TVA_INTRA_ID = 'UPDATE_TVA_INTRA';\nexport function updateTvaIntra({ tvaintra }) {\n return async dispatch => {\n dispatch(begin({ id: ASYNC_UPDATE_TVA_INTRA_ID }));\n try {\n const { tvaintra: newTvaintra } = await updateTvaIntraService({ tvaintra });\n dispatch(update({ tvaintra: newTvaintra }));\n dispatch(end({ id: ASYNC_UPDATE_TVA_INTRA_ID }));\n } catch (err) {\n console.error(err);\n dispatch(end({ id: ASYNC_UPDATE_TVA_INTRA_ID, error: err.toString() }));\n }\n };\n}\n\nexport const ASYNC_ID = 'UPDATE_IDPROFESSIONALTYPE';\nexport function updateIdprofessionaltype({ idprofessionaltype }) {\n return async dispatch => {\n dispatch(begin({ id: ASYNC_ID }));\n try {\n const { idprofessionaltype: newType } = await updateIdprofessionaltypeService({ idprofessionaltype });\n dispatch(update({ idprofessionaltype: newType }));\n dispatch(end({ id: ASYNC_ID }));\n } catch (err) {\n console.error(err);\n dispatch(end({ id: ASYNC_ID, error: err.toString() }));\n }\n };\n}\n\nexport function fetchUserContext(force = false) {\n return async (dispatch, getState) => {\n const state = getState();\n if (force || (!isLoaded(state) && !isLoading(state))) {\n dispatch(update({ loading: true }));\n try {\n const context = await getReduxContext();\n if (context?.idcustomer) {\n Sentry.setUser({ id: context.idcustomer, ip_address: '{{auto}}' });\n }\n dispatch(update({ ...context, loaded: true }));\n } catch (e) {\n console.error(e);\n } finally {\n dispatch(update({ loading: false }));\n }\n }\n };\n}\n\nexport function fetchMarketplaceContext() {\n return async (dispatch, getState) => {\n const state = getState();\n if (!isMarketplaceLoaded(state) && !isMarketplaceLoading(state)) {\n dispatch(update({ marketplace: { loading: true } }));\n try {\n const marketplaceContext = await getMarketplaceContext();\n dispatch(update({ marketplace: { ...marketplaceContext, loaded: true } }));\n } catch (e) {\n console.error(e);\n } finally {\n dispatch(update({ marketplace: { loading: false } }));\n }\n }\n };\n}\n\nexport function fetchEstimateContext() {\n return async (dispatch, getState) => {\n const state = getState();\n if (!isEstimateLoaded(state) && !isEstimateLoading(state)) {\n dispatch(update({ estimate: { loading: true } }));\n try {\n const estimateContext = await getEstimateContext();\n dispatch(update({ estimate: { ...estimateContext, loaded: true } }));\n } catch (e) {\n console.error(e);\n } finally {\n dispatch(update({ estimate: { loading: false } }));\n }\n }\n };\n}\n\nexport default userContextSlice.reducer;\n","import lodashGet from 'lodash/get';\nimport { differenceInDays } from 'date-fns/differenceInDays';\nimport { isAfter } from 'date-fns/isAfter';\nimport { needsAction } from '../../../utils/subscriptions/attentionNeeded';\nimport { EMPTY_ARRAY, EMPTY_OBJECT } from '../../../constants/utils';\nimport { CUSTOMER_EMAIL_STATUS_NONVERIFIED } from '../../../constants/rails';\n\nexport const get = state => state.userContext || EMPTY_OBJECT;\nexport const isLoaded = state => state.userContext.loaded || false;\nexport const isLoading = state => state.userContext.loading || false;\n\nexport const isMarketplaceLoaded = state => state.userContext?.marketplace?.loaded || false;\nexport const isMarketplaceLoading = state => state.userContext?.marketplace?.loading || false;\n\nexport const isEstimateLoaded = state => state.userContext?.estimate?.loaded || false;\nexport const isEstimateLoading = state => state.userContext?.estimate?.loading || false;\nexport const isLogged = state => state.userContext.logged || false;\nexport const getLang = state => state.userContext.lang;\nexport const isLoginAuto = state => state.userContext.loginAuto || false;\nexport const getIdcustomer = state => state.userContext.idcustomer;\nexport const getStripeCustomer = state => state.subscriptions.stripe.customer;\nexport const getIsAuctioneer = state => state.userContext.isAuctioneer || false;\nexport const getIsNonPartnerAuctioneer = state => state.userContext.isNonPartnerAuctioneer || false;\nexport const getAuctioneerAgreementSignedAt = state => state.userContext.auctioneerAgreement?.signedAt;\nexport const getAuctioneerAgreementLastVersion = state => state.userContext.auctioneerAgreement?.lastVersion;\nexport const getName = state => state.userContext.name;\nexport const getLogin = state => state.userContext.login;\nexport const getFtpLogin = state => state.userContext.ftpLogin;\nexport const getEmail = state => state.userContext.email;\nexport const getSubscriptionLevel = state => state.userContext.subscriptionLevel;\nexport const getIsArtpriceIp = state => state.userContext.artpriceIp;\nexport const getIsBot = state => state.userContext.bot;\nexport const getEmailStatus = state => state.userContext.emailStatus;\nexport const getIdprofessionaltype = state => state.userContext.idprofessionaltype;\nexport const getIsChildCustomer = state => state.userContext.isChildCustomer;\nexport const getIdstatutetype = state => state.userContext.idstatutetype;\nexport const getIdaccountrole = state => state.userContext.idaccountrole;\nexport const getCustomerVerificationStatus = state => state.userContext.customerVerificationStatus;\nexport const getUsersCount = state => state.userContext.activeSubscription?.usersCount;\nexport const getActiveSubscriptionName = state => state.userContext.activeSubscription?.name;\nexport const getActiveSubscription = state => state.userContext.activeSubscription;\nexport const getLastSubscription = state => state.userContext.lastSubscription;\n\nexport const hasModuleAccess = (state, { idmodule }) => {\n const activeSubscription = getActiveSubscription(state);\n if (activeSubscription) {\n return activeSubscription.modules?.includes(idmodule);\n }\n\n // special clause for one day\n const lastSubscription = getLastSubscription(state);\n if (lastSubscription && lastSubscription.nbDays === 1 && !lastSubscription.started) {\n return lastSubscription.modules?.includes(idmodule);\n }\n\n return false;\n};\n\nexport const getVerifiedAt = state => state.userContext.verifiedAt;\nexport const getHasImageAccess = state => state.userContext.activeSubscription?.hasImageAccess;\nexport const getHasIndexesAccess = state => hasModuleAccess(state, { idmodule: 4 });\nexport const getDisplayedPromotionId = state => state.userContext.displayedPromotionId;\nexport const getPushEmail = state => state.userContext.pushEmail || false;\nexport const getFavoriteCount = state => state.userContext.favoriteCount || 0;\nexport const getNewsletter = state => state.userContext.newsletter || 0;\nexport const getOnlyLotsSignedByArtistInPush = state => state.userContext.onlyLotsSignedByArtistInPush || false;\nexport const getMarketplace = state => state.userContext.marketplace || EMPTY_OBJECT;\nexport const getMarketplaceHasClassifieds = state => getMarketplace(state).hasClassifieds || false;\nexport const getMarketplaceMessageCount = state => getMarketplace(state).messageCount || 0;\nexport const getMarketplaceAwaitingOfferSelection = state => getMarketplace(state).awaitingOfferSelection || EMPTY_ARRAY;\nexport const getMarketplaceAuctionsWithOngoingTransactions = state => getMarketplace(state).auctionsWithOngoingTransactions || EMPTY_ARRAY;\nexport const getModificationRequiredCount = state => lodashGet(getMarketplace(state), 'counts.modificationRequiredCount', 0);\nexport const getExpiredCount = state => lodashGet(getMarketplace(state), 'counts.expiredCount', 0);\nexport const getHasStore = state => state.userContext?.marketplace?.hasStore;\nexport const getCurrentBillCurrency = state => state.userContext.currentBillCurrency || 'eur';\nexport const getMessageCount = state => state.userContext.messageCount || 0;\nexport const getEstimate = state => state.userContext.estimate || EMPTY_OBJECT;\nexport const getEstimateWaitingPaymentsCount = state => lodashGet(getEstimate(state), 'counts.waitingPaymentsCount', 0);\n\n/* * Notifications */\nexport const hasExpiredSubscription = state => {\n const lastSubscription = getLastSubscription(state);\n if (!lastSubscription?.dates) {\n return false;\n }\n\n if (isAfter(new Date(), new Date(lastSubscription.dates.dtExpire))) {\n // Special case: subscriptions that needs action (\"abo en souffrance\")\n // In this case, we do not want to indicate that the subscription is expired (the customer already has another notif).\n if (needsAction(lastSubscription.attentionNeeded)) {\n return false;\n }\n // Display 30 days after the expiration\n return differenceInDays(new Date(), new Date(lastSubscription.dates.dtExpire)) < 30;\n }\n return false;\n};\nexport const subscriptionNeedsAction = state => needsAction(getLastSubscription(state)?.attentionNeeded);\nexport const mustCompleteSellerProfile = state => getMarketplace(state).displayVerificationLink || false;\nexport const mustRenameStore = state => getMarketplace(state).mustRenameStore || false;\nexport const mustCompleteStoreInformation = state => getMarketplace(state).mustCompleteStoreInformation || false;\nexport const storeHasAProblem = state => mustRenameStore(state) || mustCompleteStoreInformation(state); // en fait il ne faut les compter qu'une fois si jamais il y a les deux...\n\nexport const hasAlmostExpiredSubscription = state => {\n const lastSubscription = getLastSubscription(state);\n if (!lastSubscription?.dates) {\n return false;\n }\n if (lastSubscription.nbDays < 90) {\n // we would always show this warning for subscriptions who are < 90 days\n return false;\n }\n if (isAfter(new Date(), new Date(lastSubscription.dates.dtExpire))) {\n // we return false if the subscription is already expired\n return false;\n }\n\n return differenceInDays(new Date(lastSubscription.dates.dtExpire), new Date()) < 90;\n};\nexport const hasNotSignedAuctioneerAgreement = state => {\n if (!getIsAuctioneer(state) && !getIsNonPartnerAuctioneer(state)) {\n return false;\n }\n\n return !getAuctioneerAgreementSignedAt(state);\n};\nexport const isUndelivered = state => isLoaded(state) && state.userContext.isUndelivered;\nexport const mustFillEmail = state => isLoaded(state) && (getEmail(state) || '').trim() === '';\nexport const emailNeedsVerification = state => isLoaded(state) && !mustFillEmail(state) && getEmailStatus(state) === CUSTOMER_EMAIL_STATUS_NONVERIFIED;\nexport const hasClassifiedsWaitingForModification = state => getModificationRequiredCount(state) > 0;\nexport const hasExpiredClassifieds = state => getExpiredCount(state) > 0;\nexport const hasEstimatesWaitingForPayment = state => getEstimateWaitingPaymentsCount(state) > 0;\nexport const hasClassifiedsAwaitingOfferSelection = state => getMarketplaceAwaitingOfferSelection(state).length > 0;\nexport const hasAuctionsWithOngoingTransactions = state => getMarketplaceAuctionsWithOngoingTransactions(state).length > 0;\n\nexport const getNotificationsCount = state =>\n [\n isUndelivered,\n hasExpiredSubscription,\n subscriptionNeedsAction,\n mustCompleteSellerProfile,\n storeHasAProblem,\n hasAlmostExpiredSubscription,\n hasNotSignedAuctioneerAgreement,\n mustFillEmail,\n hasClassifiedsWaitingForModification,\n hasExpiredClassifieds,\n hasEstimatesWaitingForPayment,\n hasClassifiedsAwaitingOfferSelection,\n hasAuctionsWithOngoingTransactions,\n ]\n .map(selector => selector(state))\n .filter(Boolean).length;\n","import { createNextState } from '@reduxjs/toolkit';\nimport { get, set, setWith } from 'lodash';\nimport {\n SAVE_COUNTRY_LABELS,\n SAVE_EVENT,\n STORE_EVENTS,\n SAVE_EVENTS_IDS_OF_TYPE,\n UPDATE_SELECTED_EVENT,\n UPDATE_WP_DATA,\n UPDATE_WP_MEDIA,\n UPDATE_WP_THUMBNAIL,\n SELECT_COUNTRY_FILTER,\n SELECT_DATES_FILTER,\n SAVE_TOTAL_COUNT,\n SELECT_PAGE_FILTER,\n} from '../../actions/events';\nimport { getEventsFilters } from '../../selectors/events';\nimport { distinct } from '../../../utils/common/filters';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function eventsReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_SELECTED_EVENT:\n set(draft, 'details.selectedEvent', payload.id || get(state, 'details.selectedEvent'));\n break;\n\n case SELECT_COUNTRY_FILTER: {\n const { idcountry } = payload;\n set(draft, 'filters.country', idcountry);\n break;\n }\n\n case SELECT_DATES_FILTER: {\n const { from, to } = payload;\n set(draft, 'filters.dates', { from, to });\n break;\n }\n\n case SELECT_PAGE_FILTER: {\n const { page } = payload;\n set(draft, 'filters.page', page);\n break;\n }\n\n case SAVE_TOTAL_COUNT: {\n const { eventsType, totalCount } = payload;\n const fakeGlobalState = { events: state };\n set(draft, `${eventsType}.${getEventsFilters(fakeGlobalState)}.totalCount`, totalCount);\n break;\n }\n\n case STORE_EVENTS: {\n const { loading, error, data } = payload;\n const currentData = get(state, 'store.data');\n set(draft, 'store', {\n loading,\n error,\n data: { ...currentData, ...data },\n });\n break;\n }\n\n case SAVE_EVENT: {\n const { idevent, loading, error, data } = payload;\n setWith(\n draft,\n `details.${idevent}`,\n {\n loading,\n error,\n data,\n },\n Object,\n );\n break;\n }\n\n case SAVE_EVENTS_IDS_OF_TYPE: {\n const { ids = [], eventsType, loading, error } = payload;\n const fakeGlobalState = { events: state };\n const path = `${eventsType}.${getEventsFilters(fakeGlobalState)}`;\n const currentIds = get(state, `${path}.ids`) || [];\n\n const newIds = currentIds.concat(ids).filter(distinct);\n\n set(draft, path, {\n loading,\n error,\n ids: newIds,\n });\n break;\n }\n\n case UPDATE_WP_DATA: {\n const { lang, loading, error, data } = payload;\n set(draft, `details.${get(state, 'details.selectedEvent')}.WP/${lang}`, {\n loading,\n error,\n data,\n });\n break;\n }\n\n case UPDATE_WP_MEDIA: {\n const { idmedia, loading, error, data } = payload;\n setWith(\n draft,\n `medias.${idmedia}`,\n {\n loading,\n error,\n data,\n },\n Object,\n );\n break;\n }\n\n case UPDATE_WP_THUMBNAIL: {\n const { idmedia, loading, error, slug } = payload;\n setWith(\n draft,\n `medias.bySlug.${slug}`,\n {\n loading,\n error,\n idmedia,\n },\n Object,\n );\n break;\n }\n\n case SAVE_COUNTRY_LABELS: {\n const { idcountry, loading, error, data } = payload;\n setWith(\n draft,\n `countries.${idcountry}`,\n {\n loading,\n error,\n data,\n },\n Object,\n );\n break;\n }\n\n default:\n return draft;\n }\n });\n}\n","import { combineReducers } from 'redux';\nimport artistReducer from './artist';\nimport summaryReducer from './summary';\nimport priceIndexReducer from './priceIndex';\nimport chronologicalReducer from './chronological';\nimport geographicalReducer from './geographical';\nimport priceSegmentsReducer from './priceSegments';\nimport mediumReducer from './medium';\nimport rankingReducer from './ranking';\n\nexport default combineReducers({\n artist: artistReducer,\n summary: summaryReducer,\n priceIndex: priceIndexReducer,\n chronological: chronologicalReducer,\n geographical: geographicalReducer,\n priceSegments: priceSegmentsReducer,\n medium: mediumReducer,\n ranking: rankingReducer,\n});\n","import { createNextState } from '@reduxjs/toolkit';\nimport { set } from 'lodash';\nimport { UPDATE_IDARTIST, UPDATE_ARTIST_INFOS, UPDATE_ARTIST_COUNTRIES, UPDATE_VISIBLE_YEARS, UPDATE_ARTIST_OPTIONS, UPDATE_DISPLAY } from '../../actions/indexes/artist';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function artistReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_IDARTIST:\n draft.idartist = payload.idartist;\n break;\n\n case UPDATE_ARTIST_INFOS: {\n const { idartist, loading, error, data } = payload;\n set(draft, `${idartist}.infos`, {\n loading,\n error,\n data,\n });\n break;\n }\n\n case UPDATE_ARTIST_OPTIONS: {\n const { idartist, currency, loading, error, data } = payload;\n set(draft, `${idartist}.${currency}.options`, {\n loading,\n error,\n data,\n });\n break;\n }\n\n case UPDATE_ARTIST_COUNTRIES: {\n const { idartist, loading, error, data } = payload;\n set(draft, `${idartist}.countries`, {\n loading,\n error,\n data,\n });\n break;\n }\n\n case UPDATE_VISIBLE_YEARS: {\n const { idartist, loading, error, data } = payload;\n set(draft, `${idartist}.visibleYears`, {\n loading,\n error,\n data,\n });\n break;\n }\n\n case UPDATE_DISPLAY: {\n const { idartist, loading, error, data } = payload;\n set(draft, `${idartist}.shouldDisplay`, {\n loading,\n error,\n data,\n });\n break;\n }\n\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport _ from 'lodash';\nimport { UPDATE_SUMMARY_DATA } from '../../actions/indexes/summary';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function summaryReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_SUMMARY_DATA: {\n const { idartist, currency, loading, error, data } = payload;\n _.set(draft, `${idartist}.${currency}`, {\n loading,\n error,\n data,\n });\n break;\n }\n\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { set, setWith } from 'lodash';\nimport { UPDATE_PRICE_INDEX_ARTIST_DATA, UPDATE_PRICE_INDEX_OPTIONS, UPDATE_PRICE_INDEX_STOCK_INDEX_DATA, UPDATE_PRICE_INDEX_CATEGORIES_DATA } from '../../actions/indexes/priceIndex';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function priceIndexReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_PRICE_INDEX_OPTIONS:\n draft.options = { ...state.options, ...payload.options };\n break;\n\n case UPDATE_PRICE_INDEX_ARTIST_DATA: {\n const { idartist, currency, loading, error, data } = payload;\n set(draft, `${idartist}.${currency}.artist`, {\n loading,\n error,\n data,\n });\n break;\n }\n\n case UPDATE_PRICE_INDEX_STOCK_INDEX_DATA: {\n const { idartist, currency, stockIndex, loading, error, data } = payload;\n set(draft, `${idartist}.${currency}.${stockIndex}`, {\n loading,\n error,\n data,\n });\n break;\n }\n\n case UPDATE_PRICE_INDEX_CATEGORIES_DATA: {\n const { idcategory, idartist, currency, loading, error, data } = payload;\n setWith(\n draft,\n `${idartist}.${currency}.categories.${idcategory}`,\n {\n loading,\n error,\n data,\n },\n Object,\n );\n break;\n }\n\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport _ from 'lodash';\nimport { UPDATE_CHRONOLOGICAL_DATA, UPDATE_CHRONOLOGICAL_DISPLAYED_CHART_TAB, UPDATE_CHRONOLOGICAL_OPTIONS } from '../../actions/indexes/chronological';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function chronologicalReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_CHRONOLOGICAL_OPTIONS:\n draft.options = { ...state.options, ...payload.options };\n break;\n\n case UPDATE_CHRONOLOGICAL_DISPLAYED_CHART_TAB:\n draft.displayedChartTab = payload.chartTab;\n break;\n\n case UPDATE_CHRONOLOGICAL_DATA: {\n const { idartist, currency, chartKey, loading, error, data } = payload;\n _.set(draft, `${idartist}.${currency}.${chartKey}`, {\n loading,\n error,\n data,\n });\n break;\n }\n\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport _ from 'lodash';\nimport { UPDATE_GEOGRAPHICAL_DATA, UPDATE_GEOGRAPHICAL_DISPLAYED_CHART_TAB, UPDATE_GEOGRAPHICAL_OPTIONS } from '../../actions/indexes/geographical';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function geographicalReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_GEOGRAPHICAL_OPTIONS:\n draft.options = { ...state.options, ...payload.options };\n break;\n\n case UPDATE_GEOGRAPHICAL_DISPLAYED_CHART_TAB:\n draft.displayedChartTab = payload.chartTab;\n break;\n\n case UPDATE_GEOGRAPHICAL_DATA: {\n const { idartist, currency, chartKey, loading, error, data } = payload;\n _.set(draft, `${idartist}.${currency}.${chartKey}`, {\n loading,\n error,\n data,\n });\n break;\n }\n\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport _ from 'lodash';\nimport { UPDATE_PRICE_SEGMENTS_DATA, UPDATE_PRICE_SEGMENTS_DISPLAYED_CHART_TAB, UPDATE_PRICE_SEGMENTS_OPTIONS } from '../../actions/indexes/priceSegments';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function priceSegmentsReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_PRICE_SEGMENTS_OPTIONS:\n draft.options = { ...state.options, ...payload.options };\n break;\n\n case UPDATE_PRICE_SEGMENTS_DISPLAYED_CHART_TAB:\n draft.displayedChartTab = payload.chartTab;\n break;\n\n case UPDATE_PRICE_SEGMENTS_DATA: {\n const { idartist, currency, chartKey, loading, error, data } = payload;\n _.set(draft, `${idartist}.${currency}.${chartKey}`, {\n loading,\n error,\n data,\n });\n break;\n }\n\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport _ from 'lodash';\nimport { UPDATE_MEDIUM_DATA, UPDATE_MEDIUM_DISPLAYED_CHART_TAB, UPDATE_MEDIUM_OPTIONS } from '../../actions/indexes/medium';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function mediumReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_MEDIUM_OPTIONS:\n draft.options = { ...state.options, ...payload.options };\n break;\n\n case UPDATE_MEDIUM_DISPLAYED_CHART_TAB:\n draft.displayedChartTab = payload.chartTab;\n break;\n\n case UPDATE_MEDIUM_DATA: {\n const { idartist, currency, chartKey, loading, error, data } = payload;\n _.set(draft, `${idartist}.${currency}.${chartKey}`, {\n loading,\n error,\n data,\n });\n break;\n }\n\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { set } from 'lodash';\nimport { UPDATE_RANKING_DATA } from '../../actions/indexes/ranking';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function rankingReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_RANKING_DATA: {\n const { idartist, currency, loading, error, data } = payload;\n set(draft, `${idartist}.${currency}`, {\n loading,\n error,\n data,\n });\n break;\n }\n\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { set } from 'lodash';\nimport { CHOOSE_PERIOD, UPDATE } from '../../../actions/marketplace/stores/stats';\nimport { BEST_ARTISTS, BEST_CLASSIFIEDS, COUNTRY_REPARTITION_KEY, INQUIRIES, TOTAL_COUNT_KEY, PUBLISHED_CLASSIFIEDS, VIEWED_CLASSIFIEDS } from '../../../constants/marketplace/store/stats';\n\nfunction getInitialState() {\n return {};\n}\n\nconst authorizedKeys = [TOTAL_COUNT_KEY, COUNTRY_REPARTITION_KEY, BEST_CLASSIFIEDS, BEST_ARTISTS, INQUIRIES, PUBLISHED_CLASSIFIEDS, VIEWED_CLASSIFIEDS];\nexport default function statsReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case CHOOSE_PERIOD: {\n const { start, end } = payload;\n draft.displayedPeriod = {\n start,\n end,\n };\n break;\n }\n case UPDATE: {\n const { key, value, error, loading } = payload;\n if (!authorizedKeys.includes(key.split('.')[0])) {\n throw new Error(`Unknown marketplace/store/stats key : ${key}`);\n }\n if (value !== undefined) {\n set(draft, `${key}.data`, value);\n }\n if (error !== undefined) {\n set(draft, `${key}.error`, error);\n }\n if (loading !== undefined) {\n set(draft, `${key}.loading`, loading);\n }\n break;\n }\n default:\n return draft;\n }\n });\n}\n","import { combineReducers } from 'redux';\nimport top from './top';\nimport list from './list';\nimport stats from './stats';\n\nexport default combineReducers({\n top,\n list,\n stats,\n});\n","import { createNextState } from '@reduxjs/toolkit';\nimport { UPDATE_TOP_STORES } from '../../../actions/marketplace/stores/top';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function topReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_TOP_STORES: {\n const { loading, result, error } = payload;\n draft.loading = loading;\n draft.result = result;\n draft.error = error;\n break;\n }\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { CLEAR_STORE_IMAGE_ERRORS, UPDATE_STORE, UPDATE_STORE_IMAGE, UPLOAD_STORE_IMAGE_ERROR_CODE, STORE_IMAGE_FORMAT_WARNING, CLEAR_STORE_IMAGE_FORMAT_WARNING } from '../../../actions/marketplace/stores';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function listReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_STORE_IMAGE: {\n const { id, imageSha1, loading } = payload;\n const image = draft[id].store.images.find(img => img.id === imageSha1);\n if (image) {\n image.loading = loading;\n }\n break;\n }\n case CLEAR_STORE_IMAGE_FORMAT_WARNING: {\n const { id, imageSha1 } = payload;\n const image = draft[id].store.images.find(img => img.id === imageSha1);\n if (image) {\n image.warning = null;\n }\n break;\n }\n case STORE_IMAGE_FORMAT_WARNING: {\n const { id, imageSha1 } = payload;\n const image = draft[id].store.images.find(img => img.id === imageSha1);\n if (image) {\n image.warning = true;\n }\n break;\n }\n case CLEAR_STORE_IMAGE_ERRORS: {\n const { id, imageSha1 } = payload;\n const image = draft[id].store.images.find(img => img.id === imageSha1);\n if (image) {\n image.errorCode = null;\n }\n break;\n }\n case UPLOAD_STORE_IMAGE_ERROR_CODE: {\n const { id, imageSha1, errorCode } = payload;\n const image = draft[id].store.images.find(img => img.id === imageSha1);\n if (image) {\n image.errorCode = errorCode;\n image.loading = false;\n }\n break;\n }\n case UPDATE_STORE: {\n const { id, loading, store, error } = payload;\n\n if (!draft[id]) {\n draft[id] = {};\n }\n\n draft[id].loading = loading;\n draft[id].error = error;\n\n if (store) {\n draft[id].store = store;\n }\n break;\n }\n default:\n return draft;\n }\n });\n}\n","import { combineReducers } from 'redux';\nimport stores from './stores';\nimport manage from './manage';\nimport messages from './messages';\n\nexport default combineReducers({\n stores,\n manage,\n messages,\n});\n","function getInitialState() {\n return { counts: {} };\n}\n\n// eslint-disable-next-line no-unused-vars\nexport default function manageReducer(state = getInitialState(), { type, payload }) {\n return state;\n}\n","import { /* CREATE_MESSAGE, */ RETRIEVE_MESSAGES } from '../../../actions/marketplace/classifieds/messages';\n\nexport default function messagesReducer(state = {}, { type, payload }) {\n switch (type) {\n /* case CREATE_MESSAGE: {\n // const { message, idclassified, idcustomerInterlocutor } = payload;\n return state;\n // return { ...state, [idclassified]: { idclassified, interlocuter: idcustomerInterlocutor, messages: [...state[idclassified].messages, { body: message }] } };\n } */\n case RETRIEVE_MESSAGES: {\n return { ...state, [payload.idclassified]: payload };\n }\n default:\n return state;\n }\n}\n","import { combineReducers } from 'redux';\nimport settingsReducer from './settings';\nimport dataReducer from './data';\n\nexport default combineReducers({\n settings: settingsReducer,\n data: dataReducer,\n});\n","import { createNextState } from '@reduxjs/toolkit';\nimport { set, merge } from 'lodash';\nimport { UPDATE_SETTINGS_PREFERENCES, FETCH_SETTINGS, UPDATE_CATEGORIES } from '../../actions/myartprice/settings';\nimport { SHORTCUT_SETTINGS_CATEGORIES, SHORTCUT_SETTINGS_SECTIONS } from '../../../constants/myartprice';\n\nfunction getInitialState() {\n return {\n // keep informations if want to disable alerts for a short time\n ended: undefined,\n futures: undefined,\n auctions: undefined,\n fixedPrice: undefined,\n };\n}\n\nexport default function settingsReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_SETTINGS_PREFERENCES: {\n const { section, value, params } = payload;\n if (section === SHORTCUT_SETTINGS_SECTIONS) {\n set(draft, params.section, value);\n } else if (section === SHORTCUT_SETTINGS_CATEGORIES) {\n set(draft, `categories.data.${params.idcategory}`, value);\n }\n break;\n }\n\n case FETCH_SETTINGS: {\n const { ended, futures, auctions, fixedPrice } = payload;\n draft.ended = ended !== undefined ? ended : draft.ended;\n draft.futures = futures !== undefined ? futures : draft.futures;\n draft.auctions = auctions !== undefined ? auctions : draft.auctions;\n draft.fixedPrice = fixedPrice !== undefined ? fixedPrice : draft.fixedPrice;\n break;\n }\n\n case UPDATE_CATEGORIES: {\n const { data, loading, error } = payload;\n merge(draft, {\n categories: {\n data,\n loading,\n error,\n },\n });\n break;\n }\n\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { merge, omit, get, set } from 'lodash';\nimport {\n UNFOLLOW_ARTIST,\n UPDATE_ARTISTS,\n ADD_LOT_FOLLOW,\n REMOVE_LOT_FOLLOW,\n ADD_CLASSIFIED_FOLLOW,\n REMOVE_CLASSIFIED_FOLLOW,\n GET_LOT_SIMILAR,\n UPDATE_FAVORITE_CLASSIFIEDS,\n UPDATE_FAVORITE_STORES,\n ADD_STORE_FOLLOW,\n REMOVE_STORE_FOLLOW,\n INCLUDE_IN_PUSH,\n UPDATE_MYARTPRICE_SEARCH_SCOPE,\n UPDATE_MYARTPRICE_CURRENT_PAGE,\n UPDATE_MYARTPRICE_ID_ENTITIES,\n UPDATE_MYARTPRICE_ENTITIES,\n UPDATE_MYARTPRICE_LOADING,\n UPDATE_MYARTPRICE_TOTAL_COUNT,\n} from '../../actions/myartprice/data';\nimport { UPDATE_ARTIST_PREFERENCES } from '../../actions/myartprice/settings';\nimport { SHORTCUT_SETTINGS_ARTISTS } from '../../../constants/myartprice';\n\nfunction getInitialState() {\n return {\n seaerchScope: undefined,\n artists: undefined,\n samples: {\n past: {\n count: 0,\n },\n future: {\n count: 0,\n },\n marketplace: {\n count: 0,\n },\n },\n favoriteLot: {\n data: [],\n loading: false,\n },\n favoriteClassified: {\n data: [],\n loading: false,\n },\n favoriteStore: {\n data: [],\n loading: false,\n },\n page: 1,\n loading: false,\n };\n}\n\nexport default function datasReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case UNFOLLOW_ARTIST: {\n const artists = get(draft, 'artists') || {};\n set(draft, 'artists', omit(artists, payload.idartists));\n break;\n }\n\n case UPDATE_MYARTPRICE_ID_ENTITIES: {\n set(draft, `ids`, payload);\n\n break;\n }\n\n case UPDATE_MYARTPRICE_LOADING: {\n set(draft, `loading`, payload);\n break;\n }\n\n case UPDATE_MYARTPRICE_TOTAL_COUNT: {\n set(draft, `totalCount`, payload);\n break;\n }\n\n case UPDATE_MYARTPRICE_ENTITIES: {\n set(draft, `entities`, payload);\n break;\n }\n\n case UPDATE_MYARTPRICE_CURRENT_PAGE: {\n set(draft, `page`, payload);\n break;\n }\n\n case UPDATE_MYARTPRICE_SEARCH_SCOPE: {\n set(draft, `searchScope`, payload);\n break;\n }\n\n case INCLUDE_IN_PUSH: {\n const { idartist } = payload;\n const artists = get(draft, 'artists') || {};\n set(draft, `artists.${idartist}`, { ...artists[idartist], includeInPush: true });\n break;\n }\n\n case UPDATE_ARTISTS: {\n const { artists, loading, error, lvl } = payload;\n merge(draft, {\n artists,\n loading,\n error,\n lvl,\n });\n break;\n }\n\n case UPDATE_ARTIST_PREFERENCES: {\n const { section, value, params } = payload;\n if (section === SHORTCUT_SETTINGS_ARTISTS) {\n set(draft, `artists.${params.idartist}.include_in_push`, value);\n }\n break;\n }\n\n case ADD_LOT_FOLLOW:\n set(draft, 'favoriteLot', { ...state.favoriteLot, data: state.favoriteLot.data.concat(payload.idlot) });\n break;\n case REMOVE_LOT_FOLLOW:\n set(draft, 'favoriteLot', { ...state.favoriteLot, data: state.favoriteLot.data.filter(idlot => payload.idlot !== idlot) });\n break;\n\n case UPDATE_FAVORITE_CLASSIFIEDS: {\n const { data, loading, error } = payload;\n set(draft, 'favoriteClassified', { ...state.favoriteClassified, data, loading, error });\n break;\n }\n case ADD_CLASSIFIED_FOLLOW:\n set(draft, 'favoriteClassified', { ...state.favoriteClassified, data: state.favoriteClassified.data.concat(payload.idclassified) });\n break;\n case REMOVE_CLASSIFIED_FOLLOW:\n set(draft, 'favoriteClassified', { ...state.favoriteClassified, data: state.favoriteClassified.data.filter(idclassified => payload.idclassified !== idclassified) });\n break;\n\n case UPDATE_FAVORITE_STORES: {\n const { data, loading, error } = payload;\n set(draft, 'favoriteStore', { ...state.favoriteStore, data, loading, error });\n break;\n }\n case ADD_STORE_FOLLOW:\n set(draft, 'favoriteStore', { ...state.favoriteStore, data: state.favoriteStore.data.concat(payload.idstore) });\n break;\n case REMOVE_STORE_FOLLOW:\n set(draft, 'favoriteStore', { ...state.favoriteStore, data: state.favoriteStore.data.filter(idstore => payload.idstore !== idstore) });\n break;\n\n case GET_LOT_SIMILAR:\n set(draft, 'similarLots', payload);\n break;\n default:\n return draft;\n }\n });\n}\n","export const UPDATE_SCROLL = 'ui/updateScroll';\nexport const updateScroll = top => ({\n type: UPDATE_SCROLL,\n payload: {\n top,\n },\n});\n","import { combineReducers } from 'redux';\nimport viewportReducer from './viewport';\nimport scrollReducer from './scroll';\nimport switchesReducer from './switches';\nimport dictionaryReducer from './dictionary';\nimport asyncStatusReducer from './asyncStatus';\n\nexport default combineReducers({\n scroll: scrollReducer,\n viewport: viewportReducer,\n switches: switchesReducer,\n dictionary: dictionaryReducer,\n asyncStatus: asyncStatusReducer,\n});\n","import { createNextState } from '@reduxjs/toolkit';\nimport { UPDATE_SCROLL } from '../../actions/ui/scroll';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function paramsReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_SCROLL:\n return payload;\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { UPDATE_VIEWPORT } from '../../actions/ui/viewport';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function viewportReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_VIEWPORT:\n return payload;\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { ON, OFF, TOGGLE } from '../../actions/ui/switches';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function switchesReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case ON: {\n draft[payload.id] = true;\n break;\n }\n case OFF: {\n draft[payload.id] = false;\n break;\n }\n case TOGGLE: {\n if (draft.hasOwnProperty(payload.id)) {\n draft[payload.id] = !draft[payload.id];\n } else {\n draft[payload.id] = true;\n }\n break;\n }\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { SET } from '../../actions/ui/dictionary';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function dictionaryReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case SET: {\n draft[payload.id] = payload.value;\n break;\n }\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { BEGIN, END } from '../../actions/ui/asyncStatus';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function asyncStatusReducer(state = getInitialState(), { type, payload }) {\n return createNextState(state, draft => {\n switch (type) {\n case BEGIN:\n draft[payload.id] = {\n loading: true,\n };\n break;\n case END:\n if (payload.error) {\n draft[payload.id] = {\n loading: false,\n error: payload.error,\n };\n } else {\n delete draft[payload.id];\n }\n break;\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { ARTDBWEB_LOT_INDICATOR } from '../actions/indicator';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function indicatorReducer(state = getInitialState(), action) {\n return createNextState(state, draft => {\n switch (action.type) {\n case ARTDBWEB_LOT_INDICATOR: {\n const { idlot, currency, loading, result, error } = action;\n if (!Object.prototype.hasOwnProperty.call(draft, idlot)) {\n draft[idlot] = {};\n }\n if (!Object.prototype.hasOwnProperty.call(draft[idlot], currency)) {\n draft[idlot][currency] = {};\n }\n draft[idlot][currency].loading = loading;\n draft[idlot][currency].result = result;\n draft[idlot][currency].error = error;\n break;\n }\n default:\n return draft;\n }\n });\n}\n","import { combineReducers } from 'redux';\nimport statsReducer from './stats';\nimport salesReducer from './sales';\nimport mediasReducer from './medias';\nimport contactReducer from './contact';\n\nexport default combineReducers({\n stats: statsReducer,\n sales: salesReducer,\n medias: mediasReducer,\n contact: contactReducer,\n});\n","import { createNextState } from '@reduxjs/toolkit';\nimport { merge } from 'lodash';\nimport { AUCTIONEERS_UPDATE_STATS } from '../../actions/auctioneers/stats';\n\nfunction getInitialState() {\n return {\n unauthorized: false,\n loaded: false,\n push: 0,\n future: {\n sales: 0,\n lots: 0,\n },\n past: {\n sales: 0,\n lots: 0,\n },\n error: '',\n };\n}\n\nexport default function statsReducer(state = getInitialState(), action) {\n return createNextState(state, draft => {\n switch (action.type) {\n case AUCTIONEERS_UPDATE_STATS: {\n const { loading, push, future, past, error, unauthorized } = action;\n merge(draft, { loading, push, future, past, error, unauthorized });\n break;\n }\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { AUCTIONEERS_SALES_PUSH, AUCTIONEERS_SALE_GEO, AUCTIONEERS_SALES_PROGRESS, AUCTIONEERS_SALE_TOP_5, AUCTIONEERS_SALES_SHOW } from '../../actions/auctioneers/sales';\n\nfunction getInitialState() {\n return {\n progress: {},\n top5: {},\n geo: {},\n push: {},\n show: {},\n };\n}\n\nexport default function salesReducer(state = getInitialState(), action) {\n return createNextState(state, draft => {\n switch (action.type) {\n case AUCTIONEERS_SALE_GEO: {\n const { result, id, loading, error } = action;\n draft.geo[id] = { data: result, loading, error };\n break;\n }\n case AUCTIONEERS_SALE_TOP_5: {\n const { idlots, id, loading, error } = action;\n draft.top5[id] = { idlots, loading, error };\n break;\n }\n case AUCTIONEERS_SALES_PROGRESS: {\n const { result, loading, error } = action;\n draft.progress = { ...result, loading, error };\n break;\n }\n case AUCTIONEERS_SALES_PUSH: {\n const { result, loading, error } = action;\n draft.push = { ...result, loading, error };\n break;\n }\n case AUCTIONEERS_SALES_SHOW: {\n const { result, loading, error } = action;\n draft.show = { ...result, loading, error };\n break;\n }\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { merge } from 'lodash';\nimport { AUCTIONEERS_MEDIA_SOURCES } from '../../actions/auctioneers/medias';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function statsReducer(state = getInitialState(), action) {\n return createNextState(state, draft => {\n switch (action.type) {\n case AUCTIONEERS_MEDIA_SOURCES: {\n const { loading, data, error } = action;\n merge(draft, { loading, data, error });\n break;\n }\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { merge } from 'lodash';\nimport { AUCTIONEERS_UPDATE_SENDING_STATUS, AUCTIONEERS_CLEAR_SENDING_STATUS } from '../../actions/auctioneers/contact';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function statsReducer(state = getInitialState(), action) {\n return createNextState(state, draft => {\n switch (action.type) {\n case AUCTIONEERS_CLEAR_SENDING_STATUS: {\n return {};\n }\n case AUCTIONEERS_UPDATE_SENDING_STATUS: {\n const { sending, data, error } = action;\n merge(draft, { sending, data, error });\n break;\n }\n default:\n return draft;\n }\n });\n}\n","import { get as getCookie, set as setCookie } from '../../utils/cookie';\nimport {\n UPDATE_CURRENCY_PREFERENCE,\n UPDATE_DIMENSION_PREFERENCE,\n UPDATE_LANG_PREFERENCE,\n UPDATE_PREFERENCE,\n UPDATE_FRESHNESS_PREFERENCE,\n UPDATE_ITEMS_PER_PAGE_PREFERENCE,\n UPDATE_LOTS_VIEW_FORMAT_PREFERENCE,\n UPDATE_ARTISTS_VIEW_FORMAT_PREFERENCE,\n} from '../actions/preferences';\nimport { SEARCH_ITEMS_PER_PAGE } from '../../constants/rails';\n\nfunction getInitialState() {\n const lotCurrency = getCookie('lot-currency') ? getCookie('lot-currency').toLowerCase() : 'usd';\n const lotDimension = getCookie('lot-dimension') ? getCookie('lot-dimension').toLowerCase() : 'cm';\n const customerLang = getCookie('customer-lang') ? getCookie('customer-lang').toLowerCase() : 'en';\n const lotsViewFormat = getCookie('lot-view') ? getCookie('lot-view').toLowerCase() : 'square';\n const artistsViewFormat = getCookie('artists-view') ? getCookie('artists-view').toLowerCase() : 'square';\n const freshness = getCookie('nbd') ? parseInt(getCookie('nbd'), 10) : 5;\n const ipp = getCookie('ipp') ? parseInt(getCookie('ipp'), 10) : SEARCH_ITEMS_PER_PAGE[0];\n\n return {\n dimension: lotDimension,\n currency: lotCurrency,\n lang: customerLang,\n itemsPerPage: ipp,\n freshness,\n lotsViewFormat,\n artistsViewFormat,\n };\n}\n\nexport default function preferencesReducer(state = getInitialState(), action) {\n switch (action.type) {\n case UPDATE_CURRENCY_PREFERENCE: {\n setCookie('lot-currency', action.currency.toLowerCase());\n\n return {\n ...state,\n currency: action.currency.toLowerCase(),\n };\n }\n case UPDATE_DIMENSION_PREFERENCE: {\n setCookie('lot-dimension', action.dimension.toLowerCase());\n\n return {\n ...state,\n dimension: action.dimension.toLowerCase(),\n };\n }\n case UPDATE_LOTS_VIEW_FORMAT_PREFERENCE: {\n setCookie('lot-view', action.lotsViewFormat.toLowerCase());\n\n return {\n ...state,\n lotsViewFormat: action.lotsViewFormat.toLowerCase(),\n };\n }\n case UPDATE_ARTISTS_VIEW_FORMAT_PREFERENCE: {\n setCookie('artists-view', action.artistsViewFormat.toLowerCase());\n\n return {\n ...state,\n artistsViewFormat: action.artistsViewFormat.toLowerCase(),\n };\n }\n case UPDATE_LANG_PREFERENCE: {\n return {\n ...state,\n lang: action.lang.toLowerCase(),\n };\n }\n case UPDATE_FRESHNESS_PREFERENCE: {\n setCookie('nbd', action.freshness);\n\n return {\n ...state,\n freshness: action.freshness,\n };\n }\n case UPDATE_PREFERENCE: {\n const newState = { ...state };\n\n if (action.currency) {\n newState.currency = action.currency.toLowerCase();\n }\n if (action.lang) {\n newState.lang = action.lang.toLowerCase();\n }\n if (action.dimension) {\n newState.dimension = action.dimension.toLowerCase();\n }\n if (action.artistLotsSectionOrder) {\n newState.artistLotsSectionOrder = action.artistLotsSectionOrder;\n }\n if (action.hideArtistFollowRecommendationsModaleUntil) {\n newState.hideArtistFollowRecommendationsModaleUntil = action.hideArtistFollowRecommendationsModaleUntil;\n }\n\n return newState;\n }\n case UPDATE_ITEMS_PER_PAGE_PREFERENCE: {\n const itemsPerPage = Number.parseInt(action.itemsPerPage, 10);\n if (Number.isNaN(itemsPerPage)) {\n console.error(`Bad IPP: ${action.itemsPerPage}`);\n } else {\n setCookie('ipp', itemsPerPage);\n return {\n ...state,\n itemsPerPage,\n };\n }\n return state;\n }\n default:\n return state;\n }\n}\n","import { updateArtistInfos, updateArtistOptions, updateDisplay } from './artist';\nimport { updateSummaryData } from './summary';\nimport { updatePriceIndexArtistData } from './priceIndex';\n\n/* eslint-disable import/prefer-default-export */\nexport const updateIndexesState = reduxState => dispatch => {\n const { currency, artist: { id, options: artistOptions, ...artistInfos } = {}, display, summary, priceIndex } = reduxState;\n dispatch(updateArtistInfos({ idartist: id, loading: false, data: artistInfos }));\n dispatch(updateArtistOptions({ idartist: id, currency, loading: false, data: artistOptions }));\n dispatch(updateSummaryData({ idartist: id, currency, loading: false, data: summary }));\n dispatch(updateDisplay({ idartist: id, loading: false, data: display }));\n dispatch(updatePriceIndexArtistData({ idartist: id, currency, loading: false, data: priceIndex }));\n};\n","import { updateIndexesState } from './indexes';\n\nexport const UPDATE_REDUX_STORE = 'index/UPDATE_REDUX_STORE';\nconst simpleUpdateStore = data => ({\n type: UPDATE_REDUX_STORE,\n data,\n});\nconst customUpdateStore = (action, data) => {\n switch (action) {\n case 'updateIndexesState':\n return updateIndexesState(data);\n default:\n throw new Error(`Unknown action [${action}] for customUpdateStore`);\n }\n};\n\nexport const updateReduxStore = reduxStore => {\n if (!reduxStore) {\n return simpleUpdateStore(undefined);\n }\n const { __customAction, ...data } = reduxStore;\n if (__customAction) {\n // custom case\n return customUpdateStore(__customAction, data);\n }\n return simpleUpdateStore(data);\n};\n","import { assignWith, isUndefined } from 'lodash';\n\nfunction customizer(objValue, srcValue) {\n return isUndefined(objValue) ? srcValue : objValue;\n}\n\nexport function assignOnlyNewKeys(object, source) {\n assignWith(object, source, customizer);\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { set, get } from 'lodash';\nimport { assignOnlyNewKeys } from '../../utils/object';\nimport { UPDATE_AUCTIONEERS } from '../actions/dbEntities/auctioneer';\nimport { UPDATE_ARTISTS, UPDATE_FREE_IDARTIST } from '../actions/dbEntities/artist';\nimport { UPDATE_LOTS } from '../actions/dbEntities/lot';\nimport { UPDATE_SALES } from '../actions/dbEntities/sale';\nimport { UPDATE_STORES } from '../actions/dbEntities/store';\nimport { UPDATE_CLASSIFIEDS } from '../actions/dbEntities/classified';\nimport { UPDATE_CATEGORIES } from '../actions/dbEntities/category';\nimport { UPDATE_TECHNIQUES } from '../actions/dbEntities/technique';\nimport { UPDATE_COUNTRIES } from '../actions/dbEntities/country';\nimport { UPDATE_ENTITY } from '../actions/dbEntities/entity';\nimport { UPDATE_LOTARTISTASSOCIATIONTYPES } from '../actions/dbEntities/lotartistassociationtype';\n\nfunction getInitialState() {\n return {\n free: {},\n lots: {},\n sales: {},\n artists: {},\n classifieds: {},\n stores: {},\n auctioneers: {},\n categories: {},\n countries: {},\n techniques: {},\n messages: {},\n lotartistassociationtypes: {},\n };\n}\n\nexport default function dbEntitiesReducer(state = getInitialState(), action) {\n const { type, payload } = action;\n const { data, error, loading, entityName, forceUpdate } = payload || {};\n\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_FREE_IDARTIST: {\n set(draft, 'free.artist', { id: data, error, loading });\n break;\n }\n case UPDATE_LOTS: {\n let newData = get(draft, 'lots.data') || {};\n\n if (forceUpdate) {\n newData = { ...newData, ...data };\n } else {\n assignOnlyNewKeys(newData, data);\n }\n\n set(draft, 'lots', { data: newData, error, loading });\n break;\n }\n case UPDATE_SALES: {\n const newData = get(draft, 'sales.data') || {};\n assignOnlyNewKeys(newData, data);\n set(draft, 'sales', { data: newData, error, loading });\n break;\n }\n case UPDATE_ARTISTS: {\n const newData = get(draft, 'artists.data') || {};\n assignOnlyNewKeys(newData, data);\n set(draft, 'artists', { data: newData, error, loading });\n break;\n }\n case UPDATE_CLASSIFIEDS: {\n const newData = get(draft, 'classifieds.data') || {};\n assignOnlyNewKeys(newData, data);\n set(draft, 'classifieds', { data: newData, error, loading });\n break;\n }\n case UPDATE_ENTITY: {\n let newData = get(draft, `${entityName}.data`) || {};\n\n if (forceUpdate) {\n newData = { ...newData, ...data };\n } else {\n assignOnlyNewKeys(newData, data);\n }\n\n set(draft, entityName, { data: newData, error, loading });\n break;\n }\n case UPDATE_STORES: {\n const newData = get(draft, 'stores.data') || {};\n assignOnlyNewKeys(newData, data);\n set(draft, 'stores', { data: newData, error, loading });\n break;\n }\n case UPDATE_AUCTIONEERS: {\n const newData = get(draft, 'auctioneers.data') || {};\n assignOnlyNewKeys(newData, data);\n set(draft, 'auctioneers', { data: newData, error, loading });\n break;\n }\n case UPDATE_CATEGORIES: {\n const newData = get(draft, 'categories.data') || {};\n assignOnlyNewKeys(newData, data);\n set(draft, 'categories', { data: newData, error, loading });\n break;\n }\n case UPDATE_TECHNIQUES: {\n const newData = get(draft, 'techniques.data') || {};\n assignOnlyNewKeys(newData, data);\n set(draft, 'techniques', { data: newData, error, loading });\n break;\n }\n case UPDATE_COUNTRIES: {\n const newData = get(draft, 'countries.data') || {};\n assignOnlyNewKeys(newData, data);\n set(draft, 'countries', { data: newData, error, loading });\n break;\n }\n case UPDATE_LOTARTISTASSOCIATIONTYPES: {\n const newData = get(draft, 'lotartistassociationtypes.data') || {};\n assignOnlyNewKeys(newData, data);\n set(draft, 'lotartistassociationtypes', { data: newData, error, loading });\n break;\n }\n default:\n return draft;\n }\n });\n}\n","import { combineReducers } from 'redux';\nimport messagesReducer from './messages';\n\nexport default combineReducers({\n messages: messagesReducer,\n});\n","import { createNextState } from '@reduxjs/toolkit';\nimport { ACCOUNT_MESSAGES, DELETE_FROM_CURRENT_FORLDER, UPDATE_MESSAGE_COUNT } from '../../actions/account/messages';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function switchesReducer(state = getInitialState(), action) {\n return createNextState(state, draft => {\n switch (action.type) {\n case UPDATE_MESSAGE_COUNT: {\n const { count } = action;\n draft.count = parseInt(count, 10);\n break;\n }\n case DELETE_FROM_CURRENT_FORLDER: {\n const { id } = action;\n delete draft.idmessages[id];\n break;\n }\n case ACCOUNT_MESSAGES: {\n const { result, loading, error } = action;\n draft.error = error;\n draft.loading = loading;\n\n if (result) {\n draft.perPage = parseInt(result.perPage, 10);\n draft.count = parseInt(result.count, 10);\n draft.idmessages = result.idmessages;\n }\n break;\n }\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { UPDATE_AGREEMENT } from '../actions/agreements';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function salesReducer(state = getInitialState(), action) {\n return createNextState(state, draft => {\n switch (action.type) {\n case UPDATE_AGREEMENT: {\n const { idagreementtype, result, loading, error } = action;\n draft[idagreementtype] = { ...result, loading, error };\n break;\n }\n default:\n return draft;\n }\n });\n}\n","import { combineReducers } from 'redux';\nimport physicproductsReducer from './physicproducts';\nimport promotionsReducer from './promotions';\nimport settingsReducer from './settings';\nimport stripeReducer from './stripe';\n\nexport default combineReducers({\n promotions: promotionsReducer,\n physicproducts: physicproductsReducer,\n settings: settingsReducer,\n stripe: stripeReducer,\n});\n","import { createNextState } from '@reduxjs/toolkit';\nimport { get, merge } from 'lodash';\nimport { UPDATE_PROMOTIONS } from '../../actions/subscriptions/promotion';\nimport { assignOnlyNewKeys } from '../../../utils/object';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function switchesReducer(state = getInitialState(), { type, payload }) {\n const { data, error, loading } = payload || {};\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_PROMOTIONS: {\n const newData = get(draft, 'data') || {};\n assignOnlyNewKeys(newData, data);\n merge(draft, { data: newData, error, loading });\n break;\n }\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { UPDATE_PHYSICPRODUCTS } from '../../actions/subscriptions/physicproduct';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function switchesReducer(state = getInitialState(), { type, payload }) {\n const { data, error, loading } = payload || {};\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_PHYSICPRODUCTS: {\n return {\n data,\n error,\n loading,\n };\n }\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { UPDATE_SUBSCRIPTIONS_SETTINGS } from '../../actions/subscriptions/settings';\n\nfunction getInitialState() {\n return {\n view: 'new',\n filter: 'subscription',\n image: true,\n quantity: 1,\n promocode: '',\n selectedIdphysicproduct: undefined,\n reload: 0,\n hasAuctioneerDiscount: false,\n hasLoyaltyDiscount: false,\n hasOnedayRefund: false,\n };\n}\n\nexport default function switchesReducer(state = getInitialState(), { type, payload }) {\n const { data } = payload || {};\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_SUBSCRIPTIONS_SETTINGS: {\n return { ...draft, ...data };\n }\n default:\n return draft;\n }\n });\n}\n","import { createNextState } from '@reduxjs/toolkit';\nimport { UPDATE_SUBSCRIPTIONS_STRIPE } from '../../actions/subscriptions/stripe';\n\nfunction getInitialState() {\n return {};\n}\n\nexport default function switchesReducer(state = getInitialState(), { type, payload }) {\n const { data } = payload || {};\n return createNextState(state, draft => {\n switch (type) {\n case UPDATE_SUBSCRIPTIONS_STRIPE: {\n return { ...draft, ...data };\n }\n default:\n return draft;\n }\n });\n}\n","import { combineReducers } from 'redux';\nimport eventsReducer from './events';\nimport indexesReducer from './indexes';\nimport marketplaceReducer from './marketplace';\nimport myartpriceReducer from './myartprice';\nimport uiReducer from './ui';\nimport indicatorReducer from './indicator';\nimport auctioneersReducer from './auctioneers';\nimport preferencesReducer from './preferences';\nimport { UPDATE_REDUX_STORE } from '../actions';\nimport dbEntitiesReducer from './dbEntities';\nimport accountReducer from './account';\nimport agreementsReducer from './agreements';\nimport subscriptionsReducer from './subscriptions';\n\nexport default function createRootReducer(otherReducers = {}) {\n const combinedReducers = combineReducers({\n events: eventsReducer,\n indexes: indexesReducer,\n indicator: indicatorReducer,\n preferences: preferencesReducer,\n marketplace: marketplaceReducer,\n myartprice: myartpriceReducer,\n dbEntities: dbEntitiesReducer,\n subscriptions: subscriptionsReducer,\n auctioneers: auctioneersReducer,\n ui: uiReducer,\n account: accountReducer,\n agreements: agreementsReducer,\n ...otherReducers,\n });\n\n return function rootReducer(state, action) {\n if (action.type === UPDATE_REDUX_STORE) {\n // eslint-disable-next-line no-param-reassign\n state = action.data;\n }\n\n return combinedReducers(state, action);\n };\n}\n","import { combineReducers } from '@reduxjs/toolkit';\nimport scopedReducer from './scoped';\nimport universalReducer from './universal';\n\nexport default combineReducers({\n scoped: scopedReducer,\n universal: universalReducer,\n});\n","import userContextReducer from './userContext';\nimport headerReducer from './header';\nimport footerReducer from './footer';\nimport searchReducer from './search';\nimport accountLotsListsReducer from './account/lotslists';\nimport artistReducer from './artist';\nimport promotionReducer from './promotion';\nimport homepageReducer from './homepage';\nimport paymentsReducer from './payments';\nimport artpriceReducer from './artprice';\nimport estimatesReducer from './estimates';\n\nconst sliceReducers = {\n userContext: userContextReducer,\n promotion: promotionReducer,\n artist: artistReducer,\n header: headerReducer,\n footer: footerReducer,\n accountLotsLists: accountLotsListsReducer,\n search: searchReducer,\n homepage: homepageReducer,\n payments: paymentsReducer,\n artprice: artpriceReducer,\n estimates: estimatesReducer,\n};\n\nexport default sliceReducers;\n","/* eslint-disable no-underscore-dangle */\nimport * as Sentry from '@sentry/react';\nimport { configureStore } from '@reduxjs/toolkit';\nimport { createReduxEnhancer } from '@sentry/react';\nimport createRootReducer from './reducers';\nimport sliceReducers from './slices';\nimport { getIdcustomer } from './slices/userContext/selectors';\n\nconst sentryReduxEnhancer = createReduxEnhancer({\n stateTransformer: state => {\n if (state?.userContext) {\n return {\n userContext: state.userContext,\n };\n }\n return null;\n },\n});\n\nfunction makeStore(initialState = {}, onServer = false) {\n return configureStore({\n reducer: createRootReducer({ ...sliceReducers }),\n devTools: !onServer,\n preloadedState: initialState,\n enhancers: [sentryReduxEnhancer],\n });\n}\n\nlet memoizedStore = null;\nexport default function getConfiguredStore(onServer = false) {\n if (memoizedStore) {\n return memoizedStore;\n }\n\n let initialState = {};\n if (typeof window !== 'undefined' && window.__PRELOADED_STATE__) {\n initialState = window.__PRELOADED_STATE__;\n delete window.__PRELOADED_STATE__;\n }\n\n memoizedStore = makeStore(initialState, onServer);\n\n if (!onServer) {\n const idcustomer = getIdcustomer(memoizedStore.getState());\n if (idcustomer) {\n Sentry.setUser({ id: idcustomer, ip_address: '{{auto}}' });\n }\n }\n\n return memoizedStore;\n}\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const sendValidationEmail = async ({ backTo }) => {\n try {\n await internalAxios.post('/api/wallet/customer/send_validation_email', { bt: backTo });\n } catch (error) {\n console.error(error);\n }\n};\n\nexport const setNewsletterSubscription = async ({ section, value }) => {\n try {\n await internalAxios.post('/api/wallet/customer/change_value_for_newsletter', { section, value, format: 'json' });\n } catch (error) {\n console.error(error);\n }\n};\n\nexport const updatePreferredDimensionUnit = async ({ dimensionUnit }) => {\n const response = await internalAxios.post('/api/wallet/customer/update_preferred_dimensions_unit?format=json', { dimension_unit: dimensionUnit });\n return response;\n};\n\nexport const updatePreferredCurrency = async ({ currency }) => {\n const response = await internalAxios.post('/api/wallet/customer/update_preferred_currency?format=json', { currency });\n return response;\n};\n","/* eslint-disable no-return-await */\nimport { debounce } from 'lodash';\nimport { getCSRFParam, getCSRFToken } from '../../utils/csrf';\nimport { internalAxios } from '../../utils/axios/internal';\nimport xRequestIdManager from '../../utils/xRequestIdManager';\n\n/*\naapi stands for Analytic Api -> it's the analytic system of Artprice (not using Google etc).\n-> The associated controller is the following: api/analytics_controller.rb\n-> It will send events to kafka, which will be used to create the \"logstash-analytics\" index\n\n\nLiterature:\nhttps://css-tricks.com/send-an-http-request-on-page-exit/\n */\n\nasync function post(url, data) {\n if (window.fetch) {\n const headers = {\n 'Content-Type': 'application/json',\n };\n if (!xRequestIdManager.isEmpty()) {\n headers['X-Trace-Request-Id'] = xRequestIdManager.get();\n }\n\n return await fetch(url, {\n method: 'POST',\n headers,\n body: JSON.stringify(data),\n keepalive: true,\n });\n }\n\n return await internalAxios.post(url, data, {\n headers: { 'content-type': 'application/json' },\n });\n}\n\nasync function beacon(url, data) {\n if (navigator.sendBeacon) {\n const formData = new FormData();\n Object.entries(data).forEach(([key, value]) => {\n formData.append(key, value);\n });\n\n /* add x_trace_request_id when present */\n if (!xRequestIdManager.isEmpty()) {\n formData.append('X-Trace-Request-Id', xRequestIdManager.get());\n }\n\n /* probably useless since protect_from_forgery is disabled */\n const csrfParam = getCSRFParam();\n const csrfToken = getCSRFToken();\n if (csrfParam && csrfToken) {\n formData.append(csrfParam, csrfToken);\n }\n\n try {\n const sent = navigator.sendBeacon(url, formData);\n if (sent) {\n // if not sent, will continue to the fallback\n return true;\n }\n } catch (e) {\n console.warn(e);\n }\n }\n\n // fallback\n await post(url, data);\n return undefined;\n}\n\n/*\nStandard aapi methods\n */\n\nexport const aapi = async (type, complements = {}) => post(`/aapi/log/${type}`, complements);\n\nexport const aapiBeacon = (type, complements = {}) => beacon(`/aapi/log/${type}`, complements);\n\n/*\n Debounced (= prevent too much aapi calls)\n Not using beacon : formData doesn't support array of objects\n /!\\ Call made after a location change may not be sent\n */\n\nconst LOGS = [];\nconst debouncedPost = debounce(() => {\n post('/aapi/logs', { logs: [...LOGS] });\n LOGS.splice(0, LOGS.length); // emptying array in place\n}, 50);\n\nexport const delayedAapi = (type, complements = {}) => {\n LOGS.push({\n type,\n ...complements,\n });\n debouncedPost();\n};\n\nif (typeof window !== 'undefined') {\n if (!window.artprice) {\n window.artprice = {};\n }\n window.artprice.aapiBeacon = aapiBeacon;\n window.artprice.aapi = aapi;\n}\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const getSome = async (id = [], withDates = false) => {\n const params = { id };\n if (!withDates) params.dates = 0;\n const response = await internalAxios.get('/api/artdbweb/artist/get', { params });\n return response.data;\n};\n\nexport const free = async () => {\n const response = await internalAxios.get('/api/artdbweb/artist/free');\n return response.data;\n};\n","import { get } from 'lodash';\nimport { internalAxios } from '../../utils/axios/internal';\n\nconst priceIndexOptionsToURL = ({ idartist, idcurrency }) => {\n let paramsUrl = '';\n if (idartist) paramsUrl += `idartist=${idartist}&`;\n else console.error('ERROR: idartist =', idartist);\n\n if (idcurrency) paramsUrl += `idcurrency=${idcurrency}&`;\n else console.error('ERROR: idcurrency =', idcurrency);\n\n return paramsUrl;\n};\n\nexport const artistDataService = async ({ idartist, idcurrency }) => {\n const response = await internalAxios.get(`/api/artdbweb/indexes/price_index?${priceIndexOptionsToURL({ idartist, idcurrency })}`);\n return response.data;\n};\n\nexport const globalIndexDataService = async ({ idartist, idcurrency }) => {\n const response = await internalAxios.get(`/api/artdbweb/indexes/price_index_global_index?${priceIndexOptionsToURL({ idartist, idcurrency })}`);\n return response.data;\n};\n\nexport const sAndP500DataService = async ({ idartist, idcurrency }) => {\n const response = await internalAxios.get(`/api/artdbweb/indexes/price_index_s_and_p_500?${priceIndexOptionsToURL({ idartist, idcurrency })}`);\n return response.data;\n};\n\nexport const cac40DataService = async ({ idartist, idcurrency }) => {\n const response = await internalAxios.get(`/api/artdbweb/indexes/price_index_cac_40?${priceIndexOptionsToURL({ idartist, idcurrency })}`);\n return response.data;\n};\n\nexport const daxDataService = async ({ idartist, idcurrency }) => {\n const response = await internalAxios.get(`/api/artdbweb/indexes/price_index_dax?${priceIndexOptionsToURL({ idartist, idcurrency })}`);\n return response.data;\n};\n\nexport const categoriesDataService = async ({ idcategory, idartist, idcurrency }) => {\n const response = await internalAxios.get(`/api/artdbweb/indexes/price_index?idcategory=${idcategory}&${priceIndexOptionsToURL({ idartist, idcurrency })}`);\n return response.data;\n};\n\nexport const artistSelectService = async ({ excludedIdArtist, term, page = 1, perPage = 10 }) => {\n const response = await internalAxios.post('/api/artdbweb/artist/json_search', { term, page, per_page: perPage });\n return get(response, 'data.artists', []).filter(({ id }) => id !== excludedIdArtist);\n};\n","import { internalAxios } from '../../../utils/axios/internal';\n\nexport const classifiedsForCustomerAndArtist = async idclassified => {\n try {\n const response = await internalAxios.get(`/api/marketplace/show/classifieds_for_customer_and_artist/${idclassified}?format=json`);\n return response.data;\n } catch (error) {\n console.error(error);\n return { count: 0, items: [] };\n }\n};\n\nexport const classifiedsForCustomer = async idclassified => {\n try {\n const response = await internalAxios.get(`/api/marketplace/show/classifieds_for_customer_and_artist/${idclassified}?format=json&only_idartist=1`);\n return response.data;\n } catch (error) {\n console.error(error);\n return { count: 0, items: [] };\n }\n};\n\nexport const fetchFavoriteClassifieds = async () => {\n const response = await internalAxios.get('/api/wallet/classified/favorites');\n return response.data;\n};\n\nexport const followClassified = async idclassified => {\n const response = await internalAxios.get(`/api/wallet/classified/add_in_favorite/${idclassified}?format=json`);\n return response.data;\n};\n\nexport const unfollowClassified = async idclassified => {\n const response = await internalAxios.get(`/api/wallet/classified/remove_from_favorite/${idclassified}?format=json`);\n return response.data;\n};\n\nexport const createMessage = async ({ message, idclassified, idcustomerInterlocutor }) => {\n const response = await internalAxios.post('/api/wallet/classifiedmessage/create_message?format=json', { text: message, idclassified, idcustomer_interlocutor: idcustomerInterlocutor });\n return response.data;\n};\n\nexport const retrieveMessage = async idclassified => {\n const response = await internalAxios.post('/api/wallet/classifiedmessage/get_conversation?format=json', { idclassified });\n return response.data;\n};\n","import { get } from 'lodash';\nimport { cleanPathname, objectToQueryString } from '../../utils/http';\nimport {\n CLASSIFIEDS,\n MYARTPRICE_STORE,\n AUCTIONEER_SALE_LOTS,\n AUCTIONEER_PAST_SALES,\n AUCTIONEER_FUTURE_SALES,\n AUCTIONEER_SALE,\n MYARTPRICE_LOTS_AUCTIONED_OFF,\n MYARTPRICE_LOTS_FOLLOW_FUTURE,\n MYARTPRICE_LOTS_FOLLOW_PAST,\n MYARTPRICE_LOTS_FOLLOW_MARKETPLACE,\n MYARTPRICE_LOTS_FUTURE_ALL,\n MYARTPRICE_LOTS_FUTURE_NEW,\n MYARTPRICE_LOTS_MARKETPLACE,\n STORES,\n MYARTPRICE_MARKETPLACE,\n MARKETPLACE_MANAGE_MODIFICATION_REQUIRED,\n MARKETPLACE_MANAGE_OFFLINE,\n MARKETPLACE_MANAGE_MY_OFFERS,\n MARKETPLACE_MANAGE_WINNING_AUCTIONS,\n MARKETPLACE_MANAGE_ONLINE,\n MARKETPLACE_MANAGE_WAITING,\n MARKETPLACE_MANAGE_WITH_OFFERS,\n CLASSIFIEDS_IN_STORE,\n LOTS,\n TOTAL_ACCESS,\n TOTAL_ACCESS_GEO,\n TOTAL_ACCESS_CHRONO,\n TOTAL_ACCESS_LOTS,\n TOTAL_ACCESS_ARTISTS,\n TOTAL_ACCESS_AUCTIONEERS,\n ARTIST_LOTS_FUTURE,\n ARTIST_LOTS_PAST,\n ARTIST_LOTS_ALL,\n SALE_LOTS,\n MYARTPRICE_LOTS_HISTORY,\n SALES_FUTURES,\n ARTISTS,\n} from '../../constants/search/scope';\nimport { internalAxios } from '../../utils/axios/internal';\n\nconst cancelMap = new Map();\nconst createMapKey = (searchScope, otherParams) => `${searchScope}_${otherParams.join('&')}`;\n\nconst baseFetch = async ({ params, searchScope, cancelPrevious = false, otherParams }) => {\n const queryString = objectToQueryString(params);\n if (!otherParams.includes('format=json')) {\n otherParams.push('format=json');\n }\n\n let baseUrl;\n switch (searchScope) {\n case MYARTPRICE_STORE:\n baseUrl = '/api/es/myartprice/store';\n break;\n case MARKETPLACE_MANAGE_MODIFICATION_REQUIRED:\n baseUrl = '/marketplace/manage/modification_required';\n break;\n case MARKETPLACE_MANAGE_OFFLINE:\n baseUrl = '/marketplace/manage/offline';\n break;\n case MARKETPLACE_MANAGE_MY_OFFERS:\n baseUrl = '/marketplace/manage/my_offers';\n break;\n case MARKETPLACE_MANAGE_WINNING_AUCTIONS:\n baseUrl = '/marketplace/manage/winning_auctions';\n break;\n case MARKETPLACE_MANAGE_ONLINE:\n baseUrl = '/marketplace/manage/online';\n break;\n case MARKETPLACE_MANAGE_WAITING:\n baseUrl = '/marketplace/manage/waiting';\n break;\n case MARKETPLACE_MANAGE_WITH_OFFERS:\n baseUrl = '/marketplace/manage/with_offers';\n break;\n case CLASSIFIEDS_IN_STORE:\n baseUrl = '';\n break;\n case CLASSIFIEDS:\n baseUrl = '/marketplace';\n break;\n case STORES:\n baseUrl = '/marketplace/store';\n break;\n case AUCTIONEER_SALE:\n baseUrl = '/api/auctioneers/sales/get';\n break;\n case AUCTIONEER_SALE_LOTS:\n baseUrl = '/api/es/auctioneers/lots_for_sale';\n break;\n case AUCTIONEER_FUTURE_SALES:\n baseUrl = '/api/es/auctioneers/future_sales';\n break;\n case AUCTIONEER_PAST_SALES:\n baseUrl = '/api/es/auctioneers/past_sales';\n break;\n case MYARTPRICE_LOTS_FUTURE_NEW:\n baseUrl = '/api/es/myartprice/lots_future_new';\n break;\n case MYARTPRICE_LOTS_FUTURE_ALL:\n baseUrl = '/api/es/myartprice/lots_future_all';\n break;\n case MYARTPRICE_LOTS_AUCTIONED_OFF:\n baseUrl = '/api/es/myartprice/lots_auctioned_off';\n break;\n case MYARTPRICE_LOTS_MARKETPLACE:\n baseUrl = '/api/myartprice/search/marketplace_lots';\n break;\n case MYARTPRICE_LOTS_FOLLOW_FUTURE:\n baseUrl = '/api/es/myartprice/future_lots_follow';\n break;\n case MYARTPRICE_LOTS_FOLLOW_PAST:\n baseUrl = '/api/es/myartprice/past_lots_follow';\n break;\n case MYARTPRICE_LOTS_FOLLOW_MARKETPLACE:\n baseUrl = '/api/es/myartprice/marketplace_lots_follow';\n break;\n case MYARTPRICE_MARKETPLACE:\n baseUrl = '/api/es/myartprice/marketplace';\n break;\n case TOTAL_ACCESS:\n case TOTAL_ACCESS_LOTS:\n baseUrl = '/api/es/lots/total_access';\n break;\n case TOTAL_ACCESS_ARTISTS:\n baseUrl = '/api/es/lots/total_access_artists';\n break;\n case TOTAL_ACCESS_AUCTIONEERS:\n baseUrl = '/api/es/lots/total_access_auctioneers';\n break;\n case TOTAL_ACCESS_CHRONO:\n baseUrl = '/api/es/lots/total_access_chrono';\n break;\n case TOTAL_ACCESS_GEO:\n baseUrl = '/api/es/lots/total_access_geo';\n break;\n case LOTS:\n case SALE_LOTS:\n case ARTIST_LOTS_ALL:\n case ARTIST_LOTS_PAST:\n case ARTIST_LOTS_FUTURE:\n case MYARTPRICE_LOTS_HISTORY:\n case SALES_FUTURES:\n case ARTISTS:\n baseUrl = cleanPathname(window.location.pathname);\n break;\n default:\n throw new Error(`Unknown searchScope: ${searchScope} in service fetchFacets`);\n }\n\n const url = `${baseUrl}?${otherParams.join('&')}${queryString !== '' ? '&' : ''}${queryString}`;\n\n const cancelMapKey = createMapKey(searchScope, otherParams);\n if (cancelPrevious && cancelMap.has(cancelMapKey)) {\n cancelMap.get(cancelMapKey).abort(`Cancelling previous call [${cancelMapKey}]`);\n }\n const cancelController = new AbortController();\n cancelMap.set(cancelMapKey, cancelController);\n\n const response = await internalAxios.get(url, { signal: cancelController.signal });\n return response?.data || {};\n};\n\nexport const fetchFacets = async (params, searchScope, cancelPrevious = false) =>\n baseFetch({\n params,\n searchScope,\n cancelPrevious,\n otherParams: ['facets=1'],\n });\n\nexport const fetchResults = async (params, searchScope, cancelPrevious = false) =>\n baseFetch({\n params,\n searchScope,\n cancelPrevious,\n otherParams: ['results=1'],\n });\n\nexport const artistSearch = async ({ excludedIdArtist, term, page = 1, perPage = 10, favorites = false }) => {\n const data = { term, page, per_page: perPage };\n if (favorites) {\n data.favorites = 1;\n }\n const response = await internalAxios.post('/api/artdbweb/artist/json_search', data);\n return get(response, 'data.artists', []).filter(({ id }) => id !== excludedIdArtist);\n};\n\nexport const artistSearchOnKeyword = async ({ term, signal }) => {\n const response = await internalAxios.post('/api/artdbweb/artist/json_search', { term, page: 1, per_page: 6 }, { signal });\n return { data: get(response, 'data.artists', []), totalCount: get(response, 'data.count', []), outOfBounds: get(response, 'data.outOfBounds', false) };\n};\n\nexport const lotSearchOnKeyword = async ({ term, signal }) => {\n const response = await internalAxios.post('/api/artdbweb/lot/search', { term }, { signal });\n return get(response, 'data', { totalCount: 0 });\n};\n\nexport const classifiedSearchOnKeyword = async ({ term, signal }) => {\n const response = await internalAxios.post('/api/wallet/classified/search', { term }, { signal });\n return get(response, 'data', { totalCount: 0 });\n};\n\nexport const reportSearchOnKeyword = async ({ term, signal }) => {\n const response = await internalAxios.post('/api/es/reports/search', { per_page: 2, keyword: term }, { signal });\n return get(response, 'data', { totalCount: 0 });\n};\n\nexport const artmarketInsightSearchOnKeyword = async ({ term, signal }) => {\n const response = await internalAxios.post('/api/es/artmarketinsights/search', { per_page: 2, keyword: term }, { signal });\n return get(response, 'data', { totalCount: 0 });\n};\n\nexport const auctioneerSearch = async ({ term, page = 1, perPage = 10 }) => {\n const data = { term, page, per_page: perPage };\n const response = await internalAxios.post('/api/artdbweb/auctioneer/simple_search', data);\n return get(response, 'data.auctioneers', []);\n};\n","import { internalAxios } from '../../../utils/axios/internal';\n\nexport const getCountryRepartition = async () => {\n const response = await internalAxios.get('/api/marketplace/stats/country_repartition');\n return response.data;\n};\n\nexport const getBestClassifieds = async ({ startDate, endDate }) => {\n const response = await internalAxios.get(`/api/marketplace/stats/best_classifieds?start_date=${startDate}&end_date=${endDate}`);\n return response.data;\n};\n\nexport const getInquiriesStats = async () => {\n const response = await internalAxios.get('/api/marketplace/stats/inquiries');\n return response.data;\n};\n\nexport const getPublishedClassifieds = async () => {\n const response = await internalAxios.get('/api/marketplace/stats/published_classifieds');\n return response.data;\n};\n\nexport const getReceivedMessages = async () => {\n const response = await internalAxios.get('/api/marketplace/stats/received_messages');\n return response.data;\n};\n\nexport const getViewedClassifieds = async () => {\n const response = await internalAxios.get('/api/marketplace/stats/viewed_classifieds');\n return response.data;\n};\n","import { isEmpty } from 'lodash';\nimport { internalAxios } from '../../utils/axios/internal';\n\n// Pour le moment c'est inutilisé'\nexport const getSubscriptions = async () => {\n const response = await internalAxios.get('/api/stripe_subscriptions/get_subscriptions');\n return response.data;\n};\n\nexport const getCustomer = async () => {\n const response = await internalAxios.get('/api/stripe_subscriptions/get_customer');\n return response.data;\n};\n\nexport const getPlatforms = async ({ type, quantity, promocode, image, idphysicproducts, idestimates, idphysicsale }) => {\n if (isEmpty(idphysicproducts) && !idphysicsale) {\n console.error('no idphysicproducts');\n return {};\n }\n\n const response = await internalAxios.get('/api/wallet/physicproduct/platforms', { params: { type, quantity, promocode, image, idphysicproducts, idestimates, idphysicsale } });\n return response.data;\n};\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const login = async params => {\n const response = await internalAxios.post('/api/wallet/customer/login?format=json', params);\n return response.data;\n};\n\nexport const get = async params => {\n const response = await internalAxios.post('/api/wallet/customer/show?format=json', params);\n return response.data;\n};\n\nexport const getAddresses = async params => {\n const response = await internalAxios.post('/api/wallet/address/get_customer_addresses?format=json', params);\n return response.data;\n};\n\nexport const setAddress = async params => {\n const response = await internalAxios.post('/api/wallet/address/update_or_create?format=json', params);\n return response.data;\n};\n\nexport const updateOrCreate = async params => {\n const response = await internalAxios.post('/api/wallet/customer/update_or_create?format=json', params);\n return response.data;\n};\n\nexport const exixts = async params => {\n const response = await internalAxios.post('/api/wallet/customer/exu?format=json', params);\n return response.data;\n};\n\nexport const hasUpgrades = async () => {\n const response = await internalAxios.get('/api/wallet/customer/has_upgrades?format=json');\n return response.data;\n};\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const getLists = async ({ sort }) => {\n const response = await internalAxios.get(`/api/wallet/customerlotslist/get.json`, { params: { sort } });\n return response.data;\n};\n\nexport const createList = async ({ label }) => {\n const response = await internalAxios.post(`/api/wallet/customerlotslist/create.json`, { label });\n return response.data;\n};\n\nexport const renameList = async ({ id, label }) => {\n const response = await internalAxios.post(`/api/wallet/customerlotslist/rename.json`, { id, label });\n return response.data;\n};\n\nexport const deleteLists = async ({ ids }) => {\n const response = await internalAxios.post(`/api/wallet/customerlotslist/delete.json`, { ids });\n return response.data;\n};\n\nexport const addLots = async ({ id, idlots }) => {\n const response = await internalAxios.post(`/api/wallet/customerlotslist/add_lots.json`, { id, idlots });\n return response.data;\n};\n\nexport const deleteLots = async ({ id, idlots }) => {\n const response = await internalAxios.post(`/api/wallet/customerlotslist/delete_lots.json`, { id, idlots });\n return response.data;\n};\n\nexport const moveLots = async ({ idfrom, idto, idlots }) => {\n const response = await internalAxios.post(`/api/wallet/customerlotslist/move_lots.json`, { idfrom, idto, idlots });\n return response.data;\n};\n\nexport const copyLots = async ({ idfrom, idto, idlots }) => {\n const response = await internalAxios.post(`/api/wallet/customerlotslist/copy_lots.json`, { idfrom, idto, idlots });\n return response.data;\n};\n\nexport const getDataList = async ({ id, sort, page, perPage, paginate = true }) => {\n const response = await internalAxios.get(`/api/wallet/customerlotslist/get_data_list`, { params: { id, sort, page, per_page: perPage, paginate } });\n return response.data;\n};\n\nexport const getData = async ({ id, idlot }) => {\n const response = await internalAxios.get(`/api/wallet/customerlotslist/get_data`, { params: { id, idlot } });\n return response.data;\n};\n","import { get as lodashGet } from 'lodash';\nimport { internalAxios } from '../../utils/axios/internal';\n\nexport const get = async ({ filter, image, promocode, quantity }) => {\n const response = await internalAxios.get('/api/wallet/physicproduct/list.json', { params: { filter, image, promocode, quantity } });\n return response.data;\n};\n\nexport const getCart = async ({ type, image, promocode, idphysicproducts, idphysicsale }) => {\n try {\n const response = await internalAxios.get('/api/wallet/physicproduct/cart.json', { params: { type, image, promocode, idphysicproducts, idphysicsale } });\n return {\n status: 'ok',\n ...response.data,\n };\n } catch (e) {\n return {\n status: 'ko',\n ...lodashGet(e, 'response.data', {}),\n };\n }\n};\n\nexport const productLegals = async ({ promocode, type, image, idphysicproducts }) => {\n const response = await internalAxios.get(`/api/wallet/physicproduct/cgv.json?promocode=${promocode}&image=${image}&type=${type}&idphysicproducts=${JSON.stringify(idphysicproducts)}`);\n return response.data;\n};\n","import { internalAxios } from '../../utils/axios/internal';\n\nexport const storesForArtist = async idartist => {\n const response = await internalAxios.get(`/api/wallet/store/stores_for_artist/${idartist}.json`);\n return response.data;\n};\n\nexport const save = async (idstore, values) => {\n const response = await internalAxios.post(`/api/wallet/store/save/${idstore}.json`, { store: values });\n return response.data;\n};\n\nexport const sitenameExists = async (idstore, sitename) => {\n const response = await internalAxios.post(`/api/wallet/store/sitename_exists/${idstore}.json`, { q: sitename });\n return response.data;\n};\n\nexport const removeArtist = async idartist => {\n const response = await internalAxios.post(`/api/wallet/store/remove_artist/${idartist}`, {});\n return response.data;\n};\n\nexport const addArtist = async idartist => {\n const response = await internalAxios.post(`/api/wallet/store/add_artist/${idartist}.json`, {});\n return response.data;\n};\n\nexport const getTop = async () => {\n const response = await internalAxios.get('/api/wallet/store/top');\n return response.data;\n};\n\nexport const get = async id => {\n const response = await internalAxios.get(`/api/wallet/store/get/${id}.json`);\n return response.data;\n};\n\nconst getImageSizeAsPromise = src =>\n new Promise((resolve, reject) => {\n const img = new Image();\n img.onload = () => resolve({ height: img.naturalHeight, width: img.naturalWidth });\n img.onerror = reject;\n img.src = src;\n });\n\nconst getSizeFromImageAsPromise = file =>\n new Promise(resolve => {\n const reader = new FileReader();\n reader.onload = async () => {\n resolve(await getImageSizeAsPromise(reader.result));\n };\n reader.readAsDataURL(file);\n });\n\nexport const uploadImage = async (file, overridedImageId) => {\n let url = '/api/wallet/store/create_image';\n if (overridedImageId) {\n url = `${url}/${overridedImageId}`;\n }\n\n if (!/\\/(jpg|png|jpeg)$/i.test(file.type)) {\n return 404;\n }\n\n const result = await getSizeFromImageAsPromise(file);\n if (result.height < 250 && result.width < 250) {\n // Not Acceptable\n return 406;\n }\n\n const data = new FormData();\n data.append('blob', file, 'image.jpg');\n\n const config = {\n header: {\n 'Content-Type': 'multipart/form-data',\n },\n };\n\n return internalAxios\n .post(url, data, config)\n .then(response => response.status)\n .catch(error => error.response.status);\n};\n\nexport const deleteImage = async id => {\n const response = await internalAxios.post(`/api/wallet/store/delete_image/${id}.json`, {});\n return response.data;\n};\n\nexport const setPrimaryImage = async id => {\n const response = await internalAxios.post(`/api/wallet/store/set_primary_image/${id}.json`, {});\n return response.data;\n};\n","import axios from 'axios';\nimport xRequestIdManager from '../xRequestIdManager';\n\n/*\n This is the instance of Axios used to make internal calls\n - with credentials for CORS\n - X-Trace-Request-Id header\n*/\nexport const internalAxios = axios.create({\n withCredentials: true,\n});\n\ninternalAxios.interceptors.request.use(config => {\n if (!xRequestIdManager.isEmpty()) {\n // eslint-disable-next-line no-param-reassign\n config.headers['X-Trace-Request-Id'] = xRequestIdManager.get();\n }\n return config;\n});\n\nfunction manageRefreshSession(response) {\n if (response?.status === 449) {\n window.location.reload();\n }\n}\n\ninternalAxios.interceptors.response.use(\n response => {\n manageRefreshSession(response);\n return response;\n },\n error => {\n if (!axios.isCancel(error)) {\n manageRefreshSession(error.response);\n }\n return Promise.reject(error);\n },\n);\n","export const distinct = (value, index, self) => self.indexOf(value) === index;\n\nexport const noFalsy = i => !!i;\n","import { Cookies } from 'react-cookie';\nimport { domain } from './http';\n\n// Client side : memoized at the beginning then always reused ; server side : this just happens once at the start of the server (so no real performance problems here)\nlet memoizedCookie = new Cookies();\nexport const getCookies = () => memoizedCookie;\n\n// This is used exclusively server side; it will setup a new Cookie instance for each new request.\n// If the incoming request does not have cookies, we must ensure that a new Cookies instance is created (other the new request will use the previous Cookie instance)\nexport const setCookies = cookiesString => {\n if (cookiesString) {\n memoizedCookie = new Cookies(cookiesString);\n } else {\n memoizedCookie = new Cookies();\n }\n};\n\nexport const get = name => getCookies().get(name);\n\nexport const set = (name, value, options = {}) => {\n getCookies().set(name, value, { domain: domain(), path: '/', ...options });\n};\n","import isUndefined from 'lodash/isUndefined';\nimport i18next from 'i18next';\nimport fr from 'date-fns/locale/fr';\nimport de from 'date-fns/locale/de';\nimport it from 'date-fns/locale/it';\nimport es from 'date-fns/locale/es';\nimport en from 'date-fns/locale/en-US';\nimport zh from 'date-fns/locale/zh-CN';\nimport { parseISO } from 'date-fns/parseISO';\nimport { format } from 'date-fns/format';\nimport { isDate } from 'date-fns/isDate';\nimport { isValid } from 'date-fns/isValid';\nimport { addSeconds } from 'date-fns/addSeconds';\nimport { formatDistance } from 'date-fns/formatDistance';\nimport { tz } from '@date-fns/tz';\n\nconst FNS_LOCALES = { fr, en, de, zh, it, es };\n\n/*\n Format a string using date-fns;\n */\nexport const formatFns = (date, newFormat = \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\", opts = { locale: undefined, ignoreTZ: false }) => {\n if (isUndefined(date)) {\n return undefined;\n }\n\n try {\n // Step 1 : get the date object\n let dateObject;\n if (isDate(date)) {\n dateObject = date;\n } else {\n const parsedDate = parseISO(date);\n if (isValid(parsedDate)) {\n dateObject = parsedDate;\n } else {\n // last chance (probably won't work)\n dateObject = new Date(date);\n }\n }\n\n // Step 2 : process options\n const options = {\n locale: FNS_LOCALES[opts.locale || i18next.language || 'en'],\n };\n if (opts.ignoreTZ) {\n // Will always consider we are in France (same TZ as the db)\n options.in = tz('Europe/Paris');\n }\n\n // Step 3 : format\n return format(dateObject, newFormat, options);\n } catch (e) {\n throw new Error(`Error while using formatFns on \"${date}\" : ${e}`);\n }\n};\n\n/*\n Humanize a duration in seconds using date-fns;\n */\nexport const humanizeDurationFns = (seconds, opts = {}) => {\n const locale = FNS_LOCALES[opts.locale || i18next.language || 'en'];\n\n const dt2 = Date.now();\n const dt1 = addSeconds(dt2, -seconds);\n return formatDistance(dt1, dt2, { locale });\n};\n","import { pickBy, isNull, memoize, pick } from 'lodash';\nimport queryString from 'query-string';\nimport { MANAGED_LOCALES } from '../constants/locales';\n\nexport const queryStringToObject = params => {\n const paramsObject = queryString.parse(params);\n\n Object.keys(paramsObject).forEach(key => {\n if (key.match(/.*\\[\\]$/)) {\n paramsObject[key.replace('[]', '')] = paramsObject[key];\n delete paramsObject[key];\n }\n });\n\n // queryString parse returns a weird Object (without prototype)\n // The redux-toolkit dev validator want a real object.\n return { ...paramsObject };\n};\n\n/* memoized function returning the current value of the query string (with freezing to prevent modifying the memoized object */\nconst memoizedParamsFromUrl = memoize(url => Object.freeze(queryStringToObject(url)));\nexport const getCurrentQueryObject = () => memoizedParamsFromUrl(window.location.search);\n\nexport const objectToQueryString = params => {\n const paramsForQuery = { ...params };\n\n Object.keys(pickBy(paramsForQuery, value => !isNull(value))).forEach(key => {\n if (Array.isArray(paramsForQuery[key]) && !key.match(/.*\\[\\]$/)) {\n paramsForQuery[`${key}[]`] = paramsForQuery[key];\n delete paramsForQuery[key];\n }\n });\n\n return queryString.stringify(paramsForQuery);\n};\n\nexport const domain = () => window.location.hostname.split('.').slice(-2).join('.');\n\nexport const localeFromUrl = () => {\n const fromUrl = window.location.hostname.split('.')[0] === 'www' ? 'en' : window.location.hostname.split('.')[0];\n if (!MANAGED_LOCALES.includes(fromUrl)) {\n // when accessing with site-artp.artprice.xxx for example\n console.warn('Unmanaged locale:', fromUrl);\n return 'en';\n }\n return fromUrl;\n};\n\nexport const cleanPathname = pathname => {\n if (pathname?.startsWith('//')) {\n return pathname.replace('//', '/');\n }\n return pathname;\n};\n\nconst QUERY_PARAMS_TO_KEEP = ['i18n_mode'];\nexport const updateUrlQuery = params => {\n // const qs = objectToQueryString({ ...getCurrentQueryObject(), ...params });\n const qo = getCurrentQueryObject();\n const qs = objectToQueryString({ ...pick(qo, QUERY_PARAMS_TO_KEEP), ...params });\n\n if (qs !== '' && !qs.startsWith('?')) {\n window.history.replaceState(window.history.state, '', `?${qs}`);\n } else {\n window.history.replaceState(window.history.state, '', cleanPathname(window.location.pathname));\n }\n};\n","import { HOSTNAME_PREFIXES, LOCALE_BY_PREFIX } from '../../constants/locales';\n\nexport function createNewUrlForLocale(locale, newLocale) {\n // we have to use decodeURIComponent here because of SSR (in artprice_js_renderer we sometimes set an encoded url instead of a correct one)\n return `${window.location.origin.replace(HOSTNAME_PREFIXES[locale], HOSTNAME_PREFIXES[newLocale])}/ul?p=${encodeURIComponent(decodeURIComponent(window.location.pathname))}`;\n}\n\nexport function guessNewUrlForLocale(newLocale) {\n const match = window.location.host.match(/^(\\w+)\\.\\w+\\./);\n if (Array.isArray(match) && match[1] in LOCALE_BY_PREFIX) {\n return createNewUrlForLocale(LOCALE_BY_PREFIX[match[1]], newLocale);\n }\n\n return createNewUrlForLocale('__UNKNOWN__', newLocale);\n}\n","// Fallback storage\nimport { isUndefined } from 'lodash';\n\nconst IN_MEMORY_STORAGE = {\n store: {},\n setItem(key, value) {\n this.store[key] = value;\n },\n getItem(key) {\n return this.store[key];\n },\n removeItem(key) {\n delete this.store[key];\n },\n};\n\n// Testing support\n// https://michalzalecki.com/why-using-localStorage-directly-is-a-bad-idea/\nfunction isSupported(storage) {\n try {\n const testKey = '__random_key_we_are_not_going_to_use__';\n storage.setItem(testKey, testKey);\n storage.removeItem(testKey);\n return true;\n } catch (e) {\n return false;\n }\n}\n\nconst set = (storage, key, value) => {\n if (!isUndefined(value)) {\n if (isSupported(storage)) {\n storage.setItem(key, JSON.stringify(value));\n } else {\n IN_MEMORY_STORAGE.setItem(key, value);\n }\n }\n};\n\nconst get = (storage, key, defaultValue) => {\n let value;\n if (isSupported(storage)) {\n value = JSON.parse(storage.getItem(key));\n } else {\n value = IN_MEMORY_STORAGE.getItem(key);\n }\n if (!value) return defaultValue;\n\n return value;\n};\n\nconst remove = (storage, key) => {\n if (isSupported(storage)) {\n storage.removeItem(key);\n } else {\n IN_MEMORY_STORAGE.removeItem(key);\n }\n};\n\n// Exported functions -----------------------------------------------------------------------------\n\n// Session storage\nexport const setSessionStorage = (key, value) => {\n set(sessionStorage, key, value);\n};\n\nexport const getSessionStorage = (key, defaultValue) => get(sessionStorage, key, defaultValue);\n\nexport const removeSessionStorage = key => {\n remove(sessionStorage, key);\n};\n\n// Local storage\n\nexport const setLocaleStorage = (key, value) => {\n set(localStorage, key, value);\n};\n\nexport const getLocaleStorage = (key, defaultValue) => get(localStorage, key, defaultValue);\n\nexport const removeLocaleStorage = key => {\n remove(localStorage, key);\n};\n","/*\n Must be identical to return types from the attention_needed method (artprice_shop)\n */\n\nexport const STRIPE_CANCELLED = 'stripe_cancelled';\nexport const STRIPE_NEED_ACTION = 'stripe_need_action';\nexport const PAYPAL_CANCELLED = 'paypal_cancelled';\n","import { PAYPAL_CANCELLED, STRIPE_CANCELLED, STRIPE_NEED_ACTION } from '../../constants/subscriptions';\n\nexport const isCancelled = attentionNeeded => [STRIPE_CANCELLED, PAYPAL_CANCELLED].includes(attentionNeeded);\n\nexport const needsAction = attentionNeed => [STRIPE_NEED_ACTION].includes(attentionNeed);\n","import * as Sentry from '@sentry/react';\nimport { onClient } from './ssr';\n\nconst xRequestIdManager = {\n xRequestId: null,\n isEmpty() {\n return !this.xRequestId;\n },\n get() {\n return this.xRequestId;\n },\n set(xRequestId) {\n this.xRequestId = xRequestId;\n },\n};\n\nfunction fetchAndSetXRequestId() {\n try {\n const requestId = document.querySelector('meta[name=x-request-id]')?.content?.trim();\n if (requestId && requestId !== '') {\n xRequestIdManager.set(requestId);\n Sentry.setTag('request_id', requestId);\n } else {\n // fallback on js global value\n const fallbackRequestId = window.artprice?.requestId;\n if (fallbackRequestId && fallbackRequestId !== '') {\n xRequestIdManager.set(fallbackRequestId);\n Sentry.setTag('request_id', requestId);\n }\n }\n } catch (e) {\n console.error(e);\n }\n}\n\n/*\nFirst run, we populate the xRequestIdManager with the meta=x-request-id\n */\nif (onClient()) {\n fetchAndSetXRequestId();\n setTimeout(fetchAndSetXRequestId, 100); // ceinture/bretelle\n}\n\nexport default xRequestIdManager;\n"],"names":["FUTURE","FUTURE_NOT_PARTNER","PAST","PAST_NOT_PARTNER","HOME_PAGE","DT_START","DT_EXPIRE","DEFAULT_COUNTRY_FILTER","DEFAULT_DATE_START_FILTER","DEFAULT_DATE_EXPIRE_FILTER","DEFAULT_PAGE_FILTER","DEFAULT_FILTERS","PER_PAGE","NOT_PARTNERS_PER_PAGE","TAB_CA","TAB_SOLD","TAB_UNSOLD","TAB_AVERAGE","MANAGED_LOCALES","HOSTNAME_PREFIXES","en","fr","de","it","es","zh","LOCALE_BY_PREFIX","www","FLAGS","LANGUAGES_RSX_KEY","VERTICAL_BAR_CURRENT_ELEMENT_KEY","MYARTPRICE_DRAWER_ID","SHORTCUT_SETTINGS_SECTIONS","SHORTCUT_SETTINGS_CATEGORIES","SHORTCUT_SETTINGS_ARTISTS","SHORTCUTS_SETTINGS","SHORTCUT_SUMMARY","MYARTPRICE_SUMMARY_FILTER","MYARTPRICE_SUMMARY_NEWS_ONLY","SHORTCUT_LOTS_FUTURE_NEW","SHORTCUT_LOTS_FUTURE_ALL","SHORTCUT_LOTS_AUCTIONED_OFF","SHORTCUT_LOTS_MARKETPLACE","SHORTCUTS_LOTS","SHORTCUT_LOTS_FOLLOW_PAST","SHORTCUT_LOTS_FOLLOW_FUTURE","SHORTCUT_LOTS_FOLLOW_MARKETPLACE","SHORTCUTS_LOTS_FOLLOW","SHORTCUT_MARKETPLACE","SHORTCUTS_MARKETPLACE","CURRENCIES","CURRENCIES_FROM_RAILS","DEFAULT_CURRENCIES","flow","Object","entries","arr","filter","_","defaultCurrency","fromEntries","OPTIONAL_CURRENCIES","LANGUAGES","FRENCH","iso2","ENGLISH","ITALIAN","SPANISH","GERMAN","CHINESE","CLASSIFIEDS","SEARCH_SCOPE_CLASSIFIEDS","STORES","SEARCH_SCOPE_STORES","LOTS","SEARCH_SCOPE_LOTS","AUCTIONEER_PAST_SALES","SEARCH_SCOPE_AUCTIONEER_PAST_SALES","AUCTIONEER_SALE_LOTS","SEARCH_SCOPE_AUCTIONEER_SALE_LOTS","AUCTIONEER_FUTURE_SALES","SEARCH_SCOPE_AUCTIONEER_FUTURE_SALES","AUCTIONEER_SALE","SEARCH_SCOPE_AUCTIONEER_SALE","MYARTPRICE_STORE","SEARCH_SCOPE_MYARTPRICE_STORE","MYARTPRICE_LOTS_MARKETPLACE","SEARCH_SCOPE_MYARTPRICE_LOTS_MARKETPLACE","MYARTPRICE_LOTS_FUTURE_ALL","SEARCH_SCOPE_MYARTPRICE_LOTS_FUTURE_ALL","MYARTPRICE_LOTS_FUTURE_NEW","SEARCH_SCOPE_MYARTPRICE_LOTS_FUTURE_NEW","MYARTPRICE_LOTS_FOLLOW_FUTURE","SEARCH_SCOPE_MYARTPRICE_LOTS_FOLLOW_FUTURE","MYARTPRICE_LOTS_FOLLOW_PAST","SEARCH_SCOPE_MYARTPRICE_LOTS_FOLLOW_PAST","MYARTPRICE_LOTS_FOLLOW_MARKETPLACE","SEARCH_SCOPE_MYARTPRICE_LOTS_FOLLOW_MARKETPLACE","MYARTPRICE_LOTS_AUCTIONED_OFF","SEARCH_SCOPE_MYARTPRICE_LOTS_AUCTIONED_OFF","MYARTPRICE_MARKETPLACE","SEARCH_SCOPE_MYARTPRICE_MARKETPLACE","MARKETPLACE_MANAGE_ONLINE","SEARCH_SCOPE_MARKETPLACE_MANAGE_ONLINE","MARKETPLACE_MANAGE_WAITING","SEARCH_SCOPE_MARKETPLACE_MANAGE_WAITING","MARKETPLACE_MANAGE_OFFLINE","SEARCH_SCOPE_MARKETPLACE_MANAGE_OFFLINE","MARKETPLACE_MANAGE_MODIFICATION_REQUIRED","SEARCH_SCOPE_MARKETPLACE_MANAGE_MODIFICATION_REQUIRED","MARKETPLACE_MANAGE_WITH_OFFERS","SEARCH_SCOPE_MARKETPLACE_MANAGE_WITH_OFFERS","MARKETPLACE_MANAGE_MY_OFFERS","SEARCH_SCOPE_MARKETPLACE_MANAGE_MY_OFFERS","MARKETPLACE_MANAGE_WINNING_AUCTIONS","SEARCH_SCOPE_MARKETPLACE_MANAGE_WINNING_AUCTIONS","CLASSIFIEDS_IN_STORE","SEARCH_SCOPE_CLASSIFIEDS_IN_STORE","TOTAL_ACCESS","TOTAL_ACCESS_LOTS","TOTAL_ACCESS_ARTISTS","TOTAL_ACCESS_AUCTIONEERS","TOTAL_ACCESS_GEO","TOTAL_ACCESS_CHRONO","ARTISTS","SEARCH_SCOPE_ARTISTS","ARTIST_LOTS_PAST","SEARCH_SCOPE_ARTIST_LOTS_PAST","ARTIST_LOTS_FUTURE","SEARCH_SCOPE_ARTIST_LOTS_FUTURE","ARTIST_LOTS_ALL","SEARCH_SCOPE_ARTIST_LOTS_ALL","SALE_LOTS","SEARCH_SCOPE_SALE_LOTS","MYARTPRICE_LOTS_HISTORY","SEARCH_SCOPE_MYARTPRICE_LOTS_HISTORY","SALES_FUTURES","SEARCH_SCOPE_SALES_FUTURES","ALL_SCOPES","MYARTPRICE_LOTS","MYARTPRICE_LOTS_FOLLOW","EMPTY_OBJECT","freeze","EMPTY_ARRAY","inbox","async","page","perPage","internalAxios","get","data","trash","sent","markRead","post","id","create","message","moveToTrash","ACCOUNT_MESSAGES","updateAccountMessages","result","error","loading","type","fetch","folder","dispatch","serviceFunction","count","per_page","idmessages","messages","map","update","reduce","ac","cv","err","stack","createService","markReadService","UPDATE_MESSAGE_COUNT","updateMessageCount","DELETE_FROM_CURRENT_FORLDER","deleteFromCurrentFolder","getState","state","moveToTrashService","countSelector","idagreementtype","UPDATE_AGREEMENT","updateAgreement","force","isAgreementLoading","getAgreement","fetchService","send","AUCTIONEERS_CLEAR_SENDING_STATUS","clearSendingStatus","AUCTIONEERS_UPDATE_SENDING_STATUS","updateSendingStatus","sending","isSending","unauthorized","sendService","sources","AUCTIONEERS_MEDIA_SOURCES","updateSources","fetchSources","isSourcesLoading","keys","getSources","length","progress","ids","sale","top5","geo","push","show","AUCTIONEERS_SALE_GEO","updateSaleGeo","fetchSaleGeo","AUCTIONEERS_SALE_TOP_5","updateSaleTop5","idlots","fetchTop5Lots","updateLots","lots","forceUpdate","updateArtists","artists","AUCTIONEERS_SALES_PROGRESS","updateSalesProgress","getSalesProgress","isProgressLoading","AUCTIONEERS_SALES_PUSH","updateSalesPush","idsale","getSalesPush","isPushLoading","auctioneers","sales","includes","toString","AUCTIONEERS_SALES_SHOW","updateSalesShow","getSalesShow","isShowLoading","updateSales","statSales","AUCTIONEERS_UPDATE_STATS","updateStats","future","past","getStats","areStatsLoading","stats","loaded","statSalesService","UPDATE_FREE_IDARTIST","updateFreeIdartist","idartist","payload","UPDATE_ARTISTS","fetchArtists","withDates","areArtistsLoading","getArtist","getSome","set","fetchFreeArtist","isFreeArtistLoading","getIdFreeArtist","free","UPDATE_AUCTIONEERS","updateAuctioneers","UPDATE_CATEGORIES","updateCategories","categories","fetchCategory","areCategoriesLoading","getCategory","console","UPDATE_CLASSIFIEDS","updateClassifieds","classifieds","UPDATE_COUNTRIES","updateCountries","countries","fetchCountry","areCountriesLoading","getCountry","UPDATE_ENTITY","updateEntity","entityName","fetchEntity","fetchUrl","areEntitiesLoading","getEntity","stores","techniques","messagetypes","lotartistassociationtypes","updateStores","updateTechniques","updateLotartistassociationtypes","UPDATE_LOTS","UPDATE_LOTARTISTASSOCIATIONTYPES","fetchLotartistassociationtype","selectors","services","UPDATE_SALES","UPDATE_STORES","UPDATE_TECHNIQUES","fetchTechnique","filtersToQueryString","idcountry","from","to","offset","filters","noFalsy","join","getFutures","getNotPartners","getPasts","getPastsNotPartners","idevent","getCountryLabels","getWPData","slug","lang","getThumbnailFromSlug","UPDATE_SELECTED_EVENT","updateSelectedEventAction","STORE_EVENTS","storeEvents","SAVE_TOTAL_COUNT","saveTotalCount","eventsType","totalCount","SAVE_EVENT","saveEvent","fetchSelectedEventAction","getSelectedEventId","getSelectedEvent","isSelectedEventLoading","service","SELECT_COUNTRY_FILTER","selectCountryFilterAction","SELECT_DATES_FILTER","selectDatesFilterAction","SELECT_PAGE_FILTER","selectPageFilterAction","UPDATE_WP_DATA","updateWPData","fetchWordpressDataAction","getLang","isWPDataLoading","language","UPDATE_WP_MEDIA","updateWPMedia","idmedia","UPDATE_WP_THUMBNAIL","updateWPThumbnail","fetchThumbnailAction","undefined","getIdmediaFromSlug","isWPMediaFromSlugLoading","getWPMedia","SAVE_COUNTRY_LABELS","saveCountryLabels","fetchCountryLabelsAction","areCountryLabelsLoading","SAVE_EVENTS_IDS_OF_TYPE","saveEventsIdsOfType","formatAndStoreEvents","events","store","getStore","forEach","event","saveIds","fetchFutureEventsAction","getFuturesIds","areFuturesLoading","getCountryFilter","getDatesFilter","getPageFilter","total_count","fetchNotPartnerEventsAction","getNotPartnersIds","areNotPartnersLoading","fetchPastEventsAction","getPastsIds","arePastsLoading","fetchPastNotPartnerEventsAction","getPastsNotPartnersIds","arePastsNotPartnersLoading","artistInfosService","artistOptionsService","idcurrency","indexesCountriesService","visibleYearsService","shouldDisplayService","UPDATE_IDARTIST","updateIdartist","UPDATE_ARTIST_INFOS","updateArtistInfos","artistInfosAction","optionalIdartist","getIdartist","isArtistInfosLoading","getArtistInfos","UPDATE_ARTIST_OPTIONS","updateArtistOptions","currency","artistOptionsAction","isArtistOptionsLoading","getArtistOptions","getCurrency","UPDATE_ARTIST_COUNTRIES","fetchCountries","isCountriesLoading","getCountries","UPDATE_VISIBLE_YEARS","updateVisibleYears","fetchVisibleYearsInCharts","isVisibleYearsLoading","getVisibleYears","UPDATE_DISPLAY","updateDisplay","shouldDisplayAction","isDisplayLoading","getAllShouldDisplay","chronologicalDataService","chartTab","idcategory","minPrice","maxPrice","paramsUrl","apiAction","Error","UPDATE_CHRONOLOGICAL_OPTIONS","updateChronologicalOptions","options","UPDATE_CHRONOLOGICAL_DISPLAYED_CHART_TAB","updateChronologicalDisplayedChartTab","UPDATE_CHRONOLOGICAL_DATA","updateChronologicalData","chartKey","fetchChronologicalData","isChronologicalDataLoading","getChronologicalData","getChronologicalDisplayedChartTab","rest","getChronologicalOptions","createChartKey","geographicalDataService","minYear","maxYear","UPDATE_GEOGRAPHICAL_OPTIONS","updateGeographicalOptions","UPDATE_GEOGRAPHICAL_DISPLAYED_CHART_TAB","updateGeographicalDisplayedChartTab","UPDATE_GEOGRAPHICAL_DATA","updateGeographicalData","fetchGeographicalData","isGeographicalDataLoading","getGeographicalData","getGeographicalDisplayedChartTab","getGeographicalOptions","mediumDataService","UPDATE_MEDIUM_OPTIONS","updateMediumOptions","UPDATE_MEDIUM_DISPLAYED_CHART_TAB","updateMediumDisplayedChartTab","UPDATE_MEDIUM_DATA","updateMediumData","fetchMediumData","isMediumDataLoading","getMediumData","getMediumDisplayedChartTab","getMediumOptions","UPDATE_PRICE_INDEX_OPTIONS","updatePriceIndexOptions","UPDATE_PRICE_INDEX_ARTIST_DATA","updatePriceIndexArtistData","fetchArtistData","artistDataService","currentArtistDataAction","isArtistIndexDataLoading","getArtistIndexData","comparedArtistDataAction","getPriceIndexOptions","getComparedArtistName","shouldDisplayComparedArtist","isComparedArtistIndexDataLoading","getComparedArtistIndexData","UPDATE_PRICE_INDEX_STOCK_INDEX_DATA","updateStockIndexData","stockIndex","stockIndexDataAction","isStockIndexDataLoading","getStockIndexData","globalIndexDataService","sAndP500DataService","cac40DataService","daxDataService","UPDATE_PRICE_INDEX_CATEGORIES_DATA","updateCategoriesData","categoriesDataAction","minYearIndex","defaultMinYear","isCategoryDataLoading","getCategoryData","categoriesDataService","priceSegmentsDataService","UPDATE_PRICE_SEGMENTS_OPTIONS","updatePriceSegmentsOptions","UPDATE_PRICE_SEGMENTS_DISPLAYED_CHART_TAB","updatePriceSegmentsDisplayedChartTab","UPDATE_PRICE_SEGMENTS_DATA","updatePriceSegmentsData","fetchPriceSegmentsData","isPriceSegmentsDataLoading","getPriceSegmentsData","getPriceSegmentsDisplayedChartTab","getPriceSegmentsOptions","UPDATE_RANKING_DATA","updateRankingData","fetchRankingData","isRankingDataLoading","getRankingData","rankService","summaryIndexService","UPDATE_SUMMARY_DATA","updateSummaryData","summaryDataAction","isSummaryDataLoading","indicatorService","idlot","ARTDBWEB_LOT_INDICATOR","updateLotIndicator","indicatorAction","RETRIEVE_MESSAGES","dispatchRetrieveMessage","idclassified","resp","retrieveMessageService","dispatchCreateMessage","idcustomerInterlocutor","createMessageService","UPDATE_STORE_IMAGE","updateStoreImage","imageSha1","CLEAR_STORE_IMAGE_ERRORS","clearStoreImageErrors","UPLOAD_STORE_IMAGE_ERROR_CODE","STORE_IMAGE_FORMAT_WARNING","CLEAR_STORE_IMAGE_FORMAT_WARNING","UPDATE_STORE","updateStore","getStoreSelector","idstore","fetchedStore","getService","save","values","on","savedStore","saveService","off","removeArtist","removeArtistService","addArtist","addArtistService","uploadImage","file","overridedImageId","clearStoreImageFormatWarning","responseStatus","uploadImageService","uploadStoreImageErrorCode","errorCode","deleteImage","deleteImageService","setPrimaryImage","setPrimaryImageService","CHOOSE_PERIOD","choosePeriod","start","end","UPDATE","key","value","fetchBestClassifieds","refresh","startDate","endDate","formatFns","Date","params","isBestClassifiedsLoading","isBestClassifiedsLoaded","createBestClassifiedsKey","getBestClassifieds","fetchAllStats","fetchViewedClassifieds","isViewedClassifiedsLoading","isViewedClassifiedsLoaded","VIEWED_CLASSIFIEDS","getViewedClassifieds","fetchCountryRepartition","isCountryRepartitionLoading","isCountryRepartitionLoaded","COUNTRY_REPARTITION_KEY","getCountryRepartition","UPDATE_TOP_STORES","updateTopStores","fetchTopStores","topStores","getTopStoresSelector","Array","isArray","getTopService","lvl","fetchSummary","areDataLoading","fetchSettings","fetchSummaryService","updateArtistsEntities","fetchArtistsService","followArtist","followArtistService","UPDATE_MYARTPRICE_CURRENT_PAGE","updateCurrentPage","UPDATE_MYARTPRICE_ENTITIES","updateEntities","UPDATE_MYARTPRICE_LOADING","updateLoading","UPDATE_MYARTPRICE_TOTAL_COUNT","updateTotalCount","UPDATE_MYARTPRICE_ID_ENTITIES","updateIdEntities","UPDATE_MYARTPRICE_SEARCH_SCOPE","updateSearchScope","INCLUDE_IN_PUSH","includeInPushArtist","UNFOLLOW_ARTIST","unfollowArtist","idartists","unfollowArtistservice","ADD_LOT_FOLLOW","REMOVE_LOT_FOLLOW","followLot","status","followLotService","unfollowLot","unfollowLotservice","UPDATE_FAVORITE_CLASSIFIEDS","updateFavoriteClassifieds","ADD_CLASSIFIED_FOLLOW","REMOVE_CLASSIFIED_FOLLOW","followClassified","followClassifiedService","unfollowClassified","unfollowClassifiedService","fetchClassifieds","areClassifiedsDataLoading","fetchFavoriteClassifieds","GET_LOT_SIMILAR","getLotSimilarAction","getLotSimilar","res","similarLotService","ADD_STORE_FOLLOW","REMOVE_STORE_FOLLOW","UPDATE_FAVORITE_STORES","updateFavoriteStore","fetchStores","areStoresDataLoading","fetchFavoriteStores","followStore","followStoreService","unfollowStore","unfollowStoreService","UPDATE_ARTIST_PREFERENCES","UPDATE_SETTINGS_PREFERENCES","updatePreferences","section","oldValue","action","getArtistParam","getParam","response","baseUrl","v","updatePreferencesService","e","fetchCategories","getCategoriesParams","settings","fetchCategoriesParamsService","updateCategoriesEntities","FETCH_SETTINGS","fetchSettingsService","ended","futures","auctions","fixedPrice","updateArtistLotsOrder","artistLotsSectionOrder","updateHideArtistFollowRecommendationsModaleUntil","UPDATE_FRESHNESS_PREFERENCE","updateFreshnessPreference","freshness","UPDATE_LANG_PREFERENCE","UPDATE_CURRENCY_PREFERENCE","updateCurrencyPreference","dispatchCurrencyPreference","currencyIso3","updatePreferredCurrencyService","UPDATE_DIMENSION_PREFERENCE","updateDimensionPreference","dimension","UPDATE_ITEMS_PER_PAGE_PREFERENCE","updateItemsPerPage","itemsPerPage","UPDATE_LOTS_VIEW_FORMAT_PREFERENCE","updateLotsViewFormatPreference","lotsViewFormat","UPDATE_ARTISTS_VIEW_FORMAT_PREFERENCE","updateArtistsViewFormatPreference","artistsViewFormat","UPDATE_PREFERENCE","updatePreference","hideArtistFollowRecommendationsModaleUntil","updateArtistLotsSectionOrder","preferences","updateHideArtistFollowRecommendationsModaleUntilService","UPDATE_PHYSICPRODUCTS","updatePhysicproducts","physicproducts","fetchPhysicproducts","image","promocode","quantity","areThemesLoading","updateSettings","hasAuctioneerDiscount","has_auctioneer_discount","hasLoyaltyDiscount","has_loyalty_discount","hasOnedayRefund","has_oneday_refund","UPDATE_PROMOTIONS","updatePromotions","promotions","fetchPromotion","arePromotionLoading","getPromotion","UPDATE_SUBSCRIPTIONS_SETTINGS","UPDATE_SUBSCRIPTIONS_STRIPE","updateStripe","getCustomer","isLoading","customer","getCustomerService","BEGIN","begin","END","SET","updateDictionary","ui","dictionary","ON","OFF","TOGGLE","UPDATE_VIEWPORT","updateViewport","height","width","TOTAL_COUNT_KEY","BEST_CLASSIFIEDS","BEST_ARTISTS","INQUIRIES","PUBLISHED_CLASSIFIEDS","getSendingStatus","isTop5Loading","isGeoLoading","getAllEntities","getAllArtists","getAllCategories","getAllCountries","areTechniquesLoading","areLotartistassociationtypesLoading","getIdFreeLot","getLot","getAllLots","getClassified","getAllClassifieds","getSale","getAllSales","getAllStores","getAuctioneer","getAllAuctioneers","getTechnique","getAllTechniques","getLotartistassociationtype","getAllLotartistassociationtypes","areClassifiedsError","getMessage","getAllMessagetype","getEvents","getFilters","getCountriesStore","getEventDetails","getMediasStore","populateIdsFromStore","createSelector","getEventsFilters","country","dates","getFuturesStore","getFuturesTotalCount","getFuturesIdsWithoutFilters","getCurrents","today","dt_event_start","dtEventStart","dt_event_expire","dtEventExpire","slice","getUpcomings","getFuturesEventsPagesCount","Math","ceil","getNotPartnersStore","getNotPartnersTotalCount","getNotPartnersIdsWithoutFilters","getPastsStore","getPastsTotalCount","getPastsIdsWithoutFilters","getPastsEventsPagesCount","pasts","getPastsNotPartnersStore","getPastsNotPartnersTotalCount","getPastsNotPartnersIdsWithoutFilters","getHPEventsStore","getHPEventsIds","details","selectedEventId","getWPMediaFromSlug","getFormatMediumLink","media","getCountryLabel","getCountriesOptions","isPastList","countriesArray","find","compareIds","id2","parseInt","label","indexes","artist","getArtistName","getArtistURL","getCategories","artistOptions","getMaxVisibleYear","isSubscriptionNeeded","hasIndexesSubscription","Number","getChronological","chronological","displayedChartTab","getGeographical","geographical","getMedium","medium","normalizeData","filteredData","item","date","coeff","parseFloat","valueAt","itemFound","el","isSameDay","toFixed","getPriceIndex","priceIndex","getValuesWithArtistAndCurrency","getIndexedCategories","category","isIndexed","artistCurrencyState","isMergedIndexDataLoading","artistLoading","comparedArtistLoading","stockLoading","categoryLoading","getMergedData","artistData","comparedArtistData","stockData","categoryData","normalizedArtistData","normalizedStockIndexData","normalizedCategoryData","normalizedComparedArtistData","toReturn","getMergedVisibleData","comparedArtist","Boolean","getPriceSegments","priceSegments","getRanking","ranking","sort","yearA","yearB","getSummary","summary","getSummaryData","getTopStores","marketplace","top","list","getStoreLoading","getErrorForStore","getUpdateStoreImage","images","img","getErrorCodeForStoreImage","getDisplayedPeriod","getPercentageCountryRepartition","countryRepartition","total","sum","row","valueA","valueB","getPeriods","viewedClassifieds","index","hasViewedClassifiedsError","artistsFromState","getArtists","dataArtistsFromFavorites","artistdataFromDbEntities","getSortedArtists","direction","artistsSorted","a","b","getSearchScope","getIds","getEntities","getCurrentPage","getTotalCount","getLoading","param","artistFromState","getFavoriteLot","getIsFavoritedLot","getFavoriteClassified","getFavoriteStore","getFavoriteArtist","getError","getLvl","getSettings","categoriesParams","allCategories","setting","include_in_push","getArtistsViewFormat","getLotsViewFormat","getDimension","_get","toLowerCase","getFreshness","getArtistLotsSectionOrder","getHideArtistFollowRecommendationsModaleUntil","getItemsPerpage","SEARCH_ITEMS_PER_PAGE","getThemes","areThemesInitialized","areThemesUnavailable","new","getTheme","idtheme","view","themes","products","theme","getSelectedTheme","selectedIdtheme","getSelectedPhysicproduct","selectedIdphysicproduct","p","idp","getPromocodeStatus","getPk","CURRENT_SELECTION","CURRENT_SELECTION_KEY","currentSelectionKey","currentSelection","onClient","getSessionStorage","accountLotsListsSlice","createSlice","name","initialState","lists","listsOrderedIds","listsLoading","dataListLoading","addAndCreateButtonsVisibility","reducers","clear","setSessionStorage","addLots","uniq","removeLot","selectedId","removeLots","setCurrentSelectionKey","setListsLoading","setAddAndCreateButtonsVisibility","setDataListLoading","updateList","setLists","setListsOrderedId","orderedIds","appendList","updateListLotCount","lotsCount","setListLotsOrder","sortedIdlots","actions","initializeWithKey","newSelectionKey","currentKey","getCurrentSelectionKey","getCurrentSelection","fetchDataList","getDataList","fetchLists","accountLotsLists","getListsService","renameList","renameListService","deleteLists","deleteListsService","appendToList","idlist","addLotsService","deleteLots","deleteLotsService","moveLots","idfrom","idto","listFrom","listTo","moveLotsService","copyLots","copyLotsService","createAndMoveLots","createListService","createAndCopyLots","createAndAppendToList","getAddAndCreateButtonsVisibility","getLists","getListsLoading","getListsOrderedIds","getList","getListLotsOrder","getListDataLoading","isSelected","selection","artistSlice","UpdateFiltersResultCount","filtersResultCount","updateCollaborations","collaborations","updateArticles","articles","updateKnowledge","knowledge","updateTop10","top10","updateCa","ca","updateFree","updateAilsSeen","ailsSeen","updateFollowRecomendationDisplay","followRecomendationDisplay","getFollowRecomendationDisplay","getAils","getLotsFuture","getLotsPast","getLots","getCategoriesFuture","getCategoriesPast","getCa","getCollaborations","getArticles","getStores","getClassifieds","getKnowledge","getTop10","getAilsSeen","getFiltersResultCount","getFiltersResultSearching","getLandingPage","getMenuEntriesCount","_getArticles","isEmpty","macro","items","fetchTop10","getTop10Service","fetchFree","getFreeService","fetchArticles","articlesForArtist","storesForArtist","classifiedsForArtist","fetchCollaborations","getCollaborationsService","fetchKnowledge","getKnowledgeService","fetchCa","getCaService","fetchFiltersResultCount","searching","artpriceSlice","isCustomerServiceOpened","returnAfterLogin","getReturnAfterLogin","artprice","estimatesSlice","physicproductsLoading","customerCurrency","promotion","updatePhysicproductsLoading","updateCustomerCurrency","updatePromotion","getCustomerCurrency","estimates","getPhysicproducts","retrievePhysicproducts","promotion_from_promocode","promotionFromPromocode","format","getPhysicproductsService","footerSlice","lastAmciValue","getAmciLastValue","footer","headerSlice","counts","hasUpgrades","updatehasUpgrades","updateCounts","merge","gethasUpgrades","header","fetchHasUpgrades","hasUpgradesService","homepageSlice","ails","reports","main","getMainReport","getReports","getSaleAils","getMegaBanAils","getFocusOnAils","paymentsSlice","navigationStep","cart","shipAddress","shipAddressLoading","billAddress","billAddressLoading","customerMutationRunning","updateNavigationStep","updateCart","updateParams","updateBillAddress","updateBillAddressLoading","updateShipAddress","updateShipAddressLoading","updateCustomerMutationRunning","payments","getCart","getParams","getCartLoading","getShipAddress","getBillAddress","getShipAddressLoading","getBillAddressLoading","getCustomerMutationRunning","getCartUnavailable","updateBillAddressAction","updateShipAddressAction","setAddress","type_address","fetchCart","idphysicproducts","idphysicsale","getCartService","promotionSlice","getAutomaticallyApplied","getCode","getBannerUrlSml","getBannerUrl","size","BASE","DRAFT","ADVANCED","TYPES","createEmptyScope","scopedSlice","scopes","searchScope","prepare","setOptions","setLoading","mergeParams","existingParams","setParams","setFacets","facets","pages","setLoaded","getOptions","search","scoped","areFacetsLoading","areBaseFacetsLoading","areDraftFacetsLoading","getCount","getDraftCount","getAdvancedCount","getBaseParams","getDraftParams","getAdvancedParams","getEffectiveDraftParams","baseParams","draftParams","getEffectiveAdvancedParams","advancedParams","getFacets","facet","getBaseFacets","getDraftFacets","getAdvancedFacets","updateAdvancedParams","effectiveAdvancedParams","totalPages","fetchFacetsService","cancelPrevious","Axios","isCancel","prepareScope","clearScope","additionalErrorStr","ensureCorrectScope","isPlainObject","baseSort","baseFacets","baseCount","basePages","addToDraftParams","lockedFacets","warn","effectiveParams","lockedFacet","existing","isMatch","updateDraftParams","resetDraftParams","universalSlice","layoutContainer","open","transition","origin","selector","openLayoutContainer","closeLayoutContainer","setTransitionOrigin","removeTransitionOrigin","getTransitionOriginSelector","universal","isLayoutContainerOpen","updateIdprofessionaltype","idprofessionaltype","getReduxContext","getMarketplaceContext","getEstimateContext","userContextSlice","ASYNC_ID","newType","updateIdprofessionaltypeService","fetchUserContext","isLoaded","context","idcustomer","Sentry","ip_address","fetchMarketplaceContext","isMarketplaceLoaded","isMarketplaceLoading","marketplaceContext","fetchEstimateContext","isEstimateLoaded","isEstimateLoading","estimate","estimateContext","userContext","_state$userContext","_state$userContext2","_state$userContext3","_state$userContext4","isLogged","logged","isLoginAuto","loginAuto","getIdcustomer","getIsAuctioneer","isAuctioneer","getIsNonPartnerAuctioneer","isNonPartnerAuctioneer","getAuctioneerAgreementLastVersion","_state$userContext$au2","auctioneerAgreement","lastVersion","getName","getFtpLogin","ftpLogin","getEmail","email","getSubscriptionLevel","subscriptionLevel","getIsArtpriceIp","artpriceIp","getIsBot","bot","getEmailStatus","emailStatus","getIdprofessionaltype","getIsChildCustomer","isChildCustomer","getIdstatutetype","idstatutetype","getIdaccountrole","idaccountrole","getCustomerVerificationStatus","customerVerificationStatus","getUsersCount","_state$userContext$ac","activeSubscription","usersCount","getActiveSubscriptionName","_state$userContext$ac2","getActiveSubscription","getLastSubscription","lastSubscription","hasModuleAccess","idmodule","_activeSubscription$m","modules","_lastSubscription$mod","nbDays","started","getHasImageAccess","_state$userContext$ac3","hasImageAccess","getHasIndexesAccess","getDisplayedPromotionId","displayedPromotionId","getPushEmail","pushEmail","getFavoriteCount","favoriteCount","getNewsletter","newsletter","getOnlyLotsSignedByArtistInPush","onlyLotsSignedByArtistInPush","getMarketplace","getMarketplaceHasClassifieds","hasClassifieds","getMarketplaceMessageCount","messageCount","getMarketplaceAwaitingOfferSelection","awaitingOfferSelection","getMarketplaceAuctionsWithOngoingTransactions","auctionsWithOngoingTransactions","getModificationRequiredCount","lodashGet","getExpiredCount","getHasStore","_state$userContext5","hasStore","getCurrentBillCurrency","currentBillCurrency","getMessageCount","getEstimateWaitingPaymentsCount","getEstimate","hasExpiredSubscription","isAfter","dtExpire","needsAction","attentionNeeded","differenceInDays","subscriptionNeedsAction","_getLastSubscription","mustCompleteSellerProfile","displayVerificationLink","mustRenameStore","mustCompleteStoreInformation","storeHasAProblem","hasAlmostExpiredSubscription","hasNotSignedAuctioneerAgreement","_state$userContext$au","signedAt","getAuctioneerAgreementSignedAt","isUndelivered","mustFillEmail","trim","emailNeedsVerification","CUSTOMER_EMAIL_STATUS_NONVERIFIED","hasClassifiedsWaitingForModification","hasExpiredClassifieds","hasEstimatesWaitingForPayment","hasClassifiedsAwaitingOfferSelection","hasAuctionsWithOngoingTransactions","getNotificationsCount","eventsReducer","createNextState","draft","fakeGlobalState","currentData","setWith","path","newIds","concat","distinct","combineReducers","authorizedKeys","warning","displayedPeriod","split","manage","seaerchScope","samples","favoriteLot","favoriteClassified","favoriteStore","omit","includeInPush","UPDATE_SCROLL","scroll","viewport","switches","hasOwnProperty","asyncStatus","indicatorReducer","prototype","call","medias","contact","preferencesReducer","lotCurrency","getCookie","lotDimension","customerLang","getInitialState","setCookie","newState","isNaN","UPDATE_REDUX_STORE","customizer","objValue","srcValue","isUndefined","assignOnlyNewKeys","object","source","assignWith","dbEntitiesReducer","newData","salesReducer","reload","stripe","createRootReducer","otherReducers","combinedReducers","indexesReducer","indicator","marketplaceReducer","myartprice","myartpriceReducer","dbEntities","subscriptions","subscriptionsReducer","auctioneersReducer","uiReducer","account","accountReducer","agreements","agreementsReducer","scopedReducer","universalReducer","userContextReducer","promotionReducer","artistReducer","headerReducer","footerReducer","accountLotsListsReducer","searchReducer","homepage","homepageReducer","paymentsReducer","artpriceReducer","estimatesReducer","sentryReduxEnhancer","createReduxEnhancer","stateTransformer","memoizedStore","getConfiguredStore","onServer","window","__PRELOADED_STATE__","configureStore","reducer","sliceReducers","devTools","preloadedState","enhancers","makeStore","sendValidationEmail","backTo","bt","setNewsletterSubscription","updatePreferredCurrency","url","headers","xRequestIdManager","method","body","JSON","stringify","keepalive","aapi","complements","aapiBeacon","navigator","sendBeacon","formData","FormData","append","csrfParam","getCSRFParam","csrfToken","getCSRFToken","beacon","LOGS","debouncedPost","debounce","logs","splice","delayedAapi","priceIndexOptionsToURL","artistSelectService","excludedIdArtist","term","classifiedsForCustomerAndArtist","classifiedsForCustomer","createMessage","text","idcustomer_interlocutor","retrieveMessage","cancelMap","Map","baseFetch","otherParams","queryString","objectToQueryString","cleanPathname","location","pathname","cancelMapKey","createMapKey","has","abort","cancelController","AbortController","signal","fetchFacets","fetchResults","artistSearch","favorites","artistSearchOnKeyword","outOfBounds","lotSearchOnKeyword","classifiedSearchOnKeyword","reportSearchOnKeyword","keyword","artmarketInsightSearchOnKeyword","auctioneerSearch","getInquiriesStats","getPublishedClassifieds","getReceivedMessages","getPlatforms","idestimates","login","updateOrCreate","exixts","createList","paginate","getData","productLegals","sitenameExists","sitename","q","getTop","getSizeFromImageAsPromise","Promise","resolve","reader","FileReader","onload","src","reject","Image","naturalHeight","naturalWidth","onerror","readAsDataURL","test","then","catch","axios","withCredentials","manageRefreshSession","interceptors","request","use","config","self","indexOf","i","memoizedCookie","Cookies","getCookies","domain","FNS_LOCALES","newFormat","opts","locale","ignoreTZ","dateObject","isDate","parsedDate","parseISO","isValid","i18next","in","tz","humanizeDurationFns","seconds","dt2","now","dt1","addSeconds","formatDistance","queryStringToObject","paramsObject","match","replace","memoizedParamsFromUrl","memoize","getCurrentQueryObject","paramsForQuery","pickBy","isNull","hostname","localeFromUrl","fromUrl","startsWith","QUERY_PARAMS_TO_KEEP","updateUrlQuery","qo","qs","pick","history","replaceState","createNewUrlForLocale","newLocale","encodeURIComponent","decodeURIComponent","guessNewUrlForLocale","host","IN_MEMORY_STORAGE","setItem","this","getItem","removeItem","isSupported","storage","testKey","defaultValue","parse","sessionStorage","setLocaleStorage","localStorage","getLocaleStorage","STRIPE_CANCELLED","STRIPE_NEED_ACTION","PAYPAL_CANCELLED","isCancelled","attentionNeed","xRequestId","fetchAndSetXRequestId","_document$querySelect","requestId","document","querySelector","content","_window$artprice","fallbackRequestId","setTimeout"],"sourceRoot":""}