{"version":3,"file":"js/app.47c92138.js","mappings":"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","sources":["webpack://pigeonmarket.ui.web.vuejs/webpack/runtime/chunk loaded","webpack://pigeonmarket.ui.web.vuejs/webpack/runtime/load script","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/App.vue?7c8a","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/bid/BidAlertCongratulations.vue?e375","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/cart/CartTable.vue?9ea2","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheAlerts.vue?7b16","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheBetaRibbon.vue?5670","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheFooter.vue?1168","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheFooterNewsletter.vue?a381","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBar.vue?8822","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBarDialogs.vue?b3af","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBarMenu.vue?38a6","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheSearchBar.vue?0b72","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignIn.vue?5a3c","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignInRecovery.vue?870b","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignInRecoveryDone.vue?7464","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignOn.vue?8cee","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUp.vue?8e33","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUpDone.vue?a73a","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUpVerification.vue?520a","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/vendor/AccountSignUp.vue?3db6","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/vendor/AccountSignUpDone.vue?0e82","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppBox.vue?817c","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppButtonLoader.vue?369a","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDialog.vue?d2c9","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDropdown.vue?5aa3","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrorNotFound.vue?622a","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrorUnexpected.vue?6002","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppLoader.vue?3f16","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/apps/AppsBar.vue?e8f6","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/apps/AppsLauncher.vue?6d90","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormAsync.vue?d2c7","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputPicture.vue?f605","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputSelect.vue?fcbe","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterHelp.vue?17c4","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterNewsletter.vue?653b","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/module/ModuleStripeConnect.vue?bbe9","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavBreadcrumb.vue?c796","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/package/PackagePictureCollage.vue?d5d1","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetParent.vue?cff3","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetPrizes.vue?c900","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetRanking.vue?d5d9","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonDropdownlist.vue?0289","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonDropdownlistItem.vue?3a56","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigree.vue?a7b8","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreeDiagram.vue?18e1","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreePdf.vue?c2c7","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreePicture.vue?cecf","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPicture.vue?4683","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPropertyTicketPicture.vue?709f","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonSheet.vue?3df9","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/views/product/ProductCharacteristics.vue?84d1","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/bid/BidAlertCongratulations.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/bid/BidAlertCongratulations.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/bid/BidAlertCongratulations.ts?2c60","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/bid/BidAlertCongratulations.vue?cef9","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/bid/BidAlertCongratulations.vue?249b","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/icons/IconLogo.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/icons/IconLogo.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/icons/IconLogo.ts?3a44","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/icons/IconLogo.vue?24df","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppLoader.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppLoader.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppLoader.ts?69d6","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppLoader.vue?e796","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppLoader.vue?809e","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/bloc/BlocSectionBar.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/bloc/BlocSectionBar.ts?6354","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/bloc/BlocSectionBar.ts?004f","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/bloc/BlocSectionBar.vue?dc9e","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/module/ModuleStripeConnect.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/module/ModuleStripeConnect.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/module/ModuleStripeConnect.ts?4852","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/module/ModuleStripeConnect.vue?b98e","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/module/ModuleStripeConnect.vue?dc98","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/package/PackagePictureCollage.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/package/PackagePictureCollage.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/package/PackagePictureCollage.ts?38d1","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/package/PackagePictureCollage.vue?1d05","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/package/PackagePictureCollage.vue?b6fe","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAsset.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetText.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetText.ts?2590","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetText.vue?edb5","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetText.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetParents.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetParents.ts?fce9","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetParents.vue?9686","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetParents.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetRankings.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetRankings.ts?1d64","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetRankings.vue?6527","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetRankings.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAsset.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAsset.ts?638f","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAsset.vue?781f","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetParent.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetParent.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetParent.ts?0f09","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetParent.vue?9a46","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetParent.vue?26d2","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetPrizes.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetPrizes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetPrizes.ts?fc25","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetPrizes.vue?fd33","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetPrizes.vue?194f","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetRanking.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetRanking.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetRanking.ts?3d0b","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetRanking.vue?7367","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonAssetRanking.vue?1a7a","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonDropdownlist.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonDropdownlist.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonDropdownlist.ts?9336","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonDropdownlist.vue?1287","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonDropdownlist.vue?2d72","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonDropdownlistItem.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Api/factories/productItemFactory.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonDropdownlistItem.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonDropdownlistItem.ts?cdfd","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonDropdownlistItem.vue?e77d","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonDropdownlistItem.vue?324c","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigree.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreeSheet.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreeSheet.ts?93a9","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreeSheet.vue?4367","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreeSheet.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigree.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigree.ts?ca5b","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigree.vue?227c","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigree.vue?10da","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreeDiagram.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreeDiagram.ts?fc2f","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreeDiagram.ts?c2bb","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreeDiagram.vue?be50","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreeDiagram.vue?c99d","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreePdf.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreePdf.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreePdf.ts?a96a","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreePdf.vue?d797","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreePdf.vue?e526","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreePicture.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreePicture.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreePicture.ts?5d5b","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreePicture.vue?fc84","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreePicture.vue?96c4","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPicture.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPicture.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPicture.ts?404f","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPicture.vue?b553","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPicture.vue?1144","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPropertyTicketPicture.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPropertyTicketPicture.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPropertyTicketPicture.ts?a254","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPropertyTicketPicture.vue?7f73","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPropertyTicketPicture.vue?539c","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonSheet.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/views/product/ProductCharacteristics.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/views/product/ProductCharacteristics.ts?aa36","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/views/product/ProductCharacteristics.vue?a4ea","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/views/product/ProductCharacteristics.vue?b3ee","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/views/product/ProductCharacteristics.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonSheet.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonSheet.ts?e776","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonSheet.vue?d39a","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonSheet.vue?a292","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/product/ProductCountryFlag.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/product/ProductCountryFlag.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/product/ProductCountryFlag.ts?0514","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/product/ProductCountryFlag.vue?dc36","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/product/ProductDiscipline.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/product/ProductDiscipline.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/product/ProductDiscipline.ts?f011","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/product/ProductDiscipline.vue?1af6","webpack://pigeonmarket.ui.web.vuejs/./src/Api/enumerations/Channels.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/factories/productFactory.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/mappers/PayloadMapper.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/mappers/ProductMapper.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/AddressTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/AppRoles.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/AppThemes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/AssetTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/BaseThemes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/CharacteristicBackTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/CharacteristicBalanceTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/CharacteristicEyeTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/CharacteristicFeathersTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/CharacteristicHumerusTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/CharacteristicLengthTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/CharacteristicPlumageTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/CharacteristicSizeTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/CharacteristicVentbonesPositionTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/CharacteristicVentbonesStrengthTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/CurrencyTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/DbAlertTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/DisciplineTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/FarmSizeTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/NotificationTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/PaymentMethodTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/PaymentStatus.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/PictureTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/ProductTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/RelationshipTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/SaleStatus.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/SaleTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/SearchTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/SexTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/ShippingMethodTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/ShippingStatus.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/SubtaskTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/TaskPriorityLevels.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/TaskTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/TransferMethodTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/TransferStatus.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/VideoTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/helpers/ArrayHelper.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/App.const.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/extensions/date.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/extensions/string.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppAlert.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppAlert.ts?ef74","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppBadge.ts?9ed4","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppAlert.ts?f81a","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppAlert.vue?d388","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppBox.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppBadge.ts?f1a7","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppBadge.vue?b899","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppBadge.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppBox.ts?b3e0","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppBox.vue?1624","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppBox.vue?5db7","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppBox.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppButtonDropdown.ts?561a","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppButtonDropdown.ts?782c","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppButtonDropdown.vue?671b","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppButtonDropdown.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppButtonLoader.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppButtonLoader.ts?9297","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppButtonLoader.vue?a15c","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppButtonLoader.vue?b76e","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppButtonLoader.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDivider.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDivider.ts?5b5d","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDivider.vue?4d3c","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDivider.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDividerToggler.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDropdown.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDividerToggler.ts?35e5","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDividerToggler.vue?3119","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDividerToggler.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDropdown.ts?cc93","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDropdown.vue?ace4","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDropdown.vue?4b45","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDropdown.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppError.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppError.ts?d05c","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppError.vue?87ff","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppError.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrorNotFound.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrorNotFound.ts?d419","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrorNotFound.vue?4d79","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrorNotFound.vue?69fe","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrorNotFound.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrors.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrors.ts?037a","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrors.vue?01c1","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrors.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrorUnexpected.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrorUnexpected.ts?cad7","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrorUnexpected.vue?544e","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrorUnexpected.vue?96f1","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppErrorUnexpected.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppHelp.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppHelp.ts?a87b","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppHelp.vue?5467","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppHelp.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppMenuItem.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppMenuItems.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppMenuItem.ts?1b44","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppMenuItem.vue?e613","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppMenuItem.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppMenuItems.ts?6e15","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppMenuItems.vue?5c48","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppMenuItems.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppOverlay.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppProgressBar.ts?941a","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppOverlay.ts?dba7","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppOverlay.vue?ea5c","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppOverlay.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppProgressBar.ts?916b","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppProgressBar.vue?ddac","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppProgressBar.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/index.app.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/bloc/BlocBar.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/bloc/BlocBarItem.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/bloc/BlocBar.ts?861f","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/bloc/BlocBar.vue?6224","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/bloc/BlocBar.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/bloc/BlocBarItem.ts?53b8","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/bloc/BlocBarItem.vue?91d3","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/bloc/BlocBarItem.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/index.bloc.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormAsync.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormAsync.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormAsync.ts?0097","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormAsync.vue?e0b1","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormAsync.vue?f4d8","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormFields.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInput.ts?167e","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormFields.ts?be07","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormFields.vue?c70f","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormFields.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInput.ts?355a","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInput.vue?138e","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInput.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputCheck.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputPicture.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputCheck.ts?7412","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputCheck.vue?54e8","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputCheck.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputPicture.ts?eef3","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputPicture.vue?0cdf","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputPicture.vue?e091","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputPicture.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputRadio.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputRadio.ts?18de","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputRadio.vue?3982","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputRadio.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputSelect.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputSelect.ts?4ffa","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputSelect.vue?69c3","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputSelect.vue?b7bf","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputSelect.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInput.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputText.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputText.ts?b950","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputText.vue?07a4","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormInputText.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormPaneCheck.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormPaneCheck.ts?812e","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormPaneCheck.vue?b9dd","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormPaneCheck.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormPaneRadio.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormPaneRadio.ts?e91c","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormPaneRadio.vue?66a2","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/formUI/FormPaneRadio.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/index.formUI.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/i18n/I18nRouterLink.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/i18n/I18nRouterLink.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/i18n/I18nRouterLink.ts?10e0","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/i18n/I18nRouterLink.vue?e2e8","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/index.i18n.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/icons/IconLaurelWreath.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/icons/IconLaurelWreath.ts?9f0e","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/icons/IconLaurelWreath.vue?ea5d","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/icons/IconLaurelWreath.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/index.icon.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/index.library.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavAccordion.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavAccordion.ts?753e","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavAccordion.vue?2a14","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavAccordion.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavAccordionItem.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavAccordionItem.ts?f682","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavAccordionItem.vue?502e","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavAccordionItem.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavBreadcrumb.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavBreadcrumb.ts?d267","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavBreadcrumb.vue?489b","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavBreadcrumb.vue?037d","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavBreadcrumb.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavDropdownList.ts?ebae","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavDropdownList.ts?4e7c","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavDropdownList.vue?3bc9","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavDropdownList.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavDropdownListItem.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavDropdownListItem.ts?3f64","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavDropdownListItem.vue?d6ad","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavDropdownListItem.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavPanel.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepper.ts?724a","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavPanel.ts?9795","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavPanel.vue?90da","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavPanel.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepper.ts?c6ad","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepper.vue?fe73","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepper.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepperStep.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepperVertical.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepperStep.ts?e683","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepperStep.vue?0cd1","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepperStep.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepperVertical.ts?91f3","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepperVertical.vue?b27c","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepperVertical.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepperVerticalStep.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavTab.ts?1a49","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepperVerticalStep.ts?2f04","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepperVerticalStep.vue?d685","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepperVerticalStep.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavTab.ts?38e3","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavTab.vue?d8f2","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavTab.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavTabBloc.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavTabs.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavTabBloc.ts?20da","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavTabBloc.vue?6b35","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavTabBloc.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavTabs.ts?fe4c","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavTabs.vue?d5c9","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavTabs.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/index.nav.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterNewsletter.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterNewsletter.ts?20a5","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterNewsletter.vue?eef2","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterNewsletter.vue?8065","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterNewsletter.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheFooterNewsletter.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheFooterNewsletter.ts?78bb","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheFooterNewsletter.vue?cd4a","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheFooterNewsletter.vue?aa93","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheFooterNewsletter.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheAlerts.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheAlerts.ts?5484","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheAlerts.vue?f5d1","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheAlerts.vue?f8f8","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheAlerts.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheBetaRibbon.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheBetaRibbon.ts?cfa1","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheBetaRibbon.vue?d18d","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheBetaRibbon.vue?36e8","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheBetaRibbon.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheFooter.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheFooter.ts?d3d4","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheFooter.vue?62c4","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheFooter.vue?7e5c","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheFooter.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/ActionTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/cart/CartTable.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/cart/CartTable.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/cart/CartTable.ts?7887","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/cart/CartTable.vue?7cf0","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/cart/CartTable.vue?a27a","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignInRecoveryDone.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignInRecoveryDone.ts?96de","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignInRecoveryDone.vue?9680","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignInRecoveryDone.vue?6213","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignInRecoveryDone.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignInRecovery.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignInRecovery.ts?b007","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignInRecovery.vue?cc97","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignInRecovery.vue?e667","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignInRecovery.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignIn.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignIn.ts?3877","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignIn.vue?01d7","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignIn.vue?d1e5","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignIn.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignOn.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignOn.ts?e32e","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignOn.vue?0ba7","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignOn.vue?fd3d","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignOn.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Api/models/market/constants/ContributorTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/factories/registrationFactory.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUpDone.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUpDone.ts?24ae","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUpDone.vue?91d4","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUpDone.vue?7598","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUpDone.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUpVerification.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUpVerification.ts?bc3b","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUpVerification.vue?d6c5","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUpVerification.vue?cf04","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUpVerification.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUp.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUp.ts?78f2","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUp.vue?f3a3","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUp.vue?4e2e","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/AccountSignUp.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/vendor/AccountSignUpDone.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/vendor/AccountSignUpDone.ts?63ad","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/vendor/AccountSignUpDone.vue?f5e6","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/vendor/AccountSignUpDone.vue?bba4","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/vendor/AccountSignUpDone.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/vendor/AccountSignUp.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/vendor/AccountSignUp.ts?c783","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/vendor/AccountSignUp.vue?024e","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/vendor/AccountSignUp.vue?2132","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/pages/views/auth/vendor/AccountSignUp.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDialog.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDialog.ts?9121","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDialog.vue?722a","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDialog.vue?068b","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppDialog.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBarDialogs.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBarDialogs.ts?b505","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBarDialogs.vue?9420","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBarDialogs.vue?50a2","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBarDialogs.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/apps/AppsBar.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/apps/AppsBar.ts?860e","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/apps/AppsBar.vue?749a","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/apps/AppsBar.vue?1f5d","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/apps/AppsBar.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/apps/AppsLauncher.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/apps/AppsLauncher.ts?68ff","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/apps/AppsLauncher.vue?b420","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/apps/AppsLauncher.vue?acea","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/apps/AppsLauncher.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/i18n/I18nLanguageDropdown.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/i18n/I18nLanguageDropdown.ts?9c8c","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/i18n/I18nLanguageDropdown.vue?90d1","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/i18n/I18nLanguageDropdown.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBar.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBarMenu.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBarMenu.ts?98bc","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBarMenu.vue?7c2b","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBarMenu.vue?d2cc","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBarMenu.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBar.ts?77c7","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBar.ts?5964","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBar.vue?3293","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBar.vue?ae85","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNavBar.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/toast/ToastMessage.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/toast/ToastMessage.ts?a7c6","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/toast/ToastMessage.vue?6b8b","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/toast/ToastMessage.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/mappers/ToastTypeMapper.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNotifications.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNotifications.ts?0daf","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNotifications.vue?c546","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheNotifications.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheSearchBar.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheSearchBar.ts?f67b","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheSearchBar.vue?fcce","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheSearchBar.vue?0bb1","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheSearchBar.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheLayout.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheLayout.ts?70fb","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheLayout.vue?4004","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/layout/TheLayout.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheBannerCookies.ts?2f1b","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheBannerCookies.ts?74b2","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheBannerCookies.vue?6213","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheBannerCookies.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheBody.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheBody.ts?9d27","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheBody.vue?dd51","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheBody.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterEmpty.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterEmpty.ts?5b89","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterEmpty.vue?2ea8","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterEmpty.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterHelp.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterHelp.ts?5049","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterHelp.vue?643e","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterHelp.vue?9e69","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheFooterHelp.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheHeader.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheHeader.ts?f1b1","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheHeader.vue?aa0a","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheHeader.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/index.page.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/index.recursive.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/directives/authorize/authorize.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/directives/resize/resize.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/directives/index.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/icons/index.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/plugins/index.external.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/plugins/index.breakpoint.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/plugins/breakpoint/BreakpointService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/plugins/auth/AuthService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/plugins/index.auth.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/registerServiceWorker.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/plugins/index.internal.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/validation/index.base.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/validation/index.custom.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/validation/rules/unique.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/validation/rules/iban.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/validation/rules/agree.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/validation/rules/date.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/components/bid/BidDoubleCheckHighestBidAbstract.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/enumerations/CheckoutStepNames.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/i18n/dateFormats.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/i18n/locales/index.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/i18n/numberFormats.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/i18n/index.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/App.vue?8b49","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/App.vue?9afc","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/App.vue?3762","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/App.vue?79a8","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/App.vue","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/webapi/base/BaseApiService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/webapi/QrCodesService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/webapi/SvgDocumentsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/AmountManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/auth/base/BaseAuthService.anonymous.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/auth/AccountsService.anonymous.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/auth/base/BaseAuthService.user.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/auth/AccountsService.user.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/auth/AccountsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/external/base/BaseApiBingMapsRestService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/external/BingMapsRestService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/external/BingMapsWebControlService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/external/StripeClientService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/external/WorldAtlasService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/base/BaseODataService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/AddressesService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/AlertsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/AuctionsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/BiddingOrdersService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/BidsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/CartsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/CheckoutSessionsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/DepositsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/FancierProfilesService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/FanciersService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/FavoritesService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/GuestsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/NewslettersService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/OrderLinesService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/OrdersService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/PackagesService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/ParentAssetsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/PigeonsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/PlacesService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/PollAnswersService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/PollsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/PollVotesService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/PrizeAssetsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/PrizesService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/RankingAssetsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/ReferralsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/ReproducerParentsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/RingsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/SaleDisapprovalReasonsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/SaleNotificationsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/SalesService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/SettlementsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/ShippingServicesService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/StrainsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/TaskTrackingsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/TaxRatesService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/UsersService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/odata/VendorsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/BlobManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/webapi/BlobsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/webapi/ConnectedAccountsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/webapi/ContactsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/webapi/CountriesService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/webapi/FacebookService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/webapi/InvoicesService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/webapi/PaymentIntentsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/webapi/PayoutsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/webapi/PurchasesService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/webapi/ServersService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/webapi/StripePayoutsService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/services/webapi/TwitterService.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/AuctionManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/CheckoutManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/CountryManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/CreditCardManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/EventManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/FancierProfileManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/FileManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/I18nManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/NotificationManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/OfferManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/PackageManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/PaymentManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/PigeonManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/ProductManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/RingManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/SaleManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/SalesQueryManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/ShippingManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/ShopManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/StepManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/TaskManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/UserManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/main.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/App.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/App.container.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/routers/App.routes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/guards/authRoleGuard.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/guards/isAuthorized.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/i18n/I18nLocalization.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/views/product/ProductPedigree.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/i18n/I18nLocalization.ts?a649","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/i18n/I18nLocalization.vue?07c8","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/i18n/I18nLocalization.vue","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/routers/routes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/routers/index.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/guards/authGuard.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/authStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/layout/TheBannerCookies.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/accountStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/appDataStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/approvalStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/appsStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/appStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/mappers/PackageCartItemMapper.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/mappers/PigeonCarttemMapper.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Api/mappers/CartItemMapper.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/cartStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/catalogStore.sales.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/checkoutStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/dashboard.vendor.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/dashboard.admin.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/depositStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/dialogsStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/dialogStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/dialogStore.cart.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/dialogStore.signIn.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/dialogStore.signOn.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/dialogStore.signUp.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/dialogStore.signUpVendor.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/favoriteStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/jwtStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/notificationStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/pigeonStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/saleStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/searchStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/settlementStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/modules/userStore.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/App.store.modules.ts","webpack://pigeonmarket.ui.web.vuejs/./src/PigeonMarket/stores/index.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/Ui.bus.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppAlert.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/app/AppBadge.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/nav/NavStepper.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/components/pigeon/PigeonPedigreeDiagram.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/enumerations/CatalogFilterTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/enumerations/CatalogSortDirectionTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/enumerations/CatalogSortTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/enumerations/CatalogViewTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/enumerations/NotificationsFilterTypes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/enumerations/PigeonAssetModes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/enumerations/ProductDisplayModes.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/extensions/nameof.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/helpers/MailHelper.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/helpers/MathHelper.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/i18n/dayjs.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/i18n/i18n.const.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/i18n/i18n.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/plugins/breakpoint/Breakpoints.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/DashboardManager.ts","webpack://pigeonmarket.ui.web.vuejs/./src/Pigeon/services/ErrorManager.ts","webpack://pigeonmarket.ui.web.vuejs/webpack/bootstrap","webpack://pigeonmarket.ui.web.vuejs/webpack/runtime/compat get default export","webpack://pigeonmarket.ui.web.vuejs/webpack/runtime/define property getters","webpack://pigeonmarket.ui.web.vuejs/webpack/runtime/ensure chunk","webpack://pigeonmarket.ui.web.vuejs/webpack/runtime/get javascript chunk filename","webpack://pigeonmarket.ui.web.vuejs/webpack/runtime/get mini-css chunk filename","webpack://pigeonmarket.ui.web.vuejs/webpack/runtime/global","webpack://pigeonmarket.ui.web.vuejs/webpack/runtime/hasOwnProperty shorthand","webpack://pigeonmarket.ui.web.vuejs/webpack/runtime/make namespace object","webpack://pigeonmarket.ui.web.vuejs/webpack/runtime/publicPath","webpack://pigeonmarket.ui.web.vuejs/webpack/runtime/css loading","webpack://pigeonmarket.ui.web.vuejs/webpack/runtime/jsonp chunk loading","webpack://pigeonmarket.ui.web.vuejs/webpack/startup"],"sourcesContent":["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};","var inProgress = {};\nvar dataWebpackPrefix = \"pigeonmarket.ui.web.vuejs:\";\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\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};","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"meta\":{\"description\":\"PigeonMarket is a online marketplace where you can buy and sell racing pigeons.\",\"keywords\":\"racing, pigeon, racing pigeon, pedigree, for sale, sale, buy, sell, market, marketplace, pigeonmarket, Belgium, colombophilie\",\"title\":\"PigeonMarket - Racing pigeons for sale\",\"title_template\":\"%s | PigeonMarket - Buy and sell racing pigeons online\"}},\"fr\":{\"meta\":{\"description\":\"PigeonMarket est une place de marché où vous pouvez acheter et vendre des pigeons voyageurs.\",\"keywords\":\"course, pigeon, pedigree, à vendre, vente, acheter, vendre, marché, marketplace, place de marché, pigeonmarket, Belgique, colombophilie\",\"title\":\"PigeonMarket - pigeons voyageurs à vendre\",\"title_template\":\"%s | PigeonMarket - Acheter et vendre des pigeons voyageurs en ligne\"}},\"nl\":{\"meta\":{\"description\":\"PigeonMarket is een online marktplaats waar u postduiven kunt kopen en verkopen.\",\"keywords\":\"racen, duif, postduif, stamboom, te koop, koop, kopen, verkopen, markt, marktplaats, duivenmarkt, België, colombophilie\",\"title\":\"PigeonMarket - Wedstrijdduiven te koop\",\"title_template\":\"%s | PigeonMarket - Koop en verkoop wedstrijdduiven online\"}},\"pt\":{\"meta\":{\"description\":\"PigeonMarket é um mercado online onde você pode comprar e vender pombos-correio.\",\"keywords\":\"corrida, pombo, pombo-correio, linhagem, para venda, venda, compra, venda, mercado, mercado, mercado de pombos, Bélgica, colombofilia\",\"title\":\"PigeonMarket - Venda pombos-correio\",\"title_template\":\"%s | PigeonMarket - Compre e venda pombos-correio online\"}},\"pl\":{\"meta\":{\"description\":\"PigeonMarket jest rynkiem internetowym, na którym można kupować i sprzedawać gołębie pocztowe.\",\"keywords\":\"gołąb wyścigowy, gołąb pocztowy, rodowód, na sprzedaż, kupno, sprzedam, targowisko, targowisko, rynek gołębi, Belgia, kolombofilia\",\"title\":\"PigeonMarket - sprzedaż gołębi pocztowych\",\"title_template\":\"%s | PigeonMarket - Kupuj i sprzedawaj gołębie pocztowe online\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"action\":{\"add_to_cart\":\"Add to cart\",\"pay\":\"Pay\",\"remind_later\":\"Remind me later\"},\"alert\":{\"auction_congratulations_$product\":\"Congratulations! You have won the auction of {product}\",\"auction_message_$amount_$product\":\"Your last {amount} bid for {product} was the highest bid at close.\",\"auction_message_danger\":\"If you do not complete the checkout process or if payment is not received within 14 calendar days, your bid may be considered void.\",\"auction_message_proceed_payment\":\"Please, proceed to payment to finalize the auction.\",\"auction_note_redirect\":\"You will be redirect to checkout page.\"}},\"fr\":{\"action\":{\"add_to_cart\":\"Ajouter au panier\",\"pay\":\"Payer\",\"remind_later\":\"Rappelle le moi plus tard\"},\"alert\":{\"auction_congratulations_$product\":\"Toutes nos félicitations! Vous avez remporté l\\u0027enchère de {product}\",\"auction_message_$amount_$product\":\"Votre dernière enchère {amount} pour {product} était l\\u0027enchère la plus élevée à la clôture.\",\"auction_message_danger\":\"Si vous ne terminez pas le processus de paiement ou si le paiement n\\u0027est pas reçu dans les 14 jours calendaires, votre enchère peut être considérée comme nulle.\",\"auction_message_proceed_payment\":\"Veuillez procéder au paiement pour finaliser l\\u0027enchère.\",\"auction_note_redirect\":\"Vous serez redirigé vers la page de paiement.\"}},\"nl\":{\"action\":{\"add_to_cart\":\"Voeg toe aan winkelmandje\",\"pay\":\"Betalen\",\"remind_later\":\"Herinner me later\"},\"alert\":{\"auction_congratulations_$product\":\"Gefeliciteerd! Je hebt de veiling van {product}gewonnen\",\"auction_message_$amount_$product\":\"Uw laatste {amount} bod voor {product} was het hoogste bod op het einde.\",\"auction_message_danger\":\"Als u het afrekenproces niet voltooit of als de betaling niet binnen 14 kalenderdagen is ontvangen, kan uw veiling als ongeldig worden beschouwd.\",\"auction_message_proceed_payment\":\"Ga verder met betalen om de veiling af te ronden.\",\"auction_note_redirect\":\"U wordt doorgestuurd naar afrekenpagina.\"}},\"pl\":{\"action\":{\"add_to_cart\":\"Dodaj do koszyka\",\"pay\":\"Zapłacić\",\"remind_later\":\"Przypomnij mi później\"},\"alert\":{\"auction_congratulations_$product\":\"Gratulacje! Wygrałeś aukcję {product}\",\"auction_message_$amount_$product\":\"Twoja ostatnia oferta {amount} za {product} była najwyższą ofertą przy zamknięciu.\",\"auction_message_danger\":\"Jeśli nie ukończysz procesu realizacji transakcji lub jeśli płatność nie zostanie odebrana w ciągu 14 dni kalendarzowych, Twoja aukcja może zostać uznana za nieważną.\",\"auction_message_proceed_payment\":\"Proszę przejść do płatności, aby sfinalizować aukcję.\",\"auction_note_redirect\":\"Nastąpi przekierowanie do strony kasy.\"}},\"pt\":{\"action\":{\"add_to_cart\":\"Adicionar ao carrinho\",\"pay\":\"Pagar\",\"remind_later\":\"Lembre-me mais tarde\"},\"alert\":{\"auction_congratulations_$product\":\"Parabéns! Você ganhou o leilão de {product}\",\"auction_message_$amount_$product\":\"Seu último lance de {amount} para {product} foi o lance mais alto no fechamento.\",\"auction_message_danger\":\"Se você não concluir o processo de finalização da compra ou se o pagamento não for recebido em 14 dias corridos, seu leilão poderá ser considerado nulo.\",\"auction_message_proceed_payment\":\"Por favor, prossiga com o pagamento para finalizar o leilão.\",\"auction_note_redirect\":\"Você será redirecionado para a página de checkout.\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"no_auctions\":\"You have no purchase in your cart.\",\"sales_catalog\":\"sales catalog\",\"see_sales_catalog_$0\":\"Visit the {0} to see the available pigeons.\",\"table\":{\"action\":{\"remove_from_cart\":\"Remove from cart\",\"see\":\"See\"},\"header\":{\"identity\":\"Identity\",\"picture\":\"Picture\",\"price\":\"Price\"},\"picture\":{\"alt\":\"pigeon picture\"}}},\"fr\":{\"no_auctions\":\"Vous n\\u0027avez aucun achat dans votre panier.\",\"sales_catalog\":\"catalogue de vente\",\"see_sales_catalog_$0\":\"Visiter le {0} pour voir les pigeons disponibles.\",\"table\":{\"action\":{\"remove_from_cart\":\"Enlever du panier\",\"see\":\"Voir\"},\"header\":{\"identity\":\"Identité\",\"picture\":\"Photo\",\"price\":\"Prix\"},\"picture\":{\"alt\":\"photo du pigeon\"}}},\"nl\":{\"no_auctions\":\"U heeft geen aankoop in uw winkelwagen.\",\"sales_catalog\":\"Verkoopcatalogus\",\"see_sales_catalog_$0\":\"Bezoek de {0} om de beschikbare duiven te zien.\",\"table\":{\"action\":{\"remove_from_cart\":\"Verwijderen uit winkelwagen\",\"see\":\"zien\"},\"header\":{\"identity\":\"Identiteit\",\"picture\":\"afbeelding\",\"price\":\"Prijs\"},\"picture\":{\"alt\":\"duif foto\"}}},\"pl\":{\"no_auctions\":\"Nie masz żadnego zakupu w swoim koszyku.\",\"sales_catalog\":\"Katalog sprzedaży\",\"see_sales_catalog_$0\":\"Odwiedź {0} , aby zobaczyć dostępne gołębie.\",\"table\":{\"action\":{\"remove_from_cart\":\"Usuń z koszyka\",\"see\":\"Widzieć\"},\"header\":{\"identity\":\"Tożsamość\",\"picture\":\"Obrazek\",\"price\":\"Cena £\"},\"picture\":{\"alt\":\"zdjęcie gołębia\"}}},\"pt\":{\"no_auctions\":\"Você não tem compras em seu carrinho.\",\"sales_catalog\":\"Catálogo de vendas\",\"see_sales_catalog_$0\":\"Visite o {0} para ver os pombos disponíveis.\",\"table\":{\"action\":{\"remove_from_cart\":\"Remover do carrinho\",\"see\":\"Vejo\"},\"header\":{\"identity\":\"identidade\",\"picture\":\"Cenário\",\"price\":\"Preço\"},\"picture\":{\"alt\":\"foto de pombo\"}}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"action\":{\"go_admin_dashboard\":\"Go to admin dashboard\",\"go_admin_notification_page\":\"Go to admin page of notifications\",\"go_approver_page\":\"Go to approval page\",\"go_dashboard\":\"Go to your dashboard\",\"logout\":\"Logout\",\"retry\":\"Retry\"},\"alert\":{\"action\":{\"complete_vendor_profile\":\"Complete your vendor profile\",\"go_inbox\":\"Go to your e-mail inbox\",\"go_profile\":\"Go to your profile page\",\"resend\":\"Re-send an verification e-mail\",\"snooze\":\"Remind me later\",\"verify\":\"Verify\"},\"vendor_profile_message\":\"We need additional information to offer you a complete business solution. For that you must fill the form available on our payment partner website, Stripe.\",\"verification_instructions\":\"We need to verify your email address to validate your contact data.\"},\"alias_name\":\"alias name\",\"automatic_translation\":\"automatic translation\",\"automatic_translation_message_$link\":\"This page has been translated automatically. To see the original version click {link}.\",\"error\":{\"unexpected\":\"An unexpected error has occurred.
We work hard to fix it.
Please retry later.\"},\"hello\":\"Hello,\",\"here\":\"here\"},\"fr\":{\"action\":{\"go_admin_dashboard\":\"Aller au tableau de bord administrateur\",\"go_admin_notification_page\":\"Aller à la page administrateur des notifications\",\"go_approver_page\":\"Aller à la page d\\u0027approbation\",\"go_dashboard\":\"Aller à votre tableau de bord\",\"logout\":\"Se déconnecter\",\"retry\":\"Réessayer\"},\"alert\":{\"action\":{\"complete_vendor_profile\":\"Complèter votre profil vendeur\",\"go_inbox\":\"Aller à votre boite de réception\",\"go_profile\":\"Aller à votre page de profil\",\"resend\":\"Renvoyer un email de vérification\",\"snooze\":\"Me le rappeler plus tard\",\"verify\":\"vérifier\"},\"vendor_profile_message\":\"Nous avons besoin d\\u0027informations complétementaires pour vous offrir une solution business complète. Pour cela, vous devez remplir le formulaire disponible sur le site de notre partenaire de paiement, Stripe.\",\"verification_instructions\":\"Nous devons vérifier votre adresse e-mail pour valider vos données de contact.\"},\"alias_name\":\"pseudonyme\",\"automatic_translation\":\"Traduction automatique\",\"automatic_translation_message_$link\":\"Cette page a été traduite automatiquement. Pour voir la version originale, cliquez sur {link}.\",\"error\":{\"unexpected\":\"Une erreur inattendue s\\u0027est produite.
Nous travaillons activement pour régler ce problème.
Veuillez réessayer plus tard.\"},\"hello\":\"Bonjour,\",\"here\":\"ici\"},\"nl\":{\"action\":{\"go_admin_dashboard\":\"Ga naar het beheerdersdashboard\",\"go_admin_notification_page\":\"Ga naar de admin-pagina met meldingen\",\"go_approver_page\":\"Ga naar de goedkeuringspagina\",\"go_dashboard\":\"Ga naar je dashboard\",\"logout\":\"Uitloggen\",\"retry\":\"Opnieuw proberen\"},\"alert\":{\"action\":{\"complete_vendor_profile\":\"Voltooi uw leveranciersprofiel\",\"go_inbox\":\"Ga naar je e-mailinbox\",\"go_profile\":\"Ga naar je profielpagina\",\"resend\":\"Stuur opnieuw een verificatie-e-mail\",\"snooze\":\"Herinner me later\",\"verify\":\"Verifiëren\"},\"vendor_profile_message\":\"We hebben aanvullende informatie nodig om u een complete zakelijke oplossing te bieden. Daarvoor moet u het formulier invullen dat beschikbaar is op de website van onze betalingspartner, Stripe.\",\"verification_instructions\":\"We moeten uw e-mailadres verifiëren om uw contactgegevens te valideren.\"},\"alias_name\":\"alias naam\",\"automatic_translation\":\"Automatische vertaling\",\"automatic_translation_message_$link\":\"Deze pagina is automatisch vertaald. Klik op {link}om de originele versie te zien.\",\"error\":{\"unexpected\":\"Er is een onverwachte fout opgetreden.
We werken er hard aan om het probleem op te lossen.
Probeer het later opnieuw.\"},\"hello\":\"Hallo,\",\"here\":\"hier\"},\"pt\":{\"action\":{\"go_admin_dashboard\":\"Vá para o painel de administração\",\"go_admin_notification_page\":\"Vá para a página de administração de notificações\",\"go_approver_page\":\"Vá para a página de aprovação\",\"go_dashboard\":\"Vá para o seu painel\",\"logout\":\"Sair\",\"retry\":\"Tente novamente\"},\"alert\":{\"action\":{\"complete_vendor_profile\":\"Preencha o seu perfil de fornecedor\",\"go_inbox\":\"Vá para a sua caixa de entrada de e-mail\",\"go_profile\":\"Vá para a página do seu perfil\",\"resend\":\"Reenvie um e-mail de verificação\",\"snooze\":\"Lembre-me mais tarde\",\"verify\":\"Verificar\"},\"vendor_profile_message\":\"Precisamos de informações adicionais para lhe oferecer uma solução comercial completa. Para isso você deve preencher o formulário disponível em nosso site parceiro de pagamento, Stripe.\",\"verification_instructions\":\"Precisamos verificar seu endereço de e-mail para validar seus dados de contato.\"},\"alias_name\":\"Nome alternativo\",\"automatic_translation\":\"Tradução automática\",\"automatic_translation_message_$link\":\"Esta página foi traduzida automaticamente. Para ver a versão original, clique em {link}.\",\"error\":{\"unexpected\":\"Ocorreu um erro inesperado.
Trabalhamos muito para corrigi-lo.
Tente novamente mais tarde.\"},\"hello\":\"Olá,\",\"here\":\"Aqui\"},\"pl\":{\"action\":{\"go_admin_dashboard\":\"Przejdź do panelu administratora\",\"go_admin_notification_page\":\"Przejdź do strony administratora powiadomień\",\"go_approver_page\":\"Przejdź do strony zatwierdzania\",\"go_dashboard\":\"Przejdź do pulpitu nawigacyjnego\",\"logout\":\"Wyloguj\",\"retry\":\"Spróbować ponownie\"},\"alert\":{\"action\":{\"complete_vendor_profile\":\"Uzupełnij swój profil dostawcy\",\"go_inbox\":\"Przejdź do swojej skrzynki e-mail\",\"go_profile\":\"Przejdź do strony swojego profilu\",\"resend\":\"Wyślij ponownie e-mail weryfikacyjny\",\"snooze\":\"Przypomnij mi później\",\"verify\":\"Zweryfikować\"},\"vendor_profile_message\":\"Potrzebujemy dodatkowych informacji, aby zaoferować Ci kompletne rozwiązanie biznesowe. W tym celu należy wypełnić formularz dostępny na stronie naszego partnera płatniczego, Stripe.\",\"verification_instructions\":\"Musimy zweryfikować Twój adres e-mail, aby zweryfikować Twoje dane kontaktowe.\"},\"alias_name\":\"Pseudonim\",\"automatic_translation\":\"Automatyczne tłumaczenie\",\"automatic_translation_message_$link\":\"Ta strona została przetłumaczona automatycznie. Aby zobaczyć oryginalną wersję, kliknij {link}.\",\"error\":{\"unexpected\":\"Wystąpił nieoczekiwany błąd.
Ciężko pracujemy, aby to naprawić.
Spróbuj ponownie później.\"},\"hello\":\"Cześć,\",\"here\":\"tutaj\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"beta\":\"beta\",\"beta_message\":\"This page is in beta version. That means it\\u0027s still under development. You can share your feedback by email at admin@pigeonmarket.be.\"},\"fr\":{\"beta\":\"bêta\",\"beta_message\":\"Cette page est en version bêta. Cela signifie qu\\u0027elle est encore en cours de développement. Vous pouvez partager vos commentaires par email à admin@pigeonmarket.be.\"},\"nl\":{\"beta\":\"beta\",\"beta_message\":\"Deze pagina is in bètaversie. Dat betekent dat het nog in ontwikkeling is. U kunt uw feedback delen via e-mail op admin@pigeonmarket.be.\"},\"pl\":{\"beta\":\"beta\",\"beta_message\":\"Ta strona jest w wersji beta. Oznacza to, że wciąż jest w fazie rozwoju. Możesz podzielić się swoją opinią e-mailem na adres admin@pigeonmarket.be.\"},\"pt\":{\"beta\":\"beta\",\"beta_message\":\"Esta página está em versão beta. Isso significa que ainda está em desenvolvimento. Você pode compartilhar seus comentários por e-mail em admin@pigeonmarket.be.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"brand\":{\"install\":\"Install\",\"install_tooltip\":\"Access PigeonMarket directly from your desktop\"},\"help\":{\"contact_us\":\"Contact us\",\"header\":\"Need some help ?\"},\"links\":{\"auction_conditions\":\"Auction conditions\",\"cookies_consent_preferences\":\"Change cookies preferences\",\"privacy_policy\":\"Privacy policy\",\"terms_and_conditions\":\"Terms and conditions\"},\"payment_methods\":{\"header\":\"Payment methods\"},\"sectigo\":{\"alt\":\"image secured by Sectigo\"},\"social_network\":{\"header\":\"Social networks\"},\"website\":{\"author_$link\":\"This project has been designed, developed and published by {link}.\",\"brand\":\"PigeonMarket\",\"copyright_$date\":\"All right reserved {date}\",\"description\":\"PigeonMarket is an online marketplace where you can buy and sell racing pigeons.\"}},\"fr\":{\"brand\":{\"install\":\"Installer\",\"install_tooltip\":\"Accéder à PigeonMarket directement depuis votre bureau\"},\"help\":{\"contact_us\":\"Contactez-nous\",\"header\":\"Besoin d\\u0027aide ?\"},\"links\":{\"auction_conditions\":\"Conditions d\\u0027enchères\",\"cookies_consent_preferences\":\"Changer les préférences des cookies\",\"privacy_policy\":\"Règles de confidentialité\",\"terms_and_conditions\":\"Conditions générales\"},\"payment_methods\":{\"header\":\"Méthodes de paiement\"},\"sectigo\":{\"alt\":\"image sécurisée par Sectigo\"},\"social_network\":{\"header\":\"Réseaux sociaux\"},\"website\":{\"author_$link\":\"Ce projet est a été conçu, développé et réalisé par {link}.\",\"brand\":\"PigeonMarket\",\"copyright_$date\":\"Tous droits réservés {date}\",\"description\":\"PigeonMarket est une place de marché en ligne où vous pouvez acheter et vendre des pigeons voyageurs.\"}},\"nl\":{\"brand\":{\"install\":\"installeren\",\"install_tooltip\":\"Open PigeonMarket rechtstreeks vanaf uw desktop\"},\"help\":{\"contact_us\":\"Neem contact met ons op\",\"header\":\"Hulp nodig ?\"},\"links\":{\"auction_conditions\":\"Veilingvoorwaarden\",\"cookies_consent_preferences\":\"Wijzig de cookievoorkeuren\",\"privacy_policy\":\"Privacybeleid\",\"terms_and_conditions\":\"voorwaarden\"},\"payment_methods\":{\"header\":\"Betaalmethodes\"},\"sectigo\":{\"alt\":\"afbeelding beveiligd door Sectigo\"},\"social_network\":{\"header\":\"Sociale netwerken\"},\"website\":{\"author_$link\":\"Dit project is ontworpen, ontwikkeld en gemaakt door {link}.\",\"brand\":\"DuifMarkt\",\"copyright_$date\":\"Alle rechten voorbehouden {date}\",\"description\":\"PigeonMarket is een online marktplaats waar u postduiven kunt kopen en verkopen.\"}},\"pl\":{\"brand\":{\"install\":\"zainstalować\",\"install_tooltip\":\"Uzyskaj dostęp do PigeonMarket bezpośrednio z pulpitu\"},\"help\":{\"contact_us\":\"Skontaktuj się z nami\",\"header\":\"Potrzebuję pomocy ?\"},\"links\":{\"auction_conditions\":\"Warunki aukcji\",\"cookies_consent_preferences\":\"Zmień preferencje dotyczące plików cookie\",\"privacy_policy\":\"Polityka prywatności\",\"terms_and_conditions\":\"Regulamin\"},\"payment_methods\":{\"header\":\"Metody Płatności\"},\"sectigo\":{\"alt\":\"zdjęcie zabezpieczone przez Sectigo\"},\"social_network\":{\"header\":\"Portale społecznościowe\"},\"website\":{\"author_$link\":\"Ten projekt został zaprojektowany, opracowany i wykonany przez {link}.\",\"brand\":\"PigeonMarket\",\"copyright_$date\":\"Wszelkie prawa zastrzeżone {date}\",\"description\":\"PigeonMarket jest rynkiem internetowym, na którym można kupować i sprzedawać gołębie pocztowe.\"}},\"pt\":{\"brand\":{\"install\":\"Instalar\",\"install_tooltip\":\"Acesse PigeonMarket diretamente de seu desktop\"},\"help\":{\"contact_us\":\"Contate-Nos\",\"header\":\"Precisa de alguma ajuda ?\"},\"links\":{\"auction_conditions\":\"Condições do leilão\",\"cookies_consent_preferences\":\"Alterar preferências de cookies\",\"privacy_policy\":\"Política de Privacidade\",\"terms_and_conditions\":\"termos e Condições\"},\"payment_methods\":{\"header\":\"Métodos de Pagamento\"},\"sectigo\":{\"alt\":\"imagem protegida pela Sectigo\"},\"social_network\":{\"header\":\"Redes sociais\"},\"website\":{\"author_$link\":\"Este projeto foi concebido, desenvolvido e realizado por {link}.\",\"brand\":\"PigeonMarket\",\"copyright_$date\":\"Todos os direitos reservados {date}\",\"description\":\"PigeonMarket é um mercado online onde você pode comprar e vender pombos-correio.\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"subscribe\":\"Subscribe to our newsletter to receive all the information about the next sales and promotional offers
proposed by PigeonMarket.be\",\"subscribed\":\"You have subscribed to the newsletter.
You will soon receive news proposed by PigeonMarket.be in your inbox.\"},\"fr\":{\"subscribe\":\"Souscrivez à notre newsletter pour recevoir toutes les informations à propos des prochaines ventes et des offres promotionnelles
proposées par PigeonMarket.be\",\"subscribed\":\"Vous avez souscrit à la newsletter.
Vous recevrez bientôt des news proposées par PigeonMarket.be dans votre boîte e-mail.\"},\"nl\":{\"subscribe\":\"Schrijf u in op onze nieuwsbrief om alle informatie te ontvangen over de volgende verkoop- en promotie-aanbiedingen
voorgesteld door PigeonMarket.be\",\"subscribed\":\"U heeft zich aangemeld voor de nieuwsbrief.
U ontvangt binnenkort nieuws van PigeonMarket.be in uw inbox.\"},\"pt\":{\"subscribe\":\"Assine nosso boletim informativo para receber todas as informações sobre as próximas ofertas promocionais e de vendas
propostas por PigeonMarket.be\",\"subscribed\":\"Você se inscreveu no boletim informativo.
Em breve você receberá notícias propostas por PigeonMarket.be em sua caixa de entrada.\"},\"pl\":{\"subscribe\":\"Zapisz się do naszego newslettera, aby otrzymywać wszystkie informacje o kolejnych wyprzedażach i ofertach promocyjnych
proponowanych przez PigeonMarket.be\",\"subscribed\":\"Zapisałeś się do newslettera.
Wkrótce będziesz otrzymywać wiadomości proponowane przez PigeonMarket.be w swojej skrzynce odbiorczej.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"a_sale\":\"a sale\",\"about\":\"About\",\"add\":\"Add\",\"buy\":\"Buy\",\"contact\":\"Contact\",\"faq\":\"FAQ\",\"menu\":\"Menu\",\"messages\":\"Messages\",\"my_account\":\"My account\",\"my_business\":\"My business\",\"my_dashboard\":\"My dashboard\",\"notifications\":\"Notifications\",\"pigeons\":\"Pigeons\",\"search\":\"Search\",\"sell\":\"Sell\",\"shopping_cart\":\"Shopping cart\",\"sign_in\":\"Sign in\",\"sign_up\":\"Sign up\"},\"fr\":{\"a_sale\":\"une vente\",\"about\":\"À propos\",\"add\":\"Ajouter\",\"buy\":\"Acheter\",\"contact\":\"Contact\",\"faq\":\"FAQ\",\"menu\":\"Menu\",\"messages\":\"Messages\",\"my_account\":\"Mon compte\",\"my_business\":\"Mon business\",\"my_dashboard\":\"Mon tableau de bord\",\"notifications\":\"Notifications\",\"pigeons\":\"Pigeons\",\"search\":\"Chercher\",\"sell\":\"Vendre\",\"shopping_cart\":\"Panier\",\"sign_in\":\"Se connecter\",\"sign_up\":\"S\\u0027inscrire\"},\"nl\":{\"a_sale\":\"een uitverkoop\",\"about\":\"Wat betreft\",\"add\":\"Toevoegen\",\"buy\":\"Kopen\",\"contact\":\"contact\",\"faq\":\"FAQ\",\"menu\":\"Menu\",\"messages\":\"Berichten\",\"my_account\":\"Mijn rekening\",\"my_business\":\"Mijn zaak\",\"my_dashboard\":\"Mijn dashboard\",\"notifications\":\"meldingen\",\"pigeons\":\"Duiven\",\"search\":\"Zoeken\",\"sell\":\"Verkopen\",\"shopping_cart\":\"Winkelwagen\",\"sign_in\":\"Aanmelden\",\"sign_up\":\"inschrijven\"},\"pt\":{\"a_sale\":\"uma venda\",\"about\":\"Sobre\",\"add\":\"Adicionar\",\"buy\":\"Comprar\",\"contact\":\"Contato\",\"faq\":\"FAQ\",\"menu\":\"Cardápio\",\"messages\":\"Mensagens\",\"my_account\":\"Minha conta\",\"my_business\":\"Meu negócio\",\"my_dashboard\":\"Meu Painel\",\"notifications\":\"Notificações\",\"pigeons\":\"Pombos\",\"search\":\"Procurar\",\"sell\":\"Vender\",\"shopping_cart\":\"Carrinho de compras\",\"sign_in\":\"assinar em\",\"sign_up\":\"Inscrever-se\"},\"pl\":{\"a_sale\":\"Wyprzedaż\",\"about\":\"O\",\"add\":\"Dodaj\",\"buy\":\"Kupować\",\"contact\":\"kontakt\",\"faq\":\"FAQ\",\"menu\":\"Menu\",\"messages\":\"Wiadomości\",\"my_account\":\"Moje konto\",\"my_business\":\"Mój biznes\",\"my_dashboard\":\"moja tablica\",\"notifications\":\"Powiadomienia\",\"pigeons\":\"Gołębie\",\"search\":\"Szukaj\",\"sell\":\"Sprzedać\",\"shopping_cart\":\"Wózek sklepowy\",\"sign_in\":\"Zaloguj\",\"sign_up\":\"Zapisz się\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"account\":{\"title\":\"My account\"},\"cart\":{\"action_catalog\":\"Go to sales\\u0027 catalog\",\"action_checkout\":\"Checkout\",\"title\":\"Shopping cart\"},\"sign_in\":{\"title\":\"Sign in\",\"title_recovery\":\"Account recovery\"},\"sign_up\":{\"title\":\"Sign up\"},\"vendor\":{\"title\":\"Sign up as vendor\"}},\"fr\":{\"account\":{\"title\":\"Mon compte\"},\"cart\":{\"action_catalog\":\"Aller au catalogue des ventes\",\"action_checkout\":\"Commander\",\"title\":\"Panier\"},\"sign_in\":{\"title\":\"Se connecter\",\"title_recovery\":\"Récupération de compte\"},\"sign_up\":{\"title\":\"S\\u0027inscrire\"},\"vendor\":{\"title\":\"S\\u0027inscrire comme vendeur\"}},\"nl\":{\"account\":{\"title\":\"Mijn rekening\"},\"cart\":{\"action_catalog\":\"Ga naar de verkoopcatalogus\",\"action_checkout\":\"Uitchecken\",\"title\":\"Winkelwagen\"},\"sign_in\":{\"title\":\"Aanmelden\",\"title_recovery\":\"Accountherstel\"},\"sign_up\":{\"title\":\"inschrijven\"},\"vendor\":{\"title\":\"Meld u aan als leverancier\"}},\"pt\":{\"account\":{\"title\":\"Minha conta\"},\"cart\":{\"action_catalog\":\"Vá para o catálogo de vendas\",\"action_checkout\":\"Confira\",\"title\":\"Carrinho de compras\"},\"sign_in\":{\"title\":\"assinar em\",\"title_recovery\":\"Recuperação de conta\"},\"sign_up\":{\"title\":\"Inscrever-se\"},\"vendor\":{\"title\":\"Cadastre-se como fornecedor\"}},\"pl\":{\"account\":{\"title\":\"Moje konto\"},\"cart\":{\"action_catalog\":\"Przejdź do katalogu sprzedażowego\",\"action_checkout\":\"Sprawdzić\",\"title\":\"Wózek sklepowy\"},\"sign_in\":{\"title\":\"Zaloguj\",\"title_recovery\":\"odzyskiwanie konta\"},\"sign_up\":{\"title\":\"Zapisz się\"},\"vendor\":{\"title\":\"Zarejestruj się jako sprzedawca\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"a_sale\":\"a sale\",\"about\":\"About\",\"add\":\"Add\",\"buy\":\"Buy\",\"contact\":\"Contact\",\"faq\":\"FAQ\",\"home\":\"Home\",\"menu\":\"Menu\",\"my_account\":\"My account\",\"my_admin_dashboard\":\"My admin dashboard\",\"my_business\":\"My business\",\"my_dashboard\":\"My dasbhoard\",\"my_messages\":\"My messages\",\"my_notifications\":\"My notifications\",\"pigeons\":\"Pigeons\",\"search\":\"Search\",\"sell\":\"Sell\",\"shopping_cart\":\"Shopping cart\",\"sign_in\":\"Sign in\",\"sign_up\":\"Sign up\"},\"fr\":{\"a_sale\":\"une vente\",\"about\":\"À propos\",\"add\":\"Ajouter\",\"buy\":\"Acheter\",\"contact\":\"Contact\",\"faq\":\"FAQ\",\"home\":\"Accueil\",\"menu\":\"Menu\",\"my_account\":\"Mon compte\",\"my_admin_dashboard\":\"Mon tableau de bord d\\u0027administration\",\"my_business\":\"Mes affaires\",\"my_dashboard\":\"Mon tableau de bord\",\"my_messages\":\"Mes messages\",\"my_notifications\":\"Mes notifications\",\"pigeons\":\"Pigeons\",\"search\":\"Chercher\",\"sell\":\"Vendre\",\"shopping_cart\":\"Panier\",\"sign_in\":\"Se connecter\",\"sign_up\":\"S\\u0027inscrire\"},\"nl\":{\"a_sale\":\"een uitverkoop\",\"about\":\"Wat betreft\",\"add\":\"Toevoegen\",\"buy\":\"Kopen\",\"contact\":\"contact\",\"faq\":\"FAQ\",\"home\":\"Huis\",\"menu\":\"Menu\",\"my_account\":\"Mijn rekening\",\"my_admin_dashboard\":\"Mijn beheerdersdashboard\",\"my_business\":\"Mijn zaak\",\"my_dashboard\":\"mijn dasbhoard\",\"my_messages\":\"Mijn berichten\",\"my_notifications\":\"Mijn notificaties\",\"pigeons\":\"Duiven\",\"search\":\"Zoeken\",\"sell\":\"Verkopen\",\"shopping_cart\":\"Winkelwagen\",\"sign_in\":\"Aanmelden\",\"sign_up\":\"inschrijven\"},\"pt\":{\"a_sale\":\"uma venda\",\"about\":\"Sobre\",\"add\":\"Adicionar\",\"buy\":\"Comprar\",\"contact\":\"Contato\",\"faq\":\"FAQ\",\"home\":\"Casa\",\"menu\":\"Cardápio\",\"my_account\":\"Minha conta\",\"my_admin_dashboard\":\"Meu painel de administração\",\"my_business\":\"Meu negócio\",\"my_dashboard\":\"Meu dasbhoard\",\"my_messages\":\"Minhas mensagens\",\"my_notifications\":\"Minhas notificações\",\"pigeons\":\"Pombos\",\"search\":\"Procurar\",\"sell\":\"Vender\",\"shopping_cart\":\"Carrinho de compras\",\"sign_in\":\"assinar em\",\"sign_up\":\"Inscrever-se\"},\"pl\":{\"a_sale\":\"Wyprzedaż\",\"about\":\"O\",\"add\":\"Dodaj\",\"buy\":\"Kupować\",\"contact\":\"kontakt\",\"faq\":\"FAQ\",\"home\":\"Dom\",\"menu\":\"Menu\",\"my_account\":\"Moje konto\",\"my_admin_dashboard\":\"Mój panel administratora\",\"my_business\":\"Mój biznes\",\"my_dashboard\":\"Mój pulpit\",\"my_messages\":\"Moje wiadomości\",\"my_notifications\":\"Moje powiadomienia\",\"pigeons\":\"Gołębie\",\"search\":\"Szukaj\",\"sell\":\"Sprzedać\",\"shopping_cart\":\"Wózek sklepowy\",\"sign_in\":\"Zaloguj\",\"sign_up\":\"Zapisz się\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"action\":{\"clear_search\":\"Clear\",\"search\":\"Search\"},\"search\":{\"placeholder\":\"Type something to search\",\"placeholder_name\":\"Type a pigeon name\",\"placeholder_ring\":\"Type a pigeon ring number\"}},\"fr\":{\"action\":{\"clear_search\":\"Effacer\",\"search\":\"Chercher\"},\"search\":{\"placeholder\":\"Tapez quelque chose à rechercher\",\"placeholder_name\":\"Tapez un nom de pigeon\",\"placeholder_ring\":\"Tapez un numéro de bague de pigeon\"}},\"nl\":{\"action\":{\"clear_search\":\"Duidelijk\",\"search\":\"Zoeken\"},\"search\":{\"placeholder\":\"Typ iets om te zoeken\",\"placeholder_name\":\"Typ een duifnaam\",\"placeholder_ring\":\"Typ een duivenringnummer\"}},\"pl\":{\"action\":{\"clear_search\":\"Jasny\",\"search\":\"Szukaj\"},\"search\":{\"placeholder\":\"Wpisz coś do wyszukania\",\"placeholder_name\":\"Wpisz imię gołębia\",\"placeholder_ring\":\"Wpisz numer obrączki dla gołębi\"}},\"pt\":{\"action\":{\"clear_search\":\"Claro\",\"search\":\"Procurar\"},\"search\":{\"placeholder\":\"Digite algo para pesquisar\",\"placeholder_name\":\"Digite um nome de pombo\",\"placeholder_ring\":\"Digite um número de anilha de pombo\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"form\":{\"email\":{\"label\":\"E-mail\"},\"forgot_password\":\"Forgotten password?\",\"password\":{\"label\":\"Password\"},\"sign_in\":\"Sign in\",\"sign_up\":\"Sign up\",\"sign_up_message\":\"Create a member account on PigeonMarket\"}},\"fr\":{\"form\":{\"email\":{\"label\":\"E-mail\"},\"forgot_password\":\"Mot de passe oublié ?\",\"password\":{\"label\":\"Mot de passe\"},\"sign_in\":\"Se connecter\",\"sign_up\":\"S\\u0027inscrire\",\"sign_up_message\":\"Créer un compte membre sur PigeonMarket\"}},\"nl\":{\"form\":{\"email\":{\"label\":\"E-mail\"},\"forgot_password\":\"Vergeten wachtwoord?\",\"password\":{\"label\":\"Wachtwoord\"},\"sign_in\":\"Aanmelden\",\"sign_up\":\"inschrijven\",\"sign_up_message\":\"Maak een ledenaccount aan op PigeonMarket\"}},\"pt\":{\"form\":{\"email\":{\"label\":\"O email\"},\"forgot_password\":\"Senha esquecida?\",\"password\":{\"label\":\"Senha\"},\"sign_in\":\"assinar em\",\"sign_up\":\"Inscrever-se\",\"sign_up_message\":\"Crie uma conta de membro no PigeonMarket\"}},\"pl\":{\"form\":{\"email\":{\"label\":\"E-mail\"},\"forgot_password\":\"Zapomniane hasło?\",\"password\":{\"label\":\"Hasło\"},\"sign_in\":\"Zaloguj\",\"sign_up\":\"Zapisz się\",\"sign_up_message\":\"Utwórz konto członkowskie na PigeonMarket\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"form\":{\"email\":{\"label\":\"E-mail\"},\"send\":\"Send\",\"sign_in\":\"Sign in\"}},\"fr\":{\"form\":{\"email\":{\"label\":\"E-mail\"},\"send\":\"Envoyer\",\"sign_in\":\"Se connecter\"}},\"nl\":{\"form\":{\"email\":{\"label\":\"E-mail\"},\"send\":\"Sturen\",\"sign_in\":\"Aanmelden\"}},\"pt\":{\"form\":{\"email\":{\"label\":\"O email\"},\"send\":\"Mandar\",\"sign_in\":\"assinar em\"}},\"pl\":{\"form\":{\"email\":{\"label\":\"E-mail\"},\"send\":\"wysłać\",\"sign_in\":\"Zaloguj\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"action\":{\"go_inbox\":\"Go to your e-mail inbox\",\"sign_in\":\"Sign in\"},\"recovery_instructions\":\"You have received an e-mail to reset your password in your inbox.
Please click on the reset button from your e-mail to reset your password.\",\"reset_password\":\"Reset password\"},\"fr\":{\"action\":{\"go_inbox\":\"Aller à votre boite de messagerie\",\"sign_in\":\"Se connecter\"},\"recovery_instructions\":\"Vous avez reçu un e-mail pour réinitialiser votre mot de passe dans votre boîte e-mail.
Veuillez cliquer sur le bouton réinitialiser de votre e-mail pour réinitialiser votre mot de passe.\",\"reset_password\":\"Réinitialisation du mot de passe\"},\"nl\":{\"action\":{\"go_inbox\":\"Ga naar je e-mailinbox\",\"sign_in\":\"Aanmelden\"},\"recovery_instructions\":\"Je hebt een e-mail ontvangen om je wachtwoord opnieuw in te stellen in je inbox.
Klik op de resetknop in uw e-mail om uw wachtwoord opnieuw in te stellen.\",\"reset_password\":\"Reset wachtwoord\"},\"pt\":{\"action\":{\"go_inbox\":\"Vá para a sua caixa de entrada de e-mail\",\"sign_in\":\"assinar em\"},\"recovery_instructions\":\"Você recebeu um e-mail para redefinir sua senha na caixa de entrada.
Clique no botão de redefinir em seu e-mail para redefinir sua senha.\",\"reset_password\":\"Redefinir senha\"},\"pl\":{\"action\":{\"go_inbox\":\"Przejdź do swojej skrzynki e-mail\",\"sign_in\":\"Zaloguj\"},\"recovery_instructions\":\"Otrzymałeś wiadomość e-mail, aby zresetować hasło w skrzynce odbiorczej.
Kliknij przycisk resetowania w wiadomości e-mail, aby zresetować hasło.\",\"reset_password\":\"Zresetuj hasło\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"action\":{\"go_admin_dashboard\":\"Admin dashboard\",\"go_admin_notification_page\":\"Admin page of notifications\",\"go_approver_page\":\"Approval page\",\"go_breeder_dashboard\":\"My breeder dashboard\",\"go_business_dashboard\":\"My business dashboard\",\"go_dashboard\":\"My dashboard\",\"go_messages_center\":\"My messages\",\"go_notifications_center\":\"My notifications\",\"logout\":\"Logout\",\"retry\":\"Retry\"},\"alias_name\":\"alias name\",\"error\":{\"unexpected\":\"An unexpected error has occurred.
We work hard to fix it.
Please retry later.\"},\"hello\":\"Hello,\",\"quick_access\":\"Quick access\"},\"fr\":{\"action\":{\"go_admin_dashboard\":\"Tableau de bord administrateur\",\"go_admin_notification_page\":\"Page d\\u0027administration des notifications\",\"go_approver_page\":\"Page d\\u0027approbation\",\"go_breeder_dashboard\":\"Tableau de bord de mon éleveur\",\"go_business_dashboard\":\"Tableau de bord de mon entreprise\",\"go_dashboard\":\"Mon tableau de bord\",\"go_messages_center\":\"Mes messages\",\"go_notifications_center\":\"Mes notifications\",\"logout\":\"Se déconnecter\",\"retry\":\"Réessayer\"},\"alias_name\":\"pseudonyme\",\"error\":{\"unexpected\":\"Une erreur inattendue s\\u0027est produite.
Nous travaillons activement pour régler ce problème.
Veuillez réessayer plus tard.\"},\"hello\":\"Bonjour,\",\"quick_access\":\"Accès rapide\"},\"nl\":{\"action\":{\"go_admin_dashboard\":\"Admin Dashboard\",\"go_admin_notification_page\":\"Beheerpagina van meldingen\",\"go_approver_page\":\"Goedkeuring pagina\",\"go_breeder_dashboard\":\"Mijn fokkerdashboard\",\"go_business_dashboard\":\"Mijn bedrijfsdashboard\",\"go_dashboard\":\"Mijn dashboard\",\"go_messages_center\":\"Mijn berichten\",\"go_notifications_center\":\"Mijn notificaties\",\"logout\":\"Uitloggen\",\"retry\":\"Opnieuw proberen\"},\"alias_name\":\"alias naam\",\"error\":{\"unexpected\":\"Er is een onverwachte fout opgetreden.
We werken er hard aan om het probleem op te lossen.
Probeer het later opnieuw.\"},\"hello\":\"Hallo,\",\"quick_access\":\"Snelle toegang\"},\"pt\":{\"action\":{\"go_admin_dashboard\":\"Painel de administração\",\"go_admin_notification_page\":\"Página de administração de notificações\",\"go_approver_page\":\"página de aprovação\",\"go_breeder_dashboard\":\"Painel do meu criador\",\"go_business_dashboard\":\"Meu painel de negócios\",\"go_dashboard\":\"Meu Painel\",\"go_messages_center\":\"Minhas mensagens\",\"go_notifications_center\":\"Minhas notificações\",\"logout\":\"Sair\",\"retry\":\"Tente novamente\"},\"alias_name\":\"nome alternativo\",\"error\":{\"unexpected\":\"Ocorreu um erro inesperado.
Trabalhamos muito para corrigi-lo.
Tente novamente mais tarde.\"},\"hello\":\"Olá,\",\"quick_access\":\"ACESSO RÁPIDO\"},\"pl\":{\"action\":{\"go_admin_dashboard\":\"Pulpit administratora\",\"go_admin_notification_page\":\"Strona administratora powiadomień\",\"go_approver_page\":\"Strona zatwierdzania\",\"go_breeder_dashboard\":\"Mój pulpit hodowcy\",\"go_business_dashboard\":\"Pulpit nawigacyjny mojej firmy\",\"go_dashboard\":\"moja tablica\",\"go_messages_center\":\"Moje wiadomości\",\"go_notifications_center\":\"Moje powiadomienia\",\"logout\":\"Wyloguj\",\"retry\":\"Spróbować ponownie\"},\"alias_name\":\"pseudonim\",\"error\":{\"unexpected\":\"Wystąpił nieoczekiwany błąd.
Ciężko pracujemy, aby to naprawić.
Spróbuj ponownie później.\"},\"hello\":\"Cześć,\",\"quick_access\":\"Szybki dostęp\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"form\":{\"alias\":{\"label\":\"Alias name\"},\"already_member\":\"Do you have already an account ?\",\"be_vendor\":\"Be vendor on PigeonMarket\",\"country\":{\"label\":\"Country\"},\"email\":{\"label\":\"E-mail\"},\"error\":{\"terms\":\"You must have agreed to the terms and conditions and the privacy policy to sign up.\"},\"firstname\":{\"label\":\"First name\"},\"lastname\":{\"label\":\"Last name\"},\"never_share_data\":\"We\\u0027ll never share your personal data with anyone else.\",\"password\":{\"label\":\"Password\"},\"policies\":{\"accept_$0_$1\":\"By creating your account, you accept {0} and {1} of PigeonMarket.be.\",\"privacy_policy\":\"the privacy policy\",\"terms_and_conditions\":\"the terms and conditions\"},\"sign_in\":\"Sign in\",\"sign_up\":\"Sign Up\",\"sign_up_as_contributor\":\"Sign up as contributor\",\"sign_up_as_vendor\":\"Sign up as vendor\"}},\"fr\":{\"form\":{\"alias\":{\"label\":\"Pseudonyme\"},\"already_member\":\"Avez-vous déjà un compte ?\",\"be_vendor\":\"Soyez vendeur sur PigeonMarket\",\"country\":{\"label\":\"Pays\"},\"email\":{\"label\":\"E-mail\"},\"error\":{\"terms\":\"Vous devez accepter les conditions générales et les règles de confidentialité.\"},\"firstname\":{\"label\":\"Prénom\"},\"lastname\":{\"label\":\"Nom\"},\"never_share_data\":\"Nous ne partagerons jamais vos données personnelles avec quiconque.\",\"password\":{\"label\":\"Mot de passe\"},\"policies\":{\"accept_$0_$1\":\"En créant votre compte, vous acceptez {0} et {1} de PigeonMarket.be.\",\"privacy_policy\":\"les règles de confidentialité\",\"terms_and_conditions\":\"Les conditions générales\"},\"sign_in\":\"se connecter\",\"sign_up\":\"S\\u0027inscrire\",\"sign_up_as_contributor\":\"S\\u0027inscrire comme contributeur\",\"sign_up_as_vendor\":\"S\\u0027inscrire comme vendeur\"}},\"nl\":{\"form\":{\"alias\":{\"label\":\"Alias naam\"},\"already_member\":\"Heeft u al een account?\",\"be_vendor\":\"Wees verkoper op PigeonMarket\",\"country\":{\"label\":\"land\"},\"email\":{\"label\":\"E-mail\"},\"error\":{\"terms\":\"U moet de algemene voorwaarden en het privacybeleid accepteren.\"},\"firstname\":{\"label\":\"Voornaam\"},\"lastname\":{\"label\":\"Achternaam\"},\"never_share_data\":\"We zullen uw persoonlijke gegevens nooit met iemand anders delen.\",\"password\":{\"label\":\"Wachtwoord\"},\"policies\":{\"accept_$0_$1\":\"Door uw account aan te maken, accepteert u {0} en {1} van PigeonMarket.be.\",\"privacy_policy\":\"het privacybeleid\",\"terms_and_conditions\":\"de algemene voorwaarden\"},\"sign_in\":\"Aanmelden\",\"sign_up\":\"inschrijven\",\"sign_up_as_contributor\":\"Aanmelden als bijdrager\",\"sign_up_as_vendor\":\"Aanmelden als verkoper\"}},\"pt\":{\"form\":{\"alias\":{\"label\":\"Nome alternativo\"},\"already_member\":\"Você já tem uma conta?\",\"be_vendor\":\"Seja fornecedor no PigeonMarket\",\"country\":{\"label\":\"País\"},\"email\":{\"label\":\"O email\"},\"error\":{\"terms\":\"Você deve aceitar os termos e condições e a política de privacidade.\"},\"firstname\":{\"label\":\"Primeiro nome\"},\"lastname\":{\"label\":\"Último nome\"},\"never_share_data\":\"Nunca compartilharemos seus dados pessoais com mais ninguém.\",\"password\":{\"label\":\"Senha\"},\"policies\":{\"accept_$0_$1\":\"Ao criar sua conta, você aceita {0} e {1} de PigeonMarket.be.\",\"privacy_policy\":\"a política de privacidade\",\"terms_and_conditions\":\"os termos e Condições\"},\"sign_in\":\"assinar em\",\"sign_up\":\"Inscrever-se\",\"sign_up_as_contributor\":\"Inscrever-se como colaborador\",\"sign_up_as_vendor\":\"Inscrever-se como fornecedor\"}},\"pl\":{\"form\":{\"alias\":{\"label\":\"Pseudonim\"},\"already_member\":\"Masz już konto ?\",\"be_vendor\":\"Bądź sprzedawcą na PigeonMarket\",\"country\":{\"label\":\"Kraj\"},\"email\":{\"label\":\"E-mail\"},\"error\":{\"terms\":\"Musisz zaakceptować regulamin i politykę prywatności.\"},\"firstname\":{\"label\":\"imię\"},\"lastname\":{\"label\":\"nazwisko\"},\"never_share_data\":\"Nigdy nie udostępnimy nikomu Twoich danych osobowych.\",\"password\":{\"label\":\"Hasło\"},\"policies\":{\"accept_$0_$1\":\"Tworząc konto, akceptujesz {0} i {1} PigeonMarket.be.\",\"privacy_policy\":\"Polityka prywatności\",\"terms_and_conditions\":\"Regulamin\"},\"sign_in\":\"Zaloguj\",\"sign_up\":\"Zapisz się\",\"sign_up_as_contributor\":\"Zarejestruj się jako współtwórca\",\"sign_up_as_vendor\":\"Zarejestruj się jako sprzedawca\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"enjoy_experience\":\"Enjoy your experience on PigeonMarket.\",\"welcome\":\"Welcome\"},\"fr\":{\"enjoy_experience\":\"Profitez de votre expérience sur PigeonMarket.\",\"welcome\":\"Bienvenue\"},\"nl\":{\"enjoy_experience\":\"Geniet van uw ervaring op PigeonMarket.\",\"welcome\":\"Welkom\"},\"pt\":{\"enjoy_experience\":\"Aproveite sua experiência no PigeonMarket.\",\"welcome\":\"Bem vinda\"},\"pl\":{\"enjoy_experience\":\"Ciesz się swoim doświadczeniem na PigeonMarket.\",\"welcome\":\"Witamy\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"action\":{\"send_new_verification_code\":\"Send new verification code\",\"verify\":\"Verify\"},\"almost_done\":\"We need to verify your email address.\",\"form\":{\"verification_code\":{\"label\":\"Verification code\"}},\"go_inbox\":\"Go to your e-mail inbox\",\"last_step\":\"One last step\",\"message\":{\"verification_code_error\":\"The verification has failed. The code is incorrect or has expired.\"},\"verification_code_instructions\":\"Please enter the verification code below.\",\"verification_instructions\":\"You have received an e-mail in your inbox that contains a verification code.\",\"verification_spam_instructions\":\"Please check your spam folder too.\"},\"fr\":{\"action\":{\"send_new_verification_code\":\"Envoyer un nouveau code de vérification\",\"verify\":\"vérifier\"},\"almost_done\":\"Nous devons vérifier votre adresse e-mail.\",\"form\":{\"verification_code\":{\"label\":\"Code de vérification\"}},\"go_inbox\":\"Accédez à votre boîte de réception e-mail\",\"last_step\":\"Une dernière étape\",\"message\":{\"verification_code_error\":\"La vérification a échoué. Le code est incorrect ou a expiré.\"},\"verification_code_instructions\":\"Veuillez entrer le code de vérification ci-dessous.\",\"verification_instructions\":\"Vous avez reçu un e-mail dans votre boîte de réception contenant un code de vérification.\",\"verification_spam_instructions\":\"Veuillez également vérifier votre dossier spam.\"},\"nl\":{\"action\":{\"send_new_verification_code\":\"Nieuwe verificatiecode verzenden\",\"verify\":\"Verifiëren\"},\"almost_done\":\"We moeten uw e-mailadres verifiëren.\",\"form\":{\"verification_code\":{\"label\":\"Verificatie code\"}},\"go_inbox\":\"Ga naar je e-mailinbox\",\"last_step\":\"Een laatste stap\",\"message\":{\"verification_code_error\":\"De verificatie is mislukt. De code is onjuist of is verlopen.\"},\"verification_code_instructions\":\"Voer de verificatiecode hieronder in.\",\"verification_instructions\":\"Je hebt een e-mail in je inbox ontvangen die een verificatiecode bevat.\",\"verification_spam_instructions\":\"Controleer ook uw spammap.\"},\"pl\":{\"action\":{\"send_new_verification_code\":\"Wyślij nowy kod weryfikacyjny\",\"verify\":\"Zweryfikować\"},\"almost_done\":\"Musimy zweryfikować Twój adres e-mail.\",\"form\":{\"verification_code\":{\"label\":\"Kod weryfikacyjny\"}},\"go_inbox\":\"Przejdź do swojej skrzynki e-mail\",\"last_step\":\"Ostatni krok\",\"message\":{\"verification_code_error\":\"Weryfikacja nie powiodła się. Kod jest nieprawidłowy lub wygasł.\"},\"verification_code_instructions\":\"Wprowadź kod weryfikacyjny poniżej.\",\"verification_instructions\":\"Otrzymałeś wiadomość e-mail na swoją skrzynkę odbiorczą zawierającą kod weryfikacyjny.\",\"verification_spam_instructions\":\"Sprawdź też swój folder ze spamem.\"},\"pt\":{\"action\":{\"send_new_verification_code\":\"Enviar novo código de verificação\",\"verify\":\"Verificar\"},\"almost_done\":\"Precisamos verificar seu endereço de e-mail.\",\"form\":{\"verification_code\":{\"label\":\"Código de verificação\"}},\"go_inbox\":\"Vá para a sua caixa de entrada de e-mail\",\"last_step\":\"Um último passo\",\"message\":{\"verification_code_error\":\"A verificação falhou. O código está incorreto ou expirou.\"},\"verification_code_instructions\":\"Insira o código de verificação abaixo.\",\"verification_instructions\":\"Você recebeu um e-mail em sua caixa de entrada que contém um código de verificação.\",\"verification_spam_instructions\":\"Por favor, verifique sua caixa de spam também.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"form\":{\"be_vendor\":\"Be vendor on PigeonMarket\",\"corporation\":{\"label\":\"Are you a corporation ?\",\"value_no\":\"no\",\"value_yes\":\"yes\"},\"corporation_name\":{\"label\":\"Corporation\\u0027s name\"},\"country\":{\"label\":\"Country\"},\"email\":{\"label\":\"E-mail\"},\"error\":{\"terms\":\"You have to accept the terms and conditions and privacy policy.\"},\"firstname\":{\"label\":\"First name\"},\"iban\":{\"label\":\"Iban Bank account number\"},\"lastname\":{\"label\":\"Last name\"},\"name\":{\"label\":\"Buyer alias\"},\"never_share_data\":\"We\\u0027ll never share your personal data with anyone else.\",\"password\":{\"label\":\"Password\"},\"policies\":{\"accept_$0_$1\":\"In creating your account, you accept {0} and {1} of PigeonMarket.be.\",\"privacy_policy\":\"the privacy policy\",\"terms_and_conditions\":\"the terms and conditions\"},\"shop\":{\"label\":\"Shop name\"},\"sign_up\":\"Sign Up\",\"vat\":{\"label\":\"VAT number\"}}},\"fr\":{\"form\":{\"be_vendor\":\"Soyez vendeur sur PigeonMarket\",\"corporation\":{\"label\":\"Êtes-vous une entreprise ?\",\"value_no\":\"non\",\"value_yes\":\"oui\"},\"corporation_name\":{\"label\":\"Nom de l\\u0027entreprise\"},\"country\":{\"label\":\"Pays\"},\"email\":{\"label\":\"E-mail\"},\"error\":{\"terms\":\"Vous devez accepter les conditions générales et les règles de confidentialité.\"},\"firstname\":{\"label\":\"Prénom\"},\"iban\":{\"label\":\"Numéro de compte en banque IBAN\"},\"lastname\":{\"label\":\"Nom\"},\"name\":{\"label\":\"Pseudonyme acheteur\"},\"never_share_data\":\"Nous ne partegerons jamais vos données personnelles avec quiconque.\",\"password\":{\"label\":\"Mot de passe\"},\"policies\":{\"accept_$0_$1\":\"En créant votre compte, vous acceptez {0} et {1} de PigeonMarket.be.\",\"privacy_policy\":\"les règles de confidentialité\",\"terms_and_conditions\":\"Les conditions générales\"},\"shop\":{\"label\":\"Nom de la boutique\"},\"sign_up\":\"S\\u0027inscrire\",\"vat\":{\"label\":\"numéro de TVA\"}}},\"nl\":{\"form\":{\"be_vendor\":\"Wees verkoper op PigeonMarket\",\"corporation\":{\"label\":\"Ben je een bedrijf?\",\"value_no\":\"nee\",\"value_yes\":\"ja\"},\"corporation_name\":{\"label\":\"Naam van de onderneming\"},\"country\":{\"label\":\"Land\"},\"email\":{\"label\":\"E-mail\"},\"error\":{\"terms\":\"U moet de algemene voorwaarden en de regels omtrent privacybeleid aanvaarden.\"},\"firstname\":{\"label\":\"Voornaam\"},\"iban\":{\"label\":\"Iban bankrekeningnummer\"},\"lastname\":{\"label\":\"Naam\"},\"name\":{\"label\":\"Alias verkoper\"},\"never_share_data\":\"We zullen uw persoonlijke gegevens nooit met iemand delen.\",\"password\":{\"label\":\"Wachtwoord\"},\"policies\":{\"accept_$0_$1\":\"Door deze account aan te maken, aanvaardt u {0} et {1} van PigeonMarket.be.\",\"privacy_policy\":\"privacybeleid\",\"terms_and_conditions\":\"Algemene voorwaarden\"},\"shop\":{\"label\":\"Winkel naam\"},\"sign_up\":\"Zich inschrijven\",\"vat\":{\"label\":\"btw-nummer\"}}},\"pl\":{\"form\":{\"be_vendor\":\"Bądź sprzedawcą na PigeonMarket\",\"corporation\":{\"label\":\"Czy jesteś firmą?\",\"value_no\":\"NIE\",\"value_yes\":\"TAK\"},\"corporation_name\":{\"label\":\"Nazwa firmy\"},\"country\":{\"label\":\"Kraj\"},\"email\":{\"label\":\"E-mail\"},\"error\":{\"terms\":\"Musisz wyrazić zgodę na warunki i zasady prywatności.\"},\"firstname\":{\"label\":\"imię\"},\"iban\":{\"label\":\"Numer rachunku bankowego IBAN\"},\"lastname\":{\"label\":\"Nazwa\"},\"name\":{\"label\":\"Alias sprzedawcy\"},\"never_share_data\":\"Nigdy nie udostępnimy nikomu Twoich danych osobowych.\",\"password\":{\"label\":\"Hasło\"},\"policies\":{\"accept_$0_$1\":\"Tworząc konto, akceptujesz {0} i {1} od PigeonMarket.be.\",\"privacy_policy\":\"Zasady poufności\",\"terms_and_conditions\":\"Ogólne warunki\"},\"shop\":{\"label\":\"Nazwa sklepu\"},\"sign_up\":\"Zarejestrować\",\"vat\":{\"label\":\"Numer VAT\"}}},\"pt\":{\"form\":{\"be_vendor\":\"Seja fornecedor no PigeonMarket\",\"corporation\":{\"label\":\"Você é um negócio?\",\"value_no\":\"Não\",\"value_yes\":\"sim\"},\"corporation_name\":{\"label\":\"Nome da empresa\"},\"country\":{\"label\":\"País\"},\"email\":{\"label\":\"Email\"},\"error\":{\"terms\":\"Você deve concordar com os termos e condições e as regras de privacidade.\"},\"firstname\":{\"label\":\"Primeiro nome\"},\"iban\":{\"label\":\"Número da conta bancária IBAN\"},\"lastname\":{\"label\":\"Nome\"},\"name\":{\"label\":\"Alias de vendedor\"},\"never_share_data\":\"Nós nunca iremos compartilhar seus dados pessoais com ninguém.\",\"password\":{\"label\":\"Senha\"},\"policies\":{\"accept_$0_$1\":\"Ao criar sua conta, você aceita {0} e {1} do PigeonMarket.be.\",\"privacy_policy\":\"Regras de confidencialidade\",\"terms_and_conditions\":\"Condições Gerais\"},\"shop\":{\"label\":\"Nome da loja\"},\"sign_up\":\"registrar\",\"vat\":{\"label\":\"Número de IVA\"}}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"add_sale\":\"Create a sale\",\"alert\":{\"caption\":{\"required\":\"required\"},\"validate_email\":{\"action\":{\"go_inbox\":\"Go to inbox\",\"or\":\"or\",\"resend_email\":\"Re-send\"},\"message\":\"

You must have a validated e-mail address before to create a sale on PigeonMarket.be.

You have received a verification e-mail in your inbox.
If you don\\u0027t find it, you can re-send a verification e-mail by clicking on the \\u0027Re-send\\u0027 link button.

\"}},\"congratulations\":\"Congratulations\",\"vendor_message\":\"You are now a vendor on PigeonMarket.be\"},\"fr\":{\"add_sale\":\"Créer une vente\",\"alert\":{\"caption\":{\"required\":\"obligatoire\"},\"validate_email\":{\"action\":{\"go_inbox\":\"Aller à la boite e-mail\",\"or\":\"ou\",\"resend_email\":\"Réenvoyer\"},\"message\":\"

Vous devez avoir une adresse e-mail validée avant de créer une vente sur PigeonMarket.be.

Vous avez reçu un e-mail de vérification dans votre boîte e-mail.
Si vous ne le trouvez pas, vous pouvez renvoyer un e-mail de vérification en cliquant sur le bouton \\u0027Réenvoyer\\u0027.

\"}},\"congratulations\":\"Félicitations\",\"vendor_message\":\"Vous êtes maintenant un vendeur sur PigeonMarket.be\"},\"nl\":{\"add_sale\":\"Maak een verkoop\",\"alert\":{\"caption\":{\"required\":\"verplicht\"},\"validate_email\":{\"action\":{\"go_inbox\":\"Ga naar mailbox\",\"or\":\"of\",\"resend_email\":\"Opnieuw verzenden\"},\"message\":\"

U moet over een geldig e-mail adres beschikken om contribuant te worden op PigeonCommunity.be.

U hebt een verificatie e-mail in uw inbox ontvangen.
Zou u hem niet vinden dan kunt een verificatie e-mail opnieuw versturen door op de toets \\u0027Opnieuw versturen\\u0027 te drukken.

\"}},\"congratulations\":\"Gefeliciteerd\",\"vendor_message\":\"U bent nu verkoper op PigeonMarket.be\"},\"pl\":{\"add_sale\":\"Utwórz promocję\",\"alert\":{\"caption\":{\"required\":\"obowiązkowe\"},\"validate_email\":{\"action\":{\"go_inbox\":\"Przejdź do skrzynki e-mail\",\"or\":\"Lub\",\"resend_email\":\"WYSŁAĆ PONOWNIE\"},\"message\":\"

Przed utworzeniem sprzedaży na PigeonMarket.be musisz mieć zweryfikowany adres e-mail.

Otrzymałeś e-mail weryfikacyjny w swojej skrzynce pocztowej.
Jeśli nie możesz go znaleźć, możesz ponownie wysłać e-mail weryfikacyjny, klikając przycisk „Wyślij ponownie”.

\"}},\"congratulations\":\"Gratulacje\",\"vendor_message\":\"Jesteś teraz sprzedawcą na PigeonMarket.be\"},\"pt\":{\"add_sale\":\"Crie uma venda\",\"alert\":{\"caption\":{\"required\":\"Obrigatório\"},\"validate_email\":{\"action\":{\"go_inbox\":\"Vá para a caixa de e-mail\",\"or\":\"ou\",\"resend_email\":\"REENVIAR\"},\"message\":\"

Você deve ter um endereço de e-mail validado antes de criar uma venda no PigeonMarket.be.

Você recebeu um e-mail de verificação em sua caixa de correio.
Se não conseguir encontrar, você pode reenviar um e-mail de verificação clicando no botão \\u0027Reenviar\\u0027.

\"}},\"congratulations\":\"Parabéns\",\"vendor_message\":\"Agora você é um vendedor em PigeonMarket.be\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"close_tooltip\":\"Close\"},\"fr\":{\"close_tooltip\":\"Fermer\"},\"nl\":{\"close_tooltip\":\"Dichtbij\"},\"pt\":{\"close_tooltip\":\"Perto\"},\"pl\":{\"close_tooltip\":\"Blisko\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"status\":{\"error\":\"Error\",\"success\":\"Successful process !\"}},\"fr\":{\"status\":{\"error\":\"Erreur\",\"success\":\"Traitement réussi !\"}},\"nl\":{\"status\":{\"error\":\"Fout\",\"success\":\"Succesvol proces!\"}},\"pt\":{\"status\":{\"error\":\"Erro\",\"success\":\"Processo de sucesso!\"}},\"pl\":{\"status\":{\"error\":\"Błąd\",\"success\":\"Udany proces!\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"close_tooltip\":\"Close\"},\"fr\":{\"close_tooltip\":\"Fermer\"},\"nl\":{\"close_tooltip\":\"Dichtbij\"},\"pt\":{\"close_tooltip\":\"Perto\"},\"pl\":{\"close_tooltip\":\"Blisko\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"toggle\":\"toggle\"},\"fr\":{\"toggle\":\"basculer\"},\"nl\":{\"toggle\":\"Schakelen\"},\"pt\":{\"toggle\":\"Alternancia\"},\"pl\":{\"toggle\":\"Przełącznik\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"action\":{\"go_to_catalog\":\"Go to catalog page\",\"sign_in\":\"Sign in\"},\"alert\":{\"not_found_auth_message\":\"Some pages are only accessible to authenticated member.\"},\"message\":{\"not_found\":\"Page not found.\",\"not_found_message\":\"Sorry, we can\\u0027t find the page your are looking for.\"}},\"fr\":{\"action\":{\"go_to_catalog\":\"Aller à la page du catalogue\",\"sign_in\":\"Se connecter\"},\"alert\":{\"not_found_auth_message\":\"Certaines pages sont accessibles uniquement aux membres authentifiés.\"},\"message\":{\"not_found\":\"Page non trouvée.\",\"not_found_message\":\"Désolé, nous ne trouvons pas la page que vous cherchez.\"}},\"nl\":{\"action\":{\"go_to_catalog\":\"Ga naar de cataloguspagina\",\"sign_in\":\"Aanmelden\"},\"alert\":{\"not_found_auth_message\":\"Sommige pagina\\u0027s zijn alleen toegankelijk voor geauthenticeerd lid.\"},\"message\":{\"not_found\":\"Pagina niet gevonden.\",\"not_found_message\":\"Sorry, we kunnen de pagina die u zoekt niet vinden.\"}},\"pt\":{\"action\":{\"go_to_catalog\":\"Vá para a página do catálogo\",\"sign_in\":\"assinar em\"},\"alert\":{\"not_found_auth_message\":\"Algumas páginas são acessíveis apenas para membros autenticados.\"},\"message\":{\"not_found\":\"Página não encontrada.\",\"not_found_message\":\"Não foi possível encontrar a página que você está procurando.\"}},\"pl\":{\"action\":{\"go_to_catalog\":\"Przejdź do strony katalogu\",\"sign_in\":\"Zaloguj\"},\"alert\":{\"not_found_auth_message\":\"Niektóre strony są dostępne tylko dla uwierzytelnionego członka.\"},\"message\":{\"not_found\":\"Strona nie znaleziona.\",\"not_found_message\":\"Przepraszamy, nie możemy znaleźć strony, której szukasz.\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"action\":{\"retry\":\"Retry\"},\"message\":{\"unexpected\":\"An unexpected error has occured.
We work hard to fix it.
Please, retry later.\"}},\"fr\":{\"action\":{\"retry\":\"Réessayer\"},\"message\":{\"unexpected\":\"Une erreur inattendue s\\u0027est produite.
Nous mettons tout en œuvre pour régler cela.
S\\u0027il-vous-plaît, réessayer plus tard.\"}},\"nl\":{\"action\":{\"retry\":\"Opnieuw proberen\"},\"message\":{\"unexpected\":\"Er is een onverwachte fout opgetreden.
We werken er hard aan om het probleem op te lossen.
Probeer het later opnieuw.\"}},\"pt\":{\"action\":{\"retry\":\"Tente novamente\"},\"message\":{\"unexpected\":\"Ocorreu um erro inesperado.
Trabalhamos muito para corrigi-lo.
Por favor, tente novamente mais tarde.\"}},\"pl\":{\"action\":{\"retry\":\"Spróbować ponownie\"},\"message\":{\"unexpected\":\"Wystąpił nieoczekiwany błąd.
Ciężko pracujemy, aby to naprawić.
Spróbuj ponownie później.\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"loading\":\"Loading ...\"},\"fr\":{\"loading\":\"Chargement ...\"},\"nl\":{\"loading\":\"Bezig met laden ...\"},\"pt\":{\"loading\":\"Carregando ...\"},\"pl\":{\"loading\":\"Ładuję ...\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"apps\":{\"header\":\"Apps\",\"pigeon_community\":{\"description\":\"The collection of racing pigeons pedigrees online.\"},\"pigeon_market\":{\"description\":\"The online marketplace for racing pigeons.\"}},\"social_networks\":{\"facebook\":{\"brand\":\"Facebook\",\"hashtag\":\"#PigeonMarket\",\"note\":\"Subscribe you\"},\"header\":\"Social networks\",\"twitter\":{\"brand\":\"Twitter\",\"hashtag\":\"#PigeonMarket\",\"note\":\"Follow us\"}}},\"fr\":{\"apps\":{\"header\":\"Applications\",\"pigeon_community\":{\"description\":\"La collection des pedigree des pigeons voyageurs en ligne.\"},\"pigeon_market\":{\"description\":\"La place de marché des pigeons voyageurs en ligne.\"}},\"social_networks\":{\"facebook\":{\"brand\":\"Facebook\",\"hashtag\":\"#PigeonMarket\",\"note\":\"Abonnez-vous\"},\"header\":\"Réseaux sociaux\",\"twitter\":{\"brand\":\"Twitter\",\"hashtag\":\"#PigeonMarket\",\"note\":\"Suivez-nous\"}}},\"nl\":{\"apps\":{\"header\":\"Apps\",\"pigeon_community\":{\"description\":\"De collectie stambomen van postduiven online.\"},\"pigeon_market\":{\"description\":\"De online marktplaats voor postduiven.\"}},\"social_networks\":{\"facebook\":{\"brand\":\"facebook\",\"hashtag\":\"#PigeonMarket\",\"note\":\"Abonneer je\"},\"header\":\"Sociale netwerken\",\"twitter\":{\"brand\":\"tjilpen\",\"hashtag\":\"#PigeonMarket\",\"note\":\"Volg ons\"}}},\"pt\":{\"apps\":{\"header\":\"apps\",\"pigeon_community\":{\"description\":\"A coleção de pedigrees de pombos-correio online.\"},\"pigeon_market\":{\"description\":\"O mercado online para pombos-correio.\"}},\"social_networks\":{\"facebook\":{\"brand\":\"Facebook\",\"hashtag\":\"#PigeonMarket\",\"note\":\"Inscrever você\"},\"header\":\"Redes sociais\",\"twitter\":{\"brand\":\"Twitter\",\"hashtag\":\"#PigeonMarket\",\"note\":\"Siga-nos\"}}},\"pl\":{\"apps\":{\"header\":\"Aplikacje\",\"pigeon_community\":{\"description\":\"Kolekcja rodowodów gołębi pocztowych online.\"},\"pigeon_market\":{\"description\":\"Internetowy rynek gołębi pocztowych.\"}},\"social_networks\":{\"facebook\":{\"brand\":\"Facebook\",\"hashtag\":\"#PigeonMarket\",\"note\":\"Zasubskrybuj cię\"},\"header\":\"Portale społecznościowe\",\"twitter\":{\"brand\":\"Świergot\",\"hashtag\":\"#PigeonMarket\",\"note\":\"Podążaj za nami\"}}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"launcher\":\"launcher\"},\"fr\":{\"launcher\":\"lanceur\"},\"nl\":{\"launcher\":\"Launcher\"},\"pt\":{\"launcher\":\"Launcher\"},\"pl\":{\"launcher\":\"Wyrzutnia\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"process_done_message\":\"The form has been processed with success.
The data is now saved in our system.\",\"processing\":\"Processing...\"},\"fr\":{\"process_done_message\":\"Le formulaire a été traité avec succès.
Les données sont maintenant enregistrées dans notre système.\",\"processing\":\"En cours de traitement ...\"},\"nl\":{\"process_done_message\":\"Het formulier is met succes verwerkt.
De gegevens zijn nu opgeslagen in ons systeem.\",\"processing\":\"Verwerken...\"},\"pt\":{\"process_done_message\":\"O formulário foi processado com sucesso.
Os dados agora estão salvos em nosso sistema.\",\"processing\":\"Em processamento...\"},\"pl\":{\"process_done_message\":\"Formularz został pomyślnie przetworzony.
Dane są teraz zapisane w naszym systemie.\",\"processing\":\"Przetwarzanie...\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"action\":{\"select_file\":\"Select a file\"},\"browse_message\":\"Browse your computer and select a file\",\"img_thumb\":{\"alt\":\"thumbnail\"},\"picture\":{\"label\":\"Picture\"},\"remove\":{\"title\":\"Remove the picture\"}},\"fr\":{\"action\":{\"select_file\":\"Sélectionner un fichier\"},\"browse_message\":\"Parcourir votre ordinateur et sélectionner un fichier\",\"img_thumb\":{\"alt\":\"miniature\"},\"picture\":{\"label\":\"Photo\"},\"remove\":{\"title\":\"Supprimer la photo\"}},\"nl\":{\"action\":{\"select_file\":\"Selecteer een bestand\"},\"browse_message\":\"Blader door uw computer en selecteer een bestand\",\"img_thumb\":{\"alt\":\"thumbnail\"},\"picture\":{\"label\":\"afbeelding\"},\"remove\":{\"title\":\"Verwijder de afbeelding\"}},\"pt\":{\"action\":{\"select_file\":\"Selecione um arquivo\"},\"browse_message\":\"Navegue no seu computador e selecione um arquivo\",\"img_thumb\":{\"alt\":\"Miniatura\"},\"picture\":{\"label\":\"Cenário\"},\"remove\":{\"title\":\"Remova a imagem\"}},\"pl\":{\"action\":{\"select_file\":\"wybierz plik\"},\"browse_message\":\"Przeglądaj swój komputer i wybierz plik\",\"img_thumb\":{\"alt\":\"Miniaturka\"},\"picture\":{\"label\":\"Obrazek\"},\"remove\":{\"title\":\"Usuń zdjęcie\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"toggle\":\"toggle\"},\"fr\":{\"toggle\":\"basculer\"},\"nl\":{\"toggle\":\"Schakelen\"},\"pt\":{\"toggle\":\"Alternancia\"},\"pl\":{\"toggle\":\"Przełącznik\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"action\":{\"contact_us\":\"Contact us\"},\"help\":\"If you have a question about your order, or if you want to know more about the services provided by PigeonMarket.be
don\\u0027t hesitate to contact us and you willl receive an answer as soon as possible.\",\"help_title\":\"Do you need help ?\"},\"fr\":{\"action\":{\"contact_us\":\"Contactez-nous\"},\"help\":\"Si vous avez une question au sujet de votre commande ou si vous désirez en apprendre plus sur les services fournis par PigeonMarket.be
n\\u0027hésitez pas à nous contacter et vous recevrez une réponse dans les plus brefs délais.\",\"help_title\":\"Avez-vous besoin d\\u0027aide ?\"},\"nl\":{\"action\":{\"contact_us\":\"Neem contact met ons op\"},\"help\":\"Heeft u een vraag over uw bestelling, of wilt u meer weten over de dienstverlening van PigeonMarket.be
aarzel dan niet om contact met ons op te nemen en u krijgt zo snel mogelijk antwoord.\",\"help_title\":\"Heb je hulp nodig ?\"},\"pt\":{\"action\":{\"contact_us\":\"Contate-Nos\"},\"help\":\"Se tiver alguma questão sobre a sua encomenda ou se quiser saber mais sobre os serviços prestados pela PigeonMarket.be
não hesite em nos contactar e receberá uma resposta o mais breve possível.\",\"help_title\":\"Você precisa de ajuda ?\"},\"pl\":{\"action\":{\"contact_us\":\"Skontaktuj się z nami\"},\"help\":\"Jeśli masz pytanie dotyczące swojego zamówienia lub chcesz dowiedzieć się więcej o usługach świadczonych przez PigeonMarket.be
, nie wahaj się z nami skontaktować, a otrzymasz odpowiedź tak szybko, jak to możliwe.\",\"help_title\":\"Potrzebujesz pomocy ?\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"action\":{\"send\":\"Send\"},\"email\":{\"placeholder\":\"Enter your e-mail\"},\"error\":{\"email_invalid\":\"The e-mail field is invalid.\",\"email_required\":\"The e-mail field is required.\"},\"notifications\":{\"subscribed_newsletter\":\"You have subscribed to the newsletter.
You will soon receive news in your inbox.\"},\"subscribe\":\"Subscribe to our newsletter to receive all information\",\"subscribe_title\":\"Subscribe to our newsletter\"},\"fr\":{\"action\":{\"send\":\"Envoyer\"},\"email\":{\"placeholder\":\"Entrez votre e-mail\"},\"error\":{\"email_invalid\":\"Le champ e-mail est invalide.\",\"email_required\":\"Le champ e-mail est requis.\"},\"notifications\":{\"subscribed_newsletter\":\"Vous avez souscrit à la newsletter.
Vous recevrez bientôt des news dans votre boîte e-mail.\"},\"subscribe\":\"Souscrivez à notre newsletter pour recevoir toutes les informations\",\"subscribe_title\":\"Souscrivez à notre newsletter\"},\"nl\":{\"action\":{\"send\":\"Sturen\"},\"email\":{\"placeholder\":\"Voer uw e-mailadres in\"},\"error\":{\"email_invalid\":\"Het e-mailveld is ongeldig.\",\"email_required\":\"Het e-mailveld is verplicht.\"},\"notifications\":{\"subscribed_newsletter\":\"U heeft zich aangemeld voor de nieuwsbrief.
U ontvangt binnenkort nieuws in uw inbox.\"},\"subscribe\":\"Schrijf je in op onze nieuwsbrief om alle informatie te ontvangen\",\"subscribe_title\":\"Abonneer op onze nieuwsbrief\"},\"pt\":{\"action\":{\"send\":\"Mandar\"},\"email\":{\"placeholder\":\"Digite seu e-mail\"},\"error\":{\"email_invalid\":\"O campo do e-mail é inválido.\",\"email_required\":\"O campo do e-mail é obrigatório.\"},\"notifications\":{\"subscribed_newsletter\":\"Você se inscreveu no boletim informativo.
Em breve você receberá notícias em sua caixa de entrada.\"},\"subscribe\":\"Assine nossa newsletter para receber todas as informações\",\"subscribe_title\":\"Assine a nossa newsletter\"},\"pl\":{\"action\":{\"send\":\"wysłać\"},\"email\":{\"placeholder\":\"Wprowadź swój email\"},\"error\":{\"email_invalid\":\"Pole e-mail jest nieprawidłowe.\",\"email_required\":\"Pole e-mail jest wymagane.\"},\"notifications\":{\"subscribed_newsletter\":\"Zapisałeś się do newslettera.
Wkrótce będziesz otrzymywać wiadomości w swojej skrzynce odbiorczej.\"},\"subscribe\":\"Zapisz się do naszego newslettera, aby otrzymywać wszystkie informacje\",\"subscribe_title\":\"Zapisz się do naszego newslettera\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"connect\":\"Connect with Stripe\",\"dashboard\":\"Stripe dashboard\",\"tooltip\":\"We need additional information to offer you a complete business solution. For that you must fill the form available on our payment partner website, Stripe.\"},\"fr\":{\"connect\":\"Connectez-vous avec Stripe\",\"dashboard\":\"Tableau de bord Stripe\",\"tooltip\":\"Nous avons besoin d\\u0027informations complétementaires pour vous offrir une solution business complète. Pour cela, vous devez remplir le formulaire disponible sur le site de notre partenaire de paiement, Stripe.\"},\"nl\":{\"connect\":\"Maak verbinding met Stripe\",\"dashboard\":\"Gestreept dashboard\",\"tooltip\":\"We hebben aanvullende informatie nodig om u een complete zakelijke oplossing te bieden. Daarvoor moet u het formulier invullen dat beschikbaar is op de website van onze betalingspartner, Stripe.\"},\"pt\":{\"connect\":\"Conecte-se com Stripe\",\"dashboard\":\"Painel Stripe\",\"tooltip\":\"Precisamos de informações adicionais para lhe oferecer uma solução comercial completa. Para isso você deve preencher o formulário disponível em nosso site parceiro de pagamento, Stripe.\"},\"pl\":{\"connect\":\"Połącz się ze Stripe\",\"dashboard\":\"Deska rozdzielcza Stripe\",\"tooltip\":\"Potrzebujemy dodatkowych informacji, aby zaoferować Ci kompletne rozwiązanie biznesowe. W tym celu należy wypełnić formularz dostępny na stronie naszego partnera płatniczego, Stripe.\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"catalog\":\"Catalog\",\"checkout\":\"Checkout\",\"contact\":\"Contact\",\"lab\":{\"demo\":\"Demo\",\"level_1\":\"Level 1\",\"level_1_1\":\"Level 1.1\"}},\"fr\":{\"catalog\":\"Catalogue\",\"checkout\":\"Commande\",\"contact\":\"Contact\",\"lab\":{\"demo\":\"Démo\",\"level_1\":\"Niveau 1\",\"level_1_1\":\"Niveau 1.1\"}},\"nl\":{\"catalog\":\"Catalogus\",\"checkout\":\"Uitchecken\",\"contact\":\"contact\",\"lab\":{\"demo\":\"demonstratie\",\"level_1\":\"Niveau 1\",\"level_1_1\":\"Niveau 1.1\"}},\"pt\":{\"catalog\":\"Catálogo\",\"checkout\":\"Confira\",\"contact\":\"Contato\",\"lab\":{\"demo\":\"Demonstração\",\"level_1\":\"Nível 1\",\"level_1_1\":\"Nível 1.1\"}},\"pl\":{\"catalog\":\"Katalog\",\"checkout\":\"Sprawdzić\",\"contact\":\"kontakt\",\"lab\":{\"demo\":\"próbny\",\"level_1\":\"Poziom 1\",\"level_1_1\":\"Poziom 1.1\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"picture\":{\"alt\":\"pigeon picture\",\"alt_generic\":\"generic pigeon picture\"}},\"fr\":{\"picture\":{\"alt\":\"photo du pigeon\",\"alt_generic\":\"photo générique du pigeon\"}},\"nl\":{\"picture\":{\"alt\":\"duif foto\",\"alt_generic\":\"generiek duivenbeeld\"}},\"pt\":{\"picture\":{\"alt\":\"foto de pombo\",\"alt_generic\":\"foto genérica de pombo\"}},\"pl\":{\"picture\":{\"alt\":\"zdjęcie gołębia\",\"alt_generic\":\"ogólne zdjęcie gołębia\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"parent\":{\"father\":\"Father\",\"grandfather\":\"Grandfather\",\"grandmother\":\"Grandmother\",\"great grandfather\":\"Great Grandfather\",\"great grandmother\":\"Great Grandmother\",\"mother\":\"Mother\",\"null\":\"Unknown\",\"parent\":\"Parent\",\"pigeon\":\"Pigeon\"},\"see_new_tab\":\"See parent in a new tab\"},\"fr\":{\"parent\":{\"father\":\"Père\",\"grandfather\":\"Grand-Père\",\"grandmother\":\"Grand-Mère\",\"great grandfather\":\"Arrière Grand-Père\",\"great grandmother\":\"Arrière Grand-Mère\",\"mother\":\"Mère\",\"null\":\"Inconnu\",\"parent\":\"Parent\",\"pigeon\":\"Pigeon\"},\"see_new_tab\":\"voir le parent dans un nouvel onglet\"},\"nl\":{\"parent\":{\"father\":\"VADER\",\"grandfather\":\"grootvader\",\"grandmother\":\"Grootmoeder\",\"great grandfather\":\"Overgrootvader\",\"great grandmother\":\"Overgrootmoeder\",\"mother\":\"MOEDER\",\"null\":\"Onbekend\",\"parent\":\"Ouder\",\"pigeon\":\"Duif\"},\"see_new_tab\":\"Zie ouder op een nieuw tabblad\"},\"pt\":{\"parent\":{\"father\":\"Pai\",\"grandfather\":\"Avó\",\"grandmother\":\"Avó\",\"great grandfather\":\"Bisavô\",\"great grandmother\":\"Bisavô\",\"mother\":\"Mãe\",\"null\":\"Desconhecido\",\"parent\":\"Pai\",\"pigeon\":\"pombo\"},\"see_new_tab\":\"ver o pai em uma nova guia\"},\"pl\":{\"parent\":{\"father\":\"ojciec\",\"grandfather\":\"Dziadek\",\"grandmother\":\"Babcia\",\"great grandfather\":\"Pradziadek\",\"great grandmother\":\"Pra babcia\",\"mother\":\"Matka\",\"null\":\"nieznany\",\"parent\":\"Rodzic\",\"pigeon\":\"Gołąb\"},\"see_new_tab\":\"zobacz rodzica w nowej karcie\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"IPv\":\"In-Prov.\",\"IRg\":\"In-Reg.\",\"Int\":\"Int.\",\"Lc\":\"Loc.\",\"Nat\":\"Nat.\",\"Pv\":\"Prov.\",\"Rg\":\"Reg.\",\"Zn\":\"Zon.\",\"table\":{\"header_prizes\":\"Prizes\"}},\"fr\":{\"IPv\":\"In-Prov.\",\"IRg\":\"In-Reg.\",\"Int\":\"Int.\",\"Lc\":\"Loc.\",\"Nat\":\"Nat.\",\"Pv\":\"Prov.\",\"Rg\":\"Reg.\",\"Zn\":\"Zon.\",\"table\":{\"header_prizes\":\"Prix\"}},\"nl\":{\"IPv\":\"In-Prov.\",\"IRg\":\"In-Reg.\",\"Int\":\"Int.\",\"Lc\":\"Loc.\",\"Nat\":\"Nat.\",\"Pv\":\"Prov.\",\"Rg\":\"Reg.\",\"Zn\":\"Zon.\",\"table\":{\"header_prizes\":\"prijzen\"}},\"pt\":{\"IPv\":\"In-Prov.\",\"IRg\":\"In-Reg.\",\"Int\":\"Int.\",\"Lc\":\"Loc.\",\"Nat\":\"Nat.\",\"Pv\":\"Prov.\",\"Rg\":\"Reg.\",\"Zn\":\"Zon.\",\"table\":{\"header_prizes\":\"Prêmios\"}},\"pl\":{\"IPv\":\"In-Prov.\",\"IRg\":\"In-Reg.\",\"Int\":\"Int.\",\"Lc\":\"Loc.\",\"Nat\":\"Nat.\",\"Pv\":\"Prz.\",\"Rg\":\"Reg.\",\"Zn\":\"Zon.\",\"table\":{\"header_prizes\":\"Nagrody\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"IPv\":\"Inter-Prov.\",\"IRg\":\"Inter-Reg.\",\"Int\":\"Int.\",\"Lc\":\"Loc.\",\"Nat\":\"Nat.\",\"Prizes\":\"Prizes\",\"Pv\":\"Prov.\",\"Races\":\"Races\",\"Ranking\":\"Ranking\",\"Rg\":\"Reg.\",\"Zn\":\"Zon.\",\"top_ranking\":\"Top\"},\"fr\":{\"IPv\":\"Inter-Prov.\",\"IRg\":\"Inter-Reg.\",\"Int\":\"Int.\",\"Lc\":\"Loc.\",\"Nat\":\"Nat.\",\"Prizes\":\"Prix\",\"Pv\":\"Prov.\",\"Races\":\"Courses\",\"Ranking\":\"Classement\",\"Rg\":\"Reg.\",\"Zn\":\"Zon.\",\"top_ranking\":\"Top\"},\"nl\":{\"IPv\":\"Inter-Prov.\",\"IRg\":\"Inter-Reg.\",\"Int\":\"Int.\",\"Lc\":\"Loc.\",\"Nat\":\"Nat.\",\"Prizes\":\"prijzen\",\"Pv\":\"Prov.\",\"Races\":\"Races\",\"Ranking\":\"ranking\",\"Rg\":\"Reg.\",\"Zn\":\"Zon.\",\"top_ranking\":\"Top\"},\"pt\":{\"IPv\":\"Inter-Prov.\",\"IRg\":\"Inter-Reg.\",\"Int\":\"Int.\",\"Lc\":\"Loc.\",\"Nat\":\"Nat.\",\"Prizes\":\"Prêmios\",\"Pv\":\"Prov.\",\"Races\":\"Corridas\",\"Ranking\":\"RANKING\",\"Rg\":\"Reg.\",\"Zn\":\"Zon.\",\"top_ranking\":\"Topo\"},\"pl\":{\"IPv\":\"Inter-Prov.\",\"IRg\":\"Inter-Reg.\",\"Int\":\"Int.\",\"Lc\":\"Loc.\",\"Nat\":\"Nat.\",\"Prizes\":\"Nagrody\",\"Pv\":\"Prz.\",\"Races\":\"Wyścigi\",\"Ranking\":\"Zaszeregowanie\",\"Rg\":\"Reg.\",\"Zn\":\"Zon.\",\"top_ranking\":\"Top\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"loading\":\"Loading ...\",\"no_data\":\"No data\"},\"fr\":{\"loading\":\"Chargement ...\",\"no_data\":\"Aucune donnée\"},\"nl\":{\"loading\":\"Bezig met laden ...\",\"no_data\":\"Geen gegevens\"},\"pt\":{\"loading\":\"Carregando ...\",\"no_data\":\"Sem dados\"},\"pl\":{\"loading\":\"Ładuję ...\",\"no_data\":\"Brak danych\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"parent\":{\"Father\":\"Father\",\"Grandfather\":\"Grandfather\",\"Grandmother\":\"Grandmother\",\"Great Grandfather\":\"Great Grandfather\",\"Great Grandmother\":\"Great Grandmother\",\"Mother\":\"Mother\",\"Pigeon\":\"Pigeon\",\"null\":\"Unknown\",\"undefined\":\"Unknown\",\"unknown\":\"Unknown\"},\"unknown\":\"Unknown\"},\"fr\":{\"parent\":{\"Father\":\"Père\",\"Grandfather\":\"Grand-Père\",\"Grandmother\":\"Grand-Mère\",\"Great Grandfather\":\"Arrière Grand-Père\",\"Great Grandmother\":\"Arrière Grand-Mère\",\"Mother\":\"Mère\",\"Pigeon\":\"Pigeon\",\"null\":\"Inconnu\",\"undefined\":\"Inconnu\",\"unknown\":\"Inconnu\"},\"unknown\":\"Inconnu\"},\"nl\":{\"parent\":{\"Father\":\"VADER\",\"Grandfather\":\"grootvader\",\"Grandmother\":\"Grootmoeder\",\"Great Grandfather\":\"Overgrootvader\",\"Great Grandmother\":\"Overgrootmoeder\",\"Mother\":\"MOEDER\",\"Pigeon\":\"Duif\",\"null\":\"Onbekend\",\"undefined\":\"Onbekend\",\"unknown\":\"Onbekend\"},\"unknown\":\"Onbekend\"},\"pt\":{\"parent\":{\"Father\":\"Pai\",\"Grandfather\":\"Avó\",\"Grandmother\":\"Avó\",\"Great Grandfather\":\"Bisavô\",\"Great Grandmother\":\"Bisavô\",\"Mother\":\"Mãe\",\"Pigeon\":\"pombo\",\"null\":\"Desconhecido\",\"undefined\":\"Desconhecido\",\"unknown\":\"Desconhecido\"},\"unknown\":\"Desconhecido\"},\"pl\":{\"parent\":{\"Father\":\"ojciec\",\"Grandfather\":\"Dziadek\",\"Grandmother\":\"Babcia\",\"Great Grandfather\":\"Pradziadek\",\"Great Grandmother\":\"Pra babcia\",\"Mother\":\"Matka\",\"Pigeon\":\"Gołąb\",\"null\":\"nieznany\",\"undefined\":\"nieznany\",\"unknown\":\"nieznany\"},\"unknown\":\"nieznany\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"action\":{\"maximize_info\":\"Open info\",\"minimize_info\":\"Close info\",\"tab_info\":\"Info tab\"}},\"fr\":{\"action\":{\"maximize_info\":\"Ouvrir les informations\",\"minimize_info\":\"Fermer les infos\",\"tab_info\":\"Onglet Infos\"}},\"nl\":{\"action\":{\"maximize_info\":\"Info openen\",\"minimize_info\":\"Info sluiten\",\"tab_info\":\"Info tabblad\"}},\"pl\":{\"action\":{\"maximize_info\":\"Otwórz informacje\",\"minimize_info\":\"Zamknij informacje\",\"tab_info\":\"Zakładka Informacje\"}},\"pt\":{\"action\":{\"maximize_info\":\"Abrir informações\",\"minimize_info\":\"Fechar informações\",\"tab_info\":\"Guia de informações\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"action\":{\"enter_fullscreen\":\"Enter fullscreen\",\"exit_fullscreen\":\"Exit fullscreen\",\"switch_fullscreen\":\"switch to fullscreen view mode\"},\"generation\":{\"label\":\"Generation to display\"},\"undefined\":\"Unknown\"},\"fr\":{\"action\":{\"enter_fullscreen\":\"Passer en mode plein écran\",\"exit_fullscreen\":\"Quitter le mode plein écran\",\"switch_fullscreen\":\"passer en mode d\\u0027affichage plein écran\"},\"generation\":{\"label\":\"Génération à afficher\"},\"undefined\":\"Inconnu\"},\"nl\":{\"action\":{\"enter_fullscreen\":\"Voer volledig scherm in\",\"exit_fullscreen\":\"Verlaat volledig scherm\",\"switch_fullscreen\":\"overschakelen naar de weergavemodus op volledig scherm\"},\"generation\":{\"label\":\"Generatie om weer te geven\"},\"undefined\":\"Onbekend\"},\"pl\":{\"action\":{\"enter_fullscreen\":\"Wejdź na pełny ekran\",\"exit_fullscreen\":\"Wyłączyć tryb pełnoekranowy\",\"switch_fullscreen\":\"przełącz na tryb pełnoekranowy\"},\"generation\":{\"label\":\"Generacja do wyświetlenia\"},\"undefined\":\"nieznany\"},\"pt\":{\"action\":{\"enter_fullscreen\":\"Entrar em tela cheia\",\"exit_fullscreen\":\"Sair da tela inteira\",\"switch_fullscreen\":\"alternar para o modo de visualização em tela cheia\"},\"generation\":{\"label\":\"Geração para exibir\"},\"undefined\":\"Desconhecido\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"no_pedigree_pdf\":\"There is no pedigree pdf available.\",\"pdf\":\"pedigree pdf\"},\"fr\":{\"no_pedigree_pdf\":\"Aucun pdf du pedigree n\\u0027est disponible.\",\"pdf\":\"Pdf du pedigree\"},\"nl\":{\"no_pedigree_pdf\":\"Er is geen stamboom pdf beschikbaar.\",\"pdf\":\"stamboom pdf\"},\"pt\":{\"no_pedigree_pdf\":\"Não há pedigree pdf disponível.\",\"pdf\":\"Pedigree pdf\"},\"pl\":{\"no_pedigree_pdf\":\"Nie ma dostępnego pliku PDF z rodowodem.\",\"pdf\":\"Rodowód pdf\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"no_pedigree_picture\":\"There is no pedigree picture available.\",\"picture\":\"pedigree picture\"},\"fr\":{\"no_pedigree_picture\":\"Aucune photo du pedigree n\\u0027est disponible.\",\"picture\":\"photo du pedigree\"},\"nl\":{\"no_pedigree_picture\":\"Er is geen stamboomfoto beschikbaar.\",\"picture\":\"stamboom foto\"},\"pt\":{\"no_pedigree_picture\":\"Não há imagem de linhagem disponível.\",\"picture\":\"Imagem de pedigree\"},\"pl\":{\"no_pedigree_picture\":\"Brak zdjęcia rodowodowego.\",\"picture\":\"Zdjęcie rodowodowe\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"picture\":{\"alt\":\"pigeon picture\",\"alt_generic\":\"generic pigeon picture\"}},\"fr\":{\"picture\":{\"alt\":\"photo du pigeon\",\"alt_generic\":\"photo générique du pigeon\"}},\"nl\":{\"picture\":{\"alt\":\"duif foto\",\"alt_generic\":\"generiek duivenbeeld\"}},\"pt\":{\"picture\":{\"alt\":\"foto de pombo\",\"alt_generic\":\"foto genérica de pombo\"}},\"pl\":{\"picture\":{\"alt\":\"zdjęcie gołębia\",\"alt_generic\":\"ogólne zdjęcie gołębia\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"no_property_ticket_picture\":\"There is no property ticket picture available.\",\"picture\":\"property ticket picture\"},\"fr\":{\"no_property_ticket_picture\":\"Il n\\u0027y a pas de photo de ticket de propriété disponible.\",\"picture\":\"photo du ticket de propriété\"},\"nl\":{\"no_property_ticket_picture\":\"Er is geen afbeelding van een eigendomsticket beschikbaar.\",\"picture\":\"eigendom ticket foto\"},\"pl\":{\"no_property_ticket_picture\":\"Brak dostępnego zdjęcia biletu nieruchomości.\",\"picture\":\"zdjęcie biletu nieruchomości\"},\"pt\":{\"no_property_ticket_picture\":\"Não há foto de bilhete de propriedade disponível.\",\"picture\":\"imagem do bilhete de propriedade\"}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"action\":{\"see_pedigree\":\"See pedigree\"},\"alert\":{\"date_estimate\":\"The date is an estimate.\",\"voucher_availability\":\"Pigeon is not available immediately. A voucher can be exchanged for pigeon only during the availability period.\",\"voucher_message\":\"This offer is a voucher.\"},\"table\":{\"age\":\"Age\",\"assets\":\"Assets\",\"availability\":\"Availability\",\"characteristics\":\"Characteristics\",\"country\":\"Country\",\"discipline\":\"Discipline\",\"fancier\":\"Breeder\",\"flyingDate\":\"Flying date\",\"hatchingDate\":\"Hatching date\",\"identity\":\"Identity\",\"layingDate\":\"Laying date\",\"name\":\"Name\",\"ring\":\"Ring\",\"sex\":\"Sex\",\"strain\":\"Strain\",\"weaningDate\":\"Weaning date\"}},\"fr\":{\"action\":{\"see_pedigree\":\"Voir pedigree\"},\"alert\":{\"date_estimate\":\"La date est une estimation.\",\"voucher_availability\":\"Pigeon n\\u0027est pas disponible immédiatement. Un bon peut être échangé contre un pigeon uniquement pendant la période de disponibilité.\",\"voucher_message\":\"Cette offre est un bon d\\u0027achat.\"},\"table\":{\"age\":\"Âge\",\"assets\":\"Atouts\",\"availability\":\"Disponibilité\",\"characteristics\":\"Caractéristiques\",\"country\":\"Pays\",\"discipline\":\"Discipline\",\"fancier\":\"Éleveur\",\"flyingDate\":\"Date d\\u0027envol\",\"hatchingDate\":\"Date d\\u0027éclosion\",\"identity\":\"Identité\",\"layingDate\":\"Date de ponte\",\"name\":\"Nom\",\"ring\":\"Bague\",\"sex\":\"Sexe\",\"strain\":\"Souche\",\"weaningDate\":\"Date du sevrage\"}},\"nl\":{\"action\":{\"see_pedigree\":\"Zie stamboom\"},\"alert\":{\"date_estimate\":\"De datum is een schatting.\",\"voucher_availability\":\"Duif is niet direct beschikbaar. Een voucher kan alleen tijdens de beschikbaarheidsperiode worden ingewisseld voor duif.\",\"voucher_message\":\"Deze aanbieding is een voucher.\"},\"table\":{\"age\":\"Leeftijd\",\"assets\":\"Middelen\",\"availability\":\"beschikbaarheid\",\"characteristics\":\"kenmerken\",\"country\":\"land\",\"discipline\":\"Discipline\",\"fancier\":\"Fokker\",\"flyingDate\":\"Vliegende datum\",\"hatchingDate\":\"Datum van uitkomen\",\"identity\":\"Identiteit\",\"layingDate\":\"Legdatum\",\"name\":\"Naam\",\"ring\":\"Ring\",\"sex\":\"Seks\",\"strain\":\"Zeef\",\"weaningDate\":\"Speendatum\"}},\"pt\":{\"action\":{\"see_pedigree\":\"Ver pedigree\"},\"alert\":{\"date_estimate\":\"A data é uma estimativa.\",\"voucher_availability\":\"Pigeon não está disponível imediatamente. Um voucher pode ser trocado por pigeon apenas durante o período de disponibilidade.\",\"voucher_message\":\"Esta oferta é um voucher.\"},\"table\":{\"age\":\"Era\",\"assets\":\"Ativos\",\"availability\":\"Disponibilidade\",\"characteristics\":\"Características\",\"country\":\"País\",\"discipline\":\"Disciplina\",\"fancier\":\"Criador\",\"flyingDate\":\"Encontro de vôo\",\"hatchingDate\":\"Data de eclosão\",\"identity\":\"identidade\",\"layingDate\":\"Data de postura\",\"name\":\"Nome\",\"ring\":\"Anel\",\"sex\":\"sexo\",\"strain\":\"Tensão\",\"weaningDate\":\"Data de desmame\"}},\"pl\":{\"action\":{\"see_pedigree\":\"Zobacz rodowód\"},\"alert\":{\"date_estimate\":\"Data jest szacunkowa.\",\"voucher_availability\":\"Gołąb nie jest dostępny od razu. Kupon można wymienić na gołębia tylko w okresie dostępności.\",\"voucher_message\":\"Ta oferta to voucher.\"},\"table\":{\"age\":\"Wiek\",\"assets\":\"Majątek\",\"availability\":\"Dostępność\",\"characteristics\":\"Charakterystyka\",\"country\":\"Kraj\",\"discipline\":\"Dyscyplina\",\"fancier\":\"Hodowca\",\"flyingDate\":\"Data lotu\",\"hatchingDate\":\"Data wylęgu\",\"identity\":\"Tożsamość\",\"layingDate\":\"Data zniesienia\",\"name\":\"imię\",\"ring\":\"Pierścień\",\"sex\":\"Seks\",\"strain\":\"Odcedzić\",\"weaningDate\":\"Data odsadzenia\"}}}')\n delete Component.options._Ctor\n}\n","module.exports = function (Component) {\n Component.options.__i18n = Component.options.__i18n || []\n Component.options.__i18n.push('{\"en\":{\"table\":{\"back\":{\"header\":\"Back\"},\"balance\":{\"header\":\"Balance\"},\"eye\":{\"header\":\"Eye\"},\"feathers\":{\"header\":\"Feathers\"},\"humerus\":{\"header\":\"Humerus\"},\"length\":{\"header\":\"Length\"},\"plumage\":{\"header\":\"Plumage\"},\"size\":{\"header\":\"Size\"},\"title\":\"Characteristics\",\"ventbones_position\":{\"header\":\"Ventbones position\"},\"ventbones_strength\":{\"header\":\"Ventbones strength\"}}},\"fr\":{\"table\":{\"back\":{\"header\":\"Dos\"},\"balance\":{\"header\":\"Équilibre\"},\"eye\":{\"header\":\"Œil\"},\"feathers\":{\"header\":\"Plumes\"},\"humerus\":{\"header\":\"Humerus\"},\"length\":{\"header\":\"Longueur\"},\"plumage\":{\"header\":\"Plumage\"},\"size\":{\"header\":\"Taille\"},\"title\":\"Caractéristiques\",\"ventbones_position\":{\"header\":\"Position de la fourche\"},\"ventbones_strength\":{\"header\":\"Solidité de la fourche\"}}},\"nl\":{\"table\":{\"back\":{\"header\":\"terug\"},\"balance\":{\"header\":\"balans\"},\"eye\":{\"header\":\"Oog\"},\"feathers\":{\"header\":\"Veren\"},\"humerus\":{\"header\":\"Opperarmbeen\"},\"length\":{\"header\":\"lengte\"},\"plumage\":{\"header\":\"Gevederte\"},\"size\":{\"header\":\"Grootte\"},\"title\":\"kenmerken\",\"ventbones_position\":{\"header\":\"Ventbeenderen positie\"},\"ventbones_strength\":{\"header\":\"Ventbones sterkte\"}}},\"pt\":{\"table\":{\"back\":{\"header\":\"de volta\"},\"balance\":{\"header\":\"Equilibrar\"},\"eye\":{\"header\":\"Olho\"},\"feathers\":{\"header\":\"Penas\"},\"humerus\":{\"header\":\"Úmero\"},\"length\":{\"header\":\"Comprimento\"},\"plumage\":{\"header\":\"Plumagem\"},\"size\":{\"header\":\"Tamanho\"},\"title\":\"Características\",\"ventbones_position\":{\"header\":\"Posição Ventbones\"},\"ventbones_strength\":{\"header\":\"Força de Ventbones\"}}},\"pl\":{\"table\":{\"back\":{\"header\":\"Z powrotem\"},\"balance\":{\"header\":\"Saldo\"},\"eye\":{\"header\":\"Oko\"},\"feathers\":{\"header\":\"Pióra\"},\"humerus\":{\"header\":\"Humerus\"},\"length\":{\"header\":\"Długość\"},\"plumage\":{\"header\":\"Upierzenie\"},\"size\":{\"header\":\"Rozmiar\"},\"title\":\"Charakterystyka\",\"ventbones_position\":{\"header\":\"Pozycja Ventbones\"},\"ventbones_strength\":{\"header\":\"Siła Ventbones\"}}}}')\n delete Component.options._Ctor\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_vm.isDismissed && _vm.$auth.IsAuthenticated && _vm.BidSaleIsOver && _vm.IsHighestBidder && _vm.sale && ((_vm.sale.shouldDoubleCheckBids && !_vm.IsDoubleCheckingBids && _vm.DoubleCheckHighestBidHasPassed) || !_vm.sale.shouldDoubleCheckBids))?_c('div',[_c('AppAlert',{staticClass:\"m-0 py-3 bd-radius-0\",class:{ 'alert-dismissible': _vm.isDismissible },attrs:{\"outline\":false,\"type\":\"success\",\"data-cy\":\"alert-auction-win\"}},[(_vm.isDismissible)?_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"alert\",\"aria-label\":\"Close\"},on:{\"click\":function($event){return _vm.OnDismissAlert()}}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])]):_vm._e(),_c('h5',{staticClass:\"text-center font-weight-bolder\"},[_c('i18n',{attrs:{\"path\":\"alert.auction_congratulations_$product\"},scopedSlots:_vm._u([{key:\"product\",fn:function(){return [(_vm.Product)?_c('span',[_vm._v(\"'\"+_vm._s(_vm.Product.name)+\"'\")]):_vm._e()]},proxy:true}],null,false,2173367606)})],1),_c('div',{staticClass:\"text-center\"},[_c('i18n',{attrs:{\"path\":\"alert.auction_message_$amount_$product\"},scopedSlots:_vm._u([{key:\"amount\",fn:function(){return [(_vm.bid)?_c('span',[_vm._v(_vm._s(_vm.$n(_vm.bid.amount, 'currency')))]):_vm._e()]},proxy:true},{key:\"product\",fn:function(){return [(_vm.Product)?_c('span',[_vm._v(\"'\"+_vm._s(_vm.Product.name)+\"' \"),_c('small',[_vm._v(_vm._s(_vm.Product.reference))])]):_vm._e()]},proxy:true}],null,false,3901355178)}),_c('div',[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('alert.auction_message_proceed_payment'))}})])],1),_c('footer',{staticClass:\"text-center mt-3\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col d-none d-sm-flex text-left\"}),_c('div',{staticClass:\"col\"},[_c('button',{staticClass:\"btn btn-outline-success btn-fill-white px-4\",attrs:{\"type\":\"button\",\"data-cy\":\"bid-checkout\"},on:{\"click\":function($event){return _vm.Checkout()}}},[(_vm.LastItemBeforeCheckout)?_c('span',[_vm._v(_vm._s(_vm.$t('action.pay')))]):_c('span',[_vm._v(_vm._s(_vm.$t('action.add_to_cart')))])]),_c('div',{staticClass:\"text-smaller text-success mt-1\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('alert.auction_note_redirect'))}})])]),_c('div',{staticClass:\"col d-none d-sm-flex justify-content-end text-right\"},[(_vm.hasSnooze)?_c('button',{staticClass:\"btn btn-link text-success text-underline px-3\",attrs:{\"type\":\"button\",\"data-cy\":\"bid-snooze\"},on:{\"click\":function($event){return _vm.Snooze()}}},[_vm._v(_vm._s(_vm.$t('action.remind_later')))]):_vm._e()])])])]),_c('AppAlert',{staticClass:\"m-0 py-3 bd-radius-0\",attrs:{\"outline\":false,\"type\":\"danger\"}},[_c('div',{staticClass:\"text-center\"},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('alert.auction_message_danger'))}})])])],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ProductMapper } from \"@api/mappers/ProductMapper\";\r\nimport { SaleStatus } from \"@api/models/market/constants/SaleStatus\";\r\nimport { IBid } from \"@api/models/market/IBid\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport BidDoubleCheckHighestBidAbstract from \"@market/components/bid/BidDoubleCheckHighestBidAbstract\";\r\nimport { IProduct } from \"@market/components/sale/SaleProductAbstract\";\r\nimport { ICartItem } from \"@market/models/ICartItem\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport { authStore, cartStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { Component, Emit, Prop } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class BidAlertCongratulations extends BidDoubleCheckHighestBidAbstract {\r\n @Prop()\r\n readonly sales: ISale[]; // all sales won\r\n @Prop()\r\n declare readonly sale: ISale; // the current sale won alert\r\n @Prop()\r\n readonly bid: IBid;\r\n\r\n @Prop()\r\n readonly isDismissible: boolean;\r\n @Prop()\r\n readonly hasSnooze: boolean;\r\n\r\n isDismissed: boolean = false;\r\n\r\n get HasWinAuction(): boolean {\r\n if (!this.sale || !authStore.IsAuthenticated || !authStore.IsMember || !userStore?.user?.id) return false;\r\n\r\n const highestBid = this.saleManager.GetHighestBid(this.sale);\r\n return highestBid?.userId === userStore.user.id;\r\n }\r\n\r\n get Product(): IProduct | null {\r\n return ProductMapper.MapToProduct(this.sale);\r\n }\r\n\r\n get CartItems(): ICartItem[] {\r\n return cartStore.items;\r\n }\r\n\r\n get LastItemBeforeCheckout(): boolean {\r\n if (!this.sales || this.sales.length == 1) return true;\r\n\r\n return this.sales?.every((sa) => this.CartItems.some((ci) => ci.saleId == sa.id || sa.id == this.sale.id));\r\n }\r\n\r\n public OnDismissAlert() {\r\n this.isDismissed = true;\r\n }\r\n\r\n @Emit(\"snooze\")\r\n public Snooze() {\r\n this.OnDismissAlert();\r\n }\r\n\r\n public async Checkout(): Promise {\r\n if (this.sale.status !== SaleStatus.OnSale) {\r\n console.error(\"Operation exception: a user can checkout only a for sale sale.\");\r\n return;\r\n }\r\n if (!this.HasWinAuction) {\r\n console.error(\"Operation exception: the current user has not win the auction.\");\r\n return;\r\n }\r\n\r\n const itemIsInCart = this.CartItems.find((i) => i.saleId === this.sale.id);\r\n if (!itemIsInCart) {\r\n await cartStore.AddItem(this.sale);\r\n }\r\n\r\n const isCartItemsContainsAllWonSales = this.sales?.every((sa) => this.CartItems.some((ci) => ci.saleId == sa.id));\r\n if (!this.sales || (this.sales && isCartItemsContainsAllWonSales))\r\n this.$router.push({ name: AppRoutes.CheckoutOrder });\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./BidAlertCongratulations.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./BidAlertCongratulations.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BidAlertCongratulations.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./BidAlertCongratulations.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./BidAlertCongratulations.vue?vue&type=template&id=609c98f9\"\nimport script from \"./BidAlertCongratulations.ts?vue&type=script&lang=ts&external\"\nexport * from \"./BidAlertCongratulations.ts?vue&type=script&lang=ts&external\"\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\n/* custom blocks */\nimport block0 from \"./BidAlertCongratulations.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('img',{attrs:{\"alt\":\"logo\",\"src\":require(\"@market/assets/images/brand/app/logo.svg\")}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class IconLogo extends Vue {}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./IconLogo.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./IconLogo.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./IconLogo.vue?vue&type=template&id=0990d808\"\nimport script from \"./IconLogo.ts?vue&type=script&lang=ts&external\"\nexport * from \"./IconLogo.ts?vue&type=script&lang=ts&external\"\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","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"text-center\",class:{ 'd-inline-flex flex-col justify-content-center align-items-center': _vm.iconOnly, 'd-flex flex-row-reverse': _vm.inline && !_vm.iconOnly }},[_c('div',{staticClass:\"loader\",class:{ 'dark-loader': _vm.theme === 'dark', 'half-loader': _vm.type === 'half' && !(_vm.inline || _vm.iconOnly), 'inline-loader': _vm.inline, 'icon-loader': _vm.iconOnly },style:({ 'border-color': _vm.color })}),(!_vm.iconOnly)?_c('div',{staticClass:\"slot-loader\"},[_vm._t(\"default\",function(){return [_vm._v(_vm._s(_vm.$t(\"loading\")))]})],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { BaseThemes } from \"@api/models/market/constants/BaseThemes\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum LoaderTypes {\r\n Half = \"half\",\r\n Full = \"full\"\r\n}\r\n\r\n@Component\r\nexport default class AppLoader extends Vue {\r\n @Prop({ validator: (value: BaseThemes) => Object.values(BaseThemes).includes(value) })\r\n readonly theme?: BaseThemes;\r\n @Prop({\r\n default: LoaderTypes.Half,\r\n validator: (value: LoaderTypes) => Object.values(LoaderTypes).includes(value)\r\n })\r\n readonly type: LoaderTypes;\r\n @Prop({ default: false })\r\n readonly iconOnly: boolean;\r\n @Prop({ default: false })\r\n readonly inline: boolean;\r\n @Prop()\r\n readonly color?: string;\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppLoader.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppLoader.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppLoader.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppLoader.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AppLoader.vue?vue&type=template&id=0bbb2f3e&scoped=true\"\nimport script from \"./AppLoader.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppLoader.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppLoader.vue?vue&type=style&index=0&id=0bbb2f3e&prod&lang=scss&scoped=true\"\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 \"0bbb2f3e\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AppLoader.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"pane\",class:{\n 't-primary-inverted': _vm.theme === 'primary-inverted',\n 't-secondary-inverted': _vm.theme === 'secondary-inverted',\n 't-black': _vm.theme === 'black',\n 't-dark': _vm.theme === 'dark',\n 't-light': _vm.theme === 'light',\n 't-gray': _vm.theme === 'gray',\n 'bg-info text-white': _vm.theme === 'info',\n 'bg-success text-white': _vm.theme === 'success',\n 'bg-warning text-white': _vm.theme === 'warning',\n 'bg-danger text-white': _vm.theme === 'danger',\n }},[_c('div',{staticClass:\"pane_caption primary-pane_caption\"},[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum SectionBarThemes {\r\n Light = \"light\",\r\n Gray = \"gray\",\r\n Dark = \"dark\",\r\n Black = \"black\",\r\n PrimaryInverted = \"primary-inverted\",\r\n SecondaryInverted = \"secondary-inverted\",\r\n Info = \"info\",\r\n Success = \"success\",\r\n Warning = \"warning\",\r\n Danger = \"danger\"\r\n}\r\n\r\n@Component\r\nexport default class BlocSectionBar extends Vue {\r\n @Prop({\r\n validator: (value: SectionBarThemes) => Object.values(SectionBarThemes).includes(value)\r\n })\r\n readonly theme?: SectionBarThemes;\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./BlocSectionBar.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./BlocSectionBar.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./BlocSectionBar.vue?vue&type=template&id=c6389f40&scoped=true\"\nimport script from \"./BlocSectionBar.ts?vue&type=script&lang=ts&external\"\nexport * from \"./BlocSectionBar.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./BlocSectionBar.vue?vue&type=style&index=0&id=c6389f40&prod&lang=scss&scoped=true\"\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 \"c6389f40\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.$auth.IsVendor)?_c('nav',[(_vm.$auth.AccountVendorIsVerified && _vm.StripeDashboardConnectUrl)?_c('a',{staticClass:\"btn\",class:_vm.buttonType,attrs:{\"href\":_vm.StripeDashboardConnectUrl,\"target\":\"_blank\"}},[_vm._t(\"dashboard\",function(){return [_vm._v(_vm._s(_vm.$t('dashboard')))]})],2):(!_vm.$auth.AccountVendorIsVerified && _vm.StripeOAuthConnectUrl)?_c('a',{staticClass:\"btn\",class:_vm.buttonType,attrs:{\"href\":_vm.StripeOAuthConnectUrl,\"title\":_vm.$t('tooltip')}},[_vm._t(\"default\",function(){return [_vm._v(_vm._s(_vm.$t('connect')))]})],2):_vm._e()]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IConnectedAccountsService } from \"@api/contracts/webapi/IConnectedAccountsService\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class ModuleStripeConnect extends Vue {\r\n @Prop({ default: \"btn-outline-primary\" })\r\n readonly buttonType: string;\r\n\r\n @Inject()\r\n private connectedAccountsService: IConnectedAccountsService;\r\n\r\n connectState: string = \"\";\r\n dashboardLink: string = \"\";\r\n\r\n get StripeDashboardConnectUrl(): string {\r\n if (!this.$auth.IsVendor || !this.$auth.AccountVendorIsVerified) return \"\";\r\n\r\n return this.dashboardLink;\r\n }\r\n\r\n // See: https://stripe.com/docs/connect/oauth-reference#redirect-uri\r\n get StripeOAuthConnectUrl(): string {\r\n if (!this.$auth.IsVendor || !this.connectState) return \"\";\r\n\r\n const stripeClientId = process.env.VUE_APP_STRIPE_CONNECT_KEY;\r\n const stripeCapabilities = process.env.VUE_APP_STRIPE_CONNECT_CAPABILITIES;\r\n const appRedirectUri = process.env.VUE_APP_STRIPE_CONNECT_REDIRECT_URI;\r\n const appStateToken = this.connectState; // an unique CSRF token\r\n const vendorEmail = this.$auth.User?.email;\r\n const vendorPhoneNumber = this.$auth.User?.phoneNumber;\r\n const vendorBusinessName = this.$auth.User?.corporation?.name;\r\n const vendorFirstname = this.$auth.User?.firstname;\r\n const vendorLastname = this.$auth.User?.lastname;\r\n\r\n // See: https://stripe.com/docs/connect/oauth-reference#get-authorize-request\r\n let stripeConnectUrl = `https://connect.stripe.com/express/oauth/authorize?client_id=${stripeClientId}&state=${appStateToken}&suggested_capabilities[]=${stripeCapabilities}&redirect_uri=${appRedirectUri}`;\r\n if (vendorEmail) stripeConnectUrl += `&stripe_user[email]=${vendorEmail}`;\r\n if (vendorPhoneNumber) stripeConnectUrl += `&stripe_user[phone_number]=${vendorPhoneNumber}`;\r\n if (vendorBusinessName) stripeConnectUrl += `&stripe_user[business_name]=${vendorBusinessName}`;\r\n if (vendorFirstname) stripeConnectUrl += `&stripe_user[first_name]=${vendorFirstname}`;\r\n if (vendorLastname) stripeConnectUrl += `&stripe_user[last_name]=${vendorLastname}`;\r\n // if(vendorBirthDate){\r\n // stripeConnectUrl += `stripe_user[dob_day]=${vendorBirthDate.getDate()}`;\r\n // stripeConnectUrl += `stripe_user[dob_month]=${vendorBirthDate.getMonth() + 1}`;\r\n // stripeConnectUrl += `stripe_user[dob_year]=${vendorBirthDate.getFullYear()}`;\r\n // }\r\n\r\n return stripeConnectUrl;\r\n }\r\n\r\n async created() {\r\n if (this.$auth.IsVendor) {\r\n const { data: stateData } = await this.connectedAccountsService.FetchState(); // an unique CSRF token\r\n this.connectState = stateData;\r\n\r\n if (this.$auth.AccountVendorIsVerified) {\r\n const { data: dashboardData } = await this.connectedAccountsService.FetchDashboardLink();\r\n this.dashboardLink = dashboardData;\r\n }\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ModuleStripeConnect.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ModuleStripeConnect.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModuleStripeConnect.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ModuleStripeConnect.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ModuleStripeConnect.vue?vue&type=template&id=566ce1c3\"\nimport script from \"./ModuleStripeConnect.ts?vue&type=script&lang=ts&external\"\nexport * from \"./ModuleStripeConnect.ts?vue&type=script&lang=ts&external\"\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\n/* custom blocks */\nimport block0 from \"./ModuleStripeConnect.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"product_pictures\",attrs:{\"data-cy\":\"sale-picture\"}},[(_vm.PackagePictures && _vm.PackagePictures.length)?_c('div',{staticClass:\"pictures_wall\"},_vm._l((_vm.PackagePictures),function(picture,index){return _c('img',{key:`pigeon_pic_${index}`,style:(_vm.PackagePictureStyle),attrs:{\"id\":_vm.GetPigeonIdFromUrl(picture),\"alt\":`${_vm.$t('picture.alt')}_${index.toString()}`,\"src\":picture},on:{\"error\":function($event){return _vm.OnPictureError()}}})}),0):_c('img',{staticClass:\"embed-responsive-item\",attrs:{\"alt\":_vm.$t('picture.alt_generic'),\"src\":require(\"@market/assets/images/pictures/package.webp\")}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { PictureTypes } from \"@api/models/market/constants/PictureTypes\";\r\nimport { IPackage } from \"@api/models/market/IPackage\";\r\nimport { IPicture } from \"@api/models/market/IPicture\";\r\nimport { IPackageManager } from \"@pigeon/services/contracts/IPackageManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class PackagePictureCollage extends Vue {\r\n @Prop()\r\n readonly package: IPackage;\r\n @Prop()\r\n readonly pictures?: IPicture[];\r\n @Prop({ default: false })\r\n readonly useRawPicture: boolean;\r\n\r\n @Inject()\r\n private packageManager: IPackageManager;\r\n\r\n forceFallbackPicture: boolean = false;\r\n\r\n get PackagePictures(): string[] {\r\n if (!this.package) return [];\r\n\r\n if (this.pictures && this.pictures.length) {\r\n return this.packageManager.GetPicturesThumbnail(this.pictures, this.useRawPicture);\r\n } else {\r\n return this.packageManager.GetPicturesUrl(this.package, this.useRawPicture || this.forceFallbackPicture, [\r\n PictureTypes.Pigeon,\r\n PictureTypes.PigeonAndEye\r\n ]);\r\n }\r\n }\r\n\r\n get PackagePictureStyle(): string {\r\n const packagePicturesLength = this.PackagePictures.length;\r\n\r\n if (packagePicturesLength <= 1) return \"\";\r\n else if (packagePicturesLength <= 4) return \"max-height: 50%; max-width: 50%;\";\r\n else if (packagePicturesLength <= 6) return \"max-height: 50%; max-width: 33.33%;\";\r\n else return \"max-height: 33.33%; max-width: 33.33%;\";\r\n }\r\n\r\n public OnPictureError(): void {\r\n this.forceFallbackPicture = true;\r\n }\r\n\r\n public GetPigeonIdFromUrl(imageUrl: string): string {\r\n const urlChunks = imageUrl.split(\"/\");\r\n return urlChunks[urlChunks.length - 2];\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PackagePictureCollage.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PackagePictureCollage.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PackagePictureCollage.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PackagePictureCollage.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PackagePictureCollage.vue?vue&type=template&id=882c92ec&scoped=true\"\nimport script from \"./PackagePictureCollage.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PackagePictureCollage.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PackagePictureCollage.vue?vue&type=style&index=0&id=882c92ec&prod&lang=scss&scoped=true\"\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 \"882c92ec\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PackagePictureCollage.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.pigeon && _vm.pigeon.asset)?_c('div',{staticClass:\"assets\"},[(_vm.pigeon.asset === _vm.AssetTypes.Ranking)?_c('AssetRankings',{attrs:{\"rankings\":_vm.AssetPrizesRankings}}):_vm._e(),(_vm.pigeon.asset === _vm.AssetTypes.Prize || (_vm.mode === _vm.PigeonAssetModes.Combined && _vm.pigeon.asset === _vm.AssetTypes.Ranking))?_c('AssetPrizes',{attrs:{\"prizes\":_vm.AssetPrizes,\"theme\":_vm.theme}}):_vm._e(),(_vm.pigeon.asset === _vm.AssetTypes.Parent)?_c('AssetParents',{attrs:{\"childId\":_vm.pigeon.id,\"parents\":_vm.AssetParents}}):_vm._e(),(_vm.pigeon.asset === _vm.AssetTypes.Text)?_c('AssetText',{attrs:{\"free-text\":_vm.AssetText}}):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class PigeonAssetText extends Vue {\r\n @Prop()\r\n readonly freeText: string;\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonAssetText.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonAssetText.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./PigeonAssetText.vue?vue&type=template&id=666ed48c&scoped=true\"\nimport script from \"./PigeonAssetText.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonAssetText.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonAssetText.vue?vue&type=style&index=0&id=666ed48c&prod&lang=scss&scoped=true\"\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 \"666ed48c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('pre',{staticClass:\"text-left p-3 m-0 pre-content\"},[_vm._v(_vm._s(_vm.freeText))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AppThemes } from \"@api/models/market/constants/AppThemes\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport PigeonAssetParent from \"@pigeon/components/pigeon/PigeonAssetParent.vue\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n AssetParent: PigeonAssetParent\r\n }\r\n})\r\nexport default class PigeonAssetParents extends Vue {\r\n @Prop()\r\n readonly parents: IPigeon[];\r\n @Prop()\r\n readonly childId: number;\r\n @Prop({ default: true })\r\n readonly showAsset: boolean;\r\n @Prop({ validator: (value: AppThemes) => Object.values(AppThemes).includes(value) })\r\n readonly theme?: AppThemes;\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonAssetParents.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonAssetParents.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./PigeonAssetParents.vue?vue&type=template&id=2a443017\"\nimport script from \"./PigeonAssetParents.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonAssetParents.ts?vue&type=script&lang=ts&external\"\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","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.parents && _vm.parents.length)?_c('div',_vm._l((_vm.parents),function(parent){return _c('AssetParent',{key:parent.id,attrs:{\"childId\":_vm.childId,\"parent\":parent,\"show-asset\":_vm.showAsset,\"theme\":_vm.theme}})}),1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IPrizesRanking } from \"@api/models/market/IPrizesRanking\";\r\nimport PigeonAssetRanking from \"@pigeon/components/pigeon/PigeonAssetRanking.vue\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n AssetRanking: PigeonAssetRanking\r\n }\r\n})\r\nexport default class PigeonAssetRankings extends Vue {\r\n @Prop({ default: () => [] })\r\n readonly rankings: IPrizesRanking[];\r\n\r\n get OrderedRankings(): IPrizesRanking[] {\r\n const orderedRankings: IPrizesRanking[] = [];\r\n\r\n for (let index = 0, count = this.rankings.length; index < count; index++) {\r\n const orderedRanking = this.rankings[index];\r\n orderedRanking.order = index + 1;\r\n orderedRankings.push(orderedRanking);\r\n }\r\n\r\n return orderedRankings;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonAssetRankings.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonAssetRankings.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./PigeonAssetRankings.vue?vue&type=template&id=e60780f4&scoped=true\"\nimport script from \"./PigeonAssetRankings.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonAssetRankings.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonAssetRankings.vue?vue&type=style&index=0&id=e60780f4&prod&lang=scss&scoped=true\"\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 \"e60780f4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"rankings\"},_vm._l((_vm.OrderedRankings),function(ranking){return _c('AssetRanking',{key:ranking.area,attrs:{\"ranking\":ranking}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IParentAssetsService } from \"@api/contracts/odata/IParentAssetsService\";\r\nimport { IPrizeAssetsService } from \"@api/contracts/odata/IPrizeAssetsService\";\r\nimport { IRankingAssetsService } from \"@api/contracts/odata/IRankingAssetsService\";\r\nimport { AppThemes } from \"@api/models/market/constants/AppThemes\";\r\nimport { AssetTypes } from \"@api/models/market/constants/AssetTypes\";\r\nimport { IParentAsset } from \"@api/models/market/IParentAsset\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { IPrize } from \"@api/models/market/IPrize\";\r\nimport { IPrizesRanking } from \"@api/models/market/IPrizesRanking\";\r\nimport { IRankingAsset } from \"@api/models/market/IRankingAsset\";\r\nimport PigeonAssetText from \"@pigeon/components/pigeon/PigeonAssetText.vue\";\r\nimport PigeonAssetParents from \"@pigeon/components/pigeon/PigeonAssetParents.vue\";\r\nimport PigeonAssetPrizes from \"@pigeon/components/pigeon/PigeonAssetPrizes.vue\";\r\nimport PigeonAssetRankings from \"@pigeon/components/pigeon/PigeonAssetRankings.vue\";\r\nimport { PigeonAssetModes } from \"@pigeon/enumerations/PigeonAssetModes\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { IPigeonManager } from \"@pigeon/services/contracts/IPigeonManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n AssetRankings: PigeonAssetRankings,\r\n AssetPrizes: PigeonAssetPrizes,\r\n AssetParents: PigeonAssetParents,\r\n AssetText: PigeonAssetText\r\n }\r\n})\r\nexport default class PigeonAsset extends Vue {\r\n @Prop()\r\n readonly pigeon: IPigeon;\r\n @Prop({\r\n default: PigeonAssetModes.Alone,\r\n validator: (value: PigeonAssetModes) => [PigeonAssetModes.Alone, PigeonAssetModes.Combined].includes(value)\r\n })\r\n readonly mode: string;\r\n @Prop({ validator: (value: AppThemes) => Object.values(AppThemes).includes(value) })\r\n readonly theme?: AppThemes;\r\n\r\n @Inject()\r\n private prizeAssetsService: IPrizeAssetsService;\r\n @Inject()\r\n private rankingAssetsService: IRankingAssetsService;\r\n @Inject()\r\n private parentAssetsService: IParentAssetsService;\r\n @Inject()\r\n private pigeonManager: IPigeonManager;\r\n\r\n AssetTypes = AssetTypes;\r\n PigeonAssetModes = PigeonAssetModes;\r\n // Note: used asset variables to handle async values\r\n assetPrizes: IPrize[] | null = null;\r\n assetPrizesRankings: IRankingAsset[] | null = null;\r\n assetParents: IParentAsset[] | null = null;\r\n\r\n get AssetText(): string | undefined {\r\n return this.pigeon?.assetText;\r\n }\r\n\r\n get AssetPrizes(): IPrize[] {\r\n if (!this.pigeon || !this.assetPrizes) return [];\r\n\r\n return this.assetPrizes.filter((prz) => prz.taggedAsAsset);\r\n }\r\n\r\n get AssetPrizesRankings(): IPrizesRanking[] {\r\n if (!this.pigeon || !this.assetPrizes || !this.assetPrizesRankings) return [];\r\n\r\n return this.pigeonManager.CalculateAssetPrizeRankings(this.assetPrizes, this.assetPrizesRankings);\r\n }\r\n\r\n get AssetParents(): IPigeon[] {\r\n if (!this.pigeon || !this.assetParents) return [];\r\n\r\n return this.assetParents.map((assetParent: IParentAsset) => assetParent.parent);\r\n }\r\n\r\n get Asset(): AssetTypes | undefined {\r\n return this.pigeon.asset;\r\n }\r\n\r\n // WARNING: use data var to handle async values\r\n @Watch(nameof(\"Asset\"), { immediate: true })\r\n async ObserveAsset() {\r\n await this.FetchAsset();\r\n }\r\n\r\n public async FetchAsset() {\r\n if (!this.pigeon.id || !this.pigeon.asset) return;\r\n\r\n // Asset text\r\n if (this.pigeon.asset === AssetTypes.Text) {\r\n return; // nothing to fetch (use pigeon.assetText)\r\n }\r\n // Asset prizes\r\n else if (this.pigeon.asset === AssetTypes.Prize) {\r\n await this.FetchAssetPrizes(this.pigeon.id);\r\n }\r\n // Asset rankings\r\n else if (this.pigeon.asset === AssetTypes.Ranking) {\r\n await this.FetchAssetPrizesRankings(this.pigeon.id);\r\n }\r\n // Asset parents\r\n else if (this.pigeon.asset === AssetTypes.Parent) {\r\n await this.FetchAssetParents(this.pigeon.id);\r\n }\r\n }\r\n\r\n private async FetchAssetPrizes(pigeonId?: number) {\r\n if (!pigeonId) return;\r\n\r\n const { data } = await this.prizeAssetsService.FetchAllByPigeon(pigeonId);\r\n this.assetPrizes = data.value;\r\n }\r\n\r\n private async FetchAssetPrizesRankings(pigeonId?: number) {\r\n if (!pigeonId) return;\r\n\r\n await this.FetchAssetPrizes(pigeonId);\r\n const { data } = await this.rankingAssetsService.FetchAllByPigeon(pigeonId);\r\n this.assetPrizesRankings = data.value;\r\n }\r\n\r\n private async FetchAssetParents(pigeonId?: number) {\r\n if (!pigeonId) return;\r\n\r\n const { data } = await this.parentAssetsService.FetchAllByPigeon(pigeonId);\r\n this.assetParents = data.value;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonAsset.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonAsset.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./PigeonAsset.vue?vue&type=template&id=25994dcf&scoped=true\"\nimport script from \"./PigeonAsset.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonAsset.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonAsset.vue?vue&type=style&index=0&id=25994dcf&prod&lang=scss&scoped=true\"\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 \"25994dcf\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.parent)?_c('div',{staticClass:\"pane product-pane\",class:{ 'is-selected': _vm.IsSelected, 't-black': _vm.theme === 'black', 't-dark': _vm.theme === 'dark' },on:{\"click\":function($event){return _vm.Select()}}},[_c('header',{staticClass:\"product_header\"},[(_vm.showLink)?_c('div',{staticClass:\"pane_trigger\"},[(_vm.HasParentLinkable)?_c('I18nRouterLink',{staticClass:\"pane_link\",attrs:{\"to\":{ name: _vm.AppRoutes.Pigeon, params: { productKey: _vm.parent.id } },\"target\":\"_blank\",\"title\":_vm.$t('see_new_tab')}},[_c('Icon',{attrs:{\"icon\":\"eye\"}})],1):_vm._e()],1):_vm._e(),_c('div',{staticClass:\"pane_label\"},[(_vm.PigeonIcon)?_c('Icon',{staticClass:\"text-x-large\",class:{ 'fg-blue': _vm.parent.sex === _vm.SexTypes.Male, 'fg-red': _vm.parent.sex === _vm.SexTypes.Female },attrs:{\"icon\":_vm.PigeonIcon}}):_vm._e()],1),_c('div',{staticClass:\"pane_caption\"},[(_vm.parent.relationship)?_c('span',[_vm._v(_vm._s(_vm.$t(\"parent.\" + _vm.parent.relationship.toLowerCase())))]):_c('span',[_vm._v(_vm._s(_vm.$t(\"parent.parent\")))])]),_c('div',{staticClass:\"pane_title\"},[_vm._v(\" \"+_vm._s(_vm.parent.name)+\" \")]),_c('div',{staticClass:\"pane_secondary-title\",class:{ 'text-underline': _vm.HasParentLinkable }},[_vm._v(\" \"+_vm._s(_vm.parent.ring)+\" \")])]),(_vm.showAsset)?_c('section',{staticClass:\"product_asset\"},[_c('PigeonAsset',{attrs:{\"pigeon\":_vm.parent}})],1):_vm._e()]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AppThemes } from \"@api/models/market/constants/AppThemes\";\r\nimport { SexTypes } from \"@api/models/market/constants/SexTypes\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport { IPigeonManager } from \"@pigeon/services/contracts/IPigeonManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Emit, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class PigeonAssetParent extends Vue {\r\n @Prop()\r\n readonly parent: IPigeon;\r\n @Prop()\r\n readonly childId?: number;\r\n @Prop()\r\n readonly relationship?: string;\r\n @Prop()\r\n readonly selected?: IPigeon;\r\n @Prop({ default: false })\r\n readonly isSelectable: boolean;\r\n @Prop({ default: true })\r\n readonly showAsset: boolean;\r\n @Prop({ default: false })\r\n readonly showLink: boolean;\r\n @Prop({ validator: (value: AppThemes) => Object.values(AppThemes).includes(value) })\r\n readonly theme: AppThemes;\r\n\r\n @Inject()\r\n private pigeonManager: IPigeonManager;\r\n\r\n AppRoutes = AppRoutes;\r\n SexTypes = SexTypes;\r\n familyRelationship = \"Parent\";\r\n\r\n get IsSelected(): boolean {\r\n if (!this.selected) {\r\n return false;\r\n }\r\n\r\n return this.selected === this.parent;\r\n }\r\n\r\n get PigeonIcon(): string {\r\n return this.pigeonManager.GetSexIcon(this.parent);\r\n }\r\n\r\n get HasParentLinkable(): boolean {\r\n return (this.parent && this.parent.id && this.parent.flagApproved && this.parent.publicData) ||\r\n (this.parent && this.parent.id && this.$auth.IsAdministrator)\r\n ? true\r\n : false;\r\n }\r\n\r\n @Emit(\"select\")\r\n public Select() {\r\n if (!this.isSelectable) return;\r\n\r\n return this.parent;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonAssetParent.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonAssetParent.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonAssetParent.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonAssetParent.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PigeonAssetParent.vue?vue&type=template&id=febd835a&scoped=true\"\nimport script from \"./PigeonAssetParent.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonAssetParent.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonAssetParent.vue?vue&type=style&index=0&id=febd835a&prod&lang=scss&scoped=true\"\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 \"febd835a\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PigeonAssetParent.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"table-responsive\"},[(_vm.prizes.length)?_c('table',{staticClass:\"prizes table\",class:{ 't-black': _vm.theme === 'black', 't-dark': _vm.theme === 'dark' }},[(_vm.tableHeader)?_c('thead',[_c('tr',{staticClass:\"prize_header\"},[_c('th',{attrs:{\"colspan\":\"5\"}},[_vm._v(_vm._s(_vm.$t(\"table.header_prizes\")))])])]):_vm._e(),_c('tbody',_vm._l((_vm.prizes),function(prize){return _c('tr',{key:prize.id,staticClass:\"table_row prize\",class:{ 'highligthed-prize': _vm.highlightBestPrize && prize.rank == 1 }},[_c('td',{staticClass:\"prize_rank\"},[(prize.rank)?_c('span',{staticClass:\"prize_position\"},[_vm._v(\" \"+_vm._s(prize.rank)+\" \"),_c('sup',[_vm._v(_vm._s(_vm.GetRankLabel(prize.rank)))])]):_vm._e()]),_c('td',{staticClass:\"prize_area\"},[(prize.area)?_c('span',[_vm._v(_vm._s(_vm.$t(prize.area)))]):_vm._e()]),_c('td',{staticClass:\"prize_participants\"},[(prize.participants)?_c('span',[_vm._v(_vm._s(_vm.$n(prize.participants)))]):_vm._e(),_c('small',{staticClass:\"prize_label-participants\"},[_vm._v(\" p.\")])]),_c('td',{staticClass:\"prize_place\"},[(prize.place)?_c('span',[_vm._v(_vm._s(prize.place))]):_vm._e()]),_c('td',{staticClass:\"prize_year\"},[(prize.year)?_c('span',[_vm._v(_vm._s(prize.year))]):_vm._e()])])}),0)]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AppThemes } from \"@api/models/market/constants/AppThemes\";\r\nimport { IPrize } from \"@api/models/market/IPrize\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class PigeonAssetPrizes extends Vue {\r\n @Prop({ default: () => [] })\r\n readonly prizes: IPrize[];\r\n @Prop({ default: \"\" })\r\n readonly tableHeader: string;\r\n @Prop({ default: true })\r\n readonly highlightBestPrize: boolean;\r\n @Prop({ validator: (value: AppThemes) => Object.values(AppThemes).includes(value) })\r\n readonly theme?: AppThemes;\r\n\r\n public GetRankLabel(rank: number): string {\r\n if (rank == 1) return this.$i18n.t(\"rank.first\") as string;\r\n else if (rank == 2) return this.$i18n.t(\"rank.second\") as string;\r\n else if (rank == 3) return this.$i18n.t(\"rank.third\") as string;\r\n else if (rank == 0) return \"\";\r\n else return this.$i18n.t(\"rank.nth\") as string;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonAssetPrizes.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonAssetPrizes.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonAssetPrizes.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonAssetPrizes.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PigeonAssetPrizes.vue?vue&type=template&id=9eb632dc&scoped=true\"\nimport script from \"./PigeonAssetPrizes.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonAssetPrizes.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonAssetPrizes.vue?vue&type=style&index=0&id=9eb632dc&prod&lang=scss&scoped=true\"\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 \"9eb632dc\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PigeonAssetPrizes.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"ranking\"},[_c('div',{staticClass:\"ranking_rank\"},[_c('span',{staticClass:\"ranking_position\"},[_vm._v(_vm._s(_vm.ranking.count))]),(_vm.HasRankImage)?_c('div',{staticClass:\"ranking_image-rank\"},[_c('SvgLaurelWreath',{staticClass:\"svg svg-gold\",class:_vm.GetRankImageType(_vm.ranking.order)})],1):_vm._e()]),_c('div',{staticClass:\"ranking_label\"},[(_vm.ranking.top && _vm.ranking.top > 0)?_c('div',[_vm._v(_vm._s(_vm.$t(\"top_ranking\"))+\" \"+_vm._s(_vm.ranking.top))]):_vm._e(),_c('div',[_vm._v(_vm._s(_vm.$t(_vm.ranking.area)))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IPrizesRanking } from \"@api/models/market/IPrizesRanking\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class PigeonAssetRanking extends Vue {\r\n @Prop({ type: Object, default: () => {} })\r\n readonly ranking: IPrizesRanking;\r\n\r\n get HasRankImage(): boolean {\r\n return typeof this.ranking.top !== \"undefined\";\r\n }\r\n\r\n public GetRankImageType(order: number): string {\r\n if (order <= 1) {\r\n return \"svg-gold\";\r\n } else if (order <= 2) {\r\n return \"svg-silver\";\r\n } else {\r\n return \"svg-green\";\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonAssetRanking.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonAssetRanking.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonAssetRanking.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonAssetRanking.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PigeonAssetRanking.vue?vue&type=template&id=78614ecc&scoped=true\"\nimport script from \"./PigeonAssetRanking.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonAssetRanking.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonAssetRanking.vue?vue&type=style&index=0&id=78614ecc&prod&lang=scss&scoped=true\"\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 \"78614ecc\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PigeonAssetRanking.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"select-dropdown\"},[_c('div',{staticClass:\"input select-input w-100\",class:{ 't-black': _vm.theme === 'black', 't-dark': _vm.theme === 'dark' },on:{\"click\":function($event){return _vm.ToggleExpand()}}},[(_vm.isLoading)?_c('AppLoader',{staticClass:\"inside-loader\"},[_c('small',[_vm._v(_vm._s(_vm.$t(\"loading\")))])]):_c('PigeonDropdownlistItem',{attrs:{\"editable\":false,\"pigeon\":_vm.selected,\"theme\":_vm.theme},on:{\"filter-by-name\":function($event){return _vm.$emit('filter-by-name', $event)},\"filter-by-ring\":function($event){return _vm.$emit('filter-by-ring', $event)}}})],1),_c('button',{staticClass:\"btn btn-select\",attrs:{\"type\":\"button\",\"tabindex\":\"1\"},on:{\"click\":function($event){return _vm.ToggleExpand()}}},[_c('Icon',{attrs:{\"icon\":\"angle-down\"}})],1),(_vm.pigeons.length)?_c('ul',{staticClass:\"menu\",class:{ 'is-expanded': _vm.isExpanded }},_vm._l((_vm.pigeons),function(pigeon){return _c('li',{key:`dropdown_${pigeon.id}`,staticClass:\"menu-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.SelectItem(pigeon)}}},[_c('PigeonDropdownlistItem',{attrs:{\"pigeon\":pigeon}})],1)}),0):_c('ul',{staticClass:\"menu h-auto\",class:{ 'is-expanded': _vm.isExpanded }},[_c('li',[_c('div',{staticClass:\"segment segment-block text-info\"},[_c('Icon',{staticClass:\"fa-2x\",attrs:{\"icon\":\"info\"}}),_c('div',{staticClass:\"mt-2\"},[_c('p',[_vm._v(_vm._s(_vm.$t(\"no_data\")))])])],1)])]),(_vm.isExpanded)?_c('div',{staticClass:\"trigger-overlay\",on:{\"click\":function($event){return _vm.Collapse()}}}):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AppThemes } from \"@api/models/market/constants/AppThemes\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport PigeonDropdownlistItem from \"@pigeon/components/pigeon/PigeonDropdownlistItem.vue\";\r\nimport { Component, Emit, Model, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n PigeonDropdownlistItem\r\n }\r\n})\r\nexport default class PigeonDropdownlist extends Vue {\r\n @Model(\"change\")\r\n readonly selected: IPigeon | null;\r\n @Prop({ type: Array })\r\n readonly pigeons: IPigeon[];\r\n @Prop({ default: false })\r\n readonly isLoading: boolean;\r\n @Prop({ default: AppThemes.Light, validator: (value: AppThemes) => Object.values(AppThemes).includes(value) })\r\n readonly theme: AppThemes;\r\n\r\n isExpanded: boolean = false;\r\n\r\n @Emit(\"expand\")\r\n public ToggleExpand(): void {\r\n if (this.isLoading) return;\r\n this.isExpanded = !this.isExpanded;\r\n }\r\n\r\n @Emit(\"expand\")\r\n public Expand(): void {\r\n if (this.isLoading) return;\r\n this.isExpanded = true;\r\n }\r\n\r\n public Collapse(): void {\r\n if (this.isLoading) return;\r\n this.isExpanded = false;\r\n }\r\n\r\n @Emit(\"change\")\r\n public SelectItem(selected: IPigeon) {\r\n this.isExpanded = false;\r\n\r\n if (selected !== this.selected && selected) {\r\n return selected;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonDropdownlist.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonDropdownlist.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonDropdownlist.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonDropdownlist.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PigeonDropdownlist.vue?vue&type=template&id=298b4f10&scoped=true\"\nimport script from \"./PigeonDropdownlist.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonDropdownlist.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonDropdownlist.vue?vue&type=style&index=0&id=298b4f10&prod&lang=scss&scoped=true\"\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 \"298b4f10\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PigeonDropdownlist.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.pigeon !== null)?_c('div',{staticClass:\"pane\",class:{ 't-black': _vm.theme === 'black', 't-dark': _vm.theme === 'dark' }},[_c('div',{staticClass:\"pane_label\"},[(_vm.PigeonIcon)?_c('Icon',{staticClass:\"product_sex\",class:{ 'fg-blue': _vm.pigeon.sex == _vm.SexTypes.Male, 'fg-red': _vm.pigeon.sex == _vm.SexTypes.Female },attrs:{\"icon\":_vm.PigeonIcon}}):_vm._e()],1),_c('div',{staticClass:\"pane_caption\"},[_c('span',[_vm._v(_vm._s(_vm.$t(\"parent.\" + _vm.pigeon.relationship)))])]),_c('div',{staticClass:\"pane_title\"},[_c('span',{ref:\"pigeonName\",staticClass:\"content-editable\",attrs:{\"contenteditable\":_vm.editable && _vm.$refs.pigeonName},domProps:{\"textContent\":_vm._s(_vm.pigeon.name)},on:{\"focus\":function($event){return _vm.ClearElementText(_vm.$refs.pigeonName)}}})]),_c('div',{staticClass:\"pane_secondary-title\"},[_c('span',{ref:\"pigeonRing\",staticClass:\"content-editable\",attrs:{\"contenteditable\":_vm.editable && _vm.$refs.pigeonRing},domProps:{\"textContent\":_vm._s(_vm.pigeon.ring)},on:{\"focus\":function($event){return _vm.ClearElementText(_vm.$refs.pigeonRing)}}})])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { SexTypes } from \"@api/models/market/constants/SexTypes\";\r\nimport { IProductDropdownListItem } from \"@pigeon/models/IProductDropdownListItem\";\r\n\r\nexport class ProductItemFactory {\r\n public static GetUnknowItem(): IProductDropdownListItem {\r\n return {\r\n id: -1,\r\n relationship: \"unknown\",\r\n name: \"unknown\",\r\n ring: \"XX 00-0000000\",\r\n sex: SexTypes.Unknown\r\n };\r\n }\r\n}\r\n","import { ProductItemFactory } from \"@api/factories/productItemFactory\";\r\nimport { AppThemes } from \"@api/models/market/constants/AppThemes\";\r\nimport { SexTypes } from \"@api/models/market/constants/SexTypes\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { IProductDropdownListItem } from \"@pigeon/models/IProductDropdownListItem\";\r\nimport { IPigeonManager } from \"@pigeon/services/contracts/IPigeonManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Emit, Prop, Vue, Watch } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class PigeonDropdownlistItem extends Vue {\r\n @Prop({ default: () => ProductItemFactory.GetUnknowItem() })\r\n readonly pigeon: IProductDropdownListItem;\r\n @Prop({ default: false })\r\n readonly editable: false;\r\n @Prop({ default: AppThemes.Light, validator: (value: AppThemes) => Object.values(AppThemes).includes(value) })\r\n readonly theme: AppThemes;\r\n\r\n @Inject()\r\n private pigeonManager: IPigeonManager;\r\n\r\n $refs: {\r\n pigeonName: Element;\r\n pigeonRing: Element;\r\n };\r\n SexTypes = SexTypes;\r\n\r\n mounted() {\r\n // if (this.$refs.pigeonName) {\r\n // new MutationObserver(() => {\r\n // if (this.$refs.pigeonName.textContent !== \"undefined\") {\r\n // this.FilterByName(this.$refs.pigeonName.textContent);\r\n // }\r\n // }).observe(this.$refs.pigeonName, { childList: true, subtree: true, characterData: true });\r\n // }\r\n // if (this.$refs.pigeonRing) {\r\n // new MutationObserver(() => {\r\n // if (this.$refs.pigeonRing.textContent !== \"undefined\") {\r\n // this.FilterByRing(this.$refs.pigeonRing.textContent);\r\n // }\r\n // }).observe(this.$refs.pigeonRing, { childList: true, subtree: true, characterData: true });\r\n // }\r\n }\r\n\r\n @Watch(nameof(\"$i18n.locale\"), { immediate: true })\r\n ObserveUnknownDefaultValue(): void {\r\n if (this.pigeon === ProductItemFactory.GetUnknowItem()) {\r\n this.pigeon.name = this.$i18n.t(\"common.unknown\") as string;\r\n }\r\n }\r\n\r\n @Emit()\r\n public FilterByName(name: string | null) {\r\n if (!name) return;\r\n\r\n return name;\r\n }\r\n\r\n @Emit()\r\n public FilterByRing(ring: string | null) {\r\n if (!ring) return;\r\n\r\n return ring;\r\n }\r\n\r\n get PigeonIcon(): string {\r\n return this.pigeonManager.GetSexIcon(this.pigeon);\r\n }\r\n\r\n public ClearElementText(element: HTMLSpanElement): void {\r\n element.innerHTML = \"\";\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonDropdownlistItem.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonDropdownlistItem.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonDropdownlistItem.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonDropdownlistItem.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PigeonDropdownlistItem.vue?vue&type=template&id=127c83ca&scoped=true\"\nimport script from \"./PigeonDropdownlistItem.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonDropdownlistItem.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonDropdownlistItem.vue?vue&type=style&index=0&id=127c83ca&prod&lang=scss&scoped=true\"\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 \"127c83ca\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PigeonDropdownlistItem.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.pedigree)?_c('div',{ref:\"refPedigree\",staticClass:\"position-relative overflow-y-auto\"},[_c('button',{staticClass:\"d-none d-xl-block tab button-tab aside-tab vertical-tab\",class:{ 'primary-tab': !_vm.isAsideOpened, 'primary-outline-tab': _vm.isAsideOpened },attrs:{\"type\":\"button\",\"role\":\"navigation\"},on:{\"click\":function($event){return _vm.ToggleAsideWindow()}}},[_c('span',{staticClass:\"tab_toggler\"},[_vm._v(_vm._s(_vm.isAsideOpened? \"x\": \">\"))]),_vm._v(\" \"+_vm._s(_vm.$t('action.tab_info'))+\" \")]),_c('div',{staticClass:\"row no-gutters\"},[(_vm.isAsideOpened && _vm.documentIsInFullScreen)?_c('div',{staticClass:\"d-none d-xl-flex flex-column col-xl-4\",attrs:{\"id\":\"colPedigreeSheet\"}},[_c('div',{staticClass:\"bg-white\"},[_c('button',{staticClass:\"btn btn-outline-primary w-100\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.ToggleAsideWindow()}}},[_vm._v(\" \"+_vm._s(_vm.isAsideOpened? _vm.$t('action.minimize_info'): _vm.$t('action.maximize_info'))+\" \")])]),_c('PigeonPedigreeSheet',{attrs:{\"pedigree\":_vm.pedigree},model:{value:(_vm.selectedPigeon),callback:function ($$v) {_vm.selectedPigeon=$$v},expression:\"selectedPigeon\"}})],1):_vm._e(),_c('div',{staticClass:\"col-12 position-relative\",class:{ 'col-xl-8': _vm.isAsideOpened && _vm.documentIsInFullScreen },attrs:{\"id\":\"colPedigreeDiagram\"}},[_c('section',{staticClass:\"d-flex flex-column h-100\"},[_c('PigeonPedigreeDiagram',{attrs:{\"generation\":_vm.generation,\"pedigree\":_vm.pedigree,\"parents-linked\":_vm.parentsLinked,\"orientation\":_vm.orientation,\"id\":\"pedigreeDiagram\"},on:{\"select\":function($event){return _vm.OpenAside()},\"select-generation\":function($event){return _vm.$emit('select-generation', $event)},\"fullscreen\":function($event){return _vm.SwitchPedigreeToFullScreen()}},model:{value:(_vm.selectedPigeon),callback:function ($$v) {_vm.selectedPigeon=$$v},expression:\"selectedPigeon\"}})],1)])])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport PigeonDropdownlist from \"@pigeon/components/pigeon/PigeonDropdownlist.vue\";\r\nimport PigeonSheet from \"@pigeon/components/pigeon/PigeonSheet.vue\";\r\nimport { ProductDisplayModes } from \"@pigeon/enumerations/ProductDisplayModes\";\r\nimport { IPigeonManager } from \"@pigeon/services/contracts/IPigeonManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Emit, Model, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n PigeonDropdownlist,\r\n PigeonSheet\r\n }\r\n})\r\nexport default class PigeonPedigreeSheet extends Vue {\r\n @Model(\"select\")\r\n readonly selected: IPigeon | null;\r\n @Prop({ type: Array, default: () => [] })\r\n readonly pedigree: IPigeon[];\r\n @Prop({ default: false })\r\n readonly useRawPicture: boolean;\r\n\r\n @Inject()\r\n private pigeonManager: IPigeonManager;\r\n\r\n DisplayModes = ProductDisplayModes;\r\n isMinimized: boolean = false;\r\n forceFallbackPicture: boolean = false;\r\n\r\n private get CurrentSelectedIndex(): number {\r\n if (!this.pedigree) {\r\n return -1;\r\n }\r\n\r\n return this.pedigree.findIndex((pigeon) => this.selected == pigeon);\r\n }\r\n\r\n private get PreviousSelectedIndex(): number {\r\n return this.CurrentSelectedIndex - 1 >= 0 ? this.CurrentSelectedIndex - 1 : 0;\r\n }\r\n\r\n private get NextSelectedIndex(): number {\r\n return this.CurrentSelectedIndex + 1 <= this.MaxSelectedIndex\r\n ? this.CurrentSelectedIndex + 1\r\n : this.MaxSelectedIndex;\r\n }\r\n\r\n private get MaxSelectedIndex(): number {\r\n if (!this.pedigree) {\r\n return 0;\r\n }\r\n\r\n return this.pedigree.length - 1;\r\n }\r\n\r\n get SelectedPigeonPictureUrl(): string {\r\n if (!this.selected) {\r\n return this.pigeonManager.defaultPigeonPicture;\r\n }\r\n\r\n return this.pigeonManager.GetPicturePigeon(this.selected.pictures, this.useRawPicture || this.forceFallbackPicture);\r\n }\r\n\r\n public GoToPreviousPigeon(): void {\r\n this.GoTo(this.PreviousSelectedIndex);\r\n }\r\n\r\n public GoToNextPigeon(): void {\r\n this.GoTo(this.NextSelectedIndex);\r\n }\r\n\r\n @Emit(\"select\")\r\n public GoTo(index: number) {\r\n if (!this.pedigree || index < 0 || index > this.MaxSelectedIndex) {\r\n return;\r\n }\r\n\r\n return this.pedigree[index];\r\n // this.selected = this.pedigree[index];\r\n }\r\n\r\n public OnPigeonPictureError(): void {\r\n this.forceFallbackPicture = true;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonPedigreeSheet.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonPedigreeSheet.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./PigeonPedigreeSheet.vue?vue&type=template&id=76f0aca0&scoped=true\"\nimport script from \"./PigeonPedigreeSheet.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonPedigreeSheet.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonPedigreeSheet.vue?vue&type=style&index=0&id=76f0aca0&prod&lang=scss&scoped=true\"\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 \"76f0aca0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.pedigree)?_c('article',{staticClass:\"sheet\",attrs:{\"tabindex\":\"0\"},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"left\",37,$event.key,[\"Left\",\"ArrowLeft\"]))return null;if('button' in $event && $event.button !== 0)return null;return _vm.GoToPreviousPigeon()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"right\",39,$event.key,[\"Right\",\"ArrowRight\"]))return null;if('button' in $event && $event.button !== 2)return null;return _vm.GoToNextPigeon()}]}},[_c('PigeonDropdownlist',{attrs:{\"pigeons\":_vm.pedigree,\"selected\":_vm.selected},on:{\"change\":function($event){return _vm.$emit('select', $event)}}}),(_vm.selected)?_c('div',{staticClass:\"sheet_media\"},[_c('picture',[_c('img',{attrs:{\"src\":_vm.SelectedPigeonPictureUrl,\"alt\":\"parent pigeon picture\"},on:{\"error\":function($event){return _vm.OnPigeonPictureError()}}})]),_c('nav',[_c('button',{staticClass:\"previous-button btn-primary\",attrs:{\"type\":\"button\",\"role\":\"navigation\",\"disabled\":_vm.CurrentSelectedIndex === 0},on:{\"click\":function($event){return _vm.GoToPreviousPigeon()}}},[_c('Icon',{attrs:{\"icon\":\"angle-left\"}})],1),_c('button',{staticClass:\"next-button btn-primary\",attrs:{\"type\":\"button\",\"role\":\"navigation\",\"disabled\":_vm.CurrentSelectedIndex === _vm.MaxSelectedIndex},on:{\"click\":function($event){return _vm.GoToNextPigeon()}}},[_c('Icon',{attrs:{\"icon\":\"angle-right\"}})],1)])]):_vm._e(),_c('PigeonSheet',{attrs:{\"pigeon\":_vm.selected,\"mode\":_vm.DisplayModes.Compact}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { PedigreeDiagramOrientations } from \"@pigeon/components/pigeon/PigeonPedigreeDiagram\";\r\nimport PigeonPedigreeDiagram from \"@pigeon/components/pigeon/PigeonPedigreeDiagram.vue\";\r\nimport PigeonPedigreeSheet from \"@pigeon/components/pigeon/PigeonPedigreeSheet.vue\";\r\nimport { Component, Prop, Ref, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n PigeonPedigreeSheet,\r\n PigeonPedigreeDiagram\r\n }\r\n})\r\nexport default class PigeonPedigree extends Vue {\r\n @Prop({ type: Array, default: () => [] })\r\n readonly pedigree: IPigeon[];\r\n @Prop({ default: 2 })\r\n readonly generation: number;\r\n @Prop({ default: false })\r\n readonly parentsLinked: boolean;\r\n @Prop({\r\n default: PedigreeDiagramOrientations.Horizontal,\r\n validator: (value: PedigreeDiagramOrientations) => Object.values(PedigreeDiagramOrientations).includes(value)\r\n })\r\n readonly orientation: PedigreeDiagramOrientations;\r\n\r\n @Ref()\r\n refPedigree: HTMLElement;\r\n\r\n selectedPigeon: IPigeon | null = null;\r\n isAsideOpened: boolean = false;\r\n documentIsInFullScreen: boolean = false;\r\n\r\n mounted(): void {\r\n this.ListenFullScreenChange();\r\n }\r\n\r\n private ListenFullScreenChange(): void {\r\n document.addEventListener(\"fullscreenchange\", () => {\r\n this.documentIsInFullScreen = document.fullscreen || !!document.fullscreenElement;\r\n });\r\n document.addEventListener(\"mozfullscreenchange\", () => {\r\n this.documentIsInFullScreen = document.fullscreen || !!(document as any).mozFullScreenElement;\r\n });\r\n document.addEventListener(\"webkitfullscreenchange\", () => {\r\n this.documentIsInFullScreen = document.fullscreen || !!(document as any).webkitFullscreenElement;\r\n });\r\n document.addEventListener(\"msfullscreenchange\", () => {\r\n this.documentIsInFullScreen = document.fullscreen || !!(document as any).msFullscreenElement;\r\n });\r\n }\r\n\r\n public ToggleAsideWindow(): void {\r\n this.isAsideOpened = !this.isAsideOpened;\r\n }\r\n\r\n public OpenAside(): void {\r\n this.isAsideOpened = true;\r\n }\r\n\r\n public SwitchPedigreeToFullScreen(): void {\r\n if (!this.refPedigree) return;\r\n const element: any = this.refPedigree;\r\n\r\n if (element.requestFullscreen) {\r\n element.requestFullscreen();\r\n } else if (element.webkitRequestFullscreen) {\r\n element.webkitRequestFullscreen();\r\n } else if (element.mozRequestFullScreen) {\r\n element.mozRequestFullScreen();\r\n } else if (element.msRequestFullscreen) {\r\n element.msRequestFullscreen();\r\n } else {\r\n console.warn(\"Fullscreen API is not supported.\");\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonPedigree.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonPedigree.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonPedigree.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonPedigree.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PigeonPedigree.vue?vue&type=template&id=7cce395f&scoped=true\"\nimport script from \"./PigeonPedigree.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonPedigree.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonPedigree.vue?vue&type=style&index=0&id=7cce395f&prod&lang=scss&scoped=true\"\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 \"7cce395f\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PigeonPedigree.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.pedigree)?_c('section',{staticClass:\"d-flex flex-column\",on:{\"mousedown\":function($event){return _vm.GrabStart($event)},\"mouseleave\":function($event){return _vm.GrabStop($event)},\"mousemove\":function($event){return _vm.GrabMove($event)},\"mouseup\":function($event){return _vm.GrabStop($event)}}},[_c('div',{staticClass:\"bg-white\"},[(!_vm.documentIsInFullScreen)?_c('button',{staticClass:\"btn btn-outline-secondary w-100\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.SwitchPedigreeToFullScreen()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"action.enter_fullscreen\"))+\" \")]):_c('button',{staticClass:\"btn btn-outline-secondary w-100\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.ExitFullScreen()}}},[_vm._v(\" \"+_vm._s(_vm.$t('action.exit_fullscreen'))+\" \")])]),_c('div',{staticClass:\"d-flex flex-column h-100\"},[(_vm.hasGenerationSelect)?_c('FormInputSelect',{staticClass:\"bg-white\",attrs:{\"is-boxed\":true,\"options\":_vm.generationOptions,\"label\":_vm.$t('generation.label')},on:{\"input\":function($event){return _vm.OnSelectGeneration($event.target.value)}},model:{value:(_vm.selectedGeneration),callback:function ($$v) {_vm.selectedGeneration=$$v},expression:\"selectedGeneration\"}}):_vm._e(),_c('div',{ref:\"refDiagramTree\",staticClass:\"tree family-tree\",class:`tree-${_vm.orientation}`},[(!_vm.documentIsInFullScreen)?_c('button',{staticClass:\"btn btn-link zoom\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.SwitchPedigreeToFullScreen()}}},[_c('Icon',{attrs:{\"icon\":\"search-plus\"}})],1):_c('button',{staticClass:\"btn btn-link zoom\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.ExitFullScreen()}}},[_c('Icon',{attrs:{\"icon\":\"search-minus\"}})],1),_c('div',{staticClass:\"tree_generation tree_generation-1\"},[_c('div',{staticClass:\"tree_paire\"},[_c('AssetParent',{staticClass:\"is-reactive tree_node\",attrs:{\"is-selectable\":true,\"parent\":_vm.Child,\"selected\":_vm.selected,\"show-link\":_vm.parentsLinked,\"relationship\":\"Pigeon\",\"theme\":\"dark\"},on:{\"select\":function($event){return _vm.OnSelect($event)}}})],1)]),(_vm.selectedGeneration >= 1)?_c('div',{staticClass:\"tree_generation tree_generation-2\"},[_c('div',{staticClass:\"tree_paire\"},[_c('AssetParent',{staticClass:\"is-reactive tree_node\",attrs:{\"is-selectable\":true,\"parent\":_vm.Father,\"relationship\":_vm.GetRelationship(_vm.Father),\"selected\":_vm.selected,\"show-link\":_vm.parentsLinked,\"theme\":\"dark\"},on:{\"select\":function($event){return _vm.OnSelect($event)}}}),_c('AssetParent',{staticClass:\"is-reactive tree_node\",attrs:{\"is-selectable\":true,\"parent\":_vm.Mother,\"relationship\":_vm.GetRelationship(_vm.Mother),\"selected\":_vm.selected,\"show-link\":_vm.parentsLinked,\"theme\":\"dark\"},on:{\"select\":function($event){return _vm.OnSelect($event)}}})],1)]):_vm._e(),(_vm.selectedGeneration >= 2)?_c('div',{staticClass:\"tree_generation tree_generation-3\"},[_c('div',{staticClass:\"tree_paire\"},[_c('AssetParent',{staticClass:\"is-reactive tree_node\",attrs:{\"is-selectable\":true,\"parent\":_vm.PaternalGrandFather,\"relationship\":_vm.GetRelationship(_vm.PaternalGrandFather),\"selected\":_vm.selected,\"show-link\":_vm.parentsLinked,\"theme\":\"dark\"},on:{\"select\":function($event){return _vm.OnSelect($event)}}}),_c('AssetParent',{staticClass:\"is-reactive tree_node\",attrs:{\"is-selectable\":true,\"parent\":_vm.PaternalGrandMother,\"relationship\":_vm.GetRelationship(_vm.PaternalGrandMother),\"selected\":_vm.selected,\"show-link\":_vm.parentsLinked,\"theme\":\"dark\"},on:{\"select\":function($event){return _vm.OnSelect($event)}}})],1),_c('div',{staticClass:\"tree_paire\"},[_c('AssetParent',{staticClass:\"is-reactive tree_node\",attrs:{\"is-selectable\":true,\"parent\":_vm.MaternalGrandFather,\"relationship\":_vm.GetRelationship(_vm.MaternalGrandFather),\"selected\":_vm.selected,\"show-link\":_vm.parentsLinked,\"theme\":\"dark\"},on:{\"select\":function($event){return _vm.OnSelect($event)}}}),_c('AssetParent',{staticClass:\"is-reactive tree_node\",attrs:{\"is-selectable\":true,\"parent\":_vm.MaternalGrandMother,\"relationship\":_vm.GetRelationship(_vm.MaternalGrandMother),\"selected\":_vm.selected,\"show-link\":_vm.parentsLinked,\"theme\":\"dark\"},on:{\"select\":function($event){return _vm.OnSelect($event)}}})],1)]):_vm._e(),(_vm.selectedGeneration >= 3)?_c('div',{staticClass:\"tree_generation tree_generation-4\"},[_c('div',{staticClass:\"tree_paire\"},[_c('AssetParent',{staticClass:\"is-reactive tree_node\",attrs:{\"is-selectable\":true,\"parent\":_vm.PaternalGreatGrandFatherFromGFather,\"relationship\":_vm.GetRelationship(_vm.PaternalGreatGrandFatherFromGFather),\"selected\":_vm.selected,\"show-asset\":false,\"show-link\":_vm.parentsLinked,\"theme\":\"dark\"},on:{\"select\":function($event){return _vm.OnSelect($event)}}}),_c('AssetParent',{staticClass:\"is-reactive tree_node\",attrs:{\"is-selectable\":true,\"parent\":_vm.PaternalGreatGrandMotherFromGFather,\"relationship\":_vm.GetRelationship(_vm.PaternalGreatGrandMotherFromGFather),\"selected\":_vm.selected,\"show-asset\":false,\"show-link\":_vm.parentsLinked,\"theme\":\"dark\"},on:{\"select\":function($event){return _vm.OnSelect($event)}}})],1),_c('div',{staticClass:\"tree_paire\"},[_c('AssetParent',{staticClass:\"is-reactive tree_node\",attrs:{\"is-selectable\":true,\"parent\":_vm.PaternalGreatGrandFatherFromGMother,\"relationship\":_vm.GetRelationship(_vm.PaternalGreatGrandFatherFromGMother),\"selected\":_vm.selected,\"show-asset\":false,\"show-link\":_vm.parentsLinked,\"theme\":\"dark\"},on:{\"select\":function($event){return _vm.OnSelect($event)}}}),_c('AssetParent',{staticClass:\"is-reactive tree_node\",attrs:{\"is-selectable\":true,\"parent\":_vm.PaternalGreatGrandMotherFromGMother,\"relationship\":_vm.GetRelationship(_vm.PaternalGreatGrandMotherFromGMother),\"selected\":_vm.selected,\"show-asset\":false,\"show-link\":_vm.parentsLinked,\"theme\":\"dark\"},on:{\"select\":function($event){return _vm.OnSelect($event)}}})],1),_c('div',{staticClass:\"tree_paire\"},[_c('AssetParent',{staticClass:\"is-reactive tree_node\",attrs:{\"is-selectable\":true,\"parent\":_vm.MaternalGreatGrandFatherFromGFather,\"relationship\":_vm.GetRelationship(_vm.MaternalGreatGrandFatherFromGFather),\"selected\":_vm.selected,\"show-asset\":false,\"show-link\":_vm.parentsLinked,\"theme\":\"dark\"},on:{\"select\":function($event){return _vm.OnSelect($event)}}}),_c('AssetParent',{staticClass:\"is-reactive tree_node\",attrs:{\"is-selectable\":true,\"parent\":_vm.MaternalGreatGrandMotherFromGFather,\"relationship\":_vm.GetRelationship(_vm.MaternalGreatGrandMotherFromGFather),\"selected\":_vm.selected,\"show-asset\":false,\"show-link\":_vm.parentsLinked,\"theme\":\"dark\"},on:{\"select\":function($event){return _vm.OnSelect($event)}}})],1),_c('div',{staticClass:\"tree_paire\"},[_c('AssetParent',{staticClass:\"is-reactive tree_node\",attrs:{\"is-selectable\":true,\"parent\":_vm.MaternalGreatGrandFatherFromGMother,\"relationship\":_vm.GetRelationship(_vm.MaternalGreatGrandFatherFromGMother),\"selected\":_vm.selected,\"show-asset\":false,\"show-link\":_vm.parentsLinked,\"theme\":\"dark\"},on:{\"select\":function($event){return _vm.OnSelect($event)}}}),_c('AssetParent',{staticClass:\"is-reactive tree_node\",attrs:{\"is-selectable\":true,\"parent\":_vm.MaternalGreatGrandMotherFromGMother,\"relationship\":_vm.GetRelationship(_vm.MaternalGreatGrandMotherFromGMother),\"selected\":_vm.selected,\"show-asset\":false,\"show-link\":_vm.parentsLinked,\"theme\":\"dark\"},on:{\"select\":function($event){return _vm.OnSelect($event)}}})],1)]):_vm._e()])],1)]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ProductFactory } from \"@api/factories/productFactory\";\r\nimport { RelationshipTypes } from \"@api/models/market/constants/RelationshipTypes\";\r\nimport { SexTypes } from \"@api/models/market/constants/SexTypes\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport PigeonAssetParent from \"@pigeon/components/pigeon/PigeonAssetParent.vue\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { Component, Emit, Model, Prop, Ref, Vue, Watch } from \"vue-property-decorator\";\r\nimport { AlertTypes } from \"../app/AppAlert\";\r\n\r\nexport enum PedigreeDiagramOrientations {\r\n Horizontal = \"horizontal\",\r\n Vertical = \"vertical\"\r\n}\r\n\r\n@Component({\r\n components: {\r\n AssetParent: PigeonAssetParent\r\n }\r\n})\r\nexport default class PigeonPedigreeDiagram extends Vue {\r\n @Model(\"select\")\r\n readonly selected: IPigeon | null;\r\n\r\n @Prop({ type: Array, default: () => [] })\r\n readonly pedigree: IPigeon[];\r\n @Prop({ default: 2 })\r\n readonly generation!: number;\r\n @Prop({ default: true })\r\n readonly hasGenerationSelect: boolean;\r\n @Prop({ default: false })\r\n readonly parentsLinked: boolean;\r\n @Prop({\r\n default: PedigreeDiagramOrientations.Horizontal,\r\n validator: (value: PedigreeDiagramOrientations) => Object.values(PedigreeDiagramOrientations).includes(value)\r\n })\r\n readonly orientation: PedigreeDiagramOrientations;\r\n\r\n @Ref()\r\n readonly refDiagramTree: HTMLElement;\r\n\r\n AlertTypes = AlertTypes;\r\n documentIsInFullScreen: boolean = false;\r\n selectedGeneration: number = this.generation;\r\n generationOptions: any = [\r\n { label: \"1 generation [parents]\", value: 1 },\r\n { label: \"2 generations [grand parents]\", value: 2 },\r\n { label: \"3 generations [great grand parents]\", value: 3 }\r\n ];\r\n\r\n private grab: boolean = false;\r\n private startX: number = 0;\r\n private scrollLeft: number = 0;\r\n\r\n mounted(): void {\r\n this.ListenFullScreenChange();\r\n }\r\n\r\n private ListenFullScreenChange(): void {\r\n document.addEventListener(\"fullscreenchange\", () => {\r\n this.documentIsInFullScreen = document.fullscreen || !!document.fullscreenElement;\r\n });\r\n document.addEventListener(\"mozfullscreenchange\", () => {\r\n this.documentIsInFullScreen = document.fullscreen || !!(document as any).mozFullScreenElement;\r\n });\r\n document.addEventListener(\"webkitfullscreenchange\", () => {\r\n this.documentIsInFullScreen = document.fullscreen || !!(document as any).webkitFullscreenElement;\r\n });\r\n document.addEventListener(\"msfullscreenchange\", () => {\r\n this.documentIsInFullScreen = document.fullscreen || !!(document as any).msFullscreenElement;\r\n });\r\n }\r\n\r\n @Watch(nameof(\"generation\"), { immediate: true })\r\n ObserveGeneration() {\r\n this.selectedGeneration = this.generation;\r\n }\r\n\r\n public GetRelationship(pigeon: IPigeon | undefined): string {\r\n if (!pigeon || !pigeon.relationship) return \"\";\r\n\r\n return pigeon.relationship;\r\n }\r\n\r\n public GrabStart(event: MouseEvent): void {\r\n this.grab = true;\r\n\r\n const slider: HTMLElement = this.refDiagramTree;\r\n if (!slider) return;\r\n slider.classList.add(\"is-grabbed\");\r\n this.startX = event.pageX - slider.offsetLeft;\r\n this.scrollLeft = slider.scrollLeft;\r\n }\r\n\r\n public GrabStop(event: Event): void {\r\n this.grab = false;\r\n\r\n if (!this.refDiagramTree) return;\r\n this.refDiagramTree.classList.remove(\"is-grabbed\");\r\n }\r\n\r\n public GrabMove(event: MouseEvent): void {\r\n if (!this.grab) return;\r\n\r\n event.preventDefault();\r\n\r\n const slider: HTMLElement = this.refDiagramTree;\r\n if (!slider) return;\r\n\r\n const x = event.pageX - slider.offsetLeft;\r\n const walk = (x - this.startX) * 1;\r\n slider.scrollLeft = this.scrollLeft - walk;\r\n }\r\n\r\n @Emit(\"fullscreen\")\r\n public SwitchPedigreeToFullScreen(): void {}\r\n\r\n public SwitchDiagramToFullScreen(): void {\r\n if (!this.refDiagramTree) return;\r\n const element: any = this.refDiagramTree;\r\n\r\n if (element.requestFullscreen) {\r\n element.requestFullscreen();\r\n } else if (element.webkitRequestFullscreen) {\r\n element.webkitRequestFullscreen();\r\n } else if (element.mozRequestFullScreen) {\r\n element.mozRequestFullScreen();\r\n } else if (element.msRequestFullscreen) {\r\n element.msRequestFullscreen();\r\n } else {\r\n console.warn(\"Fullscreen API is not supported.\");\r\n }\r\n }\r\n\r\n public ExitFullScreen(): void {\r\n const browserDocument: any = document as any;\r\n\r\n if (browserDocument.exitFullscreen) {\r\n browserDocument.exitFullscreen();\r\n } else if (browserDocument.webkitExitFullscreen) {\r\n /* Safari */\r\n browserDocument.webkitExitFullscreen();\r\n } else if (browserDocument.msExitFullscreen) {\r\n /* IE11 */\r\n browserDocument.msExitFullscreen();\r\n }\r\n }\r\n\r\n @Emit(\"select\")\r\n public OnSelect(pigeon: IPigeon) {\r\n if (pigeon === this.selected) return;\r\n\r\n return pigeon;\r\n }\r\n\r\n @Emit(\"select-generation\")\r\n public OnSelectGeneration(selectedGeneration: string) {\r\n if (!selectedGeneration) return;\r\n\r\n this.selectedGeneration = parseInt(selectedGeneration);\r\n return this.selectedGeneration;\r\n }\r\n\r\n public GetUnknowPigeon(relationship = \"Parent\"): IPigeon {\r\n return ProductFactory.GetUnknownPigeon(relationship) as IPigeon;\r\n }\r\n\r\n // Getter Child\r\n // Warning: First pigeon of pedigree must be the child\r\n get Child(): IPigeon | undefined {\r\n const child: IPigeon = this.pedigree[0];\r\n\r\n if (!child || !child.id) {\r\n return child;\r\n }\r\n\r\n return this.GetParentPigeon(\"Pigeon\", child.id);\r\n }\r\n\r\n // Getters Parents\r\n get Father(): IPigeon | undefined {\r\n if (!this.Child || !this.Child.fatherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Male,\r\n relationship: RelationshipTypes.Father\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"Father\", this.Child.fatherId);\r\n }\r\n\r\n get Mother(): IPigeon | undefined {\r\n if (!this.Child || !this.Child.motherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Female,\r\n relationship: RelationshipTypes.Mother\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"Mother\", this.Child.motherId);\r\n }\r\n\r\n // Getters GrandParents\r\n get PaternalGrandFather(): IPigeon | undefined {\r\n if (!this.Father || !this.Father.fatherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Male,\r\n relationship: RelationshipTypes.GrandFather\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G.Father\", this.Father.fatherId);\r\n }\r\n\r\n get PaternalGrandMother(): IPigeon | undefined {\r\n if (!this.Father || !this.Father.motherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Female,\r\n relationship: RelationshipTypes.GrandMother\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G.Mother\", this.Father.motherId);\r\n }\r\n\r\n get MaternalGrandFather(): IPigeon | undefined {\r\n if (!this.Mother || !this.Mother.fatherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Male,\r\n relationship: RelationshipTypes.GrandFather\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G.Father\", this.Mother.fatherId);\r\n }\r\n\r\n get MaternalGrandMother(): IPigeon | undefined {\r\n if (!this.Mother || !this.Mother.motherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Female,\r\n relationship: RelationshipTypes.GrandMother\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G.Mother\", this.Mother.motherId);\r\n }\r\n\r\n // Getters Great GrandParents\r\n get PaternalGreatGrandFatherFromGFather(): IPigeon | undefined {\r\n if (!this.PaternalGrandFather || !this.PaternalGrandFather.fatherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Male,\r\n relationship: RelationshipTypes.GreatGrandFather\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Father\", this.PaternalGrandFather.fatherId);\r\n }\r\n\r\n get PaternalGreatGrandMotherFromGFather(): IPigeon | undefined {\r\n if (!this.PaternalGrandFather || !this.PaternalGrandFather.motherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Female,\r\n relationship: RelationshipTypes.GreatGrandMother\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Mother\", this.PaternalGrandFather.motherId);\r\n }\r\n\r\n get PaternalGreatGrandFatherFromGMother(): IPigeon | undefined {\r\n if (!this.PaternalGrandMother || !this.PaternalGrandMother.fatherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Male,\r\n relationship: RelationshipTypes.GreatGrandFather\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Father\", this.PaternalGrandMother.fatherId);\r\n }\r\n\r\n get PaternalGreatGrandMotherFromGMother(): IPigeon | undefined {\r\n if (!this.PaternalGrandMother || !this.PaternalGrandMother.motherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Female,\r\n relationship: RelationshipTypes.GreatGrandMother\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Mother\", this.PaternalGrandMother.motherId);\r\n }\r\n\r\n get MaternalGreatGrandFatherFromGFather(): IPigeon | undefined {\r\n if (!this.MaternalGrandFather || !this.MaternalGrandFather.fatherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Male,\r\n relationship: RelationshipTypes.GreatGrandFather\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Father\", this.MaternalGrandFather.fatherId);\r\n }\r\n\r\n get MaternalGreatGrandMotherFromGFather(): IPigeon | undefined {\r\n if (!this.MaternalGrandFather || !this.MaternalGrandFather.motherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Female,\r\n relationship: RelationshipTypes.GreatGrandMother\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Mother\", this.MaternalGrandFather.motherId);\r\n }\r\n\r\n get MaternalGreatGrandFatherFromGMother(): IPigeon | undefined {\r\n if (!this.MaternalGrandMother || !this.MaternalGrandMother.fatherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Male,\r\n relationship: RelationshipTypes.GreatGrandFather\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Father\", this.MaternalGrandMother.fatherId);\r\n }\r\n\r\n get MaternalGreatGrandMotherFromGMother(): IPigeon | undefined {\r\n if (!this.MaternalGrandMother || !this.MaternalGrandMother.motherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Female,\r\n relationship: RelationshipTypes.GreatGrandMother\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Mother\", this.MaternalGrandMother.motherId);\r\n }\r\n\r\n // Generic getter parent\r\n private GetParentPigeon(relationship: string, parentId: number): IPigeon | undefined {\r\n const parent = this.pedigree.find((pigeon) => {\r\n return pigeon.id === parentId;\r\n });\r\n\r\n if (parent === null || typeof parent === \"undefined\") {\r\n return this.GetUnknowPigeon(relationship);\r\n }\r\n\r\n return parent;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonPedigreeDiagram.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonPedigreeDiagram.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonPedigreeDiagram.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonPedigreeDiagram.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PigeonPedigreeDiagram.vue?vue&type=template&id=04577389&scoped=true\"\nimport script from \"./PigeonPedigreeDiagram.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonPedigreeDiagram.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonPedigreeDiagram.vue?vue&type=style&index=0&id=04577389&prod&lang=scss&scoped=true\"\nimport style1 from \"@/Pigeon/styles/components/zoomable.scss?vue&type=style&index=1&id=04577389&prod&lang=scss&scoped=true&external\"\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 \"04577389\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PigeonPedigreeDiagram.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('article',{staticClass:\"position-relative\"},[(_vm.pigeon && _vm.PedigreePdfUrl)?_c('div',{staticClass:\"pdf-container\"},[_c('a',{staticClass:\"btn btn-link zoom\",attrs:{\"href\":_vm.PedigreePdfUrl,\"target\":\"_blank\"}},[_c('Icon',{attrs:{\"icon\":\"search-plus\"}})],1),_c('iframe',{staticClass:\"pdf-iframe\",attrs:{\"src\":_vm.PedigreePdfUrl,\"frameborder\":\"0\"}})]):_c('div',{staticClass:\"pdf-container segment segment-block text-info\"},[_c('Icon',{staticClass:\"fa-4x\",attrs:{\"icon\":\"info\"}}),_c('div',{staticStyle:{\"margin-top\":\"2rem\"}},[_vm._v(_vm._s(_vm.$t(\"no_pedigree_pdf\")))])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { IPigeonManager } from \"@pigeon/services/contracts/IPigeonManager\";\r\nimport { Inject } from \"inversify-props\";\r\n// import pdf from \"vue-pdf\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n // Pdf: pdf\r\n }\r\n})\r\n// See: https://github.com/FranckFreiburger/vue-pdf\r\n// Note: CORS policy must be configured (on storage via CORS settings)\r\nexport default class PigeonPedigreePdf extends Vue {\r\n @Prop()\r\n readonly pigeon: IPigeon;\r\n @Prop({ default: 1 })\r\n readonly pages: number;\r\n\r\n @Inject()\r\n private pigeonManager: IPigeonManager;\r\n\r\n get PedigreePdfUrl(): string {\r\n if (!this.pigeon) {\r\n return this.pigeonManager.defaultPedigreePdf;\r\n }\r\n\r\n return this.pigeonManager.GetPdfPedigree(this.pigeon.pictures);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonPedigreePdf.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonPedigreePdf.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonPedigreePdf.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonPedigreePdf.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PigeonPedigreePdf.vue?vue&type=template&id=79ce392c&scoped=true\"\nimport script from \"./PigeonPedigreePdf.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonPedigreePdf.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonPedigreePdf.vue?vue&type=style&index=0&id=79ce392c&prod&lang=scss&scoped=true\"\nimport style1 from \"@/Pigeon/styles/components/zoomable.scss?vue&type=style&index=1&id=79ce392c&prod&lang=scss&scoped=true&external\"\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 \"79ce392c\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PigeonPedigreePdf.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('article',{staticClass:\"position-relative\"},[(_vm.pigeon && _vm.PedigreePictureUrl)?_c('div',{staticClass:\"picture-container\"},[(_vm.PedigreePictureUrl)?_c('a',{staticClass:\"btn btn-link zoom\",attrs:{\"href\":_vm.PedigreePictureUrl,\"target\":\"_blank\"}},[_c('Icon',{attrs:{\"icon\":\"search-plus\"}})],1):_vm._e(),_c('picture',{staticClass:\"picture\"},[_c('img',{attrs:{\"src\":_vm.PedigreePictureUrl,\"alt\":_vm.$t('picture')},on:{\"error\":function($event){return _vm.OnPedigreePictureUrl()}}})])]):_c('div',{staticClass:\"picture-container segment segment-block text-info\"},[_c('Icon',{staticClass:\"fa-4x\",attrs:{\"icon\":\"info\"}}),_c('div',{staticStyle:{\"margin-top\":\"2rem\"}},[_vm._v(_vm._s(_vm.$t(\"no_pedigree_picture\")))])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { IPigeonManager } from \"@pigeon/services/contracts/IPigeonManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class PigeonPedigreePicture extends Vue {\r\n @Prop()\r\n readonly pigeon: IPigeon;\r\n @Prop({ default: false })\r\n readonly useRawPicture: boolean;\r\n\r\n @Inject()\r\n private pigeonManager: IPigeonManager;\r\n\r\n forceFallbackPicture: boolean = false;\r\n\r\n get PedigreePictureUrl(): string {\r\n if (!this.pigeon) {\r\n return this.pigeonManager.defaultPedigreePicture;\r\n }\r\n\r\n return this.pigeonManager.GetPicturePedigree(this.pigeon.pictures, this.useRawPicture || this.forceFallbackPicture);\r\n }\r\n\r\n public OnPedigreePictureUrl(): void {\r\n this.forceFallbackPicture = true;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonPedigreePicture.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonPedigreePicture.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonPedigreePicture.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonPedigreePicture.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PigeonPedigreePicture.vue?vue&type=template&id=2a480095&scoped=true\"\nimport script from \"./PigeonPedigreePicture.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonPedigreePicture.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonPedigreePicture.vue?vue&type=style&index=0&id=2a480095&prod&lang=scss&scoped=true\"\nimport style1 from \"@/Pigeon/styles/components/zoomable.scss?vue&type=style&index=1&id=2a480095&prod&lang=scss&scoped=true&external\"\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 \"2a480095\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PigeonPedigreePicture.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"product_picture\",attrs:{\"data-cy\":\"sale-picture\"}},[(_vm.PigeonPicture)?_c('img',{attrs:{\"src\":_vm.PigeonPicture,\"alt\":_vm.$t('picture.alt')},on:{\"error\":function($event){return _vm.OnPictureError()}}}):_c('img',{staticClass:\"embed-responsive-item\",attrs:{\"alt\":_vm.$t('picture.alt_generic'),\"src\":require(\"@pigeon/assets/images/pictures/pigeon-generic.webp\")}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { IPigeonManager } from \"@pigeon/services/contracts/IPigeonManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class PigeonPicture extends Vue {\r\n @Prop()\r\n readonly pigeon: IPigeon;\r\n\r\n @Inject()\r\n private pigeonManager: IPigeonManager;\r\n\r\n forceFallbackPicture: boolean = false;\r\n\r\n get PigeonPicture(): string {\r\n if (!this.pigeon) return \"\";\r\n\r\n return this.pigeonManager.GetPictureThumbnail(this.pigeon.pictures, this.forceFallbackPicture);\r\n }\r\n\r\n public OnPictureError(): void {\r\n this.forceFallbackPicture = true;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonPicture.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonPicture.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonPicture.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonPicture.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PigeonPicture.vue?vue&type=template&id=c06dd180&scoped=true\"\nimport script from \"./PigeonPicture.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonPicture.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonPicture.vue?vue&type=style&index=0&id=c06dd180&prod&lang=scss&scoped=true\"\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 \"c06dd180\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PigeonPicture.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('article',{staticClass:\"position-relative\"},[(_vm.pigeon && _vm.PropertyTicketPictureUrl)?_c('div',{staticClass:\"picture-container\"},[_c('picture',{staticClass:\"picture\"},[_c('img',{staticClass:\"property-ticket-img\",attrs:{\"src\":_vm.PropertyTicketPictureUrl,\"alt\":_vm.$t('picture')},on:{\"error\":function($event){return _vm.OnPropertyTicketPictureUrl()}}})])]):_c('div',{staticClass:\"picture-container segment segment-block text-info\"},[_c('Icon',{staticClass:\"fa-4x\",attrs:{\"icon\":\"info\"}}),_c('div',{staticStyle:{\"margin-top\":\"2rem\"}},[_vm._v(_vm._s(_vm.$t(\"no_property_ticket_picture\")))])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { IPigeonManager } from \"@pigeon/services/contracts/IPigeonManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class PigeonPropertyTicketPicture extends Vue {\r\n @Prop()\r\n readonly pigeon: IPigeon;\r\n @Prop({ default: false })\r\n readonly useRawPicture: boolean;\r\n\r\n @Inject()\r\n private pigeonManager: IPigeonManager;\r\n\r\n forceFallbackPicture: boolean = false;\r\n\r\n get PropertyTicketPictureUrl(): string {\r\n if (!this.pigeon) {\r\n return \"\";\r\n }\r\n\r\n return this.pigeonManager.GetPicturePropertyTicket(\r\n this.pigeon.pictures,\r\n this.useRawPicture || this.forceFallbackPicture\r\n );\r\n }\r\n\r\n public OnPropertyTicketPictureUrl(): void {\r\n this.forceFallbackPicture = true;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonPropertyTicketPicture.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonPropertyTicketPicture.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonPropertyTicketPicture.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonPropertyTicketPicture.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PigeonPropertyTicketPicture.vue?vue&type=template&id=2bc2041c&scoped=true\"\nimport script from \"./PigeonPropertyTicketPicture.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonPropertyTicketPicture.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonPropertyTicketPicture.vue?vue&type=style&index=0&id=2bc2041c&prod&lang=scss&scoped=true\"\nimport style1 from \"@/Pigeon/styles/components/zoomable.scss?vue&type=style&index=1&id=2bc2041c&prod&lang=scss&scoped=true&external\"\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 \"2bc2041c\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PigeonPropertyTicketPicture.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.pigeon)?_c('div',{staticClass:\"product-sheet\"},[_c('table',{staticClass:\"table table-striped product-table\",class:{ 't-black': _vm.theme === 'black', 't-dark': _vm.theme === 'dark' }},[_vm._m(0),_c('tbody',[(_vm.mode === _vm.DisplayModes.Compact || _vm.mode === _vm.DisplayModes.Minimum)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"table.identity\")))]),_c('td',[_c('span',{staticClass:\"text-xx-large font-weight-regular\"},[_vm._v(_vm._s(_vm.pigeon.name))]),_c('br'),_vm._v(\" \"+_vm._s(_vm.pigeon.ring)+\" \"),_c('br'),(_vm.PigeonIcon)?_c('Icon',{staticClass:\"product_sex\",class:{\n 'fg-blue': _vm.pigeon.sex == _vm.SexTypes.Male,\n 'fg-red': _vm.pigeon.sex == _vm.SexTypes.Female\n },attrs:{\"icon\":_vm.PigeonIcon}}):_vm._e(),_vm._v(\" \"+_vm._s(_vm.$t(\"enum.sex.\" + _vm.PigeonSexLabel))+\" \")],1)]):_vm._e(),(_vm.mode === _vm.DisplayModes.Full)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"table.name\")))]),_c('td',{staticClass:\"text-xx-large font-weight-regular\"},[(_vm.sale && _vm.sale.flagVoucher)?_c('AppAlert',{staticClass:\"d-flex align-items-center py-2 m-0 bd-radius-0 on-hover\",attrs:{\"type\":\"info\",\"outline\":true},on:{\"click\":function($event){return _vm.ToggleVoucherMessage()}}},[_c('div',[_c('div',[_c('Icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"ticket\"}}),_vm._v(\" \"+_vm._s(_vm.$t('alert.voucher_message'))+\" \"),_c('Icon',{staticClass:\"text-info\",attrs:{\"icon\":\"question-circle\"}})],1),_c('div',{class:{ 'on-hover-show': !_vm.showVoucherMessage }},[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.$t('alert.voucher_availability'))}})])])]):_vm._e(),_vm._v(\" \"+_vm._s(_vm.pigeon.name)+\" \")],1)]):_vm._e(),(_vm.mode === _vm.DisplayModes.Full)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"table.ring\")))]),_c('td',[_vm._v(_vm._s(_vm.pigeon.ring))])]):_vm._e(),(_vm.sale && _vm.sale.voucherAvailabilityPeriodStart && _vm.sale.voucherAvailabilityPeriodEnd)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('table.availability')))]),_c('td',[_vm._v(\" \"+_vm._s(_vm.$d(new Date(_vm.sale.voucherAvailabilityPeriodStart)))+\" - \"+_vm._s(_vm.$d(new Date(_vm.sale.voucherAvailabilityPeriodEnd)))+\" \")])]):_vm._e(),(_vm.mode === _vm.DisplayModes.Full && _vm.pigeon.layingDate)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"table.layingDate\")))]),_c('td',{staticClass:\"d-flex\"},[_c('time',{attrs:{\"datetime\":_vm.pigeon.layingDate}},[_vm._v(_vm._s(_vm.$d(new Date(_vm.pigeon.layingDate), \"regular\")))]),(new Date(_vm.pigeon.layingDate) > new Date())?_c('AppAlert',{staticClass:\"p-0 m-0 pl-2 ml-auto\",attrs:{\"type\":_vm.AlertTypes.Warning,\"outline\":true,\"inline\":true}},[_vm._v(\" \"+_vm._s(_vm.$t('alert.date_estimate'))+\" \")]):_vm._e()],1)]):_vm._e(),(_vm.mode === _vm.DisplayModes.Full && _vm.pigeon.hatchingDate)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"table.hatchingDate\")))]),_c('td',{staticClass:\"d-flex\"},[_c('time',{attrs:{\"datetime\":_vm.pigeon.hatchingDate}},[_vm._v(_vm._s(_vm.$d(new Date(_vm.pigeon.hatchingDate), \"regular\")))]),(new Date(_vm.pigeon.hatchingDate) > new Date())?_c('AppAlert',{staticClass:\"p-0 m-0 pl-2 ml-auto\",attrs:{\"type\":_vm.AlertTypes.Warning,\"outline\":true,\"inline\":true}},[_vm._v(\" \"+_vm._s(_vm.$t('alert.date_estimate'))+\" \")]):_vm._e()],1)]):_vm._e(),(_vm.mode === _vm.DisplayModes.Full && _vm.pigeon.weaningDate)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"table.weaningDate\")))]),_c('td',{staticClass:\"d-flex\"},[_c('time',{attrs:{\"datetime\":_vm.pigeon.weaningDate}},[_vm._v(_vm._s(_vm.$d(new Date(_vm.pigeon.weaningDate), \"regular\")))]),(new Date(_vm.pigeon.weaningDate) > new Date())?_c('AppAlert',{staticClass:\"p-0 m-0 pl-2 ml-auto\",attrs:{\"type\":_vm.AlertTypes.Warning,\"outline\":true,\"inline\":true}},[_vm._v(\" \"+_vm._s(_vm.$t('alert.date_estimate'))+\" \")]):_vm._e()],1)]):_vm._e(),(_vm.mode === _vm.DisplayModes.Full && _vm.pigeon.flyingDate)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"table.flyingDate\")))]),_c('td',{staticClass:\"d-flex\"},[_c('time',{attrs:{\"datetime\":_vm.pigeon.flyingDate}},[_vm._v(_vm._s(_vm.$d(new Date(_vm.pigeon.flyingDate), \"regular\")))]),(new Date(_vm.pigeon.flyingDate) > new Date())?_c('AppAlert',{staticClass:\"p-0 m-0 pl-2 ml-auto\",attrs:{\"type\":_vm.AlertTypes.Warning,\"outline\":true,\"inline\":true}},[_vm._v(\" \"+_vm._s(_vm.$t('alert.date_estimate'))+\" \")]):_vm._e()],1)]):_vm._e(),(_vm.mode !== _vm.DisplayModes.Minimum && _vm.PigeonSexLabel && _vm.mode === _vm.DisplayModes.Full)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"table.sex\")))]),_c('td',[_vm._v(_vm._s(_vm.$t(\"enum.sex.\" + _vm.PigeonSexLabel)))])]):_vm._e(),(_vm.mode !== _vm.DisplayModes.Minimum && _vm.PigeonAgeCategory)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"table.age\")))]),_c('td',[_vm._v(_vm._s(_vm.$t(\"enum.age.\" + _vm.PigeonAgeCategory)))])]):_vm._e(),(_vm.mode !== _vm.DisplayModes.Minimum && _vm.CountryName)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"table.country\")))]),_c('td',[_vm._v(_vm._s(_vm.CountryName))])]):_vm._e(),(_vm.mode !== _vm.DisplayModes.Minimum && _vm.PigeonFancierName)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"table.fancier\")))]),_c('td',[_c('a',{attrs:{\"href\":\"#breeder\"},on:{\"click\":function($event){$event.preventDefault();return _vm.NavigateToBreederTab()}}},[_vm._v(_vm._s(_vm.PigeonFancierName))])])]):_vm._e(),(_vm.pigeon.strain && _vm.pigeon.strain.name)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"table.strain\")))]),_c('td',[_vm._v(_vm._s(_vm.pigeon.strain.name))])]):_vm._e(),(_vm.mode !== _vm.DisplayModes.Minimum && _vm.pigeon.discipline)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t(\"table.discipline\")))]),_c('td',[_c('ProductDiscipline',{staticClass:\"mt-2\",attrs:{\"has-label\":true,\"type\":_vm.pigeon.discipline}})],1)]):_vm._e()])]),(_vm.PigeonHasCharacteristics || _vm.PigeonHasAsset)?_c('NavAccordion',{staticClass:\"bd-radius-0\"},[(_vm.PigeonHasCharacteristics)?_c('NavAccordionItem',{staticClass:\"bd-radius-0\",attrs:{\"opened\":_vm.ShouldCharacteristicsAccordionBeOpened},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"font-weight-regular fg-primary text-underline\"},[_vm._v(_vm._s(_vm.$t(\"table.characteristics\")))])]},proxy:true}],null,false,3634112797)},[_c('ProductCharacteristics',{staticClass:\"mb-0 table-striped\",attrs:{\"pigeon\":_vm.pigeon}})],1):_vm._e(),(_vm.PigeonHasAsset)?_c('NavAccordionItem',{staticClass:\"bd-radius-0\",attrs:{\"opened\":_vm.ShouldAssetsAccordionBeOpened},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('span',{staticClass:\"font-weight-regular fg-primary text-underline\"},[_vm._v(_vm._s(_vm.$t(\"table.assets\")))])]},proxy:true}],null,false,3642469488)},[_c('PigeonAsset',{staticClass:\"product-sheet_asset\",attrs:{\"pigeon\":_vm.pigeon,\"mode\":_vm.AssetModes.Combined}})],1):_vm._e()],1):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('colgroup',[_c('col',{staticClass:\"col-header\"}),_c('col',{staticClass:\"col-value\"})])\n}]\n\nexport { render, staticRenderFns }","import { CharacteristicBackTypes, DISCRIMINATOR_BACK } from \"@api/models/market/constants/CharacteristicBackTypes\";\r\nimport {\r\n CharacteristicBalanceTypes,\r\n DISCRIMINATOR_BALANCE\r\n} from \"@api/models/market/constants/CharacteristicBalanceTypes\";\r\nimport { CharacteristicEyeTypes, DISCRIMINATOR_EYE } from \"@api/models/market/constants/CharacteristicEyeTypes\";\r\nimport {\r\n CharacteristicFeathersTypes,\r\n DISCRIMINATOR_FEATHERS\r\n} from \"@api/models/market/constants/CharacteristicFeathersTypes\";\r\nimport {\r\n CharacteristicHumerusTypes,\r\n DISCRIMINATOR_HUMERUS\r\n} from \"@api/models/market/constants/CharacteristicHumerusTypes\";\r\nimport {\r\n CharacteristicLengthTypes,\r\n DISCRIMINATOR_LENGTH\r\n} from \"@api/models/market/constants/CharacteristicLengthTypes\";\r\nimport {\r\n CharacteristicPlumageTypes,\r\n DISCRIMINATOR_PLUMAGE\r\n} from \"@api/models/market/constants/CharacteristicPlumageTypes\";\r\nimport { CharacteristicSizeTypes, DISCRIMINATOR_SIZE } from \"@api/models/market/constants/CharacteristicSizeTypes\";\r\nimport {\r\n CharacteristicVentbonesPositionTypes,\r\n DISCRIMINATOR_VENTBONES_POSITION\r\n} from \"@api/models/market/constants/CharacteristicVentbonesPositionTypes\";\r\nimport {\r\n CharacteristicVentbonesStrengthTypes,\r\n DISCRIMINATOR_VENTBONES_STRENGTH\r\n} from \"@api/models/market/constants/CharacteristicVentbonesStrengthTypes\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class ProductCharacteristicsView extends Vue {\r\n @Prop()\r\n readonly pigeon: IPigeon;\r\n\r\n private GetCharacteristic(discriminator: string) {\r\n if (!this.pigeon || !this.pigeon.characteristics || !this.pigeon.characteristics.length) return undefined;\r\n\r\n const characteristic = this.pigeon.characteristics.find((c) => c.discriminator == discriminator);\r\n return characteristic ? characteristic.characteristic : undefined;\r\n }\r\n\r\n get BackCharacteristic(): CharacteristicBackTypes | undefined {\r\n return this.GetCharacteristic(DISCRIMINATOR_BACK) as CharacteristicBackTypes;\r\n }\r\n\r\n get BalanceCharacteristic(): CharacteristicBalanceTypes | undefined {\r\n return this.GetCharacteristic(DISCRIMINATOR_BALANCE) as CharacteristicBalanceTypes;\r\n }\r\n\r\n get EyeCharacteristic(): CharacteristicEyeTypes | undefined {\r\n return this.GetCharacteristic(DISCRIMINATOR_EYE) as CharacteristicEyeTypes;\r\n }\r\n\r\n get FeathersCharacteristic(): CharacteristicFeathersTypes | undefined {\r\n return this.GetCharacteristic(DISCRIMINATOR_FEATHERS) as CharacteristicFeathersTypes;\r\n }\r\n\r\n get LengthCharacteristic(): CharacteristicLengthTypes | undefined {\r\n return this.GetCharacteristic(DISCRIMINATOR_LENGTH) as CharacteristicLengthTypes;\r\n }\r\n\r\n get PlumageCharacteristic(): CharacteristicPlumageTypes | undefined {\r\n return this.GetCharacteristic(DISCRIMINATOR_PLUMAGE) as CharacteristicPlumageTypes;\r\n }\r\n\r\n get SizeCharacteristic(): CharacteristicSizeTypes | undefined {\r\n return this.GetCharacteristic(DISCRIMINATOR_SIZE) as CharacteristicSizeTypes;\r\n }\r\n\r\n get VentbonesPositionCharacteristic(): CharacteristicVentbonesPositionTypes | undefined {\r\n return this.GetCharacteristic(DISCRIMINATOR_VENTBONES_POSITION) as CharacteristicVentbonesPositionTypes;\r\n }\r\n\r\n get VentbonesStrengthCharacteristic(): CharacteristicVentbonesStrengthTypes | undefined {\r\n return this.GetCharacteristic(DISCRIMINATOR_VENTBONES_STRENGTH) as CharacteristicVentbonesStrengthTypes;\r\n }\r\n\r\n get HumerusCharacteristic(): CharacteristicHumerusTypes | undefined {\r\n return this.GetCharacteristic(DISCRIMINATOR_HUMERUS) as CharacteristicHumerusTypes;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ProductCharacteristics.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ProductCharacteristics.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProductCharacteristics.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./ProductCharacteristics.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./ProductCharacteristics.vue?vue&type=template&id=18904a26&scoped=true\"\nimport script from \"./ProductCharacteristics.ts?vue&type=script&lang=ts&external\"\nexport * from \"./ProductCharacteristics.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./ProductCharacteristics.vue?vue&type=style&index=0&id=18904a26&prod&lang=scss&scoped=true\"\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 \"18904a26\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./ProductCharacteristics.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('table',{staticClass:\"table table-sm characteristics\"},[_c('tbody',[(_vm.SizeCharacteristic)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('table.size.header')))]),_c('td',[_vm._v(_vm._s(_vm.$t('enum.characteristics.size.' + _vm.SizeCharacteristic)))])]):_vm._e(),(_vm.LengthCharacteristic)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('table.length.header')))]),_c('td',[_vm._v(_vm._s(_vm.$t('enum.characteristics.length.' + _vm.LengthCharacteristic)))])]):_vm._e(),(_vm.BalanceCharacteristic)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('table.balance.header')))]),_c('td',[_vm._v(_vm._s(_vm.$t('enum.characteristics.balance.' + _vm.BalanceCharacteristic)))])]):_vm._e(),(_vm.BackCharacteristic)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('table.back.header')))]),_c('td',[_vm._v(_vm._s(_vm.$t('enum.characteristics.back.' + _vm.BackCharacteristic)))])]):_vm._e(),(_vm.VentbonesPositionCharacteristic)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('table.ventbones_position.header')))]),_c('td',[_vm._v(_vm._s(_vm.$t('enum.characteristics.ventbones_position.' + _vm.VentbonesPositionCharacteristic)))])]):_vm._e(),(_vm.VentbonesStrengthCharacteristic)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('table.ventbones_strength.header')))]),_c('td',[_vm._v(_vm._s(_vm.$t('enum.characteristics.ventbones_strength.' + _vm.VentbonesStrengthCharacteristic)))])]):_vm._e(),(_vm.HumerusCharacteristic)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('table.humerus.header')))]),_c('td',[_vm._v(_vm._s(_vm.$t('enum.characteristics.humerus.' + _vm.HumerusCharacteristic)))])]):_vm._e(),(_vm.PlumageCharacteristic)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('table.plumage.header')))]),_c('td',[_vm._v(_vm._s(_vm.$t('enum.characteristics.plumage.' + _vm.PlumageCharacteristic)))])]):_vm._e(),(_vm.FeathersCharacteristic)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('table.feathers.header')))]),_c('td',[_vm._v(_vm._s(_vm.$t('enum.characteristics.feathers.' + _vm.FeathersCharacteristic)))])]):_vm._e(),(_vm.EyeCharacteristic)?_c('tr',[_c('th',[_vm._v(_vm._s(_vm.$t('table.eye.header')))]),_c('td',[_vm._v(_vm._s(_vm.$t('enum.characteristics.eye.' + _vm.EyeCharacteristic)))])]):_vm._e()])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IRingsService } from \"@api/contracts/odata/IRingsService\";\r\nimport { AppThemes } from \"@api/models/market/constants/AppThemes\";\r\nimport { SexTypes } from \"@api/models/market/constants/SexTypes\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { IRing } from \"@api/models/market/IRing\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { AlertTypes } from \"@pigeon/components/app/AppAlert\";\r\nimport ProductDiscipline from \"@pigeon/components/product/ProductDiscipline.vue\";\r\nimport ProductCountryFlag from \"@pigeon/components/product/ProductCountryFlag.vue\";\r\nimport { PigeonAssetModes } from \"@pigeon/enumerations/PigeonAssetModes\";\r\nimport { ProductDisplayModes } from \"@pigeon/enumerations/ProductDisplayModes\";\r\nimport { IPigeonManager } from \"@pigeon/services/contracts/IPigeonManager\";\r\nimport ProductCharacteristicsView from \"@pigeon/views/product/ProductCharacteristics.vue\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\nimport { AssetTypes } from \"@api/models/market/constants/AssetTypes\";\r\n\r\n@Component({\r\n components: {\r\n ProductDiscipline,\r\n ProductCountryFlag,\r\n ProductCharacteristics: ProductCharacteristicsView\r\n }\r\n})\r\nexport default class PigeonSheet extends Vue {\r\n @Prop()\r\n readonly pigeon: IPigeon;\r\n @Prop()\r\n readonly sale?: ISale;\r\n @Prop({\r\n default: ProductDisplayModes.Full,\r\n validator: (value: ProductDisplayModes) =>\r\n [ProductDisplayModes.Full, ProductDisplayModes.Compact, ProductDisplayModes.Minimum].includes(value)\r\n })\r\n readonly mode: string;\r\n @Prop({ default: AppThemes.Dark, validator: (value: AppThemes) => Object.values(AppThemes).includes(value) })\r\n readonly theme: AppThemes;\r\n\r\n @Inject()\r\n private ringsService: IRingsService;\r\n @Inject()\r\n private pigeonManager: IPigeonManager;\r\n\r\n AssetModes = PigeonAssetModes;\r\n DisplayModes = ProductDisplayModes;\r\n SexTypes = SexTypes;\r\n AlertTypes = AlertTypes;\r\n ringAreas: IRing[] = [];\r\n showVoucherMessage: boolean = false;\r\n\r\n get CountryName(): string {\r\n const country = this.ringAreas.find((c) => c.areaCode === this.pigeon.ringArea);\r\n\r\n return country ? country.areaLabel : \"\";\r\n }\r\n\r\n get PigeonIcon(): string {\r\n return this.pigeonManager.GetSexIcon(this.pigeon);\r\n }\r\n\r\n get PigeonSexLabel(): string {\r\n return this.pigeonManager.GetSexLabel(this.pigeon);\r\n }\r\n\r\n get PigeonAgeCategory(): string {\r\n if (!this.pigeon.birthYear) return \"\";\r\n\r\n return this.pigeonManager.GetAgeCategory(this.pigeon);\r\n }\r\n\r\n get PigeonFancierName(): string {\r\n if (!this.pigeon || !this.pigeon.fancier) return \"\";\r\n\r\n return this.pigeon.fancier.name;\r\n }\r\n\r\n get PigeonHasCharacteristics(): boolean {\r\n if (!this.pigeon) return false;\r\n\r\n return this.pigeonManager.HasCharacteristics(this.pigeon);\r\n }\r\n\r\n get PigeonHasAsset(): boolean {\r\n if (!this.pigeon) return false;\r\n if (this.pigeon.asset == AssetTypes.Text && !this.pigeon.assetText) return false;\r\n\r\n return this.pigeonManager.HasAssetType(this.pigeon);\r\n }\r\n\r\n get ShouldCharacteristicsAccordionBeOpened(): boolean {\r\n return true;\r\n }\r\n\r\n get ShouldAssetsAccordionBeOpened(): boolean {\r\n return !(\r\n this.PigeonHasCharacteristics &&\r\n (this.pigeon.asset != AssetTypes.Text || (this.pigeon.assetText?.length ?? 0) > 40)\r\n );\r\n }\r\n\r\n async mounted() {\r\n const { data } = await this.ringsService.FetchAll();\r\n this.ringAreas = data.value;\r\n }\r\n\r\n //#region alerts\r\n public ToggleVoucherMessage(): void {\r\n this.showVoucherMessage = !this.showVoucherMessage;\r\n }\r\n //#endregion\r\n\r\n public NavigateToBreederTab() {\r\n if (!this.$route.name) return;\r\n\r\n if (this.$route.name.match(/sale./gi)) {\r\n this.$router.push({ name: \"sale.breeder\", params: this.$route.params });\r\n this.$scrollTo(\"#breeder\", 300, { offset: -100 });\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonSheet.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./PigeonSheet.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonSheet.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./PigeonSheet.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./PigeonSheet.vue?vue&type=template&id=246a2988&scoped=true\"\nimport script from \"./PigeonSheet.ts?vue&type=script&lang=ts&external\"\nexport * from \"./PigeonSheet.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./PigeonSheet.vue?vue&type=style&index=0&id=246a2988&prod&lang=scss&scoped=true\"\nimport style1 from \"./PigeonSheet.vue?vue&type=style&index=1&id=246a2988&prod&lang=scss&scoped=true\"\nimport style2 from \"./PigeonSheet.vue?vue&type=style&index=2&id=246a2988&prod&lang=scss&scoped=true\"\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 \"246a2988\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./PigeonSheet.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('span',{staticClass:\"famfamfam-flags mr-1\",class:_vm.CountryFlag,attrs:{\"title\":_vm.countryCode}}),(_vm.showLabel)?_c('span',{staticClass:\"country-label ml-2\"},[_vm._v(_vm._s(_vm.CountryLabel))]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { appDataStore } from \"@market/stores/App.store.modules\";\r\nimport \"famfamfam-flags/dist/sprite/famfamfam-flags.min.css\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class ProductCountryFlag extends Vue {\r\n @Prop()\r\n readonly countryCode: string;\r\n @Prop()\r\n readonly countryName: string;\r\n @Prop({ default: false })\r\n readonly showLabel: boolean;\r\n\r\n get CountryFlag(): string {\r\n const code = this.countryName\r\n ? appDataStore.Countries.find((c) => c.label.toUpperCase() == this.countryName.toUpperCase())?.code\r\n : this.countryCode?.toLowerCase() ?? \"\";\r\n\r\n return code?.toLowerCase() ?? \"\";\r\n }\r\n\r\n get CountryLabel(): string | undefined {\r\n if (this.countryName) return this.countryName;\r\n\r\n if (this.countryCode) {\r\n const label = appDataStore.Countries.find((c) => c.code.toUpperCase() == this.countryCode.toUpperCase())?.label;\r\n return label ? label : this.countryCode;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ProductCountryFlag.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ProductCountryFlag.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./ProductCountryFlag.vue?vue&type=template&id=fa44be24&scoped=true\"\nimport script from \"./ProductCountryFlag.ts?vue&type=script&lang=ts&external\"\nexport * from \"./ProductCountryFlag.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./ProductCountryFlag.vue?vue&type=style&index=0&id=fa44be24&prod&lang=scss&scoped=true\"\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 \"fa44be24\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.type)?_c('div',[_c('div',[_c('div',{staticClass:\"progress distance-progress\"},[_c('div',{staticClass:\"progress-bar distance-progress-bar progress-bar-striped\",class:`${_vm.DistanceCssClass}-distance-progress-bar`})]),(_vm.hasLabel)?_c('div',{staticClass:\"progress_label\"},[_vm._v(_vm._s(_vm.$t(\"enum.discipline.\" + _vm.type)))]):_vm._e()])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { DisciplineTypes } from \"@api/models/market/constants/DisciplineTypes\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class ProductDiscipline extends Vue {\r\n @Prop({\r\n default: DisciplineTypes.MediumDistance,\r\n validator: (value: DisciplineTypes) => Object.values(DisciplineTypes).includes(value)\r\n })\r\n readonly type: DisciplineTypes;\r\n @Prop({ default: true, type: Boolean })\r\n readonly hasLabel: boolean;\r\n\r\n DisciplineTypes = DisciplineTypes;\r\n\r\n get DistanceCssClass(): string {\r\n let cssClass: string = \"\";\r\n\r\n if (this.type === DisciplineTypes.ShortDistance) {\r\n cssClass = \"short\";\r\n } else if (this.type === DisciplineTypes.MediumDistance) {\r\n cssClass = \"middle\";\r\n } else if (this.type === DisciplineTypes.LongDistance) {\r\n cssClass = \"long\";\r\n } else if (this.type === DisciplineTypes.ExtremeLongDistance) {\r\n cssClass = \"very-long\";\r\n }\r\n\r\n return cssClass;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ProductDiscipline.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ProductDiscipline.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./ProductDiscipline.vue?vue&type=template&id=34259a98&scoped=true\"\nimport script from \"./ProductDiscipline.ts?vue&type=script&lang=ts&external\"\nexport * from \"./ProductDiscipline.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./ProductDiscipline.vue?vue&type=style&index=0&id=34259a98&prod&lang=scss&scoped=true\"\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 \"34259a98\",\n null\n \n)\n\nexport default component.exports","export enum Channels {\r\n Market = \"Market\",\r\n Community = \"Community\"\r\n}\r\n","import { AssetTypes } from \"@api/models/market/constants/AssetTypes\";\r\nimport { DisciplineTypes } from \"@api/models/market/constants/DisciplineTypes\";\r\nimport { RelationshipTypes } from \"@api/models/market/constants/RelationshipTypes\";\r\nimport { SexTypes } from \"@api/models/market/constants/SexTypes\";\r\nimport { IFancier } from \"@api/models/market/IFancier\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { IStrain } from \"@api/models/market/IStrain\";\r\nimport i18n from \"@market/i18n\";\r\nimport { userStore } from \"@market/stores/App.store.modules\";\r\n\r\nexport class ProductFactory {\r\n public static GetDefaultPigeon(): IPigeon {\r\n return {\r\n name: \"\",\r\n ring: \"\",\r\n ringArea: \"BE\",\r\n birthYear: new Date().getFullYear(),\r\n ringNumber: \"\",\r\n discipline: undefined,\r\n sex: undefined,\r\n asset: AssetTypes.Text,\r\n assetText: \"\",\r\n characteristics: [],\r\n pictures: [],\r\n prizes: [],\r\n publicData: true,\r\n flagBreeding: false,\r\n flagApproved: null,\r\n createdAt: new Date(),\r\n userId: userStore.user && userStore.user.id ? userStore.user.id : undefined\r\n };\r\n }\r\n\r\n public static GetDefaultFancier(): IFancier {\r\n return { name: \"\", profiles: [] };\r\n }\r\n\r\n public static GetDefaultStrain(): IStrain {\r\n return { name: \"\" };\r\n }\r\n\r\n public static GetUnknownPigeon(relationship: string): Partial {\r\n return { name: \"Unknown\", ring: \"-\", birthYear: 1900, sex: SexTypes.Male, relationship: relationship };\r\n }\r\n\r\n public static GetDefaultParent(parentRelationship: RelationshipTypes | string, parentPublicData: boolean): IPigeon {\r\n let defaultSex: SexTypes = SexTypes.Unknown;\r\n\r\n switch (parentRelationship) {\r\n case RelationshipTypes.Father:\r\n case RelationshipTypes.GrandFather:\r\n case RelationshipTypes.PaternalGrandFather:\r\n case RelationshipTypes.MaternalGrandFather:\r\n case RelationshipTypes.GreatGrandFather:\r\n defaultSex = SexTypes.Male;\r\n break;\r\n\r\n case RelationshipTypes.Mother:\r\n case RelationshipTypes.GrandMother:\r\n case RelationshipTypes.PaternalGrandMother:\r\n case RelationshipTypes.MaternalGrandMother:\r\n case RelationshipTypes.GreatGrandMother:\r\n defaultSex = SexTypes.Female;\r\n break;\r\n\r\n case RelationshipTypes.Unknown:\r\n default:\r\n defaultSex = SexTypes.Unknown;\r\n break;\r\n }\r\n\r\n return {\r\n name: \"\",\r\n ring: \"\",\r\n ringNumber: \"\",\r\n ringArea: \"BE\",\r\n discipline: DisciplineTypes.LongDistance,\r\n birthYear: new Date().getFullYear(),\r\n sex: defaultSex,\r\n asset: AssetTypes.Prize,\r\n assetText: undefined,\r\n pictures: [],\r\n prizes: [],\r\n publicData: parentPublicData,\r\n flagBreeding: false,\r\n flagApproved: null,\r\n createdAt: new Date(),\r\n fancier: this.GetDefaultFancier(),\r\n strain: this.GetDefaultStrain(),\r\n userId: userStore.user && userStore.user.id ? userStore.user.id : undefined\r\n };\r\n }\r\n\r\n public static GetDefaultParentIdentity(): Partial {\r\n return {\r\n relationship: \"\",\r\n name: i18n.t(\"relationship.unknown\") as string,\r\n ring: \"XX 00-000000\",\r\n sex: SexTypes.Unknown\r\n };\r\n }\r\n}\r\n","import { IJwt } from \"@api/models/auth/IJwt\";\r\nimport { IPayload } from \"@api/models/auth/IPayload\";\r\n\r\nexport class PayloadMapper {\r\n public static Map(decodedJwt: IJwt): IPayload {\r\n return {\r\n userId: decodedJwt[\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier\"],\r\n userRoles: decodedJwt[\"http://schemas.microsoft.com/ws/2008/06/identity/claims/role\"],\r\n normalizedUserName: decodedJwt[\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name\"],\r\n normalizedEmail: decodedJwt[\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress\"]\r\n };\r\n }\r\n}\r\n","import { IPackageManager } from \"@/Pigeon/services/contracts/IPackageManager\";\r\nimport { IPigeonManager } from \"@/Pigeon/services/contracts/IPigeonManager\";\r\nimport { ProductTypes } from \"@api/models/market/constants/ProductTypes\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { IProduct } from \"@market/components/sale/SaleProductAbstract\";\r\nimport i18n from \"@market/i18n\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport { cid, container } from \"inversify-props\";\r\nimport { Location } from \"vue-router\";\r\n\r\nexport class ProductMapper {\r\n // Warning: Cannot use DI with static with property injection\r\n // @Inject()\r\n // private static pigeonManager: IPigeonManager;\r\n // @Inject()\r\n // private static packageManager: IPackageManager;\r\n\r\n public static MapPigeon(sale: ISale): IProduct | null {\r\n if (!sale || !sale.pigeon) {\r\n console.error(\"Invalid parameter exception: sale or pigeon is undefined\");\r\n return null;\r\n }\r\n\r\n const pigeonManager = container.get(cid.PigeonManager);\r\n return {\r\n saleId: sale.id,\r\n type: sale.product,\r\n name: sale.pigeon.name,\r\n reference: sale.pigeon.ring ?? (i18n.t(\"common.undefined\") as string),\r\n description: \"\",\r\n to: {\r\n name: AppRoutes.Sale,\r\n params: sale.pigeon.name\r\n ? {\r\n saleKey: sale.id?.toString(),\r\n productRef: pigeonManager.GetRingSlug(sale.pigeon),\r\n productName: pigeonManager.GetNameSlug(sale.pigeon)\r\n }\r\n : { saleKey: sale.id?.toString(), productRef: pigeonManager.GetRingSlug(sale.pigeon) }\r\n } as Location\r\n };\r\n }\r\n\r\n public static MapPackage(sale: ISale, useRawPicture = false): IProduct | null {\r\n if (!sale || !sale.package) {\r\n console.error(\"Invalid parameter exception: sale or package is undefined\");\r\n return null;\r\n }\r\n\r\n const packageManager = container.get(cid.PackageManager);\r\n return {\r\n saleId: sale.id,\r\n type: sale.product,\r\n name: sale.package.name,\r\n reference: (i18n.t(\"app.package\") + \" \" + i18n.t(`enum.discipline.${sale.package.discipline}`)) as string,\r\n description: sale.package.assetText,\r\n to: {\r\n name: AppRoutes.Sale,\r\n params: {\r\n saleKey: sale.id?.toString(),\r\n productName: packageManager.GetNameSlug(sale.package)\r\n }\r\n } as Location\r\n };\r\n }\r\n\r\n public static MapToProduct(sale: ISale): IProduct | null {\r\n if (!sale) throw new Error(\"Null Argument exception\");\r\n\r\n if (sale.product === ProductTypes.Pigeon) {\r\n return ProductMapper.MapPigeon(sale);\r\n } else if (sale.product === ProductTypes.Package) {\r\n return ProductMapper.MapPackage(sale);\r\n } else {\r\n console.error(\"Unsupported product type\");\r\n return null;\r\n }\r\n }\r\n}\r\n","export enum AddressTypes {\r\n // AddressType Should not be none\r\n None = \"None\",\r\n Billing = \"Blg\",\r\n Contact = \"Ctc\",\r\n Delivery = \"Dlv\",\r\n PickUp = \"Pck\"\r\n}\r\n","export const ADMINISTRATOR_ID = \"PMSF000\";\r\nexport const CONTRIBUTOR_ID = \"PMSF001\";\r\n\r\nexport enum AppRoles {\r\n Administrator = \"Administrator\",\r\n Approver = \"Approver\",\r\n Vendor = \"Vendor\",\r\n Contributor = \"Contributor\",\r\n Member = \"Member\"\r\n}\r\n","export enum AppThemes {\r\n Light = \"light\",\r\n Gray = \"gray\",\r\n Dark = \"dark\",\r\n Black = \"black\"\r\n}\r\n","export enum AssetTypes {\r\n Ranking = \"Rkg\",\r\n Prize = \"Prz\",\r\n Parent = \"Prt\",\r\n Text = \"Txt\"\r\n}\r\n","export enum BaseThemes {\r\n Light = \"light\",\r\n Dark = \"dark\",\r\n Black = \"black\"\r\n}\r\n","export const DISCRIMINATOR_BACK = \"BACK\";\r\n\r\nexport enum CharacteristicBackTypes {\r\n Average = \"Avg\",\r\n Strong = \"Srg\",\r\n VeryStrong = \"VSrg\"\r\n}\r\n","export const DISCRIMINATOR_BALANCE = \"BALANCE\";\r\n\r\nexport enum CharacteristicBalanceTypes {\r\n LearningForward = \"Lfwd\",\r\n WellBalanced = \"Wbld\"\r\n}\r\n","export const DISCRIMINATOR_EYE = \"EYE\";\r\n\r\nexport enum CharacteristicEyeTypes {\r\n WhiteColor = \"White\",\r\n YellowColor = \"Yllow\",\r\n GreyColor = \"Grey\",\r\n GreenColor = \"Green\"\r\n}\r\n","export const DISCRIMINATOR_FEATHERS = \"FEATHERS\";\r\n\r\nexport enum CharacteristicFeathersTypes {\r\n Normal = \"Nml\",\r\n Soft = \"Sft\",\r\n VerySoft = \"VSft\"\r\n}\r\n","export const DISCRIMINATOR_HUMERUS = \"HUMERUS\";\r\n\r\nexport enum CharacteristicHumerusTypes {\r\n VeryShort = \"VShrt\",\r\n Short = \"Shrt\",\r\n Average = \"Avg\",\r\n Long = \"Lng\"\r\n}\r\n","export const DISCRIMINATOR_LENGTH = \"LENGTH\";\r\n\r\nexport enum CharacteristicLengthTypes {\r\n Short = \"Shrt\",\r\n Average = \"Avg\",\r\n Long = \"Lng\"\r\n}\r\n","export const DISCRIMINATOR_PLUMAGE = \"PLUMAGE\";\r\n\r\nexport enum CharacteristicPlumageTypes {\r\n Slim = \"Slm\",\r\n Normal = \"Nml\",\r\n Thick = \"Thk\"\r\n}\r\n","export const DISCRIMINATOR_SIZE = \"SIZE\";\r\n\r\nexport enum CharacteristicSizeTypes {\r\n Small = \"Sm\",\r\n Medium = \"Md\",\r\n Large = \"Lg\"\r\n}\r\n","export const DISCRIMINATOR_VENTBONES_POSITION = \"VENTBONES_POSITION\";\r\n\r\nexport enum CharacteristicVentbonesPositionTypes {\r\n Opened = \"Opn\",\r\n SlightlyOpened = \"SOpn\",\r\n Closed = \"Cls\"\r\n}\r\n","export const DISCRIMINATOR_VENTBONES_STRENGTH = \"VENTBONES_STRENGTH\";\r\n\r\nexport enum CharacteristicVentbonesStrengthTypes {\r\n Average = \"Avg\",\r\n Strong = \"Srg\"\r\n}\r\n","export enum CurrencyTypes {\r\n Euro = \"eur\"\r\n}\r\n","export enum DbAlertTypes {\r\n Info = \"Info\",\r\n Warning = \"Warning\",\r\n Danger = \"Danger\",\r\n Success = \"Success\"\r\n}\r\n","export enum DisciplineTypes {\r\n ExtremeLongDistance = \"ELDi\",\r\n LongDistance = \"LDi\",\r\n MediumDistance = \"MDi\",\r\n ShortDistance = \"SDi\"\r\n}\r\n","export enum FarmSizeTypes {\r\n Size20 = \"Sz20\",\r\n Size50 = \"Sz50\",\r\n Size100 = \"Sz100\",\r\n Size250 = \"Sz250\",\r\n Size500 = \"Sz500\",\r\n Size1000 = \"Sz1000\"\r\n}\r\n","export enum NotificationTypes {\r\n SaleSold = \"saleSold\",\r\n SalePendingApproval = \"saleAprvl\",\r\n SaleApproved = \"saleAprvd\",\r\n SaleDisapproved = \"saleDprvd\",\r\n PigeonPendingApproval = \"pgnAprvl\",\r\n PigeonApproved = \"pgnAprvd\",\r\n PigeonDisapproved = \"pgnDprvd\",\r\n AuctionNewBidOnAFollowedSale = \"actBid\",\r\n AuctionNewBidOnYourSale = \"actNewBid\",\r\n AuctionBidAccepted = \"actAccBid\",\r\n AuctionOutBid = \"actOutBid\"\r\n}\r\n","export enum PaymentMethodTypes {\r\n Card = \"Card\",\r\n BankRedirect = \"BnkRdt\",\r\n Cash = \"Cash\",\r\n SepaDirectDebit = \"SepaDD\",\r\n SepaTransfer = \"SepaTf\",\r\n InternationalTransfer = \"IntTf\",\r\n StripeInvoice = \"StrpIv\"\r\n}\r\n","export enum PaymentStatus {\r\n PaymentPromise = \"PayP\",\r\n PaymentOnHold = \"PayH\",\r\n PaymentSuccess = \"PayS\",\r\n PaymentFailed = \"PayF\",\r\n PaymentDisputed = \"PayD\",\r\n PaymentRefunded = \"PayR\",\r\n PaymentDefault = \"NonP\" // non-payment\r\n}\r\n","export enum PictureTypes {\r\n Eye = \"Eye\",\r\n Fancier = \"Fcr\",\r\n Pedigree = \"Ped\",\r\n PedigreePdf = \"Pef\",\r\n Pigeon = \"Pgn\",\r\n PigeonAndEye = \"PnE\",\r\n Wing = \"Wng\",\r\n Package = \"Pck\",\r\n Auction = \"Act\",\r\n Shop = \"Shp\",\r\n Loft = \"Lft\",\r\n Network = \"Ntw\",\r\n Other = \"Oth\",\r\n PropertyTicket = \"Tck\"\r\n}\r\n","export enum ProductTypes {\r\n Pigeon = \"Pgn\",\r\n Package = \"Pck\"\r\n}\r\n","export enum RelationshipTypes {\r\n Father = \"Father\",\r\n Mother = \"Mother\",\r\n GrandFather = \"Grandfather\",\r\n GrandMother = \"Grandmother\",\r\n PaternalGrandFather = \"Grandfather\",\r\n PaternalGrandMother = \"Grandmother\",\r\n MaternalGrandFather = \"Grandfather\",\r\n MaternalGrandMother = \"Grandmother\",\r\n GreatGrandFather = \"Great Grandfather\",\r\n GreatGrandMother = \"Great Grandmother\",\r\n Unknown = \"Unknown\"\r\n}\r\n","export enum SaleStatus {\r\n OnSale = \"Sale\",\r\n OnHold = \"Hold\",\r\n Sold = \"Sold\",\r\n Reserved = \"Rsvd\",\r\n Unsold = \"Nsld\",\r\n Removed = \"Rmvd\", // a vendor or an admin can remove a sale (= soft delete). Only an admin can delete a sale and erasing data from DB (= hard delete)\r\n Suspended = \"Spnd\", // a vendor can suspend a sale (and can restart it later)\r\n Stopped = \"Stpd\" // an admin can stop a sale (and only admin can restart it later)\r\n}\r\n","export enum SaleTypes {\r\n Bid = \"Bid\",\r\n Fix = \"Fix\"\r\n}\r\n","export enum SearchTypes {\r\n SearchByRing = \"ring\",\r\n SearchByName = \"name\",\r\n SearchByRingOrName = \"ringOrName\"\r\n}\r\n","export enum SexTypes {\r\n Female = \"F\",\r\n Male = \"M\",\r\n Unknown = \"U\"\r\n}\r\n","export enum ShippingMethodTypes {\r\n Deliver = \"Dlv\",\r\n SelfArrangedDeliver = \"SAD\",\r\n PickUp = \"Pkp\"\r\n}\r\n","export enum ShippingStatus {\r\n PickedUp = \"Pkp\",\r\n Transit = \"Trst\",\r\n FailAttempt = \"AtpF\",\r\n Delivered = \"Dlv\"\r\n}\r\n","export type SubtaskTypes = ApprovalTaskTypes | SaleTaskTypes | SettlementTaskTypes | ShippingTaskTypes;\r\n\r\nexport enum SettlementTaskTypes {\r\n CheckSettlementCollected = \"ChkSettlementCollected\",\r\n CheckTransferDone = \"ChkTransferToPlatform\"\r\n}\r\n\r\nexport enum SaleTaskTypes {\r\n CheckExchangeBetweenBuyerAndSeller = \"ChkBuyerVendorExchange\",\r\n CheckBuyerInterest = \"ChkBuyerInterest\",\r\n SelectPurchaseAbortReason = \"SlcPurchaseAbortReason\"\r\n}\r\n\r\nexport enum PurchaseAbortReasons {\r\n Transport = \"transport\",\r\n Price = \"price\",\r\n Taxes = \"taxes\",\r\n Delay = \"delay\",\r\n Pigeon = \"pigeon\",\r\n Other = \"other\"\r\n}\r\n\r\nexport enum ApprovalTaskTypes {\r\n CheckDisapprovalCorrection = \"ChkDisapprovalCorrection\"\r\n}\r\n\r\nexport enum ShippingTaskTypes {\r\n CheckShippingStatus = \"ChkShippingStatus\",\r\n CheckTransportMethod = \"ChkTransportMethod\",\r\n CheckTransportCarrier = \"ChkTransportCarrier\"\r\n}\r\n","export enum TaskPriorityLevels {\r\n Low = \"Low\",\r\n Medium = \"Medium\",\r\n High = \"High\"\r\n}\r\n","export enum TaskTypes {\r\n SettlementTracking = \"SettlementTrck\",\r\n SaleTracking = \"SaleTrck\",\r\n ShippingTracking = \"ShippingTrck\",\r\n ApprovalTracking = \"ApprovalTrck\"\r\n}\r\n","export enum TransferMethodTypes {\r\n StripeTransfer = \"StrpTf\",\r\n BankTransfer = \"BnkTf\",\r\n Cash = \"Cash\"\r\n}\r\n\r\nexport enum StripeTransferMethodTypes {\r\n Card = \"card\",\r\n Fpx = \"fpx\",\r\n BankAccount = \"bank_account\"\r\n}\r\n\r\nexport type ExtendedTransferMethodTypes = TransferMethodTypes | StripeTransferMethodTypes;\r\n","export enum TransferStatus {\r\n TransferCreated = \"TransI\"\r\n}\r\n","export enum VideoTypes {\r\n Pigeon = \"Pgn\",\r\n Flight = \"Flg\"\r\n}\r\n","export class ArrayHelper {\r\n public static SortAscendingCompare(a: T, b: T) {\r\n if (a > b) return +1;\r\n if (a < b) return -1;\r\n return 0;\r\n }\r\n\r\n public static SortDescendingCompare(a: T, b: T) {\r\n if (a < b) return +1;\r\n if (a > b) return -1;\r\n return 0;\r\n }\r\n}\r\n","export const PLATFORM_VAT_RATE: number = 0; // for the moment PigeonMarket is not subject to VAT (change value to 0.21 when PigeonMarket should pay VAT)\r\nexport const SALE_FEES_RATE: number = 0.25;\r\nexport const SALE_PRICE_MAXIMUM: number = 100_000;\r\nexport const SALE_PRICE_MINIMUM: number = 50;\r\nexport const VAT_RATE_BELGIUM: number = 0.06;\r\nexport const REFERRAL_FEES_RATE: number = 0.025;\r\nexport const BASE_DEPOSIT_RATE: number = 0.5;\r\nexport const VIDEO_MAX_SIZE: number = 100; // MB\r\nexport const VIDEO_CHUNK_SIZE: number = 5; // MB\r\nexport const VIDEO_MIN_DURATION: number = 5; // seconds\r\nexport const VIDEO_MAX_DURATION: number = 45; // seconds\r\nexport const AUCTION_EXTRA_TIME_MINUTES: number = 3; // in minutes\r\nexport const PAYMENT_MAX_DELAY: number = 14; //days\r\nexport const SALE_SCHEDULE_MIN_START_HOUR = 6;\r\nexport const SALE_SCHEDULE_MAX_START_HOUR = 23;\r\nexport const SALE_SCHEDULE_MIN_END_HOUR = 6;\r\nexport const SALE_SCHEDULE_MAX_END_HOUR = 23;\r\nexport const AUCTION_DEFAULT_START_PRICE = 100; // 100 €\r\nexport const AUCTION_MAX_DURATION_IN_DAYS = 15;\r\nexport const AUCTION_MIN_DURATION_IN_DAYS = 5;\r\nexport const AUCTION_MAX_SCHEDULE_IN_DAYS = 90;\r\nexport const AUCTION_OFFER_LIST_LENGTH = 20;\r\nexport const AUCTION_TIME_CLOSE_END_OF_SALE = 2 * 60 * 1000; // in milliseconds. Note: used to check potential bids desynchronisation\r\nexport const PIGEON_MAX_DEAD_DELAY = 48; // hours\r\nexport const PIGEON_MAX_INFERTILE_DELAY = 2; // months\r\nexport const TRANSFER_DELAY_HOURS = 72; // hours\r\nexport const SHIPPING_DELIVERY_OPTION_SUPPORTED = false;\r\nexport const NOTIFICATION_LIMIT_TO_DISPLAY: number = 5;\r\nexport const NOTIFICATION_DEFAULT_TIMEOUT: number = 8 * 1000; //milliseconds\r\n\r\nexport const PLATFORM_ID: string = \"PMSF000\";\r\nexport const PLATFORM_CREATED_DATE: Date = new Date(2019, 6, 27);\r\nexport const BANK_IBAN: string = \"BE30068901157511\";\r\nexport const BANK_IBAN_FORMATTED: string = \"BE30 0689 0115 7511\";\r\nexport const BANK_BIC: string = \"GKCCBEBB\";\r\nexport const BANK_BIC_FORMATTED: string = \"GKCCBEBB\";\r\nexport const BANK_NAME: string = \"Belfius\";\r\nexport const BUSINESS_NUMBER: string = \"0564921268\";\r\nexport const BUSINESS_NUMBER_FORMATTED: string = \"0564.921.268\";\r\nexport const BUSINESS_VAT_FORMATTED: string = \"BE\" + BUSINESS_NUMBER_FORMATTED;\r\nexport const BANK_ACCOUNT_HOLDER_NAME: string = \"Raphael Dhainaut\";\r\nexport const BANK_ACCOUNT_HOLDER_ADDRESS: string = \"Chaussée Saint-Pierre 316 1040 Bruxelles\";\r\n\r\n// See: https://www.europeanpaymentscouncil.eu/document-library/other/epc-list-sepa-scheme-countries\r\n// See: https://www.ecb.europa.eu/paym/integration/retail/sepa/iban/html/index.en.html\r\nexport const SEPA_COUNTRIES: string[] = [\r\n \"FI\",\r\n \"AD\",\r\n \"AT\",\r\n \"PT\",\r\n \"BE\",\r\n \"BG\",\r\n \"ES\",\r\n \"HR\",\r\n \"CY\",\r\n \"CZ\",\r\n \"DK\",\r\n \"EE\",\r\n \"FI\",\r\n \"FR\",\r\n \"GF\",\r\n \"DE\",\r\n \"GI\",\r\n \"GR\",\r\n \"GP\",\r\n \"GG\",\r\n \"HU\",\r\n \"IS\",\r\n \"IE\",\r\n \"IM\",\r\n \"IT\",\r\n \"JE\",\r\n \"LV\",\r\n \"LI\",\r\n \"LT\",\r\n \"LU\",\r\n \"PT\",\r\n \"MT\",\r\n \"MQ\",\r\n \"YT\",\r\n \"MC\",\r\n \"NL\",\r\n \"NO\",\r\n \"PL\",\r\n \"PT\",\r\n \"RE\",\r\n \"RO\",\r\n \"BL\",\r\n \"MF\",\r\n \"PM\",\r\n \"SM\",\r\n \"SK\",\r\n \"SI\",\r\n \"ES\",\r\n \"SE\",\r\n \"CH\",\r\n \"GB\",\r\n \"VA\"\r\n];\r\n","import \"./__global\";\r\n\r\n// Code adapted from https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Date/toISOString#Proth%C3%A8se_d'%C3%A9mulation_(polyfill)\r\nif (!Date.prototype.toInputDateString) {\r\n (function () {\r\n function pad(number: number) {\r\n if (number < 10) {\r\n return \"0\" + number;\r\n }\r\n\r\n return number;\r\n }\r\n\r\n // Format returned yyyy-MM-dd\r\n Date.prototype.toInputDateString = function () {\r\n return `${this.getFullYear()}-${pad(this.getMonth() + 1)}-${pad(this.getDate())}`;\r\n };\r\n })();\r\n}\r\n\r\nif (!Date.prototype.toInputTimeString) {\r\n (function () {\r\n function pad(number: number) {\r\n if (number < 10) {\r\n return \"0\" + number;\r\n }\r\n\r\n return number;\r\n }\r\n\r\n // Format returned hh:mm\r\n Date.prototype.toInputTimeString = function () {\r\n return `${pad(this.getHours())}:${pad(this.getMinutes())}`;\r\n };\r\n })();\r\n\r\n if (!Date.prototype.toInputDateTimeString) {\r\n (function () {\r\n // Format returned hh:mm\r\n Date.prototype.toInputDateTimeString = function () {\r\n return `${this.toInputDateString()}T${this.toInputTimeString()}`;\r\n };\r\n })();\r\n }\r\n}\r\n","import \"./__global\";\r\n\r\nif (!String.prototype.toUpperCaseFirstLetter) {\r\n (function () {\r\n String.prototype.toUpperCaseFirstLetter = function () {\r\n return this.charAt(0).toUpperCase() + this.slice(1);\r\n };\r\n })();\r\n}\r\n\r\nif (!String.prototype.toReverse) {\r\n (function () {\r\n String.prototype.toReverse = function () {\r\n return this.split(\"\").reverse().join(\"\");\r\n };\r\n })();\r\n}\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.$slots.default)?_c('div',{staticClass:\"alert\",class:_vm.CssClassAlert,on:{\"click\":function($event){return _vm.$emit('click')}}},[(_vm.caption)?_c('span',{staticClass:\"alert_caption\",class:_vm.CssClassAlertType},[_vm._v(_vm._s(_vm.caption))]):_vm._e(),(_vm.icon)?_c('Icon',{staticClass:\"alert_icon fa-3x\",attrs:{\"icon\":_vm.icon}}):_vm._e(),_vm._t(\"default\"),(_vm.buttonLabel)?_c('button',{staticClass:\"alert_button btn btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.Action()}}},[_vm._v(\" \"+_vm._s(_vm.buttonLabel)+\" \")]):(_vm.linkTo && _vm.linkLabel)?_c('I18nRouterLink',{staticClass:\"alert_button btn btn-link\",attrs:{\"to\":_vm.linkTo}},[_vm._v(_vm._s(_vm.linkLabel))]):(_vm.linkHref && _vm.linkLabel)?_c('a',{staticClass:\"alert_button btn btn-link\",attrs:{\"href\":_vm.linkHref,\"target\":{ _blank: _vm.linkExternal }}},[_vm._v(_vm._s(_vm.linkLabel))]):_vm._e()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Emit, Prop, Vue } from \"vue-property-decorator\";\r\nimport { Location } from \"vue-router\";\r\n\r\nexport enum AlertTypes {\r\n Info = \"info\",\r\n Warning = \"warning\",\r\n Danger = \"danger\",\r\n Success = \"success\"\r\n}\r\n\r\n@Component\r\nexport default class AppAlert extends Vue {\r\n @Prop({ validator: (value: AlertTypes) => Object.values(AlertTypes).includes(value) })\r\n readonly type: AlertTypes;\r\n @Prop()\r\n readonly icon?: string | string[];\r\n @Prop({ default: true })\r\n readonly outline: boolean;\r\n @Prop({ default: false })\r\n readonly inline: boolean;\r\n @Prop()\r\n readonly linkLabel?: string;\r\n @Prop()\r\n readonly linkHref?: string;\r\n @Prop()\r\n readonly linkExternal?: boolean;\r\n @Prop()\r\n readonly linkTo?: Location;\r\n @Prop()\r\n readonly buttonLabel?: string;\r\n @Prop()\r\n readonly caption?: string;\r\n\r\n get CssClassAlertType(): string {\r\n let cssClasses = `alert-${this.type}`;\r\n\r\n if (this.inline) cssClasses += \" inline-alert\";\r\n\r\n return cssClasses;\r\n }\r\n\r\n get CssClassAlert(): string {\r\n let cssClasses = this.CssClassAlertType;\r\n\r\n if (this.outline) {\r\n cssClasses += \" outline-alert\";\r\n }\r\n if (!this.icon) {\r\n cssClasses += \" no-icon-alert\";\r\n }\r\n\r\n return cssClasses;\r\n }\r\n\r\n @Emit(\"action\")\r\n public Action(): void {}\r\n}\r\n","import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum BadgeLevels {\r\n Low = \"low\",\r\n Medium = \"medium\",\r\n High = \"high\"\r\n}\r\n\r\n@Component\r\nexport default class AppBadge extends Vue {\r\n @Prop()\r\n readonly count: number;\r\n @Prop()\r\n readonly max?: number;\r\n @Prop({\r\n default: BadgeLevels.Low,\r\n validator: (value: BadgeLevels) => Object.values(BadgeLevels).includes(value)\r\n })\r\n readonly level: BadgeLevels;\r\n\r\n get Count(): string {\r\n if (!this.max) {\r\n return this.count.toString();\r\n }\r\n\r\n if (this.count > this.max) {\r\n return this.max + \"+\";\r\n } else {\r\n return this.count.toString();\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppAlert.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppAlert.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./AppAlert.vue?vue&type=template&id=578d5628&scoped=true\"\nimport script from \"./AppAlert.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppAlert.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppAlert.vue?vue&type=style&index=0&id=578d5628&prod&lang=scss&scoped=true\"\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 \"578d5628\",\n null\n \n)\n\nexport default component.exports","import { Component, Emit, Prop, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum BoxTypes {\r\n Modal = \"modal\"\r\n}\r\n\r\n@Component\r\nexport default class AppBox extends Vue {\r\n @Prop({\r\n default: BoxTypes.Modal,\r\n validator: (value: BoxTypes) => Object.values(BoxTypes).includes(value)\r\n })\r\n readonly type: BoxTypes;\r\n\r\n isOpen: boolean = true;\r\n\r\n @Emit(\"close\")\r\n public Close(): void {\r\n this.isOpen = false;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppBadge.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppBadge.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./AppBadge.vue?vue&type=template&id=769674b8&scoped=true\"\nimport script from \"./AppBadge.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppBadge.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppBadge.vue?vue&type=style&index=0&id=769674b8&prod&lang=scss&scoped=true\"\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 \"769674b8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"custom-badge\",class:`${_vm.level}-level`},[_vm._v(_vm._s(_vm.Count))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppBox.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppBox.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppBox.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppBox.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AppBox.vue?vue&type=template&id=2e3f1663&scoped=true\"\nimport script from \"./AppBox.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppBox.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppBox.vue?vue&type=style&index=0&id=2e3f1663&prod&lang=scss&scoped=true\"\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 \"2e3f1663\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AppBox.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isOpen)?_c('div',[(_vm.type === 'modal')?_c('div',{staticClass:\"modal-backdrop fade show\"}):_vm._e(),_c('div',{staticClass:\"modal fade d-block\",attrs:{\"tabindex\":\"-1\",\"role\":\"dialog\"}},[_c('div',{staticClass:\"modal-dialog modal-dialog-centered\",attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[(_vm.$slots.header)?_c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\"},[_vm._t(\"header\")],2),_c('button',{staticClass:\"btn btn-close\",attrs:{\"type\":\"button\",\"title\":_vm.$t('close_tooltip')},on:{\"click\":function($event){return _vm.Close()}}},[_c('Icon',{attrs:{\"icon\":\"times\"}})],1)]):_vm._e(),_c('div',{staticClass:\"modal-body\"},[_vm._t(\"default\")],2),(_vm.$slots.footer)?_c('div',{staticClass:\"modal-footer\"},[_vm._t(\"footer\")],2):_vm._e()])])])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum ButtonTypes {\r\n Primary = \"primary\",\r\n Secondary = \"secondary\",\r\n Info = \"info\",\r\n Success = \"success\",\r\n Warning = \"warning\",\r\n Danger = \"danger\"\r\n}\r\n\r\n// See: https://getbootstrap.com/docs/5.1/components/dropdowns/\r\n// See: https://getbootstrap.com/docs/5.1/components/dropdowns/#split-button\r\n@Component({\r\n inheritAttrs: false\r\n})\r\nexport default class AppButtonDropdown extends Vue {\r\n @Prop()\r\n readonly actionLabel?: string;\r\n @Prop({\r\n default: ButtonTypes.Primary,\r\n validator: (value: ButtonTypes) => Object.values(ButtonTypes).includes(value)\r\n })\r\n readonly type: ButtonTypes;\r\n @Prop({ default: true })\r\n readonly outline: boolean;\r\n @Prop({ default: \"left\" })\r\n readonly menuAlign: \"left\" | \"right\";\r\n\r\n dropdownMenuIsOpen: boolean = false;\r\n\r\n get Attrs(): any {\r\n return { ...this.$attrs };\r\n }\r\n\r\n public ToggleDropdownMenu(): void {\r\n this.dropdownMenuIsOpen = !this.dropdownMenuIsOpen;\r\n }\r\n\r\n public OpenDropdownMenu(): void {\r\n this.dropdownMenuIsOpen = true;\r\n }\r\n\r\n public CloseDropdownMenu(): void {\r\n this.dropdownMenuIsOpen = false;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppButtonDropdown.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppButtonDropdown.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./AppButtonDropdown.vue?vue&type=template&id=57da4f5a&scoped=true\"\nimport script from \"./AppButtonDropdown.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppButtonDropdown.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppButtonDropdown.vue?vue&type=style&index=0&id=57da4f5a&prod&lang=scss&scoped=true\"\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 \"57da4f5a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"btn-group\",attrs:{\"role\":\"group\"}},[_c('button',_vm._b({staticClass:\"btn dropdown-toggle d-flex align-items-center\",class:`btn-${_vm.outline ? 'outline-' : null}${_vm.type}`,attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.ToggleDropdownMenu()}}},'button',_vm.Attrs,false),[_vm._t(\"action\",function(){return [_c('span',[_vm._v(_vm._s(_vm.actionLabel))])]})],2),_c('div',{staticClass:\"dropdown-menu\",class:{ 'd-block': _vm.dropdownMenuIsOpen, 'dropdown-menu-right': _vm.menuAlign == 'right' }},[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Emit, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n// See: https://medium.com/@dobromir_hristov/reacting-to-promises-from-event-listeners-in-vue-js-8959b6d03f52\r\n@Component\r\nexport default class AppButtonLoader extends Vue {\r\n @Prop({ default: 4500 })\r\n readonly notificationTime: number;\r\n @Prop({ default: \"btn-danger\" })\r\n readonly errorClass: string;\r\n @Prop({ default: \"btn-success\" })\r\n readonly successClass: string;\r\n\r\n isLoading: boolean = false;\r\n hasSuccess: boolean = false;\r\n hasError: boolean = false;\r\n\r\n get Listeners(): Record {\r\n return { ...this.$listeners, click: this.HandleClick };\r\n }\r\n\r\n get ComputedClasses(): { [key: string]: boolean } {\r\n return {\r\n [this.errorClass]: this.hasError,\r\n [this.successClass]: this.hasSuccess,\r\n \"is-loading\": this.isLoading\r\n };\r\n }\r\n\r\n get LoaderColor(): string | null {\r\n if (this.$el.classList.contains(\"btn-primary\")) {\r\n return \"#FFFFFF\";\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private Reset(): void {\r\n setTimeout(() => {\r\n this.hasError = false;\r\n this.hasSuccess = false;\r\n }, this.notificationTime);\r\n }\r\n\r\n @Emit(\"done\")\r\n private Done(response: any): void {\r\n this.hasSuccess = true;\r\n\r\n return response;\r\n }\r\n\r\n @Emit(\"fail\")\r\n private Fail(error: any): void {\r\n this.hasError = true;\r\n\r\n return error;\r\n }\r\n\r\n public async HandleClick($event: any) {\r\n try {\r\n this.isLoading = true;\r\n\r\n const response = await (this.$listeners as any).click($event);\r\n this.Done(response);\r\n } catch (error: any) {\r\n this.Fail(error);\r\n } finally {\r\n this.isLoading = false;\r\n this.Reset();\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppButtonLoader.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppButtonLoader.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppButtonLoader.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppButtonLoader.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AppButtonLoader.vue?vue&type=template&id=fe14aabe&scoped=true\"\nimport script from \"./AppButtonLoader.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppButtonLoader.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppButtonLoader.vue?vue&type=style&index=0&id=fe14aabe&prod&lang=scss&scoped=true\"\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 \"fe14aabe\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AppButtonLoader.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('button',_vm._g({class:_vm.ComputedClasses,attrs:{\"disabled\":_vm.isLoading}},_vm.Listeners),[(_vm.isLoading)?_vm._t(\"loading\",function(){return [_c('AppLoader',{attrs:{\"inline\":true,\"color\":_vm.LoaderColor}})]}):(_vm.hasSuccess)?_vm._t(\"success\",function(){return [_vm._v(_vm._s(_vm.$t(\"status.success\")))]}):(_vm.hasError)?_vm._t(\"error\",function(){return [_vm._v(_vm._s(_vm.$t(\"status.error\")))]}):_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum DividerDirections {\r\n Horizontal = \"horizontal\",\r\n Vertical = \"vertical\"\r\n}\r\n\r\n@Component\r\nexport default class AppDivider extends Vue {\r\n @Prop({\r\n default: DividerDirections.Horizontal,\r\n validator: (value: DividerDirections) => Object.values(DividerDirections).includes(value)\r\n })\r\n readonly direction: DividerDirections;\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppDivider.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppDivider.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./AppDivider.vue?vue&type=template&id=75b17ad2&scoped=true\"\nimport script from \"./AppDivider.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppDivider.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppDivider.vue?vue&type=style&index=0&id=75b17ad2&prod&lang=scss&scoped=true\"\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 \"75b17ad2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"divider\",class:`${_vm.direction}-divider`},[(_vm.$slots.default)?_c('span',{staticClass:\"divider_text\"},[_vm._t(\"default\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Emit, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {}\r\n})\r\nexport default class AppDividerToggler extends Vue {\r\n @Prop()\r\n readonly toggle: boolean;\r\n @Prop()\r\n readonly labelExpand: string;\r\n @Prop()\r\n readonly labelCollapse: string;\r\n\r\n @Emit(\"toggled\")\r\n Toggle(): void {\r\n this.toggle;\r\n }\r\n}\r\n","import { BaseThemes } from \"@api/models/market/constants/BaseThemes\";\r\nimport { IMenuItem } from \"@pigeon/models/IMenuItem\";\r\nimport mitt, { Emitter } from \"mitt\";\r\nimport { Component, Emit, Model, Prop, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum DropdownDrops {\r\n Left = \"left\",\r\n Right = \"right\"\r\n}\r\n\r\nexport enum DropdownVerticalDrops {\r\n Bottom = \"bottom\",\r\n Top = \"top\"\r\n}\r\n\r\nexport type AppDropdownEvents = {\r\n [\"menu-toggle\"]: void;\r\n [\"menu-open\"]: void;\r\n};\r\n\r\n@Component\r\nexport default class AppDropdown extends Vue {\r\n @Model(\"change\")\r\n readonly selected: IMenuItem | null;\r\n @Prop({ type: Array })\r\n readonly items: IMenuItem[];\r\n @Prop({\r\n default: DropdownDrops.Left,\r\n validator: (value: DropdownDrops) => Object.values(DropdownDrops).includes(value)\r\n })\r\n readonly drop: DropdownDrops;\r\n @Prop({\r\n default: DropdownVerticalDrops.Bottom,\r\n validator: (value: DropdownVerticalDrops) => Object.values(DropdownVerticalDrops).includes(value)\r\n })\r\n readonly dropVertical: DropdownVerticalDrops;\r\n @Prop({ validator: (value: BaseThemes) => Object.values(BaseThemes).includes(value) })\r\n readonly theme?: BaseThemes;\r\n\r\n @Prop({ default: () => mitt() })\r\n readonly menuBus: Emitter;\r\n\r\n public ToggleMenu(): void {\r\n this.menuBus.emit(\"menu-toggle\");\r\n }\r\n\r\n public ExpandMenu(): void {\r\n this.menuBus.emit(\"menu-open\");\r\n }\r\n\r\n @Emit(\"change\")\r\n public OnSelectedItem(selected: IMenuItem) {\r\n if (selected === this.selected || !selected) return;\r\n\r\n return selected;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppDividerToggler.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppDividerToggler.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./AppDividerToggler.vue?vue&type=template&id=640db8c4&scoped=true\"\nimport script from \"./AppDividerToggler.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppDividerToggler.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppDividerToggler.vue?vue&type=style&index=0&id=640db8c4&prod&lang=scss&scoped=true\"\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 \"640db8c4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('AppDivider',{staticClass:\"divider-toggler\",class:{ 'collapsed': !_vm.toggle, 'expanded': _vm.toggle }},[_c('button',{staticClass:\"btn btn-outline-primary btn-toggler\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.Toggle()}}},[(!_vm.toggle)?_vm._t(\"expand\",function(){return [_c('span',[_vm._v(_vm._s(_vm.labelExpand)+\" \"),_c('span',{staticClass:\"ml-2\"},[_c('Icon',{attrs:{\"icon\":\"angle-down\"}})],1)])]}):_vm._t(\"collapse\",function(){return [_c('span',[_vm._v(_vm._s(_vm.labelCollapse)+\" \"),_c('span',{staticClass:\"ml-2\"},[_c('Icon',{attrs:{\"icon\":\"angle-up\"}})],1)])]})],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppDropdown.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppDropdown.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppDropdown.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppDropdown.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AppDropdown.vue?vue&type=template&id=10e798b2&scoped=true\"\nimport script from \"./AppDropdown.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppDropdown.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppDropdown.vue?vue&type=style&index=0&id=10e798b2&prod&lang=scss&scoped=true\"\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 \"10e798b2\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AppDropdown.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"select-dropdown\",class:{ 't-black': _vm.theme === 'black', 't-dark': _vm.theme === 'dark', 'left-dropdown': _vm.drop === 'left', 'right-dropdown': _vm.drop === 'right' }},[_c('div',{staticClass:\"input select-input w-100\",on:{\"click\":function($event){return _vm.ToggleMenu()}}},[_c('AppMenuItem',{attrs:{\"item\":_vm.selected,\"title\":_vm.selected && _vm.selected.description ? _vm.selected.description : null}})],1),_c('button',{staticClass:\"btn btn-select\",attrs:{\"aria-label\":_vm.$t('toggle'),\"type\":\"button\"},on:{\"click\":function($event){return _vm.ToggleMenu()}}},[(_vm.dropVertical === 'bottom')?_c('Icon',{attrs:{\"icon\":\"angle-down\"}}):(_vm.dropVertical === 'top')?_c('Icon',{attrs:{\"icon\":\"angle-up\"}}):_vm._e()],1),_c('AppMenuItems',{attrs:{\"bus\":_vm.menuBus,\"items\":_vm.items,\"position\":_vm.drop,\"position-vertical\":_vm.dropVertical,\"theme\":_vm.theme},on:{\"change\":function($event){return _vm.OnSelectedItem($event)}}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class AppError extends Vue {}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppError.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppError.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./AppError.vue?vue&type=template&id=c95b38da&scoped=true\"\nimport script from \"./AppError.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppError.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppError.vue?vue&type=style&index=0&id=c95b38da&prod&lang=scss&scoped=true\"\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 \"c95b38da\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.$slots.default)?_c('div',{staticClass:\"error-alert text-danger\"},[_vm._t(\"default\")],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AppRoutes } from \"@market/routers/App.routes\";\r\nimport { signInDialogStore } from \"@market/stores/App.store.modules\";\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class AppErrorNotFound extends Vue {\r\n public OpenSignInDialog() {\r\n if (!this.$auth.IsAuthenticated) signInDialogStore.Open();\r\n }\r\n\r\n public GoToCatalogPage() {\r\n this.$router.push({ name: AppRoutes.Buy });\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppErrorNotFound.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppErrorNotFound.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppErrorNotFound.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppErrorNotFound.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AppErrorNotFound.vue?vue&type=template&id=3d85e5c7\"\nimport script from \"./AppErrorNotFound.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppErrorNotFound.ts?vue&type=script&lang=ts&external\"\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\n/* custom blocks */\nimport block0 from \"./AppErrorNotFound.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"segment segment-block fg-white bg-black\",attrs:{\"data-cy\":\"error-not-found\"}},[_c('Icon',{staticClass:\"fa-4x\",attrs:{\"icon\":\"question\"}}),_c('h3',{staticClass:\"h3\"},[_vm._v(_vm._s(_vm.$t('message.not_found')))]),_vm._t(\"default\",function(){return [_c('div',{staticStyle:{\"margin-top\":\"2rem\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('message.not_found_message'))}})]}),(!_vm.$auth.IsAuthenticated)?_c('div',{staticClass:\"w-50 mx-auto font-weight-bold\"},[_c('AppAlert',{attrs:{\"type\":\"info\",\"outline\":true,\"inline\":true}},[_c('p',{staticClass:\"mb-0 text-info\",domProps:{\"innerHTML\":_vm._s(_vm.$t('alert.not_found_auth_message'))}}),_c('footer',{staticClass:\"text-center text-larger\"},[_c('button',{staticClass:\"btn btn-outline-info bg-transparent mt-2\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.OpenSignInDialog()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"action.sign_in\"))+\" \")])])])],1):_vm._e(),_c('div',{staticClass:\"mt-5\"},[_c('button',{staticClass:\"btn btn-outline-secondary\",attrs:{\"type\":\"button\",\"role\":\"navigation\"},on:{\"click\":function($event){return _vm.GoToCatalogPage()}}},[_vm._v(_vm._s(_vm.$t(\"action.go_to_catalog\")))])])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class AppErrors extends Vue {\r\n // Bug Fix: cannot use field 'errors' bug with vee-validate\r\n @Prop({ type: Array })\r\n readonly errorMessages: string[];\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppErrors.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppErrors.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./AppErrors.vue?vue&type=template&id=27747afb&scoped=true\"\nimport script from \"./AppErrors.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppErrors.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppErrors.vue?vue&type=style&index=0&id=27747afb&prod&lang=scss&scoped=true\"\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 \"27747afb\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.errorMessages && _vm.errorMessages.length)?_c('div',[_c('AppAlert',{staticClass:\"alert mt-0\",attrs:{\"outline\":false,\"icon\":\"exclamation-triangle\",\"type\":\"danger\"}},_vm._l((_vm.errorMessages),function(error,index){return _c('article',{key:index},[_c('div',{domProps:{\"innerHTML\":_vm._s(error)}})])}),0)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Emit, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class AppErrorUnexpected extends Vue {\r\n @Emit(\"retry\")\r\n public Retry() {}\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppErrorUnexpected.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppErrorUnexpected.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppErrorUnexpected.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppErrorUnexpected.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AppErrorUnexpected.vue?vue&type=template&id=5e64348d\"\nimport script from \"./AppErrorUnexpected.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppErrorUnexpected.ts?vue&type=script&lang=ts&external\"\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\n/* custom blocks */\nimport block0 from \"./AppErrorUnexpected.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"segment segment-block text-danger\"},[_c('Icon',{staticClass:\"fa-4x\",attrs:{\"icon\":\"exclamation\"}}),_vm._t(\"default\",function(){return [_c('div',{staticStyle:{\"margin-top\":\"2rem\"},domProps:{\"innerHTML\":_vm._s(_vm.$t('message.unexpected'))}})]}),_c('div',{staticClass:\"mt-2\"},[_c('button',{staticClass:\"btn btn-outline-secondary\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.Retry()}}},[_vm._v(_vm._s(_vm.$t(\"action.retry\")))])])],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum HelpTypes {\r\n Info = \"info\",\r\n Warning = \"warning\"\r\n // Danger = \"danger\",\r\n // Success = \"success\"\r\n}\r\n\r\n@Component\r\nexport default class AppHelp extends Vue {\r\n @Prop()\r\n readonly title: string;\r\n @Prop()\r\n readonly icon?: string | Array;\r\n @Prop({ default: HelpTypes.Info })\r\n readonly type: HelpTypes;\r\n\r\n HelpTypes = HelpTypes;\r\n\r\n get Icon(): string | Array {\r\n if (this.icon) return this.icon;\r\n\r\n switch (this.type) {\r\n case HelpTypes.Info:\r\n return \"question-circle\";\r\n\r\n case HelpTypes.Warning:\r\n return \"exclamation-circle\";\r\n\r\n default:\r\n console.error(\"Not implemented help type\");\r\n return \"\";\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppHelp.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppHelp.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./AppHelp.vue?vue&type=template&id=83aa24c8&scoped=true\"\nimport script from \"./AppHelp.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppHelp.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppHelp.vue?vue&type=style&index=0&id=83aa24c8&prod&lang=scss&scoped=true\"\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 \"83aa24c8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('span',{staticClass:\"help\",attrs:{\"title\":_vm.title}},[_c('Icon',{class:_vm.type === _vm.HelpTypes.Info ? 'fg-primary' : `text-info`,attrs:{\"icon\":_vm.Icon}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IMenuItem } from \"@pigeon/models/IMenuItem\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class AppMenuItem extends Vue {\r\n @Prop()\r\n readonly item: IMenuItem;\r\n}\r\n","import { BaseThemes } from \"@api/models/market/constants/BaseThemes\";\r\nimport { IMenuItem } from \"@pigeon/models/IMenuItem\";\r\nimport { Emitter } from \"mitt\";\r\nimport { Component, Emit, Model, Prop, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum MenuItemsPositions {\r\n Left = \"left\",\r\n Right = \"right\"\r\n}\r\n\r\nexport enum MenuItemsVerticalPositions {\r\n Bottom = \"bottom\",\r\n Top = \"top\"\r\n}\r\n\r\nexport type AppMenuEvents = {\r\n [\"menu-toggle\"]: () => void;\r\n [\"menu-open\"]: () => void;\r\n [\"menu-close\"]: () => void;\r\n};\r\n\r\n@Component\r\nexport default class AppMenuItems extends Vue {\r\n @Model(\"change\")\r\n readonly selected: IMenuItem | null;\r\n @Prop()\r\n readonly bus?: Emitter;\r\n @Prop({ type: Array })\r\n readonly items: IMenuItem[];\r\n @Prop({ default: false })\r\n readonly open: boolean;\r\n @Prop({ default: true })\r\n readonly closeOnClick: boolean;\r\n @Prop({ default: true })\r\n readonly closeOnSelect: boolean;\r\n @Prop({\r\n default: MenuItemsPositions.Left,\r\n validator: (value: MenuItemsPositions) => Object.values(MenuItemsPositions).includes(value)\r\n })\r\n readonly position: MenuItemsPositions;\r\n @Prop({\r\n default: MenuItemsVerticalPositions.Bottom,\r\n validator: (value: MenuItemsVerticalPositions) => Object.values(MenuItemsVerticalPositions).includes(value)\r\n })\r\n readonly positionVertical: MenuItemsVerticalPositions;\r\n @Prop({ validator: (value: BaseThemes) => Object.values(BaseThemes).includes(value) })\r\n readonly theme?: BaseThemes;\r\n\r\n isOpened: boolean = false;\r\n\r\n mounted() {\r\n this.isOpened = this.open;\r\n\r\n if (this.bus) {\r\n this.bus.on(\"menu-toggle\", this.Toggle);\r\n this.bus.on(\"menu-open\", this.Open);\r\n this.bus.on(\"menu-close\", this.Close);\r\n }\r\n }\r\n\r\n destroyed() {\r\n if (this.bus) {\r\n this.bus.off(\"menu-toggle\", this.Toggle);\r\n this.bus.off(\"menu-open\", this.Open);\r\n this.bus.off(\"menu-close\", this.Close);\r\n }\r\n }\r\n\r\n public Toggle(): void {\r\n this.isOpened = !this.isOpened;\r\n }\r\n\r\n public Open(): void {\r\n this.isOpened = true;\r\n }\r\n\r\n public Close(): void {\r\n this.isOpened = false;\r\n }\r\n\r\n @Emit(\"change\")\r\n public SelectItem(selected: IMenuItem) {\r\n if (selected !== this.selected || !this.selected) {\r\n return selected;\r\n }\r\n\r\n if (this.closeOnSelect) {\r\n this.Close();\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppMenuItem.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppMenuItem.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./AppMenuItem.vue?vue&type=template&id=e581d0ea&scoped=true\"\nimport script from \"./AppMenuItem.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppMenuItem.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppMenuItem.vue?vue&type=style&index=0&id=e581d0ea&prod&lang=scss&scoped=true\"\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 \"e581d0ea\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.item)?_c('article',{staticClass:\"item\"},[_c('div',{staticClass:\"item_title\",class:{ 'contrasted-title': _vm.item.description }},[_c('strong',[_vm._v(_vm._s(_vm.item.label))])]),(_vm.item.description)?_c('div',{staticClass:\"item_description\"},[_vm._v(_vm._s(_vm.item.description))]):_vm._e()]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppMenuItems.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppMenuItems.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./AppMenuItems.vue?vue&type=template&id=1eb6dbe2&scoped=true\"\nimport script from \"./AppMenuItems.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppMenuItems.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppMenuItems.vue?vue&type=style&index=0&id=1eb6dbe2&prod&lang=scss&scoped=true\"\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 \"1eb6dbe2\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.items.length)?_c('div',[(_vm.isOpened)?_c('ul',{staticClass:\"menu\",class:{ 't-black': _vm.theme === 'black', 'left-menu': _vm.position === 'left', 'right-menu': _vm.position === 'right', 'top-menu': _vm.positionVertical === 'top', 'bottom-menu': _vm.positionVertical === 'bottom' }},_vm._l((_vm.items),function(item){return _c('li',{key:item.value,staticClass:\"menu_item\",attrs:{\"href\":\"#\",\"data-label\":item.label,\"data-value\":item.value},on:{\"click\":function($event){return _vm.SelectItem(item)}}},[_c('AppMenuItem',{attrs:{\"item\":item}})],1)}),0):_vm._e(),(_vm.closeOnClick && _vm.isOpened)?_c('div',{staticClass:\"trigger-overlay\",on:{\"click\":function($event){return _vm.Close()}}}):_vm._e()]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Emit, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class AppOverlay extends Vue {\r\n @Prop({ type: Number, default: 100 })\r\n readonly zIndex: number;\r\n\r\n @Emit(\"click\")\r\n public HandleClick(event: MouseEvent): void {}\r\n}\r\n","import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum ProgressBarTypes {\r\n Primary = \"primary\",\r\n Secondary = \"secondary\",\r\n Info = \"info\",\r\n Success = \"success\",\r\n Warning = \"warning\",\r\n Danger = \"danger\"\r\n}\r\n\r\nexport interface IProgressBarAnimated {\r\n Play(): void;\r\n Pause(): void;\r\n Stop(): void;\r\n}\r\n\r\n@Component\r\nexport default class AppProgressBar extends Vue implements IProgressBarAnimated {\r\n @Prop({\r\n default: ProgressBarTypes.Primary,\r\n validator: (value: ProgressBarTypes) => Object.values(ProgressBarTypes).includes(value)\r\n })\r\n readonly type: ProgressBarTypes;\r\n @Prop({ default: 0 })\r\n readonly progression: number;\r\n @Prop({ default: 2000 })\r\n readonly duration: number; // animation duration in ms\r\n @Prop({ default: false })\r\n readonly isStriped: boolean;\r\n\r\n isProgressing: boolean = false;\r\n isPaused: boolean = false;\r\n\r\n get CssClass(): string {\r\n let cssClass = `bg-${this.type}`;\r\n\r\n if (this.isStriped) cssClass += \" progress-bar-striped\";\r\n if (this.isProgressing) cssClass += \" bar-progressing\";\r\n if (this.isPaused) cssClass += \" progressing-paused\";\r\n\r\n return cssClass;\r\n }\r\n\r\n public Play(): void {\r\n this.isProgressing = true;\r\n this.isPaused = false;\r\n }\r\n\r\n public Pause(): void {\r\n this.isPaused = true;\r\n }\r\n\r\n public Stop(): void {\r\n this.isProgressing = false;\r\n this.isPaused = false;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppOverlay.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppOverlay.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./AppOverlay.vue?vue&type=template&id=057637a7&scoped=true\"\nimport script from \"./AppOverlay.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppOverlay.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppOverlay.vue?vue&type=style&index=0&id=057637a7&prod&lang=scss&scoped=true\"\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 \"057637a7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"overlay\",style:({ 'z-index': _vm.zIndex }),on:{\"click\":function($event){return _vm.HandleClick($event)}}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppProgressBar.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppProgressBar.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./AppProgressBar.vue?vue&type=template&id=24f347b8&scoped=true\"\nimport script from \"./AppProgressBar.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppProgressBar.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppProgressBar.vue?vue&type=style&index=0&id=24f347b8&prod&lang=scss&scoped=true\"\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 \"24f347b8\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"progress w-100\"},[_c('div',{staticClass:\"progress_bar h-100\",class:_vm.CssClass,style:({width: _vm.progression + '%', 'animation-duration': _vm.duration / 1000 + 's'})})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import AppAlert from \"@pigeon/components/app/AppAlert.vue\";\r\nimport AppBadge from \"@pigeon/components/app/AppBadge.vue\";\r\nimport AppBox from \"@pigeon/components/app/AppBox.vue\";\r\nimport AppButtonDropdown from \"@pigeon/components/app/AppButtonDropdown.vue\";\r\nimport AppButtonLoader from \"@pigeon/components/app/AppButtonLoader.vue\";\r\nimport AppDivider from \"@pigeon/components/app/AppDivider.vue\";\r\nimport AppDividerToggler from \"@pigeon/components/app/AppDividerToggler.vue\";\r\nimport AppDropdown from \"@pigeon/components/app/AppDropdown.vue\";\r\nimport AppError from \"@pigeon/components/app/AppError.vue\";\r\nimport AppErrorNotFound from \"@pigeon/components/app/AppErrorNotFound.vue\";\r\nimport AppErrors from \"@pigeon/components/app/AppErrors.vue\";\r\nimport AppErrorUnexpected from \"@pigeon/components/app/AppErrorUnexpected.vue\";\r\nimport AppHelp from \"@pigeon/components/app/AppHelp.vue\";\r\nimport AppLoader from \"@pigeon/components/app/AppLoader.vue\";\r\nimport AppMenuItem from \"@pigeon/components/app/AppMenuItem.vue\";\r\nimport AppMenuItems from \"@pigeon/components/app/AppMenuItems.vue\";\r\nimport AppOverlay from \"@pigeon/components/app/AppOverlay.vue\";\r\nimport AppProgressBar from \"@pigeon/components/app/AppProgressBar.vue\";\r\nimport Vue from \"vue\";\r\n\r\n// App components\r\nVue.component(\"AppAlert\", AppAlert);\r\nVue.component(\"AppBadge\", AppBadge);\r\nVue.component(\"AppBox\", AppBox);\r\nVue.component(\"AppButtonDropdown\", AppButtonDropdown);\r\nVue.component(\"AppButtonLoader\", AppButtonLoader);\r\nVue.component(\"AppDivider\", AppDivider);\r\nVue.component(\"AppDividerToggler\", AppDividerToggler);\r\nVue.component(\"AppDropdown\", AppDropdown);\r\nVue.component(\"AppError\", AppError);\r\nVue.component(\"AppErrorNotFound\", AppErrorNotFound);\r\nVue.component(\"AppErrorUnexpected\", AppErrorUnexpected);\r\nVue.component(\"AppErrors\", AppErrors);\r\nVue.component(\"AppHelp\", AppHelp);\r\nVue.component(\"AppLoader\", AppLoader);\r\nVue.component(\"AppMenuItem\", AppMenuItem);\r\nVue.component(\"AppMenuItems\", AppMenuItems);\r\nVue.component(\"AppOverlay\", AppOverlay);\r\nVue.component(\"AppProgressBar\", AppProgressBar);\r\n","import { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class BlocBar extends Vue {}\r\n","import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum BarItemTypes {\r\n Primary = \"primary\",\r\n Secondary = \"secondary\"\r\n}\r\n\r\n@Component\r\nexport default class BlocBarItem extends Vue {\r\n @Prop({\r\n default: BarItemTypes.Secondary,\r\n validator: (value: BarItemTypes) => Object.values(BarItemTypes).includes(value)\r\n })\r\n readonly type: BarItemTypes;\r\n @Prop()\r\n readonly icon?: string | string[];\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./BlocBar.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./BlocBar.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./BlocBar.vue?vue&type=template&id=2674d482&scoped=true\"\nimport script from \"./BlocBar.ts?vue&type=script&lang=ts&external\"\nexport * from \"./BlocBar.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./BlocBar.vue?vue&type=style&index=0&id=2674d482&prod&lang=scss&scoped=true\"\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 \"2674d482\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"bar bloc-bar\"},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./BlocBarItem.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./BlocBarItem.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./BlocBarItem.vue?vue&type=template&id=2bf6d65a&scoped=true\"\nimport script from \"./BlocBarItem.ts?vue&type=script&lang=ts&external\"\nexport * from \"./BlocBarItem.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./BlocBarItem.vue?vue&type=style&index=0&id=2bf6d65a&prod&lang=scss&scoped=true\"\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 \"2bf6d65a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"bar_item\",class:{ 'primary-bar_item': _vm.type === 'primary', 'secondary-bar_item': _vm.type === 'secondary' }},[(_vm.icon)?_c('div',{staticClass:\"bar_icon\"},[_c('Icon',{attrs:{\"icon\":_vm.icon}})],1):_vm._e(),_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import BlocBar from \"@pigeon/components/bloc/BlocBar.vue\";\r\nimport BlocBarItem from \"@pigeon/components/bloc/BlocBarItem.vue\";\r\nimport BlocSectionBar from \"@pigeon/components/bloc/BlocSectionBar.vue\";\r\nimport Vue from \"vue\";\r\n\r\n// Bloc components\r\nVue.component(\"BlocBar\", BlocBar);\r\nVue.component(\"BlocBarItem\", BlocBarItem);\r\nVue.component(\"BlocSectionBar\", BlocSectionBar);\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ValidationObserver',{ref:\"refForm\",attrs:{\"slim\":\"\"}},[_c('form',_vm._g({class:{ 'is-processing': _vm.isProcessing },attrs:{\"novalidate\":\"\",\"data-cy\":\"form-async\"}},_vm.Listeners),[_vm._t(\"default\"),(_vm.isProcessing)?_c('div',{staticClass:\"inline-dialog t-dark\",attrs:{\"data-cy\":\"form-loader\"}},[_vm._t(\"loading\",function(){return [_c('AppLoader',{attrs:{\"theme\":\"dark\"}},[_vm._v(_vm._s(_vm.$t(\"processing\")))])]},{\"dataCy\":\"loader-slot\"})],2):_vm._e(),(_vm.hasDone || _vm.errorManager.ErrorMessages.length)?_c('div',{staticClass:\"mt-4 mb-3\"},[(_vm.hasDone)?_vm._t(\"done\",function(){return [_c('AppAlert',{attrs:{\"type\":\"success\",\"icon\":\"check\",\"caption\":\"success\"}},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('process_done_message'))}})])]},{\"dataCy\":\"success-slot\"}):_vm._e(),_vm._t(\"fail\",function(){return [_c('AppErrors',{attrs:{\"error-messages\":_vm.errorManager.ErrorMessages}})]},{\"dataCy\":\"fail-slot\"})],2):_vm._e(),(_vm.$slots.footer)?_c('footer',{staticClass:\"step-form_footer\"},[_vm._t(\"footer\")],2):_vm._e()],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IErrorManager } from \"@pigeon/services/contracts/IErrorManager\";\r\nimport { ErrorManager } from \"@pigeon/services/ErrorManager\";\r\nimport { ValidationObserver } from \"vee-validate\";\r\nimport { Component, Emit, Prop, Ref, Vue } from \"vue-property-decorator\";\r\n\r\n// See: https://medium.com/@dobromir_hristov/reacting-to-promises-from-event-listeners-in-vue-js-8959b6d03f52\r\n@Component\r\nexport default class FormAsync extends Vue {\r\n // if notification time is defined to 0 is equivalent to infiny\r\n @Prop({ default: 0 })\r\n readonly notificationTime: number;\r\n\r\n @Ref()\r\n readonly refForm: InstanceType;\r\n\r\n errorManager: IErrorManager = new ErrorManager();\r\n isProcessing: boolean = false;\r\n hasDone: boolean = false;\r\n\r\n get Listeners(): Record {\r\n return { ...this.$listeners, submit: this.HandleSubmit };\r\n }\r\n\r\n mounted() {\r\n this.errorManager = new ErrorManager(this.refForm);\r\n }\r\n\r\n private ResetNotification(): void {\r\n if (!this.notificationTime) return;\r\n\r\n setTimeout(() => {\r\n this.hasDone = false;\r\n }, this.notificationTime);\r\n }\r\n\r\n @Emit(\"done\")\r\n public Done(response: any): void {\r\n this.hasDone = true;\r\n\r\n return response;\r\n }\r\n\r\n @Emit(\"fail\")\r\n public Fail(error: any): void {\r\n return error;\r\n }\r\n\r\n public async IsValid(): Promise {\r\n return this.refForm && (await this.refForm.validate()) ? true : false;\r\n }\r\n\r\n public async IsInvalid(): Promise {\r\n return this.refForm && !(await this.refForm.validate()) ? true : false;\r\n }\r\n\r\n public async HandleSubmit($event: any): Promise {\r\n $event.preventDefault();\r\n\r\n const isFormValid: boolean = await this.refForm.validate();\r\n if (!isFormValid) return;\r\n\r\n this.isProcessing = true;\r\n this.hasDone = false;\r\n this.errorManager.Reset();\r\n\r\n try {\r\n const submitAsync: ($event: any) => any = (this.$listeners as any)[\"submit-async\"];\r\n const response = await submitAsync($event);\r\n this.Done(response);\r\n if (this.notificationTime) this.ResetNotification();\r\n } catch (error: any) {\r\n console.error(error);\r\n this.errorManager.HandleError(error);\r\n this.Fail(error);\r\n } finally {\r\n this.isProcessing = false;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormAsync.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormAsync.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormAsync.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormAsync.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./FormAsync.vue?vue&type=template&id=7fbe5761&scoped=true\"\nimport script from \"./FormAsync.ts?vue&type=script&lang=ts&external\"\nexport * from \"./FormAsync.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./FormAsync.vue?vue&type=style&index=0&id=7fbe5761&prod&lang=scss&scoped=true\"\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 \"7fbe5761\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./FormAsync.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","import { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class FormFields extends Vue {}\r\n","import { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { v4 as UUIDv4 } from \"uuid\";\r\nimport { Component, Emit, Prop, Ref, Vue, Watch } from \"vue-property-decorator\";\r\n\r\nexport enum ValidationModes {\r\n Aggressive = \"aggressive\",\r\n Passive = \"passive\",\r\n Lazy = \"lazy\",\r\n Eager = \"eager\",\r\n Custom = \"custom\"\r\n}\r\n\r\n// See Validation: https://baianat.github.io/vee-validate/concepts/components.html#component-constructor-options\r\n@Component({\r\n inheritAttrs: false\r\n})\r\nexport default class FormInput extends Vue {\r\n @Prop({ default: () => `input-${UUIDv4()}` })\r\n readonly id: string;\r\n @Prop({ default: true })\r\n readonly hasFloatingLabel: boolean;\r\n @Prop({ default: false })\r\n readonly focused: boolean;\r\n @Prop()\r\n readonly label: string;\r\n @Prop()\r\n readonly value: string;\r\n @Prop()\r\n readonly tooltip?: string;\r\n @Prop()\r\n readonly validationRules?: string | Record;\r\n @Prop()\r\n readonly validationCustomMessages?: Record;\r\n @Prop({ validator: (value: ValidationModes) => Object.values(ValidationModes).includes(value) })\r\n readonly validationMode?: ValidationModes;\r\n @Prop()\r\n readonly validationName?: string;\r\n @Prop({ default: () => `input_${UUIDv4().toString()}` })\r\n readonly validationId: string;\r\n @Prop()\r\n readonly hasError?: boolean;\r\n\r\n @Ref()\r\n readonly refInput: HTMLInputElement;\r\n\r\n hasFocus: boolean = false;\r\n innerValue: any | null = null;\r\n\r\n get HasFocus(): boolean {\r\n return this.hasFocus;\r\n }\r\n\r\n set HasFocus(value: boolean) {\r\n this.hasFocus = value;\r\n }\r\n\r\n get Attrs(): Record {\r\n return { ...this.$attrs, value: this.value };\r\n }\r\n\r\n get Listeners(): Record {\r\n return { ...this.$listeners, input: this.OnInput };\r\n }\r\n\r\n @Watch(nameof(\"value\"), { immediate: true })\r\n ObserveValueModel() {\r\n this.innerValue = this.value;\r\n }\r\n\r\n @Emit(\"input\")\r\n public OnInput(event: Event) {\r\n return (event.target as HTMLInputElement).value;\r\n }\r\n\r\n public stepUp(): void {\r\n if (this.Attrs.type !== \"number\") return;\r\n this.refInput.stepUp();\r\n }\r\n\r\n public stepDown(): void {\r\n if (this.Attrs.type !== \"number\") return;\r\n this.refInput.stepDown();\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormFields.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormFields.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./FormFields.vue?vue&type=template&id=d669a49a&scoped=true\"\nimport script from \"./FormFields.ts?vue&type=script&lang=ts&external\"\nexport * from \"./FormFields.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./FormFields.vue?vue&type=style&index=0&id=d669a49a&prod&lang=scss&scoped=true\"\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 \"d669a49a\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"fields\"},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormInput.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormInput.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./FormInput.vue?vue&type=template&id=e353d782&scoped=true\"\nimport script from \"./FormInput.ts?vue&type=script&lang=ts&external\"\nexport * from \"./FormInput.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./FormInput.vue?vue&type=style&index=0&id=e353d782&prod&lang=scss&scoped=true\"\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 \"e353d782\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ValidationProvider',{attrs:{\"rules\":_vm.validationRules,\"tag\":\"div\",\"name\":_vm.validationName || _vm.label || _vm.Attrs.name,\"customMessages\":_vm.validationCustomMessages,\"vid\":_vm.validationId,\"mode\":_vm.validationMode},scopedSlots:_vm._u([{key:\"default\",fn:function({ errors }){return [_c('div',{staticClass:\"field\",class:{\n 'floating-labels': _vm.hasFloatingLabel,\n 'flex-column-reverse': !_vm.hasFloatingLabel && _vm.label && _vm.label.length,\n 'is-invalid': _vm.hasError || (errors && errors.length > 0)\n },attrs:{\"title\":_vm.tooltip}},[(((_vm.Attrs).type)==='checkbox')?_c('input',_vm._g(_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.innerValue),expression:\"innerValue\"}],ref:\"refInput\",staticClass:\"input\",class:{ 'is-invalid': _vm.hasError || (errors && errors.length > 0) },attrs:{\"id\":_vm.id,\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.innerValue)?_vm._i(_vm.innerValue,null)>-1:(_vm.innerValue)},on:{\"blur\":function($event){_vm.HasFocus = false},\"focus\":function($event){_vm.HasFocus = true},\"change\":function($event){var $$a=_vm.innerValue,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.innerValue=$$a.concat([$$v]))}else{$$i>-1&&(_vm.innerValue=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.innerValue=$$c}}}},'input',_vm.Attrs,false),_vm.Listeners)):(((_vm.Attrs).type)==='radio')?_c('input',_vm._g(_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.innerValue),expression:\"innerValue\"}],ref:\"refInput\",staticClass:\"input\",class:{ 'is-invalid': _vm.hasError || (errors && errors.length > 0) },attrs:{\"id\":_vm.id,\"type\":\"radio\"},domProps:{\"checked\":_vm._q(_vm.innerValue,null)},on:{\"blur\":function($event){_vm.HasFocus = false},\"focus\":function($event){_vm.HasFocus = true},\"change\":function($event){_vm.innerValue=null}}},'input',_vm.Attrs,false),_vm.Listeners)):_c('input',_vm._g(_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.innerValue),expression:\"innerValue\"}],ref:\"refInput\",staticClass:\"input\",class:{ 'is-invalid': _vm.hasError || (errors && errors.length > 0) },attrs:{\"id\":_vm.id,\"type\":(_vm.Attrs).type},domProps:{\"value\":(_vm.innerValue)},on:{\"blur\":function($event){_vm.HasFocus = false},\"focus\":function($event){_vm.HasFocus = true},\"input\":function($event){if($event.target.composing)return;_vm.innerValue=$event.target.value}}},'input',_vm.Attrs,false),_vm.Listeners)),(_vm.label && _vm.label.length)?_c('label',{staticClass:\"label\",class:{\n 'floating-label': _vm.hasFloatingLabel,\n 'is-floating':\n !_vm.hasFloatingLabel || (_vm.hasFloatingLabel && _vm.HasFocus) || (_vm.hasFloatingLabel && _vm.value && _vm.value.length)\n },attrs:{\"for\":_vm.id}},[_vm._v(\" \"+_vm._s(_vm.label)+\" \"),(_vm.tooltip)?_c('AppHelp',{staticClass:\"tooltip_icon\",attrs:{\"title\":_vm.tooltip}}):_vm._e()],1):_vm._e()]),(errors && errors.length)?_c('AppError',[_vm._v(_vm._s(errors[0]))]):_vm._e()]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { v4 as UUIDv4 } from \"uuid\";\r\nimport { Component, Emit, Model, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n inheritAttrs: false\r\n})\r\nexport default class FormInputCheck extends Vue {\r\n @Model(\"change\", { type: [String, Number, Boolean, Object, Array] })\r\n readonly model: any;\r\n @Prop({ default: undefined, type: [String, Number, Boolean, Object] })\r\n readonly value?: string | number | boolean | object;\r\n @Prop({ type: [Boolean, String], default: true })\r\n readonly trueValue: boolean | string;\r\n @Prop({ type: [Boolean, String], default: false })\r\n readonly falseValue: boolean | string;\r\n @Prop({ type: String, default: () => `check-${UUIDv4()}` })\r\n readonly id: string;\r\n // @Prop()\r\n // readonly validationRules?: string | Object;\r\n // @Prop()\r\n // readonly validationCustomMessages?: Object;\r\n // @Prop()\r\n // readonly validationName?: string;\r\n\r\n hovered: boolean = false;\r\n\r\n get Attrs(): any {\r\n return { ...this.$attrs, value: this.value };\r\n }\r\n\r\n get Listeners() {\r\n return { ...this.$listeners, change: this.OnChange };\r\n }\r\n\r\n get IsChecked() {\r\n if (Array.isArray(this.model)) {\r\n return this.model.includes(this.value);\r\n }\r\n\r\n if (this.HasValue) {\r\n return this.model === this.value || this.model === this.trueValue;\r\n }\r\n\r\n return this.model === this.trueValue;\r\n }\r\n\r\n private get HasValue() {\r\n if (typeof this.$options.propsData === \"undefined\") return;\r\n\r\n return Object.prototype.hasOwnProperty.call(this.$options.propsData, \"value\");\r\n }\r\n\r\n @Emit(\"change\")\r\n private HandleArrayCheckbox() {\r\n const newModel = this.model;\r\n\r\n if (!this.IsChecked) {\r\n newModel.push(this.value);\r\n } else {\r\n this.RemoveItemFromModel(newModel);\r\n }\r\n\r\n return newModel;\r\n }\r\n\r\n private RemoveItemFromModel(newModel: any) {\r\n const index = newModel.indexOf(this.value);\r\n\r\n if (index !== -1) {\r\n newModel.splice(index, 1);\r\n }\r\n }\r\n\r\n @Emit(\"change\")\r\n private HandleSingleSelectCheckbox() {\r\n return this.IsChecked ? null : this.value;\r\n }\r\n\r\n @Emit(\"change\")\r\n private HandleSimpleCheckbox() {\r\n return this.IsChecked ? this.falseValue : this.trueValue;\r\n }\r\n\r\n public OnChange() {\r\n if (this.$attrs.disabled || this.$attrs.readonly) return;\r\n\r\n this.ToggleCheck();\r\n }\r\n\r\n public ToggleCheck() {\r\n if (Array.isArray(this.model)) {\r\n this.HandleArrayCheckbox();\r\n } else if (this.HasValue) {\r\n this.HandleSingleSelectCheckbox();\r\n } else {\r\n this.HandleSimpleCheckbox();\r\n }\r\n }\r\n\r\n public Highlight(state: boolean) {\r\n this.hovered = state;\r\n }\r\n}\r\n","import { PictureTypes } from \"@api/models/market/constants/PictureTypes\";\r\nimport { IPicture } from \"@api/models/market/IPicture\";\r\nimport { IFilePicture } from \"@pigeon/models/IFilePicture\";\r\nimport { IBlobManager } from \"@pigeon/services/contracts/IBlobManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { v4 as UUIDv4 } from \"uuid\";\r\nimport { Component, Emit, Prop, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum FilePreviewModes {\r\n Image = \"image\",\r\n Iframe = \"iframe\"\r\n}\r\n\r\n@Component\r\nexport default class FormInputPicture extends Vue {\r\n @Prop()\r\n readonly id: string;\r\n @Prop({ default: () => UUIDv4() })\r\n readonly keyIndex: string;\r\n @Prop({ default: \"image/*, blob\" })\r\n readonly accept: string;\r\n @Prop({ default: \"jpg,jpeg,gif,png,webp\" })\r\n readonly extension: string;\r\n\r\n @Prop({ default: () => [] })\r\n readonly pictures: IPicture[];\r\n @Prop()\r\n readonly pictureType: PictureTypes;\r\n @Prop({ default: true })\r\n readonly hasPreview: boolean;\r\n @Prop({\r\n default: FilePreviewModes.Image,\r\n validator: (value: FilePreviewModes) => Object.values(FilePreviewModes).includes(value)\r\n })\r\n readonly previewMode: FilePreviewModes;\r\n\r\n @Inject()\r\n private blobManager: IBlobManager;\r\n\r\n PreviewModes = FilePreviewModes;\r\n fileList: FileList | null = null;\r\n thumb: string = \"\";\r\n\r\n get InputId(): string {\r\n return `app-input-picture_${this.pictureType}_${this.keyIndex}`;\r\n }\r\n\r\n private BuildThumbUrl(fileList: FileList | null): string {\r\n if (!fileList || !fileList.item(0)) return \"\";\r\n\r\n const file = fileList.item(0);\r\n if (!file) throw Error(\"Null exception: file is undefined.\");\r\n\r\n let thumbUrl: string = \"\";\r\n const URL = window.URL || (window as any).webkitURL;\r\n\r\n if (URL && URL.createObjectURL) {\r\n thumbUrl = URL.createObjectURL(file);\r\n }\r\n\r\n return thumbUrl;\r\n }\r\n\r\n public OnReset(): void {\r\n this.fileList = null;\r\n this.thumb = \"\";\r\n }\r\n\r\n @Emit(\"click\")\r\n public OnClick(): void {}\r\n\r\n //#region Upload\r\n public OnRemovePicture(): void {\r\n if (!this.pictures || !this.pictures.length) return;\r\n\r\n this.OnReset();\r\n const picturesToRemove = this.pictures.filter((p) => p?.type === this.pictureType);\r\n if (picturesToRemove) {\r\n picturesToRemove.forEach((pic) => this.Remove(pic));\r\n }\r\n }\r\n\r\n @Emit(\"remove\")\r\n public Remove(pictureToRemove: IPicture): IPicture {\r\n return pictureToRemove;\r\n }\r\n\r\n public OnUploadInput(event: any): void {\r\n const files: FileList = event.target.files;\r\n\r\n if (!files.length) return;\r\n if (!this.pictures) return;\r\n\r\n this.fileList = files;\r\n this.thumb = this.BuildThumbUrl(this.fileList);\r\n\r\n for (const file of files) {\r\n this.SetPicture(file);\r\n this.StoreFile(file);\r\n }\r\n }\r\n\r\n @Emit(\"store-file-picture\")\r\n public StoreFile(file: File): IFilePicture {\r\n return {\r\n pictureType: this.pictureType,\r\n file: file\r\n };\r\n }\r\n\r\n public SetPicture(fileUploaded: File): void {\r\n const existingPicture: IPicture | undefined = this.pictures?.find((p) => p?.type === this.pictureType);\r\n if (existingPicture) {\r\n // case update (existing picture)\r\n existingPicture.filename = this.blobManager.BuildPictureName(this.pictureType, fileUploaded);\r\n existingPicture.url = this.thumb;\r\n } else {\r\n // Case insert (new picture)\r\n this.pictures.push({\r\n type: this.pictureType,\r\n filename: this.blobManager.BuildPictureName(this.pictureType, fileUploaded),\r\n url: this.thumb\r\n });\r\n }\r\n }\r\n //#endregion\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormInputCheck.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormInputCheck.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./FormInputCheck.vue?vue&type=template&id=091268d7&scoped=true\"\nimport script from \"./FormInputCheck.ts?vue&type=script&lang=ts&external\"\nexport * from \"./FormInputCheck.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./FormInputCheck.vue?vue&type=style&index=0&id=091268d7&prod&lang=scss&scoped=true\"\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 \"091268d7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex check-field\"},[_c('div',{staticClass:\"checkbox\",class:{ 'm-0': !_vm.$slots.default }},[_c('label',{staticClass:\"input __checkbox_input\",class:{ 'is-checked': _vm.IsChecked, 'is-disabled': _vm.$attrs.disabled, 'is-hovered': _vm.hovered },attrs:{\"for\":_vm.id,\"data-input-name\":_vm.Attrs.name,\"name\":_vm.Attrs.name,\"value\":_vm.Attrs.value === false ? 'false' : _vm.Attrs.value}},[_c('input',_vm._g(_vm._b({attrs:{\"id\":_vm.id,\"type\":\"checkbox\"},domProps:{\"checked\":_vm.IsChecked}},'input',_vm.Attrs,false),_vm.Listeners))])]),(_vm.$slots.default)?_c('label',{staticClass:\"label-value\",class:{ 'is-disabled': _vm.$attrs.disabled },attrs:{\"for\":_vm.id},on:{\"mouseenter\":function($event){return _vm.Highlight(true)},\"mouseout\":function($event){return _vm.Highlight(false)}}},[_vm._t(\"default\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormInputPicture.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormInputPicture.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormInputPicture.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormInputPicture.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./FormInputPicture.vue?vue&type=template&id=a6de4b78&scoped=true\"\nimport script from \"./FormInputPicture.ts?vue&type=script&lang=ts&external\"\nexport * from \"./FormInputPicture.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./FormInputPicture.vue?vue&type=style&index=0&id=a6de4b78&prod&lang=scss&scoped=true\"\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 \"a6de4b78\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./FormInputPicture.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{key:`input-file-${_vm.keyIndex}`,on:{\"click\":function($event){return _vm.OnClick()}}},[_c('div',{staticClass:\"pane field-pane upload-pane\"},[(_vm.hasPreview)?_c('header',{staticClass:\"field_value\"},[(_vm.fileList && _vm.thumb && _vm.previewMode === _vm.PreviewModes.Iframe)?_c('iframe',{attrs:{\"src\":_vm.thumb}}):(_vm.fileList && _vm.thumb && _vm.previewMode == _vm.PreviewModes.Image)?_c('img',{staticClass:\"field_picture\",attrs:{\"src\":_vm.thumb,\"alt\":_vm.$t('img_thumb.alt')}}):_c('Icon',{staticClass:\"fa-5x\",attrs:{\"icon\":\"image\"}})],1):_vm._e(),_c('section',{staticClass:\"field_input\"},[_c('input',{attrs:{\"id\":_vm.InputId,\"type\":\"file\",\"accept\":_vm.accept,\"name\":\"files\"},on:{\"change\":function($event){return _vm.OnUploadInput($event)}}}),_c('article',[_c('small',{staticClass:\"d-block p-2\"},[_vm._v(_vm._s(_vm.$t(\"browse_message\")))]),_c('label',{staticClass:\"text-normal btn btn-lg btn-primary btn-block fg-white\",attrs:{\"for\":_vm.InputId}},[_vm._v(_vm._s(_vm.$t(\"action.select_file\")))])])])]),_c('button',{staticClass:\"btn-aside btn btn-outline-close\",attrs:{\"type\":\"button\",\"title\":_vm.$t('remove.title')},on:{\"click\":function($event){return _vm.OnRemovePicture()}}},[_c('Icon',{attrs:{\"icon\":\"times\"}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { v4 as UUIDv4 } from \"uuid\";\r\nimport { Component, Emit, Model, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n inheritAttrs: false\r\n})\r\nexport default class FormInputRadio extends Vue {\r\n @Model(\"change\", { type: [String, Number, Boolean, Object, Array] })\r\n readonly model: any;\r\n @Prop({ type: [String, Number, Boolean, Object] })\r\n readonly value?: string | number | boolean | object;\r\n @Prop({ type: String, default: () => `check-${UUIDv4()}` })\r\n readonly id: string;\r\n\r\n hovered: boolean = false;\r\n\r\n get Attrs(): any {\r\n return { ...this.$attrs, value: this.value };\r\n }\r\n\r\n get Listeners() {\r\n return { ...this.$listeners, change: this.OnChange };\r\n }\r\n\r\n get IsChecked() {\r\n if (Array.isArray(this.model)) {\r\n return this.model.includes(this.value);\r\n } else {\r\n return this.model === this.value;\r\n }\r\n }\r\n\r\n public OnChange() {\r\n if (this.$attrs.disabled || this.$attrs.readonly) return;\r\n\r\n this.Check();\r\n }\r\n\r\n @Emit(\"change\")\r\n public Check() {\r\n return this.value;\r\n }\r\n\r\n public Highlight(state: boolean) {\r\n this.hovered = state;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormInputRadio.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormInputRadio.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./FormInputRadio.vue?vue&type=template&id=c9f213f6&scoped=true\"\nimport script from \"./FormInputRadio.ts?vue&type=script&lang=ts&external\"\nexport * from \"./FormInputRadio.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./FormInputRadio.vue?vue&type=style&index=0&id=c9f213f6&prod&lang=scss&scoped=true\"\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 \"c9f213f6\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-flex check-field\"},[_c('div',{staticClass:\"radio\"},[_c('label',{staticClass:\"input __radio_input\",class:{ 'is-checked': _vm.IsChecked, 'is-disabled': _vm.Attrs.disabled, 'is-hovered': _vm.hovered },attrs:{\"for\":_vm.id,\"name\":_vm.Attrs.name,\"value\":_vm.Attrs.value}},[_c('input',_vm._g(_vm._b({attrs:{\"id\":_vm.id,\"type\":\"radio\"},domProps:{\"checked\":_vm.IsChecked,\"value\":_vm.value}},'input',_vm.Attrs,false),_vm.Listeners))])]),(_vm.$slots.default)?_c('label',{staticClass:\"label\",class:{ 'is-disabled': _vm.Attrs.disabled },attrs:{\"for\":_vm.id},on:{\"mouseenter\":function($event){return _vm.Highlight(true)},\"mouseout\":function($event){return _vm.Highlight(false)}}},[_vm._t(\"default\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { IListOption } from \"@pigeon/models/IListOption\";\r\nimport { v4 as UUIDv4 } from \"uuid\";\r\nimport { Component, Emit, Model, Prop, Vue, Watch } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n inheritAttrs: false\r\n})\r\nexport default class FormInputSelect extends Vue {\r\n @Model(\"change\", { type: [String, Number, Object] })\r\n readonly model: string | number | object | null;\r\n\r\n @Prop()\r\n readonly label: string;\r\n @Prop({ default: true })\r\n readonly hasFloatingLabel: boolean;\r\n\r\n @Prop({ type: Array })\r\n readonly options?: IListOption[];\r\n @Prop()\r\n readonly optionsGroups?: { [key: string]: IListOption[] };\r\n @Prop({ type: String, default: () => `select-${UUIDv4()}` })\r\n readonly id: string;\r\n @Prop({ default: false })\r\n readonly isBoxed: boolean;\r\n @Prop()\r\n readonly validationRules?: string | Record;\r\n @Prop()\r\n readonly validationName?: string;\r\n @Prop({ default: () => `input_${UUIDv4().toString()}` })\r\n readonly validationId: string;\r\n @Prop()\r\n readonly hasError?: boolean;\r\n\r\n selectedValue: string | number | object | null = null;\r\n hovered: boolean = false;\r\n hasFocus: boolean = false;\r\n\r\n get HasAnOptionSelected(): boolean {\r\n if (!this.options) return false;\r\n\r\n let hasAnOptionSelected: boolean = false;\r\n\r\n for (const option of this.options) {\r\n if (option.value === this.selectedValue) {\r\n hasAnOptionSelected = true;\r\n }\r\n }\r\n\r\n return hasAnOptionSelected;\r\n }\r\n\r\n get Attrs(): any {\r\n return { ...this.$attrs };\r\n }\r\n\r\n get Listeners() {\r\n return { ...this.$listeners, change: this.Select };\r\n }\r\n\r\n get HasFocus(): boolean {\r\n return this.hasFocus;\r\n }\r\n\r\n set HasFocus(value: boolean) {\r\n this.hasFocus = value;\r\n }\r\n\r\n @Watch(nameof(\"model\"), { immediate: true })\r\n ObserveModelValue() {\r\n this.selectedValue = this.model;\r\n }\r\n\r\n @Emit(\"change\")\r\n public Select() {\r\n return this.selectedValue;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormInputSelect.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormInputSelect.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormInputSelect.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./FormInputSelect.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./FormInputSelect.vue?vue&type=template&id=32206260&scoped=true\"\nimport script from \"./FormInputSelect.ts?vue&type=script&lang=ts&external\"\nexport * from \"./FormInputSelect.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./FormInputSelect.vue?vue&type=style&index=0&id=32206260&prod&lang=scss&scoped=true\"\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 \"32206260\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./FormInputSelect.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ValidationProvider',{attrs:{\"vid\":_vm.validationId,\"rules\":_vm.validationRules,\"tag\":\"div\",\"name\":_vm.validationName || _vm.label || _vm.Attrs.name},scopedSlots:_vm._u([{key:\"default\",fn:function({ errors }){return [_c('div',{staticClass:\"field select-wrapper\",class:{\n 'is-invalid': _vm.hasError || (errors && errors.length > 0),\n 'floating-labels select-wrapper-labeled': _vm.label && _vm.label.length,\n 'select-wrapper': !_vm.label || !_vm.label.length,\n }},[_c('select',_vm._g(_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectedValue),expression:\"selectedValue\"}],staticClass:\"input select-input\",class:{ 'boxed-select-input': _vm.isBoxed },attrs:{\"data-selected\":_vm.HasAnOptionSelected,\"id\":_vm.id},on:{\"blur\":function($event){_vm.HasFocus = false},\"focus\":function($event){_vm.HasFocus = true},\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.selectedValue=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},'select',_vm.Attrs,false),_vm.Listeners),[(_vm.optionsGroups)?_vm._l((Object.keys(_vm.optionsGroups)),function(groupKey){return _c('optgroup',{key:groupKey,attrs:{\"label\":groupKey}},_vm._l((_vm.optionsGroups[groupKey]),function(option){return _c('option',{key:Array.isArray(option.value) ? option.value.join(';') : option.value,attrs:{\"disabled\":option.disabled},domProps:{\"value\":option.value}},[_vm._v(_vm._s(option.label))])}),0)}):(_vm.options)?_vm._l((_vm.options),function(option){return _c('option',{key:Array.isArray(option.value) ? option.value.join(';') : option.value,attrs:{\"disabled\":option.disabled},domProps:{\"value\":option.value}},[_vm._v(_vm._s(option.label))])}):_vm._e()],2),(_vm.label)?_c('label',{staticClass:\"label floating-label\",class:{\n 'is-floating': !_vm.hasFloatingLabel || (_vm.hasFloatingLabel && _vm.HasFocus)\n },attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.label))]):_vm._e(),_c('button',{staticClass:\"btn btn-select btn-link\",attrs:{\"type\":\"button\",\"aria-label\":_vm.$t('toggle')}},[_c('Icon',{staticClass:\"arrow-icon\",attrs:{\"icon\":\"angle-down\"}})],1)]),(errors && errors.length)?_c('AppError',[_vm._v(_vm._s(errors[0]))]):_vm._e()]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { v4 as UUIDv4 } from \"uuid\";\r\nimport { Component, Emit, Prop, Ref, Vue, Watch } from \"vue-property-decorator\";\r\n\r\nexport enum ValidationModes {\r\n Aggressive = \"aggressive\",\r\n Passive = \"passive\",\r\n Lazy = \"lazy\",\r\n Eager = \"eager\",\r\n Custom = \"custom\"\r\n}\r\n\r\n// See Validation: https://baianat.github.io/vee-validate/concepts/components.html#component-constructor-options\r\n@Component({\r\n inheritAttrs: false\r\n})\r\nexport default class FormInput extends Vue {\r\n @Prop({ default: () => `input-${UUIDv4()}` })\r\n readonly id: string;\r\n @Prop({ default: true })\r\n readonly hasFloatingLabel: boolean;\r\n @Prop({ default: false })\r\n readonly focused: boolean;\r\n @Prop()\r\n readonly label: string;\r\n @Prop()\r\n readonly value: string;\r\n @Prop()\r\n readonly tooltip?: string;\r\n @Prop()\r\n readonly validationRules?: string | Record;\r\n @Prop()\r\n readonly validationCustomMessages?: Record;\r\n @Prop({ validator: (value: ValidationModes) => Object.values(ValidationModes).includes(value) })\r\n readonly validationMode?: ValidationModes;\r\n @Prop()\r\n readonly validationName?: string;\r\n @Prop({ default: () => `input_${UUIDv4().toString()}` })\r\n readonly validationId: string;\r\n @Prop()\r\n readonly hasError?: boolean;\r\n\r\n @Ref()\r\n readonly refInput: HTMLInputElement;\r\n\r\n hasFocus: boolean = false;\r\n innerValue: any | null = null;\r\n\r\n get HasFocus(): boolean {\r\n return this.hasFocus;\r\n }\r\n\r\n set HasFocus(value: boolean) {\r\n this.hasFocus = value;\r\n }\r\n\r\n get Attrs(): Record {\r\n return { ...this.$attrs, value: this.value };\r\n }\r\n\r\n get Listeners(): Record {\r\n return { ...this.$listeners, input: this.OnInput };\r\n }\r\n\r\n @Watch(nameof(\"value\"), { immediate: true })\r\n ObserveValueModel() {\r\n this.innerValue = this.value;\r\n }\r\n\r\n @Emit(\"input\")\r\n public OnInput(event: Event) {\r\n return (event.target as HTMLInputElement).value;\r\n }\r\n\r\n public stepUp(): void {\r\n if (this.Attrs.type !== \"number\") return;\r\n this.refInput.stepUp();\r\n }\r\n\r\n public stepDown(): void {\r\n if (this.Attrs.type !== \"number\") return;\r\n this.refInput.stepDown();\r\n }\r\n}\r\n","import { ValidationModes } from \"@pigeon/components/formUI/FormInput\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { v4 as UUIDv4 } from \"uuid\";\r\nimport { Component, Emit, Prop, Vue, Watch } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n inheritAttrs: false\r\n})\r\nexport default class FormInputText extends Vue {\r\n @Prop({ default: () => `text-${UUIDv4()}` })\r\n readonly id: string;\r\n @Prop({ default: true })\r\n readonly hasFloatingLabel: boolean;\r\n @Prop({ default: false })\r\n readonly focused: boolean;\r\n @Prop()\r\n readonly label: string;\r\n @Prop()\r\n readonly value: string;\r\n @Prop()\r\n readonly validationRules?: string | Record;\r\n @Prop()\r\n readonly validationCustomMessages?: Record;\r\n @Prop({ validator: (value: ValidationModes) => Object.values(ValidationModes).includes(value) })\r\n readonly validationMode?: ValidationModes;\r\n @Prop()\r\n readonly validationName?: string;\r\n @Prop()\r\n readonly validationId?: string;\r\n @Prop()\r\n readonly hasError?: boolean;\r\n\r\n hasFocus: boolean = false;\r\n innerValue: any | null = null;\r\n\r\n @Watch(nameof(\"value\"), { immediate: true })\r\n ObserveValueModel() {\r\n this.innerValue = this.value;\r\n }\r\n\r\n @Emit(\"input\")\r\n public Input(event: Event) {\r\n return (event.target as HTMLInputElement).value;\r\n }\r\n\r\n get Attrs(): any {\r\n return { ...this.$attrs, value: this.value };\r\n }\r\n\r\n get Listeners(): any {\r\n return { ...this.$listeners, input: this.Input };\r\n }\r\n\r\n get HasFocus(): boolean {\r\n return this.hasFocus;\r\n }\r\n\r\n set HasFocus(value: boolean) {\r\n this.hasFocus = value;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormInputText.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormInputText.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./FormInputText.vue?vue&type=template&id=d9d6676c\"\nimport script from \"./FormInputText.ts?vue&type=script&lang=ts&external\"\nexport * from \"./FormInputText.ts?vue&type=script&lang=ts&external\"\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","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('ValidationProvider',{attrs:{\"rules\":_vm.validationRules,\"tag\":\"div\",\"name\":_vm.validationName || _vm.label || _vm.Attrs.name,\"vid\":_vm.validationId,\"mode\":_vm.validationMode,\"customMessages\":_vm.validationCustomMessages},scopedSlots:_vm._u([{key:\"default\",fn:function({ errors }){return [_c('div',{staticClass:\"field\",class:{\n 'floating-labels': _vm.hasFloatingLabel,\n 'flex-column-reverse': !_vm.hasFloatingLabel,\n 'is-invalid': _vm.hasError || (errors && errors.length > 0)\n }},[_c('textarea',_vm._g(_vm._b({directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.innerValue),expression:\"innerValue\"}],staticClass:\"input\",class:{ 'is-invalid': _vm.hasError || (errors && errors.length > 0) },attrs:{\"id\":_vm.id},domProps:{\"value\":(_vm.innerValue)},on:{\"input\":function($event){if($event.target.composing)return;_vm.innerValue=$event.target.value}}},'textarea',_vm.Attrs,false),_vm.Listeners)),_c('label',{staticClass:\"label\",class:{\n 'floating-label': _vm.hasFloatingLabel,\n 'is-floating':\n !_vm.hasFloatingLabel || (_vm.hasFloatingLabel && _vm.HasFocus) || (_vm.hasFloatingLabel && _vm.value && _vm.value.length)\n },attrs:{\"for\":_vm.id}},[_vm._v(_vm._s(_vm.label))])]),(errors && errors.length)?_c('AppError',[_vm._v(_vm._s(errors[0]))]):_vm._e()]}}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Emit, Model, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class FormPaneCheck extends Vue {\r\n @Model(\"change\", { type: [String, Number, Boolean, Object, Array] })\r\n readonly model: any;\r\n @Prop({ default: undefined, type: [String, Number, Boolean, Object] })\r\n readonly value?: string | number | boolean | object;\r\n @Prop({ type: [Boolean, String], default: true })\r\n readonly trueValue: boolean | string;\r\n @Prop({ type: [Boolean, String], default: false })\r\n readonly falseValue: boolean | string;\r\n @Prop()\r\n readonly validationRules?: string | Record;\r\n @Prop()\r\n readonly isInvalid: boolean;\r\n @Prop()\r\n readonly icon?: string | string[];\r\n\r\n get IsSelected(): boolean {\r\n return this.model === this.value || this.model === this.trueValue;\r\n }\r\n\r\n @Emit(\"select\")\r\n public OnClick(): string | number | boolean | object | undefined {\r\n return this.value;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormPaneCheck.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormPaneCheck.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./FormPaneCheck.vue?vue&type=template&id=182c40f4&scoped=true\"\nimport script from \"./FormPaneCheck.ts?vue&type=script&lang=ts&external\"\nexport * from \"./FormPaneCheck.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./FormPaneCheck.vue?vue&type=style&index=0&id=182c40f4&prod&lang=scss&scoped=true\"\nimport style1 from \"./FormPaneCheck.vue?vue&type=style&index=1&id=182c40f4&prod&lang=scss&scoped=true\"\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 \"182c40f4\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"pane toggle-pane filter\",class:{ 'is-selected': _vm.IsSelected, 'is-invalid': _vm.isInvalid },on:{\"click\":function($event){return _vm.OnClick()}}},[(_vm.$slots.caption)?_c('span',{staticClass:\"alert_caption alert-info position-absolute l-0 t-0 px-3 py-2\"},[_vm._t(\"caption\")],2):_vm._e(),_c('div',{staticClass:\"pane_floating-input\"},[_vm._t(\"default\",function(){return [_c('FormInputCheck',{attrs:{\"model\":_vm.model,\"value\":_vm.value,\"true-value\":_vm.trueValue,\"false-value\":_vm.falseValue},on:{\"click\":function($event){$event.stopPropagation();}}})]})],2),(_vm.icon || _vm.$slots.icon)?_c('div',{staticClass:\"pane_secondary-title\"},[_vm._t(\"icon\",function(){return [_c('Icon',{staticClass:\"fa-2x\",attrs:{\"icon\":_vm.icon}})]})],2):_vm._e(),(_vm.$slots.title)?_c('div',{staticClass:\"pane_title\"},[_vm._t(\"title\")],2):_vm._e(),(_vm.$slots.description)?_c('div',[_vm._t(\"description\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { BaseThemes } from \"@api/models/market/constants/BaseThemes\";\r\nimport { Component, Emit, Model, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class FormPaneRadio extends Vue {\r\n @Model(\"change\", { type: [String, Number, Boolean, Object, Array] })\r\n readonly model: any;\r\n @Prop({ type: [String, Number, Boolean, Object] })\r\n readonly value?: string | number | boolean | object;\r\n @Prop()\r\n readonly validationRules?: string | Record;\r\n @Prop()\r\n readonly isInvalid: boolean;\r\n @Prop()\r\n readonly icon?: string | string[];\r\n @Prop({ validator: (value: BaseThemes) => Object.values(BaseThemes).includes(value) })\r\n readonly theme?: BaseThemes;\r\n\r\n get IsSelected(): boolean {\r\n return this.model === this.value;\r\n }\r\n\r\n @Emit(\"select\")\r\n public OnClick(): string | number | boolean | object | undefined {\r\n return this.value;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormPaneRadio.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./FormPaneRadio.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./FormPaneRadio.vue?vue&type=template&id=6524bb31&scoped=true\"\nimport script from \"./FormPaneRadio.ts?vue&type=script&lang=ts&external\"\nexport * from \"./FormPaneRadio.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./FormPaneRadio.vue?vue&type=style&index=0&id=6524bb31&prod&lang=scss&scoped=true\"\nimport style1 from \"./FormPaneRadio.vue?vue&type=style&index=1&id=6524bb31&prod&lang=scss&scoped=true\"\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 \"6524bb31\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"pane toggle-pane filter\",class:{ 'is-selected': _vm.IsSelected, 'is-invalid': _vm.isInvalid, 't-black': _vm.theme === 'black', 't-dark': _vm.theme === 'dark' },on:{\"click\":function($event){return _vm.OnClick()}}},[_c('div',[(_vm.$slots.caption)?_c('span',{staticClass:\"alert_caption alert-info position-absolute l-0 t-0 px-3 py-2\"},[_vm._t(\"caption\")],2):_vm._e(),_c('div',{staticClass:\"pane_floating-input\"},[_vm._t(\"default\",function(){return [_c('FormInputRadio',{attrs:{\"value\":_vm.value,\"validation-rules\":_vm.validationRules},on:{\"click\":function($event){$event.stopPropagation();}},model:{value:(_vm.model),callback:function ($$v) {_vm.model=$$v},expression:\"model\"}})]})],2),(_vm.icon || _vm.$slots.icon)?_c('div',{staticClass:\"pane_secondary-title\"},[_vm._t(\"icon\",function(){return [_c('Icon',{staticClass:\"fa-2x\",attrs:{\"icon\":_vm.icon}})]})],2):_vm._e(),(_vm.$slots.title)?_c('div',{staticClass:\"pane_title\"},[_vm._t(\"title\")],2):_vm._e(),(_vm.$slots.description)?_c('div',[_vm._t(\"description\")],2):_vm._e()]),(_vm.$slots.footer)?_c('footer',[_vm._t(\"footer\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import FormAsync from \"@pigeon/components/formUI/FormAsync.vue\";\r\nimport FormFields from \"@pigeon/components/formUI/FormFields.vue\";\r\nimport FormInput from \"@pigeon/components/formUI/FormInput.vue\";\r\nimport FormInputCheck from \"@pigeon/components/formUI/FormInputCheck.vue\";\r\nimport FormInputPicture from \"@pigeon/components/formUI/FormInputPicture.vue\";\r\nimport FormInputRadio from \"@pigeon/components/formUI/FormInputRadio.vue\";\r\nimport FormInputSelect from \"@pigeon/components/formUI/FormInputSelect.vue\";\r\nimport FormInputText from \"@pigeon/components/formUI/FormInputText.vue\";\r\nimport FormPaneCheck from \"@pigeon/components/formUI/FormPaneCheck.vue\";\r\nimport FormPaneRadio from \"@pigeon/components/formUI/FormPaneRadio.vue\";\r\nimport Vue from \"vue\";\r\n\r\n// Form components\r\nVue.component(\"FormAsync\", FormAsync);\r\nVue.component(\"FormFields\", FormFields);\r\nVue.component(\"FormInput\", FormInput);\r\nVue.component(\"FormInputText\", FormInputText);\r\nVue.component(\"FormInputCheck\", FormInputCheck);\r\nVue.component(\"FormPaneCheck\", FormPaneCheck);\r\nVue.component(\"FormInputRadio\", FormInputRadio);\r\nVue.component(\"FormPaneRadio\", FormPaneRadio);\r\nVue.component(\"FormInputSelect\", FormInputSelect);\r\nVue.component(\"FormInputPicture\", FormInputPicture);\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('RouterLink',{attrs:{\"to\":_vm.LocalizeTo(),\"tag\":_vm.tag}},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { DEFAULT_LOCALE } from \"@pigeon/i18n/i18n.const\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\nimport { Location } from \"vue-router\";\r\n\r\n@Component\r\nexport default class I18nRouterLink extends Vue {\r\n @Prop()\r\n readonly to: Location | string;\r\n @Prop()\r\n readonly tag?: string;\r\n\r\n public LocalizeTo(): Location | string {\r\n if (!this.to) return \"\";\r\n\r\n const locale: string = this.$i18n.locale || DEFAULT_LOCALE;\r\n\r\n if (typeof this.to === \"string\" || this.to instanceof String) {\r\n // test if a remote url\r\n if (/(http(s?)):\\/\\//gi.test(this.to as string)) {\r\n return this.to;\r\n } else if (this.to === \"/\") {\r\n return `/${locale}`;\r\n }\r\n\r\n // we strip leading and trailing slashes and prefix\r\n // the current locale\r\n return `/${locale}/${this.to.replace(/^\\/|\\/$/g, \"\")}`;\r\n } else {\r\n if (this.to.params) this.to.params.locale = locale;\r\n else this.to.params = { locale: locale };\r\n }\r\n\r\n return this.to;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./I18nRouterLink.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./I18nRouterLink.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./I18nRouterLink.vue?vue&type=template&id=77b06fce\"\nimport script from \"./I18nRouterLink.ts?vue&type=script&lang=ts&external\"\nexport * from \"./I18nRouterLink.ts?vue&type=script&lang=ts&external\"\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 I18nRouterLink from \"@pigeon/components/i18n/I18nRouterLink.vue\";\r\nimport Vue from \"vue\";\r\n\r\n// I18n components\r\nVue.component(\"I18nRouterLink\", I18nRouterLink);\r\n","import { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class IconLaurelWreath extends Vue {}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./IconLaurelWreath.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./IconLaurelWreath.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./IconLaurelWreath.vue?vue&type=template&id=f862ceb4\"\nimport script from \"./IconLaurelWreath.ts?vue&type=script&lang=ts&external\"\nexport * from \"./IconLaurelWreath.ts?vue&type=script&lang=ts&external\"\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","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('svg',{attrs:{\"width\":\"54px\",\"height\":\"45px\",\"viewBox\":\"0 0 54 45\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\"}},[_c('g',{attrs:{\"transform\":\"translate(0.718510, 0.093600)\"}},[_c('g',{attrs:{\"transform\":\"translate(0.272340, 0.272340)\"}},[_c('path',{attrs:{\"d\":\"M32.867,42.851 C19.898,29.564 22.414,47.673 10.717,38.7901 C23.125,40.6882 19.6401,30.9291 33.679,41.8911 L32.86682,42.85095 L32.867,42.851 Z\"}}),_c('path',{attrs:{\"d\":\"M20.758,37.019 C14.5819,34.7033 18.9702,36.0126 11.8979,31.0384 C14.2024,34.5323 13.8497,36.1922 17.5093,37.019 C11.9436,35.7122 11.4674,38.02 6.3603,34.2871 C9.7835,37.6857 10.2916,40.2141 20.7583,37.019 L20.758,37.019 Z\"}}),_c('path',{attrs:{\"d\":\"M14.012,35.946 C9.8212,30.8525 12.8192,31.4486 8.3693,25.672 C9.7994,30.0716 8.44265,31.7757 11.1985,34.3216 C7.0318,30.4071 5.9824,33.0535 2.6876,27.7103 C3.9528,32.3652 3.35017,33.4798 14.0116,35.946 L14.012,35.946 Z\"}}),_c('path',{attrs:{\"d\":\"M8.947,31.834 C6.9784,26.878 8.16927,23.2081 6.6869,20.558 C5.7995,25.157 5.76593,26.619 6.73197,29.0942 C4.56397,24.5068 3.66087,27.0123 0.82117,21.1067 C0.62313,25.9921 3.30947,28.5019 8.94697,31.8337 L8.947,31.834 Z\"}}),_c('path',{attrs:{\"d\":\"M5.282,25.829 C4.66318,20.5323 6.468,21.8734 6.9033,14.426 C4.1175,19.0817 3.8543,20.2636 4.1468,22.9044 C3.23998,17.9122 2.4575,19.8033 1.243,13.3639 C-0.2127,18.0315 0.69878,21.1511 5.2819,25.8289 L5.282,25.829 Z\"}}),_c('path',{attrs:{\"d\":\"M3.6903,19.219 C4.68495,14.0165 7.8532,14.8192 8.3553,9.289 C6.6745,13.1388 4.5639,10.9637 3.7937,16.0268 C4.20986,10.97 2.6693,9.2716 4.04883,6.5028 C0.62243,9.9701 2.17213,12.7025 3.69031,19.2188 L3.6903,19.219 Z\"}}),_c('path',{attrs:{\"d\":\"M4.5025,12.943 C6.1617,8.1097 10.1421,10.2414 10.6442,4.7112 C8.9634,7.3058 7.4434,6.1644 5.2704,10.2676 C6.4249,7.1305 5.10584,6.9088 7.9621,3.0325 C4.3142,5.0231 4.0181,6.5742 4.5025,12.943 Z\"}}),_c('path',{attrs:{\"d\":\"M6.803,7.337 C11.1438,4.2193 9.081,4.5088 13.3004,0.3966 C6.9115,2.9752 8.4905,3.7456 6.803,7.337 Z\"}})]),_c('g',[_c('path',{attrs:{\"d\":\"M20.319,42.851 C33.288,29.564 30.772,47.673 42.469,38.7901 C30.061,40.6882 33.5459,30.9291 19.507,41.8911 L20.31918,42.85095 L20.319,42.851 Z\"}}),_c('path',{attrs:{\"d\":\"M32.428,37.019 C38.6041,34.7033 34.2158,36.0126 41.2881,31.0384 C38.9836,34.5323 39.3363,36.1922 35.6767,37.019 C41.2424,35.7122 41.7186,38.02 46.8257,34.2871 C43.4025,37.6857 42.8944,40.2141 32.4277,37.019 L32.428,37.019 Z\"}}),_c('path',{attrs:{\"d\":\"M39.173,35.946 C43.3638,30.8525 40.3658,31.4486 44.8157,25.672 C43.3856,30.0716 44.74235,31.7757 41.9865,34.3216 C46.1532,30.4071 47.2026,33.0535 50.4974,27.7103 C49.2322,32.3652 49.83483,33.4798 39.1734,35.946 L39.173,35.946 Z\"}}),_c('path',{attrs:{\"d\":\"M44.239,31.834 C46.2076,26.878 45.01673,23.2081 46.4991,20.558 C47.3865,25.157 47.42007,26.619 46.45403,29.0942 C48.62203,24.5068 49.52513,27.0123 52.36483,21.1067 C52.56287,25.9921 49.87653,28.5019 44.23903,31.8337 L44.239,31.834 Z\"}}),_c('path',{attrs:{\"d\":\"M47.904,25.829 C48.52282,20.5323 46.718,21.8734 46.2827,14.426 C49.0685,19.0817 49.3317,20.2636 49.0392,22.9044 C49.94602,17.9122 50.7285,19.8033 51.943,13.3639 C53.3987,18.0315 52.48722,21.1511 47.9041,25.8289 L47.904,25.829 Z\"}}),_c('path',{attrs:{\"d\":\"M49.495,19.219 C48.50035,14.0165 45.3321,14.8192 44.83,9.289 C46.5108,13.1388 48.6214,10.9637 49.3916,16.0268 C48.97544,10.97 50.516,9.2716 49.13647,6.5028 C52.56287,9.9701 51.01317,12.7025 49.49499,19.2188 L49.495,19.219 Z\"}}),_c('path',{attrs:{\"d\":\"M48.683,12.943 C47.0238,8.1097 43.0434,10.2414 42.5413,4.7112 C44.2221,7.3058 45.7421,6.1644 47.9151,10.2676 C46.7606,7.1305 48.07966,6.9088 45.2234,3.0325 C48.8713,5.0231 49.1674,6.5742 48.683,12.943 Z\"}}),_c('path',{attrs:{\"d\":\"M46.382,7.337 C42.0412,4.2193 44.104,4.5088 39.8846,0.3966 C46.2735,2.9752 44.6945,3.7456 46.382,7.337 Z\"}})])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import IconLaurelWreath from \"@pigeon/components/icons/IconLaurelWreath.vue\";\r\nimport Vue from \"vue\";\r\nimport IconLogo from \"./icons/IconLogo.vue\";\r\n\r\n// Icon components\r\nVue.component(\"SvgLogo\", IconLogo);\r\nVue.component(\"SvgLaurelWreath\", IconLaurelWreath);\r\n","// Library\r\nimport Vue from \"vue\";\r\nimport { ToggleButton } from \"vue-js-toggle-button\";\r\n\r\n// Librairy components\r\nVue.component(\"ToggleButton\", ToggleButton);\r\n","import NavAccordionItem from \"@pigeon/components/nav/NavAccordionItem\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class NavAccordion extends Vue {\r\n @Prop({ default: false })\r\n readonly hasAccordionBehavior: boolean;\r\n\r\n items: NavAccordionItem[] = [];\r\n\r\n mounted() {\r\n this.$on(\"expand\", (itemKey: string) => {\r\n this.OnItemExpand(itemKey);\r\n });\r\n\r\n if (this.hasAccordionBehavior) {\r\n this.EnsureOnlyOnePanelIsOpened();\r\n }\r\n }\r\n\r\n destroyed() {\r\n this.$off(\"expand\");\r\n }\r\n\r\n private EnsureOnlyOnePanelIsOpened(): void {\r\n let firstPanelExpandedKey: string = \"\";\r\n\r\n this.items.forEach((item) => {\r\n if (item.HasToggleTransitionEnded) {\r\n if (!firstPanelExpandedKey) firstPanelExpandedKey = item.itemKey;\r\n else item.Collapse();\r\n }\r\n });\r\n }\r\n\r\n public OnItemExpand(itemKey: string) {\r\n if (this.hasAccordionBehavior) {\r\n this.CloseOtherPanels(itemKey);\r\n }\r\n }\r\n\r\n private CloseOtherPanels(currentItemKey: string): void {\r\n if (!this.hasAccordionBehavior || !currentItemKey) return;\r\n\r\n this.items.forEach((item) => {\r\n if (item.itemKey !== currentItemKey && item.HasToggleTransitionEnded) {\r\n item.Collapse();\r\n }\r\n });\r\n }\r\n\r\n public CollapseItems(): void {\r\n this.items.forEach((item) => {\r\n item.Collapse();\r\n });\r\n }\r\n\r\n public ExpandItem(index: number): void {\r\n this.items[index].Expand();\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavAccordion.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavAccordion.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./NavAccordion.vue?vue&type=template&id=3b3da243&scoped=true\"\nimport script from \"./NavAccordion.ts?vue&type=script&lang=ts&external\"\nexport * from \"./NavAccordion.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./NavAccordion.vue?vue&type=style&index=0&id=3b3da243&prod&lang=scss&scoped=true\"\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 \"3b3da243\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"accordion\",attrs:{\"role\":\"tablist\"}},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { default as BaseAccordion } from \"@pigeon/components/nav/NavAccordion\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { Component, Emit, Prop, Vue, Watch } from \"vue-property-decorator\";\r\nimport smoothReflow from \"vue-smooth-reflow\";\r\n\r\nconst parentAccordionComponentName = \"NavAccordion\"; // Warning: must match with accordion registered name\r\n@Component({\r\n mixins: [smoothReflow]\r\n})\r\nexport default class NavAccordionItem extends Vue {\r\n @Prop()\r\n readonly itemKey: string;\r\n @Prop({ default: false })\r\n readonly opened: boolean;\r\n @Prop({ default: true })\r\n readonly canExpand: boolean;\r\n @Prop({ default: false })\r\n readonly isBordered: boolean;\r\n @Prop({ default: false })\r\n readonly isSeparated: boolean;\r\n\r\n isOpened: boolean = false;\r\n HasToggleTransitionEnded: boolean = false; // used only for the transition css class\r\n\r\n get BaseAccordion(): BaseAccordion {\r\n let name: string = \"\";\r\n let parent: any = null;\r\n // eslint-disable-next-line @typescript-eslint/no-this-alias\r\n let instance: any = this;\r\n\r\n do {\r\n parent = instance.$parent;\r\n if (!parent) console.warn(\"Operation exception: base accordion not found\");\r\n\r\n name = (parent as any).$options._componentTag;\r\n instance = parent;\r\n } while (name.toUpperCase() !== parentAccordionComponentName.toUpperCase());\r\n\r\n return parent as BaseAccordion;\r\n }\r\n\r\n beforeMount() {\r\n this.BaseAccordion.items.push(this);\r\n }\r\n\r\n beforeDestroy() {\r\n const items = this.BaseAccordion.items;\r\n const index = items.findIndex((item) => item.itemKey === this.itemKey);\r\n\r\n if (index > -1) {\r\n items.splice(index, 1);\r\n }\r\n }\r\n\r\n mounted() {\r\n (this as any).$smoothReflow({\r\n el: \".accordion_item-content\",\r\n property: [\"height\"],\r\n transition: \"height .25s ease-in-out\"\r\n });\r\n }\r\n\r\n @Watch(nameof(\"opened\"), { immediate: true })\r\n ObserveCollapse(): void {\r\n this.isOpened = this.opened;\r\n }\r\n\r\n // used only for the transition css class\r\n @Watch(nameof(\"isOpened\"), { immediate: true })\r\n ObserveTransition() {\r\n this.HasToggleTransitionEnded = false;\r\n setTimeout(() => {\r\n this.HasToggleTransitionEnded = true;\r\n }, 0); // used for css transition\r\n }\r\n\r\n get HasAccordionBehavior() {\r\n return this.BaseAccordion.hasAccordionBehavior;\r\n }\r\n\r\n public EmitExpandOnParentAccordion() {\r\n if (!this.isOpened) return;\r\n\r\n const itemIndex = this.BaseAccordion.items.findIndex((i) => i.itemKey === this.itemKey);\r\n this.BaseAccordion.$emit(\"expand\", this.itemKey);\r\n this.BaseAccordion.$emit(\"expand-index\", itemIndex);\r\n }\r\n\r\n @Emit(\"click\")\r\n public OnClick(): void {}\r\n\r\n public Toggle(): void {\r\n if (!this.canExpand) return;\r\n\r\n this.isOpened = !this.isOpened;\r\n if(this.isOpened) this.EmitExpandOnParentAccordion();\r\n }\r\n\r\n public Collapse(): void {\r\n if (!this.canExpand) return;\r\n\r\n this.isOpened = false;\r\n }\r\n\r\n public Expand(): void {\r\n if (!this.canExpand) return;\r\n\r\n this.isOpened = true;\r\n this.EmitExpandOnParentAccordion();\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavAccordionItem.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavAccordionItem.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./NavAccordionItem.vue?vue&type=template&id=2bc19cfe&scoped=true\"\nimport script from \"./NavAccordionItem.ts?vue&type=script&lang=ts&external\"\nexport * from \"./NavAccordionItem.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./NavAccordionItem.vue?vue&type=style&index=0&id=2bc19cfe&prod&lang=scss&scoped=true\"\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 \"2bc19cfe\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"accordion_item\",class:{\n 'is-active': _vm.isOpened,\n 'open-transition-end': _vm.HasToggleTransitionEnded, \n 'accordion_item-bordered': _vm.isBordered, \n 'accordion-item-separated': _vm.isSeparated\n },attrs:{\"role\":\"tabpanel\",\"disabled\":!_vm.canExpand},on:{\"click\":function($event){$event.stopPropagation();return _vm.OnClick()}}},[_c('div',{staticClass:\"accordion_item-header\",attrs:{\"role\":\"tab\",\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.Toggle()}}},[_c('Icon',{staticClass:\"accordion_item-icon\",attrs:{\"icon\":_vm.isOpened ? 'angle-right' : 'angle-down'}}),_vm._t(\"title\")],2),(_vm.isOpened)?_c('div',{staticClass:\"accordion_item-content\",attrs:{\"role\":\"tabpanel\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.HasToggleTransitionEnded),expression:\"HasToggleTransitionEnded\"}],staticClass:\"accordion_item-content-box\"},[_vm._t(\"default\")],2)]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IBreadcrumbItem } from \"@pigeon/models/IBreadcrumbItem\";\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class NavBreadcrumb extends Vue {\r\n items: IBreadcrumbItem[] = [];\r\n\r\n created() {\r\n if (this.$route?.meta?.breadcrumb) this.items = this.$route.meta.breadcrumb as IBreadcrumbItem[];\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavBreadcrumb.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavBreadcrumb.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavBreadcrumb.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./NavBreadcrumb.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./NavBreadcrumb.vue?vue&type=template&id=7ec5a78e&scoped=true\"\nimport script from \"./NavBreadcrumb.ts?vue&type=script&lang=ts&external\"\nexport * from \"./NavBreadcrumb.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./NavBreadcrumb.vue?vue&type=style&index=0&id=7ec5a78e&prod&lang=scss&scoped=true\"\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 \"7ec5a78e\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./NavBreadcrumb.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('nav',{staticClass:\"breadcrumb\"},[_c('ul',{staticClass:\"breadcrumb_list list-unstyled list-inline\"},_vm._l((_vm.items),function(item,index){return _c('li',{key:index,staticClass:\"list-inline-item breadcrumb_segment\"},[(index < _vm.items.length && item.to)?_c('I18nRouterLink',{staticClass:\"breadcrumb_link\",class:{ 'is-active': index === _vm.items.length - 1 },attrs:{\"to\":item.to}},[_vm._v(_vm._s(_vm.$t(item.text) || item.text))]):_c('span',[_vm._v(_vm._s(_vm.$t(item.text) || item.text))]),_c('span',{staticClass:\"breadcrumb_separator\"},[_c('Icon',{attrs:{\"icon\":\"angle-right\"}})],1)],1)}),0)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AppThemes } from \"@api/models/market/constants/AppThemes\";\r\nimport { default as NavDropdownListItem } from \"@pigeon/components/nav/NavDropdownListItem\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum DropdownTypes {\r\n Info = \"info\",\r\n Warning = \"warning\",\r\n Danger = \"danger\",\r\n Success = \"success\",\r\n Primary = \"primary\",\r\n Secondary = \"secondary\"\r\n}\r\n\r\n@Component\r\nexport default class NavDropdownList extends Vue {\r\n @Prop({ default: AppThemes.Light, validator: (value: AppThemes) => Object.values(AppThemes).includes(value) })\r\n readonly theme: AppThemes;\r\n @Prop({\r\n default: DropdownTypes.Info,\r\n validator: (value: DropdownTypes) => Object.values(DropdownTypes).includes(value)\r\n })\r\n readonly type: DropdownTypes;\r\n @Prop({ default: true })\r\n readonly hasButton: boolean;\r\n @Prop({ default: true })\r\n readonly autoClose: boolean;\r\n\r\n items: NavDropdownListItem[] = [];\r\n isOpen: boolean = false;\r\n\r\n public Toggle(): void {\r\n this.isOpen = !this.isOpen;\r\n }\r\n\r\n public Close(): void {\r\n this.isOpen = false;\r\n }\r\n\r\n public Open(): void {\r\n this.isOpen = true;\r\n }\r\n\r\n public OnClickItem(): void {\r\n if (!this.autoClose) return;\r\n\r\n this.Close();\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavDropdownList.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavDropdownList.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./NavDropdownList.vue?vue&type=template&id=35ad2a7e&scoped=true\"\nimport script from \"./NavDropdownList.ts?vue&type=script&lang=ts&external\"\nexport * from \"./NavDropdownList.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./NavDropdownList.vue?vue&type=style&index=0&id=35ad2a7e&prod&lang=scss&scoped=true\"\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 \"35ad2a7e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"btn-group\"},[(_vm.hasButton)?_c('button',{staticClass:\"btn selected-slot\",class:`btn-outline-${_vm.type}`,attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.Toggle()}}},[_vm._t(\"selected-content\")],2):_c('div',{staticClass:\"alert bg-white selected-slot m-0\",class:`alert-${_vm.type}`,on:{\"click\":function($event){return _vm.Toggle()}}},[_vm._t(\"selected-content\")],2),_c('button',{staticClass:\"btn dropdown-toggle-split\",class:`btn-${_vm.type}`,attrs:{\"type\":\"button\",\"data-toggle\":\"dropdown\",\"aria-expanded\":\"false\"},on:{\"click\":function($event){return _vm.Toggle()}}},[_c('Icon',{attrs:{\"icon\":\"angle-down\"}}),_c('span',{staticClass:\"sr-only\"},[_vm._v(\"Toggle Dropdown\")])],1),_c('div',{staticClass:\"dropdown-menu pb-0\",class:{ 'show': _vm.isOpen },on:{\"click\":function($event){return _vm.OnClickItem()}}},[_vm._t(\"default\")],2),(_vm.isOpen)?_c('div',{staticClass:\"trigger-overlay\",on:{\"click\":function($event){return _vm.Close()}}}):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class NavDropdownListItem extends Vue {\r\n @Prop()\r\n readonly to?: Location | string;\r\n @Prop()\r\n readonly href?: string;\r\n\r\n get Attrs(): Record {\r\n return { ...this.$attrs };\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavDropdownListItem.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavDropdownListItem.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./NavDropdownListItem.vue?vue&type=template&id=3c0412dc&scoped=true\"\nimport script from \"./NavDropdownListItem.ts?vue&type=script&lang=ts&external\"\nexport * from \"./NavDropdownListItem.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./NavDropdownListItem.vue?vue&type=style&index=0&id=3c0412dc&prod&lang=scss&scoped=true\"\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 \"3c0412dc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.to)?_c('I18nRouterLink',_vm._b({attrs:{\"to\":_vm.to}},'I18nRouterLink',_vm.Attrs,false),[_vm._t(\"default\")],2):(_vm.href)?_c('a',_vm._b({attrs:{\"href\":_vm.href}},'a',_vm.Attrs,false),[_vm._t(\"default\")],2):_c('div',_vm._b({},'div',_vm.Attrs,false),[_vm._t(\"default\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { Component, Emit, Prop, Vue, Watch } from \"vue-property-decorator\";\r\nimport smoothReflow from \"vue-smooth-reflow\";\r\n\r\n@Component({\r\n mixins: [smoothReflow]\r\n})\r\nexport default class NavPanel extends Vue {\r\n @Prop()\r\n readonly itemKey: string;\r\n @Prop({ default: true })\r\n readonly opened: boolean;\r\n @Prop({ default: true })\r\n readonly canExpand: boolean;\r\n @Prop({ default: true })\r\n readonly isBordered: boolean;\r\n \r\n isOpened: boolean = true;\r\n HasToggleTransitionEnded: boolean = false; // used only for the transition css class\r\n\r\n mounted() {\r\n (this as any).$smoothReflow({\r\n el: \".panel_item-content\",\r\n property: [\"height\"],\r\n transition: \"height .25s ease-in-out\"\r\n });\r\n }\r\n\r\n @Watch(nameof(\"opened\"), { immediate: true })\r\n ObserveCollapse(): void {\r\n this.isOpened = this.opened;\r\n }\r\n\r\n // used only for the transition css class\r\n @Watch(nameof(\"isOpened\"), { immediate: true })\r\n ObserveTransition() {\r\n this.HasToggleTransitionEnded = false;\r\n setTimeout(() => {\r\n this.HasToggleTransitionEnded = true;\r\n }, 0); // used for css transition\r\n }\r\n\r\n @Emit(\"click\")\r\n public OnClick(): void {}\r\n\r\n public Toggle(): void {\r\n if (!this.canExpand) return;\r\n\r\n this.isOpened = !this.isOpened;\r\n }\r\n\r\n public Collapse(): void {\r\n if (!this.canExpand) return;\r\n\r\n this.isOpened = false;\r\n }\r\n\r\n public Expand(): void {\r\n if (!this.canExpand) return;\r\n\r\n this.isOpened = true;\r\n }\r\n}\r\n","import NavStepperStepInstance from \"@pigeon/components/nav/NavStepperStep\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\r\nimport { Location } from \"vue-router\";\r\n\r\nexport enum StepperBehaviorModes {\r\n RouteName = \"routeName\",\r\n RouteMeta = \"routeMeta\",\r\n Parent = \"parent\"\r\n}\r\n\r\n@Component\r\nexport default class NavStepper extends Vue {\r\n steps: string[] = [];\r\n\r\n @Prop()\r\n readonly step?: string;\r\n @Prop({\r\n default: StepperBehaviorModes.RouteName,\r\n validator: (value: StepperBehaviorModes) => Object.values(StepperBehaviorModes).includes(value)\r\n })\r\n readonly behaviorMode: StepperBehaviorModes;\r\n\r\n currentStepId: string | null = null;\r\n\r\n get Steps(): string[] {\r\n return this.steps;\r\n }\r\n\r\n get HasPreviousSteps() {\r\n if (!this.currentStepId) return false;\r\n\r\n const stepIndex = this.steps.indexOf(this.currentStepId);\r\n return stepIndex > 0 && this.steps.length > 1;\r\n }\r\n\r\n get HasNextSteps() {\r\n if (!this.currentStepId) return false;\r\n\r\n const stepIndex = this.steps.indexOf(this.currentStepId);\r\n return stepIndex >= 0 && this.steps.length > 1 && stepIndex < this.steps.length - 1;\r\n }\r\n\r\n mounted() {\r\n this.ObserveCurrentStepId();\r\n }\r\n\r\n @Watch(nameof(\"$route\"), { immediate: true })\r\n @Watch(nameof(\"step\"), { immediate: true })\r\n ObserveCurrentStepId() {\r\n this.currentStepId = this.CurrentStepId();\r\n }\r\n\r\n public CurrentStepId(): string | null {\r\n if (!this.steps || !this.steps.length) return null;\r\n\r\n if (this.behaviorMode === StepperBehaviorModes.RouteName) {\r\n return this.$route?.name ?? null;\r\n } else if (this.behaviorMode === StepperBehaviorModes.RouteMeta) {\r\n return this.$route?.meta?.step;\r\n } else if (this.behaviorMode === StepperBehaviorModes.Parent) {\r\n return this.step ?? null;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n Register(stepId: string) {\r\n if (!this.steps.includes(stepId)) {\r\n this.steps.push(stepId);\r\n }\r\n }\r\n\r\n Unregister(stepId: string) {\r\n const index = this.steps.indexOf(stepId);\r\n\r\n if (index >= 0) {\r\n this.steps.splice(index, 1);\r\n }\r\n }\r\n\r\n private GetChildStep(childStepId: string): NavStepperStepInstance | null {\r\n if (!childStepId) return null;\r\n\r\n let childStep = null;\r\n\r\n for (let index: number = 0; index < this.$children.length; index++) {\r\n const element: NavStepperStepInstance = this.$children[index] as NavStepperStepInstance;\r\n\r\n if (element.stepId && element.stepId === childStepId) {\r\n childStep = element;\r\n break;\r\n }\r\n }\r\n\r\n return childStep;\r\n }\r\n\r\n private GetPreviousStep(): NavStepperStepInstance | null {\r\n if (!this.steps || !this.steps.length || !this.currentStepId) return null;\r\n\r\n const currentStepIndex = this.steps.indexOf(this.currentStepId);\r\n const previousStepIndex = currentStepIndex > 1 ? currentStepIndex - 1 : 0;\r\n const previousStepId = this.steps[previousStepIndex];\r\n return this.GetChildStep(previousStepId);\r\n }\r\n\r\n private GetNextStep(): NavStepperStepInstance | null {\r\n if (!this.steps || !this.steps.length || !this.currentStepId) return null;\r\n\r\n const currentStepIndex = this.steps.indexOf(this.currentStepId);\r\n const nextStepIndex = currentStepIndex < this.steps.length - 1 ? currentStepIndex + 1 : this.steps.length;\r\n const nextStepId = this.steps[nextStepIndex];\r\n return this.GetChildStep(nextStepId);\r\n }\r\n\r\n public GetPreviousStepLocation(): Location | undefined {\r\n if (this.behaviorMode !== StepperBehaviorModes.RouteMeta) return undefined;\r\n\r\n const previousStep: NavStepperStepInstance | null = this.GetPreviousStep();\r\n return previousStep ? previousStep.to : undefined;\r\n }\r\n\r\n public GetNextStepLocation(): Location | undefined {\r\n if (this.behaviorMode !== StepperBehaviorModes.RouteMeta) return undefined;\r\n\r\n const nextStep: NavStepperStepInstance | null = this.GetNextStep();\r\n return nextStep ? nextStep.to : undefined;\r\n }\r\n\r\n public GoToPreviousStep(): void {\r\n if (this.behaviorMode !== StepperBehaviorModes.Parent) return;\r\n\r\n const previousStep: NavStepperStepInstance | null = this.GetPreviousStep();\r\n if (previousStep && previousStep.stepId) {\r\n this.currentStepId = previousStep.stepId;\r\n }\r\n }\r\n\r\n public GoToNextStep(): void {\r\n if (this.behaviorMode !== StepperBehaviorModes.Parent) return;\r\n\r\n const nextStep: NavStepperStepInstance | null = this.GetNextStep();\r\n if (nextStep && nextStep.stepId) {\r\n this.currentStepId = nextStep.stepId;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavPanel.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavPanel.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./NavPanel.vue?vue&type=template&id=d534eef0&scoped=true\"\nimport script from \"./NavPanel.ts?vue&type=script&lang=ts&external\"\nexport * from \"./NavPanel.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./NavPanel.vue?vue&type=style&index=0&id=d534eef0&prod&lang=scss&scoped=true\"\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 \"d534eef0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"panel\",class:{\n 'is-active': _vm.isOpened,\n 'open-transition-end': _vm.HasToggleTransitionEnded, \n 'panel-bordered': _vm.isBordered\n },attrs:{\"role\":\"tabpanel\",\"disabled\":!_vm.canExpand},on:{\"click\":function($event){$event.stopPropagation();return _vm.OnClick()}}},[_c('div',{staticClass:\"panel-header\",attrs:{\"role\":\"tab\",\"tabindex\":\"0\"},on:{\"click\":function($event){return _vm.Toggle()}}},[_c('Icon',{staticClass:\"panel-icon\",attrs:{\"icon\":_vm.isOpened ? 'angle-right' : 'angle-down'}}),_vm._t(\"title\")],2),(_vm.isOpened)?_c('div',{staticClass:\"panel-content\",attrs:{\"role\":\"tabpanel\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.HasToggleTransitionEnded),expression:\"HasToggleTransitionEnded\"}],staticClass:\"panel-content-box\"},[_vm._t(\"default\")],2)]):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavStepper.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavStepper.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./NavStepper.vue?vue&type=template&id=1711dccc&scoped=true\"\nimport script from \"./NavStepper.ts?vue&type=script&lang=ts&external\"\nexport * from \"./NavStepper.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./NavStepper.vue?vue&type=style&index=0&id=1711dccc&prod&lang=scss&scoped=true\"\nimport style1 from \"./NavStepper.vue?vue&type=style&index=1&id=1711dccc&prod&lang=scss&scoped=true\"\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 \"1711dccc\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('nav',{staticClass:\"bar stepper-bar\"},[_c('ul',{staticClass:\"stepper\",class:{ 'has-previous-step': _vm.HasPreviousSteps, 'has-next-step': _vm.HasNextSteps }},[(_vm.HasPreviousSteps && !_vm.$breakpoint.lgAndUp)?_c('NavStepperStep',{staticClass:\"d-flex d-lg-none flex-grow-0\",staticStyle:{\"flex-basis\":\"20%\"},attrs:{\"to\":_vm.GetPreviousStepLocation()},on:{\"click\":function($event){$event.preventDefault();return _vm.GoToPreviousStep()}}},[_vm._v(\" ... \")]):_vm._e(),_vm._t(\"default\"),(_vm.HasNextSteps && !_vm.$breakpoint.lgAndUp)?_c('NavStepperStep',{staticClass:\"d-flex d-lg-none flex-grow-0\",staticStyle:{\"flex-basis\":\"20%\"}},[_vm._v(\" ... \")]):_vm._e()],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import NavStepper, { StepperBehaviorModes } from \"@pigeon/components/nav/NavStepper\";\r\nimport { Component, Emit, Prop, Vue } from \"vue-property-decorator\";\r\nimport { Location } from \"vue-router\";\r\n\r\n@Component\r\nexport default class NavStepperStep extends Vue {\r\n @Prop()\r\n readonly to?: Location;\r\n @Prop()\r\n readonly stepId?: string;\r\n @Prop()\r\n readonly isActive?: boolean;\r\n @Prop()\r\n readonly isCompleted?: boolean;\r\n\r\n StepperBehaviorModes = StepperBehaviorModes;\r\n\r\n get Stepper(): NavStepper {\r\n return this.$parent as NavStepper;\r\n }\r\n\r\n get IsStepActive() {\r\n if (typeof this.isActive != \"undefined\") return this.isActive;\r\n if (typeof this.isCompleted != \"undefined\") return false;\r\n if (!this.stepId) return false;\r\n\r\n if (this.Stepper.behaviorMode === StepperBehaviorModes.RouteName) {\r\n return this.IsStepActiveFrom(this.$route?.name);\r\n } else if (this.Stepper.behaviorMode === StepperBehaviorModes.RouteMeta) {\r\n return this.IsStepActiveFrom(this.$route?.meta?.step);\r\n } else if (this.Stepper.behaviorMode === StepperBehaviorModes.Parent) {\r\n return this.IsStepActiveFrom(this.Stepper.step);\r\n }\r\n }\r\n\r\n get IsStepCompleted() {\r\n if (typeof this.isCompleted != \"undefined\") return this.isCompleted;\r\n if (!this.stepId) return false;\r\n\r\n if (this.Stepper.behaviorMode === StepperBehaviorModes.RouteName) {\r\n return this.IsStepCompletedFrom(this.$route?.name);\r\n } else if (this.Stepper.behaviorMode === StepperBehaviorModes.RouteMeta) {\r\n return this.IsStepCompletedFrom(this.$route?.meta?.step);\r\n } else if (this.Stepper.behaviorMode === StepperBehaviorModes.Parent) {\r\n return this.IsStepCompletedFrom(this.Stepper.step);\r\n }\r\n }\r\n\r\n created() {\r\n if (this.stepId) this.Stepper.Register(this.stepId);\r\n }\r\n\r\n beforeDestroy() {\r\n if (this.stepId) this.Stepper.Unregister(this.stepId);\r\n }\r\n\r\n private IsStepActiveFrom(currentStepId?: string | null): boolean {\r\n if (!currentStepId || !this.stepId) return false;\r\n\r\n if (this.stepId === currentStepId) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private IsStepCompletedFrom(currentStepId?: string | null): boolean {\r\n if (!currentStepId || !this.stepId) return false;\r\n\r\n const stepper = this.$parent as NavStepper;\r\n const stepIndex = stepper.Steps.indexOf(this.stepId);\r\n const currentStepIndex = stepper.Steps.indexOf(currentStepId);\r\n\r\n if (currentStepIndex > stepIndex) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n @Emit(\"click\")\r\n public OnClick(): void {}\r\n}\r\n","import { default as Step } from \"@pigeon/components/nav/NavStepperVerticalStep\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { Component, Emit, Prop, Vue, Watch } from \"vue-property-decorator\";\r\n\r\nexport enum StepperDirections {\r\n Vertical = \"vertical\"\r\n}\r\n\r\n@Component\r\nexport default class NavStepperVertical extends Vue {\r\n @Prop({ default: 0 })\r\n readonly activeStep: number;\r\n @Prop({\r\n default: StepperDirections.Vertical,\r\n validator: (value: StepperDirections) => Object.values(StepperDirections).includes(value)\r\n })\r\n readonly direction: StepperDirections | string;\r\n\r\n steps: Step[] = [];\r\n\r\n @Watch(nameof(\"steps\"), { immediate: true })\r\n ObserveIndexStep() {\r\n this.steps.forEach((child, index) => {\r\n child.index = index;\r\n });\r\n }\r\n\r\n @Emit(\"change\")\r\n SetActiveStep(stepIndex: number) {\r\n return stepIndex;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavStepperStep.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavStepperStep.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./NavStepperStep.vue?vue&type=template&id=75eacdb7&scoped=true\"\nimport script from \"./NavStepperStep.ts?vue&type=script&lang=ts&external\"\nexport * from \"./NavStepperStep.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./NavStepperStep.vue?vue&type=style&index=0&id=75eacdb7&prod&lang=scss&scoped=true\"\nimport style1 from \"./NavStepperStep.vue?vue&type=style&index=1&id=75eacdb7&prod&lang=scss&scoped=true\"\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 \"75eacdb7\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('li',{staticClass:\"step\",class:{ 'is-active': _vm.IsStepActive, 'is-completed': _vm.IsStepCompleted },attrs:{\"data-step-id\":_vm.stepId}},[((_vm.Stepper.behaviorMode === _vm.StepperBehaviorModes.RouteName || _vm.Stepper.behaviorMode === _vm.StepperBehaviorModes.RouteMeta) && _vm.to)?_c('I18nRouterLink',{staticClass:\"step_inner mx-auto\",attrs:{\"to\":_vm.to}},[_c('div',{staticClass:\"step_content\"},[_vm._t(\"default\"),(_vm.IsStepCompleted)?_c('span',{staticClass:\"step_status\"},[_c('Icon',{attrs:{\"icon\":['fas', 'check-circle']}})],1):_vm._e(),(_vm.IsStepActive)?_c('span',{staticClass:\"step_status\"},[_c('Icon',{attrs:{\"icon\":['far', 'check-circle']}})],1):_vm._e()],2)]):_c('a',{staticClass:\"step_inner mx-auto\",on:{\"click\":function($event){return _vm.OnClick()}}},[_vm._t(\"default\")],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavStepperVertical.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavStepperVertical.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./NavStepperVertical.vue?vue&type=template&id=fc96f9c0&scoped=true\"\nimport script from \"./NavStepperVertical.ts?vue&type=script&lang=ts&external\"\nexport * from \"./NavStepperVertical.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./NavStepperVertical.vue?vue&type=style&index=0&id=fc96f9c0&prod&lang=scss&scoped=true\"\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 \"fc96f9c0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"stepper\",class:`${_vm.direction}-stepper`},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { default as Stepper } from \"@pigeon/components/nav/NavStepperVertical\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class NavStepperVerticalStep extends Vue {\r\n @Prop()\r\n readonly title: string;\r\n @Prop()\r\n readonly icon: string;\r\n @Prop()\r\n readonly description: string;\r\n @Prop()\r\n readonly status: string;\r\n\r\n index = -1;\r\n internalStatus: string = \"\";\r\n stepper: Stepper;\r\n\r\n get IsStepActive() {\r\n return this.stepper.activeStep === this.index;\r\n }\r\n\r\n get CurrentStatus() {\r\n return this.status || this.internalStatus;\r\n }\r\n\r\n get IsLast() {\r\n return this.stepper.steps[this.stepper.steps.length - 1] === this;\r\n }\r\n\r\n get PrevStatus() {\r\n const prevStep = this.stepper.steps[this.index - 1];\r\n return prevStep ? prevStep.CurrentStatus : \"wait\";\r\n }\r\n\r\n get StepsCount() {\r\n return this.stepper.steps.length;\r\n }\r\n\r\n beforeCreate() {\r\n this.stepper = this.$parent as Stepper;\r\n this.stepper.steps.push(this);\r\n }\r\n\r\n beforeDestroy() {\r\n const steps = this.stepper.steps;\r\n const index = steps.indexOf(this);\r\n\r\n if (index >= 0) {\r\n steps.splice(index, 1);\r\n }\r\n }\r\n\r\n mounted() {\r\n const unwatch = this.$watch(\"index\", (val) => {\r\n this.$watch(\"$parent.activeStep\", this.UpdateStatus, { immediate: true });\r\n unwatch();\r\n });\r\n }\r\n\r\n UpdateStatus() {\r\n const activeIndex: number = this.stepper.activeStep;\r\n\r\n if (activeIndex > this.index) {\r\n this.internalStatus = \"success\";\r\n } else if (activeIndex === this.index && this.PrevStatus !== \"error\") {\r\n this.internalStatus = \"process\";\r\n } else {\r\n this.internalStatus = \"wait\";\r\n }\r\n }\r\n\r\n BackTo(): void {\r\n const activeIndex: number = this.stepper.activeStep;\r\n\r\n if (activeIndex > this.index) {\r\n if (!this.$parent) return;\r\n\r\n this.$parent.$emit(\"back-to-step\", this.index);\r\n }\r\n }\r\n}\r\n","import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum NavThemes {\r\n Light = \"light\",\r\n Black = \"black\",\r\n Dark = \"dark\",\r\n Primary = \"primary\",\r\n Info = \"info\",\r\n Success = \"success\",\r\n Warning = \"warning\",\r\n Danger = \"danger\"\r\n}\r\n@Component\r\nexport default class NavTab extends Vue {\r\n @Prop({ default: false })\r\n readonly isActive: boolean;\r\n @Prop({ default: NavThemes.Light, validator: (value: NavThemes) => Object.values(NavThemes).includes(value) })\r\n readonly theme: NavThemes;\r\n\r\n NavThemes = NavThemes;\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavStepperVerticalStep.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavStepperVerticalStep.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./NavStepperVerticalStep.vue?vue&type=template&id=3fc9af7c&scoped=true\"\nimport script from \"./NavStepperVerticalStep.ts?vue&type=script&lang=ts&external\"\nexport * from \"./NavStepperVerticalStep.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./NavStepperVerticalStep.vue?vue&type=style&index=0&id=3fc9af7c&prod&lang=scss&scoped=true\"\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 \"3fc9af7c\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"step bordered-step is-vertical\",class:['is-' + _vm.CurrentStatus]},[_c('a',{staticClass:\"step_head\",attrs:{\"href\":_vm.stepper.activeStep > _vm.index ? '#' : null},on:{\"click\":function($event){$event.preventDefault();return _vm.BackTo()}}},[_c('div',{staticClass:\"step_icon\",class:{ 'is-text': !_vm.icon }},[(_vm.CurrentStatus !== 'success' && _vm.CurrentStatus !== 'error')?_vm._t(\"icon\",function(){return [(_vm.icon)?_c('Icon',{staticClass:\"step_icon-inner\",attrs:{\"icon\":_vm.icon}}):_c('div',{staticClass:\"step_icon-inner\"},[_vm._v(_vm._s(_vm.index + 1))])]}):_c('Icon',{staticClass:\"step_icon-inner is-status\",attrs:{\"icon\":_vm.CurrentStatus === 'success' ? 'check' : 'times'}})],2),_c('div',{staticClass:\"step_title\"},[_vm._t(\"title\",function(){return [_vm._v(_vm._s(_vm.title))]})],2)]),_c('div',{staticClass:\"step_content\",class:{ 'is-last': _vm.IsLast }},[(_vm.IsStepActive)?_vm._t(\"default\"):_vm._e()],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavTab.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavTab.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./NavTab.vue?vue&type=template&id=5d731d3f&scoped=true\"\nimport script from \"./NavTab.ts?vue&type=script&lang=ts&external\"\nexport * from \"./NavTab.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./NavTab.vue?vue&type=style&index=0&id=5d731d3f&prod&lang=scss&scoped=true\"\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 \"5d731d3f\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"tab\",class:{ 'is-active': _vm.isActive, 't-light': _vm.theme === 'light', 't-black': _vm.theme === 'black', 't-dark': _vm.theme === 'dark', 'alert-primary': _vm.theme === 'primary', 'alert-info': _vm.theme === 'info', 'alert-success': _vm.theme === 'success', 'alert-warning': _vm.theme === 'warning', 'alert-danger': _vm.theme === 'danger' },attrs:{\"role\":\"tab\"},on:{\"click\":function($event){return _vm.$emit('click')}}},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Vue } from \"vue-property-decorator\";\r\nimport { Location } from \"vue-router\";\r\n\r\n@Component\r\nexport default class NavTabBloc extends Vue {\r\n @Prop()\r\n readonly text: string;\r\n @Prop()\r\n readonly textSecondary?: string;\r\n @Prop()\r\n readonly to: Location | string;\r\n @Prop()\r\n readonly icon?: string | string[] | null;\r\n @Prop()\r\n readonly isDisabled?: boolean;\r\n}\r\n","import { Component, Prop, Ref, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum TabTypes {\r\n Stretch = \"stretch\",\r\n Compact = \"compact\"\r\n}\r\n\r\n@Component\r\nexport default class NavTabs extends Vue {\r\n @Prop({\r\n default: TabTypes.Stretch,\r\n validator: (value: TabTypes) => Object.values(TabTypes).includes(value)\r\n })\r\n readonly type: TabTypes;\r\n @Prop({ default: true })\r\n readonly sliderBehavior: boolean;\r\n\r\n @Ref()\r\n readonly refNav: HTMLElement;\r\n\r\n TabTypes = TabTypes;\r\n private grab: boolean = false;\r\n private startX: number = 0;\r\n private scrollLeft: number = 0;\r\n\r\n public GrabStart(event: MouseEvent): void {\r\n if (!this.sliderBehavior) return;\r\n\r\n this.grab = true;\r\n const slider: HTMLElement = this.refNav as HTMLElement;\r\n slider.classList.add(\"is-grabbed\");\r\n this.startX = event.pageX - slider.offsetLeft;\r\n this.scrollLeft = slider.scrollLeft;\r\n }\r\n\r\n public GrabStop(event: Event): void {\r\n if (!this.sliderBehavior) return;\r\n\r\n this.grab = false;\r\n this.refNav.classList.remove(\"is-grabbed\");\r\n }\r\n\r\n public GrabMove(event: MouseEvent): void {\r\n if (!this.sliderBehavior) return;\r\n if (!this.grab) return;\r\n\r\n event.preventDefault();\r\n\r\n const slider: HTMLElement = this.refNav;\r\n const x = event.pageX - slider.offsetLeft;\r\n const walk = (x - this.startX) * 1;\r\n slider.scrollLeft = this.scrollLeft - walk;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavTabBloc.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavTabBloc.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./NavTabBloc.vue?vue&type=template&id=2c87a158&scoped=true\"\nimport script from \"./NavTabBloc.ts?vue&type=script&lang=ts&external\"\nexport * from \"./NavTabBloc.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./NavTabBloc.vue?vue&type=style&index=0&id=2c87a158&prod&lang=scss&scoped=true\"\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 \"2c87a158\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('I18nRouterLink',{staticClass:\"navigation_link d-flex flex-column\",class:{ 'is-disabled': _vm.isDisabled },attrs:{\"to\":_vm.isDisabled ? '' : _vm.to,\"title\":_vm.textSecondary ? _vm.text + ' ' + _vm.textSecondary : _vm.text}},[_c('span',[_vm._v(_vm._s(_vm.text))]),(_vm.textSecondary)?_c('div',{staticClass:\"text-truncate\",staticStyle:{\"max-width\":\"6.5rem\"}},[_c('small',[_vm._v(_vm._s(_vm.textSecondary))])]):_vm._e(),_c('span',[(_vm.icon)?_c('Icon',{staticClass:\"fa-2x ml-2\",attrs:{\"icon\":_vm.icon}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavTabs.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./NavTabs.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./NavTabs.vue?vue&type=template&id=1ddc1d06&scoped=true\"\nimport script from \"./NavTabs.ts?vue&type=script&lang=ts&external\"\nexport * from \"./NavTabs.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./NavTabs.vue?vue&type=style&index=0&id=1ddc1d06&prod&lang=scss&scoped=true\"\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 \"1ddc1d06\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('nav',{ref:\"refNav\",staticClass:\"navigation tabs\",class:{ 'stretch-navigation': _vm.type == _vm.TabTypes.Stretch, 'compact-navigation': _vm.type == _vm.TabTypes.Compact, 'xscroll-grab': _vm.sliderBehavior },attrs:{\"role\":\"tablist\"},on:{\"mousedown\":function($event){return _vm.GrabStart($event)},\"mouseleave\":function($event){return _vm.GrabStop($event)},\"mousemove\":function($event){return _vm.GrabMove($event)},\"mouseup\":function($event){return _vm.GrabStop($event)}}},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import NavAccordion from \"@pigeon/components/nav/NavAccordion.vue\";\r\nimport NavAccordionItem from \"@pigeon/components/nav/NavAccordionItem.vue\";\r\nimport NavBreadcrumb from \"@pigeon/components/nav/NavBreadcrumb.vue\";\r\nimport NavDropdownList from \"@pigeon/components/nav/NavDropdownList.vue\";\r\nimport NavDropdownListItem from \"@pigeon/components/nav/NavDropdownListItem.vue\";\r\nimport NavPanel from \"@pigeon/components/nav/NavPanel.vue\";\r\nimport NavStepper from \"@pigeon/components/nav/NavStepper.vue\";\r\nimport NavStepperStep from \"@pigeon/components/nav/NavStepperStep.vue\";\r\nimport NavStepperVertical from \"@pigeon/components/nav/NavStepperVertical.vue\";\r\nimport NavStepperVerticalStep from \"@pigeon/components/nav/NavStepperVerticalStep.vue\";\r\nimport NavTab from \"@pigeon/components/nav/NavTab.vue\";\r\nimport NavTabBloc from \"@pigeon/components/nav/NavTabBloc.vue\";\r\nimport NavTabs from \"@pigeon/components/nav/NavTabs.vue\";\r\nimport Vue from \"vue\";\r\n\r\n// Nav components\r\n// TODO: import locally\r\nVue.component(\"NavBreadcrumb\", NavBreadcrumb);\r\nVue.component(\"NavTabs\", NavTabs);\r\nVue.component(\"NavTabBloc\", NavTabBloc);\r\nVue.component(\"NavTab\", NavTab);\r\nVue.component(\"NavDropdownList\", NavDropdownList);\r\nVue.component(\"NavDropdownListItem\", NavDropdownListItem);\r\nVue.component(\"NavAccordion\", NavAccordion);\r\nVue.component(\"NavAccordionItem\", NavAccordionItem);\r\nVue.component(\"NavPanel\", NavPanel);\r\nVue.component(\"NavStepper\", NavStepper);\r\nVue.component(\"NavStepperStep\", NavStepperStep);\r\nVue.component(\"NavStepperVertical\", NavStepperVertical);\r\nVue.component(\"NavStepperVerticalStep\", NavStepperVerticalStep);\r\n","import { INewslettersService } from \"@api/contracts/odata/INewslettersService\";\r\nimport { IErrorManager } from \"@pigeon/services/contracts/IErrorManager\";\r\nimport { ErrorManager } from \"@pigeon/services/ErrorManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { ValidationObserver } from \"vee-validate\";\r\nimport { Component, Prop, Ref, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class TheFooterNewsletter extends Vue {\r\n @Prop()\r\n readonly brandName: string;\r\n @Prop({ default: \"All\" })\r\n readonly channel: string;\r\n\r\n @Ref()\r\n readonly refValidation: InstanceType;\r\n\r\n @Inject()\r\n private newslettersService: INewslettersService;\r\n\r\n errorManager: IErrorManager = new ErrorManager();\r\n isProccessing: boolean = false;\r\n newsletterEmail: string | null = null;\r\n hasSuccess: boolean = false;\r\n\r\n mounted() {\r\n this.errorManager = new ErrorManager(this.refValidation);\r\n }\r\n\r\n public NotifySuccess(): void {\r\n this.hasSuccess = true;\r\n }\r\n\r\n public async SubscribeToNewsletter(): Promise {\r\n if (!this.newsletterEmail) {\r\n this.errorManager.HandleMessageError(this.$t(\"error.email_required\") as string);\r\n return Promise.reject(this.$t(\"error.email_required\"));\r\n }\r\n\r\n const isValid = await this.refValidation.validate();\r\n if (!isValid) {\r\n this.errorManager.HandleMessageError(this.$t(\"error.email_invalid\") as string);\r\n return Promise.reject(this.$t(\"error.email_invalid\"));\r\n }\r\n\r\n this.errorManager.Reset();\r\n this.hasSuccess = false;\r\n this.isProccessing = true;\r\n\r\n return this.newslettersService\r\n .Insert({\r\n email: this.newsletterEmail,\r\n channel: this.channel,\r\n userId: this.$auth.IsAuthenticated && this.$auth.User ? this.$auth.User.id : undefined\r\n })\r\n .catch((error) => {\r\n this.errorManager.HandleError(error);\r\n throw error;\r\n })\r\n .finally(() => {\r\n this.isProccessing = false;\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheFooterNewsletter.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheFooterNewsletter.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheFooterNewsletter.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheFooterNewsletter.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TheFooterNewsletter.vue?vue&type=template&id=11705838&scoped=true\"\nimport script from \"./TheFooterNewsletter.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheFooterNewsletter.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./TheFooterNewsletter.vue?vue&type=style&index=0&id=11705838&prod&lang=scss&scoped=true\"\nimport style1 from \"./TheFooterNewsletter.vue?vue&type=style&index=1&id=11705838&prod&lang=scss&scoped=true\"\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 \"11705838\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TheFooterNewsletter.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('footer',{staticClass:\"content-footer\",attrs:{\"id\":\"page-footer\"}},[_c('h4',{staticClass:\"h4\"},[_vm._v(_vm._s(_vm.$t(\"subscribe_title\")))]),_vm._t(\"subscribe\",function(){return [_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('subscribe'))}})]}),_c('ValidationObserver',{ref:\"refValidation\",attrs:{\"slim\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ touched, errors, invalid }){return [_c('form',{attrs:{\"novalidate\":\"\",\"data-cy\":\"newsletter\"},on:{\"submit\":function($event){$event.preventDefault();}}},[_c('div',{attrs:{\"id\":\"newsletterSubscription\"}},[_c('ValidationProvider',{ref:\"refValidation\",attrs:{\"vid\":\"EmailPageFooterNewsletter\",\"rules\":\"required|email\",\"mode\":\"eager\",\"name\":\"email\"}},[_c('label',{staticClass:\"sr-only\",attrs:{\"for\":\"newsletterEmail\"}},[_vm._v(_vm._s(_vm.$t(\"email.placeholder\")))]),_c('div',{staticClass:\"inputs icon-inputs btn-inputs position-relative d-flex flex-column flex-lg-row\"},[_c('Icon',{staticClass:\"icon-input fg-primary\",attrs:{\"icon\":\"envelope\"}}),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.newsletterEmail),expression:\"newsletterEmail\"}],staticClass:\"input bg-white py-3\",class:{ 'is-invalid': touched && invalid },attrs:{\"placeholder\":_vm.$t('email.placeholder'),\"type\":\"email\",\"name\":\"email\",\"id\":\"newsletterEmail\"},domProps:{\"value\":(_vm.newsletterEmail)},on:{\"input\":function($event){if($event.target.composing)return;_vm.newsletterEmail=$event.target.value}}}),_c('AppButtonLoader',{staticClass:\"btn-input btn btn-primary\",attrs:{\"notification-time\":8500,\"type\":\"button\",\"data-cy\":\"newsletter-subscribe\"},on:{\"click\":function($event){return _vm.SubscribeToNewsletter()},\"done\":function($event){return _vm.NotifySuccess()}}},[_vm._v(_vm._s(_vm.$t(\"action.send\")))])],1),(errors && errors.length)?_c('AppError',[_vm._v(_vm._s(errors[0]))]):_vm._e()],1),_c('AppErrors',{attrs:{\"data-cy\":\"newsletter-fail\",\"error-messages\":_vm.errorManager.ErrorMessages}}),(_vm.hasSuccess)?_c('AppAlert',{staticClass:\"bg-white\",attrs:{\"type\":\"success\",\"icon\":\"check\",\"caption\":\"success\",\"data-cy\":\"newsletter-success\"}},[_vm._t(\"subscribed\",function(){return [_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('notifications.subscribed_newsletter'))}})]})],2):_vm._e()],1)])]}}],null,true)})],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import FooterNewsletter from \"@pigeon/components/layout/TheFooterNewsletter.vue\";\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n FooterNewsletter\r\n }\r\n})\r\nexport default class TheFooterNewsletter extends Vue {}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheFooterNewsletter.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheFooterNewsletter.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheFooterNewsletter.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheFooterNewsletter.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TheFooterNewsletter.vue?vue&type=template&id=3000db44\"\nimport script from \"./TheFooterNewsletter.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheFooterNewsletter.ts?vue&type=script&lang=ts&external\"\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\n/* custom blocks */\nimport block0 from \"./TheFooterNewsletter.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('FooterNewsletter',{attrs:{\"channel\":\"Market\"},scopedSlots:_vm._u([{key:\"subscribe\",fn:function(){return [_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('subscribe'))}})]},proxy:true},{key:\"subscribed\",fn:function(){return [_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('subscribed'))}})]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IAccountsService } from \"@api/contracts/auth/IAccountsService\";\r\nimport { IAlertsService } from \"@api/contracts/odata/IAlertsService\";\r\nimport { ISalesService } from \"@api/contracts/odata/ISalesService\";\r\nimport { DbAlertTypes } from \"@api/models/market/constants/DbAlertTypes\";\r\nimport { SaleStatus } from \"@api/models/market/constants/SaleStatus\";\r\nimport { IAlert } from \"@api/models/market/IAlert\";\r\nimport { IBid } from \"@api/models/market/IBid\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport BidAlertCongratulations from \"@market/components/bid/BidAlertCongratulations.vue\";\r\nimport { ICartItem } from \"@market/models/ICartItem\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport {\r\n accountStore,\r\n appStore,\r\n authStore,\r\n cartStore,\r\n signUpDialogStore,\r\n userStore\r\n} from \"@market/stores/App.store.modules\";\r\nimport { AlertTypes } from \"@pigeon/components/app/AppAlert\";\r\nimport ModuleStripeConnect from \"@pigeon/components/module/ModuleStripeConnect.vue\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { DEFAULT_LOCALE } from \"@pigeon/i18n/i18n.const\";\r\nimport { II18nManager } from \"@pigeon/services/contracts/II18nManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n ModuleStripeConnect,\r\n BidAlertCongratulations\r\n }\r\n})\r\nexport default class TheAlerts extends Vue {\r\n @Inject()\r\n private alertsService: IAlertsService;\r\n @Inject()\r\n private salesService: ISalesService;\r\n @Inject()\r\n private i18nManager: II18nManager;\r\n\r\n static readonly SnoozeTimeHours: number = 1;\r\n DEFAULT_LOCALE = DEFAULT_LOCALE;\r\n AppRoutes = AppRoutes;\r\n alerts: IAlert[] = [];\r\n winningSales: ISale[] = [];\r\n salesCountForCurrentVendor: number = 0;\r\n holdSalesCountForCurrentVendor: number = 0;\r\n soldSalesCountForCurrentVendor: number = 0;\r\n\r\n get AccountIsVerified(): boolean {\r\n return accountStore.AccountIsVerified;\r\n }\r\n\r\n get AccountVendorIsVerified(): boolean {\r\n return accountStore.AccountVendorIsVerified;\r\n }\r\n\r\n get AccountVendorVerificationLevel(): AlertTypes {\r\n if (!authStore.IsVendor || this.salesCountForCurrentVendor == 0) return AlertTypes.Info;\r\n\r\n let level = AlertTypes.Info;\r\n\r\n // BusinessRule: If vendor has added a sale (first sale) then the level is warning\r\n if (this.salesCountForCurrentVendor > 0) {\r\n level = AlertTypes.Warning;\r\n\r\n // BusinessRule: If vendor has sold a sale (first sale) then the level is danger\r\n if (this.holdSalesCountForCurrentVendor > 0 || this.soldSalesCountForCurrentVendor > 0) {\r\n level = AlertTypes.Danger;\r\n }\r\n }\r\n\r\n return level;\r\n }\r\n\r\n get HasResentAccountVerification(): boolean {\r\n return accountStore.HasResentAccountVerification;\r\n }\r\n\r\n get SnoozedDateEndVendorConnectedAccount(): Date | null {\r\n return appStore.snoozedDateEndVendorConnectedAccount;\r\n }\r\n\r\n get IsAuthenticated(): boolean {\r\n return authStore?.IsAuthenticated;\r\n }\r\n\r\n get IsSignUpDialogOpen(): boolean {\r\n return signUpDialogStore.dialog.isOpen;\r\n }\r\n\r\n // Business rules: alerts should not be displayed on checkout page\r\n // Business rules: alerts should not be displayed on winning product page\r\n get ShouldHideAlertsOnCurrentRoute(): boolean {\r\n if (this.$route.name?.startsWith(\"checkout.\")) return true;\r\n if (\r\n this.$route.name?.startsWith(\"sale.\") &&\r\n this.$route.params[\"saleKey\"] &&\r\n this.winningSales.some((s) => s.id?.toString() == this.$route.params[\"saleKey\"])\r\n )\r\n return true;\r\n\r\n return false;\r\n }\r\n\r\n get isAutomaticTranslationDismissed(): boolean {\r\n return appStore.isAutomaticTranslationDismissed;\r\n }\r\n\r\n get CartItems(): ICartItem[] {\r\n return cartStore.items;\r\n }\r\n\r\n get AWinningSale(): ISale | undefined {\r\n if (!this.winningSales?.length) return;\r\n\r\n let itemIndex: number = 0;\r\n let item = this.winningSales[itemIndex];\r\n const cartContainsTheItem: boolean =\r\n this.CartItems?.length && this.CartItems.some((ci) => ci.saleId == item.id) ? true : false;\r\n\r\n while (cartContainsTheItem && itemIndex < this.winningSales?.length) {\r\n itemIndex++;\r\n item = this.winningSales?.[itemIndex - 1];\r\n }\r\n\r\n return item;\r\n }\r\n\r\n @Watch(nameof(\"IsAuthenticated\"), { immediate: true })\r\n async ObserveAuth() {\r\n if (!this.IsAuthenticated) return Promise.resolve();\r\n if (this.ShouldHideAlertsOnCurrentRoute) return Promise.resolve();\r\n\r\n try {\r\n if (authStore.IsVendor) await this.FetchForVendor();\r\n if (authStore.IsMember) await this.FetchForMember();\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n public GetAlertIcon(alertType: DbAlertTypes): string {\r\n if (!alertType) return \"info\";\r\n\r\n switch (alertType.toLowerCase()) {\r\n case DbAlertTypes.Danger:\r\n case DbAlertTypes.Warning:\r\n return \"exclamation\";\r\n\r\n case DbAlertTypes.Success:\r\n return \"check\";\r\n\r\n case DbAlertTypes.Info:\r\n default:\r\n return \"info\";\r\n }\r\n }\r\n\r\n public ConvertAlertType(alertType: DbAlertTypes): AlertTypes {\r\n switch (alertType) {\r\n case DbAlertTypes.Info:\r\n return AlertTypes.Info;\r\n case DbAlertTypes.Success:\r\n return AlertTypes.Success;\r\n case DbAlertTypes.Danger:\r\n return AlertTypes.Danger;\r\n case DbAlertTypes.Warning:\r\n return AlertTypes.Warning;\r\n\r\n default:\r\n console.warn(\"Warning: db alert type not supported\");\r\n return AlertTypes.Info;\r\n }\r\n }\r\n\r\n public GetHighestBidByUser(sale: ISale): IBid | undefined {\r\n if (!sale || !sale.bids || !sale.bids.length) return undefined;\r\n\r\n const highestBidAmount = Math.max(...sale.bids.map((b) => b.amount), 0);\r\n return sale.bids.find((b) => b.amount === highestBidAmount && b.userId === this.$auth.User?.id);\r\n }\r\n\r\n public IsUserOnTheSalePage(sale: ISale): boolean {\r\n return (\r\n this.$route.name == AppRoutes.Sale ||\r\n this.$route.name == AppRoutes.SalePackagePigeon ||\r\n this.$route.name == AppRoutes.SalePedigree\r\n );\r\n }\r\n\r\n public async FetchForMember() {\r\n // Business rules: alerts should not be displayed on checkout page\r\n // Business rules: alerts should not be displayed on winning product page\r\n if (this.ShouldHideAlertsOnCurrentRoute) return;\r\n\r\n // Business rules: Auction alerts should not be displayed on product page if auth member has done an offer\r\n if (this.$auth.IsAuthenticated && this.$auth.User) {\r\n let auctionAlertsShouldBeDisplayed: boolean = true;\r\n\r\n if (this.$route.name?.startsWith(\"sale.\") && this.$route.params[\"saleKey\"]) {\r\n const { data } = await this.salesService.FetchAllBids(parseInt(this.$route.params[\"saleKey\"]));\r\n const memberHasDoneAnBid = data.value.some((b) => b.userId == this.$auth.User?.id);\r\n auctionAlertsShouldBeDisplayed = !memberHasDoneAnBid;\r\n }\r\n\r\n if (auctionAlertsShouldBeDisplayed) {\r\n // Note: Winning sales are used here to displayed auction alert\r\n const { data } = await this.salesService.GetAllWinningSalesInPendingByUser(this.$auth.User?.id);\r\n this.winningSales = data.value;\r\n }\r\n } else {\r\n this.winningSales = [];\r\n }\r\n\r\n const { data } = await this.alertsService.FetchAllByUser(this.$auth.User?.id);\r\n this.alerts = data.value;\r\n }\r\n\r\n public async FetchForVendor() {\r\n if (!authStore.IsVendor || !userStore.user) return Promise.resolve();\r\n\r\n const [{ data: countSalesData }, { data: countHoldSalesData }, { data: countSoldSalesData }] = await Promise.all([\r\n this.salesService.CountSalesByVendorId(userStore.user.id),\r\n this.salesService.CountSalesByVendorIdAndBySaleStatus(userStore.user.id, SaleStatus.OnHold),\r\n this.salesService.CountSalesByVendorIdAndBySaleStatus(userStore.user.id, SaleStatus.Sold)\r\n ]);\r\n\r\n this.salesCountForCurrentVendor = countSalesData[\"@odata.count\"] ?? 0;\r\n this.holdSalesCountForCurrentVendor = countHoldSalesData[\"@odata.count\"] ?? 0;\r\n this.soldSalesCountForCurrentVendor = countSoldSalesData[\"@odata.count\"] ?? 0;\r\n }\r\n\r\n public OnDismissAlert(alertId: number): void {\r\n const indexToRemove = this.alerts.findIndex((a) => a.id == alertId);\r\n\r\n if (indexToRemove != -1) {\r\n const alertsRemoved = this.alerts.splice(indexToRemove, 1);\r\n const alertRemoved = alertsRemoved[0];\r\n\r\n if (alertRemoved && alertRemoved.userId)\r\n if (alertRemoved.isDismissible) {\r\n this.alertsService.Patch(alertRemoved.id, { flagAsRead: true, flaggedDate: new Date().toISOString() });\r\n } else {\r\n this.alertsService.Patch(alertRemoved.id, { flaggedDate: new Date().toISOString() });\r\n }\r\n }\r\n }\r\n\r\n public OnDismissAutomaticTranslationAlert(): void {\r\n appStore.UpdateAutomaticTranslationAlert(true);\r\n }\r\n\r\n public OnSnoozeAuctionAlert(saleId: number | undefined): void {\r\n if (!this.$auth.IsMember || !saleId) return;\r\n\r\n const snoozedDate: Date = new Date();\r\n snoozedDate.setHours(new Date().getHours() + TheAlerts.SnoozeTimeHours);\r\n this.salesService.Patch(saleId, { snoozeDate: snoozedDate.toISOString() });\r\n }\r\n\r\n public OnSnoozeVendorConnectedAccountAlert(): void {\r\n const snoozedDate: Date = new Date();\r\n snoozedDate.setHours(new Date().getHours() + TheAlerts.SnoozeTimeHours);\r\n\r\n appStore.UpdateSnoozedEndDateVendorConnectedAccount(snoozedDate);\r\n }\r\n\r\n public OpenSignUpDialog(): void {\r\n signUpDialogStore.Open();\r\n }\r\n\r\n public SwitchToDefaultLocale(): void {\r\n this.i18nManager.UpdateUILocale(this.$i18n, DEFAULT_LOCALE);\r\n\r\n if (this.$route.name) {\r\n this.$router.push({ name: this.$route.name, params: { locale: DEFAULT_LOCALE } });\r\n\r\n if (this.$auth.IsAuthenticated) {\r\n this.i18nManager.UpdateUserPreferredLocale(DEFAULT_LOCALE);\r\n this.i18nManager.UpdateAspNetCoreCookieRequestCulture(this.$cookies, DEFAULT_LOCALE);\r\n } else {\r\n window.location.reload();\r\n }\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheAlerts.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheAlerts.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheAlerts.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheAlerts.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TheAlerts.vue?vue&type=template&id=70568342&scoped=true\"\nimport script from \"./TheAlerts.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheAlerts.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./TheAlerts.vue?vue&type=style&index=0&id=70568342&prod&lang=scss&scoped=true\"\nimport style1 from \"./TheAlerts.vue?vue&type=style&index=1&id=70568342&prod&lang=scss&scoped=true\"\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 \"70568342\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TheAlerts.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (!_vm.ShouldHideAlertsOnCurrentRoute)?_c('aside',{staticClass:\"alerts\",attrs:{\"data-cy\":\"app-alerts\"}},[(_vm.$i18n.locale != _vm.DEFAULT_LOCALE && _vm.$i18n.locale != 'fr' && !_vm.isAutomaticTranslationDismissed)?_c('AppAlert',{staticClass:\"alert-dismissible d-flex align-items-center p-2 m-0\",attrs:{\"outline\":false,\"dismissible\":true,\"type\":\"info\"}},[_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"alert\",\"aria-label\":\"Close\"},on:{\"click\":function($event){return _vm.OnDismissAutomaticTranslationAlert()}}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])]),_c('Icon',{staticClass:\"fa-2x ml-2 mr-3\",attrs:{\"title\":_vm.$t('automatic_translation'),\"icon\":\"language\"}}),_c('i18n',{attrs:{\"path\":\"automatic_translation_message_$link\"},scopedSlots:_vm._u([{key:\"link\",fn:function(){return [_c('button',{staticClass:\"btn btn-link py-0 px-0 m-0 mx-1 bd-0\",attrs:{\"role\":\"button\"},on:{\"click\":function($event){return _vm.SwitchToDefaultLocale()}}},[_vm._v(\" \"+_vm._s(_vm.$t('here'))+\" \")])]},proxy:true}],null,false,3421384435)})],1):_vm._e(),(_vm.$auth.IsAuthenticated && _vm.$auth.User)?_c('div',[(_vm.$router.currentRoute.name != _vm.AppRoutes.AccountVerification)?_c('div',[(!_vm.AccountIsVerified && !_vm.IsSignUpDialogOpen)?_c('AppAlert',{attrs:{\"button-label\":_vm.$t('alert.action.verify'),\"icon\":\"check\",\"outline\":false,\"type\":\"warning\"},on:{\"action\":function($event){return _vm.OpenSignUpDialog()}}},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('alert.verification_instructions'))}})]):_vm._e()],1):_vm._e(),(_vm.$auth.IsVendor && !_vm.$auth.IsAdministrator && _vm.AccountIsVerified && !_vm.AccountVendorIsVerified && (!_vm.SnoozedDateEndVendorConnectedAccount || _vm.SnoozedDateEndVendorConnectedAccount < new Date()))?_c('AppAlert',{staticClass:\"bg-white\",attrs:{\"caption\":_vm.$t('alert.caption.required'),\"type\":_vm.AccountVendorVerificationLevel,\"outline\":false,\"icon\":\"user-tie\"}},[_c('div',[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('alert.vendor_profile_message'))}}),_c('footer',{staticClass:\"row mt-2\",staticStyle:{\"margin-bottom\":\"-1rem\"}},[_c('div',{staticClass:\"text-left col\"}),_c('div',{staticClass:\"text-center col\"},[_c('ModuleStripeConnect',{attrs:{\"button-type\":\"btn-outline-primary\"}},[_vm._v(_vm._s(_vm.$t('alert.action.complete_vendor_profile'))+\" \")])],1),_c('div',{staticClass:\"text-right col\"},[_c('button',{staticClass:\"btn btn-link text-danger text-underline\",attrs:{\"type\":\"button\",\"data-cy\":\"vendor-profile-snooze\"},on:{\"click\":function($event){return _vm.OnSnoozeVendorConnectedAccountAlert()}}},[_vm._v(_vm._s(_vm.$t('alert.action.snooze')))])])])])]):_vm._e()],1):_vm._e(),(_vm.AWinningSale)?_c('BidAlertCongratulations',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.IsUserOnTheSalePage(_vm.AWinningSale)),expression:\"!IsUserOnTheSalePage(AWinningSale)\"}],key:`auction_alert_${_vm.AWinningSale.id}`,attrs:{\"sales\":_vm.winningSales,\"sale\":_vm.AWinningSale,\"bid\":_vm.GetHighestBidByUser(_vm.AWinningSale),\"has-snooze\":true,\"is-dismissible\":true,\"data-cy\":\"alert-global-auction-win\"},on:{\"snooze\":function($event){return _vm.OnSnoozeAuctionAlert(_vm.AWinningSale.id)}}}):_vm._e(),(_vm.alerts)?_c('div',_vm._l((_vm.alerts),function(alert,index){return _c('AppAlert',{key:`app_alerts_${index}`,staticClass:\"position-relative m-0 alert-dismissible\",attrs:{\"outline\":false,\"type\":alert && _vm.ConvertAlertType(alert.type),\"icon\":_vm.GetAlertIcon(alert.type)}},[(_vm.$auth.IsAdministrator)?_c('div',{staticClass:\"alert_range-date\"},[_vm._v(_vm._s(new Date(alert.fromDate).toLocaleDateString())+\" - \"+_vm._s(new Date(alert.toDate).toLocaleDateString()))]):_vm._e(),(alert.isDismissible !== false)?_c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"alert\",\"aria-label\":\"Close\"},on:{\"click\":function($event){return _vm.OnDismissAlert(alert.id)}}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])]):_vm._e(),(alert.header)?_c('h4',[_vm._v(\" \"+_vm._s(alert.header)+\" \")]):_vm._e(),_c('div',{domProps:{\"innerHTML\":_vm._s(alert.message)}})])}),1):_vm._e()],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class TheBetaRibbon extends Vue {}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheBetaRibbon.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheBetaRibbon.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheBetaRibbon.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheBetaRibbon.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TheBetaRibbon.vue?vue&type=template&id=20f3f78e&scoped=true\"\nimport script from \"./TheBetaRibbon.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheBetaRibbon.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./TheBetaRibbon.vue?vue&type=style&index=0&id=20f3f78e&prod&lang=scss&scoped=true\"\nimport style1 from \"./TheBetaRibbon.vue?vue&type=style&index=1&id=20f3f78e&prod&lang=scss&scoped=true\"\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 \"20f3f78e\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TheBetaRibbon.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('div',{staticClass:\"beta-ribbon\",attrs:{\"title\":_vm.$t('beta_message')}},[_vm._v(_vm._s(_vm.$t('beta')))]),_c('AppAlert',{staticClass:\"p-2 m-0 beta-alert\",attrs:{\"outline\":false,\"dismissible\":true,\"type\":\"danger\"}},[_vm._v(\" \"+_vm._s(_vm.$t('beta_message'))+\" \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AppRoutes } from \"@market/routers/App.routes\";\r\nimport { Component, Ref, Vue } from \"vue-property-decorator\";\r\n// import \"@pwabuilder/pwainstall\";\r\n\r\n@Component\r\nexport default class TheFooter extends Vue {\r\n AppRoutes = AppRoutes;\r\n\r\n //#region PWAInstall\r\n // pwaInstall: any;\r\n\r\n @Ref()\r\n readonly refPwaInstallButton: HTMLElement;\r\n //#endregion\r\n\r\n get BuildVersion(): string {\r\n return process.env.VUE_APP_BUILD_VERSION as string;\r\n }\r\n\r\n mounted() {\r\n // this.pwaInstall = document.querySelector(\"pwa-install\");\r\n\r\n // this.ShowHidePwaInstall();\r\n // window.addEventListener(\"beforeinstallprompt\", this.ShowHidePwaInstall);\r\n // window.addEventListener(\"appinstalled\", this.ShowHidePwaInstall);\r\n }\r\n\r\n //#region PWAInstall\r\n // See: https://www.pwabuilder.com/feature/Install%20your%20PWA\r\n public ShowHidePwaInstall(): void {\r\n // if (!this.pwaInstall || !this.refPwaInstallButton) return;\r\n\r\n // const isInstalled: boolean = this.pwaInstall.getInstalledStatus();\r\n // this.refPwaInstallButton.style.display = isInstalled ? \"none\" : \"block\";\r\n }\r\n\r\n // See: https://github.com/pwa-builder/PWABuilder/blob/master/components/InstallButton.vue\r\n public OpenInstall(): void {\r\n // if (!this.pwaInstall) return;\r\n\r\n // this.pwaInstall.openPrompt();\r\n }\r\n //#endregion\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheFooter.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheFooter.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheFooter.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheFooter.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TheFooter.vue?vue&type=template&id=229381f6&scoped=true\"\nimport script from \"./TheFooter.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheFooter.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./TheFooter.vue?vue&type=style&index=0&id=229381f6&prod&lang=scss&scoped=true\"\nimport style1 from \"./TheFooter.vue?vue&type=style&index=1&id=229381f6&prod&lang=scss&scoped=true\"\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 \"229381f6\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TheFooter.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('footer',{staticClass:\"footer\",attrs:{\"id\":\"app-footer\"}},[_c('div',{staticClass:\"container-fluid page\"},[_c('div',{staticClass:\"row\"},[_c('article',{staticClass:\"col-12 col-md-6\"},[_c('h4',{staticClass:\"fg-white\"},[_vm._v(_vm._s(_vm.$t(\"website.brand\")))]),_c('p',{staticClass:\"fg-white\"},[_c('span',{attrs:{\"data-cy\":\"footer-app-description\"}},[_vm._v(_vm._s(_vm.$t(\"website.description\")))]),_c('br'),_c('i18n',{attrs:{\"path\":\"website.author_$link\"},scopedSlots:_vm._u([{key:\"link\",fn:function(){return [_c('a',{attrs:{\"href\":\"https://raphaeldhainaut.com\",\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._v(\"https://raphaeldhainaut.com\")])]},proxy:true}])})],1),_c('button',{ref:\"refPwaInstallButton\",staticClass:\"btn btn-outline-primary\",attrs:{\"type\":\"button\",\"id\":\"pwaInstallButton\",\"title\":_vm.$t('brand.install_tooltip')},on:{\"click\":function($event){return _vm.OpenInstall()}}},[_c('span',{staticClass:\"font-weight-bold\"},[_vm._v(_vm._s(_vm.$t(\"brand.install\"))+\" \")]),_c('span',[_vm._v(\"Pigeon Market\")])])]),_c('section',{staticClass:\"col-12 col-md-6\"},[_c('article',{staticClass:\"text-md-right mb-3\"},[_c('h5',{staticClass:\"fg-light text-uppercase text-small\"},[_vm._v(_vm._s(_vm.$t(\"help.header\")))]),_c('I18nRouterLink',{attrs:{\"to\":{ name: _vm.AppRoutes.Contact }}},[_vm._v(_vm._s(_vm.$t(\"help.contact_us\")))])],1),_c('article',{staticClass:\"text-md-right d-flex flex-column justify-content-space-between\"},[_c('h5',{staticClass:\"fg-light text-uppercase text-small\"},[_vm._v(_vm._s(_vm.$t(\"social_network.header\")))]),_c('ul',{staticClass:\"list-unstyled list-inline\"},[_c('li',{staticClass:\"list-inline-item mr-3\"},[_c('Icon',{staticClass:\"facebook-icon\",attrs:{\"icon\":['fab', 'facebook']}})],1),_c('li',{staticClass:\"list-inline-item\"},[_c('Icon',{staticClass:\"twitter-icon\",attrs:{\"icon\":['fab', 'twitter']}})],1)]),_c('div',{staticClass:\"mt-auto\"},[_c('h5',{staticClass:\"fg-light text-uppercase text-small\"},[_vm._v(_vm._s(_vm.$t(\"payment_methods.header\")))]),_c('div',{staticClass:\"d-flex flex-column\"},[_c('div',{staticClass:\"d-flex flex-row flex-md-row-reverse justify-content-start payment-logos my-1\"},[_c('div',{staticClass:\"payment-icon-wrapper\"},[_c('img',{attrs:{\"src\":require(`@market/assets/images/brand/payment/visa.svg`),\"alt\":\"Visa logo\",\"title\":\"Visa\"}})]),_c('div',{staticClass:\"payment-icon-wrapper\"},[_c('img',{attrs:{\"src\":require(`@market/assets/images/brand/payment/mastercard.svg`),\"alt\":\"Mastercard logo\",\"title\":\"Mastercard\"}})]),_c('div',{staticClass:\"payment-icon-wrapper\"},[_c('img',{attrs:{\"src\":require(`@market/assets/images/brand/payment/amex.svg`),\"alt\":\"American Express logo\",\"title\":\"American Express\"}})]),_c('div',{staticClass:\"payment-icon-wrapper\"},[_c('img',{attrs:{\"src\":require(`@market/assets/images/brand/payment/unionpay.svg`),\"alt\":\"UnionPay logo\",\"title\":\"UnionPay\"}})])]),_c('div',{staticClass:\"d-flex flex-row flex-md-row-reverse justify-content-start payment-logos my-1\"},[_c('div',{staticClass:\"payment-icon-wrapper\"},[_c('img',{attrs:{\"src\":require(`@market/assets/images/brand/payment/bancontact.svg`),\"alt\":\"Bancontact logo\",\"title\":\"Bancontact\"}})]),_c('div',{staticClass:\"payment-icon-wrapper\"},[_c('img',{attrs:{\"src\":require(`@market/assets/images/brand/payment/ideal.svg`),\"alt\":\"iDeal logo\",\"title\":\"iDeal\"}})]),_c('div',{staticClass:\"payment-icon-wrapper\"},[_c('img',{attrs:{\"src\":require(`@market/assets/images/brand/payment/przelewy24.svg`),\"alt\":\"Przelewy24 logo\",\"title\":\"Przelewy24\"}})]),_c('div',{staticClass:\"payment-icon-wrapper\"},[_c('img',{attrs:{\"src\":require(`@market/assets/images/brand/payment/giropay.svg`),\"alt\":\"Giropay logo\",\"title\":\"Giropay\"}})])]),_c('div',{staticClass:\"d-flex flex-row flex-md-row-reverse justify-content-start payment-logos my-1\"},[_c('div',{staticClass:\"payment-icon-wrapper\"},[_c('img',{attrs:{\"src\":require(`@market/assets/images/brand/payment/sepa.svg`),\"alt\":\"Sepa logo\",\"title\":\"Single Euro Payments Area\"}})])])])]),_c('div',{staticClass:\"float-left float-md-right mr-2 mb-2 mb-md-4 flying-sticker\"},[_c('div',[_c('img',{staticClass:\"d-inline-block mx-auto mt-4\",staticStyle:{\"height\":\"48px\"},attrs:{\"src\":require(`@market/assets/images/brand/payment/ssl-secure-white.png`),\"alt\":\"secured ssl\"}})])])])])]),_c('div',[_c('ul',{staticClass:\"list-unstyled list-inline text-smaller\"},[_c('li',[_c('I18nRouterLink',{attrs:{\"to\":{ name: _vm.AppRoutes.TermsAndConditions }}},[_vm._v(_vm._s(_vm.$t(\"links.terms_and_conditions\"))+\" \")])],1),_c('li',[_c('I18nRouterLink',{attrs:{\"to\":{ name: _vm.AppRoutes.AuctionConditions }}},[_vm._v(_vm._s(_vm.$t(\"links.auction_conditions\"))+\" \")])],1),_c('li',[_c('I18nRouterLink',{attrs:{\"to\":{ name: _vm.AppRoutes.PrivacyPolicy }}},[_vm._v(_vm._s(_vm.$t(\"links.privacy_policy\")))])],1),_c('li',[_c('button',{staticClass:\"btn btn-link p-0 text-small\",attrs:{\"id\":\"cookiesPreferences\",\"type\":\"button\"}},[_vm._v(_vm._s(_vm.$t('links.cookies_consent_preferences')))])])]),_c('div',{staticClass:\"build-version text-success\"},[_vm._v(\"Version \"),_c('span',{staticClass:\"version_number\"},[_vm._v(_vm._s(_vm.BuildVersion))])]),_c('small',{staticClass:\"copyright\"},[_vm._v(\" © \"),_c('i18n',{attrs:{\"path\":\"website.copyright_$date\",\"tag\":\"span\"},scopedSlots:_vm._u([{key:\"date\",fn:function(){return [_vm._v(_vm._s(\"2017 -\" + new Date().getFullYear()))]},proxy:true}])})],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export enum ActionTypes {\r\n PrimaryAction = \"PrimaryAction\",\r\n SecondaryAction = \"SecondaryAction\",\r\n CallToAction = \"CallToAction\"\r\n}\r\n","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('section',[_c('aside',{staticClass:\"aside\"},[(_vm.CartItems.length)?_c('table',{staticClass:\"table\"},[_c('thead',[_c('tr',[_c('th',{staticClass:\"picture-cell\"},[_vm._v(_vm._s(_vm.$t(\"table.header.picture\")))]),_c('th',{staticClass:\"identity-cell\"},[_vm._v(_vm._s(_vm.$t(\"table.header.identity\")))]),_c('th',[_vm._v(_vm._s(_vm.$t(\"table.header.price\")))]),_c('th')])]),_c('tbody',_vm._l((_vm.CartItems),function(item,index){return _c('tr',{key:index},[_c('td',{staticClass:\"picture-cell\"},[_c('div',{staticClass:\"picture-wrapper\"},[(item.product === _vm.ProductTypes.Pigeon)?_c('PigeonPicture',{attrs:{\"pigeon\":item}}):_vm._e(),(item.product === _vm.ProductTypes.Package)?_c('PackagePicture',{attrs:{\"package\":item,\"pictures\":item.pictures}}):_vm._e()],1)]),_c('td',[_c('div',{staticClass:\"pane_title\"},[_vm._v(_vm._s(item.name))]),_c('div',{staticClass:\"pane_secondary-title\"},[_vm._v(_vm._s(item.reference))]),(item.product === _vm.ProductTypes.Pigeon)?_c('div',[_c('Icon',{staticClass:\"product_sex\",class:{ 'fg-primary': item.sex == _vm.SexTypes.Male, 'fg-secondary': item.sex == _vm.SexTypes.Female },attrs:{\"icon\":_vm.PigeonSexIcon(item)}})],1):(item.product === _vm.ProductTypes.Package)?_c('div',[_c('ul',{staticClass:\"list-unstyled\"},[(item.malesCount)?_c('li',[_c('Icon',{staticClass:\"fg-primary\",attrs:{\"icon\":\"mars\"}}),_vm._v(\" \"+_vm._s(item.malesCount)+\" \"+_vm._s(_vm.$tc('plurals.males', item.malesCount))+\" \")],1):_vm._e(),(item.femalesCount)?_c('li',[_c('Icon',{staticClass:\"fg-secondary\",attrs:{\"icon\":\"venus\"}}),_vm._v(\" \"+_vm._s(item.femalesCount)+\" \"+_vm._s(_vm.$tc('plurals.females', item.femalesCount))+\" \")],1):_vm._e(),(item.genderlessCount)?_c('li',[_c('Icon',{attrs:{\"icon\":\"genderless\"}}),_vm._v(\" \"+_vm._s(item.genderlessCount)+\" \"+_vm._s(_vm.$tc('plurals.genderlesses', item.genderlessesCount))+\" \")],1):_vm._e()])]):_vm._e()]),_c('td',[_c('div',{staticClass:\"pane_title fg-primary product_price\"},[_c('span',[_vm._v(_vm._s(_vm.$n(item.price, \"currency\")))])])]),_c('td',{staticClass:\"position-relative\"},[_c('div',{staticClass:\"aside-buttons\"},[_c('I18nRouterLink',{staticClass:\"pane_aside btn btn-outline-primary\",attrs:{\"to\":{\n name: _vm.AppRoutes.Sale,\n params: item.name\n ? { saleKey: item.saleId.toString(), productRef: _vm.GetProductReferenceSlug(item), productName: _vm.GetProductNameSlug(item) }\n : { saleKey: item.saleId.toString(), productName: _vm.GetProductNameSlug(item) }\n },\"tabindex\":\"1\",\"tag\":\"button\",\"title\":_vm.$t('table.action.see'),\"type\":\"button\"}},[_c('Icon',{attrs:{\"icon\":\"eye\"}})],1),_c('button',{staticClass:\"pane_aside btn btn-outline-secondary\",attrs:{\"tabindex\":\"2\",\"title\":_vm.$t('table.action.remove_from_cart'),\"type\":\"button\"},on:{\"click\":function($event){return _vm.RemoveCartItem(item.id)}}},[_c('Icon',{attrs:{\"icon\":\"times\"}})],1)],1)])])}),0)]):_c('div',{staticClass:\"segment\"},[_c('p',[_vm._v(\" \"+_vm._s(_vm.$t(\"no_auctions\"))+\" \"),_c('i18n',{attrs:{\"path\":\"see_sales_catalog_$0\",\"tag\":\"div\"}},[_c('I18nRouterLink',{attrs:{\"to\":{ name: _vm.AppRoutes.Buy }}},[_vm._v(_vm._s(_vm.$t(\"sales_catalog\")))])],1)],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ProductTypes } from \"@api/models/market/constants/ProductTypes\";\r\nimport { SexTypes } from \"@api/models/market/constants/SexTypes\";\r\nimport { ICartItem } from \"@market/models/ICartItem\";\r\nimport { IPackageCartItem } from \"@market/models/IPackageCartItem\";\r\nimport { IPigeonCartItem } from \"@market/models/IPigeonCartItem\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport { cartStore } from \"@market/stores/App.store.modules\";\r\nimport PackagePictureCollage from \"@pigeon/components/package/PackagePictureCollage.vue\";\r\nimport PigeonPicture from \"@pigeon/components/pigeon/PigeonPicture.vue\";\r\nimport { IPigeonManager } from \"@pigeon/services/contracts/IPigeonManager\";\r\nimport { IProductManager } from \"@pigeon/services/contracts/IProductManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n PigeonPicture,\r\n PackagePicture: PackagePictureCollage\r\n }\r\n})\r\nexport default class CartTable extends Vue {\r\n @Inject()\r\n private pigeonManager: IPigeonManager;\r\n @Inject()\r\n private productManager: IProductManager;\r\n\r\n AppRoutes = AppRoutes;\r\n SexTypes = SexTypes;\r\n ProductTypes = ProductTypes;\r\n forceFallbackPicture: boolean = false;\r\n\r\n get CartItems(): ICartItem[] | IPigeonCartItem[] | IPackageCartItem[] {\r\n return cartStore.items;\r\n }\r\n\r\n public RemoveCartItem(itemId: number): void {\r\n cartStore.RemoveItem(itemId);\r\n }\r\n\r\n public PigeonSexIcon(cartItem: ICartItem): string {\r\n if (cartItem.product !== ProductTypes.Pigeon) return \"\";\r\n\r\n const pigeon: IPigeonCartItem = cartItem as IPigeonCartItem;\r\n return this.pigeonManager.GetSexIcon(pigeon);\r\n }\r\n\r\n public GetProductReferenceSlug(cartItem: ICartItem): string | undefined {\r\n return this.productManager.GetProductReferenceSlug(cartItem);\r\n }\r\n\r\n public GetProductNameSlug(cartItem: ICartItem): string | undefined {\r\n return this.productManager.GetProductNameSlug(cartItem);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./CartTable.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./CartTable.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CartTable.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./CartTable.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./CartTable.vue?vue&type=template&id=394f26d9&scoped=true\"\nimport script from \"./CartTable.ts?vue&type=script&lang=ts&external\"\nexport * from \"./CartTable.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./CartTable.vue?vue&type=style&index=0&id=394f26d9&prod&lang=scss&scoped=true\"\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 \"394f26d9\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./CartTable.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","import { signInDialogStore } from \"@market/stores/App.store.modules\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class AccountSignInRecoveryDoneView extends Vue {\r\n @Prop()\r\n readonly email: string;\r\n\r\n public ToggleSignInDialog(): void {\r\n signInDialogStore.Toggle();\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignInRecoveryDone.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignInRecoveryDone.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignInRecoveryDone.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignInRecoveryDone.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AccountSignInRecoveryDone.vue?vue&type=template&id=40f191ab&scoped=true\"\nimport script from \"./AccountSignInRecoveryDone.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AccountSignInRecoveryDone.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AccountSignInRecoveryDone.vue?vue&type=style&index=0&id=40f191ab&prod&lang=scss&scoped=true\"\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 \"40f191ab\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AccountSignInRecoveryDone.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('section',[_c('article',{staticClass:\"dialog_inner\"},[_c('header',{staticClass:\"text-center\",attrs:{\"id\":\"recoveryHeader\"}},[_c('Icon',{staticClass:\"fa-3x mb-1 text-info\",attrs:{\"icon\":\"key\"}}),_c('h3',{staticClass:\"h3 text-info\"},[_vm._v(_vm._s(_vm.$t(\"reset_password\")))])],1),_c('AppAlert',{attrs:{\"icon\":['far', 'envelope'],\"link-href\":_vm.$auth.MailProviderWebSite,\"link-external\":true,\"link-label\":_vm.$t('action.go_inbox'),\"type\":\"info\"}},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('recovery_instructions'))}})])],1),_c('button',{staticClass:\"btn btn-info dialog-btn\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.ToggleSignInDialog()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"action.sign_in\"))+\" \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IAccountsService } from \"@api/contracts/auth/IAccountsService\";\r\nimport { Channels } from \"@api/enumerations/Channels\";\r\nimport { IRecovery } from \"@api/models/auth/IRecovery\";\r\nimport AccountSignInRecoveryDoneView from \"@market/pages/views/auth/AccountSignInRecoveryDone.vue\";\r\nimport { IErrorManager } from \"@pigeon/services/contracts/IErrorManager\";\r\nimport { ErrorManager } from \"@pigeon/services/ErrorManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { ValidationObserver } from \"vee-validate\";\r\nimport { Component, Emit, Ref, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n SignInRecoveryDone: AccountSignInRecoveryDoneView\r\n }\r\n})\r\nexport default class AccountSignInRecoveryView extends Vue {\r\n @Ref()\r\n readonly refValidation: InstanceType;\r\n\r\n @Inject()\r\n private accountsService: IAccountsService;\r\n\r\n recovery: IRecovery = {} as IRecovery;\r\n recoveryIsDone: boolean = false;\r\n errorManager: IErrorManager = new ErrorManager();\r\n isProcessing: boolean = false;\r\n\r\n mounted() {\r\n this.errorManager = new ErrorManager(this.refValidation);\r\n }\r\n\r\n @Emit(\"sign-in\")\r\n public SignIn() {}\r\n\r\n public Submit(): void {\r\n if (!this.recovery || !this.recovery.email) return;\r\n\r\n // Reset errors\r\n this.errorManager.Reset();\r\n this.isProcessing = true;\r\n this.accountsService\r\n .RecoverAccount(Channels.Market, this.recovery, this.$i18n.locale)\r\n .then((response) => {\r\n this.recoveryIsDone = true;\r\n })\r\n .catch((error: any) => {\r\n this.errorManager.HandleError(error);\r\n })\r\n .finally(() => {\r\n this.isProcessing = false;\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignInRecovery.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignInRecovery.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignInRecovery.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignInRecovery.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AccountSignInRecovery.vue?vue&type=template&id=e286516a\"\nimport script from \"./AccountSignInRecovery.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AccountSignInRecovery.ts?vue&type=script&lang=ts&external\"\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\n/* custom blocks */\nimport block0 from \"./AccountSignInRecovery.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('section',[_c('ValidationObserver',{ref:\"refValidation\",scopedSlots:_vm._u([{key:\"default\",fn:function({ passes }){return [(!_vm.recoveryIsDone)?_c('form',{attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return passes(_vm.Submit)}}},[_c('section',{staticClass:\"dialog_inner\"},[_c('FormFields',[_c('FormInput',{attrs:{\"has-floating-label\":true,\"autocomplete\":\"email\",\"label\":_vm.$t('form.email.label'),\"name\":\"email\",\"required\":\"\",\"type\":\"email\",\"validation-rules\":\"required|email\",\"validation-mode\":\"eager\"},model:{value:(_vm.recovery.email),callback:function ($$v) {_vm.$set(_vm.recovery, \"email\", $$v)},expression:\"recovery.email\"}})],1),_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.SignIn()}}},[_vm._v(_vm._s(_vm.$t(\"form.sign_in\")))])],1),_c('AppErrors',{attrs:{\"error-messages\":_vm.errorManager.ErrorMessages}}),_c('button',{staticClass:\"btn btn-primary dialog-btn\",attrs:{\"disabled\":_vm.isProcessing,\"type\":\"submit\"}},[(!_vm.isProcessing)?_c('span',[_vm._v(_vm._s(_vm.$t(\"form.send\")))]):_c('AppLoader',{staticClass:\"justify-content-center\",attrs:{\"inline\":true,\"color\":\"#FFF\"}})],1)],1):_vm._e()]}}])}),(_vm.recoveryIsDone)?_c('SignInRecoveryDone',{attrs:{\"email\":_vm.recovery.email}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IAuthentication } from \"@api/models/auth/IAuthentication\";\r\nimport AccountSignInRecoveryView from \"@market/pages/views/auth/AccountSignInRecovery.vue\";\r\nimport { authStore, signInDialogStore, signUpDialogStore } from \"@market/stores/App.store.modules\";\r\nimport { IErrorManager } from \"@pigeon/services/contracts/IErrorManager\";\r\nimport { ErrorManager } from \"@pigeon/services/ErrorManager\";\r\nimport { ValidationObserver } from \"vee-validate\";\r\nimport { Component, Ref, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n SignInRecoveryView: AccountSignInRecoveryView\r\n }\r\n})\r\nexport default class AccountSignInView extends Vue {\r\n @Ref()\r\n readonly refValidation: InstanceType;\r\n\r\n errorManager: IErrorManager = new ErrorManager();\r\n authentication: IAuthentication = {\r\n email: \"\",\r\n password: \"\"\r\n };\r\n hasForgottenPassword: boolean = false;\r\n isProcessing: boolean = false;\r\n\r\n mounted() {\r\n this.errorManager = new ErrorManager(this.refValidation);\r\n }\r\n\r\n public SwitchToRecovery() {\r\n this.hasForgottenPassword = true;\r\n }\r\n\r\n public SwitchToSignIn() {\r\n this.hasForgottenPassword = false;\r\n }\r\n\r\n public SwitchToSignUpDialog() {\r\n signInDialogStore.Close();\r\n signUpDialogStore.Open();\r\n }\r\n\r\n public async Login(authentication: IAuthentication): Promise {\r\n try {\r\n await authStore.Login(authentication);\r\n signInDialogStore.Close();\r\n } catch (error: any) {\r\n this.errorManager.HandleError(error);\r\n }\r\n }\r\n\r\n public async Submit() {\r\n // Reset errors\r\n this.errorManager.Reset();\r\n this.isProcessing = true;\r\n\r\n // Log user here\r\n this.Login(this.authentication).finally(() => {\r\n this.isProcessing = false;\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignIn.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignIn.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignIn.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignIn.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AccountSignIn.vue?vue&type=template&id=4bbe2c26\"\nimport script from \"./AccountSignIn.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AccountSignIn.ts?vue&type=script&lang=ts&external\"\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\n/* custom blocks */\nimport block0 from \"./AccountSignIn.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('section',[_c('AppAlert',{staticClass:\"d-flex align-items-center py-2 m-0 bd-radius-0\",attrs:{\"type\":\"info\",\"outline\":true}},[_c('div',[_c('Icon',{staticClass:\"mr-2\",staticStyle:{\"width\":\"20px\"},attrs:{\"icon\":\"user-plus\"}}),_vm._v(\" \"+_vm._s(_vm.$t('form.sign_up_message'))+\" \")],1),_c('div',{staticClass:\"d-flex ml-2\"},[_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.SwitchToSignUpDialog()}}},[_c('span',[_vm._v(_vm._s(_vm.$t('form.sign_up')))])])])]),_c('ValidationObserver',{ref:\"refValidation\",attrs:{\"slim\":\"\"},scopedSlots:_vm._u([{key:\"default\",fn:function({ passes }){return [(!_vm.hasForgottenPassword)?_c('form',{attrs:{\"novalidate\":\"\",\"data-cy\":\"sign-in-form\"},on:{\"submit\":function($event){$event.preventDefault();return passes(_vm.Submit)}}},[_c('section',{staticClass:\"dialog_inner\"},[_c('FormFields',[_c('FormInput',{attrs:{\"has-floating-label\":true,\"autocomplete\":\"email\",\"label\":_vm.$t('form.email.label'),\"name\":\"email\",\"required\":\"\",\"type\":\"email\",\"validation-rules\":\"required|email\",\"validation-mode\":\"eager\"},model:{value:(_vm.authentication.email),callback:function ($$v) {_vm.$set(_vm.authentication, \"email\", $$v)},expression:\"authentication.email\"}})],1),_c('FormFields',[_c('FormInput',{attrs:{\"has-floating-label\":true,\"autocomplete\":\"current-password\",\"label\":_vm.$t('form.password.label'),\"name\":\"password\",\"required\":\"\",\"type\":\"password\",\"validation-rules\":\"required\"},model:{value:(_vm.authentication.password),callback:function ($$v) {_vm.$set(_vm.authentication, \"password\", $$v)},expression:\"authentication.password\"}})],1),_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.SwitchToRecovery()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"form.forgot_password\"))+\" \")])],1),_c('AppErrors',{attrs:{\"error-messages\":_vm.errorManager.ErrorMessages}}),_c('button',{staticClass:\"btn btn-primary dialog-btn\",class:{ 'btn-danger': _vm.errorManager.HasErrors },attrs:{\"disabled\":_vm.isProcessing,\"type\":\"submit\"}},[(!_vm.isProcessing)?_c('span',[_vm._v(_vm._s(_vm.$t(\"form.sign_in\")))]):_c('AppLoader',{staticClass:\"justify-content-center\",attrs:{\"inline\":true,\"color\":\"#FFF\"}})],1)],1):_vm._e()]}}])}),(_vm.hasForgottenPassword)?_c('SignInRecoveryView',{on:{\"sign-in\":function($event){return _vm.SwitchToSignIn()}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AppRoutes } from \"@market/routers/App.routes\";\r\nimport {\r\n approvalStore,\r\n authStore,\r\n depositStore,\r\n notificationStore,\r\n settlementStore,\r\n signOnDialogStore\r\n} from \"@market/stores/App.store.modules\";\r\nimport ModuleStripeConnect from \"@pigeon/components/module/ModuleStripeConnect.vue\";\r\nimport ProductCountryFlag from \"@pigeon/components/product/ProductCountryFlag.vue\";\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\nimport { BadgeLevels } from \"@pigeon/components/app/AppBadge\";\r\n\r\n@Component({\r\n components: {\r\n ModuleStripeConnect,\r\n CountryFlag: ProductCountryFlag\r\n }\r\n})\r\nexport default class AccountSignOnView extends Vue {\r\n BadgeLevels = BadgeLevels;\r\n\r\n //#region Notifications\r\n get UnreadNotificationsCount(): number {\r\n return notificationStore.UnreadPMarketNotificationsCount;\r\n }\r\n\r\n get AwaitingSettlementsCount(): number {\r\n return settlementStore.pendingSettlementsCount;\r\n }\r\n\r\n get AwaitingDepositsCount(): number {\r\n return depositStore.pendingDepositsCount;\r\n }\r\n\r\n get PendingApprovalSalesCount(): number {\r\n return approvalStore.pendingApprovalSalesCount;\r\n }\r\n //#endregion\r\n\r\n public CloseSignOnDialog(): void {\r\n signOnDialogStore.Close();\r\n }\r\n\r\n public SignOut(): void {\r\n authStore.Logout();\r\n signOnDialogStore.Close();\r\n }\r\n\r\n public GoToBuyerDashboard(): void {\r\n if (this.$route.name === AppRoutes.BuyerDashboard) return;\r\n\r\n this.$router.push({ name: AppRoutes.BuyerDashboard });\r\n }\r\n\r\n public GoToBreederDashboard(): void {\r\n if (this.$route.name === AppRoutes.BreederDashboard) return;\r\n\r\n this.$router.push({ name: AppRoutes.BreederDashboard });\r\n }\r\n\r\n public GoToBusinessDashboard(): void {\r\n if (this.$route.name === AppRoutes.VendorDashboard) return;\r\n\r\n this.$router.push({ name: AppRoutes.VendorDashboard });\r\n }\r\n\r\n public GoToApproverPage(): void {\r\n if (this.$route.name === AppRoutes.AdminApprovalSales) return;\r\n\r\n this.$router.push({ name: AppRoutes.AdminApprovalSales });\r\n }\r\n\r\n public GoToAdminDashboard(): void {\r\n if (this.$route.name === AppRoutes.AdminDashboard) return;\r\n\r\n this.$router.push({ name: AppRoutes.AdminDashboard });\r\n }\r\n\r\n public GoToMessagesCenter(): void {\r\n if (this.$route.name === AppRoutes.AccountMessages) return;\r\n\r\n this.$router.push({ name: AppRoutes.AccountMessages });\r\n }\r\n\r\n public GoToNotificationsCenter(): void {\r\n if (this.$route.name === AppRoutes.AccountNotifications) return;\r\n\r\n this.$router.push({ name: AppRoutes.AccountNotifications });\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignOn.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignOn.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignOn.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignOn.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AccountSignOn.vue?vue&type=template&id=81ec7c96&scoped=true\"\nimport script from \"./AccountSignOn.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AccountSignOn.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AccountSignOn.vue?vue&type=style&index=0&id=81ec7c96&prod&lang=scss&scoped=true\"\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 \"81ec7c96\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AccountSignOn.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[(_vm.$auth.User)?_c('section',{staticClass:\"dialog_inner\"},[_c('div',[_c('span',{staticClass:\"text-big\"},[_vm._v(_vm._s(_vm.$t(\"hello\")))]),_c('div',[_c('span',{staticClass:\"fg-primary font-weight-regular text-big\"},[_vm._v(_vm._s(_vm.$auth.User.firstname)+\" \"+_vm._s(_vm.$auth.User.lastname)+\" \"),(_vm.$auth.User.buyerAlias)?_c('small',{attrs:{\"tootip\":_vm.$t('alias_name')}},[_vm._v(\"| \"+_vm._s(_vm.$auth.User.buyerAlias))]):_vm._e()])]),_c('div',{staticClass:\"d-flex\"},[_c('span',{staticClass:\"fg-darkest\"},[_vm._v(_vm._s(_vm.$auth.User.email))]),_c('CountryFlag',{staticClass:\"ml-auto mt-1\",attrs:{\"country-code\":_vm.$auth.User.countryCode}})],1)])]):_vm._e(),_c('ul',{staticClass:\"list-group bd-radius-0\",attrs:{\"data-cy\":\"quick-access\"}},[_c('li',{staticClass:\"list-group-item bg-light text-smallcaps\"},[_vm._v(_vm._s(_vm.$t('quick_access')))]),(_vm.$auth.IsMember)?_c('li',{staticClass:\"list-group-item d-flex align-items-center fg-primary\"},[_c('button',{staticClass:\"btn btn-link fg-primary\",attrs:{\"type\":\"button\",\"role\":\"navigation\",\"data-cy\":\"go-notifications-center\"},on:{\"click\":function($event){_vm.GoToNotificationsCenter(); _vm.CloseSignOnDialog();}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"action.go_notifications_center\"))+\" \"),_c('div',{staticClass:\"badges\"},[(_vm.$auth.IsAdministrator && _vm.AwaitingSettlementsCount > 0)?_c('AppBadge',{attrs:{\"level\":_vm.BadgeLevels.High,\"count\":_vm.AwaitingSettlementsCount}}):_vm._e(),(_vm.$auth.IsAdministrator && _vm.AwaitingDepositsCount > 0)?_c('AppBadge',{attrs:{\"level\":_vm.BadgeLevels.High,\"count\":_vm.AwaitingDepositsCount}}):_vm._e(),(_vm.$auth.IsApprover && _vm.PendingApprovalSalesCount > 0)?_c('AppBadge',{attrs:{\"level\":_vm.BadgeLevels.Medium,\"count\":_vm.PendingApprovalSalesCount}}):_vm._e(),(_vm.UnreadNotificationsCount > 0)?_c('AppBadge',{attrs:{\"level\":_vm.BadgeLevels.Low,\"count\":_vm.UnreadNotificationsCount}}):_vm._e()],1)]),_c('icon',{staticClass:\"ml-auto\",attrs:{\"icon\":\"bell\"}})],1):_vm._e(),(_vm.$auth.IsMember)?_c('li',{staticClass:\"list-group-item d-flex align-items-center fg-primary\"},[_c('button',{staticClass:\"btn btn-link fg-primary\",attrs:{\"type\":\"button\",\"role\":\"navigation\",\"data-cy\":\"go-dashboard\"},on:{\"click\":function($event){_vm.GoToBuyerDashboard(); _vm.CloseSignOnDialog();}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"action.go_dashboard\"))+\" \")]),_c('icon',{staticClass:\"ml-auto\",attrs:{\"icon\":\"angle-right\"}})],1):_vm._e(),(_vm.$auth.IsVendor)?_c('li',{staticClass:\"list-group-item d-flex align-items-center\"},[_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\",\"role\":\"navigation\",\"data-cy\":\"go-breeder-dashboard\"},on:{\"click\":function($event){_vm.GoToBreederDashboard(); _vm.CloseSignOnDialog();}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"action.go_breeder_dashboard\"))+\" \")]),_c('icon',{staticClass:\"ml-auto\",attrs:{\"icon\":\"angle-right\"}})],1):_vm._e(),(_vm.$auth.IsVendor)?_c('li',{staticClass:\"list-group-item d-flex align-items-center text-success\"},[_c('button',{staticClass:\"btn btn-link text-success\",attrs:{\"type\":\"button\",\"role\":\"navigation\",\"data-cy\":\"go-business-dashboard\"},on:{\"click\":function($event){_vm.GoToBusinessDashboard(); _vm.CloseSignOnDialog();}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"action.go_business_dashboard\"))+\" \")]),_c('icon',{staticClass:\"ml-auto\",attrs:{\"icon\":\"angle-right\"}})],1):_vm._e(),(_vm.$auth.IsAdministrator)?_c('li',{staticClass:\"list-group-item d-flex align-items-center text-warning\"},[_c('button',{staticClass:\"btn btn-link text-warning\",attrs:{\"type\":\"button\",\"role\":\"navigation\",\"data-cy\":\"go-admin-dashboard\"},on:{\"click\":function($event){_vm.GoToAdminDashboard(); _vm.CloseSignOnDialog();}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"action.go_admin_dashboard\"))+\" \")]),_c('icon',{staticClass:\"ml-auto\",attrs:{\"icon\":\"angle-right\"}})],1):(_vm.$auth.IsApprover)?_c('li',{staticClass:\"list-group-item d-flex align-items-center text-warning\"},[_c('button',{staticClass:\"btn btn-link text-warning\",attrs:{\"type\":\"button\",\"role\":\"navigation\",\"data-cy\":\"go-admin-approval\"},on:{\"click\":function($event){_vm.GoToApproverPage(); _vm.CloseSignOnDialog();}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"action.go_approver_page\"))+\" \")]),_c('icon',{staticClass:\"ml-auto\",attrs:{\"icon\":\"angle-right\"}})],1):_vm._e()]),_c('div',{staticClass:\"d-flex\"},[_c('button',{staticClass:\"btn btn-outline-secondary dialog-btn\",attrs:{\"type\":\"button\",\"data-cy\":\"sign-out\"},on:{\"click\":function($event){_vm.SignOut(); _vm.CloseSignOnDialog();}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"action.logout\"))+\" \")])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export enum ContributorTypes {\r\n Amateur = \"Ama\",\r\n Professional = \"Pro\"\r\n}\r\n","import { IContributorRegistration } from \"@api/models/auth/IContributorRegistration\";\r\nimport { IContributorUpgradeRegistration } from \"@api/models/auth/IContributorUpgradeRegistration\";\r\nimport { IRegistration } from \"@api/models/auth/IRegistration\";\r\nimport { IVendorRegistration } from \"@api/models/auth/IVendorRegistration\";\r\nimport { IVendorUpgradeRegistration } from \"@api/models/auth/IVendorUpgradeRegistration\";\r\nimport { ContributorTypes } from \"@api/models/market/constants/ContributorTypes\";\r\nimport { DEFAULT_LOCALE } from \"@pigeon/i18n/i18n.const\";\r\n\r\nexport class RegistrationFactory {\r\n public static GetDefaultRegistration(): IRegistration {\r\n return {\r\n firstname: \"\",\r\n lastname: \"\",\r\n buyerAlias: \"\",\r\n countryCode: \"\",\r\n email: \"\",\r\n password: \"\",\r\n preferredLanguage: DEFAULT_LOCALE,\r\n terms: false,\r\n redirectUrl: \"\"\r\n };\r\n }\r\n\r\n public static GetDefaultVendorRegistration(): IVendorRegistration {\r\n const baseRegistration = RegistrationFactory.GetDefaultRegistration();\r\n\r\n return {\r\n ...baseRegistration,\r\n buyerAlias: \"\",\r\n shopId: \"\",\r\n iban: \"\",\r\n countryCode: \"BE\",\r\n corporation: null,\r\n terms: false,\r\n redirectUrl: \"\"\r\n };\r\n }\r\n\r\n public static GetDefaultVendorUpgradeRegistration(): IVendorUpgradeRegistration {\r\n return {\r\n shopId: \"\",\r\n iban: \"\",\r\n countryCode: \"BE\",\r\n corporation: null,\r\n terms: false,\r\n redirectUrl: \"\"\r\n };\r\n }\r\n\r\n public static GetDefaultContributorRegistration(): IContributorRegistration {\r\n const baseRegistration = RegistrationFactory.GetDefaultRegistration();\r\n\r\n return {\r\n ...baseRegistration,\r\n contributorAlias: \"\",\r\n countryCode: \"\",\r\n contributorType: ContributorTypes.Amateur,\r\n terms: false,\r\n redirectUrl: \"\"\r\n };\r\n }\r\n\r\n public static GetDefaultContributorUpgradeRegistration(): IContributorUpgradeRegistration {\r\n return {\r\n contributorAlias: \"\",\r\n countryCode: \"\",\r\n contributorType: ContributorTypes.Amateur,\r\n terms: false,\r\n redirectUrl: \"\"\r\n };\r\n }\r\n}\r\n","import { signUpDialogStore } from \"@market/stores/App.store.modules\";\r\nimport { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class AccountSignUpDoneView extends Vue {\r\n @Prop()\r\n readonly email: string;\r\n\r\n public CloseDialog(): void {\r\n signUpDialogStore.Close();\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignUpDone.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignUpDone.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignUpDone.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignUpDone.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AccountSignUpDone.vue?vue&type=template&id=2d33a8de\"\nimport script from \"./AccountSignUpDone.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AccountSignUpDone.ts?vue&type=script&lang=ts&external\"\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\n/* custom blocks */\nimport block0 from \"./AccountSignUpDone.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('section',{attrs:{\"data-cy\":\"sign-up-done-box\"}},[_c('article',{staticClass:\"dialog_inner\"},[_c('header',{staticClass:\"text-center\",attrs:{\"id\":\"welcomeHeader\"}},[_c('Icon',{staticClass:\"fa-3x mb-1 text-success\",attrs:{\"icon\":\"check\"}}),_c('h3',{staticClass:\"h3 text-success\",attrs:{\"data-cy\":\"sign-up-status\"}},[_vm._v(_vm._s(_vm.$t(\"welcome\")))]),_c('p',[_vm._v(_vm._s(_vm.$t(\"enjoy_experience\")))])],1)]),_c('button',{staticClass:\"btn btn-success dialog-btn\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.CloseDialog()}}},[_vm._v(_vm._s(_vm.$t(\"action.close\")))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IAccountsService } from \"@api/contracts/auth/IAccountsService\";\r\nimport { Channels } from \"@api/enumerations/Channels\";\r\nimport { IAccountEmailVerification } from \"@api/models/auth/IAccountEmailVerification\";\r\nimport { IAuthSession } from \"@api/models/auth/IAuthSession\";\r\nimport { accountStore } from \"@market/stores/App.store.modules\";\r\nimport { IErrorManager } from \"@pigeon/services/contracts/IErrorManager\";\r\nimport { ErrorManager } from \"@pigeon/services/ErrorManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { ValidationObserver } from \"vee-validate\";\r\nimport { Component, Prop, Ref, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class AccountSignUpVerificationView extends Vue {\r\n static readonly VERIFICATION_CODE_LENGTH: number = 6;\r\n\r\n @Prop()\r\n readonly email: string;\r\n @Prop()\r\n readonly authSession: IAuthSession;\r\n\r\n @Ref()\r\n readonly refValidation: InstanceType;\r\n\r\n @Inject()\r\n private accountsService: IAccountsService;\r\n\r\n VERIFICATION_CODE_LENGTH = AccountSignUpVerificationView.VERIFICATION_CODE_LENGTH;\r\n verificationCode: string | null = null;\r\n verificationEmailHasBeenSent: boolean = false;\r\n verificationCodeHasFailed: boolean = false;\r\n isProcessing: boolean = false;\r\n errorManager: IErrorManager = new ErrorManager();\r\n\r\n mounted() {\r\n this.errorManager = new ErrorManager(this.refValidation);\r\n }\r\n\r\n public async SendNewVerificationCodeEmail() {\r\n if (!this.$auth.User) return;\r\n\r\n const verification: IAccountEmailVerification = { email: this.$auth.User.email };\r\n await this.accountsService.SendNewEmailVerification(Channels.Market, verification, this.$i18n.locale);\r\n accountStore.FlagVerificationAsResent();\r\n this.verificationEmailHasBeenSent = true;\r\n\r\n setTimeout(() => {\r\n this.verificationEmailHasBeenSent = false;\r\n }, 60 * 1000);\r\n }\r\n\r\n // email verification code form submit\r\n public async Submit() {\r\n if (!this.$auth.IsAuthenticated || !this.$auth.User?.id || !this.verificationCode) return;\r\n\r\n const userId: string = this.$auth.User.id;\r\n const securityToken: string = this.verificationCode.replaceAll(/\\s/g, \"\");\r\n\r\n if (!userId || !securityToken) throw new Error(\"Account: Missing parameter exception\");\r\n this.isProcessing = true;\r\n this.verificationCodeHasFailed = false;\r\n this.errorManager.Reset();\r\n\r\n try {\r\n const verificationResponse = await this.accountsService.VerifyEmail({\r\n userId: userId,\r\n securityToken: securityToken,\r\n channel: Channels.Market\r\n });\r\n if (verificationResponse.data == true) accountStore.FlagAccountAsVerified();\r\n else this.verificationCodeHasFailed = true;\r\n } catch (error: any) {\r\n this.errorManager.HandleError(error);\r\n } finally {\r\n this.isProcessing = false;\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignUpVerification.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignUpVerification.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignUpVerification.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignUpVerification.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AccountSignUpVerification.vue?vue&type=template&id=7d5b8628&scoped=true\"\nimport script from \"./AccountSignUpVerification.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AccountSignUpVerification.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AccountSignUpVerification.vue?vue&type=style&index=0&id=7d5b8628&prod&lang=scss&scoped=true\"\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 \"7d5b8628\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AccountSignUpVerification.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('section',{attrs:{\"data-cy\":\"sign-up-done-box\"}},[_c('article',{staticClass:\"dialog_inner\"},[_c('header',{staticClass:\"text-center\"},[_c('Icon',{staticClass:\"fa-3x mb-1 text-warning\",attrs:{\"icon\":\"check\"}}),_c('h3',{staticClass:\"h3 text-warning\",attrs:{\"data-cy\":\"verification-status\"}},[_vm._v(_vm._s(_vm.$t(\"last_step\")))]),_c('p',[_vm._v(_vm._s(_vm.$t(\"almost_done\")))])],1),_c('AppAlert',{staticClass:\"position-relative mb-0 pb-2 bd-radius-bottom-0\",attrs:{\"icon\":['far', 'envelope'],\"type\":\"info\"}},[_c('p',{staticClass:\"mb-0 mt-2\",domProps:{\"innerHTML\":_vm._s(_vm.$t('verification_instructions'))}}),_c('small',{staticClass:\"text-info\"},[_vm._v(_vm._s(_vm.$t('verification_spam_instructions')))]),(!_vm.verificationEmailHasBeenSent)?_c('button',{staticClass:\"d-block btn btn-outline-info text-small position-absolute r-0 t-0\",staticStyle:{\"border-top-right-radius\":\"0.25rem\"},attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.SendNewVerificationCodeEmail()}}},[_c('span',[_vm._v(_vm._s(_vm.$t('action.send_new_verification_code')))])]):_c('a',{staticClass:\"btn btn-link text-small position-absolute r-0 t-0\",attrs:{\"href\":_vm.$auth.MailProviderWebSite,\"target\":\"_blank\"}},[_vm._v(\" \"+_vm._s(_vm.$t('go_inbox'))+\" \")])]),_c('AppAlert',{staticClass:\"mt-0 bd-radius-top-0\",attrs:{\"type\":\"success\"}},[_c('div',[_vm._v(_vm._s(_vm.$t('verification_code_instructions')))]),_c('ValidationObserver',{ref:\"refValidation\",scopedSlots:_vm._u([{key:\"default\",fn:function({ passes }){return [_c('form',{staticClass:\"mt-2\",attrs:{\"novalidate\":\"\",\"data-cy\":\"email-verification-code-form\"},on:{\"submit\":function($event){$event.preventDefault();return passes(_vm.Submit)}}},[_c('section',[_c('FormFields',[_c('FormInput',{staticClass:\"input-verification-code\",attrs:{\"has-floating-label\":false,\"label\":_vm.$t('form.verification_code.label'),\"name\":\"verification-code\",\"placeholder\":\"000000\",\"required\":\"\",\"type\":\"text\",\"minlength\":_vm.VERIFICATION_CODE_LENGTH,\"maxlength\":_vm.VERIFICATION_CODE_LENGTH,\"validation-rules\":`required|digits:${_vm.VERIFICATION_CODE_LENGTH}`,\"validation-mode\":\"eager\"},model:{value:(_vm.verificationCode),callback:function ($$v) {_vm.verificationCode=$$v},expression:\"verificationCode\"}})],1)],1),(_vm.verificationCodeHasFailed)?_c('div',{staticClass:\"p-1 mt-1 text-center text-danger\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('message.verification_code_error'))}})]):_vm._e(),_c('AppErrors',{attrs:{\"error-messages\":_vm.errorManager.ErrorMessages}}),_c('button',{staticClass:\"btn btn-success dialog-btn\",class:{ 'btn-success': !_vm.verificationCodeHasFailed, 'btn-danger': _vm.verificationCodeHasFailed },attrs:{\"disabled\":_vm.isProcessing,\"type\":\"submit\"}},[(!_vm.isProcessing)?_c('span',[_vm._v(_vm._s(_vm.$t(\"action.verify\")))]):_c('AppLoader',{staticClass:\"justify-content-center\",attrs:{\"inline\":true,\"color\":\"#FFF\"}})],1)],1)]}}])})],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IAccountsService } from \"@api/contracts/auth/IAccountsService\";\r\nimport { Channels } from \"@api/enumerations/Channels\";\r\nimport { RegistrationFactory } from \"@api/factories/registrationFactory\";\r\nimport { IAuthSession } from \"@api/models/auth/IAuthSession\";\r\nimport { IRegistration } from \"@api/models/auth/IRegistration\";\r\nimport AccountSignUpDoneView from \"@market/pages/views/auth/AccountSignUpDone.vue\";\r\nimport AccountSignUpVerificationView from \"@market/pages/views/auth/AccountSignUpVerification.vue\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport {\r\n appDataStore,\r\n authStore,\r\n signInDialogStore,\r\n signUpDialogStore,\r\n signUpVendorDialogStore\r\n} from \"@market/stores/App.store.modules\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { IListOption } from \"@pigeon/models/IListOption\";\r\nimport { IErrorManager } from \"@pigeon/services/contracts/IErrorManager\";\r\nimport { ErrorManager } from \"@pigeon/services/ErrorManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { ValidationObserver } from \"vee-validate\";\r\nimport { Component, Ref, Vue, Watch } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n SignUpDone: AccountSignUpDoneView,\r\n SignUpVerification: AccountSignUpVerificationView\r\n }\r\n})\r\nexport default class AccountSignUpView extends Vue {\r\n @Ref()\r\n readonly refValidation: InstanceType;\r\n\r\n @Inject()\r\n private accountsService: IAccountsService;\r\n\r\n AppRoutes = AppRoutes;\r\n registration: IRegistration = RegistrationFactory.GetDefaultRegistration();\r\n registrationIsDone: boolean = false;\r\n isProcessing: boolean = false;\r\n errorManager: IErrorManager = new ErrorManager();\r\n\r\n get CountryOptions(): IListOption[] {\r\n return appDataStore.CountryOptions;\r\n }\r\n\r\n mounted() {\r\n this.errorManager = new ErrorManager(this.refValidation);\r\n }\r\n\r\n @Watch(nameof(\"$route\"), { immediate: true })\r\n ObserveRedirectUrl(): void {\r\n this.registration.redirectUrl = this.$route.path;\r\n }\r\n\r\n public SwitchToSignUpVendorDialog(): void {\r\n signUpDialogStore.Close();\r\n signUpVendorDialogStore.Open();\r\n }\r\n\r\n public SwitchToSignInDialog(): void {\r\n signUpDialogStore.Close();\r\n signInDialogStore.Open();\r\n }\r\n\r\n // sign up form submit\r\n public async Submit() {\r\n if (!this.registration) return;\r\n\r\n this.isProcessing = true;\r\n this.errorManager.Reset();\r\n\r\n // Set current UI locale as preferred language\r\n this.registration.preferredLanguage = this.$i18n.locale;\r\n\r\n this.accountsService\r\n .SignUp(Channels.Market, this.registration)\r\n .then((response) => {\r\n this.registrationIsDone = true;\r\n authStore.AuthSession(response.data); // auto sign on (after signing up)\r\n // signOnDialogStore.Open();\r\n })\r\n .catch((error: any) => {\r\n this.errorManager.HandleError(error);\r\n })\r\n .finally(() => {\r\n this.isProcessing = false;\r\n });\r\n }\r\n}\r\n","import mod from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignUp.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignUp.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignUp.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignUp.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AccountSignUp.vue?vue&type=template&id=3e7341f6\"\nimport script from \"./AccountSignUp.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AccountSignUp.ts?vue&type=script&lang=ts&external\"\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\n/* custom blocks */\nimport block0 from \"./AccountSignUp.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('section',[(!_vm.$auth.IsAuthenticated)?_c('div',[_c('AppAlert',{staticClass:\"d-flex align-items-center py-2 m-0 bd-radius-0\",attrs:{\"type\":\"success\",\"outline\":true}},[_c('div',[_c('Icon',{staticClass:\"mr-2\",staticStyle:{\"width\":\"20px\"},attrs:{\"icon\":\"user\"}}),_vm._v(\" \"+_vm._s(_vm.$t('form.already_member'))+\" \")],1),_c('div',{staticClass:\"d-flex ml-2\"},[_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.SwitchToSignInDialog()}}},[_c('span',[_vm._v(_vm._s(_vm.$t('form.sign_in')))])])])]),_c('AppAlert',{staticClass:\"d-flex align-items-center py-2 m-0 bd-radius-0\",attrs:{\"type\":\"info\",\"outline\":true}},[_c('div',[_c('Icon',{staticClass:\"mr-2\",staticStyle:{\"width\":\"20px\"},attrs:{\"icon\":\"info\"}}),_vm._v(\" \"+_vm._s(_vm.$t('form.be_vendor'))+\" \")],1),_c('div',{staticClass:\"d-flex ml-2\"},[_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.SwitchToSignUpVendorDialog()}}},[_c('span',[_vm._v(_vm._s(_vm.$t('form.sign_up_as_vendor')))])])])]),_c('ValidationObserver',{ref:\"refValidation\",scopedSlots:_vm._u([{key:\"default\",fn:function({ passes }){return [(_vm.registration && !_vm.registrationIsDone)?_c('form',{attrs:{\"novalidate\":\"\",\"data-cy\":\"sign-up-form\"},on:{\"submit\":function($event){$event.preventDefault();return passes(_vm.Submit)}}},[_c('section',{staticClass:\"dialog_inner\"},[_c('FormFields',{staticClass:\"row\"},[_c('div',{staticClass:\"col-6\"},[_c('FormInput',{attrs:{\"has-floating-label\":true,\"autocomplete\":\"given-name\",\"label\":_vm.$t('form.firstname.label'),\"name\":\"firstname\",\"required\":\"\",\"validation-rules\":\"required|max:50\"},model:{value:(_vm.registration.firstname),callback:function ($$v) {_vm.$set(_vm.registration, \"firstname\", $$v)},expression:\"registration.firstname\"}})],1),_c('div',{staticClass:\"col-6\"},[_c('FormInput',{attrs:{\"has-floating-label\":true,\"autocomplete\":\"family-name\",\"label\":_vm.$t('form.lastname.label'),\"name\":\"lastname\",\"required\":\"\",\"validation-rules\":\"required|max:50\"},model:{value:(_vm.registration.lastname),callback:function ($$v) {_vm.$set(_vm.registration, \"lastname\", $$v)},expression:\"registration.lastname\"}})],1)]),_c('FormFields',{staticClass:\"position-relative optional-fields\",class:{ 'has-value': _vm.registration.buyerAlias ? true : false }},[_c('span',{staticClass:\"input_caption alert-info\"},[_vm._v(_vm._s(_vm.$t(\"alert.caption.optional\")))]),_c('FormInput',{attrs:{\"has-floating-label\":true,\"label\":_vm.$t('form.alias.label'),\"name\":\"alias\",\"type\":\"text\",\"validation-rules\":\"unique_buyer_name\",\"validation-mode\":\"lazy\"},model:{value:(_vm.registration.buyerAlias),callback:function ($$v) {_vm.$set(_vm.registration, \"buyerAlias\", $$v)},expression:\"registration.buyerAlias\"}})],1),_c('FormFields',{staticClass:\"position-relative\",class:{ 'has-value': _vm.registration.countryCode ? true : false }},[_c('FormInputSelect',{attrs:{\"has-floating-label\":true,\"label\":_vm.$t('form.country.label'),\"options\":_vm.CountryOptions,\"name\":\"country\",\"validation-mode\":\"lazy\",\"validation-rules\":\"required\"},model:{value:(_vm.registration.countryCode),callback:function ($$v) {_vm.$set(_vm.registration, \"countryCode\", $$v)},expression:\"registration.countryCode\"}})],1),_c('FormFields',[_c('FormInput',{attrs:{\"has-floating-label\":true,\"autocomplete\":\"email\",\"label\":_vm.$t('form.email.label'),\"name\":\"email\",\"required\":\"\",\"type\":\"email\",\"validation-rules\":\"required|email|unique_member_email\",\"validation-mode\":\"lazy\"},model:{value:(_vm.registration.email),callback:function ($$v) {_vm.$set(_vm.registration, \"email\", $$v)},expression:\"registration.email\"}})],1),_c('FormFields',[_c('FormInput',{attrs:{\"has-floating-label\":true,\"autocomplete\":\"new-password\",\"label\":_vm.$t('form.password.label'),\"name\":\"password\",\"required\":\"\",\"type\":\"password\",\"validation-rules\":\"required|min:8|max:100\",\"validation-mode\":\"eager\"},model:{value:(_vm.registration.password),callback:function ($$v) {_vm.$set(_vm.registration, \"password\", $$v)},expression:\"registration.password\"}})],1),_c('FormFields',[_c('ValidationProvider',{attrs:{\"vid\":\"termsAndConditionsAccountSignUp\",\"rules\":\"agree\",\"tag\":\"div\",\"name\":_vm.$t('form.policies.terms_and_conditions'),\"customMessages\":{ required: _vm.$t('form.error.terms') }},scopedSlots:_vm._u([{key:\"default\",fn:function({ errors }){return [_c('FormInputCheck',{attrs:{\"name\":\"terms\",\"type\":\"checkbox\"},model:{value:(_vm.registration.terms),callback:function ($$v) {_vm.$set(_vm.registration, \"terms\", $$v)},expression:\"registration.terms\"}},[_c('i18n',{staticClass:\"ml-3\",attrs:{\"path\":\"form.policies.accept_$0_$1\",\"tag\":\"div\"}},[_c('I18nRouterLink',{attrs:{\"to\":{ name: _vm.AppRoutes.TermsAndConditions },\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t(\"form.policies.terms_and_conditions\")))]),_c('I18nRouterLink',{attrs:{\"to\":{ name: _vm.AppRoutes.PrivacyPolicy },\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t(\"form.policies.privacy_policy\")))])],1)],1),(errors && errors.length)?_c('AppError',[_vm._v(_vm._s(errors[0]))]):_vm._e()]}}],null,true)})],1),_c('div',{staticClass:\"form_note\"},[_c('small',[_vm._v(_vm._s(_vm.$t(\"form.never_share_data\")))])])],1),_c('AppErrors',{attrs:{\"error-messages\":_vm.errorManager.ErrorMessages}}),_c('button',{staticClass:\"btn btn-primary dialog-btn\",attrs:{\"disabled\":_vm.isProcessing,\"type\":\"submit\"}},[(!_vm.isProcessing)?_c('span',[_vm._v(_vm._s(_vm.$t(\"form.sign_up\")))]):_c('AppLoader',{staticClass:\"justify-content-center\",attrs:{\"inline\":true,\"color\":\"#FFF\"}})],1)],1):_vm._e()]}}],null,false,3971020063)})],1):_vm._e(),_c('div',[(_vm.$auth.IsAuthenticated && !_vm.$auth.AccountIsVerified)?_c('SignUpVerification',{attrs:{\"email\":_vm.registration.email}}):_vm._e(),((_vm.registrationIsDone || _vm.$auth.IsAuthenticated) && _vm.$auth.AccountIsVerified)?_c('SignUpDone',{attrs:{\"email\":_vm.registration.email}}):_vm._e()],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IAccountsService } from \"@api/contracts/auth/IAccountsService\";\r\nimport { Channels } from \"@api/enumerations/Channels\";\r\nimport { IAccountEmailVerification } from \"@api/models/auth/IAccountEmailVerification\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport { accountStore } from \"@market/stores/App.store.modules\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class AccountSignUpDoneView extends Vue {\r\n @Inject()\r\n private accountsService: IAccountsService;\r\n\r\n AppRoutes = AppRoutes;\r\n\r\n public SendVerification(): void {\r\n if (!this.$auth.User) return;\r\n\r\n const verification: IAccountEmailVerification = { email: this.$auth.User.email };\r\n this.accountsService.SendNewEmailVerification(Channels.Market, verification, this.$i18n.locale);\r\n accountStore.FlagVerificationAsResent();\r\n }\r\n}\r\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignUpDone.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignUpDone.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignUpDone.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignUpDone.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AccountSignUpDone.vue?vue&type=template&id=65aac4d4\"\nimport script from \"./AccountSignUpDone.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AccountSignUpDone.ts?vue&type=script&lang=ts&external\"\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\n/* custom blocks */\nimport block0 from \"./AccountSignUpDone.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('section',[_c('article',{staticClass:\"dialog_inner\"},[_c('header',{staticClass:\"text-center\"},[_c('Icon',{staticClass:\"fa-3x mb-1 text-success\",attrs:{\"icon\":['far', 'handshake']}}),_c('h3',{staticClass:\"h3 text-success\",attrs:{\"data-cy\":\"sign-up-status\"}},[_vm._v(_vm._s(_vm.$t(\"congratulations\")))]),_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('vendor_message'))}}),(_vm.$auth.IsAuthenticated && !_vm.$auth.AccountIsVerified)?_c('AppAlert',{staticClass:\"mt-5 bg-white\",attrs:{\"caption\":_vm.$t('alert.caption.required'),\"icon\":\"envelope\",\"type\":\"warning\"}},[_c('div',[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.$t('alert.validate_email.message'))}}),_c('div',{staticClass:\"text-center text-larger\",staticStyle:{\"margin-bottom\":\"-1.5rem\"}},[_c('button',{staticClass:\"btn btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.SendVerification()}}},[_vm._v(\" \"+_vm._s(_vm.$t(\"alert.validate_email.action.resend_email\"))+\" \")]),_c('small',[_vm._v(_vm._s(_vm.$t(\"alert.validate_email.action.or\")))]),_c('a',{staticClass:\"btn btn-link\",attrs:{\"target\":\"_blank\",\"href\":_vm.$auth.MailProviderWebSite}},[_vm._v(_vm._s(_vm.$t(\"alert.validate_email.action.go_inbox\")))])])])]):_vm._e()],1)]),(_vm.$auth.AccountIsVerified)?_c('I18nRouterLink',{staticClass:\"btn btn-success dialog-btn\",attrs:{\"tag\":\"button\",\"to\":{ name: _vm.AppRoutes.NewSaleSale },\"type\":\"button\"}},[_vm._v(_vm._s(_vm.$t(\"add_sale\")))]):_c('div',{staticClass:\"btn btn-success dialog-btn\",staticStyle:{\"cursor\":\"not-allowed\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"add_sale\"))+\" \")])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IAccountsService } from \"@api/contracts/auth/IAccountsService\";\r\nimport { RegistrationFactory } from \"@api/factories/registrationFactory\";\r\nimport { IAuthSession } from \"@api/models/auth/IAuthSession\";\r\nimport { IVendorRegistration } from \"@api/models/auth/IVendorRegistration\";\r\nimport { IVendorUpgradeRegistration } from \"@api/models/auth/IVendorUpgradeRegistration\";\r\nimport AccountSignUpDoneView from \"@market/pages/views/auth/vendor/AccountSignUpDone.vue\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport { appDataStore, authStore } from \"@market/stores/App.store.modules\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { DEFAULT_LOCALE } from \"@pigeon/i18n/i18n.const\";\r\nimport { IErrorManager } from \"@pigeon/services/contracts/IErrorManager\";\r\nimport { ErrorManager } from \"@pigeon/services/ErrorManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { cloneDeep } from \"lodash-es\";\r\nimport { ValidationObserver } from \"vee-validate\";\r\nimport { Component, Prop, Ref, Vue, Watch } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n SignUpDone: AccountSignUpDoneView\r\n }\r\n})\r\nexport default class AccountSignUpView extends Vue {\r\n @Ref()\r\n readonly refValidation: InstanceType;\r\n\r\n @Inject()\r\n private accountsService: IAccountsService;\r\n\r\n AppRoutes = AppRoutes;\r\n registration: IVendorUpgradeRegistration | IVendorRegistration = this.$auth.IsAuthenticated\r\n ? RegistrationFactory.GetDefaultVendorUpgradeRegistration()\r\n : RegistrationFactory.GetDefaultVendorRegistration();\r\n isACorporation: boolean = false;\r\n registrationIsDone: boolean = false;\r\n isProcessing: boolean = false;\r\n errorManager: IErrorManager = new ErrorManager();\r\n\r\n get IsUpgradeOperation(): boolean {\r\n return this.$auth.IsAuthenticated ? true : false;\r\n }\r\n\r\n get CountryCodes() {\r\n return appDataStore.CountryOptions;\r\n }\r\n\r\n mounted() {\r\n this.InitCorporation();\r\n this.errorManager = new ErrorManager(this.refValidation);\r\n }\r\n\r\n @Watch(nameof(\"$route\"), { immediate: true })\r\n ObserveRedirectUrl(): void {\r\n this.registration.redirectUrl = this.$route.path;\r\n }\r\n\r\n private InitCorporation(): void {\r\n if (this.$auth.User && this.$auth.User.corporation) {\r\n this.registration.corporation = cloneDeep(this.$auth.User.corporation);\r\n this.isACorporation = true;\r\n } else {\r\n this.registration.corporation = null;\r\n this.isACorporation = false;\r\n }\r\n }\r\n\r\n public OnIsACorporation(): void {\r\n if (this.isACorporation) {\r\n this.registration.corporation =\r\n this.$auth.User && this.$auth.User.corporation\r\n ? cloneDeep(this.$auth.User.corporation)\r\n : {\r\n name: \"\",\r\n vatNumber: \"\",\r\n userId: this.$auth.User ? this.$auth.User.id : \"\"\r\n };\r\n } else {\r\n this.registration.corporation = null;\r\n }\r\n }\r\n\r\n public async Submit(): Promise {\r\n if (!this.registration) return;\r\n\r\n this.isProcessing = true;\r\n this.errorManager.Reset();\r\n\r\n if (this.IsUpgradeOperation) {\r\n this.accountsService\r\n .UpgradeAsVendor(this.registration as IVendorUpgradeRegistration)\r\n .then((response) => {\r\n const session: IAuthSession = response.data;\r\n\r\n this.registrationIsDone = true;\r\n authStore.AuthSession(session);\r\n })\r\n .catch((error: any) => {\r\n this.errorManager.HandleError(error);\r\n })\r\n .finally(() => {\r\n this.isProcessing = false;\r\n });\r\n } else {\r\n // Set current UI locale as preferred language\r\n (this.registration as IVendorRegistration).preferredLanguage = this.$i18n.locale;\r\n\r\n this.accountsService\r\n .SignUpAsVendor(this.registration as IVendorRegistration)\r\n .then((response) => {\r\n this.registrationIsDone = true;\r\n authStore.AuthSession(response.data);\r\n })\r\n .catch((error: any) => {\r\n this.errorManager.HandleError(error);\r\n })\r\n .finally(() => {\r\n this.isProcessing = false;\r\n });\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignUp.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../../node_modules/babel-loader/lib/index.js!../../../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AccountSignUp.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignUp.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AccountSignUp.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AccountSignUp.vue?vue&type=template&id=5074a40c\"\nimport script from \"./AccountSignUp.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AccountSignUp.ts?vue&type=script&lang=ts&external\"\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\n/* custom blocks */\nimport block0 from \"./AccountSignUp.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('section',[(_vm.$route.name != _vm.AppRoutes.Sell)?_c('AppAlert',{staticClass:\"d-flex align-items-center py-2 m-0 bd-radius-0\",attrs:{\"type\":\"info\",\"outline\":false}},[_c('div',[_c('Icon',{staticClass:\"mr-2\",attrs:{\"icon\":\"info\"}}),_vm._v(\" \"+_vm._s(_vm.$t('form.be_vendor'))+\" \")],1),_c('div',{staticClass:\"d-flex ml-2\"},[_c('I18nRouterLink',{staticClass:\"btn btn-link\",attrs:{\"to\":{ name: _vm.AppRoutes.Sell }}},[_vm._v(\" \"+_vm._s(_vm.$t('action.learn_more'))+\" \")])],1)]):_vm._e(),_c('ValidationObserver',{ref:\"refValidation\",scopedSlots:_vm._u([{key:\"default\",fn:function({ passes }){return [(!_vm.$auth.IsVendor && _vm.registration && !_vm.registrationIsDone)?_c('form',{attrs:{\"novalidate\":\"\",\"data-cy\":\"sign-up-vendor-form\"},on:{\"submit\":function($event){$event.preventDefault();return passes(_vm.Submit)}}},[_c('section',{staticClass:\"dialog_inner\"},[(!_vm.IsUpgradeOperation)?_c('FormFields',{staticClass:\"row\"},[_c('div',{staticClass:\"col-6\"},[_c('FormInput',{attrs:{\"has-floating-label\":true,\"autocomplete\":\"given-name\",\"label\":_vm.$t('form.firstname.label'),\"name\":\"firstname\",\"required\":\"\",\"validation-rules\":\"required|max:50\"},model:{value:(_vm.registration.firstname),callback:function ($$v) {_vm.$set(_vm.registration, \"firstname\", $$v)},expression:\"registration.firstname\"}})],1),_c('div',{staticClass:\"col-6\"},[_c('FormInput',{attrs:{\"has-floating-label\":true,\"autocomplete\":\"family-name\",\"label\":_vm.$t('form.lastname.label'),\"name\":\"lastname\",\"required\":\"\",\"validation-rules\":\"required|max:50\"},model:{value:(_vm.registration.lastname),callback:function ($$v) {_vm.$set(_vm.registration, \"lastname\", $$v)},expression:\"registration.lastname\"}})],1)]):_vm._e(),_c('FormFields',[_c('FormInput',{attrs:{\"has-floating-label\":true,\"label\":_vm.$t('form.shop.label'),\"name\":\"shopId\",\"required\":\"\",\"type\":\"text\",\"validation-rules\":\"required|unique_shop|max:50\",\"validation-mode\":\"lazy\"},model:{value:(_vm.registration.shopId),callback:function ($$v) {_vm.$set(_vm.registration, \"shopId\", $$v)},expression:\"registration.shopId\"}})],1),(!_vm.IsUpgradeOperation)?_c('FormFields',[_c('FormInput',{attrs:{\"has-floating-label\":true,\"autocomplete\":\"email\",\"label\":_vm.$t('form.email.label'),\"name\":\"email\",\"required\":\"\",\"type\":\"email\",\"validation-rules\":\"required|email|unique_member_email\",\"validation-mode\":\"lazy\"},model:{value:(_vm.registration.email),callback:function ($$v) {_vm.$set(_vm.registration, \"email\", $$v)},expression:\"registration.email\"}})],1):_vm._e(),(!_vm.IsUpgradeOperation)?_c('FormFields',[_c('FormInput',{attrs:{\"has-floating-label\":true,\"autocomplete\":\"new-password\",\"label\":_vm.$t('form.password.label'),\"name\":\"password\",\"required\":\"\",\"type\":\"password\",\"validation-rules\":\"required|min:8|max:100\",\"validation-mode\":\"eager\"},model:{value:(_vm.registration.password),callback:function ($$v) {_vm.$set(_vm.registration, \"password\", $$v)},expression:\"registration.password\"}})],1):_vm._e(),_c('FormFields',[_c('FormInput',{attrs:{\"has-floating-label\":true,\"label\":_vm.$t('form.iban.label'),\"name\":\"iban\",\"required\":\"\",\"type\":\"text\",\"validation-mode\":\"eager\",\"validation-rules\":\"required|iban\"},model:{value:(_vm.registration.iban),callback:function ($$v) {_vm.$set(_vm.registration, \"iban\", $$v)},expression:\"registration.iban\"}})],1),_c('FormFields',[_c('FormInputSelect',{attrs:{\"options\":_vm.CountryCodes,\"has-floating-label\":true,\"label\":_vm.$t('form.country.label'),\"name\":\"country\",\"validation-rules\":\"required\"},model:{value:(_vm.registration.countryCode),callback:function ($$v) {_vm.$set(_vm.registration, \"countryCode\", $$v)},expression:\"registration.countryCode\"}})],1),_c('FormFields',[_c('label',{staticClass:\"m-0\"},[_vm._v(_vm._s(_vm.$t(\"form.corporation.label\"))+\" \"),_c('div',{staticClass:\"d-flex mb-0 mt-2\"},[_c('FormInputCheck',{staticClass:\"mr-3\",attrs:{\"name\":\"corporationStatus_yes\",\"true-value\":false,\"false-value\":true},on:{\"change\":function($event){return _vm.OnIsACorporation()}},model:{value:(_vm.isACorporation),callback:function ($$v) {_vm.isACorporation=$$v},expression:\"isACorporation\"}},[_vm._v(_vm._s(_vm.$t(\"form.corporation.value_no\")))]),_c('FormInputCheck',{attrs:{\"name\":\"corporationStatus_no\",\"true-value\":true,\"false-value\":false},on:{\"change\":function($event){return _vm.OnIsACorporation()}},model:{value:(_vm.isACorporation),callback:function ($$v) {_vm.isACorporation=$$v},expression:\"isACorporation\"}},[_vm._v(_vm._s(_vm.$t(\"form.corporation.value_yes\")))])],1)])]),(_vm.isACorporation && _vm.registration.corporation)?_c('div',[_c('FormFields',[_c('FormInput',{attrs:{\"has-floating-label\":true,\"label\":_vm.$t('form.corporation_name.label'),\"name\":\"corporationName\",\"validation-rules\":\"required\"},model:{value:(_vm.registration.corporation.name),callback:function ($$v) {_vm.$set(_vm.registration.corporation, \"name\", $$v)},expression:\"registration.corporation.name\"}})],1),_c('FormFields',[_c('FormInput',{attrs:{\"has-floating-label\":true,\"label\":_vm.$t('form.vat.label'),\"name\":\"vatNumber\"},model:{value:(_vm.registration.corporation.vatNumber),callback:function ($$v) {_vm.$set(_vm.registration.corporation, \"vatNumber\", $$v)},expression:\"registration.corporation.vatNumber\"}})],1)],1):_vm._e(),_c('FormFields',[_c('ValidationProvider',{attrs:{\"vid\":\"termsAndConditionsAccountSignUpVendor\",\"rules\":\"agree\",\"tag\":\"div\",\"name\":_vm.$t('form.policies.terms_and_conditions'),\"customMessages\":{ required: _vm.$t('form.error.terms') }},scopedSlots:_vm._u([{key:\"default\",fn:function({ errors }){return [_c('FormInputCheck',{attrs:{\"name\":\"terms\",\"type\":\"checkbox\"},model:{value:(_vm.registration.terms),callback:function ($$v) {_vm.$set(_vm.registration, \"terms\", $$v)},expression:\"registration.terms\"}},[_c('i18n',{staticClass:\"ml-3\",attrs:{\"path\":\"form.policies.accept_$0_$1\",\"tag\":\"div\"}},[_c('I18nRouterLink',{attrs:{\"to\":{ name: _vm.AppRoutes.TermsAndConditions },\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t(\"form.policies.terms_and_conditions\")))]),_c('I18nRouterLink',{attrs:{\"to\":{ name: _vm.AppRoutes.PrivacyPolicy },\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$t(\"form.policies.privacy_policy\")))])],1)],1),(errors && errors.length)?_c('AppError',[_vm._v(_vm._s(errors[0]))]):_vm._e()]}}],null,true)})],1),_c('div',{staticClass:\"form_note\"},[_c('small',[_vm._v(_vm._s(_vm.$t(\"form.never_share_data\")))])])],1),_c('AppErrors',{attrs:{\"error-messages\":_vm.errorManager.ErrorMessages}}),_c('button',{staticClass:\"btn btn-primary dialog-btn\",attrs:{\"disabled\":_vm.isProcessing,\"type\":\"submit\"}},[(!_vm.isProcessing)?_c('span',[_vm._v(_vm._s(_vm.$t(\"form.sign_up\")))]):_c('AppLoader',{staticClass:\"justify-content-center\",attrs:{\"inline\":true,\"color\":\"#FFF\"}})],1)],1):_vm._e()]}}])}),(_vm.registrationIsDone || _vm.$auth.IsVendor)?_c('SignUpDone'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ActionTypes } from \"@api/models/market/constants/ActionTypes\";\r\nimport { ILocation } from \"@market/models/ILocation\";\r\nimport { dialogsStore } from \"@market/stores/App.store.modules\";\r\nimport { Component, Emit, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class AppDialog extends Vue {\r\n @Prop()\r\n readonly title: string;\r\n @Prop()\r\n readonly secondaryTitle?: string;\r\n @Prop()\r\n readonly headerIcon?: Array | string;\r\n @Prop()\r\n readonly actionLabel: string;\r\n @Prop()\r\n readonly actionLinkTo: ILocation;\r\n @Prop({ default: ActionTypes.PrimaryAction })\r\n readonly actionType?: ActionTypes;\r\n @Prop()\r\n readonly actionLoading?: boolean;\r\n @Prop({ default: false })\r\n readonly isOpened: boolean;\r\n\r\n ActionTypes = ActionTypes;\r\n\r\n @Emit(\"dialog-action\")\r\n public Action() {\r\n dialogsStore.CloseDialogs();\r\n }\r\n\r\n @Emit(\"close\")\r\n public Close() {}\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppDialog.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppDialog.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppDialog.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppDialog.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AppDialog.vue?vue&type=template&id=1a7a07b6&scoped=true\"\nimport script from \"./AppDialog.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppDialog.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppDialog.vue?vue&type=style&index=0&id=1a7a07b6&prod&lang=scss&scoped=true\"\nimport style1 from \"./AppDialog.vue?vue&type=style&index=1&id=1a7a07b6&prod&lang=scss&scoped=true\"\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 \"1a7a07b6\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AppDialog.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.isOpened)?_c('div',{staticClass:\"dialog\"},[(_vm.title || _vm.secondaryTitle)?_c('div',{staticClass:\"dialog_header\"},[_c('span',{staticClass:\"title\"},[_vm._v(_vm._s(_vm.title))]),(_vm.secondaryTitle)?_c('span',{staticClass:\"secondary-title fg-primary\"},[_vm._v(_vm._s(_vm.secondaryTitle))]):_vm._e(),_c('span',{staticClass:\"icon\"},[(_vm.headerIcon)?_c('Icon',{attrs:{\"icon\":_vm.headerIcon}}):_vm._e()],1),_c('button',{staticClass:\"btn btn-close\",attrs:{\"type\":\"button\",\"title\":_vm.$t('close_tooltip'),\"data-cy\":\"dialog-close\"},on:{\"click\":function($event){return _vm.Close()}}},[_c('Icon',{attrs:{\"icon\":\"times\"}})],1)]):_vm._e(),_c('div',{staticClass:\"dialog_body\"},[_vm._t(\"default\")],2),(_vm.actionLabel)?_c('div',{staticClass:\"dialog_footer\"},[(_vm.actionLinkTo)?_c('I18nRouterLink',{staticClass:\"btn dialog-btn\",class:{\n 'btn-primary': _vm.actionType == _vm.ActionTypes.PrimaryAction,\n 'btn-secondary': _vm.actionType == _vm.ActionTypes.CallToAction\n },attrs:{\"to\":_vm.actionLinkTo,\"tag\":\"button\"},nativeOn:{\"click\":function($event){return _vm.Action()}}},[_vm._v(_vm._s(_vm.actionLabel))]):_vm._e(),(!_vm.actionLinkTo)?_c('button',{staticClass:\"btn dialog-btn\",class:{\n 'btn-primary': _vm.actionType == _vm.ActionTypes.PrimaryAction,\n 'btn-secondary': _vm.actionType == _vm.ActionTypes.CallToAction\n },attrs:{\"type\":\"button\",\"disabled\":_vm.actionLoading},on:{\"click\":function($event){return _vm.Action()}}},[(_vm.actionLoading !== true)?_c('span',[_vm._v(_vm._s(_vm.actionLabel))]):_vm._e(),(_vm.actionLoading)?_c('AppLoader',{staticClass:\"justify-content-center\",attrs:{\"inline\":true,\"color\":\"#FFF\"}}):_vm._e()],1):_vm._e()],1):_vm._e()]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ActionTypes } from \"@api/models/market/constants/ActionTypes\";\r\nimport CartTable from \"@market/components/cart/CartTable.vue\";\r\nimport { ICartItem } from \"@market/models/ICartItem\";\r\nimport AccountSignInView from \"@market/pages/views/auth/AccountSignIn.vue\";\r\nimport AccountSignOnView from \"@market/pages/views/auth/AccountSignOn.vue\";\r\nimport AccountSignUpView from \"@market/pages/views/auth/AccountSignUp.vue\";\r\nimport AccountVendorSignUpView from \"@market/pages/views/auth/vendor/AccountSignUp.vue\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport {\r\n cartDialogStore,\r\n cartStore,\r\n signInDialogStore,\r\n signOnDialogStore,\r\n signUpDialogStore,\r\n signUpVendorDialogStore\r\n} from \"@market/stores/App.store.modules\";\r\nimport AppDialog from \"@pigeon/components/app/AppDialog.vue\";\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\nimport { Location } from \"vue-router\";\r\n\r\n@Component({\r\n components: {\r\n AppDialog,\r\n CartTable,\r\n SignUpView: AccountSignUpView,\r\n SignInView: AccountSignInView,\r\n SignOnView: AccountSignOnView,\r\n VendorSignUpView: AccountVendorSignUpView\r\n }\r\n})\r\nexport default class TheNavBarDialogs extends Vue {\r\n AppRoutes = AppRoutes;\r\n ActionTypes = ActionTypes;\r\n hasForgottenPassword: boolean = false;\r\n\r\n //#region cartGetters\r\n get CartItems(): ICartItem[] {\r\n return cartStore.items;\r\n }\r\n\r\n get CartCount(): number {\r\n return cartStore.CartCount;\r\n }\r\n\r\n get CartActionLinkTo(): Location {\r\n if (cartStore.CartCount < 1) {\r\n return { name: AppRoutes.Buy };\r\n }\r\n\r\n return { name: AppRoutes.CheckoutOrder };\r\n }\r\n //#endregion\r\n\r\n //#region dialogGetters\r\n get OneDialogIsOpen(): boolean {\r\n return (\r\n cartDialogStore.dialog.isOpen ||\r\n signInDialogStore.dialog.isOpen ||\r\n signOnDialogStore.dialog.isOpen ||\r\n signUpDialogStore.dialog.isOpen ||\r\n signUpVendorDialogStore.dialog.isOpen\r\n );\r\n }\r\n get CartDialogIsOpen(): boolean {\r\n return cartDialogStore.dialog.isOpen;\r\n }\r\n get SignInDialogIsOpen(): boolean {\r\n return signInDialogStore.dialog.isOpen;\r\n }\r\n get SignOnDialogIsOpen(): boolean {\r\n return signOnDialogStore.dialog.isOpen;\r\n }\r\n get SignUpDialogIsOpen(): boolean {\r\n return signUpDialogStore.dialog.isOpen;\r\n }\r\n get SignUpVendorDialogIsOpen(): boolean {\r\n return signUpVendorDialogStore.dialog.isOpen;\r\n }\r\n //#endregion\r\n\r\n //#region dialogActions\r\n public CloseAllDialogs(): void {\r\n if (cartDialogStore.dialog.isOpen) cartDialogStore.Close();\r\n if (signInDialogStore.dialog.isOpen) signInDialogStore.Close();\r\n if (signOnDialogStore.dialog.isOpen) signOnDialogStore.Close();\r\n if (signUpDialogStore.dialog.isOpen) signUpDialogStore.Close();\r\n if (signUpVendorDialogStore.dialog.isOpen) signUpVendorDialogStore.Close();\r\n }\r\n\r\n public CloseCartDialog(): void {\r\n cartDialogStore.Close();\r\n }\r\n\r\n public CloseSignInDialog(): void {\r\n signInDialogStore.Close();\r\n }\r\n\r\n public CloseSignUpDialog(): void {\r\n signUpDialogStore.Close();\r\n }\r\n\r\n public CloseSignUpVendorDialog(): void {\r\n signUpVendorDialogStore.Close();\r\n }\r\n\r\n public CloseSignOnDialog(): void {\r\n signOnDialogStore.Close();\r\n }\r\n //#endregion\r\n\r\n public Recovery(value: boolean): void {\r\n this.hasForgottenPassword = value;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheNavBarDialogs.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheNavBarDialogs.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheNavBarDialogs.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheNavBarDialogs.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TheNavBarDialogs.vue?vue&type=template&id=c8b14b00&scoped=true\"\nimport script from \"./TheNavBarDialogs.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheNavBarDialogs.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./TheNavBarDialogs.vue?vue&type=style&index=0&id=c8b14b00&prod&lang=scss&scoped=true\"\nimport style1 from \"./TheNavBarDialogs.vue?vue&type=style&index=1&id=c8b14b00&prod&lang=scss&scoped=true\"\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 \"c8b14b00\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TheNavBarDialogs.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('section',[_c('AppDialog',{staticClass:\"app-dialog\",attrs:{\"action-label\":(_vm.CartCount < 1) ? _vm.$t('cart.action_catalog') : _vm.$t('cart.action_checkout'),\"action-link-to\":(_vm.CartCount < 1) ? { name: _vm.AppRoutes.Buy } : { name: _vm.AppRoutes.CheckoutOrder },\"action-type\":_vm.CartCount < 1 ? _vm.ActionTypes.PrimaryAction : _vm.ActionTypes.CallToAction,\"is-opened\":_vm.CartDialogIsOpen,\"secondary-title\":_vm.CartCount,\"header-icon\":\"shopping-cart\",\"title\":_vm.$t('cart.title')},on:{\"close\":function($event){return _vm.CloseCartDialog()}}},[_c('CartTable',{attrs:{\"cart-items\":_vm.CartItems}})],1),(!_vm.$auth.IsAuthenticated)?_c('AppDialog',{staticClass:\"app-dialog\",attrs:{\"is-opened\":_vm.SignInDialogIsOpen,\"title\":_vm.hasForgottenPassword ? _vm.$t('sign_in.title_recovery') : _vm.$t('sign_in.title'),\"header-icon\":\"user\"},on:{\"close\":function($event){return _vm.CloseSignInDialog()}}},[_c('SignInView',{on:{\"recovery-account\":function($event){return _vm.Recovery($event)}}})],1):_vm._e(),_c('AppDialog',{staticClass:\"app-dialog\",attrs:{\"is-opened\":_vm.SignUpDialogIsOpen,\"title\":_vm.$t('sign_up.title'),\"header-icon\":\"user-plus\"},on:{\"close\":function($event){return _vm.CloseSignUpDialog()}}},[_c('SignUpView')],1),_c('AppDialog',{staticClass:\"app-dialog\",attrs:{\"is-opened\":_vm.SignUpVendorDialogIsOpen,\"title\":_vm.$t('vendor.title'),\"header-icon\":\"user-tie\"},on:{\"close\":function($event){return _vm.CloseSignUpVendorDialog()}}},[_c('VendorSignUpView')],1),(_vm.$auth.IsAuthenticated)?_c('AppDialog',{staticClass:\"app-dialog\",attrs:{\"is-opened\":_vm.SignOnDialogIsOpen,\"title\":_vm.$t('account.title'),\"header-icon\":\"user\"},on:{\"close\":function($event){return _vm.CloseSignOnDialog()}}},[_c('SignOnView')],1):_vm._e(),(_vm.OneDialogIsOpen)?_c('AppOverlay',{on:{\"click\":function($event){return _vm.CloseAllDialogs()}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { appsStore } from \"@market/stores/App.store.modules\";\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class AppsBar extends Vue {\r\n get HrefToPigeonMarket(): string {\r\n return process.env.VUE_APP_PIGEON_MARKET as string;\r\n }\r\n\r\n get HrefToPigeonCommunity(): string {\r\n return process.env.VUE_APP_PIGEON_COMMUNITY as string;\r\n }\r\n\r\n get IsOpen(): boolean {\r\n return appsStore.launcherIsOpen;\r\n }\r\n\r\n public Close(): void {\r\n appsStore.CloseAppsLauncher();\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppsBar.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppsBar.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppsBar.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppsBar.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AppsBar.vue?vue&type=template&id=4b7defb1&scoped=true\"\nimport script from \"./AppsBar.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppsBar.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppsBar.vue?vue&type=style&index=0&id=4b7defb1&prod&lang=scss&scoped=true\"\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 \"4b7defb1\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AppsBar.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('nav',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.IsOpen),expression:\"IsOpen\"}],staticClass:\"apps-bar\",attrs:{\"data-cy\":\"apps-bar\"}},[_c('button',{staticClass:\"btn btn-close\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.Close()}}},[_c('Icon',{attrs:{\"icon\":\"times\"}})],1),_c('div',{staticClass:\"row flex-column flex-lg-row\"},[_c('div',{staticClass:\"col-12 col-lg-8\"},[_c('h3',{staticClass:\"heading-custom-tiles\"},[_vm._v(_vm._s(_vm.$t(\"apps.header\")))]),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-12 col-xl-6\"},[_c('a',{staticClass:\"custom-tile pane network market-network mr-2\",attrs:{\"href\":_vm.HrefToPigeonMarket,\"data-cy\":\"apps-pigeon-market\"},on:{\"click\":function($event){return _vm.Close()}}},[_c('div',{staticClass:\"pane_body\"},[_c('Icon',{staticClass:\"network_icon\",attrs:{\"icon\":['far', 'handshake']}}),_vm._m(0),_c('div',{staticClass:\"network_hashtag\"},[_vm._v(_vm._s(_vm.$t(\"apps.pigeon_market.description\")))]),_c('span',{staticClass:\"network_link\"},[_vm._v(_vm._s(_vm.HrefToPigeonMarket))])],1)])]),_c('div',{staticClass:\"col-12 col-xl-6\"},[_c('a',{staticClass:\"d-inline-block custom-tile pane network community-network\",attrs:{\"href\":_vm.HrefToPigeonCommunity,\"data-cy\":\"apps-pigeon-community\"},on:{\"click\":function($event){return _vm.Close()}}},[_c('div',{staticClass:\"pane_body\"},[_c('Icon',{staticClass:\"network_icon\",attrs:{\"icon\":['fas', 'users']}}),_vm._m(1),_c('div',{staticClass:\"network_hashtag\"},[_vm._v(_vm._s(_vm.$t(\"apps.pigeon_community.description\")))]),_c('span',{staticClass:\"network_link\"},[_vm._v(_vm._s(_vm.HrefToPigeonCommunity))])],1)])])])]),_c('div',{staticClass:\"d-none d-lg-block col-lg-4\"},[_c('h3',{staticClass:\"heading-custom-tiles\"},[_vm._v(_vm._s(_vm.$t(\"social_networks.header\")))]),_c('div',{staticClass:\"row no-gutters\"},[_c('div',{staticClass:\"col-12 col-xl-6\"},[_c('a',{staticClass:\"d-block custom-tile pane network twitter-network\",attrs:{\"target\":\"_blank\",\"href\":\"https://twitter.com/PigeonMarket\"}},[_c('div',{staticClass:\"pane_body\"},[_c('Icon',{staticClass:\"network_icon\",attrs:{\"icon\":['fab', 'twitter']}}),_c('h4',{staticClass:\"network_title\"},[_vm._v(_vm._s(_vm.$t(\"social_networks.twitter.brand\")))]),_c('div',{staticClass:\"network_hashtag\"},[_vm._v(_vm._s(_vm.$t(\"social_networks.twitter.hashtag\")))]),_c('span',{staticClass:\"network_link\"},[_vm._v(_vm._s(_vm.$t(\"social_networks.twitter.note\")))])],1)])]),_c('div',{staticClass:\"col-12 col-xl-6\"},[_c('a',{staticClass:\"d-block custom-tile pane network facebook-network\",attrs:{\"target\":\"_blank\",\"href\":\"https://www.facebook.com/PigeonMarket.be\"}},[_c('div',{staticClass:\"pane_body\"},[_c('Icon',{staticClass:\"network_icon\",attrs:{\"icon\":['fab', 'facebook']}}),_c('h4',{staticClass:\"network_title\"},[_vm._v(_vm._s(_vm.$t(\"social_networks.facebook.brand\")))]),_c('div',{staticClass:\"network_hashtag\"},[_vm._v(_vm._s(_vm.$t(\"social_networks.facebook.hashtag\")))]),_c('span',{staticClass:\"network_link\"},[_vm._v(_vm._s(_vm.$t(\"social_networks.facebook.note\")))])],1)])])])])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('h4',{staticClass:\"network_title\"},[_vm._v(\"P\"),_c('small',[_vm._v(\"igeon\")]),_vm._v(\" Market\")])\n},function (){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('h4',{staticClass:\"network_title\"},[_vm._v(\"P\"),_c('small',[_vm._v(\"igeon\")]),_vm._v(\" Community\")])\n}]\n\nexport { render, staticRenderFns }","import { appsStore } from \"@market/stores/App.store.modules\";\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class AppsLauncher extends Vue {\r\n get LauncherIcon(): string {\r\n return appsStore.launcherIsOpen ? \"angle-up\" : \"angle-down\";\r\n }\r\n\r\n public ToggleAppsLauncher(): void {\r\n appsStore.ToggleAppsLauncher();\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppsLauncher.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./AppsLauncher.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppsLauncher.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./AppsLauncher.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./AppsLauncher.vue?vue&type=template&id=00d3650d&scoped=true\"\nimport script from \"./AppsLauncher.ts?vue&type=script&lang=ts&external\"\nexport * from \"./AppsLauncher.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./AppsLauncher.vue?vue&type=style&index=0&id=00d3650d&prod&lang=scss&scoped=true\"\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 \"00d3650d\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./AppsLauncher.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"launcher\"},[_c('button',{staticClass:\"btn btn-select launcher_btn\",attrs:{\"type\":\"button\",\"aria-label\":_vm.$t('launcher'),\"data-cy\":\"apps-launcher\"},on:{\"click\":function($event){return _vm.ToggleAppsLauncher()}}},[_c('Icon',{staticClass:\"launcher_icon\",attrs:{\"icon\":_vm.LauncherIcon}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IUserData } from \"@api/models/market/IUserData\";\r\nimport { appDataStore } from \"@market/stores/App.store.modules\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { DEFAULT_LOCALE, SUPPORTED_LOCALES } from \"@pigeon/i18n/i18n.const\";\r\nimport { IMenuItem } from \"@pigeon/models/IMenuItem\";\r\nimport { II18nManager } from \"@pigeon/services/contracts/II18nManager\";\r\nimport { uiBus } from \"@pigeon/Ui.bus\";\r\nimport { Inject } from \"inversify-props\";\r\nimport mitt, { Emitter } from \"mitt\";\r\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\r\n\r\nexport enum DropdownDirections {\r\n Bottom = \"bottom\",\r\n Top = \"top\"\r\n}\r\n\r\nexport type I18nLanguageDropdownEvents = {\r\n [\"menu-close\"]: void;\r\n};\r\n\r\n@Component\r\nexport default class I18nLanguageDropdown extends Vue {\r\n @Prop({\r\n validator: (value: DropdownDirections) => Object.values(DropdownDirections).includes(value),\r\n default: DropdownDirections.Bottom\r\n })\r\n readonly dropVertical: DropdownDirections;\r\n\r\n @Inject()\r\n private i18nManager: II18nManager;\r\n\r\n supportedLanguages: { [key: string]: IMenuItem } = SUPPORTED_LOCALES;\r\n selectedLanguage: IMenuItem | null = null;\r\n bus: Emitter = mitt();\r\n\r\n get SupportedLanguages(): IMenuItem[] {\r\n const languages: IMenuItem[] = [];\r\n\r\n Object.keys(this.supportedLanguages).map((kl) => languages.push(this.supportedLanguages[kl]));\r\n return languages;\r\n }\r\n\r\n get CurrentLocale(): string {\r\n return this.$route.params.locale || this.$i18n.locale || DEFAULT_LOCALE;\r\n }\r\n\r\n mounted() {\r\n const uiLocale = this.$auth.User ? this.$auth.User.preferredLanguage : this.CurrentLocale;\r\n this.UpdateUILocale(uiLocale);\r\n this.i18nManager.UpdateAspNetCoreCookieRequestCulture(this.$cookies, uiLocale);\r\n uiBus.on(\"login\", () => this.OnLogin);\r\n }\r\n\r\n destroyed() {\r\n uiBus.off(\"login\", () => this.OnLogin);\r\n }\r\n\r\n @Watch(nameof(\"$route\"))\r\n ObserveUIWithRouteLocale() {\r\n if (this.selectedLanguage && this.$route.params.locale == this.selectedLanguage.value) return;\r\n\r\n this.UpdateUILocale(this.$route.params.locale);\r\n }\r\n\r\n private OnLogin(user: IUserData): void {\r\n this.i18nManager.UpdateClientUrl(this.$i18n, user.preferredLanguage);\r\n this.UpdateUILocale(user.preferredLanguage);\r\n this.i18nManager.UpdateAspNetCoreCookieRequestCulture(this.$cookies, user.preferredLanguage);\r\n }\r\n\r\n public UpdateUILocale(locale: string): void {\r\n if (!locale) return;\r\n\r\n this.i18nManager.UpdateUILocale(this.$i18n, locale);\r\n this.selectedLanguage = this.supportedLanguages[locale];\r\n }\r\n\r\n public SetAppLocal(): void {\r\n this.bus.emit(\"menu-close\");\r\n if (!this.selectedLanguage || (this.selectedLanguage && this.$i18n.locale === this.selectedLanguage.value)) return;\r\n\r\n const locale = this.selectedLanguage.value as string;\r\n this.i18nManager.UpdateClientUrl(this.$i18n, locale);\r\n this.UpdateUILocale(locale);\r\n this.i18nManager.UpdateUserPreferredLocale(locale);\r\n this.i18nManager.UpdateAspNetCoreCookieRequestCulture(this.$cookies, locale);\r\n\r\n appDataStore.InitializeCountries();\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./I18nLanguageDropdown.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./I18nLanguageDropdown.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./I18nLanguageDropdown.vue?vue&type=template&id=0a2f892e&scoped=true\"\nimport script from \"./I18nLanguageDropdown.ts?vue&type=script&lang=ts&external\"\nexport * from \"./I18nLanguageDropdown.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./I18nLanguageDropdown.vue?vue&type=style&index=0&id=0a2f892e&prod&lang=scss&scoped=true\"\nimport style1 from \"./I18nLanguageDropdown.vue?vue&type=style&index=1&id=0a2f892e&prod&lang=scss&scoped=true\"\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 \"0a2f892e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('AppDropdown',{staticClass:\"i18n-language\",attrs:{\"items\":_vm.SupportedLanguages,\"menu-bus\":_vm.bus,\"drop\":\"right\",\"drop-vertical\":_vm.dropVertical,\"theme\":\"black\",\"data-cy\":\"i18n-language\"},on:{\"change\":function($event){return _vm.SetAppLocal()}},model:{value:(_vm.selectedLanguage),callback:function ($$v) {_vm.selectedLanguage=$$v},expression:\"selectedLanguage\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import TheNavBarDialogs from \"@market/components/layout/TheNavBarDialogs.vue\";\r\nimport TheNavBarMenu from \"@market/components/layout/TheNavBarMenu.vue\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport {\r\n approvalStore,\r\n cartDialogStore,\r\n cartStore,\r\n depositStore,\r\n notificationStore,\r\n searchStore,\r\n settlementStore,\r\n signInDialogStore,\r\n signOnDialogStore,\r\n signUpDialogStore\r\n} from \"@market/stores/App.store.modules\";\r\nimport { BadgeLevels } from \"@pigeon/components/app/AppBadge\";\r\nimport AppsBar from \"@pigeon/components/apps/AppsBar.vue\";\r\nimport AppsLauncher from \"@pigeon/components/apps/AppsLauncher.vue\";\r\nimport I18nLanguageDropdown from \"@pigeon/components/i18n/I18nLanguageDropdown.vue\";\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n AppsLauncher,\r\n AppsBar,\r\n TheNavBarMenu,\r\n TheNavBarDialogs,\r\n I18nLanguageDropdown\r\n }\r\n})\r\nexport default class TheNavBar extends Vue {\r\n AppRoutes = AppRoutes;\r\n BadgeLevels = BadgeLevels;\r\n isAddItemActive: boolean = false;\r\n menuIsOpen: boolean = false;\r\n\r\n //#region DialogGetters\r\n get CartCount(): number {\r\n return cartStore.CartCount;\r\n }\r\n get CartDialogIsOpen(): boolean {\r\n return cartDialogStore.dialog.isOpen;\r\n }\r\n get SignInDialogIsOpen(): boolean {\r\n return signInDialogStore.dialog.isOpen;\r\n }\r\n get SignOnDialogIsOpen(): boolean {\r\n return signOnDialogStore.dialog.isOpen;\r\n }\r\n get SignUpDialogIsOpen(): boolean {\r\n return signUpDialogStore.dialog.isOpen;\r\n }\r\n //#endregion\r\n\r\n get SearchBarIsOpen(): boolean {\r\n return searchStore.searchBarIsOpen;\r\n }\r\n\r\n //#region Notifications\r\n get UnreadNotificationsCount(): number {\r\n return notificationStore.UnreadPMarketNotificationsCount;\r\n }\r\n\r\n get AwaitingSettlementsCount(): number {\r\n return settlementStore.pendingSettlementsCount;\r\n }\r\n\r\n get AwaitingDepositsCount(): number {\r\n return depositStore.pendingDepositsCount;\r\n }\r\n\r\n get PendingApprovalSalesCount(): number {\r\n return approvalStore.pendingApprovalSalesCount;\r\n }\r\n //#endregion\r\n\r\n get LocatedOnCheckoutPage(): boolean {\r\n return this.$route.name && this.$route.name.startsWith(\"checkout\") ? true : false;\r\n }\r\n\r\n get HasEmptyCart(): boolean {\r\n return cartStore.CartCount == 0;\r\n }\r\n\r\n public SetAddItemActive(isActive: boolean): void {\r\n this.isAddItemActive = isActive;\r\n }\r\n\r\n public NavigationLinkIsActive(routeName: string | string[]): boolean {\r\n if (Array.isArray(routeName) && this.$route.name) {\r\n return (routeName as string[]).includes(this.$route.name);\r\n } else {\r\n return this.$route.name === routeName;\r\n }\r\n }\r\n\r\n public CloseMenu(): void {\r\n this.menuIsOpen = false;\r\n }\r\n\r\n public ToggleMenu(): void {\r\n this.menuIsOpen = !this.menuIsOpen;\r\n }\r\n\r\n public ToggleSearchBar(): void {\r\n if (!this.SearchBarIsOpen) {\r\n this.GoToBuyPage();\r\n }\r\n\r\n searchStore.ToggleSearchBar();\r\n }\r\n\r\n //#region DialogActions\r\n public ToggleCartDialog(): void {\r\n cartDialogStore.Toggle();\r\n }\r\n public ToggleSignInDialog(): void {\r\n signInDialogStore.Toggle();\r\n }\r\n public ToggleSignOnDialog(): void {\r\n signOnDialogStore.Toggle();\r\n }\r\n public ToggleSignUpDialog(): void {\r\n signUpDialogStore.Toggle();\r\n }\r\n //#endregion\r\n\r\n public GoToBuyPage(): void {\r\n if (this.$route.name == AppRoutes.Buy) return;\r\n\r\n this.$router.push({ name: AppRoutes.Buy });\r\n }\r\n}\r\n","import TheNavBar from \"@market/components/layout/TheNavBar\";\r\nimport { notificationStore } from \"@market/stores/App.store.modules\";\r\nimport I18nLanguageDropdown from \"@pigeon/components/i18n/I18nLanguageDropdown.vue\";\r\nimport { Component, Emit } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n I18nLanguageDropdown\r\n }\r\n})\r\nexport default class TheNavBarMenu extends TheNavBar {\r\n @Emit(\"trigger-menu-item\")\r\n public Trigger(): void {}\r\n\r\n get UnreadPMarketNotificationsCount(): number {\r\n return notificationStore.UnreadPMarketNotificationsCount;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheNavBarMenu.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheNavBarMenu.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheNavBarMenu.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheNavBarMenu.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TheNavBarMenu.vue?vue&type=template&id=4d3bcbe6&scoped=true\"\nimport script from \"./TheNavBarMenu.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheNavBarMenu.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./TheNavBarMenu.vue?vue&type=style&index=0&id=4d3bcbe6&prod&lang=scss&scoped=true\"\nimport style1 from \"./TheNavBarMenu.vue?vue&type=style&index=1&id=4d3bcbe6&prod&lang=scss&scoped=true\"\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 \"4d3bcbe6\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TheNavBarMenu.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('nav',{staticClass:\"d-xl-none\",attrs:{\"id\":\"appBarMenu\",\"data-cy\":\"app-bar-menu\"}},[_c('ul',{staticClass:\"navigation_list d-flex d-lg-none flex-column\"},[_c('li',{staticClass:\"navigation_item primary-navigation_item\",class:{ 'is-active': _vm.NavigationLinkIsActive(_vm.AppRoutes.Home) }},[_c('I18nRouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.Home },\"data-cy\":\"nav-home\"}},[_c('span',{staticClass:\"primary-link\"},[_vm._v(_vm._s(_vm.$t(\"home\")))])])],1),_c('li',{staticClass:\"navigation_item primary-navigation_item\",class:{\n 'is-active': _vm.NavigationLinkIsActive([\n _vm.AppRoutes.Buy,\n _vm.AppRoutes.Sale,\n _vm.AppRoutes.SalePedigree,\n _vm.AppRoutes.SalePackagePigeon,\n _vm.AppRoutes.Checkout,\n _vm.AppRoutes.CheckoutOrder,\n _vm.AppRoutes.CheckoutSuccess\n ])\n }},[_c('I18nRouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.Buy },\"data-cy\":\"nav-buy\"}},[_c('span',{staticClass:\"primary-link\"},[_vm._v(_vm._s(_vm.$t(\"buy\")))])])],1),_c('li',{staticClass:\"navigation_item primary-navigation_item\",class:{\n 'is-active': _vm.NavigationLinkIsActive([\n _vm.AppRoutes.Sell,\n _vm.AppRoutes.NewSale,\n _vm.AppRoutes.NewSaleSale,\n _vm.AppRoutes.NewSalePigeon,\n _vm.AppRoutes.NewSalePackage,\n _vm.AppRoutes.NewSaleInserted,\n _vm.AppRoutes.EditSale,\n _vm.AppRoutes.EditSaleSale,\n _vm.AppRoutes.EditSalePigeon,\n _vm.AppRoutes.EditSalePackage,\n _vm.AppRoutes.EditSaleUpdated\n ])\n }},[_c('I18nRouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.Sell },\"data-cy\":\"nav-sell\"}},[_c('span',{staticClass:\"primary-link\"},[_vm._v(_vm._s(_vm.$t(\"sell\")))])])],1),(_vm.$auth.IsVendor)?_c('li',{staticClass:\"navigation_item added-item w-100\",on:{\"mouseover\":function($event){return _vm.SetAddItemActive(true)},\"mouseleave\":function($event){return _vm.SetAddItemActive(false)}}},[(_vm.$auth.AccountIsVerified)?_c('I18nRouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.NewSaleSale },\"data-cy\":\"nav-sale-add\"}},[_vm._v(_vm._s(_vm.$t(\"add\"))+\" \"),_c('small',[_vm._v(_vm._s(_vm.$t(\"a_sale\")))])]):_c('div',{staticClass:\"navigation_link\",staticStyle:{\"cursor\":\"not-allowed\"},attrs:{\"data-cy\":\"nav-sale-add\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"add\"))+\" \"),_c('small',[_vm._v(_vm._s(_vm.$t(\"a_sale\")))])])],1):_vm._e()]),_c('ul',{staticClass:\"navigation_list secondary-navigation_list d-flex d-xl-none flex-column\"},[(_vm.$auth.IsAdministrator)?_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.NavigationLinkIsActive(_vm.AppRoutes.AdminDashboard) }},[_c('I18nRouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.AdminDashboard },\"data-cy\":\"nav-my-admin-dashboard\"}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"user-tie\"}})],1),_c('span',{staticClass:\"link_text text-smallcaps\"},[_vm._v(_vm._s(_vm.$t(\"my_admin_dashboard\")))])])],1):_vm._e(),(_vm.$auth.IsVendor)?_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.NavigationLinkIsActive(_vm.AppRoutes.VendorDashboard) }},[_c('I18nRouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.VendorDashboard },\"data-cy\":\"nav-my-business\"}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"user-tie\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"my_business\")))])])],1):(_vm.$auth.IsMember)?_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.NavigationLinkIsActive(_vm.AppRoutes.BuyerDashboard) }},[_c('I18nRouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.BuyerDashboard },\"data-cy\":\"nav-my-board\"}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"user-tie\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"my_dashboard\")))])])],1):_vm._e(),(_vm.$auth.IsMember)?_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.NavigationLinkIsActive(_vm.AppRoutes.AccountMessages) }},[_c('I18nRouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.AccountMessages },\"data-cy\":\"nav-my-messages\"}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"envelope\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"my_messages\")))])])],1):_vm._e(),(_vm.$auth.IsMember)?_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.NavigationLinkIsActive(_vm.AppRoutes.AccountNotifications) }},[_c('I18nRouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.AccountNotifications },\"data-cy\":\"nav-my-notifications\"}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"bell\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"my_notifications\")))]),_c('div',{staticClass:\"badges\"},[(_vm.$auth.IsAdministrator && _vm.AwaitingSettlementsCount > 0)?_c('AppBadge',{attrs:{\"level\":_vm.BadgeLevels.High,\"count\":_vm.AwaitingSettlementsCount}}):_vm._e(),(_vm.$auth.IsAdministrator && _vm.AwaitingDepositsCount > 0)?_c('AppBadge',{attrs:{\"level\":_vm.BadgeLevels.High,\"count\":_vm.AwaitingDepositsCount}}):_vm._e(),(_vm.$auth.IsApprover && _vm.PendingApprovalSalesCount > 0)?_c('AppBadge',{attrs:{\"level\":_vm.BadgeLevels.Medium,\"count\":_vm.PendingApprovalSalesCount}}):_vm._e(),(_vm.UnreadNotificationsCount > 0)?_c('AppBadge',{attrs:{\"level\":_vm.BadgeLevels.Low,\"count\":_vm.UnreadNotificationsCount}}):_vm._e()],1)])],1):_vm._e(),(!_vm.$auth.IsAuthenticated)?_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.SignInDialogIsOpen }},[_c('a',{staticClass:\"navigation_link\",attrs:{\"href\":\"#\",\"data-cy\":\"nav-sign-in\"},on:{\"click\":function($event){$event.preventDefault();return (() => { _vm.ToggleSignInDialog(); _vm.Trigger(); }).apply(null, arguments)}}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"user\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"sign_in\")))])])]):_vm._e(),(!_vm.$auth.IsAuthenticated)?_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.SignUpDialogIsOpen }},[_c('a',{staticClass:\"navigation_link\",attrs:{\"href\":\"#\",\"data-cy\":\"nav-sign-up\"},on:{\"click\":function($event){$event.preventDefault();return (() => { _vm.ToggleSignUpDialog(); _vm.Trigger(); }).apply(null, arguments)}}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"user-plus\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"sign_up\")))])])]):_vm._e(),(_vm.$auth.IsAuthenticated)?_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.SignOnDialogIsOpen }},[_c('a',{staticClass:\"navigation_link\",attrs:{\"href\":\"#\",\"data-cy\":\"nav-sign-on\"},on:{\"click\":function($event){$event.preventDefault();return (() => { _vm.ToggleSignOnDialog(); _vm.Trigger(); }).apply(null, arguments)}}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"user\"}})],1),_c('span',{staticClass:\"link_text\",attrs:{\"data-cy\":\"sign-on-status\"}},[_vm._v(_vm._s(_vm.$t(\"my_account\")))])])]):_vm._e(),(_vm.CartCount > 0)?_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.CartDialogIsOpen }},[(_vm.CartCount > 0)?_c('AppBadge',{attrs:{\"level\":_vm.BadgeLevels.Low,\"count\":_vm.CartCount}}):_vm._e(),_c('a',{staticClass:\"navigation_link\",attrs:{\"href\":\"#\",\"data-cy\":\"nav-cart\"},on:{\"click\":function($event){$event.preventDefault();return (() => { _vm.ToggleCartDialog(); _vm.Trigger(); }).apply(null, arguments)}}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"shopping-cart\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"shopping_cart\")))])])],1):_vm._e(),_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.NavigationLinkIsActive(_vm.AppRoutes.Contact) }},[_c('I18nRouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.Contact },\"data-cy\":\"nav-contact\"}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"at\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"contact\")))])])],1),_c('li',{staticClass:\"navigation_item\"},[_c('RouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.Faq },\"data-cy\":\"nav-faq\"}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"question\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"faq\")))])])],1),_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.SearchBarIsOpen }},[_c('a',{staticClass:\"navigation_link\",attrs:{\"type\":\"button\",\"data-cy\":\"nav-search\"},on:{\"click\":function($event){$event.preventDefault();return (() => { _vm.ToggleSearchBar(); _vm.Trigger(); }).apply(null, arguments)}}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"search\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"search\")))])])])]),_c('I18nLanguageDropdown',{staticClass:\"d-md-none mt-auto\",attrs:{\"drop-vertical\":\"top\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import TheNavBarDialogs from \"@market/components/layout/TheNavBarDialogs.vue\";\r\nimport TheNavBarMenu from \"@market/components/layout/TheNavBarMenu.vue\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport {\r\n approvalStore,\r\n cartDialogStore,\r\n cartStore,\r\n depositStore,\r\n notificationStore,\r\n searchStore,\r\n settlementStore,\r\n signInDialogStore,\r\n signOnDialogStore,\r\n signUpDialogStore\r\n} from \"@market/stores/App.store.modules\";\r\nimport { BadgeLevels } from \"@pigeon/components/app/AppBadge\";\r\nimport AppsBar from \"@pigeon/components/apps/AppsBar.vue\";\r\nimport AppsLauncher from \"@pigeon/components/apps/AppsLauncher.vue\";\r\nimport I18nLanguageDropdown from \"@pigeon/components/i18n/I18nLanguageDropdown.vue\";\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n AppsLauncher,\r\n AppsBar,\r\n TheNavBarMenu,\r\n TheNavBarDialogs,\r\n I18nLanguageDropdown\r\n }\r\n})\r\nexport default class TheNavBar extends Vue {\r\n AppRoutes = AppRoutes;\r\n BadgeLevels = BadgeLevels;\r\n isAddItemActive: boolean = false;\r\n menuIsOpen: boolean = false;\r\n\r\n //#region DialogGetters\r\n get CartCount(): number {\r\n return cartStore.CartCount;\r\n }\r\n get CartDialogIsOpen(): boolean {\r\n return cartDialogStore.dialog.isOpen;\r\n }\r\n get SignInDialogIsOpen(): boolean {\r\n return signInDialogStore.dialog.isOpen;\r\n }\r\n get SignOnDialogIsOpen(): boolean {\r\n return signOnDialogStore.dialog.isOpen;\r\n }\r\n get SignUpDialogIsOpen(): boolean {\r\n return signUpDialogStore.dialog.isOpen;\r\n }\r\n //#endregion\r\n\r\n get SearchBarIsOpen(): boolean {\r\n return searchStore.searchBarIsOpen;\r\n }\r\n\r\n //#region Notifications\r\n get UnreadNotificationsCount(): number {\r\n return notificationStore.UnreadPMarketNotificationsCount;\r\n }\r\n\r\n get AwaitingSettlementsCount(): number {\r\n return settlementStore.pendingSettlementsCount;\r\n }\r\n\r\n get AwaitingDepositsCount(): number {\r\n return depositStore.pendingDepositsCount;\r\n }\r\n\r\n get PendingApprovalSalesCount(): number {\r\n return approvalStore.pendingApprovalSalesCount;\r\n }\r\n //#endregion\r\n\r\n get LocatedOnCheckoutPage(): boolean {\r\n return this.$route.name && this.$route.name.startsWith(\"checkout\") ? true : false;\r\n }\r\n\r\n get HasEmptyCart(): boolean {\r\n return cartStore.CartCount == 0;\r\n }\r\n\r\n public SetAddItemActive(isActive: boolean): void {\r\n this.isAddItemActive = isActive;\r\n }\r\n\r\n public NavigationLinkIsActive(routeName: string | string[]): boolean {\r\n if (Array.isArray(routeName) && this.$route.name) {\r\n return (routeName as string[]).includes(this.$route.name);\r\n } else {\r\n return this.$route.name === routeName;\r\n }\r\n }\r\n\r\n public CloseMenu(): void {\r\n this.menuIsOpen = false;\r\n }\r\n\r\n public ToggleMenu(): void {\r\n this.menuIsOpen = !this.menuIsOpen;\r\n }\r\n\r\n public ToggleSearchBar(): void {\r\n if (!this.SearchBarIsOpen) {\r\n this.GoToBuyPage();\r\n }\r\n\r\n searchStore.ToggleSearchBar();\r\n }\r\n\r\n //#region DialogActions\r\n public ToggleCartDialog(): void {\r\n cartDialogStore.Toggle();\r\n }\r\n public ToggleSignInDialog(): void {\r\n signInDialogStore.Toggle();\r\n }\r\n public ToggleSignOnDialog(): void {\r\n signOnDialogStore.Toggle();\r\n }\r\n public ToggleSignUpDialog(): void {\r\n signUpDialogStore.Toggle();\r\n }\r\n //#endregion\r\n\r\n public GoToBuyPage(): void {\r\n if (this.$route.name == AppRoutes.Buy) return;\r\n\r\n this.$router.push({ name: AppRoutes.Buy });\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheNavBar.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheNavBar.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheNavBar.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheNavBar.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TheNavBar.vue?vue&type=template&id=0aa5d1a5&scoped=true\"\nimport script from \"./TheNavBar.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheNavBar.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./TheNavBar.vue?vue&type=style&index=0&id=0aa5d1a5&prod&lang=scss&scoped=true\"\nimport style1 from \"./TheNavBar.vue?vue&type=style&index=1&id=0aa5d1a5&prod&lang=scss&scoped=true\"\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 \"0aa5d1a5\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TheNavBar.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',[_c('nav',{attrs:{\"id\":\"app-bar\",\"data-cy\":\"app-bar\"}},[_c('div',{staticClass:\"navigation\"},[_c('div',{staticClass:\"secondary-navigation_list ml-0 d-xl-none\"},[_c('div',{staticClass:\"navigation_item menu-navigation_item\"},[_c('a',{staticClass:\"navigation_link\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.ToggleMenu()}}},[_c('span',{staticClass:\"link_icon\"},[(!_vm.menuIsOpen)?_c('Icon',{attrs:{\"icon\":\"bars\"}}):_c('Icon',{attrs:{\"icon\":\"times\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t('menu')))])])])]),_c('ul',{staticClass:\"navigation_list d-none d-lg-flex\"},[_c('li',{staticClass:\"navigation_item primary-navigation_item\",class:{\n 'is-active': _vm.NavigationLinkIsActive([\n _vm.AppRoutes.Buy,\n _vm.AppRoutes.Sale,\n _vm.AppRoutes.SalePedigree,\n _vm.AppRoutes.SalePackagePigeon,\n _vm.AppRoutes.Checkout,\n _vm.AppRoutes.CheckoutOrder,\n _vm.AppRoutes.CheckoutSuccess\n ])\n }},[_c('I18nRouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.Buy },\"data-cy\":\"nav-buy\"}},[_c('span',{staticClass:\"primary-link\"},[_vm._v(_vm._s(_vm.$t(\"buy\")))])])],1),_c('li',{staticClass:\"navigation_item primary-navigation_item\",class:{\n 'is-active': _vm.NavigationLinkIsActive([\n _vm.AppRoutes.Sell,\n _vm.AppRoutes.NewSale,\n _vm.AppRoutes.NewSaleSale,\n _vm.AppRoutes.NewSalePigeon,\n _vm.AppRoutes.NewSalePackage,\n _vm.AppRoutes.NewSaleInserted,\n _vm.AppRoutes.EditSale,\n _vm.AppRoutes.EditSaleSale,\n _vm.AppRoutes.EditSalePigeon,\n _vm.AppRoutes.EditSalePackage,\n _vm.AppRoutes.EditSaleUpdated\n ]),\n 'shadow_item add-item': _vm.$auth.IsVendor,\n 'is-shadow-active': _vm.isAddItemActive\n }},[_c('I18nRouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.Sell },\"data-cy\":\"nav-sell\"}},[_c('span',{staticClass:\"primary-link\"},[_vm._v(_vm._s(_vm.$t(\"sell\")))])])],1),(_vm.$auth.IsVendor)?_c('li',{staticClass:\"navigation_item added-item\",on:{\"mouseover\":function($event){return _vm.SetAddItemActive(true)},\"mouseleave\":function($event){return _vm.SetAddItemActive(false)}}},[(_vm.$auth.AccountIsVerified)?_c('I18nRouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.NewSaleSale },\"data-cy\":\"nav-sale-add\"}},[_vm._v(_vm._s(_vm.$t(\"add\"))),_c('small',{staticClass:\"d-block\"},[_vm._v(_vm._s(_vm.$t(\"a_sale\")))])]):_c('div',{staticClass:\"navigation_link\",staticStyle:{\"cursor\":\"not-allowed\"},attrs:{\"data-cy\":\"nav-sale-add\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"add\"))),_c('small',{staticClass:\"d-block\"},[_vm._v(_vm._s(_vm.$t(\"a_sale\")))])])],1):_vm._e()]),_c('ul',{staticClass:\"navigation_list secondary-navigation_list d-none d-xl-flex\"},[(_vm.$auth.IsVendor)?_c('li',{staticClass:\"navigation_item\",class:{\n 'is-active': _vm.NavigationLinkIsActive([\n _vm.AppRoutes.VendorDashboard,\n ])\n }},[_c('I18nRouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.VendorDashboard },\"data-cy\":\"nav-my-business\"}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"user-tie\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"my_business\")))])])],1):(_vm.$auth.IsMember)?_c('li',{staticClass:\"navigation_item\",class:{\n 'is-active': _vm.NavigationLinkIsActive([\n _vm.AppRoutes.BuyerDashboard,\n ])\n }},[_c('I18nRouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.BuyerDashboard },\"data-cy\":\"nav-my-board\"}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"user-tie\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"my_dashboard\")))])])],1):_vm._e()])]),_c('div',{staticClass:\"navigation brand-navigation\"},[_c('div',{staticClass:\"brand\"},[_c('I18nRouterLink',{staticClass:\"brand_link\",attrs:{\"to\":{ name: _vm.AppRoutes.Home },\"data-cy\":\"nav-brand\",\"tag\":\"div\"}},[_c('div',{staticClass:\"brand_logo\"},[_c('SvgLogo')],1),_c('span',[_vm._v(\"Pigeon Market\")])]),_c('AppsLauncher',{staticClass:\"d-none d-md-block\"})],1)]),_c('div',{staticClass:\"navigation ml-auto d-none d-sm-flex\"},[(!_vm.LocatedOnCheckoutPage)?_c('ul',{staticClass:\"navigation_list secondary-navigation_list d-none d-xl-flex\"},[_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.NavigationLinkIsActive(_vm.AppRoutes.Buy) && _vm.SearchBarIsOpen }},[_c('a',{staticClass:\"navigation_link\",attrs:{\"type\":\"button\",\"data-cy\":\"nav-search\"},on:{\"click\":function($event){return _vm.ToggleSearchBar()}}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"search\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"search\")))])])]),_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.NavigationLinkIsActive(_vm.AppRoutes.Faq) }},[_c('RouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.Faq },\"data-cy\":\"nav-faq\"}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"question\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"faq\")))])])],1),_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.NavigationLinkIsActive(_vm.AppRoutes.Contact) }},[_c('RouterLink',{staticClass:\"navigation_link\",attrs:{\"to\":{ name: _vm.AppRoutes.Contact },\"data-cy\":\"nav-contact\"}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"at\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"contact\")))])])],1),(_vm.CartCount > 0)?_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.CartDialogIsOpen, 'd-none d-xxl-list-item': _vm.HasEmptyCart }},[(_vm.CartCount > 0)?_c('AppBadge',{attrs:{\"count\":_vm.CartCount,\"level\":_vm.BadgeLevels.Low}}):_vm._e(),_c('a',{staticClass:\"navigation_link\",attrs:{\"href\":\"#\",\"data-cy\":\"nav-cart\"},on:{\"click\":function($event){$event.preventDefault();return _vm.ToggleCartDialog()}}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"shopping-cart\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"shopping_cart\")))])])],1):_vm._e(),(!_vm.$auth.IsAuthenticated)?_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.SignInDialogIsOpen }},[_c('a',{staticClass:\"navigation_link\",attrs:{\"href\":\"#\",\"data-cy\":\"nav-sign-in\"},on:{\"click\":function($event){$event.preventDefault();return _vm.ToggleSignInDialog()}}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"user\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"sign_in\")))])])]):_vm._e(),(!_vm.$auth.IsAuthenticated)?_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.SignUpDialogIsOpen }},[_c('a',{staticClass:\"navigation_link\",attrs:{\"href\":\"#\",\"data-cy\":\"nav-sign-up\"},on:{\"click\":function($event){$event.preventDefault();return _vm.ToggleSignUpDialog()}}},[_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"user-plus\"}})],1),_c('span',{staticClass:\"link_text\"},[_vm._v(_vm._s(_vm.$t(\"sign_up\")))])])]):_vm._e(),(_vm.$auth.IsAuthenticated)?_c('li',{staticClass:\"navigation_item\",class:{ 'is-active': _vm.SignOnDialogIsOpen }},[_c('a',{staticClass:\"navigation_link\",attrs:{\"href\":\"#\",\"data-cy\":\"nav-sign-on\"},on:{\"click\":function($event){$event.preventDefault();return _vm.ToggleSignOnDialog()}}},[_c('div',{staticClass:\"badges\"},[(_vm.$auth.IsAdministrator && _vm.AwaitingSettlementsCount > 0)?_c('AppBadge',{attrs:{\"level\":_vm.BadgeLevels.High,\"count\":_vm.AwaitingSettlementsCount}}):_vm._e(),(_vm.$auth.IsAdministrator && _vm.AwaitingDepositsCount > 0)?_c('AppBadge',{attrs:{\"level\":_vm.BadgeLevels.High,\"count\":_vm.AwaitingDepositsCount}}):_vm._e(),(_vm.$auth.IsApprover && _vm.PendingApprovalSalesCount > 0)?_c('AppBadge',{attrs:{\"level\":_vm.BadgeLevels.Medium,\"count\":_vm.PendingApprovalSalesCount}}):_vm._e(),(_vm.UnreadNotificationsCount > 0)?_c('AppBadge',{attrs:{\"level\":_vm.BadgeLevels.Low,\"count\":_vm.UnreadNotificationsCount}}):_vm._e()],1),_c('span',{staticClass:\"link_icon\"},[_c('Icon',{attrs:{\"icon\":\"user\"}})],1),_c('span',{staticClass:\"link_text\",attrs:{\"data-cy\":\"sign-on-status\"}},[_vm._v(_vm._s(_vm.$t(\"my_account\")))])])]):_vm._e()]):_vm._e(),_c('I18nLanguageDropdown')],1)]),(_vm.$breakpoint.lgAndDown)?_c('TheNavBarMenu',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.menuIsOpen),expression:\"menuIsOpen\"}],on:{\"trigger-menu-item\":function($event){return _vm.CloseMenu()}}}):_vm._e(),_c('AppsBar'),_c('TheNavBarDialogs')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { ISale } from \"@api/models/market/ISale\";\r\nimport { Component, Emit, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class ToastMessage extends Vue {\r\n @Prop()\r\n readonly title: string;\r\n @Prop()\r\n readonly message: string;\r\n\r\n @Prop()\r\n readonly sale?: ISale;\r\n\r\n @Emit(\"click\")\r\n public EmitClickOnToast() {\r\n return this.sale;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ToastMessage.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./ToastMessage.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./ToastMessage.vue?vue&type=template&id=ca7eb8da&scoped=true\"\nimport script from \"./ToastMessage.ts?vue&type=script&lang=ts&external\"\nexport * from \"./ToastMessage.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./ToastMessage.vue?vue&type=style&index=0&id=ca7eb8da&prod&lang=scss&scoped=true\"\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 \"ca7eb8da\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"vw-33 vw-md-25 vw-lg-20\",attrs:{\"title\":_vm.message},on:{\"click\":function($event){return _vm.EmitClickOnToast()}}},[_c('span',{staticClass:\"text-ellipsis\",staticStyle:{\"max-width\":\"calcl(100% - 2rem)\"}},[_c('span',{staticClass:\"text-italic\"},[_vm._v(_vm._s(_vm.title))]),_vm._v(\": \"+_vm._s(_vm.message))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AlertTypes } from \"@pigeon/components/app/AppAlert\";\r\nimport { TYPE } from \"vue-toastification\";\r\n\r\nexport class ToastTypeMapper {\r\n public static MapAlertTypeToToastType(alertType: AlertTypes): TYPE {\r\n switch (alertType) {\r\n case AlertTypes.Danger:\r\n return TYPE.ERROR;\r\n\r\n case AlertTypes.Warning:\r\n return TYPE.WARNING;\r\n\r\n case AlertTypes.Success:\r\n return TYPE.SUCCESS;\r\n\r\n case AlertTypes.Info:\r\n return TYPE.INFO;\r\n\r\n default:\r\n return TYPE.DEFAULT;\r\n }\r\n }\r\n}\r\n","import { ISale } from \"@api/models/market/ISale\";\r\nimport { ISaleNotification } from \"@api/models/market/ISaleNotification\";\r\nimport { NOTIFICATION_DEFAULT_TIMEOUT, NOTIFICATION_LIMIT_TO_DISPLAY } from \"@market/App.const\";\r\nimport ToastMessage from \"@market/components/toast/ToastMessage.vue\";\r\nimport i18n from \"@market/i18n\";\r\nimport { ToastTypeMapper } from \"@market/mappers/ToastTypeMapper\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport { authStore, notificationStore } from \"@market/stores/App.store.modules\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { INotificationManager } from \"@pigeon/services/contracts/INotificationManager\";\r\nimport { ISaleManager } from \"@pigeon/services/contracts/ISaleManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { cloneDeep } from \"lodash-es\";\r\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\r\nimport { Location, RawLocation } from \"vue-router\";\r\nimport { ToastComponent } from \"vue-toastification/dist/types/src/types\";\r\n\r\n@Component\r\nexport default class TheNotifications extends Vue {\r\n @Inject()\r\n private notificationManager: INotificationManager;\r\n @Inject()\r\n private saleManager: ISaleManager;\r\n\r\n get IsAuthenticated(): boolean {\r\n return authStore.IsAuthenticated;\r\n }\r\n\r\n get Notifications(): ISaleNotification[] {\r\n return notificationStore.saleNotifications;\r\n }\r\n\r\n get UnreadNotifications(): ISaleNotification[] {\r\n return notificationStore.saleNotificationsUnread;\r\n }\r\n\r\n @Watch(nameof(\"UnreadNotifications\"), { immediate: true, deep: true })\r\n async ObserveNotifications() {\r\n if (!authStore.IsAuthenticated || !authStore.IsMember) return;\r\n\r\n await this.HandleUnreadNotifications();\r\n }\r\n\r\n private GetSaleLinkTo(saleId: number): RawLocation {\r\n return { name: AppRoutes.VendorSalesDetails, params: { saleKey: saleId.toString() } };\r\n }\r\n\r\n private NavigateToSale(saleId: number): void {\r\n if (!saleId) return;\r\n\r\n const saleTo = this.GetSaleLinkTo(saleId);\r\n const isAlreadyOnSaleRoute =\r\n (this.$route.name == (saleTo as Location).name || this.$route.name == AppRoutes.Sale) &&\r\n this.$route.params?.saleKey == saleId.toString();\r\n\r\n if (!isAlreadyOnSaleRoute) this.$router.push(this.GetSaleLinkTo(saleId));\r\n }\r\n\r\n // Business rules: When a notification is displayed on website (or via browser notification api), the notification should be flagged as read\r\n // Business rules: A danger notification should stay displayed until user close it (or click on it)\r\n // Business rules: Add an additional browser notification when user is not on the current tab\r\n private async HandleUnreadNotifications() {\r\n const sortedUnreadNotifications = cloneDeep(this.UnreadNotifications).sort((notifA, notifB) =>\r\n new Date(notifA.notificationDate).getTime() < new Date(notifB.notificationDate).getTime() ? 1 : -1\r\n );\r\n const notificationsToDisplayToUser =\r\n sortedUnreadNotifications.length < NOTIFICATION_LIMIT_TO_DISPLAY\r\n ? sortedUnreadNotifications\r\n : sortedUnreadNotifications.slice(0, NOTIFICATION_LIMIT_TO_DISPLAY);\r\n\r\n for (const notification of notificationsToDisplayToUser) {\r\n if (this.NotificationHasBeenAlreadySeen(notification) || notification.flagAsRead === true) continue;\r\n\r\n const notifID = `notif_${notification.id}`;\r\n const notifTitle = this.notificationManager.DetermineNotificationTitle(notification);\r\n const notifText = i18n.t(`notifications.sale_notifications.message.${notification.notification}`) as string;\r\n const notifType = this.notificationManager.GetNotificationType(notification);\r\n // Business rules: A danger notification should stay displayed until user close it (or click on it)\r\n const toastType = ToastTypeMapper.MapAlertTypeToToastType(notifType);\r\n const toastTimeout = NOTIFICATION_DEFAULT_TIMEOUT;\r\n\r\n // Display toast notification\r\n const toastContent: ToastComponent = {\r\n component: ToastMessage,\r\n props: {\r\n title: notifTitle,\r\n message: notifText,\r\n sale: notification.sale,\r\n hasSaleNavigate: true,\r\n actionLabel: this.$t(\"action.see\")\r\n },\r\n listeners: {\r\n click: (sale: ISale) => {\r\n if (this.$route.name != AppRoutes.Sale) {\r\n this.$router.push(this.saleManager.BuildSaleRoute(sale));\r\n }\r\n }\r\n }\r\n };\r\n const toastID = this.$toast(toastContent, {\r\n type: toastType,\r\n timeout: toastTimeout\r\n });\r\n\r\n // Display Browser notification\r\n // Business rules: Add an additional browser notification when user is not on the current tab\r\n if (document.hidden) {\r\n const notificationPermission = await this.AskNotificationPermission();\r\n if (notificationPermission !== \"granted\") {\r\n this.NotifyViaTheBrowser(notifTitle, notifText, notifID, notification);\r\n }\r\n }\r\n\r\n // Flag notification as seen\r\n this.notificationManager.FlagSaleNotificationAsSeen(notification);\r\n // Business rules: Flag notification as read when a notification is displayed on website (or displayed via browser notification api)\r\n if (!authStore.IsAdministrator) await this.notificationManager.FlagSaleNotificationAsRead(notification);\r\n }\r\n }\r\n\r\n private NotificationHasBeenAlreadySeen(notification: ISaleNotification) {\r\n return notificationStore.saleNotificationsSeen.map((sns) => sns.id).includes(notification.id);\r\n }\r\n\r\n //#region BrowserApiNotifications\r\n private AskNotificationPermission(): Promise {\r\n // Check if browser supports notifications\r\n if (!(\"Notification\" in window)) {\r\n console.warn(\"This browser does not support notifications.\");\r\n return Promise.resolve(\"denied\");\r\n } else {\r\n return Notification.requestPermission();\r\n }\r\n }\r\n\r\n private NotifyViaTheBrowser(notifTitle: string, notifText: string, notifID: string, notification: ISaleNotification) {\r\n const notif = new Notification(notifTitle, { body: notifText, tag: notifID });\r\n notif.onclick = (ev: Event) => {\r\n if (notification.saleId) this.NavigateToSale(notification.saleId);\r\n };\r\n }\r\n //#endregion\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheNotifications.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheNotifications.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./TheNotifications.vue?vue&type=template&id=2e5f776c\"\nimport script from \"./TheNotifications.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheNotifications.ts?vue&type=script&lang=ts&external\"\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","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { IRing } from \"@api/models/market/IRing\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport { appDataStore, authStore, searchStore } from \"@market/stores/App.store.modules\";\r\nimport { IListOption } from \"@pigeon/models/IListOption\";\r\nimport { IRingManager } from \"@pigeon/services/contracts/IRingManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Vue, Watch } from \"vue-property-decorator\";\r\nimport { SearchTypes } from \"../../../Api/models/market/constants/SearchTypes\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { BreakpointService } from \"@pigeon/plugins/breakpoint/BreakpointService\";\r\n@Component\r\nexport default class TheSearchBar extends Vue {\r\n @Inject()\r\n private ringManager: IRingManager;\r\n\r\n SearchTypes = SearchTypes;\r\n\r\n get SearchQueryPlaceholderKey(): string {\r\n switch (this.searchType) {\r\n case SearchTypes.SearchByRing:\r\n return \"placeholder_ring\";\r\n\r\n case SearchTypes.SearchByName:\r\n return \"placeholder_name\";\r\n\r\n case SearchTypes.SearchByRingOrName:\r\n default:\r\n return \"placeholder\";\r\n }\r\n }\r\n\r\n get ringAreas(): IRing[] {\r\n return appDataStore.RingAreas;\r\n }\r\n\r\n get ringAreasGroupOptions(): { [key: string]: IListOption[] } {\r\n return appDataStore.RingAreasGroupOptions;\r\n }\r\n\r\n get HasRingClub(): boolean {\r\n if (!this.searchQueryRingArea) return false;\r\n\r\n return this.ringManager.IsRingAreaHasRingClub(this.searchQueryRingArea);\r\n }\r\n\r\n get MaxBirthYear(): number {\r\n return this.ringManager.GetMaxBirthYear();\r\n }\r\n\r\n get SearchTypeOptions(): IListOption[] {\r\n // prettier-ignore\r\n return authStore.IsAdministrator\r\n ? Object.values(SearchTypes)\r\n .map((type) => ({ value: type, label: this.$i18n.t(`enum.search_type.${type}`) } as IListOption))\r\n : Object.values(SearchTypes)\r\n .filter((st) => st !== SearchTypes.SearchByRingOrName)\r\n .map((type) => ({ value: type, label: this.$i18n.t(`enum.search_type.${type}`) } as IListOption))\r\n ;\r\n }\r\n\r\n get SearchBarIsOpen(): boolean {\r\n return searchStore.searchBarIsOpen;\r\n }\r\n\r\n get searchType(): SearchTypes {\r\n return searchStore.searchType;\r\n }\r\n\r\n set searchType(value: SearchTypes) {\r\n searchStore.UpdateSearchType(value);\r\n }\r\n\r\n //#region searchQuery\r\n get searchQuery(): string | null {\r\n return searchStore.searchQueryInput;\r\n }\r\n\r\n set searchQuery(value: string | null) {\r\n searchStore.UpdateSearchQuery(value);\r\n }\r\n\r\n get searchQueryRingArea(): string | null {\r\n return searchStore.searchQueryRingArea;\r\n }\r\n\r\n set searchQueryRingArea(value: string | null) {\r\n searchStore.UpdateSearchQueryRingArea(value);\r\n }\r\n\r\n get searchQueryRingClub(): string | null {\r\n return searchStore.searchQueryRingClub;\r\n }\r\n\r\n set searchQueryRingClub(value: string | null) {\r\n searchStore.UpdateSearchQueryRingClub(value);\r\n }\r\n\r\n get searchQueryRingBirthyear(): number | null {\r\n return searchStore.searchQueryRingBirthyear;\r\n }\r\n\r\n set searchQueryRingBirthyear(value: number | null) {\r\n searchStore.UpdateSearchQueryRingBirthyear(value);\r\n }\r\n //#endregion\r\n\r\n @Watch(`${nameof(\"$breakpoint\")}.${nameof(\"name\")}`)\r\n public ObserveBreakpoint(): void {\r\n if (this.$breakpoint.smAndDown) {\r\n if (\r\n this.searchType == SearchTypes.SearchByRing &&\r\n this.searchQueryRingArea &&\r\n !this.searchQuery?.startsWith(this.searchQueryRingArea)\r\n ) {\r\n this.searchQuery = this.ringManager.RawFormatRing(\r\n this.searchQueryRingArea,\r\n this.searchQueryRingClub,\r\n this.searchQueryRingBirthyear,\r\n this.searchQuery\r\n );\r\n }\r\n } else {\r\n if (this.searchQuery && this.searchQueryRingArea && this.searchQuery.startsWith(this.searchQueryRingArea)) {\r\n if (!this.searchQuery) return;\r\n\r\n let temp = this.searchQuery;\r\n if (this.searchQueryRingArea) temp = temp.replace(this.searchQueryRingArea, \"\").trim() + \" \";\r\n if (this.searchQueryRingClub) temp = temp.replace(this.searchQueryRingClub, \"\").trim();\r\n if (this.searchQueryRingBirthyear)\r\n temp = temp.replace(this.searchQueryRingBirthyear?.toString()?.substring(2), \"\").trim();\r\n if (temp[0] === \"-\") temp = temp.substring(1).trim();\r\n\r\n this.searchQuery = temp;\r\n }\r\n }\r\n }\r\n\r\n public ClearSearch(): void {\r\n searchStore.Reset();\r\n }\r\n\r\n public Search(): void {\r\n searchStore.UpdateSearch();\r\n\r\n // Navigate to catalog\r\n if (this.$route?.name != AppRoutes.Buy) {\r\n this.$router.push({ name: AppRoutes.Buy });\r\n }\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheSearchBar.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheSearchBar.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheSearchBar.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheSearchBar.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TheSearchBar.vue?vue&type=template&id=669b39d3&scoped=true\"\nimport script from \"./TheSearchBar.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheSearchBar.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./TheSearchBar.vue?vue&type=style&index=0&id=669b39d3&prod&lang=scss&scoped=true\"\nimport style1 from \"./TheSearchBar.vue?vue&type=style&index=1&id=669b39d3&prod&lang=scss\"\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 \"669b39d3\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TheSearchBar.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.SearchBarIsOpen)?_c('div',{staticClass:\"search-container\"},[_c('div',{staticClass:\"row no-gutters\"},[_c('div',{staticClass:\"col-12 col-xl-9 col-xxl-6 mx-auto\"},[_c('form',{staticClass:\"d-flex flex-row align-items-stretch w-100 h-100\",attrs:{\"novalidate\":\"\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.Search.apply(null, arguments)}}},[_c('button',{staticClass:\"btn btn-outline-secondary\",attrs:{\"title\":_vm.$t('action.clear_search'),\"type\":\"button\"},on:{\"click\":function($event){return _vm.ClearSearch()}}},[_c('Icon',{attrs:{\"icon\":\"times\"}})],1),(_vm.searchType == _vm.SearchTypes.SearchByRing)?[_c('FormInputSelect',{staticClass:\"d-none d-md-inline input input-row select-row\",attrs:{\"id\":\"searchQueryByArea\",\"options-groups\":_vm.ringAreasGroupOptions,\"name\":\"searchQueryRingArea\",\"validation-rules\":\"required\"},model:{value:(_vm.searchQueryRingArea),callback:function ($$v) {_vm.searchQueryRingArea=$$v},expression:\"searchQueryRingArea\"}}),(_vm.HasRingClub)?_c('FormInput',{staticClass:\"d-none d-md-inline input input-row\",attrs:{\"id\":\"searchQueryByClub\",\"has-floating-label\":false,\"name\":\"searchQueryRingClub\",\"required\":\"\",\"validation-rules\":\"required|max:12\"},model:{value:(_vm.searchQueryRingClub),callback:function ($$v) {_vm.searchQueryRingClub=$$v},expression:\"searchQueryRingClub\"}}):_vm._e(),_c('FormInput',{staticClass:\"d-none d-md-inline input input-row\",attrs:{\"id\":\"searchQueryByYear\",\"has-floating-label\":false,\"max\":_vm.MaxBirthYear,\"min\":\"1900\",\"name\":\"birthYear\",\"required\":\"\",\"type\":\"number\",\"validation-rules\":`required|min_value:1900|max_value:${_vm.MaxBirthYear}`},model:{value:(_vm.searchQueryRingBirthyear),callback:function ($$v) {_vm.searchQueryRingBirthyear=_vm._n($$v)},expression:\"searchQueryRingBirthyear\"}})]:_vm._e(),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchQuery),expression:\"searchQuery\"}],staticClass:\"input input-row flex-grow-1 px-2\",attrs:{\"placeholder\":_vm.$t(`search.${_vm.SearchQueryPlaceholderKey}`),\"type\":\"search\",\"name\":\"searchquery\"},domProps:{\"value\":(_vm.searchQuery)},on:{\"input\":function($event){if($event.target.composing)return;_vm.searchQuery=$event.target.value}}}),_c('FormInputSelect',{staticClass:\"d-none d-sm-inline input input-row select-row\",attrs:{\"id\":\"searchType\",\"name\":\"search-type\",\"options\":_vm.SearchTypeOptions,\"required\":\"\"},model:{value:(_vm.searchType),callback:function ($$v) {_vm.searchType=$$v},expression:\"searchType\"}}),_c('button',{staticClass:\"btn btn-primary h-100 w-auto\",attrs:{\"type\":\"submit\",\"data-cy\":\"app-search\"}},[_vm._v(\" \"+_vm._s(_vm.$t(\"action.search\"))+\" \")])],2)])])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import TheAlerts from \"@market/components/layout/TheAlerts.vue\";\r\nimport TheBetaRibbon from \"@market/components/layout/TheBetaRibbon.vue\";\r\nimport TheFooter from \"@market/components/layout/TheFooter.vue\";\r\nimport TheNavBar from \"@market/components/layout/TheNavBar.vue\";\r\nimport TheNotifications from \"@market/components/layout/TheNotifications.vue\";\r\nimport TheSearchBar from \"@market/components/layout/TheSearchBar.vue\";\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n components: {\r\n TheNavBar,\r\n TheFooter,\r\n TheAlerts,\r\n TheBetaRibbon,\r\n TheNotifications,\r\n TheSearchBar\r\n }\r\n})\r\nexport default class TheLayout extends Vue {}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheLayout.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheLayout.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./TheLayout.vue?vue&type=template&id=2468abf0&scoped=true\"\nimport script from \"./TheLayout.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheLayout.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./TheLayout.vue?vue&type=style&index=0&id=2468abf0&prod&lang=scss&scoped=true\"\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 \"2468abf0\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"layout\"},[_c('TheNavBar'),_c('TheSearchBar'),(_vm.$route.meta && _vm.$route.meta.versionBeta === true)?_c('TheBetaRibbon'):_vm._e(),_c('TheAlerts'),_c('main',[_vm._t(\"default\")],2),_c('TheFooter'),_c('TheBannerCookies'),_c('TheNotifications')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { appStore } from \"@market/stores/App.store.modules\";\r\nimport Vue from \"vue\";\r\nimport { bootstrap } from \"vue-gtag\";\r\nimport { Component, Watch } from \"vue-property-decorator\";\r\n\r\nexport interface IConsent {\r\n \"strictly-necessary\": boolean;\r\n functionality: boolean;\r\n tracking: boolean;\r\n targeting: boolean;\r\n}\r\n\r\nconst COOKIES_CONSENT_USER = \"cookie_consent_user_accepted\";\r\nconst COOKIES_CONSENT_LEVELS = \"cookie_consent_level\";\r\n// TODO: Move to Cookies(Service|Manager)\r\nexport function HasFunctionalityCookieConsent(): boolean {\r\n if (!Vue.cookies) return false;\r\n\r\n const cookiesUserConsent = Vue.cookies.get(COOKIES_CONSENT_USER);\r\n const cookiesConsentLevels = Vue.cookies.get(COOKIES_CONSENT_LEVELS);\r\n\r\n const userHasAcceptedFunctionalityCookie =\r\n cookiesUserConsent && cookiesConsentLevels && (cookiesConsentLevels as IConsent).functionality ? true : false;\r\n\r\n if (!userHasAcceptedFunctionalityCookie)\r\n console.warn(\"User has not accept functionality cookies. It impacts data stored on browser storage.\");\r\n\r\n return userHasAcceptedFunctionalityCookie;\r\n}\r\n\r\n@Component\r\nexport default class TheBannerCookies extends Vue {\r\n created() {\r\n // get user consents from cookies\r\n const userHasAcceptedCookiesConsent = Vue.cookies.get(COOKIES_CONSENT_USER);\r\n\r\n if (Vue.cookies.isKey(COOKIES_CONSENT_LEVELS)) {\r\n this.HandleCookies();\r\n }\r\n\r\n if (!userHasAcceptedCookiesConsent) {\r\n this.RunCookiesConsent();\r\n this.ListenOnCookieChangePrefences();\r\n }\r\n }\r\n\r\n @Watch(\"$i18n.locale\", { immediate: false })\r\n async ObserveCookiesLocal() {\r\n // Remove previous cookies banner (translated in other locale)\r\n document.querySelectorAll(\".cc_dialog\").forEach((element) => {\r\n element.remove();\r\n });\r\n\r\n appStore.UpdateCookiesBanner(false);\r\n await this.RunCookiesConsent();\r\n }\r\n\r\n // Note: cookie consent loaded statically from index.html\r\n private async RunCookiesConsent() {\r\n if (appStore.cookiesBanner) return;\r\n\r\n if (!(window as any).cookieconsent) return;\r\n appStore.UpdateCookiesBanner(true);\r\n\r\n const locale =\r\n window.location.pathname && window.location.pathname.length >= 3\r\n ? window.location.pathname.substring(1, 3)\r\n : \"en\";\r\n\r\n (window as any).cookieconsent.run({\r\n notice_banner_type: \"headline\",\r\n consent_type: \"express\",\r\n palette: \"light\",\r\n language: locale,\r\n website_name: \"PigeonMarket\",\r\n change_preferences_selector: \"#cookiesPreferences\",\r\n cookies_policy_url: \"https://www.pigeonmarket.be/en/cookies-policy\"\r\n });\r\n }\r\n\r\n private ListenOnCookieChangePrefences() {\r\n const elementChangePreferences: HTMLButtonElement = document.querySelector(\".cc_b_cp\") as HTMLButtonElement;\r\n if (elementChangePreferences) {\r\n elementChangePreferences.onclick = this.ListenOnCookieSavePreferences;\r\n }\r\n }\r\n\r\n private ListenOnCookieSavePreferences() {\r\n const elementSavePreferences: HTMLButtonElement = document.querySelector(\r\n \".cc_cp_f_save button\"\r\n ) as HTMLButtonElement;\r\n if (elementSavePreferences) {\r\n elementSavePreferences.onclick = this.HandleCookies;\r\n }\r\n }\r\n\r\n private HandleCookies() {\r\n // get user consents from cookies\r\n const cookiesConsent = Vue.cookies.get(COOKIES_CONSENT_LEVELS);\r\n\r\n if (cookiesConsent) {\r\n const consentLevel: IConsent = cookiesConsent as IConsent;\r\n\r\n this.HandleFunctionalityCookies(consentLevel.functionality);\r\n this.HandleTrackingCookies(consentLevel.tracking);\r\n this.HandleTargetingCookies(consentLevel.targeting);\r\n }\r\n }\r\n\r\n private HandleFunctionalityCookies(hasConsent: boolean) {\r\n if (!hasConsent) {\r\n localStorage.clear();\r\n }\r\n }\r\n\r\n private async HandleTrackingCookies(hasConsent: boolean) {\r\n const userHasAcceptedCookiesConsent = Vue.cookies.get(COOKIES_CONSENT_USER);\r\n\r\n if (process.env.NODE_ENV === \"production\" && userHasAcceptedCookiesConsent && hasConsent) {\r\n await bootstrap();\r\n }\r\n }\r\n\r\n private HandleTargetingCookies(hasConsent: boolean) {}\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheBannerCookies.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheBannerCookies.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./TheBannerCookies.vue?vue&type=template&id=6cfed756\"\nimport script from \"./TheBannerCookies.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheBannerCookies.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./TheBannerCookies.vue?vue&type=style&index=0&id=6cfed756&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","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"d-none\"})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class TheBody extends Vue {}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheBody.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheBody.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./TheBody.vue?vue&type=template&id=14c485ac&scoped=true\"\nimport script from \"./TheBody.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheBody.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./TheBody.vue?vue&type=style&index=0&id=14c485ac&prod&lang=scss&scoped=true\"\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 \"14c485ac\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('div',{staticClass:\"page\"},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class TheFooterEmpty extends Vue {}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheFooterEmpty.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheFooterEmpty.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./TheFooterEmpty.vue?vue&type=template&id=6bff0265&scoped=true\"\nimport script from \"./TheFooterEmpty.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheFooterEmpty.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./TheFooterEmpty.vue?vue&type=style&index=0&id=6bff0265&prod&lang=scss&scoped=true\"\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 \"6bff0265\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('footer',{staticClass:\"content-footer\",attrs:{\"id\":\"page-footer\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AppRoutes } from \"@market/routers/App.routes\";\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class TheFooterHelp extends Vue {\r\n AppRoutes = AppRoutes;\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheFooterHelp.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheFooterHelp.ts?vue&type=script&lang=ts&external\"","import mod from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheFooterHelp.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./TheFooterHelp.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./TheFooterHelp.vue?vue&type=template&id=41f28982&scoped=true\"\nimport script from \"./TheFooterHelp.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheFooterHelp.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./TheFooterHelp.vue?vue&type=style&index=0&id=41f28982&prod&lang=scss&scoped=true\"\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 \"41f28982\",\n null\n \n)\n\n/* custom blocks */\nimport block0 from \"./TheFooterHelp.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('footer',{staticClass:\"content-footer\",attrs:{\"id\":\"page-footer\"}},[_c('h4',{staticClass:\"h4\"},[_vm._v(_vm._s(_vm.$t(\"help_title\")))]),_c('div',{attrs:{\"id\":\"help\"}},[_c('p',{domProps:{\"innerHTML\":_vm._s(_vm.$t('help'))}}),_c('I18nRouterLink',{staticClass:\"btn btn-primary\",attrs:{\"type\":\"button\",\"tag\":\"button\",\"to\":{ name: _vm.AppRoutes.Contact }}},[_vm._v(_vm._s(_vm.$t(\"action.contact_us\")))])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class TheHeader extends Vue {\r\n @Prop({ type: String })\r\n readonly title?: string;\r\n @Prop({ type: String })\r\n readonly titleSecondary?: string;\r\n @Prop({ type: String })\r\n readonly backgroundImageUrl?: string;\r\n\r\n get Style(): string | null {\r\n if (!this.backgroundImageUrl) {\r\n return null;\r\n }\r\n\r\n return `background-image: url('${this.backgroundImageUrl}');`;\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheHeader.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./TheHeader.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./TheHeader.vue?vue&type=template&id=0d852f56&scoped=true\"\nimport script from \"./TheHeader.ts?vue&type=script&lang=ts&external\"\nexport * from \"./TheHeader.ts?vue&type=script&lang=ts&external\"\nimport style0 from \"./TheHeader.vue?vue&type=style&index=0&id=0d852f56&prod&lang=scss&scoped=true\"\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 \"0d852f56\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return (_vm.title || _vm.titleSecondary || _vm.backgroundImageUrl)?_c('div',{staticClass:\"header\",class:{ 'cover-header': _vm.backgroundImageUrl },style:(_vm.Style),attrs:{\"id\":\"page-header\"}},[_vm._t(\"default\",function(){return [(_vm.title)?_c('h1',{staticClass:\"header_title\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \"),(_vm.titleSecondary)?_c('small',[_vm._v(_vm._s(_vm.titleSecondary))]):_vm._e()]):_vm._e(),_c('NavBreadcrumb')]})],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import TheFooterNewsletter from \"@market/components/layout/TheFooterNewsletter.vue\";\r\nimport TheLayout from \"@market/components/layout/TheLayout.vue\";\r\nimport TheBannerCookies from \"@pigeon/components/layout/TheBannerCookies.vue\";\r\nimport TheBody from \"@pigeon/components/layout/TheBody.vue\";\r\nimport TheFooterEmpty from \"@pigeon/components/layout/TheFooterEmpty.vue\";\r\nimport TheFooterHelp from \"@pigeon/components/layout/TheFooterHelp.vue\";\r\nimport TheHeader from \"@pigeon/components/layout/TheHeader.vue\";\r\nimport Vue from \"vue\";\r\n\r\n// Layout components\r\nVue.component(\"TheLayout\", TheLayout);\r\n\r\nVue.component(\"TheHeader\", TheHeader);\r\nVue.component(\"TheBody\", TheBody);\r\nVue.component(\"TheFooterNewsletter\", TheFooterNewsletter);\r\nVue.component(\"TheFooterHelp\", TheFooterHelp);\r\nVue.component(\"TheFooterEmpty\", TheFooterEmpty);\r\nVue.component(\"TheBannerCookies\", TheBannerCookies);\r\n","import PigeonAsset from \"@pigeon/components/pigeon/PigeonAsset.vue\";\r\nimport Vue from \"vue\";\r\n\r\n// Recursive components\r\nVue.component(\"PigeonAsset\", PigeonAsset);\r\n","import { AppRoles } from \"@api/models/market/constants/AppRoles\";\r\nimport { accountStore, authStore } from \"@market/stores/App.store.modules\";\r\nimport { IAuthorizeVNodeDirective } from \"./IAuthorizeVNodeDirective\";\r\n\r\n/**\r\n * @deprecated should use v-if=\"$auth.Property\" instead\r\n */\r\nfunction IsAuthorized(requiredRoles?: string[] | AppRoles[], shouldAccountBeVerified = false): Promise {\r\n let isAuthorized = false;\r\n\r\n // v-if-auth (no parameter) => User must be authenticated\r\n if (!requiredRoles) {\r\n isAuthorized = authStore.IsAuthenticated;\r\n }\r\n // v-if-auth=\"['roleName']\" => User must be authenticated and have the required role\r\n else {\r\n if (!(requiredRoles instanceof Array) || requiredRoles.length < 1)\r\n Promise.reject(\r\n new Error(\r\n \"[Error] invalid argument for v-if-auth directive: the parameter roles is must be an array of AppRoles `v-if-auth=\\\"['roleName']\\\"`\"\r\n )\r\n );\r\n\r\n const appRoles = Object.values(AppRoles);\r\n isAuthorized = requiredRoles.some((requiredRole: string | AppRoles) => {\r\n return appRoles.includes(requiredRole as AppRoles) && authStore.IsAuthorized(requiredRole);\r\n });\r\n }\r\n\r\n // Modifiers account\r\n // v-if-auth:verified OR v-if-auth:verified=\"['roleName']\"\r\n if (shouldAccountBeVerified) isAuthorized = isAuthorized && accountStore.AccountIsVerified;\r\n\r\n return Promise.resolve(isAuthorized);\r\n}\r\n\r\nasync function HideNodeIfNotAuthorized(el: HTMLElement, binding: IAuthorizeVNodeDirective) {\r\n const { value: requiredRoles } = binding;\r\n const shouldAccountBeVerified = binding.modifiers && binding.modifiers[\"verified\"] ? true : false;\r\n const isAuthorized = await IsAuthorized(requiredRoles, shouldAccountBeVerified);\r\n\r\n if (!isAuthorized) {\r\n el.style.display = \"none\";\r\n } else {\r\n el.style.display = \"\";\r\n }\r\n}\r\n\r\nexport default {\r\n bind(el: HTMLElement, binding: IAuthorizeVNodeDirective) {\r\n el.style.display = \"none\";\r\n },\r\n inserted(el: HTMLElement, binding: IAuthorizeVNodeDirective) {\r\n HideNodeIfNotAuthorized(el, binding);\r\n },\r\n update(el: HTMLElement, binding: IAuthorizeVNodeDirective) {\r\n HideNodeIfNotAuthorized(el, binding);\r\n }\r\n};\r\n","import { IResizeVNodeDirective } from \"./IResizeVNodeDirective\";\r\n\r\nexport default {\r\n inserted(el: HTMLElement, binding: IResizeVNodeDirective) {\r\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\r\n const callback = binding.value!;\r\n const options = binding.options || { passive: true };\r\n\r\n window.addEventListener(\"resize\", callback, options);\r\n (el as any)._onResize = {\r\n callback,\r\n options\r\n };\r\n\r\n if (!binding.modifiers || !binding.modifiers.quiet) {\r\n callback();\r\n }\r\n },\r\n unbind(el: HTMLElement) {\r\n if (!(el as any)._onResize) return;\r\n\r\n const { callback, options } = (el as any)._onResize;\r\n window.removeEventListener(\"resize\", callback, options);\r\n delete (el as any)._onResize;\r\n }\r\n};\r\n","import { AuthorizeDirective, ResizeDirective } from \"@pigeon/directives\";\r\nimport Vue from \"vue\";\r\nimport VueScrollTo from \"vue-scrollto\";\r\n\r\nVue.use(VueScrollTo);\r\nVue.directive(\"resize\", ResizeDirective);\r\nVue.directive(\"ifAuth\", AuthorizeDirective);\r\n","// Note: the bundle size is optimized via the plugin babel-transform-imports\r\n// See https://bitbucket.org/amctheatres/babel-transform-imports/src/master/\r\nimport { config, library } from \"@fortawesome/fontawesome-svg-core\";\r\nimport { FontAwesomeIcon } from \"@fortawesome/vue-fontawesome\";\r\nimport Vue from \"vue\";\r\n\r\n// free-brands-svg-icons\r\nimport { faCcAmex as fabCcAmex } from \"@fortawesome/free-brands-svg-icons/faCcAmex\";\r\nimport { faCcDinersClub as fabCcDinersClub } from \"@fortawesome/free-brands-svg-icons/faCcDinersClub\";\r\nimport { faCcDiscover as fabCcDiscover } from \"@fortawesome/free-brands-svg-icons/faCcDiscover\";\r\nimport { faCcJcb as fabCcJcb } from \"@fortawesome/free-brands-svg-icons/faCcJcb\";\r\nimport { faCcMastercard as fabCcMastercard } from \"@fortawesome/free-brands-svg-icons/faCcMastercard\";\r\nimport { faCcPaypal as fabCcPaypal } from \"@fortawesome/free-brands-svg-icons/faCcPaypal\";\r\nimport { faCcStripe as fabCcStripe } from \"@fortawesome/free-brands-svg-icons/faCcStripe\";\r\nimport { faCcVisa as fabCcVisa } from \"@fortawesome/free-brands-svg-icons/faCcVisa\";\r\nimport { faFacebook as fabFacebook } from \"@fortawesome/free-brands-svg-icons/faFacebook\";\r\nimport { faStripe as fabStripe } from \"@fortawesome/free-brands-svg-icons/faStripe\";\r\nimport { faTwitter as fabTwitter } from \"@fortawesome/free-brands-svg-icons/faTwitter\";\r\n\r\n// free-regular-svg-icons\r\nimport { faBuilding as farBuilding } from \"@fortawesome/free-regular-svg-icons/faBuilding\";\r\nimport { faCaretSquareDown as farCaretSquareDown } from \"@fortawesome/free-regular-svg-icons/faCaretSquareDown\";\r\nimport { faCheckCircle as farCheckCircle } from \"@fortawesome/free-regular-svg-icons/faCheckCircle\";\r\nimport { faClock as farClock } from \"@fortawesome/free-regular-svg-icons/faClock\";\r\nimport { faEnvelope as farEnvelope } from \"@fortawesome/free-regular-svg-icons/faEnvelope\";\r\nimport { faFilePdf as farFilePdf } from \"@fortawesome/free-regular-svg-icons/faFilePdf\";\r\nimport { faFileVideo } from \"@fortawesome/free-regular-svg-icons/faFileVideo\";\r\nimport { faFlag as farFlag } from \"@fortawesome/free-regular-svg-icons/faFlag\";\r\nimport { faGem as farGem } from \"@fortawesome/free-regular-svg-icons/faGem\";\r\nimport { faHandshake as farHandshake } from \"@fortawesome/free-regular-svg-icons/faHandshake\";\r\nimport { faImage as farImage } from \"@fortawesome/free-regular-svg-icons/faImage\";\r\nimport { faPaperPlane as farPaperPlane } from \"@fortawesome/free-regular-svg-icons/faPaperPlane\";\r\nimport { faQuestionCircle as farQuestionCircle } from \"@fortawesome/free-regular-svg-icons/faQuestionCircle\";\r\nimport { faSave as farSave } from \"@fortawesome/free-regular-svg-icons/faSave\";\r\nimport { faStar as farStar } from \"@fortawesome/free-regular-svg-icons/faStar\";\r\nimport { faUser as farUser } from \"@fortawesome/free-regular-svg-icons/faUser\";\r\nimport { faSmileBeam as farSmileBeam } from \"@fortawesome/free-regular-svg-icons/faSmileBeam\";\r\nimport { faAngry as farAngry } from \"@fortawesome/free-regular-svg-icons/faAngry\";\r\nimport { faSadTear as farSadTear } from \"@fortawesome/free-regular-svg-icons/faSadTear\";\r\nimport { faFrown as farFrown } from \"@fortawesome/free-regular-svg-icons/faFrown\";\r\nimport { faDizzy as farDizzy } from \"@fortawesome/free-regular-svg-icons/faDizzy\";\r\n\r\n// free-solid-svg-icons\r\nimport { faCoins } from \"@fortawesome/free-solid-svg-icons/faCoins\";\r\nimport { faAddressBook } from \"@fortawesome/free-solid-svg-icons/faAddressBook\";\r\nimport { faAngleDown } from \"@fortawesome/free-solid-svg-icons/faAngleDown\";\r\nimport { faAngleLeft } from \"@fortawesome/free-solid-svg-icons/faAngleLeft\";\r\nimport { faAngleRight } from \"@fortawesome/free-solid-svg-icons/faAngleRight\";\r\nimport { faAngleUp } from \"@fortawesome/free-solid-svg-icons/faAngleUp\";\r\nimport { faArrowDown } from \"@fortawesome/free-solid-svg-icons/faArrowDown\";\r\nimport { faArrowUp } from \"@fortawesome/free-solid-svg-icons/faArrowUp\";\r\nimport { faAt } from \"@fortawesome/free-solid-svg-icons/faAt\";\r\nimport { faBars } from \"@fortawesome/free-solid-svg-icons/faBars\";\r\nimport { faBell } from \"@fortawesome/free-solid-svg-icons/faBell\";\r\nimport { faBolt } from \"@fortawesome/free-solid-svg-icons/faBolt\";\r\nimport { faBox } from \"@fortawesome/free-solid-svg-icons/faBox\";\r\nimport { faCalendar } from \"@fortawesome/free-solid-svg-icons/faCalendar\";\r\nimport { faCalendarWeek } from \"@fortawesome/free-solid-svg-icons/faCalendarWeek\";\r\nimport { faCheck } from \"@fortawesome/free-solid-svg-icons/faCheck\";\r\nimport { faCheckCircle } from \"@fortawesome/free-solid-svg-icons/faCheckCircle\";\r\nimport { faCircle } from \"@fortawesome/free-solid-svg-icons/faCircle\";\r\nimport { faClock } from \"@fortawesome/free-solid-svg-icons/faClock\";\r\nimport { faCloud } from \"@fortawesome/free-solid-svg-icons/faCloud\";\r\nimport { faCog } from \"@fortawesome/free-solid-svg-icons/faCog\";\r\nimport { faCompass } from \"@fortawesome/free-solid-svg-icons/faCompass\";\r\nimport { faCreditCard } from \"@fortawesome/free-solid-svg-icons/faCreditCard\";\r\nimport { faDatabase } from \"@fortawesome/free-solid-svg-icons/faDatabase\";\r\nimport { faDirections } from \"@fortawesome/free-solid-svg-icons/faDirections\";\r\nimport { faDna } from \"@fortawesome/free-solid-svg-icons/faDna\";\r\nimport { faDove } from \"@fortawesome/free-solid-svg-icons/faDove\";\r\nimport { faEgg } from \"@fortawesome/free-solid-svg-icons/faEgg\";\r\nimport { faEllipsisH } from \"@fortawesome/free-solid-svg-icons/faEllipsisH\";\r\nimport { faEllipsisV } from \"@fortawesome/free-solid-svg-icons/faEllipsisV\";\r\nimport { faEnvelope } from \"@fortawesome/free-solid-svg-icons/faEnvelope\";\r\nimport { faEuroSign } from \"@fortawesome/free-solid-svg-icons/faEuroSign\";\r\nimport { faExclamation } from \"@fortawesome/free-solid-svg-icons/faExclamation\";\r\nimport { faExclamationCircle } from \"@fortawesome/free-solid-svg-icons/faExclamationCircle\";\r\nimport { faExclamationTriangle } from \"@fortawesome/free-solid-svg-icons/faExclamationTriangle\";\r\nimport { faExternalLinkAlt } from \"@fortawesome/free-solid-svg-icons/faExternalLinkAlt\";\r\nimport { faEye } from \"@fortawesome/free-solid-svg-icons/faEye\";\r\nimport { faFeatherAlt } from \"@fortawesome/free-solid-svg-icons/faFeatherAlt\";\r\nimport { faFileImage } from \"@fortawesome/free-solid-svg-icons/faFileImage\";\r\nimport { faFileInvoice } from \"@fortawesome/free-solid-svg-icons/faFileInvoice\";\r\nimport { faFileInvoiceDollar } from \"@fortawesome/free-solid-svg-icons/faFileInvoiceDollar\";\r\nimport { faFilter } from \"@fortawesome/free-solid-svg-icons/faFilter\";\r\nimport { faFlag } from \"@fortawesome/free-solid-svg-icons/faFlag\";\r\nimport { faFont } from \"@fortawesome/free-solid-svg-icons/faFont\";\r\nimport { faGavel } from \"@fortawesome/free-solid-svg-icons/faGavel\";\r\nimport { faGenderless } from \"@fortawesome/free-solid-svg-icons/faGenderless\";\r\nimport { faGlobe } from \"@fortawesome/free-solid-svg-icons/faGlobe\";\r\nimport { faHandHoldingUsd } from \"@fortawesome/free-solid-svg-icons/faHandHoldingUsd\";\r\nimport { faHashtag } from \"@fortawesome/free-solid-svg-icons/faHashtag\";\r\nimport { faHistory } from \"@fortawesome/free-solid-svg-icons/faHistory\";\r\nimport { faIdBadge } from \"@fortawesome/free-solid-svg-icons/faIdBadge\";\r\nimport { faIdCard } from \"@fortawesome/free-solid-svg-icons/faIdCard\";\r\nimport { faImage } from \"@fortawesome/free-solid-svg-icons/faImage\";\r\nimport { faInfo } from \"@fortawesome/free-solid-svg-icons/faInfo\";\r\nimport { faInfoCircle } from \"@fortawesome/free-solid-svg-icons/faInfoCircle\";\r\nimport { faKey } from \"@fortawesome/free-solid-svg-icons/faKey\";\r\nimport { faLink } from \"@fortawesome/free-solid-svg-icons/faLink\";\r\nimport { faList } from \"@fortawesome/free-solid-svg-icons/faList\";\r\nimport { faLock } from \"@fortawesome/free-solid-svg-icons/faLock\";\r\nimport { faMailBulk } from \"@fortawesome/free-solid-svg-icons/faMailBulk\";\r\nimport { faMapMarkerAlt } from \"@fortawesome/free-solid-svg-icons/faMapMarkerAlt\";\r\nimport { faMars } from \"@fortawesome/free-solid-svg-icons/faMars\";\r\nimport { faMedal } from \"@fortawesome/free-solid-svg-icons/faMedal\";\r\nimport { faMicroscope } from \"@fortawesome/free-solid-svg-icons/faMicroscope\";\r\nimport { faMinus } from \"@fortawesome/free-solid-svg-icons/faMinus\";\r\nimport { faMobileAlt } from \"@fortawesome/free-solid-svg-icons/faMobileAlt\";\r\nimport { faMoneyBill } from \"@fortawesome/free-solid-svg-icons/faMoneyBill\";\r\nimport { faMoneyCheck } from \"@fortawesome/free-solid-svg-icons/faMoneyCheck\";\r\nimport { faMoneyCheckAlt } from \"@fortawesome/free-solid-svg-icons/faMoneyCheckAlt\";\r\nimport { faPause } from \"@fortawesome/free-solid-svg-icons/faPause\";\r\nimport { faPencilAlt } from \"@fortawesome/free-solid-svg-icons/faPencilAlt\";\r\nimport { faPlay } from \"@fortawesome/free-solid-svg-icons/faPlay\";\r\nimport { faPlus } from \"@fortawesome/free-solid-svg-icons/faPlus\";\r\nimport { faPrint } from \"@fortawesome/free-solid-svg-icons/faPrint\";\r\nimport { faQuestion } from \"@fortawesome/free-solid-svg-icons/faQuestion\";\r\nimport { faQuestionCircle } from \"@fortawesome/free-solid-svg-icons/faQuestionCircle\";\r\nimport { faReceipt } from \"@fortawesome/free-solid-svg-icons/faReceipt\";\r\nimport { faRedo } from \"@fortawesome/free-solid-svg-icons/faRedo\";\r\nimport { faRetweet } from \"@fortawesome/free-solid-svg-icons/faRetweet\";\r\nimport { faRing } from \"@fortawesome/free-solid-svg-icons/faRing\";\r\nimport { faSearch } from \"@fortawesome/free-solid-svg-icons/faSearch\";\r\nimport { faSearchPlus } from \"@fortawesome/free-solid-svg-icons/faSearchPlus\";\r\nimport { faSearchMinus } from \"@fortawesome/free-solid-svg-icons/faSearchMinus\";\r\nimport { faShieldAlt } from \"@fortawesome/free-solid-svg-icons/faShieldAlt\";\r\nimport { faShippingFast } from \"@fortawesome/free-solid-svg-icons/faShippingFast\";\r\nimport { faShoppingCart } from \"@fortawesome/free-solid-svg-icons/faShoppingCart\";\r\nimport { faSitemap } from \"@fortawesome/free-solid-svg-icons/faSitemap\";\r\nimport { faStar } from \"@fortawesome/free-solid-svg-icons/faStar\";\r\nimport { faStarHalfAlt } from \"@fortawesome/free-solid-svg-icons/faStarHalfAlt\";\r\nimport { faStop } from \"@fortawesome/free-solid-svg-icons/faStop\";\r\nimport { faStopwatch } from \"@fortawesome/free-solid-svg-icons/faStopwatch\";\r\nimport { faStore } from \"@fortawesome/free-solid-svg-icons/faStore\";\r\nimport { faTable } from \"@fortawesome/free-solid-svg-icons/faTable\";\r\nimport { faTag } from \"@fortawesome/free-solid-svg-icons/faTag\";\r\nimport { faTasks } from \"@fortawesome/free-solid-svg-icons/faTasks\";\r\nimport { faTh } from \"@fortawesome/free-solid-svg-icons/faTh\";\r\nimport { faThLarge } from \"@fortawesome/free-solid-svg-icons/faThLarge\";\r\nimport { faThumbsDown } from \"@fortawesome/free-solid-svg-icons/faThumbsDown\";\r\nimport { faThumbsUp } from \"@fortawesome/free-solid-svg-icons/faThumbsUp\";\r\nimport { faThumbtack } from \"@fortawesome/free-solid-svg-icons/faThumbtack\";\r\nimport { faTimes } from \"@fortawesome/free-solid-svg-icons/faTimes\";\r\nimport { faTimesCircle } from \"@fortawesome/free-solid-svg-icons/faTimesCircle\";\r\nimport { faTrophy } from \"@fortawesome/free-solid-svg-icons/faTrophy\";\r\nimport { faTruck } from \"@fortawesome/free-solid-svg-icons/faTruck\";\r\nimport { faUser } from \"@fortawesome/free-solid-svg-icons/faUser\";\r\nimport { faUserCheck } from \"@fortawesome/free-solid-svg-icons/faUserCheck\";\r\nimport { faUserLock } from \"@fortawesome/free-solid-svg-icons/faUserLock\";\r\nimport { faUserPlus } from \"@fortawesome/free-solid-svg-icons/faUserPlus\";\r\nimport { faUsers } from \"@fortawesome/free-solid-svg-icons/faUsers\";\r\nimport { faUserTie } from \"@fortawesome/free-solid-svg-icons/faUserTie\";\r\nimport { faUserTag } from \"@fortawesome/free-solid-svg-icons/faUserTag\";\r\nimport { faVenus } from \"@fortawesome/free-solid-svg-icons/faVenus\";\r\nimport { faVideo } from \"@fortawesome/free-solid-svg-icons/faVideo\";\r\nimport { faWindowMaximize } from \"@fortawesome/free-solid-svg-icons/faWindowMaximize\";\r\nimport { faWindowMinimize } from \"@fortawesome/free-solid-svg-icons/faWindowMinimize\";\r\nimport { faTicket } from \"@fortawesome/free-solid-svg-icons/faTicket\";\r\nimport { faLanguage } from \"@fortawesome/free-solid-svg-icons/faLanguage\";\r\nimport { faPercent } from \"@fortawesome/free-solid-svg-icons/faPercent\";\r\nimport { faTools } from \"@fortawesome/free-solid-svg-icons/faTools\";\r\nimport { faFunnelDollar } from \"@fortawesome/free-solid-svg-icons/faFunnelDollar\";\r\nimport { faBan } from \"@fortawesome/free-solid-svg-icons/faBan\";\r\nimport { faTrash } from \"@fortawesome/free-solid-svg-icons/faTrash\";\r\nimport { faComments } from \"@fortawesome/free-solid-svg-icons/faComments\";\r\nimport { faDolly } from \"@fortawesome/free-solid-svg-icons/faDolly\";\r\nimport { faBackspace } from \"@fortawesome/free-solid-svg-icons/faBackspace\";\r\nimport { faPiggyBank } from \"@fortawesome/free-solid-svg-icons/faPiggyBank\";\r\nimport { faUniversity } from \"@fortawesome/free-solid-svg-icons/faUniversity\";\r\nimport { faExpandAlt } from \"@fortawesome/free-solid-svg-icons/faExpandAlt\";\r\nimport { faEraser } from \"@fortawesome/free-solid-svg-icons/faEraser\";\r\n\r\n// solid icons\r\nlibrary.add(\r\n faImage,\r\n faVideo,\r\n faFileImage,\r\n faFileVideo,\r\n faVenus,\r\n faMars,\r\n faGenderless,\r\n faTh,\r\n faThLarge,\r\n faTable,\r\n faAngleUp,\r\n faAngleRight,\r\n faAngleDown,\r\n faAngleLeft,\r\n faInfo,\r\n faInfoCircle,\r\n faQuestion,\r\n faQuestionCircle,\r\n faExclamation,\r\n faExclamationTriangle,\r\n faExclamationCircle,\r\n faClock,\r\n faHistory,\r\n faPlus,\r\n faMinus,\r\n faRedo,\r\n faTimes,\r\n faEnvelope,\r\n faBars,\r\n faStar,\r\n faUser,\r\n faUserTie,\r\n faUserTag,\r\n faUserPlus,\r\n faUserLock,\r\n faUserCheck,\r\n faUsers,\r\n faShoppingCart,\r\n faAt,\r\n faMobileAlt,\r\n faMapMarkerAlt,\r\n faGavel,\r\n faLink,\r\n faExternalLinkAlt,\r\n faStore,\r\n faBolt,\r\n faCheck,\r\n faKey,\r\n faShieldAlt,\r\n faCog,\r\n faEye,\r\n faSitemap,\r\n faEuroSign,\r\n faCreditCard,\r\n faIdCard,\r\n faLock,\r\n faShippingFast,\r\n faTruck,\r\n faBox,\r\n faDirections,\r\n faFileInvoice,\r\n faCalendar,\r\n faCalendarWeek,\r\n faHashtag,\r\n faThumbsUp,\r\n faThumbsDown,\r\n faFeatherAlt,\r\n faMicroscope,\r\n faDna,\r\n faDatabase,\r\n faMedal,\r\n faTrophy,\r\n faSearch,\r\n faSearchPlus,\r\n faSearchMinus,\r\n faFont,\r\n faWindowMaximize,\r\n faWindowMinimize,\r\n faPencilAlt,\r\n faArrowUp,\r\n faArrowDown,\r\n faTag,\r\n faCompass,\r\n faCheckCircle,\r\n faTimesCircle,\r\n faFlag,\r\n faBell,\r\n faDove,\r\n faBars,\r\n faList,\r\n faGlobe,\r\n faMoneyBill,\r\n faStar,\r\n faStarHalfAlt,\r\n faMoneyCheck,\r\n faMoneyCheckAlt,\r\n faCloud,\r\n faCircle,\r\n faEllipsisH,\r\n faEllipsisV,\r\n faPlay,\r\n faPause,\r\n faStop,\r\n faRing,\r\n faEgg,\r\n faGavel,\r\n faStopwatch,\r\n faMoneyBill,\r\n faMoneyCheck,\r\n faFileInvoiceDollar,\r\n faRetweet,\r\n faThumbtack,\r\n faMailBulk,\r\n faPrint,\r\n faReceipt,\r\n faFilter,\r\n faAddressBook,\r\n faHandHoldingUsd,\r\n faTasks,\r\n faIdBadge,\r\n faTicket,\r\n faLanguage,\r\n faPercent,\r\n faTools,\r\n faFunnelDollar,\r\n faBan,\r\n faTrash,\r\n faComments,\r\n faCoins,\r\n faDolly,\r\n faBackspace,\r\n faPiggyBank,\r\n faUniversity,\r\n faExpandAlt,\r\n faEraser\r\n);\r\n\r\n// regular icons\r\nlibrary.add(\r\n farImage,\r\n farFilePdf,\r\n farEnvelope,\r\n farClock,\r\n farPaperPlane,\r\n farHandshake,\r\n farGem,\r\n farSave,\r\n farCheckCircle,\r\n farQuestionCircle,\r\n farBuilding,\r\n farCaretSquareDown,\r\n farFlag,\r\n farStar,\r\n farUser,\r\n farSmileBeam,\r\n farAngry,\r\n farDizzy,\r\n farFrown,\r\n farSadTear\r\n);\r\n\r\n// brand icons\r\nlibrary.add(\r\n fabCcVisa,\r\n fabCcMastercard,\r\n fabCcPaypal,\r\n fabCcAmex,\r\n fabCcDiscover,\r\n fabCcDinersClub,\r\n fabCcJcb,\r\n fabTwitter,\r\n fabFacebook,\r\n fabCcStripe,\r\n fabStripe\r\n);\r\n\r\n// Skip auto-inserting CSS into the \r\nconfig.autoAddCss = false;\r\n\r\n// eslint-disable-next-line vue/multi-word-component-names\r\nVue.component(\"Icon\", FontAwesomeIcon);\r\n","import router from \"@market/routers\";\r\nimport Vue from \"vue\";\r\nimport VueAppInsights from \"vue-application-insights\";\r\nimport VueGtag from \"vue-gtag\";\r\n\r\nif (process.env.NODE_ENV === \"production\") {\r\n Vue.use(VueAppInsights, {\r\n id: \"c89077e8-a7da-4067-8489-0122fd7a30d9\",\r\n router\r\n });\r\n\r\n Vue.use(\r\n VueGtag,\r\n {\r\n config: {\r\n id: \"UA-67421427-2\"\r\n },\r\n bootstrap: false\r\n },\r\n router\r\n );\r\n}\r\n","import Vue from \"vue\";\r\nimport { BreakpointService } from \"./breakpoint/BreakpointService\";\r\n\r\nexport const breakpointService = new BreakpointService({\r\n breakpoint: {\r\n thresholds: {\r\n xs: 576,\r\n sm: 768,\r\n md: 992,\r\n lg: 1200,\r\n xl: 1600,\r\n xxl: undefined\r\n }\r\n }\r\n});\r\n\r\n// See https://fr.vuejs.org/v2/guide/plugins.html\r\nconst breakpointPlugin: any = {\r\n install(Vue: Vue) {\r\n (Vue as any).prototype.$breakpoint = (Vue as any).observable(breakpointService);\r\n }\r\n};\r\n\r\nexport default breakpointPlugin;\r\n","/* eslint-disable @typescript-eslint/no-non-null-assertion */\r\nimport { Breakpoints } from \"./Breakpoints\";\r\nimport { IBreakpoint } from \"./IBreakpoint\";\r\nimport { IBreakpointThresholds } from \"./IBreakpointThresholds\";\r\nimport { IPreset } from \"./IPreset\";\r\n\r\n// See https://github.com/vuetifyjs/vuetify/blob/master/packages/vuetify/src/services/breakpoint/index.ts\r\n// Docs https://vuetifyjs.com/en/customization/breakpoints/\r\nexport class BreakpointService implements IBreakpoint {\r\n // public\r\n xs = false;\r\n sm = false;\r\n md = false;\r\n lg = false;\r\n xl = false;\r\n xxl = false;\r\n\r\n xsOnly = false;\r\n smOnly = false;\r\n smAndDown = false;\r\n smAndUp = false;\r\n mdOnly = false;\r\n mdAndDown = false;\r\n mdAndUp = false;\r\n lgOnly = false;\r\n lgAndDown = false;\r\n lgAndUp = false;\r\n xlOnly = false;\r\n xlAndDown = false;\r\n xlAndUp = false;\r\n xxlOnly = false;\r\n\r\n name: Breakpoints = Breakpoints.ExtraSmall; // mobile first\r\n height = 0;\r\n width = 0;\r\n thresholds: IBreakpointThresholds;\r\n\r\n // private\r\n private resizeTimeout = 0;\r\n\r\n constructor(preset: IPreset) {\r\n const { thresholds } = preset.breakpoint;\r\n this.thresholds = thresholds;\r\n\r\n this.Init();\r\n }\r\n\r\n public Init() {\r\n if (typeof window === \"undefined\") return;\r\n\r\n window.addEventListener(\"resize\", this.OnResize.bind(this), { passive: true });\r\n\r\n this.Update();\r\n }\r\n\r\n private OnResize() {\r\n clearTimeout(this.resizeTimeout);\r\n this.resizeTimeout = window.setTimeout(this.Update.bind(this), 100);\r\n }\r\n\r\n /* eslint-disable-next-line max-statements */\r\n private Update() {\r\n const height = this.GetClientHeight();\r\n const width = this.GetClientWidth();\r\n\r\n const xs = width < this.thresholds.xs;\r\n const sm = width < this.thresholds.sm && !xs;\r\n const md = width < this.thresholds.md && !(sm || xs);\r\n const lg = width < this.thresholds.lg && !(md || sm || xs);\r\n const xl = width < this.thresholds.xl && !(lg || md || sm || xs);\r\n const xxl = width >= this.thresholds.xl;\r\n\r\n this.height = height;\r\n this.width = width;\r\n\r\n this.xs = xs;\r\n this.sm = sm;\r\n this.md = md;\r\n this.lg = lg;\r\n this.xl = xl;\r\n this.xxl = xxl;\r\n\r\n this.xsOnly = xs;\r\n this.smOnly = sm;\r\n this.smAndDown = (xs || sm) && !(md || lg || xl || xxl);\r\n this.smAndUp = !xs && (sm || md || lg || xl || xxl);\r\n this.mdOnly = md;\r\n this.mdAndDown = (xs || sm || md) && !(lg || xl || xxl);\r\n this.mdAndUp = !(xs || sm) && (md || lg || xl || xxl);\r\n this.lgOnly = lg;\r\n this.lgAndDown = (xs || sm || md || lg) && !(xl || xxl);\r\n this.lgAndUp = !(xs || sm || md) && (lg || xl || xxl);\r\n this.xlOnly = xl;\r\n this.xlAndDown = (xs || sm || md || lg || xl) && !xxl;\r\n this.xlAndUp = !(xs || sm || md || lg) && (xl || xxl);\r\n this.xxlOnly = xxl;\r\n\r\n switch (true) {\r\n case xs:\r\n this.name = Breakpoints.ExtraSmall;\r\n break;\r\n case sm:\r\n this.name = Breakpoints.Small;\r\n break;\r\n case md:\r\n this.name = Breakpoints.Medium;\r\n break;\r\n case lg:\r\n this.name = Breakpoints.Large;\r\n break;\r\n case xl:\r\n this.name = Breakpoints.ExtraLarge;\r\n break;\r\n\r\n default:\r\n this.name = Breakpoints.ExtraExtraLarge;\r\n break;\r\n }\r\n }\r\n\r\n // Cross-browser support as described in:\r\n // https://stackoverflow.com/questions/1248081\r\n private GetClientWidth() {\r\n /* istanbul ignore if */\r\n if (typeof document === \"undefined\") return 0; // SSR\r\n return Math.max(document.documentElement!.clientWidth, window.innerWidth || 0);\r\n }\r\n\r\n private GetClientHeight() {\r\n /* istanbul ignore if */\r\n if (typeof document === \"undefined\") return 0; // SSR\r\n return Math.max(document.documentElement!.clientHeight, window.innerHeight || 0);\r\n }\r\n}\r\n","import { IUserData } from \"@api/models/market/IUserData\";\r\nimport { IVendor } from \"@api/models/market/IVendor\";\r\nimport { accountStore, authStore, jwtStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { IAuthService } from \"./IAuthService\";\r\n\r\nexport class AuthService implements IAuthService {\r\n //#region authenticate\r\n get IsAuthenticated(): boolean {\r\n return authStore.IsAuthenticated;\r\n }\r\n\r\n // Check if the expiration date from token is lower than 2 minutes\r\n IsCloseToExpire(): boolean {\r\n return jwtStore.IsTokenCloseToExpire();\r\n }\r\n\r\n // Use method to not cache the result (cannot cache a result with datetime)\r\n IsExpired(): boolean {\r\n return jwtStore.HasTokenExpired();\r\n }\r\n //#endregion\r\n\r\n //#region role\r\n IsAuthorized(requiredRole: string): boolean {\r\n return authStore.IsAuthorized(requiredRole);\r\n }\r\n\r\n get IsMember(): boolean {\r\n return authStore.IsMember;\r\n }\r\n\r\n get IsContributor(): boolean {\r\n return authStore.IsContributor;\r\n }\r\n\r\n get IsVendor(): boolean {\r\n return authStore.IsVendor;\r\n }\r\n\r\n get IsApprover(): boolean {\r\n return authStore.IsApprover;\r\n }\r\n\r\n get IsAdministrator(): boolean {\r\n return authStore.IsAdministrator;\r\n }\r\n //#endregion\r\n\r\n //#region User\r\n get User(): IUserData | null {\r\n return userStore.user;\r\n }\r\n\r\n get Vendor(): IVendor | null {\r\n if (!this.IsVendor || !userStore.user?.vendor) return null;\r\n\r\n return userStore.user.vendor;\r\n }\r\n\r\n get MailProviderWebSite(): string {\r\n return userStore.MailProviderWebSite;\r\n }\r\n //#endregion\r\n\r\n //#region Account\r\n get AccountIsVerified(): boolean {\r\n return accountStore.AccountIsVerified;\r\n }\r\n\r\n get AccountVendorIsVerified(): boolean {\r\n return accountStore.AccountVendorIsVerified;\r\n }\r\n //#endregion\r\n}\r\n","import { AuthService } from \"@pigeon/plugins/auth/AuthService\";\r\nimport Vue from \"vue\";\r\n\r\n// See https://fr.vuejs.org/v2/guide/plugins.html\r\nconst authPlugin: any = {\r\n install(Vue: Vue) {\r\n (Vue as any).prototype.$auth = new AuthService();\r\n }\r\n};\r\n\r\nexport default authPlugin;\r\n","/* eslint-disable no-console */\r\nimport { register } from \"register-service-worker\";\r\n\r\n/* eslint-disable no-var */\r\nvar refreshing: boolean;\r\n\r\nif (process.env.NODE_ENV === \"production\" || process.env.NODE_ENV === \"staging\") {\r\n register(`${process.env.BASE_URL}service-worker.js`, {\r\n ready() {\r\n console.log(\r\n \"App is being served from cache by a service worker.\\n\" + \"For more details, visit https://goo.gl/AFskqB\"\r\n );\r\n },\r\n registered() {\r\n console.log(\"Service worker has been registered.\");\r\n },\r\n cached() {\r\n console.log(\"Content has been cached for offline use.\");\r\n },\r\n updatefound() {\r\n console.log(\"New content is downloading.\");\r\n },\r\n updated() {\r\n if (refreshing) return;\r\n\r\n console.log(\"New content is available; please refresh.\");\r\n refreshing = true;\r\n\r\n let userLocale: string = navigator.language || \"en\";\r\n if (userLocale.length > 2) {\r\n userLocale = userLocale.substring(0, 2);\r\n }\r\n\r\n let alertMessage = \"\";\r\n\r\n switch (userLocale) {\r\n case \"fr\":\r\n alertMessage =\r\n \"Une nouvelle version de pigeonmarket.be est disponible. L'équipe de PigeonMarket travaille dur pour vous offrir la meilleur expérience possible. L'application va se mettre à jour maintenant et la page va se rafraichir.\";\r\n break;\r\n case \"nl\":\r\n alertMessage =\r\n \"Er is een nieuwe versie van pigeonmarket.be beschikbaar. Het PigeonMarket-team werkt hard om u de best mogelijke ervaring te bieden. De applicatie wordt nu bijgewerkt en de pagina wordt vernieuwd.\";\r\n break;\r\n case \"pl\":\r\n alertMessage =\r\n \"Dostępna jest nowa wersja pigeonmarket.be. Zespół PigeonMarket ciężko pracuje, aby zapewnić Ci jak najlepsze wrażenia. Aplikacja zaktualizuje się teraz, a strona odświeży się.\";\r\n break;\r\n case \"pt\":\r\n alertMessage =\r\n \"Uma nova versão do pigeonmarket.be está disponível. A equipe PigeonMarket está trabalhando muito para oferecer a você a melhor experiência possível. O aplicativo será atualizado agora e a página será atualizada.\";\r\n break;\r\n\r\n case \"en\":\r\n default:\r\n alertMessage =\r\n \"A new version of pigeonmarket.be is available. The PigeonMarket team is working hard to give you the best possible experience. The application will update now and the page will refresh.\";\r\n break;\r\n }\r\n\r\n // Alert user that app will reload\r\n window.alert(alertMessage);\r\n\r\n //if (window.confirm(alertMessage)) {\r\n // Reload the current page\r\n window.setTimeout(() => {\r\n document.location.reload();\r\n }, 0);\r\n //}\r\n },\r\n offline() {\r\n console.log(\"No internet connection found. App is running in offline mode.\");\r\n },\r\n error(error) {\r\n console.error(\"Error during service worker registration:\", error);\r\n }\r\n });\r\n}\r\n","import { NOTIFICATION_DEFAULT_TIMEOUT, NOTIFICATION_LIMIT_TO_DISPLAY } from \"@market/App.const\";\r\nimport { BreakpointPlugin } from \"@pigeon/plugins\";\r\nimport AuthPlugin from \"@pigeon/plugins/index.auth\";\r\nimport Vue from \"vue\";\r\nimport VueCookies from \"vue-cookies-ts\";\r\nimport VueMeta from \"vue-meta\";\r\nimport LoadScript from \"vue-plugin-load-script\";\r\nimport Toast, { POSITION } from \"vue-toastification\";\r\nimport \"vue-toastification/dist/index.css\";\r\n\r\nVue.use(VueMeta, {\r\n // optional pluginOptions\r\n refreshOnceOnNavigation: true\r\n});\r\nVue.use(VueCookies);\r\nVue.use(BreakpointPlugin);\r\nVue.use(AuthPlugin);\r\nVue.use(LoadScript);\r\nVue.use(Toast, {\r\n position: POSITION.BOTTOM_RIGHT,\r\n timeout: NOTIFICATION_DEFAULT_TIMEOUT,\r\n maxToasts: NOTIFICATION_LIMIT_TO_DISPLAY\r\n});\r\n","import i18n from \"@market/i18n\";\r\nimport { configure, extend, ValidationObserver, ValidationProvider } from \"vee-validate\";\r\nimport validationMessagesEn from \"vee-validate/dist/locale/en.json\";\r\nimport validationMessageFr from \"vee-validate/dist/locale/fr.json\";\r\nimport validationMessageNl from \"vee-validate/dist/locale/nl.json\";\r\nimport validationMessagePl from \"vee-validate/dist/locale/pl.json\";\r\nimport validationMessagePt from \"vee-validate/dist/locale/pt_PT.json\";\r\nimport {\r\n alpha,\r\n alpha_dash,\r\n confirmed,\r\n email,\r\n digits,\r\n max,\r\n max_value,\r\n min,\r\n min_value,\r\n regex,\r\n required\r\n} from \"vee-validate/dist/rules\";\r\nimport Vue from \"vue\";\r\nimport customValidationMessagesEn from \"./messages/en.json\";\r\nimport customValidationMessagesFr from \"./messages/fr.json\";\r\nimport customValidationMessagesNl from \"./messages/nl.json\";\r\nimport customValidationMessagesPl from \"./messages/pl.json\";\r\nimport customValidationMessagesPt from \"./messages/pt.json\";\r\n\r\n// See https://logaretm.github.io/vee-validate/guide/localization.html#i18n\r\n// Localization\r\ni18n.mergeLocaleMessage(\"en\", {\r\n validations: { ...validationMessagesEn.messages, ...customValidationMessagesEn.messages }\r\n});\r\ni18n.mergeLocaleMessage(\"fr\", {\r\n validations: { ...validationMessageFr.messages, ...customValidationMessagesFr.messages }\r\n});\r\ni18n.mergeLocaleMessage(\"nl\", {\r\n validations: { ...validationMessageNl.messages, ...customValidationMessagesNl.messages }\r\n});\r\ni18n.mergeLocaleMessage(\"pl\", {\r\n validations: { ...validationMessagePl.messages, ...customValidationMessagesPl.messages }\r\n});\r\ni18n.mergeLocaleMessage(\"pt\", {\r\n validations: { ...validationMessagePt.messages, ...customValidationMessagesPt.messages }\r\n});\r\n\r\nconfigure({\r\n // this will be used to generate messages.\r\n defaultMessage: (_, values: any) => i18n.t(`validations.${values._rule_}`, values) as string\r\n});\r\n\r\n// Default rules\r\nextend(\"required\", required);\r\nextend(\"regex\", regex);\r\nextend(\"email\", email);\r\nextend(\"digits\", digits);\r\nextend(\"confirmed\", confirmed);\r\nextend(\"alpha\", alpha);\r\nextend(\"alpha_dash\", alpha_dash);\r\nextend(\"min\", min);\r\nextend(\"max\", max);\r\nextend(\"min_value\", min_value);\r\nextend(\"max_value\", max_value);\r\n\r\n// Register validation components globally\r\nVue.component(\"ValidationProvider\", ValidationProvider);\r\nVue.component(\"ValidationObserver\", ValidationObserver);\r\n","import { agree } from \"@market/validation/rules/agree\";\r\nimport { afterThanToday, beforeThanNow } from \"@market/validation/rules/date\";\r\nimport { isValidIBAN } from \"@market/validation/rules/iban\";\r\nimport {\r\n isUniqueBuyerName,\r\n isUniqueEmail,\r\n isUniquePigeonRing,\r\n isUniqueShop,\r\n isUniqueVendorName\r\n} from \"@market/validation/rules/unique\";\r\nimport { extend } from \"vee-validate\";\r\n\r\n// Custome rules\r\nextend(\"unique_member_email\", { validate: isUniqueEmail } as any);\r\nextend(\"unique_vendor_name\", { validate: isUniqueVendorName } as any);\r\nextend(\"unique_shop\", { validate: isUniqueShop } as any);\r\nextend(\"unique_buyer_name\", { validate: isUniqueBuyerName } as any);\r\nextend(\"unique_pigeon_ring\", { validate: isUniquePigeonRing } as any);\r\nextend(\"iban\", { validate: isValidIBAN } as any);\r\nextend(\"agree\", { validate: agree } as any);\r\nextend(\"not_in_future\", { validate: beforeThanNow } as any);\r\nextend(\"not_in_past\", { validate: afterThanToday } as any);\r\n","import { IAccountsService } from \"@api/contracts/auth/IAccountsService\";\r\nimport { IPigeonsService } from \"@api/contracts/odata/IPigeonsService\";\r\nimport { userStore } from \"@market/stores/App.store.modules\";\r\nimport { cid, container } from \"inversify-props\";\r\n\r\nexport const isUniquePigeonRing = async (value: string) => {\r\n if (!value) return;\r\n const pigeonsService = container.get(cid.PigeonsService);\r\n\r\n if (!userStore.user) return { valid: true };\r\n\r\n return pigeonsService.FindPigeonByRingAndByUser(value, userStore.user.id).then((response) => {\r\n if (response.data[\"@odata.count\"] && response.data[\"@odata.count\"] > 0) {\r\n return {\r\n valid: false\r\n };\r\n } else {\r\n return {\r\n valid: true\r\n };\r\n }\r\n });\r\n};\r\n\r\nexport const isUniqueEmail = (value: string) => {\r\n if (!value) return;\r\n\r\n const accountsService = container.get(cid.AccountsService);\r\n return accountsService\r\n .IsMemberEmailUnique(value)\r\n .then((response) => {\r\n return {\r\n valid: response.data\r\n };\r\n })\r\n .catch((error) => {\r\n return {\r\n valid: true\r\n };\r\n });\r\n};\r\n\r\nexport const isUniqueVendorName = (value: string) => {\r\n if (!value) return;\r\n\r\n const accountsService = container.get(cid.AccountsService);\r\n return accountsService\r\n .IsVendorNameUnique(value)\r\n .then((response) => {\r\n return {\r\n valid: response.data\r\n };\r\n })\r\n .catch((error) => {\r\n return {\r\n valid: true\r\n };\r\n });\r\n};\r\n\r\nexport const isUniqueShop = (value: string) => {\r\n if (!value) return;\r\n\r\n const accountsService = container.get(cid.AccountsService);\r\n return accountsService\r\n .IsShopUnique(value)\r\n .then((response) => {\r\n return {\r\n valid: response.data\r\n };\r\n })\r\n .catch((error) => {\r\n return {\r\n valid: true\r\n };\r\n });\r\n};\r\n\r\nexport const isUniqueBuyerName = (value: string) => {\r\n if (!value) return;\r\n\r\n const accountsService = container.get(cid.AccountsService);\r\n return accountsService\r\n .IsBuyerNameUnique(value)\r\n .then((response) => {\r\n return {\r\n valid: response.data\r\n };\r\n })\r\n .catch((error) => {\r\n return {\r\n valid: true\r\n };\r\n });\r\n};\r\n\r\nexport const isUniqueContributorName = (value: string) => {\r\n if (!value) return;\r\n\r\n const accountsService = container.get(cid.AccountsService);\r\n return accountsService\r\n .IsContributorNameUnique(value)\r\n .then((response) => {\r\n return {\r\n valid: response.data\r\n };\r\n })\r\n .catch((error) => {\r\n return {\r\n valid: true\r\n };\r\n });\r\n};\r\n","import iban from \"iban\";\r\n\r\nexport const isValidIBAN = (value: string) => {\r\n if (!value) return;\r\n\r\n return {\r\n valid: iban.isValid(value)\r\n };\r\n};\r\n","export const agree = (value: boolean) => {\r\n return {\r\n valid: value === true\r\n };\r\n};\r\n","export const beforeThanNow = (value: string) => {\r\n const now = new Date();\r\n\r\n return {\r\n valid: new Date(value).getTime() < now.getTime()\r\n };\r\n};\r\n\r\nexport const afterThanToday = (value: string) => {\r\n let today = new Date();\r\n today = new Date(today.getFullYear(), today.getMonth(), today.getDate(), 0, 0, 0, 0);\r\n\r\n return {\r\n valid: new Date(value).getTime() >= today.getTime()\r\n };\r\n};\r\n","import { ISalesService } from \"@api/contracts/odata/ISalesService\";\r\nimport { SaleTypes } from \"@api/models/market/constants/SaleTypes\";\r\nimport { IBid } from \"@api/models/market/IBid\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { ISaleManager } from \"@pigeon/services/contracts/ISaleManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class BidDoubleCheckHighestBidAbstract extends Vue {\r\n @Prop()\r\n readonly sale: ISale;\r\n\r\n @Inject()\r\n protected saleManager: ISaleManager;\r\n @Inject()\r\n protected salesService: ISalesService;\r\n\r\n highestBidDoubleChecked: IBid | null = null;\r\n IsDoubleCheckingBids: boolean = false;\r\n salePreviousEndDate: Date | null = null;\r\n endOfSaleTimeoutHandler: number | null | undefined = null;\r\n now: Date = new Date();\r\n faulty: boolean = false;\r\n\r\n get HighestBid(): IBid | null | undefined {\r\n if (!this.sale) return;\r\n\r\n return this.saleManager.GetHighestBid(this.sale);\r\n }\r\n\r\n get DoubleCheckHighestBidHasPassed(): boolean {\r\n if (!this.sale || !this.sale.id) return false;\r\n if (!this.sale.bids?.length && !this.HighestBid && !this.highestBidDoubleChecked) return true;\r\n\r\n return (\r\n this.highestBidDoubleChecked?.amount == this.HighestBid?.amount &&\r\n this.highestBidDoubleChecked?.userId == this.HighestBid?.userId &&\r\n // this.bidsDoubleChecked?.saleId == this.HighestBid?.saleId && // HighestBid doesn't have a saleId because it s a child of sale object\r\n this.highestBidDoubleChecked?.saleId == this.sale.id\r\n );\r\n }\r\n\r\n get EndDateHasChanged(): boolean {\r\n if (!this.salePreviousEndDate || !this.EffectiveSaleEndDate) return false;\r\n\r\n if (this.salePreviousEndDate.getTime() != new Date(this.EffectiveSaleEndDate).getTime()) {\r\n this.StoreInMemorySalePreviousEndDate(this.EffectiveSaleEndDate);\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n get EffectiveSaleEndDate(): string | null | undefined {\r\n return this.HighestBid?.sale?.endDate ?? this.sale.endDate;\r\n }\r\n\r\n get BidSaleIsOver(): boolean {\r\n if (!this.EffectiveSaleEndDate) return false;\r\n\r\n return this.now.getTime() > new Date(this.EffectiveSaleEndDate).getTime();\r\n }\r\n\r\n get IsHighestBidder(): boolean {\r\n if (\r\n !this.sale ||\r\n !this.$auth.IsAuthenticated ||\r\n !this.$auth.IsMember ||\r\n !this.$auth.User?.id ||\r\n !this.sale?.bids?.length\r\n )\r\n return false;\r\n\r\n const latestBid = this.sale.bids[0];\r\n const highestBidAmount = Math.max(...this.sale.bids.map((b) => b.amount), 0);\r\n return latestBid.userId === this.$auth.User?.id && latestBid.amount === highestBidAmount;\r\n }\r\n\r\n async created() {\r\n this.StoreInMemorySalePreviousEndDate(this.sale?.endDate);\r\n this.now = new Date();\r\n\r\n if (this.sale.type == SaleTypes.Bid && this.sale.shouldDoubleCheckBids) {\r\n await this.FetchHighestBid();\r\n }\r\n }\r\n\r\n private StoreInMemorySalePreviousEndDate(newEndDate?: string | null) {\r\n if (!newEndDate) return;\r\n\r\n this.salePreviousEndDate = new Date(newEndDate);\r\n }\r\n\r\n destroyed() {\r\n if (this.endOfSaleTimeoutHandler) clearTimeout(this.endOfSaleTimeoutHandler);\r\n }\r\n\r\n @Watch(nameof(\"EffectiveSaleEndDate\"), { immediate: true })\r\n async ObserveEffectiveSaleEndDate() {\r\n if (this.endOfSaleTimeoutHandler) clearTimeout(this.endOfSaleTimeoutHandler);\r\n this.endOfSaleTimeoutHandler = this.saleManager.SetTimeoutAtEndOfSale(async () => {\r\n this.now = new Date();\r\n if (this.sale.shouldDoubleCheckBids) await this.FetchHighestBid();\r\n }, this.sale);\r\n }\r\n\r\n protected async FetchHighestBid() {\r\n if (!this.sale || !this.sale.endDate || !this.sale.id || this.sale.type !== SaleTypes.Bid) return;\r\n\r\n // Fetch latest bid\r\n this.faulty = false;\r\n this.IsDoubleCheckingBids = true;\r\n setTimeout(async () => {\r\n try {\r\n const { data } = await this.salesService.GetHighestBidWithSaleAndBidder(this.sale.id as number);\r\n this.highestBidDoubleChecked = data;\r\n } catch (error: any) {\r\n this.highestBidDoubleChecked = null;\r\n this.faulty = true;\r\n } finally {\r\n this.IsDoubleCheckingBids = false;\r\n }\r\n }, 3_000); // Note: need to add an extra time to let the system time to record new bid in DB\r\n }\r\n}\r\n","export enum CheckoutStepNames {\r\n Cart = \"cart\",\r\n Customer = \"customer\",\r\n Shipping = \"shipping\",\r\n Payment = \"payment\",\r\n Confirmation = \"confirmation\"\r\n}\r\n","import VueI18n from \"vue-i18n\";\r\n\r\nconst standardDateTimeFormats = {\r\n numeric: {\r\n year: \"numeric\",\r\n month: \"numeric\",\r\n day: \"numeric\"\r\n },\r\n numeric_time: {\r\n year: \"numeric\",\r\n month: \"numeric\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n },\r\n month: {\r\n month: \"short\"\r\n },\r\n short: {\r\n year: \"numeric\",\r\n month: \"short\",\r\n day: \"numeric\"\r\n },\r\n regular: {\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n extended: {\r\n month: \"long\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n },\r\n extended_year: {\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n },\r\n long: {\r\n year: \"numeric\",\r\n month: \"short\",\r\n day: \"numeric\",\r\n weekday: \"short\",\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n }\r\n};\r\n\r\nexport const dateTimeFormats: VueI18n.DateTimeFormats = {\r\n en: standardDateTimeFormats as VueI18n.DateTimeFormat,\r\n fr: standardDateTimeFormats as VueI18n.DateTimeFormat,\r\n nl: standardDateTimeFormats as VueI18n.DateTimeFormat,\r\n pl: standardDateTimeFormats as VueI18n.DateTimeFormat,\r\n pt: standardDateTimeFormats as VueI18n.DateTimeFormat\r\n};\r\n","import en from \"@pigeon/i18n/locales/en.json\";\r\nimport fr from \"@pigeon/i18n/locales/fr.json\";\r\nimport nl from \"@pigeon/i18n/locales/nl.json\";\r\nimport pl from \"@pigeon/i18n/locales/pl.json\";\r\nimport pt from \"@pigeon/i18n/locales/pt.json\";\r\n\r\nconst locales = {\r\n en: en,\r\n fr: fr,\r\n nl: nl,\r\n pl: pl,\r\n pt: pt\r\n} as any;\r\n\r\nexport default locales;\r\n","const standardNumberFormats = {\r\n currency: {\r\n style: \"currency\",\r\n currency: \"EUR\",\r\n currencyDisplay: \"symbol\",\r\n minimumFractionDigits: 0\r\n },\r\n percent: {\r\n style: \"percent\",\r\n minimumFractionDigits: 0\r\n }\r\n};\r\n\r\nexport const numberFormats = {\r\n en: standardNumberFormats,\r\n fr: standardNumberFormats,\r\n nl: standardNumberFormats,\r\n pl: standardNumberFormats,\r\n pt: standardNumberFormats\r\n};\r\n","import { dateTimeFormats } from \"@pigeon/i18n/dateFormats\";\r\nimport { GetUserLocale } from \"@pigeon/i18n/i18n\";\r\nimport { DEFAULT_LOCALE, FALLBACK_LOCALE } from \"@pigeon/i18n/i18n.const\";\r\nimport locales from \"@pigeon/i18n/locales/index\";\r\nimport { numberFormats } from \"@pigeon/i18n/numberFormats\";\r\nimport Vue from \"vue\";\r\n// Vue plugins - Internationalization\r\nimport VueI18n from \"vue-i18n\";\r\n\r\n// See https://kazupon.github.io/vue-i18n/started.html\r\nVue.use(VueI18n);\r\n\r\nexport default new VueI18n({\r\n fallbackLocale: FALLBACK_LOCALE,\r\n fallbackRoot: true,\r\n locale: GetUserLocale() || DEFAULT_LOCALE,\r\n numberFormats: numberFormats,\r\n dateTimeFormats: dateTimeFormats,\r\n silentTranslationWarn: process.env.NODE_ENV === \"production\",\r\n silentFallbackWarn: true, // process.env.NODE_ENV === \"production\" // See issue: https://github.com/kazupon/vue-i18n/issues/689,\r\n messages: locales\r\n});\r\n","\r\nimport { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component({\r\n metaInfo() {\r\n const baseUrl = process.env.VUE_APP_PIGEON_MARKET;\r\n const { path } = this.$route;\r\n const pathWithSlash = path.endsWith(\"/\") ? path : `${path}/`; // append trailing slash\r\n const canonicalUrl = baseUrl + pathWithSlash;\r\n\r\n return {\r\n title: this.$t(\"meta.title\") as string,\r\n titleTemplate: this.$t(\"meta.title_template\") as string,\r\n htmlAttrs: {\r\n lang: this.$i18n.locale\r\n },\r\n meta: [\r\n { charset: \"utf-8\" },\r\n { name: \"viewport\", content: \"width=device-width, initial-scale=1\" },\r\n {\r\n name: \"keyword\",\r\n content: this.$t(\"meta.keywords\") as string\r\n },\r\n {\r\n name: \"description\",\r\n content: this.$t(\"meta.description\") as string,\r\n vmid: \"description\"\r\n },\r\n { name: \"robots\", content: \"index,follow\", vmid: \"robots\" } // default value\r\n ],\r\n link: [{ rel: \"canonical\", href: canonicalUrl }]\r\n };\r\n }\r\n})\r\nexport default class App extends Vue { }\r\n","import mod from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts\"; export default mod; export * from \"-!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts\"","import mod from \"-!../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=custom&index=0&blockType=i18n\"; export default mod; export * from \"-!../../node_modules/@kazupon/vue-i18n-loader/lib/index.js!../../node_modules/@vue/vue-loader-v15/lib/index.js??vue-loader-options!./App.vue?vue&type=custom&index=0&blockType=i18n\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=8be974e8\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\nimport style0 from \"@pigeon/styles/main@market.scss?vue&type=style&index=0&prod&lang=scss&external\"\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\n/* custom blocks */\nimport block0 from \"./App.vue?vue&type=custom&index=0&blockType=i18n\"\nif (typeof block0 === 'function') block0(component)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('RouterView',{attrs:{\"id\":\"app\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { authStore, jwtStore } from \"@market/stores/App.store.modules\";\r\nimport Axios, { AxiosError, AxiosInstance, AxiosRequestConfig } from \"axios\";\r\n\r\nexport class BaseApiService {\r\n private client: AxiosInstance;\r\n\r\n constructor() {\r\n this.client = Axios.create({\r\n baseURL: process.env.VUE_APP_API_BASE_URL,\r\n timeout: Number(process.env.VUE_APP_API_TIME_OUT),\r\n withCredentials: true // pass cookies, headers, ...\r\n });\r\n\r\n this.client.interceptors.request.use(\r\n async (config: AxiosRequestConfig) => {\r\n if (config.baseURL === process.env.VUE_APP_API_BASE_URL && !config.headers?.Authorization) {\r\n if (!config.headers) config.headers = {};\r\n\r\n if (authStore.IsAuthenticated) {\r\n // Refresh token if it is expired\r\n if (jwtStore.HasTokenExpired()) {\r\n await jwtStore.RefreshTokens();\r\n }\r\n\r\n config.headers.Authorization = `Bearer ${jwtStore.accessToken}`;\r\n }\r\n }\r\n\r\n return config;\r\n },\r\n (error) => Promise.reject(error)\r\n );\r\n\r\n this.client.interceptors.response.use(\r\n (response) => response,\r\n async (error: AxiosError) => {\r\n if (!error.response) return Promise.reject(error);\r\n\r\n const { status, headers } = error.response;\r\n if (status === 401 && headers && \"token-expired\" in headers) {\r\n await jwtStore.RefreshTokens();\r\n\r\n if (authStore.IsAuthenticated) {\r\n if (!error?.config) error.config = {};\r\n if (!error?.config?.headers) error.config.headers = {};\r\n\r\n error.config.headers.Authorization = `Bearer ${jwtStore.accessToken}`;\r\n return Axios.request(error.config);\r\n }\r\n } else {\r\n return Promise.reject(error);\r\n }\r\n }\r\n );\r\n }\r\n\r\n public Client(): AxiosInstance {\r\n return this.client;\r\n }\r\n}\r\n","import { IQrCodesService } from \"@/Api/contracts/webapi/IQrCodesService\";\r\nimport { BaseApiService } from \"@api/services/webapi/base/BaseApiService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { IQrCodeTextPayload, IQrCodeGiroPayload, IQrCodeSmsPayload } from \"@api/models/market/IQrCodePayload\";\r\n\r\nexport class QrCodesService extends BaseApiService implements IQrCodesService {\r\n public GetQrCodeForTextInImage(payload: IQrCodeTextPayload): AxiosPromise {\r\n return this.Client().post(`QRCodes/text-in-image`, payload, { responseType: \"blob\" });\r\n }\r\n public GetQrCodeForTextInBase64String(payload: IQrCodeTextPayload): AxiosPromise {\r\n return this.Client().post(`QRCodes/text-in-base64String`, payload);\r\n }\r\n public GetQrCodeForTextInSvg(payload: IQrCodeTextPayload): AxiosPromise {\r\n return this.Client().post(`QRCodes/text-in-svg`, payload);\r\n }\r\n\r\n public GetQrCodeForGiroInImage(payload: IQrCodeGiroPayload): AxiosPromise {\r\n return this.Client().post(`QRCodes/giro-in-image`, payload, { responseType: \"blob\" });\r\n }\r\n public GetQrCodeForGiroInBase64String(payload: IQrCodeGiroPayload): AxiosPromise {\r\n return this.Client().post(`QRCodes/giro-in-base64String`, payload);\r\n }\r\n public GetQrCodeForGiroInSvg(payload: IQrCodeGiroPayload): AxiosPromise {\r\n return this.Client().post(`QRCodes/giro-in-svg`, payload);\r\n }\r\n\r\n public GetQrCodeForSmsInImage(payload: IQrCodeSmsPayload): AxiosPromise {\r\n return this.Client().post(`QRCodes/sms-in-image`, payload, { responseType: \"blob\" });\r\n }\r\n public GetQrCodeForSmsInBase64String(payload: IQrCodeSmsPayload): AxiosPromise {\r\n return this.Client().post(`QRCodes/sms-in-base64String`, payload);\r\n }\r\n public GetQrCodeForSmsInSvg(payload: IQrCodeSmsPayload): AxiosPromise {\r\n return this.Client().post(`QRCodes/sms-in-svg`, payload);\r\n }\r\n}\r\n","import { ISvgDocumentsService } from \"@api/contracts/webapi/ISvgDocumentsService\";\r\nimport { ISepaFormPayload } from \"@api/models/market/ISepaFormPayload\";\r\nimport { BaseApiService } from \"@api/services/webapi/base/BaseApiService\";\r\nimport { AxiosPromise } from \"axios\";\r\n\r\nexport class SvgDocumentsService extends BaseApiService implements ISvgDocumentsService {\r\n public GetSepaFormInSvg(sepaFormPayload: ISepaFormPayload): AxiosPromise {\r\n return this.Client().post(`SvgDocuments/sepa`, sepaFormPayload);\r\n }\r\n}\r\n","import { IAmountManager } from \"./contracts/IAmountManager\";\r\n\r\nexport class AmountManager implements IAmountManager {\r\n public CalculateVatAmount(amount: number, vatRate: number | null, isVatInclusive: boolean | null): number | null {\r\n if (!vatRate) return null;\r\n\r\n return isVatInclusive\r\n ? Math.round((amount - amount / (1 + vatRate)) * 100) / 100\r\n : Math.round(amount * vatRate * 100) / 100;\r\n }\r\n\r\n public CalculateAmountIncludingVat(amount: number, vatAmount: number | null, isVatInclusive: boolean | null): number {\r\n if (!vatAmount) vatAmount = 0;\r\n\r\n const amountIncludingVat = isVatInclusive ? amount : amount + vatAmount;\r\n return Math.round(amountIncludingVat * 100) / 100;\r\n }\r\n\r\n public CalculateAmountExcludingVat(amount: number, vatAmount: number | null, isVatInclusive: boolean | null): number {\r\n if (!vatAmount) vatAmount = 0;\r\n\r\n const amountExcludingVat = isVatInclusive ? amount - vatAmount : amount;\r\n return Math.round(amountExcludingVat * 100) / 100;\r\n }\r\n //#endregion\r\n}\r\n","import { IBaseAuthService } from \"@api/contracts/auth/base/IBaseAuthService\";\r\nimport Axios, { AxiosInstance } from \"axios\";\r\n\r\nexport class BaseAuthServiceAnonymous implements IBaseAuthService {\r\n protected client: AxiosInstance;\r\n\r\n constructor() {\r\n this.client = Axios.create({\r\n baseURL: process.env.VUE_APP_AUTH_BASE_URL,\r\n timeout: Number(process.env.VUE_APP_AUTH_TIME_OUT),\r\n withCredentials: true // pass cookies, headers ...\r\n });\r\n }\r\n\r\n public Client(): AxiosInstance {\r\n return this.client;\r\n }\r\n}\r\n","import { Channels } from \"@api/enumerations/Channels\";\r\nimport { IAuth, IAuthResponse } from \"@api/models/auth/IAuth\";\r\nimport { IAuthentication } from \"@api/models/auth/IAuthentication\";\r\nimport { IAuthSession } from \"@api/models/auth/IAuthSession\";\r\nimport { IContributorRegistration } from \"@api/models/auth/IContributorRegistration\";\r\nimport { IRecovery } from \"@api/models/auth/IRecovery\";\r\nimport { IRegistration } from \"@api/models/auth/IRegistration\";\r\nimport { IReset } from \"@api/models/auth/IReset\";\r\nimport { ISignUpBuyerRegistration } from \"@api/models/auth/ISignUpBuyerRegistration\";\r\nimport { ISignUpContributorRegistration } from \"@api/models/auth/ISignUpContributorRegistration\";\r\nimport { ISignUpRegistration } from \"@api/models/auth/ISignUpRegistration\";\r\nimport { ISignUpVendorRegistration } from \"@api/models/auth/ISignUpVendorRegistration\";\r\nimport { IVendorRegistration } from \"@api/models/auth/IVendorRegistration\";\r\nimport { IGuest } from \"@api/models/market/IGuest\";\r\nimport { BaseAuthServiceAnonymous } from \"@api/services/auth/base/BaseAuthService.anonymous\";\r\nimport { AxiosPromise } from \"axios\";\r\n\r\nexport class AccountsServiceAnonymous extends BaseAuthServiceAnonymous {\r\n //#region Token\r\n RefreshAuth(expiredAuth: IAuth): AxiosPromise {\r\n if (!expiredAuth.accessToken || !expiredAuth.refreshToken) {\r\n return Promise.reject(\"Invalid RefreshAuth arguments\");\r\n }\r\n\r\n return this.Client().post(\"Accounts/RefreshAuth\", expiredAuth);\r\n }\r\n //#endregion\r\n\r\n //#region Account\r\n SignIn(authentication: IAuthentication): AxiosPromise {\r\n return this.Client().post(\"Accounts/SignIn\", authentication);\r\n }\r\n\r\n SignUp(channel: Channels, registration: IRegistration): AxiosPromise {\r\n return this.Client().post(`Accounts/SignUp/${channel}`, registration);\r\n }\r\n\r\n SignUpAsVendor(registration: IVendorRegistration): AxiosPromise {\r\n return this.Client().post(\"Accounts/Vendor/SignUp\", registration);\r\n }\r\n\r\n SignUpAsContributor(registration: IContributorRegistration): AxiosPromise {\r\n return this.Client().post(\"Accounts/Contributor/SignUp\", registration);\r\n }\r\n\r\n Register(guest: IGuest): AxiosPromise {\r\n return this.Client().post(\"Accounts/Register/Guest\", guest);\r\n }\r\n\r\n RecoverAccount(channel: Channels, recovery: IRecovery, locale: string): AxiosPromise {\r\n const clientRedirectionSlug = `account/reset-password`;\r\n recovery.redirectUrl = `${window.location.origin}/${locale}/${clientRedirectionSlug}`;\r\n return this.Client().post(`Accounts/RecoverAccount/${channel}`, recovery);\r\n }\r\n\r\n ResetPassword(reset: IReset): AxiosPromise {\r\n return this.Client().post(\"Accounts/ResetPassword\", reset);\r\n }\r\n //#endregion\r\n\r\n //#region IsUnique\r\n IsMemberEmailUnique(email: string): AxiosPromise {\r\n const signUpRegistration: ISignUpRegistration = { email: email };\r\n\r\n return this.Client().post(\"Accounts/IsUnique\", signUpRegistration);\r\n }\r\n\r\n IsVendorNameUnique(name: string): AxiosPromise {\r\n const signUpRegistration: ISignUpVendorRegistration = { alias: name };\r\n\r\n return this.Client().post(\"Accounts/Vendor/IsUnique\", signUpRegistration);\r\n }\r\n\r\n IsShopUnique(shop: string): AxiosPromise {\r\n const signUpRegistration: ISignUpVendorRegistration = { shopId: shop };\r\n\r\n return this.Client().post(\"Accounts/Shop/IsUnique\", signUpRegistration);\r\n }\r\n\r\n IsBuyerNameUnique(name: string): AxiosPromise {\r\n const signUpRegistration: ISignUpBuyerRegistration = { alias: name };\r\n\r\n return this.Client().post(\"Accounts/Buyer/IsUnique\", signUpRegistration);\r\n }\r\n\r\n IsContributorNameUnique(name: string): AxiosPromise {\r\n const signUpRegistration: ISignUpContributorRegistration = { alias: name };\r\n\r\n return this.Client().post(\"Accounts/Contributor/IsUnique\", signUpRegistration);\r\n }\r\n //#endregion\r\n\r\n //#region Guest\r\n FindGuest(email: string, lastname: string, firstname: string): AxiosPromise {\r\n return this.Client().get(`Accounts/Find/Guest/${email}/${lastname}/${firstname}`);\r\n }\r\n //#endregion\r\n}\r\n","import { authStore, jwtStore } from \"@market/stores/App.store.modules\";\r\nimport Axios, { AxiosError } from \"axios\";\r\nimport { BaseAuthServiceAnonymous } from \"./BaseAuthService.anonymous\";\r\n\r\nexport class BaseAuthServiceUser extends BaseAuthServiceAnonymous {\r\n constructor() {\r\n super();\r\n\r\n this.client.interceptors.request.use(\r\n async (config) => {\r\n if (config.baseURL === process.env.VUE_APP_AUTH_BASE_URL && !config.headers?.Authorization) {\r\n if (!config.headers) config.headers = {};\r\n\r\n if (authStore.IsAuthenticated) {\r\n // Refresh token if it is expired\r\n if (jwtStore.HasTokenExpired()) {\r\n await jwtStore.RefreshTokens();\r\n }\r\n\r\n config.headers.Authorization = `Bearer ${jwtStore.accessToken}`;\r\n config.withCredentials = true;\r\n }\r\n }\r\n\r\n return config;\r\n },\r\n (error) => Promise.reject(error)\r\n );\r\n\r\n this.client.interceptors.response.use(\r\n (response) => response,\r\n async (error: AxiosError) => {\r\n if (!error.response) return Promise.reject(error);\r\n\r\n const { status, headers } = error.response;\r\n if (status === 401 && headers && \"token-expired\" in headers) {\r\n // Refresh token if it is expired\r\n await jwtStore.RefreshTokens();\r\n\r\n if (authStore.IsAuthenticated) {\r\n if (!error?.config) error.config = {};\r\n if (!error?.config?.headers) error.config.headers = {};\r\n\r\n error.config.headers.Authorization = `Bearer ${jwtStore.accessToken}`;\r\n return Axios.request(error.config);\r\n }\r\n } else {\r\n return Promise.reject(error);\r\n }\r\n }\r\n );\r\n }\r\n}\r\n","import { Channels } from \"@api/enumerations/Channels\";\r\nimport { IAccountEmailVerification } from \"@api/models/auth/IAccountEmailVerification\";\r\nimport { IAccountEmailVerificationToken } from \"@api/models/auth/IAccountEmailVerificationToken\";\r\nimport { IAccountProfileWithTokens } from \"@api/models/auth/IAccountProfile\";\r\nimport { IAuthSession } from \"@api/models/auth/IAuthSession\";\r\nimport { IContributorUpgradeRegistration } from \"@api/models/auth/IContributorUpgradeRegistration\";\r\nimport { IVendorUpgradeRegistration } from \"@api/models/auth/IVendorUpgradeRegistration\";\r\nimport { IUserData } from \"@api/models/market/IUserData\";\r\nimport { authStore, jwtStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { BaseAuthServiceUser } from \"./base/BaseAuthService.user\";\r\n\r\nexport class AccountsServiceUser extends BaseAuthServiceUser {\r\n //#region Account\r\n UpgradeAsVendor(registration: IVendorUpgradeRegistration): AxiosPromise {\r\n if (!authStore.IsAuthenticated && !jwtStore.accessToken) {\r\n return Promise.reject();\r\n }\r\n\r\n return this.Client().post(\"Accounts/Vendor/Upgrade\", registration);\r\n }\r\n\r\n UpgradeAsContributor(registration: IContributorUpgradeRegistration): AxiosPromise {\r\n if (!authStore.IsAuthenticated && !jwtStore.accessToken) {\r\n return Promise.reject();\r\n }\r\n\r\n return this.Client().post(\"Accounts/Contributor/Upgrade\", registration);\r\n }\r\n\r\n PatchUser(userData: IUserData): AxiosPromise {\r\n if (!authStore.IsAuthenticated && !jwtStore.accessToken) {\r\n return Promise.reject();\r\n }\r\n\r\n return this.Client().patch(`Accounts/User`, userData);\r\n }\r\n\r\n FetchUser(userKey: string): AxiosPromise {\r\n if (!authStore.IsAdministrator) {\r\n return Promise.reject(\"unauthorized\");\r\n }\r\n\r\n return this.Client().get(`Accounts/Profile/${userKey}`);\r\n }\r\n\r\n //#region Verification\r\n SendNewEmailVerification(\r\n channel: Channels,\r\n verification: IAccountEmailVerification,\r\n locale: string\r\n ): AxiosPromise {\r\n return this.Client().post(`Accounts/SendNewEmailVerification/${channel}`, verification);\r\n }\r\n\r\n VerifyEmail(confirmation: IAccountEmailVerificationToken): AxiosPromise {\r\n return this.Client().post(\"Accounts/VerifyEmail\", confirmation);\r\n }\r\n //#endregion\r\n //#endregion\r\n\r\n //#region Auction\r\n AgreeToAuctionConditions(agree: boolean): AxiosPromise {\r\n if (!agree) {\r\n return Promise.reject();\r\n }\r\n\r\n return this.Client().post(`Accounts/User/Policy/agree-to-auction-conditions`, null);\r\n }\r\n //#endregion\r\n}\r\n","import { IAccountsService } from \"@api/contracts/auth/IAccountsService\";\r\nimport { Channels } from \"@api/enumerations/Channels\";\r\nimport { IAccountEmailVerification } from \"@api/models/auth/IAccountEmailVerification\";\r\nimport { IAccountEmailVerificationToken } from \"@api/models/auth/IAccountEmailVerificationToken\";\r\nimport { IAccountProfileWithTokens } from \"@api/models/auth/IAccountProfile\";\r\nimport { IAuth, IAuthResponse } from \"@api/models/auth/IAuth\";\r\nimport { IAuthentication } from \"@api/models/auth/IAuthentication\";\r\nimport { IAuthSession } from \"@api/models/auth/IAuthSession\";\r\nimport { IContributorRegistration } from \"@api/models/auth/IContributorRegistration\";\r\nimport { IContributorUpgradeRegistration } from \"@api/models/auth/IContributorUpgradeRegistration\";\r\nimport { IRecovery } from \"@api/models/auth/IRecovery\";\r\nimport { IRegistration } from \"@api/models/auth/IRegistration\";\r\nimport { IReset } from \"@api/models/auth/IReset\";\r\nimport { IVendorRegistration } from \"@api/models/auth/IVendorRegistration\";\r\nimport { IVendorUpgradeRegistration } from \"@api/models/auth/IVendorUpgradeRegistration\";\r\nimport { IGuest } from \"@api/models/market/IGuest\";\r\nimport { IUserData } from \"@api/models/market/IUserData\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { AccountsServiceAnonymous } from \"./AccountsService.anonymous\";\r\nimport { AccountsServiceUser } from \"./AccountsService.user\";\r\n\r\nexport class AccountsService implements IAccountsService {\r\n private readonly accountsServiceAnonymous;\r\n private readonly accountsServiceUser;\r\n\r\n get Client() {\r\n return this.accountsServiceUser.Client;\r\n }\r\n\r\n constructor() {\r\n this.accountsServiceAnonymous = new AccountsServiceAnonymous();\r\n this.accountsServiceUser = new AccountsServiceUser();\r\n }\r\n\r\n //#region Anonymous\r\n //#region Token\r\n RefreshAuth(expiredAuth: IAuth): AxiosPromise {\r\n return this.accountsServiceAnonymous.RefreshAuth(expiredAuth);\r\n }\r\n //#endregion\r\n\r\n //#region Account\r\n SignIn(authentication: IAuthentication): AxiosPromise {\r\n return this.accountsServiceAnonymous.SignIn(authentication);\r\n }\r\n\r\n SignUp(channel: Channels, registration: IRegistration): AxiosPromise {\r\n return this.accountsServiceAnonymous.SignUp(channel, registration);\r\n }\r\n\r\n SignUpAsVendor(registration: IVendorRegistration): AxiosPromise {\r\n return this.accountsServiceAnonymous.SignUpAsVendor(registration);\r\n }\r\n\r\n SignUpAsContributor(registration: IContributorRegistration): AxiosPromise {\r\n return this.accountsServiceAnonymous.SignUpAsContributor(registration);\r\n }\r\n\r\n Register(guest: IGuest): AxiosPromise {\r\n return this.accountsServiceAnonymous.Register(guest);\r\n }\r\n\r\n RecoverAccount(channel: Channels, recovery: IRecovery, locale: string): AxiosPromise {\r\n return this.accountsServiceAnonymous.RecoverAccount(channel, recovery, locale);\r\n }\r\n\r\n ResetPassword(reset: IReset): AxiosPromise {\r\n return this.accountsServiceAnonymous.ResetPassword(reset);\r\n }\r\n\r\n //#region Guest\r\n FindGuest(email: string, lastname: string, firstname: string): AxiosPromise {\r\n return this.accountsServiceAnonymous.FindGuest(email, lastname, firstname);\r\n }\r\n //#endregion\r\n //#endregion\r\n\r\n //#region IsUnique\r\n IsMemberEmailUnique(email: string): AxiosPromise {\r\n return this.accountsServiceAnonymous.IsMemberEmailUnique(email);\r\n }\r\n\r\n IsVendorNameUnique(name: string): AxiosPromise {\r\n return this.accountsServiceAnonymous.IsVendorNameUnique(name);\r\n }\r\n\r\n IsShopUnique(shop: string): AxiosPromise {\r\n return this.accountsServiceAnonymous.IsShopUnique(shop);\r\n }\r\n\r\n IsBuyerNameUnique(name: string): AxiosPromise {\r\n return this.accountsServiceAnonymous.IsBuyerNameUnique(name);\r\n }\r\n\r\n IsContributorNameUnique(name: string): AxiosPromise {\r\n return this.accountsServiceAnonymous.IsContributorNameUnique(name);\r\n }\r\n //#endregion\r\n //#endregion\r\n\r\n //#region User\r\n //#region Account\r\n UpgradeAsVendor(registration: IVendorUpgradeRegistration): AxiosPromise {\r\n return this.accountsServiceUser.UpgradeAsVendor(registration);\r\n }\r\n\r\n UpgradeAsContributor(registration: IContributorUpgradeRegistration): AxiosPromise {\r\n return this.accountsServiceUser.UpgradeAsContributor(registration);\r\n }\r\n\r\n PatchUser(userData: IUserData): AxiosPromise {\r\n return this.accountsServiceUser.PatchUser(userData);\r\n }\r\n\r\n FetchUser(userKey: string): AxiosPromise {\r\n return this.accountsServiceUser.FetchUser(userKey);\r\n }\r\n\r\n //#region Verification\r\n SendNewEmailVerification(\r\n channel: Channels,\r\n verification: IAccountEmailVerification,\r\n locale: string\r\n ): AxiosPromise {\r\n return this.accountsServiceUser.SendNewEmailVerification(channel, verification, locale);\r\n }\r\n\r\n VerifyEmail(confirmation: IAccountEmailVerificationToken): AxiosPromise {\r\n return this.accountsServiceUser.VerifyEmail(confirmation);\r\n }\r\n //#endregion\r\n //#endregion\r\n\r\n //#region Auction\r\n AgreeToAuctionConditions(agree: boolean): AxiosPromise {\r\n return this.accountsServiceUser.AgreeToAuctionConditions(agree);\r\n }\r\n //#endregion\r\n //#endregion\r\n}\r\n","import Axios, { AxiosInstance } from \"axios\";\r\n\r\nexport class BaseApiBingMapsRestService {\r\n private client: AxiosInstance;\r\n\r\n constructor() {\r\n this.client = Axios.create({\r\n baseURL: process.env.VUE_APP_BING_MAPS_API_REST_BASE_URL\r\n });\r\n }\r\n\r\n public Client(): AxiosInstance {\r\n return this.client;\r\n }\r\n}\r\n","import { IBingMapsRestService } from \"@api/contracts/external/IBingMapsRestService\";\r\nimport { BaseApiBingMapsRestService } from \"@api/services/external/base/BaseApiBingMapsRestService\";\r\nimport { AxiosPromise } from \"axios\";\r\n\r\n// See https://msdn.microsoft.com/en-us/library/ff701715.aspx\r\nexport class BingMapsRestService extends BaseApiBingMapsRestService implements IBingMapsRestService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n // See https://msdn.microsoft.com/en-us/library/ff701711.aspx\r\n public FindLocationByQuery(\r\n locationQuery: string,\r\n maxResults?: number,\r\n includeNeighborhood?: number,\r\n includeValue?: string\r\n ): AxiosPromise {\r\n if (!process.env.VUE_APP_BING_MAPS_API_KEY) return Promise.reject();\r\n\r\n let query = `Locations/`;\r\n const filters: string[] = [];\r\n\r\n filters.push(`key=${process.env.VUE_APP_BING_MAPS_API_KEY}`);\r\n // Output setted to Json format\r\n filters.push(`o=json`);\r\n\r\n if (query) {\r\n filters.push(`query=${locationQuery}`);\r\n }\r\n\r\n if (typeof maxResults !== \"undefined\") {\r\n filters.push(`maxResults=${maxResults}`);\r\n }\r\n\r\n if (typeof includeNeighborhood !== \"undefined\") {\r\n filters.push(`includeNeighborhood=${includeNeighborhood}`);\r\n }\r\n\r\n if (typeof includeValue !== \"undefined\") {\r\n filters.push(`includeValue=${includeValue}`);\r\n }\r\n\r\n if (filters.length) {\r\n query += `?${filters.join(\"&\")}`;\r\n }\r\n\r\n return this.Client().get(query);\r\n }\r\n}\r\n","import { IBingMapsWebControlService } from \"@api/contracts/external/IBingMapsWebControlService\";\r\nimport i18n from \"@market/i18n\";\r\nimport { uiBus } from \"@pigeon/Ui.bus\";\r\n\r\n// See https://www.bing.com/api/maps/sdkrelease/mapcontrol/isdk\r\n// \r\n\r\nexport class BingMapsWebControlService implements IBingMapsWebControlService {\r\n public apiIsInitialized: boolean;\r\n public apiIsLoaded: boolean;\r\n\r\n get IsInitialized(): boolean {\r\n return this.apiIsInitialized;\r\n }\r\n\r\n get IsLoaded(): boolean {\r\n return this.apiIsLoaded;\r\n }\r\n\r\n constructor() {\r\n this.apiIsInitialized = false;\r\n this.apiIsLoaded = false;\r\n this.LoadAPI();\r\n }\r\n\r\n private LoadAPI(): void {\r\n if (!process.env.VUE_APP_BING_MAPS_API_KEY) return;\r\n\r\n // Load the api only once\r\n if (this.apiIsInitialized || this.apiIsLoaded) return;\r\n\r\n // Create the script element\r\n const apiKey: string = process.env.VUE_APP_BING_MAPS_API_KEY as string;\r\n const scriptTag = document.createElement(\"script\");\r\n scriptTag.src = `https://www.bing.com/api/maps/mapcontrol?key=${apiKey}&callback=OnLoadBingMaps&setLang=${i18n.locale}`;\r\n scriptTag.defer = true;\r\n scriptTag.async = true;\r\n // Inject the script element in the DOM\r\n document.body.appendChild(scriptTag);\r\n\r\n // Set the init state\r\n this.apiIsInitialized = true;\r\n // Add a global function for the callback from Bing Maps api\r\n (window as any).OnLoadBingMaps = () => {\r\n this.apiIsLoaded = true;\r\n uiBus.emit(\"bingmaps-loaded\");\r\n };\r\n }\r\n}\r\n","import { IStripeClientService } from \"@api/contracts/external/IStripeClientService\";\r\nimport { Stripe } from \"@stripe/stripe-js\";\r\n\r\n// See https://msdn.microsoft.com/en-us/library/ff701715.aspx\r\nexport class StripeClientService implements IStripeClientService {\r\n stripe: Stripe;\r\n\r\n constructor() {\r\n const STRIPE_PUBISHABLE_KEY: string | undefined = process.env.VUE_APP_STRIPE_PUBISHABLE_KEY;\r\n\r\n if (STRIPE_PUBISHABLE_KEY) {\r\n // Warning stripe must be loaded globally (via tag script) and so is available in global window context\r\n // Note: To be PCI compliant, stripe must be loaded globally (and if stripe is loaded async then we are not PCI compliant anymore)\r\n this.stripe = (window as any).Stripe(STRIPE_PUBISHABLE_KEY); // See: StripeConstructor\r\n }\r\n }\r\n\r\n get StripeClient(): Stripe {\r\n return this.stripe;\r\n }\r\n}\r\n","import Axios, { AxiosInstance, AxiosPromise } from \"axios\";\r\nimport { IWorldAtlasService } from \"@api/contracts/external/IWorldAtlasService\";\r\n\r\n// See https://msdn.microsoft.com/en-us/library/ff701715.aspx\r\nexport class WorldAtlasService implements IWorldAtlasService {\r\n private client: AxiosInstance;\r\n\r\n constructor() {\r\n this.client = Axios.create({\r\n baseURL: process.env.VUE_APP_WORLD_ATLAS_API_BASE_URL,\r\n timeout: Number(process.env.VUE_APP_WORLD_ATLAS_API_TIME_OUT)\r\n });\r\n }\r\n\r\n FetchAllCountries10M(): AxiosPromise {\r\n return this.client.get(\"countries-10m.json\");\r\n }\r\n\r\n FetchAllCountries50M(): AxiosPromise {\r\n return this.client.get(\"countries-50m.json\");\r\n }\r\n\r\n FetchAllCountries110M(): AxiosPromise {\r\n return this.client.get(\"countries-110m.json\");\r\n }\r\n\r\n FetchAllLands10M(): AxiosPromise {\r\n return this.client.get(\"land-10m.json\");\r\n }\r\n\r\n FetchAllLands50M(): AxiosPromise {\r\n return this.client.get(\"land-50m.json\");\r\n }\r\n\r\n FetchAllLands110M(): AxiosPromise {\r\n return this.client.get(\"land-110m.json\");\r\n }\r\n}\r\n","import { authStore, jwtStore } from \"@market/stores/App.store.modules\";\r\nimport Axios, { AxiosError, AxiosInstance } from \"axios\";\r\nimport { config } from \"vue/types/umd\";\r\n\r\nexport class BaseODataService {\r\n private client: AxiosInstance;\r\n\r\n constructor() {\r\n this.client = Axios.create({\r\n baseURL: process.env.VUE_APP_ODATA_BASE_URL,\r\n timeout: Number(process.env.VUE_APP_ODATA_TIME_OUT)\r\n });\r\n\r\n this.client.interceptors.request.use(\r\n async (config) => {\r\n if (config.baseURL === process.env.VUE_APP_ODATA_BASE_URL && !config.headers?.Authorization) {\r\n if (!config.headers) config.headers = {};\r\n\r\n if (authStore.IsAuthenticated) {\r\n // Refresh token if it is expired\r\n if (jwtStore.HasTokenExpired()) {\r\n await jwtStore.RefreshTokens();\r\n }\r\n\r\n config.headers.Authorization = `Bearer ${jwtStore.accessToken}`;\r\n config.withCredentials = true;\r\n }\r\n\r\n if (process.env.NODE_ENV === \"production\") {\r\n // Don t emit metadata info for performance and security reason\r\n config.headers.Accept = \"application/json;odata.metadata=none\";\r\n }\r\n\r\n if (process.env.VUE_APP_ODATA_DEBUG === \"true\") {\r\n console.warn(\"The odata metadata is setted to full. Use this option only for DEBUG purpose.\");\r\n config.headers.Accept = \"application/json;odata.metadata=full\";\r\n }\r\n }\r\n\r\n return config;\r\n },\r\n (error) => Promise.reject(error)\r\n );\r\n\r\n this.client.interceptors.response.use(\r\n (response) => response,\r\n async (error: AxiosError) => {\r\n if (!error.response) return Promise.reject(error);\r\n\r\n const { status, headers } = error.response;\r\n if (status === 401 && headers && \"token-expired\" in headers) {\r\n // Refresh token if it is expired\r\n await jwtStore.RefreshTokens();\r\n\r\n if (authStore.IsAuthenticated) {\r\n if (!error?.config) error.config = {};\r\n if (!error?.config?.headers) error.config.headers = {};\r\n\r\n error.config.headers.Authorization = `Bearer ${jwtStore.accessToken}`;\r\n return Axios.request(error.config);\r\n }\r\n } else {\r\n return Promise.reject(error);\r\n }\r\n }\r\n );\r\n }\r\n\r\n public Client(): AxiosInstance {\r\n return this.client;\r\n }\r\n}\r\n","import { IAddressesService } from \"@api/contracts/odata/IAddressesService\";\r\nimport { IAddress } from \"@api/models/market/IAddress\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\n\r\nexport class AddressesService extends BaseODataService implements IAddressesService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(address: IAddress): AxiosPromise {\r\n return this.Client().post(\"Addresses\", address);\r\n }\r\n\r\n public Update(addressKey: number, address: IAddress): AxiosPromise {\r\n return this.Client().put(`Addresses(${addressKey})`, address);\r\n }\r\n\r\n public Upsert(address: IAddress): AxiosPromise {\r\n if (address.id) return this.Update(address.id, address);\r\n else return this.Insert(address);\r\n }\r\n\r\n public Fetch(addressKey: number): AxiosPromise {\r\n return this.Client().get(`Addresses(${addressKey})`);\r\n }\r\n}\r\n","import { IAlertsService } from \"@api/contracts/odata/IAlertsService\";\r\nimport { IAlert } from \"@api/models/market/IAlert\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport odataQuery, { FilterDate } from \"odata-fluent-query\";\r\n\r\nexport class AlertsService extends BaseODataService implements IAlertsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(alert: IAlert): AxiosPromise {\r\n return this.Client().post(\"Alerts\", alert);\r\n }\r\n\r\n public Update(alertKey: number, alert: IAlert): AxiosPromise {\r\n return this.Client().put(`Alerts(${alertKey})`, alert);\r\n }\r\n\r\n public Patch(alertKey: number, alert: Partial): AxiosPromise {\r\n return this.Client().patch(`Alerts(${alertKey})`, alert);\r\n }\r\n\r\n public Delete(alertKey: number): AxiosPromise {\r\n return this.Client().delete(`Alerts(${alertKey})`);\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n const query = odataQuery().orderBy(\"fromDate\").orderBy(\"toDate\");\r\n\r\n return this.Client().get(`Alerts?${query.toString()}`);\r\n }\r\n\r\n public FetchAllAlerts(fromDate?: Date, toDate?: Date): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n let query = odataQuery().orderBy(\"fromDate\").orderBy(\"toDate\");\r\n\r\n if (fromDate) query = query.filter((a) => (a.fromDate as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if (toDate) query = query.filter((a) => (a.fromDate as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n return this.Client().get(`Alerts?${query.toString()}`);\r\n }\r\n\r\n public FetchAllByUser(userKey?: string): AxiosPromise> {\r\n let query = odataQuery()\r\n .filter((a) => (a.fromDate as any as FilterDate).isBeforeOrEqual(new Date().toISOString()))\r\n .filter((a) => (a.toDate as any as FilterDate).isAfterOrEqual(new Date().toISOString()))\r\n .filter((a) => a.flagAsRead.notEquals(true));\r\n\r\n if (userKey) {\r\n query = query.filter((a) => a.userId.equals(userKey, { ignoreGuid: true }).or(a.userId.isNull()));\r\n } else {\r\n query = query.filter((a) => a.userId.isNull());\r\n }\r\n\r\n return this.Client().get(`Alerts?${query.toString()}`);\r\n }\r\n}\r\n","import { IAuctionsService } from \"@api/contracts/odata/IAuctionsService\";\r\nimport { IAuction } from \"@api/models/market/IAuction\";\r\nimport { IPicture } from \"@api/models/market/IPicture\";\r\nimport { IUser } from \"@api/models/market/IUser\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { ExpandObjectQuery, FilterDate, FilterString, odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class AuctionsService extends BaseODataService implements IAuctionsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(auction: IAuction): AxiosPromise {\r\n return this.Client().post(\"Auctions\", auction);\r\n }\r\n\r\n public Update(auctionKey: number, auction: IAuction): AxiosPromise {\r\n return this.Client().put(`Auctions(${auctionKey})`, auction);\r\n }\r\n\r\n public Delete(auctionKey: number): AxiosPromise {\r\n return this.Client().delete(`Auctions(${auctionKey})`);\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n return this.Client().get(`Auctions`);\r\n }\r\n\r\n public FetchAllOverview(): AxiosPromise> {\r\n const query = odataQuery()\r\n .expand(\"user\", (fp) => fp.select(\"firstname\", \"lastname\"))\r\n .expand(\"sales\", (s) => s.expand(\"pigeon\").expand(\"package\", (p) => p.expand(\"pigeons\")));\r\n\r\n return this.Client().get(`Auctions?${query.toString()}`);\r\n }\r\n\r\n public FetchAllAuctions(fromDate?: Date, toDate?: Date): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n let query = odataQuery()\r\n .select(\"id\", \"userId\", \"startDate\", \"endDate\")\r\n .expand(\"sales\", (as) => as.select(\"id\"));\r\n\r\n if (fromDate)\r\n query = query.filter((a) => (a.startDate as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if (toDate) query = query.filter((a) => (a.startDate as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n return this.Client().get(`Auctions?${query.toString()}`);\r\n }\r\n\r\n public FetchAllAuctionsByVendor(\r\n userKey: string,\r\n fromDate?: Date,\r\n toDate?: Date\r\n ): AxiosPromise> {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== userKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n let query = odataQuery().filter((a) => a.userId.equals(userKey, { ignoreGuid: true }));\r\n\r\n if (fromDate)\r\n query = query.filter((a) => (a.startDate as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if (toDate) query = query.filter((a) => (a.startDate as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n query = query.select(\"id\", \"userId\", \"startDate\", \"endDate\").expand(\"sales\", (as) => as.select(\"id\"));\r\n\r\n return this.Client().get(`Auctions?${query.toString()}`);\r\n }\r\n\r\n public FetchMyAuctions(vendorId: string): AxiosPromise> {\r\n const query = odataQuery().filter((a) => a.userId.equals(vendorId, { ignoreGuid: true }));\r\n\r\n return this.Client().get(`Auctions?${query.toString()}`);\r\n }\r\n\r\n public Fetch(auctionKey: number): AxiosPromise {\r\n return this.Client().get(`Auctions(${auctionKey})`);\r\n }\r\n\r\n public FetchAuctionsCatalog(shopKey?: string): AxiosPromise> {\r\n let query = odataQuery()\r\n .expand(\"sales\", (q) => q.select(\"id\"))\r\n .expand(\"user\", (q: ExpandObjectQuery) => q.select(\"firstname\", \"lastname\"))\r\n .expand(\"pictures\", (q: ExpandObjectQuery) => q.select(\"filename\", \"type\", \"url\", \"urlWebOptimized\"))\r\n .orderBy(\"startDate\", \"asc\");\r\n\r\n if (shopKey) query = query.filter((a) => (a.user.vendor.shopId as FilterString).equals(shopKey));\r\n return this.Client().get(`Auctions?${query.toString()}`);\r\n }\r\n}\r\n","import { IBiddingOrdersService } from \"@api/contracts/odata/IBiddingOrdersService\";\r\nimport { IBid } from \"@api/models/market/IBid\";\r\nimport { IBiddingOrder } from \"@api/models/market/IBiddingOrder\";\r\nimport { IUser } from \"@api/models/market/IUser\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { ExpandObjectQuery, FilterDate, odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class BiddingOrdersService extends BaseODataService implements IBiddingOrdersService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(biddingOrder: IBiddingOrder): AxiosPromise {\r\n return this.Client().post(\"BiddingOrders\", biddingOrder);\r\n }\r\n\r\n public Fetch(biddingOrderKey: number): AxiosPromise {\r\n return this.Client().get(`BiddingOrders(${biddingOrderKey})`);\r\n }\r\n\r\n public FetchWithBidsAndBidder(biddingOrderKey: number): AxiosPromise {\r\n const query = odataQuery().expand(\"bids\", (b: ExpandObjectQuery) =>\r\n b\r\n .select(\"id\", \"biddingOrderId\", \"amount\", \"currency\", \"bidDate\", \"saleId\", \"userId\")\r\n .orderBy(\"bidDate\", \"asc\")\r\n .expand(\"user\", (q: ExpandObjectQuery) => q.select(\"id\", \"firstname\", \"lastname\", \"stripeCustomerId\"))\r\n );\r\n return this.Client().get(`BiddingOrders(${biddingOrderKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchAllBiddingOrdersWithUserBySale(saleKey: number): AxiosPromise> {\r\n const query = odataQuery()\r\n .filter((b) => b.saleId.equals(saleKey))\r\n .select(\"limitAmount\", \"orderDate\", \"userId\", \"saleId\")\r\n .orderBy(\"limitAmount\", \"desc\")\r\n .expand(\"user\", (u: ExpandObjectQuery) =>\r\n u.select(\"id\", \"firstname\", \"lastname\", \"buyerAlias\", \"countryCode\", \"email\", \"phoneNumber\", \"stripeCustomerId\")\r\n );\r\n\r\n return this.Client().get(`BiddingOrders?${query.toString()}`);\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n return this.Client().get(`BiddingOrders`);\r\n }\r\n\r\n public FetchAllBiddingOrdersWithBidderAndBids(\r\n fromDate?: Date,\r\n toDate?: Date\r\n ): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n let query = odataQuery()\r\n .select(\"limitAmount\", \"orderDate\", \"userId\", \"saleId\")\r\n .expand(\"bids\")\r\n .expand(\"user\", (u: ExpandObjectQuery) =>\r\n u.select(\r\n \"id\",\r\n \"firstname\",\r\n \"lastname\",\r\n \"buyerAlias\",\r\n \"countryCode\",\r\n \"email\",\r\n \"phoneNumber\",\r\n \"stripeCustomerId\",\r\n \"registeredAt\"\r\n )\r\n )\r\n .orderBy(\"limitAmount\", \"desc\");\r\n\r\n if (fromDate)\r\n query = query.filter((a) => (a.orderDate as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if (toDate) query = query.filter((a) => (a.orderDate as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n return this.Client().get(`BiddingOrders?${query.toString()}`);\r\n }\r\n\r\n public FetchAllByUser(userKey: string): AxiosPromise> {\r\n if (!userKey) return Promise.reject(new Error(\"Argument exception: userKey is missing\"));\r\n\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== userKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n const query = odataQuery()\r\n .filter((bo) => bo.userId.equals(userKey, { ignoreGuid: true }))\r\n .select(\"limitAmount\", \"orderDate\", \"userId\", \"saleId\")\r\n .orderBy(\"limitAmount\", \"desc\");\r\n\r\n return this.Client().get(`BiddingOrders?${query.toString()}`);\r\n }\r\n\r\n public FetchMyHighestBiddingOrderBySale(saleKey: number): AxiosPromise> {\r\n const query = odataQuery()\r\n .filter((b) => b.saleId.equals(saleKey))\r\n .select(\"limitAmount\", \"orderDate\", \"userId\", \"saleId\")\r\n .orderBy(\"limitAmount\", \"desc\")\r\n .paginate(1);\r\n\r\n return this.Client().get(`BiddingOrders?${query.toString()}`);\r\n }\r\n}\r\n","import { IBidsService } from \"@api/contracts/odata/IBidsService\";\r\nimport { IBid } from \"@api/models/market/IBid\";\r\nimport { IUser } from \"@api/models/market/IUser\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { ExpandObjectQuery, FilterDate, odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class BidsService extends BaseODataService implements IBidsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(bid: IBid): AxiosPromise {\r\n return this.Client().post(\"Bids\", bid);\r\n }\r\n\r\n public Fetch(key: number): AxiosPromise {\r\n return this.Client().get(`Bids(${key})`);\r\n }\r\n\r\n public FetchWithUserName(key: number): AxiosPromise {\r\n const query = odataQuery().expand(\"user\", (q: ExpandObjectQuery) => q.select(\"firstname\", \"lastname\"));\r\n\r\n return this.Client().get(`Bids(${key})?${query.toString()}`);\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // Note: the collection is sorted by the server\r\n const query = odataQuery()\r\n .select(\"id\", \"biddingOrderId\", \"amount\", \"bidDate\", \"userId\", \"saleId\")\r\n .orderBy((b) => b.amount.desc())\r\n .orderBy((b) => b.biddingOrderId.asc())\r\n .orderBy((b) => b.bidDate.asc());\r\n\r\n return this.Client().get(`Bids?${query.toString()}`);\r\n }\r\n\r\n public FetchAllBidsWithBidder(fromDate?: Date, toDate?: Date): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // Note: the collection is sorted by the server\r\n let query = odataQuery()\r\n .select(\"id\", \"biddingOrderId\", \"amount\", \"bidDate\", \"userId\", \"saleId\")\r\n .expand(\"user\", (u: ExpandObjectQuery) =>\r\n u.select(\r\n \"id\",\r\n \"firstname\",\r\n \"lastname\",\r\n \"buyerAlias\",\r\n \"countryCode\",\r\n \"email\",\r\n \"phoneNumber\",\r\n \"stripeCustomerId\",\r\n \"registeredAt\"\r\n )\r\n )\r\n .orderBy((b) => b.amount.desc())\r\n .orderBy((b) => b.biddingOrderId.asc())\r\n .orderBy((b) => b.bidDate.asc());\r\n\r\n if (fromDate) query = query.filter((a) => (a.bidDate as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if (toDate) query = query.filter((a) => (a.bidDate as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n return this.Client().get(`Bids?${query.toString()}`);\r\n }\r\n\r\n public FetchAllByUser(userKey: string): AxiosPromise> {\r\n if (!userKey) return Promise.reject(new Error(\"Argument exception: userKey is missing\"));\r\n\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== userKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // Note: the collection is sorted by the server\r\n const query = odataQuery()\r\n .filter((b) => b.userId.equals(userKey, { ignoreGuid: true }))\r\n .select(\"id\", \"biddingOrderId\", \"amount\", \"bidDate\", \"userId\", \"saleId\")\r\n .orderBy((b) => b.amount.desc())\r\n .orderBy((b) => b.biddingOrderId.asc())\r\n .orderBy((b) => b.bidDate.asc());\r\n\r\n return this.Client().get(`Bids?${query.toString()}`);\r\n }\r\n\r\n public FetchAllBidsWithUserBySale(saleKey: number): AxiosPromise> {\r\n // Note: the collection is sorted by the server\r\n const query = odataQuery()\r\n .filter((b) => b.saleId.equals(saleKey))\r\n .select(\"id\", \"biddingOrderId\", \"amount\", \"bidDate\", \"userId\")\r\n .orderBy((b) => b.amount.desc())\r\n .orderBy((b) => b.biddingOrderId.asc())\r\n .orderBy((b) => b.bidDate.asc())\r\n .expand(\"user\", (u: ExpandObjectQuery) =>\r\n u.select(\"id\", \"firstname\", \"lastname\", \"buyerAlias\", \"countryCode\", \"email\", \"phoneNumber\", \"stripeCustomerId\", \"registeredAt\")\r\n );\r\n\r\n return this.Client().get(`Bids?${query.toString()}`);\r\n }\r\n\r\n public FetchAllBidsWithUserBySales(saleKeys: number[]): AxiosPromise> {\r\n // Note: the collection is sorted by the server\r\n const query = odataQuery()\r\n .filter((b) => b.saleId.in(saleKeys))\r\n .select(\"id\", \"biddingOrderId\", \"amount\", \"bidDate\", \"userId\", \"saleId\")\r\n .orderBy((b) => b.amount.desc())\r\n .orderBy((b) => b.biddingOrderId.asc())\r\n .orderBy((b) => b.bidDate.asc())\r\n .expand(\"user\", (u: ExpandObjectQuery) =>\r\n u.select(\r\n \"id\",\r\n \"firstname\",\r\n \"lastname\",\r\n \"buyerAlias\",\r\n \"countryCode\",\r\n \"email\",\r\n \"phoneNumber\",\r\n \"stripeCustomerId\",\r\n \"registeredAt\"\r\n )\r\n );\r\n\r\n return this.Client().get(`Bids?${query.toString()}`);\r\n }\r\n}\r\n","import { ICartsService } from \"@api/contracts/odata/ICartsService\";\r\nimport { ICart } from \"@api/models/market/ICart\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { ExpandObjectQuery, odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class CartsService extends BaseODataService implements ICartsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(cart: ICart): AxiosPromise {\r\n if (!cart.cartItems || !cart.cartItems.length || cart.total < 0) return Promise.reject(\"Cart invalid\");\r\n\r\n return this.Client().post(\"Carts\", cart);\r\n }\r\n\r\n // Business rule: a cart should not be updated (but patched instead)\r\n // public Update(cartKey: number, cart: ICart): AxiosPromise {\r\n // if (!cart.cartItems || !cart.cartItems.length || cart.total < 0) return Promise.reject(\"Cart invalid\");\r\n\r\n // return this.Client().put(`Carts(${cartKey})`, cart);\r\n // }\r\n\r\n public Patch(cartKey: number, cart: Partial): AxiosPromise {\r\n return this.Client().patch(`Carts(${cartKey})`, cart);\r\n }\r\n\r\n public Delete(cartKey: number): AxiosPromise {\r\n return this.Client().delete(`Carts(${cartKey})`);\r\n }\r\n\r\n public Fetch(cartKey: number): AxiosPromise {\r\n return this.Client().get(`Carts(${cartKey})`);\r\n }\r\n\r\n public FetchAllOverview(): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(\"Not authorized\");\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .select(\"id\", \"createdAt\", \"createdUrl\", \"checkoutSessionId\", \"total\")\r\n .expand(\"cartItems\", (q) => \r\n q.expand(\"sale\", (q: ExpandObjectQuery) => \r\n q.select(\"id\", \"price\")\r\n )\r\n );\r\n\r\n return this.Client().get(`Carts?${query.toString()}`);\r\n }\r\n\r\n public FetchAllBySale(saleKey: number): AxiosPromise> {\r\n const query = odataQuery()\r\n .expand(\"cartItems\")\r\n .filter((c) => c.cartItems.any((ci) => ci.saleId.equals(saleKey)))\r\n .orderBy(\"createdAt\", \"desc\");\r\n\r\n return this.Client().get(`Carts?${query.toString()}`);\r\n }\r\n}\r\n","import { ICheckoutSessionsService } from \"@api/contracts/odata/ICheckoutSessionsService\";\r\nimport { ICheckoutSession } from \"@api/models/market/ICheckoutSession\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class CheckoutSessionsService extends BaseODataService implements ICheckoutSessionsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(checkoutSession: ICheckoutSession): AxiosPromise {\r\n if (!checkoutSession.checkoutSessionId) return Promise.reject(\"CheckoutSession invalid\");\r\n\r\n return this.Client().post(\"CheckoutSessions\", checkoutSession);\r\n }\r\n\r\n public Update(checkoutSessionKey: string, checkoutSession: ICheckoutSession): AxiosPromise {\r\n if (!checkoutSession.checkoutSessionId) return Promise.reject(\"CheckoutSession invalid\");\r\n\r\n return this.Client().put(`CheckoutSessions('${checkoutSessionKey}')`, checkoutSession);\r\n }\r\n\r\n public Patch(checkoutSessionKey: string, checkoutSession: Partial): AxiosPromise {\r\n return this.Client().patch(`CheckoutSessions('${checkoutSessionKey}')`, checkoutSession);\r\n }\r\n\r\n public Delete(checkoutSessionKey: string): AxiosPromise {\r\n return this.Client().delete(`CheckoutSessions('${checkoutSessionKey}')`);\r\n }\r\n\r\n public Fetch(checkoutSessionKey: string): AxiosPromise {\r\n return this.Client().get(`CheckoutSessions('${checkoutSessionKey}')`);\r\n }\r\n\r\n public FetchAllOverview(): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(\"Not authorized\");\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"customer\")\r\n .expand(\"shipping\")\r\n .expand(\"payment\");\r\n\r\n return this.Client().get(`CheckoutSessions?${query.toString()}`);\r\n }\r\n\r\n public FetchAllBySale(saleKey: number): AxiosPromise> {\r\n const query = odataQuery()\r\n .filter((cs) => cs.cart.cartItems.any((ci: any) => ci.saleId.equals(saleKey)))\r\n .expand(\"customer\")\r\n .expand(\"shipping\")\r\n .expand(\"payment\")\r\n .orderBy(\"checkoutDate\", \"desc\");\r\n\r\n return this.Client().get(`CheckoutSessions?${query.toString()}`);\r\n }\r\n}\r\n","import { IDepositsService } from \"@api/contracts/odata/IDepositsService\";\r\nimport { IDeposit } from \"@api/models/market/IDeposit\";\r\nimport { IPackage } from \"@api/models/market/IPackage\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore, depositStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { ExpandObjectQuery, FilterDate, odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class DepositsService extends BaseODataService implements IDepositsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(deposit: IDeposit): AxiosPromise {\r\n return this.Client().post(\"Deposits\", deposit);\r\n }\r\n\r\n public Update(depositKey: string, deposit: IDeposit): AxiosPromise {\r\n return this.Client().put(`Deposits('${depositKey}')`, deposit);\r\n }\r\n\r\n public Patch(depositKey: string, deposit: Partial): AxiosPromise {\r\n return this.Client().patch(`Deposits('${depositKey}')`, deposit);\r\n }\r\n\r\n public PatchAsProcessed(depositKey: string, processed = true): AxiosPromise {\r\n depositStore.RemovePendingDeposits(depositKey);\r\n return this.Client().patch(`Deposits('${depositKey}')`, { flagProcessed: processed } as Partial);\r\n }\r\n\r\n public Delete(depositKey: string): AxiosPromise {\r\n return this.Client().delete(`Deposits('${depositKey}')`);\r\n }\r\n\r\n public DeleteSoft(depositKey: string): AxiosPromise {\r\n return this.Client().patch(`Deposits('${depositKey}')`, { flagSoftDeleted: true } as Partial);\r\n }\r\n\r\n public Fetch(depositKey: string): AxiosPromise {\r\n let query = odataQuery();\r\n\r\n if (!authStore.IsAdministrator) query = query.filter((s) => s.flagSoftDeleted.notEquals(true));\r\n\r\n return this.Client().get(`Deposits('${depositKey}')?${query.toString()}`);\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n let query = odataQuery().orderBy(\"paymentDate\", \"desc\");\r\n\r\n if (!authStore.IsAdministrator) query = query.filter((s) => s.flagSoftDeleted.notEquals(true));\r\n\r\n return this.Client().get(`Deposits?${query.toString()}`);\r\n }\r\n\r\n public FetchAllDeposits(fromDate?: Date, toDate?: Date): AxiosPromise> {\r\n let query = odataQuery().orderBy(\"paymentDate\", \"desc\");\r\n\r\n if (!authStore.IsAdministrator) query = query.filter((s) => s.flagSoftDeleted.notEquals(true));\r\n if (fromDate)\r\n query = query.filter((d) => (d.paymentDate as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if (toDate) query = query.filter((d) => (d.paymentDate as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n return this.Client().get(`Deposits?${query.toString()}`);\r\n }\r\n\r\n public FetchAllPendingProcessing(): AxiosPromise> {\r\n let query = odataQuery()\r\n .filter((s) => s.flagProcessed.isNull())\r\n .orderBy(\"paymentDate\", \"desc\");\r\n\r\n if (!authStore.IsAdministrator) query = query.filter((s) => s.flagSoftDeleted.notEquals(true));\r\n\r\n return this.Client().get(`Deposits?${query.toString()}`);\r\n }\r\n\r\n public FetchAllWithSaleProduct(): AxiosPromise> {\r\n let query = odataQuery();\r\n\r\n if (!authStore.IsAdministrator) query = query.filter((s) => s.flagSoftDeleted.notEquals(true));\r\n\r\n query = query.orderBy(\"paymentDate\", \"desc\").expand(\"sale\", (s: ExpandObjectQuery) =>\r\n s\r\n .select(\"id\", \"type\", \"product\", \"price\", \"feesRate\", \"vatRate\", \"vatInclusive\")\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p.select(\"name\", \"ring\"))\r\n .expand(\"package\", (p: ExpandObjectQuery) => p.select(\"name\", \"discipline\"))\r\n );\r\n\r\n return this.Client().get(`Deposits?${query.toString()}`);\r\n }\r\n\r\n public FetchAllDepositsByVendor(\r\n vendorKey: string,\r\n from?: Date,\r\n to?: Date\r\n ): AxiosPromise> {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== vendorKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n let query = odataQuery();\r\n\r\n if (!authStore.IsAdministrator) query = query.filter((s) => s.flagSoftDeleted.notEquals(true));\r\n if (from) query = query.filter((s) => (s.paymentDate as any as FilterDate).isAfterOrEqual(from));\r\n if (to) query = query.filter((s) => (s.paymentDate as any as FilterDate).isBeforeOrEqual(to));\r\n\r\n query = query.filter((d) => d.vendorId.equals(vendorKey, { ignoreGuid: true })).orderBy(\"paymentDate\", \"desc\");\r\n\r\n return this.Client().get(`Deposits?${query.toString()}`);\r\n }\r\n\r\n public FetchAllByVendorWithSaleProduct(\r\n vendorKey: string,\r\n from?: Date,\r\n to?: Date\r\n ): AxiosPromise> {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== vendorKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n let query = odataQuery();\r\n\r\n if (!authStore.IsAdministrator) query = query.filter((s) => s.flagSoftDeleted.notEquals(true));\r\n if (from) query = query.filter((s) => (s.paymentDate as any as FilterDate).isAfterOrEqual(from));\r\n if (to) query = query.filter((s) => (s.paymentDate as any as FilterDate).isBeforeOrEqual(to));\r\n\r\n query = query\r\n .filter((d) => d.vendorId.equals(vendorKey, { ignoreGuid: true }))\r\n .orderBy(\"paymentDate\", \"desc\")\r\n .expand(\"sale\", (s: ExpandObjectQuery) =>\r\n s\r\n .select(\"id\", \"type\", \"product\", \"price\", \"feesRate\", \"vatRate\", \"vatInclusive\")\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p.select(\"name\", \"ring\"))\r\n .expand(\"package\", (p: ExpandObjectQuery) => p.select(\"name\", \"discipline\"))\r\n );\r\n\r\n return this.Client().get(`Deposits?${query.toString()}`);\r\n }\r\n\r\n public FetchAllSummaryWithUserBySale(saleKey: number): AxiosPromise> {\r\n const query = odataQuery()\r\n .filter((b) => b.saleId.equals(saleKey))\r\n .select(\"id\", \"amount\", \"rateOfTotal\", \"paymentDate\", \"userId\")\r\n .orderBy(\"paymentDate\", \"desc\")\r\n .expand(\"user\", (u) => u.select(\"id\", \"firstname\", \"lastname\", \"buyerAlias\", \"email\", \"phoneNumber\"));\r\n\r\n return this.Client().get(`Deposits?${query.toString()}`);\r\n }\r\n}\r\n","import { IFancierProfilesService } from \"@api/contracts/odata/IFancierProfilesService\";\r\nimport { IFancierProfile } from \"@api/models/market/IFancierProfile\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class FancierProfilesService extends BaseODataService implements IFancierProfilesService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(fancierProfile: IFancierProfile): AxiosPromise {\r\n return this.Client().post(\"FancierProfiles\", fancierProfile);\r\n }\r\n\r\n public Update(fancierProfileKey: number, fancierProfile: IFancierProfile): AxiosPromise {\r\n return this.Client().put(`FancierProfiles(${fancierProfileKey})`, fancierProfile);\r\n }\r\n\r\n public Patch(fancierProfileKey: number, fancierProfile: Partial): AxiosPromise {\r\n return this.Client().patch(`FancierProfiles(${fancierProfileKey})`, fancierProfile);\r\n }\r\n\r\n public Delete(fancierProfileKey: number): AxiosPromise {\r\n return this.Client().delete(`FancierProfiles(${fancierProfileKey})`);\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n const query = odataQuery().orderBy(\"lastname\");\r\n\r\n return this.Client().get(`FancierProfiles?${query.toString()}`);\r\n }\r\n\r\n public FetchAllWith(): AxiosPromise> {\r\n const query = odataQuery()\r\n .orderBy(\"lastname\")\r\n .expand(\"translations\")\r\n .expand(\"prizes\")\r\n .expand(\"ressources\");\r\n\r\n return this.Client().get(`FancierProfiles?${query.toString()}`);\r\n }\r\n\r\n public Fetch(fancierProfileKey: number): AxiosPromise {\r\n return this.Client().get(`FancierProfiles(${fancierProfileKey})`);\r\n }\r\n\r\n public FetchSheetByFancierProfile(fancierProfileKey: number): AxiosPromise {\r\n const query = odataQuery()\r\n .expand(\"picture\")\r\n .expand(\"translations\")\r\n .expand(\"prizes\")\r\n .expand(\"ressources\")\r\n .expand(\"ratings\")\r\n .expand(\"colony\");\r\n\r\n return this.Client().get(`FancierProfiles(${fancierProfileKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchAllSheetsByFancier(fancierKey: number): AxiosPromise> {\r\n const query = odataQuery()\r\n .expand(\"picture\")\r\n .expand(\"translations\")\r\n .expand(\"prizes\")\r\n .expand(\"ressources\")\r\n .expand(\"ratings\")\r\n .expand(\"colony\")\r\n .filter((fp) => fp.fancierId.equals(fancierKey));\r\n\r\n return this.Client().get(`FancierProfiles?${query.toString()}`);\r\n }\r\n\r\n public FetchOwnerId(fancierProfileKey: number): AxiosPromise {\r\n return this.Client().get(`FancierProfiles(${fancierProfileKey})/OwnerId`);\r\n }\r\n\r\n public FetchOwnerIdValue(fancierProfileKey: number): AxiosPromise {\r\n return this.Client().get(`FancierProfiles(${fancierProfileKey})/OwnerId/$value`);\r\n }\r\n}\r\n","import { IFanciersService } from \"@api/contracts/odata/IFanciersService\";\r\nimport { IFancier } from \"@api/models/market/IFancier\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { odataQuery } from \"odata-fluent-query\";\r\nimport { memoizeAsync } from \"utils-decorators\";\r\n\r\nexport class FanciersService extends BaseODataService implements IFanciersService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(fancier: IFancier): AxiosPromise {\r\n return this.Client().post(\"Fanciers\", fancier);\r\n }\r\n\r\n public Fetch(fancierKey: number): AxiosPromise {\r\n return this.Client().get(`Fanciers(${fancierKey})`);\r\n }\r\n\r\n @memoizeAsync(10 * 60 * 1000)\r\n public FetchAll(): AxiosPromise> {\r\n const query = odataQuery().orderBy(\"name\").count();\r\n\r\n return this.Client().get(`Fanciers?${query.toString()}`);\r\n }\r\n\r\n public FetchAllByUser(userKey: string | undefined): AxiosPromise> {\r\n if (!userKey) return Promise.reject(\"Argument exception: userKey is undefined\");\r\n\r\n const query = odataQuery()\r\n .orderBy(\"name\")\r\n .filter((f) => f.createdBy.equals(userKey, { ignoreGuid: true }))\r\n .count();\r\n\r\n return this.Client().get(`Fanciers?${query.toString()}`);\r\n }\r\n\r\n public FetchByValue(firstname: string, lastname: string): AxiosPromise> {\r\n const query = odataQuery()\r\n .filter((f) => f.name.contains(lastname) && f.name.contains(firstname))\r\n .paginate(1, 0);\r\n\r\n return this.Client().get>(`Fanciers?${query.toString()}`);\r\n }\r\n}\r\n","import { IFavoritesService } from \"@api/contracts/odata/IFavoritesService\";\r\nimport { IFavorite } from \"@api/models/market/IFavorite\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport odataQuery from \"odata-fluent-query\";\r\n\r\nexport class FavoritesService extends BaseODataService implements IFavoritesService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(favorite: IFavorite): AxiosPromise {\r\n return this.Client().post(\"Favorites\", favorite);\r\n }\r\n\r\n public Delete(favoriteKey: number): AxiosPromise {\r\n return this.Client().delete(`Favorites(${favoriteKey})`);\r\n }\r\n\r\n public FetchAllByUser(userKey?: string): AxiosPromise> {\r\n if (!userKey) return Promise.reject(new Error(\"Argument exception: userKey is missing\"));\r\n\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== userKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n const query = odataQuery()\r\n .filter((f) => f.userId.equals(userKey, { ignoreGuid: true }))\r\n .orderBy(\"recordedDate\", \"desc\");\r\n\r\n return this.Client().get(`Favorites?${query.toString()}`);\r\n }\r\n\r\n public FetchAllWithSaleProductByUser(userKey?: string): AxiosPromise> {\r\n if (!userKey) return Promise.reject(new Error(\"Argument exception: userKey is missing\"));\r\n\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== userKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n const query = odataQuery()\r\n .filter((f) => f.userId.equals(userKey, { ignoreGuid: true }))\r\n .orderBy(\"recordedDate\", \"desc\")\r\n .expand(\"sale\", (s) =>\r\n s\r\n .select(\"id\", \"product\", \"type\")\r\n .expand(\"pigeon\", (p) => p.select(\"id\", \"name\", \"ring\"))\r\n .expand(\"package\", (p) => p.select(\"id\", \"name\", \"discipline\"))\r\n );\r\n\r\n return this.Client().get(`Favorites?${query.toString()}`);\r\n }\r\n\r\n public Fetch(favoriteKey: number): AxiosPromise {\r\n return this.Client().get(`Favorites(${favoriteKey})`);\r\n }\r\n}\r\n","import { IGuestsService } from \"@api/contracts/odata/IGuestsService\";\r\nimport { ICart } from \"@api/models/market/ICart\";\r\nimport { IGuest } from \"@api/models/market/IGuest\";\r\nimport { IOrder } from \"@api/models/market/IOrder\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { ExpandObjectQuery, odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class GuestsService extends BaseODataService implements IGuestsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n const query = odataQuery().orderBy(\"firstname\", \"asc\");\r\n\r\n return this.Client().get(`Guests?${query.toString()}`);\r\n }\r\n\r\n public FetchAllIdentitiesWith(): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n const query = odataQuery().select(\"id\", \"firstname\", \"lastname\").orderBy(\"firstname\", \"asc\");\r\n return this.Client().get(`Guests?${query.toString()}`);\r\n }\r\n\r\n public Fetch(guestKey: number): AxiosPromise {\r\n return this.Client().get(`Guests(${guestKey})`);\r\n }\r\n\r\n public FetchAllOverview(): AxiosPromise> {\r\n const query = odataQuery()\r\n .select(\"id\", \"firstname\", \"lastname\", \"email\", \"phoneNumber\", \"preferredLanguage\", \"stripeCustomerId\")\r\n .orderBy(\"firstname\", \"asc\")\r\n .expand(\"carts\", (q: ExpandObjectQuery) => q.select(\"id\"))\r\n .expand(\"orders\", (q: ExpandObjectQuery) => q.select(\"id\"));\r\n\r\n return this.Client().get(`Guests?${query.toString()}`);\r\n }\r\n\r\n public GetGuestsIdentities(): AxiosPromise>> {\r\n return this.Client().get(`Guests/MarketService.GetGuestsIdentities`);\r\n }\r\n}\r\n","import { INewslettersService } from \"@api/contracts/odata/INewslettersService\";\r\nimport { INewsletter } from \"@api/models/market/INewsletter\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class NewslettersService extends BaseODataService implements INewslettersService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(newsletter: INewsletter): AxiosPromise {\r\n return this.Client().post(\"Newsletters\", newsletter);\r\n }\r\n\r\n public Delete(email: string): AxiosPromise {\r\n return this.Client().delete(`Newsletters('${email}')`);\r\n }\r\n\r\n public FetchAllOverview(): AxiosPromise> {\r\n const query = odataQuery().select(\"email\");\r\n\r\n return this.Client().get(`Newsletters?${query.toString()}`);\r\n }\r\n}\r\n","import { IOrderLinesService } from \"@api/contracts/odata/IOrderLinesService\";\r\nimport { IGuest } from \"@api/models/market/IGuest\";\r\nimport { IOrder } from \"@api/models/market/IOrder\";\r\nimport { IOrderLine } from \"@api/models/market/IOrderLine\";\r\nimport { IUser } from \"@api/models/market/IUser\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport odataQuery, { ExpandObjectQuery } from \"odata-fluent-query\";\r\n\r\nexport class OrderLinesService extends BaseODataService implements IOrderLinesService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n const query = odataQuery();\r\n\r\n return this.Client().get(`OrderLines?${query.toString()}`);\r\n }\r\n\r\n public FetchAllOrderLinesWithOrderDetailsBySalesIds(\r\n salesIds: number[]\r\n ): AxiosPromise> {\r\n const query = odataQuery()\r\n .filter((ol) => ol.saleId.in(salesIds))\r\n .expand(\"order\", (o: ExpandObjectQuery) =>\r\n o\r\n .expand(\"deliveryAddress\")\r\n .expand(\"user\", (u: ExpandObjectQuery) =>\r\n u.select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\", \"preferredLanguage\")\r\n )\r\n .expand(\"guest\", (g: ExpandObjectQuery) =>\r\n g.select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\", \"preferredLanguage\")\r\n )\r\n );\r\n\r\n return this.Client().get(`OrderLines?${query.toString()}`);\r\n }\r\n}\r\n","import { IOrdersService } from \"@api/contracts/odata/IOrdersService\";\r\nimport { ShippingMethodTypes } from \"@api/models/market/constants/ShippingMethodTypes\";\r\nimport { IGuest } from \"@api/models/market/IGuest\";\r\nimport { IOrder } from \"@api/models/market/IOrder\";\r\nimport { IOrderAmounts } from \"@api/models/market/IOrderAmounts\";\r\nimport { IPackage } from \"@api/models/market/IPackage\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { IShipping } from \"@api/models/market/IShipping\";\r\nimport { IShippingService } from \"@api/models/market/IShippingService\";\r\nimport { IUser } from \"@api/models/market/IUser\";\r\nimport { IVendor } from \"@api/models/market/IVendor\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { cloneDeep } from \"lodash-es\";\r\nimport { ExpandObjectQuery, FilterDate, odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class OrdersService extends BaseODataService implements IOrdersService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Fetch(orderKey: string): AxiosPromise {\r\n return this.Client().get(`Orders('${orderKey}')`);\r\n }\r\n\r\n public FetchWithLines(orderKey: string): AxiosPromise {\r\n const query = odataQuery()\r\n .expand(\"user\")\r\n .expand(\"guest\")\r\n .expand(\"deliveryAddress\")\r\n .expand(\"lines\", (l) =>\r\n l.expand(\"sale\", (s: ExpandObjectQuery) =>\r\n s\r\n .expand(\"pickUpAddress\")\r\n .expand(\"pigeon\")\r\n .expand(\"package\", (p: ExpandObjectQuery) => p.expand(\"pigeons\"))\r\n )\r\n );\r\n\r\n return this.Client().get(`Orders('${orderKey}')?${query.toString()}`);\r\n }\r\n\r\n public FetchSummaryWithBuyer(orderKey: string): AxiosPromise {\r\n const query = odataQuery()\r\n .select(\"id\", \"orderDate\", \"paymentDate\", \"paymentMethod\", \"total\", \"userId\", \"guestId\")\r\n .expand(\"user\", (u: ExpandObjectQuery) =>\r\n u.select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\", \"preferredLanguage\")\r\n )\r\n .expand(\"guest\", (g: ExpandObjectQuery) =>\r\n g.select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\", \"preferredLanguage\")\r\n );\r\n\r\n return this.Client().get(`Orders('${orderKey}')?${query.toString()}`);\r\n }\r\n\r\n public FetchSheet(orderKey: string): AxiosPromise {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"user\", (u: ExpandObjectQuery) => u\r\n .expand(\"vendor\", (v: ExpandObjectQuery) => v\r\n .select(\"referralCode\")\r\n )\r\n )\r\n .expand(\"guest\")\r\n .expand(\"deliveryAddress\")\r\n .expand(\"billingAddress\")\r\n .expand(\"billingCorporation\")\r\n .expand(\"lines\", l => l\r\n .expand(\"delivery\", (d: ExpandObjectQuery) => d\r\n .expand(\"shippingRate\")\r\n .expand(\"shippingService\", (ss: ExpandObjectQuery) => ss\r\n .expand(\"provider\")\r\n )\r\n )\r\n .expand(\"sale\", (s: ExpandObjectQuery) => s\r\n .expand(\"pickUpAddress\")\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p\r\n .expand(\"fancier\")\r\n .expand(\"pictures\")\r\n )\r\n .expand(\"package\", (p: ExpandObjectQuery) => p\r\n .expand(\"pigeons\", (p: ExpandObjectQuery) => p\r\n .expand(\"pictures\")\r\n )\r\n .expand(\"fancier\")\r\n )\r\n )\r\n )\r\n\r\n return this.Client().get(`Orders('${orderKey}')?${query.toString()}`);\r\n }\r\n\r\n public FetchAllOverview(): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(\"Not authorized\");\r\n\r\n const query = odataQuery()\r\n .select(\"id\", \"subtotal\", \"total\", \"currency\", \"orderDate\", \"shippingMethod\", \"paymentMethod\", \"status\")\r\n .expand(\"user\")\r\n .expand(\"guest\")\r\n .expand(\"lines\", (l) => l.select(\"saleId\"));\r\n\r\n return this.Client().get(`Orders?${query.toString()}`);\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n const query = odataQuery()\r\n .orderBy(\"orderDate\", \"desc\")\r\n .expand(\"deliveryAddress\")\r\n .expand(\"user\", (u: ExpandObjectQuery) =>\r\n u.select(\"id\", \"firstname\", \"lastname\", \"email\", \"phoneNumber\", \"countryCode\")\r\n )\r\n .expand(\"guest\", (g: ExpandObjectQuery) => g.select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\"));\r\n\r\n return this.Client().get(`Orders?${query.toString()}`);\r\n }\r\n\r\n public FetchAllOrdersWithLinesAndCustomer(\r\n fromDate?: Date,\r\n toDate?: Date\r\n ): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n let query = odataQuery()\r\n .orderBy(\"orderDate\", \"desc\")\r\n .expand(\"lines\")\r\n .expand(\"deliveryAddress\")\r\n .expand(\"user\", (u: ExpandObjectQuery) =>\r\n u.select(\"id\", \"firstname\", \"lastname\", \"email\", \"phoneNumber\", \"countryCode\")\r\n )\r\n .expand(\"guest\", (g: ExpandObjectQuery) => g.select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\"));\r\n\r\n if (fromDate)\r\n query = query.filter((a) => (a.orderDate as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if (toDate) query = query.filter((a) => (a.orderDate as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n return this.Client().get(`Orders?${query.toString()}`);\r\n }\r\n\r\n public FetchAllByUser(userKey?: string): AxiosPromise> {\r\n if (!userKey) return Promise.reject(new Error(\"Argument exception: userKey is missing\"));\r\n\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== userKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n const query = odataQuery()\r\n .filter((o) => o.userId.equals(userKey, { ignoreGuid: true }).or(o.guestId.equals(userKey, { ignoreGuid: true })))\r\n .orderBy(\"orderDate\", \"desc\")\r\n .expand(\"deliveryAddress\")\r\n .expand(\"user\", (u: ExpandObjectQuery) =>\r\n u.select(\"id\", \"firstname\", \"lastname\", \"email\", \"phoneNumber\", \"countryCode\")\r\n )\r\n .expand(\"guest\", (g: ExpandObjectQuery) => g.select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\"));\r\n\r\n return this.Client().get(`Orders?${query.toString()}`);\r\n }\r\n\r\n public FetchAllWithCustomerAndDeliveryAddressByIds(\r\n orderKeys: string[]\r\n ): AxiosPromise> {\r\n const query = odataQuery()\r\n .filter((o) => o.id.in(orderKeys))\r\n .orderBy(\"orderDate\", \"desc\")\r\n .expand(\"deliveryAddress\")\r\n .expand(\"user\", (u: ExpandObjectQuery) =>\r\n u.select(\"id\", \"firstname\", \"lastname\", \"buyerAlias\", \"email\", \"phoneNumber\", \"countryCode\", \"registeredAt\")\r\n )\r\n .expand(\"guest\", (g: ExpandObjectQuery) =>\r\n g.select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\", \"registeredAt\")\r\n );\r\n\r\n return this.Client().get(`Orders?${query.toString()}`);\r\n }\r\n\r\n public Insert(order: IOrder): AxiosPromise {\r\n // Sale graph is not neccessary for insert action\r\n const orderToInsert: IOrder = cloneDeep(order);\r\n\r\n for (const line of orderToInsert.lines) {\r\n delete line.sale;\r\n delete line.delivery?.shippingService;\r\n }\r\n\r\n return this.Client().post(`Orders`, orderToInsert);\r\n }\r\n\r\n public Update(orderKey: string, order: IOrder): AxiosPromise {\r\n // Sale graph is not neccessary for insert action\r\n const orderToUpdate: IOrder = cloneDeep(order);\r\n\r\n for (const line of orderToUpdate.lines) {\r\n delete line.sale;\r\n delete line.delivery?.shippingService;\r\n }\r\n\r\n return this.Client().put(`Orders('${orderKey}')`, orderToUpdate);\r\n }\r\n\r\n public Patch(orderKey: string, patch: Partial): AxiosPromise {\r\n return this.Client().patch(`Orders('${orderKey}')`, patch);\r\n }\r\n\r\n public FlagOrderAsNonPaid(orderKey: string): AxiosPromise {\r\n return this.Client().post(`Orders('${orderKey}')/MarketService.FlagOrderAsNonPaid`);\r\n }\r\n\r\n public CalculateAmounts(\r\n salesId: number[],\r\n shippingMethod: ShippingMethodTypes,\r\n buyerTwoIsoLettersCountry?: string\r\n ): AxiosPromise {\r\n const shippingMethodParam = shippingMethod ? `'${shippingMethod}'` : null;\r\n const buyerCountryParam = buyerTwoIsoLettersCountry ? `'${buyerTwoIsoLettersCountry}'` : null;\r\n\r\n return this.Client().get(\r\n `Orders/MarketService.CalculateAmounts(salesId=${JSON.stringify(\r\n salesId\r\n )},shippingMethod=${shippingMethodParam},buyerCountry=${buyerCountryParam})`\r\n );\r\n }\r\n\r\n public AbandonOrder(orderId: string, checkoutSessionId: string): AxiosPromise {\r\n return this.Client().post(`Orders('${orderId}')/MarketService.AbandonOrder`, {\r\n checkoutSessionId: checkoutSessionId\r\n });\r\n }\r\n}\r\n","import { IPackagesService } from \"@api/contracts/odata/IPackagesService\";\r\nimport { IFancier } from \"@api/models/market/IFancier\";\r\nimport { IPackage } from \"@api/models/market/IPackage\";\r\nimport { IParentAsset } from \"@api/models/market/IParentAsset\";\r\nimport { IPicture } from \"@api/models/market/IPicture\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { IPrize } from \"@api/models/market/IPrize\";\r\nimport { IRankingAsset } from \"@api/models/market/IRankingAsset\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { IStrain } from \"@api/models/market/IStrain\";\r\nimport { IUser } from \"@api/models/market/IUser\";\r\nimport { IVideo } from \"@api/models/market/IVideo\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { ExpandObjectQuery, odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class PackagesService extends BaseODataService implements IPackagesService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public FetchAllWithPigeonsByUser(userKey: string): AxiosPromise> {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .filter(p => p.userId.equals(userKey, {ignoreGuid: true}))\r\n .expand(\"sales\", (s: ExpandObjectQuery) => s.select(\"id\", \"flagApproved\", \"status\", \"startDate\", \"endDate\"))\r\n .expand(\"pigeons\", p => p\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"ringArea\", \"userId\")\r\n .expand(\"user\", (u: ExpandObjectQuery) => u.select(\"firstname\", \"lastname\"))\r\n .expand(\"fancier\", (f: ExpandObjectQuery) => f.select(\"id\", \"name\"))\r\n .expand(\"strain\", (s: ExpandObjectQuery) => s.select(\"id\", \"name\"))\r\n );\r\n\r\n return this.Client().get(`Packages?${query.toString()}`);\r\n }\r\n\r\n public FetchSalePackagePigeon(packageKey: number, pigeonKey: number): AxiosPromise {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"characteristics\")\r\n .expand(\"fancier\", (f: ExpandObjectQuery) => f\r\n .select(\"id\", \"name\", \"createdAt\", \"createdBy\")\r\n )\r\n .expand(\"strain\", (s: ExpandObjectQuery) => s\r\n .select(\"id\", \"name\")\r\n )\r\n .expand(\"pictures\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"filename\", \"type\", \"url\", \"urlWebOptimized\", \"createdAt\", \"createdBy\")\r\n )\r\n .expand(\"videos\", (v: ExpandObjectQuery) => v\r\n .select(\"id\", \"filename\", \"type\", \"url\", \"urlWebOptimized\")\r\n )\r\n .expand(\"father\", (f: ExpandObjectQuery) => f\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"userId\")\r\n )\r\n .expand(\"mother\", (m: ExpandObjectQuery) => m\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"userId\")\r\n );\r\n\r\n return this.Client().get(\r\n `Packages/MarketService.SalePackagePigeon(packageKey=${packageKey},pigeonKey=${pigeonKey})?${query.toString()}`\r\n );\r\n }\r\n\r\n public FetchSalePackageReproducer(packageKey: number, parentKey: number): AxiosPromise {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"characteristics\")\r\n .expand(\"fancier\", (f: ExpandObjectQuery) => f\r\n .select(\"id\", \"name\")\r\n )\r\n .expand(\"strain\", (s: ExpandObjectQuery) => s\r\n .select(\"id\", \"name\")\r\n )\r\n .expand(\"pictures\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"filename\", \"type\", \"url\", \"urlWebOptimized\")\r\n )\r\n .expand(\"videos\", (v: ExpandObjectQuery) => v\r\n .select(\"id\", \"filename\", \"type\", \"url\", \"urlWebOptimized\")\r\n )\r\n .expand(\"prizes\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"rank\", \"order\", \"distance\", \"participants\", \"area\", \"year\", \"place\", \"taggedAsAsset\")\r\n .orderBy(\"order\")\r\n )\r\n .expand(\"assetRankings\", (ar: ExpandObjectQuery) => ar\r\n .select(\"areaType\") \r\n )\r\n .expand(\"assetParents\", (ap: ExpandObjectQuery) => ap\r\n .select(\"parentId\")\r\n .expand(\"parent\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"asset\", \"assetText\")\r\n .expand(\"prizes\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"rank\", \"order\", \"distance\", \"participants\", \"area\", \"year\", \"place\", \"taggedAsAsset\")\r\n .orderBy(\"order\")\r\n )\r\n .expand(\"assetRankings\", (ar: ExpandObjectQuery) => ar\r\n .select(\"areaType\")\r\n )\r\n )\r\n )\r\n .expand(\"father\", (f: ExpandObjectQuery) => f\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"userId\")\r\n )\r\n .expand(\"mother\", (m: ExpandObjectQuery) => m\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"userId\")\r\n );\r\n\r\n return this.Client().get(\r\n `Packages/MarketService.SalePackageReproducer(packageKey=${packageKey},parentKey=${parentKey})?${query.toString()}`\r\n );\r\n }\r\n}\r\n","import { IParentAssetsService } from \"@api/contracts/odata/IParentAssetsService\";\r\nimport { IParentAsset } from \"@api/models/market/IParentAsset\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class ParentAssetsService extends BaseODataService implements IParentAssetsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public FetchAllByPigeon(pigeonKey: number, top?: number): AxiosPromise> {\r\n let query = odataQuery()\r\n .select(\"parentId\")\r\n .expand(\"parent\", (q) => q.select(\"id\", \"name\", \"ring\", \"sex\", \"asset\", \"assetText\"))\r\n .filter((ap) => ap.pigeonId.equals(pigeonKey))\r\n .count();\r\n\r\n if (top) query = query.paginate(top);\r\n\r\n return this.Client().get(`ParentAssets?${query.toString()}`);\r\n }\r\n}\r\n","import { IPigeonsService } from \"@api/contracts/odata/IPigeonsService\";\r\nimport { SaleStatus } from \"@api/models/market/constants/SaleStatus\";\r\nimport { IFancier } from \"@api/models/market/IFancier\";\r\nimport { IParentAsset } from \"@api/models/market/IParentAsset\";\r\nimport { IPicture } from \"@api/models/market/IPicture\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { IPrize } from \"@api/models/market/IPrize\";\r\nimport { IRankingAsset } from \"@api/models/market/IRankingAsset\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { IStrain } from \"@api/models/market/IStrain\";\r\nimport { IUser } from \"@api/models/market/IUser\";\r\nimport { IVideo } from \"@api/models/market/IVideo\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { IODataValueResponse } from \"@api/models/shared/IODataValueResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore } from \"@market/stores/App.store.modules\";\r\nimport { CatalogFilterTypes } from \"@pigeon/enumerations/CatalogFilterTypes\";\r\nimport { CatalogSortTypes } from \"@pigeon/enumerations/CatalogSortTypes\";\r\nimport { IPaginate } from \"@pigeon/models/IPaginate\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { ExpandObjectQuery, FilterBuilder, ODataQuery, odataQuery } from \"odata-fluent-query\";\r\n\r\ntype OrderDirection = \"asc\" | \"desc\" | undefined;\r\n\r\nexport class PigeonsService extends BaseODataService implements IPigeonsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n //#region Sort\r\n public OrderBy(query: ODataQuery, sort?: string): ODataQuery {\r\n if (!sort) return query;\r\n\r\n const sortParams: string[] = sort.split(\";\");\r\n const orderPropertyName: string = sortParams[0];\r\n const orderDirection: string = sortParams[1];\r\n\r\n if (orderPropertyName == CatalogSortTypes.Name) {\r\n query.orderBy(\"name\", orderDirection as OrderDirection);\r\n } else if (orderPropertyName == CatalogSortTypes.Ring) {\r\n query.orderBy(\"ring\", orderDirection as OrderDirection);\r\n } else if (orderPropertyName == CatalogSortTypes.SaleEndDate) {\r\n query.orderBy(\"createdAt\", orderDirection as OrderDirection);\r\n }\r\n\r\n return query;\r\n }\r\n //#endregion\r\n\r\n //#region Filter\r\n public FilterBy(query: ODataQuery, filters?: Map): ODataQuery {\r\n if (!filters) return query;\r\n\r\n if (filters.has(CatalogFilterTypes.Contributor)) {\r\n query = this.FilterQueryByContributor(query, filters.get(CatalogFilterTypes.Contributor));\r\n }\r\n\r\n if (filters.has(CatalogFilterTypes.Sex)) {\r\n query = this.FilterQueryBySex(query, filters.get(CatalogFilterTypes.Sex));\r\n }\r\n\r\n if (filters.has(CatalogFilterTypes.Discipline)) {\r\n query = this.FilterQueryByDiscipline(query, filters.get(CatalogFilterTypes.Discipline));\r\n }\r\n\r\n if (filters.has(CatalogFilterTypes.Country)) {\r\n query = this.FilterQueryByCountry(query, filters.get(CatalogFilterTypes.Country));\r\n }\r\n\r\n if (filters.has(CatalogFilterTypes.YearMin)) {\r\n query = this.FilterQueryByYearMin(query, filters.get(CatalogFilterTypes.YearMin)?.shift() as string | undefined);\r\n }\r\n\r\n if (filters.has(CatalogFilterTypes.YearMax)) {\r\n query = this.FilterQueryByYearMax(query, filters.get(CatalogFilterTypes.YearMax)?.shift() as string | undefined);\r\n }\r\n\r\n return query;\r\n }\r\n\r\n private FilterQueryByContributor(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((p) => p.userId.in(filterValues));\r\n }\r\n\r\n private FilterQueryBySex(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((p) => p.sex.in(filterValues));\r\n }\r\n\r\n private FilterQueryByDiscipline(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((p) => p.discipline.in(filterValues));\r\n }\r\n\r\n private FilterQueryByCountry(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((p) => p.ringArea.in(filterValues));\r\n }\r\n\r\n private FilterQueryByYearMin(query: ODataQuery, filterValue?: string): ODataQuery {\r\n if (!filterValue) return query;\r\n\r\n const yearMinFilterValue = parseInt(filterValue);\r\n return query.filter((p) => p.birthYear.biggerOrEqualThan(yearMinFilterValue));\r\n }\r\n\r\n private FilterQueryByYearMax(query: ODataQuery, filterValue?: string): ODataQuery {\r\n if (!filterValue) return query;\r\n\r\n const yearMaxFilterValue = parseInt(filterValue);\r\n return query.filter((p) => p.birthYear.lessOrEqualThan(yearMaxFilterValue));\r\n }\r\n //#endregion\r\n\r\n //#region Search\r\n public SearchBy(query: ODataQuery, search?: string): ODataQuery {\r\n if (!search) return query;\r\n\r\n // Filter by Ring\r\n // Or\r\n // Filter by Name\r\n // let searchFilters = `name eq '${query}' or ring eq '${query}'`; // search by equals\r\n\r\n // prettier-ignore\r\n return query.filter((p) =>\r\n p.name.contains(search).or(p.ring.contains(search))\r\n );\r\n }\r\n //#endregion\r\n public Insert(pigeon: IPigeon): AxiosPromise {\r\n return this.Client().post(\"Pigeons\", pigeon);\r\n }\r\n\r\n public Update(pigeonKey: number, pigeon: IPigeon): AxiosPromise {\r\n return this.Client().put(`Pigeons(${pigeonKey})`, pigeon);\r\n }\r\n\r\n public Patch(pigeonKey: number, pigeon: Partial): AxiosPromise {\r\n return this.Client().patch(`Pigeons(${pigeonKey})`, pigeon);\r\n }\r\n\r\n public Delete(pigeonKey: number): AxiosPromise {\r\n return this.Client().delete(`Pigeons(${pigeonKey})`);\r\n }\r\n\r\n public Fetch(pigeonKey: number): AxiosPromise {\r\n return this.Client().get(`Pigeons(${pigeonKey})`);\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n const query = odataQuery().count();\r\n\r\n return this.Client().get(`Pigeons?${query.toString()}`);\r\n }\r\n\r\n public FetchAllByVendor(vendorKey: string): AxiosPromise> {\r\n const query = odataQuery()\r\n .filter((p) => p.userId.equals(vendorKey, { ignoreGuid: true })) // .or(p.sales.any((s: FilterBuilder) => s.userId.equals(vendorKey, {ignoreGuid: true})))) // ignore data where pigeon has not been created by current user\r\n .expand(\"sales\", (s: ExpandObjectQuery) =>\r\n s.select(\"id\", \"flagApproved\", \"status\", \"startDate\", \"endDate\")\r\n ) // include sale to check edit permission\r\n .orderBy(\"createdAt\", \"desc\");\r\n\r\n return this.Client().get(`Pigeons?${query.toString()}`);\r\n }\r\n\r\n public FetchAllReproducersByVendor(vendorKey: string): AxiosPromise> {\r\n const query = odataQuery()\r\n .filter((p) => p.userId.equals(vendorKey, { ignoreGuid: true }))\r\n .filter((p) => p.birthYear.lessThan(new Date().getFullYear()))\r\n .filter((p) => p.sales.empty())\r\n .filter((p) => p.package.isNull());\r\n\r\n return this.Client().get(`Pigeons?${query.toString()}`);\r\n }\r\n\r\n public FetchAllReproducersAvailableByVendor(vendorKey: string): AxiosPromise> {\r\n const query = odataQuery()\r\n .filter((p) => p.userId.equals(vendorKey, { ignoreGuid: true }))\r\n .filter((p) => p.birthYear.lessThan(new Date().getFullYear()))\r\n .filter((p) => p.sales.empty().or(p.sales.any((s: FilterBuilder) => s.status.in([SaleStatus.Unsold]))))\r\n .filter((p) => p.package.isNull());\r\n\r\n return this.Client().get(`Pigeons?${query.toString()}`);\r\n }\r\n\r\n public FetchCatalog(\r\n paginate?: IPaginate,\r\n sort?: string,\r\n filters?: Map,\r\n search?: string\r\n ): AxiosPromise> {\r\n // prettier-ignore\r\n let query = odataQuery();\r\n\r\n if (search) query = this.SearchBy(query, search);\r\n if (filters) query = this.FilterBy(query, filters);\r\n\r\n query = query\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"ringArea\", \"asset\", \"assetText\", \"flagApproved\", \"userId\")\r\n .expand(\"user\", (u: ExpandObjectQuery) => u.select(\"firstname\", \"lastname\"))\r\n .expand(\"fancier\", (f: ExpandObjectQuery) => f.select(\"id\", \"name\"))\r\n .expand(\"strain\", (s: ExpandObjectQuery) => s.select(\"id\", \"name\"))\r\n .expand(\"pictures\", (p: ExpandObjectQuery) => p.select(\"filename\", \"type\", \"url\", \"urlWebOptimized\"))\r\n .expand(\"videos\", (v: ExpandObjectQuery) => v.select(\"filename\", \"type\", \"url\", \"urlWebOptimized\"))\r\n .expand(\"prizes\", (p: ExpandObjectQuery) =>\r\n p.select(\"rank\", \"order\", \"distance\", \"participants\", \"area\", \"year\", \"place\", \"taggedAsAsset\").orderBy(\"order\")\r\n )\r\n .expand(\"assetRankings\", (ar: ExpandObjectQuery) => ar.select(\"areaType\"))\r\n .expand(\"assetParents\", (ap: ExpandObjectQuery) =>\r\n ap.select(\"parentId\").expand(\"parent\", (p: ExpandObjectQuery) =>\r\n p\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"asset\", \"assetText\")\r\n .expand(\"prizes\", (p: ExpandObjectQuery) =>\r\n p\r\n .select(\"rank\", \"order\", \"distance\", \"participants\", \"area\", \"year\", \"place\", \"taggedAsAsset\")\r\n .orderBy(\"order\")\r\n )\r\n .expand(\"assetRankings\", (ar: ExpandObjectQuery) => ar.select(\"areaType\"))\r\n )\r\n )\r\n .count();\r\n\r\n if (sort) query = this.OrderBy(query, sort);\r\n if (paginate) query = query.paginate(paginate.pageSize, paginate.page);\r\n\r\n return this.Client().get(`Pigeons?${query.toString()}`);\r\n }\r\n\r\n public FetchSheet(pigeonKey: number): AxiosPromise {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"fancier\")\r\n .expand(\"strain\")\r\n .expand(\"pictures\");\r\n\r\n return this.Client().get(`Pigeons(${pigeonKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchProduct(pigeonKey: number): AxiosPromise {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"sales\", (s: ExpandObjectQuery) => s\r\n .select(\"id\", \"flagApproved\", \"status\", \"startDate\", \"endDate\") // include sale to check edit permission\r\n )\r\n .expand(\"fancier\", (f: ExpandObjectQuery) => f\r\n .select(\"id\", \"name\", \"createdAt\", \"createdBy\")\r\n )\r\n .expand(\"strain\", (s: ExpandObjectQuery) => s\r\n .select(\"id\", \"name\")\r\n )\r\n .expand(\"pictures\", (p: ExpandObjectQuery) => p \r\n .select(\"id\", \"filename\", \"type\", \"url\", \"urlWebOptimized\")\r\n )\r\n .expand(\"videos\", (v: ExpandObjectQuery) => v \r\n .select(\"id\", \"filename\", \"type\", \"url\", \"urlWebOptimized\")\r\n )\r\n .expand(\"prizes\", (p: ExpandObjectQuery) => p \r\n .select(\"id\", \"rank\", \"order\", \"distance\", \"participants\", \"area\", \"year\", \"place\", \"taggedAsAsset\")\r\n .orderBy(\"order\")\r\n )\r\n .expand(\"father\", (f: ExpandObjectQuery) => f\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"userId\")\r\n )\r\n .expand(\"mother\", (m: ExpandObjectQuery) => m\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"userId\")\r\n )\r\n .expand(\"assetRankings\", (ar: ExpandObjectQuery) => ar\r\n .select(\"areaType\")\r\n )\r\n .expand(\"assetParents\", (ap: ExpandObjectQuery) => ap\r\n .select(\"parentId\")\r\n .expand(\"parent\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\" , \"ring\", \"sex\", \"asset\", \"assetText\")\r\n .expand(\"prizes\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"rank\", \"order\", \"distance\", \"participants\", \"area\", \"year\", \"place\", \"taggedAsAsset\")\r\n .orderBy(\"order\")\r\n )\r\n .expand(\"assetRankings\", (ar: ExpandObjectQuery) => ar\r\n .select(\"areaType\")\r\n )\r\n )\r\n );\r\n\r\n return this.Client().get(`Pigeons(${pigeonKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchParentSummary(parentKey: number): AxiosPromise {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"fancier\", (f: ExpandObjectQuery) => f\r\n .select(\"id\", \"name\")\r\n )\r\n .expand(\"strain\", (s: ExpandObjectQuery) => s\r\n .select(\"id\", \"name\")\r\n )\r\n .expand(\"pictures\", (p: ExpandObjectQuery) => p \r\n .select(\"id\", \"filename\", \"type\", \"url\", \"urlWebOptimized\")\r\n )\r\n .expand(\"videos\", (v: ExpandObjectQuery) => v \r\n .select(\"id\", \"filename\", \"type\", \"url\", \"urlWebOptimized\")\r\n )\r\n .expand(\"prizes\", (p: ExpandObjectQuery) => p \r\n .select(\"id\", \"rank\", \"order\", \"distance\", \"participants\", \"area\", \"year\", \"place\", \"taggedAsAsset\")\r\n .orderBy(\"order\")\r\n );\r\n\r\n return this.Client().get(`Pigeons(${parentKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchChildren(parentKey: number): AxiosPromise> {\r\n const query = odataQuery()\r\n .select(\"id\", \"name\", \"ring\")\r\n .filter((p) => p.fatherId.equals(parentKey).or(p.motherId.equals(parentKey)))\r\n .count();\r\n\r\n return this.Client().get(`Pigeons?${query.toString()}`);\r\n }\r\n\r\n public FetchWithParents(pigeonKey: number): AxiosPromise {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"userId\")\r\n .expand(\"father\", (f: ExpandObjectQuery) => f\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"userId\")\r\n )\r\n .expand(\"mother\", (m: ExpandObjectQuery) => m\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"userId\")\r\n )\r\n\r\n return this.Client().get(`Pigeons(${pigeonKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchWithPrizes(pigeonKey: number): AxiosPromise {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .select(\"id\", \"name\", \"ring\")\r\n .expand(\"prizes\", (p: ExpandObjectQuery) => p\r\n .select(\"rank\", \"order\", \"distance\", \"participants\", \"area\", \"year\", \"place\", \"taggedAsAsset\")\r\n .orderBy(\"order\")\r\n )\r\n\r\n return this.Client().get(`Pigeons(${pigeonKey})/?${query.toString()}`);\r\n }\r\n\r\n public FetchPedigree(pigeonKey: number, generation = 2): AxiosPromise> {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"fancier\", (f: ExpandObjectQuery) => f\r\n .select(\"name\")\r\n )\r\n .expand(\"strain\", (s: ExpandObjectQuery) => s\r\n .select(\"name\")\r\n )\r\n .expand(\"pictures\", (p: ExpandObjectQuery) => p \r\n .select(\"filename\", \"type\", \"url\", \"urlWebOptimized\")\r\n )\r\n .expand(\"prizes\", (p: ExpandObjectQuery) => p \r\n .select(\"rank\", \"order\", \"distance\", \"participants\", \"area\", \"year\", \"place\", \"taggedAsAsset\")\r\n .orderBy(\"order\")\r\n )\r\n .expand(\"father\", (f: ExpandObjectQuery) => f\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"userId\")\r\n )\r\n .expand(\"mother\", (m: ExpandObjectQuery) => m\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"userId\")\r\n )\r\n .expand(\"assetRankings\", (ar: ExpandObjectQuery) => ar\r\n .select(\"areaType\")\r\n )\r\n .expand(\"assetParents\", (ap: ExpandObjectQuery) => ap\r\n .select(\"parentId\")\r\n .expand(\"parent\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\" , \"ring\", \"sex\", \"asset\", \"assetText\")\r\n .expand(\"prizes\", (p: ExpandObjectQuery) => p\r\n .select(\"rank\", \"order\", \"distance\", \"participants\", \"area\", \"year\", \"place\", \"taggedAsAsset\")\r\n .orderBy(\"order\")\r\n )\r\n .expand(\"assetRankings\", (ar: ExpandObjectQuery) => ar\r\n .select(\"areaType\")\r\n )\r\n )\r\n );\r\n\r\n return this.Client().get(\r\n `Pigeons(${pigeonKey})/MarketService.Pedigree(generation=${generation})?${query.toString()}`\r\n );\r\n }\r\n\r\n public FetchPedigreeIdentityOnly(pigeonKey: number, generation = 2): AxiosPromise> {\r\n const query = `Pigeons(${pigeonKey})/MarketService.PedigreeIdentity(generation=${generation})`;\r\n\r\n return this.Client().get(query);\r\n }\r\n\r\n public DetermineRelationship(pigeonKey: number, parentKey: number): AxiosPromise {\r\n return super.Client().get(`Pigeons(${pigeonKey})/MarketService.FamilyRelationship(ParentKey=${parentKey})`);\r\n }\r\n\r\n public FetchAllPendingApprovalPigeons(): AxiosPromise> {\r\n if (!authStore.IsApprover) return Promise.reject(\"Not authorized\");\r\n\r\n const query = odataQuery()\r\n .filter((p) => p.flagApproved.isNull())\r\n .expand(\"fancier\")\r\n .expand(\"user\")\r\n .orderBy(\"createdAt\", \"desc\")\r\n .count();\r\n\r\n return this.Client().get(`Pigeons?${query.toString()}`);\r\n }\r\n\r\n public FetchAllApprovedPigeons(): AxiosPromise> {\r\n if (!authStore.IsApprover) return Promise.reject(\"Not authorized\");\r\n\r\n const query = odataQuery()\r\n .filter((p) => p.flagApproved.equals(true))\r\n .expand(\"fancier\")\r\n .expand(\"user\")\r\n .orderBy(\"approvedAt\", \"desc\")\r\n .count();\r\n\r\n return this.Client().get(`Pigeons?${query.toString()}`);\r\n }\r\n\r\n public FetchAllDisapprovedPigeons(): AxiosPromise> {\r\n if (!authStore.IsApprover) return Promise.reject(\"Not authorized\");\r\n\r\n const query = odataQuery()\r\n .filter((p) => p.flagApproved.equals(false))\r\n .expand(\"fancier\")\r\n .expand(\"user\")\r\n .orderBy(\"approvedAt\", \"desc\")\r\n .count();\r\n\r\n return this.Client().get(`Pigeons?${query.toString()}`);\r\n }\r\n\r\n public GetNumberViews(): AxiosPromise> {\r\n return this.Client().get(\"Pigeons/MarketService.NumberViews\");\r\n }\r\n\r\n public GetNumberPedigrees(): AxiosPromise> {\r\n return this.Client().get(\"Pigeons/MarketService.NumberPedigrees\");\r\n }\r\n\r\n public GetNumberPosts(): AxiosPromise> {\r\n return this.Client().get(\"Pigeons/MarketService.NumberPosts\");\r\n }\r\n\r\n public FindPigeonByRingAndByUser(\r\n pigeonRing: string,\r\n userId: string\r\n ): AxiosPromise> {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .filter(p => p.userId.equals(userId, { ignoreGuid: true }))\r\n .filter(p => p.ring.equals(pigeonRing))\r\n .count();\r\n\r\n return this.Client().get(`Pigeons?${query.toString()}`);\r\n }\r\n}\r\n","import { IPlacesService } from \"@api/contracts/odata/IPlacesService\";\r\nimport { IPlace } from \"@api/models/market/IPlace\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class PlacesService extends BaseODataService implements IPlacesService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(place: IPlace): AxiosPromise {\r\n return this.Client().post(\"Places\", place);\r\n }\r\n\r\n public Fetch(placeKey: number): AxiosPromise {\r\n return this.Client().get(`Places(${placeKey})`);\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n const query = odataQuery().orderBy(\"name\").count();\r\n\r\n return this.Client().get(`Places?${query.toString()}`);\r\n }\r\n}\r\n","import { IPollAnswersService } from \"@api/contracts/odata/IPollAnswersService\";\r\nimport { IPollAnswer } from \"@api/models/market/IPollAnswer\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport odataQuery from \"odata-fluent-query\";\r\n\r\nexport class PollAnswersService extends BaseODataService implements IPollAnswersService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(pollAnswer: IPollAnswer): AxiosPromise {\r\n return this.Client().post(\"PollAnswers\", pollAnswer);\r\n }\r\n\r\n public Update(pollAnswerKey: number, pollAnswer: IPollAnswer): AxiosPromise {\r\n return this.Client().put(`PollAnswers(${pollAnswerKey})`, pollAnswer);\r\n }\r\n\r\n public Delete(pollAnswerKey: number): AxiosPromise {\r\n return this.Client().delete(`PollAnswers(${pollAnswerKey})`);\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n const query = odataQuery().orderBy(\"pollId\", \"desc\");\r\n\r\n return this.Client().get(`PollAnswers?${query.toString()}`);\r\n }\r\n\r\n public Fetch(pollAnswerKey: number): AxiosPromise {\r\n return this.Client().get(`PollAnswers(${pollAnswerKey})`);\r\n }\r\n}\r\n","import { IPollsService } from \"@api/contracts/odata/IPollsService\";\r\nimport { IPoll } from \"@api/models/market/IPoll\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport odataQuery from \"odata-fluent-query\";\r\n\r\nexport class PollsService extends BaseODataService implements IPollsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(poll: IPoll): AxiosPromise {\r\n return this.Client().post(\"Polls\", poll);\r\n }\r\n\r\n public Update(pollKey: number, poll: IPoll): AxiosPromise {\r\n return this.Client().put(`Polls(${pollKey})`, poll);\r\n }\r\n\r\n public Delete(pollKey: number): AxiosPromise {\r\n return this.Client().delete(`Polls(${pollKey})`);\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n const query = odataQuery().orderBy(\"createdAt\", \"desc\");\r\n\r\n return this.Client().get(`Polls?${query.toString()}`);\r\n }\r\n\r\n public Fetch(pollKey: number): AxiosPromise {\r\n const query = odataQuery()\r\n .expand(\"translations\")\r\n .expand(\"answers\", (a) =>\r\n a\r\n .select(\"id\", \"answer\")\r\n .expand(\"translations\")\r\n .expand(\"votes\", (v) => v.select(\"id\"))\r\n );\r\n\r\n return this.Client().get(`Polls(${pollKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchLastActive(): AxiosPromise> {\r\n const query = odataQuery()\r\n .orderBy(\"createdAt\", \"desc\")\r\n .filter((p) => p.isActive.equals(true))\r\n .expand(\"translations\")\r\n .expand(\"answers\", (a) =>\r\n a\r\n .select(\"id\", \"answer\")\r\n .expand(\"translations\")\r\n .expand(\"votes\", (v) => v.select(\"id\"))\r\n );\r\n\r\n return this.Client().get(`Polls?${query.toString()}`);\r\n }\r\n}\r\n","import { IPollVotesService } from \"@api/contracts/odata/IPollVotesService\";\r\nimport { IPollVote } from \"@api/models/market/IPollVote\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport odataQuery from \"odata-fluent-query\";\r\n\r\nexport class PollVotesService extends BaseODataService implements IPollVotesService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(pollVote: IPollVote): AxiosPromise {\r\n return this.Client().post(\"PollVotes\", pollVote);\r\n }\r\n\r\n public Delete(pollVoteKey: number): AxiosPromise {\r\n return this.Client().delete(`PollVotes(${pollVoteKey})`);\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n const query = odataQuery().orderBy(\"pollAnswerId\", \"desc\");\r\n\r\n return this.Client().get(`PollVotes?${query.toString()}`);\r\n }\r\n\r\n public Fetch(pollVoteKey: number): AxiosPromise {\r\n return this.Client().get(`PollVotes(${pollVoteKey})`);\r\n }\r\n}\r\n","import { IPrizeAssetsService } from \"@api/contracts/odata/IPrizeAssetsService\";\r\nimport { IPrize } from \"@api/models/market/IPrize\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class PrizeAssetsService extends BaseODataService implements IPrizeAssetsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public FetchAllByPigeon(pigeonKey: number, top?: number): AxiosPromise> {\r\n // Note: Remove $select query segment because it occurs bug (see: https://github.com/OData/odata.net/issues/633)\r\n // $select=id,rank,order,distance,participants,area,year,place,taggedAsAsset\r\n let query = odataQuery()\r\n .filter((p) => p.pigeonId.equals(pigeonKey))\r\n .filter((p) => p.taggedAsAsset.equals(true))\r\n .orderBy(\"order\", \"desc\")\r\n .count();\r\n\r\n if (top) query = query.paginate(top);\r\n\r\n return this.Client().get(`Prizes?${query.toString()}`);\r\n }\r\n}\r\n","import { IPrizesService } from \"@api/contracts/odata/IPrizesService\";\r\nimport { IPrize } from \"@api/models/market/IPrize\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\n\r\nexport class PrizesService extends BaseODataService implements IPrizesService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Fetch(prizeKey: number): AxiosPromise {\r\n return this.Client().get(`Prizes(${prizeKey})`);\r\n }\r\n}\r\n","import { IRankingAssetsService } from \"@api/contracts/odata/IRankingAssetsService\";\r\nimport { IRankingAsset } from \"@api/models/market/IRankingAsset\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class RankingAssetsService extends BaseODataService implements IRankingAssetsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public FetchAllByPigeon(pigeonKey: number, top?: number): AxiosPromise> {\r\n let query = odataQuery()\r\n .filter((ar) => ar.pigeonId.equals(pigeonKey))\r\n .count();\r\n\r\n if (top) query = query.paginate(top);\r\n\r\n return this.Client().get(`RankingAssets?${query.toString()}`);\r\n }\r\n}\r\n","import { IReferralsService } from \"@api/contracts/odata/IReferralsService\";\r\nimport { IReferral } from \"@api/models/market/IReferral\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { SortDirectionTypes } from \"@pigeon/components/data/DataGridColumn\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { FilterDate, odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class ReferralsService extends BaseODataService implements IReferralsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(referral: IReferral): AxiosPromise {\r\n return this.Client().post(\"Referrals\", referral);\r\n }\r\n\r\n public Update(referralKey: number, referral: IReferral): AxiosPromise {\r\n return this.Client().put(`Referrals(${referralKey})`, referral);\r\n }\r\n\r\n public Delete(referralKey: number): AxiosPromise {\r\n return this.Client().delete(`Referrals(${referralKey})`);\r\n }\r\n\r\n public Fetch(referralKey: number): AxiosPromise {\r\n return this.Client().get(`Referrals(${referralKey})`);\r\n }\r\n\r\n public FetchAll(sort?: string, vendorKey?: string): AxiosPromise> {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== vendorKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n let query = odataQuery().count();\r\n\r\n if (sort) {\r\n const sortParams: string[] = sort.split(\";\");\r\n const orderPropertyName: keyof IReferral = sortParams[0] as keyof IReferral;\r\n const orderDirection: SortDirectionTypes = sortParams[1] as SortDirectionTypes;\r\n\r\n query = query.orderBy(orderPropertyName, orderDirection);\r\n } else {\r\n query = query.orderBy(\"lastname\"); // default order by\r\n }\r\n\r\n if (vendorKey && authStore.IsAdministrator) {\r\n query = query.filter((r) => r.vendorId.equals(vendorKey, { ignoreGuid: true }));\r\n }\r\n\r\n return this.Client().get(`Referrals?${query.toString()}`);\r\n }\r\n\r\n public FetchAllReferrals(fromDate?: Date, toDate?: Date): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n let query = odataQuery();\r\n\r\n if (fromDate)\r\n query = query.filter((r) => (r.recordedAt as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if (toDate) query = query.filter((r) => (r.recordedAt as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n return this.Client().get(`Referrals?${query.toString()}`);\r\n }\r\n}\r\n","import { IReproducerParentsService } from \"@api/contracts/odata/IReproducerParentsService\";\r\nimport { SaleStatus } from \"@api/models/market/constants/SaleStatus\";\r\nimport { IReproducerParent } from \"@api/models/market/IReproducerParent\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport odataQuery, { FilterBuilder } from \"odata-fluent-query\";\r\n\r\nexport class ReproducerParentsService extends BaseODataService implements IReproducerParentsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public FetchAll(userKey?: string): AxiosPromise> {\r\n let query = odataQuery().expand(\"parent\");\r\n\r\n if (userKey) {\r\n query = query.filter((rp) => rp.parent.userId.equals(userKey, { ignoreGuid: true }));\r\n }\r\n\r\n return this.Client().get(`ReproducerParents?${query.toString()}`);\r\n }\r\n\r\n public FetchAllAvailable(userKey?: string): AxiosPromise> {\r\n let query = odataQuery()\r\n .expand(\"parent\")\r\n .filter((rp) =>\r\n rp.parent.sales.empty().or(rp.parent.sales.any((s: FilterBuilder) => s.status.in([SaleStatus.Unsold])))\r\n );\r\n\r\n if (userKey) {\r\n query = query.filter((rp) => rp.parent.userId.equals(userKey, { ignoreGuid: true }));\r\n }\r\n\r\n return this.Client().get(`ReproducerParents?${query.toString()}`);\r\n }\r\n}\r\n","import { IRingsService } from \"@api/contracts/odata/IRingsService\";\r\nimport { IRing } from \"@api/models/market/IRing\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { memoizeAsync } from \"utils-decorators\";\r\n\r\nexport class RingsService extends BaseODataService implements IRingsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n @memoizeAsync()\r\n FetchAll(): AxiosPromise> {\r\n return this.Client().get(\"Rings\");\r\n }\r\n}\r\n","import { ISaleDisapprovalReasonsService } from \"@api/contracts/odata/ISaleDisapprovalReasonsService\";\r\nimport { ISaleDisapprovalReason } from \"@api/models/market/ISaleDisapprovalReason\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class SaleDisapprovalReasonsService extends BaseODataService implements ISaleDisapprovalReasonsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(saleDisapprovalReason: ISaleDisapprovalReason): AxiosPromise {\r\n return this.Client().post(\"SaleDisapprovalReasons\", saleDisapprovalReason);\r\n }\r\n\r\n public Delete(saleKey: number, reasonType: string): AxiosPromise {\r\n return this.Client().delete(`SaleDisapprovalReasons(keySale=${saleKey},keyDisapproval='${reasonType}')`);\r\n }\r\n\r\n public FetchAllReasonsBySale(saleKey: number): AxiosPromise> {\r\n const query = odataQuery()\r\n .filter((sdr) => sdr.saleId.equals(saleKey))\r\n .count();\r\n\r\n return this.Client().get(`SaleDisapprovalReasons?${query.toString()}`);\r\n }\r\n}\r\n","import { ISaleNotificationsService } from \"@api/contracts/odata/ISaleNotificationsService\";\r\nimport { IPackage } from \"@api/models/market/IPackage\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { ISaleNotification } from \"@api/models/market/ISaleNotification\";\r\nimport { IUser } from \"@api/models/market/IUser\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { userStore } from \"@market/stores/App.store.modules\";\r\nimport { NotificationsFilterTypes } from \"@pigeon/enumerations/NotificationsFilterTypes\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport dayjs from \"dayjs\";\r\nimport { ExpandObjectQuery, FilterDate, ODataQuery, odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class SaleNotificationsService extends BaseODataService implements ISaleNotificationsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n //#region Filters\r\n private FilterBy(\r\n query: ODataQuery,\r\n filters: Map\r\n ): ODataQuery {\r\n if (!filters) return query;\r\n\r\n if (filters.has(NotificationsFilterTypes.FromDate)) {\r\n query = this.FilterQueryFromDate(query, filters.get(NotificationsFilterTypes.FromDate)?.shift());\r\n }\r\n\r\n if (filters.has(NotificationsFilterTypes.FromDaysAgo)) {\r\n query = this.FilterQueryFromDaysAgo(query, filters.get(NotificationsFilterTypes.FromDaysAgo)?.shift());\r\n }\r\n\r\n if (filters.has(NotificationsFilterTypes.Type)) {\r\n query = this.FilterQueryByNotificationType(query, filters.get(NotificationsFilterTypes.Type));\r\n }\r\n\r\n return query;\r\n }\r\n\r\n private FilterQueryByNotificationType(\r\n query: ODataQuery,\r\n filterValues?: string[]\r\n ): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((sn) => sn.notification.in(filterValues));\r\n }\r\n\r\n private FilterQueryFromDate(\r\n query: ODataQuery,\r\n filterValue?: string\r\n ): ODataQuery {\r\n if (!filterValue) return query;\r\n\r\n const fromDate = filterValue;\r\n const dateFilter = dayjs(fromDate);\r\n\r\n return query.filter((sn) => (sn.notificationDate as any as FilterDate).isAfter(dateFilter.toISOString()));\r\n }\r\n\r\n private FilterQueryFromDaysAgo(\r\n query: ODataQuery,\r\n filterValue?: string\r\n ): ODataQuery {\r\n if (!filterValue) return query;\r\n\r\n const daysToFilter = parseInt(filterValue);\r\n const dateFilter = dayjs().add(-daysToFilter, \"day\");\r\n\r\n return query.filter((sn) => (sn.notificationDate as any as FilterDate).isAfterOrEqual(dateFilter.toISOString()));\r\n }\r\n //#endregion\r\n\r\n FetchAllWithSaleByUser(\r\n filters?: Map,\r\n top?: number\r\n ): AxiosPromise> {\r\n if (!userStore.user) return Promise.reject(\"Not authorized\");\r\n\r\n let query = odataQuery().filter((sn) =>\r\n sn.userId.equals((userStore.user as IUser).id, { ignoreGuid: true })\r\n );\r\n\r\n if (filters) query = this.FilterBy(query, filters);\r\n\r\n // Note: Comment $select query segment because it occurs bug (see: https://github.com/OData/odata.net/issues/633)\r\n // prettier-ignore\r\n query = query\r\n .expand(\"sale\", (s: ExpandObjectQuery) => s\r\n // .select(\"id\", \"product\")\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"ring\")\r\n )\r\n .expand(\"package\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"discipline\")\r\n )\r\n .expand(\"user\", (u: ExpandObjectQuery) => u.\r\n select(\"firstname\", \"lastname\")\r\n )\r\n )\r\n .orderBy(\"notificationDate\", \"desc\")\r\n .count();\r\n\r\n if (top) query = query.paginate(top);\r\n\r\n return this.Client().get(`SaleNotifications?${query.toString()}`);\r\n }\r\n\r\n FetchAllWithSale(\r\n filters?: Map,\r\n top?: number\r\n ): AxiosPromise> {\r\n let query = odataQuery();\r\n\r\n if (filters) query = this.FilterBy(query, filters);\r\n\r\n // prettier-ignore\r\n query = query\r\n .expand(\"sale\", (s: ExpandObjectQuery) => s\r\n .select(\"id\", \"product\")\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"ring\")\r\n )\r\n .expand(\"package\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"discipline\")\r\n )\r\n .expand(\"user\", (u: ExpandObjectQuery) => u.\r\n select(\"firstname\", \"lastname\")\r\n )\r\n )\r\n .orderBy(\"notificationDate\", \"desc\")\r\n .count();\r\n\r\n if (top) query = query.paginate(top);\r\n\r\n return this.Client().get(`SaleNotifications?${query.toString()}`);\r\n }\r\n\r\n PatchFlagAsRead(saleNotification: ISaleNotification): AxiosPromise {\r\n const notificationFlaggedAsRead: Partial = {\r\n flagAsRead: true,\r\n flaggedDate: new Date().toISOString()\r\n };\r\n\r\n return this.Client().patch(`SaleNotifications(${saleNotification.id})`, notificationFlaggedAsRead);\r\n }\r\n\r\n PatchFlagAsUnread(saleNotification: ISaleNotification): AxiosPromise {\r\n const notificationFlaggedAsRead: Partial = {\r\n flagAsRead: false,\r\n flaggedDate: new Date().toISOString()\r\n };\r\n\r\n return this.Client().patch(`SaleNotifications(${saleNotification.id})`, notificationFlaggedAsRead);\r\n }\r\n\r\n public FlagAllAsRead(): AxiosPromise {\r\n return this.Client().post(`SaleNotifications/MarketService.FlagAllAsRead`);\r\n }\r\n}\r\n","import { ISalesService } from \"@api/contracts/odata/ISalesService\";\r\nimport { PaymentStatus } from \"@api/models/market/constants/PaymentStatus\";\r\nimport { ProductTypes } from \"@api/models/market/constants/ProductTypes\";\r\nimport { SaleStatus } from \"@api/models/market/constants/SaleStatus\";\r\nimport { SaleTypes } from \"@api/models/market/constants/SaleTypes\";\r\nimport { SearchTypes } from \"@api/models/market/constants/SearchTypes\";\r\nimport { TransferStatus } from \"@api/models/market/constants/TransferStatus\";\r\nimport { IBid } from \"@api/models/market/IBid\";\r\nimport { IDeposit } from \"@api/models/market/IDeposit\";\r\nimport { IFancier } from \"@api/models/market/IFancier\";\r\nimport { IGuest } from \"@api/models/market/IGuest\";\r\nimport { IOrder } from \"@api/models/market/IOrder\";\r\nimport { IOrderLine } from \"@api/models/market/IOrderLine\";\r\nimport { IPackage } from \"@api/models/market/IPackage\";\r\nimport { IPicture } from \"@api/models/market/IPicture\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { IPigeonIdentity } from \"@api/models/market/IPigeonIdentity\";\r\nimport { IReproducerParent } from \"@api/models/market/IReproducerParent\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { ISaleDateRange } from \"@api/models/market/ISaleDateRange\";\r\nimport { ISaleDisapprovalReason } from \"@api/models/market/ISaleDisapprovalReason\";\r\nimport { ISettlement } from \"@api/models/market/ISettlement\";\r\nimport { IStrain } from \"@api/models/market/IStrain\";\r\nimport { IUser } from \"@api/models/market/IUser\";\r\nimport { IVideo } from \"@api/models/market/IVideo\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { IODataValueResponse } from \"@api/models/shared/IODataValueResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { CatalogFilterTypes } from \"@pigeon/enumerations/CatalogFilterTypes\";\r\nimport { IPaginate } from \"@pigeon/models/IPaginate\";\r\nimport { ISalesQueryManager } from \"@pigeon/services/contracts/ISalesQueryManager\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { ExpandObjectQuery, ExpandQueryComplex, FilterDate, ODataQuery, odataQuery } from \"odata-fluent-query\";\r\nimport { ISaleTimeSlots } from \"../../models/market/ISaleTimeSlots\";\r\n\r\nexport class SalesService extends BaseODataService implements ISalesService {\r\n @Inject()\r\n private salesQueryManager: ISalesQueryManager;\r\n\r\n public Insert(sale: ISale): AxiosPromise {\r\n return this.Client().post(\"Sales\", sale);\r\n }\r\n\r\n public Update(saleKey: number, sale: ISale): AxiosPromise {\r\n return this.Client().put(`Sales(${saleKey})`, sale);\r\n }\r\n\r\n public Patch(saleKey: number, sale: Partial): AxiosPromise {\r\n return this.Client().patch(`Sales(${saleKey})`, sale);\r\n }\r\n\r\n public Delete(saleKey: number): AxiosPromise {\r\n return this.Client().delete(`Sales(${saleKey})`);\r\n }\r\n\r\n public Remove(saleKey: number): AxiosPromise {\r\n const patch: Partial = {\r\n status: SaleStatus.Removed\r\n };\r\n return this.Client().patch(`Sales(${saleKey})`, patch);\r\n }\r\n\r\n public Resume(saleKey: number, resumedStartDate?: string, resumedEndDate?: string): AxiosPromise {\r\n const resumedTimeSlots: ISaleTimeSlots = {\r\n startDate: resumedStartDate,\r\n endDate: resumedEndDate\r\n };\r\n\r\n return this.Client().post(`Sales(${saleKey})/MarketService.ResumeSale`, resumedTimeSlots);\r\n }\r\n\r\n public Suspend(saleKey: number): AxiosPromise {\r\n return this.Client().post(`Sales(${saleKey})/MarketService.SuspendSale`);\r\n }\r\n\r\n public Stop(saleKey: number): AxiosPromise {\r\n return this.Client().post(`Sales(${saleKey})/MarketService.StopSale`);\r\n }\r\n\r\n public FlagSaleAsUnsold(saleKey: number): AxiosPromise {\r\n return this.Client().post(`Sales(${saleKey})/MarketService.FlagSaleAsUnsold`);\r\n }\r\n\r\n //#region Query\r\n private QuerySupervise(): ODataQuery {\r\n return (\r\n odataQuery()\r\n // Issue MAX DTU = split the query => call IBidService.FetchAllBidsWithUserBySale(saleKey)\r\n // .expand(\"bids\", this.SubQueryBidsWithBidder())\r\n // .expand(\"user\", this.SubQueryUserVendor()) // Issue MAX DTU = split the query => call IUserService.FetchWithVendor(vendorKey)\r\n .expand(\"orderLine\") // Issue MAX DTU on expand order = split the query => call IOrderService.FetchSheet(orderKey)\r\n .expand(\"orderLinesAbandoned\")\r\n .expand(\"pickUpAddress\", (puAddress) =>\r\n puAddress.select(\"addressLine\", \"district\", \"locality\", \"postalCode\", \"country\", \"countryTwoIsoLetters\")\r\n )\r\n .expand(\"settlement\", (s) =>\r\n s\r\n .select(\r\n \"id\",\r\n \"amount\",\r\n \"currency\",\r\n \"vat\",\r\n \"vatRate\",\r\n \"flagProcessed\",\r\n \"paymentCollectedBy\",\r\n \"paymentMethod\",\r\n \"paymentDate\",\r\n \"userId\",\r\n \"vendorId\"\r\n )\r\n .expand(\"user\", (u) => u.select(\"id\", \"firstname\", \"lastname\", \"buyerAlias\", \"email\", \"phoneNumber\"))\r\n )\r\n .expand(\"deposit\", (d) =>\r\n d\r\n .select(\r\n \"id\",\r\n \"amount\",\r\n \"currency\",\r\n \"vat\",\r\n \"vatRate\",\r\n \"rateOfTotal\",\r\n \"flagProcessed\",\r\n \"paymentCollectedBy\",\r\n \"paymentMethod\",\r\n \"paymentDate\",\r\n \"userId\",\r\n \"vendorId\"\r\n )\r\n .expand(\"user\", (u) => u.select(\"id\", \"firstname\", \"lastname\", \"buyerAlias\", \"email\", \"phoneNumber\"))\r\n )\r\n );\r\n }\r\n //#endregion\r\n\r\n //#region SubQuery\r\n private SubQueryProductPigeon(toEdit?: boolean): (p: ExpandQueryComplex) => ExpandQueryComplex {\r\n // prettier-ignore\r\n return (p) => p\r\n .expand(\"father\", (f: ExpandObjectQuery) => f\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"fatherId\", \"motherId\", \"userId\")\r\n )\r\n .expand(\"mother\", (m: ExpandObjectQuery) => m\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"fatherId\", \"motherId\", \"userId\")\r\n )\r\n .expand(\"fancier\", (m: ExpandObjectQuery) => m\r\n .select(\"id\", \"name\")\r\n )\r\n .expand(\"strain\", (s: ExpandObjectQuery) => s\r\n .select(\"id\", \"name\")\r\n )\r\n .expand(\"characteristics\")\r\n .expand(\"pictures\", (p: ExpandObjectQuery) => {\r\n return (toEdit) \r\n ? p.select(\"id\", \"pigeonId\", \"filename\", \"type\", \"url\") \r\n : p.select(\"id\", \"pigeonId\", \"filename\", \"type\", \"url\", \"urlWebOptimized\");\r\n })\r\n .expand(\"videos\", (v: ExpandObjectQuery) => { \r\n return (toEdit) \r\n ? v.select(\"id\", \"pigeonId\", \"filename\", \"type\", \"url\")\r\n : v.select(\"id\", \"pigeonId\", \"filename\", \"type\", \"url\", \"urlWebOptimized\"); \r\n })\r\n }\r\n\r\n private SubQueryProductPackage(toEdit?: boolean): (p: ExpandQueryComplex) => ExpandQueryComplex {\r\n // prettier-ignore\r\n return (p) => p\r\n .expand(\"fancier\", (f: ExpandObjectQuery) => f\r\n .select(\"id\", \"name\")\r\n )\r\n .expand(\"pigeons\", (p: ExpandObjectQuery) => p\r\n .expand(\"characteristics\")\r\n .expand(\"pictures\", (p: ExpandObjectQuery) => { \r\n return (toEdit) \r\n ? p.select(\"id\", \"pigeonId\", \"filename\", \"type\", \"url\")\r\n : p.select(\"id\", \"pigeonId\", \"filename\", \"type\", \"url\", \"urlWebOptimized\");\r\n })\r\n .expand(\"videos\", (v: ExpandObjectQuery) => { \r\n return (toEdit) \r\n ? v.select(\"id\", \"pigeonId\", \"filename\", \"type\", \"url\")\r\n : v.select(\"id\", \"pigeonId\", \"filename\", \"type\", \"url\", \"urlWebOptimized\"); \r\n })\r\n )\r\n .expand(\"pictures\", (p: ExpandObjectQuery) => {\r\n return (toEdit)\r\n ? p.select(\"id\", \"packageId\", \"filename\", \"type\", \"url\")\r\n : p.select(\"id\", \"packageId\", \"filename\", \"type\", \"url\", \"urlWebOptimized\");\r\n })\r\n // .expand(\"videos\", (v: ExpandObjectQuery) => { \r\n // return (toEdit)\r\n // ? v.select(\"id\", \"packageId\", \"filename\", \"type\", \"url\")\r\n // : v.select(\"id\", \"packageId\", \"filename\", \"type\", \"url\", \"urlWebOptimized\");\r\n // })\r\n .expand(\"reproducerParents\", (rp: ExpandObjectQuery) => rp\r\n .expand(\"parent\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"idClient\", \"name\", \"ring\", \"ringArea\", \"ringClub\", \"ringNumber\", \"birthYear\", \"sex\", \"discipline\", \"trackingState\") // select id AND idClient for insert/edit process (to handle media file)\r\n )\r\n );\r\n }\r\n\r\n private SubQueryProductPigeonCatalog(): (p: ExpandQueryComplex) => ExpandQueryComplex {\r\n // prettier-ignore\r\n return (p) => p\r\n .expand(\"fancier\", (m: ExpandObjectQuery) => m\r\n .select(\"id\", \"name\", \"profiles\")\r\n )\r\n .expand(\"strain\", (s: ExpandObjectQuery) => s\r\n .select(\"id\", \"name\")\r\n )\r\n .expand(\"pictures\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"filename\", \"type\", \"url\", \"urlWebOptimized\")\r\n );\r\n }\r\n\r\n private SubQueryProductPackageCatalog(): (p: ExpandQueryComplex) => ExpandQueryComplex {\r\n // prettier-ignore\r\n return (p) => p\r\n .expand(\"fancier\", (f: ExpandObjectQuery) => f\r\n .select(\"id\", \"name\")\r\n )\r\n .expand(\"pigeons\", (p: ExpandObjectQuery) => p\r\n .select(\"ring\", \"sex\", \"pictures\")\r\n .expand(\"pictures\", (p: ExpandObjectQuery) => p\r\n .select(\"filename\", \"type\", \"url\", \"urlWebOptimized\")\r\n )\r\n );\r\n }\r\n\r\n /** Warning: this call may reduce performance.\r\n * To increase performance, do a split call to load bids collection */\r\n private SubQueryBidsWithBidder(): (s: ExpandQueryComplex) => ExpandQueryComplex {\r\n // prettier-ignore\r\n return (b) => b\r\n .select(\"id\", \"biddingOrderId\", \"amount\", \"bidDate\", \"biddingOrderId\", \"userId\")\r\n .orderBy(b => b.amount.desc())\r\n .orderBy(b => b.biddingOrderId.asc())\r\n .orderBy(b => b.bidDate.asc())\r\n .expand(\"user\", (u) => u.select(\"firstname\", \"lastname\", \"buyerAlias\", \"countryCode\", \"email\", \"phoneNumber\"));\r\n }\r\n\r\n /** Warning: this call may reduce performance.\r\n * To increase performance, do a split call to load bids collection */\r\n private SubQueryBids(): (s: ExpandQueryComplex) => ExpandQueryComplex {\r\n // prettier-ignore\r\n return (b) => b\r\n .select(\"id\", \"biddingOrderId\", \"amount\", \"bidDate\", \"biddingOrderId\", \"userId\")\r\n .orderBy(b => b.amount.desc())\r\n .orderBy(b => b.biddingOrderId.asc())\r\n .orderBy(b => b.bidDate.asc());\r\n }\r\n\r\n private SubQueryWithOrderSummary(): (ol: ExpandQueryComplex) => ExpandQueryComplex {\r\n // prettier-ignore\r\n return (ol) => ol\r\n .select(\"orderId\", \"lineTotal\")\r\n .expand(\"order\", (o: ExpandObjectQuery) => o\r\n .select(\"id\", \"orderDate\", \"paymentDate\", \"paymentMethod\", \"total\", \"userId\", \"guestId\")\r\n .expand(\"user\", (u: ExpandObjectQuery) => u\r\n .select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\", \"preferredLanguage\")\r\n )\r\n .expand(\"guest\", (g: ExpandObjectQuery) => g\r\n .select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\", \"preferredLanguage\")\r\n )\r\n );\r\n }\r\n\r\n private SubQueryWitSettlementSummary(): (ol: ExpandQueryComplex) => ExpandQueryComplex {\r\n // prettier-ignore\r\n return (s) => s\r\n .select(\"id\", \"amount\", \"paymentDate\", \"userId\")\r\n .expand(\"user\", (u) => u.select(\"id\", \"firstname\", \"lastname\", \"buyerAlias\", \"email\", \"phoneNumber\"));\r\n }\r\n\r\n private SubQueryWitDepositSummary(): (ol: ExpandQueryComplex) => ExpandQueryComplex {\r\n // prettier-ignore\r\n return (d) => d\r\n .select(\"id\", \"amount\", \"rateOfTotal\", \"paymentDate\", \"userId\")\r\n .expand(\"user\", (u) => u.select(\"id\", \"firstname\", \"lastname\", \"buyerAlias\", \"email\", \"phoneNumber\"));\r\n }\r\n\r\n // Issue MAX DTU = split the query => call IUserService.FetchWithVendor(vendorKey)\r\n private SubQueryUserVendorDetails(): (u: ExpandObjectQuery) => ExpandObjectQuery {\r\n return (u) =>\r\n u\r\n .select(\"firstname\", \"lastname\", \"email\", \"stripeConnectedAccountId\", \"countryCode\")\r\n .expand(\"corporation\", (c) => c.select(\"name\", \"vatNumber\"))\r\n .expand(\"vendor\", (v) => v.select(\"referralCode\"));\r\n }\r\n\r\n private SubQueryUserVendorSummaryWithContactData(): (u: ExpandObjectQuery) => ExpandObjectQuery {\r\n return (u) => u.select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\");\r\n }\r\n\r\n private SubQuerySummaryPigeon(): (p: ExpandQueryComplex) => ExpandQueryComplex {\r\n // prettier-ignore\r\n return (p) => p\r\n .select(\"id\", \"name\", \"ring\")\r\n .expand(\"fancier\", (f: ExpandObjectQuery) => f\r\n .select(\"name\")\r\n );\r\n }\r\n\r\n private SubQuerySummaryPackage(): (p: ExpandQueryComplex) => ExpandQueryComplex {\r\n // prettier-ignore\r\n return (p) => p\r\n .select(\"id\", \"name\")\r\n .expand(\"fancier\", (f: ExpandObjectQuery) => f\r\n .select(\"name\")\r\n )\r\n .expand(\"pigeons\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"ring\")\r\n );\r\n }\r\n\r\n private SubQuerySummaryVendor(): (u: ExpandQueryComplex) => ExpandQueryComplex {\r\n return (u) => u.select(\"firstname\", \"lastname\");\r\n }\r\n //#endregion\r\n\r\n public Fetch(saleKey: number): AxiosPromise {\r\n return this.Client().get(`Sales(${saleKey})`);\r\n }\r\n\r\n public FetchWithProduct(saleKey: number): AxiosPromise {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"pigeon\")\r\n .expand(\"package\");\r\n\r\n return this.Client().get(`Sales(${saleKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchSaleType(saleKey: number): AxiosPromise {\r\n return this.Client().get(`Sales(${saleKey})/type/$value`);\r\n }\r\n\r\n public FetchProductType(saleKey: number): AxiosPromise {\r\n return this.Client().get(`Sales(${saleKey})/product/$value`);\r\n }\r\n\r\n public FetchProductPigeon(saleKey: number): AxiosPromise {\r\n const query = odataQuery()\r\n .expand(\"pigeon\", this.SubQueryProductPigeon())\r\n .expand(\"user\", this.SubQueryUserVendorSummaryWithContactData())\r\n .expand(\"pickUpAddress\");\r\n\r\n return this.Client().get(`Sales(${saleKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchProductPigeonToEdit(saleKey: number): AxiosPromise {\r\n const query = odataQuery()\r\n .expand(\"pigeon\", this.SubQueryProductPigeon(true))\r\n .expand(\"user\", this.SubQueryUserVendorSummaryWithContactData())\r\n .expand(\"pickUpAddress\");\r\n\r\n return this.Client().get(`Sales(${saleKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchProductPigeonWithPaymentSummary(saleKey: number): AxiosPromise {\r\n const query = odataQuery()\r\n .expand(\"pigeon\", this.SubQueryProductPigeon())\r\n // .expand(\"orderLine\", this.SubQueryWithOrderSummary()) // Issue MAX DTU on expand order = split the query => call IOrderService.FetchSheet(orderKey)\r\n .expand(\"orderLine\", (ol) => ol.select(\"id\", \"orderId\", \"lineTotal\")) // Issue MAX DTU on expand order = split the query => call IOrderService.FetchSheet(orderKey)\r\n // .expand(\"deposit\", this.SubQueryWitDepositSummary()) // Issue MAX DTU = split the query => call IDepositService.FetchAllSummaryWithUserBySale(saleKey)\r\n // .expand(\"settlement\", this.SubQueryWitSettlementSummary()) // Issue MAX DTU = split the query => call ISettlementService.FetchAllSummaryWithUserBySale(saleKey)\r\n .expand(\"user\", this.SubQueryUserVendorDetails())\r\n .expand(\"pickUpAddress\");\r\n\r\n return this.Client().get(`Sales(${saleKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchProductPackage(saleKey: number): AxiosPromise {\r\n const query = odataQuery()\r\n .expand(\"package\", this.SubQueryProductPackage())\r\n .expand(\"user\", this.SubQueryUserVendorSummaryWithContactData())\r\n .expand(\"pickUpAddress\");\r\n\r\n return this.Client().get(`Sales(${saleKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchProductPackageToEdit(saleKey: number): AxiosPromise {\r\n const query = odataQuery()\r\n .expand(\"package\", this.SubQueryProductPackage(true))\r\n .expand(\"user\", this.SubQueryUserVendorSummaryWithContactData())\r\n .expand(\"pickUpAddress\");\r\n\r\n return this.Client().get(`Sales(${saleKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchProductPackageWithPaymentSummary(saleKey: number): AxiosPromise {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"package\", this.SubQueryProductPackage())\r\n // .expand(\"orderLine\", this.SubQueryWithOrderSummary()) // Issue MAX DTU on expand order = split the query => call IOrderService.FetchSheet(orderKey)\r\n .expand(\"orderLine\", (ol => ol.select(\"id\", \"orderId\", \"lineTotal\"))) // Issue MAX DTU on expand order = split the query => call IOrderService.FetchSheet(orderKey)\r\n // .expand(\"deposit\", this.SubQueryWitDepositSummary()) // Issue MAX DTU = split the query => call IDepositService.FetchAllSummaryWithUserBySale(saleKey)\r\n // .expand(\"settlement\", this.SubQueryWitSettlementSummary()) // Issue MAX DTU = split the query => call ISettlementService.FetchAllSummaryWithUserBySale(saleKey)\r\n .expand(\"user\", this.SubQueryUserVendorDetails())\r\n .expand(\"pickUpAddress\");\r\n\r\n return this.Client().get(`Sales(${saleKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchSupervisedPigeon(saleKey: number): AxiosPromise {\r\n // prettier-ignore\r\n const query = this.QuerySupervise()\r\n .expand(\"pigeon\", this.SubQueryProductPigeon());\r\n\r\n return this.Client().get(`Sales(${saleKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchSupervisedPackage(saleKey: number): AxiosPromise {\r\n // prettier-ignore\r\n const query = this.QuerySupervise()\r\n .expand(\"package\", this.SubQueryProductPackage());\r\n\r\n return this.Client().get(`Sales(${saleKey})?${query.toString()}`);\r\n }\r\n\r\n public FetchSalesCatalog(\r\n paginate?: IPaginate,\r\n sort?: string,\r\n filters?: Map,\r\n search?: string,\r\n searchType?: SearchTypes\r\n ): AxiosPromise> {\r\n let query = odataQuery();\r\n\r\n if (search && searchType) query = this.salesQueryManager.SearchBy(query, search, searchType);\r\n if (filters) query = this.salesQueryManager.FilterBy(query, filters);\r\n\r\n query = query\r\n .expand(\"bids\", this.SubQueryBidsWithBidder())\r\n .expand(\"pigeon\", this.SubQueryProductPigeonCatalog())\r\n .expand(\"package\", this.SubQueryProductPackageCatalog())\r\n .expand(\"user\", (u: ExpandObjectQuery) => u.select(\"firstname\", \"lastname\"))\r\n .count();\r\n\r\n if (sort) query = this.salesQueryManager.OrderBy(query, sort);\r\n if (paginate) query = query.paginate(paginate.pageSize, paginate.page);\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public FetchMySalesElligibleForSettlement(userKey: string): AxiosPromise> {\r\n if (!userKey) return Promise.reject(new Error(\"ArgumentException\"));\r\n if (userStore.user?.id != userKey && !authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n const query = odataQuery()\r\n .filter((s) => s.userId.equals(userKey, { ignoreGuid: true }))\r\n .filter((s) => s.status.notEquals(SaleStatus.Removed))\r\n .filter((s) =>\r\n s.type\r\n .equals(SaleTypes.Fix)\r\n .or(s.type.equals(SaleTypes.Bid).and((s.endDate as any as FilterDate).isBefore(new Date().toISOString())))\r\n )\r\n .filter((s) => s.orderLine.order.paymentStatus.notEquals(PaymentStatus.PaymentSuccess))\r\n .expand(\"orderLine\", (ol: ExpandObjectQuery) =>\r\n ol.expand(\"order\", (o: ExpandObjectQuery) =>\r\n o\r\n .select(\"id\", \"paymentStatus\", \"orderDate\", \"paymentDate\")\r\n .expand(\"user\", (u: ExpandObjectQuery) => u.select(\"id\", \"firstname\", \"lastname\", \"buyerAlias\"))\r\n .expand(\"guest\", (u: ExpandObjectQuery) => u.select(\"id\", \"firstname\", \"lastname\"))\r\n )\r\n )\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p.select(\"name\", \"ring\"))\r\n .expand(\"package\", (p: ExpandObjectQuery) => p.select(\"name\", \"discipline\"))\r\n .expand(\"bids\", this.SubQueryBidsWithBidder())\r\n .expand(\"deposit\", (d) => d.select(\"amount\", \"vat\", \"vatRate\"));\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public FetchAllPendingApprovalSales(): AxiosPromise> {\r\n if (!authStore.IsApprover) return Promise.reject(\"Not authorized\");\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .filter(s => s.status.equals(SaleStatus.OnSale))\r\n .filter(s => s.flagApproved.isNull())\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"ring\")\r\n .expand(\"fancier\", (f: ExpandObjectQuery) => f\r\n .select(\"name\")\r\n )\r\n )\r\n .expand(\"package\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\")\r\n .expand(\"fancier\", (f: ExpandObjectQuery) => f\r\n .select(\"name\")\r\n )\r\n .expand(\"pigeons\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"ring\")\r\n )\r\n )\r\n .expand(\"user\", (u: ExpandObjectQuery) => u\r\n .select(\"firstname\", \"lastname\")\r\n )\r\n .orderBy(\"approvedAt\", \"desc\")\r\n .count();\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public FetchAllApprovedSales(): AxiosPromise> {\r\n if (!authStore.IsApprover) return Promise.reject(\"Not authorized\");\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .filter(s => s.status.equals(SaleStatus.OnSale))\r\n .filter(s => s.flagApproved.equals(true))\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"ring\")\r\n .expand(\"fancier\", (f: ExpandObjectQuery) => f\r\n .select(\"name\")\r\n )\r\n )\r\n .expand(\"package\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\")\r\n .expand(\"fancier\", (f: ExpandObjectQuery) => f\r\n .select(\"name\")\r\n )\r\n .expand(\"pigeons\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"ring\")\r\n )\r\n )\r\n .expand(\"user\", (u: ExpandObjectQuery) => u\r\n .select(\"firstname\", \"lastname\")\r\n )\r\n .orderBy(\"approvedAt\", \"desc\")\r\n .count();\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public FetchAllNotYetPaidEndedSales(): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(\"Not authorized\");\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .filter(s => s.status.notEquals(SaleStatus.Sold))\r\n .filter(s => s.status.notEquals(SaleStatus.Removed))\r\n .filter(s => s.flagApproved.equals(true))\r\n .filter(s => (s.startDate as any as FilterDate).isBefore(new Date().toISOString()))\r\n .filter(s => (s.endDate as any as FilterDate).isBefore(new Date().toISOString()))\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"ring\")\r\n )\r\n .expand(\"package\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\")\r\n .expand(\"pigeons\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"ring\")\r\n )\r\n )\r\n // .expand(\"bids\", this.SubQueryBidsWithBidder()) // not used\r\n .expand(\"user\", (u: ExpandObjectQuery) => u\r\n .select(\"firstname\", \"lastname\")\r\n )\r\n .expand(\"orderLine\", this.SubQueryWithOrderSummary())\r\n .orderBy(\"endDate\", \"desc\");\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public FetchAllDisapprovedSales(): AxiosPromise> {\r\n if (!authStore.IsApprover) return Promise.reject(\"Not authorized\");\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .filter(s => s.status.equals(SaleStatus.OnSale))\r\n .filter(s => s.flagApproved.equals(false))\r\n .expand(\"pigeon\", this.SubQuerySummaryPigeon())\r\n .expand(\"package\", this.SubQuerySummaryPackage())\r\n .expand(\"user\", this.SubQuerySummaryVendor())\r\n .orderBy(\"approvedAt\", \"desc\")\r\n .count();\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public FetchAllDisapprovedSalesWithReasonsByVendor(vendorKey: string): AxiosPromise> {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== vendorKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .filter(s => s.status.equals(SaleStatus.OnSale))\r\n .filter(s => s.flagApproved.equals(false))\r\n .filter(s => s.userId.equals(vendorKey, { ignoreGuid: true }))\r\n .expand(\"pigeon\", this.SubQuerySummaryPigeon())\r\n .expand(\"package\", this.SubQuerySummaryPackage())\r\n .expand(\"user\", this.SubQuerySummaryVendor())\r\n .expand(\"disapprovalReasons\", (drs: ExpandObjectQuery) => drs.select(\"disapprovalReason\"))\r\n .expand(\"taskTrackings\")\r\n .orderBy(\"approvedAt\", \"desc\")\r\n .count();\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public FetchAllSoldSalesToCollectOrDeliverByVendor(vendorKey: string): AxiosPromise> {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== vendorKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .filter(s => s.status.in([SaleStatus.Sold, SaleStatus.Reserved]))\r\n .filter((s) => s.orderLine.shippingStatus.isNull())\r\n .filter(s => s.userId.equals(vendorKey, { ignoreGuid: true }))\r\n .expand(\"pigeon\", this.SubQuerySummaryPigeon())\r\n .expand(\"package\", this.SubQuerySummaryPackage())\r\n .expand(\"user\", this.SubQuerySummaryVendor())\r\n .expand(\"taskTrackings\")\r\n .expand(\"orderLine\", (drs: ExpandObjectQuery) => drs.select(\"shippingDate\", \"shippingStatus\"))\r\n .orderBy(\"saleDate\", \"asc\")\r\n .count();\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public FetchAllUnsoldSalesWithProductByVendor(vendorKey: string): AxiosPromise> {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== vendorKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .filter(s => s.status.in([SaleStatus.Unsold]))\r\n .filter(s => s.flagApproved.equals(true))\r\n .filter(s => s.userId.equals(vendorKey, { ignoreGuid: true }))\r\n .expand(\"pigeon\", this.SubQuerySummaryPigeon())\r\n .expand(\"package\", this.SubQuerySummaryPackage())\r\n .orderBy(\"createdAt\", \"desc\")\r\n .count();\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public FetchAllPendingExpiredForSaleSalesByVendor(vendorKey: string): AxiosPromise> {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== vendorKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .filter(s => s.status.equals(SaleStatus.OnSale))\r\n .filter(s => s.flagApproved.equals(true))\r\n .filter(s => (s.startDate as any as FilterDate).isBefore(new Date()))\r\n .filter(s => (s.endDate as any as FilterDate).isBefore(/*dayjs().add(-PAYMENT_MAX_DELAY, \"days\").toDate()*/ new Date()))\r\n .filter(s => s.userId.equals(vendorKey, { ignoreGuid: true }))\r\n .expand(\"pigeon\", this.SubQuerySummaryPigeon())\r\n .expand(\"package\", this.SubQuerySummaryPackage())\r\n .expand(\"user\", this.SubQuerySummaryVendor())\r\n .expand(\"taskTrackings\")\r\n .orderBy(\"approvedAt\", \"desc\")\r\n .count();\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public FetchAllPendingTransferSettledSalesByVendor(vendorKey: string): AxiosPromise> {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== vendorKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .filter(s => s.status.in([SaleStatus.Sold, SaleStatus.Reserved]))\r\n .filter(s => s.settlement.notNull())\r\n .filter((s) => \r\n s.orderLine.isNull()\r\n .or(\r\n s.orderLine.order.transferStatus.notEquals(TransferStatus.TransferCreated)\r\n .and(s.orderLine.order.paymentCollectedBy.equals(vendorKey, { ignoreGuid: true }))\r\n )\r\n )\r\n .filter(s => s.userId.equals(vendorKey, { ignoreGuid: true }))\r\n .expand(\"pigeon\", this.SubQuerySummaryPigeon())\r\n .expand(\"package\", this.SubQuerySummaryPackage())\r\n .expand(\"user\", this.SubQuerySummaryVendor())\r\n .expand(\"taskTrackings\")\r\n .orderBy(\"approvedAt\", \"desc\")\r\n .count();\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public FetchAllAvailableBidSalesByVendor(vendorKey: string): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(\"Not authorized\");\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .filter(s => s.status.equals(SaleStatus.OnSale))\r\n .filter(s => s.flagApproved.equals(true))\r\n .filter(s => s.type.equals(SaleTypes.Bid))\r\n .filter(s => s.userId.equals(vendorKey, { ignoreGuid: true }))\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"ring\")\r\n )\r\n .expand(\"package\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\")\r\n )\r\n .orderBy(\"approvedAt\", \"desc\");\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public FetchAllSalesWithProductByIds(ids: number[]): AxiosPromise> {\r\n if (!(authStore.IsAdministrator || authStore.IsVendor)) return Promise.reject(\"Not authorized\");\r\n if (!ids?.length) return Promise.reject(\"Argument exception: parameter ids is empty\");\r\n\r\n // prettier-ignore\r\n let query = odataQuery()\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"ring\")\r\n )\r\n .expand(\"package\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\")\r\n )\r\n .orderBy(\"approvedAt\", \"desc\");\r\n\r\n if (ids.length) query = query.filter((s) => s.id.in(ids.filter((id) => id).map((id) => id as number)));\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public FetchAllSalesWithProduct(fromDate?: Date, toDate?: Date): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(\"Not authorized\");\r\n\r\n // prettier-ignore\r\n let query = odataQuery()\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"ring\")\r\n )\r\n .expand(\"package\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\")\r\n )\r\n .orderBy(\"approvedAt\", \"desc\");\r\n\r\n // prettier-ignore\r\n if (fromDate) query = query.filter((s) => (s.startDate as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if (toDate) query = query.filter((s) => (s.startDate as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public FetchAllOverview(): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(\"Not authorized\");\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .select(\"id\", \"product\", \"feesRate\", \"status\", \"price\", \"flagApproved\", \"createdAt\")\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"ring\")\r\n )\r\n .expand(\"package\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"discipline\")\r\n .expand(\"pigeons\", (p: ExpandObjectQuery) => p\r\n .select(\"id\", \"name\", \"ring\")\r\n )\r\n )\r\n .expand(\"user\", (u: ExpandObjectQuery) => u\r\n .select(\"firstname\", \"lastname\") \r\n )\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public FetchAllSalesWithProductByVendor(\r\n userKey: string,\r\n fromDate?: Date,\r\n toDate?: Date\r\n ): AxiosPromise> {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== userKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n let query = odataQuery().filter((s) => s.userId.equals(userKey, { ignoreGuid: true }));\r\n\r\n // prettier-ignore\r\n if (fromDate) query = query.filter((s) => (s.startDate as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if (toDate) query = query.filter((s) => (s.startDate as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n query = query\r\n .orderBy(\"startDate\", \"desc\")\r\n // Issue MAX DTU = split the query => call IOrderService.FetchAllWithCustomerAndDeliveryAddressByIds(orderKeys)\r\n // .expand(\"bids\", this.SubQueryBidsWithBidder())\r\n // Issue MAX DTU = split the query => call IBidService.FetchAllBidsWithUserBySales(saleKeys\r\n //.expand(\r\n // \"orderLine\",\r\n // (ol: ExpandObjectQuery) => ol\r\n // .expand(\"order\", (o: ExpandObjectQuery) => o\r\n // .expand(\"deliveryAddress\")\r\n // .expand(\"user\", (u: ExpandObjectQuery) =>\r\n // u.select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\", \"countryCode\")\r\n // )\r\n // .expand(\"guest\", (g: ExpandObjectQuery) =>\r\n // g.select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\")\r\n // )\r\n // )\r\n //)\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p.select(\"name\", \"ring\", \"sex\", \"flagApproved\"))\r\n .expand(\"package\", (p: ExpandObjectQuery) => p.select(\"name\", \"discipline\"));\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n /** @deprecated split the query in 2 separate calls: FetchNewSales and FetchHotSales */\r\n public FetchHeadlineSales(count: number): AxiosPromise> {\r\n const query = odataQuery()\r\n .expand(\"bids\", this.SubQueryBids())\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) =>\r\n p\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"ringArea\")\r\n .expand(\"pictures\", (p: ExpandObjectQuery) =>\r\n p.select(\"filename\", \"type\", \"url\", \"urlWebOptimized\")\r\n )\r\n )\r\n .expand(\"package\", (p: ExpandObjectQuery) =>\r\n p\r\n .select(\"id\", \"name\", \"discipline\")\r\n .expand(\"pigeons\", (p: ExpandObjectQuery) =>\r\n p\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"pictures\")\r\n .expand(\"pictures\", (p: ExpandObjectQuery) =>\r\n p.select(\"filename\", \"type\", \"url\", \"urlWebOptimized\", \"pigeonId\")\r\n )\r\n )\r\n .expand(\"pictures\", (p: ExpandObjectQuery) =>\r\n p.select(\"filename\", \"type\", \"url\", \"urlWebOptimized\", \"pigeonId\")\r\n )\r\n )\r\n .count();\r\n\r\n return this.Client().get(`Sales/MarketService.HeadlineSales(count=${count})?${query.toString()}`);\r\n }\r\n\r\n public FetchNewSales(top: number): AxiosPromise> {\r\n let query = odataQuery()\r\n .expand(\"bids\", this.SubQueryBids())\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) =>\r\n p\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"ringArea\")\r\n .expand(\"pictures\", (p: ExpandObjectQuery) =>\r\n p.select(\"filename\", \"type\", \"url\", \"urlWebOptimized\")\r\n )\r\n )\r\n .expand(\"package\", (p: ExpandObjectQuery) =>\r\n p\r\n .select(\"id\", \"name\", \"discipline\")\r\n .expand(\"pigeons\", (p: ExpandObjectQuery) =>\r\n p\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"pictures\")\r\n .expand(\"pictures\", (p: ExpandObjectQuery) =>\r\n p.select(\"filename\", \"type\", \"url\", \"urlWebOptimized\", \"pigeonId\")\r\n )\r\n )\r\n .expand(\"pictures\", (p: ExpandObjectQuery) =>\r\n p.select(\"filename\", \"type\", \"url\", \"urlWebOptimized\", \"pigeonId\")\r\n )\r\n )\r\n .count();\r\n\r\n if (top) query = query.paginate(top);\r\n\r\n return this.Client().get(`Sales/MarketService.NewSales?${query.toString()}`);\r\n }\r\n\r\n public FetchHotSales(top: number): AxiosPromise> {\r\n let query = odataQuery()\r\n .expand(\"bids\", this.SubQueryBids())\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) =>\r\n p\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"ringArea\")\r\n .expand(\"pictures\", (p: ExpandObjectQuery) =>\r\n p.select(\"filename\", \"type\", \"url\", \"urlWebOptimized\")\r\n )\r\n )\r\n .expand(\"package\", (p: ExpandObjectQuery) =>\r\n p\r\n .select(\"id\", \"name\", \"discipline\")\r\n .expand(\"pigeons\", (p: ExpandObjectQuery) =>\r\n p\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"pictures\")\r\n .expand(\"pictures\", (p: ExpandObjectQuery) =>\r\n p.select(\"filename\", \"type\", \"url\", \"urlWebOptimized\", \"pigeonId\")\r\n )\r\n )\r\n .expand(\"pictures\", (p: ExpandObjectQuery) =>\r\n p.select(\"filename\", \"type\", \"url\", \"urlWebOptimized\", \"pigeonId\")\r\n )\r\n )\r\n .count();\r\n\r\n if (top) query = query.paginate(top);\r\n\r\n return this.Client().get(`Sales/MarketService.HotSales?${query.toString()}`);\r\n }\r\n\r\n public GetNumberRevenues(): AxiosPromise> {\r\n return this.Client().get(\"Sales/MarketService.NumberRevenues\");\r\n }\r\n\r\n public GetNumberTransactions(): AxiosPromise> {\r\n return this.Client().get(\"Sales/MarketService.NumberTransactions\");\r\n }\r\n\r\n public GetNumberPosts(): AxiosPromise> {\r\n return this.Client().get(\"Sales/MarketService.NumberPosts\");\r\n }\r\n\r\n public GetNumberSalesByFancier(fancierKey: number): AxiosPromise> {\r\n return this.Client().get(`Sales/MarketService.NumberSalesByFancier(fancier=${fancierKey})`);\r\n }\r\n\r\n public GetIsVendorOfThisSale(saleKey: number): AxiosPromise> {\r\n return this.Client().get(`Sales(${saleKey})/MarketService.IsVendorOfThisSale`);\r\n }\r\n\r\n public GetIsBuyerOfThisSale(saleKey: number): AxiosPromise> {\r\n return this.Client().get(`Sales(${saleKey})/MarketService.IsBuyerOfThisSale`);\r\n }\r\n\r\n public GetIsAvailableForPurchase(saleKey: number): AxiosPromise> {\r\n return this.Client().get(`Sales(${saleKey})/MarketService.IsAvailableForPurchase`);\r\n }\r\n\r\n public GetAllWinningSalesInPendingByUser(): AxiosPromise> {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .filter(s => (s.snoozeDate as any as FilterDate).isBeforeOrEqual(new Date().toISOString()).or(s.snoozeDate.isNull()))\r\n .expand(\"pigeon\")\r\n .expand(\"package\")\r\n .expand(\"bids\", this.SubQueryBidsWithBidder())\r\n .expand(\"user\", this.SubQueryUserVendorSummaryWithContactData())\r\n .expand(\"pickUpAddress\", (puAddress) =>\r\n puAddress.select(\"addressLine\", \"district\", \"locality\", \"postalCode\", \"country\", \"countryTwoIsoLetters\")\r\n );\r\n\r\n return this.Client().get(`Sales/MarketService.GetAllWinningSalesInPendingByUser?${query.toString()}`);\r\n }\r\n\r\n public GetAllSalesCountByUser(userKey: string): AxiosPromise> {\r\n const query = odataQuery()\r\n .filter((s) => s.userId.equals(userKey, { ignoreGuid: true }))\r\n .count()\r\n .paginate(0);\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public GetAllPackagePigeonItemIdentitiesBySale(\r\n saleKey: number\r\n ): AxiosPromise> {\r\n return this.Client().get(`Sales(${saleKey})/MarketService.GetAllPackagePigeonItemIdentities`);\r\n }\r\n\r\n public GetAllPackageParentReproducerIdentitiesBySale(\r\n saleKey: number\r\n ): AxiosPromise> {\r\n return this.Client().get(`Sales(${saleKey})/MarketService.GetAllPackageParentReproducerIdentities`);\r\n }\r\n\r\n public FetchAllBids(saleKey: number): AxiosPromise> {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"user\", (u: ExpandObjectQuery) => u\r\n .select(\"firstname\", \"lastname\", \"buyerAlias\", \"countryCode\", \"email\", \"phoneNumber\")\r\n );\r\n\r\n return this.Client().get(`Sales(${saleKey})/Bids?${query.toString()}`);\r\n }\r\n\r\n public GetHighestBid(saleKey: number): AxiosPromise {\r\n return this.Client().get(`Sales(${saleKey})/MarketService.HighestBid`);\r\n }\r\n\r\n public GetHighestBidWithSaleAndBidder(saleKey: number): AxiosPromise {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"user\", (u: ExpandObjectQuery) => u\r\n .select(\"firstname\", \"lastname\", \"buyerAlias\", \"countryCode\")\r\n )\r\n .expand(\"sale\", (s: ExpandObjectQuery) => s\r\n .select(\"id\", \"endDate\")\r\n );\r\n\r\n return this.Client().get(`Sales(${saleKey})/MarketService.HighestBid?${query.toString()}`);\r\n }\r\n\r\n public GetHighestBidAmount(saleKey: number): AxiosPromise> {\r\n return this.Client().get(`Sales(${saleKey})/MarketService.HighestBidAmount`);\r\n }\r\n\r\n public GetDateRangeOfNextSales(vendorKey: string): AxiosPromise> {\r\n return this.Client().get(`Sales/MarketService.GetDateRangeOfNextSales(vendorKey='${vendorKey}')`);\r\n }\r\n\r\n public CountSalesByVendorId(vendorKey: string): AxiosPromise> {\r\n if (!vendorKey) return Promise.reject(new Error(\"ArgumentException\"));\r\n if (userStore.user?.id != vendorKey && !authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n const query = odataQuery()\r\n .select(\"id\")\r\n .filter((s) => s.userId.equals(vendorKey, { ignoreGuid: true }))\r\n .count();\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n\r\n public CountSalesByVendorIdAndBySaleStatus(\r\n vendorKey: string,\r\n saleStatus: SaleStatus\r\n ): AxiosPromise> {\r\n if (!vendorKey) return Promise.reject(new Error(\"ArgumentException\"));\r\n if (userStore.user?.id != vendorKey && !authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n const query = odataQuery()\r\n .select(\"id\")\r\n .filter((s) => s.userId.equals(vendorKey, { ignoreGuid: true }))\r\n .filter((s) => s.status.equals(saleStatus))\r\n .count();\r\n\r\n return this.Client().get(`Sales?${query.toString()}`);\r\n }\r\n}\r\n","import { ISettlementsService } from \"@api/contracts/odata/ISettlementsService\";\r\nimport { IPackage } from \"@api/models/market/IPackage\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { ISettlement } from \"@api/models/market/ISettlement\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore, settlementStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { ExpandObjectQuery, FilterDate, FilterString, odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class SettlementsService extends BaseODataService implements ISettlementsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(settlement: ISettlement): AxiosPromise {\r\n return this.Client().post(\"Settlements\", settlement);\r\n }\r\n\r\n public Update(settlementKey: string, settlement: ISettlement): AxiosPromise {\r\n return this.Client().put(`Settlements('${settlementKey}')`, settlement);\r\n }\r\n\r\n public Patch(settlementKey: string, settlement: Partial): AxiosPromise {\r\n return this.Client().patch(`Settlements('${settlementKey}')`, settlement);\r\n }\r\n\r\n public PatchAsProcessed(settlementKey: string, processed = true): AxiosPromise {\r\n settlementStore.RemovePendingSettlements(settlementKey);\r\n return this.Client().patch(`Settlements('${settlementKey}')`, { flagProcessed: processed } as Partial);\r\n }\r\n\r\n public Delete(settlementKey: string): AxiosPromise {\r\n return this.Client().delete(`Settlements('${settlementKey}')`);\r\n }\r\n\r\n public DeleteSoft(settlementKey: string): AxiosPromise {\r\n return this.Client().patch(`Settlements('${settlementKey}')`, { flagSoftDeleted: true } as Partial);\r\n }\r\n\r\n public Fetch(settlementKey: string): AxiosPromise {\r\n let query = odataQuery();\r\n\r\n if (!authStore.IsAdministrator) query = query.filter((s) => s.flagSoftDeleted.notEquals(true));\r\n\r\n return this.Client().get(`Settlements('${settlementKey}')?${query.toString()}`);\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n let query = odataQuery().orderBy(\"paymentDate\", \"desc\");\r\n\r\n if (!authStore.IsAdministrator) query = query.filter((s) => s.flagSoftDeleted.notEquals(true));\r\n\r\n return this.Client().get(`Settlements?${query.toString()}`);\r\n }\r\n\r\n public FetchAllSettlements(fromDate?: Date, toDate?: Date): AxiosPromise> {\r\n let query = odataQuery().orderBy(\"paymentDate\", \"desc\");\r\n\r\n if (!authStore.IsAdministrator) query = query.filter((s) => s.flagSoftDeleted.notEquals(true));\r\n if (fromDate)\r\n query = query.filter((s) => (s.paymentDate as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if (toDate) query = query.filter((s) => (s.paymentDate as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n return this.Client().get(`Settlements?${query.toString()}`);\r\n }\r\n\r\n public FetchAllPendingProcessing(): AxiosPromise> {\r\n let query = odataQuery()\r\n .filter((s) => s.flagProcessed.isNull())\r\n .orderBy(\"paymentDate\", \"desc\");\r\n\r\n if (!authStore.IsAdministrator) query = query.filter((s) => s.flagSoftDeleted.notEquals(true));\r\n\r\n return this.Client().get(`Settlements?${query.toString()}`);\r\n }\r\n\r\n public FetchAllWithSaleProduct(): AxiosPromise> {\r\n let query = odataQuery();\r\n\r\n if (!authStore.IsAdministrator) query = query.filter((s) => s.flagSoftDeleted.notEquals(true));\r\n\r\n query = query.orderBy(\"paymentDate\", \"desc\").expand(\"sale\", (s: ExpandObjectQuery) =>\r\n s\r\n .select(\"id\", \"type\", \"product\", \"price\", \"feesRate\", \"vatRate\", \"vatInclusive\")\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p.select(\"name\", \"ring\"))\r\n .expand(\"package\", (p: ExpandObjectQuery) => p.select(\"name\", \"discipline\"))\r\n );\r\n\r\n return this.Client().get(`Settlements?${query.toString()}`);\r\n }\r\n public FetchAllSettlementsByVendor(\r\n vendorKey: string,\r\n from?: Date,\r\n to?: Date\r\n ): AxiosPromise> {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== vendorKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n let query = odataQuery();\r\n\r\n if (!authStore.IsAdministrator) query = query.filter((s) => s.flagSoftDeleted.notEquals(true));\r\n if (from) query = query.filter((s) => (s.paymentDate as any as FilterDate).isAfterOrEqual(from));\r\n if (to) query = query.filter((s) => (s.paymentDate as any as FilterDate).isBeforeOrEqual(to));\r\n\r\n query = query\r\n .filter((s) => (s.vendorId as FilterString).equals(vendorKey, { ignoreGuid: true }))\r\n .orderBy(\"paymentDate\", \"desc\");\r\n\r\n return this.Client().get(`Settlements?${query.toString()}`);\r\n }\r\n\r\n public FetchAllByVendorWithSaleProduct(\r\n vendorKey: string,\r\n from?: Date,\r\n to?: Date\r\n ): AxiosPromise> {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== vendorKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n let query = odataQuery();\r\n\r\n if (!authStore.IsAdministrator) query = query.filter((s) => s.flagSoftDeleted.notEquals(true));\r\n if (from) query = query.filter((s) => (s.paymentDate as any as FilterDate).isAfterOrEqual(from));\r\n if (to) query = query.filter((s) => (s.paymentDate as any as FilterDate).isBeforeOrEqual(to));\r\n\r\n query = query\r\n .filter((s) => s.vendorId.equals(vendorKey, { ignoreGuid: true }))\r\n .orderBy(\"paymentDate\", \"desc\")\r\n .expand(\"sale\", (s: ExpandObjectQuery) =>\r\n s\r\n .select(\"id\", \"type\", \"product\", \"price\", \"feesRate\", \"vatRate\", \"vatInclusive\")\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p.select(\"name\", \"ring\"))\r\n .expand(\"package\", (p: ExpandObjectQuery) => p.select(\"name\", \"discipline\"))\r\n );\r\n\r\n return this.Client().get(`Settlements?${query.toString()}`);\r\n }\r\n\r\n public FetchAllSummaryWithUserBySale(saleKey: number): AxiosPromise> {\r\n const query = odataQuery()\r\n .filter((b) => b.saleId.equals(saleKey))\r\n .select(\"id\", \"amount\", \"paymentDate\", \"userId\")\r\n .orderBy(\"paymentDate\", \"desc\")\r\n .expand(\"user\", (u) => u.select(\"id\", \"firstname\", \"lastname\", \"buyerAlias\", \"email\", \"phoneNumber\"));\r\n\r\n return this.Client().get(`Settlements?${query.toString()}`);\r\n }\r\n}\r\n","import { IShippingServicesService } from \"@api/contracts/odata/IShippingServicesService\";\r\nimport { IShippingRate } from \"@api/models/market/IShippingRate\";\r\nimport { IShippingRateZipRange } from \"@api/models/market/IShippingRateZipRange\";\r\nimport { IShippingService } from \"@api/models/market/IShippingService\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { ExpandObjectQuery, FilterBuilder, odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class ShippingServicesService extends BaseODataService implements IShippingServicesService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Fetch(shippingServiceKey: number): AxiosPromise {\r\n return this.Client().get(`ShippingServices(${shippingServiceKey})`);\r\n }\r\n\r\n public FetchAllByFromAndByTo(\r\n from: string, // country iso letters\r\n to: string, // country iso letters\r\n fromZipCode?: number,\r\n toZipCode?: number\r\n ): AxiosPromise> {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .filter((ss) => ss.from.equals(from))\r\n .filter((ss) => ss.to.equals(to))\r\n .expand(\"provider\")\r\n .expand(\"rates\", (sr: ExpandObjectQuery) => sr\r\n .select(\"id\", \"fromNth\", \"unitPrice\", \"currency\")\r\n .expand(\"fromShippingRateZipRanges\", fromZipCode \r\n ? (fromZipRanges) => fromZipRanges\r\n .filter((fromZipRanges: FilterBuilder) => fromZipRanges.zipRange.startZipCode.biggerThan(fromZipCode) || fromZipRanges.zipRange.startZipCode.equals(fromZipCode))\r\n .filter((fromZipRanges: FilterBuilder) => fromZipRanges.zipRange.endZipCode.lessThan(fromZipCode) || fromZipRanges.zipRange.endZipCode.equals(fromZipCode))\r\n .expand(\"zipRange\")\r\n : undefined\r\n )\r\n .expand(\"toShippingRateZipRanges\", toZipCode \r\n ? toZipRanges => toZipRanges\r\n .filter(toZipRanges => toZipRanges.zipRange.startZipCode.biggerThan(toZipCode) || toZipRanges.zipRange.startZipCode.equals(toZipCode))\r\n .filter(toZipRanges => toZipRanges.zipRange.endZipCode.lessThan(toZipCode) || toZipRanges.zipRange.endZipCode.equals(toZipCode))\r\n .expand(\"zipRange\")\r\n : undefined\r\n )\r\n );\r\n\r\n return this.Client().get(`ShippingServices?${query.toString()}`);\r\n }\r\n}\r\n","import { IStrainsService } from \"@api/contracts/odata/IStrainsService\";\r\nimport { IStrain } from \"@api/models/market/IStrain\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { odataQuery } from \"odata-fluent-query\";\r\nimport { memoizeAsync } from \"utils-decorators\";\r\n\r\nexport class StrainsService extends BaseODataService implements IStrainsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(strain: IStrain): AxiosPromise {\r\n return this.Client().post(\"Strains\", strain);\r\n }\r\n\r\n public Fetch(strainKey: number): AxiosPromise {\r\n return this.Client().get(`Strains(${strainKey})`);\r\n }\r\n\r\n @memoizeAsync(10 * 60 * 1000)\r\n public FetchAll(): AxiosPromise> {\r\n const query = odataQuery().select(\"id\", \"name\").orderBy(\"name\", \"asc\");\r\n\r\n return this.Client().get(`Strains/?${query.toString}`);\r\n }\r\n}\r\n","import { ITaskTrackingsService } from \"@api/contracts/odata/ITaskTrackingsService\";\r\nimport { ITaskTracking } from \"@api/models/market/ITaskTracking\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport odataQuery from \"odata-fluent-query\";\r\n\r\nexport class TaskTrackingsService extends BaseODataService implements ITaskTrackingsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Insert(taskTracking: ITaskTracking): AxiosPromise {\r\n return this.Client().post(\"TaskTrackings\", taskTracking);\r\n }\r\n\r\n public Update(taskTrackingKey: number, taskTracking: ITaskTracking): AxiosPromise {\r\n return this.Client().put(`TaskTrackings(${taskTrackingKey})`, taskTracking);\r\n }\r\n\r\n public Delete(taskTrackingKey: number): AxiosPromise {\r\n return this.Client().delete(`TaskTrackings(${taskTrackingKey})`);\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n const query = odataQuery().orderBy(\"doneAt\", \"desc\");\r\n\r\n return this.Client().get(`TaskTrackings?${query.toString()}`);\r\n }\r\n\r\n public FetchAllBySaleAndByVendor(\r\n saleKey: number,\r\n vendorKey: string\r\n ): AxiosPromise> {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== vendorKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n const query = odataQuery()\r\n .filter((tt) => tt.saleId.equals(saleKey))\r\n .filter((tt) => tt.userId.equals(vendorKey, { ignoreGuid: true }))\r\n .orderBy(\"doneAt\", \"desc\");\r\n\r\n return this.Client().get(`TaskTrackings?${query.toString()}`);\r\n }\r\n\r\n public Fetch(taskTrackingKey: number): AxiosPromise {\r\n return this.Client().get(`TaskTrackings(${taskTrackingKey})`);\r\n }\r\n}\r\n","import { ITaxRatesService } from \"@api/contracts/odata/ITaxRatesService\";\r\nimport { ITaxRate } from \"@api/models/market/ITaxRate\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { IODataValueResponse } from \"@api/models/shared/IODataValueResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { AxiosPromise } from \"axios\";\r\n\r\nexport class TaxRatesService extends BaseODataService implements ITaxRatesService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Fetch(taxRateKey: number): AxiosPromise {\r\n return this.Client().get(`TaxRates(${taxRateKey})`);\r\n }\r\n\r\n public FetchAll(): AxiosPromise> {\r\n return this.Client().get(`TaxRates`);\r\n }\r\n\r\n public GetVatRate(countryCode: string): AxiosPromise> {\r\n return this.Client().get(`TaxRates/MarketService.GetVatRate(countryCode='${countryCode}')`);\r\n }\r\n}\r\n","import { IUsersService } from \"@api/contracts/odata/IUsersService\";\r\nimport { SearchTypes } from \"@api/models/market/constants/SearchTypes\";\r\nimport { IBid } from \"@api/models/market/IBid\";\r\nimport { ICart } from \"@api/models/market/ICart\";\r\nimport { IGuest } from \"@api/models/market/IGuest\";\r\nimport { IOrder } from \"@api/models/market/IOrder\";\r\nimport { IOrderLine } from \"@api/models/market/IOrderLine\";\r\nimport { IPackage } from \"@api/models/market/IPackage\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { IUser } from \"@api/models/market/IUser\";\r\nimport { IVendor } from \"@api/models/market/IVendor\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { CatalogFilterTypes } from \"@pigeon/enumerations/CatalogFilterTypes\";\r\nimport { IPaginate } from \"@pigeon/models/IPaginate\";\r\nimport { ISalesQueryManager } from \"@pigeon/services/contracts/ISalesQueryManager\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { ExpandObjectQuery, FilterDate, ODataQuery, odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class UsersService extends BaseODataService implements IUsersService {\r\n @Inject()\r\n private salesQueryManager: ISalesQueryManager;\r\n\r\n //#region Queries\r\n private QueryUserAllSales(\r\n paginate?: IPaginate,\r\n sort?: string,\r\n filters?: Map,\r\n search?: string,\r\n searchType?: SearchTypes\r\n ) {\r\n const query = odataQuery().expand(\"sales\", (s) => {\r\n let saleSubquery: ODataQuery = s as ODataQuery;\r\n\r\n if (search && searchType) saleSubquery = this.salesQueryManager.SearchBy(saleSubquery, search, searchType);\r\n if (filters) saleSubquery = this.salesQueryManager.FilterBy(saleSubquery, filters);\r\n\r\n saleSubquery = saleSubquery\r\n .expand(\"orderLine\", (ol: ExpandObjectQuery) =>\r\n ol\r\n .select(\"shippingStatus\")\r\n .expand(\"order\", (o: ExpandObjectQuery) => o.select(\"id\", \"paymentStatus\", \"transferStatus\"))\r\n )\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p.select(\"name\", \"ring\"))\r\n .expand(\"package\", (p: ExpandObjectQuery) => p.select(\"name\", \"discipline\"))\r\n .expand(\"bids\", (b: ExpandObjectQuery) =>\r\n b\r\n .select(\"amount\", \"bidDate\", \"biddingOrderId\")\r\n .orderBy(\"amount\", \"desc\")\r\n .orderBy(\"biddingOrderId\", \"asc\")\r\n .orderBy(\"bidDate\", \"asc\")\r\n );\r\n\r\n if (sort) saleSubquery = this.salesQueryManager.OrderBy(saleSubquery, sort) as ODataQuery;\r\n else saleSubquery = saleSubquery.orderBy(\"saleDate\", \"desc\").orderBy(\"startDate\", \"desc\"); // default order by\r\n\r\n if (paginate) saleSubquery = saleSubquery.paginate(paginate.pageSize, paginate.page);\r\n\r\n return saleSubquery;\r\n });\r\n\r\n return query;\r\n }\r\n //#endregion\r\n\r\n public FetchAll(): AxiosPromise> {\r\n const query = odataQuery().orderBy(\"firstname\", \"asc\");\r\n\r\n return this.Client().get(`Users?${query.toString()}`);\r\n }\r\n\r\n public FetchAllIdentities(): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .select(\"id\", \"firstname\", \"lastname\")\r\n .expand(\"bids\", b => b.select(\"id\")) // add property to check if active\r\n .expand(\"orders\", o => o.select(\"id\")) // add property to check if active\r\n .expand(\"carts\", o => o.select(\"id\")) // add property to check if active\r\n .orderBy(\"firstname\", \"asc\");\r\n\r\n return this.Client().get(`Users?${query.toString()}`);\r\n }\r\n\r\n public FetchAllIdentitiesExtended(): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n const query = odataQuery()\r\n .select(\"id\", \"firstname\", \"lastname\", \"stripeCustomerId\", \"stripeConnectedAccountId\")\r\n .orderBy(\"firstname\", \"asc\");\r\n\r\n return this.Client().get(`Users?${query.toString()}`);\r\n }\r\n\r\n public FetchAllIdentitiesWith(): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // prettier-ignore\r\n const query = odataQuery().select(\"id\", \"firstname\", \"lastname\")\r\n .orderBy(\"firstname\", \"asc\")\r\n .expand(\"addresses\")\r\n .expand(\"corporation\");\r\n return this.Client().get(`Users?${query.toString()}`);\r\n }\r\n\r\n public Fetch(userKey: string): AxiosPromise {\r\n if (userStore.user && userStore.user.id !== userKey && !authStore.IsAdministrator)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n return this.Client().get(`Users('${userKey}')`);\r\n }\r\n\r\n public FetchWithVendor(userKey: string): AxiosPromise {\r\n const query = odataQuery()\r\n .select(\"id\", \"firstname\", \"lastname\", \"email\", \"stripeConnectedAccountId\", \"countryCode\", \"registeredAt\")\r\n .expand(\"corporation\", (c) => c.select(\"name\", \"vatNumber\"))\r\n .expand(\"vendor\", (v) => v.select(\"id\", \"referralCode\"));\r\n\r\n return this.Client().get(`Users('${userKey}')?${query.toString()}`);\r\n }\r\n\r\n public FetchBuyerDashboard(userKey: string, fromDate?: Date, toDate?: Date): AxiosPromise {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== userKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"alerts\", a => { \r\n let alertsSubquery = a;\r\n \r\n if(fromDate)\r\n alertsSubquery = alertsSubquery.filter(a => (a.fromDate as any as FilterDate).isAfterOrEqual(fromDate.toISOString()))\r\n if(toDate)\r\n alertsSubquery = alertsSubquery.filter(a => (a.toDate as any as FilterDate).isBeforeOrEqual(toDate.toISOString()))\r\n\r\n alertsSubquery = alertsSubquery.orderBy(\"fromDate\", \"asc\");\r\n return alertsSubquery;\r\n })\r\n .expand(\"bids\", b => {\r\n let bidsSubquery = b;\r\n\r\n if(fromDate)\r\n bidsSubquery = bidsSubquery.filter(b => (b.bidDate as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if(toDate)\r\n bidsSubquery = bidsSubquery.filter(b => (b.bidDate as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n bidsSubquery = bidsSubquery\r\n .expand(\"sale\", s => s\r\n .expand(\"pigeon\")\r\n .expand(\"package\")\r\n // Do not use anymore because bids orders is incorrect and subquery should be done via a split query\r\n // .expand(\"bids\", b => b\r\n // .select(\"id\", \"biddingOrderId\", \"amount\", \"bidDate\", \"biddingOrderId\")\r\n // .orderBy(\"amount\", \"desc\").orderBy(\"biddingOrderId\", \"asc\").orderBy(\"bidDate\", \"asc\")\r\n // )\r\n )\r\n .orderBy(\"bidDate\", \"desc\");\r\n\r\n return bidsSubquery;\r\n })\r\n .expand(\"biddingOrders\", bo => {\r\n let biddingOrdersSubquery = bo;\r\n\r\n if(fromDate)\r\n biddingOrdersSubquery = biddingOrdersSubquery.filter(b => (b.orderDate as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if(toDate)\r\n biddingOrdersSubquery = biddingOrdersSubquery.filter(b => (b.orderDate as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n biddingOrdersSubquery = biddingOrdersSubquery\r\n .expand(\"bids\")\r\n .expand(\"sale\", s => s\r\n .expand(\"pigeon\")\r\n .expand(\"package\")\r\n )\r\n // Do not use anymore because bids orders is incorrect and subquery should be done via a split query\r\n // .expand(\"bids\", b => b\r\n // .select(\"id\", \"biddingOrderId\", \"amount\", \"bidDate\", \"biddingOrderId\")\r\n // .orderBy(\"amount\", \"desc\").orderBy(\"biddingOrderId\", \"asc\").orderBy(\"bidDate\", \"asc\")\r\n // )\r\n .orderBy(\"orderDate\", \"desc\");\r\n\r\n return biddingOrdersSubquery;\r\n })\r\n .expand(\"orders\", o => {\r\n let ordersSubquery = o;\r\n\r\n if(fromDate)\r\n ordersSubquery = ordersSubquery.filter(o => (o.createdAt as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if(toDate)\r\n ordersSubquery = ordersSubquery.filter(o => (o.createdAt as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n ordersSubquery = ordersSubquery\r\n .select(\"id\", \"orderDate\", \"total\", \"currency\", \"status\", \"paymentStatus\", \"shippingMethod\", \"userId\")\r\n .expand(\"lines\", (ol: ExpandObjectQuery) => ol\r\n .expand(\"sale\", (s: ExpandObjectQuery) => s\r\n .expand(\"pickUpAddress\")\r\n .expand(\"pigeon\")\r\n .expand(\"package\")\r\n )\r\n )\r\n .expand(\"deliveryAddress\")\r\n .orderBy(\"orderDate\", \"desc\");\r\n\r\n return ordersSubquery;\r\n })\r\n .expand(\"favorites\", o => {\r\n let favoritesSubquery = o;\r\n\r\n if(fromDate)\r\n favoritesSubquery = favoritesSubquery.filter(o => (o.recordedDate as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if(toDate)\r\n favoritesSubquery = favoritesSubquery.filter(o => (o.recordedDate as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n favoritesSubquery = favoritesSubquery\r\n .select(\"id\", \"recordedDate\", \"saleId\", \"userId\")\r\n .expand(\"sale\", (s: ExpandObjectQuery) => s\r\n .expand(\"pigeon\")\r\n .expand(\"package\")\r\n )\r\n .orderBy(\"recordedDate\", \"desc\");\r\n\r\n return favoritesSubquery;\r\n });\r\n\r\n return this.Client().get(`Users('${userKey}')?${query.toString()}`);\r\n }\r\n\r\n public FetchBreederDashboard(userKey: string): AxiosPromise {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== userKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"vendor\", (v: ExpandObjectQuery) => (v as ODataQuery));\r\n\r\n return this.Client().get(`Users('${userKey}')?${query.toString()}`);\r\n }\r\n\r\n /** @deprecated DO NOT USE because this query reach Max DTU (S3) on Azure */\r\n public FetchVendorDashboard(userKey: string, fromDate?: Date, toDate?: Date): AxiosPromise {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== userKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"sales\", s => {\r\n let salesSubquery = s;\r\n\r\n if(fromDate)\r\n salesSubquery = salesSubquery.filter(s => (s.createdAt as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if(toDate)\r\n salesSubquery = salesSubquery.filter(s => (s.createdAt as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n salesSubquery = salesSubquery\r\n .orderBy(\"saleDate\", \"desc\")\r\n .orderBy(\"startDate\", \"desc\")\r\n .expand(\"bids\", (b: ExpandObjectQuery) => b\r\n .select(\"amount\", \"bidDate\", \"biddingOrderId\", \"userId\")\r\n .orderBy(\"amount\", \"desc\").orderBy(\"biddingOrderId\", \"asc\").orderBy(\"bidDate\", \"asc\")\r\n .expand(\"user\", (u: ExpandObjectQuery) => u\r\n .select(\"countryCode\")\r\n )\r\n )\r\n .expand(\"orderLine\", (ol: ExpandObjectQuery) => ol\r\n .expand(\"order\", (o:ExpandObjectQuery) => o\r\n .expand(\"deliveryAddress\")\r\n .expand(\"user\", (u:ExpandObjectQuery) => u\r\n .select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\", \"countryCode\")\r\n )\r\n .expand(\"guest\", (g:ExpandObjectQuery) => g\r\n .select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\")\r\n )\r\n )\r\n )\r\n .expand(\"pigeon\", (p: ExpandObjectQuery) => p\r\n .select(\"name\", \"ring\", \"sex\", \"flagApproved\")\r\n )\r\n .expand(\"package\", (p: ExpandObjectQuery) => p\r\n .select(\"name\", \"discipline\")\r\n )\r\n return salesSubquery;\r\n }\r\n )\r\n .expand(\"vendor\", (v: ExpandObjectQuery) => v\r\n .expand(\"pictures\") // shop pictures\r\n // .expand(\"referrals\", (r: ExpandObjectQuery) => (r as ODataQuery)) \r\n )\r\n .expand(\"auctions\", a => {\r\n let auctionsSubquery = a;\r\n\r\n if(fromDate)\r\n auctionsSubquery = auctionsSubquery.filter(a => (a.createdAt as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if(toDate)\r\n auctionsSubquery = auctionsSubquery.filter(a => (a.createdAt as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n auctionsSubquery = auctionsSubquery\r\n .select(\"id\", \"userId\", \"startDate\", \"endDate\")\r\n .expand(\"sales\", as => as.select(\"id\"));\r\n\r\n return auctionsSubquery;\r\n });\r\n\r\n return this.Client().get(`Users('${userKey}')?${query.toString()}`);\r\n }\r\n\r\n public FetchUserWithVendorAndShop(userKey: string): AxiosPromise {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== userKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"vendor\", (v: ExpandObjectQuery) => v\r\n .expand(\"pictures\") // shop pictures\r\n );\r\n\r\n return this.Client().get(`Users('${userKey}')?${query.toString()}`);\r\n }\r\n\r\n public FetchAllOrders(userKey: string): AxiosPromise {\r\n if (userStore.user && userStore.user.id !== userKey) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"orders\", (o: ExpandObjectQuery) => (o as ODataQuery)\r\n .orderBy(o => o.orderDate)\r\n );\r\n\r\n return this.Client().get(`Users('${userKey}')?${query.toString()}`);\r\n }\r\n\r\n public FetchMySales(\r\n userKey: string,\r\n paginate?: IPaginate,\r\n sort?: string,\r\n filters?: Map,\r\n search?: string,\r\n searchType?: SearchTypes\r\n ): AxiosPromise {\r\n if (!authStore.IsAdministrator && userStore.user && userStore.user.id !== userKey)\r\n return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n const query = this.QueryUserAllSales(paginate, sort, filters, search, searchType);\r\n\r\n return this.Client().get(`Users('${userKey}')?${query.toString()}`);\r\n }\r\n\r\n public FetchAllSales(\r\n sort?: string,\r\n filters?: Map,\r\n search?: string,\r\n searchType?: SearchTypes\r\n ): AxiosPromise> {\r\n const query = this.QueryUserAllSales(undefined, sort, filters, search, searchType);\r\n\r\n return this.Client().get(`Users?${query.toString()}`);\r\n }\r\n\r\n public FetchAllPigeons(userKey: string): AxiosPromise {\r\n if (userStore.user && userStore.user.id !== userKey) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"pigeons\", p => p\r\n .expand(\"fancier\")\r\n .orderBy(\"createdAt\")\r\n );\r\n\r\n return this.Client().get(`Users('${userKey}')?${query.toString()}`);\r\n }\r\n\r\n public FetchAllPigeonsIdentity(userKey: string): AxiosPromise {\r\n if (userStore.user && userStore.user.id !== userKey) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .expand(\"pigeons\", p => p\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"fatherId\", \"motherId\", \"userId\")\r\n .expand(\"father\", (f: ExpandObjectQuery) => f\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"fatherId\", \"motherId\", \"userId\")\r\n )\r\n .expand(\"mother\", (m: ExpandObjectQuery) => m\r\n .select(\"id\", \"name\", \"ring\", \"sex\", \"fatherId\", \"motherId\", \"userId\")\r\n )\r\n );\r\n\r\n return this.Client().get(`Users('${userKey}')?${query.toString()}`);\r\n }\r\n\r\n public FetchAllOverview(): AxiosPromise> {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .select(\"id\", \"firstname\", \"lastname\", \"buyerAlias\", \"email\", \"emailConfirmed\", \"phoneNumber\", \"phoneNumberConfirmed\", \"preferredLanguage\", \"countryCode\", \"stripeCustomerId\", \"stripeConnectedAccountId\", \"registeredAt\")\r\n .expand(\"carts\", (c: ExpandObjectQuery) => c\r\n .select(\"id\")\r\n )\r\n .expand(\"orders\", (o: ExpandObjectQuery) => o\r\n .select(\"id\")\r\n );\r\n\r\n return this.Client().get(`Users?${query.toString()}`);\r\n }\r\n\r\n public FetchAllUsersWith(fromDate?: Date, toDate?: Date): AxiosPromise> {\r\n let query = odataQuery()\r\n .orderBy(\"firstname\", \"asc\")\r\n .expand(\"orders\") // used for buyers\r\n .expand(\"bids\") // used for bidders\r\n .expand(\"sales\"); // used for vendors\r\n\r\n // prettier-ignore\r\n if (fromDate) query = query.filter((u) => (u.registeredAt as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if (toDate)\r\n query = query.filter((u) => (u.registeredAt as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n return this.Client().get(`Users?${query.toString()}`);\r\n }\r\n\r\n public FetchAllUsersWithVendorAndShop(fromDate?: Date, toDate?: Date): AxiosPromise> {\r\n let query = odataQuery().orderBy(\"firstname\", \"asc\").expand(\"vendor\");\r\n\r\n // prettier-ignore\r\n if (fromDate) query = query.filter((u) => (u.registeredAt as any as FilterDate).isAfterOrEqual(fromDate.toISOString()));\r\n if (toDate)\r\n query = query.filter((u) => (u.registeredAt as any as FilterDate).isBeforeOrEqual(toDate.toISOString()));\r\n\r\n return this.Client().get(`Users?${query.toString()}`);\r\n }\r\n\r\n public GetUsersIdentities(): AxiosPromise>> {\r\n return this.Client().get(`Users/MarketService.GetUsersIdentities`);\r\n }\r\n}\r\n","import { IVendorsService } from \"@api/contracts/odata/IVendorsService\";\r\nimport { ICorporation } from \"@api/models/market/ICorporation\";\r\nimport { IVendor } from \"@api/models/market/IVendor\";\r\nimport { IODataCollectionResponse } from \"@api/models/shared/IODataCollectionResponse\";\r\nimport { IODataValueResponse } from \"@api/models/shared/IODataValueResponse\";\r\nimport { BaseODataService } from \"@api/services/odata/base/BaseODataService\";\r\nimport { authStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { ExpandObjectQuery, odataQuery } from \"odata-fluent-query\";\r\n\r\nexport class VendorsService extends BaseODataService implements IVendorsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public Put(vendorKey: string, vendor: IVendor): AxiosPromise {\r\n return this.Client().put(`Vendors('${vendorKey}')`, vendor);\r\n }\r\n\r\n public Patch(vendorKey: string, vendor: Partial): AxiosPromise {\r\n return this.Client().patch(`Vendors('${vendorKey}')`, vendor);\r\n }\r\n\r\n public Fetch(vendorKey: string): AxiosPromise {\r\n if (!authStore.IsVendor) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n return this.Client().get(`Vendors('${vendorKey}')`);\r\n }\r\n\r\n public FetchWithUser(vendorKey: string): AxiosPromise {\r\n if (!authStore.IsVendor) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n const query = odataQuery().expand(\"user\", (u) => u.select(\"firstname\", \"lastname\", \"email\"));\r\n return this.Client().get(`Vendors('${vendorKey}')?${query.toString()}`);\r\n }\r\n\r\n public FetchWithPictures(vendorKey: string): AxiosPromise {\r\n if (!authStore.IsVendor) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n const query = odataQuery().expand(\"pictures\");\r\n\r\n return this.Client().get(`Vendors('${vendorKey}')?${query.toString()}`);\r\n }\r\n\r\n public FetchAllWithUserIdentities(): AxiosPromise> {\r\n if (!authStore.IsAdministrator) return Promise.reject(new Error(\"unauthorized\"));\r\n\r\n const query = odataQuery()\r\n .expand(\"user\", (u) => u.select(\"id\", \"firstname\", \"lastname\", \"stripeConnectedAccountId\"))\r\n .orderBy((u) => u.user.firstname);\r\n return this.Client().get(`Vendors?${query.toString()}`);\r\n }\r\n\r\n public FetchAllOverview(): AxiosPromise> {\r\n // prettier-ignore\r\n const query = odataQuery()\r\n .select(\"id\", \"vendorAlias\", \"shopId\", \"countryCode\", \"flagReferralProgram\")\r\n .expand(\"user\", u => u\r\n .select(\"firstname\", \"lastname\", \"email\", \"phoneNumber\", \"preferredLanguage\", \"stripeConnectedAccountId\")\r\n .expand(\"sales\", s => s\r\n .select(\"id\")\r\n )\r\n .expand(\"corporation\", (c: ExpandObjectQuery) => c\r\n .select(\"name\")\r\n )\r\n );\r\n\r\n return this.Client().get(`Vendors?${query.toString()}`);\r\n }\r\n\r\n public GetVendorByShop(shopId: string): AxiosPromise {\r\n const query = odataQuery().expand(\"pictures\");\r\n\r\n return this.Client().get(`Vendors/MarketService.GetVendorByShop(shop='${shopId}')?${query.toString()}`);\r\n }\r\n\r\n public IsCashPaymentAllowed(vendorKey: string): AxiosPromise> {\r\n return this.Client().get(`Vendors('${vendorKey}')/MarketService.IsCashPaymentAllowed`);\r\n }\r\n\r\n public ActivateReferralProgram(vendorKey: string) {\r\n return this.Client().post(`Vendors('${vendorKey}')/MarketService.ActivateReferralProgram`);\r\n }\r\n\r\n public DesactivateReferralProgram(vendorKey: string) {\r\n return this.Client().post(`Vendors('${vendorKey}')/MarketService.DesactivateReferralProgram`);\r\n }\r\n}\r\n","import { IBlobsService } from \"@api/contracts/webapi/IBlobsService\";\r\nimport { PictureTypes } from \"@api/models/market/constants/PictureTypes\";\r\nimport { VideoTypes } from \"@api/models/market/constants/VideoTypes\";\r\nimport { IChunkEntry } from \"@api/models/market/IChunkEntry\";\r\nimport { VIDEO_CHUNK_SIZE } from \"@market/App.const\";\r\nimport { IFilePicture } from \"@pigeon/models/IFilePicture\";\r\nimport { IFileVideo } from \"@pigeon/models/IFileVideo\";\r\nimport { IBlobManager } from \"@pigeon/services/contracts/IBlobManager\";\r\nimport { IFileManager } from \"@pigeon/services/contracts/IFileManager\";\r\nimport { Inject } from \"inversify-props\";\r\n\r\nexport const BLOB_CONTAINER_PICTURES = \"pictures\";\r\nexport const BLOB_CONTAINER_VIDEOS = \"videos\";\r\nexport const BLOB_DIRECTORY_PICTURES_PIGEONS = \"pigeons\";\r\nexport const BLOB_DIRECTORY_PICTURES_FANCIERS = \"fanciers\";\r\nexport const BLOB_DIRECTORY_PICTURES_AUCTIONS = \"auctions\";\r\nexport const BLOB_DIRECTORY_PICTURES_SHOPS = \"shops\";\r\n\r\nexport class BlobManager implements IBlobManager {\r\n @Inject()\r\n private blobsService: IBlobsService;\r\n @Inject()\r\n private fileManager: IFileManager;\r\n\r\n private BuildPigeonPictureBlobPath(pigeonId: number, filePicture: IFilePicture): string {\r\n return `${BLOB_DIRECTORY_PICTURES_PIGEONS}/${pigeonId}/${this.BuildPictureName(\r\n filePicture.pictureType,\r\n filePicture.file\r\n )}`;\r\n }\r\n\r\n private BuildFancierPictureBlobPath(fancierProfileId: number, filePicture: IFilePicture): string {\r\n return `${BLOB_DIRECTORY_PICTURES_FANCIERS}/${fancierProfileId}/${this.BuildPictureName(\r\n filePicture.pictureType,\r\n filePicture.file\r\n )}`;\r\n }\r\n\r\n private BuildAuctionPictureBlobPath(auctionId: number, filePicture: IFilePicture): string {\r\n return `${BLOB_DIRECTORY_PICTURES_AUCTIONS}/${auctionId}/${this.BuildPictureName(\r\n filePicture.pictureType,\r\n filePicture.file\r\n )}`;\r\n }\r\n\r\n private BuildShopPictureBlobPath(shopId: string, filePicture: IFilePicture): string {\r\n return `${BLOB_DIRECTORY_PICTURES_SHOPS}/${shopId}/${this.BuildPictureName(\r\n filePicture.pictureType,\r\n filePicture.file\r\n )}`;\r\n }\r\n\r\n private BuildPigeonVideoBlobPath(pigeonId: number, fileVideo: IFileVideo): string {\r\n return `${BLOB_DIRECTORY_PICTURES_PIGEONS}/${pigeonId}/${this.BuildVideoName(fileVideo.videoType, fileVideo.file)}`;\r\n }\r\n\r\n public BuildPictureName(pictureType: PictureTypes, file: File): string {\r\n let pictureName = \"\";\r\n\r\n switch (pictureType) {\r\n case PictureTypes.Pigeon:\r\n pictureName = \"pigeon\";\r\n break;\r\n case PictureTypes.Eye:\r\n pictureName = \"eye\";\r\n break;\r\n case PictureTypes.PigeonAndEye:\r\n pictureName = \"pigeonAndEye\";\r\n break;\r\n case PictureTypes.Pedigree:\r\n pictureName = \"pedigree\";\r\n break;\r\n case PictureTypes.Wing:\r\n pictureName = \"wing\";\r\n break;\r\n case PictureTypes.Fancier:\r\n pictureName = \"fancier\";\r\n break;\r\n\r\n case PictureTypes.Auction:\r\n pictureName = \"auction\";\r\n break;\r\n\r\n case PictureTypes.Shop:\r\n pictureName = \"shop\";\r\n break;\r\n case PictureTypes.Loft:\r\n pictureName = \"loft\";\r\n break;\r\n case PictureTypes.Network:\r\n pictureName = \"network\";\r\n break;\r\n\r\n case PictureTypes.Other:\r\n default:\r\n pictureName = \"other\";\r\n break;\r\n }\r\n\r\n return `${pictureName}.${this.fileManager.GetFileExtension(file)}`;\r\n }\r\n\r\n public BuildVideoName(videoType: VideoTypes, file: File): string {\r\n let pictureName = \"\";\r\n\r\n switch (videoType) {\r\n case VideoTypes.Pigeon:\r\n pictureName = \"pigeon\";\r\n break;\r\n case VideoTypes.Flight:\r\n pictureName = \"flight\";\r\n break;\r\n\r\n default:\r\n pictureName = \"video\";\r\n break;\r\n }\r\n\r\n return `${pictureName}.${this.fileManager.GetFileExtension(file)}`;\r\n }\r\n\r\n public ValidPictureMimeType({ type }: File): boolean {\r\n switch (type) {\r\n case \"image/jpeg\":\r\n case \"image/png\":\r\n case \"image/svg+xml\":\r\n case \"image/gif\":\r\n case \"image/webp\":\r\n case \"application/pdf\":\r\n return true;\r\n\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n public ValidVideoMimeType({ type }: File): boolean {\r\n switch (type) {\r\n case \"video/3gpp\":\r\n case \"video/3gpp2\":\r\n case \"video/mp4\":\r\n case \"video/mpeg\":\r\n case \"video/ogg\":\r\n case \"video/quicktime\":\r\n case \"video/x-ms-wmv\":\r\n case \"video/x-msvideo\":\r\n case \"video/x-flv\":\r\n return true;\r\n\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n public async InsertPigeonPictureAsync(pigeonId: number, filePicture: IFilePicture): Promise {\r\n if (!filePicture || !filePicture.file || !this.ValidPictureMimeType(filePicture.file))\r\n Promise.reject(\"Invalid argument exception\");\r\n\r\n try {\r\n const blobPath = this.BuildPigeonPictureBlobPath(pigeonId, filePicture);\r\n await this.blobsService.UploadAssetPicture(filePicture.file, BLOB_DIRECTORY_PICTURES_PIGEONS, pigeonId, blobPath);\r\n } catch (error: any) {\r\n return Promise.reject(error);\r\n }\r\n }\r\n\r\n public async InsertPigeonVideoAsync(pigeonId: number, fileVideo: IFileVideo): Promise {\r\n if (!fileVideo || !fileVideo.file || !this.ValidVideoMimeType(fileVideo.file))\r\n Promise.reject(\"Invalid argument exception\");\r\n\r\n try {\r\n const blobChunks: Blob[] = this.SliceBlobIntoChunks(fileVideo.file);\r\n const blobFileName = this.BuildVideoName(VideoTypes.Pigeon, fileVideo.file);\r\n\r\n for (let index = 0; index < blobChunks.length; index++) {\r\n const chunk = blobChunks[index];\r\n const chunkEntry: IChunkEntry = {\r\n chunk: chunk,\r\n pigeonKey: pigeonId,\r\n blobName: blobFileName, //fileVideo.file.name,\r\n index: index\r\n };\r\n\r\n await this.blobsService.UploadChunk(chunkEntry);\r\n }\r\n\r\n await this.blobsService.CommitChunks(pigeonId, {\r\n fileName: blobFileName, //fileVideo.file.name,\r\n fileSize: fileVideo.file.size,\r\n fileType: fileVideo.file.type\r\n });\r\n } catch (error: any) {\r\n return Promise.reject(error);\r\n }\r\n }\r\n\r\n private SliceBlobIntoChunks(fileBlob: Blob): Blob[] {\r\n const chunks = [];\r\n const chunkSize = VIDEO_CHUNK_SIZE * 1024 * 1024; // 10 MB\r\n const chunksAmount = Math.ceil(fileBlob.size / chunkSize);\r\n\r\n for (let i = 0; i < chunksAmount; i++) {\r\n const start = chunkSize * i;\r\n const end = chunkSize * (i + 1);\r\n\r\n const chunk = fileBlob.slice(start, end, fileBlob.type);\r\n chunks.push(chunk);\r\n }\r\n\r\n return chunks;\r\n }\r\n\r\n public async InsertFancierPictureAsync(fancierProfileId: number, filePicture: IFilePicture): Promise {\r\n if (!filePicture || !filePicture.file || !this.ValidPictureMimeType(filePicture.file))\r\n Promise.reject(\"Invalid argument exception\");\r\n\r\n const blobPath = this.BuildFancierPictureBlobPath(fancierProfileId, filePicture);\r\n try {\r\n await this.blobsService.UploadAssetPicture(\r\n filePicture.file,\r\n BLOB_DIRECTORY_PICTURES_FANCIERS,\r\n fancierProfileId,\r\n blobPath\r\n );\r\n } catch (error: any) {\r\n return Promise.reject(error);\r\n }\r\n }\r\n\r\n public async InsertAuctionPictureAsync(auctionId: number, filePicture: IFilePicture): Promise {\r\n if (!filePicture || !filePicture.file || !this.ValidPictureMimeType(filePicture.file))\r\n Promise.reject(\"Invalid argument exception\");\r\n\r\n const blobPath = this.BuildAuctionPictureBlobPath(auctionId, filePicture);\r\n try {\r\n await this.blobsService.UploadAssetPicture(\r\n filePicture.file,\r\n BLOB_DIRECTORY_PICTURES_AUCTIONS,\r\n auctionId,\r\n blobPath\r\n );\r\n } catch (error: any) {\r\n return Promise.reject(error);\r\n }\r\n }\r\n\r\n public async InsertShopPictureAsync(shopId: string, filePicture: IFilePicture): Promise {\r\n if (!filePicture || !filePicture.file || !this.ValidPictureMimeType(filePicture.file))\r\n Promise.reject(\"Invalid argument exception\");\r\n\r\n const blobPath = this.BuildShopPictureBlobPath(shopId, filePicture);\r\n try {\r\n await this.blobsService.UploadAssetPicture(filePicture.file, BLOB_DIRECTORY_PICTURES_SHOPS, shopId, blobPath);\r\n } catch (error: any) {\r\n return Promise.reject(error);\r\n }\r\n }\r\n}\r\n","import { IBlobsService } from \"@api/contracts/webapi/IBlobsService\";\r\nimport { IChunkEntry } from \"@api/models/market/IChunkEntry\";\r\nimport { IFileMetadata } from \"@api/models/market/IFileMetadata\";\r\nimport { BaseApiService } from \"@api/services/webapi/base/BaseApiService\";\r\nimport { authStore } from \"@market/stores/App.store.modules\";\r\nimport { BLOB_CONTAINER_PICTURES, BLOB_CONTAINER_VIDEOS } from \"@pigeon/services/BlobManager\";\r\nimport { AxiosPromise } from \"axios\";\r\n\r\nexport class BlobsService extends BaseApiService implements IBlobsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n /** @deprecated This method doesn t check the read/write permissions for current Vendor/Contributor for the current ObjectAsset */\r\n UploadPicture(file: File, blobPath = \"\"): AxiosPromise {\r\n if (!authStore.IsVendor && !authStore.IsContributor)\r\n return Promise.reject(\"unauthorized: The operation is not authorized.\");\r\n\r\n const blobFullPath: string = blobPath ? blobPath : file.name.toLowerCase();\r\n\r\n const formData = new FormData();\r\n formData.append(\"file\", file, blobFullPath);\r\n\r\n return this.Client().post(`Blobs/${BLOB_CONTAINER_PICTURES}`, formData, {\r\n headers: {\r\n accept: \"application/json\",\r\n contentType: \"multipart/form-data;\"\r\n }\r\n });\r\n }\r\n\r\n UploadAssetPicture(\r\n file: File,\r\n assetDirectory: string,\r\n assetObjectKey: number | string,\r\n blobPath: string\r\n ): AxiosPromise {\r\n if (!authStore.IsVendor && !authStore.IsContributor)\r\n return Promise.reject(\"unauthorized: The operation is not authorized.\");\r\n\r\n const formData = new FormData();\r\n formData.append(\"file\", file, blobPath);\r\n\r\n return this.Client().post(`Blobs/${BLOB_CONTAINER_PICTURES}/${assetDirectory}/${assetObjectKey}`, formData, {\r\n headers: {\r\n accept: \"application/json\",\r\n contentType: \"multipart/form-data;\"\r\n }\r\n });\r\n }\r\n\r\n UploadVideo(file: File, blobPath = \"\"): AxiosPromise {\r\n if (!authStore.IsVendor && !authStore.IsContributor)\r\n return Promise.reject(\"unauthorized: The operation is not authorized.\");\r\n\r\n const blobFullPath: string = blobPath ? blobPath : file.name.toLowerCase();\r\n const formData = new FormData();\r\n formData.append(\"file\", file, blobFullPath);\r\n\r\n return this.Client().post(`Blobs/${BLOB_CONTAINER_VIDEOS}`, formData, {\r\n headers: {\r\n accept: \"application/json\",\r\n contentType: \"multipart/form-data;\"\r\n }\r\n });\r\n }\r\n\r\n UploadAssetVideo(\r\n file: File,\r\n assetDirectory: string,\r\n assetObjectKey: number | string,\r\n blobPath: string\r\n ): AxiosPromise {\r\n if (!authStore.IsVendor && !authStore.IsContributor)\r\n return Promise.reject(\"unauthorized: The operation is not authorized.\");\r\n\r\n const formData = new FormData();\r\n formData.append(\"file\", file, blobPath);\r\n\r\n return this.Client().post(`Blobs/${BLOB_CONTAINER_VIDEOS}/${assetDirectory}/${assetObjectKey}`, formData, {\r\n headers: {\r\n accept: \"application/json\",\r\n contentType: \"multipart/form-data;\"\r\n }\r\n });\r\n }\r\n\r\n UploadChunk(chunkEntry: IChunkEntry): AxiosPromise {\r\n if (!authStore.IsVendor && !authStore.IsContributor)\r\n return Promise.reject(\"unauthorized: The operation is not authorized.\");\r\n\r\n return this.Client().post(\r\n `Blobs/${BLOB_CONTAINER_VIDEOS}/chunk/${chunkEntry.pigeonKey}/${chunkEntry.blobName}/${chunkEntry.index}`,\r\n chunkEntry.chunk,\r\n {\r\n headers: {\r\n \"Content-Type\": \"application/octet-stream\"\r\n // \"Content-Length\": chunkEntry.chunk.size\r\n }\r\n }\r\n );\r\n }\r\n\r\n CommitChunks(pigeonKey: number, fileMetadata: IFileMetadata): AxiosPromise {\r\n if (!authStore.IsVendor && !authStore.IsContributor)\r\n return Promise.reject(\"unauthorized: The operation is not authorized.\");\r\n\r\n const blobName = fileMetadata.fileName;\r\n return this.Client().post(`Blobs/${BLOB_CONTAINER_VIDEOS}/chunks/${pigeonKey}/${blobName}`, fileMetadata);\r\n }\r\n\r\n DeletePicture(\r\n assetContainer: string,\r\n assetDirectory: string,\r\n assetObjectKey: number,\r\n blobPath: string\r\n ): AxiosPromise {\r\n if (!authStore.IsVendor && !authStore.IsContributor)\r\n return Promise.reject(\"unauthorized: The operation is not authorized.\");\r\n\r\n return this.Client().delete(`Blobs/${assetContainer}/${assetDirectory}/${assetObjectKey}/${blobPath}`);\r\n }\r\n}\r\n","import { IConnectedAccountsService } from \"@api/contracts/webapi/IConnectedAccountsService\";\r\nimport { IConnectVerification } from \"@api/models/auth/IConnectVerification\";\r\nimport { BaseApiService } from \"@api/services/webapi/base/BaseApiService\";\r\nimport { accountStore, authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport Stripe from \"stripe\";\r\nimport { memoizeAsync } from \"utils-decorators\";\r\n\r\nexport class ConnectedAccountsService extends BaseApiService implements IConnectedAccountsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public FetchState(): AxiosPromise {\r\n return this.Client().get(\"ConnectedAccounts/State\");\r\n }\r\n\r\n @memoizeAsync()\r\n public FetchConnectedAccount(connectedAccountKey: string): AxiosPromise {\r\n if (!authStore.IsAdministrator && (!authStore.IsVendor || !accountStore.AccountVendorIsVerified))\r\n return Promise.reject(\"Fetch stripe account is authorized only for a certified vendor\");\r\n\r\n return this.Client().get(`connectedAccounts/${connectedAccountKey}`);\r\n }\r\n\r\n @memoizeAsync()\r\n public FetchDashboardLink(vendorKey?: string): AxiosPromise {\r\n if (!authStore.IsAdministrator && (!authStore.IsVendor || !accountStore.AccountVendorIsVerified))\r\n return Promise.reject(\"Fetch Dashboard stripe is authorized only for a certified vendor\");\r\n\r\n const currentVendorKey = authStore.IsAdministrator ? vendorKey : userStore.user?.id;\r\n return this.Client().get(`ConnectedAccounts/Dashboard/${currentVendorKey}`);\r\n }\r\n\r\n public FetchBalance(): AxiosPromise {\r\n if (!authStore.IsAdministrator) return Promise.reject(\"Fetch balance is not authorized\");\r\n\r\n return this.Client().get(\"ConnectedAccounts/Balance\");\r\n }\r\n\r\n public PostOAuthConnectVerification(code: string, stateToken: string): AxiosPromise {\r\n const verification: IConnectVerification = {\r\n code: code,\r\n state: stateToken\r\n };\r\n\r\n return this.Client().post(\"ConnectedAccounts/OAuth\", verification);\r\n }\r\n}\r\n","import { IContactsService } from \"@api/contracts/webapi/IContactsService\";\r\nimport { Channels } from \"@api/enumerations/Channels\";\r\nimport { IContactMessage } from \"@api/models/auth/IContact\";\r\nimport { BaseApiService } from \"@api/services/webapi/base/BaseApiService\";\r\nimport { AxiosPromise } from \"axios\";\r\n\r\nexport class ContactsService extends BaseApiService implements IContactsService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n Message(contact: IContactMessage): AxiosPromise {\r\n return this.Client().post(`Contacts/${Channels.Market}`, contact);\r\n }\r\n}\r\n","import { ICountriesService } from \"@api/contracts/webapi/ICountriesService\";\r\nimport { ICountry } from \"@api/models/shared/ICountry\";\r\nimport { BaseApiService } from \"@api/services/webapi/base/BaseApiService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { memoizeAsync } from \"utils-decorators\";\r\n\r\nexport class CountriesService extends BaseApiService implements ICountriesService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n @memoizeAsync()\r\n FetchAll(locale: string): AxiosPromise {\r\n return this.Client().get(`Countries?locale=${locale}`);\r\n }\r\n}\r\n","import { IFacebookService } from \"@api/contracts/webapi/IFacebookService\";\r\nimport { BaseApiService } from \"@api/services/webapi/base/BaseApiService\";\r\nimport { AxiosPromise } from \"axios\";\r\n\r\nexport interface IFacebookPost {\r\n id: string;\r\n created_time: string;\r\n message?: string;\r\n full_picture?: string;\r\n permalink_url: string;\r\n status_type: string;\r\n is_published: boolean;\r\n comments?: any;\r\n reactions?: { pic: any; type: any };\r\n likes?: { username: any };\r\n sharedposts?: { description: any; full_picture: any; message: any };\r\n}\r\n\r\nexport interface IFacebookDataPaging {\r\n data: T;\r\n paging: {\r\n cursors: {\r\n before: string;\r\n after: string;\r\n };\r\n next: string;\r\n };\r\n}\r\n\r\n// See https://developers.facebook.com/docs/graph-api\r\n// See: https://developers.facebook.com/tools/explorer/?method=GET&path=PigeonMarket.be&version=v15.0\r\n// See: https://developers.facebook.com/tools/explorer/?method=GET&path=PigeonMarket.be%2Ffeed&version=v15.0\r\nexport class FacebookService extends BaseApiService implements IFacebookService {\r\n public GetLikesCount(): AxiosPromise {\r\n return this.Client().get(\"Facebook/likes-count\");\r\n }\r\n\r\n // public GetUserAccessToken(): AxiosPromise {\r\n // return this.Client().get(\"Facebook/user-access-token\");\r\n // }\r\n\r\n // public GetPageAccessToken(): AxiosPromise {\r\n // return this.Client().get(\"Facebook/page-access-token\");\r\n // }\r\n\r\n public InitFacebookSDK(): void {\r\n const pigeonMarketFbAppId: string = process.env.VUE_APP_FACEBOOK_APP_ID as string;\r\n if (!pigeonMarketFbAppId) console.error(\"Settings error: The VUE_APP_FACEBOOK_APP_ID env variable is undefined.\");\r\n\r\n // Init Facebook SDK\r\n if (FB) {\r\n FB.XFBML.parse();\r\n } else {\r\n // See: https://developers.facebook.com/docs/javascript/quickstart\r\n (window as any).fbAsyncInit = () => {\r\n FB.init({\r\n appId: process.env.VUE_APP_FACEBOOK_APP_ID as string,\r\n autoLogAppEvents: true,\r\n xfbml: true,\r\n version: \"v15.0\"\r\n });\r\n };\r\n }\r\n }\r\n\r\n public async FetchFanCount(): Promise {\r\n const FBPageAccessToken = process.env.VUE_APP_FACEBOOK_PAGE_ACCESS_TOKEN as string;\r\n\r\n return new Promise((resolve, reject) => {\r\n try {\r\n FB.api(\"/PigeonMarket.be\", \"get\", { access_token: FBPageAccessToken, fields: \"fan_count\" }, (response: any) => {\r\n return resolve(response[\"fan_count\"]);\r\n });\r\n } catch (error) {\r\n return reject(error);\r\n }\r\n });\r\n }\r\n\r\n public async FetchFollowersCount(): Promise {\r\n const FBPageAccessToken = process.env.VUE_APP_FACEBOOK_PAGE_ACCESS_TOKEN as string;\r\n\r\n return new Promise((resolve, reject) => {\r\n try {\r\n FB.api(\r\n \"/PigeonMarket.be\",\r\n \"get\",\r\n { access_token: FBPageAccessToken, fields: \"followers_count\" },\r\n (response: any) => {\r\n return resolve(response[\"followers_count\"]);\r\n }\r\n );\r\n } catch (error) {\r\n return reject(error);\r\n }\r\n });\r\n }\r\n\r\n public async FetchFeed(): Promise> {\r\n const FBPageAccessToken = process.env.VUE_APP_FACEBOOK_PAGE_ACCESS_TOKEN as string;\r\n\r\n return new Promise((resolve, reject) => {\r\n try {\r\n FB.api(\r\n \"/PigeonMarket.be/feed\",\r\n \"get\",\r\n {\r\n access_token: FBPageAccessToken,\r\n fields:\r\n \"id,permalink_url,message,created_time,status_type,full_picture,comments,reactions{pic,type},likes{username},sharedposts{description,full_picture,message},is_published\"\r\n },\r\n (response: any) => {\r\n return resolve(response);\r\n }\r\n );\r\n } catch (error) {\r\n return reject(error);\r\n }\r\n });\r\n }\r\n}\r\n","import { IInvoicesService } from \"@api/contracts/webapi/IInvoicesService\";\r\nimport { BaseApiService } from \"@api/services/webapi/base/BaseApiService\";\r\nimport { AxiosPromise } from \"axios\";\r\n\r\nexport class InvoicesService extends BaseApiService implements IInvoicesService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n DownloadInvoiceVendor(saleKey: number): AxiosPromise {\r\n return this.Client().get(`Invoices/DownloadInvoiceVendor(saleKey=${saleKey})`, {\r\n responseType: \"arraybuffer\"\r\n });\r\n }\r\n\r\n DownloadInvoicePlatform(saleKey: number): AxiosPromise {\r\n return this.Client().get(`Invoices/DownloadInvoicePlatform(saleKey=${saleKey})`, {\r\n responseType: \"arraybuffer\"\r\n });\r\n }\r\n}\r\n","import { IPaymentIntentsService } from \"@api/contracts/webapi/IPaymentIntentsService\";\r\nimport { IPaymentRequest } from \"@api/models/market/IPaymentRequest\";\r\nimport { IPaymentResponse } from \"@api/models/market/IPaymentResponse\";\r\nimport { BaseApiService } from \"@api/services/webapi/base/BaseApiService\";\r\nimport { AxiosPromise } from \"axios\";\r\n\r\n// Note: Stripe offers differents API and UI Integration to proceed to payment.\r\n// Charge API is obsolete\r\n// PaymentIntents API is new, supports wilde payment methods and differentes payment flows/scenari. See: https://stripe.com/docs/payments/accept-a-payment?platform=web&ui=elements#web-create-intent\r\n\r\n// Technical rules: the project uses Card Element Integration (and custom payment elements) + PaymentIntent API because it is flexible and supports wanted payment scenario.\r\n// Warning this project use different payment controller / solution to integrate other payment methods(cash, paypal, western union,...).\r\nexport class PaymentIntentsService extends BaseApiService implements IPaymentIntentsService {\r\n public GetPaymentClientSecret(paymentIntentId: string): AxiosPromise {\r\n return this.Client().get(`PaymentIntents/${paymentIntentId}/client-secret`);\r\n }\r\n\r\n // See https://stripe.com/docs/payments/payment-intents/creating-payment-intents\r\n // See https://stripe.com/docs/api/payment_intents/create\r\n // Note: Best practice use IdempotencyKey https://stripe.com/docs/api/idempotent_requests\r\n public CreatePayment(paymentRequest: IPaymentRequest): AxiosPromise {\r\n return this.Client().post(\"PaymentIntents/pay\", paymentRequest);\r\n }\r\n}\r\n","import { IPayoutsService } from \"@api/contracts/webapi/IPayoutsService\";\r\nimport { IPayout } from \"@api/models/market/IPayout\";\r\nimport { BaseApiService } from \"@api/services/webapi/base/BaseApiService\";\r\nimport { authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\n\r\nexport class PayoutsService extends BaseApiService implements IPayoutsService {\r\n public FetchAllPayouts(from?: Date, to?: Date): AxiosPromise {\r\n if (!authStore.IsVendor && !authStore.IsAdministrator) throw new Error(\"Unauthorized\");\r\n\r\n let queryParam = \"\";\r\n if (from) queryParam += `/${from.toISOString()}`;\r\n if (to) queryParam += `/${to.toISOString()}`;\r\n\r\n return this.Client().get(`Payouts${queryParam}`);\r\n }\r\n\r\n public FetchAllPayoutsByVendor(vendorKey: string, from?: Date, to?: Date): AxiosPromise {\r\n if (!authStore.IsVendor && !authStore.IsAdministrator) throw new Error(\"Unauthorized\");\r\n if (!vendorKey || (vendorKey != userStore.user?.id && !authStore.IsAdministrator)) throw new Error(\"Unauthorized\");\r\n\r\n let queryParam = \"\";\r\n if (from) queryParam += `/${from.toISOString()}`;\r\n if (to) queryParam += `/${to.toISOString()}`;\r\n\r\n return this.Client().get(`Payouts/vendor/${vendorKey}${queryParam}`);\r\n }\r\n\r\n public FetchBySaleAndVendor(saleKey: number, vendorKey: string): AxiosPromise {\r\n if (!authStore.IsVendor && !authStore.IsAdministrator) throw new Error(\"Unauthorized\");\r\n if (!vendorKey || (vendorKey != userStore.user?.id && !authStore.IsAdministrator)) throw new Error(\"Unauthorized\");\r\n\r\n return this.Client().get(`Payout/${saleKey}/vendor/${vendorKey}`);\r\n }\r\n}\r\n","import { IPurchasesService } from \"@api/contracts/webapi/IPurchasesService\";\r\nimport { IPaymentRequest } from \"@api/models/market/IPaymentRequest\";\r\nimport { BaseApiService } from \"@api/services/webapi/base/BaseApiService\";\r\nimport { AxiosPromise } from \"axios\";\r\n\r\nexport class PurchasesService extends BaseApiService implements IPurchasesService {\r\n public CreatePayment(paymentRequest: IPaymentRequest): AxiosPromise {\r\n return this.Client().post(\"Purchases/pay\", paymentRequest);\r\n }\r\n\r\n // public FlagCashAsCollected(saleKey: number): AxiosPromise {\r\n // const cashCollectedRequest: ICashCollectedRequest = { saleKey: saleKey };\r\n // return this.Client().post(`Purchases/cash-collected`, cashCollectedRequest);\r\n // }\r\n}\r\n","import { IServersService } from \"@api/contracts/webapi/IServersService\";\r\nimport { BaseApiService } from \"@api/services/webapi/base/BaseApiService\";\r\nimport { AxiosPromise } from \"axios\";\r\n\r\nexport class ServersService extends BaseApiService implements IServersService {\r\n constructor() {\r\n super();\r\n }\r\n\r\n public GetDateTime(): AxiosPromise {\r\n return this.Client().get(\"Server/DateTime\");\r\n }\r\n}\r\n","import { IStripePayoutsService } from \"@api/contracts/webapi/IStripePayoutsService\";\r\nimport { IPayout } from \"@api/models/market/IPayout\";\r\nimport { BaseApiService } from \"@api/services/webapi/base/BaseApiService\";\r\nimport { authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport Stripe from \"stripe\";\r\n\r\nexport class StripePayoutsService extends BaseApiService implements IStripePayoutsService {\r\n public FetchAll(): AxiosPromise {\r\n if (!authStore.IsAdministrator) throw new Error(\"Unauthorized\");\r\n\r\n return this.Client().get(`stripe-payouts/payouts`);\r\n }\r\n\r\n public FetchAllPayouts(from?: Date, to?: Date): AxiosPromise {\r\n if (!authStore.IsAdministrator) throw new Error(\"Unauthorized\");\r\n\r\n let queryParam = \"\";\r\n if (from) queryParam += `/${from.toISOString()}`;\r\n if (to) queryParam += `/${to.toISOString()}`;\r\n\r\n return this.Client().get(`stripe-payouts/payouts${queryParam}`);\r\n }\r\n\r\n public FetchAllPayoutsByStripeVendor(\r\n stripeConnectedAccountId: string,\r\n from?: Date,\r\n to?: Date\r\n ): AxiosPromise {\r\n if (!authStore.IsVendor && !authStore.IsAdministrator) throw new Error(\"Unauthorized\");\r\n if (stripeConnectedAccountId != userStore.user?.stripeConnectedAccountId && !authStore.IsAdministrator)\r\n throw new Error(\"Unauthorized\");\r\n if (!stripeConnectedAccountId) return Promise.reject(\"Argument exception: stripeConnectedAccountId is undefined\");\r\n\r\n let queryParam = \"\";\r\n if (from) queryParam += `/${from.toISOString()}`;\r\n if (to) queryParam += `/${to.toISOString()}`;\r\n\r\n return this.Client().get(`stripe-payouts/payouts/vendor/${stripeConnectedAccountId}${queryParam}`);\r\n }\r\n\r\n public FetchAllStripePayoutsByStripeVendor(\r\n stripeConnectedAccountId: string\r\n ): AxiosPromise> {\r\n if (!authStore.IsVendor && !authStore.IsAdministrator) throw new Error(\"Unauthorized\");\r\n if (\r\n !stripeConnectedAccountId ||\r\n (stripeConnectedAccountId != userStore.user?.stripeConnectedAccountId && !authStore.IsAdministrator)\r\n )\r\n throw new Error(\"Unauthorized\");\r\n\r\n return this.Client().get(`stripe-payouts/vendor/${stripeConnectedAccountId}`);\r\n }\r\n\r\n public FetchStripePayout(payoutKey: string): AxiosPromise {\r\n if (!authStore.IsAdministrator) throw new Error(\"Unauthorized\");\r\n\r\n return this.Client().get(`stripe-payout/${payoutKey}`);\r\n }\r\n\r\n public FetchStripePayoutByStripeVendor(\r\n payoutKey: string,\r\n stripeConnectedAccountId: string\r\n ): AxiosPromise {\r\n if (!authStore.IsVendor && !authStore.IsAdministrator) throw new Error(\"Unauthorized\");\r\n if (\r\n !stripeConnectedAccountId ||\r\n (stripeConnectedAccountId != userStore.user?.stripeConnectedAccountId && !authStore.IsAdministrator)\r\n )\r\n throw new Error(\"Unauthorized\");\r\n\r\n return this.Client().get(`stripe-payout/${payoutKey}/vendor/${stripeConnectedAccountId}`);\r\n }\r\n}\r\n","import { ITwitterService } from \"@api/contracts/webapi/ITwitterService\";\r\nimport { BaseApiService } from \"@api/services/webapi/base/BaseApiService\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { Status as Tweet } from \"twitter-d\";\r\n\r\n// See https://developer.twitter.com/en/docs/twitter-api\r\nexport class TwitterService extends BaseApiService implements ITwitterService {\r\n public FetchLatestTweet(): AxiosPromise {\r\n return this.Client().get(\"Twitter/latest-tweet\");\r\n }\r\n\r\n public GetNumberFollowers(): AxiosPromise {\r\n return this.Client().get(\"Twitter/number-followers\");\r\n }\r\n}\r\n","import { PictureTypes } from \"@api/models/market/constants/PictureTypes\";\r\nimport { SaleTypes } from \"@api/models/market/constants/SaleTypes\";\r\nimport { IAuction } from \"@api/models/market/IAuction\";\r\nimport { IPicture } from \"@api/models/market/IPicture\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { IUser } from \"@api/models/market/IUser\";\r\nimport { authStore } from \"@market/stores/App.store.modules\";\r\nimport { MathHelper } from \"@pigeon/helpers/MathHelper\";\r\nimport { IAuctionManager } from \"@pigeon/services/contracts/IAuctionManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { ISaleManager } from \"./contracts/ISaleManager\";\r\n\r\nexport class AuctionManager implements IAuctionManager {\r\n readonly defaultAuctionPicture = require(\"@pigeon/assets/images/pictures/auction-generic.webp\");\r\n\r\n @Inject()\r\n private saleManager: ISaleManager;\r\n\r\n //#region Picture/Video\r\n public GetPictureRemoteUrl(relativeUrl: string | undefined): string {\r\n if (!relativeUrl) return this.defaultAuctionPicture;\r\n\r\n // test if parameter is a remote url\r\n if (/(http(s?)):\\/\\//gi.test(relativeUrl)) return relativeUrl;\r\n\r\n // test if parameter is a inline data image\r\n if (/(data):/gi.test(relativeUrl)) return relativeUrl;\r\n\r\n return `${process.env.VUE_APP_AZURE_STORAGE_HOST}${relativeUrl}`;\r\n }\r\n\r\n public GetPictureAuction(pictures?: IPicture[], useRawPicture = false): string {\r\n if (!pictures || !pictures.length) {\r\n return `${this.defaultAuctionPicture}`;\r\n }\r\n\r\n const picture: IPicture | undefined = pictures.find((picture) => picture.type === PictureTypes.Auction);\r\n if (!picture) return this.defaultAuctionPicture;\r\n\r\n const pictureUrl = picture.urlWebOptimized && !useRawPicture ? picture.urlWebOptimized : picture.url;\r\n if (!pictureUrl) return this.defaultAuctionPicture;\r\n\r\n return this.GetPictureRemoteUrl(pictureUrl);\r\n }\r\n\r\n public GetThumbnailAuction(auction: IAuction, useRawPicture = false): string {\r\n if (!auction.pictures?.length) return \"\";\r\n\r\n const picture = this.GetPictureAuction(auction.pictures, useRawPicture);\r\n if (!picture) return \"\";\r\n\r\n try {\r\n const thumbnailUrl = new URL(picture);\r\n // if (!useRawPicture) {\r\n // const thumbnailPathSegments = thumbnailUrl.pathname.split(\"/\");\r\n\r\n // if (thumbnailPathSegments.length > 0) {\r\n // thumbnailPathSegments[thumbnailPathSegments.length - 1] = \"thumbnail.webp\";\r\n // const webOptimizedThumbnailPath = thumbnailPathSegments.join(\"/\");\r\n // thumbnailUrl.pathname = webOptimizedThumbnailPath;\r\n // }\r\n // }\r\n\r\n return thumbnailUrl.href;\r\n } catch (error: any) {\r\n console.error(`Invalid URL picture : '${picture}'`);\r\n return \"\";\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Function\r\n public IsBidSaleClose(sale: ISale) {\r\n if (!sale || !sale.endDate) return false;\r\n\r\n return new Date() > new Date(sale.endDate);\r\n }\r\n\r\n public IsVendorOfThisSale(sale: ISale, currentUser: IUser): boolean {\r\n if (!sale || !authStore.IsVendor || !currentUser) return false;\r\n\r\n return sale.userId === currentUser.id;\r\n }\r\n\r\n public ShouldShowBidderContact(sale: ISale, currentUser: IUser): boolean {\r\n if (!sale || !currentUser) return false;\r\n\r\n return this.IsBidSaleClose(sale) && (authStore.IsAdministrator || this.IsVendorOfThisSale(sale, currentUser))\r\n ? true\r\n : false;\r\n }\r\n\r\n public ShouldShowProfits(sale: ISale, currentUser: IUser): boolean {\r\n if (!sale || !currentUser) return false;\r\n\r\n return sale.type == SaleTypes.Bid &&\r\n this.IsBidSaleClose(sale) &&\r\n (authStore.IsAdministrator || this.IsVendorOfThisSale(sale, currentUser))\r\n ? true\r\n : false;\r\n }\r\n //#endregion\r\n\r\n //#region SalesByAuction\r\n public FilterSalesByAuction(sales: ISale[], auction: IAuction): ISale[] {\r\n if (!sales?.length || !auction) return [];\r\n\r\n const saleIdsOfAuction = auction.sales.map((s) => s.id);\r\n return sales.filter((s) => saleIdsOfAuction.includes(s.id));\r\n }\r\n\r\n public CountSalesByAuction(sales: ISale[], auction: IAuction): number {\r\n const salesOfAuction = this.FilterSalesByAuction(sales, auction);\r\n\r\n return salesOfAuction?.length ?? 0;\r\n }\r\n\r\n public CountAuctionSales(auction: IAuction): number {\r\n if (!auction || !auction.sales || !auction.sales.length) return 0;\r\n\r\n return auction.sales.length;\r\n }\r\n //#endregion\r\n\r\n //#region AverageAndTotal\r\n public CalculateAuctionTotalSalePrices(salesOfAuction: ISale[]): number {\r\n let total: number = 0;\r\n\r\n for (const sale of salesOfAuction) {\r\n total += sale.price;\r\n }\r\n\r\n return Math.floor(total);\r\n }\r\n\r\n public CalculateAuctionTotalBusinessFigures(salesOfAuction: ISale[]): number {\r\n let total: number = 0;\r\n\r\n const salesOfAuctionWithBids = salesOfAuction.filter((s) => s.bids?.length);\r\n for (const sale of salesOfAuctionWithBids) {\r\n total += this.saleManager.CalculateSaleAmount(sale);\r\n }\r\n\r\n return Math.floor(total);\r\n }\r\n\r\n public CalculateAuctionSalesAverage(salesOfAuction: ISale[]): number {\r\n if (salesOfAuction.length <= 0) return 0;\r\n\r\n const totalBusinessFigures = this.CalculateAuctionTotalBusinessFigures(salesOfAuction);\r\n const saleWithAtLeastOneOffer = salesOfAuction.filter((s) => s.bids && s.bids.length >= 1)?.length ?? 1;\r\n const salesAverage = totalBusinessFigures / saleWithAtLeastOneOffer;\r\n return MathHelper.RoundToInteger(salesAverage);\r\n }\r\n\r\n public CalculateAuctionTotalProfits(salesOfAuction: ISale[]): number {\r\n let total: number = 0;\r\n\r\n const salesOfAuctionWithBids = salesOfAuction.filter((s) => s.bids?.length);\r\n for (const sale of salesOfAuctionWithBids) {\r\n total += this.saleManager.CalculateVendorProfitsAmount(sale);\r\n }\r\n\r\n return Math.floor(total);\r\n }\r\n\r\n public CalculateAuctionTotalFees(salesOfAuction: ISale[]): number {\r\n let total: number = 0;\r\n\r\n const salesOfAuctionWithBids = salesOfAuction.filter((s) => s.bids?.length);\r\n for (const sale of salesOfAuctionWithBids) {\r\n total += this.saleManager.CalculatePlatformFeesAmount(sale);\r\n }\r\n\r\n return Math.floor(total);\r\n }\r\n //#endregion\r\n\r\n //#region Count\r\n public CountAuctionSalesInProgress(salesOfAuction: ISale[]): number {\r\n const salesInProgressOfAuction = salesOfAuction.filter((s) => s.endDate && new Date(s.endDate) > new Date());\r\n\r\n return salesInProgressOfAuction?.length ?? 0;\r\n }\r\n\r\n public CountAuctionSalesOver(salesOfAuction: ISale[]): number {\r\n const salesOverOfAuction = salesOfAuction.filter((s) => s.endDate && new Date(s.endDate) < new Date());\r\n\r\n return salesOverOfAuction?.length ?? 0;\r\n }\r\n\r\n public CountAuctionBidSales(salesOfAuction: ISale[]): number {\r\n let bidsCount: number = 0;\r\n\r\n // bidders\r\n for (const sale of salesOfAuction.filter((s) => s.type === SaleTypes.Bid)) {\r\n bidsCount += sale.bids?.length ?? 0;\r\n }\r\n\r\n return bidsCount;\r\n }\r\n\r\n public CountAuctionBidders(salesOfAuction: ISale[]): number {\r\n const bidders: Set = new Set();\r\n\r\n // bidders\r\n for (const sale of salesOfAuction.filter((s) => s.type === SaleTypes.Bid)) {\r\n if (sale.bids) {\r\n for (const bid of sale.bids) {\r\n bidders.add(bid.userId);\r\n }\r\n }\r\n }\r\n\r\n return bidders.size;\r\n }\r\n\r\n public CountAuctionBiddersCountry(salesOfAuction: ISale[]): number {\r\n return this.RetrieveAuctionBiddersCountries(salesOfAuction)?.size ?? 0;\r\n }\r\n\r\n public RetrieveAuctionBiddersCountries(salesOfAuction: ISale[]): Set {\r\n const countriesOfBidders: Set = new Set();\r\n\r\n // bidders\r\n for (const sale of salesOfAuction.filter((s) => s.type === SaleTypes.Bid)) {\r\n if (sale.bids) {\r\n for (const bid of sale.bids) {\r\n if (bid.user && bid.user.countryCode) countriesOfBidders.add(bid.user.countryCode);\r\n }\r\n }\r\n }\r\n\r\n return countriesOfBidders;\r\n }\r\n //#endregion\r\n}\r\n","import { PaymentMethodTypes } from \"@api/models/market/constants/PaymentMethodTypes\";\r\nimport { IAddress } from \"@api/models/market/IAddress\";\r\nimport { ICheckoutSessionCustomer } from \"@api/models/market/ICheckoutSessionCustomer\";\r\nimport { ICheckoutSessionPayment } from \"@api/models/market/ICheckoutSessionPayment\";\r\nimport { ICheckoutSessionShipping } from \"@api/models/market/ICheckoutSessionShipping\";\r\nimport {\r\n BANK_ACCOUNT_HOLDER_ADDRESS,\r\n BANK_ACCOUNT_HOLDER_NAME,\r\n BANK_BIC,\r\n BANK_IBAN,\r\n BANK_NAME,\r\n BASE_DEPOSIT_RATE,\r\n SEPA_COUNTRIES\r\n} from \"@market/App.const\";\r\nimport { ICartItem } from \"@market/models/ICartItem\";\r\nimport { IPersonBankData } from \"@pigeon/components/module/ModuleTransferFormSEPA\";\r\nimport { IBillingDetails } from \"@pigeon/models/IBillingDetails\";\r\nimport { ICheckoutManager } from \"@pigeon/services/contracts/ICheckoutManager\";\r\n\r\nexport class CheckoutManager implements ICheckoutManager {\r\n public HasACartVoucherItem(cartItems: ICartItem[]): boolean {\r\n return cartItems.some((ci) => ci.sale.flagVoucher);\r\n }\r\n\r\n public IsCustomerInSepaArea(customer: ICheckoutSessionCustomer | null): boolean {\r\n if (!customer || !customer.countryCode) return false;\r\n\r\n return SEPA_COUNTRIES.includes(customer.countryCode);\r\n }\r\n\r\n private IsCustomerInBenelux(customer: ICheckoutSessionCustomer): boolean {\r\n if (!customer || !customer.countryCode) return false;\r\n\r\n return [\"BE\", \"NL\", \"LU\"].includes(customer.countryCode);\r\n }\r\n\r\n private IsCustomerInBelgium(customer: ICheckoutSessionCustomer): boolean {\r\n if (!customer || !customer.countryCode) return false;\r\n\r\n return [\"BE\"].includes(customer.countryCode);\r\n }\r\n\r\n private IsCustomerInNetherlands(customer: ICheckoutSessionCustomer): boolean {\r\n if (!customer || !customer.countryCode) return false;\r\n\r\n return [\"NL\"].includes(customer.countryCode);\r\n }\r\n\r\n private IsCustomerInPoland(customer: ICheckoutSessionCustomer): boolean {\r\n if (!customer || !customer.countryCode) return false;\r\n\r\n return [\"PL\"].includes(customer.countryCode);\r\n }\r\n\r\n private IsCustomerInGermany(customer: ICheckoutSessionCustomer): boolean {\r\n if (!customer || !customer.countryCode) return false;\r\n\r\n return [\"DE\"].includes(customer.countryCode);\r\n }\r\n\r\n private IsCustomerInFrance(customer: ICheckoutSessionCustomer): boolean {\r\n if (!customer || !customer.countryCode) return false;\r\n\r\n return [\"FR\"].includes(customer.countryCode);\r\n }\r\n\r\n // Note: Cartes Bancaires is done via the stripe card elements\r\n public IsCartesBancairesAvailableForCustomer(customer: ICheckoutSessionCustomer): boolean {\r\n if (!customer || !customer.countryCode) return false;\r\n\r\n return this.IsCustomerInFrance(customer);\r\n }\r\n\r\n // Note: Cartes Bancaires payment is not a bank redirect payement (it s a card payment)\r\n public IsBankRedirectPaymentAvailableForCustomer(customer: ICheckoutSessionCustomer): boolean {\r\n if (!customer || !customer.countryCode) return false;\r\n\r\n return (\r\n this.IsBancontactPaymentAvailableForCustomer(customer) ||\r\n this.IsiDealPaymentAvailableForCustomer(customer) ||\r\n this.IsP24PaymentAvailableForCustomer(customer) ||\r\n this.IsGiropayAvailableForCustomer(customer)\r\n );\r\n }\r\n\r\n public IsBankRedirectPaymentsAvailablesForCustomer(customer: ICheckoutSessionCustomer): boolean {\r\n if (!customer || !customer.countryCode) return false;\r\n\r\n let counter = 0;\r\n if (this.IsBancontactPaymentAvailableForCustomer(customer)) counter++;\r\n if (this.IsiDealPaymentAvailableForCustomer(customer)) counter++;\r\n if (this.IsP24PaymentAvailableForCustomer(customer)) counter++;\r\n if (this.IsGiropayAvailableForCustomer(customer)) counter++;\r\n\r\n return counter > 1;\r\n }\r\n\r\n public IsBancontactPaymentAvailableForCustomer(customer: ICheckoutSessionCustomer): boolean {\r\n if (!customer || !customer.countryCode) return false;\r\n\r\n return this.IsCustomerInBelgium(customer);\r\n }\r\n\r\n public IsPayconicPaymentAvailableForCustomer(customer: ICheckoutSessionCustomer): boolean {\r\n if (!customer || !customer.countryCode) return false;\r\n\r\n return this.IsCustomerInBenelux(customer);\r\n }\r\n\r\n public IsiDealPaymentAvailableForCustomer(customer: ICheckoutSessionCustomer): boolean {\r\n if (!customer || !customer.countryCode) return false;\r\n\r\n return this.IsCustomerInNetherlands(customer);\r\n }\r\n\r\n public IsP24PaymentAvailableForCustomer(customer: ICheckoutSessionCustomer): boolean {\r\n if (!customer || !customer.countryCode) return false;\r\n\r\n return this.IsCustomerInPoland(customer);\r\n }\r\n\r\n public IsGiropayAvailableForCustomer(customer: ICheckoutSessionCustomer): boolean {\r\n if (!customer || !customer.countryCode) return false;\r\n\r\n return this.IsCustomerInGermany(customer);\r\n }\r\n\r\n public GetBankRedirectPaymentSubmethodNameForCustomer(customer: ICheckoutSessionCustomer): string | undefined {\r\n if (!this.IsBankRedirectPaymentAvailableForCustomer(customer)) return;\r\n\r\n if (this.IsBancontactPaymentAvailableForCustomer(customer)) return \"Bancontact\";\r\n else if (this.IsiDealPaymentAvailableForCustomer(customer)) return \"iDeal\";\r\n else if (this.IsP24PaymentAvailableForCustomer(customer)) return \"Przelewy24\";\r\n else if (this.IsGiropayAvailableForCustomer(customer)) return \"Giropay\";\r\n else return;\r\n }\r\n\r\n public IsValidAddress(address: IAddress | null | undefined): boolean {\r\n if (!address) return false;\r\n\r\n return address.addressLine && (address.country || address.countryTwoIsoLetters) ? true : false;\r\n }\r\n\r\n public IsADeposit(payment: ICheckoutSessionPayment | null, cartItems: ICartItem[]): boolean {\r\n return payment?.method === PaymentMethodTypes.Cash && this.HasACartVoucherItem(cartItems);\r\n }\r\n\r\n public CalculateTotalAmount(\r\n payment: ICheckoutSessionPayment | null,\r\n cartItems: ICartItem[],\r\n currentTaxRate?: number\r\n ): number {\r\n return this.IsADeposit(payment, cartItems)\r\n ? this.CalculateTotalAmountForDeposit(cartItems)\r\n : this.CalculateTotalAmountForOrder(cartItems, currentTaxRate);\r\n }\r\n\r\n public CalculateTotalAmountForDeposit(cartItems: ICartItem[]): number {\r\n return this.CalculateTotalAmountForOrder(cartItems) * BASE_DEPOSIT_RATE;\r\n }\r\n\r\n public CalculateTotalAmountForOrder(cartItems: ICartItem[], currentTaxRate?: number): number {\r\n let total = 0;\r\n cartItems.forEach((ci) => (total += ci.total));\r\n\r\n return total;\r\n }\r\n\r\n public BuildCustomerFullName(customer: ICheckoutSessionCustomer): string {\r\n return `${customer?.firstname} ${customer?.lastname}`;\r\n }\r\n\r\n public BuildSepaCreditTransferPlatformBeneficiary(minimal = false): IPersonBankData {\r\n return {\r\n name: BANK_ACCOUNT_HOLDER_NAME,\r\n address: minimal ? undefined : BANK_ACCOUNT_HOLDER_ADDRESS,\r\n iban: BANK_IBAN,\r\n bic: minimal ? undefined : BANK_BIC,\r\n bankName: minimal ? undefined : BANK_NAME\r\n };\r\n }\r\n\r\n public BuildSepaRemittanceInformation(cartItems: ICartItem[]): string {\r\n let salesIds: string = \"\";\r\n for (const ci of cartItems) {\r\n salesIds += ci.saleId + \" \";\r\n }\r\n salesIds = salesIds.substring(0, salesIds.length - 1);\r\n\r\n return `SALES ${salesIds}`;\r\n }\r\n\r\n public BuildBillingDetails(\r\n customer: ICheckoutSessionCustomer,\r\n shipping: ICheckoutSessionShipping,\r\n payment: ICheckoutSessionPayment\r\n ): IBillingDetails {\r\n return {\r\n name: this.BuildCustomerFullName(customer),\r\n address: (payment?.address || shipping?.deliveryAddress) ?? null,\r\n email: customer?.email ?? null,\r\n phone: customer?.phoneNumber ?? null\r\n };\r\n }\r\n}\r\n","import { ICountry } from \"@api/models/shared/ICountry\";\r\nimport { ICountryManager } from \"./contracts/ICountryManager\";\r\n\r\nexport class CountryManager implements ICountryManager {\r\n public static readonly countriesHardcoded: ICountry[] = [\r\n { code: \"AE\", label: \"United Arab Emirates\" },\r\n { code: \"AF\", label: \"Afghanistan\" },\r\n { code: \"AL\", label: \"Albania\" },\r\n { code: \"AM\", label: \"Armenia\" },\r\n { code: \"AR\", label: \"Argentina\" },\r\n { code: \"AT\", label: \"Austria\" },\r\n { code: \"AU\", label: \"Australia\" },\r\n { code: \"AZ\", label: \"Azerbaijan\" },\r\n { code: \"BA\", label: \"Bosnia and Herzegovina\" },\r\n { code: \"BD\", label: \"Bangladesh\" },\r\n { code: \"BE\", label: \"Belgium\" },\r\n { code: \"BG\", label: \"Bulgaria\" },\r\n { code: \"BH\", label: \"Bahrain\" },\r\n { code: \"BN\", label: \"Brunei\" },\r\n { code: \"BO\", label: \"Bolivia\" },\r\n { code: \"BR\", label: \"Brazil\" },\r\n { code: \"BT\", label: \"Bhutan\" },\r\n { code: \"BW\", label: \"Botswana\" },\r\n { code: \"BY\", label: \"Belarus\" },\r\n { code: \"BZ\", label: \"Belize\" },\r\n { code: \"CA\", label: \"Canada\" },\r\n { code: \"CD\", label: \"Congo (DRC)\" },\r\n { code: \"CH\", label: \"Switzerland\" },\r\n { code: \"CI\", label: \"Côte d'Ivoire\" },\r\n { code: \"CL\", label: \"Chile\" },\r\n { code: \"CM\", label: \"Cameroon\" },\r\n { code: \"CN\", label: \"China\" },\r\n { code: \"CO\", label: \"Colombia\" },\r\n { code: \"CR\", label: \"Costa Rica\" },\r\n { code: \"CU\", label: \"Cuba\" },\r\n { code: \"CZ\", label: \"Czechia\" },\r\n { code: \"DE\", label: \"Germany\" },\r\n { code: \"DJ\", label: \"Djibouti\" },\r\n { code: \"DK\", label: \"Denmark\" },\r\n { code: \"DO\", label: \"Dominican Republic\" },\r\n { code: \"DZ\", label: \"Algeria\" },\r\n { code: \"EC\", label: \"Ecuador\" },\r\n { code: \"EE\", label: \"Estonia\" },\r\n { code: \"EG\", label: \"Egypt\" },\r\n { code: \"ER\", label: \"Eritrea\" },\r\n { code: \"ES\", label: \"Spain\" },\r\n { code: \"ET\", label: \"Ethiopia\" },\r\n { code: \"FI\", label: \"Finland\" },\r\n { code: \"FO\", label: \"Faroe Islands\" },\r\n { code: \"FR\", label: \"France\" },\r\n { code: \"GB\", label: \"United Kingdom\" },\r\n { code: \"GE\", label: \"Georgia\" },\r\n { code: \"GL\", label: \"Greenland\" },\r\n { code: \"GR\", label: \"Greece\" },\r\n { code: \"GT\", label: \"Guatemala\" },\r\n { code: \"HK\", label: \"Hong Kong SAR\" },\r\n { code: \"HN\", label: \"Honduras\" },\r\n { code: \"HR\", label: \"Croatia\" },\r\n { code: \"HT\", label: \"Haiti\" },\r\n { code: \"HU\", label: \"Hungary\" },\r\n { code: \"ID\", label: \"Indonesia\" },\r\n { code: \"IE\", label: \"Ireland\" },\r\n { code: \"IL\", label: \"Israel\" },\r\n { code: \"IN\", label: \"India\" },\r\n { code: \"IQ\", label: \"Iraq\" },\r\n { code: \"IR\", label: \"Iran\" },\r\n { code: \"IS\", label: \"Iceland\" },\r\n { code: \"IT\", label: \"Italy\" },\r\n { code: \"JM\", label: \"Jamaica\" },\r\n { code: \"JO\", label: \"Jordan\" },\r\n { code: \"JP\", label: \"Japan\" },\r\n { code: \"KE\", label: \"Kenya\" },\r\n { code: \"KG\", label: \"Kyrgyzstan\" },\r\n { code: \"KH\", label: \"Cambodia\" },\r\n { code: \"KR\", label: \"Korea\" },\r\n { code: \"KW\", label: \"Kuwait\" },\r\n { code: \"KZ\", label: \"Kazakhstan\" },\r\n { code: \"LA\", label: \"Laos\" },\r\n { code: \"LB\", label: \"Lebanon\" },\r\n { code: \"LI\", label: \"Liechtenstein\" },\r\n { code: \"LK\", label: \"Sri Lanka\" },\r\n { code: \"LT\", label: \"Lithuania\" },\r\n { code: \"LU\", label: \"Luxembourg\" },\r\n { code: \"LV\", label: \"Latvia\" },\r\n { code: \"LY\", label: \"Libya\" },\r\n { code: \"MA\", label: \"Morocco\" },\r\n { code: \"MC\", label: \"Monaco\" },\r\n { code: \"MD\", label: \"Moldova\" },\r\n { code: \"ME\", label: \"Montenegro\" },\r\n { code: \"MK\", label: \"North Macedonia\" },\r\n { code: \"ML\", label: \"Mali\" },\r\n { code: \"MM\", label: \"Myanmar\" },\r\n { code: \"MN\", label: \"Mongolia\" },\r\n { code: \"MO\", label: \"Macao SAR\" },\r\n { code: \"MT\", label: \"Malta\" },\r\n { code: \"MV\", label: \"Maldives\" },\r\n { code: \"MX\", label: \"Mexico\" },\r\n { code: \"MY\", label: \"Malaysia\" },\r\n { code: \"NG\", label: \"Nigeria\" },\r\n { code: \"NI\", label: \"Nicaragua\" },\r\n { code: \"NL\", label: \"Netherlands\" },\r\n { code: \"NO\", label: \"Norway\" },\r\n { code: \"NP\", label: \"Nepal\" },\r\n { code: \"NZ\", label: \"New Zealand\" },\r\n { code: \"OM\", label: \"Oman\" },\r\n { code: \"PA\", label: \"Panama\" },\r\n { code: \"PE\", label: \"Peru\" },\r\n { code: \"PH\", label: \"Philippines\" },\r\n { code: \"PK\", label: \"Pakistan\" },\r\n { code: \"PL\", label: \"Poland\" },\r\n { code: \"PR\", label: \"Puerto Rico\" },\r\n { code: \"PT\", label: \"Portugal\" },\r\n { code: \"PY\", label: \"Paraguay\" },\r\n { code: \"QA\", label: \"Qatar\" },\r\n { code: \"RE\", label: \"Réunion\" },\r\n { code: \"RO\", label: \"Romania\" },\r\n { code: \"RS\", label: \"Serbia\" },\r\n { code: \"RU\", label: \"Russia\" },\r\n { code: \"RW\", label: \"Rwanda\" },\r\n { code: \"SA\", label: \"Saudi Arabia\" },\r\n { code: \"SE\", label: \"Sweden\" },\r\n { code: \"SG\", label: \"Singapore\" },\r\n { code: \"SI\", label: \"Slovenia\" },\r\n { code: \"SK\", label: \"Slovakia\" },\r\n { code: \"SN\", label: \"Senegal\" },\r\n { code: \"SO\", label: \"Somalia\" },\r\n { code: \"SV\", label: \"El Salvador\" },\r\n { code: \"SY\", label: \"Syria\" },\r\n { code: \"TH\", label: \"Thailand\" },\r\n { code: \"TJ\", label: \"Tajikistan\" },\r\n { code: \"TM\", label: \"Turkmenistan\" },\r\n { code: \"TN\", label: \"Tunisia\" },\r\n { code: \"TR\", label: \"Turkey\" },\r\n { code: \"TT\", label: \"Trinidad and Tobago\" },\r\n { code: \"TW\", label: \"Taiwan\" },\r\n { code: \"UA\", label: \"Ukraine\" },\r\n { code: \"US\", label: \"United States\" },\r\n { code: \"UY\", label: \"Uruguay\" },\r\n { code: \"UZ\", label: \"Uzbekistan\" },\r\n { code: \"VE\", label: \"Venezuela\" },\r\n { code: \"VN\", label: \"Vietnam\" },\r\n { code: \"YE\", label: \"Yemen\" },\r\n { code: \"ZA\", label: \"South Africa\" },\r\n { code: \"ZW\", label: \"Zimbabwe\" }\r\n ];\r\n\r\n get CountriesHardcoded() {\r\n return CountryManager.countriesHardcoded;\r\n }\r\n\r\n RetrieveCountryByIsoCode(twoIsoLettersCode: string | undefined): ICountry | undefined {\r\n if (!twoIsoLettersCode) return undefined;\r\n\r\n return this.CountriesHardcoded.find((c) => c.code == twoIsoLettersCode);\r\n }\r\n}\r\n","import { ICreditCardManager } from \"./contracts/ICreditCardManager\";\r\n\r\nexport class CreditCardManager implements ICreditCardManager {\r\n static readonly cardBrandIconsMap: { [key: string]: string } = {\r\n visa: \"cc-visa\",\r\n mastercard: \"cc-mastercard\",\r\n amex: \"cc-amex\",\r\n discover: \"cc-discover\",\r\n diners: \"cc-diners-club\",\r\n jcb: \"cc-jcb\",\r\n unknown: \"\"\r\n };\r\n\r\n public GetCardIconName(brand: string): string {\r\n return CreditCardManager.cardBrandIconsMap[brand];\r\n }\r\n\r\n public GetCardIcon(brand: string): string[] {\r\n let icon = \"\";\r\n let collectionIcon = \"fas\";\r\n\r\n if (brand in CreditCardManager.cardBrandIconsMap) {\r\n icon = CreditCardManager.cardBrandIconsMap[brand];\r\n\r\n if (brand != \"unknown\") {\r\n collectionIcon = \"fab\";\r\n }\r\n }\r\n\r\n return [collectionIcon, icon];\r\n }\r\n}\r\n","import { ADMINISTRATOR_ID } from \"@api/models/market/constants/AppRoles\";\r\nimport { PaymentMethodTypes } from \"@api/models/market/constants/PaymentMethodTypes\";\r\nimport { SaleStatus } from \"@api/models/market/constants/SaleStatus\";\r\nimport { SaleTypes } from \"@api/models/market/constants/SaleTypes\";\r\nimport { TransferMethodTypes } from \"@api/models/market/constants/TransferMethodTypes\";\r\nimport { IBid } from \"@api/models/market/IBid\";\r\nimport { IDeposit } from \"@api/models/market/IDeposit\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { ISettlement } from \"@api/models/market/ISettlement\";\r\nimport { IUser } from \"@api/models/market/IUser\";\r\nimport i18n from \"@market/i18n\";\r\nimport { ITimelineEvent } from \"@pigeon/models/ITimelineEvent\";\r\nimport { IEventManager } from \"./contracts/IEventManager\";\r\n\r\nexport class EventManager implements IEventManager {\r\n //#region Supervise\r\n public buildTimelineEvents(sale: ISale, deposit?: IDeposit, settlement?: ISettlement): ITimelineEvent[] {\r\n const timelineEvents: (ITimelineEvent | undefined)[] = [\r\n this.BuildSaleCreatedEvent(sale),\r\n this.BuildSaleApprovedEvent(sale),\r\n this.BuildSaleStartEvent(sale),\r\n this.BuildFirstBidEvent(sale),\r\n this.BuildLastBidEvent(sale),\r\n this.BuildSaleEndEvent(sale),\r\n this.BuildOrderEvent(sale),\r\n this.BuildDepositEvent(sale, deposit),\r\n this.BuildSettlementEvent(sale, settlement),\r\n this.BuildPaymentEvent(sale),\r\n this.BuildTransferEvent(sale),\r\n this.BuildShippingEvent(sale),\r\n this.BuildSaleStatusModifiedEvent(sale)\r\n ];\r\n\r\n const filteredTimelineEvents: ITimelineEvent[] = timelineEvents.filter((event) => !!event) as ITimelineEvent[];\r\n const orderedTimelineEvents: ITimelineEvent[] = filteredTimelineEvents.sort(\r\n (eventA, eventB) => eventA.date.getTime() - eventB.date.getTime()\r\n );\r\n\r\n return orderedTimelineEvents;\r\n }\r\n\r\n private BuildSaleCreatedEvent(sale: ISale): ITimelineEvent | undefined {\r\n if (!sale.createdAt) return;\r\n\r\n return {\r\n // icon: 'plus-circle',\r\n date: new Date(sale.createdAt),\r\n title: i18n.t(\"event.sale_created\") as string,\r\n description: undefined\r\n };\r\n }\r\n\r\n private BuildSaleApprovedEvent(sale: ISale): ITimelineEvent {\r\n const approvalStatus = i18n.t(`enum.flag_approved.${sale.flagApproved}`) as string;\r\n const title = i18n.t(\"event.sale_approval_by_staff_$approval-status\", {\r\n [\"approval-status\"]: approvalStatus.toLowerCase()\r\n }) as string;\r\n const description = i18n.t(`event.sale_approval_${sale.flagApproved}`) as string;\r\n return {\r\n // icon: 'calendar',\r\n date: new Date(sale.startDate),\r\n title: title,\r\n description: description\r\n };\r\n }\r\n\r\n private BuildSaleStartEvent(sale: ISale): ITimelineEvent | undefined {\r\n if (!sale.approvedAt || !sale.flagApproved) return;\r\n\r\n const startDate = new Date(sale.startDate);\r\n const approvalDate = new Date(sale.approvedAt);\r\n const actualStartDate = approvalDate > startDate ? approvalDate : startDate;\r\n return {\r\n // icon: 'calendar',\r\n date: actualStartDate,\r\n title:\r\n sale.type === SaleTypes.Bid\r\n ? (i18n.t(\"event.auction_started\") as string)\r\n : (i18n.t(\"event.sale_started\") as string),\r\n description: undefined\r\n };\r\n }\r\n\r\n private BuildSaleEndEvent(sale: ISale): ITimelineEvent | undefined {\r\n if (!sale.endDate) return;\r\n\r\n const endDate = new Date(sale.endDate);\r\n let orderDate = undefined;\r\n if (sale.orderLine?.order) orderDate = new Date(sale.orderLine?.order?.orderDate);\r\n\r\n let actualEndDate = orderDate && orderDate < endDate ? orderDate : endDate;\r\n if (sale.type == SaleTypes.Bid) actualEndDate = endDate;\r\n\r\n return actualEndDate > new Date()\r\n ? undefined\r\n : {\r\n // icon: 'calendar',\r\n date: actualEndDate,\r\n title:\r\n sale.type === SaleTypes.Bid\r\n ? (i18n.t(\"event.auction_closed\") as string)\r\n : (i18n.t(\"event.sale_ended\") as string),\r\n description: undefined\r\n };\r\n }\r\n\r\n private BuildFirstBidEvent(sale: ISale): ITimelineEvent | undefined {\r\n if (sale.type != SaleTypes.Bid || !sale.bids?.length) return;\r\n\r\n const firstBid: IBid = sale.bids[sale.bids.length - 1];\r\n const bidder: IUser | undefined = firstBid?.user;\r\n let description = i18n.n(firstBid.amount, \"currency\");\r\n\r\n if (bidder) {\r\n description += ` ${i18n.t(\"event.posted_by\")} ${bidder.firstname} ${bidder.lastname?.toUpperCase()}`;\r\n if (bidder.buyerAlias) description += ` | ${bidder?.buyerAlias}`;\r\n }\r\n\r\n return {\r\n // icon: 'gavel',\r\n date: new Date(firstBid.bidDate),\r\n title: i18n.t(\"event.first_bid\") as string,\r\n description: description\r\n };\r\n }\r\n\r\n private BuildLastBidEvent(sale: ISale): ITimelineEvent | undefined {\r\n if (sale.type != SaleTypes.Bid || !sale.bids?.length || sale.bids.length <= 1) return;\r\n\r\n const lastBid: IBid = sale.bids[0];\r\n const bidder: IUser | undefined = lastBid?.user;\r\n let description = i18n.n(lastBid.amount, \"currency\");\r\n\r\n if (bidder) {\r\n description += ` ${i18n.t(\"event.posted_by\")} ${bidder.firstname} ${bidder.lastname?.toUpperCase()}`;\r\n if (bidder.buyerAlias) description += ` | ${bidder?.buyerAlias}`;\r\n }\r\n\r\n return {\r\n // icon: 'gavel',\r\n date: new Date(lastBid.bidDate),\r\n title: i18n.t(\"event.last_bid\") as string,\r\n description: description\r\n };\r\n }\r\n\r\n private BuildOrderEvent(sale: ISale): ITimelineEvent | undefined {\r\n if (!sale.orderLine?.order) return;\r\n\r\n const orderDate = new Date(sale.orderLine?.order?.orderDate);\r\n return {\r\n // icon: 'file-invoice',\r\n date: orderDate,\r\n title: i18n.t(\"event.registered_order\") as string,\r\n description: undefined\r\n };\r\n }\r\n\r\n private BuildDepositEvent(sale: ISale, deposit?: IDeposit): ITimelineEvent | undefined {\r\n if (!deposit) return;\r\n\r\n const collectedDate = new Date(deposit.paymentDate);\r\n const description = sale.userId\r\n ? i18n.t(\"event.collected_by\") + \" \" + this.BuildCollectedByDescription(sale.userId, deposit.paymentCollectedBy)\r\n : undefined;\r\n\r\n return {\r\n // icon: 'hand-holding-usd',\r\n date: collectedDate,\r\n title: i18n.t(\"event.deposit_collected\") as string,\r\n description: description\r\n };\r\n }\r\n\r\n private BuildSettlementEvent(sale: ISale, settlement?: ISettlement): ITimelineEvent | undefined {\r\n if (!settlement) return;\r\n\r\n const collectedDate = new Date(settlement.paymentDate);\r\n const description = sale.userId\r\n ? i18n.t(\"event.collected_by\") +\r\n \" \" +\r\n this.BuildCollectedByDescription(sale.userId, settlement.paymentCollectedBy)\r\n : undefined;\r\n\r\n return {\r\n // icon: 'hand-holding-usd',\r\n date: collectedDate,\r\n title: i18n.t(\"event.settlement_collected\") as string,\r\n description: description\r\n };\r\n }\r\n\r\n private BuildCollectedByDescription(vendorId: string, paymentCollectedBy: string | undefined): string | undefined {\r\n if (!vendorId || !paymentCollectedBy) return;\r\n\r\n switch (paymentCollectedBy) {\r\n case ADMINISTRATOR_ID:\r\n return i18n.t(\"enum.payment_agent.platform\") as string;\r\n\r\n case vendorId:\r\n return i18n.t(\"enum.payment_agent.vendor\") as string;\r\n\r\n default:\r\n return i18n.t(\"enum.payment_agent.undefined\") as string;\r\n }\r\n }\r\n\r\n private BuildPaymentEvent(sale: ISale): ITimelineEvent | undefined {\r\n if (!sale.orderLine?.order?.paymentDate) return;\r\n\r\n const paymentDate = new Date(sale.orderLine.order.paymentDate);\r\n\r\n const paymentStatus = i18n.t(`enum.payment_status.${sale.orderLine.order.paymentStatus}`) as string;\r\n const title = i18n.t(\"event.payment_$payment-status\", {\r\n [\"payment-status\"]: paymentStatus\r\n }) as string;\r\n\r\n let paymentBy =\r\n sale.orderLine.order.paymentMethod == PaymentMethodTypes.Cash\r\n ? i18n.t(\"event.payment_in_label\") + \" \"\r\n : i18n.t(\"event.payment_by_label\") + \" \";\r\n paymentBy += i18n.t(`enum.payment_method.${sale.orderLine.order.paymentMethod}`) as string;\r\n const paymentVia = sale.userId\r\n ? i18n.t(\"event.payment_collected_via\") +\r\n \" \" +\r\n this.BuildCollectedByDescription(sale.userId, sale.orderLine.order.paymentCollectedBy)\r\n : undefined;\r\n const description = `${paymentBy?.toLowerCase()} ${paymentVia}`;\r\n\r\n return {\r\n // icon: 'money-check',\r\n date: paymentDate,\r\n title: title,\r\n description: description\r\n };\r\n }\r\n\r\n private BuildTransferEvent(sale: ISale): ITimelineEvent | undefined {\r\n if (!sale.orderLine?.order?.transferDate) return;\r\n\r\n const transferDate = new Date(sale.orderLine.order.transferDate);\r\n\r\n const transferStatus = i18n.t(`enum.transfer_status.${sale.orderLine.order.transferStatus}`) as string;\r\n const title = i18n.t(\"event.payment_$transfer-status\", {\r\n [\"transfer-status\"]: transferStatus\r\n }) as string;\r\n\r\n let paymentBy =\r\n sale.orderLine.order.transferMethod == TransferMethodTypes.Cash\r\n ? i18n.t(\"event.payment_in_label\") + \" \"\r\n : i18n.t(\"event.payment_by_label\") + \" \";\r\n paymentBy += i18n.t(`enum.transfer_method.${sale.orderLine.order.transferMethod}`) as string;\r\n const paymentVia = sale.userId\r\n ? i18n.t(\"event.payment_collected_via\") +\r\n \" \" +\r\n this.BuildCollectedByDescription(sale.userId, sale.orderLine.order.paymentTransferredBy)\r\n : undefined;\r\n const description = `${paymentBy} ${paymentVia}`;\r\n\r\n return {\r\n // icon: 'money-check',\r\n date: transferDate,\r\n title: title,\r\n description: description\r\n };\r\n }\r\n\r\n private BuildShippingEvent(sale: ISale): ITimelineEvent | undefined {\r\n if (!sale.orderLine?.shippingDate) return;\r\n\r\n const shippingDate = new Date(sale.orderLine?.shippingDate);\r\n const shippingStatus = i18n.t(`enum.shipping_status.${sale.orderLine.shippingStatus}`) as string;\r\n const title = i18n.t(\"event.shipping_$shipping-status\", {\r\n [\"shipping-status\"]: shippingStatus.toLowerCase()\r\n }) as string;\r\n\r\n return {\r\n // icon: shippingManager.GetShippingIcon(sale),\r\n date: shippingDate,\r\n title: title,\r\n description: undefined\r\n };\r\n }\r\n\r\n private BuildSaleStatusModifiedEvent(sale: ISale): ITimelineEvent | undefined {\r\n if (!sale.modifiedAt) return;\r\n\r\n let statusTitle;\r\n switch (sale.status) {\r\n case SaleStatus.OnSale:\r\n // this case is handled by other event\r\n return;\r\n\r\n case SaleStatus.Sold:\r\n // this case is handled by other event\r\n return;\r\n\r\n case SaleStatus.OnHold:\r\n statusTitle = \"sale_onhold\";\r\n break;\r\n\r\n case SaleStatus.Removed:\r\n statusTitle = \"sale_removed\";\r\n break;\r\n\r\n case SaleStatus.Suspended:\r\n statusTitle = \"sale_suspended\";\r\n break;\r\n\r\n case SaleStatus.Stopped:\r\n statusTitle = \"sale_stopped\";\r\n break;\r\n\r\n case SaleStatus.Reserved:\r\n statusTitle = \"sale_reserved\";\r\n break;\r\n\r\n case SaleStatus.Unsold:\r\n statusTitle = \"sale_unsold\";\r\n break;\r\n\r\n default:\r\n statusTitle = \"sale_modified\";\r\n break;\r\n }\r\n return {\r\n // icon: 'handshake',\r\n date: new Date((sale.modifiedAt || sale.createdAt) as string | Date),\r\n title: `${i18n.t(`event.status_updated`)}${i18n.t(`event.${statusTitle}`)}`,\r\n description: undefined\r\n };\r\n }\r\n //#endregion\r\n}\r\n","import { FarmSizeTypes } from \"@api/models/market/constants/FarmSizeTypes\";\r\nimport { IFancierProfile } from \"@api/models/market/IFancierProfile\";\r\nimport { IFancierProfileTranslation } from \"@api/models/market/IFancierProfileTranslation\";\r\nimport { DEFAULT_LOCALE } from \"@pigeon/i18n/i18n.const\";\r\nimport { IFancierProfileManager } from \"./contracts/IFancierProfileManager\";\r\n\r\nexport class FancierProfileManager implements IFancierProfileManager {\r\n static readonly RANGE_RATING_SCORE = 5;\r\n static readonly DEFAULT_RATING_SCORE = 5;\r\n static readonly defaultFancierProfilePicture = require(\"@market/assets/images/pictures/thumbnail.webp\");\r\n\r\n public GetFancierProfilePicture(fancierProfile: IFancierProfile | null, forceFallbackPicture = false): string {\r\n if (!fancierProfile || !fancierProfile.picture) return \"\";\r\n\r\n const relativeUrl = forceFallbackPicture ? fancierProfile?.picture.url : fancierProfile?.picture.urlWebOptimized;\r\n if (!relativeUrl) return FancierProfileManager.defaultFancierProfilePicture;\r\n\r\n // test if parameter is a remote url\r\n if (/(http(s?)):\\/\\//gi.test(relativeUrl)) return relativeUrl;\r\n\r\n // test if parameter is a inline data image\r\n if (/(data):/gi.test(relativeUrl)) return relativeUrl;\r\n\r\n return `${process.env.VUE_APP_AZURE_STORAGE_HOST}${relativeUrl}`;\r\n }\r\n\r\n public GetFancierProfileAboutLocalized(\r\n fancierProfile: IFancierProfile | null,\r\n localeCode: string\r\n ): IFancierProfileTranslation | undefined {\r\n if (!fancierProfile) return;\r\n\r\n let translation = fancierProfile.translations.find((t) => t.localeCode == localeCode);\r\n // Default locale fallback\r\n if (!translation) {\r\n translation = fancierProfile.translations.find((t) => t.localeCode == DEFAULT_LOCALE);\r\n }\r\n // Default fallback\r\n if (!translation) {\r\n translation = fancierProfile.translations[0];\r\n }\r\n\r\n return translation;\r\n }\r\n\r\n public GetRatingAverageScore(fancierProfile: IFancierProfile) {\r\n if (!fancierProfile || !fancierProfile.ratings || !fancierProfile.ratings.length)\r\n return FancierProfileManager.DEFAULT_RATING_SCORE;\r\n\r\n let average = 0;\r\n\r\n fancierProfile?.ratings.forEach((r) => (average += r.rating));\r\n average = average / fancierProfile?.ratings.length; // score on 100\r\n average = Math.ceil(average / 5) * 5; // around to multiple of 5\r\n return average / (100 / FancierProfileManager.RANGE_RATING_SCORE); // score on 5\r\n }\r\n\r\n public GetRatingRemainingScore(fancierProfile: IFancierProfile): number {\r\n return 5 - this.GetRatingAverageScore(fancierProfile);\r\n }\r\n\r\n public GetFarmSizeMininum(fancierProfile: IFancierProfile): number {\r\n if (!fancierProfile) return 0;\r\n\r\n switch (fancierProfile.farmSize) {\r\n case FarmSizeTypes.Size20:\r\n return 0;\r\n case FarmSizeTypes.Size50:\r\n return 20;\r\n case FarmSizeTypes.Size100:\r\n return 50;\r\n case FarmSizeTypes.Size250:\r\n return 100;\r\n case FarmSizeTypes.Size500:\r\n return 250;\r\n case FarmSizeTypes.Size1000:\r\n return 500;\r\n\r\n default:\r\n return 0;\r\n }\r\n }\r\n\r\n public GetFarmSizeMaximum(fancierProfile: IFancierProfile): number {\r\n if (!fancierProfile) return 0;\r\n\r\n switch (fancierProfile.farmSize) {\r\n case FarmSizeTypes.Size20:\r\n return 20;\r\n case FarmSizeTypes.Size50:\r\n return 50;\r\n case FarmSizeTypes.Size100:\r\n return 100;\r\n case FarmSizeTypes.Size250:\r\n return 250;\r\n case FarmSizeTypes.Size500:\r\n return 500;\r\n case FarmSizeTypes.Size1000:\r\n return 1000;\r\n\r\n default:\r\n return 0;\r\n }\r\n }\r\n}\r\n","import { IFileManager } from \"./contracts/IFileManager\";\r\n\r\nexport class FileManager implements IFileManager {\r\n public GetFileExtension({ name: filename }: File): string {\r\n if (!filename) return \"\";\r\n\r\n const extension = filename.split(\".\").pop();\r\n return extension ? extension.toLowerCase() : \"\";\r\n }\r\n}\r\n","import { authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport dayjs from \"@pigeon/i18n/dayjs\";\r\nimport { AspNetCoreCookieCulture } from \"@pigeon/i18n/i18n.const\";\r\nimport { Cookies } from \"vue-cookies-ts\";\r\nimport VueI18n from \"vue-i18n\";\r\nimport { II18nManager } from \"./contracts/II18nManager\";\r\n\r\nexport class I18nManager implements II18nManager {\r\n public UpdateClientUrl($i18n: VueI18n, locale: string): void {\r\n if (!locale) return;\r\n\r\n const urlWithNewLocale: string = window.location.href.replace(`/${$i18n.locale}/`, `/${locale}/`);\r\n window.history.pushState(null, `PigeonMarket ${locale.toUpperCase()}`, urlWithNewLocale);\r\n }\r\n\r\n public UpdateUILocale($i18n: VueI18n, locale: string): void {\r\n if (!locale) return;\r\n\r\n $i18n.locale = locale;\r\n dayjs.locale(locale);\r\n // localize(locale); // Fix: Comment to fix vee validation bug localization {field} name\r\n }\r\n\r\n public UpdateUserPreferredLocale(locale: string): void {\r\n if (!locale) return;\r\n\r\n if (authStore.IsAuthenticated) {\r\n userStore.UpdateUserPreferredLanguage(locale);\r\n }\r\n }\r\n\r\n // See: https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization?view=aspnetcore-2.1#cookierequestcultureprovider\r\n public UpdateAspNetCoreCookieRequestCulture($cookies: Cookies, locale: string): void {\r\n // Cookie value c=en-US|uic=en-UK\r\n $cookies.set(AspNetCoreCookieCulture, `c=${locale}|uic=${locale}`);\r\n }\r\n}\r\n","import { ISaleNotificationsService } from \"@api/contracts/odata/ISaleNotificationsService\";\r\nimport { NotificationTypes } from \"@api/models/market/constants/NotificationTypes\";\r\nimport { ProductTypes } from \"@api/models/market/constants/ProductTypes\";\r\nimport { ISaleNotification } from \"@api/models/market/ISaleNotification\";\r\nimport { authStore, notificationStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { AlertTypes } from \"@pigeon/components/app/AppAlert\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { INotificationManager } from \"./contracts/INotificationManager\";\r\n\r\nexport class NotificationManager implements INotificationManager {\r\n @Inject()\r\n private saleNotificationsService: ISaleNotificationsService;\r\n\r\n public DetermineNotificationTitle(notification: ISaleNotification): string {\r\n if (!notification || !notification.sale) return \"\";\r\n const { sale } = notification;\r\n\r\n if (sale.product === ProductTypes.Pigeon && sale.pigeon) return `${sale.pigeon.name} [${sale.pigeon.ring}]`;\r\n else if (sale.product === ProductTypes.Package && sale.package)\r\n return `${sale.package.name} [${sale.package.discipline}]`;\r\n else {\r\n console.error(\"Not supported product type\");\r\n return \"\";\r\n }\r\n }\r\n\r\n public GetNotificationType(saleNotification: ISaleNotification): AlertTypes {\r\n switch (saleNotification.notification) {\r\n case NotificationTypes.SalePendingApproval:\r\n return AlertTypes.Info;\r\n\r\n case NotificationTypes.SaleApproved:\r\n return AlertTypes.Success;\r\n\r\n case NotificationTypes.SaleDisapproved:\r\n return AlertTypes.Danger;\r\n\r\n case NotificationTypes.AuctionNewBidOnAFollowedSale:\r\n return AlertTypes.Info;\r\n\r\n case NotificationTypes.AuctionBidAccepted:\r\n return AlertTypes.Success;\r\n\r\n case NotificationTypes.AuctionNewBidOnYourSale:\r\n return AlertTypes.Success;\r\n\r\n case NotificationTypes.AuctionOutBid:\r\n return AlertTypes.Danger;\r\n\r\n case NotificationTypes.SaleSold:\r\n return AlertTypes.Success;\r\n\r\n default:\r\n return AlertTypes.Info;\r\n }\r\n }\r\n\r\n public async FlagSaleNotificationAsRead(saleNotification: ISaleNotification): Promise {\r\n if (authStore.IsAdministrator) return Promise.reject(\"Only user can flag a notification as read.\");\r\n if (saleNotification.flagAsRead === true) return Promise.resolve();\r\n\r\n notificationStore.FlagNotificationAsRead(saleNotification);\r\n await this.saleNotificationsService.PatchFlagAsRead(saleNotification);\r\n }\r\n\r\n public async FlagSaleNotificationAsSeen(saleNotification: ISaleNotification): Promise {\r\n notificationStore.FlagNotificationAsSeen(saleNotification);\r\n }\r\n}\r\n","import { IOfferManager } from \"./contracts/IOfferManager\";\r\n\r\nexport class OfferManager implements IOfferManager {\r\n // WARNING: OfferManager.CalculateUpStepOffer (client side) must do the same than BidService.CalculateUpStepOffer (server side)\r\n // TODO: consider call back end to calculate it in next version\r\n public CalculateUpStepOffer(offer: number): number {\r\n if (offer < 100) return 10;\r\n else if (offer < 200) return 20;\r\n else if (offer < 500) return 25;\r\n else if (offer < 1000) return 50;\r\n else return 100;\r\n }\r\n\r\n // WARNING: OfferManager.CalculateDownStepOffer (client side) must do the same than BidService.CalculateDownStepOffer (server side)\r\n // TODO: consider call back end to calculate it in next version\r\n public CalculateDownStepOffer(offer: number): number {\r\n if (offer <= 100) return 10;\r\n else if (offer <= 200) return 20;\r\n else if (offer <= 500) return 25;\r\n else if (offer <= 1000) return 50;\r\n else return 100;\r\n }\r\n //#endregion\r\n}\r\n","import { PictureTypes } from \"@api/models/market/constants/PictureTypes\";\r\nimport { SexTypes } from \"@api/models/market/constants/SexTypes\";\r\nimport { IPackage } from \"@api/models/market/IPackage\";\r\nimport { IPicture } from \"@api/models/market/IPicture\";\r\nimport { IPrize } from \"@api/models/market/IPrize\";\r\nimport { IPrizesRanking } from \"@api/models/market/IPrizesRanking\";\r\nimport { IRankingAsset } from \"@api/models/market/IRankingAsset\";\r\nimport { IPackageManager } from \"@pigeon/services/contracts/IPackageManager\";\r\nimport { IPigeonManager } from \"@pigeon/services/contracts/IPigeonManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { kebabCase } from \"lodash-es\";\r\n\r\nexport class PackageManager implements IPackageManager {\r\n @Inject()\r\n private pigeonManager: IPigeonManager;\r\n\r\n readonly defaultPackagePicture = require(\"@pigeon/assets/images/pictures/package-generic.webp\");\r\n readonly defaultPedigreePicture = \"\";\r\n readonly defaultPedigreePdf = \"\";\r\n\r\n //#region Sheet\r\n public IsRinged(pack: IPackage): boolean {\r\n if (pack.withRings) return pack.withRings;\r\n\r\n if (!pack || !pack.pigeons || !pack.pigeons.length) return false;\r\n return pack.pigeons.some((p) => (p.ringNumber || p.ring ? true : false));\r\n }\r\n\r\n public HasPedigree(pack: IPackage): boolean {\r\n if (pack.withPedigrees) return pack.withPedigrees;\r\n\r\n if (!pack || !pack.pigeons || !pack.pigeons.length) return false;\r\n return pack.pigeons.some(\r\n (p) => this.pigeonManager.HasPicturePedigree(p.pictures) || this.pigeonManager.HasPdfPedigree(p.pictures)\r\n );\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Count\r\n public GetPigeonsCount(pack: IPackage): number {\r\n if (pack.pigeonItemsNumber) return pack.pigeonItemsNumber;\r\n\r\n if (!pack || !pack.pigeons || !pack.pigeons.length) return 0;\r\n return pack.pigeons.length;\r\n }\r\n\r\n public GetPigeonsMaleCount(pack: IPackage): number {\r\n if (pack.pigeonMaleItemsNumber) return pack.pigeonMaleItemsNumber;\r\n\r\n if (!pack || !pack.pigeons || !pack.pigeons.length) return 0;\r\n return pack.pigeons.filter((p) => p.sex === SexTypes.Male).length;\r\n }\r\n\r\n public GetPigeonsFemaleCount(pack: IPackage): number {\r\n if (pack.pigeonFemaleItemsNumber) return pack.pigeonFemaleItemsNumber;\r\n\r\n if (!pack || !pack.pigeons || !pack.pigeons.length) return 0;\r\n return pack.pigeons.filter((p) => p.sex === SexTypes.Female).length;\r\n }\r\n\r\n public GetPigeonsGenderlessCount(pack: IPackage): number {\r\n if (!pack || !pack.pigeons || !pack.pigeons.length) return 0;\r\n\r\n return pack.pigeons.filter((p) => p.sex === SexTypes.Unknown).length;\r\n }\r\n\r\n public GetPigeonsJuniorCount(pack: IPackage): number {\r\n if (!pack || !pack.pigeons || !pack.pigeons.length) return 0;\r\n\r\n return pack.pigeons.filter((p) => this.pigeonManager.GetAgeCategory(p) === \"Junior\").length;\r\n }\r\n\r\n public GetPigeonsYearlingCount(pack: IPackage): number {\r\n if (!pack || !pack.pigeons || !pack.pigeons.length) return 0;\r\n\r\n return pack.pigeons.filter((p) => this.pigeonManager.GetAgeCategory(p) === \"Yearling\").length;\r\n }\r\n\r\n public GetPigeonsSeniorCount(pack: IPackage): number {\r\n if (!pack || !pack.pigeons || !pack.pigeons.length) return 0;\r\n\r\n return pack.pigeons.filter((p) => this.pigeonManager.GetAgeCategory(p) === \"Old\").length;\r\n }\r\n\r\n public GetReproducersCount(pack: IPackage): number {\r\n if (pack.reproducerItemsNumber) return pack.reproducerItemsNumber;\r\n\r\n if (!pack || !pack.reproducerParents || !pack.reproducerParents.length) return 0;\r\n return pack.reproducerParents.length;\r\n }\r\n\r\n public GetReproducersMaleCount(pack: IPackage): number {\r\n if (pack.reproducerMaleItemsNumber) return pack.reproducerMaleItemsNumber;\r\n\r\n if (!pack || !pack.reproducerParents || !pack.reproducerParents.length) return 0;\r\n return pack.reproducerParents.map((rp) => rp.parent).filter((p) => p?.sex === SexTypes.Male).length;\r\n }\r\n\r\n public GetReproducersFemaleCount(pack: IPackage): number {\r\n if (pack.reproducerFemaleItemsNumber) return pack.reproducerFemaleItemsNumber;\r\n\r\n if (!pack || !pack.reproducerParents || !pack.reproducerParents.length) return 0;\r\n return pack.reproducerParents.map((rp) => rp.parent).filter((p) => p?.sex === SexTypes.Female).length;\r\n }\r\n //#endregion\r\n\r\n //#region Slug\r\n public GetNameSlug(pack: IPackage | undefined): string | undefined {\r\n if (!pack || !pack.name) return;\r\n\r\n return kebabCase(pack.name);\r\n }\r\n //#endregion\r\n\r\n //#region Picture/Video\r\n public GetPictureRemoteUrl(relativeUrl: string | null | undefined): string {\r\n if (!relativeUrl) return this.defaultPackagePicture;\r\n\r\n // test if parameter is a remote url\r\n if (/(http(s?)):\\/\\//gi.test(relativeUrl)) return relativeUrl;\r\n\r\n // test if parameter is a inline data image\r\n if (/(data):/gi.test(relativeUrl)) return relativeUrl;\r\n\r\n return `${process.env.VUE_APP_AZURE_STORAGE_HOST}${relativeUrl}`;\r\n }\r\n\r\n public GetVideoRemoteUrl(relativeUrl: string | null | undefined): string {\r\n if (!relativeUrl) return this.defaultPackagePicture;\r\n\r\n // test if parameter is a remote url\r\n if (/(http(s?)):\\/\\//gi.test(relativeUrl)) return relativeUrl;\r\n\r\n // test if parameter is a inline data image\r\n if (/(data):/gi.test(relativeUrl)) return relativeUrl;\r\n\r\n return `${process.env.VUE_APP_AZURE_STORAGE_HOST}${relativeUrl}`;\r\n }\r\n\r\n public GetPictures(\r\n pack: IPackage,\r\n pictureTypes: PictureTypes[] = [\r\n PictureTypes.Package,\r\n PictureTypes.Pigeon,\r\n PictureTypes.PigeonAndEye,\r\n PictureTypes.Eye,\r\n PictureTypes.Wing\r\n ]\r\n ): IPicture[] {\r\n if (!pack || !pack.pigeons) {\r\n return [];\r\n }\r\n\r\n let pictures: IPicture[] = [];\r\n\r\n if (pack.pictures && pictureTypes.includes(PictureTypes.Package)) {\r\n const packagePicture: IPicture | undefined = pack.pictures.find(\r\n (picture) => picture.type === PictureTypes.Package\r\n );\r\n if (packagePicture) pictures.push(packagePicture);\r\n }\r\n\r\n pack.pigeons.forEach((pigeon) => {\r\n const pigeonPictures = pigeon.pictures?.filter((picture) => pictureTypes.includes(picture.type));\r\n\r\n if (pigeonPictures && pigeonPictures.length) {\r\n pictures = [...pictures, ...pigeonPictures];\r\n }\r\n });\r\n\r\n return pictures;\r\n }\r\n\r\n public GetPicturesUrl(\r\n pack: IPackage,\r\n useRawPicture = false,\r\n pictureTypes: PictureTypes[] = [\r\n PictureTypes.Package,\r\n PictureTypes.Pigeon,\r\n PictureTypes.PigeonAndEye,\r\n PictureTypes.Eye,\r\n PictureTypes.Wing\r\n ]\r\n ): string[] {\r\n const picturesUrl: string[] = [];\r\n const pictures = this.GetPictures(pack, pictureTypes);\r\n\r\n pictures.forEach((picture) => {\r\n let pictureUrl = picture.urlWebOptimized && !useRawPicture ? picture.urlWebOptimized : picture.url;\r\n if (!pictureUrl) pictureUrl = this.defaultPackagePicture;\r\n\r\n const pictureRemoteUrl = this.GetPictureRemoteUrl(pictureUrl);\r\n if (pictureRemoteUrl) picturesUrl.push(pictureRemoteUrl);\r\n });\r\n\r\n return picturesUrl;\r\n }\r\n\r\n public GetPicturesThumbnail(pictures: IPicture[], useRawPicture = false): string[] {\r\n const picturesUrl: string[] = [];\r\n\r\n pictures = pictures.filter((pic) => pic.type === PictureTypes.Pigeon || pic.type === PictureTypes.PigeonAndEye);\r\n pictures.forEach((picture) => {\r\n let pictureUrl = picture.urlWebOptimized && !useRawPicture ? picture.urlWebOptimized : picture.url;\r\n if (!pictureUrl) pictureUrl = this.defaultPackagePicture;\r\n\r\n const pictureRemoteUrl = this.GetPictureRemoteUrl(pictureUrl);\r\n if (pictureRemoteUrl) picturesUrl.push(pictureRemoteUrl);\r\n });\r\n\r\n return picturesUrl;\r\n }\r\n\r\n public GetPicturePackage(pictures?: IPicture[], useRawPicture = false): string {\r\n if (!pictures || !pictures.length) {\r\n return `${this.defaultPackagePicture}`;\r\n }\r\n\r\n const picture: IPicture | undefined = pictures.find((picture) => picture.type === PictureTypes.Package);\r\n if (!picture) return this.defaultPackagePicture;\r\n\r\n const pictureUrl = picture.urlWebOptimized && !useRawPicture ? picture.urlWebOptimized : picture.url;\r\n if (!pictureUrl) return this.defaultPackagePicture;\r\n\r\n return this.GetPictureRemoteUrl(pictureUrl);\r\n }\r\n\r\n public GetThumbnailPackage(pictures?: IPicture[], useRawPicture = false): string {\r\n const picture = this.GetPicturePackage(pictures, useRawPicture);\r\n if (!picture) return \"\";\r\n\r\n try {\r\n const thumbnailUrl = new URL(picture);\r\n if (!useRawPicture) {\r\n const thumbnailPathSegments = thumbnailUrl.pathname.split(\"/\");\r\n\r\n if (thumbnailPathSegments.length > 0) {\r\n thumbnailPathSegments[thumbnailPathSegments.length - 1] = \"thumbnail.webp\";\r\n const webOptimizedThumbnailPath = thumbnailPathSegments.join(\"/\");\r\n thumbnailUrl.pathname = webOptimizedThumbnailPath;\r\n }\r\n }\r\n\r\n return thumbnailUrl.href;\r\n } catch (error: any) {\r\n console.error(`Invalid URL picture : '${picture}'`);\r\n return \"\";\r\n }\r\n }\r\n\r\n public HasPicturePedigree(pictures: IPicture[] | undefined): boolean {\r\n if (!pictures || pictures.length < 1) {\r\n return false;\r\n }\r\n\r\n return pictures.some((picture) => picture.type === PictureTypes.Pedigree);\r\n }\r\n\r\n public GetPicturePedigree(pictures?: IPicture[], useRawPicture = false): string {\r\n if (!this.HasPicturePedigree(pictures) || !pictures) {\r\n //return `${this.defaultPedigreePicture}`;\r\n return \"\";\r\n }\r\n\r\n const pedigreePicture: IPicture | undefined = pictures.find((picture) => picture.type === PictureTypes.Pedigree);\r\n //if (!pedigreePicture) return this.defaultPedigreePicture;\r\n if (!pedigreePicture) return \"\";\r\n\r\n const pedigreePictureUrl =\r\n pedigreePicture.urlWebOptimized && !useRawPicture ? pedigreePicture.urlWebOptimized : pedigreePicture.url;\r\n if (!pedigreePictureUrl) return \"\";\r\n\r\n return this.GetPictureRemoteUrl(pedigreePictureUrl);\r\n }\r\n\r\n public HasPdfPedigree(pictures: IPicture[] | undefined): boolean {\r\n if (!pictures || pictures.length < 1) {\r\n return false;\r\n }\r\n\r\n return pictures.some((picture) => picture.type === PictureTypes.PedigreePdf);\r\n }\r\n\r\n public GetPdfPedigree(pictures: IPicture[] | undefined): string {\r\n if (!this.HasPdfPedigree(pictures) || !pictures) {\r\n //return `${location.origin}${this.defaultPedigreePdf}`;\r\n return \"\";\r\n }\r\n\r\n const pedigreePdf: IPicture | undefined = pictures.find((picture) => picture.type === PictureTypes.PedigreePdf);\r\n //if (!pedigreePdf) return this.defaultPedigreePdf;\r\n if (!pedigreePdf) return \"\";\r\n\r\n const pedigreePdfUrl = pedigreePdf.url;\r\n return this.GetPictureRemoteUrl(pedigreePdfUrl);\r\n }\r\n //#endregion\r\n\r\n //#region Asset\r\n // Business Rules : Take the best top that covers at least 80% of number of prizes or at default take the top 1000\r\n // Business Rules : Take max 3 items\r\n public CalculateAssetPrizeRankings(\r\n prizes: IPrize[] | undefined,\r\n assetRankings: IRankingAsset[] | undefined\r\n ): IPrizesRanking[] {\r\n // Note: prize must have ranking navigation property to access area property\r\n if (!prizes || !prizes.length || !assetRankings || !assetRankings.length) return [];\r\n const taggedAssetPrizes = prizes.filter((p) => p.taggedAsAsset === true);\r\n\r\n if (!taggedAssetPrizes.length) return [];\r\n const assetRankingsAreas: string[] = assetRankings.map((ar) => ar.areaType);\r\n const areas: string[] = taggedAssetPrizes.filter((ap) => assetRankingsAreas.includes(ap.area)).map((p) => p.area);\r\n const setAreas: Set = new Set(areas);\r\n\r\n const prizesRankings: IPrizesRanking[] = [];\r\n for (const area of setAreas) {\r\n const prizesFilteredByArea: IPrize[] = taggedAssetPrizes.filter((p) => p.area == area);\r\n const prizesRanking = this.CalculateAssetPrizeRankingsForArea(prizesFilteredByArea, area);\r\n prizesRankings.push(prizesRanking);\r\n }\r\n\r\n return prizesRankings.length > 3 ? prizesRankings.slice(0, 3) : prizesRankings;\r\n }\r\n\r\n private CalculateAssetPrizeRankingsForArea(prizesFilteredByArea: IPrize[], area: string): IPrizesRanking {\r\n const count: number = prizesFilteredByArea.length;\r\n const countTop10: number = prizesFilteredByArea.filter((pra) => pra.rank <= 10).length;\r\n const countTop100: number = prizesFilteredByArea.filter((pra) => pra.rank <= 100).length;\r\n const countTop200: number = prizesFilteredByArea.filter((pra) => pra.rank <= 200).length;\r\n const countTop1000: number = prizesFilteredByArea.filter((pra) => pra.rank <= 1000).length;\r\n\r\n if (countTop10 >= 0.8 * count) {\r\n return { count: countTop10, area: area, top: 10 };\r\n } else if (countTop100 >= 0.8 * count) {\r\n return { count: countTop100, area: area, top: 100 };\r\n } else if (countTop200 >= 0.8 * count) {\r\n return { count: countTop200, area: area, top: 200 };\r\n } else {\r\n return { count: countTop1000, area: area, top: 1000 };\r\n }\r\n }\r\n\r\n public HasAsset(pack: IPackage): boolean {\r\n if (!pack) return false;\r\n\r\n return true;\r\n }\r\n //#endregion\r\n}\r\n","import { IPayout } from \"@api/models/market/IPayout\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { IPaymentManager } from \"./contracts/IPaymentManager\";\r\n\r\nexport class PaymentManager implements IPaymentManager {\r\n public FindPayoutBySale(payouts: IPayout[], sale: ISale): IPayout | undefined {\r\n if (!sale || !sale.id) return;\r\n\r\n return payouts.find((p) => p.saleIds?.includes((sale.id as number).toString()));\r\n }\r\n}\r\n","import { IPigeonsService } from \"@api/contracts/odata/IPigeonsService\";\r\nimport { IReproducerParentsService } from \"@api/contracts/odata/IReproducerParentsService\";\r\nimport { ISalesService } from \"@api/contracts/odata/ISalesService\";\r\nimport { AssetTypes } from \"@api/models/market/constants/AssetTypes\";\r\nimport { PictureTypes } from \"@api/models/market/constants/PictureTypes\";\r\nimport { ProductTypes } from \"@api/models/market/constants/ProductTypes\";\r\nimport { SexTypes } from \"@api/models/market/constants/SexTypes\";\r\nimport { VideoTypes } from \"@api/models/market/constants/VideoTypes\";\r\nimport { IPackage } from \"@api/models/market/IPackage\";\r\nimport { IPicture } from \"@api/models/market/IPicture\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { IPrize } from \"@api/models/market/IPrize\";\r\nimport { IPrizesRanking } from \"@api/models/market/IPrizesRanking\";\r\nimport { IRankingAsset } from \"@api/models/market/IRankingAsset\";\r\nimport { IVideo } from \"@api/models/market/IVideo\";\r\nimport { IPigeonCartItem } from \"@market/models/IPigeonCartItem\";\r\nimport dayjs from \"@pigeon/i18n/dayjs\";\r\nimport { IProductDropdownListItem } from \"@pigeon/models/IProductDropdownListItem\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { kebabCase, uniqWith } from \"lodash-es\";\r\nimport { IPigeonManager } from \"./contracts/IPigeonManager\";\r\n\r\nexport class PigeonManager implements IPigeonManager {\r\n @Inject()\r\n private pigeonsService: IPigeonsService;\r\n @Inject()\r\n private salesService: ISalesService;\r\n @Inject()\r\n private reproducerParentsService: IReproducerParentsService;\r\n\r\n readonly defaultPigeonPicture = require(\"@pigeon/assets/images/pictures/pigeon-generic.webp\");\r\n readonly defaultPedigreePicture = \"\";\r\n readonly defaultPedigreePdf = \"\";\r\n\r\n //#region Info\r\n public GetSexLabel(pigeon: IPigeon | IPigeonCartItem): string {\r\n if (!pigeon || !pigeon.sex) return \"Unknown\";\r\n\r\n switch (pigeon.sex) {\r\n case SexTypes.Male:\r\n return \"Male\";\r\n\r\n case SexTypes.Female:\r\n return \"Female\";\r\n\r\n default:\r\n return \"Unknown\";\r\n }\r\n }\r\n\r\n public GetSexIcon(pigeon: IPigeon | IPigeonCartItem | IProductDropdownListItem): string {\r\n if (!pigeon || !pigeon.sex) return \"\";\r\n\r\n switch (pigeon.sex) {\r\n case SexTypes.Male:\r\n return \"mars\";\r\n\r\n case SexTypes.Female:\r\n return \"venus\";\r\n\r\n case SexTypes.Unknown:\r\n return \"genderless\";\r\n\r\n default:\r\n return \"\";\r\n }\r\n }\r\n\r\n public GetAgeCategory(pigeon: IPigeon | IPigeonCartItem): string {\r\n if (!pigeon || !pigeon.birthYear) {\r\n return \"\";\r\n }\r\n\r\n const diff = dayjs().year() - pigeon.birthYear;\r\n\r\n if (diff == 0) {\r\n return \"Junior\"; // Youngsters\r\n } else if (diff <= 1) {\r\n return \"Yearling\";\r\n } else {\r\n return \"Old\";\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Slug\r\n public GetNameSlug(pigeon: IPigeon | IPigeonCartItem | undefined): string | undefined {\r\n if (!pigeon || !pigeon.name) return;\r\n\r\n return kebabCase(pigeon.name);\r\n }\r\n\r\n public GetRingSlug(pigeon: IPigeon | undefined): string | undefined {\r\n if (!pigeon || !pigeon.ring) return;\r\n\r\n return pigeon.ring.replace(/\\s/g, \"\");\r\n }\r\n\r\n public GetReferenceSlug(cartItem: IPigeonCartItem | undefined): string | undefined {\r\n if (!cartItem || !cartItem.reference) return;\r\n\r\n return cartItem.reference.replace(/\\s/g, \"\");\r\n }\r\n //#endregion\r\n\r\n //#region Picture/Video\r\n public GetPictureRemoteUrl(relativeUrl: string | null | undefined): string {\r\n if (!relativeUrl) return this.defaultPigeonPicture;\r\n\r\n // test if parameter is a remote url\r\n if (/(http(s?)):\\/\\//gi.test(relativeUrl)) return relativeUrl;\r\n\r\n // test if parameter is a inline data image\r\n if (/(data):/gi.test(relativeUrl)) return relativeUrl;\r\n\r\n return `${process.env.VUE_APP_AZURE_STORAGE_HOST}${relativeUrl}`;\r\n }\r\n\r\n public GetVideoRemoteUrl(relativeUrl: string | undefined): string {\r\n if (!relativeUrl) return this.defaultPigeonPicture;\r\n\r\n // test if parameter is a remote url\r\n if (/(http(s?)):\\/\\//gi.test(relativeUrl)) return relativeUrl;\r\n\r\n // test if parameter is a inline data image\r\n if (/(data):/gi.test(relativeUrl)) return relativeUrl;\r\n\r\n return `${process.env.VUE_APP_AZURE_STORAGE_HOST}${relativeUrl}`;\r\n }\r\n\r\n public GetPicturePigeon(pictures?: IPicture[], useRawPicture = false): string {\r\n if (!pictures || !pictures.length) {\r\n return `${this.defaultPigeonPicture}`;\r\n }\r\n\r\n const pigeonPicture: IPicture | undefined = pictures.find((picture) => picture.type === PictureTypes.Pigeon);\r\n if (!pigeonPicture) return this.defaultPigeonPicture;\r\n\r\n const pictureUrl =\r\n pigeonPicture.urlWebOptimized && !useRawPicture ? pigeonPicture.urlWebOptimized : pigeonPicture.url;\r\n if (!pictureUrl) return this.defaultPigeonPicture;\r\n\r\n return this.GetPictureRemoteUrl(pictureUrl);\r\n }\r\n\r\n public GetPictureThumbnail(pictures?: IPicture[], useRawPicture = false): string {\r\n const picturePigeon = this.GetPicturePigeon(pictures, useRawPicture);\r\n if (!picturePigeon) return \"\";\r\n\r\n try {\r\n const thumbnailPigeonUrl = new URL(picturePigeon);\r\n if (!useRawPicture) {\r\n const thumbnailPathSegments = thumbnailPigeonUrl.pathname.split(\"/\");\r\n\r\n if (thumbnailPathSegments.length > 0) {\r\n thumbnailPathSegments[thumbnailPathSegments.length - 1] = \"thumbnail.webp\";\r\n const webOptimizedThumbnailPath = thumbnailPathSegments.join(\"/\");\r\n thumbnailPigeonUrl.pathname = webOptimizedThumbnailPath;\r\n }\r\n }\r\n\r\n return thumbnailPigeonUrl.href;\r\n } catch (error: any) {\r\n console.error(`Invalid URL picture : '${picturePigeon}'`);\r\n return \"\";\r\n }\r\n }\r\n\r\n public HasPicture(pictures: IPicture[] | undefined, pictureType: PictureTypes): boolean {\r\n if (!pictures || pictures.length < 1) {\r\n return false;\r\n }\r\n\r\n return pictures.some((picture) => picture.type === pictureType);\r\n }\r\n\r\n public HasPicturePedigree(pictures: IPicture[] | undefined): boolean {\r\n return this.HasPicture(pictures, PictureTypes.Pedigree);\r\n }\r\n\r\n public GetPicturePedigree(pictures?: IPicture[], useRawPicture = false): string {\r\n if (!this.HasPicturePedigree(pictures) || !pictures) {\r\n //return `${this.defaultPedigreePicture}`;\r\n return \"\";\r\n }\r\n\r\n const pedigreePicture: IPicture | undefined = pictures.find((picture) => picture.type === PictureTypes.Pedigree);\r\n //if (!pedigreePicture) return this.defaultPedigreePicture;\r\n if (!pedigreePicture) return \"\";\r\n\r\n const pedigreePictureUrl =\r\n pedigreePicture.urlWebOptimized && !useRawPicture ? pedigreePicture.urlWebOptimized : pedigreePicture.url;\r\n if (!pedigreePictureUrl) return \"\";\r\n\r\n return this.GetPictureRemoteUrl(pedigreePictureUrl);\r\n }\r\n\r\n public HasPdfPedigree(pictures: IPicture[] | undefined): boolean {\r\n return this.HasPicture(pictures, PictureTypes.PedigreePdf);\r\n }\r\n\r\n public GetPdfPedigree(pictures: IPicture[] | undefined): string {\r\n if (!this.HasPdfPedigree(pictures) || !pictures) {\r\n //return `${location.origin}${this.defaultPedigreePdf}`;\r\n return \"\";\r\n }\r\n\r\n const pedigreePdf: IPicture | undefined = pictures.find((picture) => picture.type === PictureTypes.PedigreePdf);\r\n //if (!pedigreePdf) return this.defaultPedigreePdf;\r\n if (!pedigreePdf) return \"\";\r\n\r\n const pedigreePdfUrl = pedigreePdf.url;\r\n return this.GetPictureRemoteUrl(pedigreePdfUrl);\r\n }\r\n\r\n public HasPicturePropertyTicket(pictures: IPicture[] | undefined): boolean {\r\n return this.HasPicture(pictures, PictureTypes.PropertyTicket);\r\n }\r\n\r\n public GetPicturePropertyTicket(pictures?: IPicture[], useRawPicture = false): string {\r\n if (!this.HasPicturePropertyTicket(pictures) || !pictures) {\r\n return \"\";\r\n }\r\n\r\n const propertyTicketPicture: IPicture | undefined = pictures.find(\r\n (picture) => picture.type === PictureTypes.PropertyTicket\r\n );\r\n if (!propertyTicketPicture) return \"\";\r\n\r\n const propertyTicketPictureUrl =\r\n propertyTicketPicture.urlWebOptimized && !useRawPicture\r\n ? propertyTicketPicture.urlWebOptimized\r\n : propertyTicketPicture.url;\r\n if (!propertyTicketPictureUrl) return \"\";\r\n\r\n return this.GetPictureRemoteUrl(propertyTicketPictureUrl);\r\n }\r\n\r\n public HasVideo(videos: IVideo[] | undefined, videoType: VideoTypes): boolean {\r\n if (!videos || videos.length < 1) {\r\n return false;\r\n }\r\n\r\n return videos.some((video) => video.type === videoType);\r\n }\r\n //#endregion\r\n\r\n //#region Asset\r\n // Business Rules : Take the best top that covers at least 80% of number of prizes or at default take the top 1000\r\n // Business Rules : Take max 3 items\r\n public CalculateAssetPrizeRankings(\r\n prizes: IPrize[] | undefined,\r\n assetRankings: IRankingAsset[] | undefined\r\n ): IPrizesRanking[] {\r\n // Note: prize must have ranking navigation property to access area property\r\n if (!prizes || !prizes.length || !assetRankings || !assetRankings.length) return [];\r\n const taggedAssetPrizes = prizes.filter((p) => p.taggedAsAsset === true);\r\n\r\n if (!taggedAssetPrizes.length) return [];\r\n const assetRankingsAreas: string[] = assetRankings.map((ar) => ar.areaType);\r\n const areas: string[] = taggedAssetPrizes.filter((ap) => assetRankingsAreas.includes(ap.area)).map((p) => p.area);\r\n const setAreas: Set = new Set(areas);\r\n\r\n const prizesRankings: IPrizesRanking[] = [];\r\n for (const area of setAreas) {\r\n const prizesFilteredByArea: IPrize[] = taggedAssetPrizes.filter((p) => p.area == area);\r\n const prizesRanking = this.CalculateAssetPrizeRankingsForArea(prizesFilteredByArea, area);\r\n prizesRankings.push(prizesRanking);\r\n }\r\n\r\n return prizesRankings.length > 3 ? prizesRankings.slice(0, 3) : prizesRankings;\r\n }\r\n\r\n private CalculateAssetPrizeRankingsForArea(prizesFilteredByArea: IPrize[], area: string): IPrizesRanking {\r\n const count: number = prizesFilteredByArea.length;\r\n const countTop10: number = prizesFilteredByArea.filter((pra) => pra.rank <= 10).length;\r\n const countTop100: number = prizesFilteredByArea.filter((pra) => pra.rank <= 100).length;\r\n const countTop200: number = prizesFilteredByArea.filter((pra) => pra.rank <= 200).length;\r\n const countTop1000: number = prizesFilteredByArea.filter((pra) => pra.rank <= 1000).length;\r\n\r\n if (countTop10 >= 0.8 * count) {\r\n return { count: countTop10, area: area, top: 10 };\r\n } else if (countTop100 >= 0.8 * count) {\r\n return { count: countTop100, area: area, top: 100 };\r\n } else if (countTop200 >= 0.8 * count) {\r\n return { count: countTop200, area: area, top: 200 };\r\n } else {\r\n return { count: countTop1000, area: area, top: 1000 };\r\n }\r\n }\r\n\r\n public HasAsset(pigeon: IPigeon): boolean {\r\n if (!pigeon || !pigeon.asset) return false;\r\n\r\n if (pigeon.asset === AssetTypes.Text) {\r\n return pigeon.assetText ? true : false;\r\n } else if (pigeon.asset === AssetTypes.Prize) {\r\n return pigeon.prizes && pigeon.prizes.length && pigeon.prizes.some((p) => p.taggedAsAsset === true)\r\n ? true\r\n : false;\r\n } else if (pigeon.asset === AssetTypes.Ranking) {\r\n return pigeon.assetRankings && pigeon.assetRankings.length ? true : false;\r\n } else if (pigeon.asset === AssetTypes.Parent) {\r\n return pigeon.assetParents && pigeon.assetParents.length ? true : false;\r\n } else {\r\n console.error(\"Operation exception: unsupported asset type\");\r\n return false;\r\n }\r\n }\r\n\r\n public HasAssetType(pigeon: IPigeon): boolean {\r\n if (!pigeon) return false;\r\n\r\n return pigeon.asset ? true : false;\r\n }\r\n\r\n public HasCharacteristics(pigeon: IPigeon): boolean {\r\n return pigeon?.characteristics?.length ? true : false;\r\n }\r\n //#endregion\r\n\r\n //#region Fetch\r\n public async FetchAllPigeonsByVendor(currentVendorId: string): Promise {\r\n const { data: pigeonsData } = await this.pigeonsService.FetchAllByVendor(currentVendorId);\r\n const pigeons = pigeonsData.value;\r\n\r\n return pigeons;\r\n }\r\n\r\n public async FetchAllReproducersByVendor(currentVendorId: string): Promise {\r\n const { data: dataReproducerParents } = await this.reproducerParentsService.FetchAll(currentVendorId);\r\n const reproducerParents = dataReproducerParents.value.filter((rp) => rp.parent).map((rp) => rp.parent as IPigeon);\r\n\r\n const { data: dataReproducers } = await this.pigeonsService.FetchAllReproducersByVendor(currentVendorId);\r\n const reproducerPigeons = dataReproducers.value;\r\n\r\n return uniqWith(\r\n ([] as IPigeon[]).concat(reproducerParents, reproducerPigeons),\r\n (value: IPigeon, other: IPigeon) => value.id === other.id\r\n );\r\n }\r\n\r\n public async FetchAllReproducersAvailableByVendor(currentVendorId: string): Promise {\r\n const { data: dataReproducerParents } = await this.reproducerParentsService.FetchAllAvailable(currentVendorId);\r\n const reproducerParents = dataReproducerParents.value.filter((rp) => rp.parent).map((rp) => rp.parent as IPigeon);\r\n\r\n const { data: dataReproducers } = await this.pigeonsService.FetchAllReproducersAvailableByVendor(currentVendorId);\r\n const reproducerPigeons = dataReproducers.value;\r\n\r\n return uniqWith(\r\n ([] as IPigeon[]).concat(reproducerParents, reproducerPigeons),\r\n (value: IPigeon, other: IPigeon) => value.id === other.id\r\n );\r\n }\r\n\r\n public async FetchUnsoldPigeonsByVendor(currentVendorId: string): Promise {\r\n const { data: dataUnsoldSales } = await this.salesService.FetchAllUnsoldSalesWithProductByVendor(currentVendorId);\r\n const unsoldPigeons: IPigeon[] = dataUnsoldSales.value\r\n .filter((s) => s.product == ProductTypes.Pigeon)\r\n .map((s) => s.pigeon as IPigeon);\r\n const unsoldPigeonsFromPack: IPigeon[] = dataUnsoldSales.value\r\n .filter((s) => s.product == ProductTypes.Package)\r\n .flatMap((s) => (s.package as IPackage).pigeons as IPigeon[]);\r\n\r\n return uniqWith(\r\n ([] as IPigeon[]).concat(unsoldPigeons, unsoldPigeonsFromPack),\r\n (value: IPigeon, other: IPigeon) => value.id === other.id\r\n );\r\n }\r\n //#endregion\r\n}\r\n","import { IPigeonsService } from \"@api/contracts/odata/IPigeonsService\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { IProduct } from \"@market/components/sale/SaleProductAbstract\";\r\nimport { ICartItem } from \"@market/models/ICartItem\";\r\nimport { IFilePicture } from \"@pigeon/models/IFilePicture\";\r\nimport { IFileVideo } from \"@pigeon/models/IFileVideo\";\r\nimport { IBlobManager } from \"@pigeon/services/contracts/IBlobManager\";\r\nimport { IProductManager } from \"@pigeon/services/contracts/IProductManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { kebabCase } from \"lodash-es\";\r\n\r\nexport class ProductManager implements IProductManager {\r\n @Inject()\r\n private pigeonsService: IPigeonsService;\r\n @Inject()\r\n private blobManager: IBlobManager;\r\n\r\n public GetProductReferenceSlug(product: IProduct | ICartItem): string | undefined {\r\n if (!product || !product.reference) return;\r\n\r\n return product.reference.replace(/\\s/g, \"\");\r\n }\r\n\r\n public GetProductNameSlug(product: IProduct | ICartItem): string | undefined {\r\n if (!product || !product.name) return;\r\n\r\n return kebabCase(product.name);\r\n }\r\n\r\n //#region Upload\r\n private async UploadPictureFilesAsync(pigeonId: number, pictureFiles: IFilePicture[]): Promise {\r\n for (const pictureFile of pictureFiles) {\r\n await this.blobManager.InsertPigeonPictureAsync(pigeonId, pictureFile);\r\n }\r\n }\r\n\r\n private async UploadVideoFilesAsync(pigeonId: number, videoFiles: IFileVideo[]): Promise {\r\n for (const videoFile of videoFiles) {\r\n await this.blobManager.InsertPigeonVideoAsync(pigeonId, videoFile);\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Insert/Update\r\n private SanitizePigeonGraph(pigeon: IPigeon): void {\r\n // Sanitize ring\r\n if (!pigeon.ringNumber) {\r\n pigeon.ring = undefined;\r\n pigeon.ringArea = undefined;\r\n pigeon.ringClub = undefined;\r\n pigeon.ringNumber = undefined;\r\n }\r\n\r\n // Sanitize fancier\r\n if (pigeon.fancier && !pigeon.fancier.name) {\r\n delete pigeon.fancier;\r\n }\r\n\r\n // Sanitize strain\r\n if (pigeon.strain && !pigeon.strain.name) {\r\n delete pigeon.strain;\r\n }\r\n }\r\n\r\n public async Insert(pigeon: IPigeon, pictureFiles: IFilePicture[], videoFiles?: IFileVideo[]): Promise {\r\n // Sanitize graph inputs (= clean data model and remove not used child relation)\r\n this.SanitizePigeonGraph(pigeon);\r\n\r\n try {\r\n const { data } = await this.pigeonsService.Insert(pigeon);\r\n const insertedPigeon = data;\r\n const insertedPigeonId = insertedPigeon.id as number;\r\n\r\n if (pictureFiles && pictureFiles.length > 0) {\r\n await this.UploadPictureFilesAsync(insertedPigeonId, pictureFiles);\r\n }\r\n if (videoFiles && videoFiles.length > 0) {\r\n await this.UploadVideoFilesAsync(insertedPigeonId, videoFiles);\r\n }\r\n return Promise.resolve(insertedPigeon);\r\n } catch (error: any) {\r\n return Promise.reject(error);\r\n }\r\n }\r\n\r\n public async Update(\r\n updatedPigeonId: number,\r\n pigeon: IPigeon,\r\n pictureFiles: IFilePicture[],\r\n videoFiles?: IFileVideo[]\r\n ): Promise {\r\n // Sanitize graph inputs (= clean data model and remove not used child relation)\r\n this.SanitizePigeonGraph(pigeon);\r\n\r\n try {\r\n await this.pigeonsService.Update(updatedPigeonId, pigeon);\r\n\r\n if (pictureFiles && pictureFiles.length > 0) {\r\n await this.UploadPictureFilesAsync(updatedPigeonId, pictureFiles);\r\n }\r\n if (videoFiles && videoFiles.length > 0) {\r\n await this.UploadVideoFilesAsync(updatedPigeonId, videoFiles);\r\n }\r\n } catch (error: any) {\r\n return Promise.reject(error);\r\n }\r\n }\r\n //#endregion\r\n}\r\n","import { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { IRing } from \"@api/models/market/IRing\";\r\nimport { ArrayHelper } from \"@api/services/helpers/ArrayHelper\";\r\nimport dayjs from \"@pigeon/i18n/dayjs\";\r\nimport { IListOption } from \"@pigeon/models/IListOption\";\r\nimport { IRingManager } from \"@pigeon/services/contracts/IRingManager\";\r\nimport { groupBy } from \"lodash-es\";\r\nimport cloneDeep from \"lodash-es/cloneDeep\";\r\n\r\nexport class RingManager implements IRingManager {\r\n public static readonly ringAreasHardcoded: IRing[] = []; //TODO\r\n static readonly SEPTEMBER: number = 8;\r\n\r\n get RingAreasHardcoded() {\r\n return RingManager.ringAreasHardcoded;\r\n }\r\n\r\n get CurrentYear(): number {\r\n return dayjs().year();\r\n }\r\n\r\n public GetMaxBirthYear(): number {\r\n // Business Rule: Max year should be current year except in december it s the next year because fancier can order new rings for new young pigeon on december\r\n return dayjs().month() >= RingManager.SEPTEMBER ? this.CurrentYear + 1 : this.CurrentYear;\r\n }\r\n\r\n public HasRingInput(pigeon: IPigeon): boolean {\r\n return pigeon.ringArea &&\r\n pigeon.birthYear &&\r\n pigeon.birthYear > 1000 &&\r\n pigeon.ringNumber &&\r\n pigeon.ringNumber.length >= 3\r\n ? true\r\n : false;\r\n }\r\n\r\n public HasRingClub(pigeon: IPigeon): boolean {\r\n return this.IsRingAreaHasRingClub(pigeon.ringArea);\r\n }\r\n\r\n public IsRingAreaHasRingClub(ringArea?: string): boolean {\r\n switch (ringArea) {\r\n // Germany\r\n case \"DV\":\r\n return true;\r\n\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n private FormatRingBirthyearOnTwoDigits(pigeon: IPigeon): string {\r\n return (pigeon.birthYear as number).toString().substr(-2);\r\n }\r\n\r\n private RawFormatRingBirthyearOnTwoDigits(birthyear: number | null): string {\r\n if (!birthyear) return \"\";\r\n\r\n return birthyear.toString().substr(-2);\r\n }\r\n\r\n public FormatRing(pigeon: IPigeon): string {\r\n switch (pigeon.ringArea) {\r\n // Germany\r\n case \"DV\":\r\n return `${pigeon.ringArea} ${pigeon.ringClub}-${this.FormatRingBirthyearOnTwoDigits(pigeon)}-${\r\n pigeon.ringNumber\r\n }`;\r\n\r\n default:\r\n return `${pigeon.ringArea} ${this.FormatRingBirthyearOnTwoDigits(pigeon)}-${pigeon.ringNumber}`;\r\n }\r\n }\r\n\r\n public RawFormatRing(\r\n ringArea: string | null,\r\n ringClub: string | null | undefined,\r\n birthyear: number | null,\r\n ringNumber: string | null\r\n ): string {\r\n let formattedRing = \"\";\r\n\r\n if (ringArea) formattedRing += ringArea + \" \";\r\n if (ringArea == \"DV\" && ringClub) formattedRing += `${ringClub} -`;\r\n if (birthyear) formattedRing += `${this.RawFormatRingBirthyearOnTwoDigits(birthyear)}-`;\r\n if (ringNumber) formattedRing += ringNumber;\r\n\r\n return formattedRing;\r\n }\r\n\r\n private SortRingAreas(ringAreas: IRing[]): IRing[] {\r\n return cloneDeep(ringAreas).sort(function (a, b) {\r\n return (\r\n ArrayHelper.SortAscendingCompare(a.discriminator, b.discriminator) ||\r\n ArrayHelper.SortAscendingCompare(a.areaCode, b.areaCode)\r\n );\r\n });\r\n }\r\n\r\n public BuildRingAreasGroupOptions(ringAreas: IRing[]): { [key: string]: IListOption[] } {\r\n const sortedRingAreas = this.SortRingAreas(ringAreas);\r\n const ringAreasGroupedByDiscriminator = groupBy(sortedRingAreas, (ring: IRing) => ring.discriminator);\r\n const ringAreasOptionGroups: { [key: string]: IListOption[] } = {};\r\n\r\n for (const discriminator in ringAreasGroupedByDiscriminator) {\r\n const hasDiscriminator = Object.prototype.hasOwnProperty.call(ringAreasGroupedByDiscriminator, discriminator);\r\n\r\n if (hasDiscriminator) {\r\n ringAreasOptionGroups[discriminator] = ringAreasGroupedByDiscriminator[discriminator].map((option) => {\r\n return {\r\n label: option.areaCode,\r\n value: option.areaCode\r\n } as IListOption;\r\n });\r\n }\r\n }\r\n\r\n return ringAreasOptionGroups;\r\n }\r\n}\r\n","import { IBiddingOrdersService } from \"@api/contracts/odata/IBiddingOrdersService\";\r\nimport { IBidsService } from \"@api/contracts/odata/IBidsService\";\r\nimport { IDepositsService } from \"@api/contracts/odata/IDepositsService\";\r\nimport { IFavoritesService } from \"@api/contracts/odata/IFavoritesService\";\r\nimport { IOrderLinesService } from \"@api/contracts/odata/IOrderLinesService\";\r\nimport { IOrdersService } from \"@api/contracts/odata/IOrdersService\";\r\nimport { ISalesService } from \"@api/contracts/odata/ISalesService\";\r\nimport { ISettlementsService } from \"@api/contracts/odata/ISettlementsService\";\r\nimport { ITaskTrackingsService } from \"@api/contracts/odata/ITaskTrackingsService\";\r\nimport { IUsersService } from \"@api/contracts/odata/IUsersService\";\r\nimport { ProductMapper } from \"@api/mappers/ProductMapper\";\r\nimport { ProductTypes } from \"@api/models/market/constants/ProductTypes\";\r\nimport { SaleStatus } from \"@api/models/market/constants/SaleStatus\";\r\nimport { SaleTypes } from \"@api/models/market/constants/SaleTypes\";\r\nimport { ShippingMethodTypes } from \"@api/models/market/constants/ShippingMethodTypes\";\r\nimport { TransferStatus } from \"@api/models/market/constants/TransferStatus\";\r\nimport { IAbandonedOrderLine } from \"@api/models/market/IAbandonedOrderLine\";\r\nimport { IBid } from \"@api/models/market/IBid\";\r\nimport { IBiddingOrder } from \"@api/models/market/IBiddingOrder\";\r\nimport { IFavorite } from \"@api/models/market/IFavorite\";\r\nimport { IOrder } from \"@api/models/market/IOrder\";\r\nimport { IPackage } from \"@api/models/market/IPackage\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport {\r\n AUCTION_TIME_CLOSE_END_OF_SALE,\r\n BASE_DEPOSIT_RATE,\r\n PLATFORM_VAT_RATE,\r\n REFERRAL_FEES_RATE\r\n} from \"@market/App.const\";\r\nimport { IProduct } from \"@market/components/sale/SaleProductAbstract\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport { authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { IFilePicture } from \"@pigeon/models/IFilePicture\";\r\nimport { IFileVideo } from \"@pigeon/models/IFileVideo\";\r\nimport { IBlobManager } from \"@pigeon/services/contracts/IBlobManager\";\r\nimport { ISaleManager } from \"@pigeon/services/contracts/ISaleManager\";\r\nimport { AxiosPromise, AxiosResponse } from \"axios\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { uniq } from \"lodash-es\";\r\nimport cloneDeep from \"lodash-es/cloneDeep\";\r\nimport VueRouter from \"vue-router\";\r\nimport { Dictionary, Location } from \"vue-router/types/router\";\r\nimport { IAmountManager } from \"./contracts/IAmountManager\";\r\nimport { IPackageManager } from \"./contracts/IPackageManager\";\r\nimport { IPigeonManager } from \"./contracts/IPigeonManager\";\r\n\r\nexport class SaleManager implements ISaleManager {\r\n static readonly MAX_INT32 = Math.pow(2, 31) - 1;\r\n\r\n @Inject()\r\n private salesService: ISalesService;\r\n @Inject()\r\n private favoritesService: IFavoritesService;\r\n @Inject()\r\n private bidsService: IBidsService;\r\n @Inject()\r\n private biddingOrdersService: IBiddingOrdersService;\r\n @Inject()\r\n private ordersService: IOrdersService;\r\n @Inject()\r\n private orderLinesService: IOrderLinesService;\r\n @Inject()\r\n private usersService: IUsersService;\r\n @Inject()\r\n private depositsService: IDepositsService;\r\n @Inject()\r\n private settlementsService: ISettlementsService;\r\n @Inject()\r\n private taskTrackingsService: ITaskTrackingsService;\r\n @Inject()\r\n private pigeonManager: IPigeonManager;\r\n @Inject()\r\n private packageManager: IPackageManager;\r\n @Inject()\r\n private amountManager: IAmountManager;\r\n @Inject()\r\n private blobManager: IBlobManager;\r\n\r\n //#region Upload\r\n private async UploadPictureFilesAsync(pigeonId: number, pictureFiles: IFilePicture[]): Promise {\r\n for (const pictureFile of pictureFiles) {\r\n await this.blobManager.InsertPigeonPictureAsync(pigeonId, pictureFile);\r\n }\r\n }\r\n\r\n private async UploadVideoFilesAsync(pigeonId: number, videoFiles: IFileVideo[]): Promise {\r\n for (const videoFile of videoFiles) {\r\n await this.blobManager.InsertPigeonVideoAsync(pigeonId, videoFile);\r\n }\r\n }\r\n\r\n private async UploadMediaFilesAsync(\r\n sale: ISale,\r\n pictureFiles: IFilePicture[],\r\n videoFiles: IFileVideo[]\r\n ): Promise {\r\n if (!sale.id) throw new Error(\"Operation exception: Error on upload media files because the sale id is undefined.\");\r\n\r\n // Insert Media (pictures, videos)\r\n // Product pigeon\r\n if (sale.product == ProductTypes.Pigeon) {\r\n if (!sale.pigeonId)\r\n throw new Error(\"Operation exception: Error on upload media files because the pigeon id is undefined.\");\r\n if (pictureFiles.length > 0) await this.UploadPictureFilesAsync(sale.pigeonId, pictureFiles);\r\n if (videoFiles.length > 0) await this.UploadVideoFilesAsync(sale.pigeonId, videoFiles);\r\n }\r\n // Product package\r\n else if (sale.product == ProductTypes.Package) {\r\n // fetch product package to retrieve graph children Ids (= package Id, pigeonItems Id, reproducerItems Id)\r\n const { data: salePackageData } = await this.salesService.FetchProductPackage(sale.id);\r\n sale.package = salePackageData.package;\r\n sale.packageId = salePackageData.packageId;\r\n\r\n if (!sale.packageId)\r\n throw new Error(\"Operation exception: Error on upload media files because the package id is undefined.\");\r\n if (!sale.package)\r\n throw new Error(\"Operation exception: Error on upload media files because the package is undefined.\");\r\n if (pictureFiles.length > 0 && sale.package) {\r\n // pigeons\r\n if (sale.package.pigeons) {\r\n for (const pigeon of sale.package.pigeons) {\r\n const pigeonItemsPictureFiles = pictureFiles.filter(\r\n (pf) => pf.pigeonKey === pigeon.id || pf.pigeonKeyClient === pigeon.idClient\r\n );\r\n\r\n if (pigeonItemsPictureFiles.length > 0 && pigeon.id) {\r\n await this.UploadPictureFilesAsync(pigeon.id, pigeonItemsPictureFiles);\r\n }\r\n }\r\n }\r\n // reproducers\r\n if (sale.package.reproducerParents) {\r\n for (const reproducerParent of sale.package.reproducerParents) {\r\n if (reproducerParent.parent) {\r\n const reproducerItemsPictureFiles = pictureFiles.filter(\r\n (pf) =>\r\n pf.pigeonKey === reproducerParent?.parent?.id ||\r\n pf.pigeonKeyClient === reproducerParent?.parent?.idClient\r\n );\r\n if (reproducerItemsPictureFiles.length > 0 && reproducerParent.parent?.id)\r\n await this.UploadPictureFilesAsync(reproducerParent.parent?.id, reproducerItemsPictureFiles);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Queries\r\n private async PrefetchSaleToEdit(saleKey: number) {\r\n return await Promise.all([\r\n this.salesService.FetchProductType(saleKey),\r\n this.salesService.FetchSaleType(saleKey),\r\n this.salesService.GetIsVendorOfThisSale(saleKey)\r\n ]);\r\n }\r\n\r\n private async PrefetchSaleProduct(saleKey: number) {\r\n return await Promise.all([\r\n this.salesService.FetchProductType(saleKey),\r\n this.salesService.FetchSaleType(saleKey),\r\n authStore.IsAuthenticated\r\n ? this.salesService.GetIsBuyerOfThisSale(saleKey)\r\n : Promise.resolve({ data: { value: false } }),\r\n authStore.IsAuthenticated\r\n ? this.salesService.GetIsVendorOfThisSale(saleKey)\r\n : Promise.resolve({ data: { value: false } })\r\n ]);\r\n }\r\n\r\n private FetchSaleProduct(saleKey: number, productType: ProductTypes) {\r\n switch (productType) {\r\n case ProductTypes.Pigeon:\r\n return this.salesService.FetchProductPigeon(saleKey);\r\n\r\n case ProductTypes.Package:\r\n return this.salesService.FetchProductPackage(saleKey);\r\n\r\n default:\r\n return Promise.reject(\"Invalid product type\");\r\n }\r\n }\r\n\r\n private FetchSaleProductWithFinancialData(saleKey: number, productType: ProductTypes) {\r\n switch (productType) {\r\n case ProductTypes.Pigeon:\r\n return this.salesService.FetchProductPigeonWithPaymentSummary(saleKey);\r\n\r\n case ProductTypes.Package:\r\n return this.salesService.FetchProductPackageWithPaymentSummary(saleKey);\r\n\r\n default:\r\n return Promise.reject(\"Invalid product type\");\r\n }\r\n }\r\n\r\n private FetchSaleProductToEdit(saleKey: number, productType: ProductTypes) {\r\n switch (productType) {\r\n case ProductTypes.Pigeon:\r\n return this.salesService.FetchProductPigeonToEdit(saleKey);\r\n\r\n case ProductTypes.Package:\r\n return this.salesService.FetchProductPackageToEdit(saleKey);\r\n\r\n default:\r\n return Promise.reject(\"Invalid product type\");\r\n }\r\n }\r\n\r\n private FetchSaleProductToSupervise(saleKey: number, productType: ProductTypes) {\r\n switch (productType) {\r\n case ProductTypes.Pigeon:\r\n return this.salesService.FetchSupervisedPigeon(saleKey);\r\n\r\n case ProductTypes.Package:\r\n return this.salesService.FetchSupervisedPackage(saleKey);\r\n\r\n default:\r\n return Promise.reject(\"Invalid product type\");\r\n }\r\n }\r\n\r\n private FetchAllSaleBids(saleKey: number, saleType: SaleTypes) {\r\n if (saleType == SaleTypes.Bid) return this.salesService.FetchAllBids(saleKey);\r\n }\r\n\r\n public async FetchAllBidsBySale(saleKey: number): Promise {\r\n if (!saleKey) return Promise.reject(\"Argument exception: saleKey is undefined\");\r\n\r\n const { data } = await this.salesService.FetchAllBids(saleKey);\r\n return data.value;\r\n }\r\n\r\n public async FetchAllBidsBySales(sales: ISale[]): Promise {\r\n const saleIds: number[] = uniq(sales.filter((s) => s.id).map((s) => s.id) as number[]);\r\n if (!saleIds?.length) return Promise.reject(\"Argument exception: no sale id.\");\r\n\r\n const { data: bidsData } = await this.bidsService.FetchAllBidsWithUserBySales(saleIds);\r\n return bidsData.value;\r\n }\r\n\r\n private FetchMyHighestSaleBiddingOrders(saleKey: number, saleType: SaleTypes) {\r\n if (authStore.IsAuthenticated && authStore.IsMember && saleType == SaleTypes.Bid)\r\n return this.biddingOrdersService.FetchMyHighestBiddingOrderBySale(saleKey);\r\n }\r\n\r\n // Issue MAX DTU = split the query\r\n private async FetchSaleFinancialData(saleKey: number, orderId?: string | null) {\r\n const promiseOrder = orderId ? this.ordersService.FetchSummaryWithBuyer(orderId) : undefined;\r\n const promiseDeposit = this.depositsService.FetchAllSummaryWithUserBySale(saleKey);\r\n const promiseSettlement = this.settlementsService.FetchAllSummaryWithUserBySale(saleKey);\r\n const [responseOrder, responseDeposit, responseSettlement] = await Promise.all([\r\n promiseOrder,\r\n promiseDeposit,\r\n promiseSettlement\r\n ]);\r\n\r\n return { responseOrder, responseDeposit, responseSettlement };\r\n }\r\n\r\n // Issue MAX DTU = split the query\r\n public async FetchSaleWithProduct(saleKey: number): Promise {\r\n let saleWithProduct: ISale | null = null;\r\n\r\n // prettier-ignore\r\n const [\r\n { data: productType },\r\n { data: saleType },\r\n { data: { value: isTheBuyer } },\r\n { data: { value: isTheVendor } }\r\n ] = await this.PrefetchSaleProduct(saleKey);\r\n\r\n const [responseProduct, responseBids, responseHighestBiddingOrder] = await Promise.all([\r\n isTheBuyer || isTheVendor || authStore.IsAdministrator\r\n ? this.FetchSaleProductWithFinancialData(saleKey, productType)\r\n : this.FetchSaleProduct(saleKey, productType),\r\n this.FetchAllSaleBids(saleKey, saleType),\r\n this.FetchMyHighestSaleBiddingOrders(saleKey, saleType)\r\n ]);\r\n if (responseProduct) saleWithProduct = responseProduct.data;\r\n if (responseBids && saleWithProduct) saleWithProduct.bids = responseBids.data.value;\r\n if (responseHighestBiddingOrder && saleWithProduct)\r\n saleWithProduct.biddingOrders = responseHighestBiddingOrder.data.value;\r\n\r\n if (isTheBuyer || isTheVendor || authStore.IsAdministrator) {\r\n // prettier-ignore\r\n const { responseOrder, responseDeposit, responseSettlement } = await this.FetchSaleFinancialData(saleKey, saleWithProduct?.orderLine?.orderId);\r\n if (responseOrder && saleWithProduct?.orderLine) saleWithProduct.orderLine.order = responseOrder.data;\r\n if (responseDeposit && saleWithProduct) saleWithProduct.deposit = responseDeposit.data.value?.[0];\r\n if (responseSettlement && saleWithProduct) saleWithProduct.settlement = responseSettlement.data.value?.[0];\r\n }\r\n\r\n return saleWithProduct as ISale;\r\n }\r\n\r\n public async FetchSaleWithProductToEdit(saleKey: number): Promise {\r\n const [{ data: productType }, { data: isVendorOfThisSale }] = await this.PrefetchSaleToEdit(saleKey);\r\n if (!isVendorOfThisSale && !authStore.IsAdministrator) return Promise.reject(\"Unauthorized\");\r\n\r\n const { data: saleWithProductToEdit } = await this.FetchSaleProductToEdit(saleKey, productType);\r\n return saleWithProductToEdit;\r\n }\r\n\r\n public async FetchSaleWithProductToSupervise(saleKey: number): Promise {\r\n const [{ data: productType }, { data: isVendorOfThisSale }] = await Promise.all([\r\n this.salesService.FetchProductType(saleKey),\r\n this.salesService.GetIsVendorOfThisSale(saleKey)\r\n ]);\r\n\r\n if (!isVendorOfThisSale && !authStore.IsAdministrator) {\r\n return Promise.reject(\"Unauthorized action\");\r\n }\r\n\r\n const { data: saleWithProductToSupervise } = await this.FetchSaleProductToSupervise(saleKey, productType);\r\n\r\n // Issue MAX DTU = split the query\r\n const [promiseSaleBids, promiseSaleBiddingOrders, promiseUserVendor, promiseOrder, promiseTrackingTasks] =\r\n await Promise.all([\r\n saleWithProductToSupervise.type == SaleTypes.Bid\r\n ? this.bidsService.FetchAllBidsWithUserBySale(saleWithProductToSupervise.id as number)\r\n : Promise.resolve(null),\r\n saleWithProductToSupervise.type == SaleTypes.Bid && authStore.IsAdministrator\r\n ? this.biddingOrdersService.FetchAllBiddingOrdersWithUserBySale(saleWithProductToSupervise.id as number)\r\n : Promise.resolve(null),\r\n saleWithProductToSupervise.userId\r\n ? this.usersService.FetchWithVendor(saleWithProductToSupervise.userId as string)\r\n : Promise.resolve(null),\r\n saleWithProductToSupervise.orderLine?.orderId\r\n ? this.ordersService.FetchSheet(saleWithProductToSupervise.orderLine.orderId)\r\n : Promise.resolve(null),\r\n saleWithProductToSupervise.userId\r\n ? this.taskTrackingsService.FetchAllBySaleAndByVendor(\r\n saleWithProductToSupervise.id as number,\r\n saleWithProductToSupervise.userId\r\n )\r\n : Promise.resolve(null)\r\n ]);\r\n\r\n if (promiseSaleBids) saleWithProductToSupervise.bids = promiseSaleBids.data.value;\r\n if (promiseSaleBiddingOrders) saleWithProductToSupervise.biddingOrders = promiseSaleBiddingOrders.data.value;\r\n if (promiseUserVendor) saleWithProductToSupervise.user = promiseUserVendor.data;\r\n if (promiseOrder && saleWithProductToSupervise.orderLine)\r\n saleWithProductToSupervise.orderLine.order = promiseOrder.data;\r\n if (promiseTrackingTasks) saleWithProductToSupervise.taskTrackings = promiseTrackingTasks.data.value;\r\n\r\n if (authStore.IsAdministrator && saleWithProductToSupervise.orderLinesAbandoned) {\r\n await this.FetchThenPopulateAbandonedOrders(saleWithProductToSupervise.orderLinesAbandoned);\r\n }\r\n\r\n return saleWithProductToSupervise;\r\n }\r\n\r\n private async FetchThenPopulateAbandonedOrders(abandonedOrderLines: IAbandonedOrderLine[]): Promise {\r\n if (!authStore.IsAdministrator) return Promise.resolve();\r\n if (!abandonedOrderLines || !abandonedOrderLines.length) return Promise.resolve();\r\n\r\n const promisesAbandonedOrders: AxiosPromise[] = [];\r\n\r\n for (const orderLine of abandonedOrderLines) {\r\n if (orderLine.orderId) {\r\n promisesAbandonedOrders.push(this.ordersService.FetchSheet(orderLine.orderId));\r\n }\r\n }\r\n\r\n const abandonedOrders = (await Promise.all(promisesAbandonedOrders)).map((promise) => promise.data);\r\n for (const abandonedOrder of abandonedOrders) {\r\n const currentAbandonedOrderLine = abandonedOrderLines.find((aol) => aol.orderId == abandonedOrder.id);\r\n if (currentAbandonedOrderLine) {\r\n currentAbandonedOrderLine.order = abandonedOrder;\r\n }\r\n }\r\n }\r\n\r\n public async FetchThenPopulateSalesBidsProperty(sales: ISale[]): Promise {\r\n const saleIds: number[] = uniq(sales.filter((s) => s.id).map((s) => s.id) as number[]);\r\n if (!saleIds?.length) return;\r\n\r\n const { data: salesBidsData } = await this.bidsService.FetchAllBidsWithUserBySales(saleIds);\r\n for (const sale of sales) {\r\n sale.bids = salesBidsData.value.filter((b) => b.saleId == sale.id).sort(this.CompareBids);\r\n }\r\n }\r\n\r\n public async FetchThenPopulateSalesOrderLineProperty(sales: ISale[]): Promise {\r\n const salesIds: number[] = uniq(sales.filter((s) => s.id).map((s) => s.id as number));\r\n if (!salesIds?.length) return;\r\n\r\n const { data: orderLinesData } = await this.orderLinesService.FetchAllOrderLinesWithOrderDetailsBySalesIds(\r\n salesIds\r\n );\r\n for (const sale of sales) {\r\n if (!sale.id) continue;\r\n\r\n sale.orderLine = orderLinesData.value.find((ol) => ol.saleId == sale.id);\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Commands\r\n public async Insert(sale: ISale, pictureFiles: IFilePicture[], videoFiles: IFileVideo[]): Promise {\r\n try {\r\n const { data: insertedSale } = await this.salesService.Insert(sale);\r\n if (!insertedSale.id) throw new Error(\"Operation exception: undefined id for created sale\");\r\n // Insert Media (pictures, videos)\r\n await this.UploadMediaFilesAsync(insertedSale, pictureFiles, videoFiles);\r\n return Promise.resolve(insertedSale);\r\n } catch (error: any) {\r\n return Promise.reject(error);\r\n }\r\n }\r\n\r\n public async Update(updatedSale: ISale, pictureFiles: IFilePicture[], videoFiles: IFileVideo[]): Promise {\r\n try {\r\n if (!updatedSale.id) throw new Error(\"Argument exception: undefined id for updated sale\");\r\n\r\n await this.salesService.Update(updatedSale.id, updatedSale);\r\n // Insert Media (pictures, videos)\r\n await this.UploadMediaFilesAsync(updatedSale, pictureFiles, videoFiles);\r\n } catch (error: any) {\r\n return Promise.reject(error);\r\n }\r\n }\r\n\r\n public async AddToFavorite(saleId: number, userId: string): Promise {\r\n if (!authStore.IsAuthenticated) return Promise.reject(\"Unauthorized exception\");\r\n if (!saleId || !userId) return Promise.reject(\"Argument exception\");\r\n if (userId != userStore.user?.id) return Promise.reject(\"Forbidden exception\");\r\n\r\n const newFavorite: IFavorite = {\r\n recordedDate: new Date().toISOString(),\r\n saleId: saleId,\r\n userId: userId\r\n };\r\n\r\n try {\r\n const { data: insertedFavorite } = await this.favoritesService.Insert(newFavorite);\r\n return Promise.resolve(insertedFavorite);\r\n } catch (error: any) {\r\n return Promise.reject(error);\r\n }\r\n }\r\n\r\n public async RemoveFromFavorite(favoriteId: number): Promise> {\r\n if (!authStore.IsAuthenticated || !userStore.user?.id) return Promise.reject(\"Unauthorized exception\");\r\n if (!favoriteId) return Promise.reject(\"Argument exception: undefined favorite id\");\r\n\r\n try {\r\n return this.favoritesService.Delete(favoriteId);\r\n } catch (error: any) {\r\n return Promise.reject(error);\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Handlers\r\n\r\n public SetTimeoutBeforeEndOfSale(handler: TimerHandler, sale: ISale): number | undefined {\r\n if (!sale || !sale.endDate) return;\r\n\r\n const closeDelayBeforeEndOfSale = new Date(sale.endDate).getTime() - AUCTION_TIME_CLOSE_END_OF_SALE;\r\n\r\n let remainingTime = closeDelayBeforeEndOfSale - new Date().getTime(); // milliseconds\r\n if (remainingTime < 0) remainingTime = 0;\r\n\r\n // Fix timeout delay who is limited to MAX INT32 value by the browser\r\n if (remainingTime < SaleManager.MAX_INT32) {\r\n return window.setTimeout(handler, remainingTime);\r\n }\r\n }\r\n\r\n public SetTimeoutAtEndOfSale(handler: TimerHandler, sale: ISale): number | undefined {\r\n if (!sale || !sale.endDate) return;\r\n\r\n let remainingTime = new Date(sale.endDate).getTime() - new Date().getTime(); // milliseconds\r\n if (remainingTime < 0) remainingTime = 0;\r\n\r\n // Fix timeout delay who is limited to MAX INT32 value by the browser\r\n if (remainingTime < SaleManager.MAX_INT32) {\r\n return window.setTimeout(handler, remainingTime);\r\n }\r\n }\r\n\r\n public SetTimeoutWithEndOfSaleGuard(handler: TimerHandler, sale: ISale, timeoutDuration: number): number | undefined {\r\n if (!sale || !sale.endDate) return;\r\n if (timeoutDuration >= SaleManager.MAX_INT32) return;\r\n\r\n const remainingTime = new Date(sale.endDate).getTime() - new Date().getTime(); // milliseconds\r\n if (remainingTime < 0) return;\r\n\r\n return window.setTimeout(handler, timeoutDuration);\r\n }\r\n\r\n public SetTimeoutWithEndOfSalesGuard(\r\n handler: TimerHandler,\r\n sales: ISale[],\r\n timeoutDuration: number\r\n ): number | undefined {\r\n if (!sales?.length) return;\r\n if (timeoutDuration >= SaleManager.MAX_INT32) return;\r\n if (!this.IsAnAuctionSaleAvailableForBidding(sales, new Date())) return;\r\n\r\n return window.setTimeout(handler, timeoutDuration);\r\n }\r\n //#endregion\r\n\r\n //#region Functions\r\n public GetProduct(sale: ISale): IProduct | null {\r\n return ProductMapper.MapToProduct(sale);\r\n }\r\n\r\n public GetProductReferenceSlug(sale: ISale): string | undefined {\r\n if (!sale) return;\r\n\r\n if (sale.product == ProductTypes.Pigeon && sale.pigeon) return this.pigeonManager.GetRingSlug(sale.pigeon);\r\n else if (sale.product == ProductTypes.Package && sale.package) return;\r\n else return;\r\n }\r\n\r\n public GetProductNameSlug(sale: ISale): string | undefined {\r\n if (!sale) return;\r\n\r\n if (sale.product == ProductTypes.Pigeon && sale.pigeon) return this.pigeonManager.GetNameSlug(sale.pigeon);\r\n else if (sale.product == ProductTypes.Package && sale.package) return this.packageManager.GetNameSlug(sale.package);\r\n else return;\r\n }\r\n\r\n public ResolveSaleUrl($router: VueRouter, sale: ISale): any {\r\n if (!sale) throw new Error(\"Argument exception: sale is undefined.\");\r\n\r\n return $router.resolve({\r\n name: AppRoutes.Sale,\r\n params: this.BuildSaleUrlParameters(sale)\r\n });\r\n }\r\n\r\n public BuildSaleRoute(sale: ISale): Location {\r\n if (!sale) throw new Error(\"Argument exception: sale is undefined.\");\r\n\r\n return {\r\n name: AppRoutes.Sale,\r\n params: this.BuildSaleUrlParameters(sale)\r\n };\r\n }\r\n\r\n private GetPigeonNameSlug(pigeon: IPigeon): string | undefined {\r\n if (!pigeon) throw new Error(\"Argument exception: pigeon is undefined.\");\r\n\r\n return this.pigeonManager.GetNameSlug(pigeon);\r\n }\r\n\r\n private GetPigeonRingSlug(pigeon: IPigeon): string | undefined {\r\n if (!pigeon) throw new Error(\"Argument exception: pigeon is undefined.\");\r\n\r\n return this.pigeonManager.GetRingSlug(pigeon);\r\n }\r\n\r\n private GetPackageNameSlug(pack: IPackage): string | undefined {\r\n if (!pack) throw new Error(\"Argument exception: pack is undefined.\");\r\n\r\n return this.packageManager.GetNameSlug(pack);\r\n }\r\n\r\n private BuildSaleUrlParameters(sale: ISale): Dictionary {\r\n if (!sale) throw new Error(\"Argument exception: sale is undefined.\");\r\n if (!sale.id) throw new Error(\"Argument exception: sale id is undefined.\");\r\n\r\n if (sale.product == ProductTypes.Pigeon && sale.pigeon) {\r\n return {\r\n saleKey: sale.id.toString(),\r\n productRef: this.GetPigeonRingSlug(sale.pigeon),\r\n productName: this.GetPigeonNameSlug(sale.pigeon)\r\n } as Dictionary;\r\n } else if (sale.product == ProductTypes.Package && sale.package) {\r\n return {\r\n saleKey: sale.id.toString(),\r\n productName: this.GetPackageNameSlug(sale.package)\r\n } as Dictionary;\r\n } else throw new Error(\"Argument exception: Product is undefined or unsupported.\");\r\n }\r\n\r\n // Business rule: The higest bid is the bid with the highest amount with the earlist bidding order date if exists\r\n public GetHighestBid(sale: ISale): IBid | null {\r\n if (sale.type != SaleTypes.Bid || !sale.bids?.length) return null;\r\n\r\n return cloneDeep(sale.bids).sort(this.CompareBids)[0];\r\n }\r\n\r\n public OrderSalesBidsByHighestBid(sales: ISale[]): ISale[] {\r\n if (!sales) return [];\r\n\r\n const salesWithOrderedBids = cloneDeep(sales);\r\n for (const sale of salesWithOrderedBids) {\r\n if (sale.type == SaleTypes.Bid && sale.bids && sale.bids.length) {\r\n sale.bids = this.OrderSaleBidsByHighestBid(sale.bids as IBid[]);\r\n }\r\n }\r\n\r\n return salesWithOrderedBids;\r\n }\r\n\r\n public OrderSaleBidsByHighestBid(bids: IBid[]): IBid[] {\r\n if (!bids) return [];\r\n\r\n return cloneDeep(bids).sort(this.CompareBids);\r\n }\r\n\r\n // Sort by amount Descending then by biddingOrderId ascending (=equivalents to biddingOrder created date ascending)\r\n public CompareBids(bidA: IBid, bidB: IBid): number {\r\n if (bidB.amount == bidA.amount) {\r\n return (\r\n (bidA?.biddingOrderId ?? Number.MAX_VALUE) - (bidB?.biddingOrderId ?? Number.MAX_VALUE) ||\r\n new Date(bidA.bidDate).getTime() - new Date(bidB.bidDate).getTime()\r\n );\r\n }\r\n\r\n return bidB.amount - bidA.amount || new Date(bidA.bidDate).getTime() - new Date(bidB.bidDate).getTime();\r\n }\r\n\r\n // Business rule: The higest bidding order is the bidding order with the highest limit amount with the earlist bidding order date\r\n public GetHighestBiddingOrder(sale: ISale): IBiddingOrder | null {\r\n if (sale.type != SaleTypes.Bid || !sale.biddingOrders?.length) return null;\r\n\r\n return cloneDeep(sale.biddingOrders).sort(this.CompareBiddingOrders)[0];\r\n }\r\n\r\n // Sort by limitAmount Descending then by orderDate ascending\r\n public CompareBiddingOrders(biddingOrderA: IBiddingOrder, biddingOrderB: IBiddingOrder): number {\r\n return (\r\n biddingOrderB.limitAmount - biddingOrderA.limitAmount ||\r\n new Date(biddingOrderA.orderDate).getTime() - new Date(biddingOrderB.orderDate).getTime()\r\n );\r\n }\r\n\r\n public GetLatestBidByUser(sale: ISale, userKey: string): IBid | undefined | null {\r\n if (!sale.bids?.length) return null;\r\n\r\n const saleBids = cloneDeep(sale.bids);\r\n const bidsSortedDescending = saleBids.sort(this.CompareBids);\r\n const latestBid = bidsSortedDescending.find((b) => b.userId == userKey);\r\n\r\n return latestBid;\r\n }\r\n\r\n public IsSaleExpired(sale: ISale): boolean | undefined {\r\n if (!sale.endDate) return undefined;\r\n\r\n return sale.endDate && new Date() < new Date(sale.endDate) ? false : true;\r\n }\r\n\r\n public IsSaleStarted(sale: ISale): boolean {\r\n return new Date() >= new Date(sale.startDate) ? true : false;\r\n }\r\n\r\n public IsSaleCurrent(sale: ISale): boolean {\r\n return (\r\n this.IsSaleStarted(sale) &&\r\n (typeof sale.endDate === \"undefined\" || (typeof sale.endDate !== \"undefined\" && !this.IsSaleExpired(sale)))\r\n );\r\n }\r\n\r\n public IsSaleAvailableForBidding(sale: ISale, now: Date): boolean {\r\n if (!sale) throw new Error(\"Argument exception: sale is undefined.\");\r\n if (sale.type !== SaleTypes.Bid) throw new Error(\"Argument exception: sale type is incorrect.\");\r\n if (!sale.endDate) throw new Error(\"Argument exception: sale end date is undefined.\");\r\n\r\n return (\r\n sale.status === SaleStatus.OnSale &&\r\n sale.flagApproved === true &&\r\n now.getTime() >= new Date(sale.startDate).getTime() &&\r\n now.getTime() < new Date(sale.endDate).getTime()\r\n );\r\n }\r\n\r\n public IsAnAuctionSaleAvailableForBidding(sales: ISale[], now: Date): boolean {\r\n if (!sales?.length) return false;\r\n if (!sales.some((s) => s.type === SaleTypes.Bid)) return false;\r\n\r\n const allSalesEndDate: Date[] = sales.filter((s) => s.endDate).map((s) => new Date(s.endDate as string));\r\n const allSalesEndDateTime: number[] = allSalesEndDate.map((d) => d.getTime());\r\n const latestSaleEndDateTime: number = Math.max(...allSalesEndDateTime);\r\n const remainingTime = latestSaleEndDateTime - now.getTime(); // milliseconds\r\n\r\n return remainingTime > 0 ? true : false;\r\n }\r\n\r\n public IsSaleAvailableForPurchase(sale: ISale, now: Date): boolean {\r\n if (sale.type === SaleTypes.Bid && !sale.endDate)\r\n new Error(\"Argument exception: an bid sale must have an end date.\");\r\n\r\n let isAvailable = sale.status == SaleStatus.OnSale && now.getTime() >= new Date(sale.startDate).getTime();\r\n\r\n if (sale.type === SaleTypes.Fix && sale.endDate) {\r\n isAvailable = isAvailable && now.getTime() <= new Date(sale.endDate).getTime();\r\n } else if (sale.type === SaleTypes.Bid && sale.endDate) {\r\n isAvailable = isAvailable && now.getTime() > new Date(sale.endDate).getTime();\r\n }\r\n\r\n return isAvailable;\r\n }\r\n\r\n public IsVendorOfThisSale(sale: ISale): boolean {\r\n if (!authStore.IsAuthenticated || !authStore.IsVendor || !userStore.user || !sale) return false;\r\n\r\n return sale.userId === userStore.user?.id;\r\n }\r\n\r\n public IsBuyerOfThisSale(sale: ISale): boolean {\r\n if (!authStore.IsAuthenticated || !authStore.IsMember || !userStore.user || !sale) return false;\r\n\r\n if (this.HasOrder(sale) && sale.orderLine?.order) {\r\n return sale.orderLine.order.userId === userStore.user.id;\r\n } else if (this.HasSettlement(sale) && sale.settlement) {\r\n return sale.settlement.userId == userStore.user.id;\r\n } else if (this.HasDeposit(sale) && sale.deposit) {\r\n return sale.deposit.userId == userStore.user.id;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n public IsBidderOfThisSale(sale: ISale): boolean {\r\n if (!authStore.IsAuthenticated || !authStore.IsMember || !userStore.user || !sale || !sale.bids?.length)\r\n return false;\r\n\r\n return sale.bids.some((b) => b.userId === userStore.user?.id);\r\n }\r\n\r\n public IsVatInclusive(sale: ISale): boolean | null {\r\n if (!sale) return null;\r\n\r\n const isVatInclusive = sale.orderLine ? sale.orderLine.vatInclusive : sale.vatInclusive;\r\n return isVatInclusive ?? null;\r\n }\r\n\r\n public IsTransportIncluded(sale: ISale): boolean {\r\n if (!sale) return false;\r\n\r\n return false;\r\n }\r\n\r\n public HasVat(sale: ISale): boolean {\r\n return sale.vatRate ? true : false;\r\n }\r\n\r\n public HasOrder(sale: ISale): boolean {\r\n if (!sale) return false;\r\n\r\n return sale.orderLine?.order ? true : false;\r\n }\r\n\r\n public HasSettlement(sale: ISale): boolean {\r\n if (!sale) return false;\r\n\r\n return sale.settlement ? true : false;\r\n }\r\n\r\n public HasDeposit(sale: ISale): boolean {\r\n if (!sale) return false;\r\n\r\n return sale.deposit ? true : false;\r\n }\r\n\r\n public HasTasks(sale: ISale): boolean {\r\n if (!sale) return false;\r\n\r\n return sale.taskTrackings?.length == 0;\r\n }\r\n\r\n public HasProductPicture(sale: ISale): boolean {\r\n if (!sale) return false;\r\n\r\n switch (sale.product) {\r\n case ProductTypes.Pigeon:\r\n return sale.pigeon?.pictures?.length ? true : false;\r\n\r\n case ProductTypes.Package:\r\n return sale.package?.pictures?.length ? true : false;\r\n\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n public CanBeComptabilisedAsFinancialAsset(sale: ISale): boolean {\r\n if (!sale || !sale.type || !sale.status) return false;\r\n\r\n return (sale.type == SaleTypes.Bid && sale?.bids?.length) ||\r\n (sale.type == SaleTypes.Fix && (sale.status == SaleStatus.OnHold || sale.status == SaleStatus.Sold))\r\n ? true\r\n : false;\r\n }\r\n\r\n public CanEditSale(sale: ISale): boolean {\r\n if (!sale) return false;\r\n\r\n const isCurrentApprovedForSale = this.IsSaleCurrent(sale) && sale.flagApproved && sale.status == SaleStatus.OnSale;\r\n const isAuctionExpiredWithABid =\r\n this.IsSaleExpired(sale) &&\r\n sale.flagApproved &&\r\n sale.status == SaleStatus.OnSale &&\r\n sale.type == SaleTypes.Bid &&\r\n sale.bids &&\r\n sale.bids.length >= 1;\r\n const isSold = sale.status == SaleStatus.Sold || sale.status == SaleStatus.OnHold;\r\n\r\n return isCurrentApprovedForSale || isAuctionExpiredWithABid || isSold ? false : true;\r\n }\r\n\r\n public CompareSalesById(sale1: ISale, sale2: ISale): boolean {\r\n return sale1.id === sale2.id;\r\n }\r\n //#endregion\r\n\r\n //#region SumFunctions\r\n public CalculateSaleAmount(sale: ISale): number {\r\n // Fix: cloneDeep sale.bids because a sort trigger reactive vue js mecanic\r\n return sale.type == SaleTypes.Bid && sale.bids && sale.bids.length > 0\r\n ? cloneDeep(sale.bids).sort(this.CompareBids)[0].amount\r\n : sale.price;\r\n }\r\n\r\n public CalculateSaleAmountDue(sale: ISale): number {\r\n const saleAmountIncludingVat = this.CalculateSaleAmountIncludingVat(sale);\r\n const depositAmount = this.CalculateDepositAmount(sale) ?? 0;\r\n\r\n return sale.deposit ? saleAmountIncludingVat - depositAmount : saleAmountIncludingVat;\r\n }\r\n\r\n public CalculateSaleAmountIncludingVat(sale: ISale): number {\r\n const isVatInclusive = this.IsVatInclusive(sale);\r\n const saleAmount = this.CalculateSaleAmount(sale);\r\n const vatAmount = this.CalculateVatAmount(sale) ?? 0;\r\n\r\n return this.amountManager.CalculateAmountIncludingVat(saleAmount, vatAmount, isVatInclusive);\r\n }\r\n\r\n public CalculateSaleAmountExcludingVat(sale: ISale): number {\r\n const isVatInclusive = this.IsVatInclusive(sale);\r\n const saleAmount = this.CalculateSaleAmount(sale);\r\n const vatAmount = this.CalculateVatAmount(sale) ?? 0;\r\n\r\n return this.amountManager.CalculateAmountExcludingVat(saleAmount, vatAmount, isVatInclusive);\r\n }\r\n\r\n public CalculatePlatformFeesRate(sale: ISale): number {\r\n const hasUsedReferralCode = sale.orderLine?.order?.referralCode ? true : false;\r\n const isReferralCodeOfVendorOfThisSale = sale.user?.vendor?.referralCode == sale.orderLine?.order?.referralCode;\r\n\r\n if (hasUsedReferralCode && isReferralCodeOfVendorOfThisSale) return sale.feesRate - REFERRAL_FEES_RATE;\r\n else return sale.feesRate;\r\n }\r\n\r\n public CalculatePlatformFeesAmount(sale: ISale): number {\r\n return this.CalculatePlatformFeesRate(sale) * this.CalculateSaleAmount(sale);\r\n }\r\n\r\n public CalculateVendorProfitsRate(sale: ISale): number {\r\n return 1 - this.CalculatePlatformFeesRate(sale);\r\n }\r\n\r\n public CalculatePlatformFeesVatRate(sale: ISale): number {\r\n return PLATFORM_VAT_RATE;\r\n }\r\n\r\n public CalculatePlatformFeesVatAmount(sale: ISale): number {\r\n return this.CalculatePlatformFeesAmount(sale) * this.CalculatePlatformFeesVatRate(sale);\r\n }\r\n\r\n public CalculatePlatformFeesAmountIncludingVat(sale: ISale): number {\r\n return this.CalculatePlatformFeesAmount(sale) + this.CalculatePlatformFeesVatAmount(sale);\r\n }\r\n\r\n public CalculatePlatformFeesAmountExcludingVat(sale: ISale): number {\r\n return this.CalculatePlatformFeesAmount(sale);\r\n }\r\n\r\n public CalculateVendorProfitsAmount(sale: ISale): number {\r\n return this.CalculateVendorProfitsRate(sale) * this.CalculateSaleAmount(sale);\r\n }\r\n\r\n public CalculateVendorRemainingProfitsAmount(sale: ISale): number {\r\n return (\r\n this.CalculateVendorProfitsAmount(sale) -\r\n (this.CalculateVendorDepositProfits(sale) ?? 0) -\r\n (this.CalculateVendorSettlementProfits(sale) ?? 0) -\r\n (this.CalculateVendorTransferProfits(sale) ?? 0)\r\n );\r\n }\r\n\r\n public CalculateVendorReferralFeesRate(vendorReferralCode: string, sale: ISale): number {\r\n const hasUsedReferralCode = sale.orderLine?.order?.referralCode ? true : false;\r\n\r\n if (hasUsedReferralCode) {\r\n return sale.orderLine?.order?.referralCode == vendorReferralCode ? REFERRAL_FEES_RATE : 0;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n public CalculateVendorReferralFeesAmount(vendorReferralCode: string, sale: ISale): number {\r\n return this.CalculateVendorReferralFeesRate(vendorReferralCode, sale) * this.CalculateSaleAmount(sale);\r\n }\r\n\r\n public CalculateSettlementAmount(sale: ISale): number | undefined {\r\n if (!sale || !sale.settlement) return;\r\n\r\n return sale.settlement.amount;\r\n }\r\n\r\n public CalculateVendorSettlementProfits(sale: ISale): number | undefined {\r\n if (!sale || !sale.settlement) return;\r\n\r\n return this.CalculateVendorProfitsRate(sale) * (this.CalculateSettlementAmount(sale) as number);\r\n }\r\n\r\n public CalculateDepositRate(sale: ISale): number {\r\n if (!sale) return BASE_DEPOSIT_RATE;\r\n\r\n return sale.deposit ? sale.deposit.rateOfTotal : BASE_DEPOSIT_RATE;\r\n }\r\n\r\n public CalculateDepositAmount(sale: ISale): number | undefined {\r\n if (!sale) return;\r\n\r\n return sale.deposit ? sale.deposit.amount : this.CalculateSaleAmount(sale) * this.CalculateDepositRate(sale);\r\n }\r\n\r\n public CalculateBuyerDepositAmountIncludingVat(sale: ISale): number | undefined {\r\n const depositTaxAmount = (this.CalculateVatAmount(sale) ?? 0) * this.CalculateDepositRate(sale);\r\n const depositAmount = this.CalculateDepositAmount(sale) ?? 0;\r\n return depositAmount + depositTaxAmount;\r\n }\r\n\r\n public CalculateBuyerDepositRemainingAmountIncludingVat(sale: ISale): number | undefined {\r\n if (!sale || !sale.deposit) return;\r\n\r\n return this.CalculateSaleAmount(sale) - (this.CalculateBuyerDepositAmountIncludingVat(sale) as number);\r\n }\r\n\r\n public CalculateVendorDepositProfits(sale: ISale): number | undefined {\r\n if (!sale || !sale.deposit) return;\r\n\r\n return this.CalculateVendorProfitsRate(sale) * (this.CalculateDepositAmount(sale) as number);\r\n }\r\n\r\n public CalculateVendorDepositRemainingProfits(sale: ISale): number | undefined {\r\n if (!sale || !sale.deposit) return;\r\n\r\n return this.CalculateVendorProfitsAmount(sale) - (this.CalculateVendorDepositProfits(sale) as number);\r\n }\r\n\r\n public CalculateVendorTransferProfits(sale: ISale): number | undefined {\r\n if (!sale || !sale.orderLine) return;\r\n\r\n let transferProfitsAmount = 0;\r\n if (sale.orderLine?.transferStatus == TransferStatus.TransferCreated)\r\n transferProfitsAmount = this.CalculateVendorProfitsAmount(sale);\r\n if (sale.deposit) transferProfitsAmount -= this.CalculateVendorDepositProfits(sale) ?? 0;\r\n if (sale.settlement) transferProfitsAmount -= this.CalculateVendorSettlementProfits(sale) ?? 0;\r\n\r\n return transferProfitsAmount;\r\n }\r\n\r\n public CalculateVatRate(sale: ISale): number | null {\r\n return sale.vatRate;\r\n }\r\n\r\n public CalculateVatAmount(sale: ISale): number | null {\r\n const saleVatRate = this.CalculateVatRate(sale);\r\n const saleAmount = this.CalculateSaleAmount(sale);\r\n const isVatInclusive = this.IsVatInclusive(sale);\r\n\r\n return this.amountManager.CalculateVatAmount(saleAmount, saleVatRate, isVatInclusive);\r\n }\r\n\r\n public DetermineVatOriginApplied(sale: ISale): string {\r\n if (!sale.user?.countryCode) throw new Error(\"Argument exception: vendor country is undefined\");\r\n\r\n return sale.orderLine?.order &&\r\n sale.orderLine.order.shippingMethod == ShippingMethodTypes.Deliver &&\r\n sale.orderLine.order.deliveryAddress\r\n ? sale.orderLine.order.deliveryAddress.countryTwoIsoLetters\r\n : sale.user.countryCode;\r\n }\r\n //#endregion\r\n}\r\n","import { SearchTypes } from \"@api/models/market/constants/SearchTypes\";\r\nimport { IOrder } from \"@api/models/market/IOrder\";\r\nimport { IOrderLine } from \"@api/models/market/IOrderLine\";\r\nimport { IPackage } from \"@api/models/market/IPackage\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { CatalogFilterTypes } from \"@pigeon/enumerations/CatalogFilterTypes\";\r\nimport { CatalogSortTypes } from \"@pigeon/enumerations/CatalogSortTypes\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport dayjs from \"dayjs\";\r\nimport { FilterDate, FilterExpression, ODataQuery } from \"odata-fluent-query\";\r\nimport { ISalesQueryManager } from \"./contracts/ISalesQueryManager\";\r\n\r\ntype OrderDirection = \"asc\" | \"desc\" | undefined;\r\n\r\n// See https://github.com/rosostolato/odata-fluent-query/issues/9\r\n\r\nexport class SalesQueryManager implements ISalesQueryManager {\r\n //#region Sort\r\n // Business rule: Sort archived sales at the end of the results\r\n public OrderBy(query: ODataQuery, sort?: string): ODataQuery {\r\n if (!sort) return query;\r\n\r\n const sortParams: string[] = sort.split(\";\");\r\n const orderPropertyName: string = sortParams[0];\r\n const orderDirection: string = sortParams[1];\r\n\r\n if (orderPropertyName == CatalogSortTypes.Name) {\r\n // Workaround for issue https://github.com/rosostolato/odata-fluent-query/issues/8\r\n // return query.orderBy(`package/name ${orderDirection || \"asc\"}, pigeon/name ${orderDirection || \"asc\"}` as any);\r\n return query\r\n .orderBy(\"flagArchived\")\r\n .orderBy(`${nameof(\"pigeon\")}/${nameof(\"name\")}` as any, orderDirection as OrderDirection)\r\n .orderBy(`${nameof(\"package\")}/${nameof(\"name\")}` as any, orderDirection as OrderDirection);\r\n } else if (orderPropertyName == CatalogSortTypes.Ring) {\r\n return query\r\n .orderBy(\"flagArchived\")\r\n .orderBy(\r\n `${nameof(\"pigeon\")}/${nameof(\"ring\")}` as any,\r\n orderDirection as OrderDirection\r\n );\r\n } else if (orderPropertyName == CatalogSortTypes.Price) {\r\n return query.orderBy(\"flagArchived\").orderBy(\"price\", orderDirection as OrderDirection);\r\n } else if (orderPropertyName == CatalogSortTypes.SaleEndDate) {\r\n return query.orderBy(\"flagArchived\").orderBy(\"endDate\", orderDirection as OrderDirection);\r\n } else if (orderPropertyName == CatalogSortTypes.SaleStartDate) {\r\n return query.orderBy(\"flagArchived\").orderBy(\"startDate\", orderDirection as OrderDirection);\r\n } else if (orderPropertyName == CatalogSortTypes.PurchaseDate) {\r\n return query.orderBy(\r\n `${nameof(\"orderLine\")}/${nameof(\"order\")}/${nameof(\"orderDate\")}` as any,\r\n orderDirection as OrderDirection\r\n );\r\n }\r\n\r\n return query;\r\n }\r\n //#endregion\r\n\r\n //#region Filter\r\n private ConvertToArray(filterValue: any): any[] {\r\n if (Array.isArray(filterValue)) return filterValue;\r\n\r\n return [filterValue];\r\n }\r\n\r\n public FilterBy(\r\n query: ODataQuery,\r\n filters?: Map\r\n ): ODataQuery {\r\n if (!filters) return query;\r\n\r\n if (filters.has(CatalogFilterTypes.Favorite)) {\r\n query = this.FilterQueryByFavorite(\r\n query,\r\n this.ConvertToArray(filters.get(CatalogFilterTypes.Favorite)) as string[]\r\n );\r\n }\r\n if (filters.has(CatalogFilterTypes.Vendor)) {\r\n query = this.FilterQueryByVendor(query, this.ConvertToArray(filters.get(CatalogFilterTypes.Vendor)) as string[]);\r\n }\r\n if (filters.has(CatalogFilterTypes.Status)) {\r\n query = this.FilterQueryByStatus(query, this.ConvertToArray(filters.get(CatalogFilterTypes.Status)) as string[]);\r\n }\r\n if (filters.has(CatalogFilterTypes.FlagApproved)) {\r\n query = this.FilterQueryByFlagApproved(\r\n query,\r\n this.ConvertToArray(filters.get(CatalogFilterTypes.FlagApproved)) as boolean[]\r\n );\r\n }\r\n if (\r\n filters.has(CatalogFilterTypes.StartDateGreaterOrEqualAt) ||\r\n filters.has(CatalogFilterTypes.StartDateLowerThat)\r\n ) {\r\n query = this.FilterQueryByStartDate(\r\n query,\r\n filters.get(CatalogFilterTypes.StartDateGreaterOrEqualAt) as string[] | undefined,\r\n filters.get(CatalogFilterTypes.StartDateLowerThat) as string[] | undefined\r\n );\r\n }\r\n if (filters.has(CatalogFilterTypes.EndDateGreaterOrEqualAt) || filters.has(CatalogFilterTypes.EndDateLowerThat)) {\r\n query = this.FilterQueryByEndDate(\r\n query,\r\n filters.get(CatalogFilterTypes.EndDateGreaterOrEqualAt) as string[] | undefined,\r\n filters.get(CatalogFilterTypes.EndDateLowerThat) as string[] | undefined\r\n );\r\n }\r\n if (filters.has(CatalogFilterTypes.CreatedDateBetween)) {\r\n query = this.FilterQueryByCreatedDatePeriod(\r\n query,\r\n filters.get(CatalogFilterTypes.CreatedDateBetween)?.[0] as string | undefined,\r\n filters.get(CatalogFilterTypes.CreatedDateBetween)?.[1] as string | undefined\r\n );\r\n }\r\n if (filters.has(CatalogFilterTypes.PaymentStatus)) {\r\n query = this.FilterQueryByPaymentStatus(\r\n query,\r\n this.ConvertToArray(filters.get(CatalogFilterTypes.PaymentStatus)) as string[]\r\n );\r\n }\r\n if (filters.has(CatalogFilterTypes.TransferStatus)) {\r\n query = this.FilterQueryByTransferStatus(\r\n query,\r\n this.ConvertToArray(filters.get(CatalogFilterTypes.TransferStatus)) as string[]\r\n );\r\n }\r\n\r\n if (filters.has(CatalogFilterTypes.Sex)) {\r\n query = this.FilterQueryBySex(query, this.ConvertToArray(filters.get(CatalogFilterTypes.Sex)) as string[]);\r\n }\r\n if (filters.has(CatalogFilterTypes.Age)) {\r\n query = this.FilterQueryByAge(query, this.ConvertToArray(filters.get(CatalogFilterTypes.Age)) as string[]);\r\n }\r\n if (filters.has(CatalogFilterTypes.Discipline)) {\r\n query = this.FilterQueryByDiscipline(\r\n query,\r\n this.ConvertToArray(filters.get(CatalogFilterTypes.Discipline)) as string[]\r\n );\r\n }\r\n if (filters.has(CatalogFilterTypes.Country)) {\r\n query = this.FilterQueryByCountry(\r\n query,\r\n this.ConvertToArray(filters.get(CatalogFilterTypes.Country)) as string[]\r\n );\r\n }\r\n if (filters.has(CatalogFilterTypes.Auction)) {\r\n query = this.FilterQueryByAuction(\r\n query,\r\n this.ConvertToArray(filters.get(CatalogFilterTypes.Auction)) as string[]\r\n );\r\n }\r\n if (filters.has(CatalogFilterTypes.Shop)) {\r\n query = this.FilterQueryByShop(query, this.ConvertToArray(filters.get(CatalogFilterTypes.Shop)) as string[]);\r\n }\r\n if (filters.has(CatalogFilterTypes.FlagSharedCatalog)) {\r\n query = this.FilterQueryByFlagSharedCatalog(\r\n query,\r\n this.ConvertToArray(this.ConvertToArray(filters.get(CatalogFilterTypes.FlagSharedCatalog))) as boolean[]\r\n );\r\n }\r\n if (filters.has(CatalogFilterTypes.FlagArchived)) {\r\n query = this.FilterQueryByFlagArchived(\r\n query,\r\n this.ConvertToArray(this.ConvertToArray(filters.get(CatalogFilterTypes.FlagArchived))) as boolean[]\r\n );\r\n }\r\n if (filters.has(CatalogFilterTypes.FlagVoucher)) {\r\n query = this.FilterQueryByFlagVoucher(\r\n query,\r\n this.ConvertToArray(filters.get(CatalogFilterTypes.FlagVoucher)) as boolean[]\r\n );\r\n }\r\n if (filters.has(CatalogFilterTypes.SaleType)) {\r\n query = this.FilterQueryBySaleType(\r\n query,\r\n this.ConvertToArray(filters.get(CatalogFilterTypes.SaleType)) as string[]\r\n );\r\n }\r\n if (filters.has(CatalogFilterTypes.ProductType)) {\r\n query = this.FilterQueryByProductType(\r\n query,\r\n this.ConvertToArray(filters.get(CatalogFilterTypes.ProductType)) as string[]\r\n );\r\n }\r\n if (filters.has(CatalogFilterTypes.PriceMin)) {\r\n query = this.FilterQueryByPriceMin(\r\n query,\r\n filters.get(CatalogFilterTypes.PriceMin)?.shift() as string | undefined\r\n );\r\n }\r\n if (filters.has(CatalogFilterTypes.PriceMax)) {\r\n query = this.FilterQueryByPriceMax(\r\n query,\r\n filters.get(CatalogFilterTypes.PriceMax)?.shift() as string | undefined\r\n );\r\n }\r\n\r\n return query;\r\n }\r\n\r\n private FilterQueryByFavorite(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((s) => s.id.in(filterValues.map((v) => parseInt(v))));\r\n }\r\n\r\n private FilterQueryByVendor(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((s) => s.userId.in(filterValues));\r\n }\r\n\r\n private FilterQueryByFlagSharedCatalog(query: ODataQuery, filterValues?: boolean[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((s) => {\r\n let filterExpression: FilterExpression | undefined = undefined;\r\n\r\n for (const filterValue of filterValues) {\r\n filterExpression = !filterExpression\r\n ? s.flagSharedCatalog.equals(filterValue)\r\n : filterExpression.or(s.flagSharedCatalog.equals(filterValue));\r\n }\r\n\r\n return filterExpression as any;\r\n });\r\n }\r\n\r\n private FilterQueryByFlagArchived(query: ODataQuery, filterValues?: boolean[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((s) => {\r\n let filterExpression: FilterExpression | undefined = undefined;\r\n\r\n for (const filterValue of filterValues) {\r\n filterExpression = !filterExpression\r\n ? s.flagArchived.equals(filterValue)\r\n : filterExpression.or(s.flagArchived.equals(filterValue));\r\n }\r\n\r\n return filterExpression as any;\r\n });\r\n }\r\n\r\n private FilterQueryByFlagApproved(query: ODataQuery, filterValues?: boolean[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((s) => {\r\n let filterExpression: FilterExpression | undefined = undefined;\r\n\r\n for (const filterValue of filterValues) {\r\n filterExpression = !filterExpression\r\n ? s.flagApproved.equals(filterValue)\r\n : filterExpression.or(s.flagApproved.equals(filterValue));\r\n }\r\n\r\n return filterExpression as any;\r\n });\r\n }\r\n\r\n private FilterQueryByFlagVoucher(query: ODataQuery, filterValues?: boolean[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((s) => {\r\n let filterExpression: FilterExpression | undefined = undefined;\r\n\r\n for (const filterValue of filterValues) {\r\n filterExpression = !filterExpression\r\n ? s.flagVoucher.equals(filterValue)\r\n : filterExpression.or(s.flagVoucher.equals(filterValue));\r\n }\r\n\r\n return filterExpression as any;\r\n });\r\n }\r\n\r\n private FilterQueryByStatus(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((s) => s.status.in(filterValues));\r\n }\r\n\r\n private FilterQueryBySex(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n // prettier-ignore\r\n return query.filter((s) =>\r\n s.pigeon.sex.in(filterValues)\r\n .or(\r\n s.package.pigeons.any((p) => p.sex.in(filterValues))\r\n )\r\n );\r\n }\r\n\r\n private FilterQueryByAge(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n let filteredQuery = query;\r\n\r\n // Start Year\r\n filteredQuery = filteredQuery.filter((s) => {\r\n let filterExpression: FilterExpression | undefined = undefined;\r\n\r\n // Note: AgeFilters must be combine with odata OR\r\n // Example $filter= (ageFilter1) OR (ageFilter2)\r\n for (const ageFilterValue of filterValues) {\r\n const startAge = this.ConvertAgeCategoryToStartYear(ageFilterValue);\r\n const endAge = this.ConvertAgeCategoryToEndYear(ageFilterValue);\r\n\r\n if (startAge) {\r\n // prettier-ignore\r\n filterExpression = !filterExpression \r\n ? s.pigeon.birthYear.biggerOrEqualThan(startAge)\r\n : filterExpression.or(s.pigeon.birthYear.biggerOrEqualThan(startAge));\r\n\r\n // Package query\r\n // .or(\r\n // s.package.pigeons.any((p) => p.birthYear.biggerOrEqualThan(startAge))\r\n // )\r\n }\r\n\r\n if (endAge) {\r\n // WARNING: Handle the case 'Yearling' Age that combines startAge and endAge\r\n // Example: odata query ?filter= ((...) AND (...)) // note the parenthese that wrap the AND\r\n if (startAge) {\r\n //prettier-ignore\r\n filterExpression = !filterExpression \r\n ? s.pigeon.birthYear.lessOrEqualThan(endAge)\r\n : filterExpression.and(s.pigeon.birthYear.lessOrEqualThan(endAge));\r\n } else {\r\n // prettier-ignore\r\n filterExpression = !filterExpression \r\n ? s.pigeon.birthYear.lessOrEqualThan(endAge)\r\n : filterExpression.or(s.pigeon.birthYear.lessOrEqualThan(endAge));\r\n }\r\n\r\n // Package query\r\n // .or(\r\n // s.package.pigeons.any((p) => p.birthYear.lessOrEqualThan(endAge))\r\n // )\r\n }\r\n }\r\n return filterExpression as any;\r\n });\r\n\r\n return filteredQuery;\r\n }\r\n\r\n private FilterQueryByStartDate(\r\n query: ODataQuery,\r\n filterValuesGreaterOrEqualAt?: string[],\r\n filterValuesLowerThat?: string[]\r\n ): ODataQuery {\r\n if (\r\n (!filterValuesGreaterOrEqualAt || !filterValuesGreaterOrEqualAt.length) &&\r\n (!filterValuesLowerThat || !filterValuesLowerThat.length)\r\n )\r\n return query;\r\n\r\n return query.filter((s) => {\r\n let filterExpression: FilterExpression | undefined = undefined;\r\n\r\n if (filterValuesGreaterOrEqualAt) {\r\n for (const filterValue of filterValuesGreaterOrEqualAt) {\r\n // prettier-ignore\r\n filterExpression = !filterExpression\r\n ? ((s.startDate as any) as FilterDate).isAfterOrEqual(filterValue)\r\n : filterExpression.or(((s.startDate as any) as FilterDate).isAfterOrEqual(filterValue));\r\n }\r\n }\r\n\r\n if (filterValuesLowerThat) {\r\n for (const filterValue of filterValuesLowerThat) {\r\n filterExpression = !filterExpression\r\n ? (s.startDate as any as FilterDate).isBefore(filterValue)\r\n : filterExpression.or((s.startDate as any as FilterDate).isBefore(filterValue));\r\n }\r\n }\r\n\r\n return filterExpression as any;\r\n });\r\n }\r\n\r\n private FilterQueryByEndDate(\r\n query: ODataQuery,\r\n filterValuesGreaterOrEqualAt?: string[],\r\n filterValuesLowerThat?: string[]\r\n ): ODataQuery {\r\n if (\r\n (!filterValuesGreaterOrEqualAt || !filterValuesGreaterOrEqualAt.length) &&\r\n (!filterValuesLowerThat || !filterValuesLowerThat.length)\r\n )\r\n return query;\r\n\r\n return query.filter((s) => {\r\n let filterExpression: FilterExpression | undefined = undefined;\r\n\r\n if (filterValuesGreaterOrEqualAt) {\r\n for (const filterValue of filterValuesGreaterOrEqualAt) {\r\n // prettier-ignore\r\n filterExpression = !filterExpression\r\n ? ((s.endDate as any) as FilterDate).isAfterOrEqual(filterValue)\r\n : filterExpression.or(((s.endDate as any) as FilterDate).isAfterOrEqual(filterValue));\r\n }\r\n }\r\n\r\n if (filterValuesLowerThat) {\r\n for (const filterValue of filterValuesLowerThat) {\r\n filterExpression = !filterExpression\r\n ? (s.endDate as any as FilterDate).isBefore(filterValue)\r\n : filterExpression.or((s.endDate as any as FilterDate).isBefore(filterValue));\r\n }\r\n }\r\n\r\n return filterExpression as any;\r\n });\r\n }\r\n\r\n private FilterQueryByCreatedDatePeriod(\r\n query: ODataQuery,\r\n filterValueStartPeriod?: string,\r\n filterValueEndPeriod?: string\r\n ): ODataQuery {\r\n if (!filterValueStartPeriod || !filterValueEndPeriod) return query;\r\n\r\n return query.filter((s) =>\r\n (s.createdAt as FilterDate)\r\n .isAfterOrEqual(filterValueStartPeriod)\r\n .and((s.createdAt as FilterDate).isBeforeOrEqual(filterValueEndPeriod))\r\n );\r\n }\r\n\r\n private FilterQueryByDiscipline(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((s) =>\r\n s.pigeon.discipline.in(filterValues).or(s.package.pigeons.any((p) => p.discipline.in(filterValues)))\r\n );\r\n }\r\n\r\n private FilterQueryByCountry(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((s) =>\r\n s.pigeon.ringArea.in(filterValues).or(s.package.pigeons.any((p) => p.ringArea.in(filterValues)))\r\n );\r\n }\r\n\r\n private FilterQueryByAuction(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((s) => s.auctionId.in(filterValues?.filter((fv) => fv)?.map((fv) => parseInt(fv))));\r\n }\r\n\r\n private FilterQueryByShop(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((s) => s.user.vendor.shopId.in(filterValues));\r\n }\r\n\r\n private FilterQueryBySaleType(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((s) => s.type.in(filterValues));\r\n }\r\n\r\n private FilterQueryByProductType(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n return query.filter((s) => s.product.in(filterValues));\r\n }\r\n\r\n private FilterQueryByPaymentStatus(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n // prettier-ignore\r\n return query\r\n .filter((s) => s.orderLine.order.id.notNull())\r\n .filter((s) => s.orderLine.order.paymentStatus.in(filterValues));\r\n }\r\n\r\n private FilterQueryByTransferStatus(query: ODataQuery, filterValues?: string[]): ODataQuery {\r\n if (!filterValues || !filterValues.length) return query;\r\n\r\n // prettier-ignore\r\n query = query\r\n .filter((s) => s.orderLine.order.id.notNull());\r\n\r\n if(filterValues.some(v => v == 'undefined' || v == 'null'))\r\n // prettier-ignore\r\n query = query.filter((s) => s.orderLine.order.transferStatus.isNull().or(s.orderLine.order.transferStatus.in(filterValues)));\r\n else\r\n // prettier-ignore\r\n query = query.filter((s) => s.orderLine.order.transferStatus.in(filterValues));\r\n\r\n return query;\r\n }\r\n\r\n private FilterQueryByPriceMin(query: ODataQuery, filterValue?: string): ODataQuery {\r\n if (!filterValue) return query;\r\n\r\n const minPriceFilterValue: number = parseInt(filterValue);\r\n return query.filter((s) => s.price.biggerOrEqualThan(minPriceFilterValue));\r\n }\r\n\r\n private FilterQueryByPriceMax(query: ODataQuery, filterValue?: string): ODataQuery {\r\n if (!filterValue) return query;\r\n\r\n const maxPriceFilterValue: number = parseInt(filterValue);\r\n return query.filter((s) => s.price.lessOrEqualThan(maxPriceFilterValue));\r\n }\r\n\r\n private ConvertAgeCategoryToStartYear(ageCategory: string): number | undefined {\r\n const now = dayjs();\r\n\r\n switch (ageCategory) {\r\n case \"J\":\r\n return now.year();\r\n case \"Y\":\r\n return now.subtract(1, \"year\").year();\r\n case \"S\":\r\n default:\r\n return undefined;\r\n }\r\n }\r\n\r\n private ConvertAgeCategoryToEndYear(ageCategory: string): number | undefined {\r\n const now = dayjs();\r\n\r\n switch (ageCategory) {\r\n case \"J\":\r\n return undefined;\r\n case \"Y\":\r\n return now.subtract(1, \"year\").year();\r\n case \"S\":\r\n default:\r\n return now.subtract(2, \"year\").year();\r\n }\r\n }\r\n //#endregion\r\n\r\n //#region Search\r\n public SearchBy(query: ODataQuery, search: string | null, searchType: SearchTypes): ODataQuery {\r\n if (!search) return query;\r\n if (!searchType) return query;\r\n\r\n // should return `contains(pigeon/name,'${query}') or contains(pigeon/ring,'${query}') or contains(package/name, '${query}') or package/pigeons/any(p:contains(p/name, '${query}')) or package/pigeons/any(p:contains(p/ring, '${query}'))`; // search by like\r\n // prettier-ignore\r\n switch (searchType) {\r\n case SearchTypes.SearchByRing:\r\n return query.filter((s) =>\r\n s.pigeon.ring.contains(search)\r\n .or(\r\n s.package.pigeons.any(p => p.ring.contains(search))\r\n )\r\n );\r\n \r\n case SearchTypes.SearchByName:\r\n return query.filter((s) =>\r\n s.pigeon.name.contains(search)\r\n .or(\r\n s.package.name.contains(search)\r\n .or(\r\n s.package.pigeons.any(p => p.name.contains(search))\r\n )\r\n )\r\n );\r\n\r\n case SearchTypes.SearchByRingOrName:\r\n return query.filter((s) =>\r\n s.pigeon.name.contains(search)\r\n .or(\r\n s.pigeon.ring.contains(search)\r\n .or(\r\n s.package.name.contains(search)\r\n .or(\r\n s.package.pigeons.any(p => \r\n p.name.contains(search)\r\n .or(\r\n p.ring.contains(search)\r\n )\r\n )\r\n )\r\n )\r\n )\r\n );\r\n\r\n default:\r\n throw new Error(`Operation exception: search type '${searchType}' not supported.`);\r\n }\r\n }\r\n //#endregion\r\n}\r\n","import { ShippingMethodTypes } from \"@api/models/market/constants/ShippingMethodTypes\";\r\nimport { IShippingService } from \"@api/models/market/IShippingService\";\r\nimport { IShippingManager } from \"@pigeon/services/contracts/IShippingManager\";\r\n\r\nexport class ShippingManager implements IShippingManager {\r\n public CanDeliver(shippingServices: IShippingService[]): boolean {\r\n return shippingServices.length > 0;\r\n }\r\n\r\n public GetShippingIcon(shippingMethod: ShippingMethodTypes): string | undefined {\r\n if (!shippingMethod) return;\r\n\r\n switch (shippingMethod) {\r\n case ShippingMethodTypes.Deliver:\r\n return \"truck\";\r\n\r\n case ShippingMethodTypes.PickUp:\r\n return \"box\";\r\n\r\n case ShippingMethodTypes.SelfArrangedDeliver:\r\n return \"dolly\";\r\n\r\n default:\r\n console.error(\"unsupported shipping method for icon\");\r\n break;\r\n }\r\n }\r\n}\r\n","import { PictureTypes } from \"@api/models/market/constants/PictureTypes\";\r\nimport { IPicture } from \"@api/models/market/IPicture\";\r\nimport router from \"@market/routers\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport { IShopManager } from \"@pigeon/services/contracts/IShopManager\";\r\n\r\nexport class ShopManager implements IShopManager {\r\n readonly defaultShopPicture = require(\"@market/assets/images/pictures/sell-background.webp\");\r\n\r\n public GetShopUrl(shopId: string | undefined): string {\r\n if (!shopId) throw new Error(\"Invalid parameter exception: shopId cannot be undefined\");\r\n\r\n const route = router.resolve({ name: AppRoutes.BuyShop, params: { shopKey: shopId } });\r\n return `${window.location.protocol}//${window.location.host}${route.href}`;\r\n }\r\n\r\n //#region Picture\r\n public GetPictureRemoteUrl(relativeUrl: string | null | undefined): string {\r\n if (!relativeUrl) return this.defaultShopPicture;\r\n\r\n // test if parameter is a remote url\r\n if (/(http(s?)):\\/\\//gi.test(relativeUrl)) return relativeUrl;\r\n\r\n // test if parameter is a inline data image\r\n if (/(data):/gi.test(relativeUrl)) return relativeUrl;\r\n\r\n return `${process.env.VUE_APP_AZURE_STORAGE_HOST}${relativeUrl}`;\r\n }\r\n\r\n public GetShopCoverPicture(pictures?: IPicture[], useRawPicture = false): string {\r\n if (!pictures || !pictures.length) {\r\n return `${this.defaultShopPicture}`;\r\n }\r\n\r\n const shopPicture: IPicture | undefined = pictures.find((picture) => picture.type === PictureTypes.Shop);\r\n if (!shopPicture) return this.defaultShopPicture;\r\n\r\n const pictureUrl = shopPicture.urlWebOptimized && !useRawPicture ? shopPicture.urlWebOptimized : shopPicture.url;\r\n if (!pictureUrl) return this.defaultShopPicture;\r\n\r\n return this.GetPictureRemoteUrl(pictureUrl);\r\n }\r\n\r\n public HasPicture(pictures: IPicture[] | undefined, pictureType: PictureTypes): boolean {\r\n if (!pictures || pictures.length < 1) {\r\n return false;\r\n }\r\n\r\n return pictures.some((picture) => picture.type === pictureType);\r\n }\r\n //#endregion\r\n}\r\n","import { IStepItem } from \"@pigeon/models/IStepItem\";\r\nimport { IStepManager } from \"@pigeon/services/contracts/IStepManager\";\r\nimport { Route } from \"vue-router\";\r\n\r\nexport class StepManager implements IStepManager {\r\n private stepItems: IStepItem[];\r\n\r\n constructor(stepItems: IStepItem[]) {\r\n this.stepItems = stepItems;\r\n }\r\n\r\n public SetCurrentStep(route: Route): void {\r\n // Reset state\r\n this.stepItems.forEach((stepItem) => {\r\n stepItem.isActive = false;\r\n stepItem.isCompleted = false;\r\n });\r\n\r\n for (const stepItem of this.stepItems) {\r\n if (route && route.meta) {\r\n const hasStepMatch: boolean = stepItem.stepId == route.meta.step;\r\n\r\n if (hasStepMatch) {\r\n stepItem.isActive = true;\r\n break;\r\n }\r\n\r\n // Set previous steps as completed\r\n stepItem.isCompleted = true;\r\n }\r\n }\r\n }\r\n}\r\n","import { ITaskTrackingsService } from \"@api/contracts/odata/ITaskTrackingsService\";\r\nimport { SaleStatus } from \"@api/models/market/constants/SaleStatus\";\r\nimport { ShippingStatus } from \"@api/models/market/constants/ShippingStatus\";\r\nimport { SaleTaskTypes } from \"@api/models/market/constants/SubtaskTypes\";\r\nimport { TaskPriorityLevels } from \"@api/models/market/constants/TaskPriorityLevels\";\r\nimport { TaskTypes } from \"@api/models/market/constants/TaskTypes\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { ITaskTracking } from \"@api/models/market/ITaskTracking\";\r\nimport { PAYMENT_MAX_DELAY, TRANSFER_DELAY_HOURS } from \"@market/App.const\";\r\nimport { authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport dayjs from \"dayjs\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { ITaskManager } from \"./contracts/ITaskManager\";\r\n\r\nexport class TaskManager implements ITaskManager {\r\n @Inject()\r\n private taskTrackingsService: ITaskTrackingsService;\r\n\r\n //#region TrackingTasks\r\n public CalculateStatusTrackingDueDate(sale: ISale): Date | undefined {\r\n if (!sale || !sale.endDate) return undefined;\r\n\r\n return dayjs(sale.endDate).add(PAYMENT_MAX_DELAY, \"days\").toDate();\r\n }\r\n //#endregion\r\n\r\n //#region SettlementTasks\r\n public CalculateCollectDueDate(sale: ISale): Date | undefined {\r\n if (!sale || !sale.saleDate) return undefined;\r\n\r\n return dayjs(sale.saleDate).add(PAYMENT_MAX_DELAY, \"days\").toDate();\r\n }\r\n\r\n public CalculateTransferDueDate(sale: ISale): Date | undefined {\r\n if (!sale || !sale.saleDate) return undefined;\r\n\r\n const dateToUse = sale?.orderLine?.order?.paymentDate || sale.endDate;\r\n return dayjs(dateToUse).add(TRANSFER_DELAY_HOURS, \"hours\").toDate();\r\n }\r\n //#endregion\r\n\r\n public HasTaskType(sale: ISale, taskType: TaskTypes): boolean {\r\n if (!sale || !sale.taskTrackings || !sale.taskTrackings.length || !taskType) return false;\r\n\r\n return (sale.taskTrackings as ITaskTracking[]).some((tt) => tt.task == taskType);\r\n }\r\n\r\n public CanEditRelatedApprovalTask(sale: ISale): boolean {\r\n if (!sale) return false;\r\n\r\n return sale.flagApproved !== true && sale.status == SaleStatus.OnSale;\r\n }\r\n\r\n public CanEditRelatedTrackingTask(sale: ISale): boolean {\r\n if (!sale) return false;\r\n\r\n return (\r\n ![SaleStatus.Unsold, SaleStatus.Suspended, SaleStatus.Stopped, SaleStatus.Reserved, SaleStatus.Sold].includes(\r\n sale.status as SaleStatus\r\n ) &&\r\n !sale.orderLine &&\r\n !sale.deposit &&\r\n !sale.settlement\r\n );\r\n }\r\n\r\n public CanEditRelatedSettlementTask(sale: ISale): boolean {\r\n if (!sale) return false;\r\n\r\n return !sale.settlement || !sale.settlement.flagProcessed;\r\n }\r\n\r\n public CanEditRelatedShippingTask(sale: ISale): boolean {\r\n if (!sale || !sale.orderLine) return false;\r\n\r\n return !sale.orderLine.shippingStatus\r\n ? true\r\n : ![ShippingStatus.Delivered, ShippingStatus.PickedUp, ShippingStatus.Transit].includes(\r\n sale.orderLine.shippingStatus\r\n );\r\n }\r\n\r\n public async SaveAdditionalSubtask(answer: string, sale: ISale): Promise {\r\n if (!answer || !sale?.id) return Promise.reject();\r\n\r\n const subtask: ITaskTracking = {\r\n answer: answer,\r\n comment: null,\r\n dueDate: this.CalculateStatusTrackingDueDate(sale)?.toISOString() ?? null,\r\n priority: TaskPriorityLevels.Medium,\r\n task: TaskTypes.SaleTracking,\r\n subtask: SaleTaskTypes.SelectPurchaseAbortReason,\r\n doneBy: userStore.user?.id as string,\r\n doneAt: new Date().toISOString(),\r\n saleId: sale.id,\r\n userId: sale.userId as string\r\n };\r\n return await this.SaveTask(subtask);\r\n }\r\n\r\n public async SaveTask(taskTracking: ITaskTracking): Promise {\r\n if (!authStore.IsVendor || !userStore.user) throw new Error(\"Unauthorized\");\r\n if (\r\n !taskTracking ||\r\n !taskTracking.saleId ||\r\n !taskTracking.userId ||\r\n !taskTracking.answer ||\r\n !taskTracking.task ||\r\n !taskTracking.subtask\r\n )\r\n throw new Error(\"Argument exception\");\r\n\r\n const { data: createdTask } = await this.taskTrackingsService.Insert(taskTracking);\r\n return createdTask;\r\n }\r\n}\r\n","import { IAddress } from \"@api/models/market/IAddress\";\r\nimport { ICustomer } from \"@api/models/market/ICustomer\";\r\nimport { IUser } from \"@api/models/market/IUser\";\r\nimport { IVendor } from \"@api/models/market/IVendor\";\r\nimport i18n from \"@market/i18n\";\r\nimport { IListOption } from \"@pigeon/models/IListOption\";\r\nimport { IUserManager } from \"./contracts/IUserManager\";\r\n\r\nexport class UserManager implements IUserManager {\r\n public IsEqualAddress(address: IAddress | undefined | null, addressToCompare: IAddress | undefined | null): boolean {\r\n if (!address || !addressToCompare) return false;\r\n\r\n return (\r\n address.addressLine == addressToCompare.addressLine &&\r\n address.locality == addressToCompare.locality &&\r\n address.postalCode == addressToCompare.postalCode &&\r\n address.district == addressToCompare.district &&\r\n address.country == addressToCompare.country &&\r\n address.countryTwoIsoLetters == addressToCompare.countryTwoIsoLetters\r\n );\r\n }\r\n\r\n public IsEqualUser(user: IUser, userToCompare: IUser): boolean {\r\n if (!user || !userToCompare) return false;\r\n\r\n return (\r\n user.firstname === userToCompare.firstname &&\r\n user.lastname === userToCompare.lastname &&\r\n user.email === userToCompare.email &&\r\n user.phoneNumber === userToCompare.phoneNumber\r\n );\r\n }\r\n\r\n public CompareUsersById(user1: IUser, user2: IUser): boolean {\r\n return user1.id === user2.id;\r\n }\r\n\r\n public CompareCustomersById(customer1: ICustomer, customer2: ICustomer): boolean {\r\n return customer1.id === customer2.id;\r\n }\r\n\r\n public FormatAddress(address: IAddress): string {\r\n if (!address) return \"\";\r\n\r\n const formattedAddress: string[] = [];\r\n\r\n if (address.addressLine) formattedAddress.push(address.addressLine);\r\n if (address.postalCode && address.locality) formattedAddress.push(`${address.postalCode} ${address.locality}`);\r\n if (address.country) formattedAddress.push(address.country);\r\n\r\n if (formattedAddress.length < 1) return \"\";\r\n else return formattedAddress.join(\", \");\r\n }\r\n\r\n private MapVendorToOption(v: IVendor): IListOption {\r\n return { value: v?.user?.id, label: `${v?.user?.firstname} ${v?.user?.lastname?.toUpperCase()}` } as IListOption;\r\n }\r\n\r\n public BuildVendorsOptionsGroups(vendors: IVendor[]): { [key: string]: IListOption[] } {\r\n if (!vendors || !vendors.length) return {};\r\n\r\n const activeVendors = vendors.filter((v) => v.user.stripeConnectedAccountId);\r\n const activeVendorsOptions = activeVendors.map((v) => this.MapVendorToOption(v));\r\n\r\n const passiveVendors = vendors.filter((v) => !activeVendors.some((av) => av.id == v.id));\r\n const passiveVendorsOptions = passiveVendors.map((v) => this.MapVendorToOption(v));\r\n\r\n const activeVendorTranslate = i18n.t(\"options.active_vendors\") as string;\r\n const passiveVendorTranslate = i18n.t(\"options.passive_vendors\") as string;\r\n\r\n return {\r\n [activeVendorTranslate]: activeVendorsOptions,\r\n [passiveVendorTranslate]: passiveVendorsOptions\r\n };\r\n }\r\n\r\n public BuildVendorsOptions(vendors: IVendor[]): IListOption[] {\r\n if (!vendors || !vendors.length) return [];\r\n\r\n return vendors.map((v) => {\r\n return { value: v?.user?.id, label: `${v?.user?.firstname} ${v?.user?.lastname?.toUpperCase()}` } as IListOption;\r\n });\r\n }\r\n\r\n private MapMemberToOption(u: Partial): IListOption {\r\n return { value: u?.id, label: `${u?.firstname} ${u?.lastname?.toUpperCase()}` } as IListOption;\r\n }\r\n\r\n public BuildMembersOptionsGroups(members: Partial[]): { [key: string]: IListOption[] } {\r\n if (!members || !members.length) return {};\r\n\r\n const activeMembers = members.filter((m) => m.bids?.length || m.orders?.length || m.carts?.length);\r\n const activeMembersOptions = activeMembers.map((m) => this.MapMemberToOption(m));\r\n\r\n const passiveMembers = members.filter((v) => !activeMembers.some((am) => am.id == v.id));\r\n const passiveMembersOptions = passiveMembers.map((m) => this.MapMemberToOption(m));\r\n\r\n const activeMemberTranslate = i18n.t(\"options.active_members\") as string;\r\n const passiveMemberTranslate = i18n.t(\"options.passive_members\") as string;\r\n\r\n return {\r\n [activeMemberTranslate]: activeMembersOptions,\r\n [passiveMemberTranslate]: passiveMembersOptions\r\n };\r\n }\r\n\r\n public BuildMembersOptions(members: Partial[]): IListOption[] {\r\n if (!members || !members.length) return [];\r\n\r\n return members.map((u) => {\r\n return { value: u?.id, label: `${u?.firstname} ${u?.lastname?.toUpperCase()}` } as IListOption;\r\n });\r\n }\r\n}\r\n","import { AppModule } from \"./App\";\r\n\r\n// App\r\nconst appModule = new AppModule();\r\nappModule.appVue.$mount(\"#app\");\r\n","// DI\r\nimport \"reflect-metadata\"; // WARNING: must be the first import\r\n// App\r\nimport \"./App.index\";\r\nimport { i18n, router, store } from \"./App.index\";\r\nimport App from \"./App.vue\";\r\n// Vue\r\nimport { Vue } from \"vue-property-decorator\";\r\nimport { BuildContainer } from \"./App.container\";\r\nimport { authStore, InitUserData, InitVisitorData, RestoreUserData, WatchAuthData } from \"./stores/App.store.modules\";\r\n\r\n// See: https://github.com/vue-perf-devtool/vue-perf-devtool\r\n// Vue.config.devtools = process.env.NODE_ENV !== 'production';\r\n// Vue.config.performance = process.env.NODE_ENV !== 'production';\r\n\r\nexport class AppModule {\r\n appVue: Vue;\r\n\r\n constructor() {\r\n BuildContainer();\r\n RestoreUserData();\r\n InitVisitorData();\r\n if (authStore.IsAuthenticated) InitUserData();\r\n WatchAuthData();\r\n\r\n this.appVue = this.BootstrapVueApp();\r\n }\r\n\r\n private BootstrapVueApp(): Vue {\r\n return new Vue({\r\n router,\r\n store,\r\n i18n,\r\n render: (h) => h(App)\r\n });\r\n }\r\n}\r\n","// import 'reflect-metadata'; // Import only once\r\nimport { IQrCodesService } from \"@/Api/contracts/webapi/IQrCodesService\";\r\nimport { ISvgDocumentsService } from \"@/Api/contracts/webapi/ISvgDocumentsService\";\r\nimport { QrCodesService } from \"@/Api/services/webapi/QrCodesService\";\r\nimport { SvgDocumentsService } from \"@/Api/services/webapi/SvgDocumentsService\";\r\nimport { AmountManager } from \"@/Pigeon/services/AmountManager\";\r\nimport { IAmountManager } from \"@/Pigeon/services/contracts/IAmountManager\";\r\nimport { IAccountsService } from \"@api/contracts/auth/IAccountsService\";\r\nimport { IBingMapsRestService } from \"@api/contracts/external/IBingMapsRestService\";\r\nimport { IBingMapsWebControlService } from \"@api/contracts/external/IBingMapsWebControlService\";\r\nimport { IStripeClientService } from \"@api/contracts/external/IStripeClientService\";\r\nimport { IWorldAtlasService } from \"@api/contracts/external/IWorldAtlasService\";\r\nimport { IAddressesService } from \"@api/contracts/odata/IAddressesService\";\r\nimport { IAlertsService } from \"@api/contracts/odata/IAlertsService\";\r\nimport { IAuctionsService } from \"@api/contracts/odata/IAuctionsService\";\r\nimport { IBiddingOrdersService } from \"@api/contracts/odata/IBiddingOrdersService\";\r\nimport { IBidsService } from \"@api/contracts/odata/IBidsService\";\r\nimport { ICartsService } from \"@api/contracts/odata/ICartsService\";\r\nimport { ICheckoutSessionsService } from \"@api/contracts/odata/ICheckoutSessionsService\";\r\nimport { IDepositsService } from \"@api/contracts/odata/IDepositsService\";\r\nimport { IFancierProfilesService } from \"@api/contracts/odata/IFancierProfilesService\";\r\nimport { IFanciersService } from \"@api/contracts/odata/IFanciersService\";\r\nimport { IFavoritesService } from \"@api/contracts/odata/IFavoritesService\";\r\nimport { IGuestsService } from \"@api/contracts/odata/IGuestsService\";\r\nimport { INewslettersService } from \"@api/contracts/odata/INewslettersService\";\r\nimport { IOrderLinesService } from \"@api/contracts/odata/IOrderLinesService\";\r\nimport { IOrdersService } from \"@api/contracts/odata/IOrdersService\";\r\nimport { IPackagesService } from \"@api/contracts/odata/IPackagesService\";\r\nimport { IParentAssetsService } from \"@api/contracts/odata/IParentAssetsService\";\r\nimport { IPigeonsService } from \"@api/contracts/odata/IPigeonsService\";\r\nimport { IPlacesService } from \"@api/contracts/odata/IPlacesService\";\r\nimport { IPollAnswersService } from \"@api/contracts/odata/IPollAnswersService\";\r\nimport { IPollsService } from \"@api/contracts/odata/IPollsService\";\r\nimport { IPollVotesService } from \"@api/contracts/odata/IPollVotesService\";\r\nimport { IPrizeAssetsService } from \"@api/contracts/odata/IPrizeAssetsService\";\r\nimport { IPrizesService } from \"@api/contracts/odata/IPrizesService\";\r\nimport { IRankingAssetsService } from \"@api/contracts/odata/IRankingAssetsService\";\r\nimport { IReferralsService } from \"@api/contracts/odata/IReferralsService\";\r\nimport { IReproducerParentsService } from \"@api/contracts/odata/IReproducerParentsService\";\r\nimport { IRingsService } from \"@api/contracts/odata/IRingsService\";\r\nimport { ISaleDisapprovalReasonsService } from \"@api/contracts/odata/ISaleDisapprovalReasonsService\";\r\nimport { ISaleNotificationsService } from \"@api/contracts/odata/ISaleNotificationsService\";\r\nimport { ISalesService } from \"@api/contracts/odata/ISalesService\";\r\nimport { ISettlementsService } from \"@api/contracts/odata/ISettlementsService\";\r\nimport { IShippingServicesService } from \"@api/contracts/odata/IShippingServicesService\";\r\nimport { IStrainsService } from \"@api/contracts/odata/IStrainsService\";\r\nimport { ITaskTrackingsService } from \"@api/contracts/odata/ITaskTrackingsService\";\r\nimport { ITaxRatesService } from \"@api/contracts/odata/ITaxRatesService\";\r\nimport { IUsersService } from \"@api/contracts/odata/IUsersService\";\r\nimport { IVendorsService } from \"@api/contracts/odata/IVendorsService\";\r\nimport { IBlobsService } from \"@api/contracts/webapi/IBlobsService\";\r\nimport { IConnectedAccountsService } from \"@api/contracts/webapi/IConnectedAccountsService\";\r\nimport { IContactsService } from \"@api/contracts/webapi/IContactsService\";\r\nimport { ICountriesService } from \"@api/contracts/webapi/ICountriesService\";\r\nimport { IFacebookService } from \"@api/contracts/webapi/IFacebookService\";\r\nimport { IInvoicesService } from \"@api/contracts/webapi/IInvoicesService\";\r\nimport { IPaymentIntentsService } from \"@api/contracts/webapi/IPaymentIntentsService\";\r\nimport { IPayoutsService } from \"@api/contracts/webapi/IPayoutsService\";\r\nimport { IPurchasesService } from \"@api/contracts/webapi/IPurchasesService\";\r\nimport { IServersService } from \"@api/contracts/webapi/IServersService\";\r\nimport { IStripePayoutsService } from \"@api/contracts/webapi/IStripePayoutsService\";\r\nimport { ITwitterService } from \"@api/contracts/webapi/ITwitterService\";\r\nimport { AccountsService } from \"@api/services/auth/AccountsService\";\r\nimport { BingMapsRestService } from \"@api/services/external/BingMapsRestService\";\r\nimport { BingMapsWebControlService } from \"@api/services/external/BingMapsWebControlService\";\r\nimport { StripeClientService } from \"@api/services/external/StripeClientService\";\r\nimport { WorldAtlasService } from \"@api/services/external/WorldAtlasService\";\r\nimport { AddressesService } from \"@api/services/odata/AddressesService\";\r\nimport { AlertsService } from \"@api/services/odata/AlertsService\";\r\nimport { AuctionsService } from \"@api/services/odata/AuctionsService\";\r\nimport { BiddingOrdersService } from \"@api/services/odata/BiddingOrdersService\";\r\nimport { BidsService } from \"@api/services/odata/BidsService\";\r\nimport { CartsService } from \"@api/services/odata/CartsService\";\r\nimport { CheckoutSessionsService } from \"@api/services/odata/CheckoutSessionsService\";\r\nimport { DepositsService } from \"@api/services/odata/DepositsService\";\r\nimport { FancierProfilesService } from \"@api/services/odata/FancierProfilesService\";\r\nimport { FanciersService } from \"@api/services/odata/FanciersService\";\r\nimport { FavoritesService } from \"@api/services/odata/FavoritesService\";\r\nimport { GuestsService } from \"@api/services/odata/GuestsService\";\r\nimport { NewslettersService } from \"@api/services/odata/NewslettersService\";\r\nimport { OrderLinesService } from \"@api/services/odata/OrderLinesService\";\r\nimport { OrdersService } from \"@api/services/odata/OrdersService\";\r\nimport { PackagesService } from \"@api/services/odata/PackagesService\";\r\nimport { ParentAssetsService } from \"@api/services/odata/ParentAssetsService\";\r\nimport { PigeonsService } from \"@api/services/odata/PigeonsService\";\r\nimport { PlacesService } from \"@api/services/odata/PlacesService\";\r\nimport { PollAnswersService } from \"@api/services/odata/PollAnswersService\";\r\nimport { PollsService } from \"@api/services/odata/PollsService\";\r\nimport { PollVotesService } from \"@api/services/odata/PollVotesService\";\r\nimport { PrizeAssetsService } from \"@api/services/odata/PrizeAssetsService\";\r\nimport { PrizesService } from \"@api/services/odata/PrizesService\";\r\nimport { RankingAssetsService } from \"@api/services/odata/RankingAssetsService\";\r\nimport { ReferralsService } from \"@api/services/odata/ReferralsService\";\r\nimport { ReproducerParentsService } from \"@api/services/odata/ReproducerParentsService\";\r\nimport { RingsService } from \"@api/services/odata/RingsService\";\r\nimport { SaleDisapprovalReasonsService } from \"@api/services/odata/SaleDisapprovalReasonsService\";\r\nimport { SaleNotificationsService } from \"@api/services/odata/SaleNotificationsService\";\r\nimport { SalesService } from \"@api/services/odata/SalesService\";\r\nimport { SettlementsService } from \"@api/services/odata/SettlementsService\";\r\nimport { ShippingServicesService } from \"@api/services/odata/ShippingServicesService\";\r\nimport { StrainsService } from \"@api/services/odata/StrainsService\";\r\nimport { TaskTrackingsService } from \"@api/services/odata/TaskTrackingsService\";\r\nimport { TaxRatesService } from \"@api/services/odata/TaxRatesService\";\r\nimport { UsersService } from \"@api/services/odata/UsersService\";\r\nimport { VendorsService } from \"@api/services/odata/VendorsService\";\r\nimport { BlobsService } from \"@api/services/webapi/BlobsService\";\r\nimport { ConnectedAccountsService } from \"@api/services/webapi/ConnectedAccountsService\";\r\nimport { ContactsService } from \"@api/services/webapi/ContactsService\";\r\nimport { CountriesService } from \"@api/services/webapi/CountriesService\";\r\nimport { FacebookService } from \"@api/services/webapi/FacebookService\";\r\nimport { InvoicesService } from \"@api/services/webapi/InvoicesService\";\r\nimport { PaymentIntentsService } from \"@api/services/webapi/PaymentIntentsService\";\r\nimport { PayoutsService } from \"@api/services/webapi/PayoutsService\";\r\nimport { PurchasesService } from \"@api/services/webapi/PurchasesService\";\r\nimport { ServersService } from \"@api/services/webapi/ServersService\";\r\nimport { StripePayoutsService } from \"@api/services/webapi/StripePayoutsService\";\r\nimport { TwitterService } from \"@api/services/webapi/TwitterService\";\r\nimport { AuctionManager } from \"@pigeon/services/AuctionManager\";\r\nimport { BlobManager } from \"@pigeon/services/BlobManager\";\r\nimport { CheckoutManager } from \"@pigeon/services/CheckoutManager\";\r\nimport { IAuctionManager } from \"@pigeon/services/contracts/IAuctionManager\";\r\nimport { IBlobManager } from \"@pigeon/services/contracts/IBlobManager\";\r\nimport { ICheckoutManager } from \"@pigeon/services/contracts/ICheckoutManager\";\r\nimport { ICountryManager } from \"@pigeon/services/contracts/ICountryManager\";\r\nimport { ICreditCardManager } from \"@pigeon/services/contracts/ICreditCardManager\";\r\nimport { IDashboardManager } from \"@pigeon/services/contracts/IDashboardManager\";\r\nimport { IErrorManager } from \"@pigeon/services/contracts/IErrorManager\";\r\nimport { IEventManager } from \"@pigeon/services/contracts/IEventManager\";\r\nimport { IFancierProfileManager } from \"@pigeon/services/contracts/IFancierProfileManager\";\r\nimport { IFileManager } from \"@pigeon/services/contracts/IFileManager\";\r\nimport { II18nManager } from \"@pigeon/services/contracts/II18nManager\";\r\nimport { INotificationManager } from \"@pigeon/services/contracts/INotificationManager\";\r\nimport { IOfferManager } from \"@pigeon/services/contracts/IOfferManager\";\r\nimport { IPackageManager } from \"@pigeon/services/contracts/IPackageManager\";\r\nimport { IPaymentManager } from \"@pigeon/services/contracts/IPaymentManager\";\r\nimport { IPigeonManager } from \"@pigeon/services/contracts/IPigeonManager\";\r\nimport { IProductManager } from \"@pigeon/services/contracts/IProductManager\";\r\nimport { IRingManager } from \"@pigeon/services/contracts/IRingManager\";\r\nimport { ISaleManager } from \"@pigeon/services/contracts/ISaleManager\";\r\nimport { ISalesQueryManager } from \"@pigeon/services/contracts/ISalesQueryManager\";\r\nimport { IShippingManager } from \"@pigeon/services/contracts/IShippingManager\";\r\nimport { IShopManager } from \"@pigeon/services/contracts/IShopManager\";\r\nimport { IStepManager } from \"@pigeon/services/contracts/IStepManager\";\r\nimport { ITaskManager } from \"@pigeon/services/contracts/ITaskManager\";\r\nimport { IUserManager } from \"@pigeon/services/contracts/IUserManager\";\r\nimport { CountryManager } from \"@pigeon/services/CountryManager\";\r\nimport { CreditCardManager } from \"@pigeon/services/CreditCardManager\";\r\nimport { DashboardManager } from \"@pigeon/services/DashboardManager\";\r\nimport { ErrorManager } from \"@pigeon/services/ErrorManager\";\r\nimport { EventManager } from \"@pigeon/services/EventManager\";\r\nimport { FancierProfileManager } from \"@pigeon/services/FancierProfileManager\";\r\nimport { FileManager } from \"@pigeon/services/FileManager\";\r\nimport { I18nManager } from \"@pigeon/services/I18nManager\";\r\nimport { NotificationManager } from \"@pigeon/services/NotificationManager\";\r\nimport { OfferManager } from \"@pigeon/services/OfferManager\";\r\nimport { PackageManager } from \"@pigeon/services/PackageManager\";\r\nimport { PaymentManager } from \"@pigeon/services/PaymentManager\";\r\nimport { PigeonManager } from \"@pigeon/services/PigeonManager\";\r\nimport { ProductManager } from \"@pigeon/services/ProductManager\";\r\nimport { RingManager } from \"@pigeon/services/RingManager\";\r\nimport { SaleManager } from \"@pigeon/services/SaleManager\";\r\nimport { SalesQueryManager } from \"@pigeon/services/SalesQueryManager\";\r\nimport { ShippingManager } from \"@pigeon/services/ShippingManager\";\r\nimport { ShopManager } from \"@pigeon/services/ShopManager\";\r\nimport { StepManager } from \"@pigeon/services/StepManager\";\r\nimport { TaskManager } from \"@pigeon/services/TaskManager\";\r\nimport { UserManager } from \"@pigeon/services/UserManager\";\r\nimport { container } from \"inversify-props\";\r\n\r\n// See: https://github.com/CKGrafico/inversify-props\r\n// Warning: The name of the property must be the interface name (= id auto generated)\r\n// Example: @Inject nameServiceA: INameServiceA\r\nexport function BuildContainer(): void {\r\n // Api services\r\n container.addSingleton(AccountsService);\r\n container.addSingleton(AddressesService);\r\n container.addSingleton(AlertsService);\r\n container.addSingleton(AuctionsService);\r\n container.addSingleton(BidsService);\r\n container.addSingleton(BiddingOrdersService);\r\n container.addSingleton(BlobsService);\r\n container.addSingleton(CartsService);\r\n container.addSingleton(CheckoutSessionsService);\r\n container.addSingleton(ConnectedAccountsService);\r\n container.addSingleton(ContactsService);\r\n container.addSingleton(CountriesService);\r\n container.addSingleton(DepositsService);\r\n container.addSingleton(FancierProfilesService);\r\n container.addSingleton(FanciersService);\r\n container.addSingleton(FavoritesService);\r\n container.addSingleton(GuestsService);\r\n container.addSingleton(InvoicesService);\r\n container.addSingleton(NewslettersService);\r\n container.addSingleton(OrdersService);\r\n container.addSingleton(OrderLinesService);\r\n container.addSingleton(PackagesService);\r\n container.addSingleton(ParentAssetsService);\r\n container.addSingleton(PaymentIntentsService);\r\n container.addSingleton(StripePayoutsService);\r\n container.addSingleton(PigeonsService);\r\n container.addSingleton(PlacesService);\r\n container.addSingleton(PollsService);\r\n container.addSingleton(PollAnswersService);\r\n container.addSingleton(PollVotesService);\r\n container.addSingleton(PrizeAssetsService);\r\n container.addSingleton(PrizesService);\r\n container.addSingleton(PurchasesService);\r\n container.addSingleton(QrCodesService);\r\n container.addSingleton(RankingAssetsService);\r\n container.addSingleton(ReferralsService);\r\n container.addSingleton(ReproducerParentsService);\r\n container.addSingleton(RingsService);\r\n container.addSingleton(SaleDisapprovalReasonsService);\r\n container.addSingleton(SaleNotificationsService);\r\n container.addSingleton(SalesService);\r\n container.addSingleton(ServersService);\r\n container.addSingleton(SettlementsService);\r\n container.addSingleton(ShippingServicesService);\r\n container.addSingleton(StrainsService);\r\n container.addSingleton(SvgDocumentsService);\r\n container.addSingleton(TaskTrackingsService);\r\n container.addSingleton(TaxRatesService);\r\n container.addSingleton(PayoutsService);\r\n container.addSingleton(UsersService);\r\n container.addSingleton(VendorsService);\r\n // External services\r\n container.addSingleton(BingMapsRestService);\r\n container.addSingleton(BingMapsWebControlService);\r\n container.addSingleton(FacebookService);\r\n container.addSingleton(StripeClientService);\r\n container.addSingleton(TwitterService);\r\n container.addSingleton(WorldAtlasService);\r\n\r\n // App services\r\n container.addSingleton(AmountManager);\r\n container.addSingleton(AuctionManager);\r\n container.addSingleton(BlobManager);\r\n container.addSingleton(CreditCardManager);\r\n container.addSingleton(CheckoutManager);\r\n container.addSingleton(CountryManager);\r\n container.addSingleton(EventManager);\r\n container.addSingleton(FileManager);\r\n container.addSingleton(I18nManager);\r\n container.addSingleton(NotificationManager);\r\n container.addSingleton(OfferManager);\r\n container.addSingleton(PaymentManager);\r\n container.addSingleton(PackageManager);\r\n container.addSingleton(PigeonManager);\r\n container.addSingleton(ProductManager);\r\n container.addSingleton(RingManager);\r\n container.addSingleton(SaleManager);\r\n container.addSingleton(SalesQueryManager);\r\n container.addSingleton(ShippingManager);\r\n container.addSingleton(ShopManager);\r\n container.addSingleton(TaskManager);\r\n container.addSingleton(UserManager);\r\n container.addSingleton(FancierProfileManager);\r\n container.addSingleton(DashboardManager);\r\n container.addTransient(ErrorManager);\r\n container.addTransient(StepManager);\r\n}\r\n","export enum AppRoutes {\r\n AccountAddress = \"account.address\",\r\n AccountData = \"account.data\",\r\n AccountMessages = \"account.messages\",\r\n AccountNotifications = \"account.notifications\",\r\n AccountOverview = \"account.overview\",\r\n AccountResetPassword = \"account.reset-password\",\r\n AccountVerification = \"account.verification\",\r\n BuyerDashboard = \"buyer.dashboard\",\r\n BuyerOrders = \"buyer.orders\",\r\n BuyerOrdersDetails = \"buyer.orders.details\",\r\n BreederDashboard = \"breeder.dashboard\",\r\n BreederFancierProfile = \"breeder.fancier-profile\",\r\n VendorAuction = \"vendor.auction\",\r\n VendorDashboard = \"vendor.dashboard\",\r\n VendorPayments = \"vendor.payments\",\r\n VendorPigeonsDetails = \"admin.pigeons.details\",\r\n VendorReferral = \"vendor.referral\",\r\n VendorSales = \"vendor.sales\",\r\n VendorSalesDetails = \"vendor.sales.details\",\r\n VendorSuperviseDetails = \"vendor.supervise.details\",\r\n VendorShop = \"vendor.shop\",\r\n Admin = \"admin\",\r\n AdminAlerts = \"admin.alerts\",\r\n AdminApprovalSales = \"admin.approval.sales\",\r\n AdminNotifications = \"admin.notifications\",\r\n AdminBankTransfer = \"admin.bank-transfer\",\r\n AdminDashboard = \"admin.dashboard\",\r\n AdminDashboardLegacy = \"admin.dashboard-legacy\",\r\n Buy = \"buy\",\r\n BuyShop = \"buy.shop\",\r\n CheckoutOrder = \"checkout.order\",\r\n CheckoutSuccess = \"checkout.success\",\r\n Checkout = \"checkout.default\",\r\n Contact = \"contact\",\r\n CookiesPolicy = \"cookies-policy\",\r\n Default = \"default\",\r\n Faq = \"faq\",\r\n Home = \"home\",\r\n Lab = \"lab\",\r\n Page404 = \"404\",\r\n PrivacyPolicy = \"privacy-policy\",\r\n CommunityPigeon = \"COMMUNITY@pigeon\", // See: CommunityAppRoutes.ProductSheet\r\n Pigeon = \"pigeon\",\r\n PigeonPedigree = \"pigeon.pedigree\",\r\n Sale = \"sale\",\r\n SalePedigree = \"sale.pedigree\",\r\n SalePackagePigeon = \"sale.package.pigeon\",\r\n SalePalmares = \"sale.palmares\",\r\n Sell = \"sell\",\r\n AuctionConditions = \"auction-conditions\",\r\n TermsAndConditions = \"terms-and-conditions\",\r\n Why = \"why\",\r\n\r\n //#region SaleManagement\r\n AbstractSaleSale = \"sale.sale\",\r\n AbstractSalePigeon = \"sale.pigeon\",\r\n AbstractSalePedigree = \"sale.pedigree\",\r\n AbstractSalePackage = \"sale.package\",\r\n AbstractSaleInserted = \"sale.inserted\",\r\n AbstractSaleUpdated = \"sale.updated\",\r\n AbstractSale = \"sale.default\", // default step route\r\n //#region NewSale\r\n NewSaleSale = \"new.sale.sale\",\r\n NewSalePigeon = \"new.sale.pigeon\",\r\n NewSalePedigree = \"new.sale.pedigree\",\r\n NewSalePackage = \"new.sale.package\",\r\n NewSaleInserted = \"new.sale.inserted\",\r\n NewSale = \"new.sale.default\", // default step route\r\n //#endregion\r\n //#region EditSale\r\n EditSaleSale = \"edit.sale.sale\",\r\n EditSalePigeon = \"edit.sale.pigeon\",\r\n EditSalePedigree = \"edit.sale.pedigree\",\r\n EditSalePackage = \"edit.sale.package\",\r\n EditSaleUpdated = \"edit.sale.updated\",\r\n EditSale = \"edit.sale.default\", // default step route\r\n //#endregion\r\n //#endregion\r\n\r\n //#region PigeonManagement\r\n AbstractPigeonPigeon = \"pigeon.pigeon\",\r\n AbstractPigeonPedigree = \"pigeon.pedigree\",\r\n AbstractPigeonInserted = \"pigeon.inserted\",\r\n AbstractPigeonUpdated = \"pigeon.updated\",\r\n AbstractPigeon = \"pigeon.default\",\r\n //#region NewPigeon\r\n NewPigeonPigeon = \"new.pigeon.pigeon\",\r\n NewPigeonPedigree = \"new.pigeon.pedigree\",\r\n NewPigeonInserted = \"new.pigeon.inserted\",\r\n NewPigeon = \"new.pigeon.default\",\r\n //#endregion\r\n //#region EditPigeon\r\n EditPigeonPigeon = \"edit.pigeon.pigeon\",\r\n EditPigeonPedigree = \"edit.pigeon.pedigree\",\r\n EditPigeonUpdated = \"edit.pigeon.updated\",\r\n EditPigeon = \"edit.pigeon.default\"\r\n //#endregion\r\n //#endregion\r\n}\r\n","import { Route } from \"vue-router\";\r\nimport { isAuthorized } from \"./isAuthorized\";\r\n\r\nexport function authRoleGuard(to: Route): boolean {\r\n const toMatched = to.matched.filter((record) => record.meta.requiresAuth)?.[0];\r\n const requiresAuthRole = toMatched ? true : false;\r\n const requiredAuthRole: string | undefined = toMatched?.meta?.requiresAuthRole;\r\n const requiredAuthRoles: string[] | undefined = toMatched?.meta?.requiresAuthRoles;\r\n const hasRequiredRole = isAuthorized(requiredAuthRoles || requiredAuthRole);\r\n\r\n // prettier-ignore\r\n return !requiresAuthRole || (requiresAuthRole && hasRequiredRole)\r\n ? true\r\n : false;\r\n}\r\n","import { authStore } from \"@market/stores/App.store.modules\";\r\n\r\nexport function isAuthorized(requiredRole?: string | string[]): boolean {\r\n if (!authStore.IsAuthenticated) return false;\r\n\r\n let isAuthorized = false;\r\n\r\n if (Array.isArray(requiredRole)) {\r\n // One of roles is required (OR operator)\r\n for (const role of requiredRole) {\r\n isAuthorized = isAuthorized || authStore.IsAuthorized(role);\r\n }\r\n } else if (typeof requiredRole === \"string\" && requiredRole) {\r\n // The role is required\r\n isAuthorized = authStore.IsAuthorized(requiredRole);\r\n } else {\r\n // None role is required\r\n isAuthorized = true;\r\n }\r\n\r\n return isAuthorized;\r\n}\r\n","import { Component, Vue } from \"vue-property-decorator\";\r\n\r\n@Component\r\nexport default class I18nLocalization extends Vue {}\r\n","import { IPigeonsService } from \"@api/contracts/odata/IPigeonsService\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport PigeonPedigree from \"@pigeon/components/pigeon/PigeonPedigree.vue\";\r\nimport { PedigreeDiagramOrientations } from \"@pigeon/components/pigeon/PigeonPedigreeDiagram\";\r\nimport PigeonPedigreePdf from \"@pigeon/components/pigeon/PigeonPedigreePdf.vue\";\r\nimport PigeonPedigreePicture from \"@pigeon/components/pigeon/PigeonPedigreePicture.vue\";\r\nimport PigeonPropertyTicketPicture from \"@pigeon/components/pigeon/PigeonPropertyTicketPicture.vue\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { IPigeonManager } from \"@pigeon/services/contracts/IPigeonManager\";\r\nimport { Inject } from \"inversify-props\";\r\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\r\n\r\nexport enum PedigreeViewTypes {\r\n Diagram = \"diagram\",\r\n Picture = \"picture\",\r\n TicketPicture = \"ticket-picture\",\r\n Pdf = \"pdf\"\r\n}\r\n\r\n@Component({\r\n components: {\r\n PigeonPedigree,\r\n PigeonPedigreePicture,\r\n PigeonPedigreePdf,\r\n PigeonPropertyTicketPicture\r\n }\r\n})\r\nexport default class ProductPedigreeView extends Vue {\r\n @Prop({ default: false })\r\n readonly parentsLinked: boolean;\r\n @Prop({\r\n default: PedigreeViewTypes.Picture,\r\n validator: (value: PedigreeViewTypes) => Object.values(PedigreeViewTypes).includes(value)\r\n })\r\n readonly viewBy: PedigreeViewTypes;\r\n @Prop({ default: PedigreeDiagramOrientations.Horizontal })\r\n readonly viewByOrientation: PedigreeDiagramOrientations;\r\n @Prop()\r\n readonly pigeonKey: number;\r\n\r\n @Inject()\r\n private pigeonsService: IPigeonsService;\r\n @Inject()\r\n private pigeonManager: IPigeonManager;\r\n\r\n Orientations = PedigreeDiagramOrientations;\r\n ViewTypes = PedigreeViewTypes;\r\n selectedViewBy: PedigreeViewTypes = PedigreeViewTypes.Picture;\r\n selectedViewByOrientation: PedigreeDiagramOrientations | null = null;\r\n selectedPigeon: IPigeon | null = null;\r\n pedigree: IPigeon[] | null = null;\r\n pedigreeGeneration: number = 2;\r\n maxSelectedGeneration: number = this.pedigreeGeneration;\r\n isFaulty: boolean = false;\r\n isLoading: boolean = false;\r\n\r\n get HasPropertyTicketPicture(): boolean {\r\n if (!this.pedigree || !this.pedigree.length) return false;\r\n\r\n const pigeon = this.pedigree[0];\r\n return this.pigeonManager.HasPicturePedigree(pigeon.pictures);\r\n }\r\n\r\n get HasPedigreePicture(): boolean {\r\n if (!this.pedigree || !this.pedigree.length) return false;\r\n\r\n const pigeon = this.pedigree[0];\r\n return this.pigeonManager.HasPicturePedigree(pigeon.pictures);\r\n }\r\n\r\n get HasPedigreePdf(): boolean {\r\n if (!this.pedigree || !this.pedigree.length) return false;\r\n\r\n const pigeon = this.pedigree[0];\r\n return this.pigeonManager.HasPdfPedigree(pigeon.pictures);\r\n }\r\n\r\n get HasPedigreeDiagramData(): boolean {\r\n if (!this.pedigree) return false;\r\n\r\n return this.pedigree.length > 1;\r\n }\r\n\r\n get IsOwnerOfThisPigeon(): boolean {\r\n return this.pedigree?.[0].userId == this.$auth.User?.id;\r\n }\r\n\r\n mounted() {\r\n this.selectedViewBy = this.viewBy;\r\n this.selectedViewByOrientation = this.viewByOrientation;\r\n }\r\n\r\n @Watch(nameof(\"pigeonKey\"), { immediate: true })\r\n ObservePedigreeData() {\r\n if (!this.pigeonKey) return;\r\n\r\n this.FetchPedigree(this.pedigreeGeneration);\r\n }\r\n\r\n @Watch(nameof(\"pedigree\"), { immediate: true })\r\n ObserveViewByType() {\r\n if (!this.pedigree || !this.pedigree.length) return;\r\n\r\n const pigeon = this.pedigree[0];\r\n\r\n if (this.selectedViewBy == PedigreeViewTypes.Picture && !this.pigeonManager.HasPicturePedigree(pigeon.pictures)) {\r\n this.selectedViewBy = PedigreeViewTypes.Pdf;\r\n }\r\n\r\n if (this.selectedViewBy == PedigreeViewTypes.Pdf && !this.pigeonManager.HasPdfPedigree(pigeon.pictures)) {\r\n this.selectedViewBy = PedigreeViewTypes.Picture;\r\n }\r\n\r\n if (this.selectedViewBy == PedigreeViewTypes.Picture && !this.pigeonManager.HasPicturePedigree(pigeon.pictures)) {\r\n this.selectedViewBy = PedigreeViewTypes.Diagram;\r\n }\r\n }\r\n\r\n public FetchPedigree(generation: number): void {\r\n if (!this.pigeonKey) return;\r\n\r\n this.isLoading = true;\r\n this.isFaulty = false;\r\n\r\n this.pigeonsService\r\n .FetchPedigree(this.pigeonKey, generation)\r\n .then((response) => {\r\n this.isLoading = false;\r\n this.isFaulty = false;\r\n this.pedigree = response.data.value;\r\n })\r\n .catch((error) => {\r\n this.isLoading = false;\r\n this.isFaulty = true;\r\n });\r\n }\r\n\r\n public OnViewBy(value: PedigreeViewTypes): void {\r\n this.selectedViewBy = value;\r\n }\r\n\r\n public OnViewByOrientation(value: PedigreeDiagramOrientations): void {\r\n this.selectedViewByOrientation = value;\r\n }\r\n\r\n public OnSelectGeneration(selectedGeneration: number): void {\r\n // A call api is necessary only if the generation is greater than the eager load\r\n if (selectedGeneration <= this.maxSelectedGeneration) return;\r\n\r\n this.maxSelectedGeneration = selectedGeneration;\r\n this.FetchPedigree(selectedGeneration);\r\n }\r\n}\r\n","import mod from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./I18nLocalization.ts?vue&type=script&lang=ts&external\"; export default mod; export * from \"-!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??clonedRuleSet-41.use[2]!./I18nLocalization.ts?vue&type=script&lang=ts&external\"","import { render, staticRenderFns } from \"./I18nLocalization.vue?vue&type=template&id=16dd935c\"\nimport script from \"./I18nLocalization.ts?vue&type=script&lang=ts&external\"\nexport * from \"./I18nLocalization.ts?vue&type=script&lang=ts&external\"\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","var render = function render(){var _vm=this,_c=_vm._self._c,_setup=_vm._self._setupProxy;return _c('RouterView')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { AppRoles } from \"@api/models/market/constants/AppRoles\";\r\nimport { ProductTypes } from \"@api/models/market/constants/ProductTypes\";\r\nimport i18n from \"@market/i18n\";\r\nimport { DEFAULT_LOCALE } from \"@market/i18n/i18n.const\";\r\nimport { AppRoutes } from \"@market/routers/App.routes\";\r\nimport I18nLocalization from \"@pigeon/components/i18n/I18nLocalization.vue\";\r\nimport { GetUserLocale } from \"@pigeon/i18n/i18n\";\r\nimport { IBreadcrumbItem } from \"@pigeon/models/IBreadcrumbItem\";\r\nimport { PedigreeViewTypes } from \"@pigeon/views/product/ProductPedigree\";\r\nimport { cloneDeep } from \"lodash-es\";\r\nimport { RouteConfig } from \"vue-router\";\r\n\r\n//#region Pages & Views\r\nconst HomePage = () => import(/* webpackChunkName: \"HomePage\" */ \"@market/pages/HomePage.vue\");\r\nconst FaqPage = () => import(/* webpackChunkName: \"FaqPage\" */ \"@market/pages/FaqPage.vue\");\r\nconst BuyPage = () => import(/* webpackChunkName: \"BuyPage\" */ \"@market/pages/BuyPage.vue\");\r\nconst SalePage = () => import(/* webpackChunkName: \"SalePage\" */ \"@market/pages/SalePage.vue\");\r\nconst ContactPage = () => import(/* webpackChunkName: \"ContactPage\" */ \"@market/pages/ContactPage.vue\");\r\nconst PolicyCookiesPage = () =>\r\n import(/* webpackChunkName: \"CookiesPolicyPage\" */ \"@market/pages/CookiesPolicyPage.vue\");\r\nconst PolicyPrivacyPage = () =>\r\n import(/* webpackChunkName: \"PrivacyPolicyPage\" */ \"@market/pages/PrivacyPolicyPage.vue\");\r\nconst PolicyTermsAndConditionsPage = () =>\r\n import(/* webpackChunkName: \"TermsAndConditionsPage\" */ \"@market/pages/TermsAndConditionsPage.vue\");\r\nconst PolicyAuctionConditionsPage = () =>\r\n import(/* webpackChunkName: \"AuctionConditionsPage\" */ \"@market/pages/AuctionConditionsPage.vue\");\r\n\r\nconst WhyPage = () => import(/* webpackChunkName: \"WhyPage\" */ \"@market/pages/WhyPage.vue\");\r\nconst LabPage = () => import(/* webpackChunkName: \"LabPage\" */ \"@market/pages/LabPage.vue\");\r\nconst NotFoundPage = () => import(/* webpackChunkName: \"NotFoundPage\" */ \"@market/pages/NotFoundPage.vue\");\r\nconst PigeonPage = () => import(/* webpackChunkName: \"PigeonPage\" */ \"@market/pages/PigeonPage.vue\");\r\nconst PigeonNewPage = () => import(/* webpackChunkName: \"PigeonNewPage\" */ \"@market/pages/PigeonNewPage.vue\");\r\nconst PigeonEditPage = () => import(/* webpackChunkName: \"PigeonEditPage\" */ \"@market/pages/PigeonEditPage.vue\");\r\n\r\nconst PigeonPedigreeView = () =>\r\n import(/* webpackChunkName: \"PigeonPedigree\" */ \"@pigeon/views/product/ProductPedigree.vue\");\r\nconst ProductBreederView = () =>\r\n import(/* webpackChunkName: \"ProductBreeder\" */ \"@pigeon/views/product/ProductBreeder.vue\");\r\nconst ProductPackagePigeonView = () =>\r\n import(/* webpackChunkName: \"PackagePigeon\" */ \"@market/pages/views/package/PackagePigeon.vue\");\r\nconst ProductStepPackageView = () =>\r\n import(/* webpackChunkName: \"ProductStepPackage\" */ \"@pigeon/views/product/ProductStepPackage.vue\");\r\nconst ProductStepPigeonView = () =>\r\n import(/* webpackChunkName: \"ProductStepPigeon\" */ \"@pigeon/views/product/ProductStepPigeon.vue\");\r\nconst ProductStepPigeonAccordionView = () =>\r\n import(/* webpackChunkName: \"ProductStepPigeonAccordion\" */ \"@pigeon/views/product/ProductStepPigeonAccordion.vue\");\r\nconst ProductStepPedigreeView = () =>\r\n import(/* webpackChunkName: \"ProductStepPedigree\" */ \"@pigeon/views/product/ProductStepPedigree.vue\");\r\nconst PigeonStepSuccessView = () =>\r\n import(/* webpackChunkName: \"PigeonStepSuccess\" */ \"@market/pages/views/pigeon/PigeonStepSuccess.vue\");\r\nconst ProductStepSuccessParentView = () =>\r\n import(/* webpackChunkName: \"ProductStepSuccessParent\" */ \"@pigeon/views/product/ProductStepSuccessParent.vue\");\r\nconst ProductStepSaleView = () =>\r\n import(/* webpackChunkName: \"ProductStepSale\" */ \"@pigeon/views/product/ProductStepSale.vue\");\r\nconst ProductStepSuccessSaleView = () =>\r\n import(/* webpackChunkName: \"ProductStepSuccessSale\" */ \"@pigeon/views/product/ProductStepSuccessSale.vue\");\r\n\r\nconst CheckoutPage = () => import(/* webpackChunkName: \"CheckoutPage\" */ \"@market/pages/CheckoutPage.vue\");\r\nconst CheckoutView = () => import(/* webpackChunkName: \"CheckoutView\" */ \"@market/pages/views/checkout/Checkout.vue\");\r\nconst CheckoutSuccessView = () =>\r\n import(/* webpackChunkName: \"CheckoutSuccess\" */ \"@market/pages/views/checkout/CheckoutSuccess.vue\");\r\n\r\nconst AccountPage = () => import(/* webpackChunkName: \"AccountPage\" */ \"@market/pages/AccountPage.vue\");\r\nconst AccountResetPasswordPage = () =>\r\n import(/* webpackChunkName: \"AccountResetPasswordPage\" */ \"@market/pages/AccountResetPasswordPage.vue\");\r\nconst AccountVerificationPage = () =>\r\n import(/* webpackChunkName: \"AccountVerificationPage\" */ \"@market/pages/AccountVerificationPage.vue\");\r\nconst ConnectOAuthVerificationPage = () =>\r\n import(/* webpackChunkName: \"ConnectOAuthVerificationPage\" */ \"@market/pages/ConnectOAuthVerificationPage.vue\");\r\nconst AccountAddressView = () =>\r\n import(/* webpackChunkName: \"AccountAddress\" */ \"@market/pages/views/account/AccountAddress.vue\");\r\nconst VendorAuctionView = () =>\r\n import(/* webpackChunkName: \"AccountAuction\" */ \"@market/pages/views/buyer/BuyerAuction.vue\");\r\nconst AccountDataView = () =>\r\n import(/* webpackChunkName: \"AccountData\" */ \"@market/pages/views/account/AccountData.vue\");\r\nconst AccountNotificationsCenterView = () =>\r\n import(\r\n /* webpackChunkName: \"AccountNotificationsCenter\" */ \"@market/pages/views/account/AccountNotificationsCenter.vue\"\r\n );\r\n\r\nconst BuyerPage = () => import(/* webpackChunkName: \"BuyerPage\" */ \"@market/pages/BuyerPage.vue\");\r\nconst BuyerDashboardView = () =>\r\n import(/* webpackChunkName: \"BuyerDashboard\" */ \"@market/pages/views/buyer/BuyerDashboard.vue\");\r\nconst BuyerOrdersView = () =>\r\n import(/* webpackChunkName: \"AccountOrders\" */ \"@market/pages/views/buyer/BuyerOrders.vue\");\r\nconst BuyerOrderDetailsView = () =>\r\n import(/* webpackChunkName: \"AccountOrderDetails\" */ \"@market/pages/views/buyer/BuyerOrderDetails.vue\");\r\n\r\nconst BreederPage = () => import(/* webpackChunkName: \"BreederPage\" */ \"@market/pages/BreederPage.vue\");\r\nconst BreederDashboardView = () =>\r\n import(/* webpackChunkName: \"BreederDashboard\" */ \"@market/pages/views/breeder/BreederDashboard.vue\");\r\nconst BreederFancierProfileView = () =>\r\n import(/* webpackChunkName: \"BreederFancierProfile\" */ \"@market/pages/views/breeder/BreederFancierProfile.vue\");\r\n\r\nconst VendorPage = () => import(/* webpackChunkName: \"VendorPage\" */ \"@market/pages/VendorPage.vue\");\r\nconst VendorDashboardView = () =>\r\n import(/* webpackChunkName: \"VendorDashboard\" */ \"@market/pages/views/vendor/VendorDashboard.vue\");\r\nconst VendorShopView = () => import(/* webpackChunkName: \"VendorShop\" */ \"@market/pages/views/vendor/VendorShop.vue\");\r\n\r\nconst VendorReferralView = () =>\r\n import(/* webpackChunkName: \"VendorReferral\" */ \"@market/pages/views/vendor/VendorReferral.vue\");\r\nconst VendorPaymentsView = () =>\r\n import(/* webpackChunkName: \"VendorPayments\" */ \"@market/pages/views/vendor/VendorPayments.vue\");\r\nconst VendorSalesView = () =>\r\n import(/* webpackChunkName: \"VendorSales\" */ \"@market/pages/views/vendor/VendorSales.vue\");\r\nconst VendorSuperviseView = () =>\r\n import(/* webpackChunkName: \"VendorSupervise\" */ \"@market/pages/views/vendor/VendorSupervise.vue\");\r\nconst SellPage = () => import(/* webpackChunkName: \"SellPage\" */ \"@market/pages/SellPage.vue\");\r\nconst SaleNewPage = () => import(/* webpackChunkName: \"SaleNewPage\" */ \"@market/pages/SaleNewPage.vue\");\r\nconst SaleEditPage = () => import(/* webpackChunkName: \"SaleEditPage\" */ \"@market/pages/SaleEditPage.vue\");\r\n\r\nconst AdminPage = () => import(/* webpackChunkName: \"AdminPage\" */ \"@market/pages/AdminPage.vue\");\r\nconst AdminDashboardView = () =>\r\n import(/* webpackChunkName: \"AdminDashboard\" */ \"@market/pages/views/admin/AdminDashboard.vue\");\r\nconst AdminDashboardLegacyView = () =>\r\n import(/* webpackChunkName: \"AdminDashboard\" */ \"@market/pages/views/admin/AdminDashboard.legacy.vue\");\r\nconst AdminDbAlertsView = () =>\r\n import(/* webpackChunkName: \"AdminDbAlerts\" */ \"@market/pages/views/admin/AdminDbAlerts.vue\");\r\nconst AdminApprovalSalesView = () =>\r\n import(/* webpackChunkName: \"AdminApprovalSales\" */ \"@market/pages/views/admin/AdminApprovalSales.vue\");\r\nconst AdminNotificationsView = () =>\r\n import(/* webpackChunkName: \"AdminNotificationSales\" */ \"@market/pages/views/admin/AdminNotificationSales.vue\");\r\nconst AdminBankTransferView = () =>\r\n import(/* webpackChunkName: \"AdminBankTransfer\" */ \"@market/pages/views/admin/AdminBankTransfer.vue\");\r\n//#endregion\r\n\r\nconst saleStepsChildren: RouteConfig[] = [\r\n // Sale step\r\n {\r\n path: \"sale\",\r\n component: ProductStepSaleView,\r\n name: AppRoutes.AbstractSaleSale,\r\n meta: {\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Vendor,\r\n step: AppRoutes.AbstractSaleSale,\r\n nextSteps: {\r\n [ProductTypes.Pigeon]: AppRoutes.AbstractSalePigeon,\r\n [ProductTypes.Package]: AppRoutes.AbstractSalePackage\r\n },\r\n defaultStep: AppRoutes.AbstractSale\r\n }\r\n },\r\n // Package steps\r\n {\r\n path: \"package\",\r\n component: ProductStepPackageView,\r\n name: AppRoutes.AbstractSalePackage,\r\n props: { pigeonHasVideo: false },\r\n meta: {\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Vendor,\r\n step: AppRoutes.AbstractSalePackage,\r\n previousStep: AppRoutes.AbstractSaleSale,\r\n defaultStep: AppRoutes.AbstractSale\r\n }\r\n },\r\n // Pigeon steps\r\n {\r\n path: \"pigeon\",\r\n component: ProductStepPigeonView,\r\n name: AppRoutes.AbstractSalePigeon,\r\n props: { pigeonHasVideo: true },\r\n meta: {\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Vendor,\r\n step: AppRoutes.AbstractSalePigeon,\r\n nextStep: AppRoutes.AbstractSalePedigree,\r\n previousStep: AppRoutes.AbstractSaleSale,\r\n defaultStep: AppRoutes.AbstractSale\r\n }\r\n },\r\n {\r\n path: \"pedigree\",\r\n component: ProductStepPedigreeView,\r\n name: AppRoutes.AbstractSalePedigree,\r\n meta: {\r\n versionBeta: true,\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Vendor,\r\n step: AppRoutes.AbstractSalePedigree,\r\n previousStep: AppRoutes.AbstractSalePigeon,\r\n defaultStep: AppRoutes.AbstractSale\r\n }\r\n },\r\n // Shared steps\r\n {\r\n path: \"inserted\",\r\n component: ProductStepSuccessSaleView,\r\n name: AppRoutes.AbstractSaleInserted,\r\n meta: { requiresAuth: true, requiresAuthRole: AppRoles.Vendor, step: AppRoutes.AbstractSaleInserted },\r\n props: { operation: \"insert\" }\r\n },\r\n {\r\n path: \"updated\",\r\n component: ProductStepSuccessSaleView,\r\n name: AppRoutes.AbstractSaleUpdated,\r\n meta: { requiresAuth: true, requiresAuthRole: AppRoles.Vendor, step: AppRoutes.AbstractSaleUpdated },\r\n props: { operation: \"update\" }\r\n },\r\n { path: \"\", redirect: \"sale\", name: AppRoutes.AbstractSale }\r\n];\r\n\r\nconst pigeonStepsChildren: RouteConfig[] = [\r\n {\r\n path: \"pigeon\",\r\n component: ProductStepPigeonView,\r\n name: AppRoutes.AbstractPigeonPigeon,\r\n meta: {\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Vendor,\r\n step: AppRoutes.AbstractPigeonPigeon,\r\n nextStep: AppRoutes.AbstractPigeonPedigree,\r\n defaultStep: AppRoutes.AbstractPigeon\r\n }\r\n },\r\n {\r\n path: \"pedigree\",\r\n component: ProductStepPedigreeView,\r\n name: AppRoutes.AbstractPigeonPedigree,\r\n meta: {\r\n versionBeta: true,\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Vendor,\r\n step: AppRoutes.AbstractPigeonPedigree,\r\n previousStep: AppRoutes.AbstractPigeonPigeon,\r\n defaultStep: AppRoutes.AbstractPigeon\r\n }\r\n },\r\n {\r\n path: \"inserted\",\r\n component: PigeonStepSuccessView,\r\n name: AppRoutes.AbstractPigeonInserted,\r\n meta: { requiresAuth: true, requiresAuthRole: AppRoles.Vendor, step: AppRoutes.AbstractPigeonInserted },\r\n props: { operation: \"insert\" }\r\n },\r\n {\r\n path: \"updated\",\r\n component: PigeonStepSuccessView,\r\n name: AppRoutes.AbstractPigeonUpdated,\r\n meta: { requiresAuth: true, requiresAuthRole: AppRoles.Vendor, step: AppRoutes.AbstractPigeonUpdated },\r\n props: { operation: \"update\" }\r\n },\r\n { path: \"\", redirect: \"pigeon\", name: AppRoutes.AbstractPigeon }\r\n];\r\n\r\nexport const breadcrumb: { [key: string]: IBreadcrumbItem[] } = {\r\n buy: [{ text: \"catalog\" }],\r\n checkout: [\r\n {\r\n text: \"catalog\",\r\n to: { name: AppRoutes.Buy }\r\n },\r\n { text: \"checkout\" }\r\n ],\r\n contact: [\r\n {\r\n text: \"catalog\",\r\n to: { name: AppRoutes.Buy }\r\n },\r\n { text: \"contact\" }\r\n ],\r\n saleSheet: [\r\n {\r\n text: \"catalog\",\r\n to: { name: AppRoutes.Buy }\r\n },\r\n { text: \"sale_sheet\" }\r\n ]\r\n};\r\n\r\nexport const routes: RouteConfig[] = [\r\n { path: \"lab\", component: LabPage, name: AppRoutes.Lab },\r\n { path: \"home\", component: HomePage, name: AppRoutes.Home },\r\n { path: \"faq\", component: FaqPage, name: AppRoutes.Faq },\r\n { path: \"why\", component: WhyPage, name: AppRoutes.Why },\r\n { path: \"buy\", component: BuyPage, name: AppRoutes.Buy, meta: { breadcrumb: breadcrumb.buy } },\r\n { path: \"shop/:shopKey\", component: BuyPage, name: AppRoutes.BuyShop, meta: { breadcrumb: breadcrumb.buy } },\r\n {\r\n path: \"buy/:saleKey(\\\\d+)/:productRef?/:productName?\",\r\n component: SalePage,\r\n meta: { breadcrumb: breadcrumb.saleSheet },\r\n children: [\r\n {\r\n path: \"\",\r\n component: PigeonPedigreeView,\r\n // Note: viewBy prop is pdf (if picture pdf exists), picture (if picture img exists) or diagram (fallback value)\r\n // See: ProductPedigree.ts / SyncViewByWithPigeonPictureAvailable() method\r\n props: { parentsLinked: false, viewBy: PedigreeViewTypes.Pdf },\r\n name: AppRoutes.Sale,\r\n meta: { breadcrumb: breadcrumb.saleSheet }\r\n },\r\n {\r\n path: \"package/pigeon/:pigeonKey?\",\r\n component: ProductPackagePigeonView,\r\n name: AppRoutes.SalePackagePigeon\r\n }\r\n // considered for the vnext\r\n // { path: \"palmares\", component: ProductPalmaresView, name: AppRoutes.SalePalmares },\r\n ]\r\n },\r\n {\r\n path: \"pigeon/:productKey(\\\\d+)/:productRef?/:productName?\",\r\n component: PigeonPage,\r\n children: [\r\n {\r\n path: \"pedigree\",\r\n component: PigeonPedigreeView,\r\n name: AppRoutes.PigeonPedigree,\r\n props: { parentsLinked: true, viewBy: \"diagram\" },\r\n meta: { breadcrumb: breadcrumb.productSheet }\r\n },\r\n { path: \"\", redirect: \"pedigree\", name: AppRoutes.Pigeon }\r\n ]\r\n },\r\n {\r\n path: \"pigeon/new\",\r\n component: PigeonNewPage,\r\n meta: {\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Vendor\r\n },\r\n children: cloneDeep(pigeonStepsChildren).map((child) => {\r\n if (child.path === \"/updated\") return {} as RouteConfig;\r\n\r\n child.name = `new.${child.name}`;\r\n if (child.meta) {\r\n if (child.meta.step) child.meta.step = `new.${child.meta.step}`;\r\n if (child.meta.nextStep) child.meta.nextStep = `new.${child.meta.nextStep}`;\r\n if (child.meta.previousStep) child.meta.previousStep = `new.${child.meta.previousStep}`;\r\n if (child.meta.defaultStep) child.meta.defaultStep = `new.${child.meta.defaultStep}`;\r\n }\r\n return child;\r\n })\r\n },\r\n {\r\n path: \"pigeon/edit/:productKey(\\\\d+)\",\r\n component: PigeonEditPage,\r\n meta: {\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Vendor\r\n },\r\n children: cloneDeep(pigeonStepsChildren).map((child) => {\r\n if (child.path === \"/inserted\") return {} as RouteConfig;\r\n\r\n child.name = `edit.${child.name}`;\r\n if (child.meta) {\r\n if (child.meta.step) child.meta.step = `edit.${child.meta.step}`;\r\n if (child.meta.nextStep) child.meta.nextStep = `edit.${child.meta.nextStep}`;\r\n if (child.meta.previousStep) child.meta.previousStep = `edit.${child.meta.previousStep}`;\r\n if (child.meta.defaultStep) child.meta.defaultStep = `edit.${child.meta.defaultStep}`;\r\n }\r\n return child;\r\n })\r\n },\r\n {\r\n path: \"buy/checkout\",\r\n component: CheckoutPage,\r\n meta: {\r\n breadcrumb: breadcrumb.checkout\r\n },\r\n children: [\r\n {\r\n path: \"order\",\r\n component: CheckoutView,\r\n name: AppRoutes.CheckoutOrder\r\n },\r\n {\r\n path: \"success/:orderId\",\r\n component: CheckoutSuccessView,\r\n props: true,\r\n name: AppRoutes.CheckoutSuccess\r\n },\r\n { path: \"\", redirect: \"order\", name: AppRoutes.Checkout }\r\n ]\r\n },\r\n { path: \"sell\", component: SellPage, name: AppRoutes.Sell },\r\n {\r\n path: \"sell/new\",\r\n component: SaleNewPage,\r\n meta: {\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Vendor\r\n },\r\n children: cloneDeep(saleStepsChildren).map((child) => {\r\n if (child.path === \"/updated\") return {} as RouteConfig;\r\n\r\n child.name = `new.${child.name}`;\r\n if (child.meta) {\r\n if (child.meta.step) child.meta.step = `new.${child.meta.step}`;\r\n if (child.meta.nextStep) child.meta.nextStep = `new.${child.meta.nextStep}`;\r\n if (child.meta.nextSteps) {\r\n const nextSteps = child.meta.nextSteps;\r\n for (const keyNextStep in nextSteps) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (nextSteps.hasOwnProperty(keyNextStep)) {\r\n nextSteps[keyNextStep] = `new.${nextSteps[keyNextStep]}`;\r\n }\r\n }\r\n }\r\n if (child.meta.previousStep) child.meta.previousStep = `new.${child.meta.previousStep}`;\r\n if (child.meta.defaultStep) child.meta.defaultStep = `new.${child.meta.defaultStep}`;\r\n }\r\n return child;\r\n })\r\n },\r\n {\r\n path: \"sell/edit/:saleKey(\\\\d+)\",\r\n component: SaleEditPage,\r\n meta: {\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Vendor\r\n },\r\n children: cloneDeep(saleStepsChildren).map((child) => {\r\n if (child.path === \"/inserted\") return {} as RouteConfig;\r\n\r\n child.name = `edit.${child.name}`;\r\n if (child.meta) {\r\n if (child.meta.step) child.meta.step = `edit.${child.meta.step}`;\r\n if (child.meta.nextStep) child.meta.nextStep = `edit.${child.meta.nextStep}`;\r\n if (child.meta.nextSteps) {\r\n const nextSteps = child.meta.nextSteps;\r\n for (const keyNextStep in nextSteps) {\r\n // eslint-disable-next-line no-prototype-builtins\r\n if (nextSteps.hasOwnProperty(keyNextStep)) {\r\n nextSteps[keyNextStep] = `edit.${nextSteps[keyNextStep]}`;\r\n }\r\n }\r\n }\r\n if (child.meta.previousStep) child.meta.previousStep = `edit.${child.meta.previousStep}`;\r\n if (child.meta.defaultStep) child.meta.defaultStep = `edit.${child.meta.defaultStep}`;\r\n }\r\n return child;\r\n })\r\n },\r\n {\r\n path: \"account/reset-password\", // a securityToken is passed as query param\r\n component: AccountResetPasswordPage,\r\n name: AppRoutes.AccountResetPassword\r\n },\r\n {\r\n path: \"account/verification/:userId\", // a securityToken is passed as query param\r\n component: AccountVerificationPage,\r\n name: AppRoutes.AccountVerification\r\n },\r\n {\r\n path: \"account\",\r\n component: AccountPage,\r\n meta: { requiresAuth: true, requiresAuthRole: AppRoles.Member },\r\n children: [\r\n {\r\n path: \"data\",\r\n component: AccountDataView,\r\n name: AppRoutes.AccountData\r\n },\r\n {\r\n path: \"address\",\r\n component: AccountAddressView,\r\n name: AppRoutes.AccountAddress\r\n },\r\n {\r\n path: \"notifications\",\r\n component: AccountNotificationsCenterView,\r\n name: AppRoutes.AccountNotifications\r\n }\r\n ]\r\n },\r\n {\r\n path: \"buyer\",\r\n component: BuyerPage,\r\n meta: { requiresAuth: true, requiresAuthRole: AppRoles.Member },\r\n children: [\r\n {\r\n path: \"dashboard\",\r\n component: BuyerDashboardView,\r\n name: AppRoutes.BuyerDashboard\r\n },\r\n {\r\n path: \"orders\",\r\n component: BuyerOrdersView,\r\n name: AppRoutes.BuyerOrders\r\n },\r\n {\r\n path: \"orders/:orderKey\",\r\n component: BuyerOrderDetailsView,\r\n name: AppRoutes.BuyerOrdersDetails,\r\n props: true\r\n }\r\n ]\r\n },\r\n {\r\n path: \"breeder\",\r\n component: BreederPage,\r\n meta: { requiresAuth: true, requiresAuthRole: AppRoles.Vendor },\r\n children: [\r\n {\r\n path: \"dashboard\",\r\n component: BreederDashboardView,\r\n name: AppRoutes.BreederDashboard,\r\n meta: {\r\n versionBeta: true\r\n }\r\n },\r\n {\r\n path: \"fancier-profile/:profileKey?\",\r\n component: BreederFancierProfileView,\r\n name: AppRoutes.BreederFancierProfile,\r\n props: true,\r\n meta: {\r\n versionBeta: true\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: \"vendor\",\r\n component: VendorPage,\r\n meta: { requiresAuth: true, requiresAuthRole: AppRoles.Vendor },\r\n children: [\r\n {\r\n path: \"dashboard\",\r\n component: VendorDashboardView,\r\n name: AppRoutes.VendorDashboard,\r\n meta: {\r\n versionBeta: true\r\n }\r\n },\r\n {\r\n path: \"auctions/:auctionKey?\",\r\n component: VendorAuctionView,\r\n name: AppRoutes.VendorAuction,\r\n props: true\r\n },\r\n {\r\n path: \"payments\",\r\n component: VendorPaymentsView,\r\n name: AppRoutes.VendorPayments\r\n },\r\n {\r\n path: \"sales\",\r\n component: VendorSalesView,\r\n name: AppRoutes.VendorSales\r\n },\r\n {\r\n path: \"sales/:saleKey\",\r\n name: AppRoutes.VendorSalesDetails,\r\n redirect: { name: AppRoutes.Sale }\r\n },\r\n {\r\n path: \"supervise/:saleKey\",\r\n component: VendorSuperviseView,\r\n name: AppRoutes.VendorSuperviseDetails,\r\n props: true\r\n },\r\n {\r\n path: \"shop\",\r\n component: VendorShopView,\r\n name: AppRoutes.VendorShop,\r\n meta: {\r\n versionBeta: true\r\n }\r\n },\r\n {\r\n path: \"referral\",\r\n component: VendorReferralView,\r\n name: AppRoutes.VendorReferral,\r\n meta: {\r\n versionBeta: true\r\n }\r\n },\r\n {\r\n path: \"pigeons/:productKey\",\r\n name: AppRoutes.VendorPigeonsDetails,\r\n redirect: { name: AppRoutes.AbstractPigeon }\r\n }\r\n ]\r\n },\r\n {\r\n path: \"admin\",\r\n component: AdminPage,\r\n name: AppRoutes.Admin,\r\n meta: { requiresAuth: true, requiresAuthRoles: [AppRoles.Approver, AppRoles.Administrator] },\r\n children: [\r\n {\r\n path: \"dashboard\",\r\n component: AdminDashboardView,\r\n name: AppRoutes.AdminDashboard,\r\n meta: {\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Approver\r\n }\r\n },\r\n {\r\n path: \"dashboard-legacy\",\r\n component: AdminDashboardLegacyView,\r\n name: AppRoutes.AdminDashboardLegacy,\r\n meta: {\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Approver\r\n }\r\n },\r\n {\r\n path: \"sales-approval\",\r\n component: AdminApprovalSalesView,\r\n name: AppRoutes.AdminApprovalSales,\r\n meta: {\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Approver\r\n }\r\n },\r\n {\r\n path: \"alerts\",\r\n component: AdminDbAlertsView,\r\n name: AppRoutes.AdminAlerts,\r\n meta: {\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Administrator\r\n }\r\n },\r\n {\r\n path: \"sales-notifications\",\r\n component: AdminNotificationsView,\r\n name: AppRoutes.AdminNotifications,\r\n meta: {\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Administrator\r\n }\r\n },\r\n {\r\n path: \"bank-transfer\",\r\n component: AdminBankTransferView,\r\n name: AppRoutes.AdminBankTransfer,\r\n meta: {\r\n requiresAuth: true,\r\n requiresAuthRole: AppRoles.Administrator\r\n }\r\n }\r\n ]\r\n },\r\n {\r\n path: \"contact\",\r\n component: ContactPage,\r\n name: AppRoutes.Contact,\r\n meta: { breadcrumb: breadcrumb.contact }\r\n },\r\n {\r\n path: \"terms-and-conditions\",\r\n component: PolicyTermsAndConditionsPage,\r\n name: AppRoutes.TermsAndConditions\r\n },\r\n {\r\n path: \"auction-conditions\",\r\n component: PolicyAuctionConditionsPage,\r\n name: AppRoutes.AuctionConditions\r\n },\r\n { path: \"privacy-policy\", component: PolicyPrivacyPage, name: AppRoutes.PrivacyPolicy },\r\n { path: \"cookies-policy\", component: PolicyCookiesPage, name: AppRoutes.CookiesPolicy },\r\n // Redirects to PigeonCommunity\r\n {\r\n path: \"?redirect=https://www.pigeoncommunity.be/en/explore\",\r\n name: AppRoutes.CommunityPigeon,\r\n beforeEnter(to) {\r\n if (to.params && to.params.productKey && to.params.productRef && to.params.productName)\r\n window.location.replace(\r\n `${process.env.VUE_APP_PIGEON_COMMUNITY}/${i18n.locale}/explore/${to.params.productKey}/${to.params.productRef}/${to.params.productName}`\r\n );\r\n else if (to.params && to.params.productKey)\r\n window.location.replace(\r\n `${process.env.VUE_APP_PIGEON_COMMUNITY}/${i18n.locale}/explore/${to.params.productKey}`\r\n );\r\n else window.location.replace(`${process.env.VUE_APP_PIGEON_COMMUNITY}/${i18n.locale}/explore`);\r\n }\r\n },\r\n // Default fallback\r\n { path: \"\", redirect: { name: AppRoutes.Home, params: { locale: GetUserLocale() } }, name: AppRoutes.Default }, // Workaround: See https://github.com/vuejs/vue-router/issues/1762\r\n { path: \"*\", name: AppRoutes.Page404, component: NotFoundPage } // In Vue 3 path: '/:pathMatch(.*)' See: https://next.router.vuejs.org/guide/migration/#removed-star-or-catch-all-routes\r\n];\r\n\r\nconst localizedRoutes: RouteConfig[] = [\r\n {\r\n path: \"/\",\r\n redirect: `/${DEFAULT_LOCALE}`\r\n },\r\n {\r\n path: \"/oauth/connect\",\r\n component: ConnectOAuthVerificationPage\r\n },\r\n {\r\n path: \"/:locale([A-Za-z]{2})\",\r\n component: I18nLocalization,\r\n children: routes\r\n }\r\n];\r\n\r\nexport default localizedRoutes;\r\n","import { AppRoutes } from \"@market/routers/App.routes\";\r\nimport { appStore } from \"@market/stores/App.store.modules\";\r\nimport { authGuard } from \"@pigeon/guards/authGuard\";\r\nimport { authRoleGuard } from \"@pigeon/guards/authRoleGuard\";\r\nimport { GetUserLocale } from \"@pigeon/i18n/i18n\";\r\nimport { uiBus } from \"@pigeon/Ui.bus\";\r\nimport NProgress from \"nprogress\";\r\nimport Vue from \"vue\";\r\nimport VueRouter from \"vue-router\";\r\nimport routes from \"./routes\";\r\n\r\n// Nprogress\r\nNProgress.configure({ showSpinner: false, speed: 600 });\r\n// router\r\nVue.use(VueRouter);\r\n\r\nconst router: VueRouter = new VueRouter({\r\n routes: routes,\r\n mode: \"history\",\r\n scrollBehavior(to, from, savedPosition) {\r\n if (savedPosition) {\r\n return savedPosition;\r\n } else {\r\n const lastFrom = from.matched[from.matched.length - 1];\r\n const lastTo = to.matched[to.matched.length - 1];\r\n\r\n if (lastFrom && lastTo && lastFrom.name?.startsWith(\"sale.\") && lastTo.name?.startsWith(\"sale.\")) return;\r\n else return { x: 0, y: 0 };\r\n }\r\n }\r\n});\r\n\r\n// Global guards\r\nrouter.beforeEach((to, from, next) => {\r\n const redirectToDefault = () => next({ name: AppRoutes.Default, params: { locale: GetUserLocale() } });\r\n\r\n if (to.path || to.name) {\r\n NProgress.start();\r\n }\r\n\r\n if (authGuard(to) && authRoleGuard(to)) next();\r\n else redirectToDefault();\r\n});\r\n\r\n// After hooks\r\nrouter.afterEach((to, from) => {\r\n NProgress.set(0.99); // 100%\r\n window.setTimeout(() => {\r\n NProgress.done();\r\n }, 500);\r\n\r\n // referral code\r\n if (to.query?.[\"referralCode\"]) {\r\n appStore.UpdateReferralCode(to.query[\"referralCode\"] as string);\r\n }\r\n});\r\n\r\nuiBus.on(\"logout\", () => {\r\n if (router.currentRoute?.meta?.requiresAuth) {\r\n router.push({ name: AppRoutes.Default, params: { locale: GetUserLocale() } });\r\n }\r\n});\r\n\r\nexport default router;\r\n","import { authStore } from \"@market/stores/App.store.modules\";\r\nimport { Route } from \"vue-router\";\r\n\r\nexport function authGuard(to: Route): boolean {\r\n const requiresAuth = to.matched.some((record) => record.meta.requiresAuth);\r\n\r\n // prettier-ignore\r\n return !requiresAuth || (requiresAuth && authStore.IsAuthenticated)\r\n ? true\r\n : false;\r\n}\r\n","import { IAccountsService } from \"@api/contracts/auth/IAccountsService\";\r\nimport { IAuthentication } from \"@api/models/auth/IAuthentication\";\r\nimport { IAuthSession } from \"@api/models/auth/IAuthSession\";\r\nimport { AppRoles } from \"@api/models/market/constants/AppRoles\";\r\nimport { store } from \"@market/stores\";\r\nimport {\r\n accountStore,\r\n cartStore,\r\n checkoutStore,\r\n jwtStore,\r\n pigeonStore,\r\n saleStore,\r\n userStore\r\n} from \"@market/stores/App.store.modules\";\r\nimport { IAuthStore } from \"@market/stores/contracts/IAuthStore\";\r\nimport { AspNetCoreCookieCulture } from \"@pigeon/i18n/i18n.const\";\r\nimport { uiBus } from \"@pigeon/Ui.bus\";\r\nimport { cid, container, Inject } from \"inversify-props\";\r\nimport Vue from \"vue\";\r\nimport { Action, Module, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"auth\" = \"auth\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class AuthStore extends VuexModule implements IAuthStore {\r\n // WARNING: Don't use Inject decorator here because VuexModuleDecorator will transform it (into store state)\r\n // @Inject()\r\n // private accountsService: IAccountsService;\r\n\r\n /** @deprecated */\r\n static readonly STORE_KEY: string = \"account\";\r\n\r\n get IsAuthenticated(): boolean {\r\n return !!jwtStore.accessToken;\r\n }\r\n\r\n get IsMember(): boolean {\r\n return this.IsAuthenticated && this.IsAuthorized(AppRoles.Member);\r\n }\r\n\r\n get IsContributor(): boolean {\r\n return this.IsAuthenticated && this.IsAuthorized(AppRoles.Contributor);\r\n }\r\n\r\n get IsVendor(): boolean {\r\n return this.IsAuthenticated && this.IsAuthorized(AppRoles.Vendor);\r\n }\r\n\r\n get IsApprover(): boolean {\r\n return this.IsAuthenticated && this.IsAuthorized(AppRoles.Approver);\r\n }\r\n\r\n get IsAdministrator(): boolean {\r\n return this.IsAuthenticated && this.IsAuthorized(AppRoles.Administrator);\r\n }\r\n\r\n get IsAuthorized(): (requiredRole: string) => boolean {\r\n return (requiresRole: string) => {\r\n if (!requiresRole) return true;\r\n if (!jwtStore.payload) return false;\r\n\r\n if (Array.isArray(jwtStore.payload.userRoles)) {\r\n return jwtStore.payload.userRoles.includes(requiresRole);\r\n }\r\n\r\n return jwtStore.payload.userRoles === requiresRole;\r\n };\r\n }\r\n\r\n @Action\r\n async Login(authentication: IAuthentication) {\r\n // eslint-disable-next-line no-console\r\n console.debug(\"Login\");\r\n\r\n const accountsService = container.get(cid.AccountsService);\r\n return accountsService.SignIn(authentication).then(async (response) => {\r\n jwtStore.InitTokens({ accessToken: response.data.accessToken, refreshToken: response.data.refreshToken });\r\n accountStore.InitAccountData(response.data.accountData);\r\n userStore.InitUserData(response.data.userData);\r\n\r\n uiBus.emit(\"login\");\r\n });\r\n }\r\n\r\n @Action\r\n Logout() {\r\n // eslint-disable-next-line no-console\r\n console.debug(\"Logout\");\r\n jwtStore.Reset();\r\n userStore.Reset();\r\n accountStore.Reset();\r\n cartStore.Reset();\r\n checkoutStore.Reset();\r\n pigeonStore.Reset();\r\n saleStore.Reset();\r\n Vue.cookies.remove(AspNetCoreCookieCulture);\r\n uiBus.emit(\"logout\");\r\n }\r\n\r\n @Action\r\n AuthSession(session: IAuthSession) {\r\n if (session.accessToken && session.refreshToken) jwtStore.UPDATE_TOKENS(session);\r\n if (session.userData) userStore.UPDATE_USER_DATA(session.userData);\r\n if (session.accountData) accountStore.UPDATE_ACCOUNT_DATA(session.accountData);\r\n }\r\n\r\n @Action\r\n ClearStorage() {\r\n localStorage.removeItem(AuthStore.STORE_KEY);\r\n }\r\n}\r\n","import { appStore } from \"@market/stores/App.store.modules\";\r\nimport Vue from \"vue\";\r\nimport { bootstrap } from \"vue-gtag\";\r\nimport { Component, Watch } from \"vue-property-decorator\";\r\n\r\nexport interface IConsent {\r\n \"strictly-necessary\": boolean;\r\n functionality: boolean;\r\n tracking: boolean;\r\n targeting: boolean;\r\n}\r\n\r\nconst COOKIES_CONSENT_USER = \"cookie_consent_user_accepted\";\r\nconst COOKIES_CONSENT_LEVELS = \"cookie_consent_level\";\r\n// TODO: Move to Cookies(Service|Manager)\r\nexport function HasFunctionalityCookieConsent(): boolean {\r\n if (!Vue.cookies) return false;\r\n\r\n const cookiesUserConsent = Vue.cookies.get(COOKIES_CONSENT_USER);\r\n const cookiesConsentLevels = Vue.cookies.get(COOKIES_CONSENT_LEVELS);\r\n\r\n const userHasAcceptedFunctionalityCookie =\r\n cookiesUserConsent && cookiesConsentLevels && (cookiesConsentLevels as IConsent).functionality ? true : false;\r\n\r\n if (!userHasAcceptedFunctionalityCookie)\r\n console.warn(\"User has not accept functionality cookies. It impacts data stored on browser storage.\");\r\n\r\n return userHasAcceptedFunctionalityCookie;\r\n}\r\n\r\n@Component\r\nexport default class TheBannerCookies extends Vue {\r\n created() {\r\n // get user consents from cookies\r\n const userHasAcceptedCookiesConsent = Vue.cookies.get(COOKIES_CONSENT_USER);\r\n\r\n if (Vue.cookies.isKey(COOKIES_CONSENT_LEVELS)) {\r\n this.HandleCookies();\r\n }\r\n\r\n if (!userHasAcceptedCookiesConsent) {\r\n this.RunCookiesConsent();\r\n this.ListenOnCookieChangePrefences();\r\n }\r\n }\r\n\r\n @Watch(\"$i18n.locale\", { immediate: false })\r\n async ObserveCookiesLocal() {\r\n // Remove previous cookies banner (translated in other locale)\r\n document.querySelectorAll(\".cc_dialog\").forEach((element) => {\r\n element.remove();\r\n });\r\n\r\n appStore.UpdateCookiesBanner(false);\r\n await this.RunCookiesConsent();\r\n }\r\n\r\n // Note: cookie consent loaded statically from index.html\r\n private async RunCookiesConsent() {\r\n if (appStore.cookiesBanner) return;\r\n\r\n if (!(window as any).cookieconsent) return;\r\n appStore.UpdateCookiesBanner(true);\r\n\r\n const locale =\r\n window.location.pathname && window.location.pathname.length >= 3\r\n ? window.location.pathname.substring(1, 3)\r\n : \"en\";\r\n\r\n (window as any).cookieconsent.run({\r\n notice_banner_type: \"headline\",\r\n consent_type: \"express\",\r\n palette: \"light\",\r\n language: locale,\r\n website_name: \"PigeonMarket\",\r\n change_preferences_selector: \"#cookiesPreferences\",\r\n cookies_policy_url: \"https://www.pigeonmarket.be/en/cookies-policy\"\r\n });\r\n }\r\n\r\n private ListenOnCookieChangePrefences() {\r\n const elementChangePreferences: HTMLButtonElement = document.querySelector(\".cc_b_cp\") as HTMLButtonElement;\r\n if (elementChangePreferences) {\r\n elementChangePreferences.onclick = this.ListenOnCookieSavePreferences;\r\n }\r\n }\r\n\r\n private ListenOnCookieSavePreferences() {\r\n const elementSavePreferences: HTMLButtonElement = document.querySelector(\r\n \".cc_cp_f_save button\"\r\n ) as HTMLButtonElement;\r\n if (elementSavePreferences) {\r\n elementSavePreferences.onclick = this.HandleCookies;\r\n }\r\n }\r\n\r\n private HandleCookies() {\r\n // get user consents from cookies\r\n const cookiesConsent = Vue.cookies.get(COOKIES_CONSENT_LEVELS);\r\n\r\n if (cookiesConsent) {\r\n const consentLevel: IConsent = cookiesConsent as IConsent;\r\n\r\n this.HandleFunctionalityCookies(consentLevel.functionality);\r\n this.HandleTrackingCookies(consentLevel.tracking);\r\n this.HandleTargetingCookies(consentLevel.targeting);\r\n }\r\n }\r\n\r\n private HandleFunctionalityCookies(hasConsent: boolean) {\r\n if (!hasConsent) {\r\n localStorage.clear();\r\n }\r\n }\r\n\r\n private async HandleTrackingCookies(hasConsent: boolean) {\r\n const userHasAcceptedCookiesConsent = Vue.cookies.get(COOKIES_CONSENT_USER);\r\n\r\n if (process.env.NODE_ENV === \"production\" && userHasAcceptedCookiesConsent && hasConsent) {\r\n await bootstrap();\r\n }\r\n }\r\n\r\n private HandleTargetingCookies(hasConsent: boolean) {}\r\n}\r\n","import { IAccountData } from \"@api/models/auth/IAccountData\";\r\nimport { IAuthSession } from \"@api/models/auth/IAuthSession\";\r\nimport { store } from \"@market/stores\";\r\nimport { IAccountStore } from \"@market/stores/contracts/IAccountStore\";\r\nimport AuthStore from \"@market/stores/modules/authStore\";\r\nimport { HasFunctionalityCookieConsent } from \"@pigeon/components/layout/TheBannerCookies\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"account\" = \"account\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class AccountStore extends VuexModule implements IAccountStore {\r\n static readonly STORE_KEY: string = \"myaccount\";\r\n\r\n pending: boolean = false;\r\n account: IAccountData | null = null;\r\n refreshPromise: Promise | null;\r\n\r\n get AccountIsVerified(): boolean {\r\n if (!this.account) return false;\r\n\r\n return this.account.isAccountVerified;\r\n }\r\n\r\n get AccountVendorIsVerified(): boolean {\r\n if (!this.account) return false;\r\n\r\n return this.account.isConnectedAccountVerified;\r\n }\r\n\r\n get HasResentAccountVerification(): boolean {\r\n if (!this.account) return false;\r\n\r\n return this.account.hasResentAccountVerification;\r\n }\r\n\r\n @Mutation\r\n UPDATE_ACCOUNT_DATA(accountData: IAccountData): void {\r\n this.account = accountData;\r\n }\r\n\r\n @Mutation\r\n FLAG_ACCOUNT_RESENT_VERIFICATION(): void {\r\n if (this.account) {\r\n this.account.hasResentAccountVerification = true;\r\n }\r\n }\r\n\r\n @Mutation\r\n RESET(): void {\r\n this.account = null;\r\n }\r\n\r\n @Action\r\n FlagAccountAsVerified() {\r\n if (!this.account) return;\r\n\r\n this.UPDATE_ACCOUNT_DATA({\r\n ...this.account,\r\n isAccountVerified: true\r\n });\r\n this.Store();\r\n }\r\n\r\n @Action\r\n FlagConnectedAccountAsVerified() {\r\n if (!this.account) return;\r\n\r\n this.UPDATE_ACCOUNT_DATA({\r\n ...this.account,\r\n isConnectedAccountVerified: true\r\n });\r\n this.Store();\r\n }\r\n\r\n @Action\r\n InitAccountData(accountData: IAccountData) {\r\n this.UPDATE_ACCOUNT_DATA(accountData);\r\n this.Store();\r\n }\r\n\r\n @Action\r\n FlagVerificationAsResent(): void {\r\n this.FLAG_ACCOUNT_RESENT_VERIFICATION();\r\n }\r\n\r\n @Action\r\n Reset(): void {\r\n this.RESET();\r\n this.ClearStorage();\r\n }\r\n\r\n @Action\r\n Store(): void {\r\n if (!HasFunctionalityCookieConsent()) return;\r\n\r\n localStorage.setItem(AccountStore.STORE_KEY, JSON.stringify(this.account));\r\n }\r\n\r\n @Action\r\n ClearStorage(): void {\r\n localStorage.removeItem(AccountStore.STORE_KEY);\r\n }\r\n\r\n @Action\r\n async Restore() {\r\n const accountDataStored = localStorage.getItem(AccountStore.STORE_KEY);\r\n\r\n try {\r\n if (accountDataStored) {\r\n const accountData = JSON.parse(accountDataStored) as IAccountData;\r\n this.UPDATE_ACCOUNT_DATA(accountData);\r\n }\r\n // Note: retro compatibility\r\n else if (localStorage.getItem(AuthStore.STORE_KEY)) {\r\n const sessionStored: string = localStorage.getItem(AuthStore.STORE_KEY) as string;\r\n const session: IAuthSession = JSON.parse(sessionStored) as IAuthSession;\r\n if (session.accountData) this.UPDATE_ACCOUNT_DATA(session.accountData as IAccountData);\r\n }\r\n } catch (error: any) {\r\n console.error(error);\r\n this.ClearStorage();\r\n }\r\n }\r\n}\r\n","import { IRingsService } from \"@api/contracts/odata/IRingsService\";\r\nimport { ICountriesService } from \"@api/contracts/webapi/ICountriesService\";\r\nimport { IRing } from \"@api/models/market/IRing\";\r\nimport { ICountry } from \"@api/models/shared/ICountry\";\r\nimport i18n from \"@market/i18n\";\r\nimport { store } from \"@market/stores\";\r\nimport { IAppDataStore } from \"@market/stores/contracts/IAppDataStore\";\r\nimport { IListOption } from \"@pigeon/models/IListOption\";\r\nimport { ICountryManager } from \"@pigeon/services/contracts/ICountryManager\";\r\nimport { IRingManager } from \"@pigeon/services/contracts/IRingManager\";\r\nimport { cid, container, Inject } from \"inversify-props\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"data\" = \"data\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class AppDataStore extends VuexModule implements IAppDataStore {\r\n // WARNING: Don't use Inject decorator here because VuexModuleDecorator will transform it (into store state)\r\n // @Inject()\r\n // private countriesService: ICountriesService;\r\n // @Inject()\r\n // private countryManager: ICountryManager;\r\n // @Inject()\r\n // private ringsService: IRingsService;\r\n // @Inject()\r\n // private ringManager: IRingManager;\r\n\r\n countries: ICountry[] = [];\r\n ringAreas: IRing[] = [];\r\n\r\n get Countries(): ICountry[] {\r\n return this.countries;\r\n }\r\n\r\n get CountryOptions(): IListOption[] {\r\n if (!this.Countries || !this.Countries.length) return [];\r\n\r\n return this.Countries.map((c) => {\r\n return { label: c.label, value: c.code } as IListOption;\r\n });\r\n }\r\n\r\n get RingAreas(): IRing[] {\r\n return this.ringAreas;\r\n }\r\n\r\n get RingAreasGroupOptions(): { [key: string]: IListOption[] } {\r\n const ringManager = container.get(cid.RingManager);\r\n return ringManager.BuildRingAreasGroupOptions(this.ringAreas);\r\n }\r\n\r\n @Mutation\r\n SET_COUNTRIES_DATA(countriesData: ICountry[]): void {\r\n this.countries = countriesData;\r\n }\r\n\r\n @Mutation\r\n SET_RING_AREAS_DATA(ringAreasData: IRing[]): void {\r\n this.ringAreas = ringAreasData;\r\n }\r\n\r\n @Action\r\n async InitializeCountries(): Promise {\r\n const countriesService = container.get(cid.CountriesService);\r\n const countryManager = container.get(cid.CountryManager);\r\n\r\n try {\r\n const { data } = await countriesService.FetchAll(i18n.locale);\r\n this.SET_COUNTRIES_DATA(data);\r\n } catch (error: any) {\r\n console.error(error);\r\n const data = countryManager.CountriesHardcoded;\r\n this.SET_COUNTRIES_DATA(data);\r\n }\r\n }\r\n\r\n @Action\r\n async InitializeRingAreas(): Promise {\r\n const ringsService = container.get(cid.RingsService);\r\n const ringManager = container.get(cid.RingManager);\r\n\r\n try {\r\n const { data } = await ringsService.FetchAll();\r\n this.SET_RING_AREAS_DATA(data.value);\r\n } catch (error: any) {\r\n console.error(error);\r\n const data = ringManager.RingAreasHardcoded;\r\n this.SET_RING_AREAS_DATA(data);\r\n }\r\n }\r\n}\r\n","import { ISalesService } from \"@api/contracts/odata/ISalesService\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { store } from \"@market/stores\";\r\nimport { authStore } from \"@market/stores/App.store.modules\";\r\nimport { IApprovalStore } from \"@market/stores/contracts/IApprovalStore\";\r\nimport { cid, container, Inject } from \"inversify-props\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"approval\" = \"approval\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class ApprovalStore extends VuexModule implements IApprovalStore {\r\n // WARNING: Don't use Inject decorator here because VuexModuleDecorator will transform it (into store state)\r\n // @Inject()\r\n // private salesService: ISalesService;\r\n\r\n pendingApprovalSales: ISale[] = [];\r\n approvedSales: ISale[] = [];\r\n disapprovedSales: ISale[] = [];\r\n showPendingApprovalTask: boolean = true;\r\n\r\n get pendingApprovalSalesCount(): number {\r\n return this.pendingApprovalSales?.length ?? 0;\r\n }\r\n\r\n get approvedSalesCount(): number {\r\n return this.approvedSales?.length ?? 0;\r\n }\r\n\r\n get disapprovedSalesCount(): number {\r\n return this.disapprovedSales?.length ?? 0;\r\n }\r\n\r\n @Mutation\r\n SET_PENDING_APPROVAL_SALES(data: ISale[]): void {\r\n this.pendingApprovalSales = data;\r\n }\r\n\r\n @Mutation\r\n SET_APPROVED_SALES(data: ISale[]): void {\r\n this.approvedSales = data;\r\n }\r\n\r\n @Mutation\r\n SET_DISAPPROVED_SALES(data: ISale[]): void {\r\n this.disapprovedSales = data;\r\n }\r\n\r\n @Mutation\r\n SET_SHOW_PENDING_APPROVAL_TASK(show: boolean): void {\r\n this.showPendingApprovalTask = show;\r\n }\r\n\r\n @Action\r\n public DismissPendingApprovalTask() {\r\n this.showPendingApprovalTask = false;\r\n }\r\n\r\n @Action\r\n public async FetchApprovalSales(): Promise {\r\n const salesService = container.get(cid.SalesService);\r\n\r\n if (authStore.IsApprover) {\r\n salesService.FetchAllPendingApprovalSales().then((response) => {\r\n this.SET_PENDING_APPROVAL_SALES(response.data.value);\r\n });\r\n\r\n salesService.FetchAllApprovedSales().then((response) => {\r\n this.SET_APPROVED_SALES(response.data.value);\r\n });\r\n\r\n salesService.FetchAllDisapprovedSales().then((response) => {\r\n this.SET_DISAPPROVED_SALES(response.data.value);\r\n });\r\n }\r\n }\r\n\r\n @Action\r\n public async Reset(): Promise {\r\n this.SET_PENDING_APPROVAL_SALES([]);\r\n this.SET_APPROVED_SALES([]);\r\n this.SET_DISAPPROVED_SALES([]);\r\n }\r\n}\r\n","import { store } from \"@market/stores\";\r\nimport { IAppsStore } from \"@market/stores/contracts/IAppsStore\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"apps\" = \"apps\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class AppsStore extends VuexModule implements IAppsStore {\r\n launcherIsOpen: boolean = false;\r\n\r\n @Mutation\r\n APPS_LAUNCHER(openState: boolean): void {\r\n this.launcherIsOpen = openState;\r\n }\r\n\r\n @Action\r\n ToggleAppsLauncher(): void {\r\n this.APPS_LAUNCHER(!this.launcherIsOpen);\r\n }\r\n\r\n @Action\r\n CloseAppsLauncher(): void {\r\n if (!this.launcherIsOpen) return;\r\n\r\n this.APPS_LAUNCHER(false);\r\n }\r\n\r\n @Action\r\n OpenAppsLauncher(): void {\r\n if (this.launcherIsOpen) return;\r\n\r\n this.APPS_LAUNCHER(true);\r\n }\r\n}\r\n","import { store } from \"@market/stores\";\r\nimport { IAppStore } from \"@market/stores/contracts/IAppStore\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\n// TODO: [Single respnsability]: Merge this store with (futur) userStore\r\nexport const STORE_TOKEN: \"app\" = \"app\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class AppStore extends VuexModule implements IAppStore {\r\n cookiesBanner: boolean = false;\r\n isAutomaticTranslationDismissed: boolean = false;\r\n snoozedDateEndVendorConnectedAccount: Date | null = null;\r\n referralCode: string | null = null;\r\n\r\n @Mutation\r\n UPDATE_COOKIES_BANNER(hasDisplayed: boolean): void {\r\n this.cookiesBanner = hasDisplayed;\r\n }\r\n\r\n @Mutation\r\n UPDATE_AUTOMATIC_TRANSLATION_ALERT(isDismissed: boolean): void {\r\n this.isAutomaticTranslationDismissed = isDismissed;\r\n }\r\n\r\n @Mutation\r\n UPDATE_SNOOZED_END_DATE_VENDOR_CONNECTED_ACCOUNT(snoozeEndDate: Date) {\r\n this.snoozedDateEndVendorConnectedAccount = snoozeEndDate;\r\n }\r\n\r\n @Mutation\r\n UPDATE_REFERRAL_CODE(referralCode: string) {\r\n this.referralCode = referralCode;\r\n }\r\n\r\n @Action\r\n UpdateCookiesBanner(hasDisplayed: boolean): void {\r\n this.UPDATE_COOKIES_BANNER(hasDisplayed);\r\n }\r\n\r\n @Action\r\n UpdateAutomaticTranslationAlert(isDismissed: boolean): void {\r\n this.UPDATE_AUTOMATIC_TRANSLATION_ALERT(isDismissed);\r\n }\r\n\r\n @Action\r\n UpdateSnoozedEndDateVendorConnectedAccount(snoozeEndDate: Date): void {\r\n this.UPDATE_SNOOZED_END_DATE_VENDOR_CONNECTED_ACCOUNT(snoozeEndDate);\r\n }\r\n\r\n @Action\r\n UpdateReferralCode(referralCode: string): void {\r\n this.UPDATE_REFERRAL_CODE(referralCode);\r\n }\r\n}\r\n","import { SaleTypes } from \"@api/models/market/constants/SaleTypes\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport i18n from \"@market/i18n\";\r\nimport { IPackageCartItem } from \"@market/models/IPackageCartItem\";\r\nimport { IPackageManager } from \"@pigeon/services/contracts/IPackageManager\";\r\nimport { ISaleManager } from \"@pigeon/services/contracts/ISaleManager\";\r\nimport { cid, container } from \"inversify-props\";\r\n\r\nexport class PackageCartItemMapper {\r\n // Warning: Cannot use DI with static with property injection\r\n // @Inject()\r\n // private static saleManager: ISaleManager;\r\n // @Inject()\r\n // private static packageManager: IPackageManager;\r\n\r\n public static Map(sale: ISale): IPackageCartItem {\r\n if (!sale || !sale.id || !sale.package || !sale.packageId || (sale.type === SaleTypes.Bid && !sale.bids?.length))\r\n throw new Error(\"Argument exception\");\r\n\r\n const saleManager = container.get(cid.SaleManager);\r\n const packageManager = container.get(cid.PackageManager);\r\n\r\n const salePackageItem: IPackageCartItem = {\r\n id: sale.id,\r\n product: sale.product,\r\n saleId: sale.id,\r\n sale: sale,\r\n reference: (i18n.t(\"app.package\") + \" \" + i18n.t(`enum.discipline.${sale.package.discipline}`)) as string,\r\n name: sale.package.name,\r\n pictures: packageManager.GetPictures(sale.package),\r\n taxRate: saleManager.CalculateVatRate(sale),\r\n taxAmount: saleManager.CalculateVatAmount(sale),\r\n taxInclusive: sale.vatInclusive,\r\n price: saleManager.CalculateSaleAmountExcludingVat(sale),\r\n total: saleManager.CalculateSaleAmountIncludingVat(sale),\r\n currency: sale.currency,\r\n endDate: sale.endDate ? new Date(sale.endDate) : undefined,\r\n pickUpAddress: sale.pickUpAddress,\r\n pigeonsCount: packageManager.GetPigeonsCount(sale.package),\r\n malesCount: packageManager.GetPigeonsMaleCount(sale.package),\r\n femalesCount: packageManager.GetPigeonsFemaleCount(sale.package),\r\n genderlessesCount: packageManager.GetPigeonsGenderlessCount(sale.package),\r\n juniorsCount: packageManager.GetPigeonsJuniorCount(sale.package),\r\n yearlingsCount: packageManager.GetPigeonsYearlingCount(sale.package),\r\n seniorsCount: packageManager.GetPigeonsSeniorCount(sale.package),\r\n fancierName: sale.package.fancier ? sale.package.fancier.name : \"\"\r\n };\r\n\r\n return salePackageItem;\r\n }\r\n}\r\n","import { SaleTypes } from \"@api/models/market/constants/SaleTypes\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport i18n from \"@market/i18n\";\r\nimport { IPigeonCartItem } from \"@market/models/IPigeonCartItem\";\r\nimport { ISaleManager } from \"@pigeon/services/contracts/ISaleManager\";\r\nimport { cid, container } from \"inversify-props\";\r\n\r\nexport class PigeonCartItemMapper {\r\n // Warning: Cannot use DI with static with property injection\r\n // @Inject()\r\n // private static saleManager: ISaleManager;\r\n\r\n public static Map(sale: ISale): IPigeonCartItem {\r\n if (!sale || !sale.id || !sale.pigeon || !sale.pigeonId || (sale.type === SaleTypes.Bid && !sale.bids?.length))\r\n throw new Error(\"Argument exception\");\r\n\r\n const saleManager = container.get(cid.SaleManager);\r\n const salePigeonItem: IPigeonCartItem = {\r\n id: sale.pigeonId,\r\n product: sale.product,\r\n saleId: sale.id,\r\n sale: sale,\r\n reference: sale.pigeon.ring ?? (i18n.t(\"common.undefined\") as string),\r\n name: sale.pigeon.name,\r\n pictures: sale.pigeon.pictures,\r\n taxRate: saleManager.CalculateVatRate(sale),\r\n taxAmount: saleManager.CalculateVatAmount(sale),\r\n taxInclusive: sale.vatInclusive,\r\n price: saleManager.CalculateSaleAmountExcludingVat(sale),\r\n total: saleManager.CalculateSaleAmountIncludingVat(sale),\r\n currency: sale.currency,\r\n endDate: sale.endDate ? new Date(sale.endDate) : undefined,\r\n pickUpAddress: sale.pickUpAddress,\r\n sex: sale.pigeon.sex,\r\n birthYear: sale.pigeon.birthYear,\r\n fancierName: sale.pigeon.fancier ? sale.pigeon.fancier.name : \"\"\r\n };\r\n\r\n if (sale.type === SaleTypes.Bid) {\r\n const bidNumber: number = sale.bids ? sale.bids.length + 1 : 1;\r\n salePigeonItem.bidNumber = bidNumber;\r\n }\r\n\r\n return salePigeonItem;\r\n }\r\n}\r\n","import { PackageCartItemMapper } from \"@api/mappers/PackageCartItemMapper\";\r\nimport { PigeonCartItemMapper } from \"@api/mappers/PigeonCarttemMapper\";\r\nimport { ProductTypes } from \"@api/models/market/constants/ProductTypes\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { ICartItem } from \"@market/models/ICartItem\";\r\n\r\nexport class CartItemMapper {\r\n public static Map(sale: ISale): ICartItem {\r\n if (!sale || !sale.id) throw new Error(\"Argument exception\");\r\n\r\n if (sale.product === ProductTypes.Pigeon) {\r\n return PigeonCartItemMapper.Map(sale);\r\n } else if (sale.product === ProductTypes.Package) {\r\n return PackageCartItemMapper.Map(sale);\r\n } else {\r\n throw new Error(\"Unsupported product type mapping\");\r\n }\r\n }\r\n}\r\n","import { ISaleManager } from \"@/Pigeon/services/contracts/ISaleManager\";\r\nimport { ICartsService } from \"@api/contracts/odata/ICartsService\";\r\nimport { ISalesService } from \"@api/contracts/odata/ISalesService\";\r\nimport { CartItemMapper } from \"@api/mappers/CartItemMapper\";\r\nimport { CurrencyTypes } from \"@api/models/market/constants/CurrencyTypes\";\r\nimport { ICart } from \"@api/models/market/ICart\";\r\nimport { ICartSale } from \"@api/models/market/ICartSale\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { IODataValueResponse } from \"@api/models/shared/IODataValueResponse\";\r\nimport { ICartItem } from \"@market/models/ICartItem\";\r\nimport { store } from \"@market/stores\";\r\nimport { authStore, checkoutStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { ICartState } from \"@market/stores/contracts/ICartState\";\r\nimport { ICartStore } from \"@market/stores/contracts/ICartStore\";\r\nimport { HasFunctionalityCookieConsent } from \"@pigeon/components/layout/TheBannerCookies\";\r\nimport { SaleManager } from \"@pigeon/services/SaleManager\";\r\nimport { AxiosPromise } from \"axios\";\r\nimport { cid, container, Inject } from \"inversify-props\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"cart\" = \"cart\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class CartStore extends VuexModule implements ICartStore {\r\n // WARNING: Don't use Inject decorator here because VuexModuleDecorator will transform it (into store state)\r\n // @Inject()\r\n // private salesService: ISalesService;\r\n // @Inject()\r\n // private cartsService: ICartsService;\r\n\r\n static readonly STORE_KEY: string = \"cart\";\r\n cartId: number | null = null;\r\n checkoutSessionId: string | null = null;\r\n items: ICartItem[] = [];\r\n\r\n get CartCount(): number {\r\n if (!this.items || !this.items.length) {\r\n return 0;\r\n }\r\n\r\n return this.items.length;\r\n }\r\n\r\n get CartTotal(): number {\r\n if (!this.items) return 0;\r\n\r\n let total: number = 0;\r\n this.items.forEach((item) => {\r\n total += item.total;\r\n });\r\n\r\n return total;\r\n }\r\n\r\n @Mutation\r\n RESET(): void {\r\n this.cartId = null;\r\n this.checkoutSessionId = null;\r\n this.items = [];\r\n }\r\n\r\n @Mutation\r\n SET_CHECKOUT_SESSION_ID(checkoutSessionId: string): void {\r\n if (!checkoutSessionId) return;\r\n\r\n this.checkoutSessionId = checkoutSessionId;\r\n }\r\n\r\n @Mutation\r\n SET_CART_ID(cartId: number): void {\r\n if (!cartId) return;\r\n\r\n this.cartId = cartId;\r\n }\r\n\r\n @Mutation\r\n SET_ITEMS(items: ICartItem[]): void {\r\n if (!items) return;\r\n\r\n this.items = items;\r\n }\r\n\r\n @Mutation\r\n ADD_ITEM(item: ICartItem): void {\r\n if (!item) return;\r\n\r\n this.items.push(item);\r\n }\r\n\r\n @Mutation\r\n REMOVE_ITEM(itemId: number): void {\r\n if (!itemId) return;\r\n\r\n this.items = this.items.filter((item) => item.id != itemId);\r\n }\r\n\r\n @Action\r\n Restore() {\r\n // Check if the store exists in storage\r\n const cartStored = localStorage.getItem(CartStore.STORE_KEY);\r\n if (!cartStored) {\r\n this.Reset();\r\n return;\r\n }\r\n\r\n try {\r\n const cart: ICartState = JSON.parse(cartStored);\r\n if (typeof cart.items === \"undefined\") throw new Error();\r\n\r\n this.SET_ITEMS(cart.items);\r\n if (cart.cartId) this.SET_CART_ID(cart.cartId);\r\n if (cart.checkoutSessionId) this.SET_CHECKOUT_SESSION_ID(cart.checkoutSessionId);\r\n } catch (error: any) {\r\n console.error(error);\r\n // Potentially corrupted data\r\n // Clear stored data\r\n this.ClearStorage();\r\n }\r\n }\r\n\r\n @Action\r\n StoreState(): void {\r\n if (!HasFunctionalityCookieConsent()) return;\r\n\r\n const state: ICartState = { cartId: this.cartId, checkoutSessionId: this.checkoutSessionId, items: this.items };\r\n localStorage.setItem(CartStore.STORE_KEY, JSON.stringify(state));\r\n }\r\n\r\n @Action\r\n ClearStorage(): void {\r\n localStorage.removeItem(CartStore.STORE_KEY);\r\n }\r\n\r\n @Action\r\n UpdateCheckoutSessionId(checkoutSessionId: string): void {\r\n if (!checkoutSessionId || checkoutSessionId == this.checkoutSessionId) return;\r\n\r\n this.SET_CHECKOUT_SESSION_ID(checkoutSessionId);\r\n }\r\n\r\n @Action\r\n AddItem(sale: ISale): AxiosPromise> {\r\n const salesService = container.get(cid.SalesService);\r\n return salesService.GetIsAvailableForPurchase(sale.id as number).then(async (availableForPurchaseResponse) => {\r\n const isAvailableForPurchase = availableForPurchaseResponse.data.value;\r\n\r\n if (isAvailableForPurchase) {\r\n const item: ICartItem = CartItemMapper.Map(sale);\r\n\r\n if (!this.items.includes(item)) {\r\n this.ADD_ITEM(item);\r\n this.StoreState();\r\n await this.InsertCart();\r\n }\r\n }\r\n\r\n return availableForPurchaseResponse;\r\n });\r\n }\r\n\r\n @Action\r\n async RemoveItem(itemId: number): Promise {\r\n const itemIsInCart = this.items.some((item) => item.id == itemId);\r\n\r\n if (itemIsInCart) {\r\n this.REMOVE_ITEM(itemId);\r\n this.StoreState();\r\n await this.InsertCart();\r\n }\r\n\r\n if (!this.items || !this.items.length) {\r\n this.Reset();\r\n checkoutStore.Reset();\r\n }\r\n }\r\n\r\n @Action\r\n Reset(): void {\r\n this.RESET();\r\n this.ClearStorage();\r\n }\r\n\r\n @Action\r\n async InsertCart(): Promise {\r\n const cartsService = container.get(cid.CartsService);\r\n const saleManager = container.get(cid.SaleManager);\r\n\r\n const cartItems: ICartSale[] = this.items.map((i) => {\r\n return { saleId: i.saleId } as ICartSale;\r\n });\r\n\r\n let total: number = 0;\r\n this.items.forEach((item) => {\r\n total += saleManager.CalculateSaleAmount(item.sale);\r\n });\r\n\r\n if (!cartItems || !cartItems.length || total < 0) return Promise.resolve();\r\n\r\n const cart: ICart = {\r\n cartItems: cartItems,\r\n checkoutSessionId: checkoutStore.session.checkoutSessionId ?? null,\r\n total: total,\r\n currency: CurrencyTypes.Euro,\r\n userIpAddress: undefined,\r\n userId: authStore.IsMember && checkoutStore.session ? checkoutStore.session.userId : undefined,\r\n guestId: !authStore.IsMember && checkoutStore.session ? checkoutStore.session.guestId : undefined,\r\n user: undefined,\r\n guest: undefined,\r\n createdUrl: window.location.href,\r\n createdAt: new Date().toISOString(),\r\n createdBy: userStore.user ? userStore.user?.userName : undefined\r\n };\r\n\r\n const { data } = await cartsService.Insert(cart);\r\n if (data.id) this.SET_CART_ID(data.id);\r\n }\r\n}\r\n","import { store } from \"@market/stores\";\r\nimport { authStore } from \"@market/stores/App.store.modules\";\r\nimport { ISalesCatalogStore } from \"@market/stores/contracts/ISalesCatalogStore\";\r\nimport { CatalogFilterTypes } from \"@pigeon/enumerations/CatalogFilterTypes\";\r\nimport { CatalogSortDirectionTypes } from \"@pigeon/enumerations/CatalogSortDirectionTypes\";\r\nimport { CatalogSortTypes } from \"@pigeon/enumerations/CatalogSortTypes\";\r\nimport { CatalogViewTypes } from \"@pigeon/enumerations/CatalogViewTypes\";\r\nimport { ISalesCatalog } from \"@pigeon/models/ICatalog\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"salesCatalog\" = \"salesCatalog\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class SalesCatalogStore extends VuexModule implements ISalesCatalogStore {\r\n DEFAULT_MINIMUM_PRICE: number = 0;\r\n DEFAULT_MAXIMUM_PRICE: number = 10_000;\r\n DEFAULT_STEP_PRICE: number = 100;\r\n\r\n catalog: ISalesCatalog = {\r\n id: \"sales\",\r\n page: 1,\r\n pageSize: 4,\r\n sortType: `${CatalogSortTypes.SaleEndDate};${CatalogSortDirectionTypes.Ascending}`,\r\n viewType: CatalogViewTypes.Pane,\r\n filters: new Map(),\r\n selectedFavoriteSales: [],\r\n selectedVendorFilter: [],\r\n selectedFlagApprovedFilter: [],\r\n selectedFlagVoucherFilter: [],\r\n selectedStatusFilter: [],\r\n selectedStatusFilterForPublicSales: [],\r\n selectedStatusFilterForMySales: [],\r\n selectedCurrentDateFilter: [],\r\n selectedCurrentDateFilterForPublicSales: [],\r\n selectedStartDateFilter: [],\r\n selectedEndDateFilter: [],\r\n selectedCreatedDateFilter: [],\r\n selectedSexFilter: [],\r\n selectedAgeFilter: [],\r\n selectedDisciplineFilter: [],\r\n selectedSaleTypeFilter: [],\r\n selectedProductTypeFilter: [],\r\n selectedCountryFilter: [],\r\n selectedAuctionFilter: [],\r\n selectedPaymentFilter: [],\r\n selectedTransferFilter: [],\r\n selectedPriceMininimumFilter: this.DEFAULT_MINIMUM_PRICE,\r\n selectedPriceMaximumFilter: this.DEFAULT_MAXIMUM_PRICE,\r\n selectedShopFilter: [],\r\n selectedFlagSharedCatalogFilter: [],\r\n selectedFlagArchivedCatalogFilter: []\r\n };\r\n\r\n get HasSomeFilters(): boolean {\r\n return (\r\n this.catalog.selectedFavoriteSales?.length > 0 ||\r\n this.catalog.selectedVendorFilter?.length > 0 ||\r\n this.catalog.selectedFlagApprovedFilter?.length > 0 ||\r\n this.catalog.selectedFlagVoucherFilter?.length > 0 ||\r\n this.catalog.selectedStatusFilter?.length > 0 ||\r\n this.catalog.selectedStatusFilterForPublicSales?.length > 0 ||\r\n this.catalog.selectedStatusFilterForMySales?.length > 0 ||\r\n this.catalog.selectedCurrentDateFilter?.length > 0 ||\r\n this.catalog.selectedCurrentDateFilterForPublicSales?.length > 0 ||\r\n this.catalog.selectedStartDateFilter?.length > 0 ||\r\n this.catalog.selectedEndDateFilter?.length > 0 ||\r\n this.catalog.selectedCreatedDateFilter?.length > 0 ||\r\n this.catalog.selectedSexFilter?.length > 0 ||\r\n this.catalog.selectedAgeFilter?.length > 0 ||\r\n this.catalog.selectedDisciplineFilter?.length > 0 ||\r\n this.catalog.selectedSaleTypeFilter?.length > 0 ||\r\n this.catalog.selectedProductTypeFilter?.length > 0 ||\r\n this.catalog.selectedCountryFilter?.length > 0 ||\r\n this.catalog.selectedAuctionFilter?.length > 0 ||\r\n this.catalog.selectedPaymentFilter?.length > 0 ||\r\n this.catalog.selectedTransferFilter?.length > 0 ||\r\n this.catalog.selectedShopFilter?.length > 0 ||\r\n this.catalog.selectedFlagSharedCatalogFilter?.length > 0 ||\r\n this.catalog.selectedFlagArchivedCatalogFilter?.length > 0 ||\r\n this.catalog.selectedPriceMininimumFilter != this.DEFAULT_MINIMUM_PRICE ||\r\n this.catalog.selectedPriceMaximumFilter != this.DEFAULT_MAXIMUM_PRICE\r\n );\r\n }\r\n\r\n @Mutation\r\n public GO_TO_PAGE(pageIndex: number) {\r\n this.catalog.page = pageIndex;\r\n }\r\n\r\n @Mutation\r\n public SELECT_PAGE_SIZE(pageSize: number) {\r\n this.catalog.pageSize = pageSize;\r\n }\r\n\r\n @Mutation\r\n public SELECT_SORT_TYPE(sortType: string) {\r\n this.catalog.sortType = sortType;\r\n }\r\n\r\n @Mutation\r\n public SELECT_VIEW_TYPE(viewType: CatalogViewTypes) {\r\n this.catalog.viewType = viewType;\r\n }\r\n\r\n @Mutation\r\n public SET_FILTERS(filters: Map) {\r\n this.catalog.filters = filters;\r\n }\r\n\r\n @Mutation\r\n public CLEAR_FILTERS() {\r\n this.catalog.selectedFavoriteSales = [];\r\n this.catalog.selectedVendorFilter = [];\r\n this.catalog.selectedFlagApprovedFilter = [];\r\n this.catalog.selectedFlagVoucherFilter = [];\r\n this.catalog.selectedStatusFilter = [];\r\n this.catalog.selectedStatusFilterForPublicSales = [];\r\n this.catalog.selectedStatusFilterForMySales = [];\r\n this.catalog.selectedSexFilter = [];\r\n this.catalog.selectedAgeFilter = [];\r\n this.catalog.selectedCurrentDateFilter = [];\r\n this.catalog.selectedCurrentDateFilterForPublicSales = [];\r\n this.catalog.selectedStartDateFilter = [];\r\n this.catalog.selectedEndDateFilter = [];\r\n this.catalog.selectedCreatedDateFilter = [];\r\n this.catalog.selectedDisciplineFilter = [];\r\n this.catalog.selectedSaleTypeFilter = [];\r\n this.catalog.selectedProductTypeFilter = [];\r\n this.catalog.selectedCountryFilter = [];\r\n this.catalog.selectedAuctionFilter = [];\r\n this.catalog.selectedPaymentFilter = [];\r\n this.catalog.selectedTransferFilter = [];\r\n this.catalog.selectedPriceMininimumFilter = this.DEFAULT_MINIMUM_PRICE;\r\n this.catalog.selectedPriceMaximumFilter = this.DEFAULT_MAXIMUM_PRICE;\r\n this.catalog.selectedShopFilter = [];\r\n }\r\n\r\n @Action\r\n public GoToPage(pageIndex: number) {\r\n if (pageIndex <= 0) return;\r\n if (this.catalog.page === pageIndex) return;\r\n\r\n this.GO_TO_PAGE(pageIndex);\r\n }\r\n\r\n @Action\r\n public SelectPageSize(pageSize: number) {\r\n if (this.catalog.pageSize === pageSize) return;\r\n\r\n this.SELECT_PAGE_SIZE(pageSize);\r\n }\r\n\r\n @Action\r\n public SelectSortType(sortType: string) {\r\n if (this.catalog.sortType === sortType) return;\r\n\r\n this.SELECT_SORT_TYPE(sortType);\r\n }\r\n\r\n @Action\r\n public SelectViewType(viewType: CatalogViewTypes) {\r\n if (this.catalog.viewType === viewType) return;\r\n\r\n this.SELECT_VIEW_TYPE(viewType);\r\n }\r\n\r\n @Action\r\n public Filter() {\r\n const filters: Map = new Map();\r\n // Business rule: Can filter by status only for admin\r\n // Business rule: Can filter by status for vendor but only for their sales\r\n // Business rule: Can filter by status for member but only where they have put a bid / bought the sales\r\n if (authStore.IsAdministrator || authStore.IsApprover) {\r\n if (this.catalog.selectedStatusFilter.length)\r\n filters.set(CatalogFilterTypes.Status, this.catalog.selectedStatusFilter);\r\n } else {\r\n if (authStore.IsVendor) {\r\n if (this.catalog.selectedStatusFilterForMySales.length)\r\n filters.set(CatalogFilterTypes.Status, this.catalog.selectedStatusFilterForMySales);\r\n }\r\n if (authStore.IsMember) {\r\n if (this.catalog.selectedStatusFilterForPublicSales.length)\r\n filters.set(CatalogFilterTypes.Status, this.catalog.selectedStatusFilterForPublicSales);\r\n }\r\n }\r\n\r\n // Business rule: Can filter by flag approved only for admin\r\n // Business Rule: Can filter by expired / scheduled only for admin\r\n // Business rule: Can filter by flag approved for vendor but only for their sales\r\n // Business Rule: Can filter by expired / scheduled for vendor but only for their sales\r\n if (authStore.IsAdministrator || authStore.IsApprover || authStore.IsVendor) {\r\n if (this.catalog.selectedFlagApprovedFilter.length)\r\n filters.set(CatalogFilterTypes.FlagApproved, this.catalog.selectedFlagApprovedFilter);\r\n if (this.catalog.selectedPaymentFilter.length)\r\n filters.set(CatalogFilterTypes.PaymentStatus, this.catalog.selectedPaymentFilter);\r\n if (this.catalog.selectedTransferFilter.length)\r\n filters.set(CatalogFilterTypes.TransferStatus, this.catalog.selectedTransferFilter);\r\n if (this.catalog.selectedCurrentDateFilter.length) {\r\n filters.set(CatalogFilterTypes.StartDateLowerThat, [new Date().toISOString()]);\r\n filters.set(CatalogFilterTypes.EndDateGreaterOrEqualAt, [new Date().toISOString()]);\r\n }\r\n if (this.catalog.selectedStartDateFilter.length)\r\n filters.set(CatalogFilterTypes.StartDateGreaterOrEqualAt, this.catalog.selectedStartDateFilter);\r\n if (this.catalog.selectedEndDateFilter.length)\r\n filters.set(CatalogFilterTypes.EndDateLowerThat, this.catalog.selectedEndDateFilter);\r\n\r\n if (this.catalog.selectedCreatedDateFilter.length) {\r\n filters.set(CatalogFilterTypes.CreatedDateBetween, this.catalog.selectedCreatedDateFilter);\r\n }\r\n }\r\n\r\n if (authStore.IsVendor && !(authStore.IsAdministrator || authStore.IsApprover)) {\r\n if (this.catalog.selectedVendorFilter.length)\r\n filters.set(CatalogFilterTypes.Vendor, this.catalog.selectedVendorFilter);\r\n }\r\n\r\n if (this.catalog.selectedCurrentDateFilterForPublicSales.length) {\r\n filters.set(CatalogFilterTypes.StartDateLowerThat, [new Date().toISOString()]);\r\n filters.set(CatalogFilterTypes.EndDateGreaterOrEqualAt, [new Date().toISOString()]);\r\n }\r\n if (this.catalog.selectedFavoriteSales.length)\r\n filters.set(CatalogFilterTypes.Favorite, this.catalog.selectedFavoriteSales);\r\n if (this.catalog.selectedSexFilter.length) filters.set(CatalogFilterTypes.Sex, this.catalog.selectedSexFilter);\r\n if (this.catalog.selectedAgeFilter.length) filters.set(CatalogFilterTypes.Age, this.catalog.selectedAgeFilter);\r\n if (this.catalog.selectedDisciplineFilter.length)\r\n filters.set(CatalogFilterTypes.Discipline, this.catalog.selectedDisciplineFilter);\r\n if (this.catalog.selectedFlagVoucherFilter.length)\r\n filters.set(CatalogFilterTypes.FlagVoucher, this.catalog.selectedFlagVoucherFilter);\r\n if (this.catalog.selectedSaleTypeFilter.length)\r\n filters.set(CatalogFilterTypes.SaleType, this.catalog.selectedSaleTypeFilter);\r\n if (this.catalog.selectedProductTypeFilter.length)\r\n filters.set(CatalogFilterTypes.ProductType, this.catalog.selectedProductTypeFilter);\r\n if (this.catalog.selectedCountryFilter.length)\r\n filters.set(CatalogFilterTypes.Country, this.catalog.selectedCountryFilter);\r\n if (this.catalog.selectedAuctionFilter.length)\r\n filters.set(CatalogFilterTypes.Auction, this.catalog.selectedAuctionFilter);\r\n if (this.catalog.selectedShopFilter.length) filters.set(CatalogFilterTypes.Shop, this.catalog.selectedShopFilter);\r\n if (this.catalog.selectedFlagSharedCatalogFilter.length)\r\n filters.set(CatalogFilterTypes.FlagSharedCatalog, this.catalog.selectedFlagSharedCatalogFilter);\r\n if (this.catalog.selectedFlagArchivedCatalogFilter.length)\r\n filters.set(CatalogFilterTypes.FlagArchived, this.catalog.selectedFlagArchivedCatalogFilter);\r\n\r\n if (\r\n this.catalog.selectedPriceMininimumFilter &&\r\n this.catalog.selectedPriceMininimumFilter > this.DEFAULT_MINIMUM_PRICE\r\n )\r\n filters.set(CatalogFilterTypes.PriceMin, [this.catalog.selectedPriceMininimumFilter.toString()]);\r\n if (this.catalog.selectedPriceMaximumFilter && this.catalog.selectedPriceMaximumFilter < this.DEFAULT_MAXIMUM_PRICE)\r\n filters.set(CatalogFilterTypes.PriceMax, [this.catalog.selectedPriceMaximumFilter.toString()]);\r\n\r\n this.SET_FILTERS(filters);\r\n }\r\n\r\n @Action\r\n public ClearFilters() {\r\n this.CLEAR_FILTERS();\r\n }\r\n}\r\n","import { ICheckoutSessionsService } from \"@api/contracts/odata/ICheckoutSessionsService\";\r\nimport { ICheckoutSession } from \"@api/models/market/ICheckoutSession\";\r\nimport { ICheckoutSessionCustomer } from \"@api/models/market/ICheckoutSessionCustomer\";\r\nimport { ICheckoutSessionPayment } from \"@api/models/market/ICheckoutSessionPayment\";\r\nimport { ICheckoutSessionShipping } from \"@api/models/market/ICheckoutSessionShipping\";\r\nimport { IGuest } from \"@api/models/market/IGuest\";\r\nimport { IUser } from \"@api/models/market/IUser\";\r\nimport { IUserData } from \"@api/models/market/IUserData\";\r\nimport { CheckoutStepNames } from \"@market/enumerations/CheckoutStepNames\";\r\nimport { ICartItem } from \"@market/models/ICartItem\";\r\nimport { store } from \"@market/stores\";\r\nimport { authStore, cartStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { ICheckoutStore } from \"@market/stores/contracts/ICheckoutStore\";\r\nimport { HasFunctionalityCookieConsent } from \"@pigeon/components/layout/TheBannerCookies\";\r\nimport { ICheckoutManager } from \"@pigeon/services/contracts/ICheckoutManager\";\r\nimport { uiBus } from \"@pigeon/Ui.bus\";\r\nimport { cid, container, Inject } from \"inversify-props\";\r\nimport { cloneDeep, debounce } from \"lodash-es\";\r\nimport { v4 as UUIDv4 } from \"uuid\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"checkout\" = \"checkout\";\r\n\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class CheckoutStore extends VuexModule implements ICheckoutStore {\r\n // WARNING: Don't use Inject decorator here because VuexModuleDecorator will transform it (into store state)\r\n // @Inject()\r\n // private checkoutSessionsService: ICheckoutSessionsService;\r\n // @Inject()\r\n // private checkoutManager: ICheckoutManager;\r\n\r\n static readonly STORE_KEY: string = \"checkout\";\r\n session: ICheckoutSession = {\r\n checkoutDate: null,\r\n checkoutSessionId: null,\r\n currentStepName: null,\r\n customer: null,\r\n shipping: null,\r\n payment: null,\r\n cartItems: [],\r\n cartId: undefined\r\n };\r\n\r\n @Mutation\r\n private INIT_CHECKOUT() {\r\n this.session = {\r\n checkoutDate: new Date().toISOString(),\r\n checkoutSessionId: UUIDv4(),\r\n currentStepName: \"Cart\",\r\n customerId: undefined,\r\n customer: null,\r\n shippingId: undefined,\r\n shipping: null,\r\n paymentId: undefined,\r\n payment: null,\r\n cartId: cartStore.cartId,\r\n cartItems: cartStore.items ?? [],\r\n userId: authStore.IsAuthenticated ? userStore?.user?.id : undefined,\r\n guestId: undefined\r\n };\r\n }\r\n\r\n @Mutation\r\n public INIT_CUSTOMER() {\r\n const user = userStore.user;\r\n\r\n // prettier-ignore\r\n this.session.customer = authStore.IsMember && user\r\n ? { firstname: user.firstname, lastname: user.lastname, countryCode: user.countryCode, email: user.email, phoneNumber: user.phoneNumber, corporation: user.corporation, userId: this.session.userId }\r\n : { firstname: undefined, lastname: undefined, countryCode: undefined, email: \"\", phoneNumber: undefined, corporation: undefined, guestId: this.session.guestId };\r\n }\r\n\r\n @Mutation\r\n public INIT_SHIPPING(useDeliveryName = false) {\r\n const user = userStore.user;\r\n const GetDeliveryName = (useDeliveryName: boolean, user: IUserData | null) =>\r\n useDeliveryName && user ? `${user.firstname} ${user.lastname}` : undefined;\r\n\r\n // prettier-ignore\r\n this.session.shipping = authStore.IsMember && user\r\n ? { method: null, deliveryName: GetDeliveryName(useDeliveryName, user), deliveryAddress: userStore.DefaultDeliveryAddress, deliveryServices: [], userId: this.session.userId }\r\n : { method: null, deliveryName: undefined, deliveryAddress: null, deliveryServices: [], guestId: this.session.guestId };\r\n }\r\n\r\n @Mutation\r\n public INIT_BILLING() {\r\n // prettier-ignore\r\n this.session.payment = authStore.IsMember && userStore.DefaultAddress\r\n ? { method: null, address: userStore.DefaultBillingAddress, userId: this.session.userId }\r\n : { method: null, address: null, guestId: this.session.guestId };\r\n }\r\n\r\n @Mutation\r\n private SET_CHECKOUT_SESSION_ID(uniqueId: string) {\r\n this.session.checkoutSessionId = uniqueId;\r\n }\r\n\r\n @Mutation\r\n RESTORE(session: ICheckoutSession): void {\r\n if (!session) return;\r\n\r\n this.session = session;\r\n }\r\n\r\n @Mutation\r\n UPDATE_STEP(stepName: string): void {\r\n this.session.currentStepName = stepName;\r\n }\r\n\r\n @Mutation\r\n RESET(): void {\r\n this.session = {\r\n checkoutDate: null,\r\n checkoutSessionId: null,\r\n currentStepName: null,\r\n customerId: undefined,\r\n customer: null,\r\n shippingId: undefined,\r\n shipping: null,\r\n paymentId: undefined,\r\n payment: null,\r\n cartId: null,\r\n cartItems: [],\r\n userId: undefined,\r\n guestId: undefined\r\n };\r\n }\r\n\r\n @Mutation\r\n UPDATE_ITEMS(items: ICartItem[]): void {\r\n if (!items) return;\r\n\r\n this.session.cartItems = items;\r\n }\r\n\r\n @Mutation\r\n UPDATE_CUSTOMER(customer: ICheckoutSessionCustomer): void {\r\n if (!customer) return;\r\n\r\n this.session.customer = customer;\r\n }\r\n\r\n @Mutation\r\n UPDATE_USER(user: IUserData) {\r\n this.session.userId = user.id;\r\n this.session.user = user as IUser;\r\n\r\n if (this.session.customer) this.session.customer.userId = user.id;\r\n if (this.session.shipping) this.session.shipping.userId = user.id;\r\n if (this.session.payment) this.session.payment.userId = user.id;\r\n }\r\n\r\n @Mutation\r\n UPDATE_GUEST(guest: IGuest) {\r\n this.session.guestId = guest.id;\r\n this.session.guest = guest;\r\n\r\n if (this.session.customer) this.session.customer.guestId = guest.id;\r\n if (this.session.shipping) this.session.shipping.guestId = guest.id;\r\n if (this.session.payment) this.session.payment.guestId = guest.id;\r\n }\r\n\r\n @Mutation\r\n UPDATE_SHIPPING(shipping: ICheckoutSessionShipping): void {\r\n if (!shipping) return;\r\n\r\n this.session.shipping = shipping;\r\n }\r\n\r\n @Mutation\r\n UPDATE_PAYMENT(payment: ICheckoutSessionPayment): void {\r\n if (!payment) return;\r\n\r\n this.session.payment = payment;\r\n }\r\n\r\n @Action\r\n Restore() {\r\n // Check if the store exists in storage\r\n const checkoutStored = localStorage.getItem(CheckoutStore.STORE_KEY);\r\n if (!checkoutStored) {\r\n this.Reset();\r\n return;\r\n }\r\n\r\n try {\r\n const checkoutSession: ICheckoutSession = JSON.parse(checkoutStored);\r\n this.RESTORE(checkoutSession);\r\n this.InitCheckoutSessionData();\r\n } catch (error: any) {\r\n console.error(error);\r\n // Potentially corrupted data\r\n // Clear stored data\r\n this.ClearStorage();\r\n }\r\n }\r\n\r\n @Action\r\n StoreState(): void {\r\n // Note: Use debounce here for performance reason\r\n debounce(() => {\r\n if (!HasFunctionalityCookieConsent()) return;\r\n\r\n localStorage.setItem(CheckoutStore.STORE_KEY, JSON.stringify(this.session));\r\n }, 2_000)();\r\n }\r\n\r\n @Action\r\n ClearStorage(): void {\r\n localStorage.removeItem(CheckoutStore.STORE_KEY);\r\n }\r\n\r\n @Action\r\n Reset(): void {\r\n this.RESET();\r\n this.ClearStorage();\r\n }\r\n\r\n @Action\r\n private InitCheckoutSessionData(): void {\r\n if (!cartStore.items?.length) return;\r\n\r\n if (!this.session.customer?.email) {\r\n this.INIT_CUSTOMER();\r\n }\r\n\r\n if (!this.session.shipping?.deliveryAddress) {\r\n this.INIT_SHIPPING();\r\n }\r\n\r\n if (!this.session.payment?.address && !this.session.payment?.stripePaymentMethod) {\r\n this.INIT_BILLING();\r\n }\r\n }\r\n\r\n @Action\r\n async Init(): Promise {\r\n if (!cartStore.items?.length) return;\r\n\r\n if (!this.session || !this.session.checkoutSessionId) {\r\n this.INIT_CHECKOUT(); // Note: reset checkout session each time is triggered\r\n this.InitCheckoutSessionData();\r\n this.UPDATE_STEP(CheckoutStepNames.Cart);\r\n await this.InsertCheckoutSession();\r\n\r\n if (!authStore.IsAuthenticated) {\r\n uiBus.on(\"login\", () => this.InitCheckoutSessionData());\r\n }\r\n } else {\r\n this.UPDATE_ITEMS(cartStore.items);\r\n }\r\n }\r\n\r\n @Action\r\n UpdateStep(stepName: string): void {\r\n if (!stepName) return;\r\n\r\n this.UPDATE_STEP(stepName);\r\n }\r\n\r\n @Action\r\n async UpdateItems(items: ICartItem[], shouldStoreState = true): Promise {\r\n this.UPDATE_ITEMS(items);\r\n if (shouldStoreState) this.StoreState();\r\n }\r\n\r\n @Action\r\n UpdateCustomer(customer: ICheckoutSessionCustomer, shouldStoreState = true): void {\r\n if (authStore.IsAuthenticated && userStore.user) {\r\n this.UPDATE_USER(userStore.user);\r\n }\r\n\r\n this.UPDATE_CUSTOMER(customer);\r\n if (shouldStoreState) this.StoreState();\r\n }\r\n\r\n @Action\r\n UpdateShipping(shipping: ICheckoutSessionShipping, shouldStoreState = true): void {\r\n this.UPDATE_SHIPPING(shipping);\r\n if (shouldStoreState) this.StoreState();\r\n }\r\n\r\n @Action\r\n UpdatePayment(payment: ICheckoutSessionPayment, shouldStoreState = true): void {\r\n this.UPDATE_PAYMENT(payment);\r\n if (shouldStoreState) this.StoreState();\r\n }\r\n\r\n @Action\r\n RecycleSession() {\r\n const uniqueid: string = UUIDv4();\r\n this.SET_CHECKOUT_SESSION_ID(uniqueid);\r\n this.StoreState();\r\n }\r\n\r\n @Action\r\n async InsertCheckoutSession(): Promise {\r\n const checkoutSessionsService = container.get(cid.CheckoutSessionsService);\r\n const newSession = cloneDeep(this.session);\r\n this.CleanSessionModel(newSession);\r\n\r\n try {\r\n await checkoutSessionsService.Insert(newSession);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n @Action\r\n async UpdateCheckoutSession(): Promise {\r\n if (!this.session?.checkoutSessionId) return Promise.reject(\"No checkout session id\");\r\n\r\n const checkoutSessionsService = container.get(cid.CheckoutSessionsService);\r\n const modifiedSession = cloneDeep(this.session);\r\n this.CleanSessionModel(modifiedSession);\r\n\r\n try {\r\n await checkoutSessionsService.Update(modifiedSession.checkoutSessionId as string, modifiedSession);\r\n } catch (error) {\r\n console.error(error);\r\n }\r\n }\r\n\r\n @Action\r\n private CleanSessionModel(session: ICheckoutSession): void {\r\n const checkoutManager = container.get(cid.CheckoutManager);\r\n delete session.cartItems;\r\n\r\n if (session.customer) {\r\n if (!session.customer.email) session.customer = null;\r\n }\r\n if (session.shipping) {\r\n if (!session.shipping?.method) session.shipping = null;\r\n if (session.shipping?.deliveryAddress && !checkoutManager.IsValidAddress(session.shipping.deliveryAddress))\r\n session.shipping.deliveryAddress = null;\r\n }\r\n if (session.payment) {\r\n if (!session.payment?.method) session.payment = null;\r\n if (session.payment?.stripePaymentMethod) session.payment.stripePaymentMethod = null;\r\n if (session.payment?.address && !checkoutManager.IsValidAddress(session.payment.address))\r\n session.payment.address = null;\r\n }\r\n\r\n if (session.user) delete session.user;\r\n if (session.guest) delete session.guest;\r\n }\r\n}\r\n","import { ISalesService } from \"@api/contracts/odata/ISalesService\";\r\nimport { IAuction } from \"@api/models/market/IAuction\";\r\nimport { IPayments } from \"@api/models/market/IPayments\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { store } from \"@market/stores\";\r\nimport { IVendorDashboardStore } from \"@market/stores/contracts/IVendorDashboardStore\";\r\nimport { ISaleManager } from \"@pigeon/services/contracts/ISaleManager\";\r\nimport { cid, container, Inject } from \"inversify-props\";\r\nimport { merge } from \"lodash-es\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"vendorDashboard\" = \"vendorDashboard\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class VendorDashboardStore extends VuexModule implements IVendorDashboardStore {\r\n // WARNING: Don't use Inject decorator here because VuexModuleDecorator will transform it (into store state)\r\n // @Inject()\r\n // private salesService: ISalesService\r\n // @Inject()\r\n // private saleManager: ISaleManager\r\n\r\n salesDataset: ISale[] = [];\r\n\r\n @Mutation\r\n RESET_SALES_DATASET(): void {\r\n this.salesDataset = [];\r\n }\r\n\r\n @Mutation\r\n UPDATE_SALES_DATASET(salesToUpdate: ISale[]): void {\r\n for (const saleToUpdate of salesToUpdate) {\r\n const existing = this.salesDataset.find((s) => s.id == saleToUpdate.id);\r\n existing\r\n ? merge(existing, saleToUpdate) // update existing item\r\n : this.salesDataset.push(saleToUpdate); // insert new item\r\n }\r\n }\r\n // Old version\r\n // UPDATE_SALES_DATASET(salesToUpdate: ISale[]): void {\r\n // for (const saleToUpdate of salesToUpdate) {\r\n // const existingIndex = this.salesDataset.findIndex((s) => s.id == saleToUpdate.id);\r\n // existingIndex > -1\r\n // ? this.salesDataset.splice(existingIndex, 1, saleToUpdate) // replace existing item\r\n // : this.salesDataset.push(saleToUpdate); // insert new item\r\n // }\r\n // }\r\n\r\n @Action\r\n ResetDataset(): void {\r\n this.RESET_SALES_DATASET();\r\n }\r\n\r\n @Action\r\n UpdateSalesDataset(sales: ISale[]): void {\r\n if (!sales?.length) return;\r\n\r\n this.UPDATE_SALES_DATASET(sales);\r\n }\r\n\r\n @Action\r\n async EnsureUpdateSalesDatasetForAuctions(auctions: IAuction[]): Promise {\r\n const saleManager = container.get(cid.SaleManager);\r\n const requiredSalesIds: number[] = auctions.flatMap((a) => a.sales.filter((s) => s.id).map((s) => s.id as number));\r\n if (!requiredSalesIds?.length) return;\r\n\r\n const missingSales = await this.FetchMissingSalesProducts(requiredSalesIds);\r\n await saleManager.FetchThenPopulateSalesBidsProperty(missingSales);\r\n this.UpdateSalesDataset(missingSales);\r\n }\r\n\r\n @Action\r\n async EnsureUpdateSalesDatasetForPayments(payments: IPayments): Promise {\r\n const depositSalesIds: number[] = payments.deposits?.filter((d) => d.saleId)?.map((d) => d.saleId as number) ?? [];\r\n const settlementSalesIds: number[] =\r\n payments.settlements?.filter((s) => s.saleId)?.map((s) => s.saleId as number) ?? [];\r\n const stripePayoutSalesIds: number[] =\r\n payments.stripePayouts\r\n ?.filter((sp) => sp.saleIds?.length)\r\n ?.flatMap((sp) => sp.saleIds as string[])\r\n ?.filter((value) => value)\r\n ?.map((value) => parseInt(value)) ?? [];\r\n const payoutSalesIds: number[] =\r\n payments.payouts\r\n ?.filter((p) => p.saleIds?.length)\r\n ?.flatMap((p) => p.saleIds as string[])\r\n ?.filter((value) => value)\r\n ?.map((value) => parseInt(value)) ?? [];\r\n\r\n const paymentSalesIds: number[] = ([] as number[]).concat(\r\n depositSalesIds,\r\n settlementSalesIds,\r\n stripePayoutSalesIds,\r\n payoutSalesIds\r\n );\r\n const requiredSalesIds: number[] = Array.from(new Set(paymentSalesIds));\r\n\r\n if (requiredSalesIds?.length) {\r\n const missingSales = await this.FetchMissingSalesProducts(requiredSalesIds);\r\n this.UpdateSalesDataset(missingSales);\r\n }\r\n }\r\n\r\n @Action\r\n protected async FetchMissingSalesProducts(requiredSalesIds: number[]): Promise {\r\n const salesService = container.get(cid.SalesService);\r\n\r\n requiredSalesIds = Array.from(\r\n new Set(requiredSalesIds.filter((sid) => sid !== undefined && typeof sid !== \"undefined\"))\r\n ); // clean values\r\n if (!requiredSalesIds?.length) return Promise.resolve([]);\r\n\r\n const existingsSalesIds: number[] = this.salesDataset.filter((s) => s.id).map((s) => s.id as number);\r\n const missingSalesIds: number[] = requiredSalesIds.filter((id) => !existingsSalesIds.includes(id));\r\n if (!missingSalesIds?.length) return Promise.resolve([]);\r\n\r\n const { data: missingSalesWithProductData } = await salesService.FetchAllSalesWithProductByIds(missingSalesIds);\r\n\r\n return missingSalesWithProductData.value;\r\n }\r\n}\r\n","import { IBid } from \"@api/models/market/IBid\";\r\nimport { IBiddingOrder } from \"@api/models/market/IBiddingOrder\";\r\nimport { IOrder } from \"@api/models/market/IOrder\";\r\nimport { store } from \"@market/stores\";\r\nimport { IAdminDashboardStore } from \"@market/stores/contracts/IAdminDashboardStore\";\r\nimport VendorDashboardStore from \"@market/stores/modules/dashboard.vendor\";\r\nimport { Action, Module } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"adminDashboard\" = \"adminDashboard\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class AdminDashboardStore extends VendorDashboardStore implements IAdminDashboardStore {\r\n // salesDataset: ISale[] = [];\r\n\r\n @Action\r\n async EnsureUpdateSalesDatasetForBids(bids: IBid[]): Promise {\r\n const requiredSalesIds: number[] = bids.filter((b) => b.saleId).map((b) => b.saleId as number);\r\n if (!requiredSalesIds?.length) return;\r\n\r\n const missingSales = await this.FetchMissingSalesProducts(requiredSalesIds);\r\n this.UpdateSalesDataset(missingSales);\r\n }\r\n\r\n @Action\r\n async EnsureUpdateSalesDatasetForBiddingOrders(biddingOrders: IBiddingOrder[]): Promise {\r\n const requiredSalesIds: number[] = biddingOrders.filter((bo) => bo.saleId).map((bo) => bo.saleId as number);\r\n if (!requiredSalesIds?.length) return;\r\n\r\n const missingSales = await this.FetchMissingSalesProducts(requiredSalesIds);\r\n this.UpdateSalesDataset(missingSales);\r\n }\r\n\r\n @Action\r\n async EnsureUpdateSalesDatasetForOrders(orders: IOrder[]): Promise {\r\n const requiredSalesIds: number[] = orders.flatMap((o) =>\r\n o.lines.filter((ol) => ol.saleId).map((ol) => ol.saleId as number)\r\n );\r\n if (!requiredSalesIds?.length) return;\r\n\r\n const missingSales = await this.FetchMissingSalesProducts(requiredSalesIds);\r\n this.UpdateSalesDataset(missingSales);\r\n }\r\n}\r\n","import { IDepositsService } from \"@api/contracts/odata/IDepositsService\";\r\nimport { IDeposit } from \"@api/models/market/IDeposit\";\r\nimport { store } from \"@market/stores\";\r\nimport { authStore } from \"@market/stores/App.store.modules\";\r\nimport { IDepositStore } from \"@market/stores/contracts/IDepositStore\";\r\nimport { cid, container, Inject } from \"inversify-props\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"deposit\" = \"deposit\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class DepositStore extends VuexModule implements IDepositStore {\r\n // WARNING: Don't use Inject decorator here because VuexModuleDecorator will transform it (into store state)\r\n // @Inject()\r\n // private depositsService: IDepositsService;\r\n\r\n pendingDeposits: IDeposit[] = [];\r\n showPendingDepositTask: boolean = true;\r\n\r\n get pendingDepositsCount(): number {\r\n return this.pendingDeposits?.length ?? 0;\r\n }\r\n\r\n @Mutation\r\n SET_PENDING_DEPOSITS(data: IDeposit[]): void {\r\n this.pendingDeposits = data;\r\n }\r\n\r\n @Mutation\r\n REMOVE_PENDING_DEPOSIT(depositKeyToRemove: string): void {\r\n const depositIndex = this.pendingDeposits.findIndex((s) => s.id == depositKeyToRemove);\r\n\r\n if (depositIndex > -1) {\r\n this.pendingDeposits.splice(depositIndex, 1);\r\n }\r\n }\r\n\r\n @Mutation\r\n SET_SHOW_PENDING_DEPOSIT_TASK(show: boolean): void {\r\n this.showPendingDepositTask = show;\r\n }\r\n\r\n @Action\r\n public DismissPendingDepositTask() {\r\n this.showPendingDepositTask = false;\r\n }\r\n\r\n @Action\r\n public async FetchPendingDeposits(): Promise {\r\n const depositsService = container.get(cid.DepositsService);\r\n\r\n if (authStore.IsAdministrator) {\r\n depositsService.FetchAllPendingProcessing().then((response) => {\r\n this.SET_PENDING_DEPOSITS(response.data.value);\r\n });\r\n }\r\n }\r\n\r\n @Action\r\n public async RemovePendingDeposits(depositKey: string): Promise {\r\n this.REMOVE_PENDING_DEPOSIT(depositKey);\r\n }\r\n\r\n @Action\r\n public async Reset(): Promise {\r\n this.SET_PENDING_DEPOSITS([]);\r\n }\r\n}\r\n","import { store } from \"@market/stores\";\r\nimport {\r\n cartDialogStore,\r\n signInDialogStore,\r\n signOnDialogStore,\r\n signUpDialogStore,\r\n signUpVendorDialogStore\r\n} from \"@market/stores/App.store.modules\";\r\nimport { IDialogsStore } from \"@market/stores/contracts/IDialogsStore\";\r\nimport { Action, Module, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport type dialogStoreToken = \"cartDialog\" | \"signInDialog\" | \"signOnDialog\" | \"signUpDialog\" | \"signUpVendorDialog\";\r\n\r\nexport const STORE_TOKEN: \"dialogs\" = \"dialogs\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class DialogsStore extends VuexModule implements IDialogsStore {\r\n @Action\r\n CloseOtherDialogs(storeToken: dialogStoreToken): void {\r\n if (storeToken != \"cartDialog\") cartDialogStore.Close();\r\n if (storeToken != \"signInDialog\") signInDialogStore.Close();\r\n if (storeToken != \"signOnDialog\") signOnDialogStore.Close();\r\n if (storeToken != \"signUpDialog\") signUpDialogStore.Close();\r\n if (storeToken != \"signUpVendorDialog\") signUpVendorDialogStore.Close();\r\n }\r\n\r\n @Action\r\n CloseDialogs(): void {\r\n cartDialogStore.Close();\r\n signInDialogStore.Close();\r\n signOnDialogStore.Close();\r\n signUpDialogStore.Close();\r\n signUpVendorDialogStore.Close();\r\n }\r\n}\r\n","import { IDialog } from \"@market/models/IDialog\";\r\nimport { IDialogStore } from \"@market/stores/contracts/IDialogStore\";\r\nimport { Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport default class DialogStore extends VuexModule implements IDialogStore {\r\n dialog: IDialog;\r\n\r\n @Mutation\r\n OPEN(): void {\r\n this.dialog.isOpen = true;\r\n }\r\n\r\n @Mutation\r\n CLOSE(): void {\r\n this.dialog.isOpen = false;\r\n }\r\n\r\n @Mutation\r\n TOGGLE(): void {\r\n this.dialog.isOpen = !this.dialog.isOpen;\r\n }\r\n\r\n Open(): void {\r\n if (this.dialog.isOpen) return;\r\n\r\n this.OPEN();\r\n }\r\n\r\n Close(): void {\r\n if (!this.dialog.isOpen) return;\r\n\r\n this.CLOSE();\r\n }\r\n\r\n Toggle(): void {\r\n this.TOGGLE();\r\n }\r\n}\r\n","import { IDialog } from \"@market/models/IDialog\";\r\nimport router from \"@market/routers\";\r\nimport { store } from \"@market/stores\";\r\nimport { dialogsStore } from \"@market/stores/App.store.modules\";\r\nimport { IDialogStore } from \"@market/stores/contracts/IDialogStore\";\r\nimport DialogStore from \"@market/stores/modules/dialogStore\";\r\nimport { Action, Module } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"cartDialog\" = \"cartDialog\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class CartDialogStore extends DialogStore implements IDialogStore {\r\n dialog: IDialog = {\r\n isOpen: false\r\n };\r\n\r\n @Action\r\n Open(): void {\r\n if (router.currentRoute.name && router.currentRoute.name.startsWith(\"checkout\")) return;\r\n\r\n dialogsStore.CloseOtherDialogs(STORE_TOKEN);\r\n super.Open();\r\n }\r\n\r\n @Action\r\n Close(): void {\r\n super.Close();\r\n }\r\n\r\n @Action\r\n Toggle(): void {\r\n dialogsStore.CloseOtherDialogs(STORE_TOKEN);\r\n super.Toggle();\r\n }\r\n}\r\n","import { IDialog } from \"@market/models/IDialog\";\r\nimport { store } from \"@market/stores\";\r\nimport { dialogsStore } from \"@market/stores/App.store.modules\";\r\nimport { IDialogStore } from \"@market/stores/contracts/IDialogStore\";\r\nimport DialogStore from \"@market/stores/modules/dialogStore\";\r\nimport { Action, Module } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"signInDialog\" = \"signInDialog\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class SignInDialogStore extends DialogStore implements IDialogStore {\r\n dialog: IDialog = {\r\n isOpen: false\r\n };\r\n\r\n @Action\r\n Open(): void {\r\n dialogsStore.CloseOtherDialogs(STORE_TOKEN);\r\n super.Open();\r\n }\r\n\r\n @Action\r\n Close(): void {\r\n super.Close();\r\n }\r\n\r\n @Action\r\n Toggle(): void {\r\n dialogsStore.CloseOtherDialogs(STORE_TOKEN);\r\n super.Toggle();\r\n }\r\n}\r\n","import { IDialog } from \"@market/models/IDialog\";\r\nimport { store } from \"@market/stores\";\r\nimport { dialogsStore } from \"@market/stores/App.store.modules\";\r\nimport { IDialogStore } from \"@market/stores/contracts/IDialogStore\";\r\nimport DialogStore from \"@market/stores/modules/dialogStore\";\r\nimport { Action, Module } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"signOnDialog\" = \"signOnDialog\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class SignOnDialogStore extends DialogStore implements IDialogStore {\r\n dialog: IDialog = {\r\n isOpen: false\r\n };\r\n\r\n @Action\r\n Open(): void {\r\n dialogsStore.CloseOtherDialogs(STORE_TOKEN);\r\n super.Open();\r\n }\r\n\r\n @Action\r\n Close(): void {\r\n super.Close();\r\n }\r\n\r\n @Action\r\n Toggle(): void {\r\n dialogsStore.CloseOtherDialogs(STORE_TOKEN);\r\n super.Toggle();\r\n }\r\n}\r\n","import { IDialog } from \"@market/models/IDialog\";\r\nimport { store } from \"@market/stores\";\r\nimport { dialogsStore } from \"@market/stores/App.store.modules\";\r\nimport { IDialogStore } from \"@market/stores/contracts/IDialogStore\";\r\nimport DialogStore from \"@market/stores/modules/dialogStore\";\r\nimport { Action, Module } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"signUpDialog\" = \"signUpDialog\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class SignUpDialogStore extends DialogStore implements IDialogStore {\r\n dialog: IDialog = {\r\n isOpen: false\r\n };\r\n\r\n @Action\r\n Open(): void {\r\n dialogsStore.CloseOtherDialogs(STORE_TOKEN);\r\n super.Open();\r\n }\r\n\r\n @Action\r\n Close(): void {\r\n super.Close();\r\n }\r\n\r\n @Action\r\n Toggle(): void {\r\n dialogsStore.CloseOtherDialogs(STORE_TOKEN);\r\n super.Toggle();\r\n }\r\n}\r\n","import { IDialog } from \"@market/models/IDialog\";\r\nimport { store } from \"@market/stores\";\r\nimport { dialogsStore } from \"@market/stores/App.store.modules\";\r\nimport { IDialogStore } from \"@market/stores/contracts/IDialogStore\";\r\nimport DialogStore from \"@market/stores/modules/dialogStore\";\r\nimport { Action, Module } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"signUpVendorDialog\" = \"signUpVendorDialog\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class SignUpVendorDialogStore extends DialogStore implements IDialogStore {\r\n dialog: IDialog = {\r\n isOpen: false\r\n };\r\n\r\n @Action\r\n Open(): void {\r\n dialogsStore.CloseOtherDialogs(STORE_TOKEN);\r\n super.Open();\r\n }\r\n\r\n @Action\r\n Close(): void {\r\n super.Close();\r\n }\r\n\r\n @Action\r\n Toggle(): void {\r\n dialogsStore.CloseOtherDialogs(STORE_TOKEN);\r\n super.Toggle();\r\n }\r\n}\r\n","import { IFavoritesService } from \"@api/contracts/odata/IFavoritesService\";\r\nimport { IFavorite } from \"@api/models/market/IFavorite\";\r\nimport { ISale } from \"@api/models/market/ISale\";\r\nimport { store } from \"@market/stores\";\r\nimport { IFavoriteStore } from \"@market/stores/contracts/IFavoriteStore\";\r\nimport { ISaleManager } from \"@pigeon/services/contracts/ISaleManager\";\r\nimport { cid, container, Inject } from \"inversify-props\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\nimport { userStore } from \"../App.store.modules\";\r\n\r\nexport const STORE_TOKEN: \"favorite\" = \"favorite\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class FavoriteStore extends VuexModule implements IFavoriteStore {\r\n // WARNING: Don't use Inject decorator here because VuexModuleDecorator will transform it (into store state)\r\n // @Inject()\r\n // private favoritesService: IFavoritesService;\r\n // @Inject()\r\n // private saleManager: ISaleManager;\r\n\r\n favorites: IFavorite[] = [];\r\n\r\n @Mutation\r\n SET_FAVORITES(data: IFavorite[]): void {\r\n this.favorites = data;\r\n }\r\n\r\n @Mutation\r\n ADD_A_FAVORITE(favorite: IFavorite): void {\r\n this.favorites.unshift(favorite);\r\n }\r\n\r\n @Mutation\r\n REMOVE_A_FAVORITE(favorite: IFavorite): void {\r\n const indexToRemove = this.favorites.findIndex((f) => f.id == favorite.id);\r\n if (indexToRemove != -1) this.favorites.splice(indexToRemove, 1);\r\n }\r\n\r\n @Action\r\n public async Reset(): Promise {\r\n this.SET_FAVORITES([]);\r\n }\r\n\r\n @Action\r\n public async FetchFavorites(): Promise {\r\n const favoritesService = container.get(cid.FavoritesService);\r\n\r\n try {\r\n const { data: favoritesData } = await favoritesService.FetchAllWithSaleProductByUser(userStore.user?.id);\r\n this.SET_FAVORITES(favoritesData.value);\r\n } catch (error: any) {\r\n console.error(error?.message || error);\r\n }\r\n }\r\n\r\n @Action\r\n public async AddToFavorite(sale: ISale): Promise {\r\n if (!sale?.id) return Promise.reject(\"Argument exception: sale id is undefined\");\r\n if (!userStore?.user?.id) return Promise.reject(\"Unauthorized exception: user id is undefined\");\r\n\r\n const saleManager = container.get(cid.SaleManager);\r\n const insertedFavorite = await saleManager.AddToFavorite(sale.id, userStore.user?.id);\r\n insertedFavorite.sale = sale;\r\n this.ADD_A_FAVORITE(insertedFavorite);\r\n }\r\n\r\n @Action\r\n public async RemoveFromFavorite(favorite: IFavorite): Promise {\r\n if (!favorite?.id) return Promise.reject(\"Argument exception: favorite is undefined\");\r\n\r\n const saleManager = container.get(cid.SaleManager);\r\n await saleManager.RemoveFromFavorite(favorite.id);\r\n this.REMOVE_A_FAVORITE(favorite);\r\n }\r\n}\r\n","import { IAccountsService } from \"@api/contracts/auth/IAccountsService\";\r\nimport { PayloadMapper } from \"@api/mappers/PayloadMapper\";\r\nimport { IAuth, IAuthResponse } from \"@api/models/auth/IAuth\";\r\nimport { IAuthSession } from \"@api/models/auth/IAuthSession\";\r\nimport { IJwt } from \"@api/models/auth/IJwt\";\r\nimport { IPayload } from \"@api/models/auth/IPayload\";\r\nimport { store } from \"@market/stores\";\r\nimport { authStore } from \"@market/stores/App.store.modules\";\r\nimport { IJwtStore } from \"@market/stores/contracts/IJwtStore\";\r\nimport AuthStore from \"@market/stores/modules/authStore\";\r\nimport { HasFunctionalityCookieConsent } from \"@pigeon/components/layout/TheBannerCookies\";\r\nimport dayjs from \"@pigeon/i18n/dayjs\";\r\nimport { cid, container, Inject } from \"inversify-props\";\r\nimport jwtDecode from \"jwt-decode\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"jwt\" = \"jwt\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class JwtStore extends VuexModule implements IJwtStore {\r\n // WARNING: Don't use Inject decorator here because VuexModuleDecorator will transform it (into store state)\r\n // @Inject()\r\n // private accountsService: IAccountsService;\r\n\r\n static readonly ACCESS_TOKEN_STORE_KEY: string = \"access_token\";\r\n static readonly REFRESH_TOKEN_STORE_KEY: string = \"refresh_token\";\r\n static readonly AUTH_AT_STORE_KEY: string = \"last_auth_at\";\r\n pending: boolean = false;\r\n accessToken: string | null = null;\r\n refreshToken: string | null = null;\r\n lastAuthDate: Date | null = null;\r\n payload: IPayload | null = null;\r\n refreshPromise: Promise | null = null;\r\n\r\n // Use method to not cache the result (cannot cache a result with datetime)\r\n get HasTokenExpired(): () => boolean {\r\n return () => {\r\n if (!this.accessToken) return false;\r\n const jwt: any = jwtDecode(this.accessToken);\r\n const current_time = new Date().getTime() / 1000;\r\n const hasExpired = current_time > jwt.exp;\r\n return hasExpired;\r\n };\r\n }\r\n\r\n // Check if the expiration date from token is lower than 2 minutes\r\n get IsTokenCloseToExpire(): () => boolean {\r\n return () => {\r\n if (!authStore.IsAuthenticated) return false;\r\n if (!this.accessToken) return true;\r\n\r\n const now = dayjs();\r\n const closeToExpire = now.add(2, \"minute\");\r\n const closeToExpireTimestamp = closeToExpire.toDate().getTime() / 1000;\r\n const jwt: any = jwtDecode(this.accessToken);\r\n\r\n return (jwt.exp as number) < closeToExpireTimestamp;\r\n };\r\n }\r\n\r\n @Mutation\r\n UPDATE_PENDING(pendingStatus: boolean): void {\r\n this.pending = pendingStatus;\r\n }\r\n\r\n @Mutation\r\n UPDATE_REFRESH_PROMISE(refreshPromise: Promise | null): void {\r\n this.refreshPromise = refreshPromise;\r\n }\r\n\r\n @Mutation\r\n UPDATE_TOKENS(tokens: IAuth): void {\r\n if (tokens.accessToken) {\r\n this.accessToken = tokens.accessToken;\r\n const jwt: IJwt = jwtDecode(tokens.accessToken);\r\n this.payload = PayloadMapper.Map(jwt);\r\n }\r\n if (tokens.refreshToken) {\r\n this.refreshToken = tokens.refreshToken;\r\n }\r\n\r\n this.pending = false;\r\n }\r\n\r\n @Mutation\r\n UPDATE_LAST_AUTH_DATE(lastAuthDate: string | null): void {\r\n if (!lastAuthDate) {\r\n this.lastAuthDate = null;\r\n return;\r\n }\r\n\r\n this.lastAuthDate = new Date(lastAuthDate);\r\n }\r\n\r\n @Mutation\r\n RESET(): void {\r\n this.accessToken = null;\r\n this.refreshToken = null;\r\n this.lastAuthDate = null;\r\n this.payload = null;\r\n }\r\n\r\n @Action\r\n RefreshTokens(): Promise {\r\n if (!this.accessToken || !this.refreshToken) {\r\n console.warn(\"WARNING: Invalid tokens\");\r\n authStore.Logout();\r\n return Promise.resolve();\r\n }\r\n\r\n // Handle concurrency (only one call at once)\r\n if (this.pending && this.refreshPromise) {\r\n return this.refreshPromise as Promise;\r\n }\r\n\r\n const accountsService = container.get(cid.AccountsService);\r\n this.UPDATE_PENDING(true);\r\n\r\n const refreshPromise = accountsService\r\n .RefreshAuth({\r\n accessToken: this.accessToken,\r\n refreshToken: this.refreshToken\r\n })\r\n .then((response) => {\r\n const { accessToken, refreshToken, authAt } = response.data;\r\n this.UPDATE_TOKENS({ accessToken, refreshToken });\r\n this.UPDATE_LAST_AUTH_DATE(authAt);\r\n this.Store();\r\n })\r\n .catch((error) => {\r\n authStore.Logout();\r\n })\r\n .finally(() => {\r\n this.UPDATE_REFRESH_PROMISE(null);\r\n this.UPDATE_PENDING(false);\r\n });\r\n\r\n this.UPDATE_REFRESH_PROMISE(refreshPromise);\r\n return refreshPromise;\r\n }\r\n\r\n @Action\r\n InitTokens(tokens: IAuth) {\r\n if (!tokens.accessToken) console.warn(\"Invalid access token\");\r\n if (!tokens.refreshToken) console.warn(\"Invalid refresh token\");\r\n\r\n this.UPDATE_TOKENS(tokens);\r\n this.UPDATE_LAST_AUTH_DATE(null);\r\n this.Store();\r\n }\r\n\r\n @Action\r\n Reset(): void {\r\n this.RESET();\r\n this.ClearStorage();\r\n }\r\n\r\n @Action\r\n Store(): void {\r\n if (!HasFunctionalityCookieConsent()) return;\r\n\r\n localStorage.setItem(JwtStore.ACCESS_TOKEN_STORE_KEY, JSON.stringify(this.accessToken));\r\n localStorage.setItem(JwtStore.REFRESH_TOKEN_STORE_KEY, JSON.stringify(this.refreshToken));\r\n localStorage.setItem(JwtStore.AUTH_AT_STORE_KEY, JSON.stringify(this.lastAuthDate));\r\n }\r\n\r\n @Action\r\n ClearStorage(): void {\r\n localStorage.removeItem(JwtStore.ACCESS_TOKEN_STORE_KEY);\r\n localStorage.removeItem(JwtStore.REFRESH_TOKEN_STORE_KEY);\r\n localStorage.removeItem(JwtStore.AUTH_AT_STORE_KEY);\r\n }\r\n\r\n @Action\r\n Restore() {\r\n const accessTokenStored = localStorage.getItem(JwtStore.ACCESS_TOKEN_STORE_KEY);\r\n const refreshTokenStored = localStorage.getItem(JwtStore.REFRESH_TOKEN_STORE_KEY);\r\n const authAtStored = localStorage.getItem(JwtStore.AUTH_AT_STORE_KEY);\r\n\r\n try {\r\n if (authAtStored) {\r\n this.UPDATE_LAST_AUTH_DATE(JSON.parse(authAtStored));\r\n }\r\n\r\n if (accessTokenStored && refreshTokenStored) {\r\n const accessToken = JSON.parse(accessTokenStored);\r\n const refreshToken = JSON.parse(refreshTokenStored);\r\n\r\n this.UPDATE_TOKENS({ accessToken, refreshToken });\r\n }\r\n // Retro compatibility\r\n else if (localStorage.getItem(AuthStore.STORE_KEY)) {\r\n const sessionStored: string = localStorage.getItem(AuthStore.STORE_KEY) as string;\r\n const session: IAuthSession = JSON.parse(sessionStored) as IAuthSession;\r\n if (session.accessToken && session.refreshToken) this.UPDATE_TOKENS(session);\r\n }\r\n\r\n if (this.HasTokenExpired()) {\r\n // token expired\r\n // Fix: issue \"Error: No matching bindings found for serviceIdentifier: Symbol(AccountsService) (from RefreshTokens method)\"\r\n // Use setTimeout 0 to trigger methods to end of stack\r\n setTimeout(async () => {\r\n await this.RefreshTokens();\r\n }, 0);\r\n }\r\n } catch (error: any) {\r\n console.error(error);\r\n this.ClearStorage();\r\n }\r\n }\r\n}\r\n","import { ISaleNotificationsService } from \"@api/contracts/odata/ISaleNotificationsService\";\r\nimport { ISaleNotification } from \"@api/models/market/ISaleNotification\";\r\nimport { store } from \"@market/stores\";\r\nimport { authStore, jwtStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { INotificationStore } from \"@market/stores/contracts/INotificationStore\";\r\nimport { NotificationsFilterTypes } from \"@pigeon/enumerations/NotificationsFilterTypes\";\r\nimport { cid, container, Inject } from \"inversify-props\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"notification\" = \"notification\";\r\nconst ONE_MONTH: number = 30;\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class NotificationStore extends VuexModule implements INotificationStore {\r\n // WARNING: Don't use Inject decorator here because VuexModuleDecorator will transform it (into store state)\r\n // @Inject()\r\n // private saleNotificationsService: ISaleNotificationsService;\r\n\r\n lastAuthDate: Date = new Date();\r\n saleNotifications: ISaleNotification[] = [];\r\n saleNotificationsSeen: ISaleNotification[] = [];\r\n saleNotificationsCount: number = 0;\r\n\r\n get saleNotificationsUnread(): ISaleNotification[] {\r\n const unreadNotififs = this.saleNotifications.filter((sn) => sn.flagAsRead !== true);\r\n\r\n return unreadNotififs;\r\n }\r\n\r\n get UnreadPMarketNotificationsCount(): number {\r\n return this.saleNotificationsUnread?.length ?? 0;\r\n }\r\n\r\n @Mutation\r\n SET_SALE_NOTIFICATIONS(data: ISaleNotification[]): void {\r\n this.saleNotifications = data;\r\n this.saleNotificationsCount = data.length;\r\n }\r\n\r\n @Mutation\r\n UPDATE_SALE_NOTIFICATION(updatedSaleNotification: ISaleNotification): void {\r\n const notifToFlagIndex = this.saleNotifications.findIndex((sn) => sn.id === updatedSaleNotification.id);\r\n if (notifToFlagIndex >= 0) {\r\n this.saleNotifications[notifToFlagIndex] = { ...updatedSaleNotification };\r\n }\r\n }\r\n\r\n @Mutation\r\n ADD_SALE_NOTIFICATION_TO_SEEN_STACK(notification: ISaleNotification): void {\r\n this.saleNotificationsSeen.push(notification);\r\n }\r\n\r\n @Action\r\n public async Reset(): Promise {\r\n this.SET_SALE_NOTIFICATIONS([]);\r\n }\r\n\r\n @Action\r\n public async FetchSalesNotifications(filters?: Map): Promise {\r\n const saleNotificationsService = container.get(cid.ISaleNotificationsService);\r\n\r\n const defaultFilters: Map = new Map();\r\n if (jwtStore.lastAuthDate)\r\n defaultFilters.set(NotificationsFilterTypes.FromDate, [new Date(jwtStore.lastAuthDate)?.toISOString()]);\r\n else if (userStore.user && userStore.user.lastLoginAt)\r\n defaultFilters.set(NotificationsFilterTypes.FromDate, [new Date(userStore.user.lastLoginAt)?.toISOString()]);\r\n else defaultFilters.set(NotificationsFilterTypes.FromDaysAgo, [ONE_MONTH.toString()]);\r\n\r\n if(!filters) filters = defaultFilters;\r\n\r\n if (authStore.IsAdministrator) {\r\n const { data } = await saleNotificationsService.FetchAllWithSale(filters, 50);\r\n this.SET_SALE_NOTIFICATIONS(data.value);\r\n } else {\r\n const { data } = await saleNotificationsService.FetchAllWithSaleByUser(filters, 30);\r\n this.SET_SALE_NOTIFICATIONS(data.value);\r\n }\r\n }\r\n\r\n @Action\r\n public async FetchNotifications(filters?: Map): Promise {\r\n const defaultFilters: Map = new Map();\r\n\r\n if (jwtStore.lastAuthDate)\r\n defaultFilters.set(NotificationsFilterTypes.FromDate, [new Date(jwtStore.lastAuthDate)?.toISOString()]);\r\n else if (userStore.user && userStore.user.lastLoginAt)\r\n defaultFilters.set(NotificationsFilterTypes.FromDate, [new Date(userStore.user.lastLoginAt)?.toISOString()]);\r\n else defaultFilters.set(NotificationsFilterTypes.FromDaysAgo, [ONE_MONTH.toString()]);\r\n\r\n this.FetchSalesNotifications(filters || defaultFilters);\r\n }\r\n\r\n @Action\r\n public FlagNotificationAsRead(notification: ISaleNotification): void {\r\n notification.flagAsRead = true;\r\n notification.flaggedDate = new Date().toISOString();\r\n\r\n this.UPDATE_SALE_NOTIFICATION(notification);\r\n }\r\n\r\n @Action\r\n public FlagNotificationAsSeen(notification: ISaleNotification): void {\r\n this.ADD_SALE_NOTIFICATION_TO_SEEN_STACK(notification);\r\n }\r\n}\r\n","import { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport { store } from \"@market/stores\";\r\nimport { userStore } from \"@market/stores/App.store.modules\";\r\nimport { IPigeonStore } from \"@market/stores/contracts/IPigeonStore\";\r\nimport { IFilePicture } from \"@pigeon/models/IFilePicture\";\r\nimport { IFileVideo } from \"@pigeon/models/IFileVideo\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"pigeon\" = \"pigeon\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class PigeonStore extends VuexModule implements IPigeonStore {\r\n pigeon: IPigeon | null = null;\r\n filePictures: IFilePicture[] = [];\r\n fileVideos: IFileVideo[] = [];\r\n expertMode: boolean = false;\r\n\r\n //#region Mode\r\n @Mutation\r\n UPDATE_MODE(isExpertModeActivated: boolean): void {\r\n this.expertMode = isExpertModeActivated;\r\n }\r\n\r\n @Action\r\n UpdateMode(isExpertModeActivated: boolean): void {\r\n this.UPDATE_MODE(isExpertModeActivated);\r\n }\r\n //#endregion\r\n\r\n //#region product\r\n @Mutation\r\n UPDATE_PIGEON(pigeon: IPigeon | null): void {\r\n // set userId\r\n if (pigeon && !pigeon.userId && userStore.user) {\r\n pigeon.userId = userStore.user.id;\r\n }\r\n\r\n this.pigeon = pigeon;\r\n }\r\n\r\n @Action\r\n UpdatePigeon(pigeon: IPigeon | null): void {\r\n if (pigeon && !pigeon.ringNumber && pigeon.ring) {\r\n pigeon.ringNumber = pigeon.ring.substring(pigeon.ring.indexOf(\"-\") + 1);\r\n }\r\n\r\n this.UPDATE_PIGEON(pigeon);\r\n }\r\n //#endregion\r\n\r\n //#region fileMedia\r\n @Mutation\r\n UPDATE_FILE_PICTURES(files: IFilePicture[]): void {\r\n this.filePictures = files;\r\n }\r\n\r\n @Mutation\r\n UPDATE_FILE_VIDEOS(files: IFileVideo[]): void {\r\n this.fileVideos = files;\r\n }\r\n\r\n @Mutation\r\n PUSH_FILE_PICTURE(file: IFilePicture): void {\r\n this.filePictures.push(file);\r\n }\r\n\r\n @Mutation\r\n PUSH_FILE_VIDEO(file: IFileVideo): void {\r\n this.fileVideos.push(file);\r\n }\r\n\r\n @Action\r\n UpdateFilePictures(files: IFilePicture[]): void {\r\n this.UPDATE_FILE_PICTURES(files);\r\n }\r\n\r\n @Action\r\n UpdateFileVideos(files: IFileVideo[]): void {\r\n this.UPDATE_FILE_VIDEOS(files);\r\n }\r\n\r\n @Action\r\n AddFilePicture(file: IFilePicture): void {\r\n const existingIndexFile = this.filePictures.findIndex(\r\n (fp) =>\r\n fp.pictureType === file.pictureType &&\r\n ((file.pigeonKey && fp.pigeonKey === file.pigeonKey) ||\r\n (file.pigeonKeyClient && fp.pigeonKeyClient === file.pigeonKeyClient))\r\n );\r\n\r\n if (existingIndexFile > -1) {\r\n // replace\r\n this.filePictures[existingIndexFile] = file;\r\n } else {\r\n // add\r\n this.PUSH_FILE_PICTURE(file);\r\n }\r\n }\r\n\r\n @Action\r\n AddFileVideo(file: IFileVideo): void {\r\n const existingIndexFile = this.fileVideos.findIndex(\r\n (fp) =>\r\n fp.videoType === file.videoType &&\r\n ((file.pigeonKey && fp.pigeonKey === file.pigeonKey) ||\r\n (file.pigeonKeyClient && fp.pigeonKeyClient === file.pigeonKeyClient))\r\n );\r\n\r\n if (existingIndexFile > -1) {\r\n // replace\r\n this.fileVideos[existingIndexFile] = file;\r\n } else {\r\n // add\r\n this.PUSH_FILE_VIDEO(file);\r\n }\r\n }\r\n //#endregion\r\n\r\n @Action\r\n Reset(): void {\r\n this.UpdatePigeon(null);\r\n this.UpdateFilePictures([]);\r\n this.UpdateFileVideos([]);\r\n }\r\n}\r\n","import { ISale } from \"@api/models/market/ISale\";\r\nimport { store } from \"@market/stores\";\r\nimport { authStore, userStore } from \"@market/stores/App.store.modules\";\r\nimport { ISaleStore } from \"@market/stores/contracts/ISaleStore\";\r\nimport { IFilePicture } from \"@pigeon/models/IFilePicture\";\r\nimport { IFileVideo } from \"@pigeon/models/IFileVideo\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"sale\" = \"sale\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class SaleStore extends VuexModule implements ISaleStore {\r\n sale: ISale | null = null;\r\n filePictures: IFilePicture[] = [];\r\n fileVideos: IFileVideo[] = [];\r\n\r\n //#region sale\r\n @Mutation\r\n UPDATE_SALE(sale: ISale | null): void {\r\n // set userId\r\n if (sale && sale.pigeon && !sale.userId && userStore.user) {\r\n sale.userId = userStore.user.id;\r\n sale.pigeon.userId = userStore.user.id;\r\n\r\n // A administrator can insert a product for someone (= acts as intermediary)\r\n if (authStore.IsAdministrator && userStore.intermediary) {\r\n sale.userId = userStore.intermediary.id;\r\n sale.pigeon.userId = userStore.intermediary.id;\r\n }\r\n }\r\n\r\n this.sale = sale;\r\n }\r\n\r\n @Action\r\n UpdateSale(sale: ISale | null): void {\r\n if (sale && sale.pigeon && !sale.pigeon.ringNumber && sale.pigeon.ring) {\r\n sale.pigeon.ringNumber = sale.pigeon.ring.substring(sale.pigeon.ring.indexOf(\"-\") + 1);\r\n }\r\n\r\n this.UPDATE_SALE(sale);\r\n }\r\n //#endregion\r\n\r\n //#region fileMedia\r\n @Mutation\r\n UPDATE_FILE_PICTURES(files: IFilePicture[]): void {\r\n this.filePictures = files;\r\n }\r\n\r\n @Mutation\r\n UPDATE_FILE_VIDEOS(files: IFileVideo[]): void {\r\n this.fileVideos = files;\r\n }\r\n\r\n @Mutation\r\n PUSH_FILE_PICTURE(file: IFilePicture): void {\r\n this.filePictures.push(file);\r\n }\r\n\r\n @Mutation\r\n PUSH_FILE_VIDEO(file: IFileVideo): void {\r\n this.fileVideos.push(file);\r\n }\r\n\r\n @Action\r\n UpdateFilePictures(files: IFilePicture[]): void {\r\n this.UPDATE_FILE_PICTURES(files);\r\n }\r\n\r\n @Action\r\n UpdateFileVideos(files: IFileVideo[]): void {\r\n this.UPDATE_FILE_VIDEOS(files);\r\n }\r\n\r\n @Action\r\n AddFilePicture(file: IFilePicture): void {\r\n const existingIndexFile = this.filePictures.findIndex(\r\n (fp) =>\r\n fp.pictureType === file.pictureType &&\r\n ((file.pigeonKey && fp.pigeonKey === file.pigeonKey) ||\r\n (file.pigeonKeyClient && fp.pigeonKeyClient === file.pigeonKeyClient))\r\n );\r\n\r\n if (existingIndexFile > -1) {\r\n // replace\r\n this.filePictures[existingIndexFile] = file;\r\n } else {\r\n // add\r\n this.PUSH_FILE_PICTURE(file);\r\n }\r\n }\r\n\r\n @Action\r\n AddFileVideo(file: IFileVideo): void {\r\n const existingIndexFile = this.fileVideos.findIndex(\r\n (fp) =>\r\n fp.videoType === file.videoType &&\r\n ((file.pigeonKey && fp.pigeonKey === file.pigeonKey) ||\r\n (file.pigeonKeyClient && fp.pigeonKeyClient === file.pigeonKeyClient))\r\n );\r\n\r\n if (existingIndexFile > -1) {\r\n // replace\r\n this.fileVideos[existingIndexFile] = file;\r\n } else {\r\n // add\r\n this.PUSH_FILE_VIDEO(file);\r\n }\r\n }\r\n //#endregion\r\n\r\n @Action\r\n Reset(): void {\r\n this.UpdateSale(null);\r\n this.UpdateFilePictures([]);\r\n this.UpdateFileVideos([]);\r\n }\r\n}\r\n","import { SearchTypes } from \"@api/models/market/constants/SearchTypes\";\r\nimport { store } from \"@market/stores\";\r\nimport { ISearchStore } from \"@market/stores/contracts/ISearchStore\";\r\nimport { IRingManager } from \"@pigeon/services/contracts/IRingManager\";\r\nimport { cid, container, Inject } from \"inversify-props\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"search\" = \"search\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class SearchStore extends VuexModule implements ISearchStore {\r\n // WARNING: Don't use Inject decorator here because VuexModuleDecorator will transform it (into store state)\r\n // @Inject()\r\n // private ringManager: IRingManager;\r\n\r\n searchBarIsOpen: boolean = false;\r\n searchType: SearchTypes = SearchTypes.SearchByRing; // default search type\r\n searchQueryInput: string | null = null;\r\n searchQueryRingArea: string | null = \"BE\";\r\n searchQueryRingClub: string | null = null;\r\n searchQueryRingBirthyear: number | null = new Date().getFullYear();\r\n searchQuery: string | null = null;\r\n\r\n @Mutation\r\n TOGGLE_SEARCH_BAR(): void {\r\n this.searchBarIsOpen = !this.searchBarIsOpen;\r\n }\r\n\r\n @Mutation\r\n UPDATE_SEARCH_TYPE(searchType: SearchTypes): void {\r\n this.searchType = searchType;\r\n }\r\n\r\n @Mutation\r\n UPDATE_SEARCH_QUERY(searchQuery: string | null): void {\r\n this.searchQueryInput = searchQuery;\r\n }\r\n\r\n @Mutation\r\n UPDATE_SEARCH_QUERY_RING_AREA(ringArea: string | null): void {\r\n this.searchQueryRingArea = ringArea;\r\n }\r\n\r\n @Mutation\r\n UPDATE_SEARCH_QUERY_RING_CLUB(ringClub: string | null): void {\r\n this.searchQueryRingClub = ringClub;\r\n }\r\n\r\n @Mutation\r\n UPDATE_SEARCH_QUERY_RING_BIRTHYEAR(ringBirthyear: number | null): void {\r\n this.searchQueryRingBirthyear = ringBirthyear;\r\n }\r\n\r\n @Mutation\r\n UPDATE_SEARCH(search: string | null): void {\r\n this.searchQuery = search;\r\n }\r\n\r\n @Mutation\r\n RESET(): void {\r\n this.searchQueryInput = null;\r\n // this.searchQueryRingArea = \"BE\";\r\n // this.searchQueryRingClub = null;\r\n // this.searchQueryRingBirthyear = new Date().getFullYear();\r\n this.searchQuery = null;\r\n }\r\n\r\n @Action\r\n ToggleSearchBar(): void {\r\n this.TOGGLE_SEARCH_BAR();\r\n }\r\n\r\n @Action\r\n UpdateSearchType(value: SearchTypes): void {\r\n this.UPDATE_SEARCH_TYPE(value);\r\n }\r\n\r\n @Action\r\n UpdateSearchQuery(value: string | null): void {\r\n this.UPDATE_SEARCH_QUERY(value);\r\n }\r\n\r\n @Action\r\n UpdateSearchQueryRingArea(value: string | null): void {\r\n this.UPDATE_SEARCH_QUERY_RING_AREA(value);\r\n }\r\n\r\n @Action\r\n UpdateSearchQueryRingClub(value: string | null): void {\r\n this.UPDATE_SEARCH_QUERY_RING_CLUB(value);\r\n }\r\n\r\n @Action\r\n UpdateSearchQueryRingBirthyear(value: number | null): void {\r\n this.UPDATE_SEARCH_QUERY_RING_BIRTHYEAR(value);\r\n }\r\n\r\n @Action\r\n UpdateSearch(): void {\r\n const ringManager = container.get(cid.RingManager);\r\n\r\n let search: string | null = null;\r\n\r\n switch (this.searchType) {\r\n case SearchTypes.SearchByRing:\r\n if (!this.searchQueryInput) {\r\n this.Reset();\r\n return;\r\n }\r\n\r\n search = ringManager.RawFormatRing(\r\n this.searchQueryRingArea,\r\n this.searchQueryRingClub,\r\n this.searchQueryRingBirthyear,\r\n this.searchQueryInput\r\n );\r\n break;\r\n\r\n case SearchTypes.SearchByName:\r\n search = this.searchQueryInput;\r\n break;\r\n\r\n case SearchTypes.SearchByRingOrName:\r\n search = this.searchQueryInput;\r\n break;\r\n\r\n default:\r\n throw new Error(`Operation exception: Unsupported search type: ${this.searchType}`);\r\n }\r\n\r\n this.UPDATE_SEARCH(search);\r\n }\r\n\r\n @Action\r\n Reset(): void {\r\n this.RESET();\r\n }\r\n}\r\n","import { ISettlementsService } from \"@api/contracts/odata/ISettlementsService\";\r\nimport { ISettlement } from \"@api/models/market/ISettlement\";\r\nimport { store } from \"@market/stores\";\r\nimport { authStore } from \"@market/stores/App.store.modules\";\r\nimport { ISettlementStore } from \"@market/stores/contracts/ISettlementStore\";\r\nimport { cid, container, Inject } from \"inversify-props\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"settlement\" = \"settlement\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class SettlementStore extends VuexModule implements ISettlementStore {\r\n // WARNING: Don't use Inject decorator here because VuexModuleDecorator will transform it (into store state)\r\n // @Inject()\r\n // private settlementsService: ISettlementsService;\r\n\r\n pendingSettlements: ISettlement[] = [];\r\n showPendingSettlementTask: boolean = true;\r\n\r\n get pendingSettlementsCount(): number {\r\n return this.pendingSettlements?.length ?? 0;\r\n }\r\n\r\n @Mutation\r\n SET_PENDING_SETTLEMENTS(data: ISettlement[]): void {\r\n this.pendingSettlements = data;\r\n }\r\n\r\n @Mutation\r\n REMOVE_PENDING_SETTLEMENT(settlementKeyToRemove: string): void {\r\n const settlementIndex = this.pendingSettlements.findIndex((s) => s.id == settlementKeyToRemove);\r\n\r\n if (settlementIndex > -1) {\r\n this.pendingSettlements.splice(settlementIndex, 1);\r\n }\r\n }\r\n\r\n @Mutation\r\n SET_SHOW_PENDING_SETTLEMENT_TASK(show: boolean): void {\r\n this.showPendingSettlementTask = show;\r\n }\r\n\r\n @Action\r\n public DismissPendingSettlementTask() {\r\n this.showPendingSettlementTask = false;\r\n }\r\n\r\n @Action\r\n public async FetchPendingSettlements(): Promise {\r\n const settlementsService = container.get(cid.SettlementsService);\r\n\r\n if (authStore.IsAdministrator) {\r\n settlementsService.FetchAllPendingProcessing().then((response) => {\r\n this.SET_PENDING_SETTLEMENTS(response.data.value);\r\n });\r\n }\r\n }\r\n\r\n @Action\r\n public async RemovePendingSettlements(settlementKey: string): Promise {\r\n this.REMOVE_PENDING_SETTLEMENT(settlementKey);\r\n }\r\n\r\n @Action\r\n public async Reset(): Promise {\r\n this.SET_PENDING_SETTLEMENTS([]);\r\n }\r\n}\r\n","import { IAuthSession } from \"@api/models/auth/IAuthSession\";\r\nimport { AddressTypes } from \"@api/models/market/constants/AddressTypes\";\r\nimport { IAddress } from \"@api/models/market/IAddress\";\r\nimport { IUserData } from \"@api/models/market/IUserData\";\r\nimport { IVendor } from \"@api/models/market/IVendor\";\r\nimport { ArrayHelper } from \"@api/services/helpers/ArrayHelper\";\r\nimport { store } from \"@market/stores\";\r\nimport { IUserStore } from \"@market/stores/contracts/IUserStore\";\r\nimport AuthStore from \"@market/stores/modules/authStore\";\r\nimport { HasFunctionalityCookieConsent } from \"@pigeon/components/layout/TheBannerCookies\";\r\nimport { MailHelper } from \"@pigeon/helpers/MailHelper\";\r\nimport dayjs from \"@pigeon/i18n/dayjs\";\r\nimport { cloneDeep } from \"lodash-es\";\r\nimport { Action, Module, Mutation, VuexModule } from \"vuex-module-decorators\";\r\n\r\nexport const STORE_TOKEN: \"user\" = \"user\";\r\n@Module({ name: STORE_TOKEN, namespaced: true, dynamic: true, store: store })\r\nexport default class UserStore extends VuexModule implements IUserStore {\r\n static readonly STORE_KEY: string = \"user\";\r\n pending: boolean = false;\r\n user: IUserData | null = null;\r\n intermediary: IUserData | null = null;\r\n\r\n get DefaultAddress(): IAddress {\r\n return {\r\n addressLine: \"\",\r\n district: \"\",\r\n locality: \"\",\r\n postalCode: \"\",\r\n country: \"\",\r\n countryTwoIsoLetters: \"\",\r\n type: AddressTypes.None,\r\n createdAt: new Date()\r\n };\r\n }\r\n\r\n get DefaultPickupAddress(): IAddress {\r\n if (!this.user || !this.user.addresses || !this.user.addresses.length) return { ...this.DefaultAddress };\r\n\r\n const pickupAddresses = cloneDeep(this.user.addresses)\r\n .filter((a) => a.type === AddressTypes.PickUp)\r\n .sort((a: IAddress, b: IAddress) => ArrayHelper.SortDescendingCompare(a.createdAt, b.createdAt));\r\n if (!pickupAddresses.length) {\r\n return { ...this.DefaultAddress, type: AddressTypes.PickUp };\r\n } else {\r\n const lastPickupAddress = pickupAddresses[0];\r\n lastPickupAddress.createdAt = dayjs(lastPickupAddress.createdAt).toDate();\r\n return { ...lastPickupAddress, id: undefined };\r\n }\r\n }\r\n\r\n get DefaultDeliveryAddress(): IAddress {\r\n if (!this.user || !this.user.addresses || !this.user.addresses.length) return { ...this.DefaultAddress };\r\n\r\n const deliveryAddresses = cloneDeep(this.user.addresses)\r\n .filter((a) => a.type === AddressTypes.Delivery)\r\n .sort((a: IAddress, b: IAddress) => ArrayHelper.SortDescendingCompare(a.createdAt, b.createdAt));\r\n if (!deliveryAddresses || !deliveryAddresses.length) {\r\n return { ...this.DefaultAddress, type: AddressTypes.Delivery, id: undefined };\r\n } else {\r\n const lastDeliveryAddress = deliveryAddresses[0];\r\n lastDeliveryAddress.createdAt = dayjs(lastDeliveryAddress.createdAt).toDate();\r\n return { ...lastDeliveryAddress, id: undefined };\r\n }\r\n }\r\n\r\n get DefaultBillingAddress(): IAddress {\r\n if (!this.user || !this.user.addresses || !this.user.addresses.length) return { ...this.DefaultAddress };\r\n\r\n const billingAddresses = cloneDeep(this.user.addresses)\r\n .filter((a) => a.type === AddressTypes.Billing)\r\n .sort((a: IAddress, b: IAddress) => ArrayHelper.SortDescendingCompare(a.createdAt, b.createdAt));\r\n if (!billingAddresses || !billingAddresses.length) {\r\n return { ...this.DefaultAddress, type: AddressTypes.Billing, id: undefined };\r\n } else {\r\n const lastBillingAddress = billingAddresses[0];\r\n lastBillingAddress.createdAt = dayjs(lastBillingAddress.createdAt).toDate();\r\n return { ...lastBillingAddress, id: undefined };\r\n }\r\n }\r\n\r\n get MailProviderWebSite(): string {\r\n if (!this.user) return \"\";\r\n\r\n return MailHelper.HrefToMailProviderWebSite(this.user.email);\r\n }\r\n\r\n @Mutation\r\n UPDATE_USER_DATA(userData: IUserData): void {\r\n this.user = userData;\r\n }\r\n\r\n @Mutation\r\n UPDATE_VENDOR_DATA(vendorData: IVendor): void {\r\n if (!this.user) return;\r\n\r\n this.user.vendor = vendorData;\r\n }\r\n\r\n @Mutation\r\n UPDATE_VENDOR_DEFAULT_FANCIER_ID(defaultFancierId: number): void {\r\n if (!this.user || !this.user.vendor) return;\r\n\r\n this.user.vendor.defaultFancierId = defaultFancierId;\r\n }\r\n\r\n @Mutation\r\n UPDATE_VENDOR_DEFAULT_FANCIER_PROFILE_ID(defaultProfileId: number): void {\r\n if (!this.user || !this.user.vendor) return;\r\n\r\n this.user.vendor.defaultFancierProfileId = defaultProfileId;\r\n }\r\n\r\n @Mutation\r\n ADD_ADDRESS(address: IAddress): void {\r\n if (!this.user) return;\r\n this.user.addresses.push(address);\r\n }\r\n\r\n @Mutation\r\n UPDATE_PREFERRED_LANGUAGE(locale: string) {\r\n if (!this.user) return;\r\n\r\n this.user.preferredLanguage = locale;\r\n }\r\n\r\n @Mutation\r\n UPDATE_FLAG_AGREE_TO_AUCTION_CONDITIONS(agree: boolean) {\r\n if (!this.user) return;\r\n\r\n this.user.flagAgreeToAuctionConditions = agree;\r\n }\r\n\r\n @Mutation\r\n SET_INTERMEDIARY(intermediary: IUserData) {\r\n this.intermediary = intermediary;\r\n }\r\n\r\n @Mutation\r\n RESET(): void {\r\n this.user = null;\r\n this.intermediary = null;\r\n }\r\n\r\n @Action\r\n AddAddress(address: IAddress): void {\r\n if (!address) return;\r\n\r\n address.createdAt = new Date();\r\n this.ADD_ADDRESS(address);\r\n this.Store();\r\n }\r\n\r\n @Action\r\n InitUserData(user: IUserData) {\r\n if (!user) return;\r\n\r\n this.UPDATE_USER_DATA(user);\r\n this.Store();\r\n }\r\n\r\n @Action\r\n InitVendorData(vendor: IVendor) {\r\n if (!vendor || this.user?.vendor) return;\r\n\r\n this.UPDATE_VENDOR_DATA(vendor);\r\n this.Store();\r\n }\r\n\r\n @Action\r\n InitIntermediary(user: IUserData) {\r\n this.SET_INTERMEDIARY(user);\r\n }\r\n\r\n @Action\r\n UpdateVendorDefaultFancierId(defaultFancierId: number) {\r\n if (this.user?.vendor) return;\r\n\r\n this.UPDATE_VENDOR_DEFAULT_FANCIER_ID(defaultFancierId);\r\n this.Store();\r\n }\r\n\r\n @Action\r\n UpdateVendorDefaultFancierProfileId(defaultProfileId: number) {\r\n if (this.user?.vendor) return;\r\n\r\n this.UPDATE_VENDOR_DEFAULT_FANCIER_PROFILE_ID(defaultProfileId);\r\n this.Store();\r\n }\r\n\r\n @Action\r\n UpdateUserPreferredLanguage(locale: string) {\r\n if (!this.user || this.user.preferredLanguage === locale) return;\r\n\r\n this.UPDATE_PREFERRED_LANGUAGE(locale);\r\n this.Store();\r\n }\r\n\r\n @Action\r\n UpdateMemberFlagPolicy(agreeToAuctionConditions: boolean): void {\r\n if (!this.user || !agreeToAuctionConditions || this.user.flagAgreeToAuctionConditions) return;\r\n\r\n this.UPDATE_FLAG_AGREE_TO_AUCTION_CONDITIONS(agreeToAuctionConditions);\r\n this.Store();\r\n }\r\n\r\n @Action\r\n Reset(): void {\r\n this.RESET();\r\n this.ClearStorage();\r\n }\r\n\r\n @Action\r\n Store(): void {\r\n if (!HasFunctionalityCookieConsent()) return;\r\n\r\n localStorage.setItem(UserStore.STORE_KEY, JSON.stringify(this.user));\r\n }\r\n\r\n @Action\r\n ClearStorage(): void {\r\n localStorage.removeItem(UserStore.STORE_KEY);\r\n }\r\n\r\n @Action\r\n async Restore() {\r\n const userDataStored = localStorage.getItem(UserStore.STORE_KEY);\r\n\r\n try {\r\n if (userDataStored) {\r\n const userData = JSON.parse(userDataStored) as IUserData;\r\n this.UPDATE_USER_DATA(userData);\r\n }\r\n // Note: retro compatibility\r\n else if (localStorage.getItem(AuthStore.STORE_KEY)) {\r\n const sessionStored: string = localStorage.getItem(AuthStore.STORE_KEY) as string;\r\n const session: IAuthSession = JSON.parse(sessionStored) as IAuthSession;\r\n if (session.userData) this.UPDATE_USER_DATA(session.userData as IUserData);\r\n }\r\n } catch (error: any) {\r\n console.error(error);\r\n this.ClearStorage();\r\n }\r\n }\r\n}\r\n","import { store } from \"@market/stores\";\r\nimport { IAccountStore } from \"@market/stores/contracts/IAccountStore\";\r\nimport { IAdminDashboardStore } from \"@market/stores/contracts/IAdminDashboardStore\";\r\nimport { IAppDataStore } from \"@market/stores/contracts/IAppDataStore\";\r\nimport { IApprovalStore } from \"@market/stores/contracts/IApprovalStore\";\r\nimport { IAppsStore } from \"@market/stores/contracts/IAppsStore\";\r\nimport { IAppStore } from \"@market/stores/contracts/IAppStore\";\r\nimport { IAuthStore } from \"@market/stores/contracts/IAuthStore\";\r\nimport { ICartStore } from \"@market/stores/contracts/ICartStore\";\r\nimport { ICheckoutStore } from \"@market/stores/contracts/ICheckoutStore\";\r\nimport { IDepositStore } from \"@market/stores/contracts/IDepositStore\";\r\nimport { IDialogsStore } from \"@market/stores/contracts/IDialogsStore\";\r\nimport { IDialogStore } from \"@market/stores/contracts/IDialogStore\";\r\nimport { IFavoriteStore } from \"@market/stores/contracts/IFavoriteStore\";\r\nimport { IJwtStore } from \"@market/stores/contracts/IJwtStore\";\r\nimport { INotificationStore } from \"@market/stores/contracts/INotificationStore\";\r\nimport { IPigeonStore } from \"@market/stores/contracts/IPigeonStore\";\r\nimport { ISalesCatalogStore } from \"@market/stores/contracts/ISalesCatalogStore\";\r\nimport { ISaleStore } from \"@market/stores/contracts/ISaleStore\";\r\nimport { ISearchStore } from \"@market/stores/contracts/ISearchStore\";\r\nimport { ISettlementStore } from \"@market/stores/contracts/ISettlementStore\";\r\nimport { IUserStore } from \"@market/stores/contracts/IUserStore\";\r\nimport { IVendorDashboardStore } from \"@market/stores/contracts/IVendorDashboardStore\";\r\nimport AccountStore from \"@market/stores/modules/accountStore\";\r\nimport AppDataStore from \"@market/stores/modules/appDataStore\";\r\nimport ApprovalStore from \"@market/stores/modules/approvalStore\";\r\nimport AppsStore from \"@market/stores/modules/appsStore\";\r\nimport AppStore from \"@market/stores/modules/appStore\";\r\nimport AuthStore from \"@market/stores/modules/authStore\";\r\nimport CartStore from \"@market/stores/modules/cartStore\";\r\nimport SalesCatalogStore from \"@market/stores/modules/catalogStore.sales\";\r\nimport CheckoutStore from \"@market/stores/modules/checkoutStore\";\r\nimport AdminDashboardStore from \"@market/stores/modules/dashboard.admin\";\r\nimport VendorDashboardStore from \"@market/stores/modules/dashboard.vendor\";\r\nimport DepositStore from \"@market/stores/modules/depositStore\";\r\nimport DialogsStore from \"@market/stores/modules/dialogsStore\";\r\nimport CartDialogStore from \"@market/stores/modules/dialogStore.cart\";\r\nimport SignInDialogStore from \"@market/stores/modules/dialogStore.signIn\";\r\nimport SignOnDialogStore from \"@market/stores/modules/dialogStore.signOn\";\r\nimport SignUpDialogStore from \"@market/stores/modules/dialogStore.signUp\";\r\nimport SignUpVendorDialogStore from \"@market/stores/modules/dialogStore.signUpVendor\";\r\nimport FavoriteStore from \"@market/stores/modules/favoriteStore\";\r\nimport JwtStore from \"@market/stores/modules/jwtStore\";\r\nimport NotificationStore from \"@market/stores/modules/notificationStore\";\r\nimport PigeonStore from \"@market/stores/modules/pigeonStore\";\r\nimport SaleStore from \"@market/stores/modules/saleStore\";\r\nimport SearchStore from \"@market/stores/modules/searchStore\";\r\nimport SettlementStore from \"@market/stores/modules/settlementStore\";\r\nimport UserStore from \"@market/stores/modules/userStore\";\r\nimport { getModule } from \"vuex-module-decorators\";\r\n\r\n// Store\r\n// export const store = new Vuex.Store({}); // Must be instantiated in stores/index.ts file\r\n// Store modules\r\nexport const accountStore: IAccountStore = getModule(AccountStore);\r\nexport const appDataStore: IAppDataStore = getModule(AppDataStore);\r\nexport const appStore: IAppStore = getModule(AppStore);\r\nexport const approvalStore: IApprovalStore = getModule(ApprovalStore);\r\nexport const appsStore: IAppsStore = getModule(AppsStore);\r\nexport const authStore: IAuthStore = getModule(AuthStore);\r\nexport const cartDialogStore: IDialogStore = getModule(CartDialogStore);\r\nexport const cartStore: ICartStore = getModule(CartStore);\r\nexport const checkoutStore: ICheckoutStore = getModule(CheckoutStore);\r\nexport const adminDashboardStore: IAdminDashboardStore = getModule(AdminDashboardStore);\r\nexport const vendorDashboardStore: IVendorDashboardStore = getModule(VendorDashboardStore);\r\nexport const depositStore: IDepositStore = getModule(DepositStore);\r\nexport const dialogsStore: IDialogsStore = getModule(DialogsStore);\r\nexport const favoriteStore: IFavoriteStore = getModule(FavoriteStore);\r\nexport const jwtStore: IJwtStore = getModule(JwtStore);\r\nexport const notificationStore: INotificationStore = getModule(NotificationStore);\r\nexport const pigeonStore: IPigeonStore = getModule(PigeonStore);\r\nexport const saleStore: ISaleStore = getModule(SaleStore);\r\nexport const salesCatalogStore: ISalesCatalogStore = getModule(SalesCatalogStore);\r\nexport const searchStore: ISearchStore = getModule(SearchStore);\r\nexport const settlementStore: ISettlementStore = getModule(SettlementStore);\r\nexport const signInDialogStore: IDialogStore = getModule(SignInDialogStore);\r\nexport const signOnDialogStore: IDialogStore = getModule(SignOnDialogStore);\r\nexport const signUpDialogStore: IDialogStore = getModule(SignUpDialogStore);\r\nexport const signUpVendorDialogStore: IDialogStore = getModule(SignUpVendorDialogStore);\r\nexport const userStore: IUserStore = getModule(UserStore);\r\n\r\nexport function RestoreUserData() {\r\n // Restore data\r\n jwtStore.Restore();\r\n userStore.Restore();\r\n accountStore.Restore();\r\n cartStore.Restore();\r\n checkoutStore.Restore();\r\n\r\n // Trigger when storage has changed\r\n window.addEventListener(\"storage\", (event: StorageEvent) => {\r\n if (event.key === JwtStore.ACCESS_TOKEN_STORE_KEY || event.key === JwtStore.REFRESH_TOKEN_STORE_KEY)\r\n jwtStore.Restore();\r\n if (event.key === UserStore.STORE_KEY) userStore.Restore();\r\n if (event.key === AccountStore.STORE_KEY) accountStore.Restore();\r\n if (event.key === CartStore.STORE_KEY) cartStore.Restore();\r\n if (event.key === CheckoutStore.STORE_KEY) checkoutStore.Restore();\r\n });\r\n}\r\n\r\nexport async function InitVisitorData() {\r\n await appDataStore.InitializeCountries();\r\n await appDataStore.InitializeRingAreas();\r\n}\r\n\r\nexport async function InitUserData() {\r\n if (!authStore.IsMember) return;\r\n\r\n RestoreUserData();\r\n await favoriteStore.FetchFavorites();\r\n await notificationStore.FetchNotifications();\r\n}\r\n\r\nexport function WatchAuthData() {\r\n // See: https://vuex.vuejs.org/api/#watch\r\n store.watch(\r\n () => authStore.IsMember,\r\n async (isMember: boolean) => {\r\n // Fetch on user login\r\n if (isMember) {\r\n await favoriteStore.FetchFavorites();\r\n await notificationStore.FetchNotifications();\r\n if (!accountStore.AccountIsVerified) {\r\n signUpDialogStore.Open();\r\n }\r\n }\r\n // Clear on user logout\r\n else {\r\n favoriteStore.Reset();\r\n notificationStore.Reset();\r\n }\r\n }\r\n );\r\n\r\n store.watch(\r\n () => authStore.IsApprover,\r\n async (isApprover: boolean) => {\r\n // Fetch on approver login\r\n if (isApprover) await approvalStore.FetchApprovalSales();\r\n // Clear on approver logout\r\n else approvalStore.Reset();\r\n }\r\n );\r\n\r\n store.watch(\r\n () => authStore.IsAdministrator,\r\n async (isAdministrator: boolean) => {\r\n // Fetch on administrator login\r\n if (isAdministrator) await settlementStore.FetchPendingSettlements();\r\n // Clear on administraotr logout\r\n else settlementStore.Reset();\r\n }\r\n );\r\n}\r\n","// Stores\r\nimport { IStoreModules } from \"@market/stores/contracts/IStoreModules\";\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport { config } from \"vuex-module-decorators\";\r\n\r\nVue.use(Vuex);\r\n\r\n// Store\r\nexport const store = new Vuex.Store({});\r\n// Set rawError to true by default on all @Action decorators\r\nconfig.rawError = true;\r\nexport default store;\r\n","import mitt, { Emitter } from \"mitt\";\r\n\r\ntype OptionalHandler = void | (() => void);\r\nexport type UiBusEvents = {\r\n [\"bingmaps-loaded\"]: OptionalHandler;\r\n [\"search-bar-toggled\"]: OptionalHandler;\r\n [\"login\"]: OptionalHandler;\r\n [\"logout\"]: OptionalHandler;\r\n};\r\n\r\nexport const uiBus: Emitter = mitt();\r\n","import { Component, Emit, Prop, Vue } from \"vue-property-decorator\";\r\nimport { Location } from \"vue-router\";\r\n\r\nexport enum AlertTypes {\r\n Info = \"info\",\r\n Warning = \"warning\",\r\n Danger = \"danger\",\r\n Success = \"success\"\r\n}\r\n\r\n@Component\r\nexport default class AppAlert extends Vue {\r\n @Prop({ validator: (value: AlertTypes) => Object.values(AlertTypes).includes(value) })\r\n readonly type: AlertTypes;\r\n @Prop()\r\n readonly icon?: string | string[];\r\n @Prop({ default: true })\r\n readonly outline: boolean;\r\n @Prop({ default: false })\r\n readonly inline: boolean;\r\n @Prop()\r\n readonly linkLabel?: string;\r\n @Prop()\r\n readonly linkHref?: string;\r\n @Prop()\r\n readonly linkExternal?: boolean;\r\n @Prop()\r\n readonly linkTo?: Location;\r\n @Prop()\r\n readonly buttonLabel?: string;\r\n @Prop()\r\n readonly caption?: string;\r\n\r\n get CssClassAlertType(): string {\r\n let cssClasses = `alert-${this.type}`;\r\n\r\n if (this.inline) cssClasses += \" inline-alert\";\r\n\r\n return cssClasses;\r\n }\r\n\r\n get CssClassAlert(): string {\r\n let cssClasses = this.CssClassAlertType;\r\n\r\n if (this.outline) {\r\n cssClasses += \" outline-alert\";\r\n }\r\n if (!this.icon) {\r\n cssClasses += \" no-icon-alert\";\r\n }\r\n\r\n return cssClasses;\r\n }\r\n\r\n @Emit(\"action\")\r\n public Action(): void {}\r\n}\r\n","import { Component, Prop, Vue } from \"vue-property-decorator\";\r\n\r\nexport enum BadgeLevels {\r\n Low = \"low\",\r\n Medium = \"medium\",\r\n High = \"high\"\r\n}\r\n\r\n@Component\r\nexport default class AppBadge extends Vue {\r\n @Prop()\r\n readonly count: number;\r\n @Prop()\r\n readonly max?: number;\r\n @Prop({\r\n default: BadgeLevels.Low,\r\n validator: (value: BadgeLevels) => Object.values(BadgeLevels).includes(value)\r\n })\r\n readonly level: BadgeLevels;\r\n\r\n get Count(): string {\r\n if (!this.max) {\r\n return this.count.toString();\r\n }\r\n\r\n if (this.count > this.max) {\r\n return this.max + \"+\";\r\n } else {\r\n return this.count.toString();\r\n }\r\n }\r\n}\r\n","import NavStepperStepInstance from \"@pigeon/components/nav/NavStepperStep\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { Component, Prop, Vue, Watch } from \"vue-property-decorator\";\r\nimport { Location } from \"vue-router\";\r\n\r\nexport enum StepperBehaviorModes {\r\n RouteName = \"routeName\",\r\n RouteMeta = \"routeMeta\",\r\n Parent = \"parent\"\r\n}\r\n\r\n@Component\r\nexport default class NavStepper extends Vue {\r\n steps: string[] = [];\r\n\r\n @Prop()\r\n readonly step?: string;\r\n @Prop({\r\n default: StepperBehaviorModes.RouteName,\r\n validator: (value: StepperBehaviorModes) => Object.values(StepperBehaviorModes).includes(value)\r\n })\r\n readonly behaviorMode: StepperBehaviorModes;\r\n\r\n currentStepId: string | null = null;\r\n\r\n get Steps(): string[] {\r\n return this.steps;\r\n }\r\n\r\n get HasPreviousSteps() {\r\n if (!this.currentStepId) return false;\r\n\r\n const stepIndex = this.steps.indexOf(this.currentStepId);\r\n return stepIndex > 0 && this.steps.length > 1;\r\n }\r\n\r\n get HasNextSteps() {\r\n if (!this.currentStepId) return false;\r\n\r\n const stepIndex = this.steps.indexOf(this.currentStepId);\r\n return stepIndex >= 0 && this.steps.length > 1 && stepIndex < this.steps.length - 1;\r\n }\r\n\r\n mounted() {\r\n this.ObserveCurrentStepId();\r\n }\r\n\r\n @Watch(nameof(\"$route\"), { immediate: true })\r\n @Watch(nameof(\"step\"), { immediate: true })\r\n ObserveCurrentStepId() {\r\n this.currentStepId = this.CurrentStepId();\r\n }\r\n\r\n public CurrentStepId(): string | null {\r\n if (!this.steps || !this.steps.length) return null;\r\n\r\n if (this.behaviorMode === StepperBehaviorModes.RouteName) {\r\n return this.$route?.name ?? null;\r\n } else if (this.behaviorMode === StepperBehaviorModes.RouteMeta) {\r\n return this.$route?.meta?.step;\r\n } else if (this.behaviorMode === StepperBehaviorModes.Parent) {\r\n return this.step ?? null;\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n Register(stepId: string) {\r\n if (!this.steps.includes(stepId)) {\r\n this.steps.push(stepId);\r\n }\r\n }\r\n\r\n Unregister(stepId: string) {\r\n const index = this.steps.indexOf(stepId);\r\n\r\n if (index >= 0) {\r\n this.steps.splice(index, 1);\r\n }\r\n }\r\n\r\n private GetChildStep(childStepId: string): NavStepperStepInstance | null {\r\n if (!childStepId) return null;\r\n\r\n let childStep = null;\r\n\r\n for (let index: number = 0; index < this.$children.length; index++) {\r\n const element: NavStepperStepInstance = this.$children[index] as NavStepperStepInstance;\r\n\r\n if (element.stepId && element.stepId === childStepId) {\r\n childStep = element;\r\n break;\r\n }\r\n }\r\n\r\n return childStep;\r\n }\r\n\r\n private GetPreviousStep(): NavStepperStepInstance | null {\r\n if (!this.steps || !this.steps.length || !this.currentStepId) return null;\r\n\r\n const currentStepIndex = this.steps.indexOf(this.currentStepId);\r\n const previousStepIndex = currentStepIndex > 1 ? currentStepIndex - 1 : 0;\r\n const previousStepId = this.steps[previousStepIndex];\r\n return this.GetChildStep(previousStepId);\r\n }\r\n\r\n private GetNextStep(): NavStepperStepInstance | null {\r\n if (!this.steps || !this.steps.length || !this.currentStepId) return null;\r\n\r\n const currentStepIndex = this.steps.indexOf(this.currentStepId);\r\n const nextStepIndex = currentStepIndex < this.steps.length - 1 ? currentStepIndex + 1 : this.steps.length;\r\n const nextStepId = this.steps[nextStepIndex];\r\n return this.GetChildStep(nextStepId);\r\n }\r\n\r\n public GetPreviousStepLocation(): Location | undefined {\r\n if (this.behaviorMode !== StepperBehaviorModes.RouteMeta) return undefined;\r\n\r\n const previousStep: NavStepperStepInstance | null = this.GetPreviousStep();\r\n return previousStep ? previousStep.to : undefined;\r\n }\r\n\r\n public GetNextStepLocation(): Location | undefined {\r\n if (this.behaviorMode !== StepperBehaviorModes.RouteMeta) return undefined;\r\n\r\n const nextStep: NavStepperStepInstance | null = this.GetNextStep();\r\n return nextStep ? nextStep.to : undefined;\r\n }\r\n\r\n public GoToPreviousStep(): void {\r\n if (this.behaviorMode !== StepperBehaviorModes.Parent) return;\r\n\r\n const previousStep: NavStepperStepInstance | null = this.GetPreviousStep();\r\n if (previousStep && previousStep.stepId) {\r\n this.currentStepId = previousStep.stepId;\r\n }\r\n }\r\n\r\n public GoToNextStep(): void {\r\n if (this.behaviorMode !== StepperBehaviorModes.Parent) return;\r\n\r\n const nextStep: NavStepperStepInstance | null = this.GetNextStep();\r\n if (nextStep && nextStep.stepId) {\r\n this.currentStepId = nextStep.stepId;\r\n }\r\n }\r\n}\r\n","import { ProductFactory } from \"@api/factories/productFactory\";\r\nimport { RelationshipTypes } from \"@api/models/market/constants/RelationshipTypes\";\r\nimport { SexTypes } from \"@api/models/market/constants/SexTypes\";\r\nimport { IPigeon } from \"@api/models/market/IPigeon\";\r\nimport PigeonAssetParent from \"@pigeon/components/pigeon/PigeonAssetParent.vue\";\r\nimport { nameof } from \"@pigeon/extensions/nameof\";\r\nimport { Component, Emit, Model, Prop, Ref, Vue, Watch } from \"vue-property-decorator\";\r\nimport { AlertTypes } from \"../app/AppAlert\";\r\n\r\nexport enum PedigreeDiagramOrientations {\r\n Horizontal = \"horizontal\",\r\n Vertical = \"vertical\"\r\n}\r\n\r\n@Component({\r\n components: {\r\n AssetParent: PigeonAssetParent\r\n }\r\n})\r\nexport default class PigeonPedigreeDiagram extends Vue {\r\n @Model(\"select\")\r\n readonly selected: IPigeon | null;\r\n\r\n @Prop({ type: Array, default: () => [] })\r\n readonly pedigree: IPigeon[];\r\n @Prop({ default: 2 })\r\n readonly generation!: number;\r\n @Prop({ default: true })\r\n readonly hasGenerationSelect: boolean;\r\n @Prop({ default: false })\r\n readonly parentsLinked: boolean;\r\n @Prop({\r\n default: PedigreeDiagramOrientations.Horizontal,\r\n validator: (value: PedigreeDiagramOrientations) => Object.values(PedigreeDiagramOrientations).includes(value)\r\n })\r\n readonly orientation: PedigreeDiagramOrientations;\r\n\r\n @Ref()\r\n readonly refDiagramTree: HTMLElement;\r\n\r\n AlertTypes = AlertTypes;\r\n documentIsInFullScreen: boolean = false;\r\n selectedGeneration: number = this.generation;\r\n generationOptions: any = [\r\n { label: \"1 generation [parents]\", value: 1 },\r\n { label: \"2 generations [grand parents]\", value: 2 },\r\n { label: \"3 generations [great grand parents]\", value: 3 }\r\n ];\r\n\r\n private grab: boolean = false;\r\n private startX: number = 0;\r\n private scrollLeft: number = 0;\r\n\r\n mounted(): void {\r\n this.ListenFullScreenChange();\r\n }\r\n\r\n private ListenFullScreenChange(): void {\r\n document.addEventListener(\"fullscreenchange\", () => {\r\n this.documentIsInFullScreen = document.fullscreen || !!document.fullscreenElement;\r\n });\r\n document.addEventListener(\"mozfullscreenchange\", () => {\r\n this.documentIsInFullScreen = document.fullscreen || !!(document as any).mozFullScreenElement;\r\n });\r\n document.addEventListener(\"webkitfullscreenchange\", () => {\r\n this.documentIsInFullScreen = document.fullscreen || !!(document as any).webkitFullscreenElement;\r\n });\r\n document.addEventListener(\"msfullscreenchange\", () => {\r\n this.documentIsInFullScreen = document.fullscreen || !!(document as any).msFullscreenElement;\r\n });\r\n }\r\n\r\n @Watch(nameof(\"generation\"), { immediate: true })\r\n ObserveGeneration() {\r\n this.selectedGeneration = this.generation;\r\n }\r\n\r\n public GetRelationship(pigeon: IPigeon | undefined): string {\r\n if (!pigeon || !pigeon.relationship) return \"\";\r\n\r\n return pigeon.relationship;\r\n }\r\n\r\n public GrabStart(event: MouseEvent): void {\r\n this.grab = true;\r\n\r\n const slider: HTMLElement = this.refDiagramTree;\r\n if (!slider) return;\r\n slider.classList.add(\"is-grabbed\");\r\n this.startX = event.pageX - slider.offsetLeft;\r\n this.scrollLeft = slider.scrollLeft;\r\n }\r\n\r\n public GrabStop(event: Event): void {\r\n this.grab = false;\r\n\r\n if (!this.refDiagramTree) return;\r\n this.refDiagramTree.classList.remove(\"is-grabbed\");\r\n }\r\n\r\n public GrabMove(event: MouseEvent): void {\r\n if (!this.grab) return;\r\n\r\n event.preventDefault();\r\n\r\n const slider: HTMLElement = this.refDiagramTree;\r\n if (!slider) return;\r\n\r\n const x = event.pageX - slider.offsetLeft;\r\n const walk = (x - this.startX) * 1;\r\n slider.scrollLeft = this.scrollLeft - walk;\r\n }\r\n\r\n @Emit(\"fullscreen\")\r\n public SwitchPedigreeToFullScreen(): void {}\r\n\r\n public SwitchDiagramToFullScreen(): void {\r\n if (!this.refDiagramTree) return;\r\n const element: any = this.refDiagramTree;\r\n\r\n if (element.requestFullscreen) {\r\n element.requestFullscreen();\r\n } else if (element.webkitRequestFullscreen) {\r\n element.webkitRequestFullscreen();\r\n } else if (element.mozRequestFullScreen) {\r\n element.mozRequestFullScreen();\r\n } else if (element.msRequestFullscreen) {\r\n element.msRequestFullscreen();\r\n } else {\r\n console.warn(\"Fullscreen API is not supported.\");\r\n }\r\n }\r\n\r\n public ExitFullScreen(): void {\r\n const browserDocument: any = document as any;\r\n\r\n if (browserDocument.exitFullscreen) {\r\n browserDocument.exitFullscreen();\r\n } else if (browserDocument.webkitExitFullscreen) {\r\n /* Safari */\r\n browserDocument.webkitExitFullscreen();\r\n } else if (browserDocument.msExitFullscreen) {\r\n /* IE11 */\r\n browserDocument.msExitFullscreen();\r\n }\r\n }\r\n\r\n @Emit(\"select\")\r\n public OnSelect(pigeon: IPigeon) {\r\n if (pigeon === this.selected) return;\r\n\r\n return pigeon;\r\n }\r\n\r\n @Emit(\"select-generation\")\r\n public OnSelectGeneration(selectedGeneration: string) {\r\n if (!selectedGeneration) return;\r\n\r\n this.selectedGeneration = parseInt(selectedGeneration);\r\n return this.selectedGeneration;\r\n }\r\n\r\n public GetUnknowPigeon(relationship = \"Parent\"): IPigeon {\r\n return ProductFactory.GetUnknownPigeon(relationship) as IPigeon;\r\n }\r\n\r\n // Getter Child\r\n // Warning: First pigeon of pedigree must be the child\r\n get Child(): IPigeon | undefined {\r\n const child: IPigeon = this.pedigree[0];\r\n\r\n if (!child || !child.id) {\r\n return child;\r\n }\r\n\r\n return this.GetParentPigeon(\"Pigeon\", child.id);\r\n }\r\n\r\n // Getters Parents\r\n get Father(): IPigeon | undefined {\r\n if (!this.Child || !this.Child.fatherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Male,\r\n relationship: RelationshipTypes.Father\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"Father\", this.Child.fatherId);\r\n }\r\n\r\n get Mother(): IPigeon | undefined {\r\n if (!this.Child || !this.Child.motherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Female,\r\n relationship: RelationshipTypes.Mother\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"Mother\", this.Child.motherId);\r\n }\r\n\r\n // Getters GrandParents\r\n get PaternalGrandFather(): IPigeon | undefined {\r\n if (!this.Father || !this.Father.fatherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Male,\r\n relationship: RelationshipTypes.GrandFather\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G.Father\", this.Father.fatherId);\r\n }\r\n\r\n get PaternalGrandMother(): IPigeon | undefined {\r\n if (!this.Father || !this.Father.motherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Female,\r\n relationship: RelationshipTypes.GrandMother\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G.Mother\", this.Father.motherId);\r\n }\r\n\r\n get MaternalGrandFather(): IPigeon | undefined {\r\n if (!this.Mother || !this.Mother.fatherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Male,\r\n relationship: RelationshipTypes.GrandFather\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G.Father\", this.Mother.fatherId);\r\n }\r\n\r\n get MaternalGrandMother(): IPigeon | undefined {\r\n if (!this.Mother || !this.Mother.motherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Female,\r\n relationship: RelationshipTypes.GrandMother\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G.Mother\", this.Mother.motherId);\r\n }\r\n\r\n // Getters Great GrandParents\r\n get PaternalGreatGrandFatherFromGFather(): IPigeon | undefined {\r\n if (!this.PaternalGrandFather || !this.PaternalGrandFather.fatherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Male,\r\n relationship: RelationshipTypes.GreatGrandFather\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Father\", this.PaternalGrandFather.fatherId);\r\n }\r\n\r\n get PaternalGreatGrandMotherFromGFather(): IPigeon | undefined {\r\n if (!this.PaternalGrandFather || !this.PaternalGrandFather.motherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Female,\r\n relationship: RelationshipTypes.GreatGrandMother\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Mother\", this.PaternalGrandFather.motherId);\r\n }\r\n\r\n get PaternalGreatGrandFatherFromGMother(): IPigeon | undefined {\r\n if (!this.PaternalGrandMother || !this.PaternalGrandMother.fatherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Male,\r\n relationship: RelationshipTypes.GreatGrandFather\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Father\", this.PaternalGrandMother.fatherId);\r\n }\r\n\r\n get PaternalGreatGrandMotherFromGMother(): IPigeon | undefined {\r\n if (!this.PaternalGrandMother || !this.PaternalGrandMother.motherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Female,\r\n relationship: RelationshipTypes.GreatGrandMother\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Mother\", this.PaternalGrandMother.motherId);\r\n }\r\n\r\n get MaternalGreatGrandFatherFromGFather(): IPigeon | undefined {\r\n if (!this.MaternalGrandFather || !this.MaternalGrandFather.fatherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Male,\r\n relationship: RelationshipTypes.GreatGrandFather\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Father\", this.MaternalGrandFather.fatherId);\r\n }\r\n\r\n get MaternalGreatGrandMotherFromGFather(): IPigeon | undefined {\r\n if (!this.MaternalGrandFather || !this.MaternalGrandFather.motherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Female,\r\n relationship: RelationshipTypes.GreatGrandMother\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Mother\", this.MaternalGrandFather.motherId);\r\n }\r\n\r\n get MaternalGreatGrandFatherFromGMother(): IPigeon | undefined {\r\n if (!this.MaternalGrandMother || !this.MaternalGrandMother.fatherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Male,\r\n relationship: RelationshipTypes.GreatGrandFather\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Father\", this.MaternalGrandMother.fatherId);\r\n }\r\n\r\n get MaternalGreatGrandMotherFromGMother(): IPigeon | undefined {\r\n if (!this.MaternalGrandMother || !this.MaternalGrandMother.motherId) {\r\n return {\r\n ...(ProductFactory.GetDefaultParentIdentity() as IPigeon),\r\n sex: SexTypes.Female,\r\n relationship: RelationshipTypes.GreatGrandMother\r\n };\r\n }\r\n\r\n return this.GetParentPigeon(\"G. G.Mother\", this.MaternalGrandMother.motherId);\r\n }\r\n\r\n // Generic getter parent\r\n private GetParentPigeon(relationship: string, parentId: number): IPigeon | undefined {\r\n const parent = this.pedigree.find((pigeon) => {\r\n return pigeon.id === parentId;\r\n });\r\n\r\n if (parent === null || typeof parent === \"undefined\") {\r\n return this.GetUnknowPigeon(relationship);\r\n }\r\n\r\n return parent;\r\n }\r\n}\r\n","export enum CatalogFilterTypes {\r\n Vendor = \"vendor\",\r\n Contributor = \"contributor\",\r\n Sex = \"sex\",\r\n Age = \"age\",\r\n YearMin = \"birthYearMin\",\r\n YearMax = \"birthYearMax\",\r\n Discipline = \"discipline\",\r\n SaleType = \"type\",\r\n ProductType = \"product\",\r\n Country = \"country\",\r\n PriceMin = \"priceMin\",\r\n PriceMax = \"priceMax\",\r\n Status = \"status\",\r\n FlagSharedCatalog = \"flagSharedCatalog\",\r\n FlagArchived = \"flagArchived\",\r\n FlagApproved = \"flagApproved\",\r\n FlagVoucher = \"flagVoucher\",\r\n EndDateLowerThat = \"endDateLT\",\r\n StartDateGreaterOrEqualAt = \"startDateGE\",\r\n EndDateGreaterOrEqualAt = \"endDateGE\",\r\n StartDateLowerThat = \"startDateLT\",\r\n Auction = \"auction\",\r\n PaymentStatus = \"paymentStatus\",\r\n TransferStatus = \"transferStatus\",\r\n CreatedDateBetween = \"createdDateBetween\",\r\n Shop = \"shop\",\r\n Favorite = \"favorite\"\r\n}\r\n","export enum CatalogSortDirectionTypes {\r\n Ascending = \"asc\",\r\n Descending = \"desc\"\r\n}\r\n","export enum CatalogSortTypes {\r\n Name = \"Name\",\r\n Ring = \"Ring\",\r\n Price = \"Price\",\r\n PurchaseDate = \"PurchaseDate\",\r\n SaleStartDate = \"SaleStartDate\",\r\n SaleEndDate = \"SaleEndDate\",\r\n PublishedDate = \"PublishDate\"\r\n}\r\n","export enum CatalogViewTypes {\r\n Card = \"card\",\r\n Pane = \"pane\",\r\n Tile = \"tile\",\r\n Table = \"table\"\r\n}\r\n","export enum NotificationsFilterTypes {\r\nType = \"Notification\",\r\nFromDaysAgo = \"XDaysBeforeCreatedDate\",\r\nFromDate = \"FromCreatedDate\"\r\n}\r\n","export enum PigeonAssetModes {\r\n Alone = \"alone\",\r\n Combined = \"combined\"\r\n}\r\n","export enum ProductDisplayModes {\r\n Full = \"full\",\r\n Compact = \"compact\",\r\n Minimum = \"minimum\"\r\n}\r\n","export const nameof = (key: keyof T, instance?: T): keyof T => key;\r\n","export class MailHelper {\r\n public static HrefToMailProviderWebSite(email: string): string {\r\n if (!email) {\r\n return \"\";\r\n }\r\n\r\n const chunks = email.split(\"@\");\r\n const domain = chunks[1];\r\n\r\n return \"//\" + domain;\r\n }\r\n}\r\n","export class MathHelper {\r\n public static RoundTo2decimal(number: number): number {\r\n // See: https://stackoverflow.com/questions/11832914/how-to-round-to-at-most-2-decimal-places-if-necessary\r\n return Math.round((number + Number.EPSILON) * 100) / 100;\r\n }\r\n\r\n public static RoundToInteger(number: number): number {\r\n return Math.round(number);\r\n }\r\n}\r\n","import dayjs from \"dayjs\";\r\nimport \"dayjs/locale/en\";\r\nimport \"dayjs/locale/fr\";\r\nimport \"dayjs/locale/nl\";\r\nimport \"dayjs/locale/pl\";\r\nimport \"dayjs/locale/pt\";\r\nimport localizedFormat from \"dayjs/plugin/localizedFormat\";\r\nimport relativeTime from \"dayjs/plugin/relativeTime\";\r\nimport localeData from \"dayjs/plugin/localeData\";\r\nimport { DEFAULT_LOCALE } from \"./i18n.const\";\r\n\r\ndayjs.extend(relativeTime);\r\ndayjs.extend(localizedFormat);\r\ndayjs.extend(localeData); // See: https://day.js.org/docs/en/plugin/locale-data\r\ndayjs.locale(DEFAULT_LOCALE); // Note: dayjs locale is update in I18nLanguageDropdown components\r\n\r\nexport default dayjs;\r\n","import { IMenuItem } from \"@pigeon/models/IMenuItem\";\r\n\r\nexport const AspNetCoreCookieCulture = \".AspNetCore.Culture\";\r\nexport const DEFAULT_LOCALE = process.env.VUE_APP_I18N_LOCALE || \"en\";\r\nexport const FALLBACK_LOCALE = process.env.VUE_APP_I18N_FALLBACK_LOCALE || \"en\";\r\nexport const SUPPORTED_LOCALES: { [key: string]: IMenuItem } = {\r\n // default language\r\n en: {\r\n label: \"EN\",\r\n description: \"English\",\r\n value: \"en\"\r\n },\r\n fr: {\r\n label: \"FR\",\r\n description: \"Français\",\r\n value: \"fr\"\r\n },\r\n nl: {\r\n label: \"NL\",\r\n description: \"Nederlands\",\r\n value: \"nl\"\r\n },\r\n pl: {\r\n label: \"PL\",\r\n description: \"Polskie\",\r\n value: \"pl\"\r\n },\r\n pt: {\r\n label: \"PT\",\r\n description: \"Português\",\r\n value: \"pt\"\r\n }\r\n};\r\n","import { DEFAULT_LOCALE, SUPPORTED_LOCALES } from \"./i18n.const\";\r\n\r\nexport function GetUserLocale() {\r\n let userLocale: string = navigator.language || DEFAULT_LOCALE;\r\n if (userLocale.length > 2) {\r\n userLocale = userLocale.substring(0, 2);\r\n }\r\n\r\n // Check if user local is supported\r\n const supportedLocales: string[] = Object.keys(SUPPORTED_LOCALES);\r\n if (!supportedLocales.includes(userLocale)) {\r\n userLocale = DEFAULT_LOCALE;\r\n }\r\n\r\n return userLocale;\r\n}\r\n","export enum Breakpoints {\r\n ExtraSmall = \"xs\",\r\n Small = \"sm\",\r\n Medium = \"md\",\r\n Large = \"lg\",\r\n ExtraLarge = \"xl\",\r\n ExtraExtraLarge = \"xxl\"\r\n}\r\n","import { PLATFORM_CREATED_DATE } from \"@market/App.const\";\r\nimport { DateRange } from \"@pigeon/components/formUI/FormInputSelectDateRangePicker\";\r\nimport dayjs from \"dayjs\";\r\nimport { IDashboardManager } from \"./contracts/IDashboardManager\";\r\n\r\nexport class DashboardManager implements IDashboardManager {\r\n static DateRangeForLastMonth: DateRange = {\r\n startDate: dayjs().startOf(\"month\").add(-1, \"month\").toDate(),\r\n endDate: dayjs().endOf(\"month\").toDate()\r\n };\r\n DateRangeForLastMonth: DateRange = DashboardManager.DateRangeForLastMonth;\r\n\r\n DateRangeForAllTime(userRegisteredAt?: string | undefined): DateRange {\r\n const refDate = userRegisteredAt ? new Date(userRegisteredAt) : PLATFORM_CREATED_DATE;\r\n\r\n return {\r\n startDate: dayjs(refDate).startOf(\"year\").toDate(),\r\n endDate: dayjs(new Date()).endOf(\"year\").toDate()\r\n };\r\n }\r\n}\r\n","import { IValidationServerError } from \"@pigeon/models/IValidationServerError\";\r\nimport { IValidationServerErrorDetail } from \"@pigeon/models/IValidationServerErrorDetail\";\r\nimport { IErrorManager } from \"@pigeon/services/contracts/IErrorManager\";\r\nimport { AxiosError } from \"axios\";\r\nimport { camelCase } from \"lodash-es\";\r\nimport { ValidationObserver } from \"vee-validate\";\r\n\r\nexport interface IApiErrorDataResponse {\r\n value?: any;\r\n Message?: any;\r\n error?: IValidationServerError;\r\n}\r\n\r\nexport class ErrorManager implements IErrorManager {\r\n private errorMessages: string[];\r\n private errorBag: InstanceType | null;\r\n\r\n // errorBag not used for now (wait for https://github.com/logaretm/vee-validate/issues/2307 )\r\n constructor(errorBag?: InstanceType) {\r\n this.errorMessages = [];\r\n this.errorBag = errorBag ? errorBag : null;\r\n }\r\n\r\n get ErrorMessages(): string[] {\r\n return this.errorMessages;\r\n }\r\n\r\n get HasErrors(): boolean {\r\n return this.errorMessages.length ? true : false;\r\n }\r\n\r\n public Reset(): void {\r\n this.errorMessages = [];\r\n }\r\n\r\n public HandleError(error: Error): void {\r\n if (error instanceof Error) {\r\n const axiosError: AxiosError = error as AxiosError;\r\n if (typeof axiosError.isAxiosError !== \"undefined\" && axiosError.isAxiosError) {\r\n this.HandleAxiosError(axiosError);\r\n } else {\r\n this.HandleMessageError(error.message);\r\n }\r\n } else if (typeof error == \"string\") {\r\n this.HandleMessageError(error);\r\n }\r\n\r\n console.error(error?.message ?? error);\r\n }\r\n\r\n // See https://github.com/axios/axios#handling-errors\r\n public HandleAxiosError(error: AxiosError): void {\r\n // Service Error\r\n if (error.response) {\r\n // The request was made and the server responded with a status code\r\n this.HandleServiceError(error);\r\n } else if (error.request) {\r\n // The request was made but no response was received\r\n this.HandleRaisedError(error);\r\n }\r\n // Raised Error\r\n else if (error.message) {\r\n this.HandleRaisedError(error);\r\n }\r\n // Unexpected Error\r\n else {\r\n this.HandleUnexpectedError();\r\n }\r\n }\r\n\r\n public HandleRaisedError(error: Error) {\r\n if (!error || !error.message) return;\r\n\r\n this.errorMessages.push(error.message);\r\n }\r\n\r\n public HandleServiceError(error: AxiosError): void {\r\n if (!error.response || !error.response.data) return;\r\n\r\n // Bad request\r\n const httpStatusCode: number = error.response.status;\r\n const isUnexpectedError: boolean = httpStatusCode >= 500;\r\n const isBadRequestError: boolean = httpStatusCode >= 400 && httpStatusCode < 500;\r\n\r\n if (isUnexpectedError) {\r\n this.HandleUnexpectedError();\r\n } else if (isBadRequestError) {\r\n if (error.response && error.response.data) {\r\n const errorResponseData: IApiErrorDataResponse = error.response.data as any as IApiErrorDataResponse;\r\n\r\n if (errorResponseData.value) {\r\n this.errorMessages.push(errorResponseData.value);\r\n } else if (errorResponseData.Message) {\r\n const errorMessage = errorResponseData.Message;\r\n if (Array.isArray(errorMessage)) {\r\n errorMessage.forEach((message) => {\r\n this.HandleMessageError(message);\r\n });\r\n } else {\r\n this.HandleMessageError(errorMessage);\r\n }\r\n } else if (typeof error.response.data === \"string\") {\r\n this.HandleMessageError(error.response.data);\r\n } else if (error.response.data) {\r\n this.HandleModelValidationError(error);\r\n }\r\n } else {\r\n this.HandleUnexpectedError();\r\n }\r\n }\r\n }\r\n\r\n public HandleModelValidationError(error: AxiosError): void {\r\n if (!error.response) return;\r\n if (!error.response.data) return;\r\n\r\n const errorResponse: IApiErrorDataResponse = error.response.data as any as IApiErrorDataResponse;\r\n if (errorResponse.error) {\r\n this.HandleModelValidationErrorDetails(errorResponse.error);\r\n }\r\n }\r\n\r\n public HandleModelValidationErrorDetails(validationServerError: IValidationServerError): void {\r\n for (const key in validationServerError.details) {\r\n const hasKey = Object.prototype.hasOwnProperty.call(validationServerError.details, key);\r\n if (hasKey) {\r\n const detail: IValidationServerErrorDetail = validationServerError.details[key];\r\n // Inject error in vee validate\r\n if (this.errorBag) this.errorBag.setErrors({ [camelCase(detail.target)]: [detail.message] });\r\n\r\n // Add a error message\r\n // Note: Both inject error and a error message are required because sometimes some validated fields (validate on server side)\r\n // are not on the current view (on client side)\r\n this.errorMessages.push(detail.message);\r\n }\r\n }\r\n }\r\n\r\n public HandleMessageError(error: string): void {\r\n this.errorMessages.push(error);\r\n }\r\n\r\n public HandleUnexpectedError(): void {\r\n this.errorMessages.push(`An unexpected error has occured.\r\n
\r\n We are working hard to try fix it. \r\n
\r\n Please retry, later...`);\r\n }\r\n}\r\n","// 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\t// no module.id needed\n\t\t// no module.loaded needed\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// 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","// 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};","// 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 \"js/\" + ({\"234\":\"WhyPage\",\"368\":\"AccountOrderDetails\",\"691\":\"PigeonEditPage\",\"752\":\"ProductStepPigeon\",\"843\":\"AccountResetPasswordPage\",\"952\":\"VendorSupervise\",\"1065\":\"AdminBankTransfer\",\"1078\":\"SaleNewPage\",\"1242\":\"BuyPage\",\"1248\":\"AccountNotificationsCenter\",\"1284\":\"VendorDashboard\",\"1339\":\"ProductStepSuccessParent\",\"1352\":\"CheckoutPage\",\"1841\":\"ProductStepPackage\",\"2015\":\"VendorShop\",\"2052\":\"AccountAddress\",\"2089\":\"SaleEditPage\",\"2117\":\"SalePage\",\"2216\":\"AccountOrders\",\"2330\":\"VendorPayments\",\"2398\":\"LabPage\",\"2448\":\"TermsAndConditionsPage\",\"2723\":\"ConnectOAuthVerificationPage\",\"2780\":\"VendorPage\",\"3181\":\"BreederFancierProfile\",\"3446\":\"AdminDbAlerts\",\"3450\":\"AdminDashboard\",\"3639\":\"CheckoutSuccess\",\"3754\":\"NotFoundPage\",\"3947\":\"AdminNotificationSales\",\"4245\":\"PigeonPage\",\"4328\":\"PigeonStepSuccess\",\"4413\":\"ProductStepSuccessSale\",\"4664\":\"ProductStepPigeonAccordion\",\"4756\":\"PrivacyPolicyPage\",\"4908\":\"BreederPage\",\"5087\":\"PackagePigeon\",\"5089\":\"FaqPage\",\"5108\":\"PigeonNewPage\",\"5621\":\"ProductStepSale\",\"5652\":\"CookiesPolicyPage\",\"5922\":\"AdminApprovalSales\",\"6078\":\"BuyerDashboard\",\"6147\":\"BuyerPage\",\"6372\":\"AccountPage\",\"6881\":\"VendorReferral\",\"7091\":\"CheckoutView\",\"7730\":\"ProductBreeder\",\"7793\":\"AccountData\",\"8111\":\"VendorSales\",\"8249\":\"AdminPage\",\"8326\":\"AccountVerificationPage\",\"8460\":\"HomePage\",\"8718\":\"ContactPage\",\"9005\":\"AccountAuction\",\"9013\":\"BreederDashboard\",\"9296\":\"SellPage\",\"9614\":\"AuctionConditionsPage\",\"9662\":\"ProductStepPedigree\",\"9664\":\"PigeonPedigree\"}[chunkId] || chunkId) + \".\" + {\"234\":\"a28a58bc\",\"368\":\"ae82e54b\",\"425\":\"98c36b8a\",\"508\":\"86dfdb14\",\"691\":\"e0296528\",\"752\":\"264d3548\",\"843\":\"63e97ced\",\"952\":\"72b3fb0b\",\"1065\":\"63c924c5\",\"1071\":\"12111313\",\"1074\":\"5e598165\",\"1078\":\"38a1561c\",\"1242\":\"51e4bf25\",\"1248\":\"a83d8926\",\"1284\":\"b05b1319\",\"1339\":\"3c075e36\",\"1352\":\"13f1c27f\",\"1459\":\"0425b2be\",\"1776\":\"14d83bd9\",\"1841\":\"2546a15b\",\"1916\":\"fbfed666\",\"2015\":\"71b999f1\",\"2052\":\"abeaa29d\",\"2089\":\"9e5d8226\",\"2105\":\"4f5902c8\",\"2116\":\"3efa46c4\",\"2117\":\"0a04777f\",\"2216\":\"023568a7\",\"2330\":\"f6672ab8\",\"2398\":\"8c1e9f36\",\"2448\":\"f31b6893\",\"2572\":\"55f6b4c3\",\"2667\":\"61ac915d\",\"2723\":\"f8f4739f\",\"2780\":\"c0ac3af1\",\"3040\":\"442578e8\",\"3117\":\"d91a2c76\",\"3169\":\"d58e3e20\",\"3181\":\"130073f7\",\"3446\":\"300aa67f\",\"3450\":\"a1ca46ea\",\"3467\":\"9974d08f\",\"3639\":\"7a8a54c9\",\"3754\":\"51d19a23\",\"3947\":\"e5a6186c\",\"3998\":\"4d377458\",\"4143\":\"0f4789e8\",\"4245\":\"ea116545\",\"4328\":\"d7f4b248\",\"4413\":\"2e1526ef\",\"4664\":\"83ad2ca7\",\"4756\":\"5f2d2a07\",\"4908\":\"e0388341\",\"4941\":\"0ab42a8a\",\"5087\":\"c20acdf6\",\"5089\":\"bd1f8da9\",\"5108\":\"102cfd4b\",\"5300\":\"b32ae82b\",\"5621\":\"6addeca5\",\"5652\":\"8885e534\",\"5807\":\"d54a7f22\",\"5922\":\"60a3b9ec\",\"5948\":\"3652360a\",\"6078\":\"5b3cd854\",\"6113\":\"0e3e5eac\",\"6147\":\"c7772415\",\"6248\":\"b77d7d26\",\"6372\":\"6f716b75\",\"6591\":\"28a42991\",\"6754\":\"d00d7308\",\"6881\":\"d572a3c8\",\"7091\":\"493ad8c6\",\"7730\":\"2d389fa3\",\"7793\":\"02385c6e\",\"7936\":\"ad23501c\",\"8111\":\"619cb198\",\"8228\":\"f657dcda\",\"8249\":\"06976a6f\",\"8326\":\"c2530348\",\"8460\":\"8fe5306b\",\"8638\":\"9b3749cd\",\"8718\":\"0ae98091\",\"8984\":\"fffbf80a\",\"9005\":\"e5f7f271\",\"9013\":\"dab3a2c5\",\"9238\":\"a198421f\",\"9296\":\"6dc39c1a\",\"9614\":\"9f7849b3\",\"9662\":\"529a11cc\",\"9664\":\"2645c13b\"}[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/\" + ({\"234\":\"WhyPage\",\"368\":\"AccountOrderDetails\",\"691\":\"PigeonEditPage\",\"752\":\"ProductStepPigeon\",\"952\":\"VendorSupervise\",\"1065\":\"AdminBankTransfer\",\"1078\":\"SaleNewPage\",\"1242\":\"BuyPage\",\"1248\":\"AccountNotificationsCenter\",\"1284\":\"VendorDashboard\",\"1339\":\"ProductStepSuccessParent\",\"1352\":\"CheckoutPage\",\"1841\":\"ProductStepPackage\",\"2015\":\"VendorShop\",\"2052\":\"AccountAddress\",\"2089\":\"SaleEditPage\",\"2117\":\"SalePage\",\"2330\":\"VendorPayments\",\"3181\":\"BreederFancierProfile\",\"3450\":\"AdminDashboard\",\"3639\":\"CheckoutSuccess\",\"3947\":\"AdminNotificationSales\",\"4245\":\"PigeonPage\",\"4328\":\"PigeonStepSuccess\",\"4413\":\"ProductStepSuccessSale\",\"4664\":\"ProductStepPigeonAccordion\",\"5087\":\"PackagePigeon\",\"5089\":\"FaqPage\",\"5108\":\"PigeonNewPage\",\"5621\":\"ProductStepSale\",\"5922\":\"AdminApprovalSales\",\"6078\":\"BuyerDashboard\",\"6881\":\"VendorReferral\",\"7091\":\"CheckoutView\",\"7730\":\"ProductBreeder\",\"7793\":\"AccountData\",\"8111\":\"VendorSales\",\"8460\":\"HomePage\",\"8718\":\"ContactPage\",\"9005\":\"AccountAuction\",\"9013\":\"BreederDashboard\",\"9296\":\"SellPage\",\"9662\":\"ProductStepPedigree\",\"9664\":\"PigeonPedigree\"}[chunkId] || chunkId) + \".\" + {\"234\":\"f7b20af7\",\"368\":\"a2a7d798\",\"508\":\"95146a29\",\"691\":\"b90cdfcb\",\"752\":\"4e873dd3\",\"952\":\"a6d0ab30\",\"1065\":\"cca7fafc\",\"1071\":\"fe188baf\",\"1078\":\"37dea354\",\"1242\":\"35c31f88\",\"1248\":\"637b997b\",\"1284\":\"b62ed812\",\"1339\":\"708f13cb\",\"1352\":\"cafc7706\",\"1841\":\"89c91cfd\",\"2015\":\"ca0409b6\",\"2052\":\"e27b0dda\",\"2089\":\"6e16b047\",\"2117\":\"f88edc65\",\"2330\":\"738e2588\",\"3169\":\"be5b2cc2\",\"3181\":\"5824c35a\",\"3450\":\"1d0d7c44\",\"3639\":\"53382f47\",\"3947\":\"247c669f\",\"4245\":\"341a63ac\",\"4328\":\"e5e02bf4\",\"4413\":\"06f7406d\",\"4664\":\"7b12e924\",\"5087\":\"64171acb\",\"5089\":\"001857c0\",\"5108\":\"086d2959\",\"5621\":\"775c3726\",\"5922\":\"e51c6acb\",\"6078\":\"d8bb7bae\",\"6591\":\"8dc71c25\",\"6881\":\"e19d4dc1\",\"7091\":\"b6424f52\",\"7730\":\"265564cb\",\"7793\":\"3d44be15\",\"8111\":\"01ef4294\",\"8460\":\"bc9007bf\",\"8638\":\"874e89ff\",\"8718\":\"494170f6\",\"9005\":\"524b0a01\",\"9013\":\"be99d66c\",\"9296\":\"729cf1a0\",\"9662\":\"3f674143\",\"9664\":\"cabdecb3\"}[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); }","// 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__.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\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\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;\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(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\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\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 = {\"234\":1,\"368\":1,\"508\":1,\"691\":1,\"752\":1,\"952\":1,\"1065\":1,\"1071\":1,\"1078\":1,\"1242\":1,\"1248\":1,\"1284\":1,\"1339\":1,\"1352\":1,\"1841\":1,\"2015\":1,\"2052\":1,\"2089\":1,\"2117\":1,\"2330\":1,\"3169\":1,\"3181\":1,\"3450\":1,\"3639\":1,\"3947\":1,\"4245\":1,\"4328\":1,\"4413\":1,\"4664\":1,\"5087\":1,\"5089\":1,\"5108\":1,\"5621\":1,\"5922\":1,\"6078\":1,\"6591\":1,\"6881\":1,\"7091\":1,\"7730\":1,\"7793\":1,\"8111\":1,\"8460\":1,\"8638\":1,\"8718\":1,\"9005\":1,\"9013\":1,\"9296\":1,\"9662\":1,\"9664\":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\n\n// no prefetching\n\n// no preloaded","// 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(true) { // all chunks have JS\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[\"webpackChunkpigeonmarket_ui_web_vuejs\"] = self[\"webpackChunkpigeonmarket_ui_web_vuejs\"] || [];\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, [3120], function() { return __webpack_require__(37115); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","module","exports","Component","options","__i18n","push","_Ctor","BidAlertCongratulations","BidDoubleCheckHighestBidAbstract","constructor","args","_defineProperty","HasWinAuction","this","sale","authStore","userStore","user","id","highestBid","saleManager","GetHighestBid","userId","Product","ProductMapper","CartItems","cartStore","LastItemBeforeCheckout","sales","length","every","sa","some","ci","saleId","OnDismissAlert","isDismissed","Snooze","Checkout","status","SaleStatus","console","error","find","i","isCartItemsContainsAllWonSales","$router","name","AppRoutes","__decorate","Prop","Emit","component","render","_vm","_c","_self","_setupProxy","$auth","IsAuthenticated","BidSaleIsOver","IsHighestBidder","shouldDoubleCheckBids","IsDoubleCheckingBids","DoubleCheckHighestBidHasPassed","staticClass","class","isDismissible","attrs","on","$event","_v","_e","scopedSlots","_u","key","fn","_s","proxy","bid","$n","amount","reference","domProps","$t","hasSnooze","IconLogo","Vue","require","LoaderTypes","AppLoader","validator","value","Object","values","BaseThemes","includes","default","Half","iconOnly","inline","theme","type","style","color","_t","SectionBarThemes","BlocSectionBar","ModuleStripeConnect","StripeDashboardConnectUrl","IsVendor","AccountVendorIsVerified","dashboardLink","StripeOAuthConnectUrl","connectState","appStateToken","vendorEmail","User","email","vendorPhoneNumber","phoneNumber","vendorBusinessName","corporation","vendorFirstname","firstname","vendorLastname","lastname","stripeConnectUrl","created","data","stateData","connectedAccountsService","FetchState","dashboardData","FetchDashboardLink","Inject","buttonType","PackagePictureCollage","PackagePictures","package","pictures","packageManager","GetPicturesThumbnail","useRawPicture","GetPicturesUrl","forceFallbackPicture","PictureTypes","PackagePictureStyle","packagePicturesLength","OnPictureError","GetPigeonIdFromUrl","imageUrl","urlChunks","split","_l","picture","index","toString","PigeonAssetText","freeText","PigeonAssetParents","AppThemes","components","AssetParent","PigeonAssetParent","parents","parent","childId","showAsset","PigeonAssetRankings","OrderedRankings","orderedRankings","count","rankings","orderedRanking","order","AssetRanking","PigeonAssetRanking","ranking","area","PigeonAsset","AssetTypes","PigeonAssetModes","AssetText","pigeon","assetText","AssetPrizes","assetPrizes","filter","prz","taggedAsAsset","AssetPrizesRankings","assetPrizesRankings","pigeonManager","CalculateAssetPrizeRankings","AssetParents","assetParents","map","assetParent","Asset","asset","ObserveAsset","FetchAsset","FetchAssetPrizes","FetchAssetPrizesRankings","FetchAssetParents","pigeonId","prizeAssetsService","FetchAllByPigeon","rankingAssetsService","parentAssetsService","Watch","nameof","immediate","AssetRankings","PigeonAssetPrizes","Ranking","Prize","mode","Combined","Parent","Text","SexTypes","IsSelected","selected","PigeonIcon","GetSexIcon","HasParentLinkable","flagApproved","publicData","IsAdministrator","Select","isSelectable","showLink","Pigeon","params","productKey","sex","Male","Female","relationship","toLowerCase","ring","GetRankLabel","rank","$i18n","t","prizes","tableHeader","prize","highlightBestPrize","participants","place","year","HasRankImage","top","GetRankImageType","PigeonDropdownlist","ToggleExpand","isLoading","isExpanded","Expand","Collapse","SelectItem","Model","Array","PigeonDropdownlistItem","$emit","pigeons","ProductItemFactory","GetUnknowItem","mounted","ObserveUnknownDefaultValue","FilterByName","FilterByRing","ClearElementText","element","innerHTML","ref","editable","$refs","pigeonName","pigeonRing","PigeonPedigreeSheet","ProductDisplayModes","CurrentSelectedIndex","pedigree","findIndex","PreviousSelectedIndex","NextSelectedIndex","MaxSelectedIndex","SelectedPigeonPictureUrl","GetPicturePigeon","defaultPigeonPicture","GoToPreviousPigeon","GoTo","GoToNextPigeon","OnPigeonPictureError","PigeonSheet","indexOf","_k","keyCode","button","DisplayModes","Compact","PigeonPedigree","ListenFullScreenChange","document","addEventListener","documentIsInFullScreen","fullscreen","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","ToggleAsideWindow","isAsideOpened","OpenAside","SwitchPedigreeToFullScreen","refPedigree","requestFullscreen","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","warn","PedigreeDiagramOrientations","Ref","PigeonPedigreeDiagram","model","selectedPigeon","callback","$$v","expression","generation","parentsLinked","orientation","AlertTypes","label","ObserveGeneration","selectedGeneration","GetRelationship","GrabStart","event","grab","slider","refDiagramTree","classList","add","startX","pageX","offsetLeft","scrollLeft","GrabStop","remove","GrabMove","preventDefault","walk","SwitchDiagramToFullScreen","ExitFullScreen","browserDocument","exitFullscreen","webkitExitFullscreen","msExitFullscreen","OnSelect","OnSelectGeneration","parseInt","GetUnknowPigeon","ProductFactory","Child","child","GetParentPigeon","Father","fatherId","RelationshipTypes","Mother","motherId","PaternalGrandFather","PaternalGrandMother","MaternalGrandFather","MaternalGrandMother","PaternalGreatGrandFatherFromGFather","PaternalGreatGrandMotherFromGFather","PaternalGreatGrandFatherFromGMother","PaternalGreatGrandMotherFromGMother","MaternalGreatGrandFatherFromGFather","MaternalGreatGrandMotherFromGFather","MaternalGreatGrandFatherFromGMother","MaternalGreatGrandMotherFromGMother","parentId","Horizontal","hasGenerationSelect","generationOptions","target","PigeonPedigreePdf","PedigreePdfUrl","GetPdfPedigree","defaultPedigreePdf","staticStyle","PigeonPedigreePicture","PedigreePictureUrl","GetPicturePedigree","defaultPedigreePicture","OnPedigreePictureUrl","PigeonPicture","GetPictureThumbnail","PigeonPropertyTicketPicture","PropertyTicketPictureUrl","GetPicturePropertyTicket","OnPropertyTicketPictureUrl","ProductCharacteristicsView","GetCharacteristic","discriminator","characteristics","characteristic","c","undefined","BackCharacteristic","DISCRIMINATOR_BACK","BalanceCharacteristic","DISCRIMINATOR_BALANCE","EyeCharacteristic","DISCRIMINATOR_EYE","FeathersCharacteristic","DISCRIMINATOR_FEATHERS","LengthCharacteristic","DISCRIMINATOR_LENGTH","PlumageCharacteristic","DISCRIMINATOR_PLUMAGE","SizeCharacteristic","DISCRIMINATOR_SIZE","VentbonesPositionCharacteristic","DISCRIMINATOR_VENTBONES_POSITION","VentbonesStrengthCharacteristic","DISCRIMINATOR_VENTBONES_STRENGTH","HumerusCharacteristic","DISCRIMINATOR_HUMERUS","CountryName","country","ringAreas","areaCode","ringArea","areaLabel","PigeonSexLabel","GetSexLabel","PigeonAgeCategory","birthYear","GetAgeCategory","PigeonFancierName","fancier","PigeonHasCharacteristics","HasCharacteristics","PigeonHasAsset","HasAssetType","ShouldCharacteristicsAccordionBeOpened","ShouldAssetsAccordionBeOpened","ringsService","FetchAll","ToggleVoucherMessage","showVoucherMessage","NavigateToBreederTab","$route","match","$scrollTo","offset","ProductDiscipline","ProductCountryFlag","ProductCharacteristics","_m","Minimum","Full","flagVoucher","voucherAvailabilityPeriodStart","voucherAvailabilityPeriodEnd","$d","Date","layingDate","Warning","hatchingDate","weaningDate","flyingDate","strain","discipline","AssetModes","CountryFlag","code","countryName","appDataStore","toUpperCase","countryCode","CountryLabel","showLabel","DisciplineTypes","DistanceCssClass","cssClass","Boolean","hasLabel","Channels","GetDefaultPigeon","getFullYear","ringNumber","flagBreeding","createdAt","GetDefaultFancier","profiles","GetDefaultStrain","GetUnknownPigeon","GetDefaultParent","parentRelationship","parentPublicData","defaultSex","GetDefaultParentIdentity","i18n","PayloadMapper","Map","decodedJwt","userRoles","normalizedUserName","normalizedEmail","MapPigeon","container","cid","product","description","to","saleKey","productRef","GetRingSlug","productName","GetNameSlug","MapPackage","MapToProduct","Error","ProductTypes","AddressTypes","ADMINISTRATOR_ID","AppRoles","CharacteristicBackTypes","CharacteristicBalanceTypes","CharacteristicEyeTypes","CharacteristicFeathersTypes","CharacteristicHumerusTypes","CharacteristicLengthTypes","CharacteristicPlumageTypes","CharacteristicSizeTypes","CharacteristicVentbonesPositionTypes","CharacteristicVentbonesStrengthTypes","CurrencyTypes","DbAlertTypes","FarmSizeTypes","NotificationTypes","PaymentMethodTypes","PaymentStatus","SaleTypes","SearchTypes","ShippingMethodTypes","ShippingStatus","SettlementTaskTypes","SaleTaskTypes","PurchaseAbortReasons","ApprovalTaskTypes","ShippingTaskTypes","TaskPriorityLevels","TaskTypes","TransferMethodTypes","StripeTransferMethodTypes","TransferStatus","VideoTypes","ArrayHelper","SortAscendingCompare","a","b","SortDescendingCompare","PLATFORM_VAT_RATE","SALE_FEES_RATE","SALE_PRICE_MAXIMUM","SALE_PRICE_MINIMUM","REFERRAL_FEES_RATE","BASE_DEPOSIT_RATE","VIDEO_MAX_SIZE","VIDEO_CHUNK_SIZE","VIDEO_MIN_DURATION","VIDEO_MAX_DURATION","AUCTION_EXTRA_TIME_MINUTES","PAYMENT_MAX_DELAY","SALE_SCHEDULE_MIN_START_HOUR","SALE_SCHEDULE_MAX_START_HOUR","SALE_SCHEDULE_MIN_END_HOUR","SALE_SCHEDULE_MAX_END_HOUR","AUCTION_DEFAULT_START_PRICE","AUCTION_MAX_DURATION_IN_DAYS","AUCTION_MIN_DURATION_IN_DAYS","AUCTION_MAX_SCHEDULE_IN_DAYS","AUCTION_OFFER_LIST_LENGTH","AUCTION_TIME_CLOSE_END_OF_SALE","PIGEON_MAX_DEAD_DELAY","PIGEON_MAX_INFERTILE_DELAY","TRANSFER_DELAY_HOURS","SHIPPING_DELIVERY_OPTION_SUPPORTED","NOTIFICATION_LIMIT_TO_DISPLAY","NOTIFICATION_DEFAULT_TIMEOUT","PLATFORM_ID","PLATFORM_CREATED_DATE","BANK_IBAN","BANK_IBAN_FORMATTED","BANK_BIC","BANK_BIC_FORMATTED","BANK_NAME","BUSINESS_NUMBER_FORMATTED","BUSINESS_VAT_FORMATTED","BANK_ACCOUNT_HOLDER_NAME","BANK_ACCOUNT_HOLDER_ADDRESS","SEPA_COUNTRIES","prototype","toInputDateString","pad","number","getMonth","getDate","toInputTimeString","getHours","getMinutes","toInputDateTimeString","String","toUpperCaseFirstLetter","charAt","slice","toReverse","reverse","join","AppAlert","CssClassAlertType","cssClasses","CssClassAlert","outline","icon","Action","BadgeLevels","$slots","caption","buttonLabel","linkTo","linkLabel","linkHref","_blank","linkExternal","AppBadge","Count","max","Low","BoxTypes","level","AppBox","Close","isOpen","Modal","header","footer","ButtonTypes","AppButtonDropdown","Attrs","$attrs","ToggleDropdownMenu","dropdownMenuIsOpen","OpenDropdownMenu","CloseDropdownMenu","Primary","inheritAttrs","_b","actionLabel","menuAlign","AppButtonLoader","Listeners","$listeners","click","HandleClick","ComputedClasses","errorClass","hasError","successClass","hasSuccess","LoaderColor","$el","contains","Reset","setTimeout","notificationTime","Done","response","Fail","_g","DividerDirections","AppDivider","direction","AppDividerToggler","Toggle","toggle","DropdownDrops","DropdownVerticalDrops","labelCollapse","labelExpand","AppDropdown","ToggleMenu","menuBus","emit","ExpandMenu","OnSelectedItem","Left","Bottom","mitt","drop","dropVertical","items","AppError","AppErrorNotFound","OpenSignInDialog","signInDialogStore","GoToCatalogPage","AppErrors","errorMessages","AppErrorUnexpected","Retry","HelpTypes","AppHelp","Icon","Info","title","AppMenuItem","MenuItemsPositions","MenuItemsVerticalPositions","item","AppMenuItems","isOpened","open","bus","Open","destroyed","off","closeOnSelect","position","positionVertical","closeOnClick","AppOverlay","Number","ProgressBarTypes","zIndex","AppProgressBar","CssClass","isStriped","isProgressing","isPaused","Play","Pause","Stop","width","progression","duration","BlocBar","BarItemTypes","BlocBarItem","Secondary","FormAsync","ErrorManager","submit","HandleSubmit","errorManager","refForm","ResetNotification","hasDone","IsValid","validate","IsInvalid","isProcessing","submitAsync","HandleError","ErrorMessages","FormFields","ValidationModes","FormInput","HasFocus","hasFocus","input","OnInput","ObserveValueModel","innerValue","stepUp","refInput","stepDown","UUIDv4","validationRules","validationName","validationCustomMessages","validationId","validationMode","errors","hasFloatingLabel","tooltip","directives","rawName","isArray","_i","$$a","$$el","$$c","checked","$$i","concat","_q","composing","FormInputCheck","change","OnChange","IsChecked","HasValue","trueValue","$options","propsData","hasOwnProperty","call","HandleArrayCheckbox","newModel","RemoveItemFromModel","splice","HandleSingleSelectCheckbox","HandleSimpleCheckbox","falseValue","disabled","readonly","ToggleCheck","Highlight","state","hovered","FilePreviewModes","FormInputPicture","InputId","pictureType","keyIndex","BuildThumbUrl","fileList","file","thumbUrl","URL","window","webkitURL","createObjectURL","OnReset","thumb","OnClick","OnRemovePicture","picturesToRemove","p","forEach","pic","Remove","pictureToRemove","OnUploadInput","files","SetPicture","StoreFile","fileUploaded","existingPicture","filename","blobManager","BuildPictureName","url","Image","hasPreview","previewMode","PreviewModes","Iframe","accept","FormInputRadio","Check","FormInputSelect","HasAnOptionSelected","hasAnOptionSelected","option","selectedValue","ObserveModelValue","isBoxed","$$selectedVal","o","_value","multiple","optionsGroups","keys","groupKey","FormInputText","Input","FormPaneCheck","isInvalid","stopPropagation","FormPaneRadio","I18nRouterLink","LocalizeTo","locale","DEFAULT_LOCALE","test","replace","tag","IconLaurelWreath","ToggleButton","NavAccordion","$on","itemKey","OnItemExpand","hasAccordionBehavior","EnsureOnlyOnePanelIsOpened","$off","firstPanelExpandedKey","HasToggleTransitionEnded","CloseOtherPanels","currentItemKey","CollapseItems","ExpandItem","NavAccordionItem","BaseAccordion","instance","$parent","_componentTag","beforeMount","beforeDestroy","$smoothReflow","el","property","transition","ObserveCollapse","opened","ObserveTransition","HasAccordionBehavior","EmitExpandOnParentAccordion","itemIndex","canExpand","mixins","smoothReflow","isBordered","isSeparated","NavBreadcrumb","meta","breadcrumb","text","DropdownTypes","NavDropdownList","OnClickItem","autoClose","hasButton","NavDropdownListItem","href","NavPanel","StepperBehaviorModes","NavStepper","Steps","steps","HasPreviousSteps","currentStepId","HasNextSteps","stepIndex","ObserveCurrentStepId","CurrentStepId","behaviorMode","RouteName","RouteMeta","step","Register","stepId","Unregister","GetChildStep","childStepId","childStep","$children","GetPreviousStep","currentStepIndex","previousStepIndex","previousStepId","GetNextStep","nextStepIndex","nextStepId","GetPreviousStepLocation","previousStep","GetNextStepLocation","nextStep","GoToPreviousStep","GoToNextStep","$breakpoint","lgAndUp","NavStepperStep","Stepper","IsStepActive","isActive","isCompleted","IsStepActiveFrom","IsStepCompleted","IsStepCompletedFrom","stepper","StepperDirections","NavStepperVertical","ObserveIndexStep","SetActiveStep","Vertical","NavStepperVerticalStep","activeStep","CurrentStatus","internalStatus","IsLast","PrevStatus","prevStep","StepsCount","beforeCreate","unwatch","$watch","val","UpdateStatus","activeIndex","BackTo","NavThemes","NavTab","Light","NavTabBloc","TabTypes","isDisabled","textSecondary","NavTabs","sliderBehavior","refNav","Stretch","TheFooterNewsletter","refValidation","NotifySuccess","SubscribeToNewsletter","newsletterEmail","HandleMessageError","Promise","reject","isProccessing","newslettersService","Insert","channel","catch","finally","touched","invalid","FooterNewsletter","TheAlerts","_TheAlerts","AccountIsVerified","accountStore","AccountVendorVerificationLevel","salesCountForCurrentVendor","holdSalesCountForCurrentVendor","soldSalesCountForCurrentVendor","HasResentAccountVerification","SnoozedDateEndVendorConnectedAccount","appStore","IsSignUpDialogOpen","signUpDialogStore","ShouldHideAlertsOnCurrentRoute","startsWith","winningSales","s","isAutomaticTranslationDismissed","AWinningSale","cartContainsTheItem","ObserveAuth","resolve","FetchForVendor","FetchForMember","GetAlertIcon","alertType","ConvertAlertType","GetHighestBidByUser","bids","highestBidAmount","Math","IsUserOnTheSalePage","auctionAlertsShouldBeDisplayed","salesService","FetchAllBids","GetAllWinningSalesInPendingByUser","alertsService","FetchAllByUser","alerts","countSalesData","countHoldSalesData","countSoldSalesData","all","CountSalesByVendorId","CountSalesByVendorIdAndBySaleStatus","alertId","indexToRemove","alertRemoved","Patch","flagAsRead","flaggedDate","toISOString","OnDismissAutomaticTranslationAlert","OnSnoozeAuctionAlert","IsMember","snoozedDate","setHours","TheAlerts_1","SnoozeTimeHours","snoozeDate","OnSnoozeVendorConnectedAccountAlert","OpenSignUpDialog","SwitchToDefaultLocale","i18nManager","UpdateUILocale","UpdateUserPreferredLocale","UpdateAspNetCoreCookieRequestCulture","$cookies","location","reload","currentRoute","AccountVerification","alert","fromDate","toLocaleDateString","toDate","message","TheBetaRibbon","TheFooter","BuildVersion","process","ShowHidePwaInstall","OpenInstall","Contact","TermsAndConditions","AuctionConditions","PrivacyPolicy","ActionTypes","CartTable","RemoveCartItem","itemId","PigeonSexIcon","cartItem","GetProductReferenceSlug","productManager","GetProductNameSlug","PackagePicture","Package","malesCount","$tc","femalesCount","genderlessCount","genderlessesCount","price","Sale","Buy","AccountSignInRecoveryDoneView","ToggleSignInDialog","MailProviderWebSite","AccountSignInRecoveryView","SignIn","Submit","recovery","accountsService","RecoverAccount","then","recoveryIsDone","SignInRecoveryDone","passes","$set","AccountSignInView","password","SwitchToRecovery","hasForgottenPassword","SwitchToSignIn","SwitchToSignUpDialog","Login","authentication","SignInRecoveryView","HasErrors","AccountSignOnView","UnreadNotificationsCount","notificationStore","AwaitingSettlementsCount","settlementStore","AwaitingDepositsCount","depositStore","PendingApprovalSalesCount","approvalStore","CloseSignOnDialog","signOnDialogStore","SignOut","GoToBuyerDashboard","GoToBreederDashboard","GoToBusinessDashboard","GoToApproverPage","GoToAdminDashboard","GoToMessagesCenter","GoToNotificationsCenter","buyerAlias","High","IsApprover","Medium","ContributorTypes","RegistrationFactory","GetDefaultRegistration","preferredLanguage","terms","redirectUrl","GetDefaultVendorRegistration","shopId","iban","GetDefaultVendorUpgradeRegistration","GetDefaultContributorRegistration","contributorAlias","contributorType","Amateur","GetDefaultContributorUpgradeRegistration","AccountSignUpDoneView","CloseDialog","AccountSignUpVerificationView","_AccountSignUpVerificationView","AccountSignUpVerificationView_1","VERIFICATION_CODE_LENGTH","SendNewVerificationCodeEmail","verification","SendNewEmailVerification","verificationEmailHasBeenSent","verificationCode","securityToken","replaceAll","verificationCodeHasFailed","VerifyEmail","AccountSignUpView","CountryOptions","ObserveRedirectUrl","registration","path","SwitchToSignUpVendorDialog","signUpVendorDialogStore","SwitchToSignInDialog","SignUp","registrationIsDone","SignUpDone","SignUpVerification","required","SendVerification","NewSaleSale","IsUpgradeOperation","CountryCodes","InitCorporation","cloneDeep","isACorporation","OnIsACorporation","vatNumber","UpgradeAsVendor","session","SignUpAsVendor","Sell","AppDialog","dialogsStore","PrimaryAction","secondaryTitle","headerIcon","actionLinkTo","actionType","CallToAction","nativeOn","actionLoading","TheNavBarDialogs","CartCount","CartActionLinkTo","OneDialogIsOpen","cartDialogStore","CartDialogIsOpen","SignInDialogIsOpen","SignOnDialogIsOpen","SignUpDialogIsOpen","SignUpVendorDialogIsOpen","CloseAllDialogs","CloseCartDialog","CloseSignInDialog","CloseSignUpDialog","CloseSignUpVendorDialog","Recovery","SignUpView","SignInView","SignOnView","VendorSignUpView","AccountVendorSignUpView","CheckoutOrder","AppsBar","HrefToPigeonMarket","HrefToPigeonCommunity","IsOpen","appsStore","AppsLauncher","LauncherIcon","ToggleAppsLauncher","DropdownDirections","I18nLanguageDropdown","SUPPORTED_LOCALES","SupportedLanguages","languages","supportedLanguages","kl","CurrentLocale","uiLocale","uiBus","OnLogin","ObserveUIWithRouteLocale","selectedLanguage","UpdateClientUrl","SetAppLocal","TheNavBar","SearchBarIsOpen","searchStore","LocatedOnCheckoutPage","HasEmptyCart","SetAddItemActive","isAddItemActive","NavigationLinkIsActive","routeName","CloseMenu","menuIsOpen","ToggleSearchBar","GoToBuyPage","ToggleCartDialog","ToggleSignOnDialog","ToggleSignUpDialog","TheNavBarMenu","Trigger","UnreadPMarketNotificationsCount","Home","SalePedigree","SalePackagePigeon","CheckoutSuccess","NewSale","NewSalePigeon","NewSalePackage","NewSaleInserted","EditSale","EditSaleSale","EditSalePigeon","EditSalePackage","EditSaleUpdated","AdminDashboard","VendorDashboard","BuyerDashboard","AccountMessages","AccountNotifications","apply","arguments","Faq","lgAndDown","ToastMessage","EmitClickOnToast","ToastTypeMapper","MapAlertTypeToToastType","TYPE","TheNotifications","Notifications","UnreadNotifications","ObserveNotifications","HandleUnreadNotifications","GetSaleLinkTo","NavigateToSale","saleTo","sortedUnreadNotifications","sort","notifA","notifB","notificationDate","getTime","notificationsToDisplayToUser","notification","NotificationHasBeenAlreadySeen","notifID","notifTitle","notificationManager","DetermineNotificationTitle","notifText","notifType","GetNotificationType","toastType","toastTimeout","toastContent","props","hasSaleNavigate","listeners","BuildSaleRoute","$toast","timeout","hidden","AskNotificationPermission","NotifyViaTheBrowser","FlagSaleNotificationAsSeen","FlagSaleNotificationAsRead","sns","Notification","requestPermission","body","onclick","ev","deep","TheSearchBar","SearchQueryPlaceholderKey","searchType","ringAreasGroupOptions","HasRingClub","searchQueryRingArea","ringManager","IsRingAreaHasRingClub","MaxBirthYear","GetMaxBirthYear","SearchTypeOptions","st","searchQuery","searchQueryRingClub","searchQueryRingBirthyear","ObserveBreakpoint","smAndDown","RawFormatRing","temp","trim","substring","ClearSearch","Search","SearchByRing","_n","TheLayout","versionBeta","COOKIES_CONSENT_USER","COOKIES_CONSENT_LEVELS","TheBannerCookies","userHasAcceptedCookiesConsent","HandleCookies","RunCookiesConsent","ListenOnCookieChangePrefences","ObserveCookiesLocal","querySelectorAll","cookieconsent","pathname","run","notice_banner_type","consent_type","palette","language","website_name","change_preferences_selector","cookies_policy_url","elementChangePreferences","querySelector","ListenOnCookieSavePreferences","elementSavePreferences","cookiesConsent","consentLevel","HandleFunctionalityCookies","functionality","HandleTrackingCookies","tracking","HandleTargetingCookies","targeting","hasConsent","localStorage","clear","bootstrap","TheBody","TheFooterEmpty","TheFooterHelp","TheHeader","Style","backgroundImageUrl","titleSecondary","async","HideNodeIfNotAuthorized","binding","requiredRoles","shouldAccountBeVerified","modifiers","isAuthorized","IsAuthorized","appRoles","requiredRole","display","bind","inserted","update","passive","_onResize","quiet","unbind","removeEventListener","VueScrollTo","ResizeDirective","AuthorizeDirective","library","faImage","faVideo","faFileImage","faFileVideo","faVenus","faMars","faGenderless","faTh","faThLarge","faTable","faAngleUp","faAngleRight","faAngleDown","faAngleLeft","faInfo","faInfoCircle","faQuestion","faQuestionCircle","faExclamation","faExclamationTriangle","faExclamationCircle","faClock","faHistory","faPlus","faMinus","faRedo","faTimes","faEnvelope","faBars","faStar","faUser","faUserTie","faUserTag","faUserPlus","faUserLock","faUserCheck","faUsers","faShoppingCart","faAt","faMobileAlt","faMapMarkerAlt","faGavel","faLink","faExternalLinkAlt","faStore","faBolt","faCheck","faKey","faShieldAlt","faCog","faEye","faSitemap","faEuroSign","faCreditCard","faIdCard","faLock","faShippingFast","faTruck","faBox","faDirections","faFileInvoice","faCalendar","faCalendarWeek","faHashtag","faThumbsUp","faThumbsDown","faFeatherAlt","faMicroscope","faDna","faDatabase","faMedal","faTrophy","faSearch","faSearchPlus","faSearchMinus","faFont","faWindowMaximize","faWindowMinimize","faPencilAlt","faArrowUp","faArrowDown","faTag","faCompass","faCheckCircle","faTimesCircle","faFlag","faBell","faDove","faList","faGlobe","faMoneyBill","faStarHalfAlt","faMoneyCheck","faMoneyCheckAlt","faCloud","faCircle","faEllipsisH","faEllipsisV","faPlay","faPause","faStop","faRing","faEgg","faStopwatch","faFileInvoiceDollar","faRetweet","faThumbtack","faMailBulk","faPrint","faReceipt","faFilter","faAddressBook","faHandHoldingUsd","faTasks","faIdBadge","faTicket","faLanguage","faPercent","faTools","faFunnelDollar","faBan","faTrash","faComments","faCoins","faDolly","faBackspace","faPiggyBank","faUniversity","faExpandAlt","faEraser","farImage","farFilePdf","farEnvelope","farClock","farPaperPlane","farHandshake","farGem","farSave","farCheckCircle","farQuestionCircle","farBuilding","farCaretSquareDown","farFlag","farStar","farUser","farSmileBeam","farAngry","farDizzy","farFrown","farSadTear","fabCcVisa","fabCcMastercard","fabCcPaypal","fabCcAmex","fabCcDiscover","fabCcDinersClub","fabCcJcb","fabTwitter","fabFacebook","fabCcStripe","fabStripe","config","FontAwesomeIcon","VueAppInsights","router","VueGtag","breakpointService","BreakpointService","preset","Breakpoints","thresholds","breakpoint","Init","OnResize","Update","clearTimeout","resizeTimeout","height","GetClientHeight","GetClientWidth","xs","sm","md","lg","xl","xxl","xsOnly","smOnly","smAndUp","mdOnly","mdAndDown","mdAndUp","lgOnly","xlOnly","xlAndDown","xlAndUp","xxlOnly","documentElement","clientWidth","innerWidth","clientHeight","innerHeight","install","observable","AuthService","IsCloseToExpire","jwtStore","IsExpired","IsContributor","Vendor","vendor","refreshing","VueMeta","refreshOnceOnNavigation","VueCookies","BreakpointPlugin","AuthPlugin","LoadScript","Toast","POSITION","maxToasts","register","ready","log","registered","cached","updatefound","updated","userLocale","navigator","alertMessage","offline","validations","validationMessagesEn","customValidationMessagesEn","validationMessageFr","customValidationMessagesFr","validationMessageNl","customValidationMessagesNl","validationMessagePl","customValidationMessagesPl","validationMessagePt","customValidationMessagesPt","configure","defaultMessage","_","_rule_","extend","regex","digits","confirmed","alpha","alpha_dash","min","min_value","max_value","ValidationProvider","ValidationObserver","IsMemberEmailUnique","valid","IsVendorNameUnique","IsShopUnique","IsBuyerNameUnique","pigeonsService","FindPigeonByRingAndByUser","now","today","HighestBid","highestBidDoubleChecked","EndDateHasChanged","salePreviousEndDate","EffectiveSaleEndDate","StoreInMemorySalePreviousEndDate","endDate","latestBid","FetchHighestBid","newEndDate","endOfSaleTimeoutHandler","ObserveEffectiveSaleEndDate","SetTimeoutAtEndOfSale","faulty","GetHighestBidWithSaleAndBidder","CheckoutStepNames","standardDateTimeFormats","numeric","month","day","numeric_time","hour","minute","short","regular","extended","extended_year","long","weekday","dateTimeFormats","en","fr","nl","pl","pt","standardNumberFormats","currency","currencyDisplay","minimumFractionDigits","percent","numberFormats","VueI18n","fallbackLocale","FALLBACK_LOCALE","fallbackRoot","GetUserLocale","silentTranslationWarn","silentFallbackWarn","messages","locales","App","metaInfo","canonicalUrl","endsWith","titleTemplate","htmlAttrs","lang","charset","content","vmid","link","rel","BaseApiService","client","Axios","baseURL","withCredentials","interceptors","request","use","headers","Authorization","Client","QrCodesService","GetQrCodeForTextInImage","payload","post","responseType","GetQrCodeForTextInBase64String","GetQrCodeForTextInSvg","GetQrCodeForGiroInImage","GetQrCodeForGiroInBase64String","GetQrCodeForGiroInSvg","GetQrCodeForSmsInImage","GetQrCodeForSmsInBase64String","GetQrCodeForSmsInSvg","SvgDocumentsService","GetSepaFormInSvg","sepaFormPayload","AmountManager","CalculateVatAmount","vatRate","isVatInclusive","round","CalculateAmountIncludingVat","vatAmount","amountIncludingVat","CalculateAmountExcludingVat","amountExcludingVat","BaseAuthServiceAnonymous","AccountsServiceAnonymous","RefreshAuth","expiredAuth","accessToken","refreshToken","SignUpAsContributor","guest","origin","ResetPassword","reset","signUpRegistration","alias","shop","IsContributorNameUnique","FindGuest","get","BaseAuthServiceUser","super","AccountsServiceUser","UpgradeAsContributor","PatchUser","userData","patch","FetchUser","userKey","confirmation","AgreeToAuctionConditions","agree","AccountsService","accountsServiceUser","accountsServiceAnonymous","BaseApiBingMapsRestService","BingMapsRestService","FindLocationByQuery","locationQuery","maxResults","includeNeighborhood","includeValue","query","filters","BingMapsWebControlService","IsInitialized","apiIsInitialized","IsLoaded","apiIsLoaded","LoadAPI","scriptTag","createElement","src","defer","appendChild","OnLoadBingMaps","StripeClientService","STRIPE_PUBISHABLE_KEY","stripe","Stripe","StripeClient","WorldAtlasService","FetchAllCountries10M","FetchAllCountries50M","FetchAllCountries110M","FetchAllLands10M","FetchAllLands50M","FetchAllLands110M","BaseODataService","Accept","AddressesService","address","addressKey","put","Upsert","Fetch","AlertsService","alertKey","Delete","delete","odataQuery","orderBy","FetchAllAlerts","isAfterOrEqual","isBeforeOrEqual","notEquals","equals","ignoreGuid","or","isNull","AuctionsService","auction","auctionKey","FetchAllOverview","expand","fp","select","FetchAllAuctions","as","startDate","FetchAllAuctionsByVendor","FetchMyAuctions","vendorId","FetchAuctionsCatalog","shopKey","q","BiddingOrdersService","biddingOrder","biddingOrderKey","FetchWithBidsAndBidder","FetchAllBiddingOrdersWithUserBySale","u","FetchAllBiddingOrdersWithBidderAndBids","orderDate","bo","FetchMyHighestBiddingOrderBySale","paginate","BidsService","FetchWithUserName","desc","biddingOrderId","asc","bidDate","FetchAllBidsWithBidder","FetchAllBidsWithUserBySale","FetchAllBidsWithUserBySales","saleKeys","in","CartsService","cart","cartItems","total","cartKey","FetchAllBySale","any","CheckoutSessionsService","checkoutSession","checkoutSessionId","checkoutSessionKey","cs","DepositsService","deposit","depositKey","PatchAsProcessed","processed","flagProcessed","DeleteSoft","flagSoftDeleted","FetchAllDeposits","d","paymentDate","FetchAllPendingProcessing","FetchAllWithSaleProduct","FetchAllDepositsByVendor","vendorKey","from","FetchAllByVendorWithSaleProduct","FetchAllSummaryWithUserBySale","FancierProfilesService","fancierProfile","fancierProfileKey","FetchAllWith","FetchSheetByFancierProfile","FetchAllSheetsByFancier","fancierKey","fancierId","FetchOwnerId","FetchOwnerIdValue","FanciersService","f","createdBy","FetchByValue","memoizeAsync","FavoritesService","favorite","favoriteKey","FetchAllWithSaleProductByUser","GuestsService","FetchAllIdentitiesWith","guestKey","GetGuestsIdentities","NewslettersService","newsletter","OrderLinesService","FetchAllOrderLinesWithOrderDetailsBySalesIds","salesIds","ol","g","OrdersService","orderKey","FetchWithLines","l","FetchSummaryWithBuyer","FetchSheet","v","ss","FetchAllOrdersWithLinesAndCustomer","guestId","FetchAllWithCustomerAndDeliveryAddressByIds","orderKeys","orderToInsert","line","lines","delivery","shippingService","orderToUpdate","FlagOrderAsNonPaid","CalculateAmounts","salesId","shippingMethod","buyerTwoIsoLettersCountry","shippingMethodParam","buyerCountryParam","JSON","stringify","AbandonOrder","orderId","PackagesService","FetchAllWithPigeonsByUser","FetchSalePackagePigeon","packageKey","pigeonKey","m","FetchSalePackageReproducer","parentKey","ar","ap","ParentAssetsService","PigeonsService","OrderBy","sortParams","orderPropertyName","orderDirection","CatalogSortTypes","FilterBy","has","CatalogFilterTypes","FilterQueryByContributor","FilterQueryBySex","FilterQueryByDiscipline","FilterQueryByCountry","FilterQueryByYearMin","shift","FilterQueryByYearMax","filterValues","filterValue","yearMinFilterValue","biggerOrEqualThan","yearMaxFilterValue","lessOrEqualThan","SearchBy","search","FetchAllByVendor","FetchAllReproducersByVendor","lessThan","empty","FetchAllReproducersAvailableByVendor","FetchCatalog","pageSize","page","FetchProduct","FetchParentSummary","FetchChildren","FetchWithParents","FetchWithPrizes","FetchPedigree","FetchPedigreeIdentityOnly","DetermineRelationship","FetchAllPendingApprovalPigeons","FetchAllApprovedPigeons","FetchAllDisapprovedPigeons","GetNumberViews","GetNumberPedigrees","GetNumberPosts","PlacesService","placeKey","PollAnswersService","pollAnswer","pollAnswerKey","PollsService","poll","pollKey","FetchLastActive","PollVotesService","pollVote","pollVoteKey","PrizeAssetsService","PrizesService","prizeKey","RankingAssetsService","ReferralsService","referral","referralKey","r","FetchAllReferrals","recordedAt","ReproducerParentsService","rp","FetchAllAvailable","RingsService","SaleDisapprovalReasonsService","saleDisapprovalReason","reasonType","FetchAllReasonsBySale","sdr","SaleNotificationsService","NotificationsFilterTypes","FilterQueryFromDate","FilterQueryFromDaysAgo","FilterQueryByNotificationType","sn","dateFilter","dayjs","isAfter","daysToFilter","FetchAllWithSaleByUser","FetchAllWithSale","PatchFlagAsRead","saleNotification","notificationFlaggedAsRead","PatchFlagAsUnread","FlagAllAsRead","SalesService","Resume","resumedStartDate","resumedEndDate","resumedTimeSlots","Suspend","FlagSaleAsUnsold","QuerySupervise","puAddress","SubQueryProductPigeon","toEdit","SubQueryProductPackage","SubQueryProductPigeonCatalog","SubQueryProductPackageCatalog","SubQueryBidsWithBidder","SubQueryBids","SubQueryWithOrderSummary","SubQueryWitSettlementSummary","SubQueryWitDepositSummary","SubQueryUserVendorDetails","SubQueryUserVendorSummaryWithContactData","SubQuerySummaryPigeon","SubQuerySummaryPackage","SubQuerySummaryVendor","FetchWithProduct","FetchSaleType","FetchProductType","FetchProductPigeon","FetchProductPigeonToEdit","FetchProductPigeonWithPaymentSummary","FetchProductPackage","FetchProductPackageToEdit","FetchProductPackageWithPaymentSummary","FetchSupervisedPigeon","FetchSupervisedPackage","FetchSalesCatalog","salesQueryManager","FetchMySalesElligibleForSettlement","and","isBefore","orderLine","paymentStatus","FetchAllPendingApprovalSales","FetchAllApprovedSales","FetchAllNotYetPaidEndedSales","FetchAllDisapprovedSales","FetchAllDisapprovedSalesWithReasonsByVendor","drs","FetchAllSoldSalesToCollectOrDeliverByVendor","shippingStatus","FetchAllUnsoldSalesWithProductByVendor","FetchAllPendingExpiredForSaleSalesByVendor","FetchAllPendingTransferSettledSalesByVendor","settlement","notNull","transferStatus","paymentCollectedBy","FetchAllAvailableBidSalesByVendor","FetchAllSalesWithProductByIds","ids","FetchAllSalesWithProduct","FetchAllSalesWithProductByVendor","FetchHeadlineSales","FetchNewSales","FetchHotSales","GetNumberRevenues","GetNumberTransactions","GetNumberSalesByFancier","GetIsVendorOfThisSale","GetIsBuyerOfThisSale","GetIsAvailableForPurchase","GetAllSalesCountByUser","GetAllPackagePigeonItemIdentitiesBySale","GetAllPackageParentReproducerIdentitiesBySale","GetHighestBidAmount","GetDateRangeOfNextSales","saleStatus","SettlementsService","settlementKey","FetchAllSettlements","FetchAllSettlementsByVendor","ShippingServicesService","shippingServiceKey","FetchAllByFromAndByTo","fromZipCode","toZipCode","sr","fromZipRanges","zipRange","startZipCode","biggerThan","endZipCode","toZipRanges","StrainsService","strainKey","TaskTrackingsService","taskTracking","taskTrackingKey","FetchAllBySaleAndByVendor","tt","TaxRatesService","taxRateKey","GetVatRate","UsersService","QueryUserAllSales","saleSubquery","FetchAllIdentities","FetchAllIdentitiesExtended","FetchWithVendor","FetchBuyerDashboard","alertsSubquery","bidsSubquery","biddingOrdersSubquery","ordersSubquery","favoritesSubquery","recordedDate","FetchBreederDashboard","FetchVendorDashboard","salesSubquery","auctionsSubquery","FetchUserWithVendorAndShop","FetchAllOrders","FetchMySales","FetchAllSales","FetchAllPigeons","FetchAllPigeonsIdentity","FetchAllUsersWith","registeredAt","FetchAllUsersWithVendorAndShop","GetUsersIdentities","VendorsService","Put","FetchWithUser","FetchWithPictures","FetchAllWithUserIdentities","GetVendorByShop","IsCashPaymentAllowed","ActivateReferralProgram","DesactivateReferralProgram","BLOB_CONTAINER_PICTURES","BLOB_CONTAINER_VIDEOS","BLOB_DIRECTORY_PICTURES_PIGEONS","BLOB_DIRECTORY_PICTURES_FANCIERS","BLOB_DIRECTORY_PICTURES_AUCTIONS","BLOB_DIRECTORY_PICTURES_SHOPS","BlobManager","BuildPigeonPictureBlobPath","filePicture","BuildFancierPictureBlobPath","fancierProfileId","BuildAuctionPictureBlobPath","auctionId","BuildShopPictureBlobPath","BuildPigeonVideoBlobPath","fileVideo","BuildVideoName","videoType","pictureName","fileManager","GetFileExtension","ValidPictureMimeType","ValidVideoMimeType","InsertPigeonPictureAsync","blobPath","blobsService","UploadAssetPicture","InsertPigeonVideoAsync","blobChunks","SliceBlobIntoChunks","blobFileName","chunkEntry","chunk","blobName","UploadChunk","CommitChunks","fileName","fileSize","size","fileType","fileBlob","chunks","chunkSize","chunksAmount","ceil","start","end","InsertFancierPictureAsync","InsertAuctionPictureAsync","InsertShopPictureAsync","BlobsService","UploadPicture","blobFullPath","formData","FormData","append","contentType","assetDirectory","assetObjectKey","UploadVideo","UploadAssetVideo","fileMetadata","DeletePicture","assetContainer","ConnectedAccountsService","FetchConnectedAccount","connectedAccountKey","currentVendorKey","FetchBalance","PostOAuthConnectVerification","stateToken","ContactsService","Message","contact","CountriesService","FacebookService","GetLikesCount","InitFacebookSDK","FB","XFBML","parse","fbAsyncInit","init","appId","autoLogAppEvents","xfbml","version","FetchFanCount","api","access_token","fields","FetchFollowersCount","FetchFeed","InvoicesService","DownloadInvoiceVendor","DownloadInvoicePlatform","PaymentIntentsService","GetPaymentClientSecret","paymentIntentId","CreatePayment","paymentRequest","PayoutsService","FetchAllPayouts","queryParam","FetchAllPayoutsByVendor","FetchBySaleAndVendor","PurchasesService","ServersService","GetDateTime","StripePayoutsService","FetchAllPayoutsByStripeVendor","stripeConnectedAccountId","FetchAllStripePayoutsByStripeVendor","FetchStripePayout","payoutKey","FetchStripePayoutByStripeVendor","TwitterService","FetchLatestTweet","GetNumberFollowers","AuctionManager","GetPictureRemoteUrl","relativeUrl","defaultAuctionPicture","GetPictureAuction","pictureUrl","urlWebOptimized","GetThumbnailAuction","IsBidSaleClose","IsVendorOfThisSale","currentUser","ShouldShowBidderContact","ShouldShowProfits","FilterSalesByAuction","saleIdsOfAuction","CountSalesByAuction","salesOfAuction","CountAuctionSales","CalculateAuctionTotalSalePrices","floor","CalculateAuctionTotalBusinessFigures","salesOfAuctionWithBids","CalculateSaleAmount","CalculateAuctionSalesAverage","salesAverage","MathHelper","CalculateAuctionTotalProfits","CalculateVendorProfitsAmount","CalculateAuctionTotalFees","CalculatePlatformFeesAmount","CountAuctionSalesInProgress","salesInProgressOfAuction","CountAuctionSalesOver","salesOverOfAuction","CountAuctionBidSales","bidsCount","CountAuctionBidders","bidders","Set","CountAuctionBiddersCountry","RetrieveAuctionBiddersCountries","countriesOfBidders","CheckoutManager","HasACartVoucherItem","IsCustomerInSepaArea","customer","IsCustomerInBenelux","IsCustomerInBelgium","IsCustomerInNetherlands","IsCustomerInPoland","IsCustomerInGermany","IsCustomerInFrance","IsCartesBancairesAvailableForCustomer","IsBankRedirectPaymentAvailableForCustomer","IsBancontactPaymentAvailableForCustomer","IsiDealPaymentAvailableForCustomer","IsP24PaymentAvailableForCustomer","IsGiropayAvailableForCustomer","IsBankRedirectPaymentsAvailablesForCustomer","counter","IsPayconicPaymentAvailableForCustomer","GetBankRedirectPaymentSubmethodNameForCustomer","IsValidAddress","addressLine","countryTwoIsoLetters","IsADeposit","payment","method","CalculateTotalAmount","currentTaxRate","CalculateTotalAmountForDeposit","CalculateTotalAmountForOrder","BuildCustomerFullName","BuildSepaCreditTransferPlatformBeneficiary","minimal","bic","bankName","BuildSepaRemittanceInformation","BuildBillingDetails","shipping","deliveryAddress","phone","CountryManager","CountriesHardcoded","countriesHardcoded","RetrieveCountryByIsoCode","twoIsoLettersCode","CreditCardManager","GetCardIconName","brand","cardBrandIconsMap","GetCardIcon","collectionIcon","visa","mastercard","amex","discover","diners","jcb","unknown","EventManager","buildTimelineEvents","BuildSaleCreatedEvent","BuildSaleApprovedEvent","BuildSaleStartEvent","BuildFirstBidEvent","BuildLastBidEvent","BuildSaleEndEvent","BuildOrderEvent","BuildDepositEvent","BuildSettlementEvent","BuildPaymentEvent","BuildTransferEvent","BuildShippingEvent","BuildSaleStatusModifiedEvent","eventA","eventB","date","approvalStatus","approvedAt","approvalDate","actualEndDate","firstBid","bidder","lastBid","collectedDate","BuildCollectedByDescription","paymentBy","paymentMethod","paymentVia","transferDate","transferMethod","paymentTransferredBy","shippingDate","modifiedAt","statusTitle","FancierProfileManager","GetFancierProfilePicture","defaultFancierProfilePicture","GetFancierProfileAboutLocalized","localeCode","translation","translations","GetRatingAverageScore","ratings","DEFAULT_RATING_SCORE","average","rating","RANGE_RATING_SCORE","GetRatingRemainingScore","GetFarmSizeMininum","farmSize","GetFarmSizeMaximum","FileManager","extension","pop","I18nManager","urlWithNewLocale","history","pushState","set","AspNetCoreCookieCulture","NotificationManager","saleNotificationsService","OfferManager","CalculateUpStepOffer","offer","CalculateDownStepOffer","PackageManager","IsRinged","pack","withRings","HasPedigree","withPedigrees","HasPicturePedigree","HasPdfPedigree","GetPigeonsCount","pigeonItemsNumber","GetPigeonsMaleCount","pigeonMaleItemsNumber","GetPigeonsFemaleCount","pigeonFemaleItemsNumber","GetPigeonsGenderlessCount","GetPigeonsJuniorCount","GetPigeonsYearlingCount","GetPigeonsSeniorCount","GetReproducersCount","reproducerItemsNumber","reproducerParents","GetReproducersMaleCount","reproducerMaleItemsNumber","GetReproducersFemaleCount","reproducerFemaleItemsNumber","kebabCase","defaultPackagePicture","GetVideoRemoteUrl","GetPictures","pictureTypes","packagePicture","pigeonPictures","picturesUrl","pictureRemoteUrl","GetPicturePackage","GetThumbnailPackage","thumbnailUrl","thumbnailPathSegments","webOptimizedThumbnailPath","pedigreePicture","pedigreePictureUrl","pedigreePdf","pedigreePdfUrl","assetRankings","taggedAssetPrizes","assetRankingsAreas","areaType","areas","setAreas","prizesRankings","prizesFilteredByArea","prizesRanking","CalculateAssetPrizeRankingsForArea","countTop10","pra","countTop100","countTop200","countTop1000","HasAsset","PaymentManager","FindPayoutBySale","payouts","saleIds","PigeonManager","diff","GetReferenceSlug","pigeonPicture","picturePigeon","thumbnailPigeonUrl","HasPicture","HasPicturePropertyTicket","propertyTicketPicture","propertyTicketPictureUrl","HasVideo","videos","video","FetchAllPigeonsByVendor","currentVendorId","pigeonsData","dataReproducerParents","reproducerParentsService","dataReproducers","reproducerPigeons","uniqWith","other","FetchUnsoldPigeonsByVendor","dataUnsoldSales","unsoldPigeons","unsoldPigeonsFromPack","flatMap","ProductManager","UploadPictureFilesAsync","pictureFiles","pictureFile","UploadVideoFilesAsync","videoFiles","videoFile","SanitizePigeonGraph","ringClub","insertedPigeon","insertedPigeonId","updatedPigeonId","RingManager","RingAreasHardcoded","ringAreasHardcoded","CurrentYear","SEPTEMBER","HasRingInput","FormatRingBirthyearOnTwoDigits","substr","RawFormatRingBirthyearOnTwoDigits","birthyear","FormatRing","formattedRing","SortRingAreas","BuildRingAreasGroupOptions","sortedRingAreas","ringAreasGroupedByDiscriminator","groupBy","ringAreasOptionGroups","SaleManager","UploadMediaFilesAsync","salePackageData","packageId","pigeonItemsPictureFiles","pf","pigeonKeyClient","idClient","reproducerParent","reproducerItemsPictureFiles","PrefetchSaleToEdit","PrefetchSaleProduct","FetchSaleProduct","productType","FetchSaleProductWithFinancialData","FetchSaleProductToEdit","FetchSaleProductToSupervise","FetchAllSaleBids","saleType","FetchAllBidsBySale","FetchAllBidsBySales","uniq","bidsData","bidsService","FetchMyHighestSaleBiddingOrders","biddingOrdersService","FetchSaleFinancialData","promiseOrder","ordersService","promiseDeposit","depositsService","promiseSettlement","settlementsService","responseOrder","responseDeposit","responseSettlement","FetchSaleWithProduct","saleWithProduct","isTheBuyer","isTheVendor","responseProduct","responseBids","responseHighestBiddingOrder","biddingOrders","FetchSaleWithProductToEdit","isVendorOfThisSale","saleWithProductToEdit","FetchSaleWithProductToSupervise","saleWithProductToSupervise","promiseSaleBids","promiseSaleBiddingOrders","promiseUserVendor","promiseTrackingTasks","usersService","taskTrackingsService","taskTrackings","orderLinesAbandoned","FetchThenPopulateAbandonedOrders","abandonedOrderLines","promisesAbandonedOrders","abandonedOrders","promise","abandonedOrder","currentAbandonedOrderLine","aol","FetchThenPopulateSalesBidsProperty","salesBidsData","CompareBids","FetchThenPopulateSalesOrderLineProperty","orderLinesData","orderLinesService","insertedSale","updatedSale","AddToFavorite","newFavorite","insertedFavorite","favoritesService","RemoveFromFavorite","favoriteId","SetTimeoutBeforeEndOfSale","handler","remainingTime","MAX_INT32","SetTimeoutWithEndOfSaleGuard","timeoutDuration","SetTimeoutWithEndOfSalesGuard","IsAnAuctionSaleAvailableForBidding","GetProduct","ResolveSaleUrl","BuildSaleUrlParameters","GetPigeonNameSlug","GetPigeonRingSlug","GetPackageNameSlug","OrderSalesBidsByHighestBid","salesWithOrderedBids","OrderSaleBidsByHighestBid","bidA","bidB","MAX_VALUE","GetHighestBiddingOrder","CompareBiddingOrders","biddingOrderA","biddingOrderB","limitAmount","GetLatestBidByUser","IsSaleExpired","IsSaleStarted","IsSaleCurrent","IsSaleAvailableForBidding","allSalesEndDateTime","IsSaleAvailableForPurchase","isAvailable","IsBuyerOfThisSale","HasOrder","HasSettlement","HasDeposit","IsBidderOfThisSale","IsVatInclusive","vatInclusive","IsTransportIncluded","HasVat","HasTasks","HasProductPicture","CanBeComptabilisedAsFinancialAsset","CanEditSale","isCurrentApprovedForSale","isAuctionExpiredWithABid","isSold","CompareSalesById","sale1","sale2","CalculateSaleAmountDue","saleAmountIncludingVat","CalculateSaleAmountIncludingVat","depositAmount","CalculateDepositAmount","saleAmount","amountManager","CalculateSaleAmountExcludingVat","CalculatePlatformFeesRate","hasUsedReferralCode","referralCode","isReferralCodeOfVendorOfThisSale","feesRate","CalculateVendorProfitsRate","CalculatePlatformFeesVatRate","CalculatePlatformFeesVatAmount","CalculatePlatformFeesAmountIncludingVat","CalculatePlatformFeesAmountExcludingVat","CalculateVendorRemainingProfitsAmount","CalculateVendorDepositProfits","CalculateVendorSettlementProfits","CalculateVendorTransferProfits","CalculateVendorReferralFeesRate","vendorReferralCode","CalculateVendorReferralFeesAmount","CalculateSettlementAmount","CalculateDepositRate","rateOfTotal","CalculateBuyerDepositAmountIncludingVat","depositTaxAmount","CalculateBuyerDepositRemainingAmountIncludingVat","CalculateVendorDepositRemainingProfits","transferProfitsAmount","CalculateVatRate","saleVatRate","DetermineVatOriginApplied","pow","SalesQueryManager","ConvertToArray","FilterQueryByFavorite","FilterQueryByVendor","FilterQueryByStatus","FilterQueryByFlagApproved","FilterQueryByStartDate","FilterQueryByEndDate","FilterQueryByCreatedDatePeriod","FilterQueryByPaymentStatus","FilterQueryByTransferStatus","FilterQueryByAge","FilterQueryByAuction","FilterQueryByShop","FilterQueryByFlagSharedCatalog","FilterQueryByFlagArchived","FilterQueryByFlagVoucher","FilterQueryBySaleType","FilterQueryByProductType","FilterQueryByPriceMin","FilterQueryByPriceMax","filterExpression","flagSharedCatalog","flagArchived","filteredQuery","ageFilterValue","startAge","ConvertAgeCategoryToStartYear","endAge","ConvertAgeCategoryToEndYear","filterValuesGreaterOrEqualAt","filterValuesLowerThat","filterValueStartPeriod","filterValueEndPeriod","fv","minPriceFilterValue","maxPriceFilterValue","ageCategory","subtract","ShippingManager","CanDeliver","shippingServices","GetShippingIcon","ShopManager","GetShopUrl","route","protocol","host","defaultShopPicture","GetShopCoverPicture","shopPicture","StepManager","stepItems","SetCurrentStep","stepItem","TaskManager","CalculateStatusTrackingDueDate","CalculateCollectDueDate","saleDate","CalculateTransferDueDate","dateToUse","HasTaskType","taskType","task","CanEditRelatedApprovalTask","CanEditRelatedTrackingTask","CanEditRelatedSettlementTask","CanEditRelatedShippingTask","SaveAdditionalSubtask","answer","subtask","comment","dueDate","priority","doneBy","doneAt","SaveTask","createdTask","UserManager","IsEqualAddress","addressToCompare","locality","postalCode","district","IsEqualUser","userToCompare","CompareUsersById","user1","user2","CompareCustomersById","customer1","customer2","FormatAddress","formattedAddress","MapVendorToOption","BuildVendorsOptionsGroups","vendors","activeVendors","activeVendorsOptions","passiveVendorsOptions","av","activeVendorTranslate","passiveVendorTranslate","BuildVendorsOptions","MapMemberToOption","BuildMembersOptionsGroups","members","activeMembers","orders","carts","activeMembersOptions","passiveMembersOptions","am","activeMemberTranslate","passiveMemberTranslate","BuildMembersOptions","AppModule","BuildContainer","DashboardManager","RestoreUserData","InitVisitorData","InitUserData","WatchAuthData","appVue","BootstrapVueApp","store","h","$mount","authRoleGuard","toMatched","matched","record","requiresAuth","requiresAuthRole","requiredAuthRole","requiredAuthRoles","requiresAuthRoles","hasRequiredRole","role","I18nLocalization","PedigreeViewTypes","ProductPedigreeView","Picture","pedigreeGeneration","HasPropertyTicketPicture","HasPedigreePicture","HasPedigreePdf","HasPedigreeDiagramData","IsOwnerOfThisPigeon","selectedViewBy","viewBy","selectedViewByOrientation","viewByOrientation","ObservePedigreeData","ObserveViewByType","Pdf","Diagram","isFaulty","OnViewBy","OnViewByOrientation","maxSelectedGeneration","BuyPage","PigeonPedigreeView","ProductStepPigeonView","ProductStepPedigreeView","PigeonStepSuccessView","ProductStepSuccessSaleView","saleStepsChildren","ProductStepSaleView","nextSteps","defaultStep","ProductStepPackageView","pigeonHasVideo","operation","redirect","pigeonStepsChildren","buy","checkout","saleSheet","routes","LabPage","HomePage","FaqPage","WhyPage","SalePage","children","ProductPackagePigeonView","PigeonPage","productSheet","PigeonNewPage","PigeonEditPage","CheckoutPage","CheckoutView","CheckoutSuccessView","SellPage","SaleNewPage","keyNextStep","SaleEditPage","AccountResetPasswordPage","AccountVerificationPage","AccountPage","AccountDataView","AccountAddressView","AccountNotificationsCenterView","BuyerPage","BuyerDashboardView","BuyerOrdersView","BuyerOrderDetailsView","BreederPage","BreederDashboardView","BreederFancierProfileView","VendorPage","VendorDashboardView","VendorAuctionView","VendorPaymentsView","VendorSalesView","VendorSuperviseView","VendorShopView","VendorReferralView","AdminPage","AdminDashboardView","AdminDashboardLegacyView","AdminApprovalSalesView","AdminDbAlertsView","AdminNotificationsView","AdminBankTransferView","ContactPage","PolicyTermsAndConditionsPage","PolicyAuctionConditionsPage","PolicyPrivacyPage","PolicyCookiesPage","beforeEnter","NotFoundPage","ConnectOAuthVerificationPage","NProgress","showSpinner","speed","VueRouter","scrollBehavior","savedPosition","lastFrom","lastTo","x","y","beforeEach","next","authGuard","afterEach","AuthStore","_AuthStore","VuexModule","requiresRole","debug","accountData","Logout","checkoutStore","pigeonStore","saleStore","AuthSession","ClearStorage","removeItem","AuthStore_1","STORE_KEY","Module","namespaced","dynamic","HasFunctionalityCookieConsent","cookiesUserConsent","cookiesConsentLevels","userHasAcceptedFunctionalityCookie","AccountStore","_AccountStore","account","isAccountVerified","isConnectedAccountVerified","hasResentAccountVerification","UPDATE_ACCOUNT_DATA","FLAG_ACCOUNT_RESENT_VERIFICATION","RESET","FlagAccountAsVerified","Store","FlagConnectedAccountAsVerified","InitAccountData","FlagVerificationAsResent","setItem","AccountStore_1","Restore","accountDataStored","getItem","sessionStored","Mutation","AppDataStore","Countries","countries","RingAreas","RingAreasGroupOptions","SET_COUNTRIES_DATA","countriesData","SET_RING_AREAS_DATA","ringAreasData","InitializeCountries","countriesService","countryManager","InitializeRingAreas","ApprovalStore","pendingApprovalSalesCount","pendingApprovalSales","approvedSalesCount","approvedSales","disapprovedSalesCount","disapprovedSales","SET_PENDING_APPROVAL_SALES","SET_APPROVED_SALES","SET_DISAPPROVED_SALES","SET_SHOW_PENDING_APPROVAL_TASK","show","showPendingApprovalTask","DismissPendingApprovalTask","FetchApprovalSales","AppsStore","APPS_LAUNCHER","openState","launcherIsOpen","CloseAppsLauncher","OpenAppsLauncher","AppStore","UPDATE_COOKIES_BANNER","hasDisplayed","cookiesBanner","UPDATE_AUTOMATIC_TRANSLATION_ALERT","UPDATE_SNOOZED_END_DATE_VENDOR_CONNECTED_ACCOUNT","snoozeEndDate","snoozedDateEndVendorConnectedAccount","UPDATE_REFERRAL_CODE","UpdateCookiesBanner","UpdateAutomaticTranslationAlert","UpdateSnoozedEndDateVendorConnectedAccount","UpdateReferralCode","PackageCartItemMapper","taxRate","taxAmount","taxInclusive","pickUpAddress","pigeonsCount","juniorsCount","yearlingsCount","seniorsCount","fancierName","PigeonCartItemMapper","salePigeonItem","bidNumber","CartItemMapper","CartStore","_CartStore","CartTotal","cartId","SET_CHECKOUT_SESSION_ID","SET_CART_ID","SET_ITEMS","ADD_ITEM","REMOVE_ITEM","cartStored","CartStore_1","StoreState","UpdateCheckoutSessionId","AddItem","availableForPurchaseResponse","InsertCart","RemoveItem","cartsService","userIpAddress","createdUrl","userName","SalesCatalogStore","sortType","CatalogSortDirectionTypes","viewType","CatalogViewTypes","selectedFavoriteSales","selectedVendorFilter","selectedFlagApprovedFilter","selectedFlagVoucherFilter","selectedStatusFilter","selectedStatusFilterForPublicSales","selectedStatusFilterForMySales","selectedCurrentDateFilter","selectedCurrentDateFilterForPublicSales","selectedStartDateFilter","selectedEndDateFilter","selectedCreatedDateFilter","selectedSexFilter","selectedAgeFilter","selectedDisciplineFilter","selectedSaleTypeFilter","selectedProductTypeFilter","selectedCountryFilter","selectedAuctionFilter","selectedPaymentFilter","selectedTransferFilter","selectedPriceMininimumFilter","DEFAULT_MINIMUM_PRICE","selectedPriceMaximumFilter","DEFAULT_MAXIMUM_PRICE","selectedShopFilter","selectedFlagSharedCatalogFilter","selectedFlagArchivedCatalogFilter","HasSomeFilters","catalog","GO_TO_PAGE","pageIndex","SELECT_PAGE_SIZE","SELECT_SORT_TYPE","SELECT_VIEW_TYPE","SET_FILTERS","CLEAR_FILTERS","GoToPage","SelectPageSize","SelectSortType","SelectViewType","Filter","ClearFilters","CheckoutStore","_CheckoutStore","checkoutDate","currentStepName","INIT_CHECKOUT","customerId","shippingId","paymentId","INIT_CUSTOMER","INIT_SHIPPING","useDeliveryName","deliveryName","GetDeliveryName","deliveryServices","INIT_BILLING","uniqueId","RESTORE","UPDATE_STEP","stepName","UPDATE_ITEMS","UPDATE_CUSTOMER","UPDATE_USER","UPDATE_GUEST","UPDATE_SHIPPING","UPDATE_PAYMENT","checkoutStored","CheckoutStore_1","InitCheckoutSessionData","debounce","stripePaymentMethod","InsertCheckoutSession","UpdateStep","UpdateItems","shouldStoreState","UpdateCustomer","UpdateShipping","UpdatePayment","RecycleSession","uniqueid","checkoutSessionsService","newSession","CleanSessionModel","UpdateCheckoutSession","modifiedSession","checkoutManager","VendorDashboardStore","RESET_SALES_DATASET","salesDataset","UPDATE_SALES_DATASET","salesToUpdate","saleToUpdate","existing","merge","ResetDataset","UpdateSalesDataset","EnsureUpdateSalesDatasetForAuctions","auctions","requiredSalesIds","missingSales","FetchMissingSalesProducts","EnsureUpdateSalesDatasetForPayments","payments","depositSalesIds","deposits","settlementSalesIds","settlements","stripePayoutSalesIds","stripePayouts","sp","payoutSalesIds","paymentSalesIds","sid","existingsSalesIds","missingSalesIds","missingSalesWithProductData","AdminDashboardStore","EnsureUpdateSalesDatasetForBids","EnsureUpdateSalesDatasetForBiddingOrders","EnsureUpdateSalesDatasetForOrders","DepositStore","pendingDepositsCount","pendingDeposits","SET_PENDING_DEPOSITS","REMOVE_PENDING_DEPOSIT","depositKeyToRemove","depositIndex","SET_SHOW_PENDING_DEPOSIT_TASK","showPendingDepositTask","DismissPendingDepositTask","FetchPendingDeposits","RemovePendingDeposits","DialogsStore","CloseOtherDialogs","storeToken","CloseDialogs","DialogStore","OPEN","dialog","CLOSE","TOGGLE","STORE_TOKEN","CartDialogStore","SignInDialogStore","SignOnDialogStore","SignUpDialogStore","SignUpVendorDialogStore","FavoriteStore","SET_FAVORITES","favorites","ADD_A_FAVORITE","unshift","REMOVE_A_FAVORITE","FetchFavorites","favoritesData","JwtStore","_JwtStore","HasTokenExpired","jwt","jwtDecode","exp","IsTokenCloseToExpire","closeToExpireTimestamp","UPDATE_PENDING","pendingStatus","pending","UPDATE_REFRESH_PROMISE","refreshPromise","UPDATE_TOKENS","tokens","UPDATE_LAST_AUTH_DATE","lastAuthDate","RefreshTokens","authAt","InitTokens","JwtStore_1","ACCESS_TOKEN_STORE_KEY","REFRESH_TOKEN_STORE_KEY","AUTH_AT_STORE_KEY","accessTokenStored","refreshTokenStored","authAtStored","NotificationStore","saleNotificationsUnread","saleNotifications","SET_SALE_NOTIFICATIONS","saleNotificationsCount","UPDATE_SALE_NOTIFICATION","updatedSaleNotification","notifToFlagIndex","ADD_SALE_NOTIFICATION_TO_SEEN_STACK","saleNotificationsSeen","FetchSalesNotifications","defaultFilters","FetchNotifications","FlagNotificationAsRead","FlagNotificationAsSeen","PigeonStore","UPDATE_MODE","isExpertModeActivated","expertMode","UpdateMode","UPDATE_PIGEON","UpdatePigeon","UPDATE_FILE_PICTURES","filePictures","UPDATE_FILE_VIDEOS","fileVideos","PUSH_FILE_PICTURE","PUSH_FILE_VIDEO","UpdateFilePictures","UpdateFileVideos","AddFilePicture","existingIndexFile","AddFileVideo","SaleStore","UPDATE_SALE","UpdateSale","SearchStore","TOGGLE_SEARCH_BAR","searchBarIsOpen","UPDATE_SEARCH_TYPE","UPDATE_SEARCH_QUERY","searchQueryInput","UPDATE_SEARCH_QUERY_RING_AREA","UPDATE_SEARCH_QUERY_RING_CLUB","UPDATE_SEARCH_QUERY_RING_BIRTHYEAR","ringBirthyear","UPDATE_SEARCH","UpdateSearchType","UpdateSearchQuery","UpdateSearchQueryRingArea","UpdateSearchQueryRingClub","UpdateSearchQueryRingBirthyear","UpdateSearch","SettlementStore","pendingSettlementsCount","pendingSettlements","SET_PENDING_SETTLEMENTS","REMOVE_PENDING_SETTLEMENT","settlementKeyToRemove","settlementIndex","SET_SHOW_PENDING_SETTLEMENT_TASK","showPendingSettlementTask","DismissPendingSettlementTask","FetchPendingSettlements","RemovePendingSettlements","UserStore","_UserStore","DefaultAddress","DefaultPickupAddress","addresses","pickupAddresses","lastPickupAddress","DefaultDeliveryAddress","deliveryAddresses","lastDeliveryAddress","DefaultBillingAddress","billingAddresses","lastBillingAddress","MailHelper","UPDATE_USER_DATA","UPDATE_VENDOR_DATA","vendorData","UPDATE_VENDOR_DEFAULT_FANCIER_ID","defaultFancierId","UPDATE_VENDOR_DEFAULT_FANCIER_PROFILE_ID","defaultProfileId","defaultFancierProfileId","ADD_ADDRESS","UPDATE_PREFERRED_LANGUAGE","UPDATE_FLAG_AGREE_TO_AUCTION_CONDITIONS","flagAgreeToAuctionConditions","SET_INTERMEDIARY","intermediary","AddAddress","InitVendorData","InitIntermediary","UpdateVendorDefaultFancierId","UpdateVendorDefaultFancierProfileId","UpdateUserPreferredLanguage","UpdateMemberFlagPolicy","agreeToAuctionConditions","UserStore_1","userDataStored","getModule","adminDashboardStore","vendorDashboardStore","favoriteStore","salesCatalogStore","isMember","isApprover","isAdministrator","Vuex","HrefToMailProviderWebSite","RoundTo2decimal","EPSILON","RoundToInteger","relativeTime","localizedFormat","localeData","DateRangeForLastMonth","DateRangeForAllTime","userRegisteredAt","refDate","startOf","endOf","errorBag","axiosError","isAxiosError","HandleAxiosError","HandleServiceError","HandleRaisedError","HandleUnexpectedError","httpStatusCode","isBadRequestError","errorResponseData","errorMessage","HandleModelValidationError","errorResponse","HandleModelValidationErrorDetails","validationServerError","details","detail","setErrors","camelCase","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","O","result","chunkIds","notFulfilled","Infinity","fulfilled","j","n","getter","__esModule","definition","defineProperty","enumerable","e","chunkId","reduce","promises","miniCssF","globalThis","Function","obj","prop","done","script","needAttach","scripts","getElementsByTagName","getAttribute","nc","setAttribute","onScriptComplete","prev","onerror","onload","doneFns","parentNode","removeChild","head","Symbol","toStringTag","loadStylesheet","fullhref","existingLinkTags","dataHref","existingStyleTags","findStylesheet","oldTag","linkTag","nonce","errorType","realHref","err","insertBefore","nextSibling","createStylesheet","installedCssChunks","miniCss","installedChunks","installedChunkData","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""}