{"version":3,"file":"app.ec8b1631dbbfa812.js","mappings":"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,sBACNC,KAAM,SACNC,KAAM,oOAER,CACEH,KAAM,QACNC,KAAM,sBACNC,KAAM,QACNC,KAAM,8QAER,CACEH,KAAM,mBACNC,KAAM,eACNC,KAAM,UACNC,KAAM,wHAER,CACEH,KAAM,WACNC,KAAM,eACNC,KAAM,SACNC,KAAM,+FAER,CACEH,KAAM,KACNC,KAAM,cACNC,KAAM,SACNC,KAAM,mHAER,CACEH,KAAM,OACNC,KAAM,cACNC,KAAM,SACNC,KAAM,8MAER,CACEH,KAAM,UACNC,KAAM,gBACNC,KAAM,SACNC,KAAM,qGAER,CACEH,KAAM,OACNC,KAAM,mBACNC,KAAM,WACNC,KAAM,sHAER,CACEH,KAAM,OACNC,KAAM,iBACNC,KAAM,SACNC,KAAM,0NAER,CACEH,KAAM,KACNC,KAAM,iBACNC,KAAM,UACNC,KAAM,mHAER,CACEH,KAAM,OACNC,KAAM,YACNC,KAAM,SACNC,KAAM,8MAER,CACEH,KAAM,UACNC,KAAM,gBACNC,KAAM,aACNC,KAAM,qKAER,CACEH,KAAM,UACNC,KAAM,mBACNC,KAAM,QACNC,KAAM,6HAER,CACEH,KAAM,UACNC,KAAM,mBACNC,KAAM,SACNC,KAAM,wJAER,CACEH,KAAM,OACNC,KAAM,gBACNC,KAAM,QACNC,KAAM,iGAER,CACEH,KAAM,UACNC,KAAM,mBACNC,KAAM,WACNC,KAAM,gHAER,CACEH,KAAM,QACNC,KAAM,cACNC,KAAM,SACNC,KAAM,iGAER,CACEH,KAAM,KACNC,KAAM,gBACNC,KAAM,SACNC,KAAM,mHAER,CACEH,KAAM,OACNC,KAAM,mBACNC,KAAM,SACNC,KAAM,oJAIZ,CACEnM,MAAO,eACPsL,YAAa,qHACbe,OAAQ,CACNjjB,MAAO,eACPkjB,SAAS,EACTC,UAAU,GAEZC,aAAc,CACZ,CACER,KAAM,UACNC,KAAM,gBACNC,KAAM,WACNC,KAAM,yFAER,CACEH,KAAM,QACNC,KAAM,sBACNC,KAAM,QACNC,KAAM,gFAIZ,CACEnM,MAAO,mBACPsL,YAAa,+IAKrB,QAAS,CACPhB,cAAe,CACbtK,MAAO,iCACP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","sources":["webpack://FollowMyBid/./src/GeneratedModels/AuctionInvoiceStatusTypeEnum.js","webpack://FollowMyBid/./src/GeneratedModels/AuctionStatusEnum.js","webpack://FollowMyBid/./src/GeneratedModels/InvoiceStatusEnum.js","webpack://FollowMyBid/./src/GeneratedModels/InvoiceTypeEnum.js","webpack://FollowMyBid/./src/GeneratedModels/ItemSortingMethods.js","webpack://FollowMyBid/./src/GeneratedModels/ItemTypeEnum.js","webpack://FollowMyBid/./src/GeneratedModels/TransactionFeesPlanTypeEnum.js","webpack://FollowMyBid/./src/GeneratedModels/UserTypeEnum.js","webpack://FollowMyBid/./src/classes/Item.js","webpack://FollowMyBid/./src/constants.js","webpack://FollowMyBid/./src/i18n.js","webpack://FollowMyBid/./src/libs/vue-currency-input/src/utils/stringUtils.js","webpack://FollowMyBid/./src/libs/vue-currency-input/src/numberFormat.js","webpack://FollowMyBid/./src/libs/vue-currency-input/src/api.js","webpack://FollowMyBid/./src/libs/vue-currency-input/src/utils/equal.js","webpack://FollowMyBid/./src/libs/vue-currency-input/src/numberMask.js","webpack://FollowMyBid/./src/libs/vue-currency-input/src/caretPosition.js","webpack://FollowMyBid/./src/libs/vue-currency-input/src/numberInput.js","webpack://FollowMyBid/./src/libs/vue-currency-input/src/directive.js","webpack://FollowMyBid/./src/libs/vue-currency-input/src/component.js","webpack://FollowMyBid/./src/libs/vue-currency-input/src/plugin.js","webpack://FollowMyBid/./src/libs/vue-currency-input/src/index.js","webpack://FollowMyBid/./src/libs/v-drag/src/utils/eventListener.js","webpack://FollowMyBid/./src/libs/v-drag/src/utils/returnPositionString.js","webpack://FollowMyBid/./src/libs/v-drag/src/events/dragMove.js","webpack://FollowMyBid/./src/libs/v-drag/src/utils/getTransformValue.js","webpack://FollowMyBid/./src/libs/v-drag/src/utils/moveElementTransform.js","webpack://FollowMyBid/./src/libs/v-drag/src/utils/updateMousePosition.js","webpack://FollowMyBid/./src/libs/v-drag/src/events/dragStart.js","webpack://FollowMyBid/./src/libs/v-drag/src/events/dragEnd.js","webpack://FollowMyBid/./src/libs/v-drag/src/utils/isValidAxisValue.js","webpack://FollowMyBid/./src/libs/v-drag/src/events/dragSetup.js","webpack://FollowMyBid/./src/libs/v-drag/src/index.js","webpack://FollowMyBid/./src/App.vue","webpack://FollowMyBid/src/App.vue","webpack://FollowMyBid/./src/App.vue?14ae","webpack://FollowMyBid/./src/App.vue?0e40","webpack://FollowMyBid/./src/router/index.js","webpack://FollowMyBid/./src/locales/validations.js","webpack://FollowMyBid/./src/scripts/customValidators.js","webpack://FollowMyBid/./src/scripts/authenticatedHub.js","webpack://FollowMyBid/./src/scripts/organizationHub.js","webpack://FollowMyBid/./src/scripts/polyfills.js","webpack://FollowMyBid/./src/plugins/cookieconsent.js","webpack://FollowMyBid/./src/main.js","webpack://FollowMyBid/./src/mixins/index.js","webpack://FollowMyBid/./src/components/Localize.vue","webpack://FollowMyBid/./src/components/Localize.vue?7ce4","webpack://FollowMyBid/./src/router/routes.js","webpack://FollowMyBid/./src/router/routing.js","webpack://FollowMyBid/./src/scripts/Security.js","webpack://FollowMyBid/./src/scripts/SignUpInReasons.js","webpack://FollowMyBid/./src/scripts/Sorting.js","webpack://FollowMyBid/./src/scripts/phoneUtils.js","webpack://FollowMyBid/./src/scripts/publicHub.js","webpack://FollowMyBid/./src/scripts/redirection.js","webpack://FollowMyBid/./src/scripts/utils.js","webpack://FollowMyBid/./src/store/AwaitableStoreData.js","webpack://FollowMyBid/./src/store/auction/state.js","webpack://FollowMyBid/./src/store/actions.js","webpack://FollowMyBid/./src/store/util.js","webpack://FollowMyBid/./src/store/app/actions.js","webpack://FollowMyBid/./src/store/app/mutations.js","webpack://FollowMyBid/./src/store/app/state.js","webpack://FollowMyBid/./src/store/app/index.js","webpack://FollowMyBid/./src/store/RequestBuffer.js","webpack://FollowMyBid/./src/scripts/itemsUtils.js","webpack://FollowMyBid/./src/store/auction/actions.js","webpack://FollowMyBid/./src/store/auction/mutations.js","webpack://FollowMyBid/./src/store/auction/getters.js","webpack://FollowMyBid/./src/store/auction/index.js","webpack://FollowMyBid/./src/store/user/state.js","webpack://FollowMyBid/./src/store/user/actions.js","webpack://FollowMyBid/./src/store/user/mutations.js","webpack://FollowMyBid/./src/store/user/index.js","webpack://FollowMyBid/./src/store/chatroom/actions.js","webpack://FollowMyBid/./src/store/chatroom/mutations.js","webpack://FollowMyBid/./src/store/chatroom/state.js","webpack://FollowMyBid/./src/store/chatroom/index.js","webpack://FollowMyBid/./src/store/organization/actions.js","webpack://FollowMyBid/./src/store/organization/mutations.js","webpack://FollowMyBid/./src/store/organization/state.js","webpack://FollowMyBid/./src/store/organization/index.js","webpack://FollowMyBid/./src/store/admin/actions.js","webpack://FollowMyBid/./src/store/admin/mutations.js","webpack://FollowMyBid/./src/store/admin/state.js","webpack://FollowMyBid/./src/store/admin/index.js","webpack://FollowMyBid/./src/store/signup/actions.js","webpack://FollowMyBid/./src/store/signup/mutations.js","webpack://FollowMyBid/./src/store/signup/state.js","webpack://FollowMyBid/./src/store/signup/index.js","webpack://FollowMyBid/./src/store/index.js","webpack://FollowMyBid/./node_modules/moment/locale/ sync fr;en","webpack://FollowMyBid/webpack/bootstrap","webpack://FollowMyBid/webpack/runtime/chunk loaded","webpack://FollowMyBid/webpack/runtime/compat get default export","webpack://FollowMyBid/webpack/runtime/create fake namespace object","webpack://FollowMyBid/webpack/runtime/define property getters","webpack://FollowMyBid/webpack/runtime/ensure chunk","webpack://FollowMyBid/webpack/runtime/get javascript chunk filename","webpack://FollowMyBid/webpack/runtime/get mini-css chunk filename","webpack://FollowMyBid/webpack/runtime/global","webpack://FollowMyBid/webpack/runtime/hasOwnProperty shorthand","webpack://FollowMyBid/webpack/runtime/load script","webpack://FollowMyBid/webpack/runtime/make namespace object","webpack://FollowMyBid/webpack/runtime/node module decorator","webpack://FollowMyBid/webpack/runtime/publicPath","webpack://FollowMyBid/webpack/runtime/css loading","webpack://FollowMyBid/webpack/runtime/jsonp chunk loading","webpack://FollowMyBid/webpack/startup"],"sourcesContent":["class AuctionInvoiceStatusTypeEnum {\r\n constructor() {\r\n this.None = 0;\r\n this.NotApplicable = 1;\r\n this.InFinalization = 2;\r\n this.InvoiceSent = 3;\r\n this.FeesInvoicePaid = 4;\r\n }\r\n\r\n name(type) {\r\n switch (type) {\r\n case this.None:\r\n return 'None';\r\n case this.NotApplicable:\r\n return 'NotApplicable';\r\n case this.InFinalization:\r\n return 'InFinalization';\r\n case this.InvoiceSent:\r\n return 'InvoiceSent';\r\n case this.FeesInvoicePaid:\r\n return 'FeesInvoicePaid';\r\n }\r\n }\r\n}\r\nexport const auctionInvoiceStatusTypeEnum = new AuctionInvoiceStatusTypeEnum();\r\n","class AuctionStatusEnum {\r\n constructor() {\r\n this.None = 0;\r\n this.Pending = 1;\r\n this.InProgress = 2;\r\n this.Closed = 3;\r\n }\r\n\r\n name(type) {\r\n switch (type) {\r\n case this.None:\r\n return 'None';\r\n case this.Pending:\r\n return 'Pending';\r\n case this.InProgress:\r\n return 'InProgress';\r\n case this.Closed:\r\n return 'Closed';\r\n }\r\n }\r\n}\r\nexport const auctionStatusEnum = new AuctionStatusEnum();\r\n","class InvoiceStatusEnum {\r\n constructor() {\r\n this.Unpaid = 0;\r\n this.Paid = 1;\r\n this.Canceled = 2;\r\n this.Error = 3;\r\n }\r\n\r\n name(rank) {\r\n switch (rank) {\r\n case this.Unpaid:\r\n return 'invoiceStatusEnum.Unpaid';\r\n case this.Paid:\r\n return 'invoiceStatusEnum.Paid';\r\n case this.Canceled:\r\n return 'invoiceStatusEnum.Canceled';\r\n case this.Error:\r\n return 'invoiceStatusEnum.Error';\r\n }\r\n }\r\n}\r\nexport const invoiceStatusEnum = new InvoiceStatusEnum();\r\n","class InvoiceTypeEnum {\r\n constructor() {\r\n this.Standard = 0;\r\n this.Refund = 1;\r\n }\r\n\r\n name(type) {\r\n switch (type) {\r\n case this.Standard:\r\n return 'Standard';\r\n case this.Refund:\r\n return 'Refund';\r\n }\r\n }\r\n}\r\nexport const invoiceTypeEnum = new InvoiceTypeEnum();\r\n","class ItemSortingMethods {\r\n constructor() {\r\n this.SortByNumber = 0;\r\n this.SortByName = 1;\r\n this.SortByPopularity = 2;\r\n this.SortByWorth = 3;\r\n this.SortByValue = 4;\r\n this.SortByActivity = 5; \r\n }\r\n}\r\nexport const itemSortingMethods = new ItemSortingMethods();","class ItemTypeEnum {\r\n constructor() {\r\n this.Standard = 0;\r\n this.Symbolic = 1;\r\n }\r\n\r\n name(type) {\r\n switch (type) {\r\n case this.Standard:\r\n return 'Standard';\r\n case this.Symbolic:\r\n return 'Symbolic';\r\n }\r\n }\r\n}\r\nexport const itemTypeEnum = new ItemTypeEnum();\r\n","class TransactionFeesPlanTypeEnum {\r\n constructor() {\r\n this.Autonomous = 0;\r\n this.Volontary = 1;\r\n this.Contributive = 2;\r\n }\r\n\r\n name(type) {\r\n switch (type) {\r\n case this.Autonomous:\r\n return 'Autonomous';\r\n case this.Volontary:\r\n return 'Volontary';\r\n case this.Contributive:\r\n return 'Contributive';\r\n }\r\n }\r\n}\r\nexport const transactionFeesPlanTypeEnum = new TransactionFeesPlanTypeEnum();\r\n","//PSA utilise la même classe (une copie). À modifier aussi dans Github si changement ici!\r\n\r\nclass UserTypeEnum {\r\n constructor() {\r\n this.Unknown = 0;\r\n this.Participant = 10;\r\n this.Assistant = 20;\r\n this.AuctionManager = 30;\r\n this.Administrator = 40;\r\n this.AccountOwner = 50;\r\n this.Superadministrator = 999;\r\n }\r\n\r\n name(type) {\r\n switch (type) {\r\n case this.Unknown:\r\n return 'Unknown';\r\n case this.Participant:\r\n return 'Participant';\r\n case this.Assistant:\r\n return 'Assistant';\r\n case this.AuctionManager:\r\n return 'AuctionManager';\r\n case this.Administrator:\r\n return 'Administrator';\r\n case this.AccountOwner:\r\n return 'AccountOwner';\r\n case this.Superadministrator:\r\n return 'Superadministrator';\r\n }\r\n }\r\n}\r\nexport const userTypeEnum = new UserTypeEnum();\r\n","export default class Item {\r\n constructor(item, staleSequence) {\r\n for (const key in item) {\r\n this[key] = item[key];\r\n }\r\n for (const bid in this.bids) {\r\n this.bids[bid].createdOn = new Date(this.bids[bid].createdOn);\r\n }\r\n for (const canceledbid in this.canceledBids) {\r\n this.canceledBids[canceledbid].createdOn = new Date(this.canceledBids[canceledbid].createdOn);\r\n }\r\n if (this.bids) {\r\n this.modifiedOn = this.bids.length ? this.bids[0].createdOn : new Date(this.modifiedOn);\r\n }\r\n\r\n if (!this.partners) {\r\n this.partners = [];\r\n }\r\n\r\n if (this.removedOn) {\r\n this.removedOn = new Date(this.removedOn);\r\n }\r\n\r\n this.staleSequence = staleSequence;\r\n }\r\n\r\n get highestBid() {\r\n return this.bids && this.bids.length ? this.bids[0] : undefined;\r\n }\r\n\r\n get highestBidAmount() {\r\n const bid = this.highestBid;\r\n return bid ? bid.amount : this.startingBid;\r\n }\r\n\r\n get leadingUserId() {\r\n const bid = this.highestBid;\r\n return bid ? bid.userId : null;\r\n }\r\n\r\n get leadingUserName() {\r\n const bid = this.highestBid;\r\n return bid ? bid.currentUserName : null;\r\n }\r\n\r\n get hasImages() {\r\n return this.images && this.images.original;\r\n }\r\n\r\n userPlacedBid(userId) {\r\n if (this.bids && this.bids.length) {\r\n return !!this.bids.find(x => x.userId == userId);\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n get taxCredit() {\r\n let result = 0;\r\n const value = this.highestBidAmount;\r\n if (this.worth > 0 && value * 0.8 > this.worth) {\r\n result = value - this.worth;\r\n }\r\n return result;\r\n }\r\n\r\n get isInvaluable() {\r\n return this.worth < 0;\r\n }\r\n\r\n}\r\n","export const ACCEPTED_FILE_TYPES = Object.freeze(['image/jpeg', 'image/pjpeg', 'image/png']);\r\nexport const AUCTION_BANNER_DIMENSIONS = Object.freeze({ width: 700, height: 390 });\r\nexport const AUCTION_BANNER_RATIO = AUCTION_BANNER_DIMENSIONS.width / AUCTION_BANNER_DIMENSIONS.height;\r\nexport const AUTHENTICATION_COMPLETED_ACTION = 'AUTHENTICATION_COMPLETED_ACTION';\r\nexport const AUTHENTICATION_RETURN_PAGE_STORAGE = 'AUTHENTICATION_RETURN_PAGE';\r\nexport const BANNER_PREVIEW_STORAGE = 'BANNER_PREVIEW';\r\nexport const BID_TIMEOUT = 20000;\r\nexport const CANADA_CODE = 'CA';\r\nexport const COLOR_PREVIEW_STORAGE = 'COLOR_PREVIEW';\r\nexport const CURRENCY_CA = 'CAD';\r\nexport const CURRENCY_DEFAULT_LOCALE = 'fr-CA';\r\nexport const CURRENCY_US = 'USD';\r\nexport const CURRENCY_US_LOCALE = 'en-US';\r\nexport const DEFAULT_IMAGE_DIMENSIONS = Object.freeze({ width: 558, height: 507 });\r\nexport const DEFAULT_OVERTIME_DURATION = 5;\r\nexport const DEFAULT_OVERTIME_MAXIMUM_DURATION = 20;\r\nexport const DETAIL_IMAGE_DIMENSIONS = Object.freeze({ width: 768, height: 576 });\r\nexport const DETAIL_IMAGE_RATIO = DETAIL_IMAGE_DIMENSIONS.width / DETAIL_IMAGE_DIMENSIONS.height;\r\nexport const FACEBOOK_BANNER_DIMENSIONS = Object.freeze({ width: 1200, height: 630 });\r\nexport const FACEBOOK_BANNER_RATIO = FACEBOOK_BANNER_DIMENSIONS.width / FACEBOOK_BANNER_DIMENSIONS.height;\r\nexport const ITEM_BATCH_COUNT = 20;\r\nexport const ITEM_NAME_MAX_LENGTH = 90;\r\nexport const ITEM_NUMBER_MATH_DIGITS = 4;\r\nexport const LIST_IMAGE_DIMENSIONS = Object.freeze({ width: 280, height: 280 });\r\nexport const LIST_IMAGE_RATIO = LIST_IMAGE_DIMENSIONS.width / LIST_IMAGE_DIMENSIONS.height;\r\nexport const LOGO_PREVIEW_STORAGE = 'LOGO_PREVIEW';\r\nexport const MIN_PARTNER_TO_PLAY_CAROUSEL = 5;\r\nexport const NUMBER_COMPARISON_PRECISION = 0.03;\r\nexport const OVERTIME_MAXIMUM_DURATION_ALLOWED = 120;\r\nexport const QC_CODE = 'QC';\r\nexport const VT_CODE = 'VT';\r\n\r\n//Doit correspondre avec les constantes dans /Models/ADB2CPolicies/BasePolicy.cs\r\nexport const COMPLETED_ACTION_LOGIN = \"login\";\r\nexport const COMPLETED_ACTION_SIGNUP = \"signup\";\r\nexport const POLICY_ORIGIN_AUCTION = \"auction\";\r\nexport const POLICY_ORIGIN_ORGANIZATION = \"organization\";\r\nexport const POLICY_ORIGIN_OWNER = \"owner\";\r\n","import Vue from 'vue';\r\nimport VueI18n from 'vue-i18n';\r\nimport { supportedLocales } from '@/scripts/utils.js';\r\n\r\nVue.use(VueI18n);\r\n\r\nexport { supportedLocales };\r\n\r\n// Ces options sont utilisées par mixins/index.js:currency, en remplaçant la valeur 'CAD' par celle de l'encan en cours\r\nexport const numberFormats = {\r\n 'fr-CA': {\r\n currency: {\r\n style: 'currency', currency: 'CAD', currencyDisplay: 'narrowSymbol'\r\n },\r\n currencyNoCents: {\r\n style: 'currency', currency: 'CAD', currencyDisplay: 'narrowSymbol', minimumFractionDigits: 0, maximumFractionDigits: 0 // set fraction digits to 0 to remove cents\r\n },\r\n percent: {\r\n style: 'percent', minimumFractionDigits: 2, maximumFractionDigits: 4\r\n },\r\n percentNoDecimals: {\r\n style: 'percent', minimumFractionDigits: 0, maximumFractionDigits: 0\r\n }\r\n },\r\n 'en-CA': {\r\n currency: {\r\n style: 'currency', currency: 'CAD', currencyDisplay: 'narrowSymbol'\r\n },\r\n currencyNoCents: {\r\n style: 'currency', currency: 'CAD', currencyDisplay: 'narrowSymbol', minimumFractionDigits: 0, maximumFractionDigits: 0 // set fraction digits to 0 to remove cents\r\n },\r\n percent: {\r\n style: 'percent', minimumFractionDigits: 2, maximumFractionDigits: 4\r\n },\r\n percentNoDecimals: {\r\n style: 'percent', minimumFractionDigits: 0, maximumFractionDigits: 0\r\n }\r\n }\r\n};\r\n\r\nconst messages = {};\r\nexport const loadedLocales = {};\r\n\r\nconst instance = new VueI18n({\r\n locale: 'fr-CA',\r\n fallbackLocale: 'en-CA',\r\n messages,\r\n numberFormats\r\n});\r\n\r\nexport const load = async (locale) => {\r\n // Ignorer les pays pour le moment\r\n const code = locale.substring(0, 2);\r\n if (!loadedLocales[code]) {\r\n messages[locale] = await loaders[code]();\r\n loadedLocales[code] = true;\r\n }\r\n};\r\n\r\nconst loaders = {\r\n 'fr': async () => (await import(/* webpackChunkName: 'locale_fr_ca' */ '@/locales/fr-CA')).default,\r\n 'en': async () => (await import(/* webpackChunkName: 'locale_en_ca' */ '@/locales/en-CA')).default\r\n};\r\n\r\nconst localeRoutes = {};\r\nconst loadedLocaleRoutes = {};\r\n\r\nconst localeRoutesLoaders = {\r\n 'fr': async () => (await import(/* webpackChunkName: 'localeRoutes_fr_ca' */ '@/locales/fr-CA/routes.json')).default,\r\n 'en': async () => (await import(/* webpackChunkName: 'localeRoutes_en_ca' */ '@/locales/en-CA/routes.json')).default\r\n};\r\n\r\nexport const getLocaleRoutes = async (locale) => {\r\n // Ignorer les pays pour le moment\r\n const code = locale.substring(0, 2);\r\n // Prendre les routes des messages déjà chargés si disponible\r\n if (loadedLocales[code] && messages[locale] && messages[locale].routes) {\r\n return messages[locale].routes;\r\n }\r\n // sinon charger que les routes\r\n if (!loadedLocaleRoutes[code]) {\r\n localeRoutes[locale] = await localeRoutesLoaders[code]();\r\n loadedLocaleRoutes[code] = true;\r\n }\r\n return localeRoutes[locale];\r\n};\r\n\r\nexport default instance;\r\n","export const escapeRegExp = (str) => str.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\r\n\r\nexport const removeLeadingZeros = (str) => str.replace(/^0+(0$|[^0])/, '$1')\r\n\r\nexport const count = (str, search) => (str.match(new RegExp(escapeRegExp(search), 'g')) || []).length\r\n\r\nexport const startsWith = (str, search) => str.substring(0, search.length) === search\r\n\r\nexport const substringBefore = (str, search) => str.substring(0, str.indexOf(search))\r\n","import { count, escapeRegExp, startsWith, substringBefore } from './utils/stringUtils'\r\n\r\nexport const DECIMAL_SYMBOLS = [',', '.', '٫']\r\nexport const INTEGER_PATTERN = '(0|[1-9]\\\\d*)'\r\n\r\nexport default class NumberFormat {\r\n constructor (options) {\r\n const { currency, locale, precision, autoDecimalMode, valueAsInteger } = options\r\n const numberFormat = new Intl.NumberFormat(locale, typeof currency === 'string' ? { currency, style: 'currency', currencyDisplay: 'narrowSymbol' } : { minimumFractionDigits: 1 })\r\n const ps = numberFormat.format(123456)\r\n\r\n this.locale = locale\r\n this.currency = currency\r\n this.digits = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map((i) => i.toLocaleString(locale))\r\n this.decimalSymbol = count(ps, this.digits[0]) ? ps.substr(ps.indexOf(this.digits[6]) + 1, 1) : undefined\r\n this.groupingSymbol = ps.substr(ps.indexOf(this.digits[3]) + 1, 1)\r\n this.minusSymbol = substringBefore(Number(-1).toLocaleString(locale), this.digits[1])\r\n\r\n if (this.decimalSymbol === undefined) {\r\n this.minimumFractionDigits = this.maximumFractionDigits = 0\r\n } else if (typeof precision === 'number') {\r\n this.minimumFractionDigits = this.maximumFractionDigits = precision\r\n } else if (typeof precision === 'object' && !autoDecimalMode && !valueAsInteger) {\r\n this.minimumFractionDigits = precision.min || 0\r\n this.maximumFractionDigits = precision.max !== undefined ? precision.max : 20\r\n } else if (typeof currency === 'string') {\r\n this.minimumFractionDigits = numberFormat.resolvedOptions().minimumFractionDigits\r\n this.maximumFractionDigits = numberFormat.resolvedOptions().maximumFractionDigits\r\n } else {\r\n this.minimumFractionDigits = this.maximumFractionDigits = 2\r\n }\r\n\r\n if (typeof currency === 'string') {\r\n this.prefix = substringBefore(ps, this.digits[1])\r\n this.negativePrefix = substringBefore(numberFormat.format(-1), this.digits[1])\r\n this.suffix = ps.substring(ps.lastIndexOf(this.decimalSymbol ? this.digits[0] : this.digits[6]) + 1)\r\n } else {\r\n this.prefix = (currency || {}).prefix || ''\r\n this.negativePrefix = `${this.minusSymbol}${this.prefix}`\r\n this.suffix = (currency || {}).suffix || ''\r\n }\r\n }\r\n\r\n parse (str, valueAsInteger = false) {\r\n if (str) {\r\n const negative = this.isNegative(str)\r\n str = this.normalizeDigits(str)\r\n str = this.stripCurrencySymbol(str)\r\n str = this.stripMinusSymbol(str)\r\n const fraction = this.decimalSymbol ? `(?:${escapeRegExp(this.decimalSymbol)}(\\\\d*))?` : ''\r\n const match = this.stripGroupingSymbol(str).match(new RegExp(`^${INTEGER_PATTERN}${fraction}$`))\r\n if (match && this.isValidIntegerFormat(str.split(this.decimalSymbol)[0], Number(match[1]))) {\r\n const number = Number(`${negative ? '-' : ''}${match[1]}.${(match[2] || '')}`)\r\n return valueAsInteger ? Number(number.toFixed(this.maximumFractionDigits).split('.').join('')) : number\r\n }\r\n }\r\n return null\r\n }\r\n\r\n isValidIntegerFormat (str, integerNumber) {\r\n const options = typeof this.currency === 'string'\r\n ? { style: 'currency', currency: this.currency, minimumFractionDigits: 0, currencyDisplay: 'narrowSymbol' }\r\n : {}\r\n return [\r\n this.stripCurrencySymbol(this.normalizeDigits(integerNumber.toLocaleString(this.locale, { ...options, useGrouping: true }))),\r\n this.stripCurrencySymbol(this.normalizeDigits(integerNumber.toLocaleString(this.locale, { ...options, useGrouping: false })))\r\n ].includes(str)\r\n }\r\n\r\n format (number, options = {\r\n minimumFractionDigits: this.minimumFractionDigits,\r\n maximumFractionDigits: this.maximumFractionDigits\r\n }) {\r\n if (typeof this.currency === 'string') {\r\n return number.toLocaleString(this.locale, {\r\n style: 'currency',\r\n currency: this.currency,\r\n currencyDisplay: 'narrowSymbol', \r\n ...options\r\n })\r\n } else {\r\n return this.insertCurrencySymbol(Math.abs(number).toLocaleString(this.locale, options), number < 0 || (number === 0 && (1 / number < 0)))\r\n }\r\n }\r\n\r\n toFraction (str) {\r\n return `${this.digits[0]}${this.decimalSymbol}${(this.onlyLocaleDigits(str.substr(1)).substr(0, this.maximumFractionDigits))}`\r\n }\r\n\r\n isFractionIncomplete (str) {\r\n return !!this.normalizeDigits(this.stripGroupingSymbol(str)).match(new RegExp(`^${INTEGER_PATTERN}${escapeRegExp(this.decimalSymbol)}$`))\r\n }\r\n\r\n isNegative (str) {\r\n return startsWith(str, this.negativePrefix) || startsWith(str.replace('-', this.minusSymbol), this.minusSymbol)\r\n }\r\n\r\n insertCurrencySymbol (str, negative) {\r\n return `${negative ? this.negativePrefix : this.prefix}${str}${this.suffix}`\r\n }\r\n\r\n stripGroupingSymbol (str) {\r\n return str.replace(new RegExp(escapeRegExp(this.groupingSymbol), 'g'), '')\r\n }\r\n\r\n stripMinusSymbol (str) {\r\n return str.replace('-', this.minusSymbol).replace(this.minusSymbol, '')\r\n }\r\n\r\n stripCurrencySymbol (str) {\r\n return str.replace(this.negativePrefix, '').replace(this.prefix, '').replace(this.suffix, '')\r\n }\r\n\r\n normalizeDecimalSymbol (str, from) {\r\n DECIMAL_SYMBOLS.forEach((s) => {\r\n str = str.substr(0, from) + str.substr(from).replace(s, this.decimalSymbol)\r\n })\r\n return str\r\n }\r\n\r\n normalizeDigits (str) {\r\n if (this.digits[0] !== '0') {\r\n this.digits.forEach((digit, index) => {\r\n str = str.replace(new RegExp(digit, 'g'), index)\r\n })\r\n }\r\n return str\r\n }\r\n\r\n onlyDigits (str) {\r\n return this.normalizeDigits(str).replace(/\\D+/g, '')\r\n }\r\n\r\n onlyLocaleDigits (str) {\r\n return str.replace(new RegExp(`[^${this.digits.join('')}]*`, 'g'), '')\r\n }\r\n}\r\n","import NumberFormat from './numberFormat'\r\n\r\nexport const DEFAULT_OPTIONS = {\r\n locale: undefined,\r\n currency: 'EUR',\r\n valueAsInteger: false,\r\n distractionFree: true,\r\n precision: undefined,\r\n autoDecimalMode: false,\r\n valueRange: undefined,\r\n allowNegative: true\r\n}\r\n\r\n/**\r\n * Parses a number from a currency formatted string.\r\n *\r\n * @param {String} formattedValue The currency formatted string to be parsed, for example `$1,234.50`.\r\n * @param {Object} options The configured options of the respective `v-currency` directive.\r\n * @returns {Number | null} The parsed number or `null` if the formatted string does not match.\r\n */\r\nexport const parse = (formattedValue, options) => {\r\n const mergedOptions = { ...DEFAULT_OPTIONS, ...options }\r\n return new NumberFormat(mergedOptions).parse(formattedValue, mergedOptions.valueAsInteger)\r\n}\r\n\r\n/**\r\n * Returns the current number value of an input.\r\n *\r\n * @param ref {Element | VueConstructor} The element or Vue component the `v-currency` directive is bound to.\r\n * @returns {Number | null} The current number value or `null` if empty.\r\n */\r\nexport const getValue = (ref) => (ref.$el || ref).$ci.getValue()\r\n\r\n/**\r\n * Sets the value of an input programmatically.\r\n *\r\n * @param ref {Element | VueConstructor} The element or Vue component the `v-currency` directive is bound to.\r\n * @param {Number} value The number to be set.\r\n */\r\nexport const setValue = (ref, value) => {\r\n (ref.$el || ref).$ci.setValue(value)\r\n}\r\n","const equal = (a, b) => {\r\n if (a === b) {\r\n return true\r\n }\r\n if (!a || !b || typeof a !== 'object' || typeof b !== 'object') {\r\n return false\r\n }\r\n const keys = Object.keys(a)\r\n if (keys.length !== Object.keys(b).length) {\r\n return false\r\n }\r\n if (!keys.every(Object.prototype.hasOwnProperty.bind(b))) {\r\n return false\r\n }\r\n return keys.every((key) => equal(a[key], b[key]))\r\n}\r\n\r\nexport default equal\r\n","import { removeLeadingZeros, startsWith } from './utils/stringUtils'\r\n\r\nexport class DefaultNumberMask {\r\n constructor (numberFormat) {\r\n this.numberFormat = numberFormat\r\n }\r\n\r\n conformToMask (str, previousConformedValue = '') {\r\n const negative = this.numberFormat.isNegative(str)\r\n const checkIncompleteValue = (str) => {\r\n if (str === '' && negative && previousConformedValue !== this.numberFormat.negativePrefix) {\r\n return ''\r\n } else if (this.numberFormat.maximumFractionDigits > 0) {\r\n if (this.numberFormat.isFractionIncomplete(str)) {\r\n return str\r\n } else if (startsWith(str, this.numberFormat.decimalSymbol)) {\r\n return this.numberFormat.toFraction(str)\r\n }\r\n }\r\n return null\r\n }\r\n\r\n let value = str\r\n value = this.numberFormat.stripCurrencySymbol(value)\r\n value = this.numberFormat.stripMinusSymbol(value)\r\n\r\n const incompleteValue = checkIncompleteValue(value)\r\n if (incompleteValue != null) {\r\n return this.numberFormat.insertCurrencySymbol(incompleteValue, negative)\r\n }\r\n\r\n const [integer, ...fraction] = value.split(this.numberFormat.decimalSymbol)\r\n const integerDigits = removeLeadingZeros(this.numberFormat.onlyDigits(integer))\r\n const fractionDigits = this.numberFormat.onlyDigits(fraction.join('')).substr(0, this.numberFormat.maximumFractionDigits)\r\n const invalidFraction = fraction.length > 0 && fractionDigits.length === 0\r\n const invalidNegativeValue = integerDigits === '' && negative && (previousConformedValue === str.slice(0, -1) || previousConformedValue !== this.numberFormat.negativePrefix)\r\n\r\n if (invalidFraction || invalidNegativeValue) {\r\n return previousConformedValue\r\n } else if (integerDigits.match(/\\d+/)) {\r\n return {\r\n numberValue: Number(`${negative ? '-' : ''}${integerDigits}.${fractionDigits}`),\r\n fractionDigits\r\n }\r\n } else {\r\n return ''\r\n }\r\n }\r\n}\r\n\r\nexport class AutoDecimalModeNumberMask {\r\n constructor (numberFormat) {\r\n this.numberFormat = numberFormat\r\n }\r\n\r\n conformToMask (str) {\r\n if (str === '') {\r\n return ''\r\n }\r\n const negative = this.numberFormat.isNegative(str)\r\n const numberValue = this.numberFormat.stripMinusSymbol(str) === ''\r\n ? -0\r\n : Number(`${negative ? '-' : ''}${removeLeadingZeros(this.numberFormat.onlyDigits(str))}`) / Math.pow(10, this.numberFormat.minimumFractionDigits)\r\n return {\r\n numberValue,\r\n fractionDigits: numberValue.toFixed(this.numberFormat.minimumFractionDigits).slice(-this.numberFormat.minimumFractionDigits)\r\n }\r\n }\r\n}\r\n","import { count } from './utils/stringUtils'\r\n\r\nexport const getCaretPositionAfterFormat = (newValue, inputtedValue, caretPosition, numberFormat, options) => {\r\n const { prefix, suffix, decimalSymbol, maximumFractionDigits, groupingSymbol } = numberFormat\r\n const decimalSymbolPosition = inputtedValue.indexOf(decimalSymbol) + 1\r\n let caretPositionFromLeft = inputtedValue.length - caretPosition\r\n\r\n if (Math.abs(newValue.length - inputtedValue.length) > 1 && caretPosition <= decimalSymbolPosition) {\r\n return newValue.indexOf(decimalSymbol) + 1\r\n } else if (newValue.substr(caretPosition, 1) === groupingSymbol && count(newValue, groupingSymbol) === count(inputtedValue, groupingSymbol) + 1) {\r\n return newValue.length - caretPositionFromLeft - 1\r\n } else {\r\n if (!options.autoDecimalMode && decimalSymbolPosition !== 0 && caretPosition > decimalSymbolPosition) {\r\n if (numberFormat.onlyDigits(inputtedValue.substr(decimalSymbolPosition)).length - 1 === maximumFractionDigits) {\r\n caretPositionFromLeft -= 1\r\n }\r\n }\r\n return options.distractionFree.hideCurrencySymbol\r\n ? newValue.length - caretPositionFromLeft\r\n : Math.max(newValue.length - Math.max(caretPositionFromLeft, suffix.length), prefix.length === 0 ? 0 : prefix.length + 1)\r\n }\r\n}\r\n\r\nexport const getDistractionFreeCaretPosition = (numberFormat, options, value, caretPosition) => {\r\n let result = caretPosition\r\n if (options.distractionFree.hideCurrencySymbol) {\r\n result -= numberFormat.prefix.length\r\n }\r\n if (options.distractionFree.hideGroupingSymbol) {\r\n result -= count(value.substring(0, caretPosition), numberFormat.groupingSymbol)\r\n }\r\n return Math.max(0, result)\r\n}\r\n","import NumberFormat, { DECIMAL_SYMBOLS } from './numberFormat'\r\nimport { AutoDecimalModeNumberMask, DefaultNumberMask } from './numberMask'\r\nimport { getCaretPositionAfterFormat, getDistractionFreeCaretPosition } from './caretPosition'\r\n\r\nconst MAX_SAFE_INTEGER = Math.pow(2, 53) - 1\r\n\r\nexport class NumberInput {\r\n constructor (el, options, callbackFns) {\r\n this.el = el\r\n this.callbackFns = callbackFns\r\n this.numberValue = null\r\n this.addEventListener()\r\n this.init(options)\r\n this.setValue(this.currencyFormat.parse(this.el.value))\r\n }\r\n\r\n init (newOptions) {\r\n const options = { ...newOptions }\r\n const { distractionFree, autoDecimalMode, valueRange } = options\r\n if (typeof distractionFree === 'boolean') {\r\n options.distractionFree = {\r\n hideCurrencySymbol: distractionFree,\r\n hideNegligibleDecimalDigits: distractionFree,\r\n hideGroupingSymbol: distractionFree\r\n }\r\n }\r\n if (valueRange) {\r\n options.valueRange = {\r\n min: valueRange.min !== undefined ? Math.max(valueRange.min, -MAX_SAFE_INTEGER) : -MAX_SAFE_INTEGER,\r\n max: valueRange.max !== undefined ? Math.min(valueRange.max, MAX_SAFE_INTEGER) : MAX_SAFE_INTEGER\r\n }\r\n } else {\r\n options.valueRange = {\r\n min: -MAX_SAFE_INTEGER,\r\n max: MAX_SAFE_INTEGER\r\n }\r\n }\r\n if (autoDecimalMode) {\r\n options.distractionFree.hideNegligibleDecimalDigits = false\r\n this.el.setAttribute('inputmode', 'numeric')\r\n } else {\r\n this.el.setAttribute('inputmode', 'decimal')\r\n }\r\n this.options = options\r\n this.currencyFormat = new NumberFormat(this.options)\r\n this.numberMask = options.autoDecimalMode ? new AutoDecimalModeNumberMask(this.currencyFormat) : new DefaultNumberMask(this.currencyFormat)\r\n }\r\n\r\n setOptions (options) {\r\n this.init(options)\r\n this.applyFixedFractionFormat(this.numberValue, true)\r\n }\r\n\r\n applyFixedFractionFormat (number, forcedChange) {\r\n this.format(number != null ? this.currencyFormat.format(this.validateValueRange(number)) : null)\r\n if (number !== this.numberValue || forcedChange) {\r\n this.callbackFns.onChange(this.getValue())\r\n }\r\n }\r\n\r\n getValue () {\r\n return this.currencyFormat.parse(this.formattedValue, this.options.valueAsInteger)\r\n }\r\n\r\n setValue (value) {\r\n const newValue = this.options.valueAsInteger && value != null ? value / Math.pow(10, this.currencyFormat.maximumFractionDigits) : value\r\n if (newValue !== this.numberValue) {\r\n this.applyFixedFractionFormat(newValue)\r\n }\r\n }\r\n\r\n validateValueRange (value) {\r\n const { min, max } = this.options.valueRange\r\n return Math.min(Math.max(value, min), max)\r\n }\r\n\r\n updateInputValue (value, hideNegligibleDecimalDigits = false) {\r\n if (value != null) {\r\n if (this.decimalSymbolInsertedAt !== undefined) {\r\n value = this.currencyFormat.normalizeDecimalSymbol(value, this.decimalSymbolInsertedAt)\r\n this.decimalSymbolInsertedAt = undefined\r\n }\r\n const conformedValue = this.numberMask.conformToMask(value, this.formattedValue)\r\n let formattedValue\r\n if (typeof conformedValue === 'object') {\r\n const { numberValue, fractionDigits } = conformedValue\r\n let { maximumFractionDigits, minimumFractionDigits } = this.currencyFormat\r\n if (this.focus) {\r\n minimumFractionDigits = maximumFractionDigits\r\n }\r\n minimumFractionDigits = hideNegligibleDecimalDigits\r\n ? fractionDigits.replace(/0+$/, '').length\r\n : Math.min(minimumFractionDigits, fractionDigits.length)\r\n formattedValue = numberValue > MAX_SAFE_INTEGER\r\n ? this.formattedValue\r\n : this.currencyFormat.format(numberValue, {\r\n useGrouping: !(this.focus && this.options.distractionFree.hideGroupingSymbol),\r\n minimumFractionDigits,\r\n maximumFractionDigits\r\n })\r\n } else {\r\n formattedValue = conformedValue\r\n }\r\n if (!this.options.allowNegative) {\r\n formattedValue = formattedValue.replace(this.currencyFormat.negativePrefix, this.currencyFormat.prefix)\r\n }\r\n if (this.focus && this.options.distractionFree.hideCurrencySymbol) {\r\n formattedValue = formattedValue\r\n .replace(this.currencyFormat.negativePrefix, this.currencyFormat.minusSymbol)\r\n .replace(this.currencyFormat.prefix, '')\r\n .replace(this.currencyFormat.suffix, '')\r\n }\r\n\r\n this.el.value = formattedValue\r\n this.numberValue = this.currencyFormat.parse(formattedValue)\r\n } else {\r\n this.el.value = this.numberValue = null\r\n }\r\n this.formattedValue = this.el.value\r\n }\r\n\r\n format (value) {\r\n this.updateInputValue(value)\r\n this.callbackFns.onInput(this.getValue())\r\n }\r\n\r\n addEventListener () {\r\n this.el.addEventListener('input', () => {\r\n const { value, selectionStart } = this.el\r\n this.format(value)\r\n if (this.focus) {\r\n this.setCaretPosition(getCaretPositionAfterFormat(this.formattedValue, value, selectionStart, this.currencyFormat, this.options))\r\n }\r\n }, { capture: true })\r\n\r\n this.el.addEventListener('focus', () => {\r\n this.focus = true\r\n const { hideCurrencySymbol, hideGroupingSymbol, hideNegligibleDecimalDigits } = this.options.distractionFree\r\n if (hideCurrencySymbol || hideGroupingSymbol || hideNegligibleDecimalDigits) {\r\n setTimeout(() => {\r\n const { value, selectionStart, selectionEnd } = this.el\r\n if (value) {\r\n this.updateInputValue(this.el.value, hideNegligibleDecimalDigits)\r\n }\r\n if (Math.abs(selectionStart - selectionEnd) > 0) {\r\n this.setCaretPosition(0, this.el.value.length)\r\n } else {\r\n this.setCaretPosition(getDistractionFreeCaretPosition(this.currencyFormat, this.options, value, selectionStart))\r\n }\r\n })\r\n }\r\n })\r\n\r\n this.el.addEventListener('keypress', (e) => {\r\n if (DECIMAL_SYMBOLS.includes(e.key)) {\r\n this.decimalSymbolInsertedAt = this.el.selectionStart\r\n }\r\n })\r\n\r\n this.el.addEventListener('blur', () => {\r\n this.focus = false\r\n if (this.numberValue != null) {\r\n this.applyFixedFractionFormat(this.numberValue)\r\n }\r\n })\r\n\r\n this.el.addEventListener('change', () => {\r\n this.callbackFns.onChange(this.getValue())\r\n })\r\n }\r\n\r\n setCaretPosition (start, end = start) { this.el.setSelectionRange(start, end) }\r\n}\r\n","import { DEFAULT_OPTIONS } from './api'\r\nimport equal from './utils/equal'\r\nimport { NumberInput } from './numberInput'\r\n\r\nexport default {\r\n bind (el, { value: optionsFromBinding }, vnode) {\r\n const inputElement = el.tagName.toLowerCase() === 'input' ? el : el.querySelector('input')\r\n if (!inputElement) {\r\n throw new Error('No input element found')\r\n }\r\n const options = {\r\n ...DEFAULT_OPTIONS,\r\n ...(vnode.context.$ci || {}).globalOptions,\r\n ...optionsFromBinding\r\n }\r\n const listeners = (vnode.data && vnode.data.on) || (vnode.componentOptions && vnode.componentOptions.listeners) || {}\r\n\r\n const emit = (event, data) => {\r\n if (listeners[event]) {\r\n listeners[event](vnode.componentOptions ? data : { target: { value: data } })\r\n }\r\n }\r\n\r\n el.$ci = new NumberInput(inputElement, options, {\r\n onChange: () => { emit('change', inputElement.value) },\r\n onInput: () => { emit('input', inputElement.value) }\r\n })\r\n },\r\n componentUpdated (el, { value, oldValue }) {\r\n if (!equal(value, oldValue)) {\r\n el.$ci.setOptions(value)\r\n }\r\n }\r\n}\r\n","import { DEFAULT_OPTIONS, getValue, setValue } from './api'\r\nimport currencyDirective from './directive'\r\n\r\nexport default {\r\n render (h) {\r\n return h('input', {\r\n directives: [{\r\n name: 'currency',\r\n value: this.options\r\n }],\r\n on: {\r\n ...this.$listeners,\r\n change: () => {\r\n this.$emit('change', getValue(this.$el))\r\n },\r\n input: () => {\r\n const numberValue = getValue(this.$el)\r\n if (this.value !== numberValue) {\r\n this.$emit('input', numberValue)\r\n }\r\n }\r\n }\r\n })\r\n },\r\n directives: {\r\n currency: currencyDirective\r\n },\r\n name: 'CurrencyInput',\r\n props: {\r\n value: {\r\n type: Number,\r\n default: null\r\n },\r\n locale: {\r\n type: String,\r\n default: undefined\r\n },\r\n currency: {\r\n type: [String, Object],\r\n default: undefined\r\n },\r\n distractionFree: {\r\n type: [Boolean, Object],\r\n default: undefined\r\n },\r\n precision: {\r\n type: [Number, Object],\r\n default: undefined\r\n },\r\n autoDecimalMode: {\r\n type: Boolean,\r\n default: undefined\r\n },\r\n valueAsInteger: {\r\n type: Boolean,\r\n default: undefined\r\n },\r\n valueRange: {\r\n type: Object,\r\n default: undefined\r\n },\r\n allowNegative: {\r\n type: Boolean,\r\n default: undefined\r\n }\r\n },\r\n mounted () {\r\n this.setValue(this.value)\r\n },\r\n computed: {\r\n options () {\r\n const options = {\r\n ...DEFAULT_OPTIONS,\r\n ...(this.$ci || {}).globalOptions\r\n }\r\n Object.keys(DEFAULT_OPTIONS).forEach((key) => {\r\n if (this[key] !== undefined) {\r\n options[key] = this[key]\r\n }\r\n })\r\n return options\r\n }\r\n },\r\n watch: {\r\n value: 'setValue'\r\n },\r\n methods: {\r\n setValue (value) {\r\n setValue(this.$el, value)\r\n }\r\n }\r\n}\r\n","import { getValue, parse, setValue } from './api'\r\nimport component from './component'\r\nimport directive from './directive'\r\n\r\nexport default {\r\n install (Vue, {\r\n componentName = component.name,\r\n directiveName = 'currency',\r\n globalOptions = {}\r\n } = {}) {\r\n Vue.component(componentName, component)\r\n Vue.directive(directiveName, directive)\r\n Vue.prototype.$ci = {\r\n parse: (formattedValue, options) => parse(formattedValue, { ...globalOptions, ...options }),\r\n getValue,\r\n setValue,\r\n globalOptions\r\n }\r\n }\r\n}\r\n","import { getValue, parse, setValue } from './api'\r\nimport component from './component'\r\nimport directive from './directive'\r\nimport plugin from './plugin'\r\n\r\nexport default plugin\r\nexport {\r\n parse,\r\n getValue,\r\n setValue,\r\n component as CurrencyInput,\r\n directive as CurrencyDirective\r\n}\r\n\r\n// Auto install when included directly in the browser\r\nif (typeof window !== 'undefined' && window.Vue) {\r\n window.Vue.use(plugin)\r\n}\r\n","// Shorthand for muliple events with the same function\r\nexport default function (types, func, state = 'add') {\r\n types.forEach((type) => {\r\n document[`${state}EventListener`](type, func);\r\n });\r\n}\r\n","// Return a matrix with transform and translate values\r\nexport default function (matrix, a, b) {\r\n return `matrix(${matrix || '1, 0, 0, 1,'} ${a}, ${b})`;\r\n}\r\n","import eventListener from '../utils/eventListener';\r\nimport returnPositionString from '../utils/returnPositionString';\r\n\r\nexport function updatePosition(x, y) {\r\n // Store relative coordinates\r\n window.data.relativeX = window.data.mouseX * x;\r\n window.data.relativeY = window.data.mouseY * y;\r\n\r\n // Apply transformation to move element\r\n window.data.move.style.transform = returnPositionString(\r\n window.data.matrix,\r\n window.data.matrixX + window.data.relativeX,\r\n window.data.matrixY + window.data.relativeY,\r\n );\r\n}\r\n\r\nexport const callPositionUpdate = {\r\n x() { updatePosition(true, false); },\r\n y() { updatePosition(false, true); },\r\n all() { updatePosition(true, true); }\r\n};\r\n\r\nexport function repeatRaf() {\r\n callPositionUpdate[window.data.axis](window.data);\r\n window.data.posAnimation = requestAnimationFrame(repeatRaf);\r\n}\r\n\r\nexport default function setUpMovement() {\r\n // Apply CSS class to move element\r\n window.data.move.classList.add(window.data.class.move);\r\n\r\n // Begin moving animation\r\n window.data.posAnimation = requestAnimationFrame(repeatRaf);\r\n\r\n // Avoid this function to fire another time\r\n eventListener(['mousemove', 'touchmove'], setUpMovement, 'remove');\r\n}\r\n","// Return element's left or top position\r\nexport default function (str, dir) {\r\n // Get top or left position, without translate\r\n let pos = Number(window.getComputedStyle(window.data.move)[dir].replace('px', ''));\r\n\r\n // Only consider translation when matrix is defined\r\n if (str !== 'none') {\r\n // Get all matrix's values\r\n const itemsArray = str.match(/[0-9.-]+/g);\r\n\r\n // Get matrix translate value, based on the x + y = 8 equation\r\n pos += Number(itemsArray[8 - dir.length]);\r\n }\r\n\r\n return pos;\r\n}\r\n","export default function (transform, left, top) {\r\n if (window.data.move) {\r\n window.data.move.style.transform = transform;\r\n window.data.move.style.left = left;\r\n window.data.move.style.top = top;\r\n }\r\n}\r\n","export default function (e) {\r\n window.data.mouseX = (e.pageX || e.touches[0].pageX) - window.data.initialX;\r\n window.data.mouseY = (e.pageY || e.touches[0].pageY) - window.data.initialY;\r\n}\r\n","import dragMove from './dragMove';\r\n\r\nimport getTransformValue from '../utils/getTransformValue';\r\nimport moveElementTransform from '../utils/moveElementTransform';\r\nimport returnPositionString from '../utils/returnPositionString';\r\nimport eventListener from '../utils/eventListener';\r\nimport updateMousePosition from '../utils/updateMousePosition';\r\n\r\n\r\nexport default function (grabElement, moveElement, axis, e) {\r\n // Store elements\r\n window.data.grab = grabElement;\r\n window.data.move = moveElement;\r\n\r\n // Store axis\r\n window.data.axis = axis;\r\n\r\n // Store current mouse or touch position\r\n window.data.initialX = e.pageX || e.touches[0].pageX;\r\n window.data.initialY = e.pageY || e.touches[0].pageY;\r\n\r\n // Reset relative coordinates\r\n window.data.relativeX = 0;\r\n window.data.relativeY = 0;\r\n\r\n // Get transform string of the move element\r\n const matrix = window.getComputedStyle(window.data.move).transform;\r\n\r\n // Store matrix value\r\n if (matrix === 'none') {\r\n window.data.matrix = false;\r\n } else {\r\n window.data.matrix = matrix.match(/\\d([^,]*,){4}/g);\r\n }\r\n\r\n // Apply transform to the move element\r\n const left = getTransformValue(matrix, 'left');\r\n const top = getTransformValue(matrix, 'top');\r\n\r\n // Replace left and top properties with transform\r\n moveElementTransform(\r\n returnPositionString(window.data.matrix, left, top),\r\n 0,\r\n 0\r\n );\r\n\r\n window.data.matrixX = left;\r\n window.data.matrixY = top;\r\n\r\n // Apply CSS class to grab element\r\n window.data.grab.classList.add(window.data.class.down);\r\n\r\n // Add events to move drag\r\n eventListener(['mousemove', 'touchmove'], updateMousePosition);\r\n eventListener(['mousemove', 'touchmove'], dragMove);\r\n}\r\n","import dragMove from './dragMove';\r\n\r\nimport eventListener from '../utils/eventListener';\r\nimport moveElementTransform from '../utils/moveElementTransform';\r\nimport returnPositionString from '../utils/returnPositionString';\r\nimport updateMousePosition from '../utils/updateMousePosition';\r\n\r\nexport default function () {\r\n // Stop move animation\r\n cancelAnimationFrame(window.data.posAnimation);\r\n\r\n // Remove setUpMovement() if mouse/touch hasn't moved\r\n eventListener(['mousemove', 'touchmove'], dragMove, 'remove');\r\n\r\n // Replace transform properties with left and top\r\n moveElementTransform(\r\n window.data.matrix ? returnPositionString(window.data.matrix, 0, 0) : 'none',\r\n `${window.data.matrixX + window.data.relativeX}px`,\r\n `${window.data.matrixY + window.data.relativeY}px`,\r\n );\r\n\r\n // Remove CSS classes\r\n if (window.data.grab) {\r\n window.data.grab.classList.remove(window.data.class.down);\r\n }\r\n\r\n if (window.data.move) {\r\n window.data.move.classList.remove(window.data.class.move);\r\n }\r\n\r\n // Stop updating mouse position\r\n eventListener(['mousemove', 'touchmove'], updateMousePosition, 'remove');\r\n}\r\n","// Checks if the given value is a valid axis value ('x', 'y' or 'all')\r\nexport default function (axis) {\r\n const acceptedValues = ['x', 'y', 'all'];\r\n\r\n if (acceptedValues.includes(axis)) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n","import dragStart from './dragStart';\r\nimport dragEnd from './dragEnd';\r\n\r\nimport isValidAxisValue from '../utils/isValidAxisValue';\r\nimport eventListener from '../utils/eventListener';\r\n\r\nexport default function (el, binding) {\r\n const value = binding.value;\r\n const handleSelector = value instanceof Object ? value.handle : value;\r\n let axis;\r\n\r\n // Update axis value\r\n if (value instanceof Object && value.axis && isValidAxisValue(value.axis)) {\r\n axis = value.axis;\r\n } else if (isValidAxisValue(binding.arg)) {\r\n axis = binding.arg;\r\n } else {\r\n axis = 'all';\r\n }\r\n\r\n // Handle is a class\r\n const handleArray = document.querySelectorAll(handleSelector);\r\n\r\n if (handleArray.length !== 0) {\r\n // Define move element and apply CSS class\r\n el.classList.add(window.data.class.usesHandle);\r\n\r\n handleArray.forEach((grabElement) => {\r\n // Apply CSS class to each grab element\r\n grabElement.classList.add(window.data.class.handle);\r\n\r\n // Add events to start drag with handle\r\n grabElement.onmousedown = e => dragStart(grabElement, el, axis, e);\r\n grabElement.ontouchstart = e => dragStart(grabElement, el, axis, e);\r\n });\r\n } else {\r\n // Add events to start drag without handle\r\n el.onmousedown = e => dragStart(el, el, axis, e);\r\n el.ontouchstart = e => dragStart(el, el, axis, e);\r\n }\r\n\r\n // Apply CSS classes to the element\r\n el.classList.add(window.data.class.initial);\r\n\r\n // Add event to end drag\r\n eventListener(['mouseup', 'touchend'], dragEnd);\r\n}\r\n","import dragSetup from './events/dragSetup';\r\n\r\nexport default {\r\n install(Vue, options) {\r\n // Initialize 'data' object\r\n window.data = {};\r\n\r\n // Store default event classes\r\n window.data.class = {\r\n initial: 'drag-draggable',\r\n usesHandle: 'drag-uses-handle',\r\n handle: 'drag-handle',\r\n down: 'drag-down',\r\n move: 'drag-move'\r\n };\r\n\r\n // Replace default event classes with custom ones\r\n if (options) {\r\n const classes = options.eventClass;\r\n Object.keys(classes).forEach((key) => {\r\n if (classes[key]) {\r\n window.data.class[key] = classes[key];\r\n }\r\n });\r\n }\r\n\r\n // Create stylesheet with basic styling (position, z-index and cursors)\r\n const styleElement = document.createElement('style');\r\n styleElement.innerHTML = `.${window.data.class.initial}{position:relative;transition:none;}.${window.data.class.initial}:not(.${window.data.class.usesHandle}),.${window.data.class.handle}{cursor:move;cursor:grab;cursor:-webkit-grab;}.${window.data.class.handle}.${window.data.class.down},.${window.data.class.initial}:not(.${window.data.class.usesHandle}).${window.data.class.down}{z-index:999;cursor:grabbing;cursor:-webkit-grabbing;}`;\r\n document.body.appendChild(styleElement);\r\n\r\n // Register 'v-drag' directive\r\n Vue.directive('drag', {\r\n // Add draggable configuration to element for the first time\r\n inserted(el, binding) {\r\n dragSetup(el, binding);\r\n },\r\n\r\n // Update the drag configuration\r\n update(el, binding) {\r\n // Remove events from updated element\r\n el.onmousedown = null;\r\n el.ontouchstart = null;\r\n\r\n const handle = typeof binding.oldValue === 'object'\r\n ? binding.oldValue.handle\r\n : binding.oldValue;\r\n\r\n const oldHandleArray = document.querySelectorAll(handle);\r\n\r\n oldHandleArray.forEach((oldHandle) => {\r\n // Remove events from the old handle\r\n oldHandle.onmousedown = null;\r\n oldHandle.ontouchstart = null;\r\n\r\n // Remove CSS classes related to the old handle\r\n oldHandle.classList.remove(window.data.class.handle);\r\n el.classList.remove(window.data.class.usesHandle);\r\n });\r\n\r\n // Add draggable configuration to element\r\n dragSetup(el, binding);\r\n }\r\n });\r\n }\r\n};\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view',{on:{\"ready\":_vm.onReady}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=6f957f92&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=6f957f92&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue';\r\nimport Router from 'vue-router';\r\nimport axios from 'axios';\r\nimport { userTypeEnum as Roles } from '@/GeneratedModels/UserTypeEnum.js';\r\nimport routes from '@/router/routes';\r\nimport { routeName } from '@/router/routing.js';\r\nimport i18n from '@/i18n';\r\nimport SignUpInReasons from '@/scripts/SignUpInReasons.js';\r\nimport store from '@/store';\r\nimport { AUTHENTICATION_RETURN_PAGE_STORAGE } from '@/constants.js';\r\n\r\nexport let router = null;\r\n\r\nexport function create(defaultLocale) {\r\n if (!router) {\r\n router = new Router({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n routes: routes(defaultLocale),\r\n scrollBehavior(to) {\r\n if (to.hash) {\r\n return {\r\n selector: to.hash\r\n };\r\n }\r\n else {\r\n return {\r\n selector: \"#app\"\r\n };\r\n }\r\n }\r\n });\r\n\r\n router.beforeEach(async (to, from, next) => {\r\n store.state.app.loading = true;\r\n if (store.state.app.interceptNavigation) {\r\n await store.state.app.interceptNavigation(to, from, next);\r\n } else {\r\n if (to.name === routeName(i18n.locale, 'home')) {\r\n if (store.state.auction.auction != null) { //first load don't have any value in store\r\n if (store.state.auction.auction.name && store.state.auction.auction.name[i18n.locale] && store.state.auction.auction.name[i18n.locale].length > 0) {\r\n to.meta.title = store.state.auction.auction.name[i18n.locale];\r\n } else {\r\n to.meta.title = store.state.auction.auction.name[store.state.auction.auction.defaultLocale];\r\n }\r\n }\r\n }\r\n if (from.query.isPreview === 'true' && to.query.isPreview !== 'true') {\r\n to.query.isPreview = 'true';\r\n next(to);\r\n }\r\n if (to.matched.some(record => record.meta.minRole > Roles.Unknown)) {\r\n const user = store.state.user.user;\r\n if (!user) {\r\n gotoAuctionLogin(true, SignUpInReasons.authenticationNeeded, to.path);\r\n }\r\n else if (to.matched.some(record => record.meta.minRole > user.type)) {\r\n // Droits insuffisants\r\n gotoAuctionLogin(true, SignUpInReasons.insufficientPrivileges, to.path);\r\n } else {\r\n next(true);\r\n }\r\n }\r\n else {\r\n next(true);\r\n }\r\n }\r\n });\r\n\r\n router.afterEach(async () => {\r\n store.state.app.loading = false;\r\n });\r\n\r\n router.onError(error => {\r\n if (error.name === 'ChunkLoadError' && !sessionStorage.getItem('chunkLoadErrorReload')) {\r\n // Évite recahrgement infini quand le chunk n'existe vraiment pas\r\n sessionStorage.setItem('chunkLoadErrorReload', true);\r\n\r\n // Recharge la page pour mettre à jour chunk en cache qui n'existe plus par nouveau chunk\r\n window.location.reload();\r\n }\r\n });\r\n\r\n return router;\r\n }\r\n}\r\n\r\n// Cette fonction est essentiellement dupliquée dans @/mixins/index.js pour accommoder les tests unitaires qui refusent de compiler autrement\r\nasync function gotoAuctionLogin(redirect = true, reason = SignUpInReasons.authenticationNeeded, redirectPath = router.currentRoute.path, userEmail = null, authenticationStatus = null) {\r\n Vue.prototype.stopAuthSignalR();\r\n\r\n if (reason == SignUpInReasons.userLoggedOff || reason == SignUpInReasons.needReconnection) {\r\n //Dans le cas d'une déconnexion, on ne veux pas que VuexPersistence embarque\r\n window.localStorage.removeItem('vuex');\r\n\r\n const { data: href } = await axios.get('/api/auth/logouturl');\r\n window.location.href = href;\r\n } else {\r\n const query = { splash: false };\r\n if (redirect && redirectPath != \"\") {\r\n query.redirectUrl = redirectPath;\r\n }\r\n if (userEmail) {\r\n query.userEmail = userEmail;\r\n }\r\n if (authenticationStatus) {\r\n query.authenticationStatus = authenticationStatus;\r\n }\r\n\r\n let name;\r\n if (reason) {\r\n query.reason = reason;\r\n name = 'authentication.signupin';\r\n } else {\r\n name = 'authentication.login';\r\n }\r\n\r\n const targetPage = router.resolve({\r\n name: routeName(i18n.locale, name),\r\n query,\r\n params: {\r\n slug: store.state.auction.auction != null ? store.state.auction.auction.slug : window.location.pathname.split('/')[2]\r\n }\r\n });\r\n\r\n if (router.currentRoute.name &&\r\n router.currentRoute.name != routeName(i18n.locale, 'auctionUnderConstruction') &&\r\n router.currentRoute.name != routeName(i18n.locale, 'auctionValidateUserEmail')) {\r\n sessionStorage.setItem(AUTHENTICATION_RETURN_PAGE_STORAGE, router.currentRoute.path);\r\n }\r\n\r\n window.location.href = targetPage.href;\r\n }\r\n}\r\n","export default {\r\n 'en-CA': {\r\n messages: {\r\n _default: 'Invalid value',\r\n required: () => 'This field is required.',\r\n email: () => 'Invalid email adress.',\r\n not_in: () => 'This field is required.',\r\n min_value: (field, [min]) => `Enter an equal or higher value than ${min}.`,\r\n max_value: (field, [max]) => `Enter an equal or lower value than ${max}.`,\r\n numeric: () => 'Please enter a whole number.',\r\n phone: () => 'Invalid phone number format.',\r\n postalCode: () => 'Invalid postal code format',\r\n falsy: () => 'The value has to be No',\r\n min: (field, [length]) => `The field ${field} must contain at least ${length} characters.`,\r\n max: (field, [length]) => `The field ${field} must contain no more than ${length} characters.`,\r\n integer_if: () => 'Fractional values are not accepted for this product',\r\n confirmed: 'The value of both fields is not the same.',\r\n duplicate: (field) => `The value of ${field} is already used and must be unique`,\r\n url: 'The URL format is invalid.',\r\n itemNumberExists: 'This item number is already in use and each one must be unique.',\r\n phoneNumberExists: 'The value is already used and must be unique',\r\n emailExists: 'The value is already used and must be unique',\r\n serverSidePhoneNumber: 'Invalid phone number format',\r\n auctionSlugExists: 'This URL is already used by another auction. Please try another one.',\r\n uniqueUserPhoneNumber: 'This phone number is already in use on another account. Please enter a new phone number.',\r\n zipCode: 'Invalid zip code format'\r\n },\r\n custom: {\r\n password: {\r\n regex: 'Your password must have at least 6 characters, a lowercase character, an uppercase character, a digit and a special character among the following: @$!%*?&.'\r\n },\r\n newPassword: {\r\n regex: 'Your password must have at least 6 characters, a lowercase character, an uppercase character, a digit and a special character among the following: @$!%*?&.'\r\n },\r\n emailSignup: {\r\n emailExists: 'This email is already connected to an account.'\r\n },\r\n phoneNumberSignup: {\r\n phoneNumberExists: 'This phone number is already connected to an account.'\r\n },\r\n invitation_input: {\r\n usernameExistsForAuction: 'This input is in the wrong format or a user/invitation already exists for this email/phone number.'\r\n },\r\n auctionSlug: {\r\n regex: 'This URL contains unauthorized characters. Please try another one.',\r\n excluded: 'This URL is reserved. Please try another one.'\r\n },\r\n cloneNumber: {\r\n excluded: 'This item number is already in use and each one must be unique.'\r\n }\r\n }\r\n },\r\n 'fr-CA': {\r\n messages: {\r\n _default: 'Valeur invalide.',\r\n required: () => 'Ce champ est obligatoire.',\r\n email: () => 'Adresse courriel invalide.',\r\n min_value: (field, [min]) => `Entrez une valeur égale ou supérieure à ${min}.`,\r\n max_value: (field, [max]) => `Entrez une valeur égale ou inférieure à ${max}.`,\r\n not_in: () => 'Ce champ est obligatoire.',\r\n numeric: () => 'Veuillez entrer un nombre entier positif.',\r\n phone: () => 'Le format du numéro de téléphone n’est pas valide.',\r\n postalCode: () => 'Le format du code postal n’est pas valide.',\r\n falsy: () => 'La valeur doit être non',\r\n min: (field, [length]) => `Le champ ${field} doit contenir au moins ${length} caractères.`,\r\n max: (field, [length]) => `Le champ ${field} doit contenir au maximum ${length} caractères.`,\r\n integer_if: () => 'Les valeurs fractionnelles ne sont pas acceptées pour ce produit',\r\n confirmed: 'La valeur des deux champs n\\'est pas identique',\r\n duplicate: (field) => `La valeur de ${field} est déjà utilisée et doit être unique`,\r\n url: 'Le format de l\\'URL n’est pas valide.',\r\n itemNumberExists: 'Ce numéro de lot est déjà utilisé et chacun doit être unique.',\r\n phoneNumberExists: 'La valeur est déjà utilisée et doit être unique',\r\n emailExists: 'La valeur est déjà utilisée et doit être unique',\r\n serverSidePhoneNumber: 'Le format du numéro de téléphone n’est pas valide',\r\n auctionSlugExists: 'Cette URL est déjà utilisée par un autre encan. Veuillez en essayer un autre.',\r\n uniqueUserPhoneNumber: 'Ce numéro de téléphone est déjà utilisé par un autre compte. Veuillez en choisir un autre.',\r\n zipCode: 'Le format du code zip n’est pas valide.'\r\n },\r\n custom: {\r\n password: {\r\n regex: 'Veuillez entrer au moins 6 caractères incluant une lettre majuscule, un chiffre et un caractère spécial parmi les suivants : (@$!%*?&).'\r\n },\r\n newPassword: {\r\n regex: 'Veuillez entrer au moins 6 caractères incluant une lettre majuscule, un chiffre et un caractère spécial parmi les suivants : (@$!%*?&).'\r\n },\r\n emailSignup: {\r\n emailExists: 'Ce courriel est déjà connecté à un autre compte.'\r\n },\r\n phoneNumberSignup: {\r\n phoneNumberExists: 'Ce numéro de téléphone est déjà connecté à un autre compte.'\r\n },\r\n invitation_input: {\r\n usernameExistsForAuction: 'Cette entrée est dans un mauvais format ou un utilisateur/invitation existe déjà avec ce courriel/numéro de téléphone.'\r\n },\r\n auctionSlug: {\r\n regex: 'Cette URL contient des caractères non autorisés. Veuillez en essayer un autre.',\r\n excluded: 'Cette URL est réservée. Veuillez en essayer un autre.'\r\n },\r\n cloneNumber: {\r\n excluded: 'Ce numéro de lot est déjà utilisé et chacun doit être unique.'\r\n }\r\n }\r\n }\r\n};\r\n","import axios from 'axios';\r\nimport { Validator } from 'vee-validate';\r\nimport store from '@/store';\r\n\r\nconst serverSidePhoneNumber = {\r\n async validate(value) {\r\n let valid = false;\r\n try {\r\n valid = (await axios.get(`/api/validate/phone`, { params: { value } })).data;\r\n } catch (error) {\r\n store.dispatch('app/addError', error);\r\n }\r\n return { valid };\r\n }\r\n};\r\n\r\nconst itemNumberExists = {\r\n async validate(value, itemId) {\r\n let valid = false;\r\n if (!value) { return true; }\r\n try {\r\n valid = !(await axios.get(`/api/validate/item/${value}/${itemId ? itemId : ``}`)).data;\r\n } catch (error) {\r\n store.dispatch('app/addError', error);\r\n }\r\n return { valid };\r\n }\r\n};\r\n\r\nconst phoneNumberExists = {\r\n async validate(value, userId) {\r\n let valid = false;\r\n if (!value) { return true; }\r\n try {\r\n valid = !(await axios.get(`/api/validate/user/phoneNumber/${value}/${userId ? userId : ``}`)).data;\r\n } catch (error) {\r\n store.dispatch('app/addError', error);\r\n }\r\n return { valid };\r\n }\r\n};\r\n\r\nconst emailExists = {\r\n async validate(value, userId) {\r\n let valid = false;\r\n if (!value) { return true; }\r\n try {\r\n valid = !(await axios.post(`/api/validate/user/email`, {\r\n email: value,\r\n userId: userId[0] ? userId[0] : ''\r\n })).data;\r\n } catch (error) {\r\n store.dispatch('app/addError', error);\r\n }\r\n return { valid };\r\n }\r\n};\r\n\r\nconst usernameExistsForAuction = {\r\n async validate(value) {\r\n let valid = false;\r\n if (!value) { return true; }\r\n try {\r\n valid = !(await axios.get(`/api/validate/user/auction/email`, { params:{ value } })).data;\r\n if (!valid) {\r\n valid = !(await axios.get(`/api/validate/user/auction/phoneNumber/${value}`)).data;\r\n }\r\n } catch (error) {\r\n store.dispatch('app/addError', error);\r\n }\r\n return { valid };\r\n }\r\n};\r\n\r\nconst auctionSlugExists = {\r\n async validate(value) {\r\n let valid = false;\r\n if (!value) { return true; }\r\n try {\r\n valid = !(await axios.get(`/api/validate/auction/slug`, { params: { value } })).data;\r\n } catch (error) {\r\n store.dispatch('signup/addError', error);\r\n }\r\n return { valid };\r\n }\r\n};\r\n\r\nconst uniqueUserPhoneNumber = {\r\n async validate(value, userId) {\r\n let valid = false;\r\n if (!value) { return true; }\r\n try {\r\n valid = !(await axios.get(`/api/validate/unique/userPhoneNumber/${value}/${userId}`)).data;\r\n } catch (error) {\r\n store.dispatch('app/addError', error);\r\n }\r\n return { valid };\r\n }\r\n};\r\n\r\nconst postalCode = {\r\n validate(value) {\r\n if (value) {\r\n const regex = /^[A-Za-z]\\d[A-Za-z][ -]?\\d[A-Za-z]\\d$/i;\r\n return regex.test(value);\r\n }\r\n\r\n return true;\r\n }\r\n};\r\n\r\nconst zipCode = {\r\n validate(value) {\r\n if (value) {\r\n const regex = /(^\\d{5}$)|(^\\d{5}-\\d{4}$)/;\r\n return regex.test(value);\r\n }\r\n\r\n return true;\r\n }\r\n};\r\n\r\nexport default Object.freeze({\r\n register() {\r\n Validator.extend('serverSidePhoneNumber', serverSidePhoneNumber);\r\n Validator.extend('itemNumberExists', itemNumberExists);\r\n Validator.extend('phoneNumberExists', phoneNumberExists);\r\n Validator.extend('emailExists', emailExists);\r\n Validator.extend('usernameExistsForAuction', usernameExistsForAuction);\r\n Validator.extend('auctionSlugExists', auctionSlugExists);\r\n Validator.extend('uniqueUserPhoneNumber', uniqueUserPhoneNumber);\r\n Validator.extend('postalCode', postalCode);\r\n Validator.extend('zipCode', zipCode);\r\n }\r\n});\r\n","import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';\r\nimport store from '@/store';\r\nimport VueCookie from 'vue-cookie';\r\nimport { authenticationCookieName, refreshCookieName } from '@/scripts/Security.js';\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\n\r\nexport default {\r\n install(Vue) {\r\n const authenticatedHub = new Vue();\r\n Vue.prototype.$authenticatedHub = authenticatedHub;\r\n\r\n function emit(eventName) {\r\n return event => {\r\n if (process.env.NODE_ENV === \"development\") {\r\n /* eslint-disable-next-line no-console */\r\n console.info('authenticatedHub:', eventName, event);\r\n }\r\n authenticatedHub.$emit(eventName, event);\r\n };\r\n }\r\n\r\n let connection = null,\r\n startedPromise = null,\r\n manuallyClosed = false,\r\n started = false;\r\n\r\n Vue.prototype.startAuthSignalR = () => {\r\n function start() {\r\n startedPromise = connection.start()\r\n .catch(() => {\r\n const token = VueCookie.get(authenticationCookieName);\r\n const refreshToken = VueCookie.get(refreshCookieName);\r\n if (!token && !refreshToken) {\r\n //S'il n'y a pas de token ni de refreshtoken, on cesse les essais de reconnexion. le Signalr authentifi� sera reconnect� � la prochaine connexion\r\n return;\r\n }\r\n\r\n return new Promise((resolve, reject) => setTimeout(() => start().then(resolve).catch(reject), 5000));\r\n });\r\n return startedPromise;\r\n }\r\n\r\n if (!started) {\r\n started = true;\r\n\r\n const appInsights = new ApplicationInsights({\r\n config: {\r\n connectionString: store.state.app.appSettings.appInsightsConnectionString\r\n }\r\n });\r\n appInsights.loadAppInsights();\r\n\r\n connection = new HubConnectionBuilder()\r\n .withUrl(\r\n store.state.app.appSettings.authSignalRUrl,\r\n {\r\n accessTokenFactory: () => VueCookie.get(authenticationCookieName)\r\n }\r\n )\r\n .withAutomaticReconnect([0, 2000, 10000, 30000, 60000])\r\n .configureLogging(LogLevel.Warning)\r\n .build();\r\n\r\n connection.on(\"onNewHighestBidResult\", emit('highest-bid-result'));\r\n connection.on(\"onNewUserMaxBidEvent\", emit('highest-bid-result'));\r\n connection.on(\"onEqualBidEvent\", emit('equal-bid'));\r\n connection.on(\"onOutbidBidEvent\", emit('outbid-bid', event));\r\n connection.on(\"onItemPurchaseResult\", emit('item-purchase-result'));\r\n connection.on(\"onItemInvalidTypeForPurchaseEvent\", emit('item-invalid-type-for-purchase', event));\r\n connection.on(\"onItemInvalidQuantityEvent\", emit('item-invalid-quantity', event));\r\n connection.on(\"onItemUnavailableForBidsEvent\", emit('item-unavailable', event));\r\n connection.on(\"onItemUnavailableForPurchaseEvent\", emit('item-purchase-unavailable', event));\r\n connection.on(\"onChatroomMessage\", emit('chatroom-message', event));\r\n connection.on(\"onMultipleChatroomMessages\", emit('multiple-chatroom-messages', event));\r\n connection.on(\"onUserSmsOptOutChanged\", emit('participant-smsoptout-changed', event));\r\n connection.on(\"onDonationPayNowEvent\", emit('donation-pay-now'));\r\n connection.on(\"onNewInvoiceAvailable\", emit('new-invoice-available', event));\r\n connection.on(\"onNewInvoiceCredit\", emit('new-invoice-credit', event));\r\n connection.on(\"onNewInvoiceRefund\", emit('new-invoice-refund', event));\r\n connection.on(\"onRefundResponseReceived\", emit('refund-response-received'));\r\n connection.on(\"onForceDisconnection\", emit('force-disconnection', event));\r\n connection.on(\"onErroneousItemTypeForBidsEvent\", emit('erroneous-item-type-for-bid', event));\r\n connection.on(\"onErroneousAmountForBidsEvent\", emit('erroneous-amount-for-bid', event));\r\n connection.on(\"onAuctionPaymentSuccess\", emit('payment-success', event));\r\n connection.on(\"onAuctionPaymentFailure\", emit('payment-failure', event));\r\n connection.on(\"onApplyAuctionPaymentEvent\", emit('apply-payment-event', event));\r\n\r\n connection.onreconnecting(error => {\r\n if (appInsights) {\r\n appInsights.trackEvent({\r\n name: 'SignalrEvent',\r\n properties: {\r\n errorMessage: error,\r\n reason: \"Signalr reconnecting\"\r\n }\r\n });\r\n }\r\n store.state.app.signalRConnectionFail = true;\r\n });\r\n\r\n connection.onclose(error => {\r\n if (!manuallyClosed) {\r\n if (appInsights) {\r\n appInsights.trackEvent({\r\n name: 'SignalrEvent',\r\n properties: {\r\n errorMessage: error,\r\n reason: \"Signalr disconnected\"\r\n }\r\n });\r\n } \r\n }\r\n }); \r\n\r\n manuallyClosed = false;\r\n start();\r\n }\r\n };\r\n\r\n Vue.prototype.stopAuthSignalR = () => {\r\n if (!startedPromise) {\r\n return;\r\n }\r\n\r\n manuallyClosed = true;\r\n return startedPromise\r\n .then(() => connection.stop())\r\n .then(() => startedPromise = null);\r\n };\r\n\r\n authenticatedHub.joinAuctionGroup = (auctionId) => {\r\n if (!startedPromise) {\r\n return;\r\n }\r\n return startedPromise\r\n .then(() => connection.invoke('joinAuctionGroup', auctionId))\r\n .catch(console.error); /* eslint-disable-line no-console */\r\n };\r\n }\r\n};\r\n","import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';\r\nimport store from '@/store';\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\n\r\nexport default {\r\n install(Vue) {\r\n const organizationHub = new Vue();\r\n Vue.prototype.$organizationHub = organizationHub;\r\n\r\n function emit(eventName) {\r\n return (event, sequenceNumber) => {\r\n if (process.env.NODE_ENV === \"development\") {\r\n /* eslint-disable-next-line no-console */\r\n console.info('organizationHub:', eventName, event, sequenceNumber);\r\n }\r\n organizationHub.$emit(eventName, event);\r\n organizationHub.$emit('sequenceIncrease', sequenceNumber);\r\n };\r\n }\r\n\r\n let connection = null,\r\n startedPromise = null,\r\n manuallyClosed = false,\r\n unwantedDisconnection = false,\r\n started = false;\r\n\r\n Vue.prototype.startOrganizationSignalR = () => {\r\n if (!started) {\r\n started = true;\r\n\r\n const appInsights = new ApplicationInsights({\r\n config: {\r\n connectionString: store.state.app.appSettings.appInsightsConnectionString\r\n }\r\n });\r\n appInsights.loadAppInsights();\r\n\r\n connection = new HubConnectionBuilder()\r\n .withUrl(store.state.app.appSettings.organizationSignalRUrl)\r\n .withAutomaticReconnect([0, 2000, 10000, 30000, 60000])\r\n .configureLogging(LogLevel.Warning)\r\n .build();\r\n\r\n connection.on(\"onOrganizationUpdated\", emit('organization-updated'));\r\n connection.on(\"onAllowStripeUpdated\", emit('allow-stripe-updated'));\r\n connection.on(\"onStripeRequirementsErrorsUpdated\", emit('stripe-requirements-errors-updated'));\r\n\r\n function start() {\r\n startedPromise = connection.start()\r\n .then(() => {\r\n if (unwantedDisconnection) {\r\n organizationHub.$emit('reconnected');\r\n unwantedDisconnection = false;\r\n }\r\n })\r\n .catch(err => { \r\n /* eslint-disable-next-line no-console */\r\n console.error('Failed to connect with hub', err);\r\n return new Promise((resolve, reject) => setTimeout(() => start().then(resolve).catch(reject), 5000));\r\n });\r\n return startedPromise;\r\n }\r\n\r\n connection.onreconnecting(error => {\r\n if (appInsights) {\r\n appInsights.trackEvent({\r\n name: 'SignalrEvent',\r\n properties: {\r\n errorMessage: error,\r\n reason: \"Signalr reconnecting\"\r\n }\r\n });\r\n }\r\n store.state.app.signalRConnectionFail = true;\r\n });\r\n\r\n connection.onclose(error => {\r\n if (!manuallyClosed) {\r\n unwantedDisconnection = true;\r\n if (appInsights) {\r\n appInsights.trackEvent({\r\n name: 'SignalrEvent',\r\n properties: {\r\n errorMessage: error,\r\n reason: \"Signalr disconnected\"\r\n }\r\n });\r\n } \r\n }\r\n });\r\n\r\n manuallyClosed = false;\r\n start();\r\n }\r\n };\r\n\r\n Vue.prototype.stopSignalR = () => {\r\n if (!startedPromise) {\r\n return;\r\n }\r\n\r\n manuallyClosed = true;\r\n return startedPromise\r\n .then(() => connection.stop())\r\n .then(() => startedPromise = null);\r\n };\r\n\r\n organizationHub.joinOrganizationGroup = (organizationId) => {\r\n if (!startedPromise) {\r\n return;\r\n }\r\n\r\n return startedPromise\r\n .then(() => connection.invoke('joinOrganizationGroup', organizationId))\r\n .catch(console.error); /* eslint-disable-line no-console */\r\n };\r\n }\r\n};\r\n","export default async () => {\r\n await Promise.all([\r\n polyfillNumberFormat()\r\n ]);\r\n};\r\n\r\nconst polyfillNumberFormat = async () => {\r\n try {\r\n new Intl.NumberFormat('fr-CA', { style: 'currency', currency: 'CAD', useGrouping: true, currencyDisplay: 'narrowSymbol' });\r\n } catch (e) {\r\n // Polyfill Intl.NumberFormat, nécessaire pour le fonctionnement du currencyDisplay: 'narrowSymbol' dans Safari\r\n console.info(`Error while trying to use Intl.NumberFormat with currencyDisplay: 'narrowSymbol'.`, e); // eslint-disable-line no-console\r\n }\r\n};\r\n","//Documentation : https://github.com/orestbida/cookieconsent/tree/master#table-of-contents\r\n\r\nimport 'vanilla-cookieconsent/dist/cookieconsent.css';\r\nimport 'vanilla-cookieconsent/src/cookieconsent.js';\r\n\r\nexport default {\r\n install: function (Vue, store, appInsights) {\r\n const cookieConsent = window.initCookieConsent();\r\n\r\n cookieConsent.run({\r\n autorun: false,\r\n current_lang: 'fr-CA',\r\n page_scripts: true,\r\n autoclear_cookies: true,\r\n gui_options: {\r\n consent_modal: {\r\n layout: 'cloud', \r\n position: 'bottom center',\r\n transition: 'slide', \r\n swap_buttons: false \r\n },\r\n settings_modal: {\r\n layout: 'box', \r\n position: 'left', \r\n transition: 'slide'\r\n }\r\n },\r\n onAccept: function (cookie) {\r\n const acceptedCategories = [];\r\n\r\n if (cookieConsent.allowedCategory('analytics')) {\r\n acceptedCategories.push(\"analytics\");\r\n }\r\n\r\n if (cookieConsent.allowedCategory('unclassified')) {\r\n acceptedCategories.push(\"unclassified\");\r\n }\r\n\r\n if (cookieConsent.allowedCategory('targeting')) {\r\n acceptedCategories.push(\"targeting\");\r\n appInsights.core.getCookieMgr().setEnabled(true);\r\n appInsights.appInsights.getCookieMgr().setEnabled(true);\r\n }\r\n\r\n store.state.user.allowedCookieCategories = acceptedCategories;\r\n },\r\n onChange: function (cookie, changed_preferences) {\r\n if (!cookieConsent.allowedCategory('targeting')) {\r\n appInsights.core.getCookieMgr().setEnabled(false);\r\n appInsights.appInsights.getCookieMgr().setEnabled(false);\r\n }\r\n else {\r\n appInsights.core.getCookieMgr().setEnabled(true);\r\n appInsights.appInsights.getCookieMgr().setEnabled(true);\r\n }\r\n },\r\n languages: {\r\n 'en-CA': {\r\n consent_modal: {\r\n title: 'Navigation cookies',\r\n description: 'We use navigation cookies to operate and improve our services as well as for advertising purposes. Respecting your privacy is important to us. If you are not comfortable with our use of this information, you may reject before continuing your visit.',\r\n //\r\n primary_btn: {\r\n text: 'Accept all',\r\n role: 'accept_all'\r\n },\r\n secondary_btn: {\r\n text: 'Reject all',\r\n role: 'accept_necessary'\r\n }\r\n },\r\n settings_modal: {\r\n title: 'Cookie preferences',\r\n save_settings_btn: 'Save settings',\r\n accept_all_btn: 'Accept all',\r\n reject_all_btn: 'Reject all',\r\n close_btn_label: 'Close',\r\n cookie_table_headers: [\r\n { col1: 'Name' },\r\n { col2: 'Domain' },\r\n { col3: 'Expiration' },\r\n { col4: 'Description' }\r\n ],\r\n blocks: [\r\n {\r\n title: 'Cookie usage',\r\n description: 'I use cookies to ensure the basic functionalities of the website and to enhance your online experience. You can choose for each category to opt-in/out whenever you want. For more details relative to cookies and other sensitive data, please read the full privacy policy.'\r\n }, {\r\n title: 'Strictly necessary cookies',\r\n description: 'These cookies are essential for the proper functioning of this website. Without these cookies, the website would not work properly',\r\n toggle: {\r\n value: 'necessary',\r\n enabled: true,\r\n readonly: true\r\n },\r\n cookie_table: [\r\n {\r\n col1: 'li_gc',\r\n col2: 'LinkedIn',\r\n col3: '6 months',\r\n col4: 'This cookie is used to store cookie consent preferences'\r\n },\r\n {\r\n col1: 'AnalyticsSyncHistory',\r\n col2: 'LinkedIn',\r\n col3: '30 days',\r\n col4: 'This cookieis used to track visit between websites.'\r\n } \r\n ]\r\n },\r\n {\r\n title: 'Performance and Analytics cookies',\r\n description: 'These cookies allow the website to remember the choices you have made in the past',\r\n toggle: {\r\n value: 'analytics',\r\n enabled: false,\r\n readonly: false\r\n },\r\n cookie_table: [\r\n {\r\n col1: '^_ga',\r\n col2: 'google.com',\r\n col3: '1 year and 1 month',\r\n col4: 'This cookie name is associated with Google Universal Analytics - which is a significant update to Google\\'s more commonly used analytics service.This cookie is used to distinguish unique users by assigning a randomly generated number as a client identifier.It is included in each page request in a site and used to calculate visitor, session and campaign data for the sites analytics reports.',\r\n is_regex: true\r\n },\r\n {\r\n col1: '_gid',\r\n col2: 'google.com',\r\n col3: '1 day',\r\n col4: 'This cookie is set by Google Analytics. It stores and update a unique value for each page visited and is used to count and track pageviews.'\r\n }\r\n ]\r\n },\r\n {\r\n title: 'Advertisement and Targeting cookies',\r\n description: 'These cookies collect information about how you use the website, which pages you visited and which links you clicked on. All of the data is anonymized and cannot be used to identify you',\r\n toggle: {\r\n value: 'targeting',\r\n enabled: false,\r\n readonly: false\r\n },\r\n cookie_table: [ \r\n {\r\n col1: 'ai_user',\r\n col2: 'app.followmybid.com',\r\n col3: '1 year',\r\n col4: 'This cookie name is associated with the Microsoft Application Insights software, which collects statictical usage and telemetry information for apps built on the Azure cloud platform. This is a unique user identifier cookie enabling counting of the number of users accessing the application over time.'\r\n },\r\n {\r\n col1: 'ai_session',\r\n col2: 'app.followmybid.com',\r\n col3: '30 minutes',\r\n col4: 'This cookie name is associated with the Microsoft Application Insights software, which collects statictical usage and telemetry information for apps built on the Azure cloud platform. This is a unique anonymous session identifier cookie.'\r\n },\r\n {\r\n col1: '_clck',\r\n col2: 'app.followmybid.com',\r\n col3: '1 year',\r\n col4: 'This cookie name is associated with the Microsoft Application Insights software, which collects statictical usage and telemetry information for apps built on the Azure cloud platform. This is a unique user identifier cookie.'\r\n },\r\n {\r\n col1: '_clsk',\r\n col2: 'app.followmybid.com',\r\n col3: '1 day',\r\n col4: 'This cookie name is associated with the Microsoft Application Insights software, which collects statictical usage and telemetry information for apps built on the Azure cloud platform. This cookie store and combine pageviews by a user into a single session recording.'\r\n },\r\n {\r\n col1: 'UserMatchHistory',\r\n col2: 'linkedin.com',\r\n col3: '1 month',\r\n col4: 'This cookie is used to track visitors so that more relevant ads can be presented based on the visitor\\'s preferences.'\r\n },\r\n {\r\n col1: 'bscookie',\r\n col2: 'linkedin.com',\r\n col3: '1 year',\r\n col4: 'Used by the social networking service, LinkedIn, for tracking the use of embedded services.'\r\n },\r\n {\r\n col1: 'MR',\r\n col2: '.c.bing.com',\r\n col3: '7 days',\r\n col4: 'This is a Microsoft MSN 1st party cookie which we use to measure the use of the website for internal analytics.'\r\n },\r\n {\r\n col1: 'MUID',\r\n col2: '.clarity.ms',\r\n col3: '1 year',\r\n col4: 'This cookie is widely used my Microsoft as a unique user identifier. It can be set by embedded microsoft scripts. Widely believed to sync across many different Microsoft domains, allowing user tracking.'\r\n },\r\n {\r\n col1: 'bcookie',\r\n col2: '.linkedin.com',\r\n col3: '1 year',\r\n col4: 'This is a Microsoft MSN 1st party cookie for sharing the content of the website via social media.'\r\n },\r\n {\r\n col1: '_fbp',\r\n col2: '.followmybid.com',\r\n col3: '3 months',\r\n col4: 'Used by Meta to deliver a series of advertisement products such as real time bidding from third party advertisers.'\r\n },\r\n {\r\n col1: 'CLID',\r\n col2: 'www.clarity.ms',\r\n col3: '1 year',\r\n col4: 'This cookie is usually set by Dstillery to enable sharing media content to social media. It may also gather information on website visitors when they use social media to share website content from the page visited.'\r\n },\r\n {\r\n col1: 'SM',\r\n col2: 'www.clarity.ms',\r\n col3: 'Session',\r\n col4: 'This is a Microsoft MSN 1st party cookie which we use to measure the use of the website for internal analytics.'\r\n },\r\n {\r\n col1: 'MUID',\r\n col2: '.bing.com',\r\n col3: '1 year',\r\n col4: 'This cookie is widely used my Microsoft as a unique user identifier. It can be set by embedded microsoft scripts. Widely believed to sync across many different Microsoft domains, allowing user tracking.'\r\n },\r\n {\r\n col1: 'ANONCHK',\r\n col2: '.c.clarity.ms',\r\n col3: '10 minutes',\r\n col4: 'This cookie carries out information about how the end user uses the website and any advertising that the end user may have seen before visiting the said website.'\r\n },\r\n {\r\n col1: '_uetsid',\r\n col2: '.followmybid.com',\r\n col3: '1 day',\r\n col4: 'This cookie is used by Bing to determine what ads should be shown that may be relevant to the end user perusing the site.'\r\n },\r\n {\r\n col1: '_uetvid',\r\n col2: '.followmybid.com',\r\n col3: '1 year',\r\n col4: 'This is a cookie utilised by Microsoft Bing Ads and is a tracking cookie.It allows us to engage with a user that has previously visited our website.'\r\n },\r\n {\r\n col1: 'lidc',\r\n col2: '.linkedin.com',\r\n col3: '1 day',\r\n col4: 'This is a Microsoft MSN 1st party cookie that ensures the proper functioning of this website.'\r\n },\r\n {\r\n col1: '_gcl_au',\r\n col2: '.followmybid.com',\r\n col3: '3 months',\r\n col4: 'Used by Google AdSense for experimenting with advertisement efficiency across websites using their services.'\r\n },\r\n {\r\n col1: 'SRM_B',\r\n col2: '.c.bing.com',\r\n col3: '1 year',\r\n col4: 'This is a Microsoft MSN 1st party cookie that ensures the proper functioning of this website.'\r\n },\r\n {\r\n col1: 'MR',\r\n col2: '.c.clarity.ms',\r\n col3: '7 days',\r\n col4: 'This is a Microsoft MSN 1st party cookie which we use to measure the use of the website for internal analytics.'\r\n },\r\n {\r\n col1: '_lfa',\r\n col2: '.followmybid.com',\r\n col3: '1 year',\r\n col4: 'Leadfeeder cookie collects the behavioral data of all website visitors.This includes; pages viewed, visitor source and time spent on the site.'\r\n }\r\n ]\r\n },\r\n {\r\n title: 'Unclassified',\r\n description: 'Unclassified cookies are cookies that do not belong to any other category or are in the process of categorization.',\r\n toggle: {\r\n value: 'unclassified',\r\n enabled: false,\r\n readonly: false\r\n },\r\n cookie_table: [\r\n {\r\n col1: 'li_sugr',\r\n col2: '.linkedin.com',\r\n col3: '3 months',\r\n col4: 'Used to find a probability match to a user\\'s identity outside of designated countries'\r\n },\r\n {\r\n col1: 'ln_or',\r\n col2: 'app.followmybid.com',\r\n col3: '1 day',\r\n col4: 'Used to determine if Oribi analysis can be performed on a specific domain.'\r\n }\r\n ]\r\n },\r\n {\r\n title: 'More information',\r\n description: 'For any queries in relation to our policy on cookies and your choices, please contact us.'\r\n }\r\n ]\r\n }\r\n },\r\n 'fr-CA': {\r\n consent_modal: {\r\n title: 'Témoin de navigation (cookies)',\r\n description: 'Nous utilisons les témoins de navigation (cookies) afin d\\'opérer et d\\’améliorer nos services ainsi qu\\'à des fins publicitaires. Le respect de votre vie privée est important pour nous. Si vous n\\'êtes pas à l\\'aise avec l\\'utilisation de ces informations, vous pouvez refuser avant de poursuivre votre visite.',\r\n //\r\n primary_btn: {\r\n text: 'Accepter',\r\n role: 'accept_all'\r\n },\r\n secondary_btn: {\r\n text: 'Refuser',\r\n role: 'accept_necessary'\r\n }\r\n },\r\n settings_modal: {\r\n title: 'Cookie preferences',\r\n save_settings_btn: 'Save settings',\r\n accept_all_btn: 'Accept all',\r\n reject_all_btn: 'Reject all',\r\n close_btn_label: 'Close',\r\n cookie_table_headers: [\r\n { col1: 'Name' },\r\n { col2: 'Domain' },\r\n { col3: 'Expiration' },\r\n { col4: 'Description' }\r\n ],\r\n blocks: [\r\n {\r\n title: 'Cookie usage',\r\n description: 'I use cookies to ensure the basic functionalities of the website and to enhance your online experience. You can choose for each category to opt-in/out whenever you want. For more details relative to cookies and other sensitive data, please read the full privacy policy.'\r\n }, {\r\n title: 'Strictly necessary cookies',\r\n description: 'These cookies are essential for the proper functioning of my website. Without these cookies, the website would not work properly',\r\n toggle: {\r\n value: 'necessary',\r\n enabled: true,\r\n readonly: true\r\n },\r\n cookie_table: [\r\n {\r\n col1: 'li_gc',\r\n col2: 'LinkedIn',\r\n col3: '6 mois',\r\n col4: 'Ce témoin est utilisé pour conserver les préférences des cookies.'\r\n },\r\n {\r\n col1: 'AnalyticsSyncHistory',\r\n col2: 'LinkedIn',\r\n col3: '30 jours',\r\n col4: 'Ce témoin est utilisé pour suivre l\\'utilisation entre les différents site web'\r\n }\r\n ]\r\n }, {\r\n title: 'Performance and Analytics cookies',\r\n description: 'These cookies allow the website to remember the choices you have made in the past',\r\n toggle: {\r\n value: 'analytics',\r\n enabled: false,\r\n readonly: false\r\n },\r\n cookie_table: [\r\n {\r\n col1: '^_ga',\r\n col2: 'google.com',\r\n col3: '1 year and 1 month',\r\n col4: 'This cookie name is associated with Google Universal Analytics - which is a significant update to Google\\'s more commonly used analytics service.This cookie is used to distinguish unique users by assigning a randomly generated number as a client identifier.It is included in each page request in a site and used to calculate visitor, session and campaign data for the sites analytics reports.',\r\n is_regex: true\r\n },\r\n {\r\n col1: '_gid',\r\n col2: 'google.com',\r\n col3: '1 day',\r\n col4: 'This cookie is set by Google Analytics. It stores and update a unique value for each page visited and is used to count and track pageviews.'\r\n } \r\n ]\r\n }, {\r\n title: 'Advertisement and Targeting cookies',\r\n description: 'These cookies collect information about how you use the website, which pages you visited and which links you clicked on. All of the data is anonymized and cannot be used to identify you',\r\n toggle: {\r\n value: 'targeting',\r\n enabled: false,\r\n readonly: false\r\n },\r\n cookie_table: [\r\n {\r\n col1: 'ai_user',\r\n col2: 'app.followmybid.com',\r\n col3: '1 year',\r\n col4: 'This cookie name is associated with the Microsoft Application Insights software, which collects statictical usage and telemetry information for apps built on the Azure cloud platform. This is a unique user identifier cookie enabling counting of the number of users accessing the application over time.'\r\n },\r\n {\r\n col1: 'ai_session',\r\n col2: 'app.followmybid.com',\r\n col3: '30 minutes',\r\n col4: 'This cookie name is associated with the Microsoft Application Insights software, which collects statictical usage and telemetry information for apps built on the Azure cloud platform. This is a unique anonymous session identifier cookie.'\r\n },\r\n {\r\n col1: '_clck',\r\n col2: 'app.followmybid.com',\r\n col3: '1 year',\r\n col4: 'This cookie name is associated with the Microsoft Application Insights software, which collects statictical usage and telemetry information for apps built on the Azure cloud platform. This is a unique user identifier cookie.'\r\n },\r\n {\r\n col1: '_clsk',\r\n col2: 'app.followmybid.com',\r\n col3: '1 day',\r\n col4: 'This cookie name is associated with the Microsoft Application Insights software, which collects statictical usage and telemetry information for apps built on the Azure cloud platform. This cookie store and combine pageviews by a user into a single session recording.'\r\n },\r\n {\r\n col1: 'UserMatchHistory',\r\n col2: 'linkedin.com',\r\n col3: '1 month',\r\n col4: 'This cookie is used to track visitors so that more relevant ads can be presented based on the visitor\\'s preferences.'\r\n },\r\n {\r\n col1: 'bscookie',\r\n col2: 'linkedin.com',\r\n col3: '1 year',\r\n col4: 'Used by the social networking service, LinkedIn, for tracking the use of embedded services.'\r\n },\r\n {\r\n col1: 'MR',\r\n col2: '.c.bing.com',\r\n col3: '7 days',\r\n col4: 'This is a Microsoft MSN 1st party cookie which we use to measure the use of the website for internal analytics.'\r\n },\r\n {\r\n col1: 'MUID',\r\n col2: '.clarity.ms',\r\n col3: '1 year',\r\n col4: 'This cookie is widely used my Microsoft as a unique user identifier. It can be set by embedded microsoft scripts. Widely believed to sync across many different Microsoft domains, allowing user tracking.'\r\n },\r\n {\r\n col1: 'bcookie',\r\n col2: '.linkedin.com',\r\n col3: '1 year',\r\n col4: 'This is a Microsoft MSN 1st party cookie for sharing the content of the website via social media.'\r\n },\r\n {\r\n col1: '_fbp',\r\n col2: '.followmybid.com',\r\n col3: '3 months',\r\n col4: 'Used by Meta to deliver a series of advertisement products such as real time bidding from third party advertisers.'\r\n },\r\n {\r\n col1: 'CLID',\r\n col2: 'www.clarity.ms',\r\n col3: '1 year',\r\n col4: 'This cookie is usually set by Dstillery to enable sharing media content to social media. It may also gather information on website visitors when they use social media to share website content from the page visited.'\r\n },\r\n {\r\n col1: 'SM',\r\n col2: 'www.clarity.ms',\r\n col3: 'Session',\r\n col4: 'This is a Microsoft MSN 1st party cookie which we use to measure the use of the website for internal analytics.'\r\n },\r\n {\r\n col1: 'MUID',\r\n col2: '.bing.com',\r\n col3: '1 year',\r\n col4: 'This cookie is widely used my Microsoft as a unique user identifier. It can be set by embedded microsoft scripts. Widely believed to sync across many different Microsoft domains, allowing user tracking.'\r\n },\r\n {\r\n col1: 'ANONCHK',\r\n col2: '.c.clarity.ms',\r\n col3: '10 minutes',\r\n col4: 'This cookie carries out information about how the end user uses the website and any advertising that the end user may have seen before visiting the said website.'\r\n },\r\n {\r\n col1: '_uetsid',\r\n col2: '.followmybid.com',\r\n col3: '1 day',\r\n col4: 'This cookie is used by Bing to determine what ads should be shown that may be relevant to the end user perusing the site.'\r\n },\r\n {\r\n col1: '_uetvid',\r\n col2: '.followmybid.com',\r\n col3: '1 year',\r\n col4: 'This is a cookie utilised by Microsoft Bing Ads and is a tracking cookie.It allows us to engage with a user that has previously visited our website.'\r\n },\r\n {\r\n col1: 'lidc',\r\n col2: '.linkedin.com',\r\n col3: '1 day',\r\n col4: 'This is a Microsoft MSN 1st party cookie that ensures the proper functioning of this website.'\r\n },\r\n {\r\n col1: '_gcl_au',\r\n col2: '.followmybid.com',\r\n col3: '3 months',\r\n col4: 'Used by Google AdSense for experimenting with advertisement efficiency across websites using their services.'\r\n },\r\n {\r\n col1: 'SRM_B',\r\n col2: '.c.bing.com',\r\n col3: '1 year',\r\n col4: 'This is a Microsoft MSN 1st party cookie that ensures the proper functioning of this website.'\r\n },\r\n {\r\n col1: 'MR',\r\n col2: '.c.clarity.ms',\r\n col3: '7 days',\r\n col4: 'This is a Microsoft MSN 1st party cookie which we use to measure the use of the website for internal analytics.'\r\n },\r\n {\r\n col1: '_lfa',\r\n col2: '.followmybid.com',\r\n col3: '1 year',\r\n col4: 'Leadfeeder cookie collects the behavioral data of all website visitors.This includes; pages viewed, visitor source and time spent on the site.'\r\n }\r\n ]\r\n },\r\n {\r\n title: 'Unclassified',\r\n description: 'Unclassified cookies are cookies that do not belong to any other category or are in the process of categorization.',\r\n toggle: {\r\n value: 'unclassified',\r\n enabled: false,\r\n readonly: false\r\n },\r\n cookie_table: [\r\n {\r\n col1: 'li_sugr',\r\n col2: '.linkedin.com',\r\n col3: '3 months',\r\n col4: 'Used to find a probability match to a user\\'s identity outside of designated countries'\r\n },\r\n {\r\n col1: 'ln_or',\r\n col2: 'app.followmybid.com',\r\n col3: '1 day',\r\n col4: 'Used to determine if Oribi analysis can be performed on a specific domain.'\r\n }\r\n ]\r\n },\r\n {\r\n title: 'More information',\r\n description: 'For any queries in relation to our policy on cookies and your choices, please contact us.'\r\n }\r\n ]\r\n }\r\n }\r\n }\r\n });\r\n\r\n Object.defineProperty(Vue.prototype, '$cookieconsent', { value: cookieConsent });\r\n }\r\n};\r\n\r\n","import 'intersection-observer';\r\nimport Vue from 'vue';\r\nimport axios from 'axios';\r\nimport Moment from 'moment';\r\nimport VeeValidate from 'vee-validate';\r\n\r\nimport VueRouter from 'vue-router';\r\nimport VueManagedScroller from 'vue-managed-scroller';\r\nimport VueCookie from 'vue-cookie';\r\nimport MQ from 'vue-match-media/src';\r\nimport Sticky from 'vue-sticky-directive';\r\nimport VueMeta from 'vue-meta';\r\nimport VueObserveVisibility from 'vue-observe-visibility';\r\nimport TextareaAutosize from 'vue-textarea-autosize';\r\nimport VueCurrencyInput from '@/libs/vue-currency-input/src';\r\nimport drag from \"@/libs/v-drag/src\";\r\n\r\nimport App from '@/App.vue';\r\nimport { create as createRouter } from '@/router';\r\nimport store from '@/store';\r\nimport i18n, { supportedLocales, load as loadLocalizedMessages } from '@/i18n';\r\nimport { browserLanguage, tryFindLanguage } from '@/scripts/utils.js';\r\nimport validations from '@/locales/validations.js';\r\nimport { authenticationCookieName } from '@/scripts/Security.js';\r\nimport SignUpInReasons from '@/scripts/SignUpInReasons.js';\r\nimport { user as UserMixin } from '@/mixins';\r\nimport CustomValidators from '@/scripts/customValidators.js';\r\nimport PublicHub from '@/scripts/publicHub.js';\r\nimport AuthenticatedHub from '@/scripts/authenticatedHub.js';\r\nimport OrganizationHub from '@/scripts/organizationHub.js';\r\nimport installNecessaryPolyfills from '@/scripts/polyfills.js';\r\nimport Toast from \"vue-toastification\";\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\nimport cookieConsentPlugin from \"./plugins/cookieconsent.js\";\r\n\r\naxios.interceptors.request.use(\r\n request => {\r\n request.headers = request.headers || {};\r\n request.headers['Content-Language'] = i18n.locale;\r\n if (store.state.auction.auction && store.state.auction.auction.id) {\r\n request.headers.AuctionId = store.state.auction.auction.id;\r\n }\r\n if (store.state.organization.organization && store.state.organization.organization.id) {\r\n request.headers.OrganizationId = store.state.organization.organization.id;\r\n }\r\n else if (store.state.signup.organizationId) {\r\n request.headers.OrganizationId = store.state.signup.organizationId;\r\n }\r\n const token = VueCookie.get(authenticationCookieName);\r\n if (token) {\r\n request.headers.Authorization = 'Bearer ' + token;\r\n }\r\n return request;\r\n },\r\n error => {\r\n store.dispatch('app/addError', error);\r\n }\r\n);\r\n\r\naxios.interceptors.response.use(\r\n response => response,\r\n error => {\r\n if (error && error.response) {\r\n switch (+error.response.status) {\r\n case 401: // Unauthorized\r\n UserMixin.methods.gotoAuctionLogin(true, SignUpInReasons.authenticationNeeded);\r\n break;\r\n case 403: // Forbidden\r\n UserMixin.methods.gotoAuctionLogin(true, SignUpInReasons.insufficientPrivileges);\r\n break;\r\n default:\r\n // Laisser l'appelant gérer l'exception\r\n break;\r\n }\r\n }\r\n return Promise.reject(error);\r\n }\r\n);\r\n\r\nVue.config.productionTip = false;\r\n\r\nVue.use(VueObserveVisibility);\r\nVue.use(VueRouter);\r\nVue.use(PublicHub);\r\nVue.use(AuthenticatedHub);\r\nVue.use(OrganizationHub);\r\nVue.use(VueManagedScroller);\r\nVue.use(MQ);\r\nVue.use(Sticky);\r\nVue.use(TextareaAutosize);\r\nVue.use(VueMeta, {\r\n refreshOnceOnNavigation: true\r\n});\r\nVue.use(drag);\r\n\r\n(async function () {\r\n await installNecessaryPolyfills();\r\n\r\n //Important, les appSettings sont loadés par cet appel\r\n await store.dispatch('app/getAppConfig');\r\n\r\n const urlLocale = window.location.pathname.split('/')[1];\r\n let resultingLocale;\r\n if (urlLocale && supportedLocales.includes(urlLocale)) {\r\n resultingLocale = urlLocale;\r\n } else {\r\n const newLocale = tryFindLanguage(urlLocale);\r\n if (newLocale == \"\") {\r\n resultingLocale = browserLanguage();\r\n } else {\r\n resultingLocale = newLocale;\r\n }\r\n\r\n let newUrl = window.location.origin + `/${resultingLocale}`;\r\n const pathSplit = window.location.pathname.split('/');\r\n for (let i = 2; pathSplit.length > i; i++) {\r\n newUrl = newUrl + `/${pathSplit[i]}`;\r\n }\r\n window.location.href = newUrl;\r\n }\r\n\r\n await loadLocalizedMessages(resultingLocale);\r\n i18n.locale = resultingLocale;\r\n i18n.fallbackLocale = supportedLocales.filter(item => item != resultingLocale)[0];\r\n Moment.locale(resultingLocale);\r\n\r\n Vue.use(VueCurrencyInput, {\r\n globalOptions: {\r\n currency: 'CAD',\r\n locale: resultingLocale\r\n }\r\n });\r\n\r\n Vue.use(VeeValidate, {\r\n i18n,\r\n dictionary: validations\r\n });\r\n CustomValidators.register();\r\n\r\n const routerInstance = createRouter(resultingLocale);\r\n\r\n //Le getCurrentUser doit se faire après le chargement des locales, car on les utilise pour valider le slug dans l'url \r\n try {\r\n await store.dispatch('user/getCurrentUser');\r\n } catch (error) {\r\n }\r\n\r\n const appInsights = new ApplicationInsights({\r\n config: {\r\n connectionString: store.state.app.appSettings.appInsightsConnectionString,\r\n enableAutoRouteTracking: true,\r\n disableCookiesUsage: true\r\n }\r\n });\r\n appInsights.loadAppInsights();\r\n\r\n Vue.use(Toast);\r\n\r\n new Vue({\r\n router: routerInstance,\r\n store,\r\n i18n,\r\n mq: {\r\n phone: '(max-width: 767px)',\r\n tablet: '(min-width: 768px) and (max-width: 1024px)',\r\n desktop: '(min-width: 1024px)',\r\n admin: '(min-width: 1200px)',\r\n adminTablet: '(min-width: 1025px) and (max-width: 1281px)',\r\n adminFullTablet: '(max-width: 1280px)'\r\n },\r\n render: h => h(App),\r\n created() {\r\n Vue.use(cookieConsentPlugin, store, appInsights);\r\n }\r\n }).$mount('#app');\r\n})();\r\n","import Moment from 'moment';\r\nimport VueScrollTo from 'vue-scrollto';\r\n\r\nimport { numberFormats } from '@/i18n.js';\r\nimport { AUTHENTICATION_RETURN_PAGE_STORAGE } from '@/constants.js';\r\nimport { userTypeEnum as UserTypeEnum } from '@/GeneratedModels/UserTypeEnum.js';\r\nimport { transactionFeesPlanTypeEnum as TransactionFeesPlanTypeEnum } from '@/GeneratedModels/TransactionFeesPlanTypeEnum.js';\r\nimport { auctionInvoiceStatusTypeEnum as AuctionInvoiceStatusTypeEnum } from '@/GeneratedModels/AuctionInvoiceStatusTypeEnum.js';\r\nimport { routeName, routeTitle } from '@/router/routing.js';\r\nimport { formatPhoneNumber } from '@/scripts/phoneUtils.js';\r\nimport { gotoAuctionLogin, navigateTo } from '@/scripts/redirection.js';\r\nimport SignUpInReasons from '@/scripts/SignUpInReasons.js';\r\nimport { AuctionStatus } from '@/store/auction/state.js';\r\nimport { auctionStatusEnum as AuctionStatusEnum } from '@/GeneratedModels/AuctionStatusEnum.js';\r\nimport { invoiceStatusEnum as InvoiceStatusEnum } from '@/GeneratedModels/InvoiceStatusEnum.js';\r\nimport { invoiceTypeEnum as InvoiceTypeEnum } from '@/GeneratedModels/InvoiceTypeEnum.js';\r\n\r\nconst supportedLocales = Object.freeze(['fr-CA', 'en-CA']);\r\n\r\nexport function multiwatch(keys, handler) {\r\n const result = {};\r\n for (const i in keys) {\r\n result[keys[i]] = handler;\r\n }\r\n return result;\r\n}\r\n\r\nexport const validation = {\r\n methods: {\r\n addValidationError(fieldName, errorMessage) {\r\n const field = this.$validator.fields.find({ name: fieldName, scope: this.$options.scope });\r\n this.$validator.errors.add({\r\n id: field.id,\r\n field: fieldName,\r\n msg: errorMessage,\r\n scope: this.$options.scope\r\n });\r\n field.setFlags({\r\n invalid: true,\r\n valid: false,\r\n validated: true\r\n });\r\n },\r\n hasChange(originalValue, updatedValue, filter) {\r\n let original = typeof originalValue === 'function' ? originalValue() : originalValue,\r\n updated = typeof updatedValue === 'function' ? updatedValue() : updatedValue;\r\n\r\n if (!Array.isArray(original)) {\r\n\r\n if (filter && typeof filter === 'function') {\r\n original = filter(original);\r\n updated = filter(updated);\r\n }\r\n\r\n\r\n const jsonOriginal = JSON.stringify({ ...original }),\r\n jsonUpdated = JSON.stringify({ ...updated });\r\n\r\n return jsonOriginal != jsonUpdated;\r\n } else {\r\n for (const index in original) {\r\n\r\n if (filter && typeof filter === 'function') {\r\n original = filter(original[index]);\r\n updated = filter(updated[index]);\r\n }\r\n\r\n const jsonOriginal = JSON.stringify({ ...original[index] }),\r\n jsonUpdated = JSON.stringify({ ...updated[index] });\r\n if (jsonOriginal != jsonUpdated) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n },\r\n scrollToError() {\r\n const errors = Array.from(document.getElementsByClassName(\"error\")),\r\n element = errors.find((el) => window.getComputedStyle(el).display !== 'none' && el.nodeName === 'SPAN');\r\n if (element) {\r\n VueScrollTo.scrollTo(element, {\r\n container: 'body',\r\n duration: 350,\r\n easing: 'linear',\r\n offset: window.screen ? -window.screen.availHeight / 2 : 350,\r\n cancelable: false\r\n });\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const notification = {\r\n data() {\r\n return {\r\n successNotificationVisible: false,\r\n errorNotificationVisible: false,\r\n cancelNotificationVisible: false,\r\n canHideSuccessCheck: false,\r\n canHideCancelCheck: false\r\n };\r\n },\r\n computed: {\r\n disableAction() {\r\n return !this.isDirty || this.responsePending;\r\n },\r\n disableCancelButton() {\r\n return this.disableAction && !this.cancelNotificationVisible;\r\n },\r\n disableSaveButton() {\r\n return this.disableAction && !this.successNotificationVisible;\r\n }\r\n },\r\n methods: {\r\n showErrorToast() {\r\n this.$toast.error(this.$t('settings.enterprise.toastError'), {\r\n toastClassName: 'error',\r\n timeout: false,\r\n onClose: this.hideErrorNotification\r\n });\r\n },\r\n hideErrorNotification() {\r\n this.errorNotificationVisible = false;\r\n },\r\n showSuccessToast(toggleVisibilityState = true, onClose = this.hideSuccessNotification, text = this.$t('settings.enterprise.toastSucceed')) {\r\n this.$toast.success((text), {\r\n toastClassName: 'success',\r\n timeout: 3000,\r\n onClose\r\n });\r\n if (toggleVisibilityState) {\r\n this.successNotificationVisible = true;\r\n }\r\n },\r\n hideSuccessNotification() {\r\n this.successNotificationVisible = false;\r\n },\r\n\r\n showCancelToast() {\r\n this.$toast.warning(this.$t('settings.enterprise.toastCancel'), {\r\n toastClassName: 'cancel',\r\n timeout: 3000,\r\n onClose: this.hideCancelNotification\r\n });\r\n\r\n this.cancelNotificationVisible = true;\r\n },\r\n hideCancelNotification() {\r\n this.cancelNotificationVisible = false;\r\n },\r\n onSaveSuccessMouseLeave() {\r\n if (this.successNotificationVisible) {\r\n this.canHideSuccessCheck = true;\r\n }\r\n },\r\n onSaveSuccessMouseOver() {\r\n if (this.canHideSuccessCheck) {\r\n this.hideSuccessNotification();\r\n this.canHideSuccessCheck = false;\r\n }\r\n },\r\n onCancelSuccessMouseLeave() {\r\n if (this.cancelNotificationVisible) {\r\n this.canHideCancelCheck = true;\r\n }\r\n },\r\n onCancelSuccessMouseOver() {\r\n if (this.canHideCancelCheck) {\r\n this.hideCancelNotification();\r\n this.canHideCancelCheck = false;\r\n }\r\n }\r\n },\r\n beforeRouteLeave(to, from, next) {\r\n this.$toast.clear();\r\n next();\r\n }\r\n};\r\n\r\nexport const locale = {\r\n computed: {\r\n lang() {\r\n return this.$i18n.locale;\r\n },\r\n supportedLocales: () => supportedLocales,\r\n auctionDefaultLocale() {\r\n return this.$store.state.auction.auction && this.$store.state.auction.auction.defaultLocale;\r\n },\r\n additionalLocales() {\r\n\r\n if (this.$store.state.auction.auction) {\r\n return this.$store.state.auction.auction.supportedLocales.filter(x => x !== this.$store.state.auction.auction.defaultLocale);\r\n }\r\n else {\r\n return this.notSelectedLocales;\r\n }\r\n },\r\n orderedLocales() {\r\n // Toujours mettre la langue par défaut en premier\r\n return [this.auctionDefaultLocale, ...(this.additionalLocales || [])];\r\n },\r\n notSelectedLocales() {\r\n return this.supportedLocales.filter(x => x !== this.lang);\r\n },\r\n auctionSupportedLocales() {\r\n return this.$store.state.auction.auction.supportedLocales;\r\n }\r\n },\r\n methods: {\r\n getLocalizedProperty(dict, lang = this.lang) {\r\n if (dict[lang] && dict[lang].length > 0) {\r\n return dict[lang];\r\n }\r\n if (this.$store.state.auction.auction && dict[this.$store.state.auction.auction.defaultLocale] && dict[this.$store.state.auction.auction.defaultLocale].length > 0) {\r\n return dict[this.$store.state.auction.auction.defaultLocale];\r\n }\r\n\r\n return Object.values(dict).find(x => x != null && x.length > 0);\r\n },\r\n isLocalizedPropertyEmpty(dict, lang = this.lang) {\r\n return !dict || !this.getLocalizedProperty(dict, lang);\r\n },\r\n emptyLocalizedProperty() {\r\n const result = {};\r\n for (const key in supportedLocales) {\r\n result[supportedLocales[key]] = '';\r\n }\r\n return result;\r\n },\r\n compareEachLocalizedProperty(a, b) {\r\n const duplicateLocales = [];\r\n for (const key of supportedLocales) {\r\n if (a[key].trim() != \"\" && a[key].trim() === b[key].trim()) {\r\n duplicateLocales.push(key);\r\n }\r\n }\r\n return duplicateLocales;\r\n },\r\n compareLocalizedProperty(a, b) {\r\n for (const key of supportedLocales) {\r\n if (a[key].trim() !== b[key].trim()) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n },\r\n getLocaleFriendlyName(locale, feminine = false) {\r\n const localeToCompare = locale.toLowerCase();\r\n if (this.lang.toLowerCase() === 'fr-ca') {\r\n if (localeToCompare === 'fr-ca') {\r\n return feminine ? 'francaise' : 'français';\r\n } else if (localeToCompare === 'en-ca') {\r\n return feminine ? 'anglaise' : 'anglais';\r\n }\r\n } else if (this.lang.toLowerCase() === 'en-ca') {\r\n if (localeToCompare === 'fr-ca') {\r\n return 'french';\r\n } else if (localeToCompare === 'en-ca') {\r\n return 'english';\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const routes = {\r\n methods: {\r\n routeName(name, { params, query, hash } = { params: {}, query: {}, hash: '' }) {\r\n return { name: routeName(this.$i18n.locale, name), params, query, hash: hash ? `#${hash}` : undefined };\r\n },\r\n routeTitle(part) {\r\n return routeTitle(part);\r\n },\r\n isRoute(...routeNames) {\r\n return (routeNames || []).find(x => routeName(this.$i18n.locale, x) === this.$route.name);\r\n },\r\n getAdminHomeRouteName(auctionStatus) {\r\n return auctionStatus === AuctionStatus.pending ? \"admin.dashboard\" : \"admin.performances\";\r\n },\r\n getStageIndex(auctionStatus) {\r\n switch (auctionStatus) {\r\n case AuctionStatusEnum.Pending:\r\n return AuctionStatus.pending;\r\n case AuctionStatusEnum.InProgress:\r\n return AuctionStatus.ongoing;\r\n case AuctionStatusEnum.closed:\r\n return AuctionStatus.over;\r\n }\r\n },\r\n isCurrentRouteChildOf(routeName) {\r\n return this.$router.currentRoute.matched.map((item) => {\r\n return item.name;\r\n }).includes(routeName);\r\n }\r\n },\r\n computed: {\r\n adminHomeRouteName() {\r\n return this.getAdminHomeRouteName(this.$store.state.auction.status);\r\n },\r\n currentRouteNameWithoutLang() {\r\n return this.$router.currentRoute.name.substr(this.$router.currentRoute.name.indexOf('.') + 1, this.$router.currentRoute.name.length);\r\n }\r\n }\r\n};\r\n\r\nexport const meta = {\r\n mixins: [routes],\r\n metaInfo() {\r\n return {\r\n title: this.$t(`metaTitles.${this.currentRouteNameWithoutLang}`),\r\n meta: [\r\n { property: 'og:title', content: this.$t(`metaTitles.${this.currentRouteNameWithoutLang}`), vmid: 'og:title' }\r\n ]\r\n };\r\n },\r\n computed: {\r\n ogTitle() {\r\n return this.$t(`metaTitles.${this.currentRouteNameWithoutLang}`);\r\n }\r\n }\r\n};\r\n\r\nexport const dates = {\r\n methods: {\r\n humanReadableTimestamp(value) {\r\n const moment = Moment(value);\r\n return moment.format(this.$t('datetime.time'));\r\n },\r\n humanReadableDate(value) {\r\n return Moment(value).format(this.$t('datetime.date'));\r\n },\r\n formattedDateTime(value) {\r\n return Moment(value).format(this.$t('datetime.datetimetext'));\r\n },\r\n formattedShortDateTime(value) {\r\n return Moment(value).format(this.$t('datetime.datetime'));\r\n },\r\n formattedShortDate(value) {\r\n return Moment(value).format(this.$t('datetime.shortDate'));\r\n },\r\n formattedYearMonthDayDate(value) {\r\n return Moment(value).format(this.$t('datetime.yearMonthDay'));\r\n }\r\n }\r\n};\r\n\r\nexport const images = {\r\n mixins: [locale],\r\n computed: {\r\n logoToShow() {\r\n if (this.$store.state.auction.auction.useAuctionLogo) {\r\n return this.getLocalizedProperty(this.$store.state.auction.auction.auctionLogo);\r\n }\r\n else {\r\n return this.getLocalizedProperty(this.$store.state.organization.organization.logo);\r\n }\r\n },\r\n organizationLogo() {\r\n return this.$store.state.organization.organization.logo;\r\n }\r\n },\r\n methods: {\r\n imageIdToUrl(imageId, fromOrganization) {\r\n //Les imageId qui commence par \"data:image/\", son les image en base64 qu'on viens d'importer et non des id du blobStorage\r\n if (imageId && imageId.startsWith(\"data:image/\")) {\r\n return imageId;\r\n }\r\n\r\n if (fromOrganization) {\r\n return this.$store.state.app.appSettings.imageBaseUrl.replace(\"{auctionId}\", this.$store.state.organization.organization.id).replace(\"{imageId}\", imageId);\r\n }\r\n\r\n return this.$store.state.app.appSettings.imageBaseUrl.replace(\"{auctionId}\", this.$store.state.auction.auction.id).replace(\"{imageId}\", imageId);\r\n },\r\n supplierImageIdToUrl(imageId) {\r\n if (imageId && imageId.startsWith(\"data:image/\")) {\r\n return imageId;\r\n }\r\n\r\n return this.$store.state.app.appSettings.imageBaseUrlSupplier.replace(\"{imageId}\", imageId);\r\n },\r\n resetItemImages() {\r\n return {\r\n original: null,\r\n detail: null,\r\n isCropped: false,\r\n displayOrder: 0\r\n };\r\n }\r\n }\r\n};\r\n\r\nexport const auction = {\r\n computed: {\r\n currentAuction() {\r\n return this.$store.state.auction.auction;\r\n },\r\n auctionPending() {\r\n return this.$store.state.auction.status === AuctionStatus.pending;\r\n },\r\n auctionOngoing() {\r\n return this.$store.state.auction.status === AuctionStatus.ongoing;\r\n },\r\n auctionExtended() {\r\n return this.$store.state.auction.status === AuctionStatus.extended;\r\n },\r\n auctionWasExtended() {\r\n return this.currentAuction.effectiveEndDate > this.currentAuction.endDate;\r\n },\r\n auctionOver() {\r\n return this.$store.state.auction.status >= AuctionStatus.over;\r\n },\r\n auctionClosed() {\r\n return this.currentAuction.closed;\r\n },\r\n auctionOverOrClosed() {\r\n return this.auctionOver || this.auctionClosed;\r\n },\r\n auctionClosedInvoiceSent() {\r\n return this.$store.state.auction.status === AuctionStatus.overInvoiceSent;\r\n },\r\n auctionPaid() {\r\n return this.currentAuction.isPaid;\r\n },\r\n auctionHasTaxCredit() {\r\n return this.currentAuction.offersTaxCredit;\r\n },\r\n usesAutomaticExtension() {\r\n return this.currentAuction.usesAutomaticExtension;\r\n },\r\n hideParticipantNames() {\r\n return this.currentAuction.hideParticipantNames;\r\n },\r\n hasValidTaxNumbers() {\r\n return this.$store.state.auction.auction.areTaxNumbersValid;\r\n },\r\n isStripeUsable() {\r\n return this.currentAuction && this.currentAuction.allowStripeCheckoutPayment && !this.isStripeAccountDisabled;\r\n },\r\n isStripeAccountEnabled() {\r\n return this.$store.state.organization.organization.stripePaymentSettings.stripeAccountPaymentEnabled &&\r\n this.$store.state.organization.organization.stripePaymentSettings.stripeAccountChargesEnabled;\r\n },\r\n isStripeAccountOnlyChargeEnabled() {\r\n return !this.$store.state.organization.organization.stripePaymentSettings.stripeAccountPaymentEnabled &&\r\n this.$store.state.organization.organization.stripePaymentSettings.stripeAccountChargesEnabled;\r\n },\r\n isStripeAccountDisabled() {\r\n return !this.$store.state.organization.organization.stripePaymentSettings.stripeAccountPaymentEnabled &&\r\n !this.$store.state.organization.organization.stripePaymentSettings.stripeAccountChargesEnabled;\r\n },\r\n isVoluntaryCoverageFeesEnabled() {\r\n if (this.currentAuction.allowStripeCheckoutPayment) {\r\n return this.currentAuction.transactionFeesPlanType == TransactionFeesPlanTypeEnum.Volontary;\r\n }\r\n return false;\r\n },\r\n isContributiveFeesEnabled() {\r\n if (this.currentAuction.allowStripeCheckoutPayment) {\r\n return this.currentAuction.transactionFeesPlanType == TransactionFeesPlanTypeEnum.Contributive;\r\n }\r\n return false;\r\n },\r\n isCreditCardRequired() {\r\n return this.currentAuction.allowStripeCheckoutPayment && this.currentAuction.creditCardRequired;\r\n },\r\n isTransactional() {\r\n return this.currentAuction.isFree;\r\n },\r\n hasDoneAutomaticPayment() {\r\n return this.currentAuction.hasDoneAutomaticPayment;\r\n },\r\n auctionInvoiceAsBeenSend() {\r\n return this.currentAuction.auctionInvoiceStatusType == AuctionInvoiceStatusTypeEnum.InvoiceSent ||\r\n this.currentAuction.auctionInvoiceStatusType == AuctionInvoiceStatusTypeEnum.FeesInvoicePaid;\r\n },\r\n auctionStatusEnum: () => AuctionStatusEnum\r\n },\r\n methods: {\r\n getAuctionStatus(auction) {\r\n const now = new Date();\r\n const startDate = new Date(auction.startDate);\r\n\r\n if (auction.closed) {\r\n return this.auctionStatusEnum.Closed;\r\n }\r\n else if (startDate <= now) {\r\n return this.auctionStatusEnum.InProgress;\r\n }\r\n else {\r\n return this.auctionStatusEnum.Pending;\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const auctionRules = {\r\n mixins: [locale],\r\n computed: {\r\n auctionRules() {\r\n return this.$store.state.auction.rules;\r\n }\r\n },\r\n methods: {\r\n isRuleActivated(rule) {\r\n return rule != null && rule.isActivated && !this.isLocalizedPropertyEmpty(rule.text);\r\n }\r\n }\r\n};\r\n\r\nexport const organization = {\r\n computed: {\r\n currentOrganization() {\r\n return this.$store.state.organization.organization;\r\n },\r\n currentOrganizationAuctions() {\r\n return this.$store.state.organization.organizationAuctions;\r\n },\r\n canDuplicateAuction() {\r\n return this.$store.state.organization.nbOfAuction;\r\n },\r\n hasRemainingAuction() {\r\n return this.currentOrganization.remainingAuction > 0;\r\n },\r\n isSupplier() {\r\n return this.currentOrganization.isSupplier;\r\n }\r\n },\r\n methods: {\r\n getAuctionLocalizedProperty(dict, lang, defaultLocale) {\r\n if (dict[lang] && dict[lang].length > 0) {\r\n return dict[lang];\r\n }\r\n return dict[defaultLocale];\r\n },\r\n getAuctionImageUrl(auctionId, imageId) {\r\n if (imageId) {\r\n return this.$store.state.app.appSettings.imageBaseUrl.replace(\"{auctionId}\", auctionId).replace(\"{imageId}\", imageId);\r\n }\r\n\r\n return null;\r\n },\r\n async createOrDuplicateAuction(modalRef) {\r\n //Envoie directement à la création d'encan si on peut pas dupliquer l'encan\r\n if (!this.canDuplicateAuction) {\r\n this.$store.dispatch('organization/setAuctionToDuplicate', null);\r\n this.$router.push({ name: this.routeName('organization.createAuction').name });\r\n }\r\n else {\r\n const modalResult = await this.$refs[modalRef].show();\r\n\r\n if (modalResult) {\r\n this.$router.push({ name: this.routeName('organization.createAuction').name, query: { duplicateFromAuction: true } });\r\n }\r\n else if (modalResult != null) {\r\n this.$store.dispatch('organization/setAuctionToDuplicate', null);\r\n this.$router.push({ name: this.routeName('organization.createAuction').name });\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nfunction createdThisSessionKey(userId, auctionId) {\r\n return `createdThisSession_${userId}_${auctionId}`;\r\n}\r\n\r\nfunction userUnderstandOverTimeStartKey(userId, auctionId) {\r\n return `userUnderstandOverTimeStart_${userId}_${auctionId}`;\r\n}\r\n\r\nexport const user = {\r\n computed: {\r\n Roles: () => UserTypeEnum,\r\n userId() { return this.currentUser ? this.currentUser.id : null; },\r\n currentUser() { return this.$store.state.user.user; },\r\n userIsLogged() { return !!this.$store.state.user.user; },\r\n hasAuthenticatedUserRights() { return this.currentUser && this.currentUser.type >= UserTypeEnum.Participant; },\r\n hasAssistantRights() { return !!(this.currentUser && this.currentUser.type >= UserTypeEnum.Assistant); },\r\n hasAuctionManagerRights() { return this.currentUser && this.currentUser.type >= UserTypeEnum.AuctionManager; },\r\n hasAdministratorRights() { return this.currentUser && this.currentUser.type >= UserTypeEnum.Administrator; },\r\n hasAccountOwnerRights() { return this.currentUser && this.currentUser.type >= UserTypeEnum.AccountOwner; },\r\n hasSuperadministratorRights() { return this.currentUser && this.currentUser.type >= UserTypeEnum.Superadministrator; },\r\n hasUnpaidInvoices() {\r\n return this.$store.state.user.invoices.some(x => (x.status == InvoiceStatusEnum.Unpaid || x.status == InvoiceStatusEnum.Error) && x.type == InvoiceTypeEnum.Standard);\r\n },\r\n userUnderstandOverTimeMode() { return this.currentUser && this.currentUser.understandOvertimeMode; },\r\n currentPaymentInfo() { return this.$store.state.user.paymentInfo; }\r\n },\r\n methods: {\r\n userCannotEditRole(userTypeEnum) {\r\n return !this.hasSuperadministratorRights &&\r\n (userTypeEnum == UserTypeEnum.AccountOwner || (userTypeEnum == UserTypeEnum.Administrator && !this.hasAdministratorRights));\r\n },\r\n userHasMinRole(userTypeEnum) { return this.currentUser && this.currentUser.type >= userTypeEnum; },\r\n gotoAuctionLogin(redirect = true, reason = SignUpInReasons.authenticationNeeded, redirectPath, userEmail = null, authenticationStatus = null) {\r\n if (redirect) {\r\n gotoAuctionLogin(this.$router, redirect, reason, redirectPath || this.$route.path, userEmail, authenticationStatus);\r\n } else {\r\n navigateTo(() => {\r\n gotoAuctionLogin(this.$router, redirect, reason, redirectPath || this.$route.path, userEmail, authenticationStatus);\r\n });\r\n }\r\n },\r\n saveReturnPage() {\r\n if (this.$router.currentRoute.name &&\r\n this.$router.currentRoute.name != routeName(this.$i18n.locale, 'auctionUnderConstruction') &&\r\n this.$router.currentRoute.name != routeName(this.$i18n.locale, 'auctionValidateUserEmail')) {\r\n sessionStorage.setItem(AUTHENTICATION_RETURN_PAGE_STORAGE, this.$router.currentRoute.path);\r\n }\r\n },\r\n isAuctionCreatedThisSession(auctionId) {\r\n return this.userId && sessionStorage.getItem(createdThisSessionKey(this.userId, auctionId));\r\n },\r\n setAuctionCreatedThisSession(auctionId) {\r\n if (this.userId) {\r\n sessionStorage.setItem(createdThisSessionKey(this.userId, auctionId), true);\r\n }\r\n },\r\n removeAuctionCreatedThisSession(auctionId) {\r\n if (this.userId) {\r\n sessionStorage.removeItem(createdThisSessionKey(this.userId, auctionId));\r\n }\r\n },\r\n userUnderstandOverTimeStart(auctionId) {\r\n return this.userId && localStorage[userUnderstandOverTimeStartKey(this.userId, auctionId)];\r\n },\r\n updateUserUnderstandOvertimeStart(auctionId) {\r\n if (this.userId) {\r\n localStorage[userUnderstandOverTimeStartKey(this.userId, auctionId)] = true;\r\n }\r\n },\r\n userAuthenticationGuard() {\r\n if (!this.userIsLogged) {\r\n this.gotoAuctionLogin(true, SignUpInReasons.authenticationNeeded);\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n }\r\n};\r\n\r\nexport const formatter = {\r\n methods: {\r\n formatPhoneNumber\r\n }\r\n};\r\n\r\nfunction auctionCurrencyFormatter(key, overrides = {}) {\r\n return new Intl.NumberFormat(this.$i18n.locale, {\r\n ...numberFormats[this.$i18n.locale][key],\r\n currency: overrides.currency || this.$store.state.auction.auction.currency,\r\n currencyDisplay: overrides.currencyDisplay || 'narrowSymbol',\r\n ...overrides\r\n });\r\n}\r\n\r\nfunction formatWithAuctionCurrencySymbol(format, v) {\r\n if (this.$te(`currencies.${this.$store.state.auction.auction.currency}.symbol`)) {\r\n return format.formatToParts(v)\r\n .map(x => x.type === 'currency' ? this.$t(`currencies.${this.$store.state.auction.auction.currency}.symbol`) : x.value)\r\n .join('');\r\n }\r\n return format.format(v);\r\n}\r\n\r\nfunction formatAmount(format, v) {\r\n return format.formatToParts(v)\r\n .filter(x => x.type !== 'currency')\r\n .map(x => x.value)\r\n .join('')\r\n .trim();\r\n}\r\n\r\nexport const currency = {\r\n computed: {\r\n supportedCurrency() { return Object.freeze(['CAD', 'USD']); },\r\n // Le symbole de la devise de l'encan en cours.\r\n // À utiliser uniquement pour afficher le symbole tout seul.\r\n // Pour formatter des montants, utiliser plutôt 'formatCurrency' ou 'formatCurrencyNoCents'\r\n auctionCurrencyNarrowSymbol() {\r\n return auctionCurrencyFormatter.call(this, 'currency').formatToParts(null).find(x => x.type === 'currency').value;\r\n },\r\n auctionCurrencySymbol() {\r\n if (this.$te(`currencies.${this.$store.state.auction.auction.currency}.symbol`)) {\r\n return this.$t(`currencies.${this.$store.state.auction.auction.currency}.symbol`);\r\n }\r\n return auctionCurrencyFormatter.call(this, 'currency', { currencyDisplay: 'symbol' }).formatToParts(null).find(x => x.type === 'currency').value;\r\n },\r\n isAuctionCurrencySymbolBeforeAmount() {\r\n return auctionCurrencyFormatter.call(this, 'currency').formatToParts(null)[0].type === 'currency';\r\n }\r\n },\r\n methods: {\r\n formatNarrowSymbol(currency) {\r\n return currency.replace(\"US\", \"\");\r\n },\r\n // Formatte la valeur en incluant les sous, dans la langue actuelle, dans la devise de l'encan en cours\r\n formatCurrency(v, overrides) {\r\n return this.formatNarrowSymbol(\r\n auctionCurrencyFormatter.call(this, 'currency', overrides).format(v)\r\n );\r\n },\r\n // Formatte la valeur en n'incluant pas les sous, dans la langue actuelle, dans la devise de l'encan en cours\r\n formatCurrencyNoCents(v, overrides) {\r\n return this.formatNarrowSymbol(\r\n auctionCurrencyFormatter.call(this, 'currencyNoCents', overrides).format(v)\r\n );\r\n },\r\n // Formatte la valeur en incluant les sous s'il y en a, dans la langue actuelle, dans la devise de l'encan en cours\r\n formatCurrencyAutoCents(v, overrides) {\r\n return (v % 1 != 0) ? this.formatCurrency(v, overrides) : this.formatCurrencyNoCents(v, overrides);\r\n },\r\n formatCurrencyAmount(v, overrides) {\r\n return this.formatNarrowSymbol(\r\n formatAmount.call(this, auctionCurrencyFormatter.call(this, 'currency', overrides), v)\r\n );\r\n },\r\n formatCurrencyAmountNoCents(v, overrides) {\r\n return this.formatNarrowSymbol(\r\n formatAmount.call(this, auctionCurrencyFormatter.call(this, 'currencyNoCents', overrides), v)\r\n );\r\n },\r\n formatCurrencyAmountAutoCents(v, overrides) {\r\n return (v % 1 != 0) ? this.formatCurrencyAmount(v, overrides) : this.formatCurrencyAmountNoCents(v, overrides);\r\n },\r\n formatCurrencyWithAuctionCurrencySymbol(v, overrides) {\r\n return formatWithAuctionCurrencySymbol.call(\r\n this,\r\n auctionCurrencyFormatter.call(this, 'currency', { currencyDisplay: 'symbol', ...overrides }),\r\n v);\r\n },\r\n formatCurrencyNoCentsWithAuctionCurrencySymbol(v, overrides) {\r\n return formatWithAuctionCurrencySymbol.call(\r\n this,\r\n auctionCurrencyFormatter.call(this, 'currencyNoCents', { currencyDisplay: 'symbol', ...overrides }),\r\n v);\r\n },\r\n formatCurrencyAutoCentsWithAuctionCurrencySymbol(v, overrides) {\r\n return (v % 1 != 0) ? this.formatCurrencyWithAuctionCurrencySymbol(v, overrides) : this.formatCurrencyNoCentsWithAuctionCurrencySymbol(v, overrides);\r\n },\r\n formatPercent(v, overrides) {\r\n return auctionCurrencyFormatter.call(this, 'percent', overrides).format(v);\r\n },\r\n formatPercentNoDecimals(v, overrides) {\r\n return auctionCurrencyFormatter.call(this, 'percentNoDecimals', overrides).format(v);\r\n }\r\n }\r\n};\r\n\r\nexport const signup = {\r\n computed: {\r\n currentOrganizationId() {\r\n return this.$store.state.signup.organization.id;\r\n },\r\n hasOrganization() {\r\n return !!this.currentOrganizationId;\r\n }\r\n }\r\n};\r\n\r\nexport const scrollToItem = {\r\n computed: {\r\n itemListLastVisitedItem: {\r\n get() {\r\n return this.$store.state.auction.itemListLastVisitedItem;\r\n },\r\n set(value) {\r\n this.$store.state.auction.itemListLastVisitedItem = value;\r\n }\r\n }\r\n },\r\n methods: {\r\n async restorePreviousNavigation() {\r\n if (this.itemListLastVisitedItem != null) {\r\n this.scrollTo = \"item-\" + this.itemListLastVisitedItem;\r\n this.itemListLastVisitedItem = null;\r\n this.itemListPage = this.currentPage;\r\n this.loading = false;\r\n this.handleScroll();\r\n }\r\n },\r\n handleScroll() {\r\n if (this.scrollTo != null) {\r\n const htmlElement = document.getElementById(String(this.scrollTo));\r\n if (htmlElement) {\r\n VueScrollTo.scrollTo(htmlElement);\r\n }\r\n } else {\r\n const topOfPage = document.getElementById(\"app\");\r\n if (topOfPage) {\r\n VueScrollTo.scrollTo(topOfPage);\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nexport const common = [images, routes, user, dates, auction, formatter, currency];\r\n\r\n// Mixins par défaut\r\nexport default common;\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('router-view',{on:{\"ready\":function($event){return _vm.$emit('ready', $event)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./Localize.vue?vue&type=template&id=47d79a47&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\nimport i18n from '@/i18n';\r\nimport Localize from '@/components/Localize.vue';\r\nimport { userTypeEnum as Roles } from '@/GeneratedModels/UserTypeEnum.js';\r\n\r\n// Les 3 méthodes suivantes sont dupliquées de ./routing.js; les importer ici cause une référence cyclique dans les tests unitaires inexplicablement.\r\n\r\nfunction routePath(lang, name) {\r\n return i18n.t(`routes.${name}`, lang);\r\n}\r\n\r\nfunction routeName(lang, name) {\r\n return `${lang}.${name}`;\r\n}\r\n\r\nfunction routeTitle(lang, name) {\r\n return i18n.t(`titles.${name}`, lang);\r\n}\r\n\r\nexport default (defaultLanguage) => [\r\n {\r\n path: ``,\r\n redirect: `/${defaultLanguage}`\r\n },\r\n ...getRoutes(defaultLanguage)\r\n];\r\n\r\nconst truncateEntityIdParam = id => id && id.substring(0, 24);\r\n\r\n// Les pages qui ne définissent pas de 'title' dans leurs meta doivent gérer elles-mêmes le titre de la page\r\nexport const getRoutes = (lang) => {\r\n return [{\r\n path: `/${lang}`,\r\n component: () => import(/* webpackChunkName: \"AppPublic\" */ '@/views/AppPublic.vue'),\r\n children: [\r\n //ICI Mettre toutes les pages de la sections publique/organisation/signup etc, avant ce qui est propre à un encan\r\n {\r\n path: `/`,\r\n name: \"portal\",\r\n redirect: () => { window.location.href = 'https://www.followmybid.com'; return false; }\r\n },\r\n {\r\n path: routePath(lang, 'error'),\r\n name: routeName(lang, 'error'),\r\n component: () => import(/* webpackChunkName: \"Error\" */ '@/views/Error.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'error')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'pageNotFound'),\r\n name: routeName(lang, 'pageNotFound'),\r\n component: () => import(/* webpackChunkName: \"PageNotFound\" */ '@/views/PageNotFound.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'pageNotFound')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'privacyPolicy'),\r\n name: routeName(lang, 'privacyPolicy'),\r\n component: () => import(/* webpackChunkName: \"privacyPolicy\" */ '@/views/PrivacyPolicy.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'privacyPolicy')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'termsOfUse'),\r\n name: routeName(lang, 'termsOfUse'),\r\n component: () => import(/* webpackChunkName: \"termsOfUse\" */ '@/views/TermsOfUse.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'termsOfUse')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'itemsCatalogue')}/:auctionId`,\r\n name: routeName(lang, 'itemsCatalogueAuction'),\r\n props: route => ({\r\n auctionId: route.params.auctionId,\r\n supplierId: route.query.supplierId\r\n }),\r\n component: () => import(/* webpackChunkName: \"itemsCatalogue\" */ '@/views/ItemsCatalogue.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'itemsCatalogue')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'itemsCatalogue'),\r\n name: routeName(lang, 'itemsCatalogue'),\r\n props: route => ({\r\n supplierId: route.query.supplierId\r\n }),\r\n component: () => import(/* webpackChunkName: \"itemsCatalogue\" */ '@/views/ItemsCatalogue.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'itemsCatalogue')\r\n }\r\n }, \r\n {\r\n path: `${routePath(lang, 'purchaseContract')}/:type`,\r\n name: routeName(lang, 'purchaseContract'),\r\n props: route => ({\r\n type: route.params.type,\r\n userId: route.query.userId,\r\n isTransactional: (route.query.isTransactional === 'true'),\r\n priceId: route.query.priceId,\r\n nbAuction: route.query.nbAuction,\r\n organizationName: route.query.organizationName,\r\n bundleId: route.query.bundleId\r\n }),\r\n component: () => import(/* webpackChunkName: \"purchaseContract\" */ '@/views/PurchaseContract.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'purchaseContract')\r\n }\r\n },\r\n {\r\n //La route de base du signup est copiée dans AuctionUrl.vue, si modifiée ici elle doit l'être aussi dans la vue\r\n path: routePath(lang, 'signup.base'),\r\n name: routeName(lang, 'signup.base'),\r\n props: route => ({\r\n organizationId: route.query.organizationId,\r\n pay: route.query.pay\r\n }),\r\n component: () => import(/* webpackChunkName: \"OwnerSignup\" */ '@/views/signup/OwnerSignup.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'signup.base')\r\n },\r\n children: [\r\n {\r\n path: routePath(lang, 'signup.account'),\r\n name: routeName(lang, 'signup.account'),\r\n component: () => import(/* webpackChunkName: \"Account\" */ '@/views/signup/Account.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'signup.account')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'signup.organization'),\r\n props: route => ({\r\n accountCreated: (route.query.accountCreated === 'true')\r\n }),\r\n name: routeName(lang, 'signup.organization'),\r\n component: () => import(/* webpackChunkName: \"Organization\" */ '@/views/signup/Organization.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'signup.organization')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'signup.participant'),\r\n name: routeName(lang, 'signup.participant'),\r\n component: () => import(/* webpackChunkName: \"Participant\" */ '@/views/signup/Participant.vue')\r\n }\r\n\r\n // NOTE(struchon) Si vous ajoutez une route ici, assurez-vous qu'elle est exclue dans AuctionUrl.vue et dans AuctionUrlService.cs\r\n ]\r\n },\r\n {\r\n path: routePath(lang, 'organization.base'),\r\n name: routeName(lang, 'organization.base'),\r\n props: route => ({\r\n organizationId: route.query.organizationId,\r\n invitationId: route.query.invitationId,\r\n authenticationStatus: route.query.authenticationStatus\r\n }),\r\n component: () => import(/* webpackChunkName: \"Organization\" */ '@/views/organization/AppBaseOrganization.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'organization.base')\r\n },\r\n children: [\r\n {\r\n path: routePath(lang, 'organization.error'),\r\n name: routeName(lang, 'organization.error'),\r\n component: () => import(/* webpackChunkName: \"ErrorPage\" */ '@/views/organization/ErrorPage.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'organization.error')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'organization.profile'),\r\n name: routeName(lang, 'organization.profile'),\r\n component: () => import(/* webpackChunkName: \"Profile\" */ '@/views/organization/Profile.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'organization.profile')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'organization.invoice'),\r\n name: routeName(lang, 'organization.invoice'),\r\n component: () => import(/* webpackChunkName: \"Invoice\" */ '@/views/organization/Invoice.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'organization.invoice')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'organization.stripeSettings'),\r\n name: routeName(lang, 'organization.stripeSettings'),\r\n component: () => import(/* webpackChunkName: \"StripeSettings\" */ '@/views/organization/StripeSettings.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'organization.stripeSettings')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'organization.auctions'),\r\n name: routeName(lang, 'organization.auctions'),\r\n component: () => import(/* webpackChunkName: \"Auctions\" */ '@/views/organization/Auctions.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'organization.auctions')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'organization.createAuction'),\r\n name: routeName(lang, 'organization.createAuction'),\r\n props: route => ({\r\n duplicateFromAuction: (route.query.duplicateFromAuction === 'true' || route.query.duplicateFromAuction),\r\n skipFirstStep: (route.query.skipFirstStep === 'true' || route.query.skipFirstStep)\r\n }),\r\n component: () => import(/* webpackChunkName: \"CreateAuction\" */ '@/views/organization/CreateAuction.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'organization.createAuction')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'organization.roleManagement'),\r\n name: routeName(lang, 'organization.roleManagement'),\r\n component: () => import(/* webpackChunkName: \"RoleManagement\" */ '@/views/organization/RoleManagement.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'organization.roleManagement')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'organization.roleManagementDetails'),\r\n name: routeName(lang, 'organization.roleManagementDetails'),\r\n component: () => import(/* webpackChunkName: \"roleManagementDetails\" */ '@/views/organization/RoleManagementDetails.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'organization.roleManagementDetails')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'organization.roleManagement')}/:userId`,\r\n name: routeName(lang, 'organization.roleManagementEdit'),\r\n component: () => import(/* webpackChunkName: \"RoleManagementEdit\" */ '@/views/organization/RoleManagementEdit.vue'),\r\n props: route => ({\r\n selectedUserId: route.params.userId\r\n }),\r\n meta: {\r\n title: routeTitle(lang, 'organization.roleManagement')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'organization.help'),\r\n name: routeName(lang, 'organization.help'),\r\n component: () => import(/* webpackChunkName: \"Help\" */ '@/views/help/Help.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'organization.help')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'organization.supplierItems'),\r\n name: routeName(lang, 'organization.supplierItems'),\r\n component: () => import(/* webpackChunkName: \"SupplierItems\" */ '@/views/organization/SupplierItems.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'organization.supplierItems')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'organization.add_item')}`,\r\n name: routeName(lang, 'organization.add_item'),\r\n component: () => import(/* webpackChunkName: \"SupplierItemEdit\" */ '@/views/organization/SupplierItemEdit.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'organization.add_item')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'organization.edit_item')}/:itemId`,\r\n props: true,\r\n name: routeName(lang, 'organization.edit_item'),\r\n component: () => import(/* webpackChunkName: \"SupplierItemEdit\" */ '@/views/organization/SupplierItemEdit.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'organization.edit_item')\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: `:slug`,\r\n redirect: { name: routeName(lang, 'auction') },\r\n component: Localize,\r\n children: [\r\n {\r\n path: ``,\r\n component: () => import(/* webpackChunkName: \"AppBaseAuction\" */ '@/views/AppBaseAuction.vue'),\r\n children: [\r\n {\r\n path: routePath(lang, 'authentication.base'),\r\n component: () => import(/* webpackChunkName: \"AppAuthentication\" */ '@/views/AppAuthentication.vue'),\r\n children: [\r\n {\r\n path: '',\r\n name: routeName(lang, 'authentication.signupin'),\r\n props: route => route.query,\r\n component: () => import(/* webpackChunkName: \"Signupin\" */ '@/views/authentication/Signupin.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'authentication.signupin')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'authentication.login'),\r\n props: route => ({\r\n redirectUrl: route.query.redirectUrl,\r\n invitationId: route.query.invitationId,\r\n userEmail: route.query.userEmail,\r\n authenticationStatus: route.query.authenticationStatus\r\n }),\r\n name: routeName(lang, 'authentication.login'),\r\n component: () => import(/* webpackChunkName: \"Login\" */ '@/views/authentication/Login.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'authentication.login')\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: routePath(lang, 'admin.base'), props: true,\r\n name: routeName(lang, 'admin.base'),\r\n component: () => import(/* webpackChunkName: \"AppAdmin\" */ '@/views/AppAdmin.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.base')\r\n },\r\n children: [\r\n {\r\n path: routePath(lang, 'admin.dashboard'),\r\n name: routeName(lang, 'admin.dashboard'),\r\n component: () => import(/* webpackChunkName: \"Dashboard\" */ '@/views/admin/Dashboard.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.dashboard')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.item_list'),\r\n name: routeName(lang, 'admin.item_list'),\r\n component: () => import(/* webpackChunkName: \"ItemList\" */ '@/views/admin/ItemList.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.item_list')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'admin.add_item')}`,\r\n name: routeName(lang, 'admin.add_item'),\r\n component: () => import(/* webpackChunkName: \"ItemEdit\" */ '@/views/admin/ItemEdit.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.add_item')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'admin.edit_item')}/:itemId`,\r\n props: true,\r\n name: routeName(lang, 'admin.edit_item'),\r\n component: () => import(/* webpackChunkName: \"ItemEdit\" */ '@/views/admin/ItemEdit.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.edit_item')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'admin.add_item_unique')}`,\r\n name: routeName(lang, 'admin.add_item_unique'),\r\n component: () => import(/* webpackChunkName: \"ItemEdit\" */ '@/views/admin/ItemUniqueEdit.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.add_item_unique')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'admin.edit_item_unique')}/:itemId`,\r\n props: true,\r\n name: routeName(lang, 'admin.edit_item_unique'),\r\n component: () => import(/* webpackChunkName: \"ItemEdit\" */ '@/views/admin/ItemUniqueEdit.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.edit_item_unique')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.participants'),\r\n props: { detailPage: 'admin.participant', userType: Roles.Participant, currentRouteName: 'admin.participants' },\r\n name: routeName(lang, 'admin.participants'),\r\n component: () => import(/* webpackChunkName: \"UserList\" */ '@/views/admin/UserList.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.participants')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.assistants'),\r\n props: { detailPage: 'admin.assistant', userType: Roles.Assistant, currentRouteName: 'admin.assistants' },\r\n name: routeName(lang, 'admin.assistants'),\r\n component: () => import(/* webpackChunkName: \"UserList\" */ '@/views/admin/UserList.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.assistants')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.administrators'),\r\n props: { detailPage: 'admin.administrator', userType: Roles.AuctionManager, currentRouteName: 'admin.administrators' },\r\n name: routeName(lang, 'admin.administrators'),\r\n component: () => import(/* webpackChunkName: \"UserList\" */ '@/views/admin/UserList.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.administrators')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'admin.participant')}/:userId?`,\r\n props: route => ({\r\n selectedUserId: route.params.userId,\r\n parentPage: { name: routeName(lang, 'admin.participants') },\r\n userType: Roles.Participant\r\n }),\r\n name: routeName(lang, 'admin.participant'),\r\n component: () => import(/* webpackChunkName: \"UserEdit\" */ '@/views/admin/UserEdit.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.participant')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'admin.assistant')}/:userId?`,\r\n props: route => ({\r\n selectedUserId: route.params.userId,\r\n parentPage: { name: routeName(lang, 'admin.assistants') },\r\n userType: Roles.Assistant\r\n }),\r\n name: routeName(lang, 'admin.assistant'),\r\n component: () => import(/* webpackChunkName: \"UserEdit\" */ '@/views/admin/UserEdit.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.assistant')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'admin.administrator')}/:userId?`,\r\n props: route => ({\r\n selectedUserId: route.params.userId,\r\n parentPage: { name: routeName(lang, 'admin.administrators') },\r\n userType: Roles.AuctionManager\r\n }),\r\n name: routeName(lang, 'admin.administrator'),\r\n component: () => import(/* webpackChunkName: \"UserEdit\" */ '@/views/admin/UserEdit.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.administrator')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.auction_paymentInstructions'),\r\n props: true,\r\n name: routeName(lang, 'admin.auction_paymentInstructions'),\r\n component: () => import(/* webpackChunkName: \"AuctionPaymentIntrusctions\" */ '@/views/admin/AuctionPaymentInstructions.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.auction_paymentInstructions')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.auction_rules'),\r\n props: true,\r\n name: routeName(lang, 'admin.auction_rules'),\r\n component: () => import(/* webpackChunkName: \"AuctionRules\" */ '@/views/admin/AuctionRules.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.auction_rules')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.auction_settings'), props: true,\r\n name: routeName(lang, 'admin.auction_settings'),\r\n component: () => import(/* webpackChunkName: \"AuctionSettings\" */ '@/views/admin/AuctionSettings.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.auction_settings')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.customization_settings'),\r\n props: true,\r\n name: routeName(lang, 'admin.customization_settings'),\r\n component: () => import(/* webpackChunkName: \"AuctionCustomization\" */ '@/views/admin/AuctionCustomization.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.customization_settings')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.auction_closure'),\r\n name: routeName(lang, 'admin.auction_closure'),\r\n component: () => import(/* webpackChunkName: \"AuctionClosure\" */ '@/views/admin/AuctionClosure.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.auction_closure')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.partner_list'), props: true,\r\n name: routeName(lang, 'admin.partner_list'),\r\n component: () => import(/* webpackChunkName: \"PartnerList\" */ '@/views/admin/PartnerList.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.partner_list')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.add_partner'),\r\n name: routeName(lang, 'admin.add_partner'),\r\n props: route => ({\r\n partnerCategory: route.params.partnerCategory,\r\n isOtherCategory: route.params.isOtherCategory\r\n }),\r\n component: () => import(/* webpackChunkName: \"PartnerEdit\" */ '@/views/admin/PartnerEdit.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.add_partner')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'admin.edit_partner')}/:partnerId`, props: true,\r\n name: routeName(lang, 'admin.edit_partner'),\r\n component: () => import(/* webpackChunkName: \"PartnerEdit\" */ '@/views/admin/PartnerEdit.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.edit_partner')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.add_category_presenter'),\r\n name: routeName(lang, 'admin.add_category_presenter'),\r\n props: route => ({\r\n partnerCategoryType: route.params.partnerCategoryType\r\n }),\r\n component: () => import(/* webpackChunkName: \"PartnerEdit\" */ '@/views/admin/PartnerCategoryEdit.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.add_category_presenter')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.add_category_traditional'),\r\n name: routeName(lang, 'admin.add_category_traditional'),\r\n props: route => ({\r\n partnerCategoryType: route.params.partnerCategoryType\r\n }),\r\n component: () => import(/* webpackChunkName: \"PartnerEdit\" */ '@/views/admin/PartnerCategoryEdit.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.add_category_traditional')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'admin.edit_category_partner')}/:partnerCategoryId`, props: true,\r\n name: routeName(lang, 'admin.edit_category_partner'),\r\n component: () => import(/* webpackChunkName: \"PartnerEdit\" */ '@/views/admin/PartnerCategoryEdit.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.edit_category_partner')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.performances'),\r\n name: routeName(lang, 'admin.performances'),\r\n component: () => import(/* webpackChunkName: \"Performances\" */ '@/views/admin/Performances.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.performances')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.chatroom'), props: { conversationId: null },\r\n name: routeName(lang, 'admin.chatroom'),\r\n component: () => import(/* webpackChunkName: \"Chatroom\" */ '@/views/chatroom/Chatroom.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.chatroom')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.chatroom_draft'), props: { conversationId: 'draft' },\r\n name: routeName(lang, 'admin.chatroom_draft'),\r\n component: () => import(/* webpackChunkName: \"Chatroom\" */ '@/views/chatroom/Chatroom.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.chatroom')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'admin.chatroom')}/:conversationId`,\r\n props: true,\r\n name: routeName(lang, 'admin.chatroom_conversation'),\r\n component: () => import(/* webpackChunkName: \"Chatroom\" */ '@/views/chatroom/Chatroom.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.chatroom')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'admin.chatroom_user')}/:userId`,\r\n props: true,\r\n name: routeName(lang, 'admin.chatroom_user'),\r\n component: () => import(/* webpackChunkName: \"Chatroom\" */ '@/views/chatroom/Chatroom.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.chatroom')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.auction_settings_stripe'), props: true,\r\n name: routeName(lang, 'admin.auction_settings_stripe'),\r\n component: () => import(/* webpackChunkName: \"AuctionStripeSettings\" */ '@/views/admin/AuctionStripeSettings.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.auction_settings_stripe')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.help'),\r\n name: routeName(lang, 'admin.help'),\r\n component: () => import(/* webpackChunkName: \"Help\" */ '@/views/help/Help.vue'),\r\n meta: {\r\n minRole: Roles.AuctionManager,\r\n title: routeTitle(lang, 'admin.help')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'admin.admin_error'),\r\n name: routeName(lang, 'admin.admin_error'),\r\n component: () => import(/* webpackChunkName: \"AdminError\" */ '@/views/AdminError.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'admin.admin_error')\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: ``, props: true,\r\n name: routeName(lang, 'auction'),\r\n component: () => import(/* webpackChunkName: \"AppAuction\" */ '@/views/AppAuction.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'auction')\r\n },\r\n children: [\r\n {\r\n path: routePath(lang, 'participant.item_list'),\r\n name: routeName(lang, 'participant.item_list'),\r\n component: () => import(/* webpackChunkName: \"ItemList\" */ '@/views/participant/ItemList.vue')\r\n },\r\n {\r\n path: `${routePath(lang, 'participant.item_details')}/:itemId`,\r\n props: route => ({\r\n itemId: truncateEntityIdParam(route.params.itemId),\r\n applyFilters: route.params.applyFilters,\r\n fromItemView: route.params.fromItemView\r\n }),\r\n name: routeName(lang, 'participant.item_details'),\r\n component: () => import(/* webpackChunkName: \"ItemDetails\" */ '@/views/participant/ItemDetails.vue')\r\n },\r\n {\r\n path: routePath(lang, 'participant.followed_items'),\r\n name: routeName(lang, 'participant.followed_items'),\r\n component: () => import(/* webpackChunkName: \"FollowedItems\" */ '@/views/participant/FollowedItems.vue'),\r\n meta: {\r\n minRole: Roles.Participant\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'participant.profile'),\r\n name: routeName(lang, 'participant.profile'),\r\n component: () => import(/* webpackChunkName: \"Profile\" */ '@/views/participant/Profile.vue'),\r\n meta: {\r\n minRole: Roles.Participant\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'participant.communications_settings'),\r\n name: routeName(lang, 'participant.communications_settings'),\r\n component: () => import(/* webpackChunkName: \"CommunicationSettings\" */ '@/views/participant/CommunicationSettings.vue'),\r\n meta: {\r\n minRole: Roles.Participant\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'participant.invoice'),\r\n props: route => ({\r\n paymentConfirmed: (route.query.paymentConfirmed == \"true\")\r\n }),\r\n name: routeName(lang, 'participant.invoice'),\r\n component: () => import(/* webpackChunkName: \"Invoice\" */ '@/views/participant/Invoice.vue'),\r\n meta: {\r\n minRole: Roles.Participant\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'participant.partner_list'),\r\n name: routeName(lang, 'participant.partner_list'),\r\n component: () => import(/* webpackChunkName: \"PartnerList\" */ '@/views/participant/PartnerList.vue')\r\n },\r\n {\r\n path: routePath(lang, 'participant.rules'),\r\n props: route => ({\r\n scrollTo: route.query.scrollTo\r\n }),\r\n name: routeName(lang, 'participant.rules'),\r\n component: () => import(/* webpackChunkName: \"Rules\" */ '@/views/participant/Rules.vue')\r\n },\r\n {\r\n path: routePath(lang, 'participant.terms'),\r\n name: routeName(lang, 'participant.terms'),\r\n component: () => import(/* webpackChunkName: \"Terms\" */ '@/views/participant/Terms.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'participant.terms')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'participant.contact_us'),\r\n name: routeName(lang, 'participant.contact_us'),\r\n component: () => import(/* webpackChunkName: \"ContactUs\" */ '@/views/participant/ContactUs.vue'),\r\n props: route => ({\r\n tabId: route.query.tabId\r\n })\r\n },\r\n {\r\n path: routePath(lang, 'participant.add_paymentInfo'),\r\n name: routeName(lang, 'participant.add_paymentInfo'),\r\n component: () => import(/* webpackChunkName: \"Add_PaymentInfo\" */ '@/views/participant/AddPaymentInfo.vue'),\r\n props: route => ({\r\n skipWantsBearFees: (route.query.skipWantsBearFees === 'true' || route.query.skipWantsBearFees)\r\n }),\r\n meta: {\r\n minRole: Roles.Participant\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'participant.transaction_fees_paymentInfo'),\r\n name: routeName(lang, 'participant.transaction_fees_paymentInfo'),\r\n component: () => import(/* webpackChunkName: \"Add_PaymentInfo\" */ '@/views/participant/TransactionFeesPaymentInfo.vue'),\r\n props: route => ({\r\n showSuccesAddCardNotification: (route.query.showSuccesAddCardNotification === 'true' || route.query.showSuccesAddCardNotification),\r\n prevRoute: route.params.prevRoute\r\n }),\r\n meta: {\r\n minRole: Roles.Participant\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'participant.paymentInfo'),\r\n name: routeName(lang, 'participant.paymentInfo'),\r\n component: () => import(/* webpackChunkName: \"PaymentInfo\" */ '@/views/participant/PaymentInfo.vue'),\r\n props: route => ({\r\n showSuccesAddCardNotification: (route.query.showSuccesAddCardNotification === 'true' || route.query.showSuccesAddCardNotification)\r\n }),\r\n meta: {\r\n minRole: Roles.Participant\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'auctionPageNotFound'),\r\n name: routeName(lang, 'auctionPageNotFound'),\r\n component: () => import(/* webpackChunkName: \"AuctionPageNotFound\" */ '@/views/AuctionPageNotFound.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'pageNotFound')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'auctionError'),\r\n name: routeName(lang, 'auctionError'),\r\n component: () => import(/* webpackChunkName: \"AuctionError\" */ '@/views/AuctionError.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'error')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'home'),\r\n name: routeName(lang, 'home'),\r\n component: () => import(/* webpackChunkName: \"Home\" */ '@/views/participant/Home.vue'),\r\n alias: ''\r\n }\r\n ]\r\n },\r\n {\r\n path: ``,\r\n component: () => import(/* webpackChunkName: \"AppAuction\" */ '@/views/AppAuction.vue'),\r\n props: {\r\n startWithDonation: true\r\n },\r\n meta: {\r\n title: routeTitle(lang, 'auction')\r\n },\r\n children: [\r\n {\r\n path: routePath(lang, 'participant.donate'),\r\n name: routeName(lang, 'participant.donate'),\r\n component: () => import(/* webpackChunkName: \"Home\" */ '@/views/participant/Home.vue'),\r\n meta: {\r\n minRole: Roles.Participant,\r\n title: routeTitle(lang, 'participant.donate')\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: `${routePath(lang, 'participant.invoice_details')}/:invoiceId`,\r\n props: route => ({\r\n invoiceId: route.params.invoiceId,\r\n isReceipt: false\r\n }),\r\n name: routeName(lang, 'participant.invoice_details'),\r\n component: () => import(/* webpackChunkName: \"PrintInvoice\" */ '@/views/participant/PrintInvoice.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'participant.invoice_details')\r\n }\r\n },\r\n {\r\n path: `${routePath(lang, 'participant.receipt_details')}/:invoiceId`,\r\n props: route => ({\r\n invoiceId: route.params.invoiceId,\r\n isReceipt: true\r\n }),\r\n name: routeName(lang, 'participant.receipt_details'),\r\n component: () => import(/* webpackChunkName: \"PrintInvoice\" */ '@/views/participant/PrintInvoice.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'participant.receipt_details')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'participant.add_phone_number'),\r\n name: routeName(lang, 'participant.add_phone_number'),\r\n component: () => import(/* webpackChunkName: \"Phone\" */ '@/views/participant/AddPhoneNumber.vue'),\r\n meta: {\r\n minRole: Roles.Participant\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'news_feed'), props: true,\r\n name: routeName(lang, 'news_feed'),\r\n component: () => import(/* webpackChunkName: \"NewsFeed\" */ '@/views/NewsFeed.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'news_feed')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'auctionUnderConstruction'),\r\n name: routeName(lang, 'auctionUnderConstruction'),\r\n component: () => import(/* webpackChunkName: \"AuctionUnderConstruction\" */ '@/views/AuctionUnderConstruction.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'auctionUnderConstruction')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'auctionUnauthorized'),\r\n name: routeName(lang, 'auctionUnauthorized'),\r\n component: () => import(/* webpackChunkName: \"AuctionUnauthorized\" */ '@/views/AuctionUnauthorized.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'auctionUnauthorized')\r\n }\r\n },\r\n {\r\n path: routePath(lang, 'auctionValidateUserEmail'),\r\n name: routeName(lang, 'auctionValidateUserEmail'),\r\n component: () => import(/* webpackChunkName: \"AuctionValidateUserEmail\" */ '@/views/AuctionValidateUserEmail.vue'),\r\n meta: {\r\n title: routeTitle(lang, 'auctionValidateUserEmail')\r\n }\r\n },\r\n {\r\n path: `*`,\r\n redirect: { name: routeName(lang, 'auctionPageNotFound') },\r\n meta: {\r\n title: routeTitle(lang, 'pageNotFound')\r\n }\r\n }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n path: `*`,\r\n redirect: { name: routeName(lang, 'pageNotFound') },\r\n meta: {\r\n title: routeTitle(lang, 'pageNotFound')\r\n }\r\n }\r\n ]\r\n }];\r\n};\r\n","import i18n, { supportedLocales } from '@/i18n';\r\n\r\nexport { supportedLocales };\r\n\r\nexport const routeName = (lang, name) => `${lang}.${name}`;\r\n\r\nexport function routeTitle(name) {\r\n return i18n.t(`titles.${name}`);\r\n}\r\n","export const authenticationCookieName = \"auth_token\";\r\nexport const refreshCookieName = \"refresh_token\";\r\nexport const isMobileCookieName = \"is_mobile_app\";\r\n","export default Object.freeze({\r\n userLoggingIn: 'userLoggingIn',\r\n userLoggedOff: 'userLoggedOff',\r\n authenticationNeeded: 'authenticationNeeded',\r\n insufficientPrivileges: 'insufficientPrivileges',\r\n sessionExpired: 'sessionExpired',\r\n needReconnection: 'needReconnection',\r\n userInactive: 'userInactive'\r\n});\r\n","export function threeWayComparison(func) {\r\n return (a, b) => {\r\n const aValue = func(a),\r\n bValue = func(b);\r\n if (aValue < bValue) {\r\n return -1;\r\n } else if (aValue > bValue) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n };\r\n}\r\nexport function threeWayStringComparison(func) {\r\n return (a, b) => {\r\n const aValue = func(a),\r\n bValue = func(b);\r\n if (aValue && (bValue === null || bValue === undefined)) {\r\n return -1;\r\n } else if ((aValue === null || aValue === undefined) && bValue) {\r\n return 1;\r\n } else if ((aValue === null || aValue === undefined) && (bValue === null || bValue === undefined)) {\r\n return 0;\r\n }\r\n\r\n // Permet de transformer les caractères accentués en caractères non accentués lors du tri\r\n const nomalizedAValue = aValue.normalize(\"NFD\").replace(/\\p{Diacritic}/gu, \"\").toLowerCase();\r\n const nomalizedBValue = bValue.normalize(\"NFD\").replace(/\\p{Diacritic}/gu, \"\").toLowerCase();\r\n\r\n if (nomalizedAValue < nomalizedBValue) {\r\n return -1;\r\n } else if (nomalizedAValue > nomalizedBValue) {\r\n return 1;\r\n } else {\r\n return 0;\r\n }\r\n };\r\n}\r\n\r\nexport function reversed(func) {\r\n return (a, b) => -func(a, b);\r\n}\r\n","import VuePhoneNumberInput from 'vue-phone-number-input';\r\nimport { CANADA_CODE } from '@/constants.js';\r\n\r\nexport function formatPhoneNumber(phoneNumber, countryCode = CANADA_CODE) {\r\n const phoneNumberFormatted = VuePhoneNumberInput.methods.getParsePhoneNumberFromString({ phoneNumber, countryCode });\r\n\r\n if ('formatNational' in phoneNumberFormatted) {\r\n return phoneNumberFormatted.formatNational.replace(/[()]/g, '');\r\n }\r\n\r\n return '';\r\n}\r\n\r\nexport function rawPhoneNumber(phoneNumber, countryCode = CANADA_CODE) {\r\n return VuePhoneNumberInput.methods.getParsePhoneNumberFromString({ phoneNumber, countryCode }).nationalNumber;\r\n}\r\n\r\nexport function validatePhoneNumber(phoneNumber, countryCode = CANADA_CODE) {\r\n return VuePhoneNumberInput.methods.getParsePhoneNumberFromString({ phoneNumber, countryCode }).isValid;\r\n}\r\n","import { HubConnectionBuilder, LogLevel } from '@microsoft/signalr';\r\nimport store from '@/store';\r\nimport { ApplicationInsights } from '@microsoft/applicationinsights-web';\r\n\r\nexport default {\r\n install(Vue) {\r\n const publicHub = new Vue();\r\n Vue.prototype.$publicHub = publicHub;\r\n\r\n function emit(eventName) {\r\n return (event, sequenceNumber) => {\r\n if (process.env.NODE_ENV === \"development\") {\r\n /* eslint-disable-next-line no-console */\r\n console.info('publicHub:', eventName, event, sequenceNumber);\r\n }\r\n publicHub.$emit(eventName, event);\r\n publicHub.$emit('sequenceIncrease', sequenceNumber);\r\n };\r\n }\r\n\r\n let connection = null,\r\n startedPromise = null,\r\n manuallyClosed = false,\r\n unwantedDisconnection = false,\r\n started = false;\r\n\r\n Vue.prototype.startPublicSignalR = () => {\r\n if (!started) {\r\n started = true;\r\n\r\n const appInsights = new ApplicationInsights({\r\n config: {\r\n connectionString: store.state.app.appSettings.appInsightsConnectionString\r\n }\r\n });\r\n appInsights.loadAppInsights();\r\n\r\n connection = new HubConnectionBuilder()\r\n .withUrl(store.state.app.appSettings.signalRUrl)\r\n .withAutomaticReconnect([0, 2000, 10000, 30000, 60000])\r\n .configureLogging(LogLevel.Warning)\r\n .build();\r\n\r\n connection.on(\"onAuctionUpdated\", emit('auction-updated')); \r\n connection.on(\"onAuctionRulesUpdated\", emit('auction-rules-updated'));\r\n connection.on(\"onAuctionVisibilityChanged\", emit('auction-visibility-changed'));\r\n connection.on(\"onNewHighestBid\", emit('new-highest-bid'));\r\n connection.on(\"onBidCanceled\", emit('bid-canceled'));\r\n connection.on(\"onDonationCanceled\", emit('donation-canceled'));\r\n connection.on(\"onPurchaseCanceled\", emit('purchase-canceled'));\r\n connection.on(\"onParticipantsStatusChanged\", emit('participants-status-changed'));\r\n connection.on(\"onUserDeleted\", emit('user-deleted'));\r\n connection.on(\"onInvoiceUpdated\", emit('invoice-updated'));\r\n connection.on(\"onInvoiceStatusUpdated\", emit('invoice-status-updated'));\r\n connection.on(\"onItemReassigned\", emit('item-reassigned'));\r\n connection.on(\"onItemsIsFeaturedChanged\", emit('items-feature-changed'));\r\n connection.on(\"onItemAvailabilityChanged\", emit('item-availability-changed'));\r\n connection.on(\"onItemsAvailabilityChanged\", emit('items-availability-changed'));\r\n connection.on(\"onItemsIsVisibleChanged\", emit('items-visible-changed'));\r\n connection.on(\"onItemsCategoryChanged\", emit('items-category-changed'));\r\n connection.on(\"onItemCategoriesListUpdatedEvent\", emit('item-categories-list-updated'));\r\n connection.on(\"onItemDeleted\", emit('item-deleted'));\r\n connection.on(\"onItemsDeleted\", emit('items-deleted'));\r\n connection.on(\"onItemsLocationChanged\", emit('items-location-changed'));\r\n connection.on(\"onItemLocationsListUpdatedEvent\", emit('item-locations-list-updated'));\r\n connection.on(\"onItemPurchase\", emit('item-purchased'));\r\n connection.on(\"onPartnersCategoryChanged\", emit('partners-category-changed'));\r\n connection.on(\"onPartnerCategoriesListUpdatedEvent\", emit('partner-categories-list-updated'));\r\n connection.on(\"onPartnerDeleted\", emit('partner-deleted'));\r\n connection.on(\"onPartnersDeleted\", emit('partners-deleted'));\r\n connection.on(\"onPartnersListUpdatedEvent\", emit(\"partners-updated\"));\r\n connection.on(\"onCategoryUpdatedEvent\", emit(\"category-updated\"));\r\n connection.on(\"onInvoicesPaymentAndStatusChanged\", emit('invoices-payment-status-changed')); \r\n connection.on(\"onInvoicesReminderPaymentChanged\", emit('invoices-reminder-payment-changed'));\r\n connection.on(\"onInvoicesStatusError\", emit('invoices-status-error'));\r\n connection.on(\"onItemAvailableQuantityChanged\", emit('item-quantity-changed'));\r\n\r\n function start() {\r\n startedPromise = connection.start()\r\n .then(() => {\r\n if (unwantedDisconnection) {\r\n publicHub.$emit('reconnected');\r\n unwantedDisconnection = false;\r\n }\r\n })\r\n .catch(err => {\r\n /* eslint-disable-next-line no-console */\r\n console.error('Failed to connect with hub', err);\r\n return new Promise((resolve, reject) => setTimeout(() => start().then(resolve).catch(reject), 5000));\r\n });\r\n return startedPromise;\r\n }\r\n\r\n connection.onreconnecting(error => {\r\n if (appInsights) {\r\n appInsights.trackEvent({\r\n name: 'SignalrEvent',\r\n properties: {\r\n errorMessage: error,\r\n reason: \"Signalr reconnecting\"\r\n }\r\n });\r\n }\r\n store.state.app.signalRConnectionFail = true;\r\n });\r\n\r\n connection.onclose(error => {\r\n if (!manuallyClosed) {\r\n unwantedDisconnection = true;\r\n if (appInsights) {\r\n appInsights.trackEvent({\r\n name: 'SignalrEvent',\r\n properties: {\r\n errorMessage: error,\r\n reason: \"Signalr disconnected\"\r\n }\r\n });\r\n } \r\n }\r\n });\r\n\r\n manuallyClosed = false;\r\n start();\r\n }\r\n };\r\n\r\n Vue.prototype.stopSignalR = () => {\r\n if (!startedPromise) {\r\n return;\r\n }\r\n\r\n manuallyClosed = true;\r\n return startedPromise\r\n .then(() => connection.stop())\r\n .then(() => startedPromise = null);\r\n };\r\n\r\n publicHub.joinAuctionGroup = (auctionId) => {\r\n if (!startedPromise) {\r\n return;\r\n }\r\n\r\n return startedPromise\r\n .then(() => connection.invoke('joinAuctionGroup', auctionId))\r\n .catch(console.error); /* eslint-disable-line no-console */\r\n };\r\n }\r\n};\r\n","import Vue from 'vue';\r\nimport axios from 'axios';\r\nimport SignUpInReasons from '@/scripts/SignUpInReasons.js';\r\nimport { routeName } from '@/router/routing.js';\r\nimport i18n from '@/i18n';\r\nimport store from '@/store';\r\nimport { AUTHENTICATION_RETURN_PAGE_STORAGE } from '@/constants.js';\r\n\r\n// Cette fonction est essentiellement un doublon de @/router/index.js pour accommoder les tests unitaires qui refusent de compiler autrement\r\nexport async function gotoAuctionLogin($router, redirect = true, reason = SignUpInReasons.authenticationNeeded, redirectPath, userEmail = null, authenticationStatus = null) {\r\n Vue.prototype.stopAuthSignalR();\r\n\r\n if (reason == SignUpInReasons.userLoggedOff || reason == SignUpInReasons.needReconnection) {\r\n //Dans le cas d'une déconnexion, on ne veux pas que VuexPersistence embarque\r\n window.localStorage.removeItem('vuex');\r\n\r\n const { data: href } = await axios.get('/api/auth/logouturl');\r\n window.location.href = href;\r\n } else {\r\n const query = { splash: false };\r\n\r\n if (redirect && redirectPath != \"\") {\r\n query.redirectUrl = redirectPath;\r\n }\r\n if (userEmail) {\r\n query.userEmail = userEmail;\r\n }\r\n\r\n if (authenticationStatus) {\r\n query.authenticationStatus = authenticationStatus;\r\n }\r\n \r\n let name;\r\n if (reason) {\r\n query.reason = reason;\r\n name = 'authentication.signupin';\r\n } else {\r\n name = 'authentication.login';\r\n }\r\n\r\n const targetPage = $router.resolve({\r\n name: routeName(i18n.locale, name),\r\n query,\r\n params: {\r\n slug: store.state.auction.auction != null ? store.state.auction.auction.slug : window.location.pathname.split('/')[2]\r\n }\r\n });\r\n\r\n if ($router.currentRoute.name &&\r\n $router.currentRoute.name != routeName(i18n.locale, 'auctionUnderConstruction') &&\r\n $router.currentRoute.name != routeName(i18n.locale, 'auctionValidateUserEmail')) {\r\n sessionStorage.setItem(AUTHENTICATION_RETURN_PAGE_STORAGE, $router.currentRoute.path);\r\n }\r\n\r\n window.location.href = targetPage.href;\r\n }\r\n}\r\n\r\nexport async function navigateTo(next) {\r\n if (store.state.app.interceptNavigation) {\r\n await store.state.app.interceptNavigation(null, null, (to) => {\r\n // https://github.com/vuejs/vue-router/blob/e53a549f04e9e02d293d8a4c2537a046ae2381dc/src/history/base.js#L196 \r\n // next(false) -> abort navigation\r\n if (to !== false) {\r\n if (to instanceof Error) {\r\n throw to;\r\n } else if (\r\n typeof to === 'string' ||\r\n (typeof to === 'object' && typeof to.path === 'string')\r\n ) {\r\n // next('/') or next({ path: '/' }) -> redirect\r\n if (typeof to === 'object' && to.replace) {\r\n window.location.replace(to.path);\r\n } else {\r\n window.location.href = to.path || to;\r\n }\r\n } else {\r\n // confirm transition and pass on the value\r\n next(to);\r\n }\r\n }\r\n });\r\n } else {\r\n next();\r\n }\r\n}\r\n\r\nexport async function navigateToHref(href) {\r\n await navigateTo(() => { \r\n window.location.href = href;\r\n });\r\n}","export const supportedLocales = Object.freeze([\r\n 'fr-CA',\r\n 'en-CA'\r\n]);\r\n\r\nexport function clone(obj) {\r\n if (obj == null || typeof (obj) != 'object')\r\n return obj;\r\n const temp = new obj.constructor();\r\n for (const key in obj)\r\n temp[key] = clone(obj[key]);\r\n return temp;\r\n}\r\n\r\nexport function putInFormData(object, formData) {\r\n for (const key in object) {\r\n if (object[key] !== null && object[key] !== undefined) {\r\n if (typeof (object[key]) == \"object\") {\r\n formData.append(key, JSON.stringify(object[key]));\r\n }\r\n else {\r\n formData.append(key, object[key]);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport function absoluteURL(url, preferHttp = false) {\r\n if (url) {\r\n if (url.startsWith('https://') || url.startsWith('http://')) {\r\n return url;\r\n }\r\n\r\n return `${preferHttp ? 'http' : 'https'}://${url}`;\r\n }\r\n return '';\r\n}\r\n\r\nexport function queryStringParamValue(string, key) {\r\n // https://stackoverflow.com/questions/2090551/parse-query-string-in-javascript\r\n const query = string.substring(1);\r\n const vars = query.split('&');\r\n for (let i = 0; i < vars.length; i++) {\r\n const pair = vars[i].split('=');\r\n if (decodeURIComponent(pair[0]) == key) {\r\n return decodeURIComponent(pair[1]);\r\n }\r\n }\r\n}\r\n\r\nexport function shuffle(arr) {\r\n // https://stackoverflow.com/questions/6274339/how-can-i-shuffle-an-array\r\n let j, x, i;\r\n for (i = arr.length - 1; i > 0; i--) {\r\n j = Math.floor(Math.random() * (i + 1));\r\n x = arr[i];\r\n arr[i] = arr[j];\r\n arr[j] = x;\r\n }\r\n return arr;\r\n}\r\n\r\nexport const localeEquivalents = Object.freeze(supportedLocales.reduce((result, locale) => {\r\n result[locale.substring(0, 2)] = locale;\r\n return result;\r\n}, {}));\r\n\r\nexport const deepClone = obj => JSON.parse(JSON.stringify(obj));\r\n\r\nexport function browserLanguage() {\r\n let result;\r\n if (navigator) {\r\n if (navigator.language) {\r\n result = navigator.language;\r\n } else if (navigator.languages && navigator.languages.length) {\r\n result = navigator.languages[0];\r\n } else if (navigator.browserLanguage) {\r\n result = navigator.browserLanguage;\r\n } else {\r\n result = navigator.userLanguage;\r\n }\r\n }\r\n // Ignorer le pays pour le moment\r\n return result ? localeEquivalents[result.substring(0, 2)] : null;\r\n}\r\n\r\nexport function tryFindLanguage(locale) {\r\n for (const key in supportedLocales) {\r\n if (supportedLocales[key].substring(0, 2).toLowerCase() == locale.substring(0, 2).toLowerCase()) {\r\n return supportedLocales[key];\r\n }\r\n }\r\n return \"\";\r\n}\r\n\r\nexport function stripHtmlTags(htmlStringContent) {\r\n const div = document.createElement(\"div\");\r\n div.innerHTML = htmlStringContent;\r\n return div.innerText;\r\n}\r\n\r\n// Charge et exécute un script sans bloquer l'interface\r\nexport const loadScriptAsync = (url) => new Promise(async (resolve, reject) => {\r\n const script = document.createElement('script');\r\n script.src = url;\r\n script.async = true;\r\n script.onload = resolve;\r\n script.onerror = reject;\r\n document.head.appendChild(script);\r\n});\r\n\r\nexport const getInitials = (name) => {\r\n const split = name.split(' ');\r\n\r\n let result;\r\n\r\n switch (split.length) {\r\n case 0:\r\n result = \"\";\r\n break;\r\n case 1:\r\n result = split[0].charAt(0);\r\n break;\r\n default:\r\n result = split[0].charAt(0) + split[split.length - 1].charAt(0);\r\n break;\r\n }\r\n\r\n return result.toUpperCase();\r\n};\r\n","function capitalize(string) {\r\n return string.charAt(0).toUpperCase() + string.slice(1);\r\n}\r\n\r\nexport function addAwaitable(fieldName, initialValue = null) {\r\n this[fieldName] = initialValue;\r\n const promiseName = `${fieldName}Promise`,\r\n predicateName = `${fieldName}Retrieved`;\r\n this[`get${capitalize(fieldName)}Started`] = false;\r\n this[predicateName] = false;\r\n this[promiseName] = new Promise((resolve, reject) => {\r\n this[`_${fieldName}PromiseResolved`] = () => resolve(this[fieldName]);\r\n this[`_${fieldName}PromiseRejected`] = () => reject(this[fieldName]);\r\n }).finally(() => this[predicateName] = true);\r\n}\r\n","import Moment from 'moment';\r\nimport { addAwaitable } from '@/store/AwaitableStoreData.js';\r\n\r\nexport default class State {\r\n constructor() {\r\n this.serverTimeOffset = 0;\r\n this.items = {};\r\n this.itemReassignmentListeners = {}; // { [itemId]: () => {} }\r\n this.donations = {};\r\n this.featuredItems = {};\r\n this.status = AuctionStatus.ongoing; // À changer pour déclencher les computed qui en dépendent\r\n this.remainderTime = Moment.utc();\r\n this.auction = null;\r\n this.name = '';\r\n this.notifications = {}; // Indexées par id d'item\r\n this.correlationIds = {}; // Indexées par id d'item, sert à savoir quels ids sont associés à quelles mises lors de l'attente du résultat d'une mise\r\n this.bidsTimeout = {}; // Indexées par id d'item, id du timeout qui déclenchera une erreur si on obtient pas de réponse de la mise\r\n this.userMaxBids = {}; // Indexées par id d'item, montant des mises maximales de l'utilisateur en attente du résultat de la mise\r\n this.error = null;\r\n this.highestBids = [];\r\n addAwaitable.call(this, 'lastImpersonatedUsers', []);\r\n this.itemSorting = {};\r\n this.invoices = []; \r\n this.refundResponses = [];\r\n this.itemListSortMethod = {};\r\n this.itemListCategoryFilters = {};\r\n this.itemListLocationFilters = {};\r\n this.itemListPartnerFilters = {};\r\n this.itemListTypeFilters = {};\r\n this.itemListSearch = \"\";\r\n this.itemListPage = 1;\r\n this.itemListLastVisitedItem = null;\r\n this.raisedAmount = 0;\r\n this.showCategoryFilters = false;\r\n this.showLocationFilters = false;\r\n this.showPartnerFilters = false;\r\n this.showTypeFilters = false;\r\n this.paymentEvents = {};\r\n this.rules = null;\r\n }\r\n}\r\n\r\nexport const AuctionStatus = Object.freeze({\r\n pending: -1,\r\n ongoing: 0,\r\n extended: 1,\r\n over: 2,\r\n overInvoiceSent: 3\r\n});\r\n","export default {};\r\n","export function dumbAction(mutationName, actionName) {\r\n return {\r\n [actionName || mutationName]: async (context, value) => {\r\n context.commit(mutationName, value);\r\n }\r\n };\r\n}\r\n\r\nexport function dumbMutation(field) {\r\n return (state, value) => {\r\n state[field] = value;\r\n };\r\n}\r\n","import axios from 'axios';\r\nimport { dumbAction } from '@/store/util.js';\r\n\r\nexport default {\r\n ...dumbAction('addError'),\r\n ...dumbAction('addAdminError'),\r\n ...dumbAction('setModalOpen'),\r\n async getAppConfig(context) {\r\n const { data: config } = await axios.get('/configuration/appSettings.js');\r\n context.commit('setConfig', config);\r\n return config;\r\n },\r\n setSignalRSequence(context, sequenceNumber) {\r\n if (context.state.signalRSequenceNumber !== 0 && sequenceNumber - context.state.signalRSequenceNumber > 1) {\r\n /* eslint-disable-next-line no-console */\r\n console.error(`Missing signalR sequence number (gone from ${context.state.signalRSequenceNumber} to ${sequenceNumber})`);\r\n context.commit('increaseConnectionStaleSequence');\r\n }\r\n\r\n context.commit('setSignalRSequence', sequenceNumber);\r\n },\r\n signalRReconnected(context) {\r\n context.commit('increaseConnectionStaleSequence');\r\n }\r\n};\r\n","import Vue from 'vue';\r\nimport { dumbMutation } from '@/store/util.js';\r\n\r\nexport default {\r\n addError(state, error) {\r\n if (!process.env.production) {\r\n /* eslint-disable-next-line no-console */\r\n console.error('ERROR', error);\r\n }\r\n state.errors.push({ message: error.message, stack: error.stack });\r\n },\r\n addAdminError(state, error) {\r\n if (!process.env.production) {\r\n /* eslint-disable-next-line no-console */\r\n console.error('ERROR', error);\r\n }\r\n state.adminErrors.push({ message: error.message, stack: error.stack });\r\n },\r\n dismissError(state, error) {\r\n state.errors = state.errors.filter(x => x !== error);\r\n },\r\n setConfig: dumbMutation('appSettings'),\r\n setSignalRSequence: dumbMutation('signalRSequenceNumber'),\r\n increaseConnectionStaleSequence(state) {\r\n state.connectionStaleSequence += 1;\r\n },\r\n setModalOpen(state, { name, open }) {\r\n if (open) {\r\n Vue.set(state.modals, name, open);\r\n } else {\r\n Vue.delete(state.modals, name);\r\n }\r\n }\r\n};\r\n","export default class State {\r\n constructor() {\r\n this.appSettings = {\r\n appInsightsConnectionString: '',\r\n bidFunctionUrl: '',\r\n sendMessageFunctionUrl: '',\r\n viewedLotTrackingFunctionUrl: '',\r\n signalRUrl: '',\r\n authSignalRUrl: '',\r\n organizationSignalRUrl: '',\r\n newsFeedBidCount: -1,\r\n reCAPTCHAPublicKey: '',\r\n facebookId: '',\r\n stripePublicKey: '',\r\n donationButtonVisible: false,\r\n reassignLotVisible: false,\r\n stripePaymentEnabled: false,\r\n englishAvailable: false,\r\n KnowledgeBaseAvailable: false,\r\n suggestedPaymentDelayAfterClosure: 0,\r\n imageBaseUrl: '',\r\n imageBaseUrlSupplier: '',\r\n imageBaseUrlSupplierLogo: '',\r\n appUrl: '',\r\n participantPortalUrl: '',\r\n symbolicBidFunctionUrl: '',\r\n defaultBunlde: ''\r\n };\r\n // Champs utilisés pour la section \r\n this.title = '';\r\n this.canonicalPath = '';\r\n // Champs fonctionnels\r\n this.hasNetworkAccess = true; // Si la page, le navigateur et l'OS ont accès à Internet actuellement\r\n this.isPageVisible = true; // Si l'onglet est actuellement visible dans le navigateur et que la fenêtre du navigateur n'est pas minimisée\r\n this.initialLoadingFinished = false;\r\n this.loading = false;\r\n this.interceptNavigation = null; // function (to, from, next)\r\n this.errors = [];\r\n this.adminErrors = [];\r\n this.isPreview = false;\r\n this.previewColor = '';\r\n this.previewLogoUrls = {};\r\n this.previewBanners = {};\r\n this.modals = {};\r\n // Utilisé pour la détection de messages SignalR\r\n this.signalRSequenceNumber = 0;\r\n this.connectionStaleSequence = 0;\r\n this.signalRConnectionFail = false;\r\n }\r\n}\r\n","import actions from './actions.js';\r\nimport mutations from './mutations.js';\r\nimport State from './state.js';\r\nimport { LOGO_PREVIEW_STORAGE, BANNER_PREVIEW_STORAGE, COLOR_PREVIEW_STORAGE } from '@/constants.js';\r\n\r\nconst name = 'app';\r\n\r\nexport class Module {\r\n constructor() {\r\n\r\n this.namespaced = true;\r\n this.state = new State();\r\n this.actions = actions;\r\n this.mutations = mutations;\r\n\r\n this.setupPreview();\r\n }\r\n\r\n setupPreview() {\r\n const self = this;\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const isPreview = urlParams.get('isPreview');\r\n\r\n if (isPreview) {\r\n self.state.isPreview = true;\r\n\r\n self.state.previewColor = localStorage[COLOR_PREVIEW_STORAGE];\r\n self.state.previewLogoUrls = JSON.parse(localStorage[LOGO_PREVIEW_STORAGE]);\r\n self.state.previewBanners = JSON.parse(localStorage[BANNER_PREVIEW_STORAGE]);\r\n\r\n window.addEventListener('storage', (e) => {\r\n if (e.key == COLOR_PREVIEW_STORAGE) {\r\n self.state.previewColor = e.newValue;\r\n }\r\n else if (e.key == LOGO_PREVIEW_STORAGE) {\r\n self.state.previewLogoUrls = JSON.parse(e.newValue);\r\n }\r\n else if (e.key == BANNER_PREVIEW_STORAGE) {\r\n self.state.previewBanners = JSON.parse(e.newValue);\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n name,\r\n Module\r\n};\r\n","class BufferModel {\r\n constructor(id = -1) {\r\n this.id = id;\r\n this.requests = {};\r\n }\r\n\r\n add(key, options = null) {\r\n if (this.requests[key]) {\r\n this.requests[key].push(options);\r\n } else {\r\n this.requests[key] = [options];\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default class RequestBuffer {\r\n constructor(method, delay) {\r\n this.method = method;\r\n this.delay = delay;\r\n this.timeout = null;\r\n this.buffer = new BufferModel(1);\r\n }\r\n\r\n // Méthodes publiques\r\n\r\n requestOne(key, options, immediate = false) {\r\n if (immediate) {\r\n const oneTimeBuffer = new BufferModel();\r\n oneTimeBuffer.add(key, options);\r\n RequestBuffer.fireRequest(this.method, oneTimeBuffer);\r\n } else {\r\n this.buffer.add(key, options);\r\n this.startTimer();\r\n }\r\n }\r\n\r\n requestMany(keys, options, immediate = false) {\r\n if (keys.length) {\r\n if (immediate) {\r\n const oneTimeBuffer = new BufferModel();\r\n keys.forEach(key => oneTimeBuffer.add(key, options));\r\n RequestBuffer.fireRequest(this.method, oneTimeBuffer);\r\n } else {\r\n keys.forEach(key => this.buffer.add(key, options));\r\n this.startTimer();\r\n }\r\n }\r\n }\r\n\r\n // Méthodes privées\r\n\r\n startTimer() {\r\n const buffer = this.buffer;\r\n if (this.timeout === null) {\r\n this.timeout = setTimeout(async () => {\r\n this.timeout = null;\r\n this.buffer = new BufferModel(buffer.id + 1);\r\n await RequestBuffer.fireRequest(this.method, buffer);\r\n }, this.delay);\r\n }\r\n }\r\n\r\n static async fireRequest(method, buffer) {\r\n await method(buffer);\r\n }\r\n\r\n}\r\n","import axios from 'axios';\r\nimport Vue from 'vue';\r\n\r\nconst setDates = (elements) => {\r\n for (const element of elements) {\r\n element.createdOn = new Date(element.createdOn);\r\n }\r\n};\r\n\r\nexport function getItemsBidsAsync(context, itemIds) {\r\n return new Promise(async (resolve, reject) => {\r\n try {\r\n const { data: bidRequest } = await axios.post(`/api/auction/items/bids`, itemIds);\r\n\r\n for (const itemId of itemIds) {\r\n const item = context.state.items[itemId];\r\n if (item) {\r\n if (bidRequest[item.id]) {\r\n setDates(bidRequest[item.id]);\r\n Vue.set(item, 'bids', bidRequest[item.id]);\r\n }\r\n Vue.set(item, 'bidsLoaded', true);\r\n }\r\n }\r\n\r\n resolve();\r\n } catch (error) {\r\n reject(error);\r\n }\r\n });\r\n}\r\n\r\nexport function getItemsPurchasesAsync(context, itemIds) {\r\n return new Promise(async (resolve, reject) => {\r\n try {\r\n const { data: purchasesRequest } = await axios.post(`/api/auction/items/purchases`, itemIds);\r\n\r\n for (const itemId of itemIds) {\r\n const item = context.state.items[itemId];\r\n if (item) {\r\n if (purchasesRequest[item.id]) {\r\n setDates(purchasesRequest[item.id]);\r\n Vue.set(item, 'purchases', purchasesRequest[item.id]);\r\n }\r\n Vue.set(item, 'purchasesLoaded', true);\r\n }\r\n }\r\n\r\n resolve();\r\n } catch (error) {\r\n reject(error);\r\n }\r\n });\r\n}\r\n","import { BID_TIMEOUT } from '@/constants.js';\r\nimport { itemSortingMethods as ItemSortingMethods } from '@/GeneratedModels/ItemSortingMethods.js';\r\nimport { AuctionStatus } from '@/store/auction/state.js';\r\nimport RequestBuffer from '@/store/RequestBuffer.js';\r\nimport { dumbAction } from '@/store/util.js';\r\nimport axios from 'axios';\r\nimport { getItemsBidsAsync, getItemsPurchasesAsync } from '../../scripts/itemsUtils';\r\n\r\nlet itemBuffer = null;\r\nfunction createBuffer(context, userIsLoggedIn) {\r\n itemBuffer = new RequestBuffer(async buffer => {\r\n try {\r\n const endpoint = userIsLoggedIn ? `/api/auction/items/auth/find` : `/api/auction/items/find`;\r\n const requestedItemIds = buffer.requests;\r\n const response = (await axios.post(endpoint, Object.keys(requestedItemIds))).data;\r\n context.commit('setItems', response);\r\n response.forEach(item => {\r\n requestedItemIds[item.id].forEach(options => {\r\n if (options && typeof options.callback === 'function') {\r\n options.callback(item);\r\n }\r\n });\r\n });\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n }, 200);\r\n}\r\n\r\nexport default {\r\n async getCurrentAuction(context) {\r\n try {\r\n const slug = window.location.pathname.split('/')[2],\r\n { data: response } = await axios.get(`/api/auction/slug/${slug}`);\r\n\r\n context.commit('setCurrentAuction', response);\r\n return response;\r\n } catch (error) {\r\n if (error.response.status != 404) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n else {\r\n throw error;\r\n }\r\n }\r\n },\r\n async getCurrentAuctionByOrganization(context) {\r\n try {\r\n const { data: response } = await axios.get(`/api/organization/organization-auction`);\r\n\r\n if (response) {\r\n context.commit('setCurrentAuction', response);\r\n }\r\n\r\n return response;\r\n }\r\n catch (error) {\r\n if (error.response.status != 404) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n }\r\n },\r\n async getCurrentAdminAuctionByUser(context) {\r\n try {\r\n const { data: response } = await axios.get(`/api/user-admin-auction`);\r\n\r\n if (response) {\r\n context.commit('setCurrentAuction', response);\r\n }\r\n\r\n return response;\r\n }\r\n catch (error) {\r\n if (error.response.status != 404) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n }\r\n },\r\n async searchItems(context, { offset, maxCount, sortMethod, isReversed, searchCriteria, categoryIds, locationIds, partnerIds, typeIds, locale, userIsLoggedIn, callback, cancelToken }) {\r\n try {\r\n const params = { sortMethod, isReversed, searchCriteria, categoryIds, locationIds, partnerIds, typeIds, locale };\r\n if (offset !== undefined) {\r\n params.offset = offset;\r\n }\r\n if (maxCount !== undefined) {\r\n params.maxCount = maxCount;\r\n }\r\n const endpoint = userIsLoggedIn ? `/api/auction/items/auth/search` : `/api/auction/items/search`;\r\n const { data: { data: items, totalCount } } = await axios.post(endpoint, params, { cancelToken });\r\n context.commit('setItems', items);\r\n if (callback) {\r\n const ids = [];\r\n for (const i in items) {\r\n ids.push(items[i].id);\r\n }\r\n\r\n try {\r\n const itemIds = [];\r\n for (const i in items) {\r\n itemIds.push(items[i].id);\r\n }\r\n // On va chercher les mises et achats avec un autre appel async.\r\n getItemsBidsAsync(context, itemIds);\r\n getItemsPurchasesAsync(context, itemIds);\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n\r\n callback(ids, totalCount, offset, categoryIds);\r\n }\r\n } catch (error) {\r\n if (!axios.isCancel(error)) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n }\r\n },\r\n async searchItemNeighbors(context, { id, sortMethod, isReversed, searchCriteria, categoryIds, locationIds, partnerIds, locale, userIsLoggedIn, callback, cancelToken }) {\r\n try {\r\n\r\n const endpoint = userIsLoggedIn ? `/api/auction/items/${id}/auth/search/neighbors` : `/api/auction/items/${id}/search/neighbors`;\r\n const params = { sortMethod, isReversed, searchCriteria, categoryIds, locationIds, partnerIds, locale };\r\n const { data: { data: item, previous, next } } = await axios.post(endpoint, params, { cancelToken });\r\n context.commit('setItems', [item]);\r\n if (typeof callback === 'function') {\r\n callback(item, previous, next);\r\n }\r\n } catch (error) {\r\n if (!axios.isCancel(error)) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n }\r\n },\r\n async getItems(context, { offset, maxCount, withBids, cancelToken = null }) {\r\n const params = { sortMethod: ItemSortingMethods.SortByNumber, isReversed: false };\r\n if (offset !== undefined) {\r\n params.offset = offset;\r\n }\r\n if (maxCount !== undefined) {\r\n params.maxCount = maxCount;\r\n }\r\n if (withBids !== undefined) {\r\n params.withBids = withBids;\r\n }\r\n\r\n const { data: { data: items } } = await axios.post(`/api/auction/items/search`, params, { cancelToken });\r\n context.commit('setItems', items);\r\n },\r\n async findItemsById(context, { itemIds, userIsLoggedIn }) {\r\n if (!itemBuffer) {\r\n createBuffer(context, userIsLoggedIn);\r\n }\r\n itemBuffer.requestMany(itemIds);\r\n },\r\n searchTrackItems(context, { search, sort }) {\r\n axios.post(`/api/auction/items/trackSearchFollowedItems`, { search: search, sort: sort });\r\n },\r\n adminLotsSearched(context, { query, lotCount }) {\r\n axios.post(`/api/auction/items/trackAdminLotsSearched`, { query: query, lotCount: lotCount });\r\n },\r\n adminLotsFiltered(context, { filterType, lotCount }) {\r\n axios.post(`/api/auction/items/trackAdminLotsFiltered`, { filterType: filterType, lotCount: lotCount });\r\n },\r\n async getItem(context, { id, callback, immediate, userIsLoggedIn }) {\r\n if (!itemBuffer) {\r\n createBuffer(context, userIsLoggedIn);\r\n }\r\n itemBuffer.requestOne(id, { callback }, immediate);\r\n },\r\n async getFeaturedItems(context, { callback, getRandomItemsIfNoFeaturedItemsFound = false, numberOfNonFeaturedItems = 4 }) {\r\n try {\r\n const params = { getRandomItemsIfNoFeaturedItemsFound, numberOfNonFeaturedItems };\r\n const response = (await axios.get(`/api/auction/items/featured`, { params })).data.filter(x => !context.state.items[x.id]);\r\n context.commit('setItems', response);\r\n\r\n try {\r\n const itemIds = response.map(x => x.id);\r\n getItemsBidsAsync(context, itemIds);\r\n getItemsPurchasesAsync(context, itemIds);\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async deleteItem(context, { itemId, callback }) {\r\n try {\r\n const response = await axios.delete(`/api/auction/items/${itemId}`, { id: itemId });\r\n if (response.data) {\r\n context.commit('deleteItem', itemId);\r\n if (callback) {\r\n callback();\r\n }\r\n } else {\r\n context.commit('app/addError', { message: 'The item could not be deleted' }, { root: true });\r\n }\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async deleteItems(context, { itemIds, callback }) {\r\n try {\r\n const response = await axios.delete(`/api/auction/items/bulkDelete`, { data: { ids: itemIds } });\r\n if (response.data) {\r\n context.commit('deleteItems', itemIds);\r\n if (callback) {\r\n callback();\r\n }\r\n } else {\r\n context.commit('app/addError', { message: 'The items could not be deleted' }, { root: true });\r\n }\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async purchaseItem(context, { auctionId, userId, itemId, quantity, isUnlimited = false}) {\r\n try {\r\n const response = await axios.post(context.rootState.app.appSettings.symbolicBidFunctionUrl, {\r\n auctionId,\r\n userId,\r\n itemId,\r\n quantity\r\n });\r\n\r\n if (!isUnlimited) {\r\n const timeoutId = setTimeout(() => {\r\n context.commit('failedBidEvent', { itemId });\r\n }, BID_TIMEOUT);\r\n context.commit('storeCorrelationId', { itemId, correlationId: response.data, timeoutId });\r\n }\r\n else\r\n {\r\n context.commit('notifyUserAfterPurchase', { itemId });\r\n }\r\n } catch (e) {\r\n context.commit('failedBidEvent', { itemId });\r\n if (e.response) {\r\n switch (+e.response.status) {\r\n case 400: // quantité invalide\r\n case 410: // encan fermé\r\n case 403: // participant inactif ou avec rôle inadéquat\r\n case 401: // participant n'a pas acces\r\n // Ce n'est pas une erreur de l'application\r\n break;\r\n default:\r\n context.commit('app/addError', e, { root: true });\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n async placeBid(context, { auctionId, userId, itemId, amount, isImpersonated }) {\r\n try {\r\n const response = await axios.post(context.rootState.app.appSettings.bidFunctionUrl, {\r\n auctionId,\r\n userId,\r\n itemId,\r\n amount\r\n });\r\n\r\n const timeoutId = setTimeout(() => {\r\n context.commit('failedBidEvent', { itemId, amount });\r\n }, BID_TIMEOUT);\r\n\r\n context.commit('storeCorrelationId', { itemId, correlationId: response.data, timeoutId });\r\n\r\n if (!isImpersonated)\r\n {\r\n context.commit('storeUserMaxBid', { itemId, amount });\r\n }\r\n } catch (e) {\r\n context.commit('failedBidEvent', { itemId });\r\n if (e.response) {\r\n switch (+e.response.status) {\r\n case 410: // encan fermé\r\n case 403: // participant inactif ou avec rôle inadéquat\r\n case 401: // participant n'a pas acces\r\n // Ce n'est pas une erreur de l'application\r\n break;\r\n default:\r\n context.commit('app/addError', e, { root: true });\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n async getPartners(context, { onSuccess, always } = {}) {\r\n try {\r\n const { data: response } = await axios.get(`/api/auction/partners`);\r\n\r\n if (typeof onSuccess === 'function') {\r\n onSuccess(response);\r\n }\r\n return response;\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n } finally {\r\n if (typeof always === 'function') {\r\n always();\r\n }\r\n }\r\n },\r\n async getFeaturedPartners(context, { onSuccess, always } = {}) {\r\n try {\r\n const { data: response } = await axios.get(`/api/auction/partners/featured`);\r\n\r\n if (typeof onSuccess === 'function') {\r\n onSuccess(response);\r\n }\r\n return response;\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n } finally {\r\n if (typeof always === 'function') {\r\n always();\r\n }\r\n }\r\n },\r\n async deletePartner(context, { partnerId, callback }) {\r\n try {\r\n const response = await axios.delete(`/api/auction/partners/${partnerId}`);\r\n if (response.data) {\r\n if (callback) {\r\n callback();\r\n }\r\n } else {\r\n context.commit('app/addError', { message: 'The partner could not be deleted' }, { root: true });\r\n }\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async deletePartners(context, { partnerIds, callback }) {\r\n try {\r\n const response = await axios.delete(`/api/auction/partners/bulk`, { data: { ids: partnerIds } });\r\n if (response.data) {\r\n if (callback) {\r\n callback();\r\n }\r\n } else {\r\n context.commit('app/addError', { message: 'The partners could not be deleted' }, { root: true });\r\n }\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async deletePartnerCategory(context, { partnerCategoryId, partnerCategoryToChangeId, callback }) {\r\n try {\r\n const response = await axios.delete(`/api/auction/partners/category/${partnerCategoryId}`, { params: { partnerCategoryToChangeId } });\r\n if (response.data) {\r\n if (callback) {\r\n callback();\r\n }\r\n } else {\r\n context.commit('app/addError', { message: 'The partner category could not be deleted' }, { root: true });\r\n }\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async getPartnerCategories(context, { onSuccess } = {}) {\r\n try {\r\n const response = (await axios.get('/api/auction/partners/categories')).data;\r\n\r\n if (typeof onSuccess === 'function') {\r\n onSuccess(response);\r\n }\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async getCategoriesUserStatus(context, { onSuccess } = {}) {\r\n try {\r\n const response = (await axios.get('/api/auction/partners/getCategoriesUserStatus')).data;\r\n\r\n if (typeof onSuccess === 'function') {\r\n onSuccess(response);\r\n }\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async savePartnerCategories(context, { categories, callback }) {\r\n try {\r\n await axios.post('/api/auction/partners/categories', categories);\r\n if (typeof callback === 'function') {\r\n callback();\r\n }\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async getItemCategories(context) {\r\n try {\r\n return (await axios.get('/api/auction/items/categories')).data;\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n throw error;\r\n }\r\n },\r\n async getItemLocations(context) {\r\n try {\r\n return (await axios.get('/api/auction/items/locations')).data;\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n throw error;\r\n }\r\n },\r\n async getLastImpersonatedUsers(context) {\r\n if (!context.state.getLastImpersonatedUsersStarted) {\r\n try {\r\n context.state.getLastImpersonatedUsersStarted = true;\r\n const response = await axios.get(`/api/auction/users/${context.rootState.user.user.id}/bidAsUsers`);\r\n context.commit('setLastImpersonatedUsers', response.data);\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n } finally {\r\n context.commit('setLastImpersonatedUsersRetrieved', true);\r\n }\r\n }\r\n },\r\n async getHighestBids(context) {\r\n try {\r\n const response = await axios.get(`/api/auction/highestBids`);\r\n context.commit('setHighestBids', response.data);\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async setLastImpersonatedUser(context, userId) {\r\n const userIndex = context.state.lastImpersonatedUsers.indexOf(userId);\r\n if (userIndex >= 0) {\r\n context.state.lastImpersonatedUsers.splice(userIndex, 1);\r\n context.state.lastImpersonatedUsers.unshift(userId);\r\n } else {\r\n context.state.lastImpersonatedUsers.unshift(userId);\r\n if (context.state.lastImpersonatedUsers.length > 3) {\r\n context.state.lastImpersonatedUsers.length = 3;\r\n }\r\n }\r\n },\r\n async cancelBid(context, { correlationId, location, callback }) {\r\n try {\r\n await axios.delete(`/api/auction/bids`, { params: { correlationId: correlationId, location: location } });\r\n if (callback) {\r\n callback();\r\n }\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async placeDonation(context, { userId, amount, payNow }) {\r\n try {\r\n await axios.post(\"/api/auction/placeDonation\", {\r\n userId,\r\n amount,\r\n payNow\r\n });\r\n if (!payNow) {\r\n context.commit('successDonationEvent', { userId });\r\n }\r\n\r\n const donatedAmount = context.rootState.user.donatedAmount + amount;\r\n context.commit('user/setDonatedAmount', donatedAmount, { root: true });\r\n\r\n //Si l'encan est terminé, le montant amassé est affiché donc on le met au moins à jour pour le user courant\r\n if (context.state.status >= AuctionStatus.over) {\r\n context.dispatch('getRaisedAmount');\r\n }\r\n } catch (e) {\r\n context.commit('failedDonationEvent', { userId });\r\n\r\n if (e.response) {\r\n switch (+e.response.status) {\r\n case 410: // encan fermé\r\n case 403: // participant inactif ou avec rôle inadéquat\r\n case 401: // participant n'a pas acces\r\n // Ce n'est pas une erreur de l'application\r\n break;\r\n default:\r\n context.commit('app/addError', e, { root: true });\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n async getDonations(context, { cancelToken = null }) {\r\n const { data } = await axios.get(`/api/auction/donations`, { cancelToken });\r\n context.commit('setDonations', data);\r\n\r\n return data;\r\n },\r\n async cancelDonation(context, { correlationId, callback }) {\r\n try {\r\n await axios.delete(`/api/auction/donations/${correlationId}`);\r\n if (callback) {\r\n callback();\r\n }\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async cancelPurchase(context, { id, callback }) {\r\n try {\r\n await axios.delete(`/api/auction/purchases`, { params: { id: id} });\r\n if (callback) {\r\n callback();\r\n }\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async savePurchaseQuantity(context, { itemId, purchaseId, newQuantity, callback }) {\r\n try {\r\n const result = await axios.post(`/api/auction/purchases/update/${purchaseId}`, null, { params: { newQuantity } });\r\n\r\n if (result.data.success)\r\n {\r\n context.commit('setItemPurchaseQuantity', { itemId, purchaseId, quantity: result.data.newPurchaseQuantity });\r\n }\r\n\r\n if (callback) {\r\n callback();\r\n }\r\n\r\n return result.data;\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async itemReassigned(context, itemId) {\r\n if (!itemBuffer) {\r\n createBuffer(context, false);\r\n }\r\n itemBuffer.requestOne(itemId, {\r\n callback: (item) => {\r\n if (typeof context.state.itemReassignmentListeners[item.id] === 'function') {\r\n context.state.itemReassignmentListeners[item.id]();\r\n }\r\n }\r\n }, true);\r\n context.commit('addItemNotificationSuccess', itemId);\r\n },\r\n async getInvoices(context) {\r\n const { data } = await axios.get('/api/payment/auction/invoices');\r\n context.commit('setInvoices', data);\r\n },\r\n async getInvoiceById(context, invoiceId) {\r\n try {\r\n const response = (await axios.get(`/api/payment/invoice/${invoiceId}`)).data;\r\n context.commit('setInvoice', { invoiceId, invoice: response });\r\n context.commit('user/setInvoice', response, { root: true });\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async getPrintInvoiceById(context, invoiceId) {\r\n try {\r\n const response = (await axios.get(`/api/payment/printInvoice/${invoiceId}`)).data;\r\n context.commit('setInvoice', { invoiceId, invoice: response });\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async getRefundResponses(context) {\r\n try {\r\n const response = (await axios.get('/api/payment/auction/refundresponses')).data;\r\n context.commit('setRefundResponses', response);\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async changeVisibility(context, { visible }) {\r\n try {\r\n const response = (await axios.post(`/api/auction/visibility/${visible}`)).data;\r\n context.commit('setCurrentAuction', response);\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async getRaisedAmount(context) {\r\n try {\r\n const { data } = await axios.get('/api/auction/raisedAmount');\r\n context.commit('setRaisedAmount', data);\r\n } catch (error) {\r\n // Ne pas rediriger vers la page d'erreur\r\n if (process.env.NODE_ENV === 'development') {\r\n console.error(error); /* eslint-disable-line no-console */\r\n }\r\n }\r\n },\r\n async saveAllowStripePayment(context, { auctionId, allowStripeCheckoutPayment }) {\r\n try {\r\n await axios.post(`/api/auction/allowStripeCheckoutPayment/Save`, null, { params: { auctionId: auctionId, allowStripeCheckoutPayment: allowStripeCheckoutPayment } });\r\n context.commit('setAllowStripeCheckoutPayment', allowStripeCheckoutPayment);\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async saveTransactionFeesPlanType(context, { transactionFeesPlanType }) {\r\n try {\r\n await axios.post(`/api/auction/transactionFeesPlanType/Save`, null, { params: { transactionFeesPlanType: transactionFeesPlanType } });\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async saveCreditCardRequired(context, { creditCardRequired }) {\r\n try {\r\n await axios.post(`/api/auction/creditCardRequired/Save`, null, { params: { creditCardRequired: creditCardRequired } });\r\n context.commit('creditCardRequired', creditCardRequired);\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async getAuctionRules(context) {\r\n try {\r\n const response = (await axios.get('/api/auction/rules')).data;\r\n context.commit('auctionRulesUpdated', response);\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n itemsAvailabilityChangedEvent(context, event) {\r\n for (const data of event) {\r\n context.commit('itemAvailabilityChanged', data);\r\n }\r\n },\r\n itemsAvailableQuantityChangedEvent(context, event) {\r\n for (const data of event) {\r\n context.commit('itemAvailableQuantityChanged', data);\r\n }\r\n },\r\n itemsIsVisibleChangedEvent(context, event) {\r\n for (const data of event) {\r\n context.commit('itemIsVisibleChanged', data);\r\n }\r\n },\r\n itemsCategoryChangedEvent(context, event) {\r\n for (const data of event) {\r\n context.commit('itemCategoryChanged', data);\r\n }\r\n },\r\n itemsLocationChangedEvent(context, event) {\r\n for (const data of event) {\r\n context.commit('itemLocationChanged', data);\r\n }\r\n },\r\n invoicesPaymentStatusChanged(context, event) {\r\n for (const data of event) {\r\n context.commit('invoicePaymentStatusChanged', data);\r\n }\r\n },\r\n invoicesReminderPaymentChanged(context, event) {\r\n for (const data of event) {\r\n context.commit('invoiceReminderPaymentChanged', data);\r\n }\r\n },\r\n invoicesStatusError(context, event) {\r\n for (const data of event) {\r\n context.commit('invoiceStatusError', data);\r\n }\r\n },\r\n async findItemByIds(context, { itemIds }) {\r\n const { data: response } = await axios.post('/api/auction/items/find', itemIds);\r\n\r\n context.commit('setItems', response);\r\n },\r\n invoiceStatusUpdatedEvent(context, data) {\r\n context.commit('invoiceStatusUpdatedEvent', data);\r\n context.commit('user/setInvoiceStatus', data, { root: true });\r\n },\r\n ...dumbAction('setShowCategoryFilters'),\r\n ...dumbAction('setShowLocationFilters'),\r\n ...dumbAction('setShowPartnerFilters'),\r\n ...dumbAction('setShowTypeFilters'),\r\n itemDeletedEvent(context, itemId) {\r\n context.commit('deleteItem', itemId);\r\n },\r\n itemsDeletedEvent(context, itemIds) {\r\n context.commit('deleteItems', itemIds);\r\n },\r\n ...dumbAction('setLastImpersonatedUsers'),\r\n ...dumbAction('participantsStatusChanged'),\r\n userDeleted(context, userId) {\r\n context.commit('participantsStatusChanged', { userIds: [userId], status: false });\r\n },\r\n ...dumbAction('auctionUpdated'),\r\n ...dumbAction('endDateUpdated'),\r\n ...dumbAction('clearNotification'),\r\n ...dumbAction('outbidBidEvent'),\r\n ...dumbAction('highestBidEvent'),\r\n ...dumbAction('itemPurchasedEvent'),\r\n ...dumbAction('authItemPurchaseEvent'),\r\n ...dumbAction('itemInvalidTypeForPurchaseEvent'),\r\n ...dumbAction('itemInvalidQuantityEvent'),\r\n ...dumbAction('itemUnavailableForBidsEvent'),\r\n ...dumbAction('itemUnavailableForPurchaseEvent'),\r\n ...dumbAction('authHighestBidEvent'),\r\n ...dumbAction('equalBidEvent'),\r\n ...dumbAction('bidCanceledEvent'),\r\n ...dumbAction('donationCanceledEvent'),\r\n ...dumbAction('purchaseCanceledEvent'),\r\n ...dumbAction('donationPayNowEvent'),\r\n ...dumbAction('itemAvailabilityChanged'),\r\n ...dumbAction('itemAvailableQuantityChanged'),\r\n ...dumbAction('itemsIsVisibleChanged'),\r\n ...dumbAction('auctionVisibilityChanged'),\r\n ...dumbAction('erroneousItemTypeForBidEvent'),\r\n ...dumbAction('erroneousAmountForBidEvent'),\r\n ...dumbAction('auctionPaymentSuccess'),\r\n ...dumbAction('auctionPaymentFailure'),\r\n ...dumbAction('auctionPaymentEvent'),\r\n ...dumbAction('itemsIsFeatureChangedEvent'),\r\n ...dumbAction('auctionRulesUpdated')\r\n};\r\n","import Vue from 'vue';\r\nimport Item from '@/classes/Item.js';\r\nimport { dumbMutation } from '@/store/util.js';\r\nimport { itemTypeEnum as ItemTypeEnum } from '@/GeneratedModels/ItemTypeEnum.js';\r\nimport { invoiceStatusEnum as InvoiceStatusEnum } from '@/GeneratedModels/InvoiceStatusEnum.js';\r\n\r\nexport const NotificationMessage = Object.freeze({\r\n HIGHEST_BID: 'highestBid',\r\n EQUAL_BID: 'equalBid',\r\n HIGHEST_SYMBOLIC_BID: 'highestSymbolicBid',\r\n EQUAL_SYMBOLIC_BID: 'equalSymbolicBid',\r\n OUTBID: 'outbid',\r\n ERROR: 'error',\r\n SUCCESS: 'success',\r\n UNAVAILABLE_FOR_BID: 'itemUnavailableForBids',\r\n UNAVAILABLE_FOR_SYMBOLIC_BID: 'itemUnavailableForSymbolicBid',\r\n INVALID_QUANTITY: 'itemInvalidQuantity'\r\n});\r\n\r\nexport const NotificationType = Object.freeze({\r\n HIGHEST: 'highest',\r\n EQUAL: 'equal',\r\n OUTBID: 'outbid',\r\n ERROR: 'error',\r\n SUCCESS: 'success',\r\n UNAVAILABLE: 'itemUnavailableForBids',\r\n INVALID_QUANTITY : 'itemInvalidQuantity'\r\n});\r\n\r\nfunction handleFeaturedItem(state, item) {\r\n if (item.featured) {\r\n Vue.set(state.featuredItems, item.id, item);\r\n } else {\r\n Vue.delete(state.featuredItems, item.id);\r\n }\r\n}\r\n\r\nexport default {\r\n setCurrentAuction: dumbMutation('auction'),\r\n setAllowStripeCheckoutPayment: dumbMutation('allowStripeCheckoutPayment'),\r\n setItems(state, values) {\r\n // Indexer les items pour simplifier l'accès\r\n if (!state.items) {\r\n Vue.set(state, 'items', {});\r\n }\r\n for (const item of values) {\r\n if (item.deletedOn == null) {\r\n const itemInstance = new Item(item, this.state.app.connectionStaleSequence);\r\n Vue.set(state.items, item.id, itemInstance);\r\n\r\n if (item.removedOn == null) {\r\n handleFeaturedItem(state, itemInstance);\r\n }\r\n }\r\n }\r\n },\r\n addItem(state, newItem) {\r\n const itemInstance = new Item(newItem, this.state.app.connectionStaleSequence);\r\n\r\n Vue.set(state.items, newItem.id, itemInstance);\r\n handleFeaturedItem(state, itemInstance);\r\n },\r\n updateItem(state, newItem) {\r\n const itemInstance = new Item(newItem, this.state.app.connectionStaleSequence);\r\n Vue.set(state.items, newItem.id, itemInstance);\r\n handleFeaturedItem(state, itemInstance);\r\n },\r\n deleteItem(state, itemId) {\r\n Vue.delete(state.items, itemId);\r\n Vue.delete(state.featuredItems, itemId);\r\n },\r\n deleteItems(state, itemIds) {\r\n for (const itemId of itemIds) {\r\n Vue.delete(state.items, itemId);\r\n Vue.delete(state.featuredItems, itemId);\r\n }\r\n },\r\n participantsStatusChanged(state, event) {\r\n if (!event.status) {\r\n for (const itemId in state.items) {\r\n const item = state.items[itemId];\r\n if (item.bids) {\r\n Vue.set(item, 'bids', item.bids.filter(x => !event.userIds.includes(x.userId)));\r\n }\r\n }\r\n for (const donationId in state.donations) {\r\n const donation = state.donations[donationId];\r\n if (event.userIds.includes(donation.userId)) {\r\n Vue.delete(state.donations, donation.id);\r\n }\r\n }\r\n }\r\n },\r\n highestBidEvent(state, event) {\r\n event.createdOn = new Date(event.createdOn);\r\n const item = state.items[event.itemId];\r\n if (item && item.bids) {\r\n item.modifiedOn = new Date();\r\n item.bids.unshift(event);\r\n }\r\n\r\n state.highestBids.unshift(event);\r\n // this est le store\r\n if (state.highestBids.length > this.state.app.appSettings.newsFeedBidCount) {\r\n state.highestBids.splice(this.state.app.appSettings.newsFeedBidCount, state.highestBids.length - this.state.app.appSettings.newsFeedBidCount);\r\n }\r\n\r\n if (typeof state.itemReassignmentListeners[event.itemId] === 'function') {\r\n state.itemReassignmentListeners[event.itemId]();\r\n }\r\n },\r\n authHighestBidEvent(state, event) {\r\n event.createdOn = new Date(event.createdOn);\r\n const item = state.items[event.itemId]; \r\n if (item && state.correlationIds[item.id] && state.correlationIds[item.id] === event.correlationId) {\r\n Vue.set(state.notifications, event.itemId, {\r\n type: NotificationType.HIGHEST,\r\n message: NotificationMessage.HIGHEST_BID\r\n });\r\n\r\n clearTimeout(state.bidsTimeout[item.id]);\r\n delete state.bidsTimeout[item.id];\r\n\r\n const nextMaxBid = state.userMaxBids[item.id];\r\n if (nextMaxBid) {\r\n item.maximalBidInfo = {\r\n userHasMaximalBid: true,\r\n userLastMaximalBidAmount: nextMaxBid\r\n };\r\n }\r\n }\r\n },\r\n equalBidEvent(state, event) {\r\n const item = state.items[event.itemId];\r\n if (item && state.correlationIds[item.id] && state.correlationIds[item.id] === event.correlationId) {\r\n\r\n if (item.type === ItemTypeEnum.Symbolic) {\r\n Vue.set(state.notifications, event.itemId, {\r\n type: NotificationType.EQUAL,\r\n message: NotificationMessage.EQUAL_SYMBOLIC_BID\r\n });\r\n }\r\n else {\r\n Vue.set(state.notifications, event.itemId, {\r\n type: NotificationType.EQUAL,\r\n message: NotificationMessage.EQUAL_BID\r\n });\r\n }\r\n\r\n clearTimeout(state.bidsTimeout[item.id]);\r\n delete state.bidsTimeout[item.id];\r\n }\r\n },\r\n outbidBidEvent(state, event) {\r\n const item = state.items[event.itemId];\r\n if (item && state.correlationIds[item.id] && state.correlationIds[item.id] === event.correlationId) {\r\n Vue.set(state.notifications, event.itemId, {\r\n type: NotificationType.OUTBID,\r\n message: NotificationMessage.OUTBID\r\n });\r\n\r\n clearTimeout(state.bidsTimeout[item.id]);\r\n delete state.bidsTimeout[item.id];\r\n }\r\n },\r\n failedBidEvent(state, { itemId, correlationId }) {\r\n const item = state.items[itemId];\r\n\r\n if (item) {\r\n Vue.set(state.notifications, itemId, {\r\n type: NotificationType.ERROR,\r\n message: NotificationMessage.ERROR\r\n });\r\n\r\n if (!correlationId || state.correlationIds[itemId] === correlationId) {\r\n clearTimeout(state.bidsTimeout[item.id]);\r\n delete state.bidsTimeout[item.id];\r\n }\r\n }\r\n },\r\n itemPurchasedEvent(state, event) {\r\n event.createdOn = new Date(event.createdOn);\r\n const item = state.items[event.itemId];\r\n if (item && item.purchases) {\r\n item.modifiedOn = new Date();\r\n item.purchases.unshift(event);\r\n item.availableQuantity -= event.quantity;\r\n }\r\n },\r\n authItemPurchaseEvent(state, event) { \r\n const item = state.items[event.itemId];\r\n if (item && state.correlationIds[item.id] && state.correlationIds[item.id] === event.identityId) {\r\n Vue.set(state.notifications, event.itemId, {\r\n type: NotificationType.HIGHEST,\r\n message: NotificationMessage.HIGHEST_SYMBOLIC_BID\r\n });\r\n\r\n clearTimeout(state.bidsTimeout[item.id]);\r\n delete state.bidsTimeout[item.id];\r\n }\r\n },\r\n itemInvalidTypeEvent(state, event) {\r\n const item = state.items[event.itemId];\r\n if (item && state.correlationIds[item.id] && state.correlationIds[item.id] === event.identityId) {\r\n Vue.set(state.notifications, event.itemId, {\r\n type: NotificationType.ERROR,\r\n message: NotificationMessage.ERROR\r\n });\r\n\r\n clearTimeout(state.bidsTimeout[item.id]);\r\n delete state.bidsTimeout[item.id];\r\n }\r\n },\r\n itemInvalidQuantityEvent(state, event) {\r\n const item = state.items[event.itemId];\r\n\r\n if (item) {\r\n Vue.set(state.notifications, item.id, {\r\n type: NotificationType.INVALID_QUANTITY,\r\n message: NotificationMessage.INVALID_QUANTITY\r\n });\r\n\r\n clearTimeout(state.bidsTimeout[item.id]);\r\n delete state.bidsTimeout[item.id];\r\n }\r\n },\r\n itemUnavailableForBidsEvent(state, event) {\r\n const item = state.items[event.itemId];\r\n\r\n if (item) {\r\n Vue.set(state.notifications, item.id, {\r\n type: NotificationType.UNAVAILABLE,\r\n message: NotificationMessage.UNAVAILABLE_FOR_BID\r\n });\r\n\r\n clearTimeout(state.bidsTimeout[item.id]);\r\n delete state.bidsTimeout[item.id];\r\n }\r\n },\r\n itemUnavailableForPurchaseEvent(state, event) {\r\n const item = state.items[event.itemId];\r\n\r\n if (item) {\r\n Vue.set(state.notifications, item.id, {\r\n type: NotificationType.UNAVAILABLE,\r\n message: NotificationMessage.UNAVAILABLE_FOR_SYMBOLIC_BID\r\n });\r\n\r\n clearTimeout(state.bidsTimeout[item.id]);\r\n delete state.bidsTimeout[item.id];\r\n }\r\n },\r\n itemAvailabilityChanged(state, event) {\r\n const item = state.items[event.itemId];\r\n if (item) {\r\n item.isAvailable = event.isAvailable;\r\n }\r\n },\r\n itemIsVisibleChanged(state, event) {\r\n const item = state.items[event.itemId];\r\n if (item) {\r\n if (!event.isVisible) {\r\n Vue.delete(state.items, event.itemId);\r\n Vue.delete(state.featuredItems, event.itemId);\r\n }\r\n }\r\n },\r\n successDonationEvent(state, { userId }) {\r\n Vue.set(state.notifications, userId, {\r\n type: NotificationType.SUCCESS,\r\n message: NotificationMessage.SUCCESS\r\n });\r\n },\r\n donationPayNowEvent(state, event) {\r\n Vue.set(state.notifications, event.userId, {\r\n type: NotificationType.SUCCESS,\r\n message: NotificationMessage.SUCCESS,\r\n invoiceId: event.invoiceId\r\n });\r\n },\r\n failedDonationEvent(state, { userId }) {\r\n Vue.set(state.notifications, userId, {\r\n type: NotificationType.ERROR,\r\n message: NotificationMessage.ERROR\r\n });\r\n },\r\n auctionPaymentEvent(state, event) {\r\n Vue.set(state.paymentEvents, event, {\r\n type: NotificationType.SUCCESS,\r\n message: NotificationMessage.SUCCESS\r\n });\r\n },\r\n auctionPaymentSuccess(state, event) {\r\n Vue.set(state.paymentEvents, event, {\r\n type: NotificationType.SUCCESS,\r\n message: NotificationMessage.SUCCESS\r\n });\r\n },\r\n auctionPaymentFailure(state, event) {\r\n Vue.set(state.paymentEvents, event, {\r\n type: NotificationType.SUCCESS,\r\n message: NotificationMessage.SUCCESS\r\n });\r\n },\r\n bidCanceledEvent(state, bidCanceledEvent) {\r\n const item = state.items[bidCanceledEvent.itemId];\r\n if (item && item.bids) {\r\n for (let i = 0; i < item.bids.length; i++) {\r\n if (item.bids[i].correlationId === bidCanceledEvent.correlationId) {\r\n const canceledBid = item.bids.splice(i, 1);\r\n item.canceledBids.push(...canceledBid);\r\n break;\r\n }\r\n }\r\n }\r\n state.highestBids = state.highestBids.filter(x => x.correlationId !== bidCanceledEvent.correlationId);\r\n },\r\n donationCanceledEvent(state, donationCanceledEvent) {\r\n Vue.delete(state.donations, donationCanceledEvent.id.value);\r\n },\r\n purchaseCanceledEvent(state, purchaseCanceledEvent) {\r\n const item = state.items[purchaseCanceledEvent.itemId];\r\n if (item && item.purchases) {\r\n for (let i = 0; i < item.purchases.length; i++) {\r\n if (item.purchases[i].id === purchaseCanceledEvent.correlationId) {\r\n const canceledPurchase = item.purchases.splice(i, 1);\r\n item.canceledPurchases.push(...canceledPurchase);\r\n item.availableQuantity = purchaseCanceledEvent.updatedQuantity;\r\n break;\r\n }\r\n }\r\n }\r\n },\r\n auctionUpdated(state, auction) {\r\n Vue.set(state, 'auction', auction);\r\n },\r\n auctionVisibilityChanged(state, data) {\r\n Vue.set(state.auction, 'visible', data.auctionVisibility);\r\n },\r\n clearNotification(state, itemId) {\r\n Vue.delete(state.notifications, itemId);\r\n },\r\n storeCorrelationId(state, { itemId, correlationId, timeoutId }) {\r\n Vue.set(state.correlationIds, itemId, correlationId);\r\n Vue.set(state.bidsTimeout, itemId, timeoutId);\r\n },\r\n storeUserMaxBid(state, { itemId, amount })\r\n {\r\n Vue.set(state.userMaxBids, itemId, amount);\r\n },\r\n setError: dumbMutation('error'),\r\n setLastImpersonatedUsers: dumbMutation('lastImpersonatedUsers'),\r\n setLastImpersonatedUsersRetrieved(state, success) {\r\n if (success) {\r\n state._lastImpersonatedUsersPromiseResolved();\r\n } else {\r\n state._lastImpersonatedUsersPromiseRejected();\r\n }\r\n },\r\n setHighestBids: dumbMutation('highestBids'),\r\n setDonations(state, values) {\r\n if (!state.donations) {\r\n Vue.set(state, 'donations', {});\r\n }\r\n for (const i in values) {\r\n const donation = values[i];\r\n Vue.set(state.donations, donation.id, donation);\r\n }\r\n },\r\n addItemNotificationSuccess(state, itemId) {\r\n Vue.set(state.notifications, itemId, {\r\n type: NotificationType.SUCCESS,\r\n message: NotificationMessage.SUCCESS\r\n });\r\n },\r\n setInvoices(state, invoices) {\r\n state.invoices = invoices;\r\n },\r\n setInvoice(state, event) {\r\n let index = state.invoices.findIndex(i => i.id === event.invoiceId);\r\n if (index == -1) {\r\n index = state.invoices.length;\r\n }\r\n\r\n Vue.set(state.invoices, index, event.invoice);\r\n },\r\n setRefundResponses(state, refundResponses) {\r\n state.refundResponses = refundResponses;\r\n },\r\n setItemPurchaseQuantity(state, { itemId, purchaseId, quantity }) {\r\n const item = state.items[itemId];\r\n if (item && item.purchases) {\r\n const purchase = item.purchases.find(x => x.id === purchaseId);\r\n if (purchase) {\r\n purchase.quantity = quantity;\r\n purchase.total = quantity * purchase.price;\r\n }\r\n }\r\n },\r\n setShowCategoryFilters: dumbMutation('showCategoryFilters'),\r\n setShowLocationFilters: dumbMutation('showLocationFilters'),\r\n setShowPartnerFilters: dumbMutation('showPartnerFilters'),\r\n setShowTypeFilters: dumbMutation('showTypeFilters'),\r\n setRaisedAmount(state, { amount, serverTime }) {\r\n state.raisedAmount = amount;\r\n this.commit('auction/updateServerTimeOffset', serverTime);\r\n },\r\n updateServerTimeOffset(state, serverTime) {\r\n if (serverTime !== null && serverTime !== undefined) {\r\n state.serverTimeOffset = new Date() - new Date(serverTime);\r\n if (process.env.NODE_ENV === 'development') {\r\n console.debug('serverTimeOffset', state.serverTimeOffset); // eslint-disable-line no-console\r\n }\r\n }\r\n },\r\n erroneousItemTypeForBidEvent(state, event) {\r\n const item = state.items[event.itemId];\r\n if (item && state.correlationIds[item.id] && state.correlationIds[item.id] === event.correlationId) {\r\n Vue.set(state.notifications, event.itemId, {\r\n type: NotificationType.ERROR,\r\n message: NotificationMessage.ERROR\r\n });\r\n\r\n clearTimeout(state.bidsTimeout[item.id]);\r\n delete state.bidsTimeout[item.id];\r\n }\r\n },\r\n erroneousAmountForBidEvent(state, event) {\r\n const item = state.items[event.itemId];\r\n if (item && state.correlationIds[item.id] && state.correlationIds[item.id] === event.correlationId) {\r\n Vue.set(state.notifications, event.itemId, {\r\n type: NotificationType.ERROR,\r\n message: NotificationMessage.ERROR\r\n });\r\n\r\n clearTimeout(state.bidsTimeout[item.id]);\r\n delete state.bidsTimeout[item.id];\r\n }\r\n },\r\n itemsIsFeatureChangedEvent(state, event) {\r\n for (const item of event) {\r\n if (item.featured) {\r\n Vue.set(state.featuredItems, item.id, item);\r\n } else {\r\n Vue.delete(state.featuredItems, item.id);\r\n }\r\n }\r\n },\r\n itemCategoryChanged(state, event) {\r\n const item = state.items[event.itemId];\r\n if (item) {\r\n item.category = event.itemClassification;\r\n }\r\n },\r\n itemLocationChanged(state, event) {\r\n const item = state.items[event.itemId];\r\n if (item) {\r\n item.location = event.itemClassification;\r\n }\r\n },\r\n invoicePaymentStatusChanged(state, event) {\r\n const invoice = state.invoices.find(x => x.id == event.invoiceId);\r\n if (invoice) {\r\n invoice.status = InvoiceStatusEnum.Paid;\r\n invoice.payment.push(event);\r\n }\r\n },\r\n invoiceReminderPaymentChanged(state, event) {\r\n const invoice = state.invoices.find(x => x.id == event);\r\n if (invoice) {\r\n invoice.reminderPaymentMailDate = Date.now();\r\n }\r\n },\r\n invoiceStatusError(state, event) {\r\n const invoice = state.invoices.find(x => x.id == event);\r\n if (invoice) {\r\n invoice.status = InvoiceStatusEnum.Error;\r\n }\r\n },\r\n invoiceStatusUpdatedEvent(state, event) {\r\n const invoice = state.invoices.find(x => x.id === event.invoiceId);\r\n if (invoice) {\r\n Vue.set(invoice, 'status', event.invoiceStatus);\r\n }\r\n },\r\n auctionRulesUpdated(state, rules) {\r\n state.rules = rules;\r\n },\r\n itemAvailableQuantityChanged(state, event) {\r\n const item = state.items[event.itemId];\r\n if (item) {\r\n item.isUnlimited = event.isUnlimited;\r\n item.availableQuantity = event.availableQuantity;\r\n }\r\n },\r\n notifyUserAfterPurchase(state, event)\r\n {\r\n Vue.set(state.notifications, event.itemId, {\r\n type: NotificationType.HIGHEST,\r\n message: NotificationMessage.HIGHEST_SYMBOLIC_BID\r\n });\r\n }\r\n};\r\n","export default {\r\n isItemStale(state, getters, rootState) {\r\n return (id) => {\r\n const item = state.items[id];\r\n\r\n return item && rootState.app.connectionStaleSequence != item.staleSequence;\r\n };\r\n }\r\n};\r\n","import actions from './actions.js';\r\nimport mutations from './mutations.js';\r\nimport getters from './getters.js';\r\nimport State from './state.js';\r\n\r\nconst name = 'auction';\r\n\r\nexport class Module {\r\n constructor() {\r\n {\r\n this.namespaced = true;\r\n this.state = new State();\r\n this.actions = actions;\r\n this.mutations = mutations;\r\n this.getters = getters;\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n name,\r\n Module\r\n};\r\n","import { addAwaitable } from '@/store/AwaitableStoreData.js';\r\n\r\nexport default class State {\r\n constructor() {\r\n this.user = null;\r\n this.userFollowedItems = [];\r\n addAwaitable.call(this, 'participants', {});\r\n this.connectionId = null;\r\n this.invoices = [];\r\n this.donatedAmount = 0;\r\n this.openedInvoices = [];\r\n this.hasParticipation = false;\r\n this.showModifyPhoneNumberToastSuccess = false;\r\n this.showAddPhoneNumberToastSuccess = false;\r\n this.viewedModals = [];\r\n this.paymentInfo = null;\r\n this.allowedCookieCategories = [];\r\n }\r\n}\r\n\r\nexport const transientFields = {};\r\n","import axios from 'axios';\r\nimport State from '@/store/user/state.js';\r\nimport { dumbAction } from '@/store/util.js';\r\nimport i18n from '@/i18n';\r\n\r\nexport default {\r\n async getCurrentUser(context) {\r\n let response = null;\r\n\r\n // En cas d'échec (401), redirection automatique au login via un intercepteur\r\n\r\n if (context.rootState.auction.auction != null) {\r\n response = (await axios.get(`/api/user/auction`)).data;\r\n } else {\r\n const slug = window.location.pathname.split('/')[2];\r\n\r\n if (slug != i18n.t('routes.signup.base') &&\r\n slug != i18n.t('routes.organization.base') &&\r\n slug != i18n.t('routes.termsOfUse') &&\r\n slug != i18n.t('routes.privacyPolicy') &&\r\n slug != i18n.t('routes.itemsCatalogueAuction') &&\r\n slug != i18n.t('routes.itemsCatalogue')) {\r\n response = (await axios.get(`/api/user/${slug}`)).data;\r\n } else if (context.rootState.organization.organization && context.rootState.organization.organization.id) {\r\n response = (await axios.get(`/api/user/organization`)).data;\r\n } else {\r\n response = (await axios.get(`/api/user`)).data;\r\n }\r\n\r\n if (!response) {\r\n throw null;\r\n }\r\n }\r\n\r\n context.commit('setCurrentUser', response);\r\n\r\n return response;\r\n },\r\n async reset(context, callback) {\r\n context.state = new State();\r\n callback();\r\n },\r\n async getParticipants(context) {\r\n if (!context.state.getParticipantsStarted) {\r\n try {\r\n context.state.getParticipantsStarted = true;\r\n const response = await axios.get(`/api/auction/users/assistant/participants`, { params: { includeInactive: false } });\r\n context.commit('setParticipants', response.data);\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n } finally {\r\n context.commit('setParticipantsRetrieved', true);\r\n }\r\n }\r\n },\r\n async getUserFollowedItems(context)\r\n {\r\n try {\r\n const { data } = await axios.get('/api/users/followed-items/find');\r\n context.commit('setUserFollowedItems', data.followedItems);\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async makeUserFollowItem(context, { itemId, userId, callback }) {\r\n try {\r\n await axios.post(`/api/users/${userId}/followed-items/${itemId}`);\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n } finally {\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n },\r\n async startFollowingItem(context, { itemId, callback }) {\r\n try {\r\n await axios.post(`/api/users/followed-items/${itemId}`);\r\n context.commit('startFollowing', itemId);\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n } finally {\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n },\r\n async stopFollowingItem(context, { itemId, callback }) {\r\n try {\r\n await axios.delete(`/api/users/followed-items/${itemId}`);\r\n context.commit('stopFollowing', itemId);\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n } finally {\r\n if (callback) {\r\n callback();\r\n }\r\n }\r\n },\r\n async getUsersInvitationsList(context, { role, callback }) {\r\n try {\r\n callback((await axios.post(`/api/users/invitation/find`, null, { params: { role } })).data);\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async saveProfile(context, { profile, onSuccess, onError }) {\r\n try {\r\n const updated = (await axios.post('/api/users/profile', profile)).data;\r\n context.commit('setCurrentUser', updated);\r\n if (typeof onSuccess === 'function') {\r\n onSuccess();\r\n }\r\n } catch (error) {\r\n if (typeof onError === 'function') {\r\n onError(error.response.data);\r\n } else {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n }\r\n },\r\n async deleteInvitation(context, { invitationId, callback }) {\r\n try {\r\n const response = await axios.delete(`/api/invitation/${invitationId}`);\r\n if (response.data) {\r\n if (callback) {\r\n callback();\r\n }\r\n } else {\r\n context.commit('app/addError', { message: 'The invitation could not be deleted' }, { root: true });\r\n }\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async bulkDeleteInvitations(context, { invitationIds, callback }) {\r\n try {\r\n const { data, status } = await axios.delete('/api/invitation/bulk', { data: invitationIds });\r\n if (status === 200) {\r\n if (typeof callback === 'function') {\r\n callback(data);\r\n }\r\n } else {\r\n context.commit('app/addError', { message: 'Invitations could not be deleted' }, { root: true });\r\n }\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async setUsersStatus(context, { userIds, isActive, done }) {\r\n try {\r\n const { status } = await axios.put('/api/auction/users', userIds, { params: { isActive } });\r\n\r\n if (status === 200) {\r\n if (typeof done === 'function') {\r\n done(isActive);\r\n }\r\n } else {\r\n context.commit('app/addError', { message: 'User status could not be updated' }, { root: true });\r\n }\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async getInvoices(context) {\r\n try {\r\n const { data } = await axios.get('/api/payment/user/invoices');\r\n context.commit('setInvoices', data);\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async getDonatedAmount(context) {\r\n try {\r\n const response = (await axios.get('/api/auction/user/donatedAmount')).data;\r\n context.commit('setDonatedAmount', response);\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async ManageUserParticipations(context) {\r\n try {\r\n const { data: response } = await axios.get('/api/user/participations');\r\n context.commit('setCurrentUser', response.user);\r\n context.commit('setHasParticipation', response.hasParticipation);\r\n\r\n return response.firstConnection;\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async updateHasDiscoveredSolicitingItemDonations(context, { hasDiscoveredSolicitingItemDonations }) {\r\n try {\r\n await axios.post(`/api/user/discovered-soliciting-item-donations-toast`, { hasDiscoveredSolicitingItemDonations: hasDiscoveredSolicitingItemDonations });\r\n context.commit('setHasDiscoveredSolicitingItemDonations', hasDiscoveredSolicitingItemDonations);\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async getUserViewedModals(context) {\r\n try {\r\n const response = (await axios.get('/api/user-viewed-modal/get-auction-modals-stripe')).data;\r\n\r\n context.commit('setUserViewedModals', response);\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async upsertUserPaymentInfo(context, { fullName, email, paymentMethodId }) {\r\n try {\r\n const { data: response } = await axios.post('/api/user/upsert-payment-info', {\r\n fullName: fullName,\r\n email: email,\r\n paymentMethodId: paymentMethodId\r\n });\r\n\r\n context.commit('setUserPaymentInfo', response.paymentInfo);\r\n context.commit('setHasCardRegister', response.isCardValid);\r\n return response.isCardValid;\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async updateUserPaymentInfoWantsBearFees(context, { wantsBearFees }) {\r\n try {\r\n await axios.post('/api/user/update-payment-info-wants-bear-fees', { wantsBearFees: wantsBearFees });\r\n context.commit('setUserPaymentInfoWantsBearFees', wantsBearFees);\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async deleteUserPaymentInfo(context) {\r\n try {\r\n await axios.post('/api/user/delete-payment-info');\r\n context.commit('setUserPaymentInfo', null);\r\n context.commit('setHasCardRegister', false);\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async getUserPaymentInfo(context) {\r\n try {\r\n const { data: response } = await axios.get('/api/user/get-payment-info');\r\n context.commit('setUserPaymentInfo', response);\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n async addUserViewedAuctionModal(context, { modalType }) {\r\n try {\r\n await axios.post('/api/user-viewed-modal/add-auction-modals', null, { params: { modalType } });\r\n context.commit('updateUserViewedModals', modalType);\r\n }\r\n catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n },\r\n ...dumbAction('connectionIdUpdated'),\r\n ...dumbAction('setShowModifyPhoneNumberToastSuccess'),\r\n ...dumbAction('setShowAddPhoneNumberToastSuccess')\r\n};\r\n","import Vue from 'vue';\r\n\r\nimport { dumbMutation } from '@/store/util.js';\r\n\r\nexport default {\r\n setCurrentUser: dumbMutation('user'),\r\n setDonatedAmount: dumbMutation('donatedAmount'),\r\n setHasParticipation: dumbMutation('hasParticipation'),\r\n setShowModifyPhoneNumberToastSuccess: dumbMutation('showModifyPhoneNumberToastSuccess'),\r\n setShowAddPhoneNumberToastSuccess: dumbMutation('showAddPhoneNumberToastSuccess'),\r\n setUserViewedModals: dumbMutation('viewedModals'),\r\n setUserPaymentInfo: dumbMutation('paymentInfo'),\r\n setParticipants(state, values) {\r\n // Indexer les items pour simplifier l'accès\r\n const dict = {};\r\n for (const i in values) {\r\n const item = values[i];\r\n dict[item.id] = item;\r\n }\r\n state.participants = dict;\r\n },\r\n setParticipantsRetrieved(state, success) {\r\n if (success) {\r\n state._participantsPromiseResolved();\r\n } else {\r\n state._participantsPromiseRejected();\r\n }\r\n },\r\n setUserFollowedItems(state, followedItems) {\r\n state.userFollowedItems = followedItems;\r\n },\r\n startFollowing(state, itemId) {\r\n const followedItems = state.userFollowedItems;\r\n const index = followedItems.indexOf(itemId);\r\n\r\n if (index === -1) {\r\n followedItems.push(itemId);\r\n }\r\n\r\n state.userFollowedItems = followedItems;\r\n },\r\n stopFollowing(state, itemId) {\r\n const followedItems = state.userFollowedItems;\r\n const index = followedItems.indexOf(itemId);\r\n\r\n if (index >= 0) {\r\n followedItems.splice(index, 1);\r\n }\r\n\r\n state.userFollowedItems = followedItems;\r\n },\r\n connectionIdUpdated(state, connectionId) {\r\n state.connectionId = connectionId;\r\n },\r\n setInvoices(state, invoices) {\r\n state.invoices = invoices;\r\n },\r\n setInvoice(state, invoice) {\r\n if (state.user && state.user.id === invoice.user.id) {\r\n let index = state.invoices.findIndex(x => x.id === invoice.id);\r\n if (index == -1) {\r\n index = state.invoices.length;\r\n }\r\n\r\n Vue.set(state.invoices, index, invoice);\r\n }\r\n },\r\n setInvoiceStatus(state, { invoiceId, invoiceStatus }) {\r\n const invoice = state.invoices.find(x => x.id === invoiceId);\r\n if (invoice) {\r\n Vue.set(invoice, 'status', invoiceStatus);\r\n }\r\n },\r\n setOpenedInvoice(state, invoiceId) {\r\n const openedInvoices = state.openedInvoices;\r\n const index = openedInvoices.indexOf(invoiceId);\r\n\r\n if (index === -1) {\r\n openedInvoices.push(invoiceId);\r\n } else {\r\n openedInvoices.splice(index, 1);\r\n }\r\n\r\n state.openedInvoices = openedInvoices;\r\n },\r\n setHasDiscoveredSolicitingItemDonations(state, newValue) {\r\n state.user.hasDiscoveredSolicitingItemDonations = newValue;\r\n },\r\n updateUserViewedModals(state, newValue) {\r\n state.viewedModals.push(newValue);\r\n },\r\n setUserPaymentInfoWantsBearFees(state, newValue) {\r\n state.paymentInfo.wantsBearFees = newValue;\r\n },\r\n setHasCardRegister(state, newValue) {\r\n state.user.hasCardRegister = newValue;\r\n },\r\n setAllowedCookieCategories(state, newValue) {\r\n state.allowedCookieCategories = newValue;\r\n }\r\n};\r\n","import actions from './actions.js';\r\nimport mutations from './mutations.js';\r\nimport State from './state.js';\r\n\r\nconst name = 'user';\r\n\r\nexport class Module {\r\n constructor() {\r\n {\r\n this.namespaced = true;\r\n this.state = new State();\r\n this.actions = actions;\r\n this.mutations = mutations;\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n name,\r\n Module\r\n};\r\n","import axios from 'axios';\r\nimport { dumbAction } from '@/store/util.js';\r\n\r\nexport default {\r\n async sendMessage(context, { members, message }) {\r\n const userId = context.rootState.user.user.id,\r\n { data } = await axios.post(context.rootState.app.appSettings.sendMessageFunctionUrl, {\r\n auctionId: context.rootState.auction.auction.id,\r\n members: Object.values(members),\r\n message: { ...message, senderId: userId }\r\n });\r\n return data;\r\n },\r\n async getConversations(context, { resolve, reject } = {}) {\r\n try {\r\n const { data } = await axios.get('/api/conversations');\r\n context.commit('setConversations', data);\r\n if (typeof resolve === 'function') {\r\n resolve(data);\r\n }\r\n } catch (error) {\r\n if (typeof reject === 'function') {\r\n reject(error);\r\n } else {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n }\r\n },\r\n async loadConversation(context, identifier) {\r\n const { data } = await axios.get(`/api/conversation`, { params: { identifier } });\r\n context.commit('setConversation', data);\r\n return data;\r\n },\r\n async getAdminRecipients(context) {\r\n const { data } = await axios.get('/api/conversations/admins');\r\n\r\n context.commit('setAdminRecipients', data);\r\n },\r\n async markMessageRead(context, { conversationIdentifier, message }) {\r\n await axios.post('/api/conversations/mark-read-position', { conversationIdentifier, position: message.id });\r\n context.commit('markMessageRead', { conversationIdentifier, message });\r\n },\r\n async markMessageReadLocally(context, { conversationIdentifier, message }) {\r\n context.commit('markMessageRead', { conversationIdentifier, message });\r\n },\r\n async messageReceived(context, message) {\r\n if (message.auctionId === context.rootState.auction.auction.id) {\r\n if (!context.state.conversations[message.conversationIdentifier] && !message.isAutomated) {\r\n // Conversation n'existe pas, chargement des informations du header au store\r\n try {\r\n const { data } = await axios.get(`/api/conversation/header`, { params: { identifier: message.conversationIdentifier } });\r\n context.commit('setConversation', data);\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n }\r\n context.commit('messageReceived', message);\r\n }\r\n },\r\n async messagesReceived(context, messages) {\r\n let mergedMessages;\r\n if (Array.isArray(messages[0])) {\r\n messages.forEach(function (messageArray) { mergedMessages.push(messageArray); });\r\n } else {\r\n mergedMessages = messages;\r\n }\r\n\r\n mergedMessages.forEach(async function (message) {\r\n if (message.auctionId === context.rootState.auction.auction.id) {\r\n if (!context.state.conversations[message.conversationIdentifier] && !message.isAutomated) {\r\n // Conversation n'existe pas, chargement des informations du header au store\r\n try {\r\n const { data } = await axios.get(`/api/conversation/header`, { params: { identifier: message.conversationIdentifier } });\r\n context.commit('setConversation', data);\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n }\r\n context.commit('messageReceived', message);\r\n }\r\n });\r\n },\r\n async addMessage(context, { conversationIdentifier, message }) {\r\n if (!context.state.conversations[conversationIdentifier]) {\r\n // Conversation n'existe pas, chargement des informations du header au store\r\n try {\r\n const { data } = await axios.get(`/api/conversation/header`, { params: { identifier: conversationIdentifier } });\r\n context.commit('setConversation', data);\r\n } catch (error) {\r\n context.commit('app/addError', error, { root: true });\r\n }\r\n }\r\n context.commit('addMessage', { conversationIdentifier, message });\r\n },\r\n ...dumbAction('participantsStatusChanged'),\r\n userDeleted(context, userId) {\r\n context.commit('participantsStatusChanged', { userIds: [userId], status: false });\r\n },\r\n participantSmsOptOutChanged(context, event) {\r\n context.commit('participantSmsOptOutChanged', event);\r\n }\r\n};\r\n","import Vue from 'vue';\r\nimport { threeWayComparison } from '../../scripts/Sorting';\r\n\r\nfunction _setConversation(state, conversation) {\r\n if (conversation.lastUpdateTime) {\r\n Vue.set(conversation, 'lastUpdateTime', new Date(conversation.lastUpdateTime));\r\n }\r\n Vue.set(conversation, 'createdOn', new Date(conversation.createdOn));\r\n\r\n if (conversation.messages && conversation.messages.length) {\r\n if (conversation.readPosition) {\r\n conversation.messages.forEach(m => {\r\n Vue.set(m, 'read', conversation.readPosition >= m.id);\r\n });\r\n } else {\r\n conversation.messages.forEach(m => {\r\n Vue.set(m, 'read', false);\r\n });\r\n }\r\n conversation.messages.sort(threeWayComparison(x => x.createdOn));\r\n }\r\n\r\n Vue.set(conversation, 'members', conversation.members.reduce((map, member) => {\r\n map[member.identifier] = member;\r\n return map;\r\n }, {}));\r\n Vue.set(conversation, 'messages', conversation.messages || []);\r\n\r\n Vue.set(state.conversations, conversation.identifier, conversation);\r\n}\r\n\r\nfunction _addMessage(state, { conversationIdentifier, message }) {\r\n const conversation = state.conversations[conversationIdentifier];\r\n Vue.set(message, 'createdOn', new Date(message.createdOn));\r\n if (conversation && !conversation.messages.some(x => x.id == message.id)) {\r\n if (!conversation.lastUpdateTime || conversation.lastUpdateTime < message.createdOn) {\r\n if (!message.isAutomated) {\r\n Vue.set(conversation, 'latestMessage', message);\r\n Vue.set(conversation, 'lastUpdateTime', new Date(message.createdOn));\r\n }\r\n if (message.read) {\r\n Vue.set(conversation, 'readPosition', message.id);\r\n }\r\n }\r\n conversation.messages.push(message);\r\n conversation.messages.sort(threeWayComparison(x => x.createdOn));\r\n }\r\n state.tick += 1;\r\n}\r\n\r\nfunction _updateMessage(state, { conversationIdentifier, message }) {\r\n const conversation = state.conversations[conversationIdentifier];\r\n Vue.set(message, 'createdOn', new Date(message.createdOn));\r\n if (!message.isAutomated) {\r\n Vue.set(conversation, 'latestMessage', message);\r\n Vue.set(conversation, 'lastUpdateTime', new Date(message.createdOn));\r\n }\r\n if (message.read) {\r\n Vue.set(conversation, 'readPosition', message.id);\r\n }\r\n Vue.set(conversation.messages.find(x => x.id == message.id), \"content\", message.content);\r\n conversation.messages.sort(threeWayComparison(x => x.createdOn));\r\n state.tick += 1;\r\n}\r\n\r\nexport default {\r\n setConversations(state, conversations) {\r\n state.conversations = {};\r\n for (const i in conversations) {\r\n _setConversation(state, conversations[i]);\r\n }\r\n state.conversationsLoaded = true;\r\n },\r\n setConversation: _setConversation,\r\n messageReceived(state, message) {\r\n if (state.conversations[message.conversationIdentifier] && state.conversations[message.conversationIdentifier].messages.some(x => x.id == message.id)) {\r\n if (message.content !== state.conversations[message.conversationIdentifier].messages.find(x => x.id == message.id).content) {\r\n _updateMessage(state, { conversationIdentifier: message.conversationIdentifier, message });\r\n }\r\n }\r\n _addMessage(state, { conversationIdentifier: message.conversationIdentifier, message });\r\n },\r\n addMessage: _addMessage,\r\n setAdminRecipients(state, admins) {\r\n for (const i in admins) {\r\n const currentAdmin = admins[i];\r\n state.adminRecipients[currentAdmin.identifier] = currentAdmin;\r\n }\r\n },\r\n async markMessageRead(state, { conversationIdentifier, message }) {\r\n const conversation = state.conversations[conversationIdentifier];\r\n if (conversation) {\r\n conversation.readPosition = message.id;\r\n const storeMessage = conversation.messages[message.id];\r\n if (storeMessage) {\r\n Vue.set(storeMessage, 'read', true);\r\n }\r\n }\r\n },\r\n participantStatusChanged(state, event) {\r\n for (const userId in event.userIds) {\r\n for (const identifier in state.conversations) {\r\n const conversation = state.conversations[identifier];\r\n\r\n if (Object.values(conversation.members).some(x => x.identifier == userId)) {\r\n Vue.set(state.conversations[identifier].members[userId], 'isDeleted', !event.status);\r\n }\r\n }\r\n }\r\n },\r\n participantSmsOptOutChanged(state, event) {\r\n for (const identifier in state.conversations) {\r\n const conversation = state.conversations[identifier];\r\n\r\n if (Object.values(conversation.members).some(x => x.identifier == event.UserId.Value)) {\r\n Vue.set(state.conversations[identifier].members[event.UserId.Value], 'smsOptOut', event.SmsOptOut);\r\n }\r\n }\r\n }\r\n};\r\n","export default class State {\r\n constructor() {\r\n this.conversationsLoaded = false;\r\n this.conversations = {};\r\n this.adminRecipients = {};\r\n this.tick = 0;\r\n }\r\n}\r\n\r\nexport const transientFields = {};\r\n","import actions from './actions.js';\r\nimport mutations from './mutations.js';\r\nimport State from './state.js';\r\n\r\nconst name = 'chatroom';\r\n\r\nexport class Module {\r\n constructor() {\r\n {\r\n this.namespaced = true;\r\n this.state = new State();\r\n this.actions = actions;\r\n this.mutations = mutations;\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n name,\r\n Module\r\n};\r\n","import axios from 'axios';\r\nimport { dumbAction } from '@/store/util.js';\r\n\r\nexport default {\r\n async getCurrentOrganization(context) {\r\n if (!context.state.currentOrganization) {\r\n const { data: response } = await axios.get(`/api/organization`);\r\n context.commit('setCurrentOrganization', response);\r\n }\r\n return context.state.currentOrganization;\r\n },\r\n async getCurrentOrganizationByUser(context, organizationId) {\r\n if (!context.state.currentOrganization) {\r\n const { data: response } = await axios.get(`/api/user-organization`, { params: { organizationId: organizationId } });\r\n\r\n context.commit('setCurrentOrganization', response);\r\n return response;\r\n }\r\n return context.state.currentOrganization;\r\n },\r\n async saveUserLastVisitedOrganization(context) {\r\n await axios.put('/api/user-organization');\r\n },\r\n async loadOrganizationAuctions(context) {\r\n const { data: response } = await axios.get(`/api/auctions`);\r\n context.commit('setOrganizationAuctions', response);\r\n\r\n return response;\r\n },\r\n ...dumbAction('organizationUpdated'),\r\n ...dumbAction('updateCustomPageTitle'),\r\n ...dumbAction('updateCustomPageTitleCanGoBack'),\r\n ...dumbAction('setAuctionToDuplicate'),\r\n ...dumbAction('setNbOfAuction')\r\n};\r\n","import { dumbMutation } from '@/store/util.js';\r\n\r\n\r\n\r\nexport default {\r\n setCurrentOrganization: dumbMutation('organization'),\r\n organizationUpdated: dumbMutation('organization'),\r\n updateCustomPageTitle: dumbMutation('customPageTitle'),\r\n updateCustomPageTitleCanGoBack: dumbMutation('customPageTitleCanGoBack'),\r\n setAuctionToDuplicate: dumbMutation('auctionToDuplicate'),\r\n setNbOfAuction: dumbMutation('nbOfAuction'),\r\n setOrganizationAuctions: dumbMutation('organizationAuctions')\r\n};\r\n","export default class State {\r\n constructor() {\r\n this.organization = {};\r\n this.customPageTitle = '';\r\n this.customPageTitleCanGoBack = true;\r\n this.auctionToDuplicate = null;\r\n this.nbOfAuction = 0;\r\n this.organizationAuctions = [];\r\n }\r\n}\r\n","import actions from './actions.js';\r\nimport mutations from './mutations.js';\r\nimport State from './state.js';\r\n\r\nconst name = 'organization';\r\n\r\nexport class Module {\r\n constructor() {\r\n {\r\n this.namespaced = true;\r\n this.state = new State();\r\n this.actions = actions;\r\n this.mutations = mutations;\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n name,\r\n Module\r\n};\r\n","import axios from 'axios';\r\n\r\nexport default {\r\n async getAdminVisitedPages(context) {\r\n try {\r\n if (!context.state.adminVisitedPagesLoaded) {\r\n const response = (await axios.get('/api/auction/getAdminVisitedPages')).data;\r\n context.commit('setAdminVisitedPages', response);\r\n }\r\n }\r\n catch (error) {\r\n context.commit('app/addAdminError', error, { root: true });\r\n }\r\n },\r\n async saveAdminVisitedPage(context, routeName) {\r\n try {\r\n if (!context.state.adminVisitedPagesLoaded) {\r\n await context.dispatch('getAdminVisitedPages',context);\r\n }\r\n if (!context.state.adminVisitedPages.includes(routeName)) {\r\n context.commit('addAdminVisitedPage', routeName);\r\n await axios.post(`/api/auction/saveAdminVisitedPage/${routeName}`);\r\n }\r\n }\r\n catch (error) {\r\n context.commit('app/addAdminError', error, { root: true });\r\n }\r\n }\r\n};\r\n","export default {\r\n setAdminVisitedPages(state, visitedPages) {\r\n state.adminVisitedPages = visitedPages;\r\n state.adminVisitedPagesLoaded = true;\r\n },\r\n addAdminVisitedPage(state, visitedPage) {\r\n state.adminVisitedPages.push(visitedPage);\r\n },\r\n setDashboardListPagesVisible(state, visible) {\r\n state.dashboardListPagesVisible = visible;\r\n }\r\n};\r\n","export default class State {\r\n constructor() {\r\n this.adminVisitedPagesLoaded = false;\r\n this.adminVisitedPages = [];\r\n this.dashboardListPagesVisible = true;\r\n }\r\n}\r\n","import actions from './actions.js';\r\nimport mutations from './mutations.js';\r\nimport State from './state.js';\r\n\r\nconst name = 'admin';\r\n\r\nexport class Module {\r\n constructor() {\r\n {\r\n this.namespaced = true;\r\n this.state = new State();\r\n this.actions = actions;\r\n this.mutations = mutations;\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n name,\r\n Module\r\n};\r\n","import axios from 'axios';\r\nimport { dumbAction } from '@/store/util.js';\r\n\r\nexport default {\r\n ...dumbAction('addError'),\r\n setOrganization(context, organization) {\r\n context.commit('setOrganization', organization);\r\n },\r\n async createOrganization(context, { onSuccess, onError }) {\r\n try {\r\n const { data } = await axios.post('/api/signup/create-organization', context.state.organization);\r\n if (onSuccess) {\r\n await onSuccess();\r\n }\r\n context.commit('setOrganizationId', data);\r\n } catch (error) {\r\n if (onError) {\r\n onError();\r\n }\r\n context.commit('signup/addError', error, { root: true });\r\n }\r\n },\r\n ...dumbAction('setOrganizationId')\r\n};\r\n","import { dumbMutation } from '@/store/util.js';\r\n\r\nexport default {\r\n addError(state, error) {\r\n if (!process.env.production) {\r\n /* eslint-disable-next-line no-console */\r\n console.error('ERROR', error);\r\n }\r\n state.errors.push({ message: error.message, stack: error.stack });\r\n },\r\n setOrganization: dumbMutation('organization'),\r\n setOrganizationId: dumbMutation('organizationId')\r\n};\r\n","export default class State {\r\n constructor() {\r\n this.organization = {};\r\n this.organizationId = null;\r\n this.errors = [];\r\n }\r\n}\r\n","import actions from './actions.js';\r\nimport mutations from './mutations.js';\r\nimport State from './state.js';\r\n\r\nconst name = 'signup';\r\n\r\nexport class Module {\r\n constructor() {\r\n {\r\n this.namespaced = true;\r\n this.state = new State();\r\n this.actions = actions;\r\n this.mutations = mutations;\r\n }\r\n }\r\n}\r\n\r\nexport default {\r\n name,\r\n Module\r\n};\r\n","import Vue from 'vue';\r\nimport Vuex from 'vuex';\r\nimport actions from './actions';\r\nimport app from './app';\r\nimport auction from './auction';\r\nimport user from './user';\r\nimport chatroom from './chatroom';\r\nimport organization from './organization';\r\nimport admin from './admin';\r\nimport signup from './signup';\r\n\r\nVue.use(Vuex);\r\n\r\nexport default new Vuex.Store({\r\n state: {},\r\n mutations: {},\r\n actions: actions,\r\n modules: {\r\n [app.name]: new app.Module(),\r\n [auction.name]: new auction.Module(),\r\n [user.name]: new user.Module(),\r\n [chatroom.name]: new chatroom.Module(),\r\n [organization.name]: new organization.Module(),\r\n [admin.name]: new admin.Module(),\r\n [signup.name]: new signup.Module()\r\n }\r\n});\r\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 25519;\nmodule.exports = webpackEmptyContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"\" + ({\"270\":\"PartnerEdit\",\"688\":\"Help\",\"1031\":\"CommunicationSettings\",\"1222\":\"Rules\",\"1225\":\"PrintInvoice\",\"1310\":\"roleManagementDetails\",\"1372\":\"AuctionError\",\"1386\":\"AppAuction\",\"1729\":\"AppAdmin\",\"1918\":\"Account\",\"2031\":\"NewsFeed\",\"2112\":\"Invoice\",\"2122\":\"FollowedItems\",\"2459\":\"Add_PaymentInfo\",\"2516\":\"termsOfUse\",\"2760\":\"ItemList\",\"2848\":\"StripeSettings\",\"2921\":\"AuctionCustomization\",\"2975\":\"Error\",\"3430\":\"PartnerList\",\"3822\":\"AuctionSettings\",\"3892\":\"PageNotFound\",\"4027\":\"Performances\",\"4052\":\"purchaseContract\",\"4115\":\"SupplierItems\",\"4123\":\"localeRoutes_en_ca\",\"4262\":\"Participant\",\"4293\":\"UserList\",\"4341\":\"AuctionPageNotFound\",\"4438\":\"Login\",\"4735\":\"Auctions\",\"4850\":\"localeRoutes_fr_ca\",\"4945\":\"UserEdit\",\"5067\":\"AppBaseAuction\",\"5097\":\"Profile\",\"5178\":\"SupplierItemEdit\",\"5268\":\"Home\",\"5428\":\"AppAuthentication\",\"5479\":\"AuctionClosure\",\"5589\":\"AdminError\",\"5639\":\"AuctionRules\",\"6198\":\"locale_en_ca\",\"6362\":\"Dashboard\",\"6412\":\"Organization\",\"6584\":\"AuctionUnauthorized\",\"6698\":\"RoleManagement\",\"6743\":\"Terms\",\"6858\":\"MobileAdmin\",\"6913\":\"itemsCatalogue\",\"6955\":\"ItemDetails\",\"7098\":\"ErrorPage\",\"7178\":\"AuctionStripeSettings\",\"7228\":\"RoleManagementEdit\",\"7229\":\"AuctionValidateUserEmail\",\"7250\":\"AuctionPaymentIntrusctions\",\"7316\":\"ContactUs\",\"7579\":\"Phone\",\"7593\":\"AppPublic\",\"8174\":\"Signupin\",\"8262\":\"privacyPolicy\",\"8306\":\"PaymentInfo\",\"8627\":\"CreateAuction\",\"8786\":\"graph\",\"8840\":\"AuctionUnderConstruction\",\"8998\":\"locale_fr_ca\",\"9028\":\"ItemEdit\",\"9229\":\"Chatroom\",\"9865\":\"CKEditor\",\"9977\":\"OwnerSignup\"}[chunkId] || chunkId) + \".\" + {\"127\":\"61568a06f5d34201\",\"221\":\"e5962cb3588d8ed3\",\"270\":\"b5d202ab83dffefd\",\"445\":\"5aead2bfe41a9626\",\"688\":\"901b2c887b2c5196\",\"1031\":\"2f926919ccf496db\",\"1222\":\"ba69ac92b3a120c6\",\"1225\":\"6f4960090dc2707f\",\"1310\":\"27357757aaa96f21\",\"1372\":\"ac9c206f3f79d6de\",\"1379\":\"fab5d8d1f15e83b2\",\"1386\":\"21a7e94c54cdb475\",\"1480\":\"9d88f8121b64718c\",\"1619\":\"9477e84bb8c34cf8\",\"1729\":\"0f1acd6734feecb1\",\"1911\":\"7186579557a3d6cd\",\"1918\":\"93b75ff816b6987b\",\"1945\":\"795a9ad6ce207e64\",\"2031\":\"89305cc9d7eef76c\",\"2112\":\"34e83eed2c2fe4f2\",\"2122\":\"cfa9fe27887cda79\",\"2260\":\"1a6a9642c30843bd\",\"2459\":\"8e8450a1f07c5a5c\",\"2516\":\"2982c227dd7a0925\",\"2760\":\"3f15edbc530c5173\",\"2848\":\"be59af4121ce6aca\",\"2921\":\"c23f2b612094c9fc\",\"2975\":\"a954d1c8a08a8831\",\"3349\":\"b2823592e7b5a01e\",\"3430\":\"03b041ae1e4ee3c6\",\"3822\":\"eb206977b61f4bad\",\"3892\":\"fcf40449d9b97d5f\",\"4027\":\"a96f308baba60b81\",\"4052\":\"95703f8392fd30cb\",\"4115\":\"57a533b676b2f8a6\",\"4123\":\"da3afe61d17f91b1\",\"4262\":\"a693625cd53e6616\",\"4293\":\"e95361febb59749d\",\"4341\":\"6b3b6722a492e911\",\"4438\":\"96e25a4b62347a76\",\"4557\":\"e6fd498df64e841c\",\"4735\":\"d6295559ec59287d\",\"4850\":\"0034ebd3229297df\",\"4945\":\"c89b42dbec20cbb1\",\"5067\":\"da8c3d2f63cb9304\",\"5097\":\"b72314cd6b1898c1\",\"5178\":\"9a7b6d72f491688d\",\"5268\":\"ecd6398624fe40cc\",\"5428\":\"a95832c0cdaa6545\",\"5479\":\"2796a5d0c5bf7972\",\"5589\":\"6809338f129ea2d9\",\"5614\":\"da40750bb5ff0f85\",\"5639\":\"ea27dd4605a057c4\",\"5722\":\"0b155e6772d768a9\",\"6198\":\"35595bd9352f2f0c\",\"6362\":\"6bd73928e8c70e4b\",\"6412\":\"0e43279eb26cad85\",\"6584\":\"a91395eabc402e2f\",\"6642\":\"28b58c7a4cbbe23c\",\"6698\":\"3ef1ff7fb5506ad6\",\"6743\":\"247fed0e6ee1e7a1\",\"6858\":\"2bff9b3a1d3ef971\",\"6913\":\"fe6da1c20c7c0fbd\",\"6955\":\"1e338a11c3e4bd07\",\"6976\":\"a535198d3457d006\",\"7098\":\"dbc4b66a7ca2e3a6\",\"7178\":\"13eb07e2cf94aebc\",\"7228\":\"a2f512771c2632d4\",\"7229\":\"cbae083ae3a91892\",\"7250\":\"8491785ad8c4a2a0\",\"7316\":\"40e60cec08b1b93c\",\"7348\":\"31541d6ee9f1678b\",\"7579\":\"82b77bdb33a2d22b\",\"7593\":\"97c9fa6e3d12f129\",\"7788\":\"05bbd14e1cf59af6\",\"7804\":\"fb791e52bf399643\",\"8107\":\"9d534e13470d449b\",\"8174\":\"c50d330bf0d5e286\",\"8262\":\"48c0d06826195bfb\",\"8306\":\"a65f30fa76931291\",\"8424\":\"9c0270b6e0117043\",\"8527\":\"21dab2dc25dfc451\",\"8587\":\"9b87227e59162c62\",\"8627\":\"81a8168f49336381\",\"8786\":\"49f0aef8043cf6d1\",\"8840\":\"9d727ef21e5492ea\",\"8998\":\"3046230a2354ff59\",\"9028\":\"2f5f257619c1f325\",\"9129\":\"b34203598aea2d33\",\"9229\":\"40e18844f401a026\",\"9865\":\"9df220cdbc82b915\",\"9977\":\"010a56be15b8d4d7\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"css/\" + ({\"270\":\"PartnerEdit\",\"688\":\"Help\",\"1031\":\"CommunicationSettings\",\"1222\":\"Rules\",\"1225\":\"PrintInvoice\",\"1310\":\"roleManagementDetails\",\"1372\":\"AuctionError\",\"1386\":\"AppAuction\",\"1729\":\"AppAdmin\",\"1918\":\"Account\",\"2031\":\"NewsFeed\",\"2112\":\"Invoice\",\"2122\":\"FollowedItems\",\"2459\":\"Add_PaymentInfo\",\"2516\":\"termsOfUse\",\"2760\":\"ItemList\",\"2848\":\"StripeSettings\",\"2921\":\"AuctionCustomization\",\"2975\":\"Error\",\"3430\":\"PartnerList\",\"3822\":\"AuctionSettings\",\"3892\":\"PageNotFound\",\"4027\":\"Performances\",\"4052\":\"purchaseContract\",\"4115\":\"SupplierItems\",\"4262\":\"Participant\",\"4293\":\"UserList\",\"4341\":\"AuctionPageNotFound\",\"4735\":\"Auctions\",\"4945\":\"UserEdit\",\"5067\":\"AppBaseAuction\",\"5097\":\"Profile\",\"5178\":\"SupplierItemEdit\",\"5268\":\"Home\",\"5428\":\"AppAuthentication\",\"5479\":\"AuctionClosure\",\"5589\":\"AdminError\",\"5639\":\"AuctionRules\",\"6362\":\"Dashboard\",\"6412\":\"Organization\",\"6584\":\"AuctionUnauthorized\",\"6698\":\"RoleManagement\",\"6743\":\"Terms\",\"6858\":\"MobileAdmin\",\"6913\":\"itemsCatalogue\",\"6955\":\"ItemDetails\",\"7098\":\"ErrorPage\",\"7178\":\"AuctionStripeSettings\",\"7228\":\"RoleManagementEdit\",\"7229\":\"AuctionValidateUserEmail\",\"7250\":\"AuctionPaymentIntrusctions\",\"7316\":\"ContactUs\",\"7579\":\"Phone\",\"7593\":\"AppPublic\",\"8174\":\"Signupin\",\"8262\":\"privacyPolicy\",\"8306\":\"PaymentInfo\",\"8627\":\"CreateAuction\",\"8840\":\"AuctionUnderConstruction\",\"9028\":\"ItemEdit\",\"9229\":\"Chatroom\",\"9865\":\"CKEditor\"}[chunkId] || chunkId) + \".\" + {\"270\":\"4151a6c4\",\"688\":\"a6dcc55d\",\"1031\":\"ad53037c\",\"1222\":\"73531423\",\"1225\":\"d61cc36b\",\"1310\":\"1dd7aea7\",\"1372\":\"f047915d\",\"1386\":\"04c72a76\",\"1619\":\"85d28f7a\",\"1729\":\"7dc0575e\",\"1918\":\"84e4bcc8\",\"1945\":\"96d4dea3\",\"2031\":\"7422f9ff\",\"2112\":\"9d1113ec\",\"2122\":\"150e329e\",\"2459\":\"ec708a6d\",\"2516\":\"badbfd87\",\"2760\":\"811d79c7\",\"2848\":\"bab8a4c6\",\"2921\":\"be8133ad\",\"2975\":\"069d2e7c\",\"3430\":\"6a9ac9a1\",\"3822\":\"e9e4eecd\",\"3892\":\"acaf3559\",\"4027\":\"f595ab4e\",\"4052\":\"062fd976\",\"4115\":\"b02c5607\",\"4262\":\"0925ad31\",\"4293\":\"d078c82c\",\"4341\":\"9c185d2f\",\"4557\":\"e58bfd8f\",\"4735\":\"3d69ca21\",\"4945\":\"f14a138b\",\"5067\":\"faa4be46\",\"5097\":\"711fa293\",\"5178\":\"2aa235a9\",\"5268\":\"214d219d\",\"5428\":\"ab9a9cf8\",\"5479\":\"c3245cfa\",\"5589\":\"255e6aef\",\"5639\":\"22b0ae25\",\"5722\":\"78947187\",\"6362\":\"f26cecd6\",\"6412\":\"574a8a89\",\"6584\":\"faf4ec2b\",\"6698\":\"fb47d1e5\",\"6743\":\"fa4d7606\",\"6858\":\"84a5ddd8\",\"6913\":\"7987b877\",\"6955\":\"f49791f5\",\"6976\":\"e9bef7f2\",\"7098\":\"a690bb4a\",\"7178\":\"d95083aa\",\"7228\":\"9e8ccd8e\",\"7229\":\"8cbe92ce\",\"7250\":\"233044bc\",\"7316\":\"facbb661\",\"7579\":\"342102d9\",\"7593\":\"0a5a1eb3\",\"7804\":\"d4072916\",\"8174\":\"8cf319e1\",\"8262\":\"35d5497c\",\"8306\":\"fbd2be87\",\"8527\":\"3ed2395b\",\"8627\":\"ac158b15\",\"8840\":\"43a51654\",\"9028\":\"dabd49ab\",\"9129\":\"05da6120\",\"9229\":\"a00af811\",\"9865\":\"f47908b9\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"FollowMyBid:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = function(chunkId, fullhref, oldTag, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"270\":1,\"688\":1,\"1031\":1,\"1222\":1,\"1225\":1,\"1310\":1,\"1372\":1,\"1386\":1,\"1619\":1,\"1729\":1,\"1918\":1,\"1945\":1,\"2031\":1,\"2112\":1,\"2122\":1,\"2459\":1,\"2516\":1,\"2760\":1,\"2848\":1,\"2921\":1,\"2975\":1,\"3430\":1,\"3822\":1,\"3892\":1,\"4027\":1,\"4052\":1,\"4115\":1,\"4262\":1,\"4293\":1,\"4341\":1,\"4557\":1,\"4735\":1,\"4945\":1,\"5067\":1,\"5097\":1,\"5178\":1,\"5268\":1,\"5428\":1,\"5479\":1,\"5589\":1,\"5639\":1,\"5722\":1,\"6362\":1,\"6412\":1,\"6584\":1,\"6698\":1,\"6743\":1,\"6858\":1,\"6913\":1,\"6955\":1,\"6976\":1,\"7098\":1,\"7178\":1,\"7228\":1,\"7229\":1,\"7250\":1,\"7316\":1,\"7579\":1,\"7593\":1,\"7804\":1,\"8174\":1,\"8262\":1,\"8306\":1,\"8527\":1,\"8627\":1,\"8840\":1,\"9028\":1,\"9129\":1,\"9229\":1,\"9865\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(!/^(4557|5722|6976|8527)$/.test(chunkId)) {\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkFollowMyBid\"] = self[\"webpackChunkFollowMyBid\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [8328,4998], function() { return __webpack_require__(10391); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["AuctionInvoiceStatusTypeEnum","constructor","this","None","NotApplicable","InFinalization","InvoiceSent","FeesInvoicePaid","name","type","auctionInvoiceStatusTypeEnum","AuctionStatusEnum","Pending","InProgress","Closed","auctionStatusEnum","InvoiceStatusEnum","Unpaid","Paid","Canceled","Error","rank","invoiceStatusEnum","InvoiceTypeEnum","Standard","Refund","invoiceTypeEnum","ItemSortingMethods","SortByNumber","SortByName","SortByPopularity","SortByWorth","SortByValue","SortByActivity","itemSortingMethods","ItemTypeEnum","Symbolic","itemTypeEnum","TransactionFeesPlanTypeEnum","Autonomous","Volontary","Contributive","transactionFeesPlanTypeEnum","UserTypeEnum","Unknown","Participant","Assistant","AuctionManager","Administrator","AccountOwner","Superadministrator","userTypeEnum","Item","item","staleSequence","key","bid","bids","createdOn","Date","canceledbid","canceledBids","modifiedOn","length","partners","removedOn","highestBid","undefined","highestBidAmount","amount","startingBid","leadingUserId","userId","leadingUserName","currentUserName","hasImages","images","original","userPlacedBid","find","x","taxCredit","result","value","worth","isInvaluable","ACCEPTED_FILE_TYPES","Object","freeze","AUCTION_BANNER_DIMENSIONS","width","height","AUCTION_BANNER_RATIO","AUTHENTICATION_COMPLETED_ACTION","AUTHENTICATION_RETURN_PAGE_STORAGE","BANNER_PREVIEW_STORAGE","BID_TIMEOUT","CANADA_CODE","COLOR_PREVIEW_STORAGE","CURRENCY_CA","CURRENCY_DEFAULT_LOCALE","CURRENCY_US","CURRENCY_US_LOCALE","DEFAULT_OVERTIME_DURATION","DEFAULT_OVERTIME_MAXIMUM_DURATION","DETAIL_IMAGE_DIMENSIONS","DETAIL_IMAGE_RATIO","FACEBOOK_BANNER_DIMENSIONS","FACEBOOK_BANNER_RATIO","ITEM_BATCH_COUNT","ITEM_NAME_MAX_LENGTH","ITEM_NUMBER_MATH_DIGITS","LIST_IMAGE_DIMENSIONS","LIST_IMAGE_RATIO","LOGO_PREVIEW_STORAGE","MIN_PARTNER_TO_PLAY_CAROUSEL","NUMBER_COMPARISON_PRECISION","OVERTIME_MAXIMUM_DURATION_ALLOWED","QC_CODE","COMPLETED_ACTION_LOGIN","POLICY_ORIGIN_OWNER","Vue","use","VueI18n","numberFormats","currency","style","currencyDisplay","currencyNoCents","minimumFractionDigits","maximumFractionDigits","percent","percentNoDecimals","messages","loadedLocales","instance","locale","fallbackLocale","load","async","code","substring","loaders","default","localeRoutes","loadedLocaleRoutes","localeRoutesLoaders","getLocaleRoutes","routes","escapeRegExp","str","replace","removeLeadingZeros","count","search","match","RegExp","startsWith","substringBefore","indexOf","DECIMAL_SYMBOLS","INTEGER_PATTERN","NumberFormat","options","precision","autoDecimalMode","valueAsInteger","numberFormat","Intl","ps","format","digits","map","i","toLocaleString","decimalSymbol","substr","groupingSymbol","minusSymbol","Number","resolvedOptions","min","max","prefix","negativePrefix","suffix","lastIndexOf","parse","negative","isNegative","normalizeDigits","stripCurrencySymbol","stripMinusSymbol","fraction","stripGroupingSymbol","isValidIntegerFormat","split","number","toFixed","join","integerNumber","useGrouping","includes","insertCurrencySymbol","Math","abs","toFraction","onlyLocaleDigits","isFractionIncomplete","normalizeDecimalSymbol","from","forEach","s","digit","index","onlyDigits","DEFAULT_OPTIONS","distractionFree","valueRange","allowNegative","formattedValue","mergedOptions","getValue","ref","$el","$ci","setValue","equal","a","b","keys","every","prototype","hasOwnProperty","bind","DefaultNumberMask","conformToMask","previousConformedValue","checkIncompleteValue","incompleteValue","integer","integerDigits","fractionDigits","invalidFraction","invalidNegativeValue","slice","numberValue","AutoDecimalModeNumberMask","pow","getCaretPositionAfterFormat","newValue","inputtedValue","caretPosition","decimalSymbolPosition","caretPositionFromLeft","hideCurrencySymbol","getDistractionFreeCaretPosition","hideGroupingSymbol","MAX_SAFE_INTEGER","NumberInput","el","callbackFns","addEventListener","init","currencyFormat","newOptions","hideNegligibleDecimalDigits","setAttribute","numberMask","setOptions","applyFixedFractionFormat","forcedChange","validateValueRange","onChange","updateInputValue","decimalSymbolInsertedAt","conformedValue","focus","onInput","selectionStart","setCaretPosition","capture","setTimeout","selectionEnd","e","start","end","setSelectionRange","optionsFromBinding","vnode","inputElement","tagName","toLowerCase","querySelector","context","globalOptions","listeners","data","on","componentOptions","emit","event","target","componentUpdated","oldValue","render","h","directives","$listeners","change","$emit","input","currencyDirective","props","String","Boolean","mounted","computed","watch","methods","install","componentName","component","directiveName","directive","types","func","state","document","matrix","updatePosition","y","window","relativeX","mouseX","relativeY","mouseY","move","transform","returnPositionString","matrixX","matrixY","plugin","callPositionUpdate","all","repeatRaf","axis","posAnimation","requestAnimationFrame","setUpMovement","classList","add","class","eventListener","dir","pos","getComputedStyle","itemsArray","left","top","pageX","touches","initialX","pageY","initialY","grabElement","moveElement","grab","getTransformValue","moveElementTransform","down","updateMousePosition","dragMove","cancelAnimationFrame","remove","acceptedValues","binding","handleSelector","handle","isValidAxisValue","arg","handleArray","querySelectorAll","usesHandle","onmousedown","dragStart","ontouchstart","initial","dragEnd","classes","eventClass","styleElement","createElement","innerHTML","body","appendChild","inserted","dragSetup","update","oldHandleArray","oldHandle","_vm","_c","_self","attrs","onReady","staticRenderFns","mixins","readyTimeout","onReadyTimeout","onPageVisibilityChanged","navigator","onNetworkAccessChanged","c","l","r","t","q","push","arguments","src","dataset","cookiecategory","getElementsByTagName","parentNode","insertBefore","$store","app","appSettings","clarityKey","beforeDestroy","removeEventListener","console","warn","clearTimeout","__splash_minimum_visibility","splash","getElementById","initialLoadingFinished","$cookieconsent","updateScripts","isPageVisible","visibilityState","hasNetworkAccess","onLine","$route","meta","title","$router","routeName","router","create","defaultLocale","Router","mode","base","process","scrollBehavior","to","hash","selector","beforeEach","next","store","loading","interceptNavigation","i18n","auction","query","isPreview","matched","some","record","minRole","Roles","user","gotoAuctionLogin","SignUpInReasons","insufficientPrivileges","path","authenticationNeeded","afterEach","onError","error","sessionStorage","getItem","setItem","location","reload","redirect","reason","redirectPath","currentRoute","userEmail","authenticationStatus","stopAuthSignalR","userLoggedOff","needReconnection","localStorage","removeItem","href","axios","get","redirectUrl","targetPage","resolve","params","slug","pathname","_default","required","email","not_in","min_value","field","max_value","numeric","phone","postalCode","falsy","integer_if","confirmed","duplicate","url","itemNumberExists","phoneNumberExists","emailExists","serverSidePhoneNumber","auctionSlugExists","uniqueUserPhoneNumber","zipCode","custom","password","regex","newPassword","emailSignup","phoneNumberSignup","invitation_input","usernameExistsForAuction","auctionSlug","excluded","cloneNumber","valid","dispatch","itemId","post","validate","test","register","Validator","extend","authenticatedHub","eventName","$authenticatedHub","connection","startedPromise","manuallyClosed","started","startAuthSignalR","catch","token","VueCookie","authenticationCookieName","refreshToken","refreshCookieName","Promise","reject","then","appInsights","ApplicationInsights","config","connectionString","appInsightsConnectionString","loadAppInsights","HubConnectionBuilder","withUrl","authSignalRUrl","accessTokenFactory","withAutomaticReconnect","configureLogging","LogLevel","Warning","build","onreconnecting","trackEvent","properties","errorMessage","signalRConnectionFail","onclose","stop","joinAuctionGroup","auctionId","invoke","organizationHub","sequenceNumber","$organizationHub","unwantedDisconnection","startOrganizationSignalR","err","organizationSignalRUrl","stopSignalR","joinOrganizationGroup","organizationId","polyfillNumberFormat","info","cookieConsent","initCookieConsent","run","autorun","current_lang","page_scripts","autoclear_cookies","gui_options","consent_modal","layout","position","transition","swap_buttons","settings_modal","onAccept","cookie","acceptedCategories","allowedCategory","core","getCookieMgr","setEnabled","allowedCookieCategories","changed_preferences","languages","description","primary_btn","text","role","secondary_btn","save_settings_btn","accept_all_btn","reject_all_btn","close_btn_label","cookie_table_headers","col1","col2","col3","col4","blocks","toggle","enabled","readonly","cookie_table","is_regex","defineProperty","interceptors","request","headers","id","AuctionId","organization","OrganizationId","signup","Authorization","response","status","UserMixin","productionTip","VueObserveVisibility","VueRouter","PublicHub","AuthenticatedHub","OrganizationHub","VueManagedScroller","MQ","Sticky","TextareaAutosize","VueMeta","refreshOnceOnNavigation","drag","installNecessaryPolyfills","urlLocale","resultingLocale","supportedLocales","newLocale","tryFindLanguage","browserLanguage","newUrl","origin","pathSplit","loadLocalizedMessages","filter","Moment","VueCurrencyInput","VeeValidate","dictionary","validations","CustomValidators","routerInstance","createRouter","enableAutoRouteTracking","disableCookiesUsage","Toast","mq","tablet","desktop","admin","adminTablet","adminFullTablet","App","created","cookieConsentPlugin","$mount","multiwatch","handler","validation","addValidationError","fieldName","$validator","fields","scope","$options","errors","msg","setFlags","invalid","validated","hasChange","originalValue","updatedValue","updated","Array","isArray","jsonOriginal","JSON","stringify","jsonUpdated","scrollToError","getElementsByClassName","element","display","nodeName","VueScrollTo","container","duration","easing","offset","screen","availHeight","cancelable","notification","successNotificationVisible","errorNotificationVisible","cancelNotificationVisible","canHideSuccessCheck","canHideCancelCheck","disableAction","isDirty","responsePending","disableCancelButton","disableSaveButton","showErrorToast","$toast","$t","toastClassName","timeout","onClose","hideErrorNotification","showSuccessToast","toggleVisibilityState","hideSuccessNotification","success","showCancelToast","warning","hideCancelNotification","onSaveSuccessMouseLeave","onSaveSuccessMouseOver","onCancelSuccessMouseLeave","onCancelSuccessMouseOver","beforeRouteLeave","clear","lang","$i18n","auctionDefaultLocale","additionalLocales","notSelectedLocales","orderedLocales","auctionSupportedLocales","getLocalizedProperty","dict","values","isLocalizedPropertyEmpty","emptyLocalizedProperty","compareEachLocalizedProperty","duplicateLocales","trim","compareLocalizedProperty","getLocaleFriendlyName","feminine","localeToCompare","routeTitle","part","isRoute","routeNames","getAdminHomeRouteName","auctionStatus","AuctionStatus","pending","getStageIndex","ongoing","closed","over","isCurrentRouteChildOf","adminHomeRouteName","currentRouteNameWithoutLang","metaInfo","property","content","vmid","ogTitle","dates","humanReadableTimestamp","moment","humanReadableDate","formattedDateTime","formattedShortDateTime","formattedShortDate","formattedYearMonthDayDate","logoToShow","useAuctionLogo","auctionLogo","logo","organizationLogo","imageIdToUrl","imageId","fromOrganization","imageBaseUrl","supplierImageIdToUrl","imageBaseUrlSupplier","resetItemImages","detail","isCropped","displayOrder","currentAuction","auctionPending","auctionOngoing","auctionExtended","extended","auctionWasExtended","effectiveEndDate","endDate","auctionOver","auctionClosed","auctionOverOrClosed","auctionClosedInvoiceSent","overInvoiceSent","auctionPaid","isPaid","auctionHasTaxCredit","offersTaxCredit","usesAutomaticExtension","hideParticipantNames","hasValidTaxNumbers","areTaxNumbersValid","isStripeUsable","allowStripeCheckoutPayment","isStripeAccountDisabled","isStripeAccountEnabled","stripePaymentSettings","stripeAccountPaymentEnabled","stripeAccountChargesEnabled","isStripeAccountOnlyChargeEnabled","isVoluntaryCoverageFeesEnabled","transactionFeesPlanType","isContributiveFeesEnabled","isCreditCardRequired","creditCardRequired","isTransactional","isFree","hasDoneAutomaticPayment","auctionInvoiceAsBeenSend","auctionInvoiceStatusType","getAuctionStatus","now","startDate","auctionRules","rules","isRuleActivated","rule","isActivated","currentOrganization","currentOrganizationAuctions","organizationAuctions","canDuplicateAuction","nbOfAuction","hasRemainingAuction","remainingAuction","isSupplier","getAuctionLocalizedProperty","getAuctionImageUrl","modalRef","modalResult","$refs","show","duplicateFromAuction","createdThisSessionKey","userUnderstandOverTimeStartKey","currentUser","userIsLogged","hasAuthenticatedUserRights","hasAssistantRights","hasAuctionManagerRights","hasAdministratorRights","hasAccountOwnerRights","hasSuperadministratorRights","hasUnpaidInvoices","invoices","userUnderstandOverTimeMode","understandOvertimeMode","currentPaymentInfo","paymentInfo","userCannotEditRole","userHasMinRole","navigateTo","saveReturnPage","isAuctionCreatedThisSession","setAuctionCreatedThisSession","removeAuctionCreatedThisSession","userUnderstandOverTimeStart","updateUserUnderstandOvertimeStart","userAuthenticationGuard","formatter","formatPhoneNumber","auctionCurrencyFormatter","overrides","formatWithAuctionCurrencySymbol","v","$te","formatToParts","formatAmount","supportedCurrency","auctionCurrencyNarrowSymbol","call","auctionCurrencySymbol","isAuctionCurrencySymbolBeforeAmount","formatNarrowSymbol","formatCurrency","formatCurrencyNoCents","formatCurrencyAutoCents","formatCurrencyAmount","formatCurrencyAmountNoCents","formatCurrencyAmountAutoCents","formatCurrencyWithAuctionCurrencySymbol","formatCurrencyNoCentsWithAuctionCurrencySymbol","formatCurrencyAutoCentsWithAuctionCurrencySymbol","formatPercent","formatPercentNoDecimals","currentOrganizationId","hasOrganization","scrollToItem","itemListLastVisitedItem","set","scrollTo","itemListPage","currentPage","handleScroll","htmlElement","topOfPage","common","$event","script","routePath","defaultLanguage","getRoutes","truncateEntityIdParam","children","route","supplierId","priceId","nbAuction","organizationName","bundleId","pay","accountCreated","invitationId","skipFirstStep","selectedUserId","Localize","detailPage","userType","currentRouteName","parentPage","partnerCategory","isOtherCategory","partnerCategoryType","conversationId","applyFilters","fromItemView","paymentConfirmed","tabId","skipWantsBearFees","showSuccesAddCardNotification","prevRoute","alias","startWithDonation","invoiceId","isReceipt","userLoggingIn","sessionExpired","userInactive","threeWayComparison","aValue","bValue","threeWayStringComparison","nomalizedAValue","normalize","nomalizedBValue","reversed","phoneNumber","countryCode","phoneNumberFormatted","VuePhoneNumberInput","getParsePhoneNumberFromString","formatNational","rawPhoneNumber","nationalNumber","publicHub","$publicHub","startPublicSignalR","signalRUrl","navigateToHref","clone","obj","temp","absoluteURL","preferHttp","shuffle","arr","j","floor","random","localeEquivalents","reduce","deepClone","language","userLanguage","stripHtmlTags","htmlStringContent","div","innerText","loadScriptAsync","onload","onerror","head","getInitials","charAt","toUpperCase","capitalize","string","addAwaitable","initialValue","promiseName","predicateName","finally","State","serverTimeOffset","items","itemReassignmentListeners","donations","featuredItems","remainderTime","notifications","correlationIds","bidsTimeout","userMaxBids","highestBids","itemSorting","refundResponses","itemListSortMethod","itemListCategoryFilters","itemListLocationFilters","itemListPartnerFilters","itemListTypeFilters","itemListSearch","raisedAmount","showCategoryFilters","showLocationFilters","showPartnerFilters","showTypeFilters","paymentEvents","dumbAction","mutationName","actionName","commit","dumbMutation","setSignalRSequence","signalRSequenceNumber","signalRReconnected","addError","production","message","stack","addAdminError","adminErrors","dismissError","setConfig","increaseConnectionStaleSequence","connectionStaleSequence","setModalOpen","open","modals","delete","bidFunctionUrl","sendMessageFunctionUrl","viewedLotTrackingFunctionUrl","newsFeedBidCount","reCAPTCHAPublicKey","facebookId","stripePublicKey","donationButtonVisible","reassignLotVisible","stripePaymentEnabled","englishAvailable","KnowledgeBaseAvailable","suggestedPaymentDelayAfterClosure","imageBaseUrlSupplierLogo","appUrl","participantPortalUrl","symbolicBidFunctionUrl","defaultBunlde","canonicalPath","previewColor","previewLogoUrls","previewBanners","Module","namespaced","actions","mutations","setupPreview","self","urlParams","URLSearchParams","BufferModel","requests","RequestBuffer","method","delay","buffer","requestOne","immediate","oneTimeBuffer","fireRequest","startTimer","requestMany","static","setDates","elements","getItemsBidsAsync","itemIds","bidRequest","getItemsPurchasesAsync","purchasesRequest","itemBuffer","createBuffer","userIsLoggedIn","endpoint","requestedItemIds","callback","root","maxCount","sortMethod","isReversed","searchCriteria","categoryIds","locationIds","partnerIds","typeIds","cancelToken","totalCount","ids","isCancel","previous","withBids","searchTrackItems","sort","adminLotsSearched","lotCount","adminLotsFiltered","filterType","getRandomItemsIfNoFeaturedItemsFound","numberOfNonFeaturedItems","quantity","isUnlimited","rootState","timeoutId","correlationId","isImpersonated","onSuccess","always","partnerId","partnerCategoryId","partnerCategoryToChangeId","categories","getLastImpersonatedUsersStarted","userIndex","lastImpersonatedUsers","splice","unshift","payNow","donatedAmount","purchaseId","newQuantity","newPurchaseQuantity","invoice","visible","itemsAvailabilityChangedEvent","itemsAvailableQuantityChangedEvent","itemsIsVisibleChangedEvent","itemsCategoryChangedEvent","itemsLocationChangedEvent","invoicesPaymentStatusChanged","invoicesReminderPaymentChanged","invoicesStatusError","invoiceStatusUpdatedEvent","itemDeletedEvent","itemsDeletedEvent","userDeleted","userIds","NotificationMessage","HIGHEST_BID","EQUAL_BID","HIGHEST_SYMBOLIC_BID","EQUAL_SYMBOLIC_BID","OUTBID","ERROR","SUCCESS","UNAVAILABLE_FOR_BID","UNAVAILABLE_FOR_SYMBOLIC_BID","INVALID_QUANTITY","NotificationType","HIGHEST","EQUAL","UNAVAILABLE","handleFeaturedItem","featured","setCurrentAuction","setAllowStripeCheckoutPayment","setItems","deletedOn","itemInstance","addItem","newItem","updateItem","deleteItem","deleteItems","participantsStatusChanged","donationId","donation","highestBidEvent","authHighestBidEvent","nextMaxBid","maximalBidInfo","userHasMaximalBid","userLastMaximalBidAmount","equalBidEvent","outbidBidEvent","failedBidEvent","itemPurchasedEvent","purchases","availableQuantity","authItemPurchaseEvent","identityId","itemInvalidTypeEvent","itemInvalidQuantityEvent","itemUnavailableForBidsEvent","itemUnavailableForPurchaseEvent","itemAvailabilityChanged","isAvailable","itemIsVisibleChanged","isVisible","successDonationEvent","donationPayNowEvent","failedDonationEvent","auctionPaymentEvent","auctionPaymentSuccess","auctionPaymentFailure","bidCanceledEvent","canceledBid","donationCanceledEvent","purchaseCanceledEvent","canceledPurchase","canceledPurchases","updatedQuantity","auctionUpdated","auctionVisibilityChanged","auctionVisibility","clearNotification","storeCorrelationId","storeUserMaxBid","setError","setLastImpersonatedUsers","setLastImpersonatedUsersRetrieved","_lastImpersonatedUsersPromiseResolved","_lastImpersonatedUsersPromiseRejected","setHighestBids","setDonations","addItemNotificationSuccess","setInvoices","setInvoice","findIndex","setRefundResponses","setItemPurchaseQuantity","purchase","total","price","setShowCategoryFilters","setShowLocationFilters","setShowPartnerFilters","setShowTypeFilters","setRaisedAmount","serverTime","updateServerTimeOffset","erroneousItemTypeForBidEvent","erroneousAmountForBidEvent","itemsIsFeatureChangedEvent","itemCategoryChanged","category","itemClassification","itemLocationChanged","invoicePaymentStatusChanged","payment","invoiceReminderPaymentChanged","reminderPaymentMailDate","invoiceStatusError","invoiceStatus","auctionRulesUpdated","itemAvailableQuantityChanged","notifyUserAfterPurchase","isItemStale","getters","userFollowedItems","connectionId","openedInvoices","hasParticipation","showModifyPhoneNumberToastSuccess","showAddPhoneNumberToastSuccess","viewedModals","getParticipantsStarted","includeInactive","followedItems","profile","invitationIds","isActive","done","put","firstConnection","hasDiscoveredSolicitingItemDonations","fullName","paymentMethodId","isCardValid","wantsBearFees","modalType","setCurrentUser","setDonatedAmount","setHasParticipation","setShowModifyPhoneNumberToastSuccess","setShowAddPhoneNumberToastSuccess","setUserViewedModals","setUserPaymentInfo","setParticipants","participants","setParticipantsRetrieved","_participantsPromiseResolved","_participantsPromiseRejected","setUserFollowedItems","startFollowing","stopFollowing","connectionIdUpdated","setInvoiceStatus","setOpenedInvoice","setHasDiscoveredSolicitingItemDonations","updateUserViewedModals","setUserPaymentInfoWantsBearFees","setHasCardRegister","hasCardRegister","setAllowedCookieCategories","members","senderId","identifier","conversationIdentifier","conversations","isAutomated","mergedMessages","messageArray","participantSmsOptOutChanged","_setConversation","conversation","lastUpdateTime","readPosition","m","member","_addMessage","read","tick","_updateMessage","setConversations","conversationsLoaded","setConversation","messageReceived","addMessage","setAdminRecipients","admins","currentAdmin","adminRecipients","storeMessage","participantStatusChanged","UserId","Value","SmsOptOut","setCurrentOrganization","organizationUpdated","updateCustomPageTitle","updateCustomPageTitleCanGoBack","setAuctionToDuplicate","setNbOfAuction","setOrganizationAuctions","customPageTitle","customPageTitleCanGoBack","auctionToDuplicate","adminVisitedPagesLoaded","adminVisitedPages","setAdminVisitedPages","visitedPages","addAdminVisitedPage","visitedPage","setDashboardListPagesVisible","dashboardListPagesVisible","setOrganization","setOrganizationId","Vuex","modules","chatroom","webpackEmptyContext","req","module","exports","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","deferred","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","n","getter","__esModule","d","leafPrototypes","getProto","getPrototypeOf","__proto__","ns","def","current","getOwnPropertyNames","definition","o","enumerable","f","chunkId","promises","u","miniCssF","g","globalThis","Function","prop","inProgress","dataWebpackPrefix","needAttach","scripts","getAttribute","charset","nc","onScriptComplete","prev","doneFns","removeChild","Symbol","toStringTag","nmd","paths","p","createStylesheet","fullhref","oldTag","linkTag","rel","onLinkComplete","errorType","realHref","nextSibling","findStylesheet","existingLinkTags","tag","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}