{"version":3,"sources":["webpack:///webpack/bootstrap?undefined","webpack:///./ClientApp/src/components/WpTopBar/wp-top-bar.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpPayConfirm/WpRules/wp-rules.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Syntech/default-syntech-provider.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpInstructors/WpInstructorsList/wp-instructors-list.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/order-type.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpInstructors/wp-instructors-group.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/contract-club-tariff-cart-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/default-loyalty-notification-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/LuzhnikiParking/index.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpPersonification/WpPersonificationItem/wp-personification-bundle.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tennis/lt-tariff.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpInstructors/WpInstructorsLessons/wp-instructors-lessons.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Global/widget-type.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/free-sale-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Metrics/metrics-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Metrics/metric-type.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Metrics/metric-counter.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Metrics/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Metrics/metrics-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/index.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sib/default-sib-provider.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpTariffs/WpTariffItem/wp-tariff-rewrite-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/social-network-types.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpTariffs/wp-tariffs.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpPersonification/WpPersonificationItem/wp-personification-bundle.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/tariff-capacity.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/benefit-sale-service.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpSkidataParking/wp-skidata-parking.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/contract-club-package-cart-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/group-lessons-filter.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/default-club-provider.ts?undefined","webpack:///./ClientApp/src/components/WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyRegister/wp-isd-loyalty-register.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpArena/WpArenaSeats/WpArenaMinimap/wp-arena-minimap.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/News/news-article.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/payment-form.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Arena/default-arena-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructors-provider.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpInstructors/WpInstructorsLessons/wp-instructors-lessons.ts?undefined","webpack:///./ClientApp/src/components/WpLoyalty/WpIsdLoyalty/wp-isd-loyalty.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpArena/WpArenaSectors/wp-arena-sectors.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpInstructors/wp-instructors-bundles.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpCart/WpCartItem/wp-cart-item.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/order-item-type.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/contract-service-period.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/benefit-app-settings.ts?undefined","webpack:///./ClientApp/src/components/WpLogin/wp-login-page.html?undefined","webpack:///./ClientApp/src/components/WpNews/wp-news-article.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpInstructors/WpInstructorsLessons/wp-instructors-group-lessons.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/personification-api-order-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tennis/index.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/LuzhnikiParking/luzh-parking-order-provider.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpArena/WpArenaSectors/wp-arena-sector-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Syntech/parking-session-info.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Syntech/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Syntech/default-syntech-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Syntech/session-parking-cart-item.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpPayConfirm/WpPayConfirmItem/wp-payconfirm-item.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Global/app-settings.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/wp-core-prefixes.ts?undefined","webpack:///./ClientApp/src/components/WpSale/wp-sale.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/pps-contract-status.ts?undefined","webpack:///./ClientApp/src/components/WpCommon/WpBarChart/wp-bar-chart.ts?undefined","webpack:///./ClientApp/src/components/WpCommon/WpLoadingOverlay/wp-loading-overlay.ts?undefined","webpack:///./ClientApp/src/components/WpProfile/wp-profile.ts?undefined","webpack:///./ClientApp/src/components/WpProfile/wp-change-password.ts?undefined","webpack:///./ClientApp/src/components/WpNews/wp-news.ts?undefined","webpack:///./ClientApp/src/components/WpNews/wp-news-item.ts?undefined","webpack:///./ClientApp/src/components/WpNews/wp-news-article.ts?undefined","webpack:///./ClientApp/src/components/WpOrder/wp-orders.ts?undefined","webpack:///./ClientApp/src/components/WpOrder/wp-order.ts?undefined","webpack:///./ClientApp/src/components/WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyEdit/wp-isd-loyalty-edit.ts?undefined","webpack:///./ClientApp/src/components/WpClientsCards/wp-clients-cards.ts?undefined","webpack:///./ClientApp/src/components/WpMain/wp-main.ts?undefined","webpack:///./ClientApp/src/components/WpMain/WpMainNews/main-news-item.ts?undefined","webpack:///./ClientApp/src/components/WpFeedback/wp-feedback.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpSkidataParking/wp-skidata-parking.ts?undefined","webpack:///./src/components/WpSale/WpInstructors/WpInstructorsDatepicker/wp-instructors-datepicker.vue?71cf","webpack:///./node_modules/cache-loader/dist/cjs.js?undefined","webpack:///./src/components/WpSale/WpInstructors/WpInstructorsDatepicker/wp-instructors-datepicker.vue?51e2","webpack:///./src/components/WpSale/WpInstructors/WpInstructorsDatepicker/wp-instructors-datepicker.vue?1c91","webpack:///./ClientApp/src/components/WpSale/WpArena/WpArenaSectors/wp-arena-sectors.ts?undefined","webpack:///./ClientApp/src/components/WpLogin/wp-login-dialog.ts?undefined","webpack:///./ClientApp/src/components/WpLogin/wp-login-page.ts?undefined","webpack:///./ClientApp/src/components/WpSettings/wp-settings.ts?undefined","webpack:///./ClientApp/src/components/WpNotification/wp-notification-queue.ts?undefined","webpack:///./ClientApp/src/components/WpError/wp-error.ts?undefined","webpack:///./ClientApp/src/components/vuetify-components.ts?undefined","webpack:///./ClientApp/src/components/index.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpTariffs/WpTariffItem/wp-tariff-bundle.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/discount-type.ts?undefined","webpack:///./ClientApp/src/components/WpMain/wp-main.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/loyalty-program.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpPersonification/wp-personification.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tennis/tennis-sold-contract.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpMarket/wp-market-rule-item.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/sale-provider.ts?undefined","webpack:///./ClientApp/src/components/WpOrder/wp-order.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/payment-form-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/club-app-settings.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/discount-program.ts?undefined","webpack:///./ClientApp/src/components/WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyRegister/wp-isd-loyalty-register.ts?undefined","webpack:///./ClientApp/src/components/WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyChildren/wp-isd-loyalty-children.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Global/sale-terms-type.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/payment-system-type.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/sale-service.ts?undefined","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$?undefined","webpack:///./ClientApp/src/components/WpSale/WpPayConfirm/WpPayConfirmItem/wp-payconfirm-bundle.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/lock-order-info.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructors-personal-lesson-price.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpTariffs/wp-tariffs-rewrite.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpArena/wp-arena.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpTariffs/WpTariffItem/wp-tariff-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/club-card.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-base.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-company.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-rule.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-tariff-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-schedule.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-date-time-range.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-cart-item-state.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-client.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-bill-status.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-tariff-cart-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-employee.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-bill.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-bill-cart-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-identity.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Market/market-bill-initialize-result.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructors-bundle-cart-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/tariff-capacity-provider.ts?undefined","webpack:///./ClientApp/src/components/WpLogin/WpPasswordReset/wp-password-reset.ts?undefined","webpack:///./ClientApp/src/components/WpSale/wp-sale.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tennis/tennis-club-service.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpCart/wp-cart.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpOrderTimer/wp-order-timer.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Identity/mobile-user-identity.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Identity/access-token.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Identity/identity-changed-event-args.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Identity/empty-identity.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Identity/empty-context.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Identity/web-sale-user-identity.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Identity/oidc-storage-store.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Identity/modified-web-sale-user-identity.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Identity/local-user-storage.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Identity/mobile-user-storage.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpTariffs/WpTariffItem/wp-tariff-rewrite-item.html?undefined","webpack:///./ClientApp/src/components/WpClientsCards/wp-clients-cards.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/RozaHutor/rh-app-settings.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/RozaHutor/rh-identity.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/RozaHutor/rh-initializer.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/RozaHutor/rh-context.ts?undefined","webpack:///./ClientApp/src/components/wp-page-base-component.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructors-lessons-location.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/person-achievement.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpPayConfirm/WpPayConfirmPromo/wp-payconfirm-promo.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpMarket/wp-market-rule-item.ts?undefined","webpack:///./ClientApp/src/components/WpLogin/wp-login-dialog.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpInstructors/wp-instructors.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpArena/WpArenaSeances/wp-arena-seances.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpCart/wp-cart.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpInstructors/WpInstructorsList/wp-instructors-list.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructor-tariff-category.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/person-sale.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/node_modules/moment/locale sync ^\\.\\/.*$?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/account-replenishment-cart-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/default-club-service.ts?undefined","webpack:///./ClientApp/src/components/WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyEdit/wp-isd-loyalty-edit.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Arena/arena-position.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Arena/arena-seat.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Arena/arena-seats-list.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Arena/arena-sector.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Arena/arena-sectors-list.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Arena/arena-tariff.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Arena/arena-tariff-option.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Arena/arena-tariff-free-places.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Arena/arena-polygon-point.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Arena/arena-seance.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Arena/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Arena/default-arena-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Arena/arena-cart-item-state.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Arena/arena-cart-item.ts?undefined","webpack:///./ClientApp/src/components/WpLogin/WpPasswordReset/wp-password-reset.html?undefined","webpack:///./ClientApp/src/components/metrics-events-symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/sold-club-contract.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/order-sale.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/isd-loyalty-questionnaire.ts?undefined","webpack:///./ClientApp/src/components/WpCommon/WpBarChart/wp-bar-chart.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpTariffs/WpTariffsDatepicker/wp-tariffs-datepicker.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpPayConfirm/WpPayConfirmItem/wp-payconfirm-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Global/initializer.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpTariffs/WpTariffItem/wp-tariff-item.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpInstructors/wp-instructors.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/reservation-item-types.ts?undefined","webpack:///./ClientApp/src/components/WpMain/WpMainNews/main-news-item.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/sold-contract-changed-event-args.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/site-additional-settings.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/loyalty-notification-added-event-args.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructors-places.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sib/sib-app-settings.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/payment-system.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpArena/WpArenaSeats/wp-arena-seats.html?undefined","webpack:///./ClientApp/src/components/WpProfile/wp-profile.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpArena/WpArenaSeances/wp-arena-seance-item.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/order-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/default-loyalty-notification-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/order-status.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpPersonification/WpPersonificationItem/wp-personification-item.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpPayConfirm/WpPayConfirmItem/wp-payconfirm-bundle.ts?undefined","webpack:///./ClientApp/src/components/Localization/base-ui-localization-terms.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/new-contract-cart-item.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpArena/WpArenaSectors/wp-arena-sector-item.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/social-network-data.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Cart/cart.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructors-group-lesson-price.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpOrderTimer/wp-order-timer.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Luzhniki/luzhniki-order-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Luzhniki/luzhniki-feedback-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Luzhniki/Tennis/lt-upper-group.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Global/connection-type.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Global/site-status.ts?undefined","webpack:///./ClientApp/src/components/Localization/Ru/localization-dictionary-ru.ts?undefined","webpack:///./ClientApp/src/components/Localization/En/localization-dictionary-en.ts?undefined","webpack:///./ClientApp/src/components/Localization/index.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpPersonification/WpPersonificationItem/wp-personification-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Profile/default-profile-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Global/global-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructors-personal-lesson.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Global/service-registred-record.ts?undefined","webpack:///./ClientApp/src/sib-sale/router.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Global/app-settings-initialized-event-args.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/fixed-price-type.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpPayConfirm/WpRules/wp-rules.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/loyalty-notification-status.ts?undefined","webpack:///./ClientApp/src/components/WpTopBar/wp-top-bar.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/isd-loyalty-program.ts?undefined","webpack:///./ClientApp/src/sib-sale/SibArenaSectors/sib-arena-sectors.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/pay-account-payment.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpComplete/wp-complete.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Cart/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/contract-procedure.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Localization/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructors-group-cart-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Cart/cart-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/PhoneConfirm/phone-confirm-code.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/PhoneConfirm/user-phone-confirm-ban.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/PhoneConfirm/default-phone-confirmation-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/PhoneConfirm/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/PhoneConfirm/phone-confirmation-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/PhoneConfirm/combine-phone-confirmation-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/club-contract-status.ts?undefined","webpack:///./src/components/WpSale/WpInstructors/WpInstructorsDatepicker/wp-instructors-datepicker.vue?776f","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructors-personal-cart-item.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpCart/WpCartItem/wp-cart-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sib/sib-authorization-failed-event-args.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sib/sib-identity.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sib/symbols.ts?undefined","webpack:///./ClientApp/src/components/wp-base-component.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/index.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/StyleSettings/widget-style.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Common/action-result.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/index.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/isd-user-loyalty.ts?undefined","webpack:///./ClientApp/src/components/WpLoyalty/WpIsdLoyalty/wp-isd-loyalty.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/order-sale-state.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Utility/format.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/person-isd-loyalty-data.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/loyalty-program-status.ts?undefined","webpack:///./ClientApp/src/components/WpProfile/wp-change-password.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Profile/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Profile/default-profile-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Profile/user-profile.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/contract-period.ts?undefined","webpack:///./ClientApp/src/components/WpLogin/WpLoginForm/wp-login-form.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructors-group-lesson.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/tariff-sale.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Cms/default-cms-data-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Cms/cms-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Order/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Order/order-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Order/order.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Order/order-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Order/order-details.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Order/orders-filter.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/tariff-provider.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpArena/WpArenaSeances/wp-arena-seance-item.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpPersonification/WpPersonificationItem/wp-personification-bundle-form.html?undefined","webpack:///./ClientApp/src/components/WpFeedback/wp-feedback.html?undefined","webpack:///./ClientApp/src/components/WpError/wp-error.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpArena/WpArenaSeats/WpArenaMinimap/wp-arena-minimap.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpArena/WpArenaSeats/wp-arena-seats.ts?undefined","webpack:///./ClientApp/src/components/WpCommon/WpLoadingOverlay/wp-loading-overlay.html?undefined","webpack:///./ClientApp/src/components/WpLogin/WpLoginForm/wp-login-form.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/contract-service.ts?undefined","webpack:///./ClientApp/src/components/WpLogin/WpRegistrationForm/wp-registration-form.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/club-card-visit.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Organizations/organization-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tennis/lt-club-app-settings.ts?undefined","webpack:///./ClientApp/src/sib-sale/sib-sale-main.ts?undefined","webpack:///./ClientApp/src/components/WpSettings/wp-settings.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Localization/localization.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Localization/default-localization-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Localization/localization-changed-event-args.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Localization/localization-static-dictionary.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Localization/base-system-localization-terms.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/LoyaltyNotification.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Luzhniki/Tennis/lt-subgroup.ts?undefined","webpack:///./ClientApp/src/components/WpOrder/wp-orders.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructors-gender.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/benefit-sale-provider.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpInstructors/wp-instructors-bundles.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Global/site.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/account-balance.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructor.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Common/sorting-mode.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Common/wp-event.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Common/wp-event-handler.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Common/wp-event-args.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Common/errors-terms.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Common/base-filter.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Common/barcode-type.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Common/sorting.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Common/filtring-result.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Utility/guid.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Utility/DateHandler/date-handler.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Utility/DateHandler/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/index.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/reservation-item.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpPayConfirm/WpPayConfirmPromo/wp-payconfirm-promo.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Luzhniki/luzhniki-account-balance-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Cms/symbols.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpTariffs/wp-tariffs.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpArena/wp-arena.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Organizations/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Organizations/organization-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Organizations/organization-info.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpTariffs/wp-tariffs-rewrite.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/News/index.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Cart/cart-provider.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpArena/WpArenaSeances/wp-arena-seances.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpInstructors/WpInstructorsLessons/wp-instructors-group-lessons.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Cart/cart-item-types.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpPayConfirm/wp-payconfirm.html?undefined","webpack:///./ClientApp/src/components/WpNews/wp-news.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Identity/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/club-contract-data.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/club-contract.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructors-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/personal-lessons-filter.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpMarket/wp-market-rules.html?undefined","webpack:///./ClientApp/src/components/WpNotification/wp-notification-queue.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/bundle-cart-item.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpPayConfirm/wp-payconfirm.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/contract-payment-type.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/tariff-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Luzhniki/luzhniki-order-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/default-loyalty-provider.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpArena/WpArenaSeats/wp-arena-seat-item.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpComplete/wp-complete.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Notification/notification-types.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Notification/wp-notification.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Notification/notification-event-args.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Notification/default-notification-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Notification/symbols.ts?undefined","webpack:///./ClientApp/src/components/WpPhoneConfirm/wp-phone-confirm.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/reservation-data.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/IdentityServerLogin/identity-login-state.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/IdentityServerLogin/identity-phone-confirmation-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/IdentityServerLogin/fake-profile-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/IdentityServerLogin/identity-account-provider.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/IdentityServerLogin/identity-server-app-settings.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpTariffs/WpTariffItem/wp-tariff-bundle.ts?undefined","webpack:///./ClientApp/src/components/WpPhoneConfirm/wp-phone-confirm.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpCart/WpCartBundle/wp-cart-bundle.ts?undefined","webpack:///./src/sib-sale/SibSaleApp.vue?c344","webpack:///./src/sib-sale/SibSaleApp.vue?1a18","webpack:///./src/sib-sale/SibSaleApp.vue?6163","webpack:///./ClientApp/src/components/WpSale/WpTariffs/WpTariffsDatepicker/wp-tariffs-datepicker.ts?undefined","webpack:///./ClientApp/src/sib-sale/SibArenaSectors/sib-arena-sectors.ts?undefined","webpack:///./ClientApp/src/sib-sale/vuetify.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructor-usage-type.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/contract-actual-period.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/order-item-discount.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Loyalty/loyalty-changed-event-args.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpInstructors/WpInstructorsDatepicker/wp-instructors-datepicker.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/order-discount.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Global/m-logger.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/owner-type.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpInstructors/wp-instructors-group.html?undefined","webpack:///./ClientApp/src/components/WpSale/WpMarket/wp-market-rules.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/tariff-service-cached.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/tariff-type.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/tariff.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/tariff-seance.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/tariff-cart-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/tariffs-bundle.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/rewrite-cart-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/tariff-capacity-service.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tariffs/tariff-capacity-service-cached.ts?undefined","webpack:///./ClientApp/src/components/WpLogin/WpRegistrationForm/wp-registration-form.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpInstructors/WpInstructorsLessons/wp-instructors-bundles-lessons.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/symbols.ts?undefined","webpack:///./src/sib-sale/SibSaleApp.vue?3903","webpack:///./ClientApp/src/components/WpSale/WpInstructors/WpInstructorsLessons/wp-instructors-bundles-lessons.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tennis/lt-tariff-group.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpArena/WpArenaSeats/wp-arena-seat-item.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/skill-type.ts?undefined","webpack:///./ClientApp/src/components/WpNews/wp-news-item.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/club-card-type.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/order-item-additional-info.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpPersonification/WpPersonificationItem/wp-personification-bundle-form.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Sale/loyalty-program-type.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Cart/cart-service.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpCart/WpCartBundle/wp-cart-bundle.html?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Tennis/symbols.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructor-category.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Instructors/instructors-bundles-groups-lessons.ts?undefined","webpack:///./ClientApp/src/components/WpSale/WpPersonification/wp-personification.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Club/index.ts?undefined","webpack:///C:/Users/Владислав/Documents/Разработка/WorkSpases/code (.net core)/WebPlatform.CoreUI.Frontend/src/Common/error-types.ts?undefined","webpack:///./ClientApp/src/components/WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyChildren/wp-isd-loyalty-children.html?undefined"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","DefaultSyntechProvider","ticket","client","typed_rest_client_1","location","origin","headers","global_service_1","GetSettings","SiteId","SessionId","response","Result","action_result_1","FailedData","error_types_1","NotFoundData","_a","Data","Message","InternalError","_b","SuccessData","_c","inversify_1","WpInstructorsListProps","Vue","extend","props","type","default","required","input","Function","placeid","WpInstructorsList","Instructor","Instructors","InstructorsLoaded","InstructorMore","this","_instructorsService","GlobalService","Get","InstructorsSymbols","InstructorsService","_cmsService","CmsSymbols","CmsService","Id","LoadInstructors","$emit","select","blur","GetInstructorsAsync","query","Success","sort","x","y","Name","filter","BaseFilter","GetEntitiesAsync","WpCorePrefixes","Intructors","moreInfo","TotalCount","entities","Entities","forEach","info","find","e","Code","ImageLink","Preview","Description","mixins","WpBaseComponent","__decorate","Ref","HTMLElement","Watch","Promise","Component","template","require","WpInstructorsListDictionary","InstructorsLoading","BaseSystemLocalizationDictionary","OrderType","wpInstructorsProp","Cart","multiday","WpInstructorsGroup","_allTariffs","DatepickerSettings","SelectedPlace","TariffId","Tariffs","TariffLoaded","TariffVisible","NoTariffs","Skill","Skills","SkillsLoaded","SkillsVisible","NoSkills","CategoryId","Categories","CategoriesLoaded","CategoriesVisible","NoCategories","LocationId","Locations","LocationsLoaded","LocationsVisible","NoLocations","ShowButtonVisible","FilterLoading","LessonsLoaded","Dates","DatesVisible","NoCoach","FilterComplete","Datepicker","categoryById","parseInt","datesArray","firstDate","DateHandler","ParseToDate","lastDate","Parse","Format","setDate","getDate","Settings","_notificationService","NotificationSymbols","NotificationService","cmsService","StartDatepicker","GetPlacesAsync","places","undefined","Error","ErrorMessage","place","PlaceId","GetSkillAsync","LocalizationService","TranslateManyAsync","InstructorsSkillsNames","translateSkill","skill","sc","GetInstructorsTariffCategoriesAsync","InstructorsTariffOptionNames","translateCategories","category","toString","GetLessonsLocationsAsync","locations","GetInstructorsTariffsAsync","tariffs","Tariff","filterTariffsId","GroupLessonsTariffsId","indexOf","ResetTariffs","ResetFilterResults","dateString","tariffCode","Lessons","GroupLessonsSkillsTariffs","OptionId","MultiDaysLessonsSkillsTariffs","TariffCode","lesson","amount","price","cartItem","InstructorsGroupCartItem","CoachId","AddItem","cartItems","SimpleCart","parent","postMessage","status","lessonsBought","Items","element","Type","CartItemTypes","InstructorsGroupLesson","dateFrom","dateTo","coachid","GroupLessonsFilter","GetGroupLessonsAsync","filterResult","thisDate","Date","Disableddates","includes","groups","Array","BeginTime","EndTime","MaxPersonsCount","FreeMembers","dates","WpInstructorsGroupDictionary","Discipline","DisciplinesLoading","Category","CategoriesLoading","Program","ProgramsLoading","DialogBtnShow","Location","LocationsLoading","ContractClubTariffCartItem","id","templateContractId","personContractId","date","code","_id","_templateContractId","_personContractId","_code","_date","_price","_type","ContractAdditionalService","_name","Price","TemplateContractId","PersonContractId","ActionResult","Failed","ErrorTypes","CartError","item","ReservationItem","ReservationItemTypes","CartItem","DefaultLoyaltyNotificationService","provider","_provider","_this","_notificationAdded","WpEventHandler","NotificationAdded","Subscribe","sender","Send","GetNotifications","CheckNotification","injectable","__param","LoyaltySymbols","LoyaltyNotificationProvider","ILoyaltyNotificationProvider","wpPersonificationItemProps","Bundles","UserPersons","WpPersonificationBundle","TotalSum","Loading","OrderItem","WpPersonificationBundleDictionary","GenericDecline","GenericTotalSum","LTTariff","LTAvailableContracts","tariff","contractsIds","JSON","parse","AvailableContracts","Tariffs_1","WidgetType","FreeSaleProvider","context","_settings","_context","CurrentIdentity","UserId","AccessToken","Token","RestClient","IsAuthentificated","AuthorizationHeaders","NotAuthorizationHeaders","PaymentForm","SaleProvider","IdentitySymbols","Context","IContext","MetricsProvider","settings","__1","Common_1","MetricType","MetricCounter","YandexCounter","CounterId","MetricsSymbols","MetricsService","for","metricsProvider","_counters","_countersIsLoaded","_metricsProvider","eventId","arg","__awaiter","ym","keyFor","console","error","GetSitesCountersAsync","clickmap","trackLinks","accurateTrackBounce","IMetricsProvider","i_loyalty_provider_1","default_loyalty_provider_1","isd_user_loyalty_1","symbols_1","isd_loyalty_questionnaire_1","isd_loyalty_program_1","person_isd_loyalty_data_1","account_replenishment_cart_item_1","person_achievement_1","loyalty_changed_event_args_1","social_network_types_1","social_network_data_1","i_loyalty_notification_provider_1","i_loyalty_notification_service_1","LoyaltyNotification_1","loyalty_notification_added_event_args_1","default_loyalty_notification_provider_1","default_loyalty_notification_service_1","loyalty_notification_status_1","account_balance_1","DefaultSibProvider","phone","encodeURIComponent","wpTariffRewriteItemProp","Card","String","WpTariffRewriteItem","_tariffLoading","TariffAvailable","val","oldVal","GetTariffPrice","RewriteCartItem","_tariffService","TariffSymbols","TariffService","TariffLoading","WpTariffRewriteItemDictionary","GenericToCart","TariffUnavailableForThisDate","BaseUILocalizationDictionary","SocialNetworkTypes","TariffCapacity","Capacity","Count","SeanceId","ReservedCount","BenefitSaleService","saleProvider","dateHandler","cart","personId","items","itemTariff","newItems","GetReservationItem","concat","_dateHandler","setting","ReservationData","BenefitDocument","PersonId","_saleProvider","ReservateAsync","SaleService","SaleSymbols","DateHandlerSymbols","DateHandlerService","ISaleProvider","IDateHandler","TariffServiceCached","TariffProvider","TariffCapacityService","TariffCapacityServiceCached","TariffCapacityProvider","ContractClubPackageCartItem","ContractAdditionalPackage","placeId","categoryId","skillLevelId","coachId","contractId","DateFrom","DateTo","SkillLevelId","ContractId","DefaultClubProvider","GetRestClient","tnodId","loyaltyId","ClubServicesSiteId","loayltyId","lessonId","contratId","replace","DaysAmount","UserLoyaltyId","ClubSiteId","TNodId","freeze","statusCode","cashListId","cashItemId","isAuth","tslib_1","Identity_1","NewsArticle","Title","Content","Author","Address","Method","DefaultArenaProvider","seanceId","sectorCode","itemId","arenaCartItem","OptionCode","Option","PlaceCode","Seat","OrderId","SibId","Seance","Sector","SectorCode","SeatIsOccupied","orderId","InstructorsProvider","filterStr","entries","map","join","moment","parseZone","format","beginTime","wpInstructorsLessonsProp","lessons","categoryName","WpInstructorsLessons","LessonsAndDatesLoaded","CategoryName","GroupAmount","GroupMin","GroupMax","LessonLoaded","LessonPriceLoaded","LessonTariffAvailable","PeopleAmountDialog","SessionAmount","$props","IsBought","Lesson","GetPersonalLessonPriceAsync","PriceForOne","PriceForSecond","boughtLesson","LessonsBought","PropSync","WpInstructorsLessonsDictionary","GuestsAmmount","ShorthandPeople","NoAvailableLessons","wpIsdLoyaltyProps","ReturnRouteName","WpIsdLoyalty","pageRegRes","ChangeEmailLoading","ChangeEmailFormValid","PersonalDataStep","LoyaltyId","LoyaltyExist","LoyaltyRegister","BarcodeUrl","FirstName","LastName","SecondName","Phone","Birthdate","City","Gender","BirthdateMenu","CurrentDate","Balance","Discount","ProgramName","RuleAddress","OrganizationSiteUrl","OrganizationName","OrganizationEmail","OrganizationPhone","WidgetUrl","Email","NewEmail","EditModal","v","test","GetLoyalty","IsRegistered","$router","isdPersonData","IsdUserLoyalty","SendSystemNotification","PageLoading","LoyaltyProvider","GetProgramInfoAsync","getProgramInfoAsync","Username","IsdLoyaltyProgram","LoyaltyProgramId","GetIsdUserLoyaltyAsync","GetStringBarcodeType","BarcodeType","CardNumber","barcodeType","NoBarcode","Code128B","Interleaved2of5","parseFloat","toFixed","openInBrowser","open","href","preventDefault","ChangeEmail","ChangeEmailForm","validate","ChangeEmailAsync","PersId","SignOut","ErrorType","InvalidData","WpPageBaseComponent","HTMLFormElement","OrderItemType","ContractServicePeriod","BenefitAppSettings","AppSettings","PersonificationApiOrderItem","BirthDate","IsdTariffpersonification","secondnameRequired","secondnameEnabled","some","birthdateRequired","birthdateEnabled","genderRequired","genderEnabled","regexp","Required","tennis_club_service_1","tennis_sold_contract_1","lt_club_app_settings_1","lt_tariff_1","lt_tariff_group_1","LuzhParkingOrderProvider","log","Order_1","wpArenaSectorItemProp","FreePlaces","Number","MinPrice","MaxPrice","WpArenaSectorItem","WpArenaSectorItemDictionary","TicketPrice","PricesLoading","SeatsLoading","CurrencyIcon","SeatsSingular","SeatsPlural","GenericRemaining","ParkingSessionInfo","State","Cost","StartTime","CostTime","PaymentTimeout","LeavingTimeout","Duration","PaidSum","SyntechSymbols","SyntechService","SyntechProvider","DefaultSyntechService","GetSessionInfoAsync","GetTariffsAsync","ISyntechProvider","SyntechParkingCartItem","sessionId","tariffId","SyntechParking","_tariffId","_sessionId","_ticket","MarketBill","GUID","CartMaxItems","NoPromo","Nocalendar","ResetCart","ForceMedia","OnlyTab","ForceTab","OrderComment","TariffsSeancesFilter","TariffsId","BundlesId","RewriteTariffsId","LessonsTariffsId","BundlesLessonsTariffsId","PersonalLessonsSkillsTariffs","Locale","DisableMultipleSeances","IsMobile","Minimap","MinimapAspect","RequiredLoyalty","VKClientId","PushToken","DeviceId","Platform","BuildVersion","ignoreWindowName","paramsHash","decodeURI","hash","HandleJson","_hashParams","trim","createGuid","skills","categories","noskills","nocategories","notariffs","nolocation","nopromo","nocoach","nocalendar","resetcart","Mindate","mindate","Maxdate","maxdate","Forcedate","forcedate","disableddates","forcemedia","tariffsseancesfilter","groupid","GroupId","rtariffsid","rewritetariffsid","lessonstariffsid","grouplessonstariffsid","bundleslessonstariffsid","grouplessonsskillstariffs","multidayslessonsskillstariffs","personallessonsskillstariffs","forcetab","ordercomment","MarketEmployeeId","marketemployeeid","MarketBillId","marketbillid","locale","disablemultipleseances","ismobile","minimap","minimapaspect","requiredloyalty","cartmaxitems","tariffsid","bundlesid","lessonslocations","LessonsLocation","tabsParam","onlytab","ForceSeanceId","forceseanceid","ForceSectorId","forcesectorid","clubsiteid","platform","deviceid","pushtoken","ver","ex","SaleTermsType","Default","saletermstype","toLocaleLowerCase","Instant","Localization","RU","host","toLowerCase","MarketProvider","_1","billId","marketTariffCartItem","RuleId","Rule","Quantity","Period","StartDateTime","ClientId","Client","ExternalId","TempId","EmployeeId","Employee","WpSaleSteps","wpSaleProps","IframePurchase","Boolean","WpSale","_redirectToAuth","ConnectionType","SalesTab","CurrentSalesTab","ShowSteps","TimeLeftLoading","BackLoading","NextLoading","ScrollFab","SbpDialog","SbpLink","SbpQRLink","SelectedAccountPayment","IsConfirmPhoneForAccountPayment","ConfirmPhoneForAccountPaymentId","AccountPaymentSecurityToken","AccountPaymentUserPhone","LoyaltyDialog","HasPersonification","LoadingOverlay","Bank","PersonificationItems","LeftTime","Empty","Step","Uninitialized","loadingOverlay","step","$nextTick","CallMetricsEventForSalesTab","IsValid","addEventListener","Complete","_saleService","_cartService","CartSymbols","CartService","_metricsService","Start","CurrentSite","IdentityChanged","IdentityChangedEventHandler","GetCurrentOrCreateCartAsync","RestoreStateAsync","currentOrder","NotificationSended","notification","CodeId","DataForPayAccountPayment","PhoneConfirmationCodeId","PayForAccountPaymentAsync","payResult","Terms","PayConfirm","Back","leftTime","GenericShorthandMinutes","Personification","CancelOrderAsync","ClearOrderSaleStateAsync","ReservateCartAsync","CallMetricsEvent","PersonificateOrder","RegistrateEvent","MetricsEvents","WidgetToPurchase","WpPayConfirmComponent","LoginDrawer","existNotPersonificationItems","InstructorsBundleLessons","InstructorsPersonalLesson","NewClubContract","AccountReplenishment","SignIn","loyaltyProvider","userLoyalty","GetLoyaltyListAsync","loyaltyList","reservationResult","FreeTicketLimit","FreeTicketLimitError","QuotaExceededForTariff","CartItemCountError","TariffNotAvailableForSale","CartItemNotAvailableError","CardWithSoTypeTariff","CardHaveTariffWithSoType","LessonNotAvailable","RewriteTariffNotAvailable","CardHaveNotUsedTariff","TariffPersonification","TariffBarcodePesonification","TariffRewritablePesonification","AdditionalInfo","Info","Reset","order_id","order","SetPersonificationAsync","res","state","LockOrderWithDataAsync","lockResult","InvalidEmail","PayButtonLoading","PayOrderAsync","PaymentId","PaymentType","paymentId","paymentType","GetSpecificPaymentFormAsync","paymentForm","PaymentSystemType","SbpSberbank","Sbp","IsDevVersion","Account","accountPaymentSecurityToken","Value","PayAccountPayment","SecurityToken","submitPaymentForm","GetOrderSaleStateAsync","GetOrderAsync","Status","OrderStatus","Reserved","Locked","Canceled","$route","meta","routeback","MainRoute","closeApplication","top","pageYOffset","target","scrollTop","$vuetify","goTo","NotificationTypes","System","SystemProcessKey","success","WidgetToServices","WidgetToRewrite","WpSaleDictionary","TabService","TabRewrite","TabPersonalLessons","TabGroupLessons","TabBundlesLessons","GenericPlaceOrder","GenericPay","GenericProcessPayment","DataRequired","SbpTitle","SbpMobileTitle","SbpMobileTitleLink","PPSContractStatus","wpBarChartProps","WpBarChart","BarHeight","WpLoadingOverlay","WpProfile","valid","lazy","IsSavingProfile","Patronymic","UserSignOutDialog","NewPhone","$refs","ProfileForm","service","ProfileSymbols","ProfileService","GetProfileAsync","userProfile","UserProfile","tb","getFullYear","getMonth","EditProfileAsync","savingResult","WpChangePassword","ChangePasswordFormValid","ChangePasswordLoading","OldPassword","NewPassword","ConfirmPassword","OldPasswordShow","NewPasswordShow","ConfirmPasswordShow","ChangePassword","ConfirmPasswordInput","PasswordChanged","ChangePasswordForm","_profileService","ChangePasswordAsync","resetResult","reset","ChangePasswordPage","WpNews","NewsList","PageCount","CurrentPage","Page","Sorting","Member","Mode","SortingMode","DESC","News","metricsService","wpNewsItemProps","Entity","WpNewsItem","ArticleDate","NewsItem","wpNewsArticleProps","ArticleId","WpNewsArticle","Article","FindEntityAsync","wpOrdersProps","IsApp","WpOrders","OrderList","NoData","OrderHeaders","text","DateSort","align","sortable","SortBy","SortDesc","ItemsPerPage","PageAmounts","params","a","b","FirstDate","getTime","SecondDate","values","WpOrders_1","itemsPerPageNew","OrderServiceSymbols","OrderService","GetOrderListAsync","OrdersFilter","OrdersList","wpOrderItemProps","WpOrder","Order","OrderDetails","Dialog","OrderItemsHeaders","OrderHistoryHeaders","Barcode","WpOrder_1","TaxType","TransactionResult","OrderDetalization","OrderTickets","wpIsdLoyaltyEditProps","WpIsdLoyaltyEdit","questionnaireValid","PersonIsdLoyaltyData","IsEditingLoyalty","DataLoaded","QuestionnaireForm","AddressId","EditAsync","loyaltyProfile","IsdLoyaltyEditProfile","WpClientsCardsProp","WpClientsCards","Cards","FullName","WaitNewCard","NewCardDialog","_loyaltyProvider","UserLoyalty","GetCards","cards","bearer_type","localStorage","getItem","removeItem","_refreshCardsFunc","setInterval","clearInterval","setItem","complete","failed","guid","url","split","mediaNum","WpMain","Emit","WpMainNewsItem","wpFeedbackProps","Mail","WpFeedback","IsIphone","StoreLabel","StoreLink","StoreName","FeedbackEmail","FeedbackAppleStore","storeRequestReview","FeedbackPlayStore","navigator","userAgent","WpFeedback_1","StoreNames","Iphone","StoreLinks","StoreLabels","Android","WpSkidataParking","render","_vm","_h","$createElement","_self","staticClass","VDialog","ref","attrs","scopedSlots","_u","fn","on","VTextField","_g","PeriodOfStudy","SessionDatesVisible","model","callback","$$v","FormatSelectedDate","expression","SessionDateRangeModal","VDatePicker","AllowedDates","MinDate","MaxDate","DatesChoosen","DateSelected","SessionDateRangePicker","VBtn","ClearDates","_v","_s","GenericClear","VSpacer","$event","GenericCancel","SetDateRange","GenericOK","staticRenderFns","WpInstructorsDatepicker","WpInstructorsDatepickerClass","component","wpArenaSectorsProp","WpArenaSectors","SectorsList","ArenaSectorList","SectorFreePlacesArray","ForcedSector","seance","RenderSectors","_arenaService","ArenaSymbols","ArenaService","Sectors","sector","SectorSelected","GetSectorsAsync","sectors","sectorsList","ArenaSectorNames","SectorCodeFreePlaces","TariffCodesInSector","row","k","row2","MinPriceArr","MaxPriceArr","tariffrow","Math","min","max","ImageWidth","ImageHeight","points","point","X","Y","trimRight","ArenaText","ArenaPosition","ArenaSeance","WpLoginDialogState","wpLoginDialogProps","CanClose","ShowDialog","WpLoginDialog","Url","Snackbar","GetItem","dialog","SignInCalled","src","SetItem","oldValue","IdentityLoginState","IsLoginShow","WpLoginPage","formSaleUrl","document","getElementById","formOrgId","saleUrl","orgId","getAttribute","wpSettingsProps","CustomSettings","WpSettings","DarkTheme","StoreIcon","EmailNotification","EmailNotificationLoading","SmsNotification","SmsNotificationLoading","PushNotification","PushNotificationLoading","WpSettings_1","StoreIcons","_isdUserLoyalty","CustomSetting","UpdateNotificationSettings","removePushToken","_pageNotifitcationService","theme","dark","wpNotificationQueueProps","timeout","color","right","absolute","autoHeight","bottom","left","multiLine","vertical","WpNotificationQueue","processing","timeoutId","vm","setTimeout","clearTimeout","index","processItems","_service","WpNotificationQueueItem","uniqueId","Color","getColorString","prefix","random","substr","Warning","WpError","RequiredReload","requiresReloadOnError","matched","record","reload","vuetifyComponents","VApp","VAppBar","VAppBarNavIcon","VAlert","VAutocomplete","VAvatar","VBadge","VBanner","VBottomNavigation","VBottomSheet","VBreadcrumbs","VBreadcrumbsItem","VBreadcrumbsDivider","VBtnToggle","VCalendar","VCalendarDaily","VCalendarWeekly","VCalendarMonthly","VCard","VCardTitle","VCardSubtitle","VCardActions","VCardText","VCarousel","VCarouselItem","VCheckbox","VSimpleCheckbox","VChip","VChipGroup","VColorPicker","VColorPickerSwatches","VColorPickerCanvas","VContent","VCombobox","VCounter","VData","VDataIterator","VDataFooter","VDataTable","VEditDialog","VTableOverflow","VDataTableHeader","VSimpleTable","VVirtualTable","VDatePickerTitle","VDatePickerHeader","VDatePickerDateTable","VDatePickerMonthTable","VDatePickerYears","VDivider","VExpansionPanels","VExpansionPanel","VExpansionPanelHeader","VExpansionPanelContent","VFileInput","VFooter","VForm","VContainer","VCol","VRow","VLayout","VFlex","VHover","VIcon","VImg","VInput","VItem","VItemGroup","VLabel","VLazy","VListItemActionText","VListItemContent","VListItemTitle","VListItemSubtitle","VList","VListGroup","VListItem","VListItemAction","VListItemAvatar","VListItemIcon","VListItemGroup","VMenu","VMessages","VNavigationDrawer","VOverflowBtn","VOverlay","VPagination","VSheet","VParallax","VPicker","VProgressCircular","VProgressLinear","VRadioGroup","VRadio","VRangeSlider","VRating","VResponsive","VSelect","VSkeletonLoader","VSlider","VSlideGroup","VSlideItem","VSnackbar","VSparkline","VSpeedDial","VStepper","VStepperContent","VStepperStep","VStepperHeader","VStepperItems","VSubheader","VSwitch","VSystemBar","VTabs","VTab","VTabItem","VTabsItems","VTabsSlider","VTextarea","VTimeline","VTimelineItem","VTimePicker","VTimePickerClock","VTimePickerTitle","VToolbar","VToolbarItems","VToolbarTitle","VTooltip","VTreeview","VTreeviewNode","VWindow","VWindowItem","VCarouselTransition","VCarouselReverseTransition","VTabTransition","VTabReverseTransition","VMenuTransition","VFabTransition","VDialogTransition","VDialogBottomTransition","VFadeTransition","VScaleTransition","VScrollXTransition","VScrollXReverseTransition","VScrollYTransition","VScrollYReverseTransition","VSlideXTransition","VSlideXReverseTransition","VSlideYTransition","VSlideYReverseTransition","VExpandTransition","VExpandXTransition","VOtpInput","WpArena","WpArenaSeances","WpArenaSeanceItem","WpArenaSeats","WpArenaSeatItem","VOffline","PincodeInput","wpComponents","WpIsdLoyaltyRegister","WpIsdLoyaltyChildren","WpPhoneConfirm","WpInstructors","WpInstructorsGroupLessons","WpInstructorsBundles","WpInstructorsBundlesLessons","WpCart","WpCartItem","WpCartBundle","WpPayConfirm","WpPayConfirmItem","WpPayConfirmBundle","WpPayConfirmPromo","WpPersonification","WpPersonificationItem","WpPersonificationBundleForm","WpTariffs","WpTariffsRewrite","WpTariffItem","WpTariffBundle","WpTariffsDatepicker","WpMarketRules","WpMarketRuleItem","WpTopBar","WpOrderTimer","WpRules","WpComplete","WpLoginForm","WpPasswordReset","WpRegistrationForm","first","second","prop","DiscountType","LoyaltyProgram","TennisSoldContract","LTExtend","LTBuy","LTRequest","LTPlacesIds","LTAvailableSkills","LTAvailableAdditionalServices","LTHiddenServices","LTAccessLK","LTServices","LTSchedule","LTAchievements","_placesIds","_availableSkills","_availableAdditionalServices","_hiddenServices","SoldClubContract","authHeaders","duration","del","personificationItem","userId","lockOrderInfo","bonuses","Bonuses","discountId","DiscountId","PaymentFormItem","ClubAppSettings","GuestContractsIds","DiscountProgram","RuleLink","Conditions","vue_1","EnableAgreements","IsRegisteringLoyalty","StepCode","StepQuestionnaire","Agree","ConfirmCodeId","BindUserAsync","GenericFieldRequired","GenericFormatIncorrect","GenericLettersOnly","GenericPickOneOption","web_platform_core_ui_1","assign","RegisterAsync","metrics_events_symbols_1","IsdLoyaltyRegistration","vue_class_component_1","wp_base_component_1","WpIsdLoyaltyRegisterDictionary","ChooseGender","GenderMale","GenderFemale","AcceptRequired","GenericSave","AcceptPartOne","AcceptPartTwo","base_ui_localization_terms_1","Children","AddChildModal","RemoveChildConfirmModal","AddChildFormValid","UIDisabled","ChildToRemove","Child","Yesterday","toISOString","DateFormated","reverse","ChildFirstName","ChildLastName","ChildSecondName","ChildGender","ChildBirthdate","ChildPersId","RulesRequired","FormFieldRequired","Genders","$watch","UpdateFormatDate","UpdateChildren","GetChildrenAsync","isFormValid","AddChildModalForm","birthday","birthdayFull","child","AddChildAsync","ClearForm","UpdateChildAsync","RemoveChildAsync","WpIsdLoyaltyChildrenDictionary","GenericChildren","GenericChildData","GenericConfirm","GetSignLinkToOrderAsync","Global_1","ClubISD","DefaultReservate","Arena","ArenaReservate","MarketReservate","SetOrderSaleStateAsync","order_status_1","SetUser","setResult","SetUserOrderState","RemoveItemAsync","LeftTimeAsync","LockOrderAsync","sessionid","GetPaymentFormAsync","ApplyCodeToOrderAsync","ClearOrderCodesAsync","GetPersonificationUserPersons","GetBalanceAsync","ChargeBonusesAsync","list","ApplyLoyaltyAsync","GetDiscountProgramsAsync","ChangeDiscountAsync","GetPaymentsAsync","Cart_1","reservation_data_1","getORder","symbols_2","Utility_1","i_saler_provider_1","webpackContext","req","webpackContextResolve","keys","resolve","LockOrderInfo","UserPhone","UserFirstName","UserLastName","UserSecondName","Comments","Test","InstructorsPersonalLessonPrice","wpTariffsRewriteProp","_personName","SearchTariffs","TariffsStates","CardLoading","CardRegisteredOn","IsCardValid","UnacceptableCharacters","minimum8","CardMinimum8","toUpperCase","RewriteCartAdd","MetricsId","CartItemsConflict","GenericError","CardIsAlredyInCart","RewriteClearCard","RewriteCheckCard","GetCardAcceptableTariffsAsync","acceptableTariffs","IsRewritable","NoAvailableServicesForThisCard","MediaCardExpired","CardExpired","MediaCardInProcess","MediaCardIsLocked","CardInProcess","MediaCardNotFound","CardNotFound","RewriteChangeDate","WpTariffsRewriteDictionary","GenericCheck","LabelCardNo","InstructionEnterCardNumber","InstructionCharacters","wpTariffItemProp","UIActive","TariffSale","Amount","MaxCount","UseCapacity","_tariffCapacityService","CartChanged","_val","_oldVal","_currentCartItem","TariffSeance","SeanceTime","Quota","LeftCount","TariffCartItem","GetSingleTariffSalesAsync","sales","ShowLeftTicketCount","HaveSeance","stringid","Cache","GetCapacityAsync","capacity","availableCount","WpTariffItemDictionary","GenericItemsLeft","GenericItemsOf","CartIsFull","NoMoreTickets","ClubCard","MarketBase","typename","AccessMask","GlobalMask","ModificationTS","CompositeName","MarketCompany","Service","MarketRule","IsProduct","ClientType","MarketTariffService","PrepareTimeSpan","User","MarketSchedule","AllowedDateTimeRange","CurrentState","FirstOccurence","Flatten","MarketDateTimeRange","EndDateTime","MarketSymbols","MarketService","GetRulesAsync","GetRuleScheduleAsync","UnreservateTariffAsync","ReservateTariffAsync","GetClientAsync","InitializeByBill","marketIdentity","MarketIdentity","ChangeIdentity","Bill","IMarketProvider","MarketCartItemState","MarketClient","MarketBillStatus","MarketTariffCartItem","marktetService","MarketTariff","Available","_marktetService","rule","period","Busy","orderItem","CartItemId","OrderItemId","_cartItemChanged","WpEventArgs","MarketEmployee","bill","IsInitialized","_accessToken","_userId","_userBill","MarketBillInitializeResult","InstructorsBundlesCartItem","bundle","count","_maxCount","_beginTime","_endTime","_maxDate","_minDate","_bundle","_count","_cart","TariffName","Bundle","BundleId","reservationBundleId","BundleLesson","_apiUrl","address","ZoneId","tariff_capacity_1","ResetPasswordByPhoneLoading","ResetPasswordByEmailLoading","ResetPasswordByPhoneFormValid","ResetPasswordByEmailFormValid","ResetPasswordLoading","Tab","ResetPasswordStep","FieldRequiredMessage","PasswordLengthError","PasswordNotAvailableCharacters","ComparePasswordError","EmailRequiredMessage","tab","ResetPasswordByPhone","ResetPasswordByPhoneForm","_identityAccountPorvider","IdentityAccountProvider","SuccessPasswordChangedMessage","ResetPasswordByEmail","ResetPasswordByEmailForm","OrganizationId","NewPasswordSendedMessage","WpPasswordResetDictionary","ResetPasswordTitle","EmailLblText","NewPasswordLblText","RepeatPasswordLblText","ResetBtnText","ChangeBtnText","TennisClubService","clubProvider","localizationService","notificationService","_super","GetContractsAsync","_contracts","_localizationService","DefaultClubService","ClubSymbols","ClubProvider","LocalizationSymbols","IClubProvider","ILocalizationService","ILoyaltyProvider","_d","INotificationService","_e","wpCartProps","_formatPrice","formatPrice","CartModal","$parent","$on","OpenCart","WidgetOpenCart","IncartToPurchase","RemoveItem","IncartRemove","Clear","IncartCancel","CloseCart","WidgeCloseCart","WpCartDictionary","GenericCart","GenericClearCart","GenericTotal","GenericCheckout","MobileUserIdentity","managerSettings","_identityChanged","_managerSettings","accessToken","_user","access_token","expires_in","expired","profile","preferred_username","sub","phone_number","_manager","signinRedirect","signoutRedirect","identity","signinSilent","appSettings","globalService","ui_locales","CurrentLocalization","acr_values","UserManager","events","addUserLoaded","userSigninEvent","removeUserLoaded","userSignoutEvent","addUserSignedOut","removeUserSignedOut","getUser","args","IdentityChangedEventArgs","user","token","refreshToken","Expired","RefreshToken","Identity","EmptyIdentity","EmptyContext","WebSaleUserIdentity","store","isNewAuth","_isNewAuth","_store","_specificIdentity","signinPopup","signoutPopup","SaveStorage","RestoreStorage","OIDCStorageStore","MemoryStorage","_storage","stringify","milliseconds","start","ModifiedWebSaleUserIdentity","_signInCalled","ModifiedWebSaleUserIdentity_1","_storageUserKey","accessTokenString","parsedAccessToken","RefreshAccessToken","LoadUser","userName","password","rememberMe","UserName","Password","RememberMe","ExpiresIn","_timerAccessTokenChecker","_identity","IUserStorage","LocaleUserStorage","MobileUserStorage","deleteCookie","clear","saveInStorage","clearCookies","storage","setCookie","coockie","getCookie","decodeURIComponent","days","expires","setTime","toUTCString","cookie","nameEQ","ca","charAt","substring","RHAppSettings","Sign","email","firstName","lastName","secondName","sign","gender","RHIdentity","_token","_phone","RHInitializer","rhIdentity","Site","RHContext","EmpryIdentity","_pageLoading","Unsubscribe","AppGoBack","WpPageBaseComponent_1","InstructorsLessonsLocation","PerformStatusEnum","GiftStatusEnum","AchievementCategory","AchievementGroupType","PersonAchievement","CurrentTask","Target","NumberCompletedRepeats","wpMarketRuleItemProp","Schedule","UseCount","_marketService","AdditionalData","AddToCart","CurrentMarketClient","employee","ReservateItem","WpMarketRuleItemDictionary","ToCart","InstructorTariffCategory","PersonSale","AccountReplenishmentCartItem","_personId","Sum","_persontContractChanged","_clubProvider","_dateHndler","_currentPersonContract","ClubContract","IsGuestContract","ContractCode","GetContractAsync","contracts","GetPersonContractsAsync","personsContracts","children","contract","toPush","_attachTemplate","STATUS","Template","match","SHABLON_CLUB_CONTRACT_ID","person","Person","SOLD_CARD_LIST","OWNER_PERSON","CreateGuestContractAsync","ID","arrayChildren","RegistrationToPersonalLessson","RegistrationToGroupLessson","RegistrationToFreeGroupLessson","GetContractsAdditionalServicesAsync","filterOutdated","GetPersonalLessons","TimeFrom","tzOffset","getTimezoneOffset","setHours","setMinutes","setSeconds","o1","o2","GetLessonsAsync","FreezeCard","CancelLessonAsync","ArenaSeat","LineName","PlaceName","IsFree","ArenaSeatsList","Places","ArenaSector","PlacesWithoutNumbers","Points","ArenaSectorsList","HavePlan","PlanImage","Bottom","ArenaTariff","ArenaTariffOption","ArenaTariffFreePlaces","ArenaPolygonPoint","EventName","ArenaProvider","DefaultArenaService","GetSeancesAsync","GetSeatsAsync","ReservateSeatAsync","UnreservateSeatAsync","IArenaProvider","ArenaCartItemState","ArenaCartItem","arenaService","ArenaTicket","seat","option","sibid","IncartPlus","IncartMinus","WidgetToArenaSeances","WidgetToArenaSectors","WidgetArenaSectorsBack","WidgetToArenaSeats","WidgetArenaSeatsBack","ArenaSeatReservate","ArenaSeatUnreservate","ServiceChangeDate","ServiceCartAdd","ServiceSeanceSelected","ServiceSeanceUnselected","RewriteChangeCard","OrderRemoveItem","OrderApplyLoyalty","OrderClickSignIn","OrderSetUser","OrderSetDiscount","OrderResetDiscount","OrderSetPromo","OrderRemovePromo","OrderClickAgreements","WidgetToPay","WidgetToPayAndChargeBonus","WidgetReturnFromPayment","WidgetCompleteSuccess","WidgetCompleteCancel","WidgetCompleteWaitingCancel","WidgetRestart","NavigationPage","NavigationGoTo","OrderSale","SiteUrl","TariffsOrder","DiscountsList","IsdLoyaltyQuestionnaire","FirstNameEnabled","FirstNameRequired","LastNameEnabled","LastNameRequired","SecondNameEnabled","SecondNameRequired","BirthdateEnabled","BirthdateRequired","GenderEnabled","GenderRequired","CityEnabled","CityRequired","wpPayConfirmItemProps","TariffRewritable","WpPayConfirmItemDictionary","Initializer","_settingsInitialized","Localization_1","additionalHeaders","getOwnPropertyDescriptor","site_1","ConnectionId","Offset","OrganizationStatus","PlatformHelpDeskAddress","Cms_1","PlatformId","wp_core_prefixes_1","WidgetOpenParameters","initParams","param","LoadAdditionalDictionary","Initialize","app_settings_initialized_event_args_1","vselect","LoadPlaces","LoadSkills","LoadCategories","LoadLocations","LoadTariffs","GetPersonalLessonsAsync","UpdateData","InstructorsPersonalCartItem","PersonalLessonsFilter","WpInstructorsDictionary","SoldContractChangedEventArgs","oldContract","newContract","OldContract","NewContract","SiteAddtionalSettings","LoyaltyNotificationAddedEventArgs","InstructorsPlace","TimeTo","SibAppSettings","RedirectUri","app_settings_1","PaymentSystem","Payu","CanResendForm","IsBasePayment","ProductId","ProductName","BundleName","_global","global","DefaultLoyaltyNotificationProvider","_notifications","wp_app_push_notifications","pushNotificationAdded","newNotification","NotificationDate","LoyaltyNotificationStatus","Checked","checkPushNotification","TotalPrice","bundles","oldBundles","WpPayConfirmBundleDictionary","Personalization","GenericBack","GenericNext","GenericChange","GenericClose","GenericYes","GenericNo","GenericLogIn","GenericAdd","GenericEdit","GenericUpdate","GenericApply","NewContractCartItem","SocialNetworkData","VK","siteId","maxItemsCount","_siteId","_tempId","_items","_cartChanged","_orderId","sum","IsConflictItem","countSum","isCombined","combineResult","IsEqualsItem","CombineItem","CartItemChanged","cartItemId","searchedItem","then","simpleCart","additionalinfo","InstructorsGroupLessonPrice","wpOrderTimerProps","_logger","MLogger","leftTimeResult","say","round","asMinutes","_refreshOrderFunc","orderTimer","WpOrderTimerDictionary","LuzhnikiOrderService","GetOrderListByTNodAsync","height","UpdateHeight","GetData","UserData","activityType","dateStart","dateEnd","GetBio","OrderProvider","ILuzhOrderProvider","userdata","FullYears","Height","LuzhnikFeedbackProvider","topic","method","message","ContactWay","LTUpperGroup","ZIndex","Subgroups","SiteStatus","BaseDictionaryRu","wpIsdLoyaltyRegisterDictionary","wpIsdLoyaltyChildrenDictionary","wpSaleDictionary","wpArenaSeancesDictionary","WpArenaSeancesDictionary","NoAvailableSeances","wpArenaSeanceItemDictionary","WpArenaSeanceItemDictionary","wpArenaSeatsDictionary","WpArenaSeatsDictionary","GenericOccupied","GenericPicked","ChooseSeatsOption","GenericRow","GenericSeat","wpArenaSeatItemDictionary","WpArenaSeatItemDictionary","ErrorCartIsFull","ErrorSeatIsOccupied","wpArenaSectorItemDictionary","wpArenaDictionary","WpArenaDictionary","wpCartDictionary","wpCartItemDictionary","WpCartItemDictionary","wpCartBundleDictionary","WpCartBundleDictionary","wpCompleteDictionary","WpCompleteDictionary","AwaitingResult","BackToServiceList","ThankYouForPurchase","ConfirmRefusalToWait","FatalError","StartOver","YourOrderNo","YourOrderStatusOK","YourOrderStatusCanceled","CardDiscountConditionError","OrderInfoLinkTitle","OrderInfoLinkText","CardPayment","SbpPayment","PayOrderTitle","Yandex","Sberbank","RfiBank","RosEuroBank","Gazprombank","SovkomBank","Kazkombank","AlfaBank","PayOnline","wpInstructorsDictionary","wpInstructorsListDictionary","wpInstructorsBundlesDictionary","WpInstructorsBundlesDictionary","NoLessonsAvailable","wpInstructorsGroupDictionary","wpInstructorsDatepickerDictionary","WpInstructorsDatepickerDictionary","wpInstructorsBundlesLessonsDictionary","WpInstructorsBundlesLessonsDictionary","Vacant","wpInstructorsGroupLessonsDictionary","WpInstructorsGroupLessonsDictionary","wpInstructorsLessonsDictionary","wpMarketRulesDictionary","WpMarketRulesDictionary","NoServicesAvailableOnThisDate","wpMarketRuleItemDictionary","wpOrderTimerDictionary","wpPayConfirmDictionary","WpPayConfirmDictionary","UsedPromoCode","PlacingOrder","ToGetDeals","YouAreMemberOfLoyaltyProgram","LabelEmail","LabelPhone","LabelPromocode","EnterEmail","EnterPhone","ChooseDiscount","CodeIncorrect","GenericDiscount","GenericByPressingPay","GenericToRules","HowManyPointsToSpend","NoDiscount","GenericPurchaseComment","ChoosePayment","NoPointsToSpend","wpPayConfirmItemDictionary","wpPayConfirmBundleDictionary","wpPayConfirmPromoDictionary","WpPayConfirmPromoDictionary","CallToAction","GenericSuccess","wpRulesDictionary","WpRulesDictionary","GenericTerms","GenericTermsISDS","GenericIAgree","wpPersonificationDictionary","WpPersonificationDictionary","PersonSaleFirstName","PersonSaleLastName","GenericTotalSumDiscounted","wpPersonificationBundleDictionary","wpPersonificationBundleFormDictionary","WpPersonificationBundleFormDictionary","LabelFirstName","LabelSecondName","LabelLastName","FieldRequired","PersonifyOn","wpPersonificationItemDictionary","WpPersonificationItemDictionary","wpTariffsDictionary","WpTariffsDictionary","NoAvailableLessonsForThisDate","wpTariffsRewriteDictionary","wpTariffBundleDictionary","WpTariffBundleDictionary","CustomService","wpTariffItemDictionary","wpTariffRewriteItemDictionary","wpTariffsDatepickerDictionary","WpTariffsDatepickerDictionary","TextBoxLabel","DialogBtnClean","DialogBtnCancel","DialogBtnOk","wpLoginFormDictionary","WpLoginFormDictionary","UserNameLblText","PasswordLblText","RememberMeLblText","SignBtnText","ForgotPasswordLink","RegistrationLink","InvalidUserNameOrPassword","wpRegistrationFormDictionary","WpRegistrationFormDictionary","SuccessRegistrationMessage","RegistrationTitle","AgreementError","BeforeAgreementLinkText","AgreementLink","AfterAgreementLinkText","RegistrationBtnText","EmailExistError","wpPasswordResetDictionary","wpPhoneConfirmDictionary","WpPhoneConfirmDictionary","TryCountError","CodeRequiredError","PhoneRequiredError","PhoneLblText","SendSMSBtnText","CodeSendedMessage","AnotherPhoneLink","CodeLblText","SendAgainLink","TimeoutResendMessage","TimeoutSecondsMessage","ConfirmCodeBtnText","SomeOneElsePhoneError","wpRuLocalizationComponentsDictionary","LocalizationStaticDictionary","BaseDictionaryEn","wpEnLocalizationComponentsDictionary","loadStaticLocaliztionDictionaries","AccessDenied","GenericPleaseWait","GenericPrice","GenericBuy","GenericFrom","GenericTo","AddDictionary","EN","IsAuthetificated","IsDisabled","RemoveSpaces","_selectedPerson","personname","pattern","SelectedPerson","LabelBirthDate","LabelGender","DefaultProfileProvider","oldPassword","newPassword","confirmPassword","GlobalSymbols","_container","Container","_records","redefinedServices","Key","to","IsSingelton","inSingletonScope","toConstantValue","ServiceRegistredRecord","Cms","DataProvider","Profile","ProfileProvider","Loyalty","LoyaltyNotificationService","Notification","PhoneConfirm","PhoneConfirmationService","PhoneConfirmationProvider","CartProvider","Sale","Organizations","OrganizationService","OrganizationProvider","Metrics","Market","Club","ClubService","Syntech","additionalServices","registerAllSymbols","registerServices","registerAdditionalService","RH","Sib","SibContext","SkillTypeId","SkillType","InstructorId","CoachID","ExistToContract","PlaceID","isSingelton","use","Router","base","process","routes","path","AppSettingsInitializedEventArgs","FixedPriceType","Rules","RulesModal","RulesTab","OrganizationSymbols","GetOrganizationRulesAsync","rules","Prop","WpTopBarProp","RightButtons","DisableBars","SpaceToCenter","app","elevation","RouteBack","LeftButton","beforeEach","from","next","leftButton","title","notifitcationService","androidBackButtonPressed","SavePhone","EnableRegisterNewUser","ContractProcedure","lessonCoachId","lessonLocationId","_lesson","_lessonCoachId","_lessonLocationId","_contractId","GroupLesson","LessonCoachId","LessonLocationId","PhoneConfirmCode","UserPhoneConfirmBan","DefaultPhoneConfirmationProvider","codeId","PhoneConfirmationSymbols","profileProvider","_profileProvider","GetCurrentBanAsync","GetCurrentCodeAsync","SendCodeAsync","ConfirmCodeAsync","confirmResult","SetPhoneAsync","CodeLeftTimeAsync","CancelCodeAsync","IPhoneConfirmationProvider","IProfileProvider","CombinePhoneConfirmationProvider","_identityProvider","IdentityPhoneConfirmationProvider","_defaultProvider","ClubContractStatus","PersonalLesson","wpCartItemProps","IncreaseCount","ReduceCount","SibAuthorizationFailedEventArgs","errorMessage","popupTools","SibIdentity","manager","_sibAutorizationFailed","self","UserSigninEvent","UserSignoutEvent","TryRestoreUser","_sibUser","now","popupUrl","SibAuthority","SibClientId","popup","width","err","SibUserSigned","warn","ParseUrlFragment","delimiter","idx","lastIndexOf","regex","counter","exec","sibUser","SibSymbols","SibProvider","_formatDateIsoToRu","formatDateIsoToRu","_formatTimeIsoToRu","formatTimeIsoToRu","GetTermsKey","GetStaticDictionary","$options","_componentTag","clipboard","textArea","createElement","style","position","body","appendChild","focus","execCommand","removeChild","writeText","num","ms","Inject","ComponentVue","i_instructors_provider_1","instructors_provider_1","i_instructors_service_1","instructors_service_1","personal_lessons_filter_1","instructors_personal_lesson_1","instructors_gender_1","instructors_personal_cart_item_1","skill_type_1","instructors_personal_lesson_price_1","instructor_tariff_category_1","instructors_places_1","group_lessons_filter_1","instructors_group_lesson_1","instructors_group_cart_item_1","instructors_group_lesson_price_1","instructors_bundles_groups_lessons_1","instructors_bundle_cart_item_1","instructors_lessons_location_1","instructor_usage_type_1","instructor_1","instructor_category_1","WidgetStyle","errorType","loyalty_program_1","order_discount_1","order_item_1","order_item_additional_info_1","order_item_discount_1","order_sale_1","loyalty_program_status_1","loyalty_program_type_1","discount_type_1","order_type_1","reservation_item_1","reservation_item_types_1","sale_provider_1","i_sale_service_1","sale_service_1","payment_form_1","payment_form_item_1","order_sale_state_1","personification_api_order_item_1","person_sale_1","order_item_type_1","order_discount_2","lock_order_info_1","discount_program_1","payment_system_1","payment_system_type_1","site_additional_settings_1","benefit_app_settings_1","benefit_sale_provider_1","benefit_sale_service_1","free_sale_provider_1","pay_account_payment_1","MoneyBalance","ProgramId","SocialNetworks","OrderSaleState","Intl","NumberFormat","formatDateTimeIsoToRu","LoyaltyProgramStatus","DefaultProfileService","ContractPeriod","DefaultCmsDataProvider","localization","FiltringResult","sorting","total","IDataProvider","IOrderProvider","Organization","queryParams","FromDate","ToDate","OrderCode","RegistredDate","CanSend","CanRefund","RefundAddress","BonusSum","OrderDetailItem","Tax","OrderHistoryItem","Operation","OrderTransactionItem","Currency","Desciption","PaySystem","RRN","TransactionDate","TransactionId","card","GetClient","_f","tariffsString","seanceParam","wpArenaSeanceItemProp","_formatDateTimeIsoToRu","seanceTariffs","wpArenaMinimapProp","trigger","transform","arenaposition","WpArenaMinimap","Lens","Width","MaxWidth","TouchDown","AspectRatio","MinimapVisible","MinimapEnabled","Navigate","Viewport","Map","RenderMinimap","T","smooth","Move","MinimapClick","html2canvas","seats_block","aspectRatio","scale","Create","UpdateSize","Transform","SidebarWidth","viewport","clientWidth","clientHeight","update","offsetX","offsetY","Instance","wpArenaSeatsProp","PanTransform","ShowOptions","SelectedSeatTariff","SeatReservateFunc","Seats","SeatsList","TariffColor","Sidebar","Panning","Zooming","Buying","SeatSize","MaxX","MaxY","Zoom","TooltipTariff","TooltipSeat","TooltipStyle","RenderSeats","buying","seats","options","HandlingData","Options","ArenaTariffOptionNames","opt","MapZoom","Top","Left","PanZoom","MiniMapViewport","MiniMap","MapWrapWidth","MapWrap","MapWrapHeight","MapBlockWidth","MapBlock","MapBlockHeight","MiniMapWidth","MiniMapHeight","ViewportWidth","ViewportHeight","getTransform","TransformX","TransformY","ViewportLeft","ViewportTop","setAttribute","reservateFunc","zoomTo","TriggerZoom","StickySeatsDivs","querySelectorAll","StickySeats","that","arenaSeats","panzoom","bounds","minZoom","maxZoom","zoomSpeed","initialZoom","smoothScroll","transformOrigin","updateSideMap","smoothMoveTo","moveTo","TriggerPan","deltaY","wpLoginFormProps","Outlined","BtnLoading","Show","Action","AntiForgeryName","AntiForgeryValue","IsResetPassword","LoginForm","Login","ContractService","ClubCardVisit","LTClubAppSettings","ContactPhoneToRequests","Inputmask","VueTheMask","directive","el","tagName","mask","inp","getElementsByTagName","unbind","remove","parsingResult","ParseHashParams","SetSettings","mgr","stateStore","WebStorageStateStore","userStore","authority","IdentityServerUrl","client_id","popup_redirect_uri","response_type","scope","post_logout_redirect_uri","accessTokenExpiringNotificationTime","automaticSilentRenew","filterProtocolClaims","loadUserInfo","monitorSession","identityContext","redifined","LoadSibSaleConfiguration","_errorEventHandler","errorMsg","lineNumber","ChangeLocalizationAsync","config","productionTip","devtools","vuetify","router","h","SibSaleApp","provide","$mount","onerror","DefaultLocalizationService","_downloadedDictionaries","_currentLocalization","_ruStaticDictionaries","_enStaticDictionaries","_localizationChanged","dictionary","Prefix","SiteDictionary","siteDictionary","staticDictionary","getOwnPropertyNames","propName","terms","entity","translate","PlatformEntities","OldLocalization","NewLocalization","LocalizationChangedEventArgs","oldLocalization","newLocalization","LoyaltyNotification","New","LTSubGroup","ParentGroup","PlacesIds","IsCoaches","Tags","AdditionalTariff","PersonalTariff","GroupTariff","IsServicePackage","LessonsCount","LessonsDuration","PackageServiceGroups","PackageInstructorsCategory","TagsList","TariffsList","PackageTariffs","PackageLessonsCount","PackageLessonsDuration","PackageInstructorsCategoryList","InstructorsGender","BenefitSaleProvider","NoLessons","DatesArray","bundlesBought","GetBundlesGroupLessonsAsync","minDate","maxDate","bundelPeriod","Disabled","AccountBalance","Education","CoursesName","Rate","UsageType","InstructorUsageType","All","WpEvent","_handlers","handler","ErrorsTerms","InternalErroTitle","InternalErrorText","SystemErrorTitle","SystemErrorText","AccessDeniedTitle","AccessDeniedText","DateAndTime","ru","months_ru","months_en","days_ru","days_en","days_ru_short","days_en_short","which","lang","declension","monthdeclension","month","addYears","addMonths","addDays","addHours","addMinutes","addSeconds","addMilliseconds","Add","removeHours","includeLast","sortedDates","DatesBetween","lowercase","ddate","day","getDay","dayShort","monthNumber","GetMonth","year","isNaN","time","hours","minutes","seconds","fulltime","abs","timeIrrelevant","offset","today","seven","timeA","timeB","timeStart","timeEnd","StartHours","EndHours","StartMs","EndMs","floor","itemType","bundleId","lessonsBundleId","marketBillId","replenishmentSum","ItemType","LessonId","MediaNum","LessonsBundleId","ClubContractId","ReplenishmentSum","CodeLoading","LuzhnikiAccountBalanceProvider","CashListId","TypeOper","Sale_1","Refunded","Paid","comment","debet","credit","luzhniki_order_provider_1","TariffItemType","wpTariffsProp","SelectedSeanceId","Seances","SeanceIdFilter","NotAvailable","TariffsLoading","ItemsAvailable","_notification","GetTariffsBundlesAsync","resultBundles","AddTariffItem","TariffBundle","AddBundleItem","UpdateTariffsPricesCapacitiesAll","thing","arr","findIndex","SeanceValue","FindFilteredSeance","SelectedSeance","ItemLoading","ItemAvailable","padStart","seanceSlideBlock","querySelector","prices","capacities","activeDate","toLocaleDateString","GetTariffsAllPrices","all","string","findBundle","GetTariffsAllCapacities","WpArenaSaleSteps","wpArenaProp","CurrentSeance","CurrentSector","ForcedSeance","_oldValue","GetOrganizationInfoAsync","IOrganizationProvider","OrganizationInfo","DisplayName","OrgUrl","OrgDesc","OrgName","SupportEmail","SupportPhone","LegalName","OGRN","INN","LegalAddress","License","seances","Selected","wpInstructorsGroupLessonsProp","GetGroupLessonPriceAsync","ClubContractData","cmsProvider","_cmsProvider","GetBundlesLessonsAsync","GetInstructorsCategoriesAsync","IInstructorsProvider","BundleCartItem","_sales","_capacity","_seance","notValidSale","notValidCapacity","wpPayConfirmProps","SelectedSbpPayment","SelectedWorldDiscount","RulesTrigger","RulesConfirmed","RulesAgreed","HaveAdditionalRules","AdditionalRulesConfirmed","AdditionalRulesRequired","AdditionalRulesText","PromoSheet","OrderLoading","OpenModalTrigger","PromoCode","EmailIsReadonly","PhoneIsReadonly","CancelCodeButtonLoading","BonusesLoading","LoyaltyProgramApplied","SelectedDiscountProgram","FormPromocodeDisabled","BonusesCharge","BonusesMax","HaveLoyaltyProgram","ItemsDiscounts","LockOrderFormValid","ItemsPayments","SelectedPaymentId","RulesType","loadingValue","allBundles","newBundles","breakpoint","smAndUp","SiteAdditionalSettings","siteSettings","additionalSiteSettings","AddtionalTerms","AddtionalTermsRequired","WpPayConfirm_1","WpEmailConfirmKey","WpPhoneConfirmKey","GetOrder","DialogAndBottomSheetFix","passive","removeEventListener","SetAuthorizedUserToOrderAsync","LoyaltyProgramRegistration","LockOrderForm","container","$el","LockOrder","LockOrderMobileForm","SetLoadingOverlay","paymentSystem","Unknow","chargeBonusesResult","ChargeBonusesResult","BonusesByDiscountType","removeResult","BonusesResult","AvailableBonuses","clearResult","discount","DiscountWithPaymentCondition","DiscountProgramId","defaultDiscount","ChangeDiscount","orderSale","LoyaltyList","ApplyLoyalty","SetDiscountsList","SetPaymentsList","ApplyLoyaltyResult","discounts","noConditionsDiscount","applyDiscountResult","icons","tooltip","link","show","condition","DiscountConditionType","AvailableCards","payments","paymentData","GetPaymentName","payment","smOnly","bottomSheet","parentElement","rulesDialog","getElementsByClassName","overlay","bottomSheetZIndex","zIndex","rulesDialogZIndex","ContractPaymentType","_saleItems","GetAvailableTariffsAsync","GetTariffSalesAsync","salesInArray","tariff_sale_1","sale","i_tariff_provider_1","LuzhnikiOrderProvider","SaleDate","bonusSum","Transactions","History","Item","ServiceName","RefreshClient","fileType","DefaultLoyaltyProvider","_children","DefaultLoyaltyProvider_1","_loyaltyChanged","_currentUserLoyalty","CreateRestClient","request","AccountId","LoyaltyChangedEventArgs","confirmCodeId","personIsdLoyaltyData","recache","resultCode","deviceId","pushToken","gift","loyalty","PerfAchievementId","kind","CshdId","TnodId","CouponId","TCoupId","TcoupId","GiftId","register","tnodid","wpCompleteProps","CancelLoading","CancelDialog","WaitDialog","SignLink","wpComplete","linkToOrder","discountPrograms","discountProgram","AccountPayment","backloading","WpNotification","NotificationEventArgs","DefaultNotificationService","_notificationSended","processKey","wpPhoneConfirmProps","LoyaltyPhone","StepEnterPhone","StepEnterCode","IsSendingPhone","IsSendingCode","PhoneValid","CodeValid","CurrentPhone","TimerActive","TimerValue","ResendActive","_phoneConfirmationService","loyaltyPhone","codeLeftTimeAsync","_phoneForm","TimerStart","getCurrentBanAsync","ExpireDate","getCurrentCodeAsync","cancelResult","Timer","_codeForm","evt","event","charCode","keyCode","IndentityPhoneConfirmationProvider","FakeProfileProvider","organizationId","IdentityServerAppSettings","localeInput","wpTariffBundleProp","TariffsSales","TariffsCapacity","BundleAvailable","BundleLoading","GetTariffsPrice","reduce","tariffPrice","tariffSale","tariffCapacity","maxCount","useCapacity","Coefficient","existCapacity","itemsLeft","wpCartBundleProps","VMain","IsInitializedError","OnlineStatusChange","IsOffline","isOnline","InitializeAsync","initResult","removeMainLoadingWrapper","SessionDateRange","SessionDateRangeSub","DateRangeSub","DateRangeTitle","TimeOffset","Today","allowedDatesArray","ChangeSettings","TariffDatePicker","msOffset","ConvertToMilliseconds","nowDate","currentDateOffset","UTC","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","currentDate","ForcedDate","fdt","HandleMinDate","HandleForceDate","HandleDisabledDates","between","HandleMaxDate","ForceDate","isArray","FormatDate","immediate","SibArenaSectors","AuthModal","cartService","SigInSib","SibNewArenaSectors","allComponents","Vuetify","components","directives","Resize","Scroll","locales","current","ContractActualPeriod","OrderItemDiscount","wpDatepickerProps","disabledweekdays","forceselectrange","DisabledWeekdays","ForceSelectRange","HaveForcedDate","MinDateDefault","MaxDateDefault","SortDates","fromFormat","toFormat","add","Weekday","forcedateTime","Time","mindateTime","maxdateTime","newDate","fd","ld","SortChoosenDates","pop","settingsMaxdate","defaultMaxdate","Subtract","settingsMindate","defaultMindate","OrderDiscount","_style","_isDev","_timers","bgcolor","debug","dir","label","updateOnCall","timeElapsed","OwnerType","wpMarketRulesProp","TariffServices","MarketRules","SelectedItemId","WpMarketRules_1","Initialized","InitializeByBillAsync","billResult","marketBillCartItem","MarketBillCartItem","resultRules","LoadSchedule","tariffService","resultSchedule","schedule","_processed","_statCached","_statError","stringId","cachedPrice","eRes","eMes","ITariffProvider","TariffType","OptionName","GroupName","WorkingDays","CalendarEnabled","StartSale","EndSale","RequiredPersonification","_tariffSale","_maxcartitems","_tariff","increase","TariffsBundle","quota","Rewrite","_card","_quota","rewriteCartItem","RewritableTariff","_capacityItems","_cache","capacityInArray","newCapacity","ITariffCapacityProvider","cachedItem","TC","RegistrationLoading","RegistrationFormValid","PasswordShow","RegistrationStep","Registration","RegistrationForm","registrationResult","wpInstructorsBundlesLessonsProp","BundlesAndDatesLoaded","BundleLoaded","periodDates","BundlesBought","LTTariffGroup","Parent","Index","wpArenaSeatItemProp","IsReserved","ItemRemoved","$data","SeatReservate","seatPosition","getBoundingClientRect","ClubCardType","OrderItemAdditionalInfo","wpPersonificationBundleFromProps","LoyaltyProgramType","marketService","capacityService","GetCurrentCartAsync","jsonCart","cartInstance","cart_1","currentCart","cart_item_types_1","CreateSyntechParkingCartItem","CreateAccountReplenishmentCartItem","CreateContractClubTariffCartItem","CreateNewContractCartItem","CreateArenaCartItem","CreateInstructorsGroupCartItem","CreateInstructorsPersonalCartItem","CreateTariffCartItem","CreateRewriteTariffCartItem","CreateBundleCartItem","CreateInstructorsBundleCartItem","CreateMarketTariffCartItem","CreateMarketBillCartItem","SaveCartAsync","Market_1","seatOption","Arena_1","EventCode","EventId","EndDate","BeginDate","SaleEndDate","tariffOptions","Instructors_1","tariffSeance","tariffSaleResult","tariffsSales","tariffsCapacity","bundle_cart_item_1","Club_1","Loyalty_1","Syntech_1","i_cart_provider_1","TennisSymbols","ContractAccess","InstructorCategory","InstructorsBundlesGroupsLessons","wpPersonificationProps","HandlingItems","userArray","singleItems","personification","PersonificationQuestionnaire","Members","club_card_1","club_card_visit_1","club_card_type_1","contract_actual_period_1","fixed_price_type_1","contract_payment_type_1","contract_period_1","contract_procedure_1","contract_service_period_1","pps_contract_status_1","owner_type_1","club_contract_status_1","i_club_provider_1","default_club_provider_1","club_app_settings_1","default_club_service_1","i_club_service_1","new_contract_cart_item_1","sold_club_contract_1","club_contract_1","sold_contract_changed_event_args_1","contract_club_tariff_cart_item_1","contract_service_1","contract_club_package_cart_item_1"],"mappings":"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C,S,oDAZR,GAASjoC,oBAAOse,OAAqB1hB,gBAA5CgrC,GAAO,yBAHnBrnC,qBAAU,CACPC,SAAUC,EAAQ,WAETmnC,IAiBb,SAAiBA,IACb,SAAYr9B,GACRA,wBACAA,4BACAA,wCACAA,2BAJJ,CAAYq9B,4BAAU,KAD1B,CAAiBA,QAAO,KAQTA,U,umDC8HFM,GAAoB,CAC7BC,aACAC,gBACAC,uBACAC,eACAC,sBACAC,gBACAC,eACAC,gBACAC,0BACAC,qBACAC,qBACAC,yBACAC,4BACA9I,aACA+I,mBACAC,kBACAC,uBACAC,wBACAC,yBACAC,cACAC,mBACAC,sBACAC,qBACAC,kBACAC,kBACAC,sBACAC,kBACAC,wBACAC,cACAC,mBACAC,qBACAC,6BACAC,2BACAC,iBACAC,kBACAC,iBACAC,cACAC,sBACAC,oBACAC,mBACAC,oBACAC,uBACAC,yBACAC,qBACAC,sBACApL,oBACAqL,yBACAC,0BACAC,6BACAC,8BACAC,yBACA1M,gBACA2M,iBACAC,yBACAC,wBACAC,8BACAC,+BACAC,mBACAC,gBACAC,cACAC,mBACAC,aACAC,aACAxL,gBACAyL,gBACAC,cACAC,eACAC,cACAC,aACAC,eACAC,cACAC,mBACAC,eACAC,cACAC,4BACAC,yBACAC,uBACAC,0BACAC,cACAC,mBACAC,kBACAC,wBACAC,wBACAC,sBACAC,uBACAC,cACAC,kBACAC,0BACAC,qBACAC,iBACAC,oBACAC,eACAC,kBACAC,gBACAC,0BACAC,wBACAC,oBACAC,eACAC,qBACAC,gBACAC,oBACAC,gBACAC,wBACAC,gBACAC,oBACAC,mBACAC,kBACAC,mBACAC,mBACAC,iBACAC,wBACAC,qBACAC,uBACAC,sBACAC,mBACAC,gBACAC,mBACAC,cACAC,aACAC,iBACAC,mBACAC,oBACAC,kBACAzQ,mBACA0Q,kBACAC,sBACAC,oBACAC,yBACAC,yBACAC,iBACAC,sBACAC,sBACAC,iBACAC,kBACAC,sBACAC,gBACAC,oBACAC,4BACAC,mCACAC,uBACAC,8BACAC,wBACAC,uBACAC,0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","file":"js/app.d5bb87c3.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([\"b5e5\",\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = \"\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ LeftButton.Icon }}\\r\\n \\r\\n\\r\\n \\r\\n mdi-arrow-left\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n {{ Title }}\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ Button.Icon }}\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\";","module.exports = \"
\\r\\n \\r\\n\\r\\n
\\r\\n\";","import { injectable } from 'inversify';\r\n\r\nimport ActionResult from '../Common/action-result';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport GlobalService from './../Global/global-service';\r\nimport { ErrorTypes } from './../Common/error-types';\r\nimport ISyntechProvider from './i-syntech-provider';\r\nimport ParkingSessionInfo from './parking-session-info';\r\nimport Tariff from '../Tariffs/tariff';\r\n\r\n@injectable()\r\nexport default class DefaultSyntechProvider implements ISyntechProvider {\r\n async GetSessionInfoAsync(ticket: string): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/websale/api/syntech/info/${ticket}`);\r\n\r\n if (response.result != null && response.result.Result != 0) {\r\n if (response.result.Result == 16)\r\n return ActionResult.FailedData(ErrorTypes.NotFoundData, response.result?.Data, response.result.Message);\r\n\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data, response.result.Message);\r\n }\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async GetTariffsAsync(): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>>(`/websale/api/syntech/tariffs`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data, response.result?.Message);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n };\r\n\r\n}\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n}\r\n","import Vue from 'vue';\r\n\r\nimport WpBaseComponent from '../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { Ref, Watch } from 'vue-property-decorator';\r\nimport { Instructor, IInstructorsService, InstructorsSymbols, BaseFilter, WpCorePrefixes, ICmsService, CmsSymbols, BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\nimport { DefaultProps, Prop } from 'vue/types/options';\r\n\r\nconst WpInstructorsListProps = Vue.extend({\r\n props: {\r\n // Value & input are necessary for v-model to work on the component attributes\r\n value: {\r\n type: Object as Prop,\r\n default: null,\r\n required: false\r\n },\r\n input: {\r\n type: Function,\r\n default: () => { },\r\n },\r\n // Derived props\r\n placeid: {\r\n type: Object,\r\n default: 0,\r\n required: false\r\n }\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-instructors-list.html\")\r\n})\r\nexport default class WpInstructorsList extends mixins, DefaultProps>(WpBaseComponent, WpInstructorsListProps) {\r\n private _instructorsService!: IInstructorsService;\r\n private _cmsService!: ICmsService;\r\n\r\n @Ref('select')\r\n protected select!: HTMLElement; // Maybe it's Vue or VueComponent?\r\n\r\n Instructor: Instructor | null = null;\r\n Instructors: Array = [];\r\n InstructorsLoaded: boolean = false;\r\n InstructorMore: Instructor | null = null;\r\n\r\n created(): void {\r\n this._instructorsService = this.GlobalService.Get(InstructorsSymbols.InstructorsService);\r\n this._cmsService = this.GlobalService.Get(CmsSymbols.CmsService);\r\n };\r\n\r\n async mounted(): Promise {\r\n if (this.placeid && this.placeid.Id)\r\n await this.LoadInstructors(this.placeid.Id);\r\n };\r\n\r\n @Watch(\"placeid\")\r\n async PlaceChanged(): Promise {\r\n if (this.placeid.Id)\r\n await this.LoadInstructors(this.placeid.Id);\r\n };\r\n\r\n @Watch(\"Instructor\")\r\n InstructorChanged(): void {\r\n this.$emit(\"input\", this.Instructor);\r\n };\r\n\r\n Select(i: Instructor) {\r\n this.Instructor = i;\r\n this.select.blur();\r\n };\r\n\r\n async LoadInstructors(placeid: number): Promise {\r\n this.InstructorsLoaded = false;\r\n let query = await this._instructorsService.GetInstructorsAsync(placeid);\r\n if (query.Success && query.Data != null) this.Instructors = query.Data.sort((x, y) =>\r\n {\r\n if (x.Name == y.Name) return 0;\r\n else if (x.Name < y.Name) return -1;\r\n else return 1;\r\n });\r\n\r\n let filter = new BaseFilter(1, 300);\r\n // Запросим у CMS доп инфу по инструкторам\r\n let moreInfo = await this._cmsService.GetEntitiesAsync(WpCorePrefixes.Intructors, filter, '');\r\n if (moreInfo.Success && moreInfo.Data && +moreInfo.Data.TotalCount != 0) {\r\n let entities = moreInfo.Data.Entities as Array;\r\n this.Instructors.forEach((i: Instructor) => {\r\n let info = entities.find((e: InstructorAdditionalInfo) => i.Code == e.Code);\r\n if (info) {\r\n if (info.Name) i.Name = info.Name;\r\n if (info.ImageLink) i.ImageLink = info.ImageLink;\r\n if (info.Preview) i.Preview = info.Preview;\r\n if (info.Description) i.Description = info.Description;\r\n };\r\n });\r\n };\r\n this.InstructorsLoaded = true;\r\n };\r\n};\r\n\r\nclass InstructorAdditionalInfo {\r\n Id!: number;\r\n Code!: number;\r\n Description?: string;\r\n ImageLink?: string;\r\n Name?: string;\r\n PlatformEntities?: any | Array | string;\r\n Preview?: string;\r\n};\r\n\r\nexport class WpInstructorsListDictionary extends BaseSystemLocalizationDictionary {\r\n Instructor: string = \"Инструктор\";\r\n InstructorsLoading: string = \"Загрузка инструкторов…\";\r\n};","export enum OrderType {\r\n TariffsOrder = 1,\r\n ArenaTicket = 2\r\n}","import './wp-instructors.scss';\r\n\r\nimport Vue, { VueConstructor } from 'vue';\r\nimport { Prop, DefaultProps, PropOptions } from 'vue/types/options';\r\nimport WpBaseComponent from './../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, {\r\n ActionResult, AppSettings,\r\n\r\n InstructorsSymbols, IInstructorsService, GroupLessonsFilter,\r\n InstructorsGroupLesson, InstructorTariffCategory,\r\n SkillType, InstructorsPlace,\r\n\r\n INotificationService, NotificationSymbols,\r\n\r\n CartItem, Cart, CartItemTypes, Tariff, InstructorsGroupCartItem, BaseSystemLocalizationDictionary,\r\n WpCorePrefixes, BaseFilter, ICmsService, CmsSymbols, InstructorsLessonsLocation, Instructor,\r\n} from 'web-platform-core-ui';\r\n\r\n\r\nexport const wpInstructorsProp = Vue.extend({\r\n props: {\r\n Cart: Object as Prop,\r\n multiday: {\r\n default: false,\r\n required: false\r\n },\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-instructors-group.html\")\r\n})\r\nexport default class WpInstructorsGroup extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpInstructorsProp, Vue) {\r\n private _allTariffs: Array = [];\r\n private _instructorsService!: IInstructorsService;\r\n protected _notificationService!: INotificationService;\r\n\r\n Settings!: AppSettings;\r\n DatepickerSettings: any = {};\r\n\r\n SelectedPlace: InstructorsPlace | null = null;\r\n\r\n TariffId: number = 0;\r\n Tariffs: Array = [];\r\n TariffLoaded: boolean = false;\r\n TariffVisible: boolean = true;\r\n NoTariffs: boolean = false;\r\n\r\n Skill: number = 0;\r\n Skills: Array = [];\r\n SkillsLoaded: boolean = false;\r\n SkillsVisible: boolean = true;\r\n NoSkills: boolean = false;\r\n\r\n get Category(): string {\r\n if (this.Categories.length !== 0) {\r\n let categoryById = this.Categories.filter(x => x.Id == parseInt(this.CategoryId));\r\n return categoryById.length !== 0 ? categoryById[0].Name : \"\";\r\n } else {\r\n return '';\r\n };\r\n };\r\n\r\n CategoryId: string = '';\r\n Categories: Array = [];\r\n CategoriesLoaded: boolean = false;\r\n CategoriesVisible: boolean = true;\r\n NoCategories: boolean = false;\r\n\r\n LocationId: number = 0;\r\n Locations: Array = [];\r\n LocationsLoaded: boolean = false;\r\n LocationsVisible: boolean = true;\r\n NoLocations: boolean = false;\r\n\r\n ShowButtonVisible: boolean = true;\r\n\r\n Filter?: GroupLessonsFilter;\r\n FilterLoading = false;\r\n LessonsLoaded = false;\r\n Lessons?: Array;\r\n\r\n Dates: Array = [];\r\n DatesVisible: boolean = true;\r\n\r\n Instructor: Instructor | null = null;\r\n NoCoach: boolean = false;\r\n\r\n get DatesArray(): Array {\r\n let datesArray = [];\r\n let firstDate = this.DateHandler.ParseToDate(this.Dates[0], 'YYYY-MM-DD');\r\n\r\n if (this.Dates.length == 2) {\r\n let lastDate = this.DateHandler.ParseToDate(this.Dates[1], 'YYYY-MM-DD');\r\n\r\n while (firstDate <= lastDate) {\r\n datesArray.push(this.DateHandler.Parse(firstDate).Format('YYYY-MM-DD'));\r\n firstDate.setDate(firstDate.getDate() + 1);\r\n };\r\n } else if (this.Dates.length == 1) {\r\n datesArray.push(this.DateHandler.Parse(firstDate).Format('YYYY-MM-DD'));\r\n };\r\n\r\n return datesArray;\r\n };\r\n\r\n FilterComplete: boolean = false;\r\n\r\n Datepicker: boolean = false;\r\n\r\n StartDatepicker(): void {\r\n this.DatepickerSettings = this.Settings;\r\n this.Datepicker = true;\r\n };\r\n\r\n async mounted(): Promise {\r\n this._instructorsService = this.GlobalService.Get(InstructorsSymbols.InstructorsService);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n let cmsService = this.GlobalService.Get(CmsSymbols.CmsService);\r\n\r\n this.Settings = GlobalService.GetSettings();\r\n this.StartDatepicker();\r\n\r\n if (this.Settings.NoSkills) this.NoSkills = true;\r\n if (this.Settings.NoCategories) this.NoCategories = true;\r\n if (this.Settings.NoTariffs) this.NoTariffs = true;\r\n if (this.Settings.NoLocations) this.NoLocations = true;\r\n if (this.Settings.NoCoach) this.NoCoach = true;\r\n\r\n let places = await this._instructorsService.GetPlacesAsync();\r\n\r\n if (!places.Success || places.Data == undefined || places.Data.length == 0) {\r\n this._notificationService.Error(\"Ошибка\", places.ErrorMessage ? places.ErrorMessage : \"Непредвиденная ошибка\");\r\n return;\r\n };\r\n\r\n if ('PlaceId' in this.Settings) {\r\n let place = places.Data.filter(x => x.Id == this.Settings?.PlaceId);\r\n if (place.length !== 0) {\r\n this.SelectedPlace = place[0];\r\n } else {\r\n this.SelectedPlace = places.Data[0];\r\n };\r\n } else {\r\n this.SelectedPlace = places.Data[0];\r\n };\r\n\r\n let Skills = await this._instructorsService.GetSkillAsync(this.SelectedPlace.Id);\r\n if (Skills.Data !== undefined && Skills.Data.length >= 1) {\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.InstructorsSkillsNames, Skills.Data);\r\n\r\n let translateSkill = await cmsService.GetEntitiesAsync(WpCorePrefixes.InstructorsSkillsNames, new BaseFilter(), '');\r\n\r\n if (translateSkill.Success && translateSkill.Data != null) {\r\n Skills.Data.forEach(x => {\r\n let skill = translateSkill.Data?.Entities.find(sc => sc.Code == x.Id);\r\n if (skill != null) x.Name = skill.Name;\r\n });\r\n };\r\n\r\n this.Skills = Skills.Data.sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n });\r\n\r\n if (Skills.Data.length === 1) {\r\n this.Skill = this.Skills[0].Id;\r\n this.SkillsVisible = false;\r\n };\r\n };\r\n\r\n this.SkillsLoaded = true;\r\n\r\n let Categories = await this._instructorsService.GetInstructorsTariffCategoriesAsync();\r\n if (Categories.Data !== undefined && Categories.Data.length >= 1) {\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.InstructorsTariffOptionNames, Categories.Data);\r\n\r\n let translateCategories = await cmsService.GetEntitiesAsync(WpCorePrefixes.InstructorsTariffOptionNames, new BaseFilter(), '');\r\n\r\n if (translateCategories.Success && translateCategories.Data != null) {\r\n Categories.Data.forEach(x => {\r\n let category = translateCategories.Data?.Entities.find(sc => sc.Code == x.Id);\r\n if (category != null) x.Name = category.Name;\r\n });\r\n };\r\n\r\n this.Categories = Categories.Data.sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n });\r\n\r\n if (this.Categories.length === 1) {\r\n this.CategoryId = this.Categories[0].Id.toString();\r\n this.CategoriesVisible = false;\r\n };\r\n };\r\n\r\n this.CategoriesLoaded = true;\r\n\r\n let locations = await this._instructorsService.GetLessonsLocationsAsync();\r\n if (locations.Data !== undefined && locations.Data.length >= 1) {\r\n this.Locations = locations.Data.sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n });\r\n\r\n if (this.Locations.length === 1) {\r\n this.LocationId = this.Locations[0].LocationId;\r\n this.LocationsVisible = false;\r\n };\r\n };\r\n\r\n this.LocationsLoaded = true;\r\n\r\n let tariffs = await this._instructorsService.GetInstructorsTariffsAsync();\r\n if (tariffs.Data !== undefined && tariffs.Data.length >= 1) {\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.Tariff, tariffs.Data);\r\n this._allTariffs = tariffs.Data;\r\n\r\n // If multiday is true - get filter data from multidaylessonstariffsid setting instead of grouplessonstariffsid\r\n //let filterTariffsId = this.multiday !== false ? this.Settings.MultiDayLessonsTariffsId : this.Settings.GroupLessonsTariffsId;\r\n let filterTariffsId = this.Settings.GroupLessonsTariffsId;\r\n\r\n if (filterTariffsId !== undefined && filterTariffsId.length > 0)\r\n this._allTariffs = this._allTariffs.filter(x => filterTariffsId.indexOf(x.Id) !== -1)\r\n };\r\n\r\n this.TariffLoaded = true;\r\n\r\n this.ResetTariffs();\r\n this.ResetFilterResults();\r\n };\r\n\r\n FormatDate(dateString: string): string {\r\n return this.DateHandler.Parse(dateString, 'YYYY-MM-DD').Format('DD.MM.YYYY');\r\n };\r\n\r\n FormatTime(dateString: string): string {\r\n return this.DateHandler.Parse(dateString, 'HH:mm:SS').Format('HH:mm');\r\n };\r\n\r\n SkillChanged(): void {\r\n this.ResetTariffs();\r\n this.ResetFilterResults();\r\n };\r\n\r\n CategoryChanged(): void {\r\n this.ResetTariffs();\r\n this.ResetFilterResults();\r\n };\r\n\r\n TariffChanged(tariffCode: number): void {\r\n this.TariffId = tariffCode;\r\n this.ResetFilterResults();\r\n };\r\n\r\n ResetFilterResults(): void {\r\n this.Lessons = [];\r\n this.LessonsLoaded = false;\r\n\r\n this.FilterComplete =\r\n this.TariffLoaded && this.SkillsLoaded && this.CategoriesLoaded && this.LocationsLoaded &&\r\n (this.Skill !== 0 || this.NoSkills) &&\r\n (this.CategoryId !== '' || this.NoCategories) &&\r\n (this.LocationId !== 0 || this.NoLocations) &&\r\n (this.TariffId !== 0 || this.NoTariffs) &&\r\n this.Dates.length >= 1;\r\n }\r\n\r\n ResetTariffs(): void {\r\n if (this._allTariffs !== undefined) {\r\n this.Tariffs =\r\n this.CategoryId !== '' ?\r\n this._allTariffs.filter(x =>\r\n this.Settings.GroupLessonsSkillsTariffs[`${this.Skill}`] != undefined ? this.Settings.GroupLessonsSkillsTariffs[`${this.Skill}`].indexOf(x.Id) !== -1 : true)\r\n .filter(x => x.OptionId === this.CategoryId).sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n })\r\n :\r\n this._allTariffs.filter(x =>\r\n this.Settings.GroupLessonsSkillsTariffs[`${this.Skill}`] !== undefined ? this.Settings.GroupLessonsSkillsTariffs[`${this.Skill}`].indexOf(x.Id) !== -1 : true)\r\n .sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n })\r\n\r\n if (this.multiday == true) {\r\n this.CategoryId !== '' ?\r\n this._allTariffs.filter(x =>\r\n this.Settings.MultiDaysLessonsSkillsTariffs[`${this.Skill}`] != undefined ? this.Settings.MultiDaysLessonsSkillsTariffs[`${this.Skill}`].indexOf(x.Id) !== -1 : true)\r\n .filter(x => x.OptionId === this.CategoryId).sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n })\r\n :\r\n this._allTariffs.filter(x =>\r\n this.Settings.MultiDaysLessonsSkillsTariffs[`${this.Skill}`] !== undefined ? this.Settings.MultiDaysLessonsSkillsTariffs[`${this.Skill}`].indexOf(x.Id) !== -1 : true)\r\n .sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n })\r\n }\r\n };\r\n\r\n this.TariffId = this.Tariffs.length == 1 ? this.Tariffs[0].TariffCode : 0;\r\n };\r\n\r\n AddToCart(lesson: InstructorsGroupLesson, amount: number, price: number): void {\r\n let cartItem = new InstructorsGroupCartItem(lesson, amount, price, this.Cart, this.Settings?.CoachId, this.LocationId == 0 ? null : this.LocationId);\r\n let result = this.Cart.AddItem(cartItem);\r\n\r\n if (!result.Success) {\r\n this._notificationService.Error(\"Ошибка\", result.ErrorMessage ? result.ErrorMessage : \"Непредвиденная ошибка\");\r\n } else {\r\n var cartItems = this.Cart.SimpleCart();\r\n parent.postMessage({ status: 'addedtocart', data: cartItems }, '*');\r\n };\r\n };\r\n\r\n get LessonsBought(): Array {\r\n let lessonsBought: Array = [];\r\n this.Cart.Items.forEach((element: CartItem) => {\r\n if (element.Type == CartItemTypes.InstructorsGroupLesson)\r\n lessonsBought.push(element);\r\n });\r\n return lessonsBought;\r\n };\r\n\r\n async GetGroupLessonsAsync(): Promise>> {\r\n this.LessonsLoaded = false;\r\n this.FilterLoading = true;\r\n let dateFrom = this.DateHandler.Parse(this.Dates[0], 'YYYY-MM-DD').Format('DD.MM.YYYY');\r\n let dateTo = this.Dates.length == 2 ? this.DateHandler.Parse(this.Dates[1], 'YYYY-MM-DD').Format('DD.MM.YYYY') : dateFrom;\r\n\r\n let coachid = this.Settings.CoachId || null;\r\n if (this.Instructor) coachid = this.Instructor.Code;\r\n\r\n let skill = this.Skills.find(x => x.Id == this.Skill);\r\n let filter = new GroupLessonsFilter(\r\n this.SelectedPlace!.Id,\r\n skill !== undefined ? skill.Name : '',\r\n this.CategoryId,\r\n dateFrom,\r\n dateTo,\r\n this.TariffId == 0 ? null : this.TariffId,\r\n null,\r\n coachid,\r\n this.LocationId == 0 ? '' : this.LocationId.toString()\r\n );\r\n\r\n let filterResult = await this._instructorsService.GetGroupLessonsAsync(filter);\r\n\r\n // Remove disabled date lessons from the filtered result\r\n // Loop through each result\r\n await filterResult.Data?.forEach((e, i) => {\r\n // Convert it's date to a moment format\r\n let thisDate = this.DateHandler.Parse(e.Date, \"YYYY-MM-DDTHH:mm:SS\").Format('DD.MM.YYYY');\r\n // If we this date is one of the disabled dates - splice it (removing it from the dataset)\r\n if (this.Settings.Disableddates.includes(thisDate)) filterResult.Data?.splice(i, 1);\r\n });\r\n\r\n this.FilterLoading = false;\r\n this.LessonsLoaded = true;\r\n if (filterResult.Data !== null) {\r\n let groups = new Array();\r\n\r\n filterResult.Data?.forEach(x => {\r\n let lesson = groups.find(y => y.Date == x.Date && y.BeginTime == x.BeginTime && y.EndTime == x.EndTime);\r\n if (lesson !== undefined) {\r\n lesson.MaxPersonsCount = lesson.MaxPersonsCount + x.MaxPersonsCount;\r\n lesson.FreeMembers = lesson.FreeMembers + x.FreeMembers;\r\n } else {\r\n groups.push(x);\r\n };\r\n });\r\n\r\n this.Lessons = groups;\r\n };\r\n\r\n return filterResult;\r\n };\r\n\r\n DatesSet(dates: Array): void {\r\n this.Dates = dates;\r\n this.ResetFilterResults();\r\n };\r\n};\r\n\r\nexport class WpInstructorsGroupDictionary extends BaseSystemLocalizationDictionary {\r\n Discipline: string = '';\r\n DisciplinesLoading: string = '';\r\n Category: string = '';\r\n CategoriesLoading: string = '';\r\n Program: string = '';\r\n ProgramsLoading: string = '';\r\n DialogBtnShow: string = '';\r\n Location: string = '';\r\n LocationsLoading: string = '';\r\n};","import { CartItem, CartItemTypes } from '../Cart';\r\nimport { ActionResult, ErrorTypes } from '../Common';\r\nimport { ReservationItem, ReservationItemTypes } from '../Sale';\r\n\r\n\r\n\r\nexport default class ContractClubTariffCartItem extends CartItem {\r\n private _id: number = 0;\r\n private _templateContractId: number = 0;\r\n private _personContractId: number = 0;\r\n private _code: number = 0;\r\n private _date: string = \"\";\r\n private _price: number = 0;\r\n private _type: CartItemTypes = CartItemTypes.ContractAdditionalService;\r\n private _name: string = \"\";\r\n\r\n get Info(): string {\r\n return `${this._name}`; \r\n }\r\n get Type(): CartItemTypes {\r\n return this._type;\r\n }\r\n get Price(): number {\r\n return this._price;\r\n }\r\n get Count(): number {\r\n return 1;\r\n }\r\n public get Dates(): Array {\r\n let result = new Array();\r\n\r\n if (this._date !== undefined) {\r\n result.push(this._date);\r\n }\r\n\r\n return result;\r\n }\r\n public get AdditionalInfo(): any {\r\n return { Id: this._id, Name: this._name, Code: this._code, Price: this._price, TemplateContractId: this._templateContractId, PersonContractId: this._personContractId };\r\n }\r\n get MetricsId(): any {\r\n return this._id;\r\n }\r\n get IsCanIncreaseCount(): boolean {\r\n return false;\r\n }\r\n get IsCanReduceCount(): boolean {\r\n return false;\r\n }\r\n get IsAvailable(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(id: number, templateContractId: number, personContractId: number, date: string, name: string,\r\n price: number, code: number) {\r\n super();\r\n this._id = id;\r\n this._templateContractId = templateContractId;\r\n this._personContractId = personContractId;\r\n this._code = code;\r\n this._name = name;\r\n this._price = price;\r\n this._date = date;\r\n }\r\n\r\n IncreaseCount(): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"��������� ���������� ���������� ��� ������� ���� �����\");\r\n }\r\n ReduceCount(): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"���������� ����������� ��������� ����������\");\r\n }\r\n IsConflictItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n IsEqualsItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n CombineItem(item: CartItem): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"��������� ���������� ���������� ��� ������� ���� �����\");\r\n }\r\n GetReservationItem(): ReservationItem[] {\r\n return [new ReservationItem(1, ReservationItemTypes.ContractAdditionalService, this._id, this._date, null, null, null, null, null, null, null, null, this._templateContractId, this._personContractId)];\r\n }\r\n async RemoveItem(): Promise {\r\n return ActionResult.Success();\r\n }\r\n\r\n}","import ILoyaltyNotificationService from './i-loyalty-notification-service';\r\nimport { injectable, inject } from 'inversify';\r\nimport LoyaltyNotificationAddedEventArgs from './loyalty-notification-added-event-args';\r\nimport { WpEvent, WpEventHandler } from '../Common';\r\nimport LoyaltyNotification from './LoyaltyNotification';\r\nimport { LoyaltySymbols } from '.';\r\nimport ILoyaltyNotificationProvider from './i-loyalty-notification-provider';\r\n\r\n@injectable()\r\nexport default class DefaultLoyaltyNotificationService implements ILoyaltyNotificationService {\r\n protected _provider: ILoyaltyNotificationProvider;\r\n\r\n protected _notificationAdded: WpEventHandler;\r\n\r\n\r\n get NotificationAdded(): WpEvent {\r\n return this._notificationAdded;\r\n }\r\n\r\n constructor(@inject(LoyaltySymbols.LoyaltyNotificationProvider) provider: ILoyaltyNotificationProvider) {\r\n this._provider = provider;\r\n \r\n let _this = this;\r\n this._notificationAdded = new WpEventHandler();\r\n this._provider.NotificationAdded.Subscribe((sender: any, e: LoyaltyNotificationAddedEventArgs) => {\r\n this._notificationAdded.Send(_this, e);\r\n })\r\n }\r\n\r\n GetNotifications(): Array {\r\n return this._provider.GetNotifications();\r\n }\r\n CheckNotification(id: string) {\r\n this._provider.CheckNotification(id);\r\n }\r\n}","import LuzhParkingOrderProvider from './luzh-parking-order-provider';\r\n\r\nexport {\r\n LuzhParkingOrderProvider\r\n}","import Vue, { VueConstructor } from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\nimport { DefaultProps } from 'vue/types/options';\r\n\r\nexport const wpPersonificationItemProps = Vue.extend({\r\n props: {\r\n Bundles: Array,\r\n UserPersons: Array\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-personification-bundle.html\")\r\n})\r\nexport default class WpPersonificationBundle extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpPersonificationItemProps, Vue) {\r\n TotalSum: number = 0; \r\n Loading: boolean = false;\r\n\r\n created(): void {\r\n this.Bundles.forEach((element: any) => {\r\n this.TotalSum += element.OrderItem.TotalSum;\r\n });\r\n };\r\n\r\n Remove(): void {\r\n this.Loading = true;\r\n this.$emit(\"ItemRemove\", (this.Bundles[0] as any).OrderItem);\r\n };\r\n};\r\n\r\nexport class WpPersonificationBundleDictionary extends BaseSystemLocalizationDictionary {\r\n GenericDecline: string = 'Отказаться';\r\n GenericTotalSum: string = 'Сумма';\r\n};","import { Tariff } from '../Tariffs';\r\n\r\nexport default class LTTariff extends Tariff {\r\n LTAvailableContracts: string = '';\r\n\r\n AvailableContracts?: Array;\r\n\r\n static SetAvailableContracts(tariff: LTTariff): void {\r\n if (tariff.LTAvailableContracts == null || tariff.LTAvailableContracts == \"\")\r\n return;\r\n\r\n try {\r\n let contractsIds = JSON.parse(tariff.LTAvailableContracts) as Array;\r\n tariff.AvailableContracts = contractsIds;\r\n }\r\n catch {}\r\n }\r\n}","module.exports = \"
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ $data._formatDateIsoToRu(date) }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.NoAvailableLessons }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ Lesson.SkillType }}, {{ CategoryName }}
{{ $data._formatDateIsoToRu(Lesson.Date) }}, {{ $data._formatTimeIsoToRu(Lesson.BeginTime) }} - {{ $data._formatTimeIsoToRu(Lesson.EndTime) }}
\\r\\n \\r\\n \\r\\n mdi-account-multiple-plus {{ Terms.GuestsAmmount }}:
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n

\\r\\n {{ SessionAmount === 1 ? $data._formatPrice(Lesson.PriceForOne) : $data._formatPrice(Lesson.PriceForOne+Lesson.PriceForSecond) }}\\r\\n mdi-cancel\\r\\n

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericCancel }}\\r\\n {{ Terms.GenericBuy }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\";","export enum WidgetType {\r\n Instant = 'instant',\r\n Modal = 'modal'\r\n}","import { ActionResult, ErrorTypes } from '../Common';\r\nimport { injectable, inject } from 'inversify';\r\nimport {\r\n IdentitySymbols, IContext\r\n} from './../Identity';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { SaleProvider, PaymentForm } from './../Sale'\r\n\r\n@injectable()\r\nexport default class FreeSaleProvider extends SaleProvider {\r\n\r\n constructor(@inject(IdentitySymbols.Context) context: IContext) {\r\n super(context)\r\n }\r\n\r\n get NotAuthorizationHeaders(): any {\r\n return {\r\n headers: {\r\n \"SiteId\": this._settings.SiteId,\r\n \"SessionId\": this._settings.SessionId,\r\n \"User\": this._settings.SessionId\r\n }\r\n }\r\n }\r\n\r\n get AuthorizationHeaders(): any {\r\n return {\r\n headers: {\r\n \"SiteId\": this._settings.SiteId,\r\n \"SessionId\": this._settings.SessionId,\r\n \"User\": this._context.CurrentIdentity.UserId,\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`\r\n }\r\n }\r\n }\r\n\r\n async GetPaymentFormAsync(id: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.get(`/free/pay?id=${id}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData(new PaymentForm());\r\n }\r\n}\r\n\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n}\r\n\r\n\r\n","import { ActionResult, ErrorTypes } from './../Common';\r\nimport { injectable } from 'inversify';\r\nimport GlobalService from './..';\r\nimport { RestClient } from 'typed-rest-client';\r\n\r\nimport IMetricsProvider from './i-metrics-provider';\r\nimport MetricCounter from './metric-counter';\r\n\r\n@injectable()\r\nexport default class MetricsProvider implements IMetricsProvider {\r\n\r\n async GetSitesCountersAsync(): Promise>> {\r\n let settings = GlobalService.GetSettings();\r\n\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": settings.SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>>(`/websale/api/sites/metrics`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n\r\n}\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n ErrorType: string = '';\r\n}\r\n","export enum MetricType {\r\n YandexCounter = 1\r\n}","import { MetricType } from './metric-type';\r\n\r\nexport default class MetricCounter {\r\n Id: number = 0;\r\n SiteId: number = 0;\r\n Name: string = '';\r\n Description: string = '';\r\n Type: MetricType = MetricType.YandexCounter;\r\n CounterId: string = '';\r\n}","export const MetricsSymbols = {\r\n MetricsService: Symbol.for(\"MetricsService\"),\r\n MetricsProvider: Symbol.for(\"MetricsProvider\")\r\n}\r\n","import IMetricsService from './i-metrics-service';\r\nimport MetricCounter from './metric-counter';\r\nimport IMetricsProvider from './i-metrics-provider';\r\nimport { injectable, inject } from 'inversify';\r\nimport { MetricsSymbols } from './symbols';\r\n\r\n@injectable()\r\nexport default class MetricsService implements IMetricsService {\r\n private _counters: Array = [];\r\n private _countersIsLoaded: boolean = false;\r\n\r\n private _metricsProvider: IMetricsProvider;\r\n\r\n constructor(@inject(MetricsSymbols.MetricsProvider) metricsProvider: IMetricsProvider) {\r\n this._metricsProvider = metricsProvider;\r\n }\r\n\r\n async RegistrateEvent(eventId: symbol, arg?: any): Promise {\r\n this._counters.forEach(async x => {\r\n try {\r\n ym(x.CounterId, 'reachGoal', Symbol.keyFor(eventId));\r\n if (arg != null) \r\n ym(x.CounterId, 'params', { 'id': arg });\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n })\r\n }\r\n\r\n\r\n async LoadCountersAsync(): Promise {\r\n if (this._countersIsLoaded)\r\n return;\r\n\r\n let result = await this._metricsProvider.GetSitesCountersAsync();\r\n if (result.Success) {\r\n this._countersIsLoaded = true;\r\n\r\n if (result.Data !== undefined) {\r\n result.Data.forEach(x => {\r\n try {\r\n ym(x.CounterId, 'init',\r\n {\r\n id: x.CounterId,\r\n clickmap: true,\r\n trackLinks: true,\r\n accurateTrackBounce: true\r\n });\r\n this._counters.push(x);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n\r\ninterface yandexCounter {\r\n (id: string, target?: string, arg?: any): void;\r\n}\r\n\r\ndeclare var ym: yandexCounter;\r\n\r\n\r\n","import ILoyaltyProvider from './i-loyalty-provider';\r\nimport DefaultLoyaltyProvider from './default-loyalty-provider';\r\nimport IsdUserLoyalty from './isd-user-loyalty';\r\nimport { LoyaltySymbols } from './symbols';\r\nimport IsdLoyaltyQuestionnaire from './isd-loyalty-questionnaire';\r\nimport IsdLoyaltyProgram from './isd-loyalty-program';\r\nimport PersonIsdLoyaltyData from './person-isd-loyalty-data';\r\nimport AccountReplenishmentCartItem from './account-replenishment-cart-item';\r\nimport PersonAchievement, { AchievementGroupType, CurrentTask } from './person-achievement';\r\nimport LoyaltyChangedEventArgs from './loyalty-changed-event-args';\r\nimport { SocialNetworkTypes } from './social-network-types';\r\nimport SocialNetworkData from './social-network-data';\r\nimport ILoyaltyNotificationrProvider from './i-loyalty-notification-provider';\r\nimport ILoyaltyNotificationService from './i-loyalty-notification-service';\r\nimport LoyaltyNotification from './LoyaltyNotification';\r\nimport LoyaltyNotificationAddedEventArgs from './loyalty-notification-added-event-args';\r\nimport DefaultLoyaltyNotificationProvider from './default-loyalty-notification-provider';\r\nimport DefaultLoyaltyNotificationService from './default-loyalty-notification-service';\r\nimport { LoyaltyNotificationStatus } from './loyalty-notification-status';\r\nimport AccountBalance from './account-balance';\r\n\r\nexport {\r\n ILoyaltyProvider, DefaultLoyaltyProvider,\r\n IsdUserLoyalty, LoyaltySymbols,\r\n IsdLoyaltyQuestionnaire, IsdLoyaltyProgram,\r\n PersonIsdLoyaltyData, AccountReplenishmentCartItem,\r\n LoyaltyChangedEventArgs,\r\n SocialNetworkData, SocialNetworkTypes,\r\n // ����������...\r\n PersonAchievement, AchievementGroupType, CurrentTask,\r\n ILoyaltyNotificationrProvider, ILoyaltyNotificationService,\r\n LoyaltyNotification, LoyaltyNotificationAddedEventArgs,\r\n DefaultLoyaltyNotificationProvider, DefaultLoyaltyNotificationService,\r\n LoyaltyNotificationStatus, AccountBalance\r\n}","import ISibProvider from './i-sib-provider';\r\nimport { injectable } from 'inversify';\r\nimport { ActionResult, ErrorTypes } from '../Common';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport GlobalService from '..';\r\n\r\n@injectable()\r\nexport default class DefaultSibProvider implements ISibProvider {\r\n async SearchFanIdByPhoneAsync(phone: string): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n let response = await client.get(`/sib/v2/fan/?phone=${encodeURIComponent(phone)}`);\r\n\r\n if (response.result == null || response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result?.Message);\r\n\r\n return ActionResult.SuccessData(response.result.Data);\r\n }\r\n}\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data: string = '';\r\n}","import './wp-tariff-item.scss';\r\n\r\nimport Vue, { VueConstructor } from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, {\r\n AppSettings, ITariffService, TariffSymbols,\r\n Tariff, Cart, RewriteCartItem, BaseSystemLocalizationDictionary\r\n} from 'web-platform-core-ui';\r\nimport { Prop, DefaultProps } from 'vue/types/options';\r\nimport { Watch } from 'vue-property-decorator';\r\nimport BaseUILocalizationDictionary from './../../../Localization/base-ui-localization-terms';\r\n\r\nexport const wpTariffRewriteItemProp = Vue.extend({\r\n props: {\r\n tariff: Object as Prop,\r\n Cart: Object as Prop,\r\n Card: String,\r\n Date: String\r\n }\r\n})\r\n\r\n\r\n@Component({\r\n template: require(\"./wp-tariff-rewrite-item.html\")\r\n})\r\n\r\nexport default class WpTariffRewriteItem extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpTariffRewriteItemProp, Vue) {\r\n _tariffService!: ITariffService;\r\n private _tariffLoading: boolean = true;\r\n\r\n TariffAvailable: boolean = false;\r\n\r\n Settings!: AppSettings;\r\n\r\n\r\n Price: number = 0;\r\n\r\n get TariffLoading(): boolean {\r\n return this._tariffLoading;\r\n }\r\n set TariffLoading(value: boolean) {\r\n this._tariffLoading = value;\r\n this.$emit('LoadingChange', this.tariff.Id, this._tariffLoading);\r\n }\r\n\r\n @Watch('Date')\r\n DateChanged(val: string, oldVal: string) {\r\n if (val == null || val == '')\r\n return;\r\n\r\n this.GetTariffPrice();\r\n }\r\n\r\n AddToCart(): void {\r\n this.$emit('addtocart', new RewriteCartItem(this.tariff, this.Date, this.Price, this.Card));\r\n }\r\n\r\n async mounted() {\r\n this.Settings = GlobalService.GetSettings();\r\n\r\n this._tariffService = this.GlobalService.Get(TariffSymbols.TariffService);\r\n if (this.Date != null && this.Date != '')\r\n this.GetTariffPrice()\r\n }\r\n\r\n async GetTariffPrice(): Promise {\r\n this.TariffLoading = true;\r\n\r\n let result = await this._tariffService.GetTariffPrice(this.Date, this.tariff.Id);\r\n if (result.Success) {\r\n this.Price = result.Data;\r\n this.TariffAvailable = true;\r\n }\r\n else {\r\n this.TariffAvailable = false;\r\n }\r\n this.$emit('AvailableChange', this.tariff.Id, this.TariffAvailable);\r\n this.TariffLoading = false;\r\n }\r\n}\r\n\r\nexport class WpTariffRewriteItemDictionary extends BaseUILocalizationDictionary {\r\n GenericToCart: string = 'В корзину';\r\n TariffUnavailableForThisDate: string = 'Тариф недоступен на эту дату';\r\n}","export enum SocialNetworkTypes {\r\n VK = 1\r\n}","module.exports = \"
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ Terms.NoAvailableLessonsForThisDate }}\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n Доступные даты отсутствуют\\r\\n \\r\\n
\";","module.exports = \"\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n

{{ Bundles[0].OrderItem.BundleName }}

\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n mdi-trash-can-outline {{ Terms.GenericDecline }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\";","export default class TariffCapacity {\r\n TariffId: number = 0;\r\n Date: string = '';\r\n ZoneId?: string;\r\n Capacity: number = 0;\r\n Count: number = 0;\r\n SeanceId: string = '';\r\n ReservedCount: number = 0;\r\n\r\n get LeftCount(): number {\r\n let result = (this.Capacity - this.Count) - this.ReservedCount;\r\n return result < 0 ? 0 : result;\r\n }\r\n}","import { Cart, CartItemTypes } from './../Cart';\r\nimport { IdentitySymbols } from './../Identity/symbols';\r\nimport { SaleService, ISaleProvider, SaleSymbols, ReservationItem, ReservationData, OrderSale } from './';\r\nimport { ActionResult } from './../Common';\r\nimport GlobalService, { IContext } from './..';\r\nimport { IDateHandler, DateHandlerSymbols } from '../Utility';\r\nimport { inject, injectable } from 'inversify';\r\nimport { TariffCartItem } from '../Tariffs';\r\nimport BenefitAppSettings from './benefit-app-settings';\r\n\r\n@injectable()\r\nexport default class BenefitSaleService extends SaleService {\r\n\r\n constructor(@inject(SaleSymbols.SaleProvider) saleProvider: ISaleProvider,\r\n @inject(IdentitySymbols.Context) context: IContext,\r\n @inject(DateHandlerSymbols.DateHandlerService) dateHandler: IDateHandler) {\r\n super(saleProvider, context, dateHandler)\r\n };\r\n\r\n protected async DefaultReservate(cart: Cart, personId?: number): Promise> {\r\n let items = new Array();\r\n\r\n cart.Items.forEach(x => {\r\n if (x.Type == CartItemTypes.Tariff) {\r\n let itemTariff = x as TariffCartItem;\r\n let newItems = x.GetReservationItem();\r\n newItems.forEach(y => y.TariffId = itemTariff.Tariff.TariffCode);\r\n items = items.concat(newItems);\r\n } else\r\n items = items.concat(x.GetReservationItem());\r\n });\r\n\r\n items.forEach(x => {\r\n x.Date = this._dateHandler.Parse(x.Date, 'DD.MM.YYYY').Format('YYYY-MM-DD');\r\n });\r\n\r\n /**/\r\n\r\n let setting = GlobalService.GetSettings();\r\n let data = new ReservationData();\r\n\r\n data.UserId = setting.BenefitDocument;\r\n data.Items = items;\r\n data.PersonId = personId;\r\n\r\n let result = await this._saleProvider.ReservateAsync(data);\r\n return result;\r\n };\r\n};","module.exports = \"
\\r\\n \\r\\n\\r\\n
\\r\\n\";","export const TariffSymbols = {\r\n TariffService: Symbol.for(\"TariffService\"),\r\n TariffServiceCached: Symbol.for(\"TariffServiceCached\"),\r\n TariffProvider: Symbol.for(\"TariffProvider\"),\r\n TariffCapacityService: Symbol.for(\"TariffCapacityService\"),\r\n TariffCapacityServiceCached: Symbol.for(\"TariffCapacityServiceCached\"),\r\n TariffCapacityProvider: Symbol.for(\"TariffCapacityProvider\")\r\n}","import { CartItem, CartItemTypes } from '../Cart';\r\nimport { ActionResult, ErrorTypes } from '../Common';\r\nimport { ReservationItem, ReservationItemTypes } from '../Sale';\r\n\r\n\r\n\r\nexport default class ContractClubPackageCartItem extends CartItem {\r\n private _id: number = 0;\r\n private _templateContractId: number = 0;\r\n private _personContractId: number = 0;\r\n private _code: number = 0;\r\n private _date: string = \"\";\r\n private _price: number = 0;\r\n private _type: CartItemTypes = CartItemTypes.ContractAdditionalPackage;\r\n private _name: string = \"\";\r\n\r\n get Info(): string {\r\n return `${this._name}`; \r\n }\r\n get Type(): CartItemTypes {\r\n return this._type;\r\n }\r\n get Price(): number {\r\n return this._price;\r\n }\r\n get Count(): number {\r\n return 1;\r\n }\r\n public get Dates(): Array {\r\n let result = new Array();\r\n\r\n if (this._date !== undefined) {\r\n result.push(this._date);\r\n }\r\n\r\n return result;\r\n }\r\n public get AdditionalInfo(): any {\r\n return { Id: this._id, Name: this._name, Code: this._code, Price: this._price, TemplateContractId: this._templateContractId, PersonContractId: this._personContractId };\r\n }\r\n get MetricsId(): any {\r\n return this._id;\r\n }\r\n get IsCanIncreaseCount(): boolean {\r\n return false;\r\n }\r\n get IsCanReduceCount(): boolean {\r\n return false;\r\n }\r\n get IsAvailable(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(id: number, templateContractId: number, personContractId: number, date: string, name: string,\r\n price: number, code: number) {\r\n super();\r\n this._id = id;\r\n this._templateContractId = templateContractId;\r\n this._personContractId = personContractId;\r\n this._code = code;\r\n this._name = name;\r\n this._price = price;\r\n this._date = date;\r\n }\r\n\r\n IncreaseCount(): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"��������� ���������� ���������� ��� ������� ���� �����\");\r\n }\r\n ReduceCount(): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"���������� ����������� ��������� ����������\");\r\n }\r\n IsConflictItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n IsEqualsItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n CombineItem(item: CartItem): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"��������� ���������� ���������� ��� ������� ���� �����\");\r\n }\r\n GetReservationItem(): ReservationItem[] {\r\n return [new ReservationItem(1, ReservationItemTypes.ContractAdditionalPackage, this._id, this._date, null, null, null, null, null, null, null, null, this._templateContractId, this._personContractId)];\r\n }\r\n async RemoveItem(): Promise {\r\n return ActionResult.Success();\r\n }\r\n\r\n}","export default class GroupLessonsFilter {\r\n CategoryId: string = '';\r\n PlaceId: number = 0;\r\n Skill: string = '';\r\n DateFrom: string = '';\r\n DateTo: string = '';\r\n TariffCode?: number | null;\r\n SkillLevelId?: number | null;\r\n CoachId?: number | null;\r\n Location?: string | null;\r\n ContractId?: number | null;\r\n\r\n constructor(placeId: number, skill: string, categoryId: string, dateFrom: string, dateTo: string,\r\n tariffCode?: number | null, skillLevelId?: number | null, coachId?: number | null, location?: string | null,\r\n contractId?: number | null) {\r\n this.PlaceId = placeId;\r\n this.Skill = skill;\r\n this.CategoryId = categoryId;\r\n this.DateFrom = dateFrom;\r\n this.DateTo = dateTo;\r\n this.TariffCode = tariffCode;\r\n this.SkillLevelId = skillLevelId;\r\n this.CoachId = coachId;\r\n this.Location = location;\r\n this.ContractId = contractId;\r\n }\r\n}","import IClubProvider from './i-club-provider';\r\nimport { injectable, inject } from 'inversify';\r\nimport ClubContract from './club-contract';\r\nimport { ActionResult, ErrorTypes } from '../Common';\r\nimport ClubAppSettings from './club-app-settings';\r\nimport GlobalService from '../Global/global-service';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport SoldClubContract from './sold-club-contract';\r\nimport { IdentitySymbols, IContext } from '../Identity';\r\nimport { Tariff } from '..';\r\n\r\n@injectable()\r\nexport default class DefaultClubProvider implements IClubProvider {\r\n protected Settings!: ClubAppSettings;\r\n protected Context!: IContext;\r\n\r\n constructor(@inject(IdentitySymbols.Context) context: IContext) {\r\n this.Settings = GlobalService.GetSettings()\r\n this.Context = context;\r\n };\r\n\r\n async GetContractsAdditionalServicesAsync(): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": this.Settings.SiteId,\r\n \"SessionId\": this.Settings.SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>>(`/websale/api/club/tariffs`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data, response.result?.Message);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n };\r\n\r\n async GetContractsAsync(): Promise>> {\r\n try {\r\n let client = this.GetRestClient();\r\n let response = await client.get>>(`/websale/api/club/contracts`);\r\n if (response.result != null && response.result.Result != 0) {\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data, response.result?.Message);\r\n };\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n } catch (error) {\r\n console.error(error);\r\n return ActionResult.FailedData(ErrorTypes.InternalError, [], \"Не удалось загрузить список контрактов\")\r\n };\r\n };\r\n\r\n async GetContractAsync(id: number): Promise> {\r\n let client = this.GetRestClient();\r\n\r\n let response = await client.get>(`/websale/api/club/contracts/${id}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data, response.result?.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n };\r\n\r\n async GetPersonContractsAsync(tnodId: number, loyaltyId: number): Promise>> {\r\n let client = this.GetRestClient(true);\r\n\r\n let response = await client.get>>(`/account/api/club/contracts/?tnodid=${tnodId}&loyaltyId=${loyaltyId}&clubsiteid=${this.Settings.ClubServicesSiteId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData>(ErrorTypes.InternalError, response.result?.Data, response.result?.Message);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n };\r\n\r\n async CreateGuestContractAsync(): Promise {\r\n let client = this.GetRestClient(true);\r\n let query = await client.create(`/club/guestcontract/`, {});\r\n };\r\n\r\n async RegistrationToGroupLessson(personId: number, tnodId: number, loayltyId: number, lessonId: number, contratId?: number): Promise {\r\n let client = this.GetRestClient(true);\r\n\r\n let response = await client.replace>>(`/account/api/club/lesson/group`,\r\n {\r\n \"LessonId\": lessonId,\r\n \"PersonId\": personId,\r\n \"TNodId\": tnodId,\r\n \"UserLoyaltyId\": loayltyId,\r\n \"ContractId\": contratId\r\n });\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result?.Message);\r\n\r\n return ActionResult.SuccessData();\r\n };\r\n\r\n async RegistrationToFreeGroupLessson(personId: number, tnodId: number, loayltyId: number, lessonId: number, contratId?: number): Promise {\r\n let client = this.GetRestClient(true);\r\n\r\n let response = await client.replace>>(`/account/api/club/lesson/group/free`,\r\n {\r\n \"LessonId\": lessonId,\r\n \"PersonId\": personId,\r\n \"TNodId\": tnodId,\r\n \"UserLoyaltyId\": loayltyId,\r\n \"ContractId\": contratId\r\n });\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result?.Message);\r\n\r\n return ActionResult.SuccessData();\r\n };\r\n\r\n async RegistrationToPersonalLessson(personId: number, tnodId: number, loayltyId: number, lessonId: number, contratId?: number): Promise {\r\n let client = this.GetRestClient(true);\r\n\r\n let response = await client.replace>>(`/account/api/club/lesson/personal`,\r\n {\r\n \"LessonId\": lessonId,\r\n \"PersonId\": personId,\r\n \"TNodId\": tnodId,\r\n \"UserLoyaltyId\": loayltyId,\r\n \"ContractId\": contratId\r\n });\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result?.Message);\r\n\r\n return ActionResult.SuccessData();\r\n };\r\n\r\n /**\r\n * http://redmine.isd.su/issues/8403\r\n * Запрос для получения списка занятий на которые записан клиент\r\n */\r\n async GetPersonalLessons(tnodId: number, loyaltyId: number, dateFrom: string, dateTo: string): Promise {\r\n let client = this.GetRestClient(true);\r\n let query = await client.get>(`/account/api/club/lessons/person/?tnodid=${tnodId}&loyaltyId=${loyaltyId}&dateFrom=${dateFrom}&dateTo=${dateTo}`, {});\r\n if (query.result != null && query.result.Result == 0) return ActionResult.SuccessData(query.result.Data);\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n /*\r\n * Заморозка карты\r\n */\r\n async FreezeCard(ContractId: number, DateFrom: string, DaysAmount: number, UserLoyaltyId: number, ClubSiteId: number, TNodId: number): Promise {\r\n let client = this.GetRestClient(true);\r\n let freeze = await client.replace>(\"/account/api/club/contract/freeze\", {\r\n ContractId: ContractId,\r\n DateFrom: DateFrom,\r\n DaysAmount: DaysAmount,\r\n UserLoyaltyId: UserLoyaltyId,\r\n ClubSiteId: ClubSiteId,\r\n TNodId: TNodId\r\n });\r\n\r\n if (freeze.statusCode === 404)\r\n return ActionResult.Failed(ErrorTypes.InternalError, \"Method not implemented on the backend\");\r\n\r\n if (freeze.result != null && freeze.result.Result == 0)\r\n return ActionResult.SuccessData(freeze.result.Data);\r\n\r\n return ActionResult.Failed(ErrorTypes.InternalError, freeze.result ? freeze.result.Message : \"Нет сообщения ошибки\");\r\n };\r\n\r\n async CancelLessonAsync(tnodId: number, loyaltyId: number, cashListId: number, cashItemId: number): Promise {\r\n let client = this.GetRestClient(true);\r\n let query = await client.get>(`/account/api/club/lessons/person/cancel/?tnodid=${tnodId}&loyaltyId=${loyaltyId}&cashListId=${cashListId}&cashItemId=${cashItemId}`, {});\r\n if (query.result != null && query.result.Result == 0) return ActionResult.SuccessData();\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n\r\n // Regenerate rest client\r\n private GetRestClient(isAuth: boolean = false): RestClient {\r\n /* Friendly reminder\r\n * .get() = GET\r\n * .create() = POST\r\n * .replace() = PUT\r\n */\r\n let headers = isAuth ? {\r\n \"Authorization\": `Bearer ${this.Context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": this.Settings.SessionId\r\n } : {\r\n \"SiteId\": this.Settings.ClubServicesSiteId,\r\n \"SessionId\": this.Settings.SessionId};\r\n return new RestClient('wp-app', window.location.origin, [], {\r\n headers: headers\r\n });\r\n };\r\n};\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n};","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n !!v || Terms.AcceptRequired ]\\\">\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ Terms.GenericSave }}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\";","module.exports = \"
\\r\\n \\r\\n mdi-map-minus\\r\\n mdi-map-plus\\r\\n Миникарта\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\";","export default class NewsArticle {\r\n // This is required so TS allows accesing arrays with strings\r\n [index: string]: any;\r\n Id: number = 0;\r\n Title: string = \"\";\r\n Content: string = \"\";\r\n Preview: string = \"\";\r\n ImageLink?: string;\r\n Date?: Date;\r\n Author: string = \"\";\r\n}","import PaymentFormItem from './payment-form-item';\r\n\r\nexport default class PaymentForm {\r\n public Address: string = '';\r\n public Method: string = '';\r\n public Items: Array = new Array();\r\n}","import IArenaProvider from './i-arena-provider';\r\nimport { injectable, inject } from 'inversify';\r\nimport { ActionResult, ErrorTypes } from './../Common';\r\nimport ArenaSeance from './arena-seance';\r\nimport GlobalService from './../Global/global-service';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport ArenaSectorsList from './arena-sectors-list';\r\nimport ArenaTariff from './arena-tariff';\r\nimport ArenaSeatsList from './arena-seats-list';\r\nimport ArenaCartItem from './arena-cart-item';\r\nimport { OrderSale } from './..';\r\nimport { IdentitySymbols, IContext } from '../Identity';\r\nimport { AppSettings } from '../Global/app-settings';\r\n\r\n@injectable()\r\nexport default class DefaultArenaProvider implements IArenaProvider {\r\n private _settings: AppSettings;\r\n private _context: IContext;\r\n\r\n constructor(@inject(IdentitySymbols.Context) context: IContext) {\r\n this._context = context;\r\n this._settings = GlobalService.GetSettings();\r\n }\r\n\r\n get NotAuthorizationHeaders(): any {\r\n return {\r\n headers: {\r\n \"SiteId\": this._settings.SiteId,\r\n \"SessionId\": this._settings.SessionId,\r\n \"User\": this._settings.SessionId\r\n }\r\n }\r\n }\r\n\r\n\r\n get AuthorizationHeaders(): any {\r\n return {\r\n headers: {\r\n \"SiteId\": this._settings.SiteId,\r\n \"SessionId\": this._settings.SessionId,\r\n \"User\": this._context.CurrentIdentity.UserId,\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`\r\n }\r\n }\r\n }\r\n\r\n async GetSeancesAsync(): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>>(`/websale/api/arena/seances/`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n\r\n async GetSectorsAsync(seanceId: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/websale/api/arena/${seanceId}/sectors`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async GetTariffsAsync(seanceId: number): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>>(`/trfsrv/api/arena/tariffs?seanceid=${seanceId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n\r\n async GetSeatsAsync(seanceId: number, sectorCode: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/websale/api/arena/${seanceId}/${sectorCode}/places`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async UnreservateSeatAsync(itemId: number): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], this.NotAuthorizationHeaders);\r\n\r\n let response = await client.get>(`/websale/api/arena/unreservateplace/${itemId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData();\r\n }\r\n\r\n async ReservateSeatAsync(arenaCartItem: ArenaCartItem): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], this.NotAuthorizationHeaders);\r\n\r\n let data = {\r\n OptionCode: arenaCartItem.Option?.OptionCode,\r\n PlaceCode: arenaCartItem.Seat.PlaceCode,\r\n OrderId: arenaCartItem.OrderId,\r\n SibId: arenaCartItem.SibId\r\n }; \r\n\r\n let response = await client.create>(`/websale/api/arena/${arenaCartItem.Seance.Id}/${arenaCartItem.Sector.SectorCode}/reservateplace`, data);\r\n\r\n if (response.result != null && response.result.Result != 0) {\r\n if (response.result.Result == 3) {\r\n return ActionResult.FailedData(ErrorTypes.SeatIsOccupied);\r\n }\r\n\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n }\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async CancelOrderAsync(orderId: number): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], this.NotAuthorizationHeaders);\r\n\r\n let response = await client.get>(`/websale/api/order/cancel/${orderId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData();\r\n }\r\n\r\n}\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n}","import { injectable, inject } from 'inversify';\r\n\r\nimport IInstructorsProvider from './i-instructors-provider';\r\nimport { ActionResult, ErrorTypes } from './../Common';\r\nimport InstructorsPlace from './instructors-places';\r\nimport SkillType from './skill-type';\r\n\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { IdentitySymbols } from './../Identity/symbols';\r\nimport { IContext } from './../Identity';\r\nimport InstructorTariffCategory from './instructor-tariff-category';\r\nimport Instructor from './instructor';\r\nimport {\r\n PersonalLessonsFilter, InstructorsPersonalLesson,\r\n InstructorsPersonalLessonPrice, InstructorsGroupLesson, GroupLessonsFilter, InstructorsGroupLessonPrice\r\n} from '.';\r\nimport GlobalService, { Tariff } from './..';\r\nimport * as moment from 'moment';\r\nimport InstructorsBundlesGroupsLessons from './instructors-bundles-groups-lessons';\r\nimport InstructorCategory from './instructor-category';\r\n\r\n@injectable()\r\nexport default class InstructorsProvider implements IInstructorsProvider {\r\n\r\n private _context: IContext;\r\n\r\n constructor(@inject(IdentitySymbols.Context) context: IContext) {\r\n this._context = context;\r\n }\r\n\r\n async GetPlacesAsync(): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>>(`/websale/api/instructors/places/`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n\r\n async GetSkillAsync(placeId: number): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>>(`/websale/api/instructors/skills/${placeId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n async GetInstructorsTariffCategoriesAsync(): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n let response = await client.get>>(`/websale/api/instructors/categories/`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n\r\n async GetInstructorsAsync(placeId: number): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>>(`/websale/api/instructors/list/${placeId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n\r\n async GetInstructorsTariffsAsync(): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>>(`/websale/api/instructors/tariffs`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n\r\n async GetPersonalLessonsAsync(filter: PersonalLessonsFilter): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let filterStr = Object.entries(filter).map(([key, val]) => `${key}=${val === undefined || val === null ? '' : val}`).join('&');\r\n \r\n let response = await client.get>>(`/websale/api/instructors/personal/lessons?${filterStr}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n\r\n async GetGroupLessonsAsync(filter: GroupLessonsFilter): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let filterStr = Object.entries(filter).map(([key, val]) => `${key}=${val === undefined || val === null ? '' : val}`).join('&');\r\n\r\n let response = await client.get>>(`/websale/api/instructors/group/lessons?${filterStr}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n\r\n async GetBundlesLessonsAsync(filter: GroupLessonsFilter): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let filterStr = Object.entries(filter).map(([key, val]) => `${key}=${val === undefined || val === null ? '' : val}`).join('&');\r\n\r\n let response = await client.get>>(`/websale/api/instructors/bundles/group/lessons?${filterStr}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n\r\n async GetPersonalLessonPriceAsync(lesson: InstructorsPersonalLesson): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let date = moment.parseZone(lesson.Date).format(\"DD.MM.YYYY\");\r\n let beginTime = moment.parseZone(lesson.BeginTime, 'HH:mm:ss').format('HH:mm:ss');\r\n\r\n let response = await client.get>(`/trfsrv/api/tariffs/instructorslessonprice?id=${lesson.TariffId}&date=${date}&beginTime=${beginTime}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async GetGroupLessonPriceAsync(lesson: InstructorsGroupLesson): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let date = moment.parseZone(lesson.Date).format(\"DD.MM.YYYY\");\r\n let beginTime = moment.parseZone(lesson.BeginTime, 'HH:mm:ss').format('HH:mm:ss');\r\n\r\n let response = await client.get>(`/trfsrv/api/tariffs/instructorslessonprice?id=${lesson.TariffId}&date=${date}&beginTime=${beginTime}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async GetInstructorsCategoriesAsync(placeId: number): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>>(`/websale/api/instructors/levels/${placeId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n}\r\n\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n}\r\n","import Vue, { VueConstructor } from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { PropSync } from 'vue-property-decorator';\r\nimport { InstructorsPersonalLesson, InstructorsPersonalCartItem, IInstructorsService, InstructorsSymbols, INotificationService, NotificationSymbols, BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\nimport { DefaultProps } from 'vue/types/options';\r\n\r\n\r\nexport const wpInstructorsLessonsProp = Vue.extend({\r\n props: {\r\n lessons: Array,\r\n dates: Array,\r\n categoryName: String\r\n }\r\n}) \r\n@Component({\r\n template: require(\"./wp-instructors-lessons.html\")\r\n})\r\n\r\nexport default class WpInstructorsLessons extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpInstructorsLessonsProp, Vue) {\r\n private _instructorsService!: IInstructorsService;\r\n protected _notificationService!: INotificationService;\r\n\r\n @PropSync('lessonsBought', { type: Array }) LessonsBought!: Array;\r\n\r\n Lessons!: Array;\r\n Dates!: Array;\r\n LessonsAndDatesLoaded: boolean = false;\r\n CategoryName: string = ''; \r\n\r\n GroupAmount: number = 1;\r\n\r\n GroupMin: number = 1;\r\n GroupMax: number = 10;\r\n\r\n GroupDecrease(): void {\r\n if (this.GroupAmount > this.GroupMin) {\r\n this.GroupAmount--;\r\n }\r\n }\r\n GroupIncrease(): void {\r\n if (this.GroupAmount < this.GroupMax) {\r\n this.GroupAmount++;\r\n }\r\n }\r\n\r\n async mounted() {\r\n this.Lessons = await this.$props.lessons;\r\n this.Dates = await this.$props.dates;\r\n this.LessonsAndDatesLoaded = true;\r\n this.CategoryName = await this.$props.categoryName;\r\n\r\n this._instructorsService = this.GlobalService.Get(InstructorsSymbols.InstructorsService);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n }\r\n\r\n LessonsByDate(date: string) {\r\n let _this = this;\r\n let result = this.Lessons.filter(x => _this.DateHandler.Parse(x.Date, 'YYYY-MM-DDTHH:mm:SS').Format('YYYY-MM-DD') == date)\r\n return result;//DateHandlerSame\r\n }\r\n\r\n Lesson?: InstructorsPersonalLesson;\r\n LessonLoaded: boolean = false;\r\n LessonPriceLoaded: boolean = false;\r\n LessonTariffAvailable: boolean = false;\r\n\r\n PeopleAmountDialog: boolean = false;\r\n SessionAmount: number = 1;\r\n\r\n async ShowLessonPurchaseDialog(Id: number) {\r\n this.LessonPriceLoaded = false;\r\n this.LessonTariffAvailable = false;\r\n if (!this.IsBought(Id)) {\r\n this.Lesson = this.Lessons?.find(x => x.Id === Id);\r\n this.LessonLoaded = true;\r\n this.PeopleAmountDialog = true;\r\n\r\n if (this.Lesson != null) {\r\n let price = await this._instructorsService.GetPersonalLessonPriceAsync(this.Lesson);\r\n\r\n if (price.Success && price.Data !== null && price.Data !== undefined) {\r\n this.Lesson.PriceForOne = price.Data.PriceForOne;\r\n this.Lesson.PriceForSecond = price.Data.PriceForSecond != null ? price.Data.PriceForSecond : 0;\r\n this.LessonTariffAvailable = true;\r\n } \r\n } else {\r\n this._notificationService.Error(\"Ошибка\", \"Занятие не найдено\");\r\n }\r\n }\r\n this.LessonPriceLoaded = true; \r\n }\r\n\r\n FormatDate(dateString: string): string {\r\n return this.DateHandler.Parse(dateString, 'YYYY-MM-DD').Format('DD.MM.YYYY');\r\n }\r\n FormatTime(dateString: string): string {\r\n return this.DateHandler.Parse(dateString, 'HH:mm:SS').Format('HH:mm');\r\n }\r\n\r\n PurchaseLesson(): void {\r\n this.$emit('purchaseLesson', this.Lesson, this.SessionAmount);\r\n this.PeopleAmountDialog = false;\r\n }\r\n IsBought(lessonId: number): boolean {\r\n let boughtLesson = this.LessonsBought.find(x => x.Lesson.Id === lessonId);\r\n if (boughtLesson !== undefined)\r\n return true\r\n return false\r\n }\r\n}\r\n\r\nexport class WpInstructorsLessonsDictionary extends BaseSystemLocalizationDictionary {\r\n GuestsAmmount: string = '';\r\n ShorthandPeople: string = '';\r\n NoAvailableLessons: string = '';\r\n}","import Vue from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, {\r\n ILoyaltyProvider, LoyaltySymbols, IsdUserLoyalty, PersonIsdLoyaltyData, IContext,\r\n IsdLoyaltyQuestionnaire, IsdLoyaltyProgram, INotificationService, NotificationSymbols, AppSettings, BarcodeType, IdentitySymbols, ErrorTypes\r\n} from 'web-platform-core-ui';\r\nimport WpPageBaseComponent from '../../wp-page-base-component';\r\nimport { Ref } from 'vue-property-decorator';\r\n\r\nexport const wpIsdLoyaltyProps = Vue.extend({\r\n props: {\r\n ReturnRouteName: {\r\n type: String,\r\n default: ''\r\n } \r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-isd-loyalty.html\")\r\n})\r\nexport default class WpIsdLoyalty extends mixins(WpPageBaseComponent, Vue, wpIsdLoyaltyProps) {\r\n private pageRegRes: string = 'loaylty-reg-res.html';\r\n _context!: IContext;\r\n _provider!: ILoyaltyProvider;\r\n _notificationService!: INotificationService;\r\n\r\n IsdLoyaltyProgram!: IsdLoyaltyProgram;\r\n IsdUserLoyalty!: IsdUserLoyalty;\r\n\r\n ChangeEmailLoading: boolean = false;\r\n ChangeEmailFormValid: boolean = true;\r\n @Ref('ChangeEmailForm') ChangeEmailForm!: HTMLFormElement;\r\n\r\n PersonalDataStep: number = 1;\r\n LoyaltyId: number | undefined = 0;\r\n\r\n LoyaltyExist: boolean = false;\r\n LoyaltyRegister: boolean = false;\r\n\r\n BarcodeUrl: string = '';\r\n FirstName: string = '';\r\n LastName: string = '';\r\n SecondName: string = '';\r\n Phone: string = '';\r\n Birthdate: string = '';\r\n City: string = '';\r\n Gender: string = ''\r\n \r\n\r\n BirthdateMenu: boolean = false;\r\n CurrentDate: string = '';\r\n\r\n Balance: number = 0;\r\n Discount: string = '';\r\n\r\n ProgramName: string = '';\r\n RuleAddress: string = '';\r\n\r\n OrganizationSiteUrl: string = '';\r\n OrganizationName: string = '';\r\n OrganizationEmail: string = '';\r\n OrganizationPhone: string = '';\r\n\r\n WidgetUrl: string = '';\r\n\r\n Email: string = '';\r\n NewEmail: string = '';\r\n EditModal: boolean = false;\r\n\r\n get EmailRules() {\r\n return [\r\n (v: string) => !!v || 'Введите e-mail',\r\n (v: string) => /.+@.+\\..+/.test(v) || 'Введите e-mail',\r\n ]\r\n }\r\n\r\n created() {\r\n this.CurrentDate = this.DateHandler.Parse(new Date()).Format('YYYY-MM-DD');\r\n }\r\n\r\n async mounted() {\r\n await this.GetLoyalty();\r\n }\r\n\r\n async Registered(IsRegistered: boolean) {\r\n if (this.ReturnRouteName != '') {\r\n this.$router.push({ name: this.ReturnRouteName });\r\n }\r\n else {\r\n await this.GetLoyalty(); \r\n }\r\n }\r\n\r\n Edited(isdPersonData: PersonIsdLoyaltyData) {\r\n this.IsdUserLoyalty.FirstName = isdPersonData.FirstName;\r\n this.IsdUserLoyalty.LastName = isdPersonData.LastName;\r\n this.IsdUserLoyalty.SecondName = isdPersonData.SecondName;\r\n if (isdPersonData.Birthdate != null)\r\n this.IsdUserLoyalty.Birthdate = this.DateHandler.ParseToDate(isdPersonData.Birthdate, 'DD.MM.YYYY');\r\n this.IsdUserLoyalty.City = isdPersonData.City;\r\n if (isdPersonData.Gender != null && isdPersonData.Gender > 0 && isdPersonData.Gender < 3)\r\n this.IsdUserLoyalty.Gender = isdPersonData.Gender;\r\n\r\n this.FirstName = isdPersonData.FirstName;\r\n this.LastName = isdPersonData.LastName;\r\n this.SecondName = isdPersonData.SecondName;\r\n this.Birthdate = isdPersonData.Birthdate != null ? isdPersonData.Birthdate : '';\r\n this.City = isdPersonData.City;\r\n if (isdPersonData.Gender != null && isdPersonData.Gender > 0 && isdPersonData.Gender < 3)\r\n this.Gender = isdPersonData.Gender == 1 ? 'мужской' : 'женский';\r\n\r\n this._notificationService.SendSystemNotification('IsdLoyaltyDataChanged', this.IsdUserLoyalty);\r\n\r\n this.PersonalDataStep = 1;\r\n }\r\n\r\n\r\n async GetLoyalty() {\r\n this.PageLoading = true;\r\n this._context = this.GlobalService.Get(IdentitySymbols.Context);\r\n this._provider = this.GlobalService.Get(LoyaltySymbols.LoyaltyProvider);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n let getProgramInfoAsync = await this._provider.GetProgramInfoAsync(GlobalService.GetSettings().LoyaltyId);\r\n\r\n this.Email = this._context.CurrentIdentity.Username;\r\n this.NewEmail = this._context.CurrentIdentity.Username;\r\n\r\n if (getProgramInfoAsync.Data !== null && getProgramInfoAsync.Data !== undefined) {\r\n this.IsdLoyaltyProgram = getProgramInfoAsync.Data;\r\n\r\n if (getProgramInfoAsync.Data?.LoyaltyProgramId !== undefined) {\r\n this.LoyaltyId = getProgramInfoAsync.Data?.LoyaltyProgramId;\r\n }\r\n }\r\n else {\r\n this._notificationService.Error(\"Ошибка\",\r\n getProgramInfoAsync != null && getProgramInfoAsync.ErrorMessage != null ? getProgramInfoAsync.ErrorMessage : \"Произошла непредвиденная ошибка\");\r\n }\r\n\r\n let result = await this._provider.GetIsdUserLoyaltyAsync();\r\n\r\n if (result.Success) {\r\n if (result.Data != null) {\r\n this.IsdUserLoyalty = result.Data;\r\n this._notificationService.SendSystemNotification('IsdLoyaltyDataChanged', this.IsdUserLoyalty);\r\n this.LoyaltyExist = true;\r\n\r\n this.FirstName = result.Data.FirstName;\r\n this.LastName = result.Data.LastName;\r\n this.SecondName = result.Data.SecondName;\r\n this.Birthdate = result.Data.Birthdate != null ? result.Data.Birthdate.toString() : '';\r\n this.City = result.Data.City;\r\n if (result.Data.Gender != null && result.Data.Gender > 0 && result.Data.Gender < 3)\r\n this.Gender = result.Data.Gender == 1 ? 'мужской' : 'женский';\r\n this.Balance = result.Data.Balance;\r\n this.Discount = result.Data.Discount;\r\n this.Phone = result.Data.Phone;\r\n this.ProgramName = result.Data.ProgramName;\r\n this.OrganizationName = result.Data.OrganizationName;\r\n this.OrganizationEmail = result.Data.OrganizationEmail;\r\n this.OrganizationPhone = result.Data.OrganizationPhone;\r\n this.RuleAddress = result.Data.RuleAddress;\r\n this.BarcodeUrl = `https://mailer.moipass.ru/barcode/${this.GetStringBarcodeType(result.Data.BarcodeType)}Img/?v=${result.Data.CardNumber}`;\r\n } else {\r\n this.LoyaltyRegister = true;\r\n }\r\n }\r\n this.PageLoading = false;\r\n }\r\n\r\n GetStringBarcodeType(barcodeType: BarcodeType) {\r\n if (barcodeType == BarcodeType.NoBarcode) return 'NoBarcode'\r\n else if (barcodeType == BarcodeType.Code128B) return 'Code128B'\r\n else if (barcodeType == BarcodeType.Interleaved2of5) return 'Interleaved2of5'\r\n else return 'QRCode';\r\n }\r\n\r\n FormatDate(date: string): string {\r\n if (date !== null && date !== '') {\r\n return this.DateHandler.Parse(date, 'YYYY-MM-DDTHH:mm:SS').Format('DD.MM.YYYY');\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n FormatPrice(Price: number): string {\r\n return parseFloat(Price.toString()).toFixed(2).toString().replace(',', '.');\r\n }\r\n\r\n\r\n openRule() {\r\n if (this.RuleAddress !== '') {\r\n try {\r\n openInBrowser(this.RuleAddress);\r\n } catch {\r\n window.open(this.RuleAddress, \"_blank\");\r\n }\r\n }\r\n }\r\n\r\n callTo() {\r\n if (this.OrganizationPhone !== '') {\r\n try {\r\n openInBrowser(`callto:${this.OrganizationPhone}`);\r\n } catch {\r\n window.location.href = `callto:${this.OrganizationPhone}`;\r\n }\r\n }\r\n }\r\n\r\n mailTo() {\r\n if (this.OrganizationEmail !== '') {\r\n try {\r\n openInBrowser(`mailto:${this.OrganizationEmail}`);\r\n } catch {\r\n window.location.href = `mailto:${this.OrganizationEmail}`;\r\n }\r\n }\r\n }\r\n\r\n\r\n async ChangeEmailFormSubmit(e: any) {\r\n e.preventDefault();\r\n await this.ChangeEmail();\r\n }\r\n\r\n\r\n async ChangeEmail() {\r\n if (!this.ChangeEmailForm.validate())\r\n return;\r\n\r\n this.ChangeEmailLoading = true;\r\n\r\n if (this.LoyaltyId != null) {\r\n let result = await this._provider.ChangeEmailAsync(this.LoyaltyId, this.IsdUserLoyalty.PersId, this.NewEmail);\r\n if (result.Success) {\r\n this.Email = this.NewEmail;\r\n\r\n this._context.SignOut();\r\n } else {\r\n if (result.ErrorType == ErrorTypes.InvalidData) {\r\n this._notificationService.Error('error', 'Такой email зарегистрирован на другого пользователя');\r\n } else {\r\n this._notificationService.Error('error', result.ErrorMessage ?? 'Произошла непредвиденная ошибка');\r\n }\r\n }\r\n }\r\n\r\n this.ChangeEmailLoading = false;\r\n }\r\n\r\n ChangeEmailDialogClose() {\r\n this.NewEmail = this.Email;\r\n this.EditModal = false;\r\n }\r\n} ","module.exports = \"
\\r\\n
\\r\\n
\\r\\n {{seance.Name}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n x.SectorCode === item.SectorCode).FreePlaces\\\"\\r\\n :MinPrice=\\\"SectorFreePlacesArray.find(x => x.SectorCode === item.SectorCode).MinPrice\\\"\\r\\n :MaxPrice=\\\"SectorFreePlacesArray.find(x => x.SectorCode === item.SectorCode).MaxPrice\\\"\\r\\n @Selected=\\\"SectorSelected\\\">\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\";","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{ Terms.DialogBtnShow }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ $data._formatDateIsoToRu(Dates[0]) }} - {{ $data._formatDateIsoToRu(Dates[1]) }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.NoLessonsAvailable }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\";","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ $data._formatPrice(CartItem.Price) }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n mdi-trash-can-outline\\r\\n \\r\\n \\r\\n mdi-minus\\r\\n {{ CartItem.Count }}\\r\\n mdi-plus\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\";","export enum OrderItemType {\r\n Tariff = 1,\r\n TariffBarcode = 2,\r\n TariffPersonification = 3,\r\n TariffBarcodePesonification = 4,\r\n TariffRewritable = 5,\r\n ArenaTicket = 6,\r\n TariffRewritablePesonification = 7\r\n}","export enum ContractServicePeriod {\r\n spAny = 0,\r\n spWeek = 1,\r\n spMonth1 = 2,\r\n spMonth2 = 3,\r\n spMonth3 = 4,\r\n spMonth6 = 5,\r\n spYear = 6,\r\n spDays = 7\r\n}","import { AppSettings } from './../Global/app-settings';\r\n\r\nexport default class BenefitAppSettings extends AppSettings {\r\n BenefitDocument: string = '';\r\n}","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\";","module.exports = \"
\\r\\n \\r\\n \\r\\n {{ Article.Title }}\\r\\n \\r\\n
{{ ArticleDate }}
\\r\\n
{{ Article.Content }}
\\r\\n
\\r\\n\";","module.exports = \"
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ $data._formatDateIsoToRu(date) }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n x.FreeMembers == 0)\\\" class=\\\"grey lighten-3\\\" disabled>\\r\\n \\r\\n {{ Terms.NoAvailableLessons }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ Lesson.SkillType }}, {{ CategoryName }}
{{ $data._formatDateIsoToRu(Lesson.Date) }}, {{ $data._formatTimeIsoToRu(Lesson.BeginTime) }} - {{ $data._formatTimeIsoToRu(Lesson.EndTime) }}
\\r\\n \\r\\n \\r\\n mdi-account-multiple-plus {{ Terms.GuestsAmmount }}:
\\r\\n
\\r\\n \\r\\n \\r\\n mdi-minus\\r\\n \\r\\n {{ GroupAmount }}\\r\\n \\r\\n mdi-plus\\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n {{ $data._formatPrice(Price) }}\\r\\n mdi-cancel\\r\\n

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericCancel }}\\r\\n {{ Terms.GenericBuy }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\";","import Member from '../Questionnaire/member';\r\n\r\nexport default class PersonificationApiOrderItem {\r\n Id: number = 0;\r\n PersonId: number = 0;\r\n FirstName: string = '';\r\n LastName: string = '';\r\n SecondName: string = '';\r\n BirthDate: string = '';\r\n Email: string = '';\r\n Phone: string = '';\r\n Gender: string = '';\r\n IsdTariffpersonification: Array = [];\r\n\r\n\r\n get IsValid(): boolean {\r\n let secondnameRequired = this.IsdTariffpersonification.find(x => x.Name == 'SecondName');\r\n let secondnameEnabled = this.IsdTariffpersonification.some(x => x.Name == 'SecondName');\r\n\r\n let birthdateRequired = this.IsdTariffpersonification.find(x => x.Name == 'Birthdate');\r\n let birthdateEnabled = this.IsdTariffpersonification.some(x => x.Name == 'Birthdate');\r\n\r\n let genderRequired = this.IsdTariffpersonification.find(x => x.Name == 'Gender');\r\n let genderEnabled = this.IsdTariffpersonification.some(x => x.Name == 'Gender');\r\n\r\n let regexp: RegExp = /^[a-zA-Zа-яёА-ЯЁ\\-]+( [a-zA-Zа-яёА-ЯЁ\\-]+)*$/;\r\n\r\n if ((secondnameEnabled && secondnameRequired?.Required) && (birthdateEnabled && birthdateRequired?.Required) && (genderEnabled && genderRequired?.Required)) {\r\n return regexp.test(this.FirstName) && regexp.test(this.LastName) && regexp.test(this.SecondName) && this.Gender != '' && this.BirthDate != '';\r\n }\r\n\r\n if ((secondnameEnabled && secondnameRequired?.Required) && (birthdateEnabled && birthdateRequired?.Required) && !(genderEnabled && genderRequired?.Required)) {\r\n return regexp.test(this.FirstName) && regexp.test(this.LastName) && regexp.test(this.SecondName) && this.BirthDate != '';\r\n }\r\n\r\n if ((secondnameEnabled && secondnameRequired?.Required) && !(birthdateEnabled && birthdateRequired?.Required) && (genderEnabled && genderRequired?.Required)) {\r\n return regexp.test(this.FirstName) && regexp.test(this.LastName) && regexp.test(this.SecondName) && this.Gender != '';\r\n }\r\n\r\n if (!(secondnameEnabled && secondnameRequired?.Required) && (birthdateEnabled && birthdateRequired?.Required) && (genderEnabled && genderRequired?.Required)) {\r\n return regexp.test(this.FirstName) && regexp.test(this.LastName) && this.Gender != '' && this.BirthDate != '';\r\n }\r\n\r\n if (!(secondnameEnabled && secondnameRequired?.Required) && !(birthdateEnabled && birthdateRequired?.Required) && (genderEnabled && genderRequired?.Required)) {\r\n return regexp.test(this.FirstName) && regexp.test(this.LastName) && this.Gender != '';\r\n }\r\n\r\n if (!(secondnameEnabled && secondnameRequired?.Required) && (birthdateEnabled && birthdateRequired?.Required) && !(genderEnabled && genderRequired?.Required)) {\r\n return regexp.test(this.FirstName) && regexp.test(this.LastName) && this.BirthDate != '';\r\n }\r\n\r\n if ((secondnameEnabled && secondnameRequired?.Required) && !(birthdateEnabled && birthdateRequired?.Required) && !(genderEnabled && genderRequired?.Required)) {\r\n return regexp.test(this.FirstName) && regexp.test(this.LastName) && regexp.test(this.SecondName);\r\n }\r\n return regexp.test(this.FirstName) && regexp.test(this.LastName);\r\n }\r\n}","import { TennisSymbols } from './symbols';\r\nimport TennisClubService from './tennis-club-service';\r\nimport { TennisSoldContract } from './tennis-sold-contract';\r\nimport LTClubAppSettings from './lt-club-app-settings';\r\nimport LTTariff from './lt-tariff';\r\nimport LTTariffGroup from './lt-tariff-group';\r\n\r\nexport {\r\n TennisSymbols,\r\n TennisClubService,\r\n TennisSoldContract,\r\n LTClubAppSettings,\r\n LTTariffGroup,\r\n LTTariff\r\n}","import { injectable, inject } from 'inversify';\r\n\r\nimport { IOrderProvider, Order, OrderDetails, OrderProvider } from './../Order';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { FiltringResult, ActionResult, ErrorTypes } from './../Common';\r\nimport { IdentitySymbols, IContext } from './../Identity';\r\nimport { AppSettings } from '../Global/app-settings';\r\nimport GlobalService from '..';\r\n\r\n@injectable()\r\nexport default class LuzhParkingOrderProvider extends OrderProvider {\r\n protected _context!: IContext;\r\n protected _settings!: AppSettings;\r\n\r\n constructor(@inject(IdentitySymbols.Context) context: IContext) {\r\n super(context);\r\n this._settings = GlobalService.GetSettings();\r\n }\r\n\r\n async GetOrderAsync(id: number): Promise> {\r\n let client!: RestClient;\r\n if (this._context.CurrentIdentity.IsAuthentificated) {\r\n client = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": this._settings.SessionId\r\n }\r\n });\r\n } else {\r\n client = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": `${this._settings.SiteId}`,\r\n \"SessionId\": this._settings.SessionId\r\n }\r\n });\r\n }\r\n\r\n let response = await client.get>(`/account/api/orders/${id}`);\r\n console.log(response);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n}\r\n\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n}","import Vue, { VueConstructor } from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { ArenaSector, BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\nimport { Prop, DefaultProps } from 'vue/types/options';\r\n\r\nexport const wpArenaSectorItemProp = Vue.extend({\r\n props: {\r\n Sector: Object as Prop,\r\n FreePlaces: Number,\r\n MinPrice: Number,\r\n MaxPrice: Number\r\n }\r\n}) \r\n\r\n@Component({\r\n template: require(\"./wp-arena-sector-item.html\")\r\n})\r\nexport default class WpArenaSectorItem extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, Vue, wpArenaSectorItemProp) {\r\n\r\n Selected() {\r\n this.$emit(\"Selected\", this.Sector);\r\n }\r\n}\r\n\r\nexport class WpArenaSectorItemDictionary extends BaseSystemLocalizationDictionary {\r\n TicketPrice: string = ''; \r\n PricesLoading: string = '';\r\n SeatsLoading: string = '';\r\n CurrencyIcon: string = '';\r\n SeatsSingular: string = '';\r\n SeatsPlural: string = '';\r\n GenericRemaining: string = '';\r\n}","export default class ParkingSessionInfo {\r\n SessionId: string = \"\";\r\n State: string = \"\"\r\n Cost: number = 0;\r\n StartTime: string = \"\";\r\n CostTime: string = \"\";\r\n PaymentTimeout: string = \"\";\r\n LeavingTimeout: string = \"\";\r\n Duration: string = \"\";\r\n PaidSum: number = 0;\r\n}","export const SyntechSymbols = {\r\n SyntechService: Symbol.for(\"SyntechService\"),\r\n SyntechProvider: Symbol.for(\"SyntechProvider\")\r\n}","import { injectable, inject } from 'inversify';\r\n\r\nimport { ActionResult } from '../Common';\r\nimport { IContext, IdentitySymbols } from '../Identity';\r\nimport { SyntechSymbols } from './symbols';\r\nimport ISyntechProvider from './i-syntech-provider';\r\nimport ISyntechService from './i-syntech-service';\r\nimport ParkingSessionInfo from './parking-session-info';\r\nimport Tariff from '../Tariffs/tariff';\r\n\r\n@injectable()\r\nexport default class DefaultSyntechService implements ISyntechService {\r\n protected readonly _context: IContext;\r\n protected readonly _provider: ISyntechProvider;\r\n\r\n constructor(@inject(SyntechSymbols.SyntechProvider) provider: ISyntechProvider,\r\n @inject(IdentitySymbols.Context) context: IContext) {\r\n this._provider = provider;\r\n this._context = context;\r\n }\r\n\r\n async GetSessionInfoAsync(ticket: string): Promise> {\r\n return await this._provider.GetSessionInfoAsync(ticket);\r\n }\r\n\r\n async GetTariffsAsync(): Promise>> {\r\n let result = await this._provider.GetTariffsAsync();\r\n\r\n return result;\r\n };\r\n}","import { CartItem, CartItemTypes } from './../Cart';\r\nimport { ReservationItem, ActionResult, ReservationItemTypes } from './..';\r\n\r\nexport default class SyntechParkingCartItem extends CartItem {\r\n private _type: CartItemTypes = CartItemTypes.SyntechParking;\r\n\r\n private _tariffId: number = 0;\r\n private _sessionId: string = '';\r\n private _price: number = 0;\r\n private _ticket: string = '';\r\n\r\n get IsAvailable(): boolean {\r\n return true;\r\n }\r\n get Info(): string {\r\n return `������ �������� ${this._ticket}`;\r\n }\r\n get Type(): CartItemTypes {\r\n return this._type;\r\n }\r\n get Price(): number {\r\n return this._price;\r\n }\r\n get Count(): number {\r\n return 1;\r\n }\r\n get MetricsId(): any | undefined {\r\n return this._ticket;\r\n }\r\n public get Dates(): Array {\r\n return [];\r\n }\r\n public get AdditionalInfo(): any {\r\n return {};\r\n }\r\n get IsCanIncreaseCount(): boolean {\r\n return false;\r\n }\r\n get IsCanReduceCount(): boolean {\r\n return false;\r\n }\r\n\r\n constructor(ticket: string, sessionId: string, price: number, tariffId: number) {\r\n super();\r\n this._sessionId = sessionId;\r\n this._tariffId = tariffId;\r\n this._ticket = ticket;\r\n this._price = price;\r\n\r\n }\r\n\r\n IncreaseCount(): ActionResult {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ReduceCount(): ActionResult {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n IsConflictItem(item: CartItem): boolean {\r\n return item.Type != CartItemTypes.MarketBill;\r\n }\r\n IsEqualsItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n CombineItem(item: CartItem): ActionResult {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n GetReservationItem(): ReservationItem[] {\r\n return [new ReservationItem(1, ReservationItemTypes.SyntechParking, this._tariffId, null, null, null, this._ticket, null, null, null)];\r\n }\r\n\r\n async RemoveItem(): Promise {\r\n return ActionResult.Success();\r\n }\r\n}","module.exports = \"\\r\\n \\r\\n

{{ OrderItem.Info }}

\\r\\n \\r\\n {{ OrderItem.AdditionalInfo.Info }}\\r\\n \\r\\n \\r\\n \\r\\n mdi-trash-can-outline {{ Terms.GenericDecline }}\\r\\n \\r\\n {{ Terms.GenericTotalSum }}: {{ $data._formatPrice(OrderItem.Price) }}{{ $data._formatPrice(OrderItem.TotalSum) }}\\r\\n \\r\\n
\";","import Site from './site';\r\nimport { MarketClient } from '../Market';\r\nimport { Localization } from '../Localization';\r\nimport { WidgetType } from './widget-type';\r\nimport { SaleTermsType } from './sale-terms-type';\r\nimport { createGuid } from '../Utility';\r\n\r\nexport class AppSettings {\r\n protected _hashParams: any;\r\n\r\n SibId: string = \"\";\r\n GUID: string = \"\";\r\n\r\n PlaceId?: number;\r\n SiteId: number = 0;\r\n SessionId: string = \"\";\r\n CartMaxItems: number = 6;\r\n Skills: Array = [];\r\n Categories: Array = [];\r\n NoSkills: boolean = false;\r\n NoCategories: boolean = false;\r\n NoLocations: boolean = false;\r\n NoTariffs: boolean = false;\r\n NoPromo: boolean = false;\r\n NoCoach: boolean = false;\r\n Nocalendar: boolean = false;\r\n ResetCart: boolean = false;\r\n ForceMedia: string = '';\r\n Mindate?: string;\r\n Maxdate?: string;\r\n Forcedate?: string;\r\n Disableddates: Array = [];\r\n OnlyTab: Array = [];\r\n ForceTab: string = '';\r\n OrderComment: string = '';\r\n GroupId?: number;\r\n TariffsSeancesFilter: boolean = false;\r\n TariffsId: Array = [];\r\n BundlesId: Array = [];\r\n RewriteTariffsId: Array = [];\r\n LessonsTariffsId: Array = [];\r\n // ������ �������� ��� ������������ (�������� id:206 = ���� �����). ������������ � WpInstructors\r\n // ��� ������ ������� - ��������� ��������. ��������� ��������� � ������ http://redmine.isd.su/issues/8410\r\n GroupLessonsTariffsId: Array = [];\r\n\r\n CoachId?: number;\r\n LessonsLocation?: number;\r\n BundlesLessonsTariffsId: Array = [];\r\n ForceSeanceId?: number;\r\n ForceSectorId?: number;\r\n GroupLessonsSkillsTariffs: any = {};\r\n MultiDaysLessonsSkillsTariffs: any = {};\r\n PersonalLessonsSkillsTariffs: any = {};\r\n CurrentSite?: Site;\r\n LoyaltyId: number = 0;\r\n CurrentMarketClient?: MarketClient;\r\n MarketEmployeeId?: number;\r\n MarketBillId?: number;\r\n Locale: string = '';\r\n DisableMultipleSeances: boolean = false;\r\n IsMobile: boolean = false;\r\n Minimap: boolean = true;\r\n MinimapAspect: number = 0.2;\r\n RequiredLoyalty: boolean = false;\r\n VKClientId: string = '';\r\n ClubSiteId: number = 0;\r\n\r\n\r\n //MobileApp settings\r\n public PushToken: string = '';\r\n public DeviceId: string = '';\r\n public Platform: string = '';\r\n public BuildVersion: number = 0;\r\n\r\n\r\n public ParseHashParams(ignoreWindowName: boolean = false): boolean {\r\n let paramsHash = decodeURI(location.hash.replace('#', ''));\r\n return this.HandleJson(paramsHash, ignoreWindowName);\r\n };\r\n\r\n public HandleJson(paramsHash: string, ignoreWindowName: boolean = false): boolean {\r\n try {\r\n this._hashParams = JSON.parse(paramsHash);\r\n\r\n this.SiteId = this._hashParams.id;\r\n this.GUID = this._hashParams.GUID;\r\n this.SessionId = this._hashParams.SessionId; \r\n\r\n if ((this.SessionId == null || this.SessionId.trim() == \"\" ||\r\n !window.name.includes(this.GUID)) && !ignoreWindowName)\r\n this.SessionId = createGuid();\r\n\r\n if (\"placeid\" in this._hashParams) this.PlaceId = this._hashParams.placeid;\r\n if (\"skills\" in this._hashParams) this.Skills = this._hashParams.skills;\r\n if (\"categories\" in this._hashParams) this.Categories = this._hashParams.categories;\r\n if (\"noskills\" in this._hashParams) this.NoSkills = this._hashParams.noskills;\r\n if (\"nocategories\" in this._hashParams) this.NoCategories = this._hashParams.nocategories;\r\n if (\"notariffs\" in this._hashParams) this.NoTariffs = this._hashParams.notariffs;\r\n if (\"nolocation\" in this._hashParams) this.NoLocations = this._hashParams.nolocation;\r\n if (\"nopromo\" in this._hashParams) this.NoPromo = this._hashParams.nopromo;\r\n if (\"nocoach\" in this._hashParams) this.NoCoach = this._hashParams.nocoach;\r\n if (\"nocalendar\" in this._hashParams) this.Nocalendar = this._hashParams.nocalendar;\r\n if (\"resetcart\" in this._hashParams) this.ResetCart = this._hashParams.resetcart;\r\n if (\"mindate\" in this._hashParams) this.Mindate = this._hashParams.mindate;\r\n if (\"maxdate\" in this._hashParams) this.Maxdate = this._hashParams.maxdate;\r\n if (\"forcedate\" in this._hashParams) this.Forcedate = this._hashParams.forcedate;\r\n if (\"disableddates\" in this._hashParams) this.Disableddates = this._hashParams.disableddates;\r\n if (\"forcemedia\" in this._hashParams) this.ForceMedia = this._hashParams.forcemedia;\r\n if (\"tariffsseancesfilter\" in this._hashParams) this.TariffsSeancesFilter = this._hashParams.tariffsseancesfilter;\r\n if (\"groupid\" in this._hashParams && this._hashParams.groupid != null) this.GroupId = this._hashParams.groupid;\r\n if (\"rtariffsid\" in this._hashParams) this.RewriteTariffsId = this._hashParams.rtariffsid;\r\n if (\"rewritetariffsid\" in this._hashParams) this.RewriteTariffsId = this._hashParams.rewritetariffsid;\r\n if (\"lessonstariffsid\" in this._hashParams) this.LessonsTariffsId = this._hashParams.lessonstariffsid;\r\n\r\n // ������� ������� ��� ������������\r\n if (\"grouplessonstariffsid\" in this._hashParams) this.GroupLessonsTariffsId = this._hashParams.grouplessonstariffsid;\r\n\r\n if (\"bundleslessonstariffsid\" in this._hashParams) this.BundlesLessonsTariffsId = this._hashParams.bundleslessonstariffsid;\r\n if (\"grouplessonsskillstariffs\" in this._hashParams) this.GroupLessonsSkillsTariffs = this._hashParams.grouplessonsskillstariffs;\r\n if (\"multidayslessonsskillstariffs\" in this._hashParams) this.MultiDaysLessonsSkillsTariffs = this._hashParams.multidayslessonsskillstariffs;\r\n if (\"personallessonsskillstariffs\" in this._hashParams) this.PersonalLessonsSkillsTariffs = this._hashParams.personallessonsskillstariffs;\r\n if (\"coachid\" in this._hashParams && this._hashParams.coachid != null && this._hashParams.coachid != \"\") this.CoachId = this._hashParams.coachid;\r\n if (\"forcetab\" in this._hashParams) this.ForceTab = this._hashParams.forcetab;\r\n if (\"ordercomment\" in this._hashParams) this.OrderComment = this._hashParams.ordercomment;\r\n if (\"marketemployeeid\" in this._hashParams) this.MarketEmployeeId = this._hashParams.marketemployeeid;\r\n if (\"marketbillid\" in this._hashParams) this.MarketBillId = this._hashParams.marketbillid;\r\n if (\"locale\" in this._hashParams) this.Locale = this._hashParams.locale;\r\n if (\"disablemultipleseances\" in this._hashParams) this.DisableMultipleSeances = this._hashParams.disablemultipleseances;\r\n if (\"ismobile\" in this._hashParams) this.IsMobile = this._hashParams.ismobile;\r\n if (\"minimap\" in this._hashParams) this.Minimap = this._hashParams.minimap;\r\n if (\"minimapaspect\" in this._hashParams) this.MinimapAspect = this._hashParams.minimapaspect;\r\n if (\"requiredloyalty\" in this._hashParams) this.RequiredLoyalty = this._hashParams.requiredloyalty;\r\n\r\n if ('cartmaxitems' in this._hashParams && this._hashParams.cartmaxitems > 0 && this._hashParams.cartmaxitems <= 60)\r\n this.CartMaxItems = this._hashParams.cartmaxitems\r\n\r\n if ('tariffsid' in this._hashParams) {\r\n if (this._hashParams.tariffsid === false || this._hashParams.tariffsid === 'false')\r\n this.TariffsId = [-1];\r\n else\r\n this.TariffsId = this._hashParams.tariffsid;\r\n };\r\n\r\n if ('bundlesid' in this._hashParams) {\r\n if (this._hashParams.bundlesid === false || this._hashParams.bundlesid === 'false')\r\n this.BundlesId = [-1];\r\n else\r\n this.BundlesId = this._hashParams.bundlesid;\r\n };\r\n\r\n if ('lessonslocations' in this._hashParams && this._hashParams.lessonslocations != null && this._hashParams.lessonslocations != '')\r\n this.LessonsLocation = this._hashParams.lessonslocations;\r\n\r\n if ('onlytab' in this._hashParams) {\r\n let tabsParam = typeof this._hashParams.onlytab == 'string' ? [this._hashParams.onlytab] : this._hashParams.onlytab;\r\n this.OnlyTab = tabsParam;\r\n };\r\n\r\n // http://redmine.isd.su/issues/7107\r\n if ('forceseanceid' in this._hashParams) this.ForceSeanceId = this._hashParams.forceseanceid;\r\n if ('forcesectorid' in this._hashParams) this.ForceSectorId = this._hashParams.forcesectorid;\r\n\r\n if ('clubsiteid' in this._hashParams) this.ClubSiteId = this._hashParams.clubsiteid;\r\n\r\n //MobileApp settings \r\n if ('platform' in this._hashParams) this.Platform = this._hashParams.platform;\r\n if ('deviceid' in this._hashParams) this.DeviceId = this._hashParams.deviceid;\r\n if ('pushtoken' in this._hashParams) this.PushToken = this._hashParams.pushtoken;\r\n if ('ver' in this._hashParams) this.BuildVersion = this._hashParams.ver;\r\n\r\n return true;\r\n } catch (ex) {\r\n console.error(ex);\r\n return false;\r\n };\r\n };\r\n\r\n get SaleTermsType(): SaleTermsType {\r\n if (this._hashParams != null && 'saletermstype' in this._hashParams) {\r\n let type = (this._hashParams.saletermstype as string).toLocaleLowerCase();\r\n try {\r\n return type;\r\n } catch {\r\n return SaleTermsType.Default;\r\n };\r\n } else {\r\n return SaleTermsType.Default;\r\n };\r\n };\r\n\r\n get WidgetType(): WidgetType {\r\n if (this._hashParams != null && 'type' in this._hashParams) {\r\n let type = (this._hashParams.type as string).toLocaleLowerCase();\r\n try {\r\n return type;\r\n } catch {\r\n return WidgetType.Instant;\r\n };\r\n } else {\r\n return WidgetType.Instant;\r\n };\r\n };\r\n\r\n get Localization(): Localization {\r\n if (this._hashParams != null && 'locale' in this._hashParams) {\r\n let locale = (this._hashParams.locale as string).toLocaleLowerCase();\r\n try {\r\n return locale;\r\n } catch {\r\n return Localization.RU;\r\n };\r\n } else {\r\n return Localization.RU;\r\n };\r\n };\r\n\r\n\r\n get IdentityServerUrl(): string {\r\n if (window.location.host.toLowerCase().indexOf('test') == -1 &&\r\n window.location.host.toLowerCase().indexOf('localhost') == -1) {\r\n return 'https://idsrv.moipass.ru/';\r\n } else {\r\n return 'https://idsrv-test.moipass.ru/';\r\n };\r\n };\r\n\r\n get IsDevVersion() {\r\n return window.location.host.toLowerCase().indexOf('test') != -1 || window.location.host.toLowerCase().indexOf('localhost') != -1;\r\n };\r\n}","import { injectable } from 'inversify';\r\n\r\nimport ActionResult from '../Common/action-result';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport GlobalService from './../Global/global-service';\r\nimport { ErrorTypes } from './../Common/error-types';\r\nimport { MarketCompany, MarketSchedule, MarketClient, MarketBill, MarketBillInitializeResult } from '.';\r\nimport IMarketProvider from './i-market-provider';\r\nimport MarketTariffCartItem from './market-tariff-cart-item';\r\nimport { OrderSale } from '../Sale';\r\n\r\n@injectable()\r\nexport default class MarketProvider implements IMarketProvider {\r\n async GetRulesAsync(): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/websale/api/market/`);\r\n\r\n if (response == null || response.result == null)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n if (response.result.Data?.Error)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, new MarketCompany(), response.result.Data?.Message);\r\n\r\n let data: MarketCompany = new MarketCompany();\r\n if (response.result.Data)\r\n data = response.result.Data[0] as MarketCompany;\r\n\r\n return ActionResult.SuccessData(data);\r\n }\r\n\r\n async GetRuleScheduleAsync(id: number, date: string): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/websale/api/market/schedule/${id}/?date=${date}`);\r\n\r\n if (response == null || response.result == null)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n if (response.result.Data?.Error)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, new MarketSchedule(), response.result.Data?.Message);\r\n\r\n let data: MarketSchedule = new MarketSchedule();\r\n if (response.result.Data)\r\n data = response.result.Data as MarketSchedule;\r\n\r\n return ActionResult.SuccessData(data);\r\n }\r\n\r\n async InitializeByBill(billId: number): Promise> {\r\n let settings = GlobalService.GetSettings();\r\n\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": settings.SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/market/bill/initialize?id=${billId}`);\r\n\r\n if (response == null || response.result == null || response.result.Data == null)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n let data = response.result.Data as MarketBillInitializeResult;\r\n if (data == null)\r\n return ActionResult.FailedData(ErrorTypes.NotFoundData, data, response.result.Data?.Message);\r\n\r\n return ActionResult.SuccessData(data);\r\n }\r\n\r\n async UnreservateTariffAsync(itemId: number): Promise {\r\n let settings = GlobalService.GetSettings();\r\n\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": settings.SiteId,\r\n \"SessionId\": settings.SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/websale/api/market/unreservatetariff/${itemId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData();\r\n }\r\n\r\n async ReservateTariffAsync(marketTariffCartItem: MarketTariffCartItem): Promise> {\r\n let settings = GlobalService.GetSettings();\r\n\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": settings.SiteId,\r\n \"SessionId\": settings.SessionId\r\n }\r\n });\r\n\r\n let data = {\r\n RuleId: marketTariffCartItem.Rule.id,\r\n Date: marketTariffCartItem.Rule.Quantity[0] == 1 && marketTariffCartItem.Rule.Duration.length > 0 ? marketTariffCartItem.Period.StartDateTime[0] : null,\r\n ClientId: marketTariffCartItem.Client.Id,\r\n OrderId: marketTariffCartItem.OrderId,\r\n ExternalId: marketTariffCartItem.TempId,\r\n EmployeeId: marketTariffCartItem.Employee?.id\r\n };\r\n\r\n let response = await client.create>(`/websale/api/market/reservate`, data);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async GetClientAsync(phone: string): Promise> {\r\n let settings = GlobalService.GetSettings();\r\n\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": settings.SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/websale/api/market/client/?phone=${phone}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n}\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n}\r\n","export default class WpCorePrefixes {\r\n static Error = Symbol.for(\"WpError\");\r\n static News = Symbol.for(\"WpNews\");\r\n static WidgetStyle = Symbol.for(\"WpWidgetStyle\");\r\n static Tariff = Symbol.for(\"WpTariff\");\r\n static ArenaSeance = Symbol.for(\"WpArenaSeance\");\r\n static SiteDictionary = Symbol.for(\"WpSiteDictionary\");\r\n static ArenaSectorNames = Symbol.for(\"WpArenaSectorNames\");\r\n static ArenaTariffOptionNames = Symbol.for(\"WpArenaTariffOptionNames\");\r\n static LoyaltyProgram = Symbol.for(\"WpLoyaltyProgram\");\r\n static DiscountProgram = Symbol.for(\"WpDiscountProgram\");\r\n static TariffBundle = Symbol.for(\"WpTariffBundle\");\r\n static InstructorsTariffOptionNames = Symbol.for(\"WpInstructorsTariffOptionNames\");\r\n static InstructorsSkillsNames = Symbol.for(\"WpInstructorsSkillsNames\");\r\n static InstructorsLessonsLocation = Symbol.for(\"WpInstructorsLessonsLocation\");\r\n static ClubContract = Symbol.for(\"WpClubContract\");\r\n static Intructors = Symbol.for(\"WpIntructors\");\r\n static SiteAdditionalSettings = Symbol.for(\"WpAdditionalSiteSettings\");\r\n static WidgetOpenParameters = Symbol.for(\"WpWidgetOpenParameters\");\r\n static AchievementGift = Symbol.for(\"WpAchievementGift\");\r\n};","import './wp-sale.scss';\r\n\r\nimport Vue, { PropOptions } from 'vue';\r\nimport WpPageBaseComponent from './../wp-page-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, {\r\n ISaleService, SaleSymbols, IContext, IdentitySymbols,\r\n IdentityChangedEventArgs, OrderSale, ICartService, CartSymbols,\r\n Cart, OrderStatus, INotificationService, NotificationSymbols, AppSettings,\r\n PersonificationApiOrderItem, ConnectionType, Order, ErrorTypes, ITariffCapacityService, TariffSymbols, ITariffService, LockOrderInfo,\r\n OrderItemType, IMetricsService, MetricsSymbols, IsdUserLoyalty, CartItemTypes, ILoyaltyProvider, LoyaltySymbols, PaymentSystemType, PaymentSystem, NotificationEventArgs, NotificationTypes, PayAccountPayment, DiscountType\r\n} from 'web-platform-core-ui';\r\nimport { Watch, Ref } from 'vue-property-decorator';\r\nimport { MetricsEvents } from '../metrics-events-symbols';\r\nimport { DefaultProps } from 'vue/types/options';\r\nimport { VueConstructor } from 'vue/types/umd';\r\nimport BaseUILocalizationDictionary from './../Localization/base-ui-localization-terms';\r\n\r\nexport const wpSaleProps = Vue.extend({\r\n props: {\r\n IframePurchase: {\r\n type: Boolean,\r\n default: false\r\n }\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-sale.html\")\r\n})\r\nexport default class WpSale extends mixins, DefaultProps, VueConstructor>(WpPageBaseComponent, wpSaleProps, Vue) {\r\n protected _context!: IContext;\r\n protected _saleService!: ISaleService;\r\n protected _cartService!: ICartService;\r\n protected _notificationService!: INotificationService;\r\n protected _metricsService!: IMetricsService;\r\n\r\n protected _redirectToAuth: boolean = false;\r\n\r\n @Ref('WpPayConfirmComponent')\r\n protected WpPayConfirmComponent?: any;\r\n\r\n Type: ConnectionType = ConnectionType.Tariff;\r\n\r\n Settings!: AppSettings;\r\n IsdUserLoyalty?: IsdUserLoyalty;\r\n\r\n OnlyTab: Array = [];\r\n ForceTab: string = '';\r\n SalesTab: string = 'service';\r\n CurrentSalesTab: string = 'service';\r\n\r\n ShowSteps: boolean = true;\r\n TimeLeftLoading: boolean = false;\r\n BackLoading: boolean = false;\r\n NextLoading: boolean = false;\r\n ScrollFab: boolean = false;\r\n SbpDialog: boolean = false;\r\n SbpLink: string = 'https://sbp.nspk.ru/api/img/QR_with_logo.png';\r\n SbpQRLink: string = '';\r\n\r\n\r\n SelectedAccountPayment: boolean = false;\r\n IsConfirmPhoneForAccountPayment: boolean = false;\r\n ConfirmPhoneForAccountPaymentId: number = 0;\r\n AccountPaymentSecurityToken: string = '';\r\n AccountPaymentUserPhone: string = '';\r\n DataForPayAccountPayment?: PayAccountPayment;\r\n\r\n LoyaltyDialog: boolean = false;\r\n HasPersonification: boolean = false;\r\n LoadingOverlay: boolean = false;\r\n OrderId: number = 0;\r\n Bank: boolean = false;\r\n PersonificationItems: Array = [];\r\n LeftTime: number = 0;\r\n IsMobile: boolean = false;\r\n\r\n Cart: Cart = Cart.Empty;\r\n\r\n Step: WpSaleSteps = WpSaleSteps.Uninitialized;\r\n\r\n SetLoadingOverlay(loadingOverlay: boolean): void {\r\n this.LoadingOverlay = loadingOverlay;\r\n };\r\n\r\n @Watch('Step')\r\n StepChangedEvent(step: number) {\r\n this.$emit('StepChanged', step);\r\n };\r\n\r\n OnTabChange(): void {\r\n if (this.SalesTab && this.CurrentSalesTab != this.SalesTab) {\r\n this.$nextTick(() => this.CurrentSalesTab = this.SalesTab);\r\n this.CallMetricsEventForSalesTab();\r\n };\r\n };\r\n\r\n get NextAllowed(): boolean {\r\n if (this.Step == 1) return this.Cart.Items.length > 0;\r\n if (this.Step == 2 && this.LeftTime > 0) return !this.PersonificationItems.some(x => !x.IsValid);\r\n if (this.Step == 3 && this.LeftTime > 0) return true;\r\n return false;\r\n };\r\n\r\n created(): void {\r\n let _this = this;\r\n\r\n window.addEventListener('message', function (e) {\r\n if (e.data.status == 'return') {\r\n _this.Step = WpSaleSteps.Complete;\r\n _this.Bank = false;\r\n };\r\n });\r\n\r\n this._saleService = this.GlobalService.Get(SaleSymbols.SaleService);\r\n this._context = this.GlobalService.Get(IdentitySymbols.Context);\r\n this._cartService = this.GlobalService.Get(CartSymbols.CartService);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n this._metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n };\r\n\r\n async mounted(): Promise {\r\n parent.postMessage({ status: 'starting' }, '*');\r\n\r\n this.ShowSteps = false;\r\n this.PageLoading = true;\r\n this.Step = WpSaleSteps.Start;\r\n\r\n this.Settings = GlobalService.GetSettings();\r\n this.IsMobile = this.Settings.IsMobile;\r\n\r\n if (this.Settings.CurrentSite != null)\r\n this.Type = this.Settings.CurrentSite.ConnectionType;\r\n\r\n this.OnlyTab = this.Settings.OnlyTab;\r\n if (this.Settings.ForceTab !== '') {\r\n this.CurrentSalesTab = this.Settings.ForceTab;\r\n this.SalesTab = this.Settings.ForceTab;\r\n };\r\n\r\n if (this.Type == ConnectionType.Tariff)\r\n this.CallMetricsEventForSalesTab();\r\n\r\n this._context.IdentityChanged.Subscribe(this.IdentityChangedEventHandler);\r\n this.Cart = await this._cartService.GetCurrentOrCreateCartAsync();\r\n\r\n let currentOrder = await this.RestoreStateAsync();\r\n this._notificationService.NotificationSended.Subscribe(this.notification);\r\n /*\r\n this.$parent.$on('ExternalBack', this.ExternalBack);\r\n this.$parent.$on('ExternalForceStep', this.ExternalForceStep);\r\n */\r\n\r\n this.PageLoading = false;\r\n if (currentOrder == null || currentOrder == undefined) {\r\n var cartItems = this.Cart.SimpleCart();\r\n parent.postMessage({ status: 'started', data: cartItems }, '*');\r\n } else {\r\n parent.postMessage({ status: 'started', data: currentOrder }, '*');\r\n };\r\n\r\n this._notificationService.NotificationSended.Subscribe(this.notification);\r\n this.ShowSteps = true;\r\n };\r\n\r\n async ConfirmedPhoneForAccountPayment(code: any): Promise {\r\n this.ConfirmPhoneForAccountPaymentId = code.CodeId;\r\n\r\n if (this.DataForPayAccountPayment != null && this.ConfirmPhoneForAccountPaymentId != 0) {\r\n this.DataForPayAccountPayment.PhoneConfirmationCodeId = code.CodeId;\r\n var payResult = await this._saleService.PayForAccountPaymentAsync(this.DataForPayAccountPayment);\r\n\r\n if (!payResult.Success) {\r\n this._notificationService.Error(\"\", payResult.ErrorMessage ? payResult.ErrorMessage : this.Terms.InternalError);\r\n this.LoadingOverlay = false;\r\n this.SelectedAccountPayment = false;\r\n return;\r\n }\r\n\r\n this.SelectedAccountPayment = false;\r\n }\r\n\r\n if (code.Error) {\r\n this.LoadingOverlay = false;\r\n this.SelectedAccountPayment = false;\r\n this.Step = WpSaleSteps.PayConfirm;\r\n return;\r\n }\r\n }\r\n\r\n ExternalBack(): void {\r\n this.Back();\r\n };\r\n\r\n ExternalForceStep(step: number): void {\r\n this.Step = step;\r\n };\r\n\r\n SetLeftTime(leftTime: number): void {\r\n this.LeftTime = leftTime;\r\n };\r\n\r\n get GetLeftTime(): string {\r\n return this.LeftTime + ' ' + this.Terms.GenericShorthandMinutes + '.';\r\n };\r\n\r\n async Back(): Promise {\r\n this.BackLoading = true;\r\n this.LoadingOverlay = true;\r\n if (this.Step == WpSaleSteps.PayConfirm || this.Step == WpSaleSteps.Personification) {\r\n if (this.LeftTime > 0) {\r\n await this._saleService.CancelOrderAsync(this.OrderId);\r\n parent.postMessage({ status: 'cancelled' }, '*');\r\n };\r\n this.OrderId = 0;\r\n };\r\n\r\n await this._saleService.ClearOrderSaleStateAsync();\r\n\r\n this.Step = WpSaleSteps.Start;\r\n this.BackLoading = false;\r\n this.LoadingOverlay = false;\r\n };\r\n\r\n\r\n async Next(): Promise {\r\n this.NextLoading = true;\r\n this.LoadingOverlay = true;\r\n if (this.Step == WpSaleSteps.Start) {\r\n await this.ReservateCartAsync();\r\n this.CallMetricsEvent();\r\n } else if (this.Step == WpSaleSteps.Personification) {\r\n await this.PersonificateOrder();\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetToPurchase);\r\n } else if (this.Step == WpSaleSteps.PayConfirm) {\r\n if (this.WpPayConfirmComponent != null) this.WpPayConfirmComponent.LoginDrawer = true;\r\n };\r\n this.NextLoading = false;\r\n this.LoadingOverlay = false;\r\n };\r\n\r\n async PersonificationRemoveAllItems(existNotPersonificationItems: boolean) {\r\n if (existNotPersonificationItems) {\r\n this.Step = WpSaleSteps.PayConfirm;\r\n } else {\r\n await this.Back();\r\n };\r\n };\r\n\r\n public async ReservateCartAsync(): Promise {\r\n let personId: number | null | undefined;\r\n\r\n if (this.Settings.RequiredLoyalty || this.Cart.Items.some(x => x.Type == CartItemTypes.InstructorsBundleLessons ||\r\n x.Type == CartItemTypes.InstructorsGroupLesson || x.Type == CartItemTypes.InstructorsPersonalLesson ||\r\n x.Type == CartItemTypes.NewClubContract || x.Type == CartItemTypes.ContractAdditionalService ||\r\n x.Type == CartItemTypes.ContractAdditionalPackage || x.Type == CartItemTypes.AccountReplenishment)) {\r\n if (!this._context.CurrentIdentity.IsAuthentificated) {\r\n this._redirectToAuth = true;\r\n this._context.SignIn();\r\n return;\r\n };\r\n\r\n this.NextLoading = true;\r\n this.LoadingOverlay = true;\r\n\r\n let loyaltyProvider = this.GlobalService.Get(LoyaltySymbols.LoyaltyProvider);\r\n let userLoyalty = await loyaltyProvider.GetIsdUserLoyaltyAsync();\r\n\r\n if (userLoyalty.Success) {\r\n let loyaltyList = await this._saleService.GetLoyaltyListAsync();\r\n\r\n if (loyaltyList.Success && loyaltyList.Data != null && loyaltyList.Data.length > 0 &&\r\n (this.Settings.LoyaltyId == null || this.Settings.LoyaltyId == 0)) {\r\n this.Settings.LoyaltyId = loyaltyList.Data[0].Id;\r\n };\r\n\r\n if (userLoyalty.Data == null) {\r\n this.LoyaltyDialog = true;\r\n return;\r\n } else {\r\n personId = userLoyalty.Data.PersId;\r\n };\r\n } else {\r\n this.NextLoading = false;\r\n this.LoadingOverlay = false;\r\n this._notificationService.Error('', userLoyalty?.ErrorMessage ?? this.Terms.InternalError);\r\n return;\r\n };\r\n };\r\n\r\n this.HasPersonification = false;\r\n this.NextLoading = true;\r\n this.LoadingOverlay = true;\r\n\r\n let reservationResult = await this._saleService.ReservateAsync(this.Cart, personId);\r\n\r\n if (!reservationResult.Success || reservationResult.Data == null) {\r\n if (reservationResult.ErrorType == ErrorTypes.FreeTicketLimit) {\r\n this._notificationService.Error(\"\", this.Terms.FreeTicketLimitError);\r\n } else if (reservationResult.ErrorType == ErrorTypes.QuotaExceededForTariff) {\r\n this._notificationService.Error(\"\", this.Terms.CartItemCountError);\r\n } else if (reservationResult.ErrorType == ErrorTypes.TariffNotAvailableForSale) {\r\n this._notificationService.Error(\"\", this.Terms.CartItemNotAvailableError);\r\n } else if (reservationResult.ErrorType == ErrorTypes.CardWithSoTypeTariff) {\r\n this._notificationService.Error(\"\", this.Terms.CardHaveTariffWithSoType);\r\n } else if (reservationResult.ErrorType == ErrorTypes.LessonNotAvailable) {\r\n this._notificationService.Error(\"\", this.Terms.LessonNotAvailable);\r\n } else if (reservationResult.ErrorType == ErrorTypes.RewriteTariffNotAvailable) {\r\n this._notificationService.Error(\"\", this.Terms.CardHaveNotUsedTariff);\r\n } else {\r\n this._notificationService.Error(\"\", reservationResult.ErrorMessage ? reservationResult.ErrorMessage : this.Terms.InternalError);\r\n };\r\n\r\n this.ShowSteps = false;\r\n\r\n this.$nextTick(() => {\r\n this.$emit('LoadingFinished');\r\n this.NextLoading = false;\r\n this.ShowSteps = true;\r\n this.LoadingOverlay = false;\r\n });\r\n\r\n return;\r\n };\r\n\r\n if (reservationResult.Data.Items.some(x => (x.Type == OrderItemType.TariffPersonification ||\r\n x.Type == OrderItemType.TariffBarcodePesonification ||\r\n x.Type == OrderItemType.TariffRewritablePesonification)\r\n && x.AdditionalInfo != undefined && x.AdditionalInfo.Info != undefined &&\r\n x.AdditionalInfo.Info != null && x.AdditionalInfo.Info.includes('_unknow'))) {\r\n this.HasPersonification = true;\r\n };\r\n\r\n this.Cart.Reset();\r\n this.NextLoading = false;\r\n\r\n this.OrderId = reservationResult.Data.Id;\r\n parent.postMessage({ status: 'reserved', data: { order_id: this.OrderId, order: reservationResult.Data } }, '*');\r\n if (this.HasPersonification) {\r\n this.Step = WpSaleSteps.Personification;\r\n } else {\r\n this.Step = WpSaleSteps.PayConfirm;\r\n };\r\n this.$emit('LoadingFinished');\r\n this.LoadingOverlay = false;\r\n };\r\n\r\n protected async PersonificateOrder(): Promise {\r\n let result = true;\r\n for (let i = 0; i < this.PersonificationItems.length; i++) {\r\n let res = await this._saleService.SetPersonificationAsync(this.PersonificationItems[i]);\r\n if (!res.Success) {\r\n this._notificationService.Error(\"\", res.ErrorMessage ? res.ErrorMessage : this.Terms.InternalError);\r\n await this._saleService.CancelOrderAsync(this.OrderId);\r\n await this._saleService.ClearOrderSaleStateAsync();\r\n result = false;\r\n return;\r\n };\r\n };\r\n if (result) this.Step = WpSaleSteps.PayConfirm;\r\n else this.Step = WpSaleSteps.Start;\r\n };\r\n\r\n protected async LockOrderAsync(info: LockOrderInfo): Promise {\r\n this.LoadingOverlay = true;\r\n parent.postMessage({ status: 'wp-order-state', state: 'open' }, '*');\r\n\r\n let lockResult = await this._saleService.LockOrderWithDataAsync(info);\r\n\r\n if (!lockResult.Success) {\r\n if (lockResult.ErrorType == ErrorTypes.InvalidData) {\r\n this._notificationService.Error(\"\", this.Terms.InvalidEmail);\r\n } else {\r\n this._notificationService.Error(\"\", lockResult.ErrorMessage ? lockResult.ErrorMessage : this.Terms.InternalError);\r\n };\r\n\r\n if (this.WpPayConfirmComponent != null)\r\n this.WpPayConfirmComponent.PayButtonLoading = false;\r\n\r\n this.LoadingOverlay = false;\r\n return;\r\n };\r\n\r\n await this.PayOrderAsync(info.PaymentId, info.PaymentType);\r\n };\r\n\r\n protected async PayOrderAsync(paymentId: number, paymentType: PaymentSystemType): Promise {\r\n this.LoadingOverlay = true;\r\n \r\n let paymentForm = await this._saleService.GetSpecificPaymentFormAsync(this.OrderId, paymentId);\r\n if (!paymentForm.Success || paymentForm.Data == null) {\r\n this._notificationService.Error(\"\", paymentForm.ErrorMessage ? paymentForm.ErrorMessage : this.Terms.InternalError);\r\n this.LoadingOverlay = false;\r\n return;\r\n };\r\n\r\n if (paymentType == PaymentSystemType.SbpSberbank || paymentType == PaymentSystemType.Sbp) {\r\n this.SbpQRLink = paymentForm.Data.Address;\r\n this.Step = WpSaleSteps.Complete;\r\n if (this.Settings.IsDevVersion) {\r\n this.SbpLink = `https://mailer-test.moipass.ru/Barcode/QrcodeImg/?v=${paymentForm.Data.Address}`;\r\n } else {\r\n this.SbpLink = `https://mailer.moipass.ru/Barcode/QrcodeImg/?v=${paymentForm.Data.Address}`\r\n }\r\n\r\n this.LoadingOverlay = false;\r\n if (this.Settings.IsMobile)\r\n try {\r\n this.IsMobile = this.Settings.IsMobile;\r\n openInBrowser(paymentForm.Data.Address);\r\n } catch {\r\n window.open(paymentForm.Data.Address, '_blank');\r\n this.SbpDialog = true;\r\n }\r\n else\r\n this.SbpDialog = true;\r\n return;\r\n };\r\n\r\n if (paymentType == PaymentSystemType.Account) {\r\n let accountPaymentSecurityToken = paymentForm.Data.Items.find(x => x.Id == \"security_token\")!.Value;\r\n if (accountPaymentSecurityToken == null || accountPaymentSecurityToken == '') {\r\n this._notificationService.Error(\"\", paymentForm.ErrorMessage ? paymentForm.ErrorMessage : this.Terms.InternalError);\r\n this.LoadingOverlay = false;\r\n return;\r\n }\r\n\r\n this.DataForPayAccountPayment = new PayAccountPayment();\r\n this.DataForPayAccountPayment.OrderId = this.OrderId;\r\n this.DataForPayAccountPayment.PaymentId = paymentId;\r\n this.DataForPayAccountPayment.SecurityToken = accountPaymentSecurityToken;\r\n \r\n this.AccountPaymentUserPhone = this._context.CurrentIdentity.Phone!;\r\n this.SelectedAccountPayment = true;\r\n this.Step = WpSaleSteps.Complete;\r\n \r\n this.LoadingOverlay = false;\r\n\r\n return;\r\n }\r\n\r\n if (this.IframePurchase) {\r\n this.Bank = true;\r\n };\r\n\r\n this.Step = WpSaleSteps.Bank;\r\n\r\n // WARNING: sometimes submitPaymentForm() is missing from utility.js\r\n try {\r\n submitPaymentForm(paymentForm.Data, this.IframePurchase);\r\n } catch (e) {\r\n console.log(\"We tried to submit payment form but got this error instead: \")\r\n console.error(e);\r\n };\r\n\r\n if (this.IframePurchase) {\r\n this.LoadingOverlay = false;\r\n };\r\n };\r\n\r\n protected async IdentityChangedEventHandler(sender: any, e: IdentityChangedEventArgs): Promise {\r\n if (this._redirectToAuth) {\r\n this._redirectToAuth = false;\r\n await this.ReservateCartAsync();\r\n };\r\n };\r\n\r\n protected async RestoreStateAsync(): Promise {\r\n let state = await this._saleService.GetOrderSaleStateAsync();\r\n\r\n if (state.Success && state.Data != null) {\r\n let order = await this._saleService.GetOrderAsync(state.Data.OrderId);\r\n\r\n this.OrderId = state.Data.OrderId;\r\n\r\n if (order.Success && order.Data != null) {\r\n\r\n if (state.Data.Status == OrderStatus.Reserved) {\r\n if (this.Settings.ResetCart) {\r\n await this._saleService.CancelOrderAsync(state.Data.OrderId);\r\n await this._saleService.ClearOrderSaleStateAsync();\r\n return undefined;\r\n };\r\n\r\n if (order.Data.Items.some(x => (x.Type == OrderItemType.TariffPersonification ||\r\n x.Type == OrderItemType.TariffBarcodePesonification ||\r\n x.Type == OrderItemType.TariffRewritablePesonification)\r\n && x.AdditionalInfo != undefined && x.AdditionalInfo.Info != undefined &&\r\n x.AdditionalInfo.Info != null && x.AdditionalInfo.Info.includes('_unknow'))) {\r\n\r\n this.HasPersonification = true;\r\n };\r\n\r\n if (this.HasPersonification) {\r\n this.Step = WpSaleSteps.Personification;\r\n } else {\r\n this.Step = WpSaleSteps.PayConfirm;\r\n };\r\n } else if (state.Data.Status == OrderStatus.Locked) {\r\n this.Step = WpSaleSteps.Complete;\r\n } else if (state.Data.Status == OrderStatus.Canceled) {\r\n if (this.Cart.OrderId == state.Data.OrderId) {\r\n this.Cart.Reset();\r\n await this._saleService.ClearOrderSaleStateAsync();\r\n return undefined;\r\n };\r\n };\r\n\r\n return order.Data;\r\n } else {\r\n this._notificationService.Error(\"\", order.ErrorMessage ? order.ErrorMessage : this.Terms.InternalError);\r\n };\r\n };\r\n\r\n return undefined;\r\n };\r\n\r\n protected AppGoBack() {\r\n if (this.Step == WpSaleSteps.Complete || this.Step == WpSaleSteps.Start) {\r\n if (this.$route.meta?.routeback != null && this.$route.meta.routeback != '') {\r\n this.$router.push({\r\n name: this.$route.meta.routeback as string\r\n });\r\n } else {\r\n if (this.$route.name != WpPageBaseComponent.MainRoute)\r\n this.$router.push({ name: WpPageBaseComponent.MainRoute });\r\n else\r\n try { closeApplication('close'); } catch { }\r\n };\r\n } else {\r\n this.Back();\r\n };\r\n };\r\n\r\n OnSaleScroll(e: any): void {\r\n if (typeof window === 'undefined') return\r\n const top = window.pageYOffset || e.target.scrollTop || 0\r\n this.ScrollFab = top > 20\r\n };\r\n\r\n ToTop(): void {\r\n this.$vuetify.goTo(0)\r\n };\r\n\r\n async notification(sender: any, e: NotificationEventArgs): Promise {\r\n if (e.Data.Type == NotificationTypes.System) {\r\n\r\n if (e.Data.SystemProcessKey == 'SaleComplete') {\r\n this.SbpDialog = false;\r\n };\r\n\r\n };\r\n };\r\n\r\n async RegisteredLoyalty(success: boolean): Promise {\r\n if (success) {\r\n this.LoyaltyDialog = false;\r\n await this.ReservateCartAsync();\r\n };\r\n };\r\n\r\n private CallMetricsEvent(): void {\r\n if (this.Step != WpSaleSteps.Personification)\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetToPurchase);\r\n };\r\n\r\n private CallMetricsEventForSalesTab(): void {\r\n if (this.SalesTab == 'service') {\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetToServices)\r\n } else if (this.SalesTab == 'rewrite') {\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetToRewrite)\r\n } //else if (this.SalesTab == 'personal_lessons') {\r\n // this._metricsService.RegistrateEvent(MetricsEvents.Per)\r\n //} else if (this.SalesTab == 'group_lessons') {\r\n // this._metricsService.RegistrateEvent(MetricsEvents.WidgetToServices)\r\n //} else if (this.SalesTab == 'bundles_lessons') {\r\n // this._metricsService.RegistrateEvent(MetricsEvents.WidgetToServices)\r\n //}\r\n };\r\n};\r\n\r\nexport enum WpSaleSteps {\r\n Uninitialized = 0,\r\n Start = 1,\r\n Personification = 2,\r\n PayConfirm = 3,\r\n Complete = 4,\r\n Bank = 5\r\n};\r\n\r\nexport class WpSaleDictionary extends BaseUILocalizationDictionary {\r\n TabService: string = 'Продажа услуг';\r\n TabRewrite: string = 'Пополнение услуг';\r\n TabPersonalLessons: string = 'Индивидуальные занятия';\r\n TabGroupLessons: string = 'Групповые занятия';\r\n TabBundlesLessons: string = 'Многодневные занятия';\r\n\r\n GenericPlaceOrder: string = 'Оформить';\r\n GenericPay: string = 'Оплатить';\r\n GenericProcessPayment: string = 'Оплата';\r\n GenericShorthandMinutes: string = 'мин';\r\n\r\n CartItemNotAvailableError = 'Одна из позиций в корзине уже недоступна';\r\n CartItemCountError = 'Закончились билеты на одну из позиций в корзине';\r\n\r\n CardHaveTariffWithSoType = 'Билет уже с прокатным договором';\r\n CardHaveNotUsedTariff = 'На карте есть неизрасходованная услуга'\r\n LessonNotAvailable = 'Занятие недоступно';\r\n\r\n InvalidEmail = 'Неверный формат email-а';\r\n\r\n DataRequired: string = 'Необходимо заполнить данные';\r\n SbpTitle: string = 'Отсканируйте qr код и перейдите по ссылке для оплаты заказа';\r\n SbpMobileTitle: string = 'Если приложение банка не открылось, перейдите по ';\r\n SbpMobileTitleLink: string = 'ссылке';\r\n\r\n FreeTicketLimitError: string = 'Вы уже приобретали бесплатный билет';\r\n};","export enum PPSContractStatus {\r\n csPrepare = 0,\r\n csActual = 1,\r\n csFreeze = 2,\r\n csLock = 3,\r\n csClose = 4,\r\n csInWork = -1,\r\n csDelete = 5\r\n}","import './wp-bar-chart.scss';\r\n\r\nimport Vue, { VueConstructor } from 'vue';\r\n\r\nimport { Component } from 'vue-property-decorator';\r\nimport { mixins } from 'vue-class-component';\r\nimport { DefaultProps } from 'vue/types/options';\r\nimport WpBaseComponent from '../../wp-base-component';\r\n\r\nexport const wpBarChartProps = Vue.extend({\r\n props: {\r\n Data: Array\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-bar-chart.html\")\r\n})\r\nexport default class WpBarChart extends mixins(WpBaseComponent, wpBarChartProps, Vue) {\r\n protected BarHeight: string = '128px';\r\n}\r\n\r\nclass BarData {\r\n Id?: number;\r\n Label!: string;\r\n Value!: number;\r\n Width?: number;\r\n}","import Vue from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport WpBaseComponent from '../../wp-base-component';\r\n\r\n@Component({\r\n template: require(\"./wp-loading-overlay.html\")\r\n})\r\nexport default class WpLoadingOverlay extends mixins(WpBaseComponent, Vue) {\r\n};\r\n","import './wp-profile.scss';\r\n\r\nimport Vue from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport WpPageBaseComponent from './../wp-page-base-component';\r\nimport { IProfileService, ProfileSymbols, UserProfile, INotificationService, NotificationSymbols, IContext, IdentitySymbols } from 'web-platform-core-ui';\r\nimport { Ref } from 'vue-property-decorator';\r\n\r\n@Component({\r\n template: require(\"./wp-profile.html\")\r\n})\r\nexport default class WpProfile extends mixins(WpPageBaseComponent, Vue) {\r\n\r\n @Ref('ProfileForm') ProfileForm!: HTMLFormElement;\r\n\r\n\r\n valid: boolean = true;\r\n lazy: boolean = false;\r\n\r\n IsSavingProfile: boolean = false;\r\n\r\n FirstName: string = \"\";\r\n LastName: string = \"\";\r\n Patronymic: string = \"\";\r\n\r\n BirthdateMenu: boolean = false;\r\n Birthdate: string = \"\";\r\n CurrentDate: string = \"\";\r\n\r\n Loading: boolean = true;\r\n\r\n UserSignOut(): void {\r\n let context = this.GlobalService.Get(IdentitySymbols.Context);\r\n context.SignOut()\r\n }\r\n UserSignOutDialog: boolean = false;\r\n\r\n get BirthdateFormatted(): string {\r\n return this.Birthdate ? this.DateHandler.Parse(this.Birthdate, 'YYYY-MM-DD').Format('DD.MM.YYYY') : '';\r\n }\r\n\r\n\r\n Phone: string = \"\";\r\n NewPhone: string = \"\";\r\n /*\r\n get PhonePrefix(): string {\r\n if (this.Phone !== '')\r\n return '+7';\r\n return '';\r\n }\r\n */\r\n\r\n get NameRules() {\r\n return [\r\n (v: string) => v !== '' || 'Поле нельзя оставить пустым',\r\n (v: string) => (v && v.length > 2 && v.length < 30) || 'Неверный формат',\r\n (v: string) => (v && /^[A-aZ-zА-Яа-яЁё]*$/.test(v.trim())) || 'В поле могут быть только буквы'\r\n ];\r\n }\r\n get PhoneRules() {\r\n return [\r\n (v: string) => (/^(\\s*)?(\\+)?([- _():=+]?\\d[- _():=+]?){11,14}(\\s*)?$/.test(v) || v === '') || 'Заполните номер до конца'\r\n ];\r\n }\r\n\r\n\r\n\r\n validate() {\r\n (this.$refs.ProfileForm as HTMLFormElement).validate();\r\n }\r\n PhoneFocus(): void {\r\n if (this.Phone === '') {\r\n this.Phone = '+7(';\r\n }\r\n }\r\n created() {\r\n this.CurrentDate = this.DateHandler.Parse(new Date()).Format('YYYY-MM-DD');\r\n }\r\n async mounted() {\r\n let service = this.GlobalService.Get(ProfileSymbols.ProfileService);\r\n\r\n let result = await service.GetProfileAsync();\r\n\r\n if (result.Success && result.Data != null) {\r\n this.FirstName = result.Data.FirstName;\r\n this.LastName = result.Data.LastName;\r\n this.Patronymic = result.Data.SecondName;\r\n this.Birthdate = result.Data.Birthdate != null ? this.DateHandler.Parse(result.Data.Birthdate, 'YYYY-MM-DDTHH:mm:ss').Format('YYYY-MM-DD') : '';\r\n this.Phone = result.Data.Phone ?? '';\r\n this.Loading = false;\r\n }\r\n }\r\n\r\n async SaveProfile(): Promise {\r\n this.IsSavingProfile = true;\r\n\r\n let userProfile = new UserProfile();\r\n\r\n userProfile.FirstName = this.FirstName.trim();\r\n userProfile.LastName = this.LastName.trim();\r\n userProfile.SecondName = this.Patronymic.trim();\r\n\r\n let tb = this.DateHandler.ParseToDate(this.Birthdate, 'YYYY-MM-DD');\r\n userProfile.Birthdate = new Date(tb.getFullYear(), tb.getMonth(), tb.getDate(), 12, 0);\r\n userProfile.Phone = this.Phone;\r\n\r\n let service = this.GlobalService.Get(ProfileSymbols.ProfileService);\r\n\r\n let savingResult = await service.EditProfileAsync(userProfile);\r\n if (savingResult.Success) {\r\n let notification = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n notification.Success('', 'данные по профилю изменены');\r\n notification.SendSystemNotification(\"ProfileChanged\", userProfile);\r\n }\r\n\r\n this.IsSavingProfile = false;\r\n }\r\n} ","import Vue from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport WpPageBaseComponent from './../wp-page-base-component';\r\nimport { INotificationService, NotificationSymbols, IProfileService, ProfileSymbols, MetricsSymbols, IMetricsService, ErrorTypes } from 'web-platform-core-ui';\r\nimport { Ref } from 'vue-property-decorator';\r\nimport { MetricsEvents } from '../metrics-events-symbols';\r\n\r\n@Component({\r\n template: require(\"./wp-change-password.html\")\r\n})\r\nexport default class WpChangePassword extends mixins(WpPageBaseComponent, Vue) {\r\n protected _notificationService!: INotificationService;\r\n private _profileService!: IProfileService;\r\n private _metricsService!: IMetricsService;\r\n\r\n ChangePasswordFormValid: boolean = false;\r\n ChangePasswordLoading: boolean = false;\r\n\r\n @Ref('ConfirmPasswordInput') ConfirmPasswordInput!: any;\r\n @Ref('ChangePasswordForm') ChangePasswordForm!: HTMLFormElement;\r\n\r\n OldPassword: string = '';\r\n NewPassword: string = '';\r\n ConfirmPassword: string = '';\r\n\r\n OldPasswordShow: boolean = false;\r\n NewPasswordShow: boolean = false;\r\n ConfirmPasswordShow: boolean = false;\r\n\r\n async ChangePasswordSubmit(e: any) {\r\n e.preventDefault();\r\n await this.ChangePassword();\r\n };\r\n\r\n get OldPasswordRules() {\r\n return [\r\n (v: string) => !!v || 'Поле обязательно к заполнению'\r\n ];\r\n };\r\n\r\n get NewPassowrdRules() {\r\n return [\r\n (v: string) => !!v || 'Поле обязательно к заполнению',\r\n (v: string) => (v && v.length > 6) || 'Должно быть длинее 6 символов',\r\n (v: string) => /^[а-яА-Яa-zA-Z0-9ёЁ!№;%:?*()_+=\\-<>.,/\\\\'`@#$%^&{}\\[\\]|\"\"~ ]{0,50}$/.test(v) || 'Доступные символы для пароля: цифры, кириллица, латинские буквы, (пробел) ! \" № # $ % & \\'() * + , - . / : ; + = ?@[\\] ^ _` { | } ~ <>'\r\n ];\r\n };\r\n\r\n get ConfirmPassowrdRules() {\r\n return [\r\n (v: string) => !!v || 'Поле обязательно к заполнению',\r\n (v: string) => v == this.NewPassword || 'Пароли не совпадают',\r\n ];\r\n };\r\n\r\n NewPasswordChanged(e: any) {\r\n this.ConfirmPasswordInput.validate();\r\n };\r\n\r\n async ChangePassword() {\r\n this._metricsService.RegistrateEvent(MetricsEvents.PasswordChanged);\r\n\r\n if (!this.ChangePasswordForm.validate()) return;\r\n\r\n this.ChangePasswordLoading = true;\r\n let resetResult = await this._profileService.ChangePasswordAsync(this.OldPassword, this.NewPassword, this.ConfirmPassword);\r\n this.ChangePasswordLoading = false;\r\n\r\n if (!resetResult.Success) { \r\n if (resetResult.ErrorType == ErrorTypes.InvalidData) {\r\n this._notificationService.Error(\"\", \"Неверный текущий пароль\");\r\n this.OldPassword = \"\";\r\n } else {\r\n this._notificationService.Error(\"\", resetResult.ErrorMessage ?? \"Произошла непредвиденная ошибка\");\r\n this.ChangePasswordForm.reset();\r\n };\r\n return;\r\n };\r\n\r\n this.ChangePasswordForm.reset();\r\n this._notificationService.Success(\"\", \"Пароль изменен\");\r\n };\r\n\r\n mounted() {\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n this._profileService = this.GlobalService.Get(ProfileSymbols.ProfileService);\r\n this._metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n this._metricsService.RegistrateEvent(MetricsEvents.ChangePasswordPage);\r\n };\r\n};","import Vue from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport WpPageBaseComponent from './../wp-page-base-component';\r\nimport {\r\n NewsArticle, CmsSymbols, ICmsService, BaseFilter, WpCorePrefixes,\r\n IMetricsService, MetricsSymbols, Sorting, SortingMode\r\n} from 'web-platform-core-ui';\r\nimport { MetricsEvents } from '../metrics-events-symbols';\r\n\r\n@Component({\r\n template: require(\"./wp-news.html\")\r\n})\r\nexport default class WpNews extends mixins(WpPageBaseComponent, Vue) {\r\n NewsList: Array = [];\r\n\r\n PageCount: number = 5;\r\n CurrentPage: number = 1;\r\n\r\n async mounted() {\r\n this.PageLoading = true;\r\n let service = this.GlobalService.Get(CmsSymbols.CmsService);\r\n\r\n let filter = new BaseFilter();\r\n filter.Page = this.CurrentPage;\r\n filter.PageCount = this.PageCount;\r\n filter.Sorting = new Sorting();\r\n filter.Sorting.Member = \"Date\";\r\n filter.Sorting.Mode = SortingMode.DESC;\r\n\r\n let result = await service.GetEntitiesAsync(WpCorePrefixes.News, filter, '');\r\n\r\n if (result.Success && result.Data != null) {\r\n this.NewsList = result.Data.Entities;\r\n }\r\n\r\n let metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n metricsService.RegistrateEvent(MetricsEvents.NewsList);\r\n\r\n this.PageLoading = false;\r\n }\r\n} ","import './wp-news-item.scss';\r\n\r\nimport Vue from 'vue';\r\nimport { Prop } from \"vue/types/options\";\r\nimport WpBaseComponent from './../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { NewsArticle, IMetricsService, MetricsSymbols } from 'web-platform-core-ui';\r\nimport { MetricsEvents } from '../metrics-events-symbols';\r\n\r\nexport const wpNewsItemProps = Vue.extend({\r\n props: {\r\n Entity: Object as Prop\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-news-item.html\")\r\n})\r\nexport default class WpNewsItem extends mixins(WpBaseComponent, wpNewsItemProps, Vue) {\r\n ArticleDate?: string = '';\r\n mounted() {\r\n this.ArticleDate = this.DateHandler.Parse(this.$props.Entity.Date, 'YYYY-MM-DDTHH:mm:SS').Format('DD MMMM YYYY');\r\n\r\n let metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n metricsService.RegistrateEvent(MetricsEvents.NewsItem, this.Entity?.Id);\r\n }\r\n} ","import './wp-news-article.scss';\r\n\r\nimport Vue from 'vue';\r\nimport { Prop } from \"vue/types/options\";\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport WpPageBaseComponent from './../wp-page-base-component';\r\nimport { NewsArticle, ICmsService, CmsSymbols, WpCorePrefixes } from 'web-platform-core-ui';\r\n\r\nexport const wpNewsArticleProps = Vue.extend({\r\n props: {\r\n ArticleId: Number\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-news-article.html\")\r\n})\r\nexport default class WpNewsArticle extends mixins(WpPageBaseComponent, wpNewsArticleProps, Vue) {\r\n Article: NewsArticle = new NewsArticle();\r\n ArticleDate?: string = '';\r\n Loading: boolean = true;\r\n\r\n async mounted() {\r\n\r\n let service = this.GlobalService.Get(CmsSymbols.CmsService);\r\n\r\n let result = await service.FindEntityAsync(WpCorePrefixes.News, this.$props.ArticleId);\r\n\r\n if (result.Success && result.Data != null) {\r\n this.Article = result.Data;\r\n this.ArticleDate = this.DateHandler.Parse(this.Article.Date, 'YYYY-MM-DDTHH:mm:SS').Format('DD MMMM YYYY');\r\n this.Loading = false;\r\n }\r\n }\r\n}","import './wp-orders.scss';\r\n\r\nimport Vue from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { Order, IOrderService, OrderServiceSymbols, MetricsSymbols, IMetricsService, OrdersFilter } from 'web-platform-core-ui';\r\nimport WpPageBaseComponent from '../wp-page-base-component';\r\nimport { MetricsEvents } from '../metrics-events-symbols';\r\n\r\nexport const wpOrdersProps = Vue.extend({\r\n props: {\r\n IsApp: {\r\n type: Boolean,\r\n default: false\r\n }\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-orders.html\")\r\n})\r\nexport class WpOrders extends mixins(WpPageBaseComponent, wpOrdersProps, Vue) {\r\n OrderList: Array = [];\r\n Loading: boolean = true;\r\n NoData: boolean = false;\r\n OrderHeaders: Array = [\r\n { text: '№ заказа', value: 'Id' },\r\n { text: 'Дата', value: 'Date', sort: this.DateSort },\r\n { text: 'Статус', value: 'Status' },\r\n { text: 'Сумма', value: 'Sum', align: 'right' },\r\n { text: '', value: 'Actions', sortable: false },\r\n ]; \r\n SortBy: string = 'Id';\r\n SortDesc: boolean = true;\r\n GetOrder(order: Order): void {\r\n this.$router.push({ name: 'wp-order', params: { OrderId: (order.Id).toString() } });\r\n }\r\n DateSort(a: Date, b: Date): number {\r\n var FirstDate = this.DateHandler.ParseToDate(a, 'DD.MM.YYYY').getTime();\r\n var SecondDate = this.DateHandler.ParseToDate(b, 'DD.MM.YYYY').getTime();\r\n\r\n if (FirstDate > SecondDate) {\r\n return 1;\r\n }\r\n else {\r\n return -1;\r\n }\r\n }\r\n /*\r\n TableSortOrder: any = {\r\n 'Id': true,\r\n 'Site': true,\r\n 'RegistredDate': true,\r\n 'Status': true,\r\n 'Sum': true,\r\n }\r\n SortTable(items: Array, index: string, isDesc: boolean) {\r\n index = index[0];\r\n\r\n isDesc = this.TableSortOrder[index];\r\n this.TableSortOrder[index] = !this.TableSortOrder[index];\r\n\r\n console.log(items, index, isDesc);\r\n\r\n items.sort((a: any, b: any) => {\r\n if (isDesc) {\r\n return b[index] - a[index];\r\n } else {\r\n return a[index] - b[index];\r\n }\r\n });\r\n return items;\r\n }\r\n SortTable(items: Array, index: string, isDesc: true): Array {\r\n console.log(items, index, isDesc);\r\n let SortField = index[0];\r\n isDesc = this.TableSortOrder[SortField];\r\n this.TableSortOrder[SortField] = !this.TableSortOrder[SortField];\r\n\r\n if (SortField === 'Date') {\r\n items.sort((obj1: any, obj2: any) => {\r\n console.log(obj1[SortField], obj2[SortField])\r\n let FirstDate = moment(obj1[SortField], moment.ISO_8601);\r\n let SecondDate = moment(obj1[SortField], moment.ISO_8601);\r\n if (FirstDate.isAfter(SecondDate)) {\r\n return isDesc ? 1 : -1;\r\n }\r\n else if (SecondDate.isAfter(FirstDate)) {\r\n return isDesc ? -1 : 1;\r\n }\r\n return 0;\r\n });\r\n }\r\n else {\r\n items.sort((obj1: any, obj2: any) => {\r\n if (obj1[SortField] > obj2[SortField]) {\r\n return isDesc ? 1 : -1;\r\n }\r\n else if (obj1.Status < obj2.Status) {\r\n return isDesc ? -1 : 1;\r\n }\r\n return 0;\r\n });\r\n }\r\n return items;\r\n }\r\n */\r\n\r\n FormatStatus(Status: number): string {\r\n return Object.values(WpOrders.OrderStatus)[Status-1];\r\n }\r\n FormatDate(Date: string): string {\r\n return this.DateHandler.Parse(Date).Format('DD.MM.YYYY');\r\n }\r\n FormatPrice(Price: number): string {\r\n return parseFloat(Price.toString()).toFixed(2).toString().replace(',', '.');\r\n }\r\n\r\n ItemsPerPage: number = 5;\r\n Page: number = 1;\r\n PageCount: number = 0;\r\n PageAmounts: Array = [\r\n 5, 10, 25, 50, 100\r\n ]\r\n\r\n SetPerPage(itemsPerPageNew: string): void {\r\n this.ItemsPerPage = parseInt(itemsPerPageNew, 10);\r\n }\r\n\r\n async mounted() {\r\n\r\n this.PageLoading = true;\r\n let service = this.GlobalService.Get(OrderServiceSymbols.OrderService);\r\n\r\n let result = await service.GetOrderListAsync(new OrdersFilter());\r\n \r\n if (result.Success && result.Data != null) {\r\n this.Loading = false;\r\n this.OrderList = result.Data.Entities;\r\n\r\n /*\r\n let OrderStatus: { [idx: string]: WpOrders.OrderStatus; } = WpOrders.OrderStatus;\r\n TempOrderList.forEach(function (TempOrderRow, TempOrderIndex) {\r\n console.log(TempOrderRow.Status);\r\n \r\n })*/\r\n }\r\n else {\r\n this.NoData = true;\r\n }\r\n\r\n let metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n metricsService.RegistrateEvent(MetricsEvents.OrdersList);\r\n\r\n this.PageLoading = false;\r\n }\r\n}\r\nexport namespace WpOrders {\r\n export enum OrderStatus {\r\n Reserved = 'Зарезирвирован',\r\n Locked = 'Заблокирован',\r\n Paid = 'Оплачен',\r\n Canceled = 'Отменён',\r\n Refunded = 'Возврат',\r\n Error = 'Ошибка',\r\n PartialRefund = 'Частичный возврат'\r\n }\r\n}\r\nexport default WpOrders; ","import './wp-order.scss';\r\n\r\nimport Vue from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport WpPageBaseComponent from './../wp-page-base-component';\r\nimport { OrderDetails, IOrderService, OrderServiceSymbols, IMetricsService, MetricsSymbols } from 'web-platform-core-ui';\r\nimport { MetricsEvents } from '../metrics-events-symbols';\r\n\r\nexport const wpOrderItemProps = Vue.extend({\r\n props: {\r\n OrderId: String\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-order.html\")\r\n})\r\nexport class WpOrder extends mixins(WpPageBaseComponent, wpOrderItemProps, Vue) {\r\n _metricsService!: IMetricsService;\r\n\r\n Order: OrderDetails = new OrderDetails();\r\n Dialog: boolean = false;\r\n\r\n OrderItemsHeaders: Array = ['Описание', 'Сумма', 'НДС'];\r\n OrderHistoryHeaders: Array = ['Операция', 'Дата', 'Результат', 'Описание'];\r\n get HaveTickets() {\r\n return this.Order.Items?.some(x => x.Barcode != null && x.Barcode != '');\r\n }\r\n\r\n FormatStatus(Status: number): string {\r\n return Object.values(WpOrder.OrderStatus)[Status-1];\r\n }\r\n FormatTax(TaxType: number): string {\r\n return Object.values(WpOrder.TaxType)[TaxType-1];\r\n }\r\n FormatTransactionResult(TransactionResult: number): string {\r\n return Object.values(WpOrder.TransactionResult)[TransactionResult];\r\n }\r\n FormatPrice(Price: number): string {\r\n return parseFloat(Price.toString()).toFixed(2).toString().replace(',', '.');\r\n }\r\n FormatDate(Date: string): string {\r\n return this.DateHandler.Parse(Date).Format('DD.MM.YYYY');\r\n }\r\n FormatDateTime(Date: string): string {\r\n return this.DateHandler.Parse(Date).Format('DD.MM.YYYY HH:mm');\r\n }\r\n\r\n BarcodeType: string = 'qrcode';\r\n\r\n get BarcodeStyle() {\r\n return this.BarcodeType != 'qrcode' ? 'code128-img' : '' \r\n }\r\n\r\n BarcodeTypeChange(e: boolean) {\r\n if (e) {\r\n this.BarcodeType = 'code128b'\r\n } else {\r\n this.BarcodeType = 'qrcode';\r\n }\r\n }\r\n\r\n async mounted() {\r\n this.PageLoading = true;\r\n let service = this.GlobalService.Get(OrderServiceSymbols.OrderService);\r\n this._metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n\r\n let result = await service.GetOrderAsync(Number.parseInt(this.$props.OrderId));\r\n\r\n if (result.Success && result.Data != null) {\r\n this.Order = result.Data;\r\n }\r\n\r\n\r\n this._metricsService.RegistrateEvent(MetricsEvents.OrderDetalization, this.$props.OrderId);\r\n this.PageLoading = false;\r\n }\r\n\r\n TicketsOpen() {\r\n this.Dialog = true;\r\n this._metricsService.RegistrateEvent(MetricsEvents.OrderTickets, this.$props.OrderId);\r\n }\r\n}\r\n\r\nexport namespace WpOrder {\r\n export enum OrderStatus {\r\n Reserved = 'Зарезирвирован',\r\n Locked = 'Заблокирован',\r\n Paid = 'Оплачен',\r\n Canceled = 'Отменён',\r\n Refunded = 'Возврат',\r\n Error = 'Ошибка',\r\n PartialRefund = 'Частичный возврат'\r\n }\r\n\r\n export enum TaxType {\r\n None = 'Нет НДС',\r\n VAT_0 = 'НДС 0%',\r\n VAT_10 = 'НДС 10%',\r\n VAT_18 = 'НДС 18%',\r\n VAT_10_110 = 'НДС 10/110',\r\n VAT_18_118 = 'НДС 18/118',\r\n VAT_20 = 'НДС 20%',\r\n VAT_20_120 = 'НДС 20/120'\r\n }\r\n\r\n export enum TransactionResult {\r\n Failed = 'Отказ',\r\n Success = 'Успех'\r\n }\r\n\r\n}\r\nexport default WpOrder; ","import Vue from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport WpPageBaseComponent from './../../../wp-page-base-component';\r\nimport GlobalService, {\r\n ILoyaltyProvider, LoyaltySymbols, IsdLoyaltyProgram, ActionResult,\r\n INotificationService, NotificationSymbols, IsdUserLoyalty, AppSettings, PersonIsdLoyaltyData, IMetricsService, MetricsSymbols\r\n} from 'web-platform-core-ui';\r\nimport WpBaseComponent from '../../../wp-base-component';\r\nimport { Prop } from 'vue/types/options';\r\nimport { MetricsEvents } from '../../../metrics-events-symbols';\r\nimport { Watch } from 'vue-property-decorator';\r\n\r\nexport const wpIsdLoyaltyEditProps = Vue.extend({\r\n props: {\r\n IsdUserLoyalty: Object as Prop\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-isd-loyalty-edit.html\")\r\n})\r\nexport default class WpIsdLoyaltyEdit extends mixins(WpBaseComponent, Vue, wpIsdLoyaltyEditProps) {\r\n _metricsService!: IMetricsService;\r\n _provider!: ILoyaltyProvider;\r\n _notificationService!: INotificationService;\r\n\r\n valid: boolean = true;\r\n questionnaireValid: boolean = false;\r\n\r\n lazy: boolean = false;\r\n\r\n LoyaltyId: number = 0;\r\n\r\n IsdLoyaltyProgram!: IsdLoyaltyProgram;\r\n PersonIsdLoyaltyData: PersonIsdLoyaltyData = new PersonIsdLoyaltyData();\r\n IsEditingLoyalty: boolean = false;\r\n DataLoaded: boolean = false;\r\n\r\n @Watch(\"PersonIsdLoyaltyData.LastName\")\r\n LastNameChanged(data: string): void {\r\n this.PersonIsdLoyaltyData.LastName = data.replace(' ', '');\r\n }\r\n\r\n @Watch(\"PersonIsdLoyaltyData.FirstName\")\r\n FirstNameChanged(data: string): void {\r\n this.PersonIsdLoyaltyData.FirstName = data.replace(' ', '');\r\n }\r\n\r\n @Watch(\"PersonIsdLoyaltyData.SecondName\")\r\n SecondNameChanged(data: string): void {\r\n this.PersonIsdLoyaltyData.SecondName = data.replace(' ', '');\r\n }\r\n\r\n get NameRules() {\r\n return [\r\n (v: string) => v !== '' || 'Поле нельзя оставить пустым',\r\n (v: string) => (v && v.length > 1 && v.length <= 30) || 'Неверный формат',\r\n (v: string) => (v[0] != \" \" && v[v.length-1] != \" \") || 'Неверный формат',\r\n (v: string) => (v && /^[A-aZ-zА-Яа-яЁё]*(-[A-aZ-zА-Яа-яЁё]*)?$/.test(v.trim())) || 'В поле могут быть только буквы'\r\n ];\r\n }\r\n get CityRules() {\r\n return [\r\n (v: string) => v !== '' || 'Поле нельзя оставить пустым',\r\n (v: string) => (v && v.length > 1 && v.length <= 30) || 'Неверный формат',\r\n (v: string) => (v && /^[a-zA-Zа-яёА-ЯЁ\\-]+( [a-zA-Zа-яёА-ЯЁ\\-]+)*$/.test(v.trim())) || 'В поле могут быть только буквы'\r\n ];\r\n }\r\n get BirthdateRules() {\r\n return [\r\n (v: string) => (v !== '' && v !== null) || 'Поле нельзя оставить пустым'\r\n ];\r\n }\r\n get RadioRules() {\r\n return [\r\n (v: string) => !!v || 'Выберите один из вариантов'\r\n ];\r\n }\r\n\r\n BirthdateMenu: boolean = false;\r\n Birthdate: string = \"\";\r\n CurrentDate: string = \"\";\r\n\r\n\r\n get BirthdateFormatted(): string {\r\n return this.Birthdate ? this.DateHandler.Parse(this.Birthdate, 'YYYY-MM-DD').Format('DD.MM.YYYY') : '';\r\n }\r\n\r\n UpdateBirthdate(): void {\r\n if (this.Birthdate !== '') {\r\n this.PersonIsdLoyaltyData!.Birthdate = this.DateHandler.Parse(this.Birthdate, 'YYYY-MM-DD').Format('YYYY-MM-DDTHH:mm:SS');\r\n }\r\n else {\r\n this.PersonIsdLoyaltyData!.Birthdate = null;\r\n }\r\n }\r\n validate() {\r\n (this.$refs.QuestionnaireForm as HTMLFormElement).validate();\r\n }\r\n\r\n created() {\r\n this.CurrentDate = this.DateHandler.Parse(new Date()).Format('YYYY-MM-DD');\r\n this._provider = this.GlobalService.Get(LoyaltySymbols.LoyaltyProvider);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n this._metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n }\r\n\r\n async mounted() {\r\n let getProgramInfoAsync = await this._provider.GetProgramInfoAsync(GlobalService.GetSettings().LoyaltyId);\r\n\r\n if (getProgramInfoAsync.Data !== null && getProgramInfoAsync.Data !== undefined) {\r\n\r\n this.IsdLoyaltyProgram = getProgramInfoAsync.Data;\r\n\r\n if (getProgramInfoAsync.Data?.LoyaltyProgramId !== undefined) {\r\n this.LoyaltyId = getProgramInfoAsync.Data?.LoyaltyProgramId;\r\n }\r\n }\r\n else {\r\n this._notificationService.Error(\"Ошибка\",\r\n getProgramInfoAsync != null && getProgramInfoAsync.ErrorMessage != null ? getProgramInfoAsync.ErrorMessage : \"Произошла непредвиденная ошибка\");\r\n }\r\n\r\n this.PersonIsdLoyaltyData.LoyaltyId = GlobalService.GetSettings().LoyaltyId;\r\n this.PersonIsdLoyaltyData.Id = this.IsdUserLoyalty.Id;\r\n this.PersonIsdLoyaltyData.FirstName = this.IsdUserLoyalty.FirstName;\r\n this.PersonIsdLoyaltyData.LastName = this.IsdUserLoyalty.LastName;\r\n this.PersonIsdLoyaltyData.SecondName = this.IsdUserLoyalty.SecondName;\r\n this.PersonIsdLoyaltyData.Birthdate = this.IsdUserLoyalty.Birthdate != null ? this.DateHandler.Parse(this.IsdUserLoyalty.Birthdate, 'YYYY-MM-DDTHH:mm:SS').Format('YYYY-MM-DD') : null;\r\n this.Birthdate = this.IsdUserLoyalty.Birthdate != null ? this.DateHandler.Parse(this.IsdUserLoyalty.Birthdate, 'YYYY-MM-DDTHH:mm:SS').Format('YYYY-MM-DD') : '';\r\n this.PersonIsdLoyaltyData.Gender = this.IsdUserLoyalty.Gender ?? 0;\r\n this.PersonIsdLoyaltyData.AddressId = this.IsdUserLoyalty.AddressId;\r\n this.PersonIsdLoyaltyData.City = this.IsdUserLoyalty.City;\r\n\r\n this.DataLoaded = true;\r\n }\r\n\r\n async EditAsync() {\r\n this.PersonIsdLoyaltyData.FirstName = this.PersonIsdLoyaltyData.FirstName.trim();\r\n this.PersonIsdLoyaltyData.LastName = this.PersonIsdLoyaltyData.LastName.trim();\r\n this.PersonIsdLoyaltyData.SecondName = this.PersonIsdLoyaltyData.SecondName.trim();\r\n\r\n this.IsEditingLoyalty = true;\r\n let result = await this._provider.EditAsync(this.PersonIsdLoyaltyData);\r\n if (!result.Success) {\r\n this._notificationService.Error('', result.ErrorMessage ?? \"Произошла непредвиденная ошибка\");\r\n return;\r\n }\r\n\r\n let loyaltyProfile = await this._provider.GetIsdUserLoyaltyAsync();\r\n if (!loyaltyProfile.Success || loyaltyProfile.Data == null) {\r\n this._notificationService.Error('', loyaltyProfile.ErrorMessage ?? \"Произошла непредвиденная ошибка\");\r\n return;\r\n \r\n }\r\n\r\n this.PersonIsdLoyaltyData.AddressId = loyaltyProfile.Data.AddressId;\r\n this._metricsService.RegistrateEvent(MetricsEvents.IsdLoyaltyEditProfile);\r\n this.$emit('edited', loyaltyProfile.Data);\r\n\r\n this.IsEditingLoyalty = false;\r\n this._notificationService.Success(\"Редактирование\", \"Данные сохранены\");\r\n }\r\n\r\n TrimOnBlur(): void {\r\n this.PersonIsdLoyaltyData.FirstName.trim();\r\n this.PersonIsdLoyaltyData.LastName.trim();\r\n this.PersonIsdLoyaltyData.SecondName.trim();\r\n } \r\n} \r\n","import Vue from 'vue';\r\nimport WpPageBaseComponent from '../wp-page-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\n\r\nimport GlobalService, {\r\n IContext, IdentitySymbols, IdentityChangedEventArgs,\r\n INotificationService, NotificationSymbols, Initializer,\r\n ILoyaltyProvider, LoyaltySymbols, AppSettingsInitializedEventArgs,\r\n NotificationEventArgs, NotificationTypes, AppSettings, IsdUserLoyalty, createGuid\r\n} from 'web-platform-core-ui';\r\n\r\nexport const WpClientsCardsProp = Vue.extend({\r\n\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-clients-cards.html\")\r\n})\r\nexport default class WpClientsCards extends mixins(WpPageBaseComponent, WpClientsCardsProp, Vue) {\r\n protected _notificationService!: INotificationService;\r\n protected _loyaltyProvider!: ILoyaltyProvider;\r\n\r\n UserLoyalty!: IsdUserLoyalty;\r\n Cards: Array = [];\r\n FullName: string = '';\r\n\r\n WaitNewCard: boolean = false;\r\n NewCardDialog: boolean = false;\r\n\r\n protected _refreshCardsFunc: any;\r\n\r\n async mounted(): Promise {\r\n let context = this.GlobalService.Get(IdentitySymbols.Context);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n this._loyaltyProvider = this.GlobalService.Get(LoyaltySymbols.LoyaltyProvider);\r\n\r\n\r\n let result = await this._loyaltyProvider.GetIsdUserLoyaltyAsync();\r\n\r\n if (result.Success && result.Data != null) {\r\n this.UserLoyalty = result.Data;\r\n this.FullName = `${this.UserLoyalty.LastName} ${this.UserLoyalty.FirstName} ${this.UserLoyalty.SecondName}`\r\n\r\n let cards = await this._loyaltyProvider.GetCards(this.UserLoyalty.PersId);\r\n this.Cards = cards.filter(x => x.bearer_type == \"41\");\r\n\r\n let length = localStorage.getItem(\"new_card\");\r\n localStorage.removeItem(\"new_card\");\r\n\r\n if (length != null) {\r\n this.NewCardDialog = true;\r\n\r\n if (length == this.Cards.length.toString()) {\r\n this.WaitNewCard = true;\r\n\r\n this._refreshCardsFunc = setInterval(async () => {\r\n let cards = (await this._loyaltyProvider.GetCards(this.UserLoyalty.PersId)).filter(x => x.bearer_type == \"41\");\r\n if (cards.length.toString() != length) {\r\n this.WaitNewCard = false;\r\n this.Cards = cards;\r\n clearInterval(this._refreshCardsFunc);\r\n this._refreshCardsFunc = null;\r\n }\r\n }, 5000);\r\n } else {\r\n this.WaitNewCard = false; \r\n }\r\n\r\n }\r\n\r\n } else {\r\n this._notificationService.Error('', result?.ErrorMessage ?? 'Произошла непредвиденная ошибка');\r\n };\r\n }\r\n\r\n AddNewCard() {\r\n localStorage.setItem(\"new_card\", `${this.Cards.length}`);\r\n\r\n var complete = `${location.origin}/card/complete`;\r\n var failed = `${location.origin}/card/failed`;\r\n\r\n var guid = createGuid();\r\n\r\n\r\n let url = '';\r\n if (GlobalService.GetSettings().IsDevVersion) {\r\n url = 'https://payments.t.paysecure.ru/pay/regcard.cfm?merchant_id=697927';\r\n } else {\r\n url = 'https://payments367.paysecure.ru/pay/regcard.cfm?merchant_id=640930';\r\n }\r\n\r\n location.href = `${url}&customernumber=${this.UserLoyalty.PersId}&ordernumber=${guid}&URL_RETURN_OK=${complete}&URL_RETURN_NO=${failed}`;\r\n }\r\n\r\n GetDate(date: string) {\r\n return this.DateHandler.Parse(date.split(\"T\")[0], \"YYYY-MM-DD\").Format(\"DD.MM.YYYY\"); \r\n }\r\n\r\n OpenWidget(mediaNum: string) {\r\n this._notificationService.SendSystemNotification(\"OpenWidget\", mediaNum);\r\n }\r\n\r\n NewCardDialogClose() {\r\n this.NewCardDialog = false;\r\n }\r\n};","import Vue from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport WpPageBaseComponent from './../wp-page-base-component';\r\nimport { Emit } from 'vue-property-decorator';\r\nimport {\r\n NewsArticle, CmsSymbols, ICmsService,\r\n WpCorePrefixes, BaseFilter, Sorting,\r\n SortingMode\r\n} from 'web-platform-core-ui';\r\n\r\n@Component({\r\n template: require(\"./wp-main.html\")\r\n})\r\nexport default class WpMain extends mixins(WpPageBaseComponent, Vue) {\r\n\r\n @Emit('ToggleDrawer')\r\n ToggleDrawer(): void {\r\n }\r\n\r\n NewsList: Array = [];\r\n\r\n async mounted() {\r\n let service = this.GlobalService.Get(CmsSymbols.CmsService);\r\n\r\n let filter = new BaseFilter();\r\n filter.Page = 1;\r\n filter.PageCount = 3;\r\n filter.Sorting = new Sorting();\r\n filter.Sorting.Member = \"Date\";\r\n filter.Sorting.Mode = SortingMode.DESC;\r\n\r\n let result = await service.GetEntitiesAsync(WpCorePrefixes.News, filter, '');\r\n\r\n if (result.Success && result.Data != null) {\r\n this.NewsList = result.Data.Entities;\r\n }\r\n }\r\n\r\n AppGoBack() {\r\n closeApplication(\"\");\r\n }\r\n} ","import Vue from 'vue';\r\nimport { Prop } from \"vue/types/options\";\r\nimport WpBaseComponent from './../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\n\r\nimport { NewsArticle } from 'web-platform-core-ui';\r\n\r\nexport const wpNewsItemProps = Vue.extend({\r\n props: {\r\n Entity: Object as Prop\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./main-news-item.html\")\r\n})\r\nexport default class WpMainNewsItem extends mixins(WpBaseComponent, wpNewsItemProps, Vue) {\r\n ArticleDate?: string = '';\r\n mounted() {\r\n this.ArticleDate = this.DateHandler.Parse(this.$props.Entity.Date, 'YYYY-MM-DDTHH:mm:SS').Format('DD MMMM YYYY');\r\n }\r\n\r\n} ","import Vue from 'vue';\r\nimport { Prop } from \"vue/types/options\";\r\nimport WpPageBaseComponent from './../wp-page-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { IMetricsService, MetricsSymbols } from 'web-platform-core-ui';\r\nimport { MetricsEvents } from '../metrics-events-symbols';\r\n\r\nexport const wpFeedbackProps = Vue.extend({\r\n props: {\r\n Mail: {\r\n type: String,\r\n default: 'wptest@moipass.ru'\r\n }\r\n }\r\n})\r\n\r\n@Component({ \r\n template: require(\"./wp-feedback.html\")\r\n})\r\nexport class WpFeedback extends mixins(WpPageBaseComponent, wpFeedbackProps, Vue) {\r\n protected _metricsService!: IMetricsService; \r\n\r\n IsIphone: boolean = false;\r\n StoreLabel: string = '';\r\n StoreLink: string = '';\r\n StoreName: string = '';\r\n\r\n OpenEmail(): void {\r\n this._metricsService.RegistrateEvent(MetricsEvents.FeedbackEmail);\r\n console.log(this.Mail);\r\n openInBrowser(`mailto:${this.Mail}`);\r\n }\r\n OpenStore(): void {\r\n if (this.IsIphone) {\r\n this._metricsService.RegistrateEvent(MetricsEvents.FeedbackAppleStore);\r\n\r\n storeRequestReview();\r\n } else {\r\n this._metricsService.RegistrateEvent(MetricsEvents.FeedbackPlayStore);\r\n\r\n openInBrowser(this.StoreLink);\r\n }\r\n }\r\n async mounted() {\r\n this.IsIphone = /iPhone|iPad|MacIntel|iPadOS|Macintosh|iPod/i.test(navigator.userAgent);\r\n if (this.IsIphone) {\r\n this.StoreName = WpFeedback.StoreNames.Iphone;\r\n this.StoreLink = WpFeedback.StoreLinks.Iphone;\r\n this.StoreLabel = WpFeedback.StoreLabels.Iphone + this.StoreName;\r\n }\r\n else {\r\n this.StoreName = WpFeedback.StoreNames.Android;\r\n this.StoreLink = WpFeedback.StoreLinks.Android;\r\n this.StoreLabel = WpFeedback.StoreLabels.Android + this.StoreName;\r\n }\r\n\r\n this._metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n }\r\n}\r\n\r\nexport namespace WpFeedback {\r\n export enum StoreLinks {\r\n Android = 'market://details?id=isds.mobiledemo&hl=en',\r\n Iphone = 'itms-apps://itunes.apple.com/app/1510758463?action=write-review',\r\n }\r\n export enum StoreLabels {\r\n Android = ' Оценить в ',\r\n Iphone = ' Оценить в ',\r\n }\r\n export enum StoreNames {\r\n Android = 'Google Play',\r\n Iphone = 'App Store',\r\n }\r\n \r\n}\r\nexport default WpFeedback; ","import Vue, { VueConstructor } from 'vue';\r\nimport { Prop, DefaultProps } from \"vue/types/options\";\r\nimport WpPageBaseComponent from './../../wp-page-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport {\r\n OrderSale, ISaleService, SaleSymbols, INotificationService, NotificationSymbols, OrderStatus, IMetricsService,\r\n MetricsSymbols, BaseSystemLocalizationDictionary\r\n} from 'web-platform-core-ui';\r\nimport { MetricsEvents } from '../../metrics-events-symbols';\r\nimport BaseUILocalizationDictionary from './../../Localization/base-ui-localization-terms';\r\n\r\n\r\n@Component({ \r\n template: require(\"./wp-skidata-parking.html\")\r\n})\r\nexport default class WpSkidataParking extends mixins>(WpPageBaseComponent, Vue) {\r\n \r\n}\r\n\r\nexport class WpSkidataParkingDictionary extends BaseUILocalizationDictionary {\r\n\r\n}","import { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VDatePicker } from 'vuetify/lib/components/VDatePicker';\nimport { VDialog } from 'vuetify/lib/components/VDialog';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wp-instructors-datepicker\"},[_c(VDialog,{ref:\"dialog\",attrs:{\"content-class\":\"wp-instructors-date-picker-dialog\",\"persistent\":\"\",\"width\":\"290px\"},scopedSlots:_vm._u([{key:\"activator\",fn:function(ref){\nvar on = ref.on;\nvar attrs = ref.attrs;\nreturn [_c(VTextField,_vm._g(_vm._b({attrs:{\"label\":_vm.Terms.PeriodOfStudy,\"prepend-icon\":\"mdi-calendar\",\"readonly\":\"\",\"disabled\":!_vm.SessionDatesVisible},model:{value:(_vm.FormatSelectedDate),callback:function ($$v) {_vm.FormatSelectedDate=$$v},expression:\"FormatSelectedDate\"}},'v-text-field',attrs,false),on))]}}]),model:{value:(_vm.SessionDateRangeModal),callback:function ($$v) {_vm.SessionDateRangeModal=$$v},expression:\"SessionDateRangeModal\"}},[_c(VDatePicker,{attrs:{\"width\":\"270\",\"range\":\"\",\"first-day-of-week\":\"1\",\"locale\":_vm.Locale,\"allowed-dates\":_vm.AllowedDates,\"min\":_vm.MinDate,\"max\":_vm.MaxDate,\"selected-items-text\":_vm.DatesChoosen},on:{\"input\":_vm.DateSelected},model:{value:(_vm.SessionDateRangePicker),callback:function ($$v) {_vm.SessionDateRangePicker=$$v},expression:\"SessionDateRangePicker\"}},[_c(VBtn,{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.ClearDates}},[_vm._v(_vm._s(_vm.Terms.GenericClear))]),_c(VSpacer),_c(VBtn,{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":function($event){_vm.SessionDateRangeModal = false}}},[_vm._v(_vm._s(_vm.Terms.GenericCancel))]),_c(VBtn,{attrs:{\"text\":\"\",\"color\":\"primary\"},on:{\"click\":_vm.SetDateRange}},[_vm._v(_vm._s(_vm.Terms.GenericOK))])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue';\nimport Component, { mixins } from \"vue-class-component\";\nimport WpBaseComponent from './../components';\nimport { Initializer, IContext, IdentitySymbols } from 'web-platform-core-ui';\n\n@Component\nexport default class SibSaleApp extends mixins(Vue, WpBaseComponent) { \n Loading: boolean = true;\n IsInitializedError: boolean = true;\n IsOffline: boolean = false;\n OnlineStatusChange(isOnline: boolean): void {\n this.IsOffline = !isOnline;\n }\n\n async mounted() {\n let context = this.GlobalService.Get(IdentitySymbols.Context);\n let initResult = await Initializer.InitializeAsync(this.GlobalService);\n\n if (initResult.Success) {\n this.IsInitializedError = false;\n } else {\n Error(`Initilization error: ${initResult.ErrorMessage}`);\n }\n\n removeMainLoadingWrapper();\n this.Loading = false;\n }\n}\n","import mod from \"-!../../../../../node_modules/vuetify-loader/lib/loader.js??ref--4!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./wp-instructors-datepicker.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/vuetify-loader/lib/loader.js??ref--4!../../../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--14-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./wp-instructors-datepicker.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./wp-instructors-datepicker.vue?vue&type=template&id=6ac57bdc&scoped=true&\"\nimport script from \"./wp-instructors-datepicker.vue?vue&type=script&lang=ts&\"\nexport * from \"./wp-instructors-datepicker.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./wp-instructors-datepicker.vue?vue&type=style&index=0&id=6ac57bdc&prod&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6ac57bdc\",\n null\n \n)\n\nexport default component.exports","import './wp-arena-sectors.scss';\r\n\r\nimport Vue from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, { ArenaSector, AppSettings, IArenaService, ArenaSymbols, ArenaSeance, ArenaSectorList, ArenaPolygonPoint, WpCorePrefixes, ICmsService, CmsSymbols, BaseFilter } from 'web-platform-core-ui';\r\nimport { PropSync, Watch } from 'vue-property-decorator';\r\n\r\nexport const wpArenaSectorsProp = Vue.extend({\r\n props: {\r\n //Seance: Object as Prop,\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-arena-sectors.html\")\r\n})\r\nexport default class WpArenaSectors extends mixins(WpBaseComponent, Vue, wpArenaSectorsProp) {\r\n private _arenaService!: IArenaService;\r\n\r\n Settings!: AppSettings;\r\n SectorsList: ArenaSectorList = new ArenaSectorList();\r\n SectorFreePlacesArray: Array = [];\r\n Loading: boolean = false;\r\n ForcedSector: ArenaSector | null = null;\r\n\r\n @PropSync('seance', { type: Object }) Seance!: ArenaSeance;\r\n\r\n @Watch('Seance')\r\n async OnSeanceChange(seance: ArenaSeance) {\r\n this.Seance = seance;\r\n this.RenderSectors();\r\n };\r\n\r\n async mounted(): Promise {\r\n this._arenaService = this.GlobalService.Get(ArenaSymbols.ArenaService);\r\n this.Settings = GlobalService.GetSettings();\r\n await this.RenderSectors();\r\n if (this.Settings.ForceSectorId) {\r\n this.ForcedSector = this.SectorsList.Sectors.find(sector => sector.SectorCode == this.Settings.ForceSectorId) || null;\r\n if (this.ForcedSector) {\r\n this.SectorSelected(this.ForcedSector);\r\n this.$emit(\"ForcedSectorDetected\", this.ForcedSector);\r\n }\r\n };\r\n };\r\n\r\n async RenderSectors(): Promise {\r\n this.Loading = true;\r\n\r\n if (this.Seance != null) {\r\n let sectors = await this._arenaService.GetSectorsAsync(this.Seance.Id);\r\n let tariffs = await this._arenaService.GetTariffsAsync(this.Seance.Id);\r\n\r\n let sectorsList: Array = [];\r\n // todo: переписать с нормальными функциями\r\n if (sectors.Success && sectors.Data != null) {\r\n let cmsService = this.GlobalService.Get(CmsSymbols.CmsService);\r\n let result = await cmsService.GetEntitiesAsync(WpCorePrefixes.ArenaSectorNames, new BaseFilter(), '');\r\n\r\n if (result.Success && result.Data != null) {\r\n sectors.Data.Sectors.forEach(x => {\r\n let sector = result.Data?.Entities.find(sc => sc.SectorCode == x.SectorCode);\r\n if (sector != null) x.Name = sector.Name;\r\n })\r\n }\r\n\r\n\r\n if (tariffs.Success && tariffs.Data !== undefined) {\r\n for (let i = 0; i < sectors.Data.Sectors.length; i++) {\r\n\r\n let SectorCode = sectors.Data.Sectors[i].SectorCode;\r\n let SectorCodeFreePlaces = 0;\r\n\r\n let TariffCodesInSector = [];\r\n\r\n for (let j = 0; j < tariffs.Data.length; j++) {\r\n let row = tariffs.Data[j];\r\n\r\n if (row.FreePlaces !== undefined) {\r\n for (let k = 0; k < row.FreePlaces?.length; k++) {\r\n let row2 = row.FreePlaces[k];\r\n\r\n if (row2.SectorCode === SectorCode) {\r\n\r\n TariffCodesInSector.push({\r\n TariffCode: row.TariffCode,\r\n MinPrice: row.MinPrice,\r\n MaxPrice: row.MaxPrice\r\n });\r\n SectorCodeFreePlaces = SectorCodeFreePlaces + row2.Count;\r\n }\r\n }\r\n }\r\n }\r\n let MinPriceArr = [];\r\n let MaxPriceArr = [];\r\n\r\n for (let l = 0; l < TariffCodesInSector.length; l++) {\r\n let tariffrow = TariffCodesInSector[l];\r\n\r\n MinPriceArr.push(tariffrow.MinPrice);\r\n MaxPriceArr.push(tariffrow.MaxPrice);\r\n }\r\n\r\n this.SectorFreePlacesArray.push({\r\n SectorCode: SectorCode,\r\n FreePlaces: SectorCodeFreePlaces,\r\n MinPrice: Math.min.apply(null, MinPriceArr),\r\n MaxPrice: Math.max.apply(null, MaxPriceArr)\r\n });\r\n if (SectorCodeFreePlaces > 0)\r\n sectorsList.push(sectors.Data.Sectors[i]);\r\n }\r\n }\r\n sectors.Data.Sectors = sectorsList;\r\n this.SectorsList = sectors.Data;\r\n this.Loading = false;\r\n }\r\n }\r\n }\r\n\r\n get ViewBox(): string {\r\n return `0 0 ${this.SectorsList?.ImageWidth} ${this.SectorsList?.ImageHeight}`;\r\n };\r\n\r\n StringPoints(points: Array): string {\r\n let result = '';\r\n points.forEach(point => {\r\n result += `${point.X},${point.Y} `\r\n });\r\n return result.trimRight();\r\n };\r\n\r\n SectorSelected(sector: ArenaSector) {\r\n this.$emit(\"SectorSelected\", { Sector: sector, ArenaText: this.SectorsList.ArenaText, ArenaPosition: this.SectorsList.ArenaPosition });\r\n };\r\n\r\n PolygonSelected(sector: ArenaSector) {\r\n this.$emit(\"SectorSelected\", { Sector: sector, ArenaText: this.SectorsList.ArenaText, ArenaPosition: this.SectorsList.ArenaPosition });\r\n };\r\n};","import './wp-login-page.scss';\r\n\r\nimport Vue, { PropOptions } from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport WpPageBaseComponent from './../wp-page-base-component';\r\nimport GlobalService, {\r\n AppSettings, ModifiedWebSaleUserIdentity,\r\n IContext, IdentitySymbols, IdentityLoginState\r\n} from 'web-platform-core-ui';\r\nimport { Watch } from 'vue-property-decorator';\r\n\r\nexport const wpLoginDialogProps = Vue.extend({\r\n props: {\r\n CanClose: {\r\n type: Boolean,\r\n default: true\r\n },\r\n ShowDialog: {\r\n type: Boolean,\r\n default: false\r\n }\r\n }\r\n})\r\n\r\nexport enum WpLoginDialogState {\r\n Hidden = 0,\r\n Show = 1\r\n}\r\n\r\n@Component({\r\n template: require(\"./wp-login-dialog.html\")\r\n})\r\nexport default class WpLoginDialog extends mixins(WpPageBaseComponent, wpLoginDialogProps, Vue) {\r\n private _context?: ModifiedWebSaleUserIdentity;\r\n\r\n Step: number = 1;\r\n Url: string = '';\r\n Snackbar: boolean = false;\r\n Dialog: boolean = false;\r\n\r\n Settings!: AppSettings;\r\n\r\n\r\n mounted() {\r\n this.Settings = GlobalService.GetSettings();\r\n this.Url = `/organization/logo/${this.Settings.SiteId}`;\r\n\r\n if (this.GetItem('identity-login-warn-message') != null)\r\n this.Snackbar = false;\r\n else\r\n this.Snackbar = true;\r\n\r\n this.Dialog = this.ShowDialog;\r\n this._context = this.GlobalService.Get(IdentitySymbols.Context) as ModifiedWebSaleUserIdentity;\r\n if (this._context != null) {\r\n let dialog = this;\r\n this._context.SignInCalled.Subscribe((sender, e) => {\r\n dialog.Dialog = true;\r\n })\r\n }\r\n }\r\n\r\n ImgError(e: any) {\r\n e.target.src = \"https://info.moipass.ru/images/webplatform.png\";\r\n }\r\n\r\n NotShow() {\r\n this.SetItem('identity-login-warn-message', 'false');\r\n this.Snackbar = false;\r\n }\r\n\r\n AppGoBack(): void {\r\n if (this.Step != 1)\r\n this.Step = 1;\r\n else\r\n this.Dialog = false;\r\n }\r\n\r\n @Watch('Dialog')\r\n onPropertyChanged(value: boolean, oldValue: boolean) {\r\n IdentityLoginState.IsLoginShow = value;\r\n }\r\n\r\n GetItem(key: string): string | null {\r\n try {\r\n return localStorage.getItem(key);\r\n } catch (e) {\r\n console.error(e);\r\n return null;\r\n }\r\n }\r\n\r\n SetItem(key: string, value: string) {\r\n try {\r\n return localStorage.setItem(key, value);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n}\r\n\r\n","import './wp-login-page.scss';\r\n\r\nimport Vue from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport WpPageBaseComponent from './../wp-page-base-component';\r\nimport GlobalService, { AppSettings } from 'web-platform-core-ui';\r\n\r\n@Component({\r\n template: require(\"./wp-login-page.html\")\r\n})\r\nexport default class WpLoginPage extends mixins(WpPageBaseComponent, Vue) {\r\n Step: number = 1;\r\n Url: string = '';\r\n Snackbar: boolean = false;\r\n\r\n mounted() {\r\n if (localStorage.getItem('identity-login-warn-message') != null)\r\n this.Snackbar = false;\r\n else\r\n this.Snackbar = true;\r\n\r\n let formSaleUrl = document.getElementById(\"form-sale-url\");\r\n let formOrgId = document.getElementById(\"form-org-id\");\r\n\r\n let saleUrl = '';\r\n let orgId = '';\r\n\r\n if (formSaleUrl != null) {\r\n saleUrl = formSaleUrl.getAttribute(\"value\") ?? '';\r\n }\r\n\r\n if (formOrgId != null) { \r\n orgId = formOrgId.getAttribute(\"value\") ?? '';\r\n }\r\n\r\n if (saleUrl != '' && orgId != '')\r\n this.Url = `${saleUrl}organizations/logo/${orgId}`;\r\n else\r\n this.Url = 'https://info.moipass.ru/images/webplatform.png';\r\n }\r\n\r\n NotShow() {\r\n localStorage.setItem('identity-login-warn-message', 'false');\r\n this.Snackbar = false;\r\n }\r\n\r\n AppGoBack(): void {\r\n if (this.Step == 1)\r\n closeApplication(\"\");\r\n else\r\n this.Step = 1;\r\n }\r\n} ","import Vue from 'vue';\r\n\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { VueConstructor } from 'vue/types/umd';\r\nimport GlobalService, {\r\n IContext, IdentitySymbols, IsdUserLoyalty,\r\n ILoyaltyProvider, LoyaltySymbols, INotificationService, NotificationSymbols,\r\n AppSettings\r\n} from 'web-platform-core-ui';\r\nimport BaseUILocalizationDictionary from '../Localization/base-ui-localization-terms';\r\nimport { DefaultProps } from 'vue/types/options';\r\nimport WpPageBaseComponent from '../wp-page-base-component';\r\n\r\nexport const wpSettingsProps = Vue.extend({\r\n props: {\r\n CustomSettings: Array,\r\n }\r\n});\r\n\r\n@Component({\r\n template: require(\"./wp-settings.html\")\r\n})\r\nexport class WpSettings extends mixins, DefaultProps, VueConstructor>(WpPageBaseComponent, wpSettingsProps, Vue) {\r\n protected _context!: IContext;\r\n protected _provider!: ILoyaltyProvider;\r\n protected _isdUserLoyalty!: IsdUserLoyalty;\r\n protected _notificationService!: INotificationService;\r\n protected _settings!: AppSettings;\r\n\r\n DarkTheme: boolean = false;\r\n IsIphone: boolean = false;\r\n StoreIcon: string = '';\r\n StoreLink: string = '';\r\n StoreLabel: string = '';\r\n\r\n EmailNotification: boolean = false; \r\n EmailNotificationLoading: boolean = true;\r\n SmsNotification: boolean = false;\r\n SmsNotificationLoading: boolean = true;\r\n PushNotification: boolean = false;\r\n PushNotificationLoading: boolean = true;\r\n\r\n\r\n protected Settings: Array = [];\r\n\r\n created(): void {\r\n this._settings = GlobalService.GetSettings();\r\n this._context = this.GlobalService.Get(IdentitySymbols.Context);\r\n this._provider = this.GlobalService.Get(LoyaltySymbols.LoyaltyProvider);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n\r\n this.IsIphone = /iPhone|iPad|MacIntel|iPadOS|Macintosh|iPod/i.test(navigator.userAgent);\r\n if (this.IsIphone) {\r\n this.StoreIcon = WpSettings.StoreIcons.Iphone;\r\n this.StoreLink = WpSettings.StoreLinks.Iphone;\r\n this.StoreLabel = WpSettings.StoreLabels.Iphone;\r\n } else {\r\n this.StoreIcon = WpSettings.StoreIcons.Android;\r\n this.StoreLink = WpSettings.StoreLinks.Android;\r\n this.StoreLabel = WpSettings.StoreLabels.Android;\r\n };\r\n };\r\n\r\n async mounted(): Promise {\r\n let query = await this._provider.GetIsdUserLoyaltyAsync();\r\n if (!query.Success || query.Data == undefined) return;\r\n\r\n this._isdUserLoyalty = query.Data!;\r\n\r\n if (this.CustomSettings) {\r\n this.Settings = this.CustomSetting;\r\n } else {\r\n this.EmailNotification = this._isdUserLoyalty.EmailNotification;\r\n this.SmsNotification = this._isdUserLoyalty.SmsNotification;\r\n this.PushNotification = this._isdUserLoyalty.PushNotification;\r\n\r\n this.EmailNotificationLoading = false;\r\n this.SmsNotificationLoading = false;\r\n this.PushNotificationLoading = false; \r\n };\r\n\r\n };\r\n\r\n async EmailNotificationChange() {\r\n if (this.EmailNotificationLoading)\r\n return;\r\n\r\n this.EmailNotificationLoading = true;\r\n let res = await this._provider.UpdateNotificationSettings(\"Email\", this.EmailNotification);\r\n if (!res.Success)\r\n this._notificationService.Error(\"\", res.ErrorMessage ?? \"Произошла непредвиденная ошибка\");\r\n this.EmailNotificationLoading = false;\r\n }\r\n\r\n async SmsNotificationChange() {\r\n if (this.SmsNotificationLoading)\r\n return;\r\n\r\n this.SmsNotificationLoading = true;\r\n let res = await this._provider.UpdateNotificationSettings(\"SMS\", this.SmsNotification);\r\n if (!res.Success)\r\n this._notificationService.Error(\"\", res.ErrorMessage ?? \"Произошла непредвиденная ошибка\");\r\n this.SmsNotificationLoading = false;\r\n }\r\n\r\n async PushNotificationChange() {\r\n if (this.PushNotificationLoading)\r\n return;\r\n\r\n this.PushNotificationLoading = true;\r\n let res = await this._provider.UpdateNotificationSettings(\"Push\", this.PushNotification);\r\n if (!res.Success)\r\n this._notificationService.Error(\"\", res.ErrorMessage ?? \"Произошла непредвиденная ошибка\");\r\n this.PushNotificationLoading = false;\r\n }\r\n\r\n OpenStore(): void {\r\n if (this.IsIphone) {\r\n storeRequestReview();\r\n } else {\r\n try {\r\n openInBrowser(this.StoreLink);\r\n } catch (e) {\r\n console.log('We tried to open a link in the browser, but got this error instead:');\r\n console.error(e);\r\n };\r\n };\r\n };\r\n\r\n SignOut() {\r\n try {\r\n removePushToken(this._context.CurrentIdentity.AccessToken.Token);\r\n } catch (e) {\r\n console.log('We tried to remove push token, but got this error instead:');\r\n console.error(e);\r\n };\r\n this._context.SignOut();\r\n this._pageNotifitcationService.SendSystemNotification(\"LogOut\");\r\n };\r\n\r\n SwitchTheme() {\r\n this.DarkTheme = !this.DarkTheme;\r\n this.$vuetify.theme.dark = this.DarkTheme;\r\n };\r\n};\r\n\r\nexport class WpSettingsDictionary extends BaseUILocalizationDictionary {\r\n //\r\n};\r\n\r\nexport class Setting {\r\n Icon!: string;\r\n Label!: string;\r\n To?: any = null;\r\n IsSwitch?: boolean;\r\n Callback?: Function;\r\n SwitchModel?: boolean = false;\r\n Disabled?: boolean;\r\n};\r\n\r\nexport namespace WpSettings {\r\n export enum StoreIcons {\r\n Android = ' Оценить в ',\r\n Iphone = ' Оценить в ',\r\n };\r\n export enum StoreLinks {\r\n Android = 'market://details?id=ru.aqua.luzhniki',\r\n Iphone = 'itms-apps://itunes.apple.com/app/1487953621?action=write-review',\r\n };\r\n export enum StoreLabels {\r\n Android = 'Оценить в Google Play',\r\n Iphone = 'Оценить в App Store',\r\n };\r\n};\r\nexport default WpSettings;","import Vue from 'vue';\r\nimport { Watch } from 'vue-property-decorator';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport WpBaseComponent from './../wp-base-component';\r\nimport { INotificationService, NotificationSymbols, NotificationEventArgs, NotificationTypes } from 'web-platform-core-ui';\r\n\r\nexport const wpNotificationQueueProps = Vue.extend({\r\n props: {\r\n value: {\r\n required: false,\r\n default: false\r\n },\r\n timeout: {\r\n required: false,\r\n default: 3000\r\n },\r\n color: {\r\n required: false,\r\n default: 'error'\r\n },\r\n top: {\r\n required: false,\r\n default: false\r\n },\r\n right: {\r\n required: false,\r\n default: false\r\n },\r\n absolute: {\r\n required: false,\r\n default: false\r\n },\r\n autoHeight: {\r\n required: false,\r\n default: false\r\n },\r\n bottom: {\r\n required: false,\r\n default: false\r\n },\r\n left: {\r\n required: false,\r\n default: false\r\n },\r\n multiLine: {\r\n required: false,\r\n default: false\r\n },\r\n vertical: {\r\n required: false,\r\n default: false\r\n }\r\n },\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-notification-queue.html\"),\r\n})\r\nexport default class WpNotificationQueue extends mixins(WpBaseComponent, wpNotificationQueueProps, Vue) {\r\n _service!: INotificationService;\r\n\r\n processing: boolean = false;\r\n timeoutId: any = false;\r\n value: boolean = false;\r\n items: Array = [];\r\n\r\n @Watch('items')\r\n processItems() {\r\n const vm = this\r\n this.processing = true\r\n if (this.items.length > 0) {\r\n let item = this.items[0] as any;\r\n return this.timeoutId = setTimeout(() => {\r\n vm.removeItem(item.Id)\r\n }, vm.timeout)\r\n }\r\n this.processing = false\r\n }\r\n\r\n removeItem(id: string) { \r\n clearTimeout(this.timeoutId)\r\n let item = this.items.find(x => x.Id == id);\r\n if (item != null) { \r\n let index: number = this.items.indexOf(item);\r\n this.items.splice(index, 1);\r\n }\r\n\r\n if (this.items.length > 0) {\r\n return this.processItems()\r\n }\r\n }\r\n\r\n async mounted() {\r\n this._service = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n\r\n this._service.NotificationSended.Subscribe(this.notification);\r\n }\r\n\r\n notification(sender: any, e: NotificationEventArgs) {\r\n if (e.Data.Type != NotificationTypes.System) {\r\n let item = new WpNotificationQueueItem();\r\n\r\n item.Id = this.uniqueId('item');\r\n item.Color = this.getColorString(e.Data.Type);\r\n item.Message = e.Data.Message;\r\n\r\n this.items.push(item);\r\n }\r\n }\r\n\r\n uniqueId(prefix: string): string {\r\n return `${prefix}_${Math.random().toString(36).substr(2, 9)}`;\r\n }\r\n\r\n getColorString(type: NotificationTypes): string {\r\n if (type == NotificationTypes.Warning) return 'warning'\r\n else if (type == NotificationTypes.Error) return 'error'\r\n else if (type == NotificationTypes.Success) return 'success'\r\n else return 'info';\r\n }\r\n}\r\n\r\nclass WpNotificationQueueItem {\r\n Id: string = '';\r\n Message: string = '';\r\n Color: string = 'info';\r\n}","import './wp-error.scss';\r\n\r\nimport Vue from 'vue';\r\nimport { Prop } from \"vue/types/options\";\r\nimport WpPageBaseComponent from './../wp-page-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\n\r\n@Component({ \r\n template: require(\"./wp-error.html\")\r\n})\r\nexport class WpError extends mixins(WpPageBaseComponent, Vue) {\r\n\r\n RequiredReload: boolean = false;\r\n async mounted() {\r\n let requiresReloadOnError = this.$route.matched.some(record => record.meta.requiresReloadOnError);\r\n if (requiresReloadOnError) {\r\n this.RequiredReload = true;\r\n }\r\n }\r\n\r\n async beforeDestroy() {\r\n if (this.RequiredReload) {\r\n window.location.reload();\r\n }\r\n }\r\n\r\n}\r\nexport namespace WpError {\r\n export enum ErrorTypes {\r\n False = 0,\r\n Offline = 1,\r\n OfflineReload = 2,\r\n Server = 3\r\n }\r\n}\r\nexport default WpError;","import {\r\n VApp,\r\n VAppBar,\r\n VAppBarNavIcon,\r\n VAlert,\r\n VAutocomplete,\r\n VAvatar,\r\n VBadge,\r\n VBanner,\r\n VBottomNavigation,\r\n VBottomSheet,\r\n VBreadcrumbs,\r\n VBreadcrumbsItem,\r\n VBreadcrumbsDivider,\r\n VBtn,\r\n VBtnToggle,\r\n VCalendar,\r\n VCalendarDaily,\r\n VCalendarWeekly,\r\n VCalendarMonthly,\r\n VCard,\r\n VCardTitle,\r\n VCardSubtitle,\r\n VCardActions,\r\n VCardText,\r\n VCarousel,\r\n VCarouselItem,\r\n VCheckbox,\r\n VSimpleCheckbox,\r\n VChip,\r\n VChipGroup,\r\n VColorPicker,\r\n VColorPickerSwatches,\r\n VColorPickerCanvas,\r\n VContent,\r\n VCombobox,\r\n VCounter,\r\n VData,\r\n VDataIterator,\r\n VDataFooter,\r\n VDataTable,\r\n VEditDialog,\r\n VTableOverflow,\r\n VDataTableHeader,\r\n VSimpleTable,\r\n VVirtualTable,\r\n VDatePicker,\r\n VDatePickerTitle,\r\n VDatePickerHeader,\r\n VDatePickerDateTable,\r\n VDatePickerMonthTable,\r\n VDatePickerYears,\r\n VDialog,\r\n VDivider,\r\n VExpansionPanels,\r\n VExpansionPanel,\r\n VExpansionPanelHeader,\r\n VExpansionPanelContent,\r\n VFileInput,\r\n VFooter,\r\n VForm,\r\n VContainer,\r\n VCol,\r\n VRow,\r\n VSpacer,\r\n VLayout,\r\n VFlex,\r\n VHover,\r\n VIcon,\r\n VImg,\r\n VInput,\r\n VItem,\r\n VItemGroup,\r\n VLabel,\r\n VLazy,\r\n VListItemActionText,\r\n VListItemContent,\r\n VListItemTitle,\r\n VListItemSubtitle,\r\n VList,\r\n VListGroup,\r\n VListItem,\r\n VListItemAction,\r\n VListItemAvatar,\r\n VListItemIcon,\r\n VListItemGroup,\r\n VMenu,\r\n VMessages,\r\n VNavigationDrawer,\r\n VOverflowBtn,\r\n VOverlay,\r\n VPagination,\r\n VSheet,\r\n VParallax,\r\n VPicker,\r\n VProgressCircular,\r\n VProgressLinear,\r\n VRadioGroup,\r\n VRadio,\r\n VRangeSlider,\r\n VRating,\r\n VResponsive,\r\n VSelect,\r\n VSkeletonLoader,\r\n VSlider,\r\n VSlideGroup,\r\n VSlideItem,\r\n VSnackbar,\r\n VSparkline,\r\n VSpeedDial,\r\n VStepper,\r\n VStepperContent,\r\n VStepperStep,\r\n VStepperHeader,\r\n VStepperItems,\r\n VSubheader,\r\n VSwitch,\r\n VSystemBar,\r\n VTabs,\r\n VTab,\r\n VTabItem,\r\n VTabsItems,\r\n VTabsSlider,\r\n VTextarea,\r\n VTextField,\r\n VTimeline,\r\n VTimelineItem,\r\n VTimePicker,\r\n VTimePickerClock,\r\n VTimePickerTitle,\r\n VToolbar,\r\n VToolbarItems,\r\n VToolbarTitle,\r\n VTooltip,\r\n VTreeview,\r\n VTreeviewNode,\r\n VWindow,\r\n VWindowItem,\r\n VCarouselTransition,\r\n VCarouselReverseTransition,\r\n VTabTransition,\r\n VTabReverseTransition,\r\n VMenuTransition,\r\n VFabTransition,\r\n VDialogTransition,\r\n VDialogBottomTransition,\r\n VFadeTransition,\r\n VScaleTransition,\r\n VScrollXTransition,\r\n VScrollXReverseTransition,\r\n VScrollYTransition,\r\n VScrollYReverseTransition,\r\n VSlideXTransition,\r\n VSlideXReverseTransition,\r\n VSlideYTransition,\r\n VSlideYReverseTransition,\r\n VExpandTransition,\r\n VExpandXTransition,\r\n VOtpInput\r\n} from 'vuetify/lib';\r\n\r\nexport const vuetifyComponents = {\r\n VApp,\r\n VAppBar,\r\n VAppBarNavIcon,\r\n VAlert,\r\n VAutocomplete,\r\n VAvatar,\r\n VBadge,\r\n VBanner,\r\n VBottomNavigation,\r\n VBottomSheet,\r\n VBreadcrumbs,\r\n VBreadcrumbsItem,\r\n VBreadcrumbsDivider,\r\n VBtn,\r\n VBtnToggle,\r\n VCalendar,\r\n VCalendarDaily,\r\n VCalendarWeekly,\r\n VCalendarMonthly,\r\n VCard,\r\n VCardTitle,\r\n VCardSubtitle,\r\n VCardActions,\r\n VCardText,\r\n VCarousel,\r\n VCarouselItem,\r\n VCheckbox,\r\n VSimpleCheckbox,\r\n VChip,\r\n VChipGroup,\r\n VColorPicker,\r\n VColorPickerSwatches,\r\n VColorPickerCanvas,\r\n VContent,\r\n VCombobox,\r\n VCounter,\r\n VData,\r\n VDataIterator,\r\n VDataFooter,\r\n VDataTable,\r\n VEditDialog,\r\n VTableOverflow,\r\n VDataTableHeader,\r\n VSimpleTable,\r\n VVirtualTable,\r\n VDatePicker,\r\n VDatePickerTitle,\r\n VDatePickerHeader,\r\n VDatePickerDateTable,\r\n VDatePickerMonthTable,\r\n VDatePickerYears,\r\n VDialog,\r\n VDivider,\r\n VExpansionPanels,\r\n VExpansionPanel,\r\n VExpansionPanelHeader,\r\n VExpansionPanelContent,\r\n VFileInput,\r\n VFooter,\r\n VForm,\r\n VContainer,\r\n VCol,\r\n VRow,\r\n VSpacer,\r\n VLayout,\r\n VFlex,\r\n VHover,\r\n VIcon,\r\n VImg,\r\n VInput,\r\n VItem,\r\n VItemGroup,\r\n VLabel,\r\n VLazy,\r\n VListItemActionText,\r\n VListItemContent,\r\n VListItemTitle,\r\n VListItemSubtitle,\r\n VList,\r\n VListGroup,\r\n VListItem,\r\n VListItemAction,\r\n VListItemAvatar,\r\n VListItemIcon,\r\n VListItemGroup,\r\n VMenu,\r\n VMessages,\r\n VNavigationDrawer,\r\n VOverflowBtn,\r\n VOverlay,\r\n VPagination,\r\n VSheet,\r\n VParallax,\r\n VPicker,\r\n VProgressCircular,\r\n VProgressLinear,\r\n VRadioGroup,\r\n VRadio,\r\n VRangeSlider,\r\n VRating,\r\n VResponsive,\r\n VSelect,\r\n VSkeletonLoader,\r\n VSlider,\r\n VSlideGroup,\r\n VSlideItem,\r\n VSnackbar,\r\n VSparkline,\r\n VSpeedDial,\r\n VStepper,\r\n VStepperContent,\r\n VStepperStep,\r\n VStepperHeader,\r\n VStepperItems,\r\n VSubheader,\r\n VSwitch,\r\n VSystemBar,\r\n VTabs,\r\n VTab,\r\n VTabItem,\r\n VTabsItems,\r\n VTabsSlider,\r\n VTextarea,\r\n VTextField,\r\n VTimeline,\r\n VTimelineItem,\r\n VTimePicker,\r\n VTimePickerClock,\r\n VTimePickerTitle,\r\n VToolbar,\r\n VToolbarItems,\r\n VToolbarTitle,\r\n VTooltip,\r\n VTreeview,\r\n VTreeviewNode,\r\n VWindow,\r\n VWindowItem,\r\n VCarouselTransition,\r\n VCarouselReverseTransition,\r\n VTabTransition,\r\n VTabReverseTransition,\r\n VMenuTransition,\r\n VFabTransition,\r\n VDialogTransition,\r\n VDialogBottomTransition,\r\n VFadeTransition,\r\n VScaleTransition,\r\n VScrollXTransition,\r\n VScrollXReverseTransition,\r\n VScrollYTransition,\r\n VScrollYReverseTransition,\r\n VSlideXTransition,\r\n VSlideXReverseTransition,\r\n VSlideYTransition,\r\n VSlideYReverseTransition,\r\n VExpandTransition,\r\n VExpandXTransition,\r\n VOtpInput\r\n}","import 'reflect-metadata';\r\nimport WpBaseComponent from './wp-base-component';\r\n\r\n// Common components\r\nimport WpBarChart from './WpCommon/WpBarChart/wp-bar-chart';\r\nimport WpLoadingOverlay from './WpCommon/WpLoadingOverlay/wp-loading-overlay';\r\n\r\nimport WpProfile from './WpProfile/wp-profile';\r\nimport WpChangePassword from './WpProfile/wp-change-password'\r\n\r\nimport WpNews from './WpNews/wp-news';\r\nimport WpNewsItem, { wpNewsItemProps } from './WpNews/wp-news-item';\r\nimport WpNewsArticle, { wpNewsArticleProps } from './WpNews/wp-news-article';\r\n\r\nimport WpOrders from './WpOrder/wp-orders';\r\nimport WpOrder from './WpOrder/wp-order';\r\n\r\nimport WpIsdLoyalty from './WpLoyalty/WpIsdLoyalty/wp-isd-loyalty';\r\nimport WpIsdLoyaltyRegister from './WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyRegister/wp-isd-loyalty-register';\r\nimport WpIsdLoyaltyEdit from './WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyEdit/wp-isd-loyalty-edit';\r\nimport WpIsdLoyaltyChildren from './WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyChildren/wp-isd-loyalty-children'\r\nimport WpClientsCards from './WpClientsCards/wp-clients-cards';\r\n\r\nimport WpPhoneConfirm from './WpPhoneConfirm/wp-phone-confirm';\r\n\r\nimport WpMain from './WpMain/wp-main';\r\nimport WpMainNewsItem from './WpMain/WpMainNews/main-news-item';\r\n\r\nimport WpFeedback from './WpFeedback/wp-feedback';\r\n\r\nimport WpSkidataParking from './WpSale/WpSkidataParking/wp-skidata-parking';\r\n\r\nimport WpInstructors from './WpSale/WpInstructors/wp-instructors';\r\nimport WpInstructorsGroup from './WpSale/WpInstructors/wp-instructors-group';\r\nimport WpInstructorsLessons from './WpSale/WpInstructors/WpInstructorsLessons/wp-instructors-lessons';\r\nimport WpInstructorsGroupLessons from './WpSale/WpInstructors/WpInstructorsLessons/wp-instructors-group-lessons';\r\nimport WpInstructorsDatepicker from './WpSale/WpInstructors/WpInstructorsDatepicker/wp-instructors-datepicker.vue';\r\nimport WpInstructorsBundles from './WpSale/WpInstructors/wp-instructors-bundles';\r\nimport WpInstructorsBundlesLessons from './WpSale/WpInstructors/WpInstructorsLessons/wp-instructors-bundles-lessons';\r\n\r\nimport WpTariffs from './WpSale/WpTariffs/wp-tariffs';\r\nimport WpTariffsRewrite from './WpSale/WpTariffs/wp-tariffs-rewrite';\r\nimport WpTariffItem from './WpSale/WpTariffs/WpTariffItem/wp-tariff-item';\r\nimport WpTariffBundle from './WpSale/WpTariffs/WpTariffItem/wp-tariff-bundle';\r\nimport WpTariffRewriteItem from './WpSale/WpTariffs/WpTariffItem/wp-tariff-rewrite-item';\r\nimport WpTariffsDatepicker from './WpSale/WpTariffs/WpTariffsDatepicker/wp-tariffs-datepicker';\r\n\r\nconst WpArena = () => import('./WpSale/WpArena/wp-arena');\r\nconst WpArenaSeances = () => import('./WpSale/WpArena/WpArenaSeances/wp-arena-seances');\r\nconst WpArenaSeanceItem = () => import('./WpSale/WpArena/WpArenaSeances/wp-arena-seance-item');\r\nconst WpArenaSeats = () => import('./WpSale/WpArena/WpArenaSeats/wp-arena-seats');\r\nconst WpArenaSeatItem = () => import('./WpSale/WpArena/WpArenaSeats/wp-arena-seat-item');\r\nconst WpArenaSectorItem = () => import('./WpSale/WpArena/WpArenaSectors/wp-arena-sector-item');\r\nimport WpArenaSectors from './WpSale/WpArena/WpArenaSectors/wp-arena-sectors';\r\n\r\nimport WpCart from './WpSale/WpCart/wp-cart';\r\nimport WpCartItem from './WpSale/WpCart/WpCartItem/wp-cart-item';\r\nimport WpCartBundle from './WpSale/WpCart/WpCartBundle/wp-cart-bundle';\r\n\r\nimport WpPayConfirm from './WpSale/WpPayConfirm/wp-payconfirm'; \r\nimport WpPayConfirmItem from './WpSale/WpPayConfirm/WpPayConfirmItem/wp-payconfirm-item'; \r\nimport WpPayConfirmBundle from './WpSale/WpPayConfirm/WpPayConfirmItem/wp-payconfirm-bundle';\r\nimport WpPayConfirmPromo from './WpSale/WpPayConfirm/WpPayConfirmPromo/wp-payconfirm-promo';\r\n\r\nimport WpPersonification from './WpSale/WpPersonification/wp-personification';\r\nimport WpPersonificationItem from './WpSale/WpPersonification/WpPersonificationItem/wp-personification-item';\r\nimport WpPersonificationBundle from './WpSale/WpPersonification/WpPersonificationItem/wp-personification-bundle';\r\nimport WpPersonificationBundleForm from './WpSale/WpPersonification/WpPersonificationItem/wp-personification-bundle-form';\r\n\r\nimport WpMarketRules from './WpSale/WpMarket/wp-market-rules';\r\nimport WpMarketRuleItem from './WpSale/WpMarket/wp-market-rule-item';\r\n\r\nimport WpLoginDialog from './WpLogin/wp-login-dialog';\r\nimport WpLoginPage from './WpLogin/wp-login-page';\r\nimport WpLoginForm from './WpLogin/WpLoginForm/wp-login-form';\r\nimport WpPasswordReset from './WpLogin/WpPasswordReset/wp-password-reset';\r\nimport WpRegistrationForm from './WpLogin/WpRegistrationForm/wp-registration-form';\r\n\r\nimport WpSettings from './WpSettings/wp-settings';\r\nimport WpTopBar from './WpTopBar/wp-top-bar';\r\n\r\nimport WpOrderTimer from './WpSale/WpOrderTimer/wp-order-timer';\r\n\r\nimport WpRules from './WpSale/WpPayConfirm/WpRules/wp-rules';\r\n\r\nimport WpComplete from './WpSale/WpComplete/wp-complete';\r\n\r\nimport WpSale from './WpSale/wp-sale';\r\n\r\nimport WpNotificationQueue from './WpNotification/wp-notification-queue';\r\n\r\nimport WpError from './WpError/wp-error';\r\n\r\nimport WpPageBaseComponent from './wp-page-base-component';\r\n\r\nimport { vuetifyComponents } from './vuetify-components';\r\n\r\nconst VOffline = require('v-offline').default;\r\nconst PincodeInput = require('vue-pincode-input').default;\r\n\r\nexport default WpBaseComponent;\r\n\r\nexport { WpBarChart };\r\nexport { WpLoadingOverlay };\r\nexport { WpProfile };\r\nexport { WpChangePassword };\r\nexport { WpNews, wpNewsItemProps, WpNewsArticle, wpNewsArticleProps, WpNewsItem };\r\nexport { WpOrders, WpOrder };\r\nexport { WpIsdLoyalty, WpIsdLoyaltyRegister, WpClientsCards };\r\nexport { WpPhoneConfirm };\r\nexport { WpMain };\r\nexport { WpMainNewsItem };\r\nexport { WpFeedback };\r\nexport { WpInstructors, WpInstructorsGroup, WpInstructorsLessons, WpInstructorsGroupLessons, WpInstructorsDatepicker };\r\nexport { WpTariffs, WpTariffsRewrite, WpTariffItem, WpTariffBundle, WpTariffRewriteItem, WpTariffsDatepicker };\r\nexport { WpArena, WpArenaSeances, WpArenaSeanceItem, WpArenaSectors, WpArenaSectorItem, WpArenaSeats, WpArenaSeatItem };\r\nexport { WpCart, WpCartItem, WpCartBundle };\r\nexport { WpPayConfirm, WpPayConfirmPromo };\r\nexport { WpPersonification, WpPersonificationItem, WpPersonificationBundle, WpPersonificationBundleForm };\r\nexport { WpSettings };\r\nexport { WpTopBar };\r\nexport { WpOrderTimer };\r\nexport { WpRules };\r\nexport { WpComplete };\r\nexport { WpSale };\r\nexport { WpNotificationQueue };\r\nexport { WpPageBaseComponent };\r\nexport { WpError };\r\nexport { WpLoginDialog, WpLoginPage, WpLoginForm, WpRegistrationForm, WpPasswordReset };\r\nexport { WpMarketRules, WpMarketRuleItem };\r\nexport { WpSkidataParking };\r\n\r\nconst wpComponents = {\r\n 'wp-bar-chart': WpBarChart,\r\n 'wp-loading-overlay': WpLoadingOverlay,\r\n 'wp-profile': WpProfile,\r\n 'wp-change-password': WpChangePassword,\r\n\r\n 'wp-news': WpNews,\r\n 'wp-news-item': WpNewsItem,\r\n 'wp-news-article': WpNewsArticle,\r\n\r\n 'wp-orders': WpOrders,\r\n 'wp-order': WpOrder,\r\n\r\n 'wp-isd-loyalty': WpIsdLoyalty,\r\n 'wp-isd-loyalty-register': WpIsdLoyaltyRegister,\r\n 'wp-isd-loyalty-edit': WpIsdLoyaltyEdit,\r\n 'wp-isd-loyalty-children': WpIsdLoyaltyChildren,\r\n 'wp-cli-cards': WpClientsCards,\r\n\r\n 'wp-phone-confirm': WpPhoneConfirm,\r\n\r\n 'wp-main': WpMain,\r\n 'wp-main-news-item': WpMainNewsItem,\r\n\r\n 'wp-feedback': WpFeedback,\r\n\r\n 'wp-skidata-parking': WpSkidataParking,\r\n\r\n 'wp-instructors': WpInstructors,\r\n 'wp-instructors-group': WpInstructorsGroup,\r\n 'wp-instructors-lessons': WpInstructorsLessons,\r\n 'wp-instructors-group-lessons': WpInstructorsGroupLessons,\r\n 'wp-instructors-datepicker': WpInstructorsDatepicker,\r\n 'wp-instructors-bundles': WpInstructorsBundles,\r\n 'wp-instructors-bundles-lessons': WpInstructorsBundlesLessons,\r\n\r\n 'wp-cart': WpCart,\r\n 'wp-cart-item': WpCartItem,\r\n 'wp-cart-bundle': WpCartBundle,\r\n\r\n 'wp-payconfirm': WpPayConfirm,\r\n 'wp-payconfirm-item': WpPayConfirmItem,\r\n 'wp-payconfirm-bundle': WpPayConfirmBundle,\r\n 'wp-payconfirm-promo': WpPayConfirmPromo,\r\n\r\n 'wp-personification': WpPersonification,\r\n 'wp-personification-item': WpPersonificationItem,\r\n 'wp-personification-bundle': WpPersonificationBundle,\r\n 'wp-personification-bundle-form': WpPersonificationBundleForm,\r\n\r\n 'wp-tariffs': WpTariffs,\r\n 'wp-tariffs-rewrite': WpTariffsRewrite,\r\n 'wp-tariff-item': WpTariffItem,\r\n 'wp-tariff-bundle': WpTariffBundle,\r\n 'wp-tariff-rewrite-item': WpTariffRewriteItem,\r\n 'wp-tariffs-datepicker': WpTariffsDatepicker,\r\n\r\n 'wp-arena': WpArena,\r\n 'wp-arena-seances': WpArenaSeances,\r\n 'wp-arena-seance-item': WpArenaSeanceItem,\r\n 'wp-arena-sectors': WpArenaSectors,\r\n 'wp-arena-sector-item': WpArenaSectorItem,\r\n 'wp-arena-seats': WpArenaSeats,\r\n 'wp-arena-seat-item': WpArenaSeatItem,\r\n\r\n 'wp-market-rules': WpMarketRules,\r\n 'wp-market-rule-item': WpMarketRuleItem,\r\n\r\n 'wp-settings': WpSettings,\r\n 'wp-top-bar': WpTopBar,\r\n\r\n 'wp-order-timer': WpOrderTimer,\r\n\r\n 'wp-rules': WpRules,\r\n\r\n 'wp-complete': WpComplete,\r\n 'wp-sale': WpSale,\r\n\r\n 'wp-notification': WpNotificationQueue,\r\n\r\n 'wp-error': WpError,\r\n\r\n 'v-offline': VOffline,\r\n 'PincodeInput': PincodeInput,\r\n\r\n 'wp-login-dialog': WpLoginDialog,\r\n 'wp-login-page': WpLoginPage,\r\n 'wp-login-form': WpLoginForm,\r\n 'wp-password-reset': WpPasswordReset,\r\n 'wp-registration-form': WpRegistrationForm\r\n} \r\n\r\nconst extend = function (first: First, second: Second): First & Second {\r\n const result: Partial = {};\r\n for (const prop in first) {\r\n if (Object.prototype.hasOwnProperty.call(first, prop)) {\r\n (result as First)[prop] = first[prop];\r\n }\r\n }\r\n for (const prop in second) {\r\n if (Object.prototype.hasOwnProperty.call(second, prop)) {\r\n (result as Second)[prop] = second[prop];\r\n }\r\n }\r\n return result as First & Second;\r\n}\r\n\r\nexport { extend, wpComponents, vuetifyComponents };","module.exports = \"
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
mdi-star {{ Bundle.Name }}
\\r\\n
{{ SeanceTime }}
\\r\\n \\r\\n
    \\r\\n
  • \\r\\n {{ item.tariff.Name }}\\r\\n\\r\\n 0\\\"\\r\\n small\\r\\n label\\r\\n color=\\\"secondary\\\"\\r\\n color-text=\\\"white\\\">\\r\\n {{ Terms.GenericItemsLeft }} {{ item.capacity.LeftCount }} {{ Terms.GenericItemsOf }} {{ item.capacity.Capacity }}\\r\\n \\r\\n 0\\\"\\r\\n small\\r\\n label\\r\\n color=\\\"secondary\\\"\\r\\n color-text=\\\"white\\\">\\r\\n {{ Terms.GenericItemsLeft }} {{ item.sale.LeftCount }} {{ Terms.GenericItemsOf }} {{ item.sale.Quota }}\\r\\n \\r\\n
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
x.Coefficient > x.Sale.LeftCount) || TariffsCapacity.some(x => x.Coefficient > x.Capacity.LeftCount)\\\">{{ Terms.NoMoreTickets }}
\\r\\n
CartMaxItems\\\">{{ Terms.CartIsFull }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ $data._formatPrice(Price) }}\\r\\n \\r\\n \\r\\n \\r\\n mdi-cart-plus\\r\\n {{Terms.GenericToCart }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{ Terms.GenericPleaseWait }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export enum DiscountType {\r\n DefaultDiscount = 0,\r\n Code = 1,\r\n Bonus = 2,\r\n DiscountWithPaymentCondition = 3\r\n}","module.exports = \"
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ item.Title }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\";","import { LoyaltyProgramType } from './loyalty-program-type';\r\nimport { LoyaltyProgramStatus } from './loyalty-program-status';\r\n\r\nexport default class LoyaltyProgram {\r\n Id: number = 0;\r\n Name: string = '';\r\n RuleAddress: string = '';\r\n ProgramType?: LoyaltyProgramType;\r\n Status?: LoyaltyProgramStatus;\r\n}","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\";","import { SoldClubContract } from '../Club';\r\n\r\nexport class TennisSoldContract extends SoldClubContract {\r\n private _placesIds?: Array;\r\n private _availableSkills?: Array;\r\n private _availableAdditionalServices?: Array;\r\n private _hiddenServices?: Array;\r\n\r\n LTExtend: number = 0;\r\n LTBuy: number = 0;\r\n LTRequest: number = 0;\r\n LTPlacesIds: string = '[]';\r\n LTAvailableSkills: string = '[]';\r\n LTAvailableAdditionalServices: string = '[]';\r\n LTHiddenServices: string = '[]';\r\n\r\n LTAccessLK: number = 0;\r\n LTServices: number = 0;\r\n LTSchedule: number = 0;\r\n LTAchievements: number = 0;\r\n\r\n get CanExtend(): boolean {\r\n return this.LTExtend == 1;\r\n }\r\n get CanBuy(): boolean {\r\n return this.LTBuy == 1;\r\n }\r\n get NeedRequest(): boolean {\r\n return this.LTRequest == 1;\r\n }\r\n\r\n get ContractPlacesIds(): Array {\r\n if (this._placesIds != null)\r\n return this._placesIds;\r\n\r\n try {\r\n let result = JSON.parse(this.LTPlacesIds) as Array;\r\n\r\n if (result != null)\r\n this._placesIds = result;\r\n else\r\n this._placesIds = new Array(); \r\n\r\n return this._placesIds;\r\n }\r\n catch {\r\n this._placesIds = new Array();\r\n return [];\r\n }\r\n }\r\n get AvailableSkills(): Array {\r\n if (this._availableSkills != null)\r\n return this._availableSkills;\r\n\r\n try {\r\n let result = JSON.parse(this.LTAvailableSkills) as Array;\r\n\r\n if (result != null)\r\n this._availableSkills = result;\r\n else\r\n this._availableSkills = new Array();\r\n\r\n return this._availableSkills;\r\n }\r\n catch {\r\n this._availableSkills = new Array();\r\n return [];\r\n }\r\n }\r\n\r\n get AvailableAdditionalServices(): Array {\r\n if (this._availableAdditionalServices != null)\r\n return this._availableAdditionalServices;\r\n\r\n try {\r\n let result = JSON.parse(this.LTAvailableAdditionalServices) as Array;\r\n\r\n if (result != null)\r\n this._availableAdditionalServices = result;\r\n else\r\n this._availableAdditionalServices = new Array();\r\n\r\n return this._availableAdditionalServices;\r\n } catch {\r\n this._availableAdditionalServices = new Array();\r\n return [];\r\n };\r\n };\r\n\r\n get HiddenServices(): Array {\r\n if (this._hiddenServices != null)\r\n return this._hiddenServices;\r\n\r\n try {\r\n let result = JSON.parse(this.LTHiddenServices) as Array;\r\n\r\n if (result != null)\r\n this._hiddenServices = result;\r\n else\r\n this._hiddenServices = new Array();\r\n\r\n return this._hiddenServices;\r\n } catch {\r\n this._hiddenServices = new Array();\r\n return [];\r\n };\r\n };\r\n\r\n\r\n get HaveAccessLK(): boolean {\r\n return this.LTAccessLK == 1;\r\n }\r\n get HaveAccessServices(): boolean {\r\n return this.LTServices == 1;\r\n }\r\n get HaveAccessSchedule(): boolean {\r\n return this.LTSchedule == 1;\r\n }\r\n get HaveAccessAchievements(): boolean {\r\n return this.LTAchievements == 1;\r\n }\r\n\r\n}","module.exports = \"
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
{{ Rule?.Name }}
\\r\\n
{{ Category }}
\\r\\n
{{ UseCount }}
\\r\\n
{{ Duration }}
\\r\\n
{{ Period }}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
{{ Terms.CartIsFull }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ $data._formatPrice(Price) }}\\r\\n \\r\\n \\r\\n \\r\\n mdi-cart-plus {{ Terms.ToCart }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ Terms.GenericPleaseWait }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","import ISaleProvider from './i-saler-provider';\r\nimport ReservationData from './reservation-data';\r\nimport { ActionResult, ErrorTypes } from './../Common';\r\nimport { OrderSale, OrderStatus, PersonificationApiOrderItem, PersonSale, PaymentSystem } from './';\r\nimport { injectable, inject } from 'inversify';\r\nimport GlobalService, { IsdLoyaltyProgram } from './..';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport PaymentForm from './payment-form';\r\nimport { IdentitySymbols } from './../Identity/symbols';\r\nimport { IContext } from './../Identity';\r\nimport OrderSaleState from './order-sale-state';\r\nimport * as moment from 'moment';\r\nimport LoyaltyProgram from './loyalty-program';\r\nimport LockOrderInfo from './lock-order-info';\r\nimport { AppSettings } from '../Global/app-settings';\r\nimport DiscountProgram from './discount-program';\r\nimport PayAccountPayment from './pay-account-payment';\r\n\r\n@injectable()\r\nexport default class SaleProvider implements ISaleProvider {\r\n protected _settings: AppSettings;\r\n protected _context: IContext;\r\n\r\n constructor(@inject(IdentitySymbols.Context) context: IContext) {\r\n this._context = context;\r\n this._settings = GlobalService.GetSettings();\r\n }\r\n\r\n get NotAuthorizationHeaders(): any {\r\n return {\r\n headers: {\r\n \"SiteId\": this._settings.SiteId,\r\n \"SessionId\": this._settings.SessionId,\r\n \"User\": this._settings.SessionId\r\n }\r\n }\r\n }\r\n\r\n get AuthorizationHeaders(): any {\r\n return {\r\n headers: {\r\n \"SiteId\": this._settings.SiteId,\r\n \"SessionId\": this._settings.SessionId,\r\n \"User\": this._context.CurrentIdentity.UserId,\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`\r\n }\r\n }\r\n }\r\n\r\n async PayForAccountPaymentAsync(data: PayAccountPayment): Promise {\r\n let authHeaders = this.AuthorizationHeaders;\r\n // Remove SiteId from auth headers (hope it doesn't delete it for all instances)\r\n delete authHeaders.headers.SiteId\r\n\r\n let client: RestClient = new RestClient(\"wp-app\", window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? authHeaders : this.NotAuthorizationHeaders);\r\n\r\n try {\r\n let response = await client.create>(`/websale/api/accountpayment/pay`, data);\r\n\r\n if (response.result != null && response.result.Result != 0) {\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n }\r\n\r\n return ActionResult.SuccessData();\r\n } catch (e) {\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n }\r\n }\r\n\r\n async GetSignLinkToOrderAsync(orderId: number): Promise> {\r\n let client: RestClient = new RestClient(\"wp-app\", window.location.origin, []);\r\n\r\n try {\r\n let response = await client.get>(`/api/widget/signlink?orderId=${orderId}`);\r\n\r\n if (response.result != null && response.result.Result != 0) {\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n }\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n } catch (e) {\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n }\r\n }\r\n async ReservateAsync(data: ReservationData): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.create>(`/websale/api/order/reservate`, data);\r\n\r\n if (response.result != null && response.result.Result != 0) {\r\n if (response.result.Result == 6)\r\n return ActionResult.Failed(ErrorTypes.TariffNotAvailableForSale);\r\n\r\n if (response.result.Result == 7)\r\n return ActionResult.Failed(ErrorTypes.QuotaExceededForTariff);\r\n\r\n if (response.result.Result == 10000)\r\n return ActionResult.Failed(ErrorTypes.FreeTicketLimit);\r\n\r\n if (response.result.ErrorType == \"MediaCardExistSoTypeTariff\")\r\n return ActionResult.Failed(ErrorTypes.CardWithSoTypeTariff);\r\n\r\n if (response.result.ErrorType == \"RewriteTariffNotAvailable\")\r\n return ActionResult.Failed(ErrorTypes.RewriteTariffNotAvailable);\r\n\r\n if (response.result.ErrorType == \"InstructorsLessonBlocked\" || response.result.ErrorType == \"InstructorsLessonNotAvailable\")\r\n return ActionResult.Failed(ErrorTypes.LessonNotAvailable);\r\n\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n }\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async RemoveItemAsync(itemId: number): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.get>(`/websale/api/order/removeitem/${itemId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData();\r\n }\r\n\r\n async CancelOrderAsync(id: number): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.get>(`/websale/api/order/cancel/${id}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData();\r\n }\r\n\r\n async LeftTimeAsync(id: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.get(`/websale/api/order/lefttime/${id}`);\r\n\r\n if (response.result == null) {\r\n return ActionResult.FailedData(ErrorTypes.InternalError)\r\n }\r\n\r\n return ActionResult.SuccessData(moment.duration(response.result));\r\n }\r\n\r\n async GetOrderAsync(id: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.get>(`/websale/api/order/${id}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n async LockOrderAsync(id: number): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.get>(`/websale/api/order/lock/${id}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData();\r\n }\r\n\r\n async GetPaymentsAsync(orderId: number): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.get>>(`/websale/api/order/payments/${orderId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n\r\n async GetPaymentFormAsync(id: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.get>(`/websale/api/order/paymentform/${id}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async GetSpecificPaymentFormAsync(id: number, paymentId: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.get>(`/websale/api/order/paymentform/${paymentId}/specific/${id}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async SetOrderSaleStateAsync(id: number, status: OrderStatus): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.get>(`/api/widget/setorderstate?orderId=${id}&status=${status}&guid=${this._settings.GUID}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async SetUserOrderState(id: number): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], this.AuthorizationHeaders);\r\n\r\n let response = await client.get>(`/api/widget/setuser?guid=${this._settings.GUID}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async GetOrderSaleStateAsync(): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n let response = await client.get>(`/api/widget/getorderstate?guid=${this._settings.GUID}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async ClearOrderSaleStateAsync(): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.get>(`/api/widget/clearorderstate?guid=${this._settings.GUID}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData();\r\n }\r\n\r\n async ApplyCodeToOrderAsync(orderId: number, code: string): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let data = { Id: orderId, Code: code };\r\n let response = await client.create>(`/websale/api/order/applycode`, data);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, undefined, response.result.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async ClearOrderCodesAsync(orderId: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.del>(`/websale/api/order/clearcodes?id=${orderId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async SetPersonificationAsync(personificationItem: PersonificationApiOrderItem): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.replace>(`/websale/api/order/personification/`, personificationItem);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n async GetPersonificationUserPersons(userId: string): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], this.AuthorizationHeaders);\r\n\r\n let response = await client.get>(`/websale/api/persons/userpersons?userId=${userId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n\r\n async LockOrderWithDataAsync(lockOrderInfo: LockOrderInfo): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.create>(`/websale/api/order/lock/`, lockOrderInfo);\r\n\r\n if (response.result != null && response.result.Result != 0) {\r\n if (response.result.Result == 5) {\r\n return ActionResult.FailedData(ErrorTypes.InvalidData);\r\n }\r\n\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n }\r\n\r\n return ActionResult.SuccessData();\r\n }\r\n\r\n async SetUser(userId: string, id: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let data = { Id: id, UserId: userId };\r\n let response = await client.replace>(`/websale/api/order/user`, data);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, undefined, response.result.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n\r\n async GetBalanceAsync(orderId: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], this.AuthorizationHeaders);\r\n\r\n let response = await client.get>(`/websale/api/order/balance/${orderId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n async ChargeBonusesAsync(orderId: number, bonuses: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], this.AuthorizationHeaders);\r\n\r\n let response = await client.create>(`/websale/api/order/chargebonuses/`, { Id: orderId, Bonuses: bonuses });\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, undefined, response.result.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n async GetLoyaltyListAsync(): Promise>> {\r\n let authHeaders = this.NotAuthorizationHeaders;\r\n //// Remove SiteId from auth headers (hope it doesn't delete it for all instances)\r\n\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? authHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.get>>(`/websale/api/order/loyalties/`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n\r\n if (response.result != null && response.result.Data != null)\r\n return ActionResult.SuccessData(response.result.Data);\r\n\r\n return ActionResult.SuccessData();\r\n }\r\n async ApplyLoyaltyAsync(orderId: number, loyaltyId: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], this.AuthorizationHeaders);\r\n\r\n let response = await client.create>(`/websale/api/order/applyloyalty/`, { Id: orderId, LoyaltyId: loyaltyId, });\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, undefined, response.result.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n async GetDiscountProgramsAsync(): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.get>>(`/websale/api/order/discounts/`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n\r\n if (response.result != null && response.result.Data != null)\r\n return ActionResult.SuccessData(response.result.Data);\r\n\r\n return ActionResult.SuccessData();\r\n }\r\n async ChangeDiscountAsync(orderId: number, discountId: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.create>(`/websale/api/order/changediscount/`, { Id: orderId, DiscountId: discountId, });\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, undefined, response.result.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n}\r\n\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n ErrorType: string = '';\r\n}\r\n\r\n\r\n","module.exports = \"
\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n

\\r\\n Элементы заказа\\r\\n \\r\\n Билеты\\r\\n \\r\\n

\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n QR\\r\\n \\r\\n Штрихкод\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n x.Barcode != null && x.Barcode != '')\\\" :key=\\\"item.Id\\\" class=\\\"mb-12\\\">\\r\\n \\r\\n \\r\\n {{ item.Info }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","export default class PaymentFormItem {\r\n public Id: string = '';\r\n public Name: string = '';\r\n public Value: string = '';\r\n}","import { AppSettings } from './../Global/app-settings';\r\n\r\nexport default class ClubAppSettings extends AppSettings {\r\n ClubServicesSiteId: number = 0;\r\n GuestContractsIds: number = 0;\r\n\r\n public ParseHashParams(ignoreWindowName: boolean = false): boolean {\r\n let result = super.ParseHashParams(ignoreWindowName);\r\n\r\n if (!result) return result;\r\n\r\n if ('clubsiteid' in this._hashParams) {\r\n this.ClubServicesSiteId = this._hashParams.clubsiteid;\r\n }\r\n\r\n return true;\r\n }\r\n}","export default class DiscountProgram {\r\n Id: number = 0;\r\n Name: string = '';\r\n Description: string = '';\r\n RuleLink: string = '';\r\n Conditions: Array = [];\r\n}","import './wp-isd-loyalty-register.scss';\r\n\r\nimport Vue, { VueConstructor } from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, {\r\n ILoyaltyProvider, LoyaltySymbols, IsdLoyaltyProgram, ActionResult,\r\n INotificationService, NotificationSymbols, PersonIsdLoyaltyData, AppSettings, IMetricsService, MetricsSymbols\r\n} from 'web-platform-core-ui';\r\nimport WpBaseComponent from '../../../wp-base-component';\r\nimport { MetricsEvents } from '../../../metrics-events-symbols';\r\nimport BaseUILocalizationDictionary from '../../../Localization/base-ui-localization-terms';\r\nimport { DefaultProps } from 'vue/types/options';\r\n\r\nexport const wpWpIsdLoyaltyRegisterProps = Vue.extend({\r\n props: {\r\n EnableAgreements: {\r\n type: Boolean,\r\n default: false\r\n }\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-isd-loyalty-register.html\")\r\n})\r\nexport default class WpIsdLoyaltyRegister extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpWpIsdLoyaltyRegisterProps, Vue) {\r\n _metricsService!: IMetricsService;\r\n _provider!: ILoyaltyProvider;\r\n _notificationService!: INotificationService;\r\n IsdLoyaltyProgram!: IsdLoyaltyProgram;\r\n PersonIsdLoyaltyData!: PersonIsdLoyaltyData;\r\n\r\n valid: boolean = true;\r\n questionnaireValid: boolean = false;\r\n IsRegisteringLoyalty: boolean = false;\r\n lazy: boolean = false;\r\n IsSavingProfile: boolean = false;\r\n StepCode: boolean = true;\r\n StepQuestionnaire: boolean = false;\r\n Agree: boolean = false;\r\n FirstName: string = '';\r\n LastName: string = '';\r\n SecondName: string = '';\r\n BirthdateMenu: boolean = false;\r\n Birthdate: string = \"\";\r\n CurrentDate: string = \"\";\r\n LoyaltyId: number = 0;\r\n CodeId: number = 0;\r\n Phone: string = '';\r\n Loading: boolean = true;\r\n\r\n CodeConfirmed(code: any): void {\r\n this.CodeId = code.CodeId;\r\n this.Phone = code.Phone;\r\n this.PersonIsdLoyaltyData.ConfirmCodeId = this.CodeId;\r\n this.PersonIsdLoyaltyData.Phone = code.Phone;\r\n this.BindUserAsync();\r\n this.StepCode = false;\r\n };\r\n\r\n get NameRules() {\r\n return [\r\n (v: string) => v !== '' || this.Terms.GenericFieldRequired,\r\n (v: string) => (v && v.length > 1 && v.length <= 30) || this.Terms.GenericFormatIncorrect,\r\n (v: string) => (v && /^[A-aZ-zА-Яа-яЁё]*(-[A-aZ-zА-Яа-яЁё]*)?$/.test(v.trim())) || this.Terms.GenericLettersOnly\r\n ];\r\n };\r\n\r\n get CityRules() {\r\n return [\r\n (v: string) => v !== '' || this.Terms.GenericFieldRequired,\r\n (v: string) => (v && v.length > 1 && v.length <= 30) || this.Terms.GenericFormatIncorrect,\r\n (v: string) => (v && /^[a-zA-Zа-яёА-ЯЁ\\-]+( [a-zA-Zа-яёА-ЯЁ\\-]+)*$/.test(v.trim())) || this.Terms.GenericLettersOnly\r\n ];\r\n };\r\n\r\n get BirthdateRules() {\r\n return [\r\n (v: string) => v !== '' || this.Terms.GenericFieldRequired\r\n ];\r\n };\r\n\r\n get RadioRules() {\r\n return [\r\n (v: string) => !!v || this.Terms.GenericPickOneOption\r\n ];\r\n };\r\n\r\n get BirthdateFormatted(): string {\r\n return this.Birthdate ? this.DateHandler.Parse(this.Birthdate, 'YYYY-MM-DD').Format('DD.MM.YYYY') : '';\r\n };\r\n\r\n UpdateBirthdate(): void {\r\n if (this.Birthdate !== '') {\r\n this.PersonIsdLoyaltyData!.Birthdate = this.DateHandler.Parse(this.Birthdate, 'YYYY-MM-DD').Format('YYYY-MM-DDTHH:mm:SS');\r\n } else {\r\n this.PersonIsdLoyaltyData!.Birthdate = null;\r\n };\r\n };\r\n\r\n validate(): void {\r\n (this.$refs.QuestionnaireForm as HTMLFormElement).validate();\r\n };\r\n\r\n Oferta(): void {\r\n if (this.IsdLoyaltyProgram.RuleAddress != null && this.IsdLoyaltyProgram.RuleAddress != '') {\r\n try {\r\n openInBrowser(this.IsdLoyaltyProgram.RuleAddress);\r\n } catch {\r\n window.open(this.IsdLoyaltyProgram.RuleAddress, '_blank');\r\n };\r\n };\r\n };\r\n\r\n async created(): Promise {\r\n this.LoyaltyId = GlobalService.GetSettings().LoyaltyId;\r\n this.CurrentDate = this.DateHandler.Parse(new Date()).Format('YYYY-MM-DD');\r\n this.PersonIsdLoyaltyData = new PersonIsdLoyaltyData();\r\n this._provider = this.GlobalService.Get(LoyaltySymbols.LoyaltyProvider);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n this._metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n\r\n let getProgramInfoAsync = await this._provider.GetProgramInfoAsync(this.LoyaltyId);\r\n if (getProgramInfoAsync.Success && getProgramInfoAsync.Data != null) {\r\n this.IsdLoyaltyProgram = getProgramInfoAsync.Data;\r\n this.LoyaltyId = getProgramInfoAsync.Data.LoyaltyProgramId;\r\n this.PersonIsdLoyaltyData.LoyaltyId = this.LoyaltyId;\r\n } else {\r\n this._notificationService.Error(\"Ошибка\", getProgramInfoAsync.ErrorMessage ?? this.Terms.InternalError);\r\n };\r\n this.Loading = false;\r\n };\r\n\r\n async BindUserAsync(): Promise> {\r\n let result = await this._provider.BindUserAsync(this.LoyaltyId, this.CodeId, this.Phone);\r\n if (result.Success) {\r\n this.$emit('registered', true);\r\n } else {\r\n if (result.ErrorType === 6) {\r\n // дать дозаполнить анкету\r\n if (result.Data !== null) {\r\n Object.assign(this.PersonIsdLoyaltyData, result.Data);\r\n \r\n if (result.Data?.Birthdate !== null) {\r\n this.Birthdate = this.DateHandler.Parse(result.Data?.Birthdate, 'YYYY-MM-DDTHH:mm:SS').Format('YYYY-MM-DD');\r\n }\r\n }\r\n this.PersonIsdLoyaltyData.Phone = this.Phone;\r\n this.StepQuestionnaire = true;\r\n } else if (result.ErrorType === 5) {\r\n // дать заполнить анкету\r\n this.StepQuestionnaire = true;\r\n } else {\r\n this._notificationService.Error('', result?.ErrorMessage ?? this.Terms.InternalError);\r\n this.$emit('registered', false);\r\n };\r\n };\r\n return result;\r\n };\r\n\r\n async RegisterAsync(): Promise> {\r\n this.PersonIsdLoyaltyData.FirstName = this.FirstName;\r\n this.PersonIsdLoyaltyData.LastName = this.LastName;\r\n this.PersonIsdLoyaltyData.SecondName = this.SecondName;\r\n this.PersonIsdLoyaltyData.City = this.PersonIsdLoyaltyData.City?.trim();\r\n\r\n this.IsRegisteringLoyalty = true;\r\n let result = await this._provider.RegisterAsync(this.PersonIsdLoyaltyData);\r\n if (result.Success) {\r\n this._metricsService.RegistrateEvent(MetricsEvents.IsdLoyaltyRegistration);\r\n this.$emit('registered', true);\r\n } else {\r\n this._notificationService.Error('', result?.ErrorMessage ?? this.Terms.InternalError);\r\n this.$emit('registered', false);\r\n };\r\n this.IsRegisteringLoyalty = false;\r\n return result;\r\n };\r\n\r\n TrimOnBlur(): void {\r\n this.FirstName = this.FirstName.trim();\r\n this.LastName = this.LastName.trim();\r\n this.SecondName = this.SecondName.trim();\r\n this.PersonIsdLoyaltyData.City = this.PersonIsdLoyaltyData.City?.trim();\r\n };\r\n};\r\n\r\nexport class WpIsdLoyaltyRegisterDictionary extends BaseUILocalizationDictionary {\r\n LastName: string = 'Фамилия';\r\n FirstName: string = 'Имя';\r\n SecondName: string = 'Отчество';\r\n Birthdate: string = 'Дата рождения';\r\n ChooseGender: string = 'Укажите ваш пол';\r\n GenderMale: string = 'Мужской';\r\n GenderFemale: string = 'Женский';\r\n City: string = 'Город';\r\n AcceptRequired: string = 'Необходимо согласиться';\r\n GenericSave: string = 'Сохранить';\r\n AcceptPartOne: string = 'Я согласен(-на) с';\r\n AcceptPartTwo: string = 'условиями';\r\n\r\n GenericFieldRequired: string = 'Поле нельзя оставить пустым';\r\n GenericFormatIncorrect: string = 'Неверный формат';\r\n GenericLettersOnly: string = 'В поле могут быть только буквы';\r\n GenericPickOneOption: string = 'Выберите один из вариантов';\r\n};","import './wp-isd-loyalty-children.scss';\r\n\r\nimport Vue from 'vue';\r\nimport WpBaseComponent from '../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport BaseUILocalizationDictionary from '../../../Localization/base-ui-localization-terms';\r\nimport { DefaultProps } from 'vue/types/options';\r\nimport { VueConstructor } from 'vue/types/umd';\r\nimport { wpIsdLoyaltyProps } from '../wp-isd-loyalty';\r\nimport { ILoyaltyProvider, LoyaltySymbols, IsdUserLoyalty, PersonIsdLoyaltyData } from 'web-platform-core-ui';\r\n\r\n@Component({\r\n template: require(\"./wp-isd-loyalty-children.html\")\r\n})\r\nexport default class WpIsdLoyaltyChildren extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpIsdLoyaltyProps, Vue) {\r\n private _provider!: ILoyaltyProvider;\r\n public IsdUserLoyalty!: IsdUserLoyalty;\r\n\r\n public Children: Array = [];\r\n public AddChildModal: boolean = false;\r\n public RemoveChildConfirmModal: boolean | Child = false;\r\n public AddChildFormValid: boolean = false;\r\n public RulesRequired!: Array;\r\n public Genders!: Array;\r\n\r\n public UIDisabled: boolean = true;\r\n public ChildToRemove: Child = new Child();\r\n\r\n public Yesterday: string = new Date(new Date().setDate(new Date().getDate() - 1)).toISOString().substr(0, 10);\r\n public DateFormated: string = this.Yesterday.split(\"-\").reverse().join(\".\");\r\n\r\n public ChildFirstName: string = '';\r\n public ChildLastName: string = '';\r\n public ChildSecondName: string = '';\r\n public ChildGender: number = 0;\r\n public ChildBirthdate: string = this.Yesterday;\r\n public ChildPersId: number = 0;\r\n\r\n created(): void {\r\n this._provider = this.GlobalService.Get(LoyaltySymbols.LoyaltyProvider);\r\n // Подгружаем правила и полы вместе с локализацией\r\n this.RulesRequired = [(v: any) => !!v || this.Terms.FormFieldRequired];\r\n this.Genders = [\r\n { text: this.Terms.GenderMale, value: 1 },\r\n { text: this.Terms.GenderFemale, value: 2 },\r\n ];\r\n // Следим за переменной this.ChildBirthdate, выполняем метод UpdateFormatDate при изменении её.\r\n this.$watch(\"ChildBirthdate\", this.UpdateFormatDate);\r\n }\r\n\r\n async mounted(): Promise {\r\n let result = await this._provider.GetIsdUserLoyaltyAsync();\r\n if (result.Success && result.Data != undefined) this.IsdUserLoyalty = result.Data;\r\n await this.UpdateChildren();\r\n }\r\n\r\n UpdateFormatDate(): void {\r\n this.DateFormated = this.ChildBirthdate.split(\"-\").reverse().join(\".\");\r\n }\r\n\r\n async UpdateChildren(): Promise {\r\n try {\r\n // Отключаем кнопки на время\r\n this.UIDisabled = true;\r\n // Получаем детей массивом\r\n this.Children = (await this._provider.GetChildrenAsync()).Data ?? [];\r\n } catch (e) {\r\n // Couldn't update children list\r\n console.error(e);\r\n } finally {\r\n // Включаем кнопки обратно\r\n this.UIDisabled = false;\r\n }\r\n }\r\n async AddChild(): Promise {\r\n try {\r\n this.UIDisabled = true;\r\n // Попробуем проверить валидна ли форма или нет (например есть ли пустые обязательные поля)\r\n // TS ругается что у формы нет метода validate(), поэтому так странно и выглядит код ниже\r\n let isFormValid = (this.$refs.AddChildModalForm as Vue & { validate: () => boolean }).validate();\r\n // Если форма валидна\r\n if (isFormValid) {\r\n // У DateHandler какие-то шенаниганы по поводу того, что он просто так не спарсит дату\r\n // потому что у него она хранится как внутренняя переменная или что-то типа того.\r\n // Дичь. Надо бы поправить.\r\n let birthday = this.DateHandler.ParseToDate(this.ChildBirthdate, 'YYYY-MM-DD');\r\n // А в таком формате дату рождения принимает СЕРВЕР (Что тоже немного дико. Зачем знать ДАТУ РОЖДЕНИЯ В ЧАСАХ (А ТО И В МИНУТАХ)?)\r\n let birthdayFull = this.DateHandler.Parse(birthday).Format('YYYY-MM-DDT12:00:00');\r\n\r\n let child = {\r\n \"LoyaltyId\": this.IsdUserLoyalty.Id,\r\n \"FirstName\": this.ChildFirstName.trim(),\r\n \"LastName\": this.ChildLastName.trim(),\r\n \"SecondName\": this.ChildSecondName.trim(),\r\n \"Birthdate\": birthdayFull,\r\n \"Gender\": this.ChildGender\r\n }\r\n\r\n await this._provider.AddChildAsync(child);\r\n await this.UpdateChildren();\r\n this.ClearForm();\r\n this.AddChildModal = false;\r\n }\r\n } catch (e) {\r\n // Couldn't create a new child :(\r\n console.error(e);\r\n } finally {\r\n this.UIDisabled = false;\r\n }\r\n }\r\n async UpdateChild(): Promise {\r\n try {\r\n this.UIDisabled = true;\r\n this.DateHandler.ParseToDate(this.ChildBirthdate, 'YYYY-MM-DD');\r\n let Birthdate = this.DateHandler.Parse(this.ChildBirthdate).Format('YYYY-MM-DDT12:00:00');\r\n let child = {\r\n \"PersonId\": this.ChildPersId,\r\n \"TNodId\": this.IsdUserLoyalty.TNodId,\r\n \"LoyaltyId\": this.IsdUserLoyalty.Id,\r\n \"FirstName\": this.ChildFirstName.trim(),\r\n \"LastName\": this.ChildLastName.trim(),\r\n \"SecondName\": this.ChildSecondName.trim(),\r\n \"Birthdate\": Birthdate,\r\n \"Gender\": this.ChildGender\r\n }\r\n await this._provider.UpdateChildAsync(child);\r\n await this.UpdateChildren();\r\n this.AddChildModal = false;\r\n } catch (e) {\r\n // Couldn't update child\r\n console.error(e);\r\n } finally {\r\n this.UIDisabled = false;\r\n }\r\n }\r\n async RemoveChild(child: any): Promise {\r\n try {\r\n this.UIDisabled = true;\r\n // Удаляем ребёнка\r\n await this._provider.RemoveChildAsync(this.IsdUserLoyalty.Id, child.PersId);\r\n // После удаления - обновим список детей\r\n await this.UpdateChildren();\r\n } catch (e) {\r\n // Couldn't remove child\r\n console.error(e);\r\n } finally {\r\n this.UIDisabled = false;\r\n this.RemoveChildConfirmModal = false;\r\n }\r\n }\r\n ClearForm(): void {\r\n this.ChildFirstName = '';\r\n this.ChildLastName = '';\r\n this.ChildSecondName = '';\r\n this.ChildGender = 0;\r\n this.ChildPersId = 0;\r\n this.ChildBirthdate = this.Yesterday;\r\n }\r\n EditChild(child: any): void {\r\n this.AddChildModal = true;\r\n this.ChildFirstName = child.FirstName;\r\n this.ChildLastName = child.LastName;\r\n this.ChildSecondName = child.SecondName;\r\n this.ChildGender = child.Gender;\r\n this.ChildPersId = child.PersId;\r\n this.ChildBirthdate = new Date(child.Birthdate).toISOString().substr(0, 10);\r\n }\r\n}\r\n\r\nclass Child {\r\n AddressId?: number;\r\n Birthdate: string = '';\r\n City?: string;\r\n ConfirmCodeId?: number;\r\n FirstName: string = '';\r\n Gender: number = 1;\r\n LastName: string = '';\r\n PersId: number = 0;\r\n SecondName?: string;\r\n TNodId: number = 0;\r\n}\r\n\r\nexport class WpIsdLoyaltyChildrenDictionary extends BaseUILocalizationDictionary {\r\n GenericChildren: string = 'Дети';\r\n GenericChildData: string = 'Данные ребёнка';\r\n GenericConfirm: string = 'Вы уверены?';\r\n\r\n GenderMale: string = '♂ Мужской';\r\n GenderFemale: string = '♀ Женский';\r\n\r\n LastName: string = 'Фамилия';\r\n FirstName: string = 'Имя';\r\n SecondName: string = 'Отчество';\r\n}","export enum SaleTermsType {\r\n Default = 'default',\r\n Dialog = 'dialog',\r\n Checkbox = 'checkbox'\r\n}","export enum PaymentSystemType {\r\n Unknow = 0,\r\n Payu = 1,\r\n Yandex = 2,\r\n Sberbank = 3,\r\n RfiBank = 4,\r\n RosEuroBank = 5,\r\n Gazprombank = 6,\r\n SovkomBank = 7,\r\n Kazkombank = 8,\r\n Test = 9,\r\n AlfaBank = 10,\r\n PayOnline = 11,\r\n ApiPayment = 12,\r\n SbpSberbank = 13,\r\n Sbp = 14,\r\n Account = 15\r\n}","import ISaleService from './i-sale-service';\r\nimport { Cart, CartItemTypes } from './../Cart';\r\nimport { IdentitySymbols } from './../Identity/symbols';\r\nimport { IContext } from './../Identity';\r\nimport { ActionResult, ErrorTypes } from './../Common';\r\nimport OrderSale from './order-sale';\r\nimport { injectable, inject } from 'inversify';\r\nimport ISaleProvider from './i-saler-provider';\r\nimport { SaleSymbols } from './symbols';\r\nimport ReservationItem from './reservation-item';\r\nimport ReservationData from './reservation-data';\r\nimport PaymentForm from './payment-form';\r\nimport { OrderStatus } from './order-status';\r\nimport OrderSaleState from './order-sale-state';\r\nimport { PersonSale, PersonificationApiOrderItem, LockOrderInfo, LoyaltyProgram, PaymentSystem } from './';\r\nimport GlobalService from './..';\r\nimport { AppSettings } from './../Global/app-settings';\r\nimport { ConnectionType } from './../Global';\r\nimport { IDateHandler, DateHandlerService, DateHandlerSymbols } from '../Utility';\r\nimport DiscountProgram from './discount-program';\r\nimport { ReservationItemTypes } from './reservation-item-types';\r\nimport { AccountReplenishmentCartItem } from '../Loyalty';\r\n\r\n@injectable()\r\nexport default class SaleService implements ISaleService {\r\n protected _saleProvider: ISaleProvider;\r\n protected _context: IContext;\r\n protected _dateHandler: IDateHandler;\r\n\r\n constructor(@inject(SaleSymbols.SaleProvider) saleProvider: ISaleProvider,\r\n @inject(IdentitySymbols.Context) context: IContext,\r\n @inject(DateHandlerSymbols.DateHandlerService) dateHandler: IDateHandler) {\r\n this._saleProvider = saleProvider;\r\n this._context = context;\r\n this._dateHandler = dateHandler;\r\n }\r\n async PayForAccountPaymentAsync(data: import(\"./pay-account-payment\").default): Promise> {\r\n return await this._saleProvider.PayForAccountPaymentAsync(data);\r\n }\r\n\r\n async GetSignLinkToOrderAsync(orderId: number): Promise> {\r\n return await this._saleProvider.GetSignLinkToOrderAsync(orderId);\r\n }\r\n\r\n async ReservateAsync(cart: Cart, personId?: number): Promise> {\r\n let settings = GlobalService.GetSettings();\r\n let result: ActionResult;\r\n\r\n if (settings.CurrentSite == undefined || settings.CurrentSite.ConnectionType == ConnectionType.Tariff ||\r\n settings.CurrentSite.ConnectionType == ConnectionType.ClubISD) {\r\n result = await this.DefaultReservate(cart, personId);\r\n } else if (settings.CurrentSite.ConnectionType == ConnectionType.Arena) {\r\n result = await this.ArenaReservate(cart, personId);\r\n } else {\r\n result = await this.MarketReservate(cart);\r\n }\r\n\r\n if (result.Success && result.Data != null) {\r\n await this._saleProvider.SetOrderSaleStateAsync(result.Data.Id, OrderStatus.Reserved);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n async SetAuthorizedUserToOrderAsync(orderId: number): Promise {\r\n if (!this._context.CurrentIdentity.IsAuthentificated) return ActionResult.Failed(ErrorTypes.InternalError);\r\n\r\n if (this._context.CurrentIdentity.IsAuthentificated) {\r\n let setResult = await this._saleProvider.SetUser(this._context.CurrentIdentity.UserId, orderId);\r\n if (!setResult.Success)\r\n return setResult;\r\n }\r\n\r\n await this._saleProvider.SetUserOrderState(orderId);\r\n\r\n return ActionResult.Success();\r\n }\r\n\r\n async RemoveItemAsync(itemId: number): Promise {\r\n return await this._saleProvider.RemoveItemAsync(itemId);\r\n }\r\n async CancelOrderAsync(id: number): Promise {\r\n return await this._saleProvider.CancelOrderAsync(id);\r\n }\r\n async LeftTimeAsync(id: number): Promise> {\r\n return await this._saleProvider.LeftTimeAsync(id);\r\n }\r\n async GetOrderAsync(id: number): Promise> {\r\n return await this._saleProvider.GetOrderAsync(id);\r\n }\r\n async LockOrderAsync(id: number): Promise {\r\n let result = await this._saleProvider.LockOrderAsync(id);\r\n\r\n if (result.Success) {\r\n let settings = GlobalService.GetSettings();\r\n\r\n parent.postMessage({ status: 'wp-order-state', data: { sessionid: settings.SessionId, state: 'open' } }, '*');\r\n\r\n await this._saleProvider.SetOrderSaleStateAsync(id, OrderStatus.Locked);\r\n }\r\n\r\n return result;\r\n }\r\n async GetPaymentFormAsync(id: number): Promise> {\r\n return await this._saleProvider.GetPaymentFormAsync(id);\r\n }\r\n async GetOrderSaleStateAsync(): Promise> {\r\n return await this._saleProvider.GetOrderSaleStateAsync();\r\n }\r\n async ClearOrderSaleStateAsync(): Promise {\r\n let settings = GlobalService.GetSettings();\r\n\r\n parent.postMessage({ status: 'wp-order-state', data: { sessionid: settings.SessionId, state: '' } }, '*');\r\n\r\n return await this._saleProvider.ClearOrderSaleStateAsync();\r\n }\r\n async ApplyCodeToOrderAsync(orderId: number, code: string): Promise> {\r\n return await this._saleProvider.ApplyCodeToOrderAsync(orderId, code);\r\n }\r\n async ClearOrderCodesAsync(orderId: number): Promise> {\r\n return await this._saleProvider.ClearOrderCodesAsync(orderId);\r\n }\r\n async SetPersonificationAsync(personificationItem: PersonificationApiOrderItem): Promise> {\r\n return await this._saleProvider.SetPersonificationAsync(personificationItem);\r\n }\r\n async GetPersonificationUserPersons(userId: string): Promise>> {\r\n return await this._saleProvider.GetPersonificationUserPersons(userId);\r\n }\r\n async LockOrderWithDataAsync(info: LockOrderInfo): Promise {\r\n let result = await this._saleProvider.LockOrderWithDataAsync(info);\r\n\r\n if (result.Success) {\r\n await this._saleProvider.SetOrderSaleStateAsync(info.Id, OrderStatus.Locked);\r\n }\r\n\r\n return result;\r\n }\r\n async GetBalanceAsync(orderId: number): Promise {\r\n return await this._saleProvider.GetBalanceAsync(orderId);\r\n }\r\n async ChargeBonusesAsync(orderId: number, bonuses: number): Promise {\r\n return await this._saleProvider.ChargeBonusesAsync(orderId, bonuses);\r\n }\r\n async GetLoyaltyListAsync(): Promise>> {\r\n let list = await this._saleProvider.GetLoyaltyListAsync();\r\n\r\n if (list.Success && list.Data != null)\r\n list.Data = list.Data.filter(x => x.Status != 0);\r\n\r\n return list;\r\n }\r\n async ApplyLoyaltyAsync(orderId: number, loyaltyId: number): Promise {\r\n return await this._saleProvider.ApplyLoyaltyAsync(orderId, loyaltyId);\r\n }\r\n async GetDiscountProgramsAsync(): Promise>> {\r\n return await this._saleProvider.GetDiscountProgramsAsync();\r\n }\r\n async ChangeDiscountAsync(orderId: number, discountId: number): Promise> {\r\n return await this._saleProvider.ChangeDiscountAsync(orderId, discountId);\r\n }\r\n async GetPaymentsAsync(orderId: number): Promise>> {\r\n return await this._saleProvider.GetPaymentsAsync(orderId);\r\n }\r\n async GetSpecificPaymentFormAsync(id: number, paymentId: number): Promise> {\r\n return await this._saleProvider.GetSpecificPaymentFormAsync(id, paymentId);\r\n }\r\n\r\n protected async DefaultReservate(cart: Cart, personId?: number): Promise> {\r\n let items = new Array();\r\n\r\n cart.Items.forEach(x => {\r\n if (x.Type == CartItemTypes.AccountReplenishment) {\r\n let cartItem = x as AccountReplenishmentCartItem;\r\n if (cartItem.PersonId != personId) personId = cartItem.PersonId;\r\n }\r\n\r\n items = items.concat(x.GetReservationItem());\r\n });\r\n\r\n items.forEach(x => {\r\n x.Date = this._dateHandler.Parse(x.Date, 'DD.MM.YYYY').Format('YYYY-MM-DD');\r\n })\r\n\r\n let data = new ReservationData();\r\n\r\n data.Items = items;\r\n data.PersonId = personId;\r\n if (this._context.CurrentIdentity.IsAuthentificated)\r\n data.UserId = this._context.CurrentIdentity.UserId;\r\n\r\n let result = await this._saleProvider.ReservateAsync(data);\r\n\r\n return result;\r\n }\r\n\r\n protected async ArenaReservate(cart: Cart, personId?: number): Promise> {\r\n if (cart.OrderId == null) return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n if (this._context.CurrentIdentity.IsAuthentificated) {\r\n let result = await this._saleProvider.SetUser(this._context.CurrentIdentity.UserId, cart.OrderId);\r\n\r\n return result;\r\n } else {\r\n let getORder = await this._saleProvider.GetOrderAsync(cart.OrderId);\r\n\r\n return getORder;\r\n }\r\n }\r\n\r\n protected async MarketReservate(cart: Cart): Promise> {\r\n if (cart.Items.some(x => x.Type == CartItemTypes.MarketBill)) {\r\n let items = new Array();\r\n\r\n cart.Items.forEach(x => {\r\n items = items.concat(x.GetReservationItem());\r\n });\r\n\r\n let data = new ReservationData();\r\n\r\n data.Items = items;\r\n\r\n let result = await this._saleProvider.ReservateAsync(data);\r\n\r\n return result;\r\n }\r\n\r\n if (cart.OrderId === undefined) return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n let result = await this._saleProvider.SetUser(this._context.CurrentIdentity.UserId, cart.OrderId);\r\n\r\n return result;\r\n }\r\n}","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n

{{ Bundles[0].BundleName }}

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{ $data._formatPrice(bundle.Price) }} {{ $data._formatPrice(bundle.TotalSum) }}\\r\\n

{{ bundle.Info }}

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n mdi-trash-can-outline {{ Terms.GenericDecline }}\\r\\n \\r\\n {{ Terms.GenericTotalSum }}: {{ $data._formatPrice(TotalPrice) }}{{ $data._formatPrice(TotalSum) }}\\r\\n \\r\\n
\";","import { PaymentSystemType } from './payment-system-type';\r\n\r\nexport default class LockOrderInfo {\r\n Id: number = 0;\r\n Email?: string;\r\n UserPhone: string = '';\r\n UserFirstName: string = '';\r\n UserLastName: string = '';\r\n UserSecondName: string = '';\r\n Comments: string = '';\r\n PaymentId: number = 0;\r\n PaymentType: PaymentSystemType = PaymentSystemType.Test;\r\n}","export default class InstructorsPersonalLessonPrice {\r\n public PriceForOne: number = 0;\r\n public PriceForSecond?: number;\r\n}","import './wp-tariffs.scss';\r\n\r\nimport Vue, { VueConstructor } from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, {\r\n ITariffService, TariffSymbols, AppSettings, INotificationService, Cart, Tariff, TariffCartItem, CartItem,\r\n IMetricsService, MetricsSymbols, BaseSystemLocalizationDictionary, ErrorTypes, ActionResult, WpCorePrefixes\r\n} from 'web-platform-core-ui';\r\nimport { Prop, DefaultProps } from 'vue/types/options';\r\nimport { MetricsEvents } from '../../metrics-events-symbols';\r\nimport WpBaseComponent from '../../wp-base-component';\r\nimport BaseUILocalizationDictionary from './../../Localization/base-ui-localization-terms';\r\n\r\nexport const wpTariffsRewriteProp = Vue.extend({\r\n props: {\r\n Cart: Object as Prop,\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-tariffs-rewrite.html\")\r\n})\r\n\r\nexport default class WpTariffsRewrite extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpTariffsRewriteProp, Vue) {\r\n private _tariffService!: ITariffService;\r\n protected _notificationService!: INotificationService;\r\n private _price: number = 0;\r\n private _personName: string = '';\r\n private _metricsService!: IMetricsService;\r\n Settings?: AppSettings;\r\n Card: string = '';\r\n SearchTariffs = false;\r\n Tariffs: Array = [];\r\n TariffsStates: Array = [];\r\n CardLoading: boolean = false;\r\n Message: string = '';\r\n Date: string = '';\r\n DatepickerSettings: any = {};\r\n Datepicker: boolean = false;\r\n\r\n StartDatepicker(): void {\r\n this.DatepickerSettings = this.Settings;\r\n this.Datepicker = true;\r\n };\r\n\r\n get PersonName(): string {\r\n if (this._personName !== null && this._personName !== undefined && this._personName !== '') return `${this.Terms.CardRegisteredOn} ${this._personName}`;\r\n return '';\r\n };\r\n\r\n get TariffsLoading(): boolean {\r\n let res = this.TariffsStates.some(x => x.Loading);\r\n return res;\r\n };\r\n\r\n get Price(): number {\r\n return this._price;\r\n };\r\n\r\n get Rules(): any {\r\n return {\r\n required: this.IsCardValid || this.Terms.UnacceptableCharacters,\r\n minimum8: this.Card.length >= 8 || this.Terms.CardMinimum8,\r\n };\r\n };\r\n\r\n CardDataChanged(d: any): void {\r\n this.$nextTick(() => {\r\n // Убираем русский алфавит и латиницу после буквы G, как и пробелы\r\n //this.Card = this.Card.toUpperCase().replace(/[А-ЯG-Z]/gi, \" \").replace(\" \", \"\");\r\n // Убираем просто пробелы\r\n this.Card = this.Card.toUpperCase().replace(\" \", \"\");\r\n });\r\n };\r\n\r\n get IsCardValid(): boolean {\r\n return this.Card !== '' && /^[a-fA-F0-9]+$/.test(this.Card);\r\n };\r\n\r\n AddToCart(cartItem: CartItem): void {\r\n let result = this.Cart.AddItem(cartItem) as ActionResult;\r\n\r\n this._metricsService.RegistrateEvent(MetricsEvents.RewriteCartAdd, cartItem.MetricsId);\r\n\r\n if (!result.Success) {\r\n if (result.ErrorType == ErrorTypes.CartItemsConflict)\r\n this._notificationService.Error(this.Terms.GenericError, this.Terms.CardIsAlredyInCart);\r\n\r\n this._notificationService.Error(this.Terms.GenericError, result.ErrorMessage ? result.ErrorMessage : this.Terms.InternalError);\r\n };\r\n };\r\n\r\n ChangeCard() {\r\n this.Tariffs = [];\r\n this.SearchTariffs = false;\r\n };\r\n\r\n ClearCard() {\r\n this._metricsService.RegistrateEvent(MetricsEvents.RewriteClearCard);\r\n\r\n this.Tariffs = [];\r\n this.SearchTariffs = false;\r\n this.Card = '';\r\n };\r\n\r\n async CheckCard() {\r\n this._metricsService.RegistrateEvent(MetricsEvents.RewriteCheckCard);\r\n\r\n this.SearchTariffs = true;\r\n this.GetTariffsAsync();\r\n };\r\n\r\n async mounted() {\r\n this.Settings = GlobalService.GetSettings();\r\n this._metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n this._tariffService = this.GlobalService.Get(TariffSymbols.TariffService);\r\n this.Card = this.Settings.ForceMedia;\r\n this.StartDatepicker();\r\n\r\n };\r\n\r\n async GetTariffsAsync(): Promise {\r\n this.CardLoading = true;\r\n this.Message = '';\r\n let result = await this._tariffService.GetTariffsAsync();\r\n let acceptableTariffs = await this._tariffService.GetCardAcceptableTariffsAsync(this.Card);\r\n\r\n this.TariffsStates.splice(0);\r\n if (acceptableTariffs.Success) {\r\n if (result.Data != undefined && acceptableTariffs.Data != undefined && result.Data.length > 0 && acceptableTariffs.Data.Tariffs.length > 0) {\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.Tariff, result.Data);\r\n\r\n result.Data.filter(x => x.IsRewritable).forEach(x => {\r\n if (acceptableTariffs.Data?.Tariffs.some(y => y.Id === x.Id)) {\r\n this.Tariffs.push(x);\r\n this.TariffsStates.push({ Id: x.Id, Loading: true });\r\n }\r\n });\r\n } else {\r\n this.Message = this.Terms.NoAvailableServicesForThisCard;\r\n }\r\n } else {\r\n if (acceptableTariffs.ErrorType == ErrorTypes.MediaCardExpired)\r\n this.Message = this.Terms.CardExpired;\r\n else if (acceptableTariffs.ErrorType == ErrorTypes.MediaCardInProcess ||\r\n acceptableTariffs.ErrorType == ErrorTypes.MediaCardIsLocked)\r\n this.Message = this.Terms.CardInProcess;\r\n else if (acceptableTariffs.ErrorType == ErrorTypes.MediaCardNotFound)\r\n this.Message = this.Terms.CardNotFound;\r\n else\r\n this.Message = acceptableTariffs.ErrorMessage !== undefined ? acceptableTariffs.ErrorMessage : this.Terms.InternalError;\r\n };\r\n this.CardLoading = false;\r\n };\r\n\r\n DateSet(date: string): void {\r\n if (date == null && date == '') return;\r\n this.Date = date;\r\n this._metricsService.RegistrateEvent(MetricsEvents.RewriteChangeDate, date);\r\n };\r\n\r\n ItemLoadingChange(id: string, value: boolean) {\r\n let element = this.TariffsStates.find(x => x.Id == id);\r\n if (element != undefined) element.Loading = value;\r\n };\r\n};\r\n\r\nexport class WpTariffsRewriteDictionary extends BaseUILocalizationDictionary {\r\n CardRegisteredOn: string = 'Карта оформлена на';\r\n NoAvailableServicesForThisCard: string = \"Нет доступных услуг для данной карты\";\r\n UnacceptableCharacters: string = 'Номер карты должен содержать A-F и цифры';\r\n GenericCheck: string = 'Проверить';\r\n LabelCardNo: string = 'Номер карты';\r\n InstructionEnterCardNumber: string = 'Для пополнения услуг, введите номер карты:';\r\n InstructionCharacters: string = 'Номер карты представляет из себя 16 букв-цифр и находится на самой карте.';\r\n CardNotFound: string = 'Карта не найдена';\r\n CardExpired: string = 'Период действия карты истек';\r\n CardInProcess: string = 'Данная карты уже учавствует в другом заказе';\r\n CardIsAlredyInCart: string = 'За один раз можно дозаписать только одну услугу на одну карту';\r\n CardMinimum8: string = \"Минимальная длина номера карты - 8 символов\"\r\n};","module.exports = \"\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\";","import './wp-tariff-item.scss';\r\n\r\nimport Vue from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, {\r\n AppSettings, ITariffService, TariffSymbols, Tariff, TariffCartItem, Cart, CartItemTypes, TariffSeance, TariffSale, ITariffCapacityService, TariffCapacity,\r\n ICartService, CartSymbols\r\n} from 'web-platform-core-ui';\r\nimport { Prop, DefaultProps } from 'vue/types/options';\r\nimport { Watch } from 'vue-property-decorator';\r\nimport { VueConstructor } from 'vue/types/umd';\r\nimport BaseUILocalizationDictionary from './../../../Localization/base-ui-localization-terms';\r\n\r\nexport const wpTariffItemProp = Vue.extend({\r\n props: {\r\n Id: String,\r\n tariff: Object as Prop,\r\n Date: String,\r\n Cart: Object as Prop,\r\n Seance: Object as Prop,\r\n UIActive: Boolean\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-tariff-item.html\")\r\n})\r\nexport default class WpTariffItem extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpTariffItemProp, Vue) {\r\n protected _tariffService!: ITariffService;\r\n protected _tariffCapacityService!: ITariffCapacityService;\r\n protected _cartService!: ICartService;\r\n protected TariffSale: TariffSale = new TariffSale();\r\n protected Capacity?: TariffCapacity;\r\n protected Settings!: AppSettings;\r\n protected _currentCartItem?: TariffCartItem;\r\n protected _price: number = 0;\r\n\r\n TariffAvailable: boolean = false;\r\n Amount: number = 1;\r\n CartMaxItems: number = 6;\r\n TariffLoading: boolean = true;\r\n MaxCount: number = 0;\r\n UseCapacity: boolean = false;\r\n Price: number = 0;\r\n\r\n created(): void {\r\n this.Settings = GlobalService.GetSettings();\r\n this.CartMaxItems = this.Settings.CartMaxItems;\r\n\r\n this._tariffService = this.GlobalService.Get(TariffSymbols.TariffService);\r\n this._tariffCapacityService = this.GlobalService.Get(TariffSymbols.TariffCapacityService);\r\n this._cartService = this.GlobalService.Get(CartSymbols.CartService);\r\n };\r\n\r\n async mounted(): Promise {\r\n await this.GetTariffPrice();\r\n\r\n this.Cart.CartChanged.Subscribe((sender: any, e: any) => {\r\n this.Amount = 1;\r\n this.Price = this._price * this.Amount;\r\n });\r\n };\r\n\r\n \r\n @Watch('Date')\r\n DateChanged(_val: string, _oldVal: string) {\r\n this.GetTariffPrice();\r\n };\r\n \r\n\r\n get CountInCart(): number {\r\n return this._currentCartItem !== undefined ? this._currentCartItem.Count : 0;\r\n };\r\n\r\n get SeanceTime(): string | undefined {\r\n return this.Seance != null ? TariffSeance.SeanceTime(this.Seance) : '';\r\n };\r\n\r\n AmountDecrease(): void {\r\n if (this.Amount >= 2) {\r\n this.Amount--;\r\n this.Price = this._price * this.Amount;\r\n };\r\n };\r\n\r\n AmountIncrease(): void {\r\n this.Amount++;\r\n this.Price = this._price * this.Amount;\r\n };\r\n\r\n get CanAmountIncrease(): boolean {\r\n if (this.TariffSale.Quota != null && this.TariffSale.LeftCount) {\r\n return this.Amount < this.CartMaxItems - this.Cart.Count && this.Amount < this.TariffSale.LeftCount;\r\n } else {\r\n if (this.Capacity != null) {\r\n return this.Amount < this.CartMaxItems - this.Cart.Count && this.Amount < this.Capacity.LeftCount;\r\n } else\r\n return this.Amount < this.CartMaxItems - this.Cart.Count;\r\n };\r\n };\r\n\r\n AddToCart(): void {\r\n let cartItem = new TariffCartItem(this.tariff, this.Amount, this.Date, this._price, this.Cart,\r\n this.TariffSale, this.Seance, this.Capacity);\r\n this.$emit('addtocart', cartItem);\r\n this.Amount = 1;\r\n };\r\n\r\n async GetTariffPrice(): Promise {\r\n this.TariffLoading = true;\r\n this.TariffAvailable = false;\r\n this.$emit('LoadingChange', this.Id, this.TariffLoading);\r\n this.$emit('AvailableChange', this.Id, this.TariffAvailable);\r\n\r\n this.UseCapacity = false;\r\n this.Capacity = undefined;\r\n\r\n let result = await this._tariffService.GetTariffPrice(this.Date, this.tariff.Id, this.Seance?.SeanceId);\r\n if (result.Success && result.Data !== undefined && result.Data !== null) {\r\n this._price = result.Data;\r\n this.Price = this._price * this.Amount;\r\n this.TariffAvailable = true;\r\n } else {\r\n this.TariffAvailable = false;\r\n };\r\n\r\n if (this.tariff.Quota != null) {\r\n let sales = await this._tariffService.GetSingleTariffSalesAsync(this.Date, this.tariff, this.Seance?.SeanceId);\r\n if (sales.Success && sales.Data != null)\r\n this.TariffSale = sales.Data;\r\n };\r\n\r\n if (this.tariff.ShowLeftTicketCount) {\r\n if (this.tariff.HaveSeance === true && this.Seance != null && this.tariff.Quota == null) {\r\n\r\n // Find tariff price in cache to see if it's available by null check\r\n // Form a string identifier like '7572_30.12.2022_5116900`\r\n let stringid = `${this.tariff.Id}_${this.Date}_${this.Seance.SeanceId}`;\r\n // Get price from cache.\r\n let price = this._tariffService.Cache[(`${stringid}` as any)];\r\n // Null - means it's been cached but tariff is not available for that date\r\n // number - means it's price been cached but somehow not the capacity\r\n // undefined - means it's price not been cached\r\n\r\n // If price is null - no need to request capacity\r\n if (price !== null) {\r\n // This will request capacity either from cash of capacity service or from server AS LAST RESORT\r\n let capacity = await this._tariffCapacityService.GetCapacityAsync(this.tariff.Id, this.Date, this.Seance.SeanceId);\r\n\r\n if (capacity.Success && capacity.Data != null) {\r\n this.Capacity = capacity.Data;\r\n this.MaxCount = this.Capacity.Capacity;\r\n this.UseCapacity = true;\r\n };\r\n };\r\n };\r\n\r\n if (this.Capacity == null && this.tariff.Quota == null)\r\n this.TariffAvailable = false;\r\n\r\n if (this.TariffSale.Quota != null)\r\n this.MaxCount = this.TariffSale.Quota;\r\n };\r\n\r\n let cart = await this._cartService.GetCurrentOrCreateCartAsync();\r\n cart.Items.forEach(x => {\r\n if (x.Type == CartItemTypes.Tariff) {\r\n let cartItem = x as TariffCartItem;\r\n if (this.Seance == null) {\r\n if (cartItem.Tariff.Id == this.tariff.Id && cartItem.Date == this.Date) {\r\n this._currentCartItem = cartItem;\r\n } else {\r\n this._currentCartItem = undefined;\r\n };\r\n } else {\r\n if (cartItem.Tariff.Id == this.tariff.Id &&\r\n cartItem.Date == this.Date && cartItem.Seance != null &&\r\n cartItem.Seance.SeanceId == this.Seance.SeanceId) {\r\n this._currentCartItem = cartItem;\r\n } else {\r\n this._currentCartItem = undefined;\r\n };\r\n };\r\n };\r\n });\r\n\r\n let availableCount: number | undefined;\r\n if (this.UseCapacity) {\r\n if (this.Capacity != null)\r\n availableCount = this.Capacity.Capacity - this.Capacity.Count;\r\n } else {\r\n if (this.TariffSale.Quota != null)\r\n availableCount = this.TariffSale.Quota - this.TariffSale.Count;\r\n };\r\n\r\n this.TariffLoading = false;\r\n this.$emit('LoadingChange', this.Id, this.TariffLoading);\r\n this.$emit('AvailableChange', this.Id, this.TariffAvailable, availableCount, this.Seance?.SeanceId, this.Price);\r\n }\r\n}\r\n\r\nexport class WpTariffItemDictionary extends BaseUILocalizationDictionary {\r\n GenericItemsLeft: string = 'осталось';\r\n GenericItemsOf: string = 'из';\r\n GenericToCart: string = 'В корзину';\r\n CartIsFull: string = 'Максимальное количество элементов в корзине';\r\n NoMoreTickets: string = 'Закончились билеты';\r\n TariffUnavailableForThisDate: string = 'Тариф недоступен на эту дату';\r\n};","import { ClubCardType } from './club-card-type';\r\n\r\nexport default class ClubCard {\n ACCOUNT_YES?: boolean;\n /** xs:long */\n ACC_DISCOUNT?: number;\n\n CARD_FREEZE_LIST?: Array;\r\n CARD_USED_FREEZE_LIST?: Array;\r\n CARD_VISIT_LIST?: Array;\r\n\n /** xs:boolean */\n CHILD_CARD?: boolean; // false\n CONTRACT?: number; // 3480\r\n CSHI_ID?: number; // 14541915\r\n\r\n /** xs:long */\n CURRENT_NUMBER?: number; // 1620\r\n /** xs:long */\n DESIGN?: number; // 0\r\n DISCOUNT?: number; // 14535818\r\n /** xs:boolean */\n FIXED_YES?: boolean; // false\r\n FREEZE_DAYS_AMOUNT?: number; // 90\r\n FREEZE_DAYS_EXTRA?: number; // 0\r\n FREEZE_DAYS_REST?: number; // 90\r\n FREEZE_END_DATE?: string; // \"0001-01-01T00:00:00\"\r\n FREEZE_YES?: boolean; // true\r\n\n /** xs:long */\n ID?: number; // 2985\n\n ISSUE_DATA?: string; // \"0001-01-01T00:00:00\"\r\n IS_FREEZED?: boolean; // false\r\n\r\n /** xs:long */\n KIND?: number; // 4\n /** xs:string */\n KIND_DESC?: string; // \"������� 1\"\n /** xs:string */\n NAME?: string; // \"(��)�������������� ���\"\n /** xs:long */\n NEW_DESIGN?: number; // 0\n /** xs:string */\n NUMBER?: string; // \"1620\"\n OWNER_IS_CHILD?: boolean; // false\r\n OWNER_ORGANISATION?: number; // 0\r\n OWNER_PERSON?: number; // 14158733\n\n /** xs:long */\n SERVICE?: number; // 0\n SHABLON?: number; // 14535611\r\n STATUS?: number; // 1\r\n TIC_NUM?: number; // 0\r\n /** ClubCardType|xs:string|cctDefault,cctBarcode,cctStripe */\n TYPE?: ClubCardType; // 1\r\n VALID_FROM?: string; // \"2022-09-21T00:00:00\"\r\n VALID_TO?: string; // \"2023-09-20T00:00:00\"\n};\n","export default class MarketBase {\r\n typename: string = \"\";\r\n id: number = 0;\r\n AccessMask: number = 0;\r\n GlobalMask: number = 0;\r\n ModificationTS: string = \"\";\r\n CompositeName: string = \"\";\r\n}","import MarketBase from './market-base';\r\nimport MarketRule from './market-rule';\r\nimport MarketTariffService from './market-tariff-service';\r\n\r\nexport default class MarketCompany extends MarketBase {\r\n Name: Array = [];\r\n Rule: Array = [];\r\n Service: Array = [];\r\n}","import MarketBase from './market-base';\r\nimport MarketTariffService from './market-tariff-service';\r\n\r\nexport default class MarketRule extends MarketBase {\r\n Quantity: Array = [];\r\n Price: Array = [];\r\n Service: Array = [];\r\n Duration: Array = [];\r\n State: Array = [];\r\n Name: string = \"\";\r\n IsProduct: boolean = false;\r\n ClientType: Array = [];\r\n}","import MarketBase from './market-base';\r\nimport MarketEmployee from './market-employee';\r\n\r\nexport default class MarketTariffService extends MarketBase {\r\n Name: Array = [];\r\n PrepareTimeSpan: string = \"\";\r\n User: Array = [];\r\n}","import MarketBase from './market-base';\r\nimport MarketDateTimeRange from './market-date-time-range';\r\n\r\nexport default class MarketSchedule extends MarketBase{\r\n AllowedDateTimeRange: Array = [];\r\n CurrentState: number = 0;\r\n FirstOccurence: string = \"\";\r\n Flatten: boolean = false;\r\n}","import MarketBase from './market-base';\r\n\r\nexport default class MarketDateTimeRange extends MarketBase{\r\n StartDateTime: Array = [];\r\n EndDateTime: Array = [];\r\n}","export const MarketSymbols = {\r\n MarketService: Symbol.for(\"MarketService\"),\r\n MarketProvider: Symbol.for(\"MarketProvider\")\r\n}","import { injectable, inject } from 'inversify';\r\nimport MarketCompany from './market-company';\r\nimport { ActionResult, ErrorTypes } from '../Common';\r\nimport MarketSchedule from './market-schedule';\r\nimport IMarketProvider from './i-market-provider';\r\nimport { MarketSymbols } from './symbols';\r\nimport { MarketClient, MarketTariffCartItem, IMarketService, MarketBill, MarketIdentity } from '.';\r\nimport { OrderSale } from '..';\r\nimport { IIdentity, IContext, IdentitySymbols } from '../Identity';\r\n\r\n@injectable()\r\nexport default class MarketService implements IMarketService {\r\n protected readonly _context: IContext;\r\n protected readonly _provider: IMarketProvider;\r\n\r\n constructor(@inject(MarketSymbols.MarketProvider) provider: IMarketProvider,\r\n @inject(IdentitySymbols.Context) context: IContext) {\r\n this._provider = provider;\r\n this._context = context;\r\n }\r\n\r\n async GetRulesAsync(): Promise> {\r\n return await this._provider.GetRulesAsync();\r\n }\r\n async GetRuleScheduleAsync(id: number, date: string): Promise> {\r\n return await this._provider.GetRuleScheduleAsync(id, date);\r\n }\r\n\r\n async UnreservateTariffAsync(itemId: number): Promise {\r\n return await this._provider.UnreservateTariffAsync(itemId);\r\n }\r\n\r\n async ReservateTariffAsync(marketTariffCartItem: MarketTariffCartItem): Promise> {\r\n return await this._provider.ReservateTariffAsync(marketTariffCartItem);\r\n }\r\n\r\n async GetClientAsync(phone: string): Promise> {\r\n return await this._provider.GetClientAsync(phone);\r\n }\r\n\r\n async Get(phone: string): Promise> {\r\n return await this._provider.GetClientAsync(phone);\r\n }\r\n\r\n async InitializeByBillAsync(billId: number): Promise> {\r\n let result = await this._provider.InitializeByBill(billId);\r\n\r\n if (!result.Success || result.Data == null)\r\n return ActionResult.FailedData(result.ErrorType ?? ErrorTypes.InternalError, new MarketBill(), result.ErrorMessage);\r\n\r\n let marketIdentity = new MarketIdentity(result.Data);\r\n\r\n this._context.ChangeIdentity(marketIdentity);\r\n\r\n return ActionResult.SuccessData(result.Data.Bill);\r\n }\r\n}","export enum MarketCartItemState {\r\n Available = 1,\r\n Busy = 2\r\n}","export default class MarketClient {\r\n Id: number = 0;\r\n}","export enum MarketBillStatus {\r\n New = 0,\r\n Paid = 1,\r\n Canceled = 2,\r\n Used = 3,\r\n Undefined = 4\r\n}","import { CartItem, CartItemTypes } from './../Cart';\r\nimport { ReservationItem, ActionResult } from './..';\r\nimport { ErrorTypes, WpEventHandler, WpEventArgs, WpEvent } from './../Common';\r\nimport { MarketCartItemState } from './market-cart-item-state';\r\nimport GlobalService from './../Global/global-service';\r\nimport { ISaleService, SaleSymbols } from './../Sale';\r\nimport IMarketService from './i-market-service';\r\nimport MarketRule from './market-rule';\r\nimport { MarketDateTimeRange } from '.';\r\nimport MarketClient from './market-client';\r\nimport MarketEmployee from './market-employee';\r\n\r\nexport default class MarketTariffCartItem extends CartItem {\r\n private _type: CartItemTypes = CartItemTypes.MarketTariff;\r\n protected _marktetService: IMarketService;\r\n\r\n OrderId?: number;\r\n OrderItemId?: number;\r\n\r\n Rule: MarketRule = new MarketRule();\r\n Period: MarketDateTimeRange = new MarketDateTimeRange();\r\n Client: MarketClient = new MarketClient();\r\n Employee?: MarketEmployee;\r\n State: MarketCartItemState = MarketCartItemState.Available;\r\n\r\n constructor(marktetService: IMarketService) {\r\n super();\r\n this._marktetService = marktetService;\r\n }\r\n\r\n get IsAvailable(): boolean {\r\n return true;\r\n }\r\n get Info(): string {\r\n return `${this.Rule.Name}, ${this.Period.StartDateTime[0]} - ${this.Period.EndDateTime[0]}`;\r\n }\r\n get Type(): CartItemTypes {\r\n return this._type;\r\n }\r\n get Price(): number {\r\n return this.Rule.Price[0];\r\n }\r\n get Count(): number {\r\n return 1;\r\n }\r\n get MetricsId(): any | undefined {\r\n return this.Rule?.id;\r\n }\r\n public get Dates(): Array {\r\n return this.Period.StartDateTime;\r\n }\r\n public get AdditionalInfo(): any {\r\n return {\r\n rule: this.Rule,\r\n period: this.Period,\r\n }\r\n }\r\n\r\n get IsCanIncreaseCount(): boolean {\r\n return false;\r\n }\r\n get IsCanReduceCount(): boolean {\r\n return false;\r\n }\r\n IncreaseCount(): ActionResult {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ReduceCount(): ActionResult {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n IsConflictItem(item: CartItem): boolean {\r\n return item.Type != CartItemTypes.MarketTariff;\r\n }\r\n IsEqualsItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n CombineItem(item: CartItem): ActionResult {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n GetReservationItem(): ReservationItem[] {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n async ReservateItem(): Promise {\r\n this.State = MarketCartItemState.Busy;\r\n let result = await this._marktetService.ReservateTariffAsync(this);\r\n\r\n if (result.Success && result.Data != null) {\r\n this.OrderId = result.Data.Id;\r\n let orderItem = result.Data.Items.find(x => x.AdditionalInfo.CartItemId == this.TempId);\r\n this.OrderItemId = orderItem?.Id;\r\n }\r\n this.State = MarketCartItemState.Available;\r\n\r\n return result;\r\n }\r\n\r\n async RemoveItem(): Promise {\r\n if (this.OrderItemId == undefined) return ActionResult.Success();\r\n\r\n this.State = MarketCartItemState.Busy;\r\n let result = await this._marktetService.UnreservateTariffAsync(this.OrderItemId);\r\n this.State = MarketCartItemState.Available;\r\n\r\n this._cartItemChanged.Send(this, WpEventArgs.Empty);\r\n\r\n return result;\r\n }\r\n}","import MarketBase from './market-base';\r\n\r\nexport default class MarketEmployee extends MarketBase {\r\n FirstName: Array = [];\r\n LastName: Array = [];\r\n}","import MarketBase from './market-base';\r\n\r\nexport default class MarketBill extends MarketBase {\n Email: Array = []; \n Phone: Array = []; \n Price: Array = [];\n Status: Array = [];\n}","import { CartItem, CartItemTypes } from './../Cart';\r\nimport { ReservationItem, ActionResult } from './..';\r\nimport { ErrorTypes, WpEventHandler, WpEventArgs, WpEvent } from './../Common';\r\nimport { MarketCartItemState } from './market-cart-item-state';\r\nimport GlobalService from './../Global/global-service';\r\nimport { ISaleService, SaleSymbols, ReservationItemTypes } from './../Sale';\r\nimport IMarketService from './i-market-service';\r\nimport MarketRule from './market-rule';\r\nimport { MarketDateTimeRange } from '.';\r\nimport MarketClient from './market-client';\r\nimport MarketEmployee from './market-employee';\r\nimport MarketBill from './market-bill';\r\n\r\nexport default class MarketTariffCartItem extends CartItem {\r\n\r\n private _type: CartItemTypes = CartItemTypes.MarketBill;\r\n\r\n Bill: MarketBill;\r\n\r\n get IsAvailable(): boolean {\r\n return true;\r\n }\r\n get Info(): string {\r\n return `Оплата счета ${this.Bill.id} ${this.Bill.Email[0]}`;\r\n }\r\n get Type(): CartItemTypes {\r\n return this._type;\r\n }\r\n get Price(): number {\r\n return this.Bill.Price[0];\r\n }\r\n get Count(): number {\r\n return 1;\r\n }\r\n get MetricsId(): any | undefined {\r\n return this.Bill?.id;\r\n }\r\n public get Dates(): Array {\r\n return [];\r\n }\r\n public get AdditionalInfo(): any {\r\n return {\r\n bill: this.Bill,\r\n }\r\n }\r\n get IsCanIncreaseCount(): boolean {\r\n return false;\r\n }\r\n get IsCanReduceCount(): boolean {\r\n return false;\r\n }\r\n\r\n constructor(bill: MarketBill) {\r\n super();\r\n this.Bill = bill;\r\n }\r\n\r\n IncreaseCount(): ActionResult {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ReduceCount(): ActionResult {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n IsConflictItem(item: CartItem): boolean {\r\n return item.Type != CartItemTypes.MarketBill;\r\n }\r\n IsEqualsItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n CombineItem(item: CartItem): ActionResult {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n GetReservationItem(): ReservationItem[] {\r\n return [new ReservationItem(1, ReservationItemTypes.MarketBill, null, null, null, null, null, null, null, this.Bill.id)];\r\n }\r\n\r\n async RemoveItem(): Promise {\r\n return ActionResult.Success();\r\n }\r\n}","import MarketBill from './market-bill';\r\nimport { AccessToken, IIdentity } from '../Identity';\r\nimport MarketBillInitializeResult from './market-bill-initialize-result';\r\n\r\nexport default class MarketIdentity implements IIdentity {\r\n private _userId: string;\r\n private _accessToken: string;\r\n private _userBill: MarketBill;\r\n\r\n IsInitialized: boolean = false;\r\n\r\n get AccessToken(): AccessToken {\r\n let date = new Date(30);\r\n\r\n return new AccessToken(this._accessToken, date);\r\n }\r\n get IsAuthentificated(): boolean {\r\n return true;\r\n }\r\n get Username(): string {\r\n return this._userBill.Email[0];\r\n }\r\n get UserId(): string {\r\n return this._userId;\r\n }\r\n get Phone() {\r\n return this._userBill != null && this._userBill?.Phone != null && this._userBill?.Phone.length > 0 ? this._userBill?.Phone[0] : undefined;\r\n }\r\n\r\n get Email() {\r\n return this._userBill.Email[0];\r\n }\r\n\r\n constructor(result: MarketBillInitializeResult) {\r\n this._accessToken = result.Token;\r\n this._userId = result.UserId;\r\n this._userBill = result.Bill;\r\n }\r\n}","import MarketBill from './market-bill';\r\n\r\nexport default class MarketBillInitializeResult {\r\n UserId: string = '';\r\n Token: string = '';\r\n Bill: MarketBill = new MarketBill();\r\n}","import CartItem from './../Cart/cart-item';\r\nimport { CartItemTypes } from './../Cart/cart-item-types';\r\nimport { ActionResult, ErrorTypes, WpEventArgs } from './../Common';\r\nimport { ReservationItemTypes, ReservationItem } from './../Sale';\r\nimport * as moment from 'moment';\r\nimport { Cart, createGuid } from './..';\r\nimport InstructorsBundlesGroupsLessons from './instructors-bundles-groups-lessons';\r\n\r\n\r\nexport default class InstructorsBundlesCartItem extends CartItem {\r\n private _maxCount: number = 10;\r\n private _price: number = 0;\r\n private _beginTime: string = \"\";\r\n private _endTime: string = \"\";\r\n private _maxDate: string = \"\";\r\n private _minDate: string = \"\";\r\n private _count: number;\r\n private _cart: Cart;\r\n private _bundle: InstructorsBundlesGroupsLessons;\r\n private _type: CartItemTypes = CartItemTypes.InstructorsBundleLessons;\r\n\r\n get IsAvailable(): boolean {\r\n return true;\r\n }\r\n public get Info(): string {\r\n return `${this._minDate} - ${this._maxDate} ${this._bundle.Lessons[0].TariffName} с ${this._beginTime} до ${this._endTime} (${this._count}) чел.`;\r\n }\r\n public get Type(): CartItemTypes {\r\n return this._type;\r\n }\r\n public get Price(): number {\r\n return this._count * this._price;\r\n }\r\n public get Count(): number {\r\n return this._count;\r\n }\r\n public get IsCanIncreaseCount(): boolean {\r\n return this._count < this._maxCount && this._cart.LeftCount > 0; \r\n }\r\n public get IsCanReduceCount(): boolean {\r\n return this._count > 1 ;\r\n }\r\n public get Bundle(): InstructorsBundlesGroupsLessons {\r\n return this._bundle;\r\n }\r\n get MetricsId(): any | undefined {\r\n if (this._bundle == null || this._bundle.Lessons == null ||\r\n this._bundle.Lessons.length == 0)\r\n return undefined;\r\n\r\n return this._bundle?.Lessons[0]?.TariffId;\r\n }\r\n public get Dates(): Array {\r\n let result = new Array();\r\n\r\n this.Bundle.Lessons.forEach(lesson => {\r\n if (lesson.Date !== undefined) {\r\n result.push(moment.parseZone(lesson.Date, 'YYYY-MM-DDTHH:mm').format('DD.MM.YYYY'));\r\n }\r\n })\r\n\r\n return result;\r\n }\r\n\r\n public get AdditionalInfo(): any {\r\n return this._bundle;\r\n }\r\n\r\n constructor(bundle: InstructorsBundlesGroupsLessons, count: number, price: number, cart: Cart) {\r\n super(); \r\n\r\n this._beginTime = moment.parseZone(bundle.Lessons[0].BeginTime, \"HH:mm:SS\").format(\"HH:mm\");\r\n this._endTime = moment.parseZone(bundle.Lessons[0].EndTime, \"HH:mm:SS\").format(\"HH:mm\");\r\n this._minDate = moment.parseZone(bundle.MinDate, \"YYYY-MM-DD\").format(\"DD.MM.YYYY\");\r\n this._maxDate = moment.parseZone(bundle.MaxDate, \"YYYY-MM-DD\").format(\"DD.MM.YYYY\");\r\n\r\n this._bundle = bundle;\r\n this._count = count;\r\n this._price = price;\r\n this._cart = cart;\r\n if (bundle.Lessons[0].FreeMembers < this._maxCount)\r\n this._maxCount = bundle.Lessons[0].FreeMembers;\r\n }\r\n\r\n public IncreaseCount(): ActionResult {\r\n if (this._count < this._maxCount && this._cart.LeftCount > 0) {\r\n this._count++;\r\n\r\n this._cartItemChanged.Send(this, WpEventArgs.Empty);\r\n\r\n return ActionResult.Success();\r\n }\r\n else\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Превышено допустимое количество для данного типа услуг\");\r\n }\r\n\r\n public ReduceCount(): ActionResult {\r\n if (this._count >= 2) {\r\n this._count--;\r\n\r\n this._cartItemChanged.Send(this, WpEventArgs.Empty);\r\n\r\n return ActionResult.Success();\r\n } else\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Достигнуто минимальное возможное количество\");\r\n }\r\n\r\n public IsConflictItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n\r\n public IsEqualsItem(item: CartItem): boolean {\r\n if (item.Type != CartItemTypes.InstructorsBundleLessons) return false;\r\n\r\n let cartItem = item as InstructorsBundlesCartItem;\r\n\r\n return cartItem != null && cartItem.Bundle.BundleId === this._bundle.BundleId;\r\n }\r\n\r\n public CombineItem(item: CartItem): ActionResult {\r\n let cartItem = item as InstructorsBundlesCartItem;\r\n\r\n if (this._count + cartItem.Count > this._maxCount || this._cart.LeftCount < this._count + cartItem.Count)\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Превышено допустимое количество для данного типа услуг\");\r\n\r\n this._count = this._count + cartItem.Count;\r\n\r\n this._cartItemChanged.Send(this, WpEventArgs.Empty);\r\n\r\n return ActionResult.Success();\r\n }\r\n\r\n public GetReservationItem(): Array {\r\n let result = new Array();\r\n\r\n for (let i = 1; i <= this._count; i++) {\r\n let reservationBundleId = createGuid();\r\n\r\n this.Bundle.Lessons.forEach(lesson => {\r\n result.push(new ReservationItem(1, ReservationItemTypes.BundleLesson,\r\n lesson.TariffId, moment.parseZone(lesson.Date).format(\"DD.MM.YYYY\"), null, lesson.Id, null, reservationBundleId));\r\n });\r\n }\r\n\r\n return result;\r\n }\r\n\r\n async RemoveItem(): Promise {\r\n return ActionResult.Success();\r\n }\r\n}","import { injectable } from 'inversify';\r\nimport ActionResult from './../Common/action-result';\r\nimport ITariffCapacityProvider from './i-tariff-capacity-provider';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport GlobalService from '../Global/global-service';\r\nimport { ErrorTypes } from '../Common/error-types';\r\nimport TariffCapacity from './tariff-capacity';\r\nimport { AppSettings } from '../Global/app-settings';\r\n\r\n@injectable()\r\nexport default class TariffCapacityProvider implements ITariffCapacityProvider {\r\n private _settings: AppSettings;\r\n // Don't forget to change it back to trfsrv.moipass.ru\r\n protected readonly _apiUrl: string = GlobalService.GetSettings().IsDevVersion ? 'https://trfsrv-test.moipass.ru' : 'https://trfsrv.moipass.ru/';\r\n\r\n constructor() {\r\n this._settings = GlobalService.GetSettings();\r\n }\r\n\r\n async GetCapacityAsync(tariffId: number, date: string, seanceId: string): Promise> {\r\n let address = this._settings.IsDevVersion ? window.location.origin : 'https://trfsrv.moipass.ru/';\r\n let prefix = this._settings.IsDevVersion ? '/trfsrv' : '';\r\n\r\n let client: RestClient = new RestClient('wp-app', address, [], {\r\n headers: {\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get(`${prefix}/api/tariffs/capacity?id=${tariffId}&date=${date}&seanceId=${seanceId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n if (response.result != null && response.result.Capacity != null &&\r\n response.result.Count != null && response.result.ZoneId != null) {\r\n let capacity = new TariffCapacity();\r\n\r\n capacity.Capacity = response.result.Capacity;\r\n capacity.Count = response.result.Count;\r\n capacity.ZoneId = response.result.ZoneId;\r\n capacity.SeanceId = seanceId;\r\n\r\n return ActionResult.SuccessData(capacity);\r\n }\r\n\r\n return ActionResult.Success();\r\n };\r\n\r\n /*\r\n * Запросить нагрузку (Сколько осталось билетов например) на сеансы тарифа одним запросом\r\n * \r\n * Пример ответа:\r\n * ID сеанса: { Кол-во купленных билетов, Макс. кол-во билетов, ID зоны, Результат операции, Сообщение об ошибке}\r\n * {\r\n * 274252: {Count: 0, Capacity: 10, ZoneId: '2', Result: 0, Message: null},\r\n * 673425: {Count: 0, Capacity: 10, ZoneId: '2', Result: 0, Message: null},\r\n * 673432: {Count: 0, Capacity: 10, ZoneId: '2', Result: 0, Message: null}\r\n * }\r\n */\r\n async GetTariffsAllCapacities(id: number, date: string): Promise {\r\n let client: RestClient = new RestClient('wp-app', this._apiUrl, [], {\r\n headers: {\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }});\r\n let response = await client.get(`/api/tariffs/all/capacities?id=${id}&date=${date}`);\r\n return response.result != null ? ActionResult.SuccessData(response.result) : ActionResult.Failed(ErrorTypes.InternalError);\r\n }\r\n\r\n}\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Capacity?: number;\r\n Count?: number;\r\n ZoneId?: string;\r\n}\r\n","import './wp-password-reset.scss';\r\n\r\nimport Vue from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, { IdentityAccountProvider, INotificationService, NotificationSymbols, ErrorTypes, AppSettings } from 'web-platform-core-ui';\r\nimport { Ref } from 'vue-property-decorator';\r\nimport WpBaseComponent from '../../wp-base-component';\r\nimport BaseUILocalizationDictionary from '../../Localization/base-ui-localization-terms';\r\n\r\n@Component({\r\n template: require(\"./wp-password-reset.html\")\r\n})\r\nexport default class WpPasswordReset extends mixins>(WpBaseComponent, Vue) {\r\n protected _notificationService!: INotificationService;\r\n \r\n ResetPasswordByPhoneLoading: boolean = false;\r\n ResetPasswordByEmailLoading: boolean = false;\r\n ResetPasswordByPhoneFormValid: boolean = false;\r\n ResetPasswordByEmailFormValid: boolean = false;\r\n @Ref('ResetPasswordByPhoneForm') ResetPasswordByPhoneForm!: HTMLFormElement;\r\n @Ref('ResetPasswordByEmailForm') ResetPasswordByEmailForm!: HTMLFormElement;\r\n @Ref('ConfirmPasswordInput') ConfirmPasswordInput!: any;\r\n\r\n CodeId: number = 0;\r\n NewPassword: string = '';\r\n ConfirmPassword: string = '';\r\n\r\n NewPasswordShow: boolean = false;\r\n ConfirmPasswordShow: boolean = false;\r\n ResetPasswordLoading: boolean = false;\r\n\r\n Tab: string = 'email';\r\n ResetPasswordStep: number = 1;\r\n\r\n Email: string = '';\r\n\r\n Settings!: AppSettings;\r\n\r\n get NewPassowrdRules() {\r\n return [\r\n (v: string) => !!v || this.Terms.FieldRequiredMessage,\r\n (v: string) => (v && v.length > 6) || this.Terms.PasswordLengthError,\r\n (v: string) => /^[а-яА-Яa-zA-Z0-9ёЁ!№;%:?*()_+=\\-<>.,/\\\\'`@#$%^&{}\\[\\]|\"\"~ ]{0,50}$/.test(v) || this.Terms.PasswordNotAvailableCharacters\r\n ]\r\n }\r\n\r\n get ConfirmPassowrdRules() {\r\n return [\r\n (v: string) => !!v || this.Terms.FieldRequiredMessage,\r\n (v: string) => v == this.NewPassword || this.Terms.ComparePasswordError,\r\n ]\r\n }\r\n\r\n get EmailRules() {\r\n return [\r\n (v: string) => !!v || this.Terms.EmailRequiredMessage,\r\n (v: string) => /.+@.+\\..+/.test(v) || this.Terms.EmailRequiredMessage,\r\n ]\r\n }\r\n\r\n NewPasswordChanged(e: any) {\r\n this.ConfirmPasswordInput.validate();\r\n }\r\n\r\n CodeConfirmed(code: any): void {\r\n this.CodeId = code.CodeId;\r\n this.ResetPasswordStep = 2; \r\n }\r\n\r\n TabChanged(tab: string) {\r\n if (tab == 'email') {\r\n this.CodeId = 0;\r\n this.ResetPasswordStep = 1;\r\n }\r\n }\r\n\r\n\r\n async ResetPasswordByPhoneFormSubmit(e: any) {\r\n e.preventDefault();\r\n await this.ResetPasswordByPhone();\r\n }\r\n async ResetPasswordByPhone() {\r\n if (!this.ResetPasswordByPhoneForm.validate())\r\n return;\r\n\r\n\r\n this.ResetPasswordByPhoneLoading = true;\r\n let _identityAccountPorvider: IdentityAccountProvider = new IdentityAccountProvider();\r\n let resetResult = await _identityAccountPorvider.ResetPasswordByPhone(this.NewPassword, this.ConfirmPassword);\r\n if (!resetResult.Success) {\r\n this._notificationService.Error(\"\", resetResult.ErrorMessage ?? this.Terms.InternalError);\r\n this.ResetPasswordByPhoneLoading = false;\r\n\r\n if (resetResult.ErrorType == ErrorTypes.NotFoundData) {\r\n this.ResetPasswordStep = 1;\r\n this.ResetPasswordByPhoneForm.reset();\r\n }\r\n\r\n return;\r\n }\r\n\r\n this.ResetPasswordByPhoneLoading = false;\r\n this.ResetPasswordByPhoneForm.reset();\r\n this._notificationService.Success(\"\", this.Terms.SuccessPasswordChangedMessage);\r\n this.$emit(\"Back\");\r\n this.ResetPasswordStep = 1;\r\n\r\n }\r\n\r\n async ResetPasswordByEmailFormSubmit(e: any) {\r\n e.preventDefault();\r\n await this.ResetPasswordByEmail();\r\n }\r\n async ResetPasswordByEmail() {\r\n if (!this.ResetPasswordByEmailForm.validate())\r\n return;\r\n\r\n this.ResetPasswordByEmailLoading = true;\r\n \r\n\r\n let _identityAccountPorvider: IdentityAccountProvider = new IdentityAccountProvider();\r\n\r\n let resetResult = await _identityAccountPorvider.ResetPasswordByEmail(this.Email,\r\n this.Settings.CurrentSite != null ? this.Settings.CurrentSite.OrganizationId : 0);\r\n if (!resetResult.Success) {\r\n this.ResetPasswordByEmailLoading = false;\r\n this._notificationService.Error(\"\", resetResult.ErrorMessage ?? this.Terms.InternalError);\r\n return;\r\n }\r\n \r\n this.ResetPasswordByEmailLoading = false;\r\n this.ResetPasswordByEmailForm.reset();\r\n this._notificationService.Success(\"\", this.Terms.NewPasswordSendedMessage);\r\n this.$emit(\"Back\");\r\n this.ResetPasswordStep = 1;\r\n }\r\n\r\n\r\n mounted() {\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n this.Settings = GlobalService.GetSettings();\r\n } \r\n\r\n Back() {\r\n this.$emit(\"Back\");\r\n }\r\n}\r\n\r\nexport class WpPasswordResetDictionary extends BaseUILocalizationDictionary {\r\n SuccessPasswordChangedMessage: string = 'Пароль изменен';\r\n NewPasswordSendedMessage: string = 'Новый пароль отправлен на почту'\r\n EmailRequiredMessage: string = 'Введите e-mail';\r\n FieldRequiredMessage: string = 'Поле обязательно к заполнению';\r\n PasswordLengthError: string = 'Должно быть длинее 6 символов';\r\n PasswordNotAvailableCharacters: string = 'Доступные символы для пароля: цифры, кириллица, латинские буквы, (пробел) ! \" № # $ % & \\'() * + , - . / : ; + = ?@[\\] ^ _` { | } ~ <>';\r\n ComparePasswordError: string = 'Пароли не совпадают';\r\n ResetPasswordTitle: string = 'Восстановление пароля';\r\n EmailLblText: string = 'Введите email';\r\n NewPasswordLblText: string = 'Введите новый пароль';\r\n RepeatPasswordLblText: string = 'Повторите пароль';\r\n ResetBtnText: string = 'Восстановить';\r\n ChangeBtnText: string = 'сменить';\r\n}","module.exports = \"
\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n mdi-arrow-left\\r\\n 0 ? GetLeftTime : ''\\\">\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n {{ Terms.SbpMobileTitle }}{{ Terms.SbpMobileTitleLink }}\\r\\n

\\r\\n
\\r\\n \\r\\n {{ Terms.SbpTitle }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericCancel }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.DataRequired }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericCancel }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n mdi-chevron-up\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n 1 || OnlyTab.length == 0\\\"\\r\\n class=\\\"pb-8 col-10 pl-0 pr-2\\\"\\r\\n icons-and-text\\r\\n next-icon=\\\"mdi-arrow-right-bold-box-outline\\\"\\r\\n prev-icon=\\\"mdi-arrow-left-bold-box-outline\\\"\\r\\n show-arrows>\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ Terms.TabService }}\\r\\n mdi-billboard\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.TabRewrite }}\\r\\n mdi-credit-card-plus-outline\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.TabPersonalLessons }}\\r\\n mdi-account-multiple-outline\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.TabGroupLessons }}\\r\\n mdi-account-group-outline\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.TabBundlesLessons }}\\r\\n mdi-table-account\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n mdi-arrow-left {{ Terms.GenericBack }}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ Terms.GenericPlaceOrder }}\\r\\n 0 ? GetLeftTime : Terms.GenericBuy\\\">\\r\\n 0 ? GetLeftTime : Terms.GenericPay\\\">\\r\\n mdi-arrow-right\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericPleaseWait }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\";","import { ILocalizationService, LocalizationSymbols } from '../Localization';\r\nimport { ILoyaltyProvider, LoyaltySymbols } from '../Loyalty';\r\nimport { IDateHandler, DateHandlerSymbols } from '../Utility';\r\nimport { INotificationService, NotificationSymbols } from '../Notification';\r\nimport DefaultClubService from './../Club/default-club-service';\r\nimport { ActionResult } from '../Common';\r\nimport ClubContract from './../Club/club-contract';\r\nimport { injectable, inject } from 'inversify';\r\nimport { IClubProvider, ClubSymbols } from './../Club';\r\nimport { TennisSymbols } from './symbols';\r\n\r\n@injectable()\r\nexport default class TennisClubService extends DefaultClubService {\r\n\r\n constructor(@inject(ClubSymbols.ClubProvider) clubProvider: IClubProvider,\r\n @inject(LocalizationSymbols.LocalizationService) localizationService: ILocalizationService,\r\n @inject(DateHandlerSymbols.DateHandlerService) dateHandler: IDateHandler,\r\n @inject(LoyaltySymbols.LoyaltyProvider) loyaltyProvider: ILoyaltyProvider,\r\n @inject(NotificationSymbols.NotificationService) notificationService: INotificationService) {\r\n super(clubProvider, localizationService, dateHandler, loyaltyProvider, notificationService);\r\n }\r\n\r\n async GetContractsAsync(): Promise>> {\r\n let result = await super.GetContractsAsync();\r\n\r\n if (!result.Success || this._contracts == null) return result;\r\n\r\n await this._localizationService.TranslateManyAsync(Symbol.for(\"LTContractAccess\"), this._contracts);\r\n\r\n return ActionResult.SuccessData(this._contracts);\r\n }\r\n}","import './wp-cart.scss';\r\n\r\nimport Vue, { VueConstructor } from 'vue';\r\nimport { Prop, DefaultProps } from \"vue/types/options\";\r\nimport WpBaseComponent from './../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport {\r\n Cart, CartItem, IMetricsService, MetricsSymbols, BaseSystemLocalizationDictionary,\r\n INotificationService, NotificationSymbols, NotificationEventArgs, NotificationTypes\r\n} from 'web-platform-core-ui';\r\nimport { formatPrice } from 'web-platform-core-ui/src/Utility/format';\r\nimport { MetricsEvents } from '../../metrics-events-symbols';\r\n\r\nexport const wpCartProps = Vue.extend({\r\n props: {\r\n Cart: Object as Prop,\r\n Type: Number\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-cart.html\")\r\n})\r\nexport default class WpCart extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpCartProps, Vue) {\r\n // Enable notifications/sygnals to send to other parts of the program\r\n protected _notificationService!: INotificationService;\r\n\r\n _formatPrice = formatPrice;\r\n _metricsService!: IMetricsService;\r\n\r\n CartModal: boolean = false;\r\n\r\n async created() {\r\n this._metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n // Get notification service up and ready\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n }\r\n\r\n async mounted() {\r\n this.$parent.$on('ExternalCart', this.OpenCart);\r\n }\r\n\r\n get Items(): Array {\r\n this._notificationService.SendSystemNotification(\"CartContent\", this.Cart.Items);\r\n return this.Cart.Items;\r\n }\r\n\r\n OpenCart(): void {\r\n this.CartModal = true;\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetOpenCart);\r\n }\r\n\r\n Pay(): void {\r\n this.CartModal = false;\r\n this._metricsService.RegistrateEvent(MetricsEvents.IncartToPurchase);\r\n this.$emit(\"CartReservation\");\r\n }\r\n\r\n RemoveItem(itemId: string): void {\r\n let cartItem = this.Cart.Items.find((x: { TempId: string; }) => x.TempId == itemId);\r\n\r\n this.Cart.RemoveItem(itemId);\r\n this.$emit('CartHaveItems', this.Cart.Items.length > 0);\r\n\r\n this._metricsService.RegistrateEvent(MetricsEvents.IncartRemove, cartItem?.MetricsId);\r\n }\r\n\r\n ClearCart(): void {\r\n // This method clears cart's content\r\n this.Cart.Clear();\r\n this._metricsService.RegistrateEvent(MetricsEvents.IncartCancel);\r\n this.$emit('CartHaveItems', this.Cart.Items.length > 0);\r\n // Close cart after clearing it (Optional)\r\n this.CloseCart();\r\n }\r\n\r\n CloseCart() {\r\n this.CartModal = false;\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgeCloseCart);\r\n }\r\n}\r\n\r\nexport class WpCartDictionary extends BaseSystemLocalizationDictionary {\r\n GenericCart: string = '';\r\n GenericClearCart: string = '';\r\n GenericTotal: string = '';\r\n GenericCheckout: string = '';\r\n}","module.exports = \"
\\r\\n
\";","import { AccessToken, IIdentity, IdentityChangedEventArgs } from './';\r\nimport { WpEvent, WpEventHandler } from './../Common';\r\nimport { UserManager, User, UserManagerSettings } from 'oidc-client';\r\nimport AppSettingsInitializedEventArgs from '../Global/app-settings-initialized-event-args';\r\nimport { AppSettings } from '../Global/app-settings';\r\nimport GlobalService, { ILocalizationService, LocalizationSymbols } from '..';\r\nimport IContext from './i-context';\r\n\r\nexport default class MobileUserIdentity implements IIdentity, IContext {\r\n private _user?: User | null;\r\n private _manager?: UserManager;\r\n private _managerSettings: any;\r\n private _identityChanged: WpEventHandler;\r\n\r\n IsInitialized: boolean = false;\r\n\r\n get AccessToken(): AccessToken {\r\n let accessToken = this._user?.access_token ?? '';\r\n let date = this._user != null ? new Date(this._user.expires_in) : new Date();\r\n\r\n return new AccessToken(accessToken, date);\r\n }\r\n get IsAuthentificated(): boolean {\r\n return this._user != null && this._user != undefined && !this._user.expired;\r\n }\r\n get Username(): string {\r\n return this._user?.profile?.preferred_username ?? \"\";\r\n }\r\n get UserId(): string {\r\n return this._user?.profile?.sub ?? \"\";\r\n }\r\n get Phone() {\r\n return this._user?.profile?.phone_number;\r\n }\r\n set Phone(val: string | undefined) {\r\n if (this._user != null && this._user.profile != null) {\r\n this._user.profile.phone_number = val;\r\n }\r\n }\r\n\r\n get IdentityChanged(): WpEvent {\r\n return this._identityChanged;\r\n }\r\n get CurrentIdentity(): IIdentity {\r\n return this;\r\n }\r\n\r\n constructor(managerSettings: any) {\r\n this._identityChanged = new WpEventHandler();\r\n this._managerSettings = managerSettings;\r\n }\r\n\r\n SignIn(): void {\r\n if (this._manager != null)\r\n this._manager.signinRedirect();\r\n else\r\n Error(\"Manager not initialzed\");\r\n }\r\n\r\n SignOut(): void {\r\n if (this._manager != null)\r\n this._manager.signoutRedirect();\r\n else\r\n Error(\"Manager not initialzed\");\r\n }\r\n\r\n ChangeIdentity(identity: IIdentity) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n async Refresh() {\r\n if (this._user != null && this._user.profile != null && this._manager != null) {\r\n console.log(this._user);\r\n this._user = await this._manager.signinSilent({ access_token: this.AccessToken });\r\n console.log(this._user);\r\n }\r\n }\r\n\r\n public async Initialize(appSettings: AppSettings, globalService: GlobalService) {\r\n let localizationService = globalService.Get(LocalizationSymbols.LocalizationService);\r\n this._managerSettings.ui_locales = localizationService.CurrentLocalization;\r\n this._managerSettings.acr_values = ` siteid:${appSettings.SiteId} organizationId:${appSettings.CurrentSite?.OrganizationId} newauth`;\r\n this._manager = new UserManager(this._managerSettings);\r\n\r\n let identity = this;\r\n\r\n this._manager.events.addUserLoaded(identity.userSigninEvent);\r\n this._manager.events.removeUserLoaded(identity.userSignoutEvent);\r\n this._manager.events.addUserSignedOut(identity.userSignoutEvent);\r\n this._manager.events.removeUserSignedOut(identity.userSignoutEvent);\r\n\r\n this._user = await this._manager.getUser();\r\n\r\n if (this._user != null) {\r\n let args = new IdentityChangedEventArgs(identity);\r\n identity._identityChanged.Send(identity, args);\r\n }\r\n identity.IsInitialized = true;\r\n }\r\n\r\n protected userSigninEvent(user: User) {\r\n this._user = user;\r\n let args = new IdentityChangedEventArgs(this);\r\n this._identityChanged.Send(this, args);\r\n }\r\n protected userSignoutEvent() {\r\n this._user = null;\r\n }\r\n}","export default class AccessToken {\r\n\r\n Token: string = '';\r\n Expired: Date = new Date();\r\n RefreshToken?: string;\r\n\r\n constructor(token: string, expired: Date, refreshToken?: string) {\r\n this.Token = token;\r\n this.Expired = expired;\r\n this.RefreshToken = refreshToken;\r\n }\r\n\r\n}","import { WpEventArgs } from './../Common'\r\nimport { IIdentity } from './'\r\n\r\nexport default class IdentityChangedEventArgs extends WpEventArgs {\r\n Identity: IIdentity;\r\n\r\n constructor(identity: IIdentity) {\r\n super();\r\n this.Identity = identity;\r\n }\r\n}","import IIdentity from './i-identity';\r\nimport AccessToken from './access-token';\r\n\r\nexport default class EmptyIdentity implements IIdentity {\r\n get AccessToken(): AccessToken {\r\n return new AccessToken(\"\", new Date());\r\n }\r\n get IsAuthentificated(): boolean {\r\n return false;\r\n }\r\n get Username(): string {\r\n return \"\";\r\n }\r\n get UserId(): string {\r\n return \"\";\r\n }\r\n\r\n get Phone() {\r\n return undefined;\r\n }\r\n}","import { IIdentity, IContext, IdentityChangedEventArgs } from './';\r\nimport { WpEvent } from './../Common';\r\nimport EmptyIdentity from './empty-identity';\r\nimport { AppSettings } from '..';\r\n\r\nexport default class EmptyContext implements IContext {\r\n IsInitialized: boolean = true;\r\n get CurrentIdentity(): IIdentity {\r\n return new EmptyIdentity();\r\n }\r\n\r\n get IdentityChanged(): WpEvent {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n SignIn(): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n SignOut(): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ChangeIdentity(identity: IIdentity): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n async Initialize(appSettings: AppSettings): Promise {\r\n }\r\n}","import { AccessToken, IIdentity, IContext, IdentityChangedEventArgs, OIDCStorageStore } from './';\r\nimport { WpEvent, WpEventHandler } from './../Common';\r\nimport { UserManager, User } from 'oidc-client';\r\nimport { AppSettings } from '../Global/app-settings';\r\nimport { injectable } from 'inversify';\r\nimport GlobalService from '../Global/global-service';\r\nimport { ILocalizationService, LocalizationSymbols } from '../Localization';\r\n\r\n@injectable()\r\nexport default class WebSaleUserIdentity implements IIdentity, IContext {\r\n private _specificIdentity?: IIdentity;\r\n private _user?: User | null;\r\n private _manager?: UserManager;\r\n private _managerSettings: any;\r\n private _identityChanged: WpEventHandler;\r\n private _isNewAuth: boolean = true;\r\n private _store: OIDCStorageStore;\r\n\r\n IsInitialized: boolean = false;\r\n\r\n get AccessToken(): AccessToken {\r\n let accessToken = this._user?.access_token ?? '';\r\n let date = this._user != null ? new Date(this._user.expires_in) : new Date();\r\n return new AccessToken(accessToken, date);\r\n // Sometimes after build you can get this error\r\n // Uncaught TypeError: I is undefined\r\n // It is fixed by editing this file. And thats why you see this comment\r\n // This error sometimes links to other files in this project\r\n // And often happens when other user makes changes to this TFS repo\r\n };\r\n\r\n get IsAuthentificated(): boolean {\r\n return this._user != null && this._user != undefined && !this._user.expired;\r\n };\r\n\r\n get Username(): string {\r\n return this._user?.profile?.preferred_username ?? \"\";\r\n };\r\n\r\n get UserId(): string {\r\n return this._user?.profile?.sub ?? \"\";\r\n };\r\n\r\n get Phone() {\r\n return this._user?.profile?.phone_number;\r\n };\r\n\r\n set Phone(val: string | undefined) {\r\n if (this._user != null && this._user.profile != null) {\r\n this._user.profile.phone_number = val;\r\n };\r\n };\r\n\r\n get IdentityChanged(): WpEvent {\r\n return this._identityChanged;\r\n };\r\n\r\n get CurrentIdentity(): IIdentity {\r\n if (this._specificIdentity != null)\r\n return this._specificIdentity;\r\n return this;\r\n };\r\n\r\n constructor(managerSettings: any, store: OIDCStorageStore, isNewAuth: boolean = true) {\r\n this._store = store;\r\n this._identityChanged = new WpEventHandler();\r\n this._managerSettings = managerSettings;\r\n this._isNewAuth = isNewAuth;\r\n };\r\n\r\n SignIn(): void {\r\n if (this._manager != null)\r\n this._manager.signinPopup();\r\n else\r\n Error(\"Manager not initialzed\");\r\n };\r\n\r\n SignOut(): void {\r\n if (this._specificIdentity != null)\r\n this._specificIdentity = undefined;\r\n\r\n if (this._manager != null)\r\n this._manager.signoutPopup();\r\n else\r\n Error(\"Manager not initialzed\");\r\n };\r\n\r\n ChangeIdentity(identity: IIdentity) {\r\n this._specificIdentity = identity;\r\n let args = new IdentityChangedEventArgs(this._specificIdentity);\r\n this._identityChanged.Send(this._specificIdentity, args);\r\n };\r\n\r\n async Refresh() {\r\n if (this._user != null && this._user.profile != null && this._manager != null)\r\n this._user = await this._manager.signinSilent({ access_token: this.AccessToken.Token });\r\n };\r\n\r\n public async Initialize(appSettings: AppSettings, globalService: GlobalService) {\r\n let localizationService = globalService.Get(LocalizationSymbols.LocalizationService);\r\n this._managerSettings.ui_locales = localizationService.CurrentLocalization;\r\n this._managerSettings.acr_values = ` siteid:${appSettings.SiteId} organizationId:${appSettings.CurrentSite?.OrganizationId}${this._isNewAuth ? ' newauth' : ''}`;\r\n this._manager = new UserManager(this._managerSettings);\r\n\r\n let identity = this;\r\n\r\n this._manager.events.addUserLoaded((user: User) => {\r\n identity._user = user;\r\n identity._store.SaveStorage(this.AccessToken.Token);\r\n let args = new IdentityChangedEventArgs(this);\r\n identity._identityChanged.Send(this, args);\r\n });\r\n this._manager.events.removeUserLoaded(() => { identity._user = null; identity._store.SaveStorage(this.AccessToken.Token); });\r\n this._manager.events.addUserSignedOut(() => { identity._user = null; identity._store.SaveStorage(this.AccessToken.Token); });\r\n this._manager.events.removeUserSignedOut(() => { identity._user = null; identity._store.SaveStorage(this.AccessToken.Token); });\r\n\r\n await this._store.RestoreStorage();\r\n this._user = await this._manager.getUser();\r\n\r\n if (this._user != null) {\r\n let args = new IdentityChangedEventArgs(identity);\r\n identity._identityChanged.Send(identity, args);\r\n };\r\n identity.IsInitialized = true;\r\n };\r\n};","import GlobalService from './../Global/global-service';\r\nimport { AppSettings } from './../Global/app-settings';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport IUserStorage from './i-user-storage';\r\n\r\nconst MemoryStorage = require('memorystorage');\r\n\r\nexport default class OIDCStorageStore implements IUserStorage {\r\n _storage: any;\r\n\r\n constructor() {\r\n this._storage = MemoryStorage('my-app');\r\n }\r\n\r\n getItem(key: string) {\r\n return this._storage.getItem(key);\r\n }\r\n\r\n setItem(key: string, value: string) {\r\n this._storage.setItem(key, value);\r\n }\r\n\r\n removeItem(key: string) {\r\n this._storage.removeItem(key);\r\n }\r\n\r\n get length(): number {\r\n return this._storage.length();\r\n }\r\n\r\n key(index: number) {\r\n return this._storage.key(index);\r\n }\r\n\r\n async ClearStorage(): Promise {\r\n \r\n }\r\n\r\n async SaveStorage(token: string) {\r\n let settings = GlobalService.GetSettings();\r\n\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SessionId\": settings.SessionId,\r\n \"Authorization\": `Bearer ${token}`\r\n }\r\n });\r\n\r\n let data = JSON.stringify(this._storage);\r\n try {\r\n let response = await client.replace(`/api/widget/store/`, { Data: data });\r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n\r\n async RestoreStorage(): Promise {\r\n let settings = GlobalService.GetSettings();\r\n\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SessionId\": settings.SessionId\r\n }\r\n });\r\n\r\n try {\r\n let response = await client.get(`/api/widget/store/`);\r\n\r\n if (response.result != null && response.result !== '') {\r\n\r\n let store = JSON.parse(response.result);\r\n\r\n for (const prop in store) {\r\n if (prop != 'id' && prop != 'length' && Object.prototype.hasOwnProperty.call(store, prop)) {\r\n this._storage.setItem(prop, store[prop] as string);\r\n }\r\n }\r\n }\r\n \r\n } catch (err) {\r\n console.error(err);\r\n }\r\n }\r\n\r\n Sleep(milliseconds: number) {\r\n var start = new Date().getTime();\r\n for (var i = 0; i < 1e7; i++) {\r\n if ((new Date().getTime() - start) > milliseconds) {\r\n break;\r\n }\r\n }\r\n }\r\n\r\n}","import {\r\n AccessToken, IIdentity, IContext, IdentityChangedEventArgs,\r\n IUserStorage\r\n} from './';\r\nimport { WpEvent, WpEventHandler, WpEventArgs, ActionResult, ErrorTypes } from './../Common';\r\nimport { AppSettings } from '../Global/app-settings';\r\nimport { injectable } from 'inversify';\r\nimport GlobalService from '../Global/global-service';\r\nimport { ILocalizationService, LocalizationSymbols } from '../Localization';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { spawn } from 'child_process';\r\n\r\n@injectable()\r\nexport default class ModifiedWebSaleUserIdentity implements IIdentity, IContext {\r\n private static _storageUserKey: string = 'wp:access-token';\r\n\r\n _store: IUserStorage;\r\n\r\n private _settings!: AppSettings;\r\n private _timerAccessTokenChecker?: any;\r\n private _identityChanged: WpEventHandler;\r\n private _signInCalled: WpEventHandler;\r\n private _specificIdentity?: IIdentity\r\n private _user?: User | null;\r\n private _accessToken = new AccessToken('', new Date());\r\n\r\n IsInitialized: boolean = false;\r\n\r\n get AccessToken(): AccessToken {\r\n return this._accessToken;\r\n }\r\n get IsAuthentificated(): boolean {\r\n return this._user != null && this._user != undefined && this._accessToken.Expired > new Date();\r\n }\r\n get Username(): string {\r\n return this._user?.preferred_username ?? \"\";\r\n }\r\n get UserId(): string {\r\n return this._user?.sub ?? \"\";\r\n }\r\n get Phone() {\r\n return this._user?.phone_number;\r\n }\r\n set Phone(val: string | undefined) {\r\n if (this._user != null) {\r\n this._user.phone_number = val;\r\n }\r\n }\r\n\r\n get SignInCalled(): WpEvent {\r\n return this._signInCalled;\r\n }\r\n get IdentityChanged(): WpEvent {\r\n return this._identityChanged;\r\n }\r\n get CurrentIdentity(): IIdentity {\r\n if (this._specificIdentity != null)\r\n return this._specificIdentity;\r\n\r\n return this;\r\n }\r\n\r\n constructor(store: IUserStorage) {\r\n this._store = store;\r\n this._identityChanged = new WpEventHandler();\r\n this._signInCalled = new WpEventHandler()\r\n this._settings = GlobalService.GetSettings();\r\n }\r\n\r\n SignIn(): void {\r\n this._signInCalled.Send(this, WpEventArgs.Empty);\r\n }\r\n\r\n SignOut(): void {\r\n if (this._specificIdentity != null)\r\n this._specificIdentity = undefined;\r\n\r\n this._user = null;\r\n this._accessToken = new AccessToken('', new Date());\r\n this._store.removeItem(ModifiedWebSaleUserIdentity._storageUserKey);\r\n let args = new IdentityChangedEventArgs(this);\r\n this._identityChanged.Send(this, args);\r\n }\r\n\r\n ChangeIdentity(identity: IIdentity) {\r\n this._specificIdentity = identity;\r\n\r\n let args = new IdentityChangedEventArgs(this._specificIdentity);\r\n this._identityChanged.Send(this._specificIdentity, args);\r\n\r\n this._store.removeItem(ModifiedWebSaleUserIdentity._storageUserKey);\r\n this._accessToken = new AccessToken('', new Date());\r\n this._user = null;\r\n }\r\n\r\n public async Initialize(appSettings: AppSettings, globalService: GlobalService) {\r\n let localizationService = globalService.Get(LocalizationSymbols.LocalizationService);\r\n\r\n await this._store.RestoreStorage();\r\n\r\n let accessTokenString = this._store.getItem(ModifiedWebSaleUserIdentity._storageUserKey);\r\n\r\n if (accessTokenString != null) {\r\n let parsedAccessToken = JSON.parse(accessTokenString);\r\n let accessToken = new AccessToken(parsedAccessToken.Token, new Date(parsedAccessToken.Expired), parsedAccessToken.RefreshToken);\r\n\r\n if (new Date() >= new Date(accessToken.Expired.getTime() - 300000) && \r\n accessToken.RefreshToken == null) {\r\n return;\r\n }\r\n\r\n this._accessToken = accessToken;\r\n\r\n if (this._accessToken.RefreshToken != null) {\r\n await this.RefreshAccessToken();\r\n }\r\n else \r\n await this.LoadUser();\r\n \r\n }\r\n\r\n if (this._user != null) {\r\n let args = new IdentityChangedEventArgs(this);\r\n this._identityChanged.Send(this, args);\r\n }\r\n this.IsInitialized = true;\r\n }\r\n\r\n public async Login(userName: string, password: string, rememberMe: boolean = false): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"siteid\": this._settings.SiteId,\r\n \"Authorization\": `Bearer ${this.AccessToken.Token}`\r\n }\r\n });\r\n\r\n let response = await client.create>(`/identity/signin`, { UserName: userName, Password: password, RememberMe: rememberMe });\r\n\r\n if (response.result == null)\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n\r\n if (response.result.Result != 0) {\r\n if (response.result.Result == 5) {\r\n return ActionResult.Failed(ErrorTypes.InvalidData);\r\n }\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n }\r\n\r\n let accessToken = response.result.Data.AccessToken;\r\n let date = new Date(new Date().getTime() + response.result.Data.ExpiresIn * 1000);\r\n let refreshToken = response.result.Data.RefreshToken;\r\n\r\n this._accessToken = new AccessToken(accessToken, date, refreshToken);\r\n this._store.setItem(ModifiedWebSaleUserIdentity._storageUserKey, JSON.stringify(this._accessToken));\r\n this._store.SaveStorage(accessToken);\r\n\r\n await this.LoadUser();\r\n\r\n let identity = this;\r\n if (this._user != null) {\r\n let args = new IdentityChangedEventArgs(identity);\r\n identity._identityChanged.Send(identity, args);\r\n }\r\n\r\n if (this._accessToken.RefreshToken != null && this._timerAccessTokenChecker == null) {\r\n let _identity = this;\r\n setInterval(() => {\r\n if (new Date() >= new Date(this._accessToken.Expired.getTime() - 300000)) {\r\n _identity.RefreshAccessToken();\r\n }\r\n }, 300000);\r\n }\r\n\r\n return ActionResult.Success();\r\n }\r\n\r\n private async RefreshAccessToken(): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"siteid\": this._settings.SiteId,\r\n \"Authorization\": `Bearer ${this.AccessToken.Token}`\r\n }\r\n });\r\n\r\n let response = await client.create>(`/identity/refreshtoken`, { token: this._accessToken.RefreshToken });\r\n\r\n if (response.result == null || response.result.Result != 0) {\r\n this._store.removeItem(ModifiedWebSaleUserIdentity._storageUserKey);\r\n return;\r\n }\r\n\r\n let accessToken = response.result.Data.AccessToken;\r\n let date = new Date(new Date().getTime() + response.result.Data.ExpiresIn * 1000);\r\n let refreshToken = response.result.Data.RefreshToken;\r\n\r\n this._accessToken = new AccessToken(accessToken, date, refreshToken);\r\n this._store.setItem(ModifiedWebSaleUserIdentity._storageUserKey, JSON.stringify(this._accessToken));\r\n this._store.SaveStorage(accessToken)\r\n\r\n await this.LoadUser();\r\n\r\n if (this._accessToken.RefreshToken != null && this._timerAccessTokenChecker == null) {\r\n let _identity = this;\r\n setInterval(() => {\r\n if (new Date() >= new Date(this._accessToken.Expired.getTime() - 300000)) {\r\n _identity.RefreshAccessToken();\r\n }\r\n }, 300000);\r\n }\r\n\r\n if (this._accessToken.RefreshToken == null && this._timerAccessTokenChecker != null) {\r\n clearInterval(this._timerAccessTokenChecker);\r\n }\r\n }\r\n\r\n private async LoadUser(): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this.AccessToken.Token}`\r\n }\r\n });\r\n\r\n let response = await client.get(`/idsrv/identity/connect/userinfo`);\r\n\r\n this._user = response.result;\r\n }\r\n}\r\n\r\nclass User {\r\n sub: string = '';\r\n preferred_username: string = '';\r\n email: string = '';\r\n email_verified: boolean = false;\r\n phone_number?: string;\r\n phone_number_verified: boolean = false;\r\n role?: string;\r\n}\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n}","import IUserStorage from './i-user-storage'\r\n\r\nexport default class LocaleUserStorage implements IUserStorage{\r\n getItem(key: string) {\r\n return localStorage.getItem(key);\r\n }\r\n setItem(key: string, value: string) {\r\n localStorage.setItem(key, value);\r\n }\r\n removeItem(key: string) {\r\n localStorage.removeItem(key);\r\n }\r\n get length(): number {\r\n return localStorage.length;\r\n }\r\n key(index: number) {\r\n return localStorage.key(index);\r\n }\r\n async SaveStorage(token: string): Promise {\r\n return;\r\n }\r\n async RestoreStorage(): Promise {\r\n }\r\n\r\n async ClearStorage(): Promise {\r\n }\r\n}","import IUserStorage from './i-user-storage';\r\n\r\nexport default class MobileUserStorage implements IUserStorage {\r\n getItem(key: string) {\r\n return localStorage.getItem(key);\r\n }\r\n setItem(key: string, value: string) {\r\n localStorage.setItem(key, value);\r\n }\r\n removeItem(key: string) {\r\n localStorage.removeItem(key);\r\n\r\n try {\r\n this.deleteCookie(key);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n\r\n try {\r\n this.SaveStorage(\"{}\");\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n get length(): number {\r\n return localStorage.length;\r\n }\r\n key(index: number) {\r\n return localStorage.key(index);\r\n }\r\n\r\n async ClearStorage(): Promise {\r\n this.deleteCookie(\"wp-app-browser-store\");\r\n this.deleteCookie(\"wp-app-mobile-store\");\r\n localStorage.clear();\r\n\r\n try {\r\n saveInStorage(\"{}\");\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n\r\n try {\r\n clearCookies(\"\");\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n async SaveStorage(token: string): Promise {\r\n let storage = encodeURIComponent(JSON.stringify(localStorage));\r\n this.setCookie(\"wp-app-browser-store\", storage, 365);\r\n try {\r\n saveInStorage(storage);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n }\r\n\r\n async RestoreStorage(): Promise {\r\n let coockie = this.getCookie(\"wp-app-mobile-store\");\r\n if (coockie == null)\r\n coockie = this.getCookie(\"wp-app-browser-store\");\r\n\r\n if (coockie == null) return;\r\n\r\n localStorage.clear();\r\n let store = JSON.parse(decodeURIComponent(coockie));\r\n\r\n let keys = Object.keys(store);\r\n let i = keys.length;\r\n\r\n while (i--) {\r\n localStorage.setItem(keys[i], store[keys[i]]);\r\n }\r\n }\r\n\r\n setCookie(name: string, value: string, days: number): void {\r\n var expires = \"\";\r\n if (days) {\r\n var date = new Date();\r\n date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));\r\n expires = \"; expires=\" + date.toUTCString();\r\n }\r\n document.cookie = name + \"=\" + (value || \"\") + expires + \";\";\r\n }\r\n\r\n getCookie(name: string): string | null {\r\n var nameEQ = name + \"=\";\r\n var ca = document.cookie.split(';');\r\n for (var i = 0; i < ca.length; i++) {\r\n var c = ca[i];\r\n while (c.charAt(0) == ' ') c = c.substring(1, c.length);\r\n if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);\r\n }\r\n return null;\r\n }\r\n\r\n deleteCookie(name: string): void {\r\n let cookie = this.getCookie(name);\r\n if (cookie != null) {\r\n document.cookie = name + \"=\" +\r\n \";expires=Thu, 01 Jan 1970 00:00:01 GMT;\";\r\n }\r\n }\r\n}\r\n\r\ninterface clearCookiesHandler {\r\n (str: string): void;\r\n}\r\n\r\ninterface saveInStorageHandler {\r\n (storage: string): void;\r\n}\r\n\r\ndeclare var saveInStorage: saveInStorageHandler;\r\ndeclare var clearCookies: clearCookiesHandler;","module.exports = \"
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
{{ tariff.Name }}
\\r\\n
{{ tariff.Description }}
\\r\\n

{{ tariff.WorkingDays }}

\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ $data._formatPrice(Price) }}\\r\\n \\r\\n \\r\\n mdi-cart-plus {{ Terms.GenericToCart }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ Terms.GenericPleaseWait }}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n {{ Terms.TariffUnavailableForThisDate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","module.exports = \"\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ GetDate(item.CreateDate) }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n {{ FullName }}\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n пополнить\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n mdi-plus\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n привязать карту МИР\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Добавление новой карты\\r\\n Новая карта добавлена\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n mdi-check-circle-outline\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n закрыть\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\";","import { AppSettings } from './../Global/app-settings';\r\n\r\nexport default class RHAppSettings extends AppSettings {\r\n PersonId: number = 0;\r\n\r\n Email: string = \"\";\r\n FirstName: string = \"\";\r\n LastName: string = \"\";\r\n SecondName: string = \"\";\r\n Phone: string = \"\";\r\n Sign: string = \"\";\r\n Gender?: number;\r\n\r\n public ParseHashParams(ignoreWindowName: boolean = false): boolean {\r\n let result = super.ParseHashParams(ignoreWindowName);\r\n\r\n if (!result) return result; \r\n\r\n this.Email = this._hashParams.email;\r\n this.FirstName = this._hashParams.firstName;\r\n this.LastName = this._hashParams.lastName;\r\n this.SecondName = this._hashParams.secondName;\r\n this.Phone = this._hashParams.phone;\r\n this.Sign = this._hashParams.sign;\r\n if (this.PlaceId === undefined) {\r\n this.PlaceId = 5;\r\n }\r\n\r\n if ('gender' in this._hashParams) {\r\n this.Gender = this._hashParams.gender;\r\n }\r\n\r\n this.CartMaxItems = 50;\r\n\r\n return true;\r\n }\r\n}","import { IIdentity, AccessToken } from './..';\r\n\r\nexport default class RHIdentity implements IIdentity {\r\n private _token: string;\r\n private _phone: string;\r\n\r\n Username: string;\r\n UserId: string;\r\n PersonId: number;\r\n\r\n get AccessToken(): AccessToken {\r\n var date = new Date();\r\n date.setDate(date.getDate() + 7);\r\n\r\n return new AccessToken(this._token, date);\r\n }\r\n get IsAuthentificated(): boolean {\r\n return true;\r\n }\r\n\r\n get Phone() {\r\n return this._phone;\r\n }\r\n\r\n set Phone(val: string) {\r\n this._phone = val;\r\n }\r\n\r\n\r\n constructor(email: string, userId: string, personId: number, token: string, phone: string) {\r\n this.Username = email;\r\n this.UserId = userId;\r\n this.PersonId = personId;\r\n this._token = token;\r\n this._phone = phone;\r\n }\r\n}","import ActionResult from './../Common/action-result'\r\nimport RHAppSettings from './rh-app-settings'\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { ErrorTypes } from './../Common';\r\nimport GlobalService from './../Global/global-service';\r\nimport { IIdentity } from './../Identity';\r\nimport RHIdentity from './rh-identity';\r\nimport { Site } from './../Global';\r\n\r\nexport default class RHInitializer {\r\n static async InitializeAsync(): Promise> {\r\n let settings = GlobalService.GetSettings();\r\n\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, []);\r\n\r\n try {\r\n let response = await client.create>(`/rh/widget/initialize`, settings);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n\r\n settings.PersonId = response.result?.Data != null ? response.result?.Data.PersonId : 0;\r\n let userId = response.result != null && response.result.Data != null ? response.result.Data.UserId : \"\";\r\n let token = response.result != null && response.result.Data != null ? response.result.Data.Token : \"\";\r\n\r\n let rhIdentity = new RHIdentity(settings.Email, userId, settings.PersonId, token, settings.Phone);\r\n\r\n if (response.result != null && response.result.Data != null) {\r\n settings.CurrentSite = new Site();\r\n settings.CurrentSite.Id = response.result.Data.Id;\r\n settings.CurrentSite.Name = response.result.Data.Name;\r\n settings.CurrentSite.ConnectionType = response.result.Data.ConnectionType;\r\n settings.CurrentSite.Status = response.result.Data.Status;\r\n settings.CurrentSite.OrganizationId = response.result.Data.OrganizationId;\r\n settings.CurrentSite.OrganizationName = response.result.Data.OrganizationName;\r\n settings.CurrentSite.Url = response.result.Data.Url;\r\n }\r\n\r\n return ActionResult.SuccessData(rhIdentity);\r\n }\r\n catch (e) {\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n }\r\n }\r\n}\r\n\r\nclass InitializeResult extends Site {\r\n UserId: string = \"\";\r\n PersonId: number = 0;\r\n Token: string = \"\";\r\n}\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n}\r\n","import { IContext, IIdentity, IdentityChangedEventArgs, AccessToken, EmpryIdentity } from './../Identity';\r\nimport { WpEventHandler, WpEvent } from '../Common';\r\nimport RHIdentity from './rh-identity';\r\nimport { injectable } from 'inversify';\r\nimport { AppSettings } from '..';\r\n\r\n@injectable()\r\nexport default class RHContext implements IContext {\r\n IsInitialized: boolean = true;\r\n private _identity?: RHIdentity;\r\n private _identityChanged: WpEventHandler = new WpEventHandler();\r\n\r\n get IdentityChanged(): WpEvent {\r\n return this._identityChanged;\r\n }\r\n get CurrentIdentity(): IIdentity {\r\n return this._identity == null ? new EmpryIdentity() : this._identity;\r\n }\r\n\r\n SignIn(): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n SignOut(): void {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n ChangeIdentity(identity: IIdentity): void {\r\n this._identity = identity as RHIdentity;\r\n let args = new IdentityChangedEventArgs(identity);\r\n\r\n this._identityChanged.Send(this, args);\r\n }\r\n\r\n async Initialize(appSettings: AppSettings): Promise {\r\n }\r\n}","import {\r\n INotificationService,\r\n NotificationSymbols,\r\n NotificationEventArgs,\r\n NotificationTypes,\r\n BaseSystemLocalizationDictionary,\r\n IdentityLoginState\r\n} from 'web-platform-core-ui';\r\nimport WpBaseComponent from './wp-base-component';\r\nimport Component from 'vue-class-component';\r\n\r\n@Component\r\nexport default class WpPageBaseComponent extends WpBaseComponent {\r\n public static MainRoute: string = '';\r\n\r\n private _pageLoading: boolean = false;\r\n protected _pageNotifitcationService!: INotificationService;\r\n\r\n set PageLoading(val: boolean) {\r\n this._pageLoading = val;\r\n this._pageNotifitcationService.SendSystemNotification(\"WpPageBaseComponentLoading\", val);\r\n };\r\n\r\n get PageLoading(): boolean {\r\n return this._pageLoading;\r\n };\r\n\r\n constructor() {\r\n super();\r\n this._pageLoading = false;\r\n };\r\n\r\n created() {\r\n this._pageNotifitcationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n this._pageNotifitcationService.NotificationSended.Subscribe(this.notification);\r\n };\r\n\r\n beforeDestroy() {\r\n this._pageNotifitcationService.NotificationSended.Unsubscribe(this.notification);\r\n };\r\n\r\n notification(sender: any, e: NotificationEventArgs): void {\r\n if (e.Data.Type == NotificationTypes.System && e.Data.SystemProcessKey == \"AndroidBackButtonPressed\")\r\n this.AppGoBack();\r\n };\r\n\r\n protected AppGoBack(): void {\r\n if (IdentityLoginState.IsLoginShow)\r\n return;\r\n\r\n if (this.$route.meta?.routeback != null && this.$route.meta.routeback != '') {\r\n this.$router.push({\r\n name: this.$route.meta.routeback as string\r\n });\r\n } else {\r\n if (this.$route.name != WpPageBaseComponent.MainRoute)\r\n this.$router.push({ name: WpPageBaseComponent.MainRoute });\r\n else\r\n try { closeApplication('close'); } catch { }\r\n };\r\n };\r\n\r\n protected GetTermsKey() {\r\n if (this.$route != null)\r\n return this.$route.name;\r\n };\r\n};","export default class InstructorsLessonsLocation {\r\n LocationId: number = 0;\r\n Name: string = '';\r\n}","export default class PersonAchievement {\r\n BadgeMissionIcon?: string | null;\r\n BadgeRewardIcon?: string | null;\r\n Category?: AchievementCategory;\r\n CompletedTasks?: CurrentTask[];\r\n ContractInfo!: ContractInfo | null;\r\n CurrentInfo!: CurrentInfo | null;\r\n CurrentTask!: CurrentTask | null;\r\n DateExpiry?: string | null;\r\n DateStart!: string; // \"2022-08-10T00:00:00\"\r\n GiftRequiredBadges?: number; // 1\r\n GroupAchievements?: Array | null;\r\n GroupOrder?: number;\r\n GroupType?: AchievementGroupType;\r\n Id!: number; // 14538800\r\n Name!: string; // \"����� �� �����\"\r\n PerfAchievementId?: number; // 14547443\r\n RoundDurationValue?: number;\r\n TaskKind?: number;\r\n TaskType?: number;\r\n};\r\n\r\nclass ContractInfo {\r\n BeginDate?: string; // \"2022-07-14T00:00:00\"\r\n ClientId?: number; // 14536715\r\n EndDate?: string; // \"2023-07-13T00:00:00\"\r\n Id!: number; // 3255\r\n}\r\n\r\nexport interface CurrentInfo {\r\n AvailableGifts: Array | null;\r\n CurrentBadges: number;\r\n CurrentNumberAvailableGifts: number;\r\n LastBadgeDate: Date;\r\n SelectedGifts: Array;\r\n}\r\n\r\nexport class CurrentTask {\r\n BeginDate!: string; // \"2022-08-11T00:00:00\"\r\n Description?: string; // \"���������� ���� ���� � �������: �������� 10 ������� antigravty-����\"\r\n EndDate?: string; // \"2023-07-13T00:00:00\"\r\n Id!: number; // 14539018\r\n Name!: string; // \"�������� 10 ������� Antigravity-����� �� �����\"\r\n NumberTargetActions?: number; // 1\r\n ProgressCurrentValue!: number; // 0\r\n ProgressRequiredValue!: number; // 10\r\n Status!: PerformStatusEnum; // 1\r\n Targets?: Array; // []\r\n}\r\n\r\nexport class Target {\r\n Id!: number; // 14539019\r\n Name!: string; // \"������� antigravty-����\"\r\n NumberRepeats!: number; // 1\r\n NumberCompletedRepeats: number = 0; // 0\r\n NumberCompletedTargets!: number; // 0\r\n Status?: number; // 0\r\n}\r\n\r\nexport interface AvailableGift {\r\n Barcode: string | undefined;\r\n CshdId: number | null;\r\n Id: number;\r\n Kind: number;\r\n Name: string;\r\n PerfGiftId: number;\r\n Status: GiftStatusEnum;\r\n TcoupId: number | null;\r\n TnodId: number | null;\r\n // Mutative properties not provided by back-end below\r\n ImageLink: string;\r\n Description: string;\r\n};\r\n\r\nenum PerformStatusEnum {\r\n NotAvailable = 0, // ����������\r\n NotStarted = 1, // ���������� �� ��������\r\n Performed = 2, // �����������\r\n Completed = 3, // ���������\r\n};\r\n\r\nexport enum GiftStatusEnum {\r\n Selected = 1, // ������ - ������������� (������������) - ������ ������ (������������) �������, �� ��� ��� �� �������\r\n Received = 2, // ��������/������� - ������� �������� (����� ��� ����� ��� ��������� �� �����)\r\n Canceled = 3, // ������� - ����� ������� ������� (������� ��������������� ����� ������ ������� �� ������ ���������)\r\n};\r\n\r\nenum AchievementCategory {\r\n none = 0, // ��� ��������� (?)\r\n club, // �� �� �����\r\n challenge, // ������� ��������\r\n personal, // ���������� ��� ������\r\n}\r\n\r\nexport enum AchievementGroupType {\r\n none = 0, // ���� none �� ���������� �� ���������\r\n set,\r\n serial,\r\n}","module.exports = \"
\\r\\n \\r\\n \\r\\n
{{ Terms.CallToAction }}
\\r\\n
\\r\\n \\r\\n {{ Terms.GenericApply }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n {{ Terms.GenericSuccess }} {{ Terms.GenericCancel }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\";","import './wp-market-rule-item.scss';\r\n\r\nimport Vue from 'vue';\r\nimport WpBaseComponent from './../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, { AppSettings, IMarketService, MarketSymbols, Cart, CartItemTypes, MarketRule, MarketDateTimeRange, MarketTariffCartItem, INotificationService, NotificationSymbols, IContext, IdentitySymbols, MarketTariffService, BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\nimport { Prop, DefaultProps } from 'vue/types/options';\r\nimport { Watch, PropSync } from 'vue-property-decorator';\r\nimport { VueConstructor } from 'vue/types/umd';\r\n\r\nexport const wpMarketRuleItemProp = Vue.extend({\r\n props: {\r\n Id: String,\r\n Rule: Object as Prop,\r\n TariffService: Object as Prop,\r\n Date: String,\r\n Schedule: Object as Prop,\r\n Cart: Object as Prop\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-market-rule-item.html\")\r\n})\r\n\r\nexport default class WpMarketRuleItem extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpMarketRuleItemProp, Vue) {\r\n private _marketService!: IMarketService;\r\n protected _notificationService!: INotificationService;\r\n private _context!: IContext;\r\n\r\n Settings!: AppSettings;\r\n Amount: number = 1;\r\n CartMaxItems: number = 6;\r\n Loading: boolean = false;\r\n Period: string = \"\"\r\n Duration: string = \"\";\r\n Category: string = \"\";\r\n UseCount: string = \"\";\r\n\r\n get Price(): number {\r\n return this.Rule.Price[0] * this.Amount;\r\n }\r\n\r\n AmountDecrease(): void {\r\n if (this.Amount >= 2) {\r\n this.Amount--;\r\n }\r\n }\r\n AmountIncrease(): void {\r\n if (this.Amount < this.CartMaxItems - this.Cart.Count) {\r\n this.Amount++;\r\n }\r\n }\r\n\r\n //AddToCart(): void {\r\n // let cartItem = new MarketCartItem(this.Market, this.Amount, this.Date, this._price, this.Cart, this._leftQuota);\r\n // this.$emit('addtocart', cartItem);\r\n // this.Amount = 1;\r\n //}\r\n\r\n async mounted() {\r\n this.Settings = GlobalService.GetSettings();\r\n\r\n this._marketService = this.GlobalService.Get(MarketSymbols.MarketService);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n this._context = this.GlobalService.Get(IdentitySymbols.Context);\r\n\r\n this.CartMaxItems = this.Settings.CartMaxItems;\r\n this.Period = `${this.DateHandler.Parse(this.Schedule.StartDateTime[0], 'YYYY-MM-DDTHH:mm:ss').Format('HH:mm')} - ${this.DateHandler.Parse(this.Schedule.EndDateTime[0], 'YYYY-MM-DDTHH:mm:ss').Format('HH:mm')}`;\r\n if (this.Rule.Duration && this.Rule.Duration.length > 0) {\r\n this.Duration = `Продолжительность: ${this.DateHandler.Parse(this.Rule.Duration[0], 'HH:mm:ss').Format('HH:mm')}`;\r\n }\r\n\r\n if (this.Rule.ClientType != null && this.Rule.ClientType.length > 0) {\r\n this.Rule.ClientType.forEach((x: any, i: number) => {\r\n\r\n switch (x) {\r\n case 0:\r\n this.Category += \"Взрослый\";\r\n break;\r\n case 1:\r\n this.Category += \"Детский\";\r\n break;\r\n }\r\n if (i != this.Rule.ClientType.length - 1)\r\n this.Category += \" | \";\r\n })\r\n\r\n }\r\n\r\n if (this.Rule.Quantity != null && this.Rule.Quantity.length > 0 && this.Rule.Quantity[0] > 1) {\r\n this.UseCount = `Количество посещений: ${this.Rule.Quantity[0]}`;\r\n }\r\n\r\n this._notificationService.NotificationSended.Subscribe(async (sender, e) => {\r\n if (e.Data.SystemProcessKey === \"MarketClientGetted\" &&\r\n e.Data.AdditionalData === `${this.Rule.id}_${this.Schedule.StartDateTime[0]}_${this.Schedule.EndDateTime[0]}`) {\r\n await this.AddToCart();\r\n }\r\n });\r\n }\r\n\r\n async AddToCart() {\r\n if (!this._context.CurrentIdentity.IsAuthentificated || this.Settings == null || this.Settings.CurrentMarketClient == null) {\r\n this.$emit(\"Selected\", `${this.Rule.id}_${this.Schedule.StartDateTime[0]}_${this.Schedule.EndDateTime[0]}`);\r\n this._context.SignIn();\r\n return;\r\n }\r\n\r\n\r\n this.Loading = true;\r\n\r\n let cartItem = new MarketTariffCartItem(this._marketService);\r\n cartItem.OrderId = this.Cart.OrderId;\r\n cartItem.Rule = this.Rule;\r\n cartItem.Period = this.Schedule;\r\n cartItem.Client = this.Settings.CurrentMarketClient;\r\n\r\n if (this.Settings.MarketEmployeeId != null) {\r\n let employee = this.TariffService?.User.find((x: { id: number | undefined; }) => x.id == this.Settings.MarketEmployeeId);\r\n\r\n cartItem.Employee = employee;\r\n }\r\n\r\n let result = await cartItem.ReservateItem();\r\n\r\n if (!result.Success) {\r\n this._notificationService.Error(\"Ошибка\", result.ErrorMessage ? result.ErrorMessage : \"Непредвиденная ошибка\");\r\n }\r\n else {\r\n let result = this.Cart.AddItem(cartItem);\r\n\r\n if (!result.Success) {\r\n this._notificationService.Error(\"Ошибка\", result.ErrorMessage ? result.ErrorMessage : \"Непредвиденная ошибка\");\r\n }\r\n\r\n this.Cart.OrderId = cartItem.OrderId;\r\n }\r\n\r\n this.Loading = false;\r\n }\r\n}\r\n\r\nexport class WpMarketRuleItemDictionary extends BaseSystemLocalizationDictionary {\r\n CartIsFull: string = 'Максимальное количество элементов в корзине';\r\n ToCart: string = 'В корзину';\r\n}","module.exports = \"\\r\\n \\r\\n \\r\\n mdi-close\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\";","module.exports = \"
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{ Terms.DialogBtnShow }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\";","module.exports = \"
\\r\\n
\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n {{ Terms.NoAvailableSeances }}\\r\\n

\\r\\n
\\r\\n
\";","module.exports = \"
\\r\\n
\\r\\n \\r\\n mdi-cart\\r\\n {{ $data._formatPrice(Cart.Sum) }}\\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericCart }}\\r\\n\\r\\n \\r\\n\\r\\n mdi-trash-can-outline {{ Terms.GenericClearCart }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ Terms.GenericTotal }}: {{ $data._formatPrice(Cart.Sum) }}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericClose }}\\r\\n {{ Terms.GenericCheckout }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\";","module.exports = \"\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\";","export default class InstructorTariffCategory {\r\n Id: number = 0;\r\n Name: string = '';\r\n Code?: number;\r\n}","export default class PersonSale {\r\n PersonId: number = 0;\r\n TNodId: number = 0;\r\n FirstName: string = '';\r\n LastName: string = '';\r\n SecondName: string = '';\r\n Phone: string = '';\r\n}","var map = {\n\t\"./af\": \"4233\",\n\t\"./af.js\": \"4233\",\n\t\"./ar\": \"9804\",\n\t\"./ar-dz\": \"fa78\",\n\t\"./ar-dz.js\": \"fa78\",\n\t\"./ar-kw\": \"0e71\",\n\t\"./ar-kw.js\": \"0e71\",\n\t\"./ar-ly\": \"3d54\",\n\t\"./ar-ly.js\": \"3d54\",\n\t\"./ar-ma\": \"2f79\",\n\t\"./ar-ma.js\": \"2f79\",\n\t\"./ar-sa\": \"46c2\",\n\t\"./ar-sa.js\": \"46c2\",\n\t\"./ar-tn\": \"42d0\",\n\t\"./ar-tn.js\": \"42d0\",\n\t\"./ar.js\": \"9804\",\n\t\"./az\": \"ea99\",\n\t\"./az.js\": \"ea99\",\n\t\"./be\": \"a9b8\",\n\t\"./be.js\": \"a9b8\",\n\t\"./bg\": \"d380\",\n\t\"./bg.js\": \"d380\",\n\t\"./bm\": \"e883\",\n\t\"./bm.js\": \"e883\",\n\t\"./bn\": \"93fb\",\n\t\"./bn-bd\": \"2014\",\n\t\"./bn-bd.js\": \"2014\",\n\t\"./bn.js\": \"93fb\",\n\t\"./bo\": \"129a\",\n\t\"./bo.js\": \"129a\",\n\t\"./br\": \"ad4a\",\n\t\"./br.js\": \"ad4a\",\n\t\"./bs\": \"993d\",\n\t\"./bs.js\": \"993d\",\n\t\"./ca\": \"dcc7\",\n\t\"./ca.js\": \"dcc7\",\n\t\"./cs\": \"c4c0\",\n\t\"./cs.js\": \"c4c0\",\n\t\"./cv\": \"5721\",\n\t\"./cv.js\": \"5721\",\n\t\"./cy\": \"10a0\",\n\t\"./cy.js\": \"10a0\",\n\t\"./da\": \"e6db\",\n\t\"./da.js\": \"e6db\",\n\t\"./de\": \"33be\",\n\t\"./de-at\": \"e5b8\",\n\t\"./de-at.js\": \"e5b8\",\n\t\"./de-ch\": \"7b4b\",\n\t\"./de-ch.js\": \"7b4b\",\n\t\"./de.js\": \"33be\",\n\t\"./dv\": \"efe2\",\n\t\"./dv.js\": \"efe2\",\n\t\"./el\": \"912f\",\n\t\"./el.js\": \"912f\",\n\t\"./en-au\": \"c884\",\n\t\"./en-au.js\": \"c884\",\n\t\"./en-ca\": \"08d0\",\n\t\"./en-ca.js\": \"08d0\",\n\t\"./en-gb\": \"7589\",\n\t\"./en-gb.js\": \"7589\",\n\t\"./en-ie\": \"8578\",\n\t\"./en-ie.js\": \"8578\",\n\t\"./en-il\": \"e3fe\",\n\t\"./en-il.js\": \"e3fe\",\n\t\"./en-in\": \"a58f\",\n\t\"./en-in.js\": \"a58f\",\n\t\"./en-nz\": \"599f\",\n\t\"./en-nz.js\": \"599f\",\n\t\"./en-sg\": \"6390\",\n\t\"./en-sg.js\": \"6390\",\n\t\"./eo\": \"a983\",\n\t\"./eo.js\": \"a983\",\n\t\"./es\": \"b6c7\",\n\t\"./es-do\": \"32d8\",\n\t\"./es-do.js\": \"32d8\",\n\t\"./es-mx\": \"0458\",\n\t\"./es-mx.js\": \"0458\",\n\t\"./es-us\": \"ffad\",\n\t\"./es-us.js\": \"ffad\",\n\t\"./es.js\": \"b6c7\",\n\t\"./et\": \"02d3\",\n\t\"./et.js\": \"02d3\",\n\t\"./eu\": \"6cee\",\n\t\"./eu.js\": \"6cee\",\n\t\"./fa\": \"289d\",\n\t\"./fa.js\": \"289d\",\n\t\"./fi\": \"5c4a\",\n\t\"./fi.js\": \"5c4a\",\n\t\"./fil\": \"6ca2\",\n\t\"./fil.js\": \"6ca2\",\n\t\"./fo\": \"19f2\",\n\t\"./fo.js\": \"19f2\",\n\t\"./fr\": \"fca5\",\n\t\"./fr-ca\": \"6903\",\n\t\"./fr-ca.js\": \"6903\",\n\t\"./fr-ch\": \"015e\",\n\t\"./fr-ch.js\": \"015e\",\n\t\"./fr.js\": \"fca5\",\n\t\"./fy\": \"0e66\",\n\t\"./fy.js\": \"0e66\",\n\t\"./ga\": \"8a1f\",\n\t\"./ga.js\": \"8a1f\",\n\t\"./gd\": \"7dbd\",\n\t\"./gd.js\": \"7dbd\",\n\t\"./gl\": \"04f8\",\n\t\"./gl.js\": \"04f8\",\n\t\"./gom-deva\": \"0c53\",\n\t\"./gom-deva.js\": \"0c53\",\n\t\"./gom-latn\": \"0ad6\",\n\t\"./gom-latn.js\": \"0ad6\",\n\t\"./gu\": \"ed58\",\n\t\"./gu.js\": \"ed58\",\n\t\"./he\": \"66f4\",\n\t\"./he.js\": \"66f4\",\n\t\"./hi\": \"943e\",\n\t\"./hi.js\": \"943e\",\n\t\"./hr\": \"07a7\",\n\t\"./hr.js\": \"07a7\",\n\t\"./hu\": \"0b51\",\n\t\"./hu.js\": \"0b51\",\n\t\"./hy-am\": \"1a9c\",\n\t\"./hy-am.js\": \"1a9c\",\n\t\"./id\": \"5c1b\",\n\t\"./id.js\": \"5c1b\",\n\t\"./is\": \"ecf3\",\n\t\"./is.js\": \"ecf3\",\n\t\"./it\": \"47fc\",\n\t\"./it-ch\": \"de26\",\n\t\"./it-ch.js\": \"de26\",\n\t\"./it.js\": \"47fc\",\n\t\"./ja\": \"0adf\",\n\t\"./ja.js\": \"0adf\",\n\t\"./jv\": \"d19c\",\n\t\"./jv.js\": \"d19c\",\n\t\"./ka\": \"1d29\",\n\t\"./ka.js\": \"1d29\",\n\t\"./kk\": \"92ba\",\n\t\"./kk.js\": \"92ba\",\n\t\"./km\": \"5403\",\n\t\"./km.js\": \"5403\",\n\t\"./kn\": \"0452\",\n\t\"./kn.js\": \"0452\",\n\t\"./ko\": \"54fd\",\n\t\"./ko.js\": \"54fd\",\n\t\"./ku\": \"8366\",\n\t\"./ku.js\": \"8366\",\n\t\"./ky\": \"9e12\",\n\t\"./ky.js\": \"9e12\",\n\t\"./lb\": \"a742\",\n\t\"./lb.js\": \"a742\",\n\t\"./lo\": \"4e61\",\n\t\"./lo.js\": \"4e61\",\n\t\"./lt\": \"68e6\",\n\t\"./lt.js\": \"68e6\",\n\t\"./lv\": \"cac2\",\n\t\"./lv.js\": \"cac2\",\n\t\"./me\": \"a989\",\n\t\"./me.js\": \"a989\",\n\t\"./mi\": \"32fe\",\n\t\"./mi.js\": \"32fe\",\n\t\"./mk\": \"ae26\",\n\t\"./mk.js\": \"ae26\",\n\t\"./ml\": \"5724\",\n\t\"./ml.js\": \"5724\",\n\t\"./mn\": \"7d11\",\n\t\"./mn.js\": \"7d11\",\n\t\"./mr\": \"1e02\",\n\t\"./mr.js\": \"1e02\",\n\t\"./ms\": \"fae3\",\n\t\"./ms-my\": \"f2d5\",\n\t\"./ms-my.js\": \"f2d5\",\n\t\"./ms.js\": \"fae3\",\n\t\"./mt\": \"d9f6\",\n\t\"./mt.js\": \"d9f6\",\n\t\"./my\": \"dcda\",\n\t\"./my.js\": \"dcda\",\n\t\"./nb\": \"30ba\",\n\t\"./nb.js\": \"30ba\",\n\t\"./ne\": \"6a97\",\n\t\"./ne.js\": \"6a97\",\n\t\"./nl\": \"c41b\",\n\t\"./nl-be\": \"051c\",\n\t\"./nl-be.js\": \"051c\",\n\t\"./nl.js\": \"c41b\",\n\t\"./nn\": \"2899\",\n\t\"./nn.js\": \"2899\",\n\t\"./oc-lnc\": \"99b1\",\n\t\"./oc-lnc.js\": \"99b1\",\n\t\"./pa-in\": \"a998\",\n\t\"./pa-in.js\": \"a998\",\n\t\"./pl\": \"0bbd\",\n\t\"./pl.js\": \"0bbd\",\n\t\"./pt\": \"9a62\",\n\t\"./pt-br\": \"cee0\",\n\t\"./pt-br.js\": \"cee0\",\n\t\"./pt.js\": \"9a62\",\n\t\"./ro\": \"122e\",\n\t\"./ro.js\": \"122e\",\n\t\"./ru\": \"bb3e\",\n\t\"./ru.js\": \"bb3e\",\n\t\"./sd\": \"5fbf\",\n\t\"./sd.js\": \"5fbf\",\n\t\"./se\": \"0b32\",\n\t\"./se.js\": \"0b32\",\n\t\"./si\": \"94af\",\n\t\"./si.js\": \"94af\",\n\t\"./sk\": \"4f67\",\n\t\"./sk.js\": \"4f67\",\n\t\"./sl\": \"6f8d\",\n\t\"./sl.js\": \"6f8d\",\n\t\"./sq\": \"3ed3\",\n\t\"./sq.js\": \"3ed3\",\n\t\"./sr\": \"88f5\",\n\t\"./sr-cyrl\": \"e43d\",\n\t\"./sr-cyrl.js\": \"e43d\",\n\t\"./sr.js\": \"88f5\",\n\t\"./ss\": \"b135\",\n\t\"./ss.js\": \"b135\",\n\t\"./sv\": \"d817\",\n\t\"./sv.js\": \"d817\",\n\t\"./sw\": \"f45e\",\n\t\"./sw.js\": \"f45e\",\n\t\"./ta\": \"b9e7\",\n\t\"./ta.js\": \"b9e7\",\n\t\"./te\": \"6be6\",\n\t\"./te.js\": \"6be6\",\n\t\"./tet\": \"43cb\",\n\t\"./tet.js\": \"43cb\",\n\t\"./tg\": \"89a1\",\n\t\"./tg.js\": \"89a1\",\n\t\"./th\": \"4535\",\n\t\"./th.js\": \"4535\",\n\t\"./tk\": \"1cc0\",\n\t\"./tk.js\": \"1cc0\",\n\t\"./tl-ph\": \"0243\",\n\t\"./tl-ph.js\": \"0243\",\n\t\"./tlh\": \"50f8\",\n\t\"./tlh.js\": \"50f8\",\n\t\"./tr\": \"0754\",\n\t\"./tr.js\": \"0754\",\n\t\"./tzl\": \"5ff2\",\n\t\"./tzl.js\": \"5ff2\",\n\t\"./tzm\": \"e1e1\",\n\t\"./tzm-latn\": \"e44d\",\n\t\"./tzm-latn.js\": \"e44d\",\n\t\"./tzm.js\": \"e1e1\",\n\t\"./ug-cn\": \"e80d\",\n\t\"./ug-cn.js\": \"e80d\",\n\t\"./uk\": \"df00\",\n\t\"./uk.js\": \"df00\",\n\t\"./ur\": \"0251\",\n\t\"./ur.js\": \"0251\",\n\t\"./uz\": \"44a8\",\n\t\"./uz-latn\": \"c9c5\",\n\t\"./uz-latn.js\": \"c9c5\",\n\t\"./uz.js\": \"44a8\",\n\t\"./vi\": \"8be9\",\n\t\"./vi.js\": \"8be9\",\n\t\"./x-pseudo\": \"1c82\",\n\t\"./x-pseudo.js\": \"1c82\",\n\t\"./yo\": \"3cb9\",\n\t\"./yo.js\": \"3cb9\",\n\t\"./zh-cn\": \"4080\",\n\t\"./zh-cn.js\": \"4080\",\n\t\"./zh-hk\": \"b4c3\",\n\t\"./zh-hk.js\": \"b4c3\",\n\t\"./zh-mo\": \"70eb\",\n\t\"./zh-mo.js\": \"70eb\",\n\t\"./zh-tw\": \"3c7f\",\n\t\"./zh-tw.js\": \"3c7f\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"5cb0\";","import { CartItem, CartItemTypes } from '../Cart';\r\nimport { ActionResult, ErrorTypes } from '../Common';\r\nimport { ReservationItem, ReservationItemTypes } from '../Sale';\r\n\r\nexport default class AccountReplenishmentCartItem extends CartItem {\r\n private _price: number = 0;\r\n private _type: CartItemTypes = CartItemTypes.AccountReplenishment;\r\n private _personId?: number;\r\n\r\n get PersonId(): number | undefined {\r\n return this._personId;\r\n }\r\n get Info(): string {\r\n return `���������� �����`;\r\n }\r\n get Type(): CartItemTypes {\r\n return this._type;\r\n }\r\n get Price(): number {\r\n return this._price;\r\n }\r\n get Count(): number {\r\n return 1;\r\n }\r\n public get Dates(): Array {\r\n return [];\r\n }\r\n public get AdditionalInfo(): any {\r\n return { Sum: this._price };\r\n }\r\n get MetricsId(): any {\r\n return \"\";\r\n }\r\n get IsCanIncreaseCount(): boolean {\r\n return false;\r\n }\r\n get IsCanReduceCount(): boolean {\r\n return false;\r\n }\r\n get IsAvailable(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(price: number, personId?: number) {\r\n super();\r\n this._price = price;\r\n this._personId = personId;\r\n }\r\n\r\n IncreaseCount(): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"��������� ���������� ���������� ��� ������� ���� �����\");\r\n }\r\n ReduceCount(): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"���������� ����������� ��������� ����������\");\r\n }\r\n IsConflictItem(item: CartItem): boolean {\r\n return true;\r\n }\r\n IsEqualsItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n CombineItem(item: CartItem): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"��������� ���������� ���������� ��� ������� ���� �����\");\r\n }\r\n GetReservationItem(): ReservationItem[] {\r\n return [new ReservationItem(1, ReservationItemTypes.AccountReplenishment, null, null, null, null, null, null, null, null, null, null, null, null, this._price * 100)];\r\n }\r\n async RemoveItem(): Promise {\r\n return ActionResult.Success();\r\n }\r\n}","import IClubService, { ClubLesson } from './i-club-service';\r\nimport { ActionResult, ErrorTypes, WpEventHandler, WpEvent } from '../Common';\r\nimport ClubContract from './club-contract';\r\nimport { injectable, inject } from 'inversify';\r\nimport { IClubProvider, ClubSymbols, ClubAppSettings, SoldContractChangedEventArgs } from '.';\r\nimport SoldClubContract from './sold-club-contract';\r\nimport GlobalService from '../Global/global-service';\r\nimport { ILocalizationService, LocalizationSymbols } from '../Localization';\r\nimport WpCorePrefixes from '../wp-core-prefixes';\r\nimport { IsdUserLoyalty, PersonIsdLoyaltyData, ILoyaltyProvider, LoyaltySymbols } from '../Loyalty';\r\nimport { IDateHandler, DateHandlerSymbols } from '../Utility';\r\nimport { Tariff } from '../Tariffs';\r\nimport { INotificationService, NotificationSymbols } from '../Notification';\r\n\r\n@injectable()\r\nexport default class DefaultClubService implements IClubService {\r\n protected _dateHndler: IDateHandler;\r\n protected _settings!: ClubAppSettings;\r\n protected _clubProvider!: IClubProvider;\r\n protected _localizationService!: ILocalizationService;\r\n protected _loyaltyProvider!: ILoyaltyProvider;\r\n protected _notificationService!: INotificationService;\r\n\r\n protected _currentPersonContract?: SoldClubContract | null;\r\n protected _contracts?: Array;\r\n\r\n private _persontContractChanged: WpEventHandler = new WpEventHandler();\r\n\r\n CurrentPersonContract(): T | null | undefined {\r\n return this._currentPersonContract as T;\r\n };\r\n\r\n get PersonContractChanged(): WpEvent {\r\n return this._persontContractChanged;\r\n };\r\n\r\n constructor(@inject(ClubSymbols.ClubProvider) clubProvider: IClubProvider,\r\n @inject(LocalizationSymbols.LocalizationService) localizationService: ILocalizationService,\r\n @inject(DateHandlerSymbols.DateHandlerService) dateHandler: IDateHandler,\r\n @inject(LoyaltySymbols.LoyaltyProvider) loyaltyProvider: ILoyaltyProvider,\r\n @inject(NotificationSymbols.NotificationService) notificationService: INotificationService) {\r\n this._settings = GlobalService.GetSettings();\r\n this._clubProvider = clubProvider;\r\n this._localizationService = localizationService;\r\n this._dateHndler = dateHandler;\r\n this._loyaltyProvider = loyaltyProvider;\r\n this._notificationService = notificationService;\r\n };\r\n\r\n async GetContractsAsync(): Promise>> {\r\n // Если контракты закэшированы - вернуть их\r\n if (this._contracts != null) return ActionResult.SuccessData(this._contracts);\r\n // Запрашиваем список контрактов\r\n let result = await this._clubProvider.GetContractsAsync();\r\n // Если не удалось - закончить с ошибкой\r\n if (!result.Success || result.Data == null)\r\n return ActionResult.FailedData(result.ErrorType!, [], result.ErrorMessage);\r\n\r\n this._contracts = result.Data;\r\n\r\n await this._localizationService.TranslateManyAsync(WpCorePrefixes.ClubContract, this._contracts);\r\n\r\n this._contracts.forEach(x => { x.IsGuestContract = this._settings.GuestContractsIds == x.ContractCode; });\r\n return ActionResult.SuccessData(this._contracts);\r\n };\r\n\r\n async GetContractAsync(id: number): Promise> {\r\n if (this._contracts != null) {\r\n let result = this._contracts.find(x => x.Id == id);\r\n\r\n if (result != null)\r\n return ActionResult.SuccessData(result);\r\n };\r\n return await this._clubProvider.GetContractAsync(id);\r\n };\r\n\r\n async GetPersonContractsAsync(userLoyalty: IsdUserLoyalty): Promise>> {\r\n if (!userLoyalty) {\r\n console.error(\"Отсутствует программа лояльности. Контракты загрузить не получится\");\r\n //this._notificationService.Error(\"Error\", \"Отсутствует программа лояльности пользователя\");\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n \r\n if (this._contracts == null) {\r\n let contracts = await this.GetContractsAsync();\r\n\r\n if (!contracts.Success || contracts.Data == null)\r\n return ActionResult.FailedData(contracts.ErrorType ?? ErrorTypes.InternalError, new Array(), contracts.ErrorMessage);\r\n };\r\n\r\n let personsContracts = await this._clubProvider.GetPersonContractsAsync(userLoyalty.TNodId, userLoyalty.Id);\r\n\r\n if (!personsContracts.Success || personsContracts.Data == null)\r\n return personsContracts;\r\n\r\n let children = await this._loyaltyProvider.GetChildrenAsync();\r\n let result: Array = [];\r\n personsContracts.Data.forEach(contract => {\r\n let toPush = this._attachTemplate(contract, userLoyalty, children.Success && children.Data ? children.Data : []);\r\n if (toPush) result.push(contract);\r\n });\r\n\r\n // Отфильтровать список контрактов.\r\n // Статус 5 - удалённый - он нам не нужен\r\n result = result.filter((contract: SoldClubContract) => contract.STATUS != 5);\r\n\r\n this._currentPersonContract = result.find(x => x.Template.ContractCode == this._settings.GuestContractsIds);\r\n\r\n // Если контрактов несколько\r\n if (result.length > 1) {\r\n // Найти первый попавшийся контракт, который не является гостевым\r\n let match = result.find(contract => !contract.Template.IsGuestContract && !contract.Child);\r\n if (match) this._currentPersonContract = match;\r\n };\r\n\r\n /*let last = localStorage.getItem(\"lt:last-contract\");\r\n if (last) {\r\n let contract = JSON.parse(last);\r\n let match = result.find(c => c.ID === contract.ID);\r\n if (match) this._currentPersonContract = match;\r\n };*/\r\n\r\n return ActionResult.SuccessData(result);\r\n };\r\n\r\n private _attachTemplate(contract: SoldClubContract, userLoyalty: IsdUserLoyalty, children?: PersonIsdLoyaltyData[]) {\r\n if (!this._contracts) return;\r\n let template = this._contracts.find(c => c.ContractCode == contract.SHABLON_CLUB_CONTRACT_ID);\r\n if (template) {\r\n contract.Template = template;\r\n\r\n let person = new PersonIsdLoyaltyData();\r\n person.FirstName = userLoyalty.FirstName;\r\n person.LastName = userLoyalty.LastName;\r\n person.SecondName = userLoyalty.SecondName;\r\n person.AddressId = userLoyalty.AddressId;\r\n person.Birthdate = userLoyalty.Birthdate != null ? this._dateHndler.Parse(userLoyalty.Birthdate, \"YYYY-MM-DDTHH:mm:ss\").Format(\"DD.MM.YYYY\") : \"\";\r\n person.Gender = userLoyalty.Gender;\r\n person.LoyaltyId = userLoyalty.Id;\r\n contract.Person = person;\r\n\r\n if (!children) return;\r\n if (contract.SOLD_CARD_LIST != null && contract.SOLD_CARD_LIST.length > 1) {\r\n children.forEach(child => {\r\n if (contract.SOLD_CARD_LIST != null && contract.SOLD_CARD_LIST.some(c => c.OWNER_PERSON != null &&\r\n c.OWNER_PERSON == child.TNodId)) {\r\n contract.Person = child;\r\n };\r\n });\r\n };\r\n return true;\r\n };\r\n return false;\r\n };\r\n\r\n async CheckGuestContractAsync(userLoyalty: IsdUserLoyalty): Promise {\r\n let personsContracts = await this.GetPersonContractsAsync(userLoyalty);\r\n\r\n if (!personsContracts.Success || personsContracts.Data == null)\r\n return ActionResult.FailedData(ErrorTypes.NotFoundData, \"Не удалось заполучить список контрактов клиента\");\r\n\r\n if (!personsContracts.Data.some(x => this._settings.GuestContractsIds == x.SHABLON_CLUB_CONTRACT_ID)) {\r\n await this._clubProvider.CreateGuestContractAsync();\r\n return ActionResult.SuccessData({ Status: 2, Message: \"Гостевой контракт создан\" });\r\n };\r\n\r\n return ActionResult.SuccessData({ Status: 1, Message: \"Проверка успешно завершена\" });\r\n };\r\n\r\n async ChangePersonContractAsync(id: number, userLoyalty: IsdUserLoyalty): Promise {\r\n let personsContracts = await this._clubProvider.GetPersonContractsAsync(userLoyalty.TNodId, userLoyalty.Id);\r\n\r\n if (!personsContracts.Success || personsContracts.Data == null)\r\n return personsContracts;\r\n\r\n let contract = personsContracts.Data.find(x => x.ID == id);\r\n if (contract != null) {\r\n\r\n let children = await this._loyaltyProvider.GetChildrenAsync();\r\n let arrayChildren = children.Success && children.Data ? children.Data : [];\r\n\r\n this._attachTemplate(contract, userLoyalty, arrayChildren);\r\n this._currentPersonContract = contract;\r\n\r\n this._notificationService.SendSystemNotification(\"CurrentPersonContractChanged\", this._currentPersonContract);\r\n\r\n localStorage.setItem(\"lt:last-contract\", JSON.stringify(contract));\r\n return ActionResult.Success();\r\n } else {\r\n return ActionResult.Failed(ErrorTypes.NotFoundData, \"Контракт не найден\");\r\n };\r\n };\r\n\r\n async RegistrationToPersonalLessson(lessonId: number, userLoyalty: IsdUserLoyalty, contratId?: number): Promise {\r\n return await this._clubProvider.RegistrationToPersonalLessson(userLoyalty.PersId, userLoyalty.TNodId, userLoyalty.Id, lessonId, contratId);\r\n };\r\n\r\n async RegistrationToGroupLessson(lessonId: number, userLoyalty: IsdUserLoyalty, contratId?: number): Promise {\r\n return await this._clubProvider.RegistrationToGroupLessson(userLoyalty.PersId, userLoyalty.TNodId, userLoyalty.Id, lessonId, contratId);\r\n };\r\n\r\n async RegistrationToFreeGroupLessson(lessonId: number, userLoyalty: IsdUserLoyalty, contratId?: number): Promise {\r\n return await this._clubProvider.RegistrationToFreeGroupLessson(userLoyalty.PersId, userLoyalty.TNodId, userLoyalty.Id, lessonId, contratId);\r\n };\r\n\r\n async GetContractsAdditionalServicesAsync(): Promise>> {\r\n return await this._clubProvider.GetContractsAdditionalServicesAsync();\r\n };\r\n\r\n /**\r\n * http://redmine.isd.su/issues/8403\r\n */\r\n // Запрос для получения списка занятий на которые записан клиент\r\n async GetLessonsAsync(user: IsdUserLoyalty, dateFrom: string, dateTo: string, filterOutdated: boolean = true, TNodId?: number): Promise>> {\r\n // Get all personal lessons (maybe move it somewhere outside?)\r\n let query = await this._clubProvider.GetPersonalLessons(\r\n TNodId ? TNodId : user.TNodId,\r\n user.Id,\r\n dateFrom,\r\n dateTo\r\n );\r\n\r\n if (query.Success && query.Data != null) {\r\n query.Data.forEach((lesson: any) => {\r\n if (!lesson.Date || !lesson.TimeFrom) return; // Stop if no startdate or timefrom present\r\n let d = new Date(lesson.Date); // Create new date object\r\n let tzOffset = d.getTimezoneOffset(); // Save timezone offset\r\n let beginTime = lesson.TimeFrom.split(\":\"); // \"17:30:15\" => [17, 30, 15];\r\n d.setHours(parseInt(beginTime[0]) - (tzOffset / 60)); // Hours\r\n d.setMinutes(parseInt(beginTime[1])); // Minutes\r\n d.setSeconds(parseInt(beginTime[2])); // Seconds\r\n lesson.Date = d.toISOString().substring(0, 19); // Mutate the original date so it now includes time from BeginTime\r\n });\r\n\r\n let result = query.Data;\r\n\r\n if (filterOutdated) {\r\n // Remove lessons that have already started\r\n result = result.filter((l: any) => { return new Date(l.Date).getTime() > new Date().getTime() })\r\n };\r\n\r\n // Sort them in an ascending order of time\r\n result = result.sort((o1: any, o2: any) => { return new Date(o1.Date).getTime() - new Date(o2).getTime(); });\r\n\r\n return ActionResult.SuccessData(result);\r\n };\r\n\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n\r\n // Get nearest event\r\n async GetNearestLessonAsync(user: IsdUserLoyalty, dateFrom: string, dateTo: string, TNodId?: number): Promise {\r\n let query = await this.GetLessonsAsync(user, dateFrom, dateTo, false, TNodId);\r\n if (query.Success && query.Data != null && query.Data.length != 0)\r\n return ActionResult.SuccessData(query.Data[0]);\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n\r\n /*\r\n * Заморозка карты\r\n */\r\n async FreezeCard(ContractId: number, DateFrom: string, DaysAmount: number, UserLoyaltyId: number, ClubSiteId: number, TNodId: number): Promise {\r\n let freeze = await this._clubProvider.FreezeCard(ContractId, DateFrom, DaysAmount, UserLoyaltyId, ClubSiteId, TNodId);\r\n if (freeze.Success) {\r\n this._notificationService.SendSystemNotification(\"CurrentPersonContractChanged\", this._currentPersonContract);\r\n\r\n return ActionResult.SuccessData(freeze.Data);\r\n }\r\n\r\n return freeze;\r\n };\r\n\r\n async CancelLessonAsync(user: IsdUserLoyalty, cashListId: number, cashItemId: number): Promise>> {\r\n return await this._clubProvider.CancelLessonAsync(user.TNodId, user.Id, cashListId, cashItemId);\r\n };\r\n\r\n ResetCache(): void { this._contracts = undefined; this._currentPersonContract = undefined };\r\n};","module.exports = \"
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n Укажите ваш пол
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n Сохранить\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\";","export enum ArenaPosition {\r\n Bottom = 1,\r\n Top = 2,\r\n Left = 3,\r\n Right = 4\r\n}","export default class ArenaSeat {\r\n PlaceCode: number = 0;\r\n LineName: string = '';\r\n PlaceName: string = '';\r\n X: number = 0;\r\n Y: number = 0;\r\n TariffCode: number = 0;\r\n IsFree: boolean = false;\r\n}","import ArenaSeat from './arena-seat';\r\nimport ArenaTariff from './arena-tariff';\r\n\r\nexport default class ArenaSeatsList {\r\n Places: Array = [];\r\n Tariffs: Array = [];\r\n}","import ArenaPolygonPoint from './arena-polygon-point';\r\nimport GlobalService from '..';\r\n\r\nexport default class ArenaSector {\r\n Id: number = 0;\r\n SectorCode: number = 0;\r\n Name: string = '';\r\n PlacesWithoutNumbers: boolean = false;\r\n Points: Array = [];\r\n\r\n}","import { ArenaPosition } from './arena-position';\r\nimport ArenaSector from './arena-sector';\r\n\r\nexport default class ArenaSectorsList {\r\n HavePlan: boolean = true;\r\n PlanImage: string = '';\r\n ImageWidth: number = 0;\r\n ImageHeight: number = 0;\r\n ArenaText: string = '�����';\r\n ArenaPosition: ArenaPosition = ArenaPosition.Bottom;\r\n Sectors: Array = [];\r\n}","import ArenaTariffFreePlaces from './arena-tariff-free-places';\r\nimport ArenaTariffOption from './arena-tariff-option';\r\n\r\nexport default class ArenaTariff {\r\n Name: string = '';\r\n TariffCode: number = 0;\r\n Price: number = 0;\r\n FreeCount?: number;\r\n MinPrice: number = 0;\r\n MaxPrice: number = 0;\r\n Options?: Array;\r\n FreePlaces?: Array;\r\n}","export default class ArenaTariffOption {\r\n OptionCode: number = 0;\r\n Name: string = '';\r\n Price: number = 0;\r\n}","export default class ArenaTariffFreePlaces {\r\n SectorCode: number = 0;\r\n Count: number = 0;\r\n}","export default class ArenaPolygonPoint {\r\n X: number = 0;\r\n Y: number = 0;\r\n}","export default class ArenaSeance {\r\n Id: number = 0;\r\n EventCode?: number;\r\n Name: string = '';\r\n EventId?: number;\r\n EventName: string = '';\r\n BeginDate?: moment.Moment;\r\n EndDate?: moment.Moment;\r\n SaleEndDate?: moment.Moment;\r\n}","export const ArenaSymbols = {\r\n ArenaService: Symbol.for(\"ArenaService\"),\r\n ArenaProvider: Symbol.for(\"ArenaProvider\")\r\n}","import { injectable, inject } from 'inversify';\r\nimport IArenaService from './i-arena-service';\r\nimport GlobalService, { AppSettings, ActionResult, OrderSale } from './../';\r\nimport IArenaProvider from './i-arena-provider';\r\nimport ArenaSeance from './arena-seance';\r\nimport { ArenaSymbols } from './symbols';\r\nimport ArenaSectorsList from './arena-sectors-list';\r\nimport ArenaTariff from './arena-tariff';\r\nimport ArenaSeatsList from './arena-seats-list';\r\nimport ArenaCartItem from './arena-cart-item';\r\n\r\n@injectable()\r\nexport default class DefaultArenaService implements IArenaService {\r\n private readonly _settings: AppSettings;\r\n protected readonly _provider: IArenaProvider;\r\n\r\n constructor(@inject(ArenaSymbols.ArenaProvider) provider: IArenaProvider) {\r\n this._provider = provider;\r\n this._settings = GlobalService.GetSettings();\r\n }\r\n \r\n async GetSeancesAsync(): Promise>> {\r\n return await this._provider.GetSeancesAsync();\r\n }\r\n\r\n async GetSectorsAsync(seanceId: number): Promise> {\r\n return await this._provider.GetSectorsAsync(seanceId);\r\n }\r\n\r\n async GetTariffsAsync(seanceId: number): Promise>> {\r\n return await this._provider.GetTariffsAsync(seanceId);\r\n }\r\n\r\n async GetSeatsAsync(seanceId: number, sectorCode: number): Promise> {\r\n return await this._provider.GetSeatsAsync(seanceId, sectorCode);\r\n }\r\n\r\n async ReservateSeatAsync(arenaCartItem: ArenaCartItem): Promise> {\r\n return await this._provider.ReservateSeatAsync(arenaCartItem);\r\n }\r\n\r\n async UnreservateSeatAsync(itemId: number): Promise {\r\n return await this._provider.UnreservateSeatAsync(itemId);\r\n }\r\n\r\n async CancelOrderAsync(orderId: number): Promise {\r\n return await this._provider.CancelOrderAsync(orderId);\r\n }\r\n}","export enum ArenaCartItemState {\r\n Available = 1,\r\n Busy = 2\r\n}","import { CartItem, CartItemTypes } from './../Cart';\r\nimport { ReservationItem, ActionResult } from './..';\r\nimport ArenaSeance from './arena-seance';\r\nimport { ArenaSector, ArenaSymbols, IArenaService } from './';\r\nimport ArenaTariff from './arena-tariff';\r\nimport ArenaTariffOption from './arena-tariff-option';\r\nimport ArenaSeat from './arena-seat';\r\nimport { ErrorTypes, WpEventHandler, WpEventArgs, WpEvent } from './../Common';\r\nimport { ArenaCartItemState } from './arena-cart-item-state';\r\nimport GlobalService from './../Global/global-service';\r\nimport { ISaleService, SaleSymbols } from './../Sale';\r\n\r\nexport default class ArenaCartItem extends CartItem {\r\n private _type: CartItemTypes = CartItemTypes.ArenaTicket;\r\n protected _arenaService: IArenaService;\r\n\r\n OrderId?: number;\r\n OrderItemId?: number;\r\n SibId?: string;\r\n\r\n Seat: ArenaSeat = new ArenaSeat();\r\n Seance: ArenaSeance = new ArenaSeance();\r\n Sector: ArenaSector = new ArenaSector();\r\n Tariff: ArenaTariff = new ArenaTariff();\r\n Option?: ArenaTariffOption;\r\n\r\n State: ArenaCartItemState = ArenaCartItemState.Available;\r\n\r\n constructor(arenaService: IArenaService) {\r\n super();\r\n this._arenaService = arenaService;\r\n };\r\n\r\n get Info(): string {\r\n return `${this.Sector.Name}, ряд ${this.Seat.LineName}, место ${this.Seat.PlaceName} ${this.Option != null ? this.Option.Name : ''}`;\r\n };\r\n\r\n get Type(): CartItemTypes {\r\n return this._type;\r\n };\r\n\r\n get Price(): number {\r\n return this.Option !== undefined ? this.Option.Price : this.Tariff.Price;\r\n };\r\n\r\n get Count(): number {\r\n return 1;\r\n };\r\n\r\n get IsAvailable(): boolean {\r\n return true;\r\n };\r\n\r\n get MetricsId(): any | undefined {\r\n return this.Seance?.Id;\r\n };\r\n\r\n public get Dates(): Array {\r\n return [];\r\n };\r\n\r\n public get AdditionalInfo(): any {\r\n return {\r\n seat: this.Seat,\r\n seance: this.Seance,\r\n sector: this.Sector,\r\n tariff: this.Tariff,\r\n option: this.Option,\r\n sibid: this.SibId\r\n };\r\n };\r\n\r\n get IsCanIncreaseCount(): boolean {\r\n return false;\r\n };\r\n\r\n get IsCanReduceCount(): boolean {\r\n return false;\r\n };\r\n\r\n IncreaseCount(): ActionResult {\r\n throw new Error(\"Method not implemented.\");\r\n };\r\n\r\n ReduceCount(): ActionResult {\r\n throw new Error(\"Method not implemented.\");\r\n };\r\n\r\n IsConflictItem(item: CartItem): boolean {\r\n return item.Type != CartItemTypes.ArenaTicket;\r\n };\r\n\r\n IsEqualsItem(item: CartItem): boolean {\r\n return false;\r\n };\r\n\r\n CombineItem(item: CartItem): ActionResult {\r\n throw new Error(\"Method not implemented.\");\r\n };\r\n\r\n GetReservationItem(): ReservationItem[] {\r\n throw new Error(\"Method not implemented.\");\r\n };\r\n\r\n async ReservateItem(): Promise {\r\n this.State = ArenaCartItemState.Busy;\r\n let result = await this._arenaService.ReservateSeatAsync(this);\r\n if (result.Success && result.Data != null) {\r\n this.OrderId = result.Data.Id;\r\n let orderItem = result.Data.Items.find(x => x.AdditionalInfo.PlaceCode == this.Seat.PlaceCode);\r\n this.OrderItemId = orderItem?.Id;\r\n };\r\n this.State = ArenaCartItemState.Available;\r\n return result;\r\n };\r\n\r\n async RemoveItem(): Promise {\r\n if (this.OrderItemId == undefined) return ActionResult.Success();\r\n this.State = ArenaCartItemState.Busy;\r\n let result = await this._arenaService.UnreservateSeatAsync(this.OrderItemId);\r\n this.State = ArenaCartItemState.Available;\r\n this._cartItemChanged.Send(this, WpEventArgs.Empty);\r\n return result;\r\n };\r\n};","module.exports = \"\\r\\n \\r\\n mdi-arrow-left\\r\\n \\r\\n\\r\\n

\\r\\n {{ Terms.ResetPasswordTitle }}\\r\\n

\\r\\n\\r\\n \\r\\n mdi-email\\r\\n mdi-phone\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.ResetBtnText }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.ChangeBtnText }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\";","export const MetricsEvents = {\r\n IncartPlus: Symbol.for(\"incart_plus\"), // Добавление услуг в корзине нажатием на кнопку «+», params id- идентификатор тарифа для услуг, занятий и дозаписи; идентификатор сеанса для арены; id - связки тарифов услуги\r\n IncartMinus: Symbol.for(\"incart_minus\"),// Уменьшение количества услуг в корзине нажатием на кнопку «-», params id- идентификатор тарифа для услуг, занятий и дозаписи; идентификатор сеанса для арены; id - связки тарифов услуги\r\n IncartRemove: Symbol.for(\"incart_remove\"), // Удаление отдельной услуги в интерфейсе корзины, params id- идентификатор тарифа для услуг, занятий и дозаписи; идентификатор сеанса для арены; id - связки тарифов услуги\r\n IncartCancel: Symbol.for(\"incart_cancel\"), // Очистка всей корзины \r\n IncartToPurchase: Symbol.for(\"incart_to_purchase\"), // Переход к оформлению заказа из интерфейса корзины\r\n WidgetOpenCart: Symbol.for(\"widget_open_cart\"), // Происходит когда пользователь открывает интерфейс корзины \r\n WidgeCloseCart: Symbol.for(\"widget_close_cart\"), // Происходит когда пользователь закрывает интерфейс корзины \r\n \r\n WidgetToArenaSeances: Symbol.for(\"widget_to_arena_seances\"), // Происходит при переходе на список ареновских сеансов,\r\n WidgetToArenaSectors: Symbol.for(\"widget_to_arena_sectors\"), // Происходит при переходе на список сектров, params id - идентификатор сеанса\r\n WidgetArenaSectorsBack: Symbol.for(\"widget_arena_sectors_back\"), // Происходит при нажати на кнопку назад на этапе сектров, params id - идентификатор сеанса\r\n WidgetToArenaSeats: Symbol.for(\"widget_to_arena_seats\"), // Происходит при переходе на список мест, params id - код сектора ППС\r\n WidgetArenaSeatsBack: Symbol.for(\"widget_arena_sectors_back\"), // Происходит при нажати на кнопку назад на этапе выбора мест, params id - код сектора ППС\r\n ArenaSeatReservate: Symbol.for(\"arena_seat_reservate\"), // Сработает при добавлении в корзину места (Арена), params id - идентификатор сеанса\r\n ArenaSeatUnreservate: Symbol.for(\"arena_seat_unreservate\"), // Сработает при удалении из корзины места нажатием на само место (Арена), params id - идентификатор сеанса \r\n\r\n WidgetToServices: Symbol.for(\"widget_to_services\"), // Происходит при переходе на вкладку со списком услуг \r\n ServiceChangeDate: Symbol.for(\"service_change_date\"), // Это событие срабатывает при изменении даты в календаре виджета, на вкладке продажи услуг, params id-выбранная дата\r\n ServiceCartAdd: Symbol.for(\"service_cart_add\"), // Сработает при добавлении в корзину услуг на вкладке услуг, params id- идентификатор тарифа или связки\r\n ServiceSeanceSelected: Symbol.for(\"service_seance_selected\"), // Сработает при выборе сеанса на вкладке услуг, params id- идентификатор сеанса\r\n ServiceSeanceUnselected: Symbol.for(\"service_seance_selected\"), // Сработает при снятии выбора с сеанса на вкладке услуг, params id - идентификатор сеанса\r\n\r\n WidgetToRewrite: Symbol.for(\"widget_to_rewrite\"), // Происходит при переходе на вкладку пополнения услуг на имеющийся носитель \r\n RewriteCartAdd: Symbol.for(\"rewrite_cart_add\"), // Сработает при добавлении в корзину услуг на вкладке пополнения услуг, params id- идентификатор тарифа или связки\r\n RewriteCheckCard: Symbol.for(\"rewrite_check_card\"), // Событие происходит при проверке номера карты на вкладке пополнения услуг \r\n RewriteClearCard: Symbol.for(\"rewrite_clear_card\"), // Событие происходит при нажатии на кнопку очистить на вкладке пополнения услуг \r\n RewriteChangeCard: Symbol.for(\"rewrite_change_card\"), // Событие происходит при нажатии на кнопку изменить на вкладке пополнения услуг \r\n RewriteChangeDate: Symbol.for(\"rewrite_change_date\"), // Происходит при изменении даты в календаре виджета на вкладке пополнения услуг, params id-выбранная дата\r\n\r\n WidgetToPurchase: Symbol.for(\"widget_to_purchase\"), // Срабатывает при переходе к оформлению заказа из начального окна виджета, кнопка «Купить»\r\n OrderRemoveItem: Symbol.for(\"order_remove_item\"), // Это событие фиксируется при удалении позиции из заказа на этапе оформления заказа, id-идентификатор заказа\r\n OrderApplyLoyalty: Symbol.for(\"order_apply_loyalty\"), // Это событие фиксируется при применении программы лояльности к заказу, id-идентификатор заказа\r\n OrderClickSignIn: Symbol.for(\"order_click_sign_in\"), // Это событие при нажатии на ссылку войти при оформлении заказа, id-идентификатор заказа\r\n OrderSetUser: Symbol.for(\"order_set_user\"), // Это событие срабатывает если пользователь авторизовался на оформлении заказа, id-идентификатор заказа\r\n OrderSetDiscount: Symbol.for(\"order_set_discount\"), // Это событие срабатывает если пользователь выбрал скидку, id-идентификатор скидки\r\n OrderResetDiscount: Symbol.for(\"order_reset_discount\"), // Это событие срабатывает если пользователь сбросил скидку сам или выбрал скидку программы лояльности, id-идентификатор заказа\r\n OrderSetPromo: Symbol.for(\"order_set_promo\"), // Это событие срабатывает если пользователь применил промокод, id-идентификатор заказа\r\n OrderRemovePromo: Symbol.for(\"order_remove_promo\"), // Это событие срабатывает если пользователь удалил промокод, id-идентификатор заказа\r\n OrderClickAgreements: Symbol.for(\"order_click_agreements\"), // Это событие срабатывает если пользователь нажал на ссылку соглашений, id-идентификатор заказа\r\n WidgetToPay: Symbol.for(\"widget_to_pay\"), // Это событие срабатывает если пользователь перешел на оплату в банк, id-идентификатор заказа\r\n WidgetToPayAndChargeBonus: Symbol.for(\"order_click_agreements\"), // Это событие срабатывает если пользователь перешел на оплату и спасал баллы в банк, id-идентификатор заказа\r\n\r\n WidgetReturnFromPayment: Symbol.for(\"widget_return_from_payment\"), // Срабатывает при переходе финальному шагу, params id-идентификатор заказа\r\n WidgetCompleteSuccess: Symbol.for(\"widget_complete_success\"), // Срабатывает когда пользователь увидел сообщение об успешной покупке, id-идентификатор заказа\r\n WidgetCompleteCancel: Symbol.for(\"widget_complete_cancel\"), // Срабатывает когда пользователь увидел сообщение об отмененном заказе, id-идентификатор заказа\r\n WidgetCompleteWaitingCancel: Symbol.for(\"widget_complete_waiting_cancel\"), // Срабатывает когда пользователь отказался ожидать результат платежа, id-идентификатор заказа\r\n WidgetRestart: Symbol.for(\"widget_restart\"), // Данное событие говорит о том что пользователь оплатив заказ на сайте банка вернулся на страницу сайта с виджетом и нажал кнопку начать сначала, id-идентификатор заказа\r\n\r\n FeedbackEmail: Symbol.for(\"feedback_email\"), // Нажатие на кнопку написать на email на странице feedback\r\n FeedbackAppleStore: Symbol.for(\"feedback_apple_store\"), // Нажатие на кнопку оценить в Аpple Stroe на странице feedback\r\n FeedbackPlayStore: Symbol.for(\"feedback_play_store\"), // Нажатие на кнопку оценить в Play Store на странице feedback\r\n\r\n IsdLoyaltyEditProfile: Symbol.for(\"isd_loyalty_edit_profile\"), // Редактирование профиля в программе лояльности ISD\r\n IsdLoyaltyRegistration: Symbol.for(\"isd_loyalty_registration\"), // Регистрация в программе лояльности ISD\r\n\r\n NavigationPage: Symbol.for(\"navigation_page\"), // Страница с навигацией \r\n NavigationGoTo: Symbol.for(\"navigation_go_to\"), // Страница с навигацией, нажатие на кнопку построить маршрут\r\n\r\n NewsList: Symbol.for(\"news_list\"), // Переход на страницу новостей\r\n NewsItem: Symbol.for(\"news_item\"), // Переход на страницу конкретной новости, params id - идентификатор новости\r\n\r\n OrdersList: Symbol.for(\"orders_list\"), // Переход на страницу заказов\r\n OrderDetalization: Symbol.for(\"order_detalization\"), // Переход на страницу конкретного заказа, params id - идентификатор заказа\r\n OrderTickets: Symbol.for(\"order_tickets\"), // Нажатие на кнопку билеты в детализации заказа, params id - идентификатор заказа\r\n\r\n ChangePasswordPage: Symbol.for(\"change_password_page\"), // Переход на страницу смены пароль\r\n PasswordChanged: Symbol.for(\"password_changed\"), // Нажатие на кнопку изменить пароль на странице \"Сменить пароль\"\r\n\r\n}","import ClubCard from './club-card';\r\nimport { ContractActualPeriod, FixedPriceType, ContractPaymentType, ContractPeriod, ContractProcedure, ContractServicePeriod, PPSContractStatus, OwnerType } from '.';\r\nimport SoldClubCard from './sold-club-card';\r\nimport ClubContract from './club-contract';\r\nimport { PersonIsdLoyaltyData } from '../Loyalty';\r\n\nexport default class SoldClubContract {\n /** xs:boolean */\n ACCOUNT_YES?: boolean;\n /** xs:long */\n ACC_DISCOUNT?: number;\n /** xs:string */\n ACC_DISCOUNT_NAME?: string;\n /** xs:dateTime */\n ACTUAL_DATA?: string;\n /** ContractActualPeriod|xs:string|capAny,capDay,capWeek,capMonth,capQuarter,capSixMonth,capYear,capAllPeriod */\n ACTUAL_PERIOD?: ContractActualPeriod;\n /** xs:long */\n ACTUAL_QUANTITY?: number;\n /** xs:long */\n CARD?: number;\n /** CARD_LIST */\n CARD_LIST?: Array;\n /** xs:string */\n CARD_LIST_STR?: string;\n /** xs:string */\n CARD_NAME?: string;\n /** xs:double */\n CHECK_ACCOUNT?: number;\n /** xs:long */\n CURRENCY?: number;\n /** xs:long */\n CURRENCY_TYPE?: number;\n /** xs:long */\n CURRENT_NUMBER?: number;\n /*\n * Indicates whether the contract is for children or not.\n * This is new... beware. It DOES seem to come from backend\n */\n Child!: boolean; \n /** xs:double */\n ENSUR_AMOUNT?: number;\n /** xs:double */\n ENSUR_SUMMA?: number;\n /** xs:double */\n ENTRY_FEE?: number;\n /** xs:double */\n EXTEND_AMOUNT?: number;\n /** xs:double */\n EXTEND_DAYS_AMOUNT?: number;\n /** xs:long */\n EXTEND_DAYS_COUNT?: number;\n /** xs:long */\n EXTEND_DISCOUNT?: number;\n /** xs:string */\n EXTEND_DISCOUNT_NAME?: string;\n /** xs:double */\n EXTEND_PERCENT?: number;\n /** xs:boolean */\n EXTEND_YES?: boolean;\n /** xs:long */\n FAMILY_YES?: number;\n /** FixedPriceType|xs:string|ftpNo,ftpCard,ftpContract */\n FIXED_PRICE_YES?: FixedPriceType;\n /** xs:boolean */\n FIXED_YES?: boolean;\n /** xs:long */\n FREEZE?: number;\n FREEZE_DAYS_AMOUNT?: number; // 90\r\n FREEZE_DAYS_EXTRA?: number; // 0\r\n FREEZE_DAYS_REST?: number; // 90\r\n FREEZE_END_DATE?: string; // xs:string \"2023-01-23T00:00:00\"\r\n FREEZE_NAME?: string; // \"��������� 90 ���� (������� 7)\"\r\n FREEZE_YES?: boolean; // xs:boolean\n /** xs:long */\n ID?: number;\n /** ��������� �� ��������? */\n IS_FREEZED?: boolean;\n /** xs:long */\n KIND?: number;\n /** xs:string */\n KIND_DESC?: string;\n /** xs:string */\n NAME?: string;\n /** xs:string */\n NUMBER?: string;\n /** ContractPaymentType|xs:string|cptNow,cptCredit */\n PAYMENT_TYPE?: ContractPaymentType;\n /** ContractPeriod|xs:string|cpAny,cpDay,cpWeek,cpMonth,cpQuarter,cpSixMonth,cpYear,cpFixed */\n PERIOD?: ContractPeriod;\n /** xs:long */\n PERIOD_QUANTITY?: number;\n /** xs:double */\n PRICE?: number;\n /** ContractProcedure|xs:string|cprCard,cprVisit,cprPayment,cprFreeze,cprProcedure,cprSheduke */\n PROCEDURE?: ContractProcedure;\n /** xs:long */\n REPORTFILE?: number;\n /** xs:long */\n SERVICE?: number;\n /** xs:long */\n SERVICE_DISCOUNT?: number;\n /** xs:string */\n SERVICE_DISCOUNT_NAME?: string;\n /** xs:string */\n SERVICE_NAME?: string;\n /** ContractServicePeriod|xs:string|spAny,spWeek,spMonth1,spMonth2,spMonth3,spMonth6,spYear,spDays */\n SERVICE_PERIOD?: ContractServicePeriod;\n /** xs:long */\n SERVICE_PERIOD_DAYS?: number;\n /** xs:long */\n SERVICE_QUANTITY?: number;\n /** xs:boolean */\n SHEDULED?: boolean;\n /** xs:long */\n SYS_STATUS?: number;\n /** xs:string */\n BONUS?: string;\n /** xs:long */\n CSHI_ID?: number;\n /** xs:double */\n ENSUR_PERCENT?: number;\n /** xs:long */\n EXTEND_ID?: string;\n /** xs:long */\n OWNER_ORGANISATION?: number;\n /** xs:long */\n OWNER_PERSON?: number;\n /** OwnerType|xs:string|owtPerson,owtOrganization */\n OWNER_TYPE?: OwnerType;\n /** xs:long */\n PERSONAL_DISCOUNT?: number;\n /** xs:long */\n SHABLON?: number;\n /** xs:long */\n SHABLON_CLUB_CONTRACT_ID?: number;\n /** SOLD_CARD_LIST */\n SOLD_CARD_LIST?: Array;\n /** ContractStatus|xs:string|csPrepare,csActual,csFreeze,csLock,csClose,csInWork,csDelete */\n STATUS?: PPSContractStatus;\n /** xs:long */\n USER?: number;\n /** xs:long */\n USER_CURRENT?: number;\n /** xs:dateTime */\n VALID_FROM?: string;\n /** xs:dateTime */\n VALID_TO?: string;\n /** xs:long */\n XP_CSHI_ID?: number;\n\n Template: ClubContract = new ClubContract(); \n Person: PersonIsdLoyaltyData = new PersonIsdLoyaltyData();\n}\n","import OrderItem from './order-item';\r\nimport LoyaltyProgram from './loyalty-program';\r\nimport OrderDiscount from './order-discount';\r\nimport { OrderStatus } from './order-status';\r\nimport { OrderType } from './order-type';\r\n\r\nexport default class OrderSale {\r\n Id: number = 0;\r\n Code: number = 0;\r\n Sum: number = 0;\r\n SiteId: number = 0;\r\n SiteUrl: string = '';\r\n Status: OrderStatus = OrderStatus.Reserved;\r\n OrderType: OrderType = OrderType.TariffsOrder;\r\n Items: Array = new Array();\r\n LoyaltyProgram?: LoyaltyProgram;\r\n Discount: number = 0;\r\n DiscountsList: Array = new Array();\r\n DiscountProgramId?: number;\r\n DiscountProgramName?: string;\r\n UserName: string = '';\r\n UserPhone: string = '';\r\n\r\n get TotalSum(): number {\r\n return this.Sum - this.Discount;\r\n }\r\n\r\n}","export default class IsdLoyaltyQuestionnaire {\r\n PersId: number = 0;\r\n TNodId: number = 0;\r\n AddressId?: number;\r\n\r\n get HaveFields(): boolean {\r\n return this.FirstNameEnabled || this.LastNameEnabled || this.SecondNameEnabled || this.BirthdateEnabled || this.GenderEnabled\r\n }\r\n\r\n FirstNameEnabled: boolean = false;\r\n FirstNameRequired: boolean = false;\r\n FirstName: string = '';\r\n\r\n LastNameEnabled: boolean = false;\r\n LastNameRequired: boolean = false;\r\n LastName: string = '';\r\n\r\n SecondNameEnabled: boolean = false;\r\n SecondNameRequired: boolean = false;\r\n SecondName: string = '';\r\n\r\n BirthdateEnabled: boolean = false;\r\n BirthdateRequired: boolean = false;\r\n Birthdate?: string | null;\r\n\r\n GenderEnabled: boolean = false;\r\n GenderRequired: boolean = false;\r\n Gender?: number | null;\r\n\r\n CityEnabled: boolean = false;\r\n CityRequired: boolean = false;\r\n City?: string = '';\r\n}","module.exports = \"
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{ Item.Label }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.DialogBtnClean }}\\r\\n \\r\\n {{ Terms.DialogBtnCancel }}\\r\\n {{ Terms.DialogBtnOk }}\\r\\n \\r\\n \\r\\n
\\r\\n\";","import Vue from 'vue';\r\nimport { Prop, DefaultProps } from \"vue/types/options\";\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { OrderItem, OrderItemType, BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\nimport { VueConstructor } from 'vue/types/umd';\r\n\r\nexport const wpPayConfirmItemProps = Vue.extend({\r\n props: {\r\n OrderItem: Object as Prop\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-payconfirm-item.html\")\r\n})\r\nexport default class WpPayConfirmItem extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpPayConfirmItemProps, Vue) {\r\n Loading: boolean = false;\r\n\r\n get HaveInfo(): boolean {\r\n return (this.OrderItem.Type == OrderItemType.TariffPersonification ||\r\n this.OrderItem.Type == OrderItemType.TariffBarcodePesonification ||\r\n this.OrderItem.Type == OrderItemType.TariffRewritable ||\r\n this.OrderItem.Type == OrderItemType.TariffRewritablePesonification ||\r\n this.OrderItem.Type == OrderItemType.ArenaTicket)\r\n && this.OrderItem.AdditionalInfo != undefined && this.OrderItem.AdditionalInfo.Info != undefined;\r\n }\r\n\r\n Remove() {\r\n this.Loading = true;\r\n this.$emit(\"ItemRemove\", this.OrderItem);\r\n }\r\n}\r\n\r\nexport class WpPayConfirmItemDictionary extends BaseSystemLocalizationDictionary {\r\n GenericDecline: string = 'Отказаться';\r\n GenericTotalSum: string = 'Сумма';\r\n}","import ActionResult from './../Common/action-result';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { ErrorTypes, WpEvent, WpEventHandler, BaseFilter } from './../Common';\r\nimport GlobalService from './global-service';\r\nimport { AppSettings } from './app-settings';\r\nimport Site from './site';\r\nimport AppSettingsInitializedEventArgs from './app-settings-initialized-event-args';\r\nimport { IContext, IdentitySymbols } from '../Identity';\r\nimport { ILocalizationService, LocalizationSymbols } from '../Localization';\r\nimport { ConnectionType } from './connection-type';\r\nimport { ICmsService, CmsSymbols } from '../Cms';\r\nimport WpCorePrefixes from '../wp-core-prefixes';\r\nimport WidgetOpenParameters from './widget-open-parameters';\r\nimport { IHeaders } from 'typed-rest-client/Interfaces';\r\n\r\n\r\nexport default class Initializer {\r\n private static _settingsInitialized: WpEventHandler = new WpEventHandler();\r\n\r\n static get SettingsInitialed(): WpEvent {\r\n return this._settingsInitialized;\r\n }\r\n\r\n static async InitializeAsync(globalService: GlobalService): Promise {\r\n let settings = GlobalService.GetSettings();\r\n let context = globalService.Get(IdentitySymbols.Context);\r\n let localizationService = globalService.Get(LocalizationSymbols.LocalizationService);\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, []);\r\n\r\n try {\r\n let response = await client.create>(`/widget/initialize`, settings, { additionalHeaders: { 'sessionid': `${settings.SessionId}` } });\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n\r\n let sessionid = Object.getOwnPropertyDescriptor(response.headers, 'sessionid')?.value as string;\r\n\r\n if (settings.SessionId != sessionid) {\r\n settings.SessionId = sessionid;\r\n parent.postMessage({ status: 'wp-session-id', data : sessionid }, '*');\r\n }\r\n\r\n if (response.result != null && response.result.Data != null) {\r\n settings.CurrentSite = new Site();\r\n settings.CurrentSite.Id = response.result.Data.Id;\r\n settings.CurrentSite.Name = response.result.Data.Name;\r\n settings.CurrentSite.ConnectionId = response.result.Data.ConnectionId;\r\n settings.CurrentSite.ConnectionType = response.result.Data.ConnectionType;\r\n settings.CurrentSite.Status = response.result.Data.Status;\r\n settings.CurrentSite.OrganizationId = response.result.Data.OrganizationId;\r\n settings.CurrentSite.OrganizationName = response.result.Data.OrganizationName;\r\n settings.CurrentSite.Url = response.result.Data.Url;\r\n settings.CurrentSite.Offset = response.result.Data.Offset || '';\r\n settings.CurrentSite.OrganizationStatus = response.result.Data.OrganizationStatus;\r\n settings.CurrentSite.PlatformHelpDeskAddress = response.result.Data.PlatformHelpDeskAddress;\r\n\r\n let cmsService = globalService.Get(CmsSymbols.CmsService);\r\n let filter = new BaseFilter();\r\n filter.PlatformId = settings.SiteId;\r\n let initParams = await cmsService.GetEntitiesAsync(WpCorePrefixes.WidgetOpenParameters, filter, `${settings.CurrentSite.Id}`);\r\n\r\n if (initParams.Success) {\r\n if (initParams.Data != null && initParams.Data != undefined) {\r\n if (initParams.Data.Entities != null && initParams.Data.Entities != undefined) {\r\n if (initParams.Data.Entities.length != 0) {\r\n let param = initParams.Data.Entities[0];\r\n console.log(param);\r\n\r\n if (param != null && param != undefined) {\r\n if (param.Data != null && param.Data != \"\") {\r\n settings.HandleJson(param.Data);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n //if (initParams.Success && initParams.Data != null) {\r\n // if (initParams.Data.Entities != null && initParams.Data.Entities.length > 0) {\r\n // for (let i = 0; initParams.Data.Entities.length; i++) {\r\n // if (initParams.Data.Entities[i]?.Data != null && initParams.Data.Entities[i]?.Data != '') {\r\n // settings.HandleJson(initParams.Data.Entities[i].Data);\r\n // break;\r\n // }\r\n // }\r\n // }\r\n //}\r\n };\r\n\r\n await localizationService.LoadAdditionalDictionary(settings.SiteId);\r\n\r\n await context.Initialize(settings, globalService);\r\n\r\n this._settingsInitialized.Send(this, new AppSettingsInitializedEventArgs(settings));\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n } catch (e) {\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n }\r\n }\r\n}\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n}\r\n","module.exports = \"
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
{{ tariff.Name }}
\\r\\n
\\r\\n {{ SeanceTime }}\\r\\n 0\\\"\\r\\n small\\r\\n label\\r\\n color=\\\"secondary\\\"\\r\\n color-text=\\\"white\\\">\\r\\n {{ Terms.GenericItemsLeft}} {{ Capacity.LeftCount }} {{ Terms.GenericItemsOf}} {{ Capacity.Capacity }}\\r\\n \\r\\n 0\\\"\\r\\n small\\r\\n label\\r\\n color=\\\"secondary\\\"\\r\\n color-text=\\\"white\\\">\\r\\n {{ Terms.GenericItemsLeft}} {{ TariffSale.LeftCount }} {{ Terms.GenericItemsOf}} {{ TariffSale.Quota }}\\r\\n \\r\\n
\\r\\n
{{ tariff.Description }}
\\r\\n

{{ tariff.WorkingDays }}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n {{ Terms.TariffUnavailableForThisDate }}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{ Terms.GenericPleaseWait }}\\r\\n \\r\\n \\r\\n
\\r\\n
{{ Terms.CartIsFull }}
\\r\\n
{{ Terms.NoMoreTickets }}
\\r\\n
{{ Terms.NoMoreTickets }}
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n mdi-minus\\r\\n {{ Amount }}\\r\\n mdi-plus\\r\\n \\r\\n \\r\\n \\r\\n {{ $data._formatPrice(Price) }}\\r\\n \\r\\n \\r\\n \\r\\n mdi-cart-plus {{ Terms.GenericToCart }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","import './wp-instructors.scss';\r\n\r\nimport Vue from 'vue';\r\nimport { Prop, DefaultProps } from 'vue/types/options';\r\nimport WpBaseComponent from './../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { VueConstructor } from 'vue/types/umd';\r\nimport GlobalService, {\r\n ActionResult, AppSettings, BaseSystemLocalizationDictionary,\r\n InstructorsSymbols, IInstructorsService, PersonalLessonsFilter,\r\n InstructorsPersonalLesson, InstructorsPersonalCartItem, InstructorTariffCategory,\r\n SkillType, InstructorsPlace, InstructorsLessonsLocation,\r\n INotificationService, NotificationSymbols,\r\n CartItem, Cart, CartItemTypes, WpCorePrefixes, ICmsService, CmsSymbols, BaseFilter, Tariff, Instructor,\r\n} from 'web-platform-core-ui';\r\nimport WpInstructorsList from './WpInstructorsList/wp-instructors-list';\r\nimport { Ref } from 'vue-property-decorator';\r\n\r\nVue.component(\"wp-instructors-list\", WpInstructorsList);\r\n\r\nexport const wpInstructorsProp = Vue.extend({\r\n props: {\r\n Cart: Object as Prop,\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-instructors.html\")\r\n})\r\nexport default class WpInstructors extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpInstructorsProp, Vue) {\r\n private _allTariffs: Array = [];\r\n private _instructorsService!: IInstructorsService;\r\n protected _notificationService!: INotificationService;\r\n private _cmsService!: ICmsService;\r\n\r\n Settings!: AppSettings;\r\n DatepickerSettings: any = {};\r\n\r\n SelectedPlace: InstructorsPlace | null = null;\r\n\r\n Skill: string = '';\r\n Skills: Array = [];\r\n SkillsLoaded: boolean = false;\r\n SkillsVisible: boolean = true;\r\n NoSkills: boolean = false;\r\n\r\n TariffId: number = 0;\r\n Tariffs: Array = [];\r\n TariffLoaded: boolean = false;\r\n TariffVisible: boolean = true;\r\n NoTariffs: boolean = false;\r\n\r\n TariffChanged(tariffCode: number) {\r\n this.TariffId = tariffCode;\r\n this.ResetFilterResults();\r\n };\r\n\r\n CategoryId: string = '';\r\n Categories: Array = [];\r\n CategoriesLoaded: boolean = false;\r\n CategoriesVisible: boolean = true;\r\n NoCategories: boolean = false;\r\n\r\n LocationId: number = 0;\r\n Locations: Array = [];\r\n LocationsLoaded: boolean = false;\r\n LocationsVisible: boolean = true;\r\n NoLocations: boolean = false;\r\n\r\n ShowButtonVisible: boolean = true;\r\n\r\n Filter?: PersonalLessonsFilter;\r\n FilterLoading = false;\r\n LessonsLoaded = false;\r\n Lessons?: Array;\r\n\r\n Dates: Array = [];\r\n DatesVisible: boolean = true;\r\n Datepicker: boolean = false;\r\n\r\n Instructor: Instructor | null = null;\r\n NoCoach: boolean = false;\r\n\r\n @Ref('vselect')\r\n protected vselect?: any;\r\n\r\n Select(i: Instructor) {\r\n this.Instructor = i;\r\n this.vselect.blur();\r\n };\r\n\r\n //=========== Хуки Vue ===========\\\\\r\n created(): void {\r\n this._instructorsService = this.GlobalService.Get(InstructorsSymbols.InstructorsService);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n this._cmsService = this.GlobalService.Get(CmsSymbols.CmsService);\r\n\r\n this.Settings = GlobalService.GetSettings();\r\n if (this.Settings.NoSkills) this.NoSkills = true;\r\n if (this.Settings.NoCategories) this.NoCategories = true;\r\n if (this.Settings.NoLocations) this.NoLocations = true;\r\n if (this.Settings.NoCoach) this.NoCoach = true;\r\n\r\n };\r\n\r\n async mounted(): Promise {\r\n this.StartDatepicker();\r\n\r\n await this.LoadPlaces();\r\n await this.LoadSkills();\r\n await this.LoadCategories();\r\n await this.LoadLocations();\r\n await this.LoadTariffs();\r\n\r\n if (!this.SkillsVisible && !this.CategoriesVisible && !this.Dates && !this.LocationsVisible) {\r\n await this.GetPersonalLessonsAsync();\r\n this.ShowButtonVisible = false;\r\n };\r\n\r\n this.UpdateData();\r\n };\r\n //================================\\\\\r\n\r\n async LoadPlaces(): Promise {\r\n let query = await this._instructorsService.GetPlacesAsync();\r\n\r\n if (!query.Success || query.Data == undefined || query.Data.length == 0)\r\n return this._notificationService.Error(\"Ошибка\", query.ErrorMessage ? query.ErrorMessage : \"Непредвиденная ошибка\");\r\n\r\n if ('PlaceId' in this.Settings) {\r\n let place = query.Data.filter(x => x.Id == this.Settings?.PlaceId);\r\n this.SelectedPlace = place.length !== 0 ? place[0] : query.Data[0];\r\n } else {\r\n this.SelectedPlace = query.Data[0];\r\n };\r\n };\r\n async LoadSkills(): Promise {\r\n let Skills = await this._instructorsService.GetSkillAsync(this.SelectedPlace!.Id);\r\n if (Skills.Data !== undefined && Skills.Data.length >= 1) {\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.InstructorsSkillsNames, Skills.Data);\r\n let translateSkill = await this._cmsService.GetEntitiesAsync(WpCorePrefixes.InstructorsSkillsNames, new BaseFilter(), '');\r\n\r\n if (translateSkill.Success && translateSkill.Data != null) {\r\n Skills.Data.forEach(x => {\r\n let skill = translateSkill.Data?.Entities.find(sc => sc.Code == x.Id);\r\n if (skill != null) x.Name = skill.Name;\r\n });\r\n };\r\n\r\n this.Skills = Skills.Data.sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n });\r\n\r\n if (Skills.Data.length === 1) {\r\n this.Skill = this.Skills[0].Name;\r\n this.SkillsVisible = false;\r\n };\r\n };\r\n this.SkillsLoaded = true;\r\n };\r\n async LoadCategories(): Promise {\r\n let Categories = await this._instructorsService.GetInstructorsTariffCategoriesAsync();\r\n if (Categories.Data !== undefined && Categories.Data.length >= 1) {\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.InstructorsTariffOptionNames, Categories.Data);\r\n\r\n let translateCategories = await this._cmsService.GetEntitiesAsync(WpCorePrefixes.InstructorsTariffOptionNames, new BaseFilter(), '');\r\n\r\n if (translateCategories.Success && translateCategories.Data != null) {\r\n Categories.Data.forEach(x => {\r\n let category = translateCategories.Data?.Entities.find(sc => sc.Code == x.Id);\r\n if (category != null) x.Name = category.Name;\r\n });\r\n };\r\n\r\n this.Categories = Categories.Data.sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n });\r\n\r\n if (this.Categories.length === 1) {\r\n this.CategoryId = this.Categories[0].Id.toString();\r\n this.CategoriesVisible = false;\r\n };\r\n };\r\n this.CategoriesLoaded = true;\r\n };\r\n async LoadLocations(): Promise {\r\n let query = await this._instructorsService.GetLessonsLocationsAsync();\r\n if (query.Data !== undefined && query.Data.length >= 1) {\r\n this.Locations = query.Data.sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n });\r\n\r\n if (this.Locations.length === 1) {\r\n this.LocationId = this.Locations[0].LocationId;\r\n this.LocationsVisible = false;\r\n };\r\n };\r\n\r\n this.LocationsLoaded = true;\r\n };\r\n async LoadTariffs(): Promise {\r\n this.TariffLoaded = false;\r\n let query = await this._instructorsService.GetInstructorsTariffsAsync();\r\n if (query.Data !== undefined && query.Data.length >= 1) {\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.Tariff, query.Data);\r\n this._allTariffs = query.Data;\r\n\r\n if (this.Settings.LessonsTariffsId !== undefined && this.Settings.LessonsTariffsId.length > 0)\r\n this._allTariffs = this._allTariffs.filter((x: Tariff) => this.Settings.LessonsTariffsId.indexOf(x.Id) !== -1)\r\n\r\n /*if (this.Settings.IndividualLessonsTariffsId !== undefined && this.Settings.IndividualLessonsTariffsId.length > 0)\r\n this._allTariffs = this._allTariffs.filter((x: Tariff) => this.Settings.IndividualLessonsTariffsId.indexOf(x.Id) !== -1)*/\r\n };\r\n this.TariffLoaded = true;\r\n };\r\n\r\n get FilteredSkills() {\r\n if (this.Instructor) {\r\n let skills = new Array();\r\n Object.keys(this.Instructor!.Skills).forEach((key, index) => {\r\n let name = Object.values(this.Instructor!.Skills)[index];\r\n let skill = { \"Id\": key, \"Name\": name };\r\n skills.push(skill);\r\n });\r\n return skills;\r\n };\r\n return this.Skills;\r\n };\r\n\r\n get Category(): string {\r\n if (this.Categories.length !== 0) {\r\n let categoryById = this.Categories.find(x => x.Id == parseInt(this.CategoryId));\r\n if (categoryById !== null && categoryById !== undefined) {\r\n return categoryById.Name;\r\n } else {\r\n return '';\r\n };\r\n } else {\r\n return '';\r\n };\r\n };\r\n\r\n get DatesArray(): Array {\r\n let datesArray = [];\r\n let firstDate = this.DateHandler.ParseToDate(this.Dates[0], 'YYYY-MM-DD');\r\n\r\n if (this.Dates.length == 2) {\r\n let lastDate = this.DateHandler.ParseToDate(this.Dates[1], 'YYYY-MM-DD');\r\n\r\n while (firstDate <= lastDate) {\r\n datesArray.push(this.DateHandler.Parse(firstDate).Format('YYYY-MM-DD'));\r\n firstDate.setDate(firstDate.getDate() + 1);\r\n };\r\n } else if (this.Dates.length == 1) {\r\n datesArray.push(this.DateHandler.Parse(firstDate).Format('YYYY-MM-DD'));\r\n };\r\n return datesArray;\r\n };\r\n\r\n get FilterComplete(): boolean {\r\n if (this.SkillsLoaded && this.CategoriesLoaded && this.LocationsLoaded &&\r\n (this.Skill !== '' || this.NoSkills) &&\r\n (this.CategoryId !== '' || this.NoCategories) &&\r\n (this.LocationId !== 0 || this.NoLocations) &&\r\n (this.TariffId !== 0 || this.NoTariffs) &&\r\n this.Dates.length >= 1) {\r\n return true;\r\n };\r\n return false;\r\n };\r\n\r\n StartDatepicker(): void {\r\n this.DatepickerSettings = this.Settings;\r\n this.Datepicker = true;\r\n };\r\n\r\n UpdateData(): void {\r\n this.ResetTariffs();\r\n this.ResetFilterResults();\r\n };\r\n\r\n FormatDate(dateString: string): string {\r\n return this.DateHandler.Parse(dateString, 'YYYY-MM-DD').Format('DD.MM.YYYY');\r\n };\r\n\r\n FormatTime(dateString: string): string {\r\n return this.DateHandler.Parse(dateString, 'HH:mm:SS').Format('HH:mm');\r\n };\r\n\r\n ResetFilterResults(): void {\r\n this.Lessons = [];\r\n this.LessonsLoaded = false;\r\n };\r\n\r\n AddToCart(lesson: InstructorsPersonalLesson, amount: number): void {\r\n let cartItem = new InstructorsPersonalCartItem(lesson, amount, this.Cart);\r\n let result = this.Cart.AddItem(cartItem);\r\n\r\n if (!result.Success) {\r\n this._notificationService.Error(\"Ошибка\", result.ErrorMessage ? result.ErrorMessage : \"Непредвиденная ошибка\");\r\n } else {\r\n var cartItems = this.Cart.SimpleCart();\r\n parent.postMessage({ status: 'addedtocart', data: cartItems }, '*');\r\n };\r\n };\r\n\r\n get LessonsBought(): Array {\r\n let lessonsBought: Array = [];\r\n this.Cart.Items.forEach((element: CartItem) => {\r\n if (element.Type == CartItemTypes.InstructorsPersonalLesson)\r\n lessonsBought.push(element);\r\n });\r\n return lessonsBought;\r\n };\r\n\r\n async GetPersonalLessonsAsync(): Promise>> {\r\n this.LessonsLoaded = false;\r\n this.FilterLoading = true;\r\n let dateFrom = this.DateHandler.Parse(this.Dates[0], 'YYYY-MM-DD').Format('DD.MM.YYYY');\r\n let dateTo = this.Dates.length == 2 ? this.DateHandler.Parse(this.Dates[1], 'YYYY-MM-DD').Format('DD.MM.YYYY') : dateFrom;\r\n\r\n let coachid = this.Settings.CoachId || null; // Взять coachid из настроек в JSON\r\n if (this.Instructor) coachid = this.Instructor.Code; // Переопределить, если выбран коуч в выпадающем списке\r\n\r\n let filter = new PersonalLessonsFilter(\r\n this.SelectedPlace!.Id,\r\n this.Skill,\r\n this.CategoryId,\r\n dateFrom,\r\n dateTo,\r\n coachid,\r\n this.LocationId == 0 ? '' : this.LocationId.toString(),\r\n this.TariffId\r\n );\r\n\r\n let filterResult = await this._instructorsService.GetPersonalLessonsAsync(filter);\r\n\r\n this.FilterLoading = false;\r\n this.LessonsLoaded = true;\r\n if (filterResult.Data !== null) {\r\n this.Lessons = filterResult.Data;\r\n if (this.Settings.LessonsTariffsId !== undefined && this.Settings.LessonsTariffsId.length > 0 && this.Lessons !== undefined)\r\n this.Lessons = this.Lessons.filter(x => this.Settings.LessonsTariffsId.indexOf(x.TariffId) > -1);\r\n };\r\n\r\n return filterResult;\r\n };\r\n\r\n DatesSet(dates: Array): void {\r\n this.Dates = dates;\r\n this.ResetFilterResults();\r\n };\r\n\r\n ResetTariffs(): void {\r\n if (this._allTariffs !== undefined) {\r\n this.Tariffs =\r\n this.CategoryId !== '' ?\r\n this._allTariffs.filter(x =>\r\n this.Settings.PersonalLessonsSkillsTariffs[`${this.Skill}`] != undefined ? this.Settings.PersonalLessonsSkillsTariffs[`${this.Skill}`].indexOf(x.Id) !== -1 : true)\r\n .filter(x => x.OptionId === this.CategoryId).sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n })\r\n :\r\n this._allTariffs.filter(x =>\r\n this.Settings.PersonalLessonsSkillsTariffs[`${this.Skill}`] !== undefined ? this.Settings.PersonalLessonsSkillsTariffs[`${this.Skill}`].indexOf(x.Id) !== -1 : true)\r\n .sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n })\r\n };\r\n\r\n this.TariffId = this.Tariffs.length == 1 ? this.Tariffs[0].TariffCode : 0;\r\n };\r\n};\r\n\r\nexport class WpInstructorsDictionary extends BaseSystemLocalizationDictionary {\r\n Discipline: string = '';\r\n DisciplinesLoading: string = '';\r\n Category: string = '';\r\n CategoriesLoading: string = '';\r\n Program: string = '';\r\n ProgramsLoading: string = '';\r\n DialogBtnShow: string = '';\r\n Location: string = '';\r\n LocationsLoading: string = '';\r\n Instructor: string = \"\";\r\n InstructorsLoading: string = \"\";\r\n};","export enum ReservationItemTypes {\r\n Tariff = \"Tariff\",\r\n Bundle = \"Bundle\",\r\n PersonalLesson = \"PersonalLesson\",\r\n RewritableTariff = \"RewritableTariff\",\r\n GroupLesson = \"GroupLesson\",\r\n BundleLesson = \"BundleLesson\",\r\n MarketBill = \"MarketBill\",\r\n NewClubContract = \"NewClubContract\",\r\n ContractAdditionalService = \"ContractAdditionalService\",\r\n AccountReplenishment = \"AccountReplenishment\",\r\n SyntechParking = \"SyntechParking\",\r\n ContractAdditionalPackage = \"ContractAdditionalPackage\",\r\n}","module.exports = \"\\r\\n\\r\\n {{ Entity.Title }}\\r\\n \\r\\n \\r\\n {{ Entity.Preview }}\\r\\n \\r\\n\\r\\n\";","import { WpEventArgs } from '../Common';\r\nimport SoldClubContract from './sold-club-contract';\r\n\r\nexport default class SoldContractChangedEventArgs extends WpEventArgs {\r\n OldContract: SoldClubContract;\r\n NewContract: SoldClubContract;\r\n\r\n constructor(oldContract: SoldClubContract, newContract: SoldClubContract) {\r\n super();\r\n\r\n this.OldContract = oldContract;\r\n this.NewContract = newContract;\r\n }\r\n}","export default class SiteAddtionalSettings {\r\n AddtionalTerms?: string;\r\n AddtionalTermsRequired?: number;\r\n}","import { WpEventArgs } from '../Common';\r\nimport LoyaltyNotification from './LoyaltyNotification';\r\n\r\nexport default class LoyaltyNotificationAddedEventArgs extends WpEventArgs {\r\n Data: LoyaltyNotification;\r\n\r\n constructor(data: LoyaltyNotification) {\r\n super();\r\n\r\n this.Data = data;\r\n }\r\n}","import * as moment from \"moment\";\r\n\r\nexport default class InstructorsPlace {\r\n Id: number = 0;\r\n Name: string = '';\r\n TimeFrom?: string = '';\r\n TimeTo?: string = '';\r\n}","import { AppSettings } from './../Global/app-settings';\r\n\r\nexport default class SibAppSettings extends AppSettings {\r\n RedirectUri: string = ''\r\n\r\n get SibAuthority(): string {\r\n if (window.location.host.toLowerCase().indexOf('test') == -1 &&\r\n window.location.host.toLowerCase().indexOf('localhost') == -1) {\r\n return 'https://oauth.arena-expert.ru/auth_ui/';\r\n }\r\n else {\r\n return 'https://sks-test.arena-expert.ru:9050/';\r\n }\r\n }\r\n\r\n get SibClientId(): string {\r\n if (window.location.host.toLowerCase().indexOf('test') == -1 &&\r\n window.location.host.toLowerCase().indexOf('localhost') == -1) {\r\n return 'ISD';\r\n }\r\n else {\r\n return 'isd-test';\r\n }\r\n }\r\n\r\n public ParseHashParams(): boolean {\r\n return super.ParseHashParams();\r\n }\r\n}","import { PaymentSystemType } from './payment-system-type';\r\n\r\nexport default class PaymentSystem {\r\n Id: number = 0;\r\n PaymentType: PaymentSystemType = PaymentSystemType.Payu;\r\n CanResendForm: boolean = false;\r\n IsBasePayment: boolean = false;\r\n}","module.exports = \"
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{seance.Name}}, {{sector.Name}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ Terms.GenericOccupied }}\\r\\n {{ Terms.GenericPicked }}\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ Terms.GenericRow }}: {{ TooltipSeat?.LineName }} {{ Terms.GenericSeat }}: {{ TooltipSeat?.PlaceName }}
\\r\\n {{ Terms.GenericPrice }}: \\r\\n {{ $data._formatPrice(TooltipTariff?.Price) }}\\r\\n \\r\\n {{ Terms.GenericFrom}} {{ $data._formatPrice(TooltipTariff?.MinPrice) }} {{ Terms.GenericTo }} {{ $data._formatPrice(TooltipTariff?.MaxPrice) }}\\r\\n
\\r\\n\\r\\n mdi-plus\\r\\n mdi-minus\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n {{ Seats[y-1].find(x => x !== undefined)?.LineName }}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n x.TariffCode == seat.TariffCode)\\\"\\r\\n :Sector=\\\"Sector\\\"\\r\\n :Seance=\\\"Seance\\\"\\r\\n :Cart=\\\"Cart\\\"\\r\\n :key=\\\"seat.PlaceCode\\\"\\r\\n @SeatMouseEnter=\\\"SeatMouseEnter\\\"\\r\\n @SeatMouseLeave=\\\"SeatMouseLeave\\\"\\r\\n @ShowOptions=\\\"ShowTariffOptions\\\"\\r\\n @SetBuying=\\\"SetBuying\\\">\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.ChooseSeatsOption }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ $data._formatPrice(option.Price) }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericClose }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\";","module.exports = \"
\\r\\n\\r\\n \\r\\n mdi-arrow-left\\r\\n \\r\\n\\r\\n Профиль \\r\\n \\r\\n mdi-logout Выход\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Сохранить\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n Вы точно хотите выйти?\\r\\n Все несохранённые изменения будут утеряны.\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n Отмена\\r\\n \\r\\n\\r\\n \\r\\n Да\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\";","module.exports = \"\\r\\n \\r\\n\\r\\n {{ $data._formatDateTimeIsoToRu(Seance.BeginDate) }}\\r\\n\\r\\n {{ Seance.Name }}\\r\\n\\r\\n 0\\\">\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\";","import OrderItemDiscount from './order-item-discount';\r\nimport OrderItemAdditionalInfo from './order-item-additional-info';\r\nimport { OrderItemType } from './order-item-type';\r\n\r\nexport default class OrderItem {\r\n Id: number = 0;\r\n Code: number = 0;\r\n Info: string = '';\r\n ProductId: string = '';\r\n ProductName: string = '';\r\n Price: number = 0;\r\n TotalSum: number = 0;\r\n AdditionalInfo?: any; // todo\r\n Type?: OrderItemType;\r\n BundleId: string = '';\r\n BundleName: string = '';\r\n DiscountsList?: Array;\r\n get Discount(): number {\r\n return this.Price - this.Discount;\r\n }\r\n}","import { injectable } from 'inversify';\r\nimport LoyaltyNotificationAddedEventArgs from './loyalty-notification-added-event-args';\r\nimport { WpEventHandler, WpEvent } from '../Common';\r\nimport { LoyaltyNotification } from '.';\r\nimport ILoyaltyNotificationProvider from './i-loyalty-notification-provider';\r\nimport { LoyaltyNotificationStatus } from './loyalty-notification-status';\r\n\r\nconst _global = (window || global) as any;\r\n\r\n@injectable()\r\nexport default class DefaultLoyaltyNotificationProvider implements ILoyaltyNotificationProvider {\r\n protected _notifications: Array = [];\r\n\r\n protected _notificationAdded: WpEventHandler;\r\n\r\n\r\n get NotificationAdded(): WpEvent {\r\n return this._notificationAdded;\r\n }\r\n\r\n constructor() {\r\n this._notificationAdded = new WpEventHandler();\r\n\r\n try {\r\n this._notifications = wp_app_push_notifications;\r\n } catch {\r\n }\r\n \r\n _global.pushNotificationAdded = ((data: string) => {\r\n try {\r\n let newNotification = JSON.parse(data) as LoyaltyNotification;\r\n\r\n if (newNotification == null) return;\r\n\r\n this._notifications.push(newNotification);\r\n\r\n this._notificationAdded.Send(this, new LoyaltyNotificationAddedEventArgs(newNotification));\r\n } catch (e) {\r\n }\r\n });\r\n }\r\n\r\n GetNotifications() {\r\n let result: Array = [];\r\n\r\n try {\r\n this._notifications = wp_app_push_notifications;\r\n } catch {\r\n }\r\n\r\n this._notifications.forEach(x => {\r\n result.push({\r\n Id: x.Id,\r\n Title: x.Title,\r\n NotificationDate: x.NotificationDate,\r\n Message: x.Message,\r\n Status: x.Status\r\n });\r\n });\r\n\r\n return result;\r\n }\r\n\r\n CheckNotification(id: string) {\r\n let data = this._notifications.find(x => x.Id == id);\r\n if (data == null) return;\r\n\r\n try {\r\n data.Status = LoyaltyNotificationStatus.Checked;\r\n checkPushNotification(id);\r\n }\r\n catch {\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\ninterface checkPushNotificationHandelr {\r\n (id: string): void;\r\n}\r\n\r\ndeclare var checkPushNotification: checkPushNotificationHandelr;\r\ndeclare var wp_app_push_notifications: Array;","export enum OrderStatus {\r\n Reserved = 1,\r\n Locked = 2,\r\n Paid = 3,\r\n Canceled = 4,\r\n Refunded = 5,\r\n Error = 6,\r\n PartialRefund = 7\r\n}","module.exports = \"\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n

{{ OrderItem.Info }}

\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n mdi-trash-can-outline {{ Terms.GenericDecline }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";","import Vue, { VueConstructor } from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { Watch } from 'vue-property-decorator';\r\nimport { BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\nimport { DefaultProps } from 'vue/types/options';\r\n\r\nexport const wpPayConfirmItemProps = Vue.extend({\r\n props: {\r\n Bundles: Array\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-payconfirm-bundle.html\")\r\n})\r\nexport default class WpPayConfirmBundle extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpPayConfirmItemProps, Vue) {\r\n Loading: boolean = false;\r\n\r\n mounted() {\r\n this.TotalSum = 0;\r\n this.TotalPrice = 0;\r\n this.Bundles.forEach((element: any) => {\r\n this.TotalSum += element.TotalSum;\r\n this.TotalPrice += element.Price;\r\n });\r\n }\r\n Remove() {\r\n this.Loading = true;\r\n this.$emit(\"ItemRemove\", this.Bundles[0]);\r\n }\r\n\r\n TotalSum: number = 0;\r\n TotalPrice: number = 0; \r\n\r\n\r\n @Watch('Bundles')\r\n OnBundlesChanged(bundles: Array, oldBundles: Array) {\r\n this.TotalSum = 0;\r\n this.TotalPrice = 0;\r\n bundles.forEach((element: any) => {\r\n this.TotalSum += element.TotalSum;\r\n this.TotalPrice += element.Price;\r\n });\r\n }\r\n\r\n}\r\n\r\nexport class WpPayConfirmBundleDictionary extends BaseSystemLocalizationDictionary {\r\n GenericDecline: string = 'Отказаться';\r\n GenericTotalSum: string = 'Сумма';\r\n Personalization: string = 'Персонализация';\r\n}","import { BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\n\r\nexport default abstract class BaseUILocalizationDictionary extends BaseSystemLocalizationDictionary {\r\n GenericError: string = '';\r\n GenericBack: string = '';\r\n GenericNext: string = '';\r\n GenericChange: string = '';\r\n GenericClose: string = '';\r\n GenericClear: string = '';\r\n GenericCancel: string = '';\r\n GenericOK: string = '';\r\n GenericYes: string = '';\r\n GenericNo: string = '';\r\n GenericLogIn: string = '';\r\n GenericAdd: string = '';\r\n GenericEdit: string = '';\r\n GenericUpdate: string = '';\r\n GenericApply: string = '';\r\n\r\n FormFieldRequired: string = '';\r\n}","import { CartItem, CartItemTypes } from '../Cart';\r\nimport { ActionResult, ErrorTypes } from '../Common';\r\nimport { ReservationItem, ReservationItemTypes } from '../Sale';\r\n\r\n\r\n\r\nexport default class NewContractCartItem extends CartItem {\r\n private _id: number = 0;\r\n private _code: number = 0;\r\n private _date: string = \"\";\r\n private _price: number = 0;\r\n private _type: CartItemTypes = CartItemTypes.NewClubContract;\r\n private _name: string = \"\";\r\n\r\n get Info(): string {\r\n return `${this._name}`; \r\n }\r\n get Type(): CartItemTypes {\r\n return this._type;\r\n }\r\n get Price(): number {\r\n return this._price;\r\n }\r\n get Count(): number {\r\n return 1;\r\n }\r\n public get Dates(): Array {\r\n let result = new Array();\r\n\r\n if (this._date !== undefined) {\r\n result.push(this._date);\r\n }\r\n\r\n return result;\r\n }\r\n public get AdditionalInfo(): any {\r\n return { Id: this._id, Name: this._name, Code: this._code, Price: this._price };\r\n }\r\n get MetricsId(): any {\r\n return this._id;\r\n }\r\n get IsCanIncreaseCount(): boolean {\r\n return false;\r\n }\r\n get IsCanReduceCount(): boolean {\r\n return false;\r\n }\r\n get IsAvailable(): boolean {\r\n return true;\r\n }\r\n\r\n constructor(id: number, date: string, name: string, price: number, code: number) {\r\n super();\r\n this._id = id;\r\n this._code = code;\r\n this._name = name;\r\n this._price = price;\r\n this._date = date;\r\n }\r\n\r\n IncreaseCount(): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"��������� ���������� ���������� ��� ������� ���� �����\");\r\n }\r\n ReduceCount(): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"���������� ����������� ��������� ����������\");\r\n }\r\n IsConflictItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n IsEqualsItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n CombineItem(item: CartItem): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"��������� ���������� ���������� ��� ������� ���� �����\");\r\n }\r\n GetReservationItem(): ReservationItem[] {\r\n return [new ReservationItem(1, ReservationItemTypes.NewClubContract, null, this._date, null, null, null, null, null, null, null,null, this._id)];\r\n }\r\n async RemoveItem(): Promise {\r\n return ActionResult.Success();\r\n }\r\n\r\n}","module.exports = \"\\r\\n \\r\\n\\r\\n {{ Sector.Name }}\\r\\n\\r\\n 0\\\">{{ Terms.GenericRemaining }} {{ FreePlaces }} {{ Terms.SeatsPlural }}\\r\\n {{ Terms.SeatsLoading }}\\r\\n\\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\";","import { SocialNetworkTypes } from './social-network-types';\r\n\r\nexport default class SocialNetworkData {\r\n ExternalId: string = '';\r\n Type: SocialNetworkTypes = SocialNetworkTypes.VK;\r\n AccessToken: string = '';\r\n}","export const InstructorsSymbols = {\r\n InstructorsService: Symbol.for(\"InstructorsService\"),\r\n InstructorsProvider: Symbol.for(\"InstructorsProvider\")\r\n}","import CartItem from './cart-item';\r\nimport { ActionResult, ErrorTypes, WpEventHandler, WpEvent, WpEventArgs } from './../Common';\r\nimport { createGuid } from './../Utility';\r\nimport { IArenaService } from '../Arena';\r\n\r\nexport default class Cart {\r\n private _arenaService: IArenaService;\r\n private _cartChanged: WpEventHandler;\r\n\r\n private _orderId?: number | undefined;\r\n private _sessionId: string;\r\n private _siteId: number;\r\n private _tempId: string;\r\n\r\n private _items: Array;\r\n CartMaxItems: number;\r\n public get OrderId(): number | undefined {\r\n return this._orderId;\r\n }\r\n public set OrderId(value: number | undefined) {\r\n this._orderId = value;\r\n this._cartChanged.Send(this, WpEventArgs.Empty);\r\n }\r\n public get SessionId(): string {\r\n return this._sessionId;\r\n }\r\n public get SiteId(): number {\r\n return this._siteId;\r\n }\r\n public get TempId(): string {\r\n return this._tempId;\r\n }\r\n public get Items(): CartItem[] {\r\n return this._items;\r\n }\r\n public get CartChanged(): WpEvent {\r\n return this._cartChanged;\r\n }\r\n public get LeftCount(): number {\r\n let sum = 0;\r\n this._items.forEach(x => sum = sum + x.Count);\r\n return this.CartMaxItems - sum;\r\n }\r\n public get Sum(): number {\r\n let sum = 0;\r\n this._items.forEach(x => sum += x.Price);\r\n return sum;\r\n }\r\n get Count(): number {\r\n let sum = 0;\r\n this._items.forEach(x => sum = sum + x.Count);\r\n return sum;\r\n }\r\n\r\n constructor(siteId: number, sessionId: string,\r\n arenaService: IArenaService, maxItemsCount: number,\r\n orderId: number | undefined = undefined) {\r\n this._siteId = siteId;\r\n this.CartMaxItems = maxItemsCount;\r\n this._sessionId = sessionId;\r\n this._tempId = createGuid();\r\n this._items = new Array();\r\n this._cartChanged = new WpEventHandler();\r\n this.OrderId = orderId;\r\n this._arenaService = arenaService;\r\n }\r\n\r\n public AddItem(cartItem: CartItem): ActionResult {\r\n if (this._items.length > 0 && this._items.some(x => x.IsConflictItem(cartItem)))\r\n return ActionResult.Failed(ErrorTypes.CartItemsConflict, \"Данная позиция не может быть оформлена вместе с существующими элементами корзины\");\r\n\r\n let countSum: number = 0;\r\n this._items.forEach(a => countSum += a.Count);\r\n\r\n if (countSum + cartItem.Count > this.CartMaxItems)\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Превышено максимальное количество элементов корзины\");\r\n\r\n let isCombined = false;\r\n let combineResult = new ActionResult();\r\n this._items.forEach(item => {\r\n if (item.IsEqualsItem(cartItem)) {\r\n isCombined = true;\r\n combineResult = item.CombineItem(cartItem);\r\n }\r\n });\r\n\r\n if (isCombined)\r\n return combineResult;\r\n\r\n this._items.push(cartItem);\r\n\r\n cartItem.CartItemChanged.Subscribe((sender, e) => {\r\n this._cartChanged.Send(this, WpEventArgs.Empty);\r\n });\r\n\r\n this._cartChanged.Send(this, WpEventArgs.Empty);\r\n\r\n return ActionResult.Success();\r\n }\r\n\r\n public async RemoveItem(cartItemId: string): Promise {\r\n var searchedItem = this._items.find(x => x.TempId == cartItemId);\r\n\r\n if (searchedItem != null) {\r\n let result = await searchedItem.RemoveItem();\r\n\r\n if (!result.Success) return result;\r\n\r\n let index = this._items.indexOf(searchedItem);\r\n this._items.splice(index, 1);\r\n }\r\n\r\n this._cartChanged.Send(this, WpEventArgs.Empty);\r\n\r\n return ActionResult.Success();\r\n }\r\n\r\n public Clear() {\r\n if (this._orderId != null) {\r\n this._arenaService.CancelOrderAsync(this._orderId).then(x => {\r\n if (!x.Success) {\r\n console.error(x.ErrorMessage);\r\n }\r\n });\r\n\r\n this._orderId = undefined;\r\n } else {\r\n this._items.forEach(async (x) => {\r\n await x.RemoveItem();\r\n })\r\n }\r\n\r\n this._items = new Array();\r\n\r\n this._cartChanged.Send(this, WpEventArgs.Empty);\r\n }\r\n\r\n public Reset() {\r\n this._orderId = undefined;\r\n this._items = new Array();\r\n\r\n this._cartChanged.Send(this, WpEventArgs.Empty);\r\n }\r\n\r\n public static get Empty(): Cart {\r\n return new Cart(0, '', {} as IArenaService, 0);\r\n }\r\n\r\n public SimpleCart(): any {\r\n let simpleCart: any = [];\r\n\r\n this._items.forEach((item: CartItem) => simpleCart.push({ name: item.Info, count: item.Count, price: item.Price, date: item.Dates, additionalinfo: item.AdditionalInfo }))\r\n\r\n return simpleCart;\r\n }\r\n}","export default class InstructorsGroupLessonPrice {\r\n public PriceForOne: number = 0;\r\n}","import Vue, { VueConstructor } from 'vue';\r\nimport WpBaseComponent from './../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { ISaleService, SaleSymbols, BaseSystemLocalizationDictionary, MLogger } from 'web-platform-core-ui';\r\nimport { Watch } from 'vue-property-decorator';\r\nimport { DefaultProps } from 'vue/types/options';\r\n\r\nexport const wpOrderTimerProps = Vue.extend({\r\n props: {\r\n OrderId: Number\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-order-timer.html\")\r\n})\r\nexport default class WpOrderTimer extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpOrderTimerProps, Vue) {\r\n private _refreshOrderFunc: any;\r\n private _saleService!: ISaleService;\r\n protected _logger!: MLogger;\r\n\r\n LeftTime: number = -1;\r\n\r\n created(): void {\r\n this._logger = new MLogger();\r\n }\r\n\r\n async mounted() {\r\n this._saleService = await this.GlobalService.Get(SaleSymbols.SaleService);\r\n\r\n if (this.OrderId == 0)\r\n return;\r\n\r\n let leftTimeResult;\r\n try {\r\n leftTimeResult = await this._saleService.LeftTimeAsync(this.OrderId);\r\n } catch (e) {\r\n this._logger.say('Мы попытались получить оставшееся время, но получили ошибку:', 'error');\r\n console.error(e);\r\n return false;\r\n }\r\n\r\n if (leftTimeResult.Success && leftTimeResult.Data != null) {\r\n this.LeftTime = Math.round(leftTimeResult.Data?.asMinutes());\r\n\r\n if (this.LeftTime === 0) {\r\n if (this._refreshOrderFunc != null)\r\n clearInterval(this._refreshOrderFunc);\r\n this.$emit(\"Timeout\");\r\n this.LeftTime = -1;\r\n }\r\n\r\n this.$emit(\"LeftTime\", this.LeftTime);\r\n }\r\n }\r\n\r\n @Watch('OrderId')\r\n async OrderIdChanged() {\r\n if (this.OrderId == 0)\r\n return;\r\n\r\n if (this._saleService == null)\r\n this._saleService = await this.GlobalService.Get(SaleSymbols.SaleService);\r\n\r\n let leftTimeResult = await this._saleService.LeftTimeAsync(this.OrderId);\r\n\r\n if (leftTimeResult.Success && leftTimeResult.Data != null) {\r\n this.LeftTime = Math.round(leftTimeResult.Data?.asMinutes());\r\n this.$emit(\"LeftTime\", this.LeftTime);\r\n }\r\n\r\n let orderTimer = this;\r\n clearInterval(this._refreshOrderFunc);\r\n this._refreshOrderFunc = undefined;\r\n this._refreshOrderFunc = setInterval(async () => {\r\n if (orderTimer.OrderId == undefined || orderTimer.OrderId == 0)\r\n clearInterval(orderTimer._refreshOrderFunc);\r\n\r\n let leftTimeResult = await orderTimer._saleService.LeftTimeAsync(orderTimer.OrderId);\r\n\r\n if (leftTimeResult.Data != undefined) {\r\n orderTimer.LeftTime = Math.round(leftTimeResult.Data?.asMinutes());\r\n orderTimer.$emit(\"LeftTime\", orderTimer.LeftTime);\r\n }\r\n\r\n if (orderTimer.LeftTime === 0) {\r\n clearInterval(orderTimer._refreshOrderFunc);\r\n orderTimer.$emit(\"Timeout\");\r\n orderTimer.LeftTime = -1;\r\n orderTimer.$emit(\"LeftTime\", orderTimer.LeftTime);\r\n }\r\n }, 10000);\r\n }\r\n\r\n beforeDestroy() {\r\n clearInterval(this._refreshOrderFunc);\r\n this._refreshOrderFunc = undefined;\r\n }\r\n}\r\n\r\nexport class WpOrderTimerDictionary extends BaseSystemLocalizationDictionary {\r\n // Nothing to translate yet...\r\n}","import { injectable, inject } from 'inversify';\r\n\r\nimport { IOrderService, Order, OrderServiceSymbols, OrderDetails, OrdersFilter } from './../Order';\r\nimport ILuzhOrderProvider from './i-luzh-order-provider';\r\n\r\nimport { ILocalizationService, LocalizationChangedEventArgs, LocalizationSymbols } from './../Localization';\r\nimport { ActionResult, FiltringResult, ErrorTypes } from './../Common';\r\nimport { ILoyaltyProvider, LoyaltySymbols } from '../Loyalty';\r\n\r\n\r\n@injectable()\r\nexport default class LuzhnikiOrderService implements IOrderService {\r\n private readonly _provider: ILuzhOrderProvider;\r\n private readonly _loyaltyProvider: ILoyaltyProvider;\r\n private readonly _localizationService: ILocalizationService;\r\n\r\n constructor(@inject(OrderServiceSymbols.OrderProvider) provider: ILuzhOrderProvider,\r\n @inject(LoyaltySymbols.LoyaltyProvider) loyaltyProvider: ILoyaltyProvider,\r\n @inject(LocalizationSymbols.LocalizationService) localizationService: ILocalizationService) {\r\n\r\n this._provider = provider;\r\n this._loyaltyProvider = loyaltyProvider\r\n this._localizationService = localizationService;\r\n }\r\n\r\n async GetOrderListAsync(filter: OrdersFilter): Promise>> {\r\n let userLoyalty = await this._loyaltyProvider.GetIsdUserLoyaltyAsync();\r\n\r\n if (!userLoyalty.Success || userLoyalty.Data == null)\r\n return ActionResult.Failed(userLoyalty.ErrorType ?? ErrorTypes.InternalError, userLoyalty.ErrorMessage ?? '');\r\n\r\n return await this._provider.GetOrderListByTNodAsync(userLoyalty.Data.TNodId);\r\n }\r\n async GetOrderAsync(id: number): Promise> {\r\n return await this._provider.GetOrderAsync(id);\r\n }\r\n\r\n private LocalizationChange(sender: any, e: LocalizationChangedEventArgs) {\r\n\r\n }\r\n\r\n async UpdateHeight(height: number): Promise {\r\n await this._provider.UpdateHeight(height);\r\n return ActionResult.Success();\r\n }\r\n\r\n async GetData(): Promise> {\r\n try {\r\n let result = await this._provider.GetData();\r\n if (result.Success) return ActionResult.SuccessData(new UserData(result.Data));\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n }\r\n\r\n async GetBio(activityType: number, dateStart: string, dateEnd: string): Promise {\r\n let result = await this._provider.GetBio(activityType, dateStart, dateEnd);\r\n return ActionResult.SuccessData(result);\r\n }\r\n}\r\n\r\nclass UserData {\r\n Gender!: number;\r\n FullYears!: number;\r\n Height?: number;\r\n\r\n constructor(userdata: any) {\r\n this.Gender = userdata.Gender;\r\n this.FullYears = userdata.FullYears;\r\n this.Height = userdata.Height;\r\n }\r\n}","import { ActionResult, ErrorTypes } from '../Common';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { IdentitySymbols, IContext } from '..';\r\n\r\n\r\nexport default class LuzhnikFeedbackProvider {\r\n private _context: IContext;\r\n constructor(context: IContext) {\r\n this._context = context;\r\n }\r\n\r\n async SendAsync(topic: string, method: string, message: string, email: string | null = null, phone: string | null = null, name: string | null = null): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`\r\n }\r\n });\r\n\r\n let response = await client.create(`/luzhniki/feedback/`,\r\n {\r\n Phone: phone ?? this._context.CurrentIdentity.Phone,\r\n Email: email ?? this._context.CurrentIdentity.Username,\r\n Category: topic,\r\n ContactWay: method,\r\n Message: message,\r\n Name: name\r\n });\r\n\r\n if (response.statusCode != 200)\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n\r\n return ActionResult.Success();\r\n }\r\n}\r\n","import LTSubGroup from './lt-subgroup';\r\n\r\nexport default class LTUpperGroup {\r\n Id: number = 0;\r\n Name: string = '';\r\n ZIndex: number = 0;\r\n\r\n Subgroups: Array = [];\r\n}","export enum ConnectionType {\r\n Tariff = 1,\r\n Arena = 2,\r\n Market = 3,\r\n Orpheo = 5,\r\n ClubISD = 6,\r\n SyntechParking\r\n}\r\n","export enum SiteStatus {\r\n Enabled = 1,\r\n Disabled = 2\r\n}","//import WpProfile from './WpProfile/wp-profile';\r\n//import WpChangePassword from './WpProfile/wp-change-password'\r\n\r\n//import WpNews from './WpNews/wp-news';\r\n//import WpNewsItem, { wpNewsItemProps } from './WpNews/wp-news-item';\r\n//import WpNewsArticle, { wpNewsArticleProps } from './WpNews/wp-news-article';\r\n\r\n//import WpOrders from './WpOrder/wp-orders';\r\n//import WpOrder from './WpOrder/wp-order';\r\n\r\n//import WpIsdLoyalty from './WpLoyalty/WpIsdLoyalty/wp-isd-loyalty';\r\n//import WpIsdLoyaltyRegister from './WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyRegister/wp-isd-loyalty-register';\r\n//import WpIsdLoyaltyEdit from './WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyEdit/wp-isd-loyalty-edit';\r\n\r\n//import WpPhoneConfirm from './WpPhoneConfirm/wp-phone-confirm';\r\n\r\n//import WpMain from './WpMain/wp-main';\r\n//import WpMainNewsItem from './WpMain/WpMainNews/main-news-item';\r\n\r\n//import WpFeedback from './WpFeedback/wp-feedback';\r\n\r\n/* -= WpLoyalty*/\r\nimport { WpIsdLoyaltyRegisterDictionary } from './../../WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyRegister/wp-isd-loyalty-register';\r\nimport { WpIsdLoyaltyChildrenDictionary } from './../../WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyChildren/wp-isd-loyalty-children';\r\n\r\n/* -= WpSale =- */\r\nimport { WpSaleDictionary } from './../../WpSale/wp-sale';\r\n\r\n/* -= WpArena =- */\r\nimport { WpArenaDictionary } from './../../WpSale/WpArena/wp-arena';\r\nimport { WpArenaSeancesDictionary } from './../../WpSale/WpArena/WpArenaSeances/wp-arena-seances';\r\nimport { WpArenaSeanceItemDictionary } from './../../WpSale/WpArena/WpArenaSeances/wp-arena-seance-item';\r\nimport { WpArenaSeatsDictionary } from './../../WpSale/WpArena/WpArenaSeats/wp-arena-seats';\r\nimport { WpArenaSeatItemDictionary } from './../../WpSale/WpArena/WpArenaSeats/wp-arena-seat-item';\r\n//import WpArenaSectors from './WpSale/WpArena/WpArenaSectors/wp-arena-sectors';\r\nimport { WpArenaSectorItemDictionary } from './../../WpSale/WpArena/WpArenaSectors/wp-arena-sector-item';\r\n\r\n/* -= WpCart =- */\r\nimport { WpCartDictionary } from './../../WpSale/WpCart/wp-cart';\r\nimport { WpCartItemDictionary } from './../../WpSale/WpCart/WpCartItem/wp-cart-item';\r\nimport { WpCartBundleDictionary } from './../../WpSale/WpCart/WpCartBundle/wp-cart-bundle';\r\n\r\n/* -= WpComplete =- */\r\nimport { WpCompleteDictionary } from './../../WpSale/WpComplete/wp-complete';\r\n\r\n/* -= WpInstructors =- */\r\nimport { WpInstructorsDictionary } from './../../WpSale/WpInstructors/wp-instructors';\r\nimport { WpInstructorsBundlesDictionary } from './../../WpSale/WpInstructors/wp-instructors-bundles';\r\nimport { WpInstructorsGroupDictionary } from './../../WpSale/WpInstructors/wp-instructors-group';\r\nimport { WpInstructorsDatepickerDictionary } from './../../WpSale/WpInstructors/WpInstructorsDatepicker/wp-instructors-datepicker';\r\nimport { WpInstructorsBundlesLessonsDictionary } from './../../WpSale/WpInstructors/WpInstructorsLessons/wp-instructors-bundles-lessons';\r\nimport { WpInstructorsGroupLessonsDictionary } from './../../WpSale/WpInstructors/WpInstructorsLessons/wp-instructors-group-lessons';\r\nimport { WpInstructorsLessonsDictionary } from './../../WpSale/WpInstructors/WpInstructorsLessons/wp-instructors-lessons';\r\n\r\n/* -= WpMarket =- */\r\nimport { WpMarketRulesDictionary } from './../../WpSale/WpMarket/wp-market-rules';\r\nimport { WpMarketRuleItemDictionary } from './../../WpSale/WpMarket/wp-market-rule-item';\r\n\r\n/* -= WpOrderTimer =- */\r\nimport { WpOrderTimerDictionary } from './../../WpSale/WpOrderTimer/wp-order-timer';\r\n\r\n/* -= WpPayConfirm =- */\r\nimport { WpPayConfirmDictionary } from './../../WpSale/WpPayConfirm/wp-payconfirm';\r\nimport { WpPayConfirmItemDictionary } from './../../WpSale/WpPayConfirm/WpPayConfirmItem/wp-payconfirm-item';\r\nimport { WpPayConfirmBundleDictionary } from './../../WpSale/WpPayConfirm/WpPayConfirmItem/wp-payconfirm-bundle';\r\nimport { WpPayConfirmPromoDictionary } from './../../WpSale/WpPayConfirm/WpPayConfirmPromo/wp-payconfirm-promo';\r\nimport { WpRulesDictionary } from './../../WpSale/WpPayConfirm/WpRules/wp-rules';\r\n\r\n/* -= WpPersonification =- */\r\nimport { WpPersonificationDictionary } from './../../WpSale/WpPersonification/wp-personification';\r\nimport { WpPersonificationBundleDictionary } from './../../WpSale/WpPersonification/WpPersonificationItem/wp-personification-bundle';\r\nimport { WpPersonificationBundleFormDictionary } from './../../WpSale/WpPersonification/WpPersonificationItem/wp-personification-bundle-form';\r\nimport { WpPersonificationItemDictionary } from './../../WpSale/WpPersonification/WpPersonificationItem/wp-personification-item';\r\n\r\n/* -= WpTariffs =- */\r\nimport { WpTariffsDictionary } from './../../WpSale/WpTariffs/wp-tariffs';\r\nimport { WpTariffsRewriteDictionary } from './../../WpSale/WpTariffs/wp-tariffs-rewrite';\r\nimport { WpTariffBundleDictionary } from './../../WpSale/WpTariffs/WpTariffItem/wp-tariff-bundle';\r\nimport { WpTariffItemDictionary } from './../../WpSale/WpTariffs/WpTariffItem/wp-tariff-item';\r\nimport { WpTariffRewriteItemDictionary } from './../../WpSale/WpTariffs/WpTariffItem/wp-tariff-rewrite-item';\r\nimport { WpTariffsDatepickerDictionary } from './../../WpSale/WpTariffs/WpTariffsDatepicker/wp-tariffs-datepicker';\r\n\r\n//import WpLoginPage from './WpLogin/wp-login-page';\r\nimport { WpLoginFormDictionary } from './../../WpLogin/WpLoginForm/wp-login-form';\r\nimport { WpPasswordResetDictionary } from './../../WpLogin/WpPasswordReset/wp-password-reset';\r\nimport { WpRegistrationFormDictionary } from './../../WpLogin/WpRegistrationForm/wp-registration-form';\r\n\r\nimport { WpPhoneConfirmDictionary } from './../../WpPhoneConfirm/wp-phone-confirm';\r\n\r\n//import WpTopBar from './WpTopBar/wp-top-bar';\r\n\r\nimport { LocalizationStaticDictionary } from 'web-platform-core-ui';\r\nimport { WpInstructorsListDictionary } from '../../WpSale/WpInstructors/WpInstructorsList/wp-instructors-list';\r\n\r\n\r\nexport class BaseDictionaryRu {\r\n static InternalError = 'Произошла непредвиденная ошибка';\r\n static AccessDenied = 'Доступ запрещен';\r\n\r\n static GenericYes = 'Да';\r\n static GenericNo = 'Нет';\r\n static GenericBack = 'Назад';\r\n static GenericNext = 'Далее';\r\n static GenericChange = 'Изменить';\r\n static GenericClose = \"Закрыть\";\r\n static GenericError = 'Ошибка';\r\n static GenericPleaseWait = 'Подождите';\r\n static GenericClear = 'Очистить';\r\n static GenericCancel = 'Отмена';\r\n static GenericOK = 'ОК';\r\n static GenericLogIn = 'Войти';\r\n static GenericAdd = 'Добавить';\r\n static GenericEdit = 'Редактировать';\r\n static GenericUpdate = 'Обновить';\r\n static GenericApply = 'Применить';\r\n\r\n static GenericPrice = 'Цена';\r\n static GenericBuy = 'Купить';\r\n static GenericFrom = 'от';\r\n static GenericTo = 'до';\r\n\r\n static FormFieldRequired = 'Обязательное поле';\r\n}\r\n\r\n/* -= WpLoyalty =- */\r\nconst wpIsdLoyaltyRegisterDictionary: WpIsdLoyaltyRegisterDictionary = new WpIsdLoyaltyRegisterDictionary();\r\nwpIsdLoyaltyRegisterDictionary.LastName = 'Фамилия';\r\nwpIsdLoyaltyRegisterDictionary.FirstName = 'Имя';\r\nwpIsdLoyaltyRegisterDictionary.SecondName = 'Отчество';\r\nwpIsdLoyaltyRegisterDictionary.Birthdate = 'Дата рождения';\r\nwpIsdLoyaltyRegisterDictionary.ChooseGender = 'Укажите ваш пол';\r\nwpIsdLoyaltyRegisterDictionary.GenderMale = 'Мужской';\r\nwpIsdLoyaltyRegisterDictionary.GenderFemale = 'Женский';\r\nwpIsdLoyaltyRegisterDictionary.City = 'Город';\r\nwpIsdLoyaltyRegisterDictionary.AcceptRequired = 'Необходимо согласиться';\r\nwpIsdLoyaltyRegisterDictionary.GenericSave = 'Сохранить';\r\nwpIsdLoyaltyRegisterDictionary.AcceptPartOne = 'Я согласен(-на) с';\r\nwpIsdLoyaltyRegisterDictionary.AcceptPartTwo = 'условиями';\r\n\r\nwpIsdLoyaltyRegisterDictionary.GenericFieldRequired = 'Поле нельзя оставить пустым';\r\nwpIsdLoyaltyRegisterDictionary.GenericFormatIncorrect = 'Неверный формат';\r\nwpIsdLoyaltyRegisterDictionary.GenericLettersOnly = 'В поле могут быть только буквы';\r\nwpIsdLoyaltyRegisterDictionary.GenericPickOneOption = 'Выберите один из вариантов';\r\n\r\nconst wpIsdLoyaltyChildrenDictionary: WpIsdLoyaltyChildrenDictionary = new WpIsdLoyaltyChildrenDictionary();\r\nwpIsdLoyaltyChildrenDictionary.GenericChildren = 'Дети';\r\nwpIsdLoyaltyChildrenDictionary.GenericChildData = 'Данные ребёнка';\r\nwpIsdLoyaltyChildrenDictionary.GenericConfirm = 'Вы уверены?';\r\nwpIsdLoyaltyChildrenDictionary.GenderMale = '♂ Мужской';\r\nwpIsdLoyaltyChildrenDictionary.GenderFemale = '♀ Женский';\r\nwpIsdLoyaltyChildrenDictionary.LastName = 'Фамилия';\r\nwpIsdLoyaltyChildrenDictionary.FirstName = 'Имя';\r\nwpIsdLoyaltyChildrenDictionary.SecondName = 'Отчество';\r\n\r\n/* -= WpSale =- */\r\nconst wpSaleDictionary: WpSaleDictionary = new WpSaleDictionary();\r\nwpSaleDictionary.TabService = 'Продажа услуг';\r\nwpSaleDictionary.TabRewrite = 'Пополнение услуг';\r\nwpSaleDictionary.TabPersonalLessons = 'Индивидуальные занятия';\r\nwpSaleDictionary.TabGroupLessons = 'Групповые занятия';\r\nwpSaleDictionary.TabBundlesLessons = 'Многодневные занятия';\r\nwpSaleDictionary.GenericPlaceOrder = 'Оформить';\r\nwpSaleDictionary.GenericPay = 'Оплатить';\r\nwpSaleDictionary.GenericProcessPayment = 'Оплата';\r\nwpSaleDictionary.CartItemNotAvailableError = 'Одна из позиций в корзине уже недоступна';\r\nwpSaleDictionary.CartItemCountError = 'Закончились билеты на одну из позиций в корзине';\r\nwpSaleDictionary.CardHaveTariffWithSoType = 'Билет уже с прокатным договором';\r\nwpSaleDictionary.CardHaveNotUsedTariff = 'На карте есть неизрасходованная услуга';\r\nwpSaleDictionary.LessonNotAvailable = 'Занятие недоступно';\r\nwpSaleDictionary.InvalidEmail = 'Неверный формат email-а';\r\nwpSaleDictionary.DataRequired = 'Необходимо заполнить данные';\r\nwpSaleDictionary.SbpTitle = 'Отсканируйте QR-код с помощью телефона и перейдите по ссылке для оплаты заказа';\r\nwpSaleDictionary.SbpMobileTitle = 'Если приложение банка не открылось перейдите, по ';\r\nwpSaleDictionary.SbpMobileTitleLink = 'ссылке';\r\nwpSaleDictionary.FreeTicketLimitError = 'Вы уже приобретали бесплатный билет';\r\n\r\n/* -= WpArena =- */\r\nconst wpArenaSeancesDictionary: WpArenaSeancesDictionary = new WpArenaSeancesDictionary();\r\nwpArenaSeancesDictionary.NoAvailableSeances = 'Нет доступных мероприятий в продаже';\r\n\r\nconst wpArenaSeanceItemDictionary: WpArenaSeanceItemDictionary = new WpArenaSeanceItemDictionary();\r\nwpArenaSeanceItemDictionary.TicketPrice = 'Цена билетов';\r\nwpArenaSeanceItemDictionary.PricesLoading = 'Загрузка цен…';\r\nwpArenaSeanceItemDictionary.CurrencyIcon = '₽';\r\n\r\nconst wpArenaSeatsDictionary: WpArenaSeatsDictionary = new WpArenaSeatsDictionary();\r\nwpArenaSeatsDictionary.GenericOccupied = 'Занято';\r\nwpArenaSeatsDictionary.GenericPicked = 'Выбрано';\r\nwpArenaSeatsDictionary.ChooseSeatsOption = 'Выберите вариант места';\r\nwpArenaSeatsDictionary.GenericRow = 'Ряд';\r\nwpArenaSeatsDictionary.GenericSeat = 'Место';\r\n\r\nconst wpArenaSeatItemDictionary: WpArenaSeatItemDictionary = new WpArenaSeatItemDictionary();\r\nwpArenaSeatItemDictionary.ErrorCartIsFull = 'Превышено максимальное количество элементов корзины';\r\nwpArenaSeatItemDictionary.ErrorSeatIsOccupied = 'Место уже занято';\r\n\r\nconst wpArenaSectorItemDictionary: WpArenaSectorItemDictionary = new WpArenaSectorItemDictionary();\r\nwpArenaSectorItemDictionary.TicketPrice = 'Цена билетов';\r\nwpArenaSectorItemDictionary.PricesLoading = 'Загрузка цен…';\r\nwpArenaSectorItemDictionary.SeatsLoading = 'Загрузка мест…';\r\nwpArenaSectorItemDictionary.SeatsSingular = 'место';\r\nwpArenaSectorItemDictionary.SeatsPlural = 'мест';\r\nwpArenaSectorItemDictionary.GenericRemaining = 'Осталось';\r\nwpArenaSectorItemDictionary.CurrencyIcon = '₽';\r\n\r\nconst wpArenaDictionary: WpArenaDictionary = new WpArenaDictionary();\r\nwpArenaDictionary.ArenaText = 'Арена';\r\n\r\n/* -= WpCart =- */\r\nconst wpCartDictionary: WpCartDictionary = new WpCartDictionary();\r\nwpCartDictionary.GenericCart = 'Корзина';\r\nwpCartDictionary.GenericClearCart = 'Очистить корзину';\r\nwpCartDictionary.GenericTotal = 'Итого';\r\nwpCartDictionary.GenericCheckout = 'Оплатить';\r\n\r\nconst wpCartItemDictionary: WpCartItemDictionary = new WpCartItemDictionary();\r\nconst wpCartBundleDictionary: WpCartBundleDictionary = new WpCartBundleDictionary();\r\n\r\n/* -= WpComplete =- */\r\nconst wpCompleteDictionary: WpCompleteDictionary = new WpCompleteDictionary();\r\nwpCompleteDictionary.AwaitingResult = 'Ожидание результата платежа';\r\nwpCompleteDictionary.BackToServiceList = 'Вернуться к выбору услуг';\r\nwpCompleteDictionary.ThankYouForPurchase = 'Спасибо за покупку!';\r\nwpCompleteDictionary.ConfirmRefusalToWait = 'Вы действительно хотите не дожидаться результата платежа?';\r\nwpCompleteDictionary.FatalError = 'К сожалению возникли неполадки при оформлении заказа, обратитесь в техническую поддержку.';\r\nwpCompleteDictionary.StartOver = 'Начать заново';\r\nwpCompleteDictionary.YourOrderNo = 'Ваш заказ №';\r\nwpCompleteDictionary.YourOrderStatusOK = 'оформлен! Информация по заказу была отправлена на вашу почту.';\r\nwpCompleteDictionary.YourOrderStatusCanceled = 'отменен.';\r\nwpCompleteDictionary.CardDiscountConditionError = 'В случае отмены по причине ввода карты, не соответствующей условиям предоставления скидки, деньги будут возвращены в течение трёх рабочих дней';\r\nwpCompleteDictionary.OrderInfoLinkTitle = 'Просмотреть информацию по заказу, а также скачать билеты вы можете';\r\nwpCompleteDictionary.OrderInfoLinkText = 'здесь';\r\nwpCompleteDictionary.CardPayment = 'Оплата картой';\r\nwpCompleteDictionary.SbpPayment = 'Оплата через СБП';\r\nwpCompleteDictionary.GenericPay = 'Оплатить';\r\nwpCompleteDictionary.PayOrderTitle = 'Оплатить заказ №';\r\nwpCompleteDictionary.Payu = 'Payu';\r\nwpCompleteDictionary.Yandex = 'Яндекс';\r\nwpCompleteDictionary.Sberbank = 'Сбербанк';\r\nwpCompleteDictionary.RfiBank = 'РФИ банк';\r\nwpCompleteDictionary.RosEuroBank = 'РосЕвроБанк';\r\nwpCompleteDictionary.Gazprombank = 'Газпромбанк';\r\nwpCompleteDictionary.SovkomBank = 'Совкомбанк';\r\nwpCompleteDictionary.Kazkombank = \"Казкомерцбанк\";\r\nwpCompleteDictionary.Test = \"Тестовая\";\r\nwpCompleteDictionary.AlfaBank = 'Альфа-банк';\r\nwpCompleteDictionary.PayOnline = 'Pay онлайн';\r\n\r\n/* -= WpInstructors =- */\r\nconst wpInstructorsDictionary: WpInstructorsDictionary = new WpInstructorsDictionary();\r\nwpInstructorsDictionary.Discipline = 'Дисциплина';\r\nwpInstructorsDictionary.DisciplinesLoading = 'Загрузка дисциплин…';\r\nwpInstructorsDictionary.Category = \"Категория\";\r\nwpInstructorsDictionary.CategoriesLoading = 'Загрузка категорий…';\r\nwpInstructorsDictionary.Program = 'Программа обучения';\r\nwpInstructorsDictionary.ProgramsLoading = 'Загрузка программ обучения…';\r\nwpInstructorsDictionary.DialogBtnShow = 'Показать';\r\nwpInstructorsDictionary.Location = 'Место';\r\nwpInstructorsDictionary.LocationsLoading = 'Загрузка мест…';\r\nwpInstructorsDictionary.Instructor = 'Инструктор';\r\nwpInstructorsDictionary.InstructorsLoading = 'Загрузка инструкторов…';\r\n\r\nconst wpInstructorsListDictionary: WpInstructorsListDictionary = new WpInstructorsListDictionary();\r\nwpInstructorsListDictionary.Instructor = 'Инструктор';\r\nwpInstructorsListDictionary.InstructorsLoading = 'Загрузка инструкторов…';\r\n\r\nconst wpInstructorsBundlesDictionary: WpInstructorsBundlesDictionary = new WpInstructorsBundlesDictionary();\r\nwpInstructorsBundlesDictionary.Discipline = 'Дисциплина';\r\nwpInstructorsBundlesDictionary.DisciplinesLoading = 'Загрузка дисциплин…';\r\nwpInstructorsBundlesDictionary.Category = 'Категория';\r\nwpInstructorsBundlesDictionary.CategoriesLoading = 'Загрузка категорий…';\r\nwpInstructorsBundlesDictionary.Program = 'Программа обучения';\r\nwpInstructorsBundlesDictionary.ProgramsLoading = 'Загрузка программ обучения…';\r\nwpInstructorsBundlesDictionary.DialogBtnShow = 'Показать';\r\nwpInstructorsBundlesDictionary.NoLessonsAvailable = 'Нет доступных занятий';\r\nwpInstructorsBundlesDictionary.Location = 'Место';\r\nwpInstructorsBundlesDictionary.LocationsLoading = 'Загрузка мест…';\r\n\r\nconst wpInstructorsGroupDictionary: WpInstructorsGroupDictionary = new WpInstructorsGroupDictionary();\r\nwpInstructorsGroupDictionary.Discipline = 'Дисциплина';\r\nwpInstructorsGroupDictionary.DisciplinesLoading = 'Загрузка дисциплин…';\r\nwpInstructorsGroupDictionary.Category = 'Категория';\r\nwpInstructorsGroupDictionary.CategoriesLoading = 'Загрузка категорий…';\r\nwpInstructorsGroupDictionary.Program = 'Программа обучения';\r\nwpInstructorsGroupDictionary.ProgramsLoading = 'Загрузка программ обучения…';\r\nwpInstructorsGroupDictionary.DialogBtnShow = 'Показать';\r\nwpInstructorsGroupDictionary.Location = 'Место';\r\nwpInstructorsGroupDictionary.LocationsLoading = 'Загрузка мест…';\r\n\r\nconst wpInstructorsDatepickerDictionary: WpInstructorsDatepickerDictionary = new WpInstructorsDatepickerDictionary();\r\nwpInstructorsDatepickerDictionary.PeriodOfStudy = 'Период обучения';\r\n\r\nconst wpInstructorsBundlesLessonsDictionary: WpInstructorsBundlesLessonsDictionary = new WpInstructorsBundlesLessonsDictionary();\r\nwpInstructorsBundlesLessonsDictionary.Vacant = 'свободных мест';\r\nwpInstructorsBundlesLessonsDictionary.GuestsAmmount = 'Количество гостей';\r\n\r\nconst wpInstructorsGroupLessonsDictionary: WpInstructorsGroupLessonsDictionary = new WpInstructorsGroupLessonsDictionary();\r\nwpInstructorsGroupLessonsDictionary.Vacant = 'свободных мест';\r\nwpInstructorsGroupLessonsDictionary.GuestsAmmount = 'Количество гостей';\r\nwpInstructorsGroupLessonsDictionary.NoAvailableLessons = 'Нет доступных занятий';\r\n\r\nconst wpInstructorsLessonsDictionary: WpInstructorsLessonsDictionary = new WpInstructorsLessonsDictionary();\r\nwpInstructorsLessonsDictionary.GuestsAmmount = 'Количество гостей';\r\nwpInstructorsLessonsDictionary.ShorthandPeople = 'чел.';\r\nwpInstructorsLessonsDictionary.NoAvailableLessons = 'Нет доступных занятий';\r\n\r\n/* -= WpMarket =- */\r\nconst wpMarketRulesDictionary: WpMarketRulesDictionary = new WpMarketRulesDictionary();\r\nwpMarketRulesDictionary.NoServicesAvailableOnThisDate = 'Нет доступных услуг на эту дату';\r\nwpMarketRulesDictionary.DataRequired = 'Необходимо заполнить данные';\r\n\r\nconst wpMarketRuleItemDictionary: WpMarketRuleItemDictionary = new WpMarketRuleItemDictionary();\r\nwpMarketRuleItemDictionary.CartIsFull = 'Максимальное количество элементов в корзине';\r\nwpMarketRuleItemDictionary.ToCart = 'В корзину';\r\n\r\n/* -= WpOrderTimer =- */\r\nconst wpOrderTimerDictionary: WpOrderTimerDictionary = new WpOrderTimerDictionary();\r\n\r\n/* -= WpPayConfirm =- */\r\nconst wpPayConfirmDictionary: WpPayConfirmDictionary = new WpPayConfirmDictionary();\r\nwpPayConfirmDictionary.UsedPromoCode = 'Применен промокод';\r\nwpPayConfirmDictionary.DataRequired = 'Необходимо заполнить данные';\r\nwpPayConfirmDictionary.PlacingOrder = 'Оформление заказа';\r\nwpPayConfirmDictionary.ToGetDeals = 'Чтобы накопить баллы и получить скидку необходимо';\r\nwpPayConfirmDictionary.YouAreMemberOfLoyaltyProgram = 'Вы являетесь участником программы лояльности';\r\nwpPayConfirmDictionary.LabelEmail = 'Email';\r\nwpPayConfirmDictionary.LabelPhone = 'Телефон';\r\nwpPayConfirmDictionary.LabelPromocode = 'Промокод';\r\nwpPayConfirmDictionary.EnterEmail = 'Введите e-mail';\r\nwpPayConfirmDictionary.EnterPhone = 'Введите телефон';\r\nwpPayConfirmDictionary.ChooseDiscount = 'Выберите скидку';\r\nwpPayConfirmDictionary.CodeIncorrect = 'Неверный код';\r\nwpPayConfirmDictionary.GenericDiscount = 'Скидка';\r\nwpPayConfirmDictionary.GenericTotal = 'Итого';\r\nwpPayConfirmDictionary.GenericPay = 'Оплатить';\r\nwpPayConfirmDictionary.GenericByPressingPay = 'Нажимая \"Оплатить\", Вы соглашаетесь с';\r\nwpPayConfirmDictionary.GenericToRules = 'условиями';\r\nwpPayConfirmDictionary.HowManyPointsToSpend = 'Сколько баллов вы хотите списать?';\r\nwpPayConfirmDictionary.NoDiscount = 'Без скидки';\r\nwpPayConfirmDictionary.GenericPurchaseComment = 'Комментарий к заказу';\r\nwpPayConfirmDictionary.ChoosePayment = 'Выберите способ оплаты';\r\nwpPayConfirmDictionary.CardPayment = 'Оплата картой';\r\nwpPayConfirmDictionary.SbpPayment = 'Оплата через СБП';\r\nwpPayConfirmDictionary.NoPointsToSpend = 'У вас нет баллов, которые можно использовать в заказе';\r\nwpPayConfirmDictionary.Payu = 'Payu';\r\nwpPayConfirmDictionary.Yandex = 'Яндекс';\r\nwpPayConfirmDictionary.Sberbank = 'Сбербанк';\r\nwpPayConfirmDictionary.RfiBank = 'РФИ банк';\r\nwpPayConfirmDictionary.RosEuroBank = 'РосЕвроБанк';\r\nwpPayConfirmDictionary.Gazprombank = 'Газпромбанк';\r\nwpPayConfirmDictionary.SovkomBank = 'Совкомбанк';\r\nwpPayConfirmDictionary.Kazkombank = \"Казкомерцбанк\";\r\nwpPayConfirmDictionary.Test = \"Тестовая\";\r\nwpPayConfirmDictionary.AlfaBank = 'Альфа-банк';\r\nwpPayConfirmDictionary.PayOnline = 'Pay онлайн';\r\n\r\nconst wpPayConfirmItemDictionary: WpPayConfirmItemDictionary = new WpPayConfirmItemDictionary();\r\nwpPayConfirmItemDictionary.GenericDecline = 'Отказаться';\r\nwpPayConfirmItemDictionary.GenericTotalSum = 'Сумма';\r\n\r\nconst wpPayConfirmBundleDictionary: WpPayConfirmBundleDictionary = new WpPayConfirmBundleDictionary();\r\nwpPayConfirmBundleDictionary.GenericDecline = 'Отказаться';\r\nwpPayConfirmBundleDictionary.GenericTotalSum = 'Сумма';\r\nwpPayConfirmBundleDictionary.Personalization = 'Персонализация';\r\n\r\nconst wpPayConfirmPromoDictionary: WpPayConfirmPromoDictionary = new WpPayConfirmPromoDictionary();\r\nwpPayConfirmPromoDictionary.CallToAction = 'Воспользуйтесь промокодом!';\r\nwpPayConfirmPromoDictionary.GenericSuccess = 'Вы применили промокод «ABC123»!';\r\n\r\nconst wpRulesDictionary: WpRulesDictionary = new WpRulesDictionary();\r\nwpRulesDictionary.GenericTerms = 'Условия';\r\nwpRulesDictionary.GenericTermsISDS = 'Условия ISDS';\r\nwpRulesDictionary.GenericIAgree = 'Подтверждаю и ';\r\nwpRulesDictionary.GenericPay = 'оплатить';\r\n\r\n/* -= WpPersonification =- */\r\nconst wpPersonificationDictionary: WpPersonificationDictionary = new WpPersonificationDictionary();\r\nwpPersonificationDictionary.PersonSaleFirstName = 'клиента';\r\nwpPersonificationDictionary.PersonSaleLastName = 'Нового';\r\nwpPersonificationDictionary.GenericTotalSum = 'Итого';\r\nwpPersonificationDictionary.GenericTotalSumDiscounted = 'Итого со скидкой';\r\n\r\nconst wpPersonificationBundleDictionary: WpPersonificationBundleDictionary = new WpPersonificationBundleDictionary();\r\nwpPersonificationBundleDictionary.GenericDecline = 'Отказаться';\r\nwpPersonificationBundleDictionary.GenericTotalSum = 'Сумма';\r\n\r\nconst wpPersonificationBundleFormDictionary: WpPersonificationBundleFormDictionary = new WpPersonificationBundleFormDictionary();\r\nwpPersonificationBundleFormDictionary.LabelFirstName = 'Имя';\r\nwpPersonificationBundleFormDictionary.LabelSecondName = 'Отчество';\r\nwpPersonificationBundleFormDictionary.LabelLastName = 'Фамилия';\r\nwpPersonificationBundleFormDictionary.FieldRequired = 'Необходимо заполнить';\r\nwpPersonificationBundleFormDictionary.UnacceptableCharacters = 'Введены недопустимые символы';\r\nwpPersonificationBundleFormDictionary.PersonifyOn = 'Персонифицировать на:';\r\n\r\nconst wpPersonificationItemDictionary: WpPersonificationItemDictionary = new WpPersonificationItemDictionary();\r\nwpPersonificationItemDictionary.LabelFirstName = 'Имя';\r\nwpPersonificationItemDictionary.LabelSecondName = 'Отчество';\r\nwpPersonificationItemDictionary.LabelLastName = 'Фамилия';\r\nwpPersonificationItemDictionary.FieldRequired = 'Необходимо заполнить';\r\nwpPersonificationItemDictionary.UnacceptableCharacters = 'Введены недопустимые символы';\r\nwpPersonificationItemDictionary.PersonifyOn = 'Персонифицировать на:';\r\nwpPersonificationItemDictionary.GenericDecline = 'Отказаться';\r\nwpPersonificationItemDictionary.GenericTotalSum = 'Сумма';\r\n\r\n/* -= WpTariffs =- */\r\nconst wpTariffsDictionary: WpTariffsDictionary = new WpTariffsDictionary();\r\nwpTariffsDictionary.NoAvailableLessonsForThisDate = 'Нет доступных услуг на эту дату';\r\n\r\nconst wpTariffsRewriteDictionary: WpTariffsRewriteDictionary = new WpTariffsRewriteDictionary();\r\nwpTariffsRewriteDictionary.CardRegisteredOn = 'Карта оформлена на';\r\nwpTariffsRewriteDictionary.NoAvailableServicesForThisCard = \"Нет доступных услуг для данной карты\";\r\nwpTariffsRewriteDictionary.UnacceptableCharacters = 'Номер карты должен содержать A-F и цифры';\r\nwpTariffsRewriteDictionary.GenericCheck = 'Проверить';\r\nwpTariffsRewriteDictionary.LabelCardNo = 'Номер карты';\r\nwpTariffsRewriteDictionary.InstructionEnterCardNumber = 'Для пополнения услуг, введите номер карты:';\r\nwpTariffsRewriteDictionary.InstructionCharacters = 'Номер карты представляет из себя 16 букв-цифр и находится на самой карте.';\r\nwpTariffsRewriteDictionary.CardNotFound = 'Карта не найдена';\r\nwpTariffsRewriteDictionary.CardExpired = 'Период действия карты истек';\r\nwpTariffsRewriteDictionary.CardInProcess = 'Данная карта уже участвует в другом заказе';\r\nwpTariffsRewriteDictionary.CardIsAlredyInCart = 'За один раз можно дозаписать только одну услугу на одну карту';\r\nwpTariffsRewriteDictionary.CardMinimum8 = \"Минимальная длина номера карты - 8 символов\";\r\n\r\n\r\nconst wpTariffBundleDictionary: WpTariffBundleDictionary = new WpTariffBundleDictionary();\r\nwpTariffBundleDictionary.GenericItemsLeft = 'осталось';\r\nwpTariffBundleDictionary.GenericItemsOf = 'из';\r\nwpTariffBundleDictionary.GenericToCart = 'В корзину';\r\nwpTariffBundleDictionary.CartIsFull = 'Максимальное количество элементов в корзине';\r\nwpTariffBundleDictionary.NoMoreTickets = 'Закончились билеты';\r\nwpTariffBundleDictionary.CustomService = 'Абонемент на 1 день для проезда и провоза велосипеда на подъемнике Олимпия (однократно) и Волчья Скала (многократно).';\r\n\r\nconst wpTariffItemDictionary: WpTariffItemDictionary = new WpTariffItemDictionary();\r\nwpTariffItemDictionary.GenericItemsLeft = 'осталось';\r\nwpTariffItemDictionary.GenericItemsOf = 'из';\r\nwpTariffItemDictionary.GenericToCart = 'В корзину';\r\nwpTariffItemDictionary.CartIsFull = 'Максимальное количество элементов в корзине';\r\nwpTariffItemDictionary.NoMoreTickets = 'Закончились билеты';\r\nwpTariffItemDictionary.TariffUnavailableForThisDate = 'Тариф недоступен на эту дату';\r\n\r\nconst wpTariffRewriteItemDictionary: WpTariffRewriteItemDictionary = new WpTariffRewriteItemDictionary();\r\nwpTariffRewriteItemDictionary.GenericToCart = 'В корзину';\r\nwpTariffRewriteItemDictionary.TariffUnavailableForThisDate = 'Тариф недоступен на эту дату';\r\n\r\nconst wpTariffsDatepickerDictionary: WpTariffsDatepickerDictionary = new WpTariffsDatepickerDictionary();\r\nwpTariffsDatepickerDictionary.TextBoxLabel = 'Выберите дату';\r\nwpTariffsDatepickerDictionary.DialogBtnClean = 'Очистить';\r\nwpTariffsDatepickerDictionary.DialogBtnCancel = 'Отмена';\r\nwpTariffsDatepickerDictionary.DialogBtnOk = 'OK';\r\n\r\n/* -= WpLogin =- */\r\nconst wpLoginFormDictionary: WpLoginFormDictionary = new WpLoginFormDictionary();\r\nwpLoginFormDictionary.FieldRequiredMessage = 'Поле обязательно к заполнению';\r\nwpLoginFormDictionary.UserNameLblText = 'Email или телефон';\r\nwpLoginFormDictionary.PasswordLblText = 'Пароль';\r\nwpLoginFormDictionary.RememberMeLblText = 'Запомнить меня';\r\nwpLoginFormDictionary.SignBtnText = 'Войти';\r\nwpLoginFormDictionary.ForgotPasswordLink = 'Забыли пароль?';\r\nwpLoginFormDictionary.RegistrationLink = 'Регистрация';\r\nwpLoginFormDictionary.InvalidUserNameOrPassword = 'Неверный логин или пароль';\r\n\r\nconst wpRegistrationFormDictionary: WpRegistrationFormDictionary = new WpRegistrationFormDictionary();\r\nwpRegistrationFormDictionary.SuccessRegistrationMessage = 'Успешная регистрация';\r\nwpRegistrationFormDictionary.EmailRequiredMessage = 'Введите e-mail';\r\nwpRegistrationFormDictionary.FieldRequiredMessage = 'Поле обязательно к заполнению';\r\nwpRegistrationFormDictionary.PasswordLengthError = 'Должно быть длинее 6 символов';\r\nwpRegistrationFormDictionary.PasswordNotAvailableCharacters = 'Доступные символы для пароля: цифры, кириллица, латинские буквы, (пробел) ! \" № # $ % & \\'() * + , - . / : ; + = ?@[\\] ^ _` { | } ~ <>';\r\nwpRegistrationFormDictionary.ComparePasswordError = 'Пароли не совпадают';\r\nwpRegistrationFormDictionary.RegistrationTitle = 'Регистрация';\r\nwpRegistrationFormDictionary.EmailLblText = 'Введите email';\r\nwpRegistrationFormDictionary.PasswordLblText = 'Введите пароль';\r\nwpRegistrationFormDictionary.RepeatPasswordLblText = 'Повторите пароль';\r\nwpRegistrationFormDictionary.AgreementError = 'Необходимо согласиться';\r\nwpRegistrationFormDictionary.BeforeAgreementLinkText = 'Я согласен(-на) с';\r\nwpRegistrationFormDictionary.AgreementLink = 'условиями';\r\nwpRegistrationFormDictionary.AfterAgreementLinkText = 'обработки персональных данных';\r\nwpRegistrationFormDictionary.RegistrationBtnText = 'Зарегистрироваться';\r\nwpRegistrationFormDictionary.EmailExistError = 'Такой email уже зарегистрирован';\r\n\r\nconst wpPasswordResetDictionary: WpPasswordResetDictionary = new WpPasswordResetDictionary();\r\nwpPasswordResetDictionary.SuccessPasswordChangedMessage = 'Пароль изменен';\r\nwpPasswordResetDictionary.NewPasswordSendedMessage = 'Новый пароль отправлен на почту'\r\nwpPasswordResetDictionary.EmailRequiredMessage = 'Введите e-mail';\r\nwpPasswordResetDictionary.FieldRequiredMessage = 'Поле обязательно к заполнению';\r\nwpPasswordResetDictionary.PasswordLengthError = 'Должно быть длинее 6 символов';\r\nwpPasswordResetDictionary.PasswordNotAvailableCharacters = 'Доступные символы для пароля: цифры, кириллица, латинские буквы, (пробел) ! \" № # $ % & \\'() * + , - . / : ; + = ?@[\\] ^ _` { | } ~ <>';\r\nwpPasswordResetDictionary.ComparePasswordError = 'Пароли не совпадают';\r\nwpPasswordResetDictionary.ResetPasswordTitle = 'Восстановление пароля';\r\nwpPasswordResetDictionary.EmailLblText = 'Введите email';\r\nwpPasswordResetDictionary.NewPasswordLblText = 'Введите новый пароль';\r\nwpPasswordResetDictionary.RepeatPasswordLblText = 'Повторите пароль';\r\nwpPasswordResetDictionary.ResetBtnText = 'Восстановить';\r\nwpPasswordResetDictionary.ChangeBtnText = 'сменить';\r\n\r\nconst wpPhoneConfirmDictionary: WpPhoneConfirmDictionary = new WpPhoneConfirmDictionary();\r\nwpPhoneConfirmDictionary.TryCountError = 'Слишком много попыток. Попробуйте после';\r\nwpPhoneConfirmDictionary.CodeRequiredError = 'Введите код';\r\nwpPhoneConfirmDictionary.PhoneRequiredError = 'Заполните номер до конца';\r\nwpPhoneConfirmDictionary.PhoneLblText = 'Введите номер телефона';\r\nwpPhoneConfirmDictionary.SendSMSBtnText = 'Выслать SMS';\r\nwpPhoneConfirmDictionary.CodeSendedMessage = 'Код выслан на номер';\r\nwpPhoneConfirmDictionary.AnotherPhoneLink = 'другой номер';\r\nwpPhoneConfirmDictionary.CodeLblText = 'Введите код';\r\nwpPhoneConfirmDictionary.SendAgainLink = 'Отправить повторно';\r\nwpPhoneConfirmDictionary.TimeoutResendMessage = 'Повторно вы сможете запросить код через';\r\nwpPhoneConfirmDictionary.TimeoutSecondsMessage = 'сек.';\r\nwpPhoneConfirmDictionary.ConfirmCodeBtnText = 'Подтвердить';\r\nwpPhoneConfirmDictionary.SomeOneElsePhoneError = 'Данный телефон зарегистрирован на другого пользователя';\r\n\r\nconst wpRuLocalizationComponentsDictionary: Array = [\r\n // Friendly reminder:\r\n // Ключ должен совпадать с наименованием компонента в разметке\r\n // Ключ = Symbol.for(ключ)\r\n\r\n /* -= WpLoyalty =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-isd-loyalty-register'), wpIsdLoyaltyRegisterDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-isd-loyalty-children'), wpIsdLoyaltyChildrenDictionary),\r\n\r\n /* -= WpSale =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-sale'), wpSaleDictionary),\r\n\r\n /* -= WpArena =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-arena'), wpArenaDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-arena-seances'), wpArenaSeancesDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-arena-seance-item'), wpArenaSeanceItemDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-arena-seats'), wpArenaSeatsDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-arena-seat-item'), wpArenaSeatItemDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-arena-sector-item'), wpArenaSectorItemDictionary),\r\n\r\n /* -= WpCart =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-cart'), wpCartDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-cart-item'), wpCartItemDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-cart-bundle'), wpCartBundleDictionary),\r\n\r\n /* -= WpComplete =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-complete'), wpCompleteDictionary),\r\n\r\n /* -= WpInstructors =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors'), wpInstructorsDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors-bundles'), wpInstructorsBundlesDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors-group'), wpInstructorsGroupDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors-datepicker'), wpInstructorsDatepickerDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors-bundles-lessons'), wpInstructorsBundlesLessonsDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors-group-lessons'), wpInstructorsGroupLessonsDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors-lessons'), wpInstructorsLessonsDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors-list'), wpInstructorsListDictionary),\r\n\r\n /* -= WpMarket =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-market-rules'), wpMarketRulesDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-market-rule-item'), wpMarketRuleItemDictionary),\r\n\r\n /* -= WpOrderTimer =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-order-timer'), wpOrderTimerDictionary),\r\n\r\n /* -= WpPayConfirm =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-payconfirm'), wpPayConfirmDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-payconfirm-item'), wpPayConfirmItemDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-payconfirm-bundle'), wpPayConfirmBundleDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-payconfirm-promo'), wpPayConfirmPromoDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-rules'), wpRulesDictionary),\r\n\r\n /* -= WpPersonification =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-personification'), wpPersonificationDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-personification-bundle'), wpPersonificationBundleDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-personification-bundle-form'), wpPersonificationBundleFormDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-personification-item'), wpPersonificationItemDictionary),\r\n\r\n /* -= WpTariffs =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-tariffs'), wpTariffsDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-tariffs-rewrite'), wpTariffsRewriteDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-tariff-bundle'), wpTariffBundleDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-tariff-item'), wpTariffItemDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-tariff-rewrite-item'), wpTariffRewriteItemDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-tariffs-datepicker'), wpTariffsDatepickerDictionary),\r\n\r\n /* -= WpLogin =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-login-form'), wpLoginFormDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-registration-form'), wpRegistrationFormDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-password-reset'), wpPasswordResetDictionary),\r\n\r\n new LocalizationStaticDictionary(Symbol.for('wp-phone-confirm'), wpPhoneConfirmDictionary),\r\n];\r\n\r\nexport default wpRuLocalizationComponentsDictionary;","//import WpProfile from './WpProfile/wp-profile';\r\n//import WpChangePassword from './WpProfile/wp-change-password'\r\n\r\n//import WpNews from './WpNews/wp-news';\r\n//import WpNewsItem, { wpNewsItemProps } from './WpNews/wp-news-item';\r\n//import WpNewsArticle, { wpNewsArticleProps } from './WpNews/wp-news-article';\r\n\r\n//import WpOrders from './WpOrder/wp-orders';\r\n//import WpOrder from './WpOrder/wp-order';\r\n\r\n//import WpIsdLoyalty from './WpLoyalty/WpIsdLoyalty/wp-isd-loyalty';\r\n//import WpIsdLoyaltyRegister from './WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyRegister/wp-isd-loyalty-register';\r\n//import WpIsdLoyaltyEdit from './WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyEdit/wp-isd-loyalty-edit';\r\n\r\n//import WpPhoneConfirm from './WpPhoneConfirm/wp-phone-confirm';\r\n\r\n//import WpMain from './WpMain/wp-main';\r\n//import WpMainNewsItem from './WpMain/WpMainNews/main-news-item';\r\n\r\n//import WpFeedback from './WpFeedback/wp-feedback';\r\n\r\n/* -= WpLoyalty*/\r\nimport { WpIsdLoyaltyRegisterDictionary } from './../../WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyRegister/wp-isd-loyalty-register';\r\nimport { WpIsdLoyaltyChildrenDictionary } from './../../WpLoyalty/WpIsdLoyalty/WpIsdLoyaltyChildren/wp-isd-loyalty-children';\r\n\r\n/* -= WpSale =- */\r\nimport { WpSaleDictionary } from './../../WpSale/wp-sale';\r\n\r\n/* -= WpArena =- */\r\nimport { WpArenaDictionary } from './../../WpSale/WpArena/wp-arena';\r\nimport { WpArenaSeancesDictionary } from './../../WpSale/WpArena/WpArenaSeances/wp-arena-seances';\r\nimport { WpArenaSeanceItemDictionary } from './../../WpSale/WpArena/WpArenaSeances/wp-arena-seance-item';\r\nimport { WpArenaSeatsDictionary } from './../../WpSale/WpArena/WpArenaSeats/wp-arena-seats';\r\nimport { WpArenaSeatItemDictionary } from './../../WpSale/WpArena/WpArenaSeats/wp-arena-seat-item';\r\n//import WpArenaSectors from './WpSale/WpArena/WpArenaSectors/wp-arena-sectors';\r\nimport { WpArenaSectorItemDictionary } from './../../WpSale/WpArena/WpArenaSectors/wp-arena-sector-item';\r\n\r\n/* -= WpCart =- */\r\nimport { WpCartDictionary } from './../../WpSale/WpCart/wp-cart';\r\nimport { WpCartItemDictionary } from './../../WpSale/WpCart/WpCartItem/wp-cart-item';\r\nimport { WpCartBundleDictionary } from './../../WpSale/WpCart/WpCartBundle/wp-cart-bundle';\r\n\r\n/* -= WpComplete =- */\r\nimport { WpCompleteDictionary } from './../../WpSale/WpComplete/wp-complete';\r\n\r\n/* -= WpInstructors =- */\r\nimport { WpInstructorsDictionary } from './../../WpSale/WpInstructors/wp-instructors';\r\nimport { WpInstructorsBundlesDictionary } from './../../WpSale/WpInstructors/wp-instructors-bundles';\r\nimport { WpInstructorsGroupDictionary } from './../../WpSale/WpInstructors/wp-instructors-group';\r\nimport { WpInstructorsDatepickerDictionary } from './../../WpSale/WpInstructors/WpInstructorsDatepicker/wp-instructors-datepicker';\r\nimport { WpInstructorsBundlesLessonsDictionary } from './../../WpSale/WpInstructors/WpInstructorsLessons/wp-instructors-bundles-lessons';\r\nimport { WpInstructorsGroupLessonsDictionary } from './../../WpSale/WpInstructors/WpInstructorsLessons/wp-instructors-group-lessons';\r\nimport { WpInstructorsLessonsDictionary } from './../../WpSale/WpInstructors/WpInstructorsLessons/wp-instructors-lessons';\r\n\r\n/* -= WpMarket =- */\r\nimport { WpMarketRulesDictionary } from './../../WpSale/WpMarket/wp-market-rules';\r\nimport { WpMarketRuleItemDictionary } from './../../WpSale/WpMarket/wp-market-rule-item';\r\n\r\n/* -= WpOrderTimer =- */\r\nimport { WpOrderTimerDictionary } from './../../WpSale/WpOrderTimer/wp-order-timer';\r\n\r\n/* -= WpPayConfirm =- */\r\nimport { WpPayConfirmDictionary } from './../../WpSale/WpPayConfirm/wp-payconfirm';\r\nimport { WpPayConfirmItemDictionary } from './../../WpSale/WpPayConfirm/WpPayConfirmItem/wp-payconfirm-item';\r\nimport { WpPayConfirmBundleDictionary } from './../../WpSale/WpPayConfirm/WpPayConfirmItem/wp-payconfirm-bundle';\r\nimport { WpPayConfirmPromoDictionary } from './../../WpSale/WpPayConfirm/WpPayConfirmPromo/wp-payconfirm-promo';\r\nimport { WpRulesDictionary } from './../../WpSale/WpPayConfirm/WpRules/wp-rules';\r\n\r\n/* -= WpPersonification =- */\r\nimport { WpPersonificationDictionary } from './../../WpSale/WpPersonification/wp-personification';\r\nimport { WpPersonificationBundleDictionary } from './../../WpSale/WpPersonification/WpPersonificationItem/wp-personification-bundle';\r\nimport { WpPersonificationBundleFormDictionary } from './../../WpSale/WpPersonification/WpPersonificationItem/wp-personification-bundle-form';\r\nimport { WpPersonificationItemDictionary } from './../../WpSale/WpPersonification/WpPersonificationItem/wp-personification-item';\r\n\r\n/* -= WpTariffs =- */\r\nimport { WpTariffsDictionary } from './../../WpSale/WpTariffs/wp-tariffs';\r\nimport { WpTariffsRewriteDictionary } from './../../WpSale/WpTariffs/wp-tariffs-rewrite';\r\nimport { WpTariffBundleDictionary } from './../../WpSale/WpTariffs/WpTariffItem/wp-tariff-bundle';\r\nimport { WpTariffItemDictionary } from './../../WpSale/WpTariffs/WpTariffItem/wp-tariff-item';\r\nimport { WpTariffRewriteItemDictionary } from './../../WpSale/WpTariffs/WpTariffItem/wp-tariff-rewrite-item';\r\nimport { WpTariffsDatepickerDictionary } from './../../WpSale/WpTariffs/WpTariffsDatepicker/wp-tariffs-datepicker';\r\n\r\n//import WpLoginPage from './WpLogin/wp-login-page';\r\nimport { WpLoginFormDictionary } from './../../WpLogin/WpLoginForm/wp-login-form';\r\nimport { WpPasswordResetDictionary } from './../../WpLogin/WpPasswordReset/wp-password-reset';\r\nimport { WpRegistrationFormDictionary } from './../../WpLogin/WpRegistrationForm/wp-registration-form';\r\n\r\nimport { WpPhoneConfirmDictionary } from './../../WpPhoneConfirm/wp-phone-confirm';\r\n\r\n//import WpTopBar from './WpTopBar/wp-top-bar';\r\nimport { LocalizationStaticDictionary } from 'web-platform-core-ui';\r\nimport { WpInstructorsListDictionary } from '../../WpSale/WpInstructors/WpInstructorsList/wp-instructors-list';\r\n\r\nexport class BaseDictionaryEn {\r\n static InternalError = 'Unexpected error has occurred';\r\n static AccessDenied = 'Access Denied';\r\n\r\n static GenericYes = 'Yes';\r\n static GenericNo = 'No';\r\n static GenericBack = 'Back';\r\n static GenericNext = 'Next';\r\n static GenericChange = 'Change';\r\n static GenericClose = \"Close\";\r\n static GenericError = 'Error';\r\n static GenericPleaseWait = 'Please wait';\r\n static GenericClear = 'Clear';\r\n static GenericCancel = 'Cancel';\r\n static GenericOK = 'OK';\r\n static GenericLogIn = 'Login';\r\n static GenericAdd = 'Add';\r\n static GenericEdit = 'Edit';\r\n static GenericUpdate = 'Update';\r\n static GenericApply = 'Apply';\r\n\r\n static GenericPrice = 'Price';\r\n static GenericBuy = 'Purchase';\r\n static GenericFrom = 'from';\r\n static GenericTo = 'to';\r\n\r\n static FormFieldRequired = 'Field is required';\r\n}\r\n\r\n/* -= WpLoyalty =- */\r\nconst wpIsdLoyaltyRegisterDictionary: WpIsdLoyaltyRegisterDictionary = new WpIsdLoyaltyRegisterDictionary();\r\nwpIsdLoyaltyRegisterDictionary.LastName = 'Surname';\r\nwpIsdLoyaltyRegisterDictionary.FirstName = 'Forename';\r\nwpIsdLoyaltyRegisterDictionary.SecondName = 'Middle name';\r\nwpIsdLoyaltyRegisterDictionary.Birthdate = 'Date of birth';\r\nwpIsdLoyaltyRegisterDictionary.ChooseGender = 'Gender';\r\nwpIsdLoyaltyRegisterDictionary.GenderMale = 'Male';\r\nwpIsdLoyaltyRegisterDictionary.GenderFemale = 'Female';\r\nwpIsdLoyaltyRegisterDictionary.City = 'City';\r\nwpIsdLoyaltyRegisterDictionary.AcceptRequired = 'Acceptance required';\r\nwpIsdLoyaltyRegisterDictionary.GenericSave = 'Save';\r\nwpIsdLoyaltyRegisterDictionary.AcceptPartOne = 'I agree to the';\r\nwpIsdLoyaltyRegisterDictionary.AcceptPartTwo = 'Terms';\r\n\r\nwpIsdLoyaltyRegisterDictionary.GenericFieldRequired = 'Field cannot be empty';\r\nwpIsdLoyaltyRegisterDictionary.GenericFormatIncorrect = 'Incorrect format';\r\nwpIsdLoyaltyRegisterDictionary.GenericLettersOnly = 'Only letters are allowed';\r\nwpIsdLoyaltyRegisterDictionary.GenericPickOneOption = 'Pick one';\r\n\r\nconst wpIsdLoyaltyChildrenDictionary: WpIsdLoyaltyChildrenDictionary = new WpIsdLoyaltyChildrenDictionary();\r\nwpIsdLoyaltyChildrenDictionary.GenericChildren = 'Children';\r\nwpIsdLoyaltyChildrenDictionary.GenericChildData = 'Child information';\r\nwpIsdLoyaltyChildrenDictionary.GenericConfirm = 'Are you sure?';\r\nwpIsdLoyaltyChildrenDictionary.GenderMale = '♂ Male';\r\nwpIsdLoyaltyChildrenDictionary.GenderFemale = '♀ Female';\r\nwpIsdLoyaltyChildrenDictionary.LastName = 'Surname';\r\nwpIsdLoyaltyChildrenDictionary.FirstName = 'Forename';\r\nwpIsdLoyaltyChildrenDictionary.SecondName = 'Middle name';\r\n\r\n/* -= WpSale =- */\r\nconst wpSaleDictionary: WpSaleDictionary = new WpSaleDictionary();\r\nwpSaleDictionary.TabService = 'Purchase services';\r\nwpSaleDictionary.TabRewrite = 'Extend services';\r\nwpSaleDictionary.TabPersonalLessons = 'Individual lessons';\r\nwpSaleDictionary.TabGroupLessons = 'Group lessons';\r\nwpSaleDictionary.TabBundlesLessons = 'Multidate lessons';\r\n\r\nwpSaleDictionary.GenericPlaceOrder = 'Place an order';\r\nwpSaleDictionary.GenericPay = 'Checkout';\r\nwpSaleDictionary.GenericProcessPayment = 'Checkout';\r\nwpSaleDictionary.GenericShorthandMinutes = 'min';\r\n\r\nwpSaleDictionary.CartItemNotAvailableError = 'One of the items in the cart is no longer available';\r\nwpSaleDictionary.CartItemCountError = 'Out of tickets for one of the items in the cart';\r\n\r\nwpSaleDictionary.CardHaveTariffWithSoType = 'Ticket already with rental order';\r\nwpSaleDictionary.CardHaveNotUsedTariff = 'There is an unspent service on the card';\r\nwpSaleDictionary.LessonNotAvailable = 'Lesson not available';\r\n\r\nwpSaleDictionary.InvalidEmail = 'Invalid email';\r\n\r\nwpSaleDictionary.DataRequired = 'This data is required';\r\n\r\nwpSaleDictionary.SbpTitle = 'Scan the QR-code with your phone and follow the link to pay for the order';\r\nwpSaleDictionary.SbpMobileTitle = 'If the bank application does not open, follow the ';\r\nwpSaleDictionary.SbpMobileTitleLink = 'link';\r\n\r\nwpSaleDictionary.FreeTicketLimitError = 'You have already purchased a free ticket';\r\n\r\n\r\n/* -= WpArena =- */\r\nconst wpArenaSeancesDictionary: WpArenaSeancesDictionary = new WpArenaSeancesDictionary();\r\nwpArenaSeancesDictionary.NoAvailableSeances = 'There aren\\'t any activities to purchase';\r\n\r\nconst wpArenaSeanceItemDictionary: WpArenaSeanceItemDictionary = new WpArenaSeanceItemDictionary();\r\nwpArenaSeanceItemDictionary.TicketPrice = 'Ticket prices';\r\nwpArenaSeanceItemDictionary.PricesLoading = 'Loading prices…';\r\nwpArenaSeanceItemDictionary.CurrencyIcon = '$';\r\n\r\nconst wpArenaSeatsDictionary: WpArenaSeatsDictionary = new WpArenaSeatsDictionary();\r\nwpArenaSeatsDictionary.GenericOccupied = 'Unavailable';\r\nwpArenaSeatsDictionary.GenericPicked = 'Selected';\r\nwpArenaSeatsDictionary.ChooseSeatsOption = 'Chose a seat option';\r\nwpArenaSeatsDictionary.GenericRow = 'Row';\r\nwpArenaSeatsDictionary.GenericSeat = 'Seat';\r\n\r\nconst wpArenaSeatItemDictionary: WpArenaSeatItemDictionary = new WpArenaSeatItemDictionary();\r\nwpArenaSeatItemDictionary.ErrorCartIsFull = 'Cart has reached max capacity';\r\nwpArenaSeatItemDictionary.ErrorSeatIsOccupied = 'This seat is already taken';\r\n\r\nconst wpArenaSectorItemDictionary: WpArenaSectorItemDictionary = new WpArenaSectorItemDictionary();\r\nwpArenaSectorItemDictionary.TicketPrice = 'Ticket prices';\r\nwpArenaSectorItemDictionary.PricesLoading = 'Loading prices…';\r\nwpArenaSectorItemDictionary.SeatsLoading = 'Loading seats…';\r\nwpArenaSectorItemDictionary.SeatsSingular = 'seat';\r\nwpArenaSectorItemDictionary.SeatsPlural = 'seats';\r\nwpArenaSectorItemDictionary.GenericRemaining = 'Remaining';\r\nwpArenaSectorItemDictionary.CurrencyIcon = '$';\r\n\r\nconst wpArenaDictionary: WpArenaDictionary = new WpArenaDictionary();\r\nwpArenaDictionary.ArenaText = 'Arena';\r\n\r\n/* -= WpCart =- */\r\nconst wpCartDictionary: WpCartDictionary = new WpCartDictionary();\r\nwpCartDictionary.GenericCart = 'Cart';\r\nwpCartDictionary.GenericClearCart = 'Clear cart';\r\nwpCartDictionary.GenericTotal = 'Total';\r\nwpCartDictionary.GenericCheckout = 'Checkout';\r\n\r\nconst wpCartItemDictionary: WpCartItemDictionary = new WpCartItemDictionary();\r\nconst wpCartBundleDictionary: WpCartBundleDictionary = new WpCartBundleDictionary();\r\n\r\n/* -= WpComplete =- */\r\nconst wpCompleteDictionary: WpCompleteDictionary = new WpCompleteDictionary();\r\nwpCompleteDictionary.AwaitingResult = 'Awaiting transaction results';\r\nwpCompleteDictionary.BackToServiceList = 'Back to list of services';\r\nwpCompleteDictionary.ThankYouForPurchase = 'Thank you for your purchase!';\r\nwpCompleteDictionary.ConfirmRefusalToWait = 'Are you sure you want not to wait for the result of the transaction?';\r\nwpCompleteDictionary.FatalError = 'Unfortunately there is a technical issue at this moment. Please contact technical support.';\r\nwpCompleteDictionary.StartOver = 'Start over';\r\nwpCompleteDictionary.YourOrderNo = 'Your order №';\r\nwpCompleteDictionary.YourOrderStatusOK = 'has been processed! Information about your order has been sent to your e-mail.';\r\nwpCompleteDictionary.YourOrderStatusCanceled = 'canceled.';\r\nwpCompleteDictionary.CardDiscountConditionError = 'In case of cancellation due to entering card info that does not meet the requirements for a discount, funds will be returned within three working days';\r\nwpCompleteDictionary.OrderInfoLinkTitle = 'Get information about order and download tickets you can';\r\nwpCompleteDictionary.OrderInfoLinkText = 'here';\r\n\r\nwpCompleteDictionary.CardPayment = 'Payment by card';\r\nwpCompleteDictionary.SbpPayment = 'Payment via SFP';\r\nwpCompleteDictionary.GenericPay = 'Pay';\r\nwpCompleteDictionary.PayOrderTitle = 'Pay order №';\r\n\r\nwpCompleteDictionary.Payu = 'Payu';\r\nwpCompleteDictionary.Yandex = 'Yandex';\r\nwpCompleteDictionary.Sberbank = 'Sberbank';\r\nwpCompleteDictionary.RfiBank = 'RFI bank';\r\nwpCompleteDictionary.RosEuroBank = 'RosEuroBank';\r\nwpCompleteDictionary.Gazprombank = 'Gazprombank';\r\nwpCompleteDictionary.SovkomBank = 'Sovkombank';\r\nwpCompleteDictionary.Kazkombank = \"Kazcomercbank\";\r\nwpCompleteDictionary.Test = \"Test\";\r\nwpCompleteDictionary.AlfaBank = 'Alfa-bank';\r\nwpCompleteDictionary.PayOnline = 'Pay online';\r\n\r\n/* -= WpInstructors =- */\r\nconst wpInstructorsDictionary: WpInstructorsDictionary = new WpInstructorsDictionary();\r\nwpInstructorsDictionary.Discipline = 'Discipline';\r\nwpInstructorsDictionary.DisciplinesLoading = 'Loading disciplines…';\r\nwpInstructorsDictionary.Category = \"Category\";\r\nwpInstructorsDictionary.CategoriesLoading = 'Loading categories…';\r\nwpInstructorsDictionary.Program = 'Program';\r\nwpInstructorsDictionary.ProgramsLoading = 'Loading programs…';\r\nwpInstructorsDictionary.DialogBtnShow = 'Show';\r\nwpInstructorsDictionary.Location = 'Place';\r\nwpInstructorsDictionary.LocationsLoading = 'Loading places…';\r\nwpInstructorsDictionary.Instructor = 'Instructor';\r\nwpInstructorsDictionary.InstructorsLoading = 'Loading instructors…';\r\n\r\nconst wpInstructorsListDictionary: WpInstructorsListDictionary = new WpInstructorsListDictionary();\r\nwpInstructorsListDictionary.Instructor = 'Instructor';\r\nwpInstructorsListDictionary.InstructorsLoading = 'Loading instructors…';\r\n\r\nconst wpInstructorsBundlesDictionary: WpInstructorsBundlesDictionary = new WpInstructorsBundlesDictionary();\r\nwpInstructorsBundlesDictionary.Discipline = 'Discipline';\r\nwpInstructorsBundlesDictionary.DisciplinesLoading = 'Loading disciplines…';\r\nwpInstructorsBundlesDictionary.Category = 'Category';\r\nwpInstructorsBundlesDictionary.CategoriesLoading = 'Loading categories…';\r\nwpInstructorsBundlesDictionary.Program = 'Training program';\r\nwpInstructorsBundlesDictionary.ProgramsLoading = 'Loading training programs…';\r\nwpInstructorsBundlesDictionary.DialogBtnShow = 'Show';\r\nwpInstructorsBundlesDictionary.NoLessonsAvailable = 'No lessons available';\r\nwpInstructorsBundlesDictionary.Location = 'Place';\r\nwpInstructorsBundlesDictionary.LocationsLoading = 'Loading places…';\r\n\r\nconst wpInstructorsGroupDictionary: WpInstructorsGroupDictionary = new WpInstructorsGroupDictionary();\r\nwpInstructorsGroupDictionary.Discipline = 'Discipline';\r\nwpInstructorsGroupDictionary.DisciplinesLoading = 'Loading disciplines…';\r\nwpInstructorsGroupDictionary.Category = 'Category';\r\nwpInstructorsGroupDictionary.CategoriesLoading = 'Loading categories…';\r\nwpInstructorsGroupDictionary.Program = 'Training program';\r\nwpInstructorsGroupDictionary.ProgramsLoading = 'Loading training programs…';\r\nwpInstructorsGroupDictionary.DialogBtnShow = 'Show';\r\nwpInstructorsGroupDictionary.Location = 'Place';\r\nwpInstructorsGroupDictionary.LocationsLoading = 'Loading places…';\r\n\r\nconst wpInstructorsDatepickerDictionary: WpInstructorsDatepickerDictionary = new WpInstructorsDatepickerDictionary();\r\nwpInstructorsDatepickerDictionary.PeriodOfStudy = 'Period of training';\r\n\r\nconst wpInstructorsBundlesLessonsDictionary: WpInstructorsBundlesLessonsDictionary = new WpInstructorsBundlesLessonsDictionary();\r\nwpInstructorsBundlesLessonsDictionary.Vacant = 'Available positions';\r\nwpInstructorsBundlesLessonsDictionary.GuestsAmmount = 'Ammount of guests';\r\n\r\nconst wpInstructorsGroupLessonsDictionary: WpInstructorsGroupLessonsDictionary = new WpInstructorsGroupLessonsDictionary();\r\nwpInstructorsGroupLessonsDictionary.Vacant = 'Available positions';\r\nwpInstructorsGroupLessonsDictionary.GuestsAmmount = 'Ammount of guests';\r\nwpInstructorsGroupLessonsDictionary.NoAvailableLessons = 'No lessons available';\r\n\r\nconst wpInstructorsLessonsDictionary: WpInstructorsLessonsDictionary = new WpInstructorsLessonsDictionary();\r\nwpInstructorsLessonsDictionary.GuestsAmmount = 'Ammount of guests';\r\nwpInstructorsLessonsDictionary.ShorthandPeople = 'ppl.';\r\nwpInstructorsLessonsDictionary.NoAvailableLessons = 'No lessons available';\r\n\r\n/* -= WpMarket =- */\r\nconst wpMarketRulesDictionary: WpMarketRulesDictionary = new WpMarketRulesDictionary();\r\nwpMarketRulesDictionary.NoServicesAvailableOnThisDate = 'There aren\\'t any services available on this date';\r\nwpMarketRulesDictionary.DataRequired = 'This data is required';\r\n\r\nconst wpMarketRuleItemDictionary: WpMarketRuleItemDictionary = new WpMarketRuleItemDictionary();\r\nwpMarketRuleItemDictionary.CartIsFull = 'Cart has reached it\\'s full capacity';\r\nwpMarketRuleItemDictionary.ToCart = 'To cart';\r\n\r\n/* -= WpOrderTimer =- */\r\nconst wpOrderTimerDictionary: WpOrderTimerDictionary = new WpOrderTimerDictionary();\r\n\r\n/* -= WpPayConfirm =- */\r\nconst wpPayConfirmDictionary: WpPayConfirmDictionary = new WpPayConfirmDictionary();\r\nwpPayConfirmDictionary.UsedPromoCode = 'Promocode has been used';\r\nwpPayConfirmDictionary.DataRequired = 'This data is required';\r\nwpPayConfirmDictionary.PlacingOrder = 'Order placement';\r\nwpPayConfirmDictionary.ToGetDeals = 'In order to accumulate bonus points and receive discounts you need to';\r\nwpPayConfirmDictionary.YouAreMemberOfLoyaltyProgram = 'You are the member of a loyalty program';\r\nwpPayConfirmDictionary.LabelEmail = 'Email';\r\nwpPayConfirmDictionary.LabelPhone = 'Phone';\r\nwpPayConfirmDictionary.LabelPromocode = 'Promocode';\r\nwpPayConfirmDictionary.EnterEmail = 'Enter your e-mail';\r\nwpPayConfirmDictionary.EnterPhone = 'Enter your phone number';\r\nwpPayConfirmDictionary.ChooseDiscount = 'Choose a discount';\r\nwpPayConfirmDictionary.CodeIncorrect = 'Incorrect code';\r\nwpPayConfirmDictionary.GenericDiscount = 'Discount';\r\nwpPayConfirmDictionary.GenericTotal = 'Total';\r\nwpPayConfirmDictionary.GenericPay = 'Pay';\r\nwpPayConfirmDictionary.GenericByPressingPay = 'By pressing \"Pay\", you agree with';\r\nwpPayConfirmDictionary.GenericToRules = 'the terms';\r\nwpPayConfirmDictionary.HowManyPointsToSpend = 'How many points would you like to spend?';\r\nwpPayConfirmDictionary.NoDiscount = 'Without discount';\r\nwpPayConfirmDictionary.ChoosePayment = 'Choose a Payment Method';\r\nwpPayConfirmDictionary.CardPayment = 'Payment by card';\r\nwpPayConfirmDictionary.SbpPayment = 'Payment via SFP';\r\nwpPayConfirmDictionary.GenericPurchaseComment = 'Comment to the order';\r\nwpPayConfirmDictionary.NoPointsToSpend = \"No bonus points left to spend\";\r\n\r\nwpPayConfirmDictionary.Payu = 'Payu';\r\nwpPayConfirmDictionary.Yandex = 'Yandex';\r\nwpPayConfirmDictionary.Sberbank = 'Sberbank';\r\nwpPayConfirmDictionary.RfiBank = 'RFI bank';\r\nwpPayConfirmDictionary.RosEuroBank = 'RosEuroBank';\r\nwpPayConfirmDictionary.Gazprombank = 'Gazprombank';\r\nwpPayConfirmDictionary.SovkomBank = 'Sovkombank';\r\nwpPayConfirmDictionary.Kazkombank = \"Kazcomercbank\";\r\nwpPayConfirmDictionary.Test = \"Test\";\r\nwpPayConfirmDictionary.AlfaBank = 'Alfa-bank';\r\nwpPayConfirmDictionary.PayOnline = 'Pay online';\r\n\r\nconst wpPayConfirmItemDictionary: WpPayConfirmItemDictionary = new WpPayConfirmItemDictionary();\r\nwpPayConfirmItemDictionary.GenericDecline = 'Decline';\r\nwpPayConfirmItemDictionary.GenericTotalSum = 'Total sum';\r\n\r\nconst wpPayConfirmBundleDictionary: WpPayConfirmBundleDictionary = new WpPayConfirmBundleDictionary();\r\nwpPayConfirmBundleDictionary.GenericDecline = 'Decline';\r\nwpPayConfirmBundleDictionary.GenericTotalSum = 'Total sum';\r\nwpPayConfirmBundleDictionary.Personalization = 'Personalization';\r\n\r\nconst wpPayConfirmPromoDictionary: WpPayConfirmPromoDictionary = new WpPayConfirmPromoDictionary();\r\nwpPayConfirmPromoDictionary.CallToAction = 'Use the promocode!';\r\nwpPayConfirmPromoDictionary.GenericSuccess = 'You have used the «ABC123» promocode!';\r\n\r\nconst wpRulesDictionary: WpRulesDictionary = new WpRulesDictionary();\r\nwpRulesDictionary.GenericTerms = 'Terms';\r\nwpRulesDictionary.GenericTermsISDS = 'ISDS Terms';\r\nwpRulesDictionary.GenericIAgree = 'Accept and ';\r\nwpRulesDictionary.GenericPay = 'purchase';\r\n\r\n/* -= WpPersonification =- */\r\nconst wpPersonificationDictionary: WpPersonificationDictionary = new WpPersonificationDictionary();\r\nwpPersonificationDictionary.PersonSaleFirstName = 'client';\r\nwpPersonificationDictionary.PersonSaleLastName = 'New';\r\nwpPersonificationDictionary.GenericTotalSum = 'Total sum';\r\nwpPersonificationDictionary.GenericTotalSumDiscounted = 'Total sum (with discount)';\r\n\r\nconst wpPersonificationBundleDictionary: WpPersonificationBundleDictionary = new WpPersonificationBundleDictionary();\r\nwpPersonificationBundleDictionary.GenericDecline = 'Decline';\r\nwpPersonificationBundleDictionary.GenericTotalSum = 'Total sum';\r\n\r\nconst wpPersonificationBundleFormDictionary: WpPersonificationBundleFormDictionary = new WpPersonificationBundleFormDictionary();\r\nwpPersonificationBundleFormDictionary.LabelFirstName = 'First name';\r\nwpPersonificationBundleFormDictionary.LabelSecondName = 'Middle name';\r\nwpPersonificationBundleFormDictionary.LabelLastName = 'Surname';\r\nwpPersonificationBundleFormDictionary.FieldRequired = 'This field is required';\r\nwpPersonificationBundleFormDictionary.UnacceptableCharacters = 'Unacceptable characters';\r\nwpPersonificationBundleFormDictionary.PersonifyOn = 'Personify on:';\r\n\r\nconst wpPersonificationItemDictionary: WpPersonificationItemDictionary = new WpPersonificationItemDictionary();\r\nwpPersonificationItemDictionary.LabelFirstName = 'First name';\r\nwpPersonificationItemDictionary.LabelSecondName = 'Middle name';\r\nwpPersonificationItemDictionary.LabelLastName = 'Surname';\r\nwpPersonificationItemDictionary.FieldRequired = 'This field is required';\r\nwpPersonificationItemDictionary.UnacceptableCharacters = 'Unacceptable characters';\r\nwpPersonificationItemDictionary.PersonifyOn = 'Personify on:';\r\nwpPersonificationItemDictionary.GenericDecline = 'Decline';\r\nwpPersonificationItemDictionary.GenericTotalSum = 'Total sum';\r\n\r\n/* -= WpTariffs =- */\r\nconst wpTariffsDictionary: WpTariffsDictionary = new WpTariffsDictionary();\r\nwpTariffsDictionary.NoAvailableLessonsForThisDate = 'No available lessons on this date';\r\n\r\nconst wpTariffsRewriteDictionary: WpTariffsRewriteDictionary = new WpTariffsRewriteDictionary();\r\nwpTariffsRewriteDictionary.CardRegisteredOn = 'Card registered on';\r\nwpTariffsRewriteDictionary.NoAvailableServicesForThisCard = 'No services available for this card';\r\nwpTariffsRewriteDictionary.UnacceptableCharacters = 'Card number must have letters A to F and digits';\r\nwpTariffsRewriteDictionary.GenericCheck = 'Check';\r\nwpTariffsRewriteDictionary.LabelCardNo = 'Card number';\r\nwpTariffsRewriteDictionary.InstructionEnterCardNumber = 'To refill your services please enter the card number:';\r\nwpTariffsRewriteDictionary.InstructionCharacters = 'Card number consists of 16 letter-digit combination and is situated on the card itself.';\r\nwpTariffsRewriteDictionary.CardNotFound = 'Card not found';\r\nwpTariffsRewriteDictionary.CardExpired = 'Card has expired';\r\nwpTariffsRewriteDictionary.CardInProcess = 'This card is already use in another order';\r\nwpTariffsRewriteDictionary.CardIsAlredyInCart = 'You can add only one service to one card at a time';\r\nwpTariffsRewriteDictionary.CardMinimum8 = \"Card number must be at least 8 symbols long\";\r\n\r\nconst wpTariffBundleDictionary: WpTariffBundleDictionary = new WpTariffBundleDictionary();\r\nwpTariffBundleDictionary.GenericItemsLeft = 'Remaining';\r\nwpTariffBundleDictionary.GenericItemsOf = 'out of';\r\nwpTariffBundleDictionary.GenericToCart = 'Add to cart';\r\nwpTariffBundleDictionary.CartIsFull = 'Cart has reached maximum capacity';\r\nwpTariffBundleDictionary.NoMoreTickets = 'Out of tickets';\r\nwpTariffBundleDictionary.CustomService = '1 day subscribtion for using the lift \"Olympia\" (single use) and \"Wolves Mountain\" (multiple uses) with a bicycle';\r\n\r\nconst wpTariffItemDictionary: WpTariffItemDictionary = new WpTariffItemDictionary();\r\nwpTariffItemDictionary.GenericItemsLeft = 'Remaining';\r\nwpTariffItemDictionary.GenericItemsOf = 'out of';\r\nwpTariffItemDictionary.GenericToCart = 'Add to cart';\r\nwpTariffItemDictionary.CartIsFull = 'Cart has reached maximum capacity';\r\nwpTariffItemDictionary.NoMoreTickets = 'Out of tickets';\r\nwpTariffItemDictionary.TariffUnavailableForThisDate = 'Tariff is not available on this date';\r\n\r\nconst wpTariffRewriteItemDictionary: WpTariffRewriteItemDictionary = new WpTariffRewriteItemDictionary();\r\nwpTariffRewriteItemDictionary.GenericToCart = 'To cart';\r\nwpTariffRewriteItemDictionary.TariffUnavailableForThisDate = 'Tariff is not available on this date';\r\n\r\nconst wpTariffsDatepickerDictionary: WpTariffsDatepickerDictionary = new WpTariffsDatepickerDictionary();\r\nwpTariffsDatepickerDictionary.TextBoxLabel = 'Choose a date';\r\nwpTariffsDatepickerDictionary.DialogBtnClean = 'Clear';\r\nwpTariffsDatepickerDictionary.DialogBtnCancel = 'Cancel';\r\nwpTariffsDatepickerDictionary.DialogBtnOk = 'OK';\r\n\r\n/* -= WpLogin =- */\r\nconst wpLoginFormDictionary: WpLoginFormDictionary = new WpLoginFormDictionary();\r\nwpLoginFormDictionary.FieldRequiredMessage = 'This field is required';\r\nwpLoginFormDictionary.UserNameLblText = 'Email or Phone';\r\nwpLoginFormDictionary.PasswordLblText = 'Password';\r\nwpLoginFormDictionary.RememberMeLblText = 'Remember me';\r\nwpLoginFormDictionary.SignBtnText = 'Login';\r\nwpLoginFormDictionary.ForgotPasswordLink = 'Forgot your password';\r\nwpLoginFormDictionary.RegistrationLink = 'Registration';\r\nwpLoginFormDictionary.InvalidUserNameOrPassword = 'Wrong login or password';\r\n\r\nconst wpRegistrationFormDictionary: WpRegistrationFormDictionary = new WpRegistrationFormDictionary();\r\nwpRegistrationFormDictionary.SuccessRegistrationMessage = 'Registration successful';\r\nwpRegistrationFormDictionary.EmailRequiredMessage = 'Please enter your e-mail';\r\nwpRegistrationFormDictionary.FieldRequiredMessage = 'This field is required';\r\nwpRegistrationFormDictionary.PasswordLengthError = 'Must be longer than 6 characters';\r\nwpRegistrationFormDictionary.PasswordNotAvailableCharacters = 'Available characters for the password: numbers, Cyrillic, Latin letters, (space) ! \" № # $ % & \\'() * + , - . / : ; + = ?@[\\] ^ _` { | } ~ <>';\r\nwpRegistrationFormDictionary.ComparePasswordError = 'Passwords do not match';\r\nwpRegistrationFormDictionary.RegistrationTitle = 'Registration';\r\nwpRegistrationFormDictionary.EmailLblText = 'Enter email';\r\nwpRegistrationFormDictionary.PasswordLblText = 'Enter password';\r\nwpRegistrationFormDictionary.RepeatPasswordLblText = 'Repeat password';\r\nwpRegistrationFormDictionary.AgreementError = 'You must agree';\r\nwpRegistrationFormDictionary.BeforeAgreementLinkText = 'I agree with';\r\nwpRegistrationFormDictionary.AgreementLink = 'conditions';\r\nwpRegistrationFormDictionary.AfterAgreementLinkText = 'processing personal data';\r\nwpRegistrationFormDictionary.RegistrationBtnText = 'register';\r\nwpRegistrationFormDictionary.EmailExistError = 'This email is already registered';\r\n\r\nconst wpPasswordResetDictionary: WpPasswordResetDictionary = new WpPasswordResetDictionary();\r\nwpPasswordResetDictionary.SuccessPasswordChangedMessage = 'Password changed';\r\nwpPasswordResetDictionary.NewPasswordSendedMessage = 'New password has been sent by email'\r\nwpPasswordResetDictionary.EmailRequiredMessage = 'Enter email';\r\nwpPasswordResetDictionary.FieldRequiredMessage = 'This field is required';\r\nwpPasswordResetDictionary.PasswordLengthError = 'Must be longer than 6 characters';\r\nwpPasswordResetDictionary.PasswordNotAvailableCharacters = 'Available characters for the password: numbers, Cyrillic, Latin letters, (space) ! \" № # $ % & \\'() * + , - . / : ; + = ?@[\\] ^ _` { | } ~ <>';\r\nwpPasswordResetDictionary.ComparePasswordError = 'Passwords do not match';\r\nwpPasswordResetDictionary.ResetPasswordTitle = 'Password recovery';\r\nwpPasswordResetDictionary.EmailLblText = 'Enter email';\r\nwpPasswordResetDictionary.NewPasswordLblText = 'Enter new password';\r\nwpPasswordResetDictionary.RepeatPasswordLblText = 'Repeat Password';\r\nwpPasswordResetDictionary.ResetBtnText = 'Restore';\r\nwpPasswordResetDictionary.ChangeBtnText = 'change';\r\n\r\nconst wpPhoneConfirmDictionary: WpPhoneConfirmDictionary = new WpPhoneConfirmDictionary();\r\nwpPhoneConfirmDictionary.TryCountError = 'Too many attempts. Try after';\r\nwpPhoneConfirmDictionary.CodeRequiredError = 'Please enter code';\r\nwpPhoneConfirmDictionary.PhoneRequiredError = 'Please fill in the number until the end';\r\nwpPhoneConfirmDictionary.PhoneLblText = 'Enter phone number';\r\nwpPhoneConfirmDictionary.SendSMSBtnText = 'Send SMS';\r\nwpPhoneConfirmDictionary.CodeSendedMessage = 'Code sent to number';\r\nwpPhoneConfirmDictionary.AnotherPhoneLink = 'another number';\r\nwpPhoneConfirmDictionary.CodeLblText = 'Enter code';\r\nwpPhoneConfirmDictionary.SendAgainLink = 'Resend';\r\nwpPhoneConfirmDictionary.TimeoutResendMessage = 'You will be able to re-request the code via';\r\nwpPhoneConfirmDictionary.TimeoutSecondsMessage = 'sec.';\r\nwpPhoneConfirmDictionary.ConfirmCodeBtnText = 'confirm';\r\nwpPhoneConfirmDictionary.SomeOneElsePhoneError = 'This phone is registered to another user';\r\n\r\nconst wpEnLocalizationComponentsDictionary: Array = [\r\n /* -= WpLoyalty =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-isd-loyalty-register'), wpIsdLoyaltyRegisterDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-isd-loyalty-children'), wpIsdLoyaltyChildrenDictionary),\r\n\r\n /* -= WpSale =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-sale'), wpSaleDictionary),\r\n\r\n /* -= WpArena =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-arena'), wpArenaDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-arena-seances'), wpArenaSeancesDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-arena-seance-item'), wpArenaSeanceItemDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-arena-seats'), wpArenaSeatsDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-arena-seat-item'), wpArenaSeatItemDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-arena-sector-item'), wpArenaSectorItemDictionary),\r\n\r\n /* -= WpCart =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-cart'), wpCartDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-cart-item'), wpCartItemDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-cart-bundle'), wpCartBundleDictionary),\r\n\r\n /* -= WpComplete =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-complete'), wpCompleteDictionary),\r\n\r\n /* -= WpInstructors =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors'), wpInstructorsDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors-bundles'), wpInstructorsBundlesDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors-group'), wpInstructorsGroupDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors-datepicker'), wpInstructorsDatepickerDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors-bundles-lessons'), wpInstructorsBundlesLessonsDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors-group-lessons'), wpInstructorsGroupLessonsDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors-lessons'), wpInstructorsLessonsDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-instructors-list'), wpInstructorsListDictionary),\r\n\r\n /* -= WpMarket =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-market-rules'), wpMarketRulesDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-market-rule-item'), wpMarketRuleItemDictionary),\r\n\r\n /* -= WpOrderTimer =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-order-timer'), wpOrderTimerDictionary),\r\n\r\n /* -= WpPayConfirm =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-payconfirm'), wpPayConfirmDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-payconfirm-item'), wpPayConfirmItemDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-payconfirm-bundle'), wpPayConfirmBundleDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-payconfirm-promo'), wpPayConfirmPromoDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-rules'), wpRulesDictionary),\r\n\r\n /* -= WpPersonification =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-personification'), wpPersonificationDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-personification-bundle'), wpPersonificationBundleDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-personification-bundle-form'), wpPersonificationBundleFormDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-personification-item'), wpPersonificationItemDictionary),\r\n\r\n /* -= WpTariffs =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-tariffs'), wpTariffsDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-tariffs-rewrite'), wpTariffsRewriteDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-tariff-bundle'), wpTariffBundleDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-tariff-item'), wpTariffItemDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-tariff-rewrite-item'), wpTariffRewriteItemDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-tariffs-datepicker'), wpTariffsDatepickerDictionary),\r\n\r\n /* -= WpLogin =- */\r\n new LocalizationStaticDictionary(Symbol.for('wp-login-form'), wpLoginFormDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-registration-form'), wpRegistrationFormDictionary),\r\n new LocalizationStaticDictionary(Symbol.for('wp-password-reset'), wpPasswordResetDictionary),\r\n\r\n new LocalizationStaticDictionary(Symbol.for('wp-phone-confirm'), wpPhoneConfirmDictionary),\r\n];\r\n\r\nexport default wpEnLocalizationComponentsDictionary;","import { ILocalizationService, Localization } from 'web-platform-core-ui';\r\nimport wpRuLocalizationComponentsDictionary, { BaseDictionaryRu } from './Ru/localization-dictionary-ru';\r\nimport wpEnLocalizationComponentsDictionary, { BaseDictionaryEn } from './En/localization-dictionary-en';\r\n\r\n\r\nconst loadStaticLocaliztionDictionaries = function (localizationService: ILocalizationService) {\r\n\r\n // RUSSIAN\r\n for (let i = 0; i < wpRuLocalizationComponentsDictionary.length; i++) {\r\n let x = wpRuLocalizationComponentsDictionary[i];\r\n x.Terms.AccessDenied = BaseDictionaryRu.AccessDenied;\r\n x.Terms.InternalError = BaseDictionaryRu.InternalError;\r\n\r\n x.Terms.GenericYes = BaseDictionaryRu.GenericYes;\r\n x.Terms.GenericNo = BaseDictionaryRu.GenericNo;\r\n x.Terms.GenericBack = BaseDictionaryRu.GenericBack;\r\n x.Terms.GenericNext = BaseDictionaryRu.GenericNext;\r\n x.Terms.GenericChange = BaseDictionaryRu.GenericChange;\r\n x.Terms.GenericClose = BaseDictionaryRu.GenericClose;\r\n x.Terms.GenericError = BaseDictionaryRu.GenericError;\r\n x.Terms.GenericPleaseWait = BaseDictionaryRu.GenericPleaseWait;\r\n x.Terms.GenericClear = BaseDictionaryRu.GenericClear;\r\n x.Terms.GenericCancel = BaseDictionaryRu.GenericCancel;\r\n x.Terms.GenericOK = BaseDictionaryRu.GenericOK; \r\n x.Terms.GenericLogIn = BaseDictionaryRu.GenericLogIn;\r\n x.Terms.GenericAdd = BaseDictionaryRu.GenericAdd;\r\n x.Terms.GenericEdit = BaseDictionaryRu.GenericEdit;\r\n x.Terms.GenericUpdate = BaseDictionaryRu.GenericUpdate;\r\n x.Terms.GenericApply = BaseDictionaryRu.GenericApply;\r\n\r\n x.Terms.GenericPrice = BaseDictionaryRu.GenericPrice;\r\n x.Terms.GenericBuy = BaseDictionaryRu.GenericBuy;\r\n x.Terms.GenericFrom = BaseDictionaryRu.GenericFrom;\r\n x.Terms.GenericTo = BaseDictionaryRu.GenericTo;\r\n\r\n x.Terms.FormFieldRequired = BaseDictionaryRu.FormFieldRequired;\r\n\r\n localizationService.AddDictionary(Localization.RU, x);\r\n }\r\n\r\n // ENGLISH\r\n for (let i = 0; i < wpEnLocalizationComponentsDictionary.length; i++) {\r\n let x = wpEnLocalizationComponentsDictionary[i];\r\n x.Terms.AccessDenied = BaseDictionaryEn.AccessDenied;\r\n x.Terms.InternalError = BaseDictionaryEn.InternalError;\r\n\r\n x.Terms.GenericYes = BaseDictionaryEn.GenericYes;\r\n x.Terms.GenericNo = BaseDictionaryEn.GenericNo;\r\n x.Terms.GenericBack = BaseDictionaryEn.GenericBack;\r\n x.Terms.GenericNext = BaseDictionaryEn.GenericNext;\r\n x.Terms.GenericChange = BaseDictionaryEn.GenericChange;\r\n x.Terms.GenericClose = BaseDictionaryEn.GenericClose;\r\n x.Terms.GenericError = BaseDictionaryEn.GenericError;\r\n x.Terms.GenericPleaseWait = BaseDictionaryEn.GenericPleaseWait;\r\n x.Terms.GenericClear = BaseDictionaryEn.GenericClear;\r\n x.Terms.GenericCancel = BaseDictionaryEn.GenericCancel;\r\n x.Terms.GenericOK = BaseDictionaryEn.GenericOK;\r\n x.Terms.GenericLogIn = BaseDictionaryEn.GenericLogIn;\r\n x.Terms.GenericAdd = BaseDictionaryEn.GenericAdd;\r\n x.Terms.GenericEdit = BaseDictionaryEn.GenericEdit;\r\n x.Terms.GenericUpdate = BaseDictionaryEn.GenericUpdate;\r\n x.Terms.GenericApply = BaseDictionaryRu.GenericApply;\r\n\r\n x.Terms.GenericPrice = BaseDictionaryEn.GenericPrice;\r\n x.Terms.GenericBuy = BaseDictionaryEn.GenericBuy;\r\n x.Terms.GenericFrom = BaseDictionaryEn.GenericFrom;\r\n x.Terms.GenericTo = BaseDictionaryEn.GenericTo;\r\n\r\n x.Terms.FormFieldRequired = BaseDictionaryEn.FormFieldRequired;\r\n\r\n localizationService.AddDictionary(Localization.EN, x);\r\n }\r\n}\r\n\r\nexport default loadStaticLocaliztionDictionaries;","import Vue, { VueConstructor } from 'vue';\r\nimport { Prop, DefaultProps } from \"vue/types/options\";\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { OrderItem, PersonificationApiOrderItem, PersonSale, IContext, IdentitySymbols, BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\nimport { DatePickerType } from 'vuetify';\r\nimport { Watch } from 'vue-property-decorator';\r\n\r\nexport const wpPersonificationItemProps = Vue.extend({\r\n props: {\r\n OrderItem: Object as Prop,\r\n Personification: Object as Prop,\r\n UserPersons: Array\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-personification-item.html\")\r\n})\r\nexport default class WpPersonificationItem extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpPersonificationItemProps, Vue) {\r\n private _selectedPerson!: PersonSale;\r\n\r\n IsAuthetificated: boolean = false;\r\n Loading: boolean = false;\r\n IsDisabled: boolean = false;\r\n Yesterday = new Date(new Date().setDate(new Date().getDate() - 1)).toISOString().substr(0, 10);\r\n\r\n // ///////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\r\n // WATCH EVERY FIELD TO REMOVE SPACES (Maybe there is a better solution?)\r\n // Point of interest: v-model.trim doesn't seem to work for v-text-field\r\n @Watch(\"Personification.FirstName\")\r\n PFN(): void {\r\n this.$nextTick(() => {\r\n this.Personification.FirstName = this.RemoveSpaces(this.Personification.FirstName);\r\n });\r\n };\r\n @Watch(\"Personification.LastName\")\r\n PLN(): void {\r\n this.$nextTick(() => {\r\n this.Personification.LastName = this.RemoveSpaces(this.Personification.LastName);\r\n });\r\n };\r\n @Watch(\"Personification.SecondName\")\r\n PSN(): void {\r\n this.$nextTick(() => {\r\n this.Personification.SecondName = this.RemoveSpaces(this.Personification.SecondName);\r\n });\r\n };\r\n RemoveSpaces(text: string): string {\r\n return text.replace(/\\s+/g, \"\").trim();\r\n };\r\n // \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/////////////////////////////////\r\n \r\n public Genders: Array = [\r\n { text: 'Мужской', value: \"1\" },\r\n { text: 'Женский', value: \"2\" },\r\n ];\r\n\r\n get SelectedPerson() {\r\n return this._selectedPerson;\r\n };\r\n\r\n set SelectedPerson(personId: any) {\r\n this._selectedPerson = this.UserPersons.find((x: PersonSale) => (x as PersonSale).PersonId == personId) as PersonSale;\r\n\r\n if (this._selectedPerson === undefined || this._selectedPerson.PersonId == 0) {\r\n this.Personification.PersonId = this.OrderItem.AdditionalInfo.PersonId;\r\n \r\n this.Personification.FirstName = '';\r\n this.Personification.LastName = '';\r\n this.Personification.SecondName = '';\r\n this.Personification.Phone = '';\r\n\r\n this.IsDisabled = false;\r\n } else {\r\n this.Personification.PersonId = this._selectedPerson.PersonId;\r\n this.Personification.FirstName = this._selectedPerson.FirstName;\r\n this.Personification.LastName = this._selectedPerson.LastName;\r\n this.Personification.SecondName = this._selectedPerson.SecondName;\r\n this.Personification.Phone = this._selectedPerson.Phone;\r\n\r\n this.IsDisabled = true;\r\n };\r\n };\r\n\r\n get Rules(): any {\r\n return {\r\n required: (value: string) => !!value || this.Terms.FieldRequired,\r\n personname: (value: string) => {\r\n const pattern = /^[a-zA-Zа-яёА-ЯЁ\\-]+( [a-zA-Zа-яёА-ЯЁ\\-]+)*$/\r\n if (value === '') return true;\r\n return pattern.test(value) || this.Terms.UnacceptableCharacters\r\n }\r\n };\r\n };\r\n\r\n get BirthdateRules() {\r\n return [\r\n (v: string) => v !== '' || 'Поле нельзя оставить пустым'\r\n ];\r\n };\r\n\r\n get RadioRules() {\r\n return [\r\n (v: string) => !!v || 'Выберите один из вариантов'\r\n ];\r\n };\r\n\r\n BirthdateMenu: boolean = false;\r\n Birthdate: string = \"\";\r\n\r\n get BirthdateFormatted(): string {\r\n return this.Birthdate != '' ? this.DateHandler.Parse(this.Birthdate, 'YYYY-MM-DD').Format('DD.MM.YYYY') : '';\r\n };\r\n\r\n UpdateBirthdate(): void {\r\n if (this.Birthdate !== '') {\r\n this.Personification!.BirthDate = this.DateHandler.Parse(this.Birthdate, 'YYYY-MM-DD').Format('YYYY-MM-DDT12:00:00');\r\n } else {\r\n this.Personification!.BirthDate = null;\r\n };\r\n };\r\n\r\n created() {\r\n let context = this.GlobalService.Get(IdentitySymbols.Context);\r\n this.IsAuthetificated = context.CurrentIdentity.IsAuthentificated;\r\n this.SelectedPerson = this.UserPersons[0] as PersonSale;\r\n };\r\n\r\n Remove() {\r\n this.Loading = true;\r\n this.$emit(\"ItemRemove\", this.OrderItem);\r\n };\r\n};\r\n\r\nexport class WpPersonificationItemDictionary extends BaseSystemLocalizationDictionary {\r\n LabelFirstName: string = 'Имя';\r\n LabelSecondName: string = 'Отчество';\r\n LabelLastName: string = 'Фамилия';\r\n LabelBirthDate: string = 'Дата рождения';\r\n LabelGender: string = 'Пол';\r\n FieldRequired: string = 'Необходимо заполнить';\r\n UnacceptableCharacters: string = 'Введены недопустимые символы';\r\n PersonifyOn: string = 'Персонифицировать на:';\r\n GenericDecline: string = 'Отказаться';\r\n GenericTotalSum: string = 'Сумма';\r\n};","import IProfileProvider from './i-profile-provider';\r\nimport UserProfile from './user-profile';\r\nimport { ActionResult, ErrorTypes } from './../Common';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { IdentitySymbols } from './../Identity/symbols';\r\nimport { IContext } from './../Identity';\r\nimport { inject, injectable } from 'inversify';\r\nimport GlobalService from '..';\r\n\r\n\r\n@injectable()\r\nexport default class DefaultProfileProvider implements IProfileProvider {\r\n private _context: IContext;\r\n\r\n constructor(@inject(IdentitySymbols.Context) context: IContext) {\r\n this._context = context;\r\n }\r\n\r\n async GetProfileAsync(): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/account/api/profile/`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async EditProfileAsync(profile: UserProfile): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.replace>(`/account/api/profile/`, profile);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n\r\n return ActionResult.Success();\r\n }\r\n\r\n async ChangeEmailAsync(email: string): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.replace>(`/account/api/profile/email/`, { Email: email });\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n\r\n return ActionResult.Success();\r\n }\r\n\r\n async SetPhoneAsync(phone: string): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.replace>(`/account/api/profile/phone/`, { Phone: phone });\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n\r\n return ActionResult.Success();\r\n }\r\n\r\n async ChangePasswordAsync(oldPassword: string, newPassword: string, confirmPassword: string): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.replace>(`/account/api/profile/changepassword/`, { OldPassword: oldPassword, NewPassword: newPassword, ConfirmPassword: confirmPassword });\r\n\r\n if (response.result != null && response.result.Result != 0) {\r\n if (response.result.Result == 8)\r\n return ActionResult.Failed(ErrorTypes.InvalidData, response.result.Message);\r\n\r\n\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n }\r\n \r\n\r\n return ActionResult.Success();\r\n }\r\n}\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n}","import 'reflect-metadata';\r\nimport { Container } from 'inversify';\r\nimport { ServiceRegistredRecord } from './service-registred-record';\r\nimport * as News from './../News';\r\nimport * as Order from './../Order';\r\nimport * as Localization from './../Localization';\r\nimport * as Cms from './../Cms';\r\nimport * as Identity from './../Identity';\r\nimport * as Profile from './../Profile';\r\nimport * as Loyalty from './../Loyalty';\r\nimport * as Notification from './../Notification';\r\nimport * as PhoneConfirm from './../PhoneConfirm';\r\nimport * as Instructors from './../Instructors';\r\nimport * as Tariffs from './../Tariffs';\r\nimport * as Cart from './../Cart';\r\nimport * as Sale from './../Sale';\r\nimport * as Organizations from './../Organizations';\r\nimport * as Metrics from './../Metrics';\r\nimport * as Arena from './../Arena';\r\nimport * as DateHandler from './../Utility';\r\nimport * as Market from './../Market';\r\nimport * as Syntech from './../Syntech';\r\n\r\nimport * as Sib from './../Sib';\r\nimport * as RH from './../RozaHutor';\r\n\r\nimport * as Club from './../Club';\r\n\r\nimport { UserManager } from 'oidc-client';\r\nimport { AppSettings } from './app-settings';\r\n\r\nexport const GlobalSymbols = {\r\n GlobalService: Symbol.for(\"GlobalService\")\r\n}\r\n\r\nexport default class GlobalService {\r\n protected static _settings: AppSettings | undefined = undefined;\r\n\r\n static SetSettings(settings: T): void{\r\n this._settings = settings;\r\n }\r\n\r\n static GetSettings(): T {\r\n return this._settings! as T;\r\n }\r\n\r\n protected _container: Container = new Container();\r\n protected _records: Array = new Array();\r\n\r\n Get(type: symbol): T {\r\n return this._container.get(type);\r\n }\r\n\r\n protected registerServices(redefinedServices?: Array) {\r\n if (redefinedServices == null) {\r\n this._records.forEach(item => {\r\n let bind = this._container.bind(item.Key).to(item.Value);\r\n\r\n if (item.IsSingelton) bind.inSingletonScope();\r\n });\r\n\r\n return;\r\n }\r\n\r\n this._records.forEach(item => {\r\n let service = redefinedServices.find(x => x.Key == item.Key);\r\n\r\n if (service == null) service = item;\r\n\r\n let bind = this._container.bind(service.Key).to(service.Value);\r\n\r\n if (service.IsSingelton) bind.inSingletonScope();\r\n });\r\n\r\n this._container.bind(GlobalSymbols.GlobalService).toConstantValue(this);\r\n }\r\n\r\n protected registerAllSymbols(): void {\r\n this._records = new Array(\r\n //news\r\n new ServiceRegistredRecord(Cms.CmsSymbols.CmsService, Cms.CmsService),\r\n new ServiceRegistredRecord(Cms.CmsSymbols.DataProvider, Cms.DefaultCmsDataProvider),\r\n //order\r\n new ServiceRegistredRecord(Order.OrderServiceSymbols.OrderService, Order.OrderService),\r\n new ServiceRegistredRecord(Order.OrderServiceSymbols.OrderProvider, Order.OrderProvider),\r\n //localization\r\n new ServiceRegistredRecord(Localization.LocalizationSymbols.LocalizationService, Localization.DefaultLocalizationService),\r\n //profile\r\n new ServiceRegistredRecord(Profile.ProfileSymbols.ProfileProvider, Profile.DefaultProfileProvider),\r\n new ServiceRegistredRecord(Profile.ProfileSymbols.ProfileService, Profile.DefaultProfileService),\r\n //loyalty\r\n new ServiceRegistredRecord(Loyalty.LoyaltySymbols.LoyaltyProvider, Loyalty.DefaultLoyaltyProvider),\r\n new ServiceRegistredRecord(Loyalty.LoyaltySymbols.LoyaltyNotificationProvider, Loyalty.DefaultLoyaltyNotificationProvider),\r\n new ServiceRegistredRecord(Loyalty.LoyaltySymbols.LoyaltyNotificationService, Loyalty.DefaultLoyaltyNotificationService),\r\n //Notification\r\n new ServiceRegistredRecord(Notification.NotificationSymbols.NotificationService, Notification.DefaultNotificationService),\r\n //PhoneConfirm\r\n new ServiceRegistredRecord(PhoneConfirm.PhoneConfirmationSymbols.PhoneConfirmationService, PhoneConfirm.PhoneConfirmationService),\r\n new ServiceRegistredRecord(PhoneConfirm.PhoneConfirmationSymbols.PhoneConfirmationProvider, PhoneConfirm.CombinePhoneConfirmationProvider),\r\n //Instructors\r\n new ServiceRegistredRecord(Instructors.InstructorsSymbols.InstructorsService, Instructors.InstructorsService),\r\n new ServiceRegistredRecord(Instructors.InstructorsSymbols.InstructorsProvider, Instructors.InstructorsProvider),\r\n //Tariffs\r\n new ServiceRegistredRecord(Tariffs.TariffSymbols.TariffService, Tariffs.TariffServiceCached),\r\n new ServiceRegistredRecord(Tariffs.TariffSymbols.TariffProvider, Tariffs.TariffProvider),\r\n new ServiceRegistredRecord(Tariffs.TariffSymbols.TariffCapacityService, Tariffs.TariffCapacityServiceCached),\r\n new ServiceRegistredRecord(Tariffs.TariffSymbols.TariffCapacityProvider, Tariffs.TariffCapacityProvider),\r\n //Cart\r\n new ServiceRegistredRecord(Cart.CartSymbols.CartService, Cart.CartService),\r\n new ServiceRegistredRecord(Cart.CartSymbols.CartProvider, Cart.CartProvider),\r\n //Sale\r\n new ServiceRegistredRecord(Sale.SaleSymbols.SaleService, Sale.SaleService),\r\n new ServiceRegistredRecord(Sale.SaleSymbols.SaleProvider, Sale.SaleProvider),\r\n //Sale\r\n new ServiceRegistredRecord(Organizations.OrganizationSymbols.OrganizationService, Organizations.OrganizationService),\r\n new ServiceRegistredRecord(Organizations.OrganizationSymbols.OrganizationProvider, Organizations.OrganizationProvider),\r\n //Metrics\r\n new ServiceRegistredRecord(Metrics.MetricsSymbols.MetricsService, Metrics.MetricsService),\r\n new ServiceRegistredRecord(Metrics.MetricsSymbols.MetricsProvider, Metrics.MetricsProvider),\r\n //Arena\r\n new ServiceRegistredRecord(Arena.ArenaSymbols.ArenaService, Arena.DefaultArenaService),\r\n new ServiceRegistredRecord(Arena.ArenaSymbols.ArenaProvider, Arena.DefaultArenaProvider),\r\n //DateHandler\r\n new ServiceRegistredRecord(DateHandler.DateHandlerSymbols.DateHandlerService, DateHandler.DateHandlerService),\r\n //Market\r\n new ServiceRegistredRecord(Market.MarketSymbols.MarketProvider, Market.MarketProvider),\r\n new ServiceRegistredRecord(Market.MarketSymbols.MarketService, Market.MarketService),\r\n //Club\r\n new ServiceRegistredRecord(Club.ClubSymbols.ClubProvider, Club.DefaultClubProvider),\r\n new ServiceRegistredRecord(Club.ClubSymbols.ClubService, Club.DefaultClubService),\r\n //Syntech\r\n new ServiceRegistredRecord(Syntech.SyntechSymbols.SyntechProvider, Syntech.DefaultSyntechProvider),\r\n new ServiceRegistredRecord(Syntech.SyntechSymbols.SyntechService, Syntech.DefaultSyntechService),\r\n );\r\n }\r\n\r\n protected registerAdditionalService(additionalServices: Array) {\r\n additionalServices.forEach(item => {\r\n let bind = this._container.bind(item.Key).to(item.Value);\r\n\r\n if (item.IsSingelton) bind.inSingletonScope();\r\n });\r\n }\r\n\r\n public LoadMobileConfiguration(context: Identity.IContext,\r\n redefinedServices?: Array,\r\n additionalServices?: Array): void {\r\n this._container.bind(Identity.IdentitySymbols.Context).toConstantValue(context);\r\n\r\n this.registerAllSymbols();\r\n this.registerServices(redefinedServices);\r\n if (additionalServices != null)\r\n this.registerAdditionalService(additionalServices);\r\n }\r\n\r\n public LoadRozaHutorConfiguration(redefinedServices?: Array,\r\n additionalServices?: Array): void {\r\n\r\n let context = new RH.RHContext();\r\n this._container.bind(Identity.IdentitySymbols.Context).toConstantValue(context);\r\n\r\n this.registerAllSymbols();\r\n this.registerServices(redefinedServices);\r\n if (additionalServices != null)\r\n this.registerAdditionalService(additionalServices);\r\n }\r\n\r\n public LoadWebSaleConfiguration(context: Identity.IContext,\r\n redefinedServices?: Array,\r\n additionalServices?: Array): void { \r\n\r\n this._container.bind(Identity.IdentitySymbols.Context).toConstantValue(context); \r\n\r\n this.registerAllSymbols();\r\n this.registerServices(redefinedServices);\r\n if (additionalServices != null)\r\n this.registerAdditionalService(additionalServices);\r\n }\r\n\r\n public LoadSibSaleConfiguration(context: Sib.SibIdentity,\r\n redefinedServices?: Array,\r\n additionalServices?: Array): void {\r\n\r\n this._container.bind(Identity.IdentitySymbols.Context).toConstantValue(context);\r\n this._container.bind(Sib.SibSymbols.SibContext).toConstantValue(context);\r\n\r\n this.registerAllSymbols();\r\n this.registerServices(redefinedServices);\r\n if (additionalServices != null)\r\n this.registerAdditionalService(additionalServices);\r\n }\r\n}","export default class InstructorsPersonalLesson {\r\n BeginTime?: string;\r\n Date?: string;\r\n Id: number = 0;\r\n EndTime?: string;\r\n PlaceId: number = 0;\r\n MaxPersonsCount: number = 0;\r\n PriceForOne: number = 0;\r\n PriceForSecond: number = 0;\r\n SkillTypeId: number = 0;\r\n SkillType: string = '';\r\n InstructorId: number = 0;\r\n CoachID: number = 0;\r\n TariffId: number = 0;\r\n TariffName: string = '';\r\n ExistToContract: boolean = false;\r\n SumOne?: number;\r\n // Fields below conflict with their contemporaries but thats what we receive from the server so...\r\n TimeFrom?: string; // This conflicts with BeginTime\r\n TimeTo?: string; // This conflicts with EndTime\r\n PlaceID: number = 0; // This conflicts with PlaceId\r\n}","export class ServiceRegistredRecord {\r\n Key: symbol;\r\n Value: any;\r\n IsSingelton: boolean;\r\n\r\n constructor(key: symbol, value: any, isSingelton?: boolean) {\r\n this.Key = key;\r\n this.Value = value;\r\n this.IsSingelton = isSingelton != null ? isSingelton : true;\r\n }\r\n}","import Vue from 'vue';\r\nimport Router from 'vue-router';\r\n\r\nimport { WpSale } from './../components';\r\n\r\nVue.use(Router);\r\n\r\nexport default new Router({\r\n mode: 'history',\r\n base: process.env.BASE_URL,\r\n routes: [\r\n {\r\n path: '/',\r\n name: 'wp-sale',\r\n component: WpSale\r\n } \r\n ]\r\n});\r\n","import { AppSettings } from './app-settings';\r\nimport { WpEventArgs } from '../Common';\r\n\r\nexport default class AppSettingsInitializedEventArgs extends WpEventArgs {\r\n Settings: AppSettings;\r\n\r\n constructor(settings: AppSettings) {\r\n super();\r\n this.Settings = settings;\r\n }\r\n}","export enum FixedPriceType {\r\n ftpNo = 0,\r\n ftpCard = 1,\r\n ftpContract = 2\r\n}","import './wp-rules.scss';\r\n\r\nimport Vue from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { IOrganizationService, OrganizationSymbols } from 'web-platform-core-ui/src/Organizations';\r\nimport { Watch, Prop } from 'vue-property-decorator';\r\nimport { IContext, IdentitySymbols, IdentityChangedEventArgs, BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\n\r\n@Component({ \r\n template: require(\"./wp-rules.html\")\r\n})\r\nexport default class WpRules extends mixins>(WpBaseComponent, Vue) {\r\n\r\n @Prop(Boolean) public RulesTrigger!: boolean;\r\n\r\n @Watch('RulesTrigger')\r\n OnRulesTrigger(val: boolean, oldVal: boolean) {\r\n this.RulesModal = val;\r\n }\r\n\r\n protected _service!: IOrganizationService;\r\n protected _context!: IContext;\r\n\r\n Rules: string = '';\r\n RulesModal: boolean = false;\r\n RulesTab: number = 0;\r\n\r\n Email: string = '';\r\n\r\n async mounted() {\r\n this._service = await this.GlobalService.Get(OrganizationSymbols.OrganizationProvider);\r\n this._context = await this.GlobalService.Get(IdentitySymbols.Context);\r\n\r\n this.Email = this._context.CurrentIdentity.Username;\r\n this._context.IdentityChanged.Subscribe(this.IdentityChanged);\r\n\r\n let rules = await this._service.GetOrganizationRulesAsync();\r\n if (rules.Data != null && rules.Data != '') {\r\n this.Rules = rules.Data;\r\n\r\n }\r\n else {\r\n this.RulesTab = 1;\r\n }\r\n }\r\n\r\n IdentityChanged(e: any, args: IdentityChangedEventArgs) {\r\n this.Email = args.Identity.Username;\r\n }\r\n\r\n RulesConfirm(): void {\r\n\r\n if (this.RulesTab == 0) {\r\n this.RulesTab = 1;\r\n }\r\n else {\r\n this.RulesTab = 0;\r\n this.RulesModal = false;\r\n this.$emit('RulesConfirm', true);\r\n }\r\n }\r\n RulesDecline(): void {\r\n this.RulesTab = this.Rules != null && this.Rules != '' ? 0 : 1;\r\n this.RulesModal = false;\r\n this.$emit('RulesDecline');\r\n }\r\n}\r\n\r\nexport class WpRulesDictionary extends BaseSystemLocalizationDictionary {\r\n GenericTerms: string = 'Условия';\r\n GenericTermsISDS: string = 'Условия ISDS';\r\n GenericIAgree: string = 'Подтверждаю и ';\r\n GenericPay: string = 'оплатить';\r\n}","export enum LoyaltyNotificationStatus {\r\n New = 0,\r\n Checked = 1\r\n}","import Vue from 'vue';\r\nimport WpBaseComponent from './../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { INotificationService, NotificationSymbols, NotificationEventArgs } from 'web-platform-core-ui';\r\nimport { NavigationLink } from '../../luzhniki/tennis/Generic/LTNav/lt-nav';\r\n\r\nexport const WpTopBarProp = Vue.extend({\r\n props: {\r\n RightButtons: Array,\r\n DisableBars: Boolean,\r\n SpaceToCenter: Boolean,\r\n color: String,\r\n app: Boolean,\r\n dark: Boolean,\r\n height: {\r\n type: [Number, String],\r\n default: 56\r\n },\r\n elevation: {\r\n type: [Number, String],\r\n required: false,\r\n default: 4\r\n },\r\n default: String,\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-top-bar.html\")\r\n})\r\nexport default class WpTopBar extends mixins(WpBaseComponent, WpTopBarProp, Vue) {\r\n Title: string = this.default || \"\";\r\n get NeedBack(): boolean {\r\n return this.RouteBack != '';\r\n }\r\n Loading: boolean = false;\r\n RouteBack: string = '';\r\n LeftButton: NavigationLink | null = null;\r\n\r\n mounted() {\r\n let _this = this;\r\n this.$router.beforeEach((to, from, next) => {\r\n\r\n to.meta?.leftButton ? this.LeftButton = to.meta.leftButton : this.LeftButton = null;\r\n\r\n if (to.meta?.title != null) {\r\n _this.Title = to.meta.title as string;\r\n }\r\n\r\n if (to.meta?.routeback != null && to.meta.routeback != '') {\r\n _this.RouteBack = to.meta.routeback as string;\r\n } else {\r\n this.RouteBack = '';\r\n }\r\n\r\n next();\r\n });\r\n\r\n let notifitcationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n notifitcationService.NotificationSended.Subscribe((sender: any, e: NotificationEventArgs) => {\r\n if (e.Data.SystemProcessKey == \"WpPageBaseComponentLoading\" && e.Data.AdditionalData != null) {\r\n _this.Loading = e.Data.AdditionalData as boolean\r\n }\r\n });\r\n };\r\n\r\n ToggleDrawer() {\r\n this.$emit(\"ToggleDrawer\");\r\n };\r\n\r\n AppGoBack() {\r\n const _global = (window || global) as any;\r\n if (_global.androidBackButtonPressed != null) _global.androidBackButtonPressed();\r\n else this.$router.push({ name: this.RouteBack });\r\n };\r\n};","import ISDLoyaltyQuestionnaire from './isd-loyalty-questionnaire';\r\n\r\nexport default class IsdLoyaltyProgram {\r\n OrganizationId: number = 0;\r\n SavePhone: boolean = false;\r\n LoyaltyProgramId: number = 0;\r\n RuleAddress: string = '';\r\n ProgramName: string = '';\r\n EnableRegisterNewUser: boolean = false;\r\n Questionnaire?: ISDLoyaltyQuestionnaire;\r\n}","module.exports = \"
\\r\\n\\r\\n

{{seance.Name}}

\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n x.SectorCode === item.SectorCode).FreePlaces\\\"\\r\\n :MinPrice=\\\"SectorFreePlacesArray.find(x => x.SectorCode === item.SectorCode).MinPrice\\\"\\r\\n :MaxPrice=\\\"SectorFreePlacesArray.find(x => x.SectorCode === item.SectorCode).MaxPrice\\\"\\r\\n @Selected=\\\"SectorSelected\\\">\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n Выберите вариант авторизации\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n войти через премьер pass\\r\\n \\r\\n
\\r\\n \\r\\n Внимание, при авторизации через премьер-лигу вы сможете приобрести лишь один билет на себя.\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\";","export default class PayAccountPayment {\r\n OrderId: number = 0;\r\n PaymentId: number = 0;\r\n PhoneConfirmationCodeId: number = 0;\r\n SecurityToken: string = '';\r\n}","module.exports = \"
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n 0\\\"\\r\\n class=\\\"mx-auto mt-5\\\"\\r\\n width=\\\"350\\\">\\r\\n\\r\\n \\r\\n

{{ Terms.PayOrderTitle }}{{ Order.Code }}

\\r\\n\\r\\n 1\\\">\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericPay }}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n

{{ Terms.YourOrderNo }}{{ Order.Code }} {{ Terms.YourOrderStatusOK }}
{{ Terms.ThankYouForPurchase }}

\\r\\n

{{ Terms.OrderInfoLinkTitle }} {{ Terms.OrderInfoLinkText }}

\\r\\n mdi-refresh {{ Terms.StartOver }}\\r\\n
\\r\\n\\r\\n
\\r\\n

{{ Terms.YourOrderNo }}{{ Order.Code }} {{ Terms.YourOrderStatusCanceled }}

\\r\\n

\\r\\n {{ Terms.CardDiscountConditionError }}\\r\\n

\\r\\n mdi-back {{ Terms.GenericBack }}\\r\\n
\\r\\n\\r\\n
\\r\\n

{{ Terms.FatalError }}

\\r\\n mdi-back {{ Terms.GenericBack }}\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n mdi-close\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.AwaitingResult }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\";","export const CartSymbols = {\r\n CartService: Symbol.for(\"CartService\"),\r\n CartProvider: Symbol.for(\"CartProvider\")\r\n}","export enum ContractProcedure {\r\n cprCard = 0,\r\n cprVisit = 1,\r\n cprPayment = 2,\r\n cprFreeze = 3,\r\n cprProcedure = 4,\r\n cprSheduke = 5\r\n}","export const LocalizationSymbols = {\r\n LocalizationService: Symbol.for(\"LocalizationService\")\r\n}","import CartItem from './../Cart/cart-item';\r\nimport InstructorsGroupLesson from './instructors-group-lesson';\r\nimport { CartItemTypes } from './../Cart/cart-item-types';\r\nimport { ActionResult, ErrorTypes, WpEventArgs } from './../Common';\r\nimport { ReservationItemTypes, ReservationItem } from './../Sale';\r\nimport * as moment from 'moment';\r\nimport { Cart } from './..';\r\n\r\n\r\nexport default class InstructorsGroupCartItem extends CartItem {\r\n private _maxCount: number = 10;\r\n private _price: number = 0;\r\n private _beginTime: string = \"\";\r\n private _endTime: string = \"\";\r\n private _date: string = \"\";\r\n private _count: number;\r\n private _cart: Cart;\r\n private _lesson: InstructorsGroupLesson;\r\n private _type: CartItemTypes = CartItemTypes.InstructorsGroupLesson;\r\n private _lessonCoachId?: number | null;\r\n private _lessonLocationId?: number | null;\r\n private _contractId?: number | null;\r\n\r\n get IsAvailable(): boolean {\r\n return true;\r\n }\r\n public get Info(): string {\r\n return `${this._date} ${this.Lesson.TariffName} с ${this._beginTime} до ${this._endTime} (${this._count}) чел.`;\r\n }\r\n public get Type(): CartItemTypes {\r\n return this._type;\r\n }\r\n public get Price(): number {\r\n return this._count * this._price;\r\n }\r\n public get Count(): number {\r\n return this._count;\r\n }\r\n get MetricsId(): any | undefined {\r\n return this._lesson?.TariffId;\r\n }\r\n public get IsCanIncreaseCount(): boolean {\r\n return this._count < this._maxCount && this._cart.LeftCount > 0; \r\n }\r\n public get IsCanReduceCount(): boolean {\r\n return this._count > 1 ;\r\n }\r\n public get Lesson(): InstructorsGroupLesson {\r\n return this._lesson;\r\n }\r\n public get Dates(): Array {\r\n let result = new Array();\r\n\r\n if (this.Lesson.Date !== undefined) {\r\n result.push(moment.parseZone(this.Lesson.Date, 'YYYY-MM-DDTHH:mm').format('DD.MM.YYYY'));\r\n }\r\n\r\n return result;\r\n }\r\n public get AdditionalInfo(): any {\r\n return this._lesson;\r\n }\r\n\r\n\r\n get LessonCoachId(): number | null | undefined {\r\n return this._lessonCoachId;\r\n }\r\n get LessonLocationId(): number | null | undefined {\r\n return this._lessonLocationId;\r\n }\r\n\r\n constructor(lesson: InstructorsGroupLesson, count: number, price: number, cart: Cart, lessonCoachId?: number | null,\r\n lessonLocationId?: number | null, contractId?: number | null) {\r\n super(); \r\n\r\n this._beginTime = moment.parseZone(lesson.BeginTime, \"HH:mm:SS\").format(\"HH:mm\");\r\n this._endTime = moment.parseZone(lesson.EndTime, \"HH:mm:SS\").format(\"HH:mm\");\r\n this._date = moment.parseZone(lesson.Date, \"YYYY-MM-DD\").format(\"DD.MM.YYYY\");\r\n\r\n this._lesson = lesson;\r\n this._count = count;\r\n this._price = price;\r\n this._cart = cart;\r\n this._lessonCoachId = lessonCoachId;\r\n this._lessonLocationId = lessonLocationId;\r\n this._contractId = contractId;\r\n if (lesson.FreeMembers < this._maxCount)\r\n this._maxCount = lesson.FreeMembers;\r\n }\r\n\r\n public IncreaseCount(): ActionResult {\r\n if (this._count < this._maxCount && this._cart.LeftCount > 0) {\r\n this._count++;\r\n\r\n this._cartItemChanged.Send(this, WpEventArgs.Empty);\r\n\r\n return ActionResult.Success();\r\n }\r\n else\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Превышено допустимое количество для данного типа услуг\");\r\n }\r\n\r\n public ReduceCount(): ActionResult {\r\n if (this._count >= 2) {\r\n this._count--;\r\n\r\n this._cartItemChanged.Send(this, WpEventArgs.Empty);\r\n\r\n return ActionResult.Success();\r\n } else\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Достигнуто минимальное возможное количество\");\r\n }\r\n\r\n public IsConflictItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n\r\n public IsEqualsItem(item: CartItem): boolean {\r\n if (item.Type != CartItemTypes.InstructorsGroupLesson) return false;\r\n\r\n let cartItem = item as InstructorsGroupCartItem;\r\n\r\n return cartItem != null &&\r\n cartItem.Lesson.TariffId == this._lesson.TariffId &&\r\n cartItem.Lesson.Date == this._lesson.Date &&\r\n cartItem.Lesson.BeginTime == this._lesson.BeginTime &&\r\n cartItem.Lesson.EndTime == this._lesson.EndTime &&\r\n cartItem.Lesson.SkillType == this._lesson.SkillType;\r\n }\r\n\r\n public CombineItem(item: CartItem): ActionResult {\r\n let cartItem = item as InstructorsGroupCartItem;\r\n\r\n if (this._count + cartItem.Count > this._maxCount || this._cart.LeftCount < this._count + cartItem.Count)\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Превышено допустимое количество для данного типа услуг\");\r\n\r\n this._count = this._count + cartItem.Count;\r\n\r\n this._cartItemChanged.Send(this, WpEventArgs.Empty);\r\n\r\n return ActionResult.Success();\r\n }\r\n\r\n public GetReservationItem(): Array {\r\n return [new ReservationItem(this._count, ReservationItemTypes.GroupLesson,\r\n this._lesson.TariffId, moment.parseZone(this._lesson.Date).format(\"DD.MM.YYYY\"), null, this._lesson.Id, undefined, undefined, undefined, undefined,\r\n this.LessonCoachId, this.LessonLocationId, null, this._contractId)];\r\n }\r\n\r\n async RemoveItem(): Promise {\r\n return ActionResult.Success();\r\n }\r\n}","import { CartItemTypes } from './cart-item-types';\r\nimport { ActionResult, WpEventHandler, WpEvent, WpEventArgs } from './../Common';\r\nimport { createGuid } from './../Utility';\r\nimport ReservationItem from './../Sale/reservation-item';\r\n\r\nexport default abstract class CartItem {\r\n private _tempId: string;\r\n\r\n protected _cartItemChanged: WpEventHandler;\r\n\r\n abstract get Info(): string;\r\n abstract get Type(): CartItemTypes;\r\n abstract get Price(): number;\r\n abstract get Count(): number; \r\n abstract get Dates(): Array;\r\n abstract get AdditionalInfo(): any;\r\n abstract get MetricsId(): any | undefined;\r\n\r\n public get TempId(): string {\r\n return this._tempId;\r\n }\r\n \r\n public get CartItemChanged(): WpEvent {\r\n return this._cartItemChanged;\r\n }\r\n\r\n abstract get IsCanIncreaseCount(): boolean;\r\n abstract get IsCanReduceCount(): boolean;\r\n abstract get IsAvailable(): boolean;\r\n\r\n abstract IncreaseCount(): ActionResult;\r\n abstract ReduceCount(): ActionResult;\r\n\r\n abstract IsConflictItem(item: CartItem): boolean;\r\n abstract IsEqualsItem(item: CartItem): boolean;\r\n\r\n abstract CombineItem(item: CartItem): ActionResult;\r\n\r\n abstract GetReservationItem(): Array;\r\n\r\n abstract RemoveItem(): Promise;\r\n\r\n constructor() {\r\n this._tempId = createGuid();\r\n this._cartItemChanged = new WpEventHandler();\r\n }\r\n}\r\n","export default class PhoneConfirmCode {\r\n Id: number = 0;\r\n Phone: string = '';\r\n OrganizationId: number = 0;\r\n}","export default class UserPhoneConfirmBan {\r\n Id: number = 0;\r\n DateOfBan?: Date;\r\n ExpireDate?: Date;\r\n}","import { injectable, inject } from 'inversify';\r\n\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { ActionResult, ErrorTypes } from './../Common';\r\nimport { IdentitySymbols } from './../Identity/symbols';\r\nimport GlobalService from './..';\r\nimport IPhoneConfirmationProvider from './i-phone-confirmation-provider';\r\nimport { UserPhoneConfirmBan } from './';\r\nimport PhoneConfirmCode from './phone-confirm-code';\r\nimport { AppSettings } from '../Global/app-settings';\r\nimport { IContext } from './../Identity';\r\n\r\n@injectable()\r\nexport default class DefaultPhoneConfirmationProvider implements IPhoneConfirmationProvider {\r\n private _settings: AppSettings;\r\n private _context: IContext;\r\n\r\n constructor(@inject(IdentitySymbols.Context) context: IContext) {\r\n this._context = context;\r\n this._settings = GlobalService.GetSettings();\r\n }\r\n\r\n async GetCurrentBanAsync(): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/account/api/phoneconfirmation/currentban`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async GetCurrentCodeAsync(): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/account/api/phoneconfirmation/currentcode/?orgId=${this._settings.CurrentSite?.OrganizationId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async SendCodeAsync(phone: string): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.create>(`/account/api/phoneconfirmation/SendCode`, { phone: phone, orgId: this._settings.CurrentSite?.OrganizationId });\r\n\r\n if (response.result != null && response.result.Result != 0) {\r\n if (response.result.Result == 8) {\r\n return ActionResult.Failed(ErrorTypes.InvalidData, response.result.Message);\r\n }\r\n\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n }\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async ConfirmCodeAsync(code: string): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.create>(`/account/api/phoneconfirmation/confirmcode`, { code: code });\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async CodeLeftTimeAsync(codeId: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/account/api/phoneconfirmation/codelefttime/${codeId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async CancelCodeAsync(codeId: number): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.create >(`/account/api/phoneconfirmation/cancelcode`, { Id: codeId });\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n}\r\n\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n}","export const PhoneConfirmationSymbols = {\r\n PhoneConfirmationProvider: Symbol.for(\"PhoneConfirmationProvider\"),\r\n PhoneConfirmationService: Symbol.for(\"PhoneConfirmationService\")\r\n}","import { injectable, inject, id } from 'inversify';\r\n\r\nimport PhoneConfirmation from './phone-confirm-code';\r\nimport UserPhoneConfirmBan from './user-phone-confirm-ban';\r\nimport IPhoneConfirmationProvider from './i-phone-confirmation-provider';\r\n\r\nimport { PhoneConfirmationSymbols } from './symbols';\r\n\r\nimport { ActionResult, FiltringResult } from './../Common';\r\nimport { IPhoneConfirmationService, PhoneConfirmCode, } from './';\r\nimport { IIdentity, IdentitySymbols, IContext } from '../Identity';\r\nimport { IProfileProvider, ProfileSymbols } from '../Profile';\r\n\r\n\r\n@injectable()\r\nexport default class PhoneConfirmationService implements IPhoneConfirmationService {\r\n private readonly _provider: IPhoneConfirmationProvider;\r\n private readonly _context: IContext;\r\n private readonly _profileProvider: IProfileProvider;\r\n\r\n constructor(@inject(PhoneConfirmationSymbols.PhoneConfirmationProvider) provider: IPhoneConfirmationProvider,\r\n @inject(IdentitySymbols.Context) context: IContext,\r\n @inject(ProfileSymbols.ProfileProvider) profileProvider: IProfileProvider) {\r\n\r\n this._provider = provider;\r\n this._context = context;\r\n this._profileProvider = profileProvider;\r\n }\r\n\r\n async GetCurrentBanAsync(): Promise> {\r\n return await this._provider.GetCurrentBanAsync();\r\n }\r\n async GetCurrentCodeAsync(): Promise> {\r\n return await this._provider.GetCurrentCodeAsync();\r\n }\r\n async SendCodeAsync(phone: string): Promise> {\r\n return await this._provider.SendCodeAsync(phone);\r\n }\r\n async ConfirmCodeAsync(code: string): Promise> {\r\n let confirmResult = await this._provider.ConfirmCodeAsync(code);\r\n\r\n if (confirmResult.Success && this._context.CurrentIdentity != null &&\r\n this._context.CurrentIdentity.IsAuthentificated && confirmResult.Data != null) {\r\n await this._profileProvider.SetPhoneAsync(confirmResult.Data.Phone);\r\n this._context.CurrentIdentity.Phone = confirmResult.Data.Phone;\r\n }\r\n\r\n return confirmResult;\r\n }\r\n async CodeLeftTimeAsync(codeId: number): Promise> {\r\n return await this._provider.CodeLeftTimeAsync(codeId);\r\n }\r\n async CancelCodeAsync(codeId: number): Promise> {\r\n return await this._provider.CancelCodeAsync(codeId);\r\n }\r\n}","import { injectable, inject } from 'inversify';\r\n\r\nimport { ActionResult } from './../Common';\r\nimport { IdentitySymbols } from './../Identity/symbols';\r\nimport GlobalService, { IdentityPhoneConfirmationProvider } from './..';\r\nimport IPhoneConfirmationProvider from './i-phone-confirmation-provider';\r\nimport { UserPhoneConfirmBan } from './';\r\nimport PhoneConfirmCode from './phone-confirm-code';\r\nimport { AppSettings } from '../Global/app-settings';\r\nimport DefaultPhoneConfirmationProvider from './default-phone-confirmation-provider';\r\nimport { IContext } from './../Identity';\r\n\r\n@injectable()\r\nexport default class CombinePhoneConfirmationProvider implements IPhoneConfirmationProvider {\r\n private _settings: AppSettings;\r\n private _context: IContext;\r\n\r\n private _identityProvider: IdentityPhoneConfirmationProvider;\r\n private _defaultProvider: DefaultPhoneConfirmationProvider;\r\n\r\n constructor(@inject(IdentitySymbols.Context) context: IContext) {\r\n this._context = context;\r\n this._settings = GlobalService.GetSettings();\r\n this._identityProvider = new IdentityPhoneConfirmationProvider();\r\n this._defaultProvider = new DefaultPhoneConfirmationProvider(context);\r\n }\r\n\r\n async GetCurrentBanAsync(): Promise> {\r\n return this._context.CurrentIdentity.IsAuthentificated ?\r\n await this._defaultProvider.GetCurrentBanAsync() :\r\n await this._identityProvider.GetCurrentBanAsync();\r\n }\r\n\r\n async GetCurrentCodeAsync(): Promise> {\r\n return this._context.CurrentIdentity.IsAuthentificated ?\r\n await this._defaultProvider.GetCurrentCodeAsync() :\r\n await this._identityProvider.GetCurrentCodeAsync();\r\n }\r\n\r\n async SendCodeAsync(phone: string): Promise> {\r\n return this._context.CurrentIdentity.IsAuthentificated ?\r\n await this._defaultProvider.SendCodeAsync(phone) :\r\n await this._identityProvider.SendCodeAsync(phone);\r\n }\r\n\r\n async ConfirmCodeAsync(code: string): Promise> {\r\n return this._context.CurrentIdentity.IsAuthentificated ?\r\n await this._defaultProvider.ConfirmCodeAsync(code) :\r\n await this._identityProvider.ConfirmCodeAsync(code);\r\n }\r\n\r\n async CodeLeftTimeAsync(codeId: number): Promise> {\r\n return this._context.CurrentIdentity.IsAuthentificated ?\r\n await this._defaultProvider.CodeLeftTimeAsync(codeId) :\r\n await this._identityProvider.CodeLeftTimeAsync(codeId);\r\n }\r\n\r\n async CancelCodeAsync(codeId: number): Promise {\r\n return this._context.CurrentIdentity.IsAuthentificated ?\r\n await this._defaultProvider.CancelCodeAsync(codeId) :\r\n await this._identityProvider.CancelCodeAsync(codeId);\r\n }\r\n}","export enum ClubContractStatus {\r\n Disabled = 0,\r\n Enabled = 1\r\n}","export * from \"-!../../../../../node_modules/vuetify-loader/lib/loader.js??ref--4!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./wp-instructors-datepicker.vue?vue&type=style&index=0&id=6ac57bdc&prod&lang=scss&scoped=true&\"","import CartItem from './../Cart/cart-item';\r\nimport InstructorsPersonalLesson from './instructors-personal-lesson';\r\nimport { CartItemTypes } from './../Cart/cart-item-types';\r\nimport { ActionResult, ErrorTypes, WpEventArgs } from './../Common';\r\nimport { ReservationItemTypes, ReservationItem } from './../Sale';\r\nimport * as moment from 'moment';\r\nimport { Cart } from './..';\r\n\r\n\r\nexport default class InstructorsPersonalCartItem extends CartItem {\r\n private _beginTime: string = \"\";\r\n private _endTime: string = \"\";\r\n private _date: string = \"\";\r\n private _count: number;\r\n private _cart: Cart;\r\n private _lesson: InstructorsPersonalLesson;\r\n private _type: CartItemTypes = CartItemTypes.InstructorsPersonalLesson;\r\n private _contractId?: number | null;\r\n\r\n get IsAvailable(): boolean {\r\n return true;\r\n }\r\n public get Info(): string {\r\n return `${this._date} ${this.Lesson.TariffName} с ${this._beginTime} до ${this._endTime} (${this._count}) чел.`;\r\n }\r\n public get Type(): CartItemTypes {\r\n return this._type;\r\n }\r\n public get Price(): number {\r\n return this._count > 1 ? this._lesson.PriceForOne + this._lesson.PriceForSecond : this._lesson.PriceForOne;\r\n }\r\n get MetricsId(): any | undefined {\r\n return this._lesson?.TariffId;\r\n }\r\n public get Count(): number {\r\n return this._count;\r\n }\r\n public get IsCanIncreaseCount(): boolean {\r\n return this._count == 1 && this._cart.LeftCount > 0; \r\n }\r\n public get IsCanReduceCount(): boolean {\r\n return this._count == 2;\r\n }\r\n public get Lesson(): InstructorsPersonalLesson {\r\n return this._lesson;\r\n }\r\n public get Dates(): Array {\r\n let result = new Array();\r\n\r\n if (this.Lesson.Date !== undefined) {\r\n result.push(moment.parseZone(this.Lesson.Date, 'YYYY-MM-DDTHH:mm').format('DD.MM.YYYY'));\r\n }\r\n\r\n return result;\r\n }\r\n public get AdditionalInfo(): any {\r\n return this._lesson;\r\n }\r\n\r\n constructor(lesson: InstructorsPersonalLesson, count: number, cart: Cart, contractId?: number | null) {\r\n super(); \r\n\r\n this._beginTime = moment.parseZone(lesson.BeginTime, \"HH:mm:SS\").format(\"HH:mm\");\r\n this._endTime = moment.parseZone(lesson.EndTime, \"HH:mm:SS\").format(\"HH:mm\");\r\n this._date = moment.parseZone(lesson.Date, \"YYYY-MM-DD\").format(\"DD.MM.YYYY\");\r\n\r\n this._lesson = lesson;\r\n this._count = count;\r\n this._cart = cart;\r\n this._contractId = contractId;\r\n }\r\n\r\n public IncreaseCount(): ActionResult {\r\n if (this._count == 1 && this._cart.LeftCount > 0) {\r\n this._count = 2;\r\n\r\n this._cartItemChanged.Send(this, WpEventArgs.Empty);\r\n\r\n return ActionResult.Success();\r\n }\r\n else\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Превышено допустимое количество для данного типа услуг\");\r\n }\r\n\r\n public ReduceCount(): ActionResult {\r\n if (this._count = 2) {\r\n this._count = 1;\r\n\r\n this._cartItemChanged.Send(this, WpEventArgs.Empty);\r\n\r\n return ActionResult.Success();\r\n } else\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Достигнуто минимальное возможное количество\");\r\n }\r\n\r\n public IsConflictItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n\r\n public IsEqualsItem(item: CartItem): boolean {\r\n if (item.Type != CartItemTypes.InstructorsPersonalLesson) return false;\r\n\r\n let cartItem = item as InstructorsPersonalCartItem;\r\n\r\n return cartItem != null && cartItem.Lesson.Id == this._lesson.Id;\r\n }\r\n\r\n public CombineItem(item: CartItem): ActionResult {\r\n let cartItem = item as InstructorsPersonalCartItem;\r\n\r\n if (this._count == 2 || cartItem.Count == 2)\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Превышено допустимое количество для данного типа услуг\");\r\n\r\n this._count = 2;\r\n\r\n this._cartItemChanged.Send(this, WpEventArgs.Empty);\r\n\r\n return ActionResult.Success();\r\n }\r\n\r\n public GetReservationItem(): Array {\r\n return [new ReservationItem(this._count, ReservationItemTypes.PersonalLesson,\r\n this._lesson.TariffId, moment.parseZone(this._lesson.Date).format(\"DD.MM.YYYY\"), null, this._lesson.Id, null, null, null,\r\n null, null, null, null, this._contractId)]; \r\n }\r\n\r\n async RemoveItem(): Promise {\r\n return ActionResult.Success();\r\n }\r\n}","import Vue, { VueConstructor } from 'vue';\r\nimport { Prop, DefaultProps } from \"vue/types/options\";\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { CartItem, ICartService, CartSymbols, IMetricsService, MetricsSymbols, BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\nimport { MetricsEvents } from '../../../metrics-events-symbols';\r\n\r\nexport const wpCartItemProps = Vue.extend({\r\n props: {\r\n CartItem: Object as Prop\r\n }\r\n})\r\n\r\n@Component({ \r\n template: require(\"./wp-cart-item.html\")\r\n})\r\nexport default class WpCartItem extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpCartItemProps, Vue) {\r\n _metricsService!: IMetricsService;\r\n\r\n created() {\r\n // Moved this\r\n this._metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n }\r\n\r\n RemoveItem() {\r\n this._metricsService.RegistrateEvent(MetricsEvents.IncartRemove, this.CartItem?.MetricsId);\r\n this.$emit('RemoveItem', this.CartItem.TempId);\r\n }\r\n\r\n IncreaseCount() {\r\n this.CartItem.IncreaseCount();\r\n this._metricsService.RegistrateEvent(MetricsEvents.IncartPlus, this.CartItem?.MetricsId);\r\n }\r\n ReduceCount() {\r\n this.CartItem.ReduceCount();\r\n this._metricsService.RegistrateEvent(MetricsEvents.IncartMinus, this.CartItem?.MetricsId);\r\n }\r\n}\r\n\r\nexport class WpCartItemDictionary extends BaseSystemLocalizationDictionary {\r\n // No words here... yet...\r\n}","import { WpEventArgs } from './../Common';\r\n\r\nexport default class SibAuthorizationFailedEventArgs extends WpEventArgs{\r\n ErrorMessage: string = '';\r\n\r\n constructor(errorMessage: string) {\r\n super();\r\n this.ErrorMessage = errorMessage;\r\n }\r\n}","import GlobalService, { AccessToken, IIdentity, IContext, IdentityChangedEventArgs, AppSettings } from './..';\r\nimport { WpEvent, WpEventHandler, ErrorTypes } from './../Common';\r\nimport { UserManager, User } from 'oidc-client';\r\nimport SibUser from './sib-user';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { SibAppSettings } from './';\r\nimport SibAuthorizationFailedEventArgs from './sib-authorization-failed-event-args';\r\nimport { OIDCStorageStore } from './../Identity';\r\nvar popupTools = require('popup-tools');\r\n\r\nexport default class SibIdentity implements IIdentity, IContext {\r\n IsInitialized: boolean = false;\r\n _store: OIDCStorageStore;\r\n _settings: SibAppSettings;\r\n _sibUser?: SibUser;\r\n _user?: User | null; \r\n _manager: UserManager;\r\n _identityChanged: WpEventHandler;\r\n _sibAutorizationFailed: WpEventHandler;\r\n\r\n get AccessToken(): AccessToken {\r\n if (this._sibUser != null) {\r\n return new AccessToken(this._sibUser.Token, new Date());\r\n }\r\n\r\n let accessToken = this._user?.access_token ?? '';\r\n let date = this._user != null ? new Date(Date.now() + this._user.expires_in) : new Date();\r\n\r\n return new AccessToken(accessToken, date);\r\n }\r\n get IsAuthentificated(): boolean { \r\n return (this._user != null && this._user != undefined && !this._user.expired) ||\r\n this._sibUser != null;\r\n }\r\n get Username(): string {\r\n if (this._sibUser != null)\r\n return this._sibUser.Email;\r\n\r\n return this._user?.profile?.preferred_username ?? \"\";\r\n }\r\n get UserId(): string {\r\n if (this._sibUser != null)\r\n return this._sibUser.UserId;\r\n\r\n return this._user?.profile?.sub ?? \"\";\r\n }\r\n\r\n get SibAuthorizationFailed(): WpEvent {\r\n return this._identityChanged;\r\n }\r\n get IdentityChanged(): WpEvent {\r\n return this._identityChanged;\r\n }\r\n get CurrentIdentity(): IIdentity {\r\n return this;\r\n }\r\n\r\n get Phone() {\r\n return this._user?.profile?.phone_number;\r\n }\r\n\r\n set Phone(val: string | undefined) {\r\n if (this._user != null && this._user.profile != null) {\r\n this._user.profile.phone_number = val;\r\n }\r\n }\r\n\r\n async Initialize(appSettings: AppSettings, globalService: GlobalService): Promise {\r\n }\r\n\r\n constructor(manager: UserManager, store: OIDCStorageStore) {\r\n this._store = store;\r\n this._sibAutorizationFailed = new WpEventHandler();\r\n this._identityChanged = new WpEventHandler();\r\n this._manager = manager;\r\n let self = this;\r\n\r\n\r\n this._manager.events.addUserLoaded((user) => { self.UserSigninEvent(user) });\r\n this._manager.events.removeUserLoaded(() => { self.UserSignoutEvent() });\r\n this._manager.events.addUserSignedOut(() => { self.UserSignoutEvent() });\r\n this._manager.events.removeUserSignedOut(() => { self.UserSignoutEvent() });\r\n\r\n this._settings = GlobalService.GetSettings();\r\n\r\n this.TryRestoreUser();\r\n }\r\n\r\n SignIn(): void {\r\n this._manager.signinPopup();\r\n }\r\n\r\n SignOut(): void {\r\n this._manager.signoutPopup();\r\n }\r\n\r\n ChangeIdentity(identity: IIdentity) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n UserSigninEvent(user: User) {\r\n this._user = user;\r\n\r\n this._store.SaveStorage(this.AccessToken.Token);\r\n\r\n this._identityChanged.Send(this, new IdentityChangedEventArgs(this));\r\n }\r\n UserSignoutEvent() {\r\n this._store.SaveStorage(this.AccessToken.Token);\r\n\r\n this._user = undefined; \r\n\r\n this._identityChanged.Send(this, new IdentityChangedEventArgs(this));\r\n }\r\n\r\n SigInSib() {\r\n let self = this;\r\n let popupUrl = `${this._settings.SibAuthority}Authorize.aspx?source=${this._settings.CurrentSite?.Url}&redirect_uri=${this._settings.RedirectUri}&response_type=token&client_id=${this._settings.SibClientId}`;\r\n popupTools.popup(popupUrl, \"Arena Expert\", {\r\n width: 600,\r\n height: 700\r\n }, async (err: any, url: any) => {\r\n await self.SibUserSigned(err, url)\r\n });\r\n }\r\n async SibUserSigned(err: any, url: any) {\r\n if (err) {\r\n console.warn(err.message);\r\n return;\r\n }\r\n\r\n let params = this.ParseUrlFragment(url);\r\n if (params.error) {\r\n console.warn(params.error)\r\n return\r\n }\r\n\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {});\r\n let response = await client.create>(`/sib/user/authetificate/`, { Token: params.access_token, SiteId: this._settings.SiteId });\r\n\r\n if (response.result != null && response.result.Result != 0) {\r\n this._sibAutorizationFailed.Send(this, new SibAuthorizationFailedEventArgs(response.result.Message));\r\n }\r\n\r\n if (response.result != null && response.result.Data != null) {\r\n this._settings.SibId = response.result.Data.SibId;\r\n this._sibUser = response.result.Data; \r\n\r\n this._store.setItem('sib:user', JSON.stringify(response.result.Data));\r\n this._store.SaveStorage(this.AccessToken.Token);\r\n\r\n this._identityChanged.Send(this, new IdentityChangedEventArgs(this));\r\n }\r\n }\r\n\r\n ParseUrlFragment(value: string, delimiter = \"?\"): any {\r\n\r\n var idx = value.lastIndexOf(delimiter);\r\n if (idx >= 0) {\r\n value = value.substr(idx + 1);\r\n }\r\n\r\n if (delimiter === \"?\") {\r\n // if we're doing query, then strip off hash fragment before we parse\r\n idx = value.indexOf('#');\r\n if (idx >= 0) {\r\n value = value.substr(0, idx);\r\n }\r\n }\r\n\r\n var params: { [name: string]: string } = {},\r\n regex = /([^&=]+)=([^&]*)/g,\r\n m;\r\n\r\n var counter = 0;\r\n while (m = regex.exec(value)) {\r\n params[decodeURIComponent(m[1])] = decodeURIComponent(m[2].replace(/\\+/g, ' '));\r\n if (counter++ > 50) {\r\n return {\r\n error: \"Response exceeded expected number of parameters\"\r\n };\r\n }\r\n }\r\n\r\n for (var prop in params) {\r\n return params;\r\n }\r\n\r\n return {};\r\n }\r\n\r\n TryRestoreUser() {\r\n let self = this;\r\n this._store.RestoreStorage().then(() => {\r\n self._manager.getUser().then(user => {\r\n if (user != null) {\r\n self._user = user\r\n let args = new IdentityChangedEventArgs(self);\r\n self._identityChanged.Send(self, args);\r\n } else {\r\n let sibUser = this._store.getItem('sib:user');\r\n if (sibUser != null && sibUser != '') { \r\n this._sibUser = JSON.parse(sibUser);\r\n this._settings.SibId = this._sibUser != null ? this._sibUser.SibId : '';\r\n let args = new IdentityChangedEventArgs(self);\r\n }\r\n }\r\n self.IsInitialized = true;\r\n });\r\n });\r\n }\r\n}\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n}","export const SibSymbols = {\r\n SibContext: Symbol.for(\"SibContext\"),\r\n SibProvider: Symbol.for(\"SibProvider\")\r\n}","import Vue from 'vue';\r\nimport { Inject } from 'vue-property-decorator';\r\nimport ComponentVue from 'vue-class-component';\r\n\r\nimport GlobalService, {\r\n GlobalSymbols, LocalizationStaticDictionary, ILocalizationService, LocalizationSymbols,\r\n IDateHandler, DateHandlerSymbols, BaseSystemLocalizationDictionary, Localization,\r\n formatDateIsoToRu, formatTimeIsoToRu, formatPrice, INotificationService, NotificationSymbols\r\n} from 'web-platform-core-ui';\r\n\r\n@ComponentVue\r\nexport default class WpBaseComponent extends Vue {\r\n protected _notificationService!: INotificationService;\r\n _formatDateIsoToRu = formatDateIsoToRu;\r\n _formatTimeIsoToRu = formatTimeIsoToRu;\r\n _formatPrice = formatPrice;\r\n\r\n @Inject(GlobalSymbols.GlobalService)\r\n GlobalService!: GlobalService;\r\n\r\n Terms: T = {} as T;\r\n\r\n get DateHandler(): IDateHandler {\r\n return this.GlobalService.Get(DateHandlerSymbols.DateHandlerService);\r\n }\r\n\r\n get Locale(): Localization {\r\n return this.GlobalService.Get(LocalizationSymbols.LocalizationService).CurrentLocalization;\r\n }\r\n\r\n get LocalizationService(): ILocalizationService {\r\n return this.GlobalService.Get(LocalizationSymbols.LocalizationService);\r\n }\r\n\r\n constructor() {\r\n super();\r\n if (this.GetTermsKey != null) {\r\n let localizationService = this.GlobalService.Get(LocalizationSymbols.LocalizationService);\r\n let result = localizationService.GetStaticDictionary(Symbol.for(this.GetTermsKey()))\r\n if (result.Success && result.Data != null)\r\n this.Terms = result.Data.Terms;\r\n };\r\n\r\n };\r\n\r\n created(): void {\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n };\r\n\r\n protected GetTermsKey() {\r\n if (this.$options != null)\r\n return (this.$options)._componentTag;\r\n }\r\n\r\n // Save text to clipboard so it can be pasted with Ctrl+V or such\r\n protected async CopyToClipboard(text: string): Promise {\r\n try {\r\n if (!navigator.clipboard) {\r\n // Create text area so we can expose .select() method\r\n let textArea = document.createElement('textarea');\r\n // Add text to copy to clipboard to text area\r\n textArea.value = text;\r\n // Prevent scrolling with fixed position (Possibly top: 0 and left: 0 are needed)\r\n textArea.style.position = 'fixed';\r\n // Append textarea to body\r\n document.body.appendChild(textArea);\r\n // Focus and select text from textarea\r\n textArea.focus();\r\n textArea.select();\r\n // Copy to clipboard\r\n try { document.execCommand('copy') } catch (e) { console.error(e) }\r\n // Remove textarea as it's no longer needed\r\n document.body.removeChild(textArea);\r\n } else {\r\n await navigator.clipboard.writeText(text).then(() => { /* Success */ }, function (error) {\r\n console.error('Не удалось скопировать в буффер обмена', error);\r\n return false;\r\n });\r\n }\r\n return true;\r\n } catch (error) {\r\n console.error('We tried to copy text to clipboard but got theese shenanigans: ', error);\r\n };\r\n return false;\r\n };\r\n\r\n protected FormatPrice(num: number | string): string {\r\n let match = num.toString().replace(/ /g, \"\").split(\"\").reverse().join(\"\").match(/.{1,3}/g);\r\n if (match) {\r\n return match.join(\" \").split(\"\").reverse().join(\"\").toString();\r\n } else {\r\n return \"\";\r\n };\r\n };\r\n\r\n // For debugging purposes mostly...\r\n async Sleep(ms: number): Promise {\r\n await new Promise(r => setTimeout(r, ms));\r\n };\r\n};\r\n","import IInstructorsProvider from './i-instructors-provider';\r\nimport InstructorsProvider from './instructors-provider';\r\n\r\nimport IInstructorsService from './i-instructors-service';\r\nimport InstructorsService from './instructors-service';\r\nimport PersonalLessonsFilter from './personal-lessons-filter';\r\nimport InstructorsPersonalLesson from './instructors-personal-lesson';\r\nimport { InstructorsSymbols } from './symbols';\r\nimport { InstructorsGender } from './instructors-gender';\r\nimport InstructorsPersonalCartItem from './instructors-personal-cart-item';\r\nimport SkillType from './skill-type';\r\nimport InstructorsPersonalLessonPrice from './instructors-personal-lesson-price';\r\nimport InstructorTariffCategory from './instructor-tariff-category';\r\nimport InstructorsPlace from './instructors-places';\r\nimport GroupLessonsFilter from './group-lessons-filter';\r\nimport InstructorsGroupLesson from './instructors-group-lesson';\r\nimport InstructorsGroupCartItem from './instructors-group-cart-item';\r\nimport InstructorsGroupLessonPrice from './instructors-group-lesson-price';\r\nimport InstructorsBundlesGroupsLessons from './instructors-bundles-groups-lessons';\r\nimport InstructorsBundlesCartItem from './instructors-bundle-cart-item';\r\nimport InstructorsLessonsLocation from './instructors-lessons-location';\r\nimport { InstructorUsageType } from './instructor-usage-type';\r\nimport Instructor from './instructor';\r\nimport InstructorCategory from './instructor-category';\r\n\r\nexport {\r\n IInstructorsService, InstructorsService, InstructorsProvider, IInstructorsProvider, InstructorsSymbols,\r\n PersonalLessonsFilter, InstructorsPersonalLesson, InstructorTariffCategory, InstructorsPlace,\r\n InstructorsGender, InstructorsPersonalCartItem, SkillType, InstructorsPersonalLessonPrice,\r\n InstructorsGroupLesson, GroupLessonsFilter, InstructorsGroupCartItem, InstructorsGroupLessonPrice,\r\n InstructorsBundlesGroupsLessons, InstructorsBundlesCartItem, InstructorsLessonsLocation, InstructorUsageType,\r\n Instructor, InstructorCategory\r\n}","export default class WidgetStyle {\r\n Id: number = 0;\r\n Font?: string;\r\n Primary?: string;\r\n Secondary?: string;\r\n Accent?: string;\r\n Error?: string;\r\n Info?: string;\r\n Success?: string;\r\n Warning?: string;\r\n}","import { ErrorTypes } from './error-types';\r\n\r\nexport default class ActionResult {\r\n Success: boolean = false;\r\n ErrorMessage?: string;\r\n ErrorType?: ErrorTypes;\r\n Data?: T;\r\n\r\n static Success(): ActionResult {\r\n return { Success: true };\r\n };\r\n\r\n static SuccessData(data?: T): ActionResult {\r\n return { Success: true, Data: data };\r\n };\r\n\r\n static Failed(errorType: ErrorTypes, errorMessage?: string): ActionResult {\r\n return { Success: false, ErrorMessage: errorMessage, ErrorType: errorType };\r\n }\r\n\r\n static FailedData(errorType: ErrorTypes, data?: T, errorMessage?: string): ActionResult {\r\n return { Success: false, ErrorMessage: errorMessage, ErrorType: errorType, Data: data }; \r\n }\r\n}","import LoyaltyProgram from './loyalty-program';\r\nimport OrderDiscrount from './order-discount';\r\nimport OrderItem from './order-item';\r\nimport OrderItemAdditionalInfo from './order-item-additional-info';\r\nimport OrderItemDiscount from './order-item-discount';\r\nimport OrderSale from './order-sale';\r\nimport { LoyaltyProgramStatus } from './loyalty-program-status';\r\nimport { LoyaltyProgramType } from './loyalty-program-type';\r\nimport { DiscountType } from './discount-type';\r\nimport { OrderType } from './order-type';\r\nimport { OrderStatus } from './order-status';\r\nimport ReservationData from './reservation-data';\r\nimport ReservationItem from './reservation-item';\r\nimport { ReservationItemTypes } from './reservation-item-types';\r\nimport ISaleProvider from './i-saler-provider';\r\nimport SaleProvider from './sale-provider';\r\nimport ISaleService from './i-sale-service';\r\nimport SaleService from './sale-service';\r\nimport { SaleSymbols } from './symbols';\r\nimport PaymentForm from './payment-form';\r\nimport PaymentFormItem from './payment-form-item';\r\nimport OrderSaleState from './order-sale-state';\r\nimport PersonificationApiOrderItem from './personification-api-order-item';\r\nimport PersonSale from './person-sale';\r\nimport { OrderItemType } from './order-item-type';\r\nimport OrderDiscount from './order-discount';\r\nimport LockOrderInfo from './lock-order-info';\r\nimport DiscountProgram from './discount-program';\r\nimport PaymentSystem from './payment-system';\r\nimport { PaymentSystemType } from './payment-system-type';\r\nimport SiteAddtionalSettings from './site-additional-settings';\r\nimport BenefitAppSettings from './benefit-app-settings';\r\nimport BenefitSaleProvider from './benefit-sale-provider';\r\nimport BenefitSaleService from './benefit-sale-service';\r\nimport FreeSaleProvider from './free-sale-provider';\r\nimport PayAccountPayment from './pay-account-payment';\r\n\r\nexport {\r\n LoyaltyProgram, OrderDiscrount, OrderItem, OrderItemAdditionalInfo, OrderItemDiscount, OrderSale,\r\n LoyaltyProgramStatus, LoyaltyProgramType, DiscountType, OrderType, OrderStatus,\r\n ReservationData, ReservationItem, ReservationItemTypes, ISaleProvider,\r\n SaleProvider, ISaleService, SaleService, SaleSymbols, PaymentForm,\r\n PaymentFormItem, OrderSaleState, PersonificationApiOrderItem, PersonSale, OrderItemType,\r\n OrderDiscount, LockOrderInfo, DiscountProgram, PaymentSystem, PaymentSystemType,\r\n SiteAddtionalSettings, BenefitSaleService, BenefitSaleProvider, BenefitAppSettings,\r\n FreeSaleProvider, PayAccountPayment\r\n}","import { BarcodeType } from '../Common';\r\nimport SocialNetworkData from './social-network-data';\r\n\r\nexport default class IsdUserLoyalty {\r\n Id: number = 0;\r\n PersId: number = 0;\r\n TNodId: number = 0;\r\n FirstName: string = '';\r\n LastName: string = '';\r\n SecondName: string = '';\r\n Gender?: number;\r\n AddressId?: number;\r\n City: string = '';\r\n\r\n Phone: string = '';\r\n Birthdate?: Date;\r\n Balance: number = 0;\r\n Discount: string = '';\r\n MoneyBalance: number = 0;\r\n\r\n ProgramId: number = 0;\r\n ProgramName: string = '';\r\n RuleAddress: string = '';\r\n\r\n OrganizationId: number = 0;\r\n OrganizationSiteUrl: string = '';\r\n OrganizationName: string = '';\r\n OrganizationEmail: string = '';\r\n OrganizationPhone: string = '';\r\n\r\n EmailNotification: boolean = false;\r\n PushNotification: boolean = false;\r\n SmsNotification: boolean = false;\r\n\r\n CardNumber: string = '';\r\n BarcodeType: BarcodeType = BarcodeType.Code128B;\r\n\r\n SocialNetworks: Array = [];\r\n}","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n
\";","import { OrderStatus } from './order-status';\r\n\r\nexport default class OrderSaleState {\r\n public OrderId: number = 0;\r\n public Status: OrderStatus = OrderStatus.Reserved;\r\n}","import { DateHandlerSymbols, DateHandlerService } from './..';\r\n\r\nconst formatPrice = function (price: number): string {\r\n if (price !== undefined) \r\n return new Intl.NumberFormat('ru-RU').format(parseInt(price.toString())) + '₽';\r\n return '';\r\n \r\n}\r\nconst formatDateIsoToRu = function (date: string): string {\r\n\r\n let dateHandler = new DateHandlerService();\r\n if (date !== '') {\r\n return dateHandler.Parse(date, 'YYYY-MM-DDTHH:mm:ss').Format('DD.MM.YYYY');\r\n }\r\n return '';\r\n}\r\nconst formatTimeIsoToRu = function (date: string): string {\r\n\r\n let dateHandler = new DateHandlerService();\r\n if (date !== '') {\r\n return dateHandler.Parse(date, 'HH:mm:ss').Format('HH:mm');\r\n }\r\n return '';\r\n}\r\nconst formatDateTimeIsoToRu = function (date: string): string {\r\n \r\n let dateHandler = new DateHandlerService();\r\n if (date !== '') {\r\n return dateHandler.Parse(date, 'YYYY-MM-DDTHH:mm:ss').Format('DD.MM.YYYY HH:mm');\r\n }\r\n return '';\r\n}\r\n\r\nexport { formatPrice, formatDateIsoToRu, formatTimeIsoToRu, formatDateTimeIsoToRu }","export default class PersonIsdLoyaltyData {\r\n AddressId?: number;\r\n Birthdate: string | null = '';\r\n City: string = '';\r\n ConfirmCodeId: number = 0;\r\n Email?: string;\r\n FirstName: string = '';\r\n Gender?: number = 0;\r\n LastName: string = '';\r\n PersId: number = 0;\r\n Phone: string = '';\r\n SecondName: string = '';\r\n TNodId: number = 0;\r\n\r\n Id?: number = 0;\r\n LoyaltyId?: number = 0;\r\n};","export enum LoyaltyProgramStatus {\r\n // todo\r\n}","module.exports = \"
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n сменить\\r\\n \\r\\n \\r\\n
\";","export const ProfileSymbols = {\r\n ProfileService: Symbol.for(\"ProfileService\"),\r\n ProfileProvider: Symbol.for(\"ProfileProvider\")\r\n}","import IProfileService from './i-profile-service';\r\nimport UserProfile from './user-profile';\r\nimport { ActionResult } from './../Common';\r\nimport IProfileProvider from './i-profile-provider';\r\nimport { ProfileSymbols } from './symbols';\r\nimport { inject, injectable } from 'inversify';\r\n\r\n\r\n@injectable()\r\nexport default class DefaultProfileService implements IProfileService {\r\n private _profileProvider: IProfileProvider;\r\n\r\n constructor(@inject(ProfileSymbols.ProfileProvider) profileProvider: IProfileProvider) {\r\n this._profileProvider = profileProvider;\r\n }\r\n\r\n async GetProfileAsync(): Promise> {\r\n return await this._profileProvider.GetProfileAsync();\r\n }\r\n async EditProfileAsync(profile: UserProfile): Promise {\r\n return await this._profileProvider.EditProfileAsync(profile);\r\n }\r\n async ChangeEmailAsync(email: string): Promise {\r\n return await this._profileProvider.ChangeEmailAsync(email);\r\n }\r\n async SetPhoneAsync(phone: string): Promise {\r\n return await this._profileProvider.SetPhoneAsync(phone);\r\n }\r\n async ChangePasswordAsync(oldPassword: string, newPassword: string, confirmPassword: string): Promise {\r\n return await this._profileProvider.ChangePasswordAsync(oldPassword, newPassword, confirmPassword);\r\n }\r\n}","export default class UserProfile {\r\n FirstName: string = '';\r\n LastName: string = '';\r\n SecondName: string = '';\r\n Birthdate?: Date | null;\r\n Phone: string = '';\r\n}","export const LoyaltySymbols = {\r\n LoyaltyProvider: Symbol.for(\"LoyaltyProvider\"),\r\n LoyaltyNotificationService: Symbol.for(\"LoyaltyNotificationService\"),\r\n LoyaltyNotificationProvider: Symbol.for(\"LoyaltyNotificationProvider\")\r\n}","export enum ContractPeriod {\r\n cpAny = 0,\r\n cpDay = 1,\r\n cpWeek = 2,\r\n cpMonth = 3,\r\n cpQuarter = 4,\r\n cpSixMonth = 5,\r\n cpYear = 6,\r\n cpFixed = 7\r\n}","module.exports = \"\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ Terms.SignBtnText }}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n или\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ Terms.RegistrationLink }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n\";","export default class InstructorsGroupLesson {\r\n BeginTime?: string;\r\n BundleId?: number | null;\r\n Date?: string;\r\n EndTime?: string;\r\n ExistToContract: boolean = false;\r\n FreeMembers: number = 0;\r\n Id: number = 0;\r\n InstructorId: number = 0;\r\n MaxPersonsCount: number = 0;\r\n PlaceId: number = 0;\r\n SkillTypeId: number = 0;\r\n SkillType: string = '';\r\n TariffId: number = 0;\r\n TariffName: string = '';\r\n};","export default class TariffSale {\r\n TariffId: number = 0;\r\n Date: string = '';\r\n Count: number = 0;\r\n SeanceId?: string;\r\n Quota?: number;\r\n ReservedCount: number = 0;\r\n\r\n get LeftCount(): number | undefined {\r\n if (this.Quota != null) {\r\n let result = (this.Quota - this.Count) - this.ReservedCount;\r\n return result < 0 ? 0 : result;\r\n }\r\n\r\n return undefined;\r\n }\r\n}","import IDataProvider from './i-data-provider';\r\nimport { ActionResult, FiltringResult, BaseFilter } from './../Common';\r\nimport { Localization } from './../Localization';\r\nimport { injectable } from 'inversify';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { AppSettings } from '../Global/app-settings';\r\nimport GlobalService from '..';\r\n\r\n@injectable()\r\nexport default class DefaultCmsDataProvider implements IDataProvider {\r\n async GetEntitiesAsync(prefix: symbol, filter: BaseFilter, query: string, localization: Localization): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin);\r\n\r\n let settings = GlobalService.GetSettings();\r\n let result = new FiltringResult();\r\n\r\n try {\r\n let sorting = '';\r\n if (filter.Sorting != null)\r\n sorting = `&sortingMemberCode=${filter.Sorting.Member}&sortingDirection=${filter.Sorting.Mode}`\r\n\r\n let response = await client.get>(`cms/api/v2/${Symbol.keyFor(prefix)}${settings.CurrentSite?.OrganizationId}/objects/?localization=${localization}&pagingSkip=${(filter.Page - 1) * filter.PageCount}&pagingTake=${filter.PageCount}&platformid=${filter.PlatformId}${sorting}`);\r\n result.Entities = response.result ?? new Array();\r\n\r\n let total = Object.getOwnPropertyDescriptor(response.headers, 'paging-total')?.value as number;\r\n\r\n result.Page = filter.Page;\r\n result.PageCount = filter.PageCount;\r\n result.TotalCount = total ?? 0;\r\n } catch (ex) {\r\n console.error(ex);\r\n };\r\n return ActionResult.SuccessData>(result);\r\n };\r\n\r\n async FindEntityAsync(prefix: symbol, id: number, localization: Localization): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin);\r\n\r\n let settings = GlobalService.GetSettings();\r\n\r\n try {\r\n let response = await client.get(`cms/api/v2/${Symbol.keyFor(prefix)}${settings.CurrentSite?.OrganizationId}/objects/${id}`);\r\n\r\n if (response.result != null)\r\n return ActionResult.SuccessData(response.result);\r\n else\r\n return ActionResult.Success();\r\n } catch (ex) {\r\n console.error(ex);\r\n return ActionResult.Success();\r\n };\r\n };\r\n};","import { injectable, inject } from 'inversify';\r\n\r\nimport IDataProvider from './i-data-provider';\r\nimport WpCorePrefixes from './../wp-core-prefixes';\r\nimport { BaseFilter, FiltringResult, ActionResult } from './../Common';\r\nimport { LocalizationSymbols, ILocalizationService } from './../Localization';\r\nimport ICmsService from './i-cms-service';\r\nimport { CmsSymbols } from './symbols';\r\n\r\n@injectable()\r\nexport default class CmsService implements ICmsService {\r\n private _provider: IDataProvider;\r\n private _localizationService: ILocalizationService;\r\n\r\n constructor(@inject(CmsSymbols.DataProvider) provider: IDataProvider,\r\n @inject(LocalizationSymbols.LocalizationService) localizationService: ILocalizationService) {\r\n this._provider = provider;\r\n this._localizationService = localizationService;\r\n }\r\n\r\n async GetEntitiesAsync(prefix: symbol, filter: BaseFilter, query: string): Promise>> {\r\n let result = await this._provider.GetEntitiesAsync(prefix, filter, query, this._localizationService.CurrentLocalization);\r\n\r\n return result;\r\n }\r\n async FindEntityAsync(prefix: symbol, id: number): Promise> {\r\n let result = await this._provider.FindEntityAsync(prefix, id, this._localizationService.CurrentLocalization);\r\n\r\n return result;\r\n }\r\n}","export const OrderServiceSymbols = {\r\n OrderService: Symbol.for(\"OrderService\"),\r\n OrderProvider: Symbol.for(\"OrderProvider\")\r\n}","import { injectable, inject } from 'inversify';\r\n\r\nimport IOrderService from './i-order-service';\r\nimport IOrderProvider from './i-order-provider';\r\nimport Order from './order';\r\nimport { OrderServiceSymbols } from './symbols';\r\n\r\nimport { ILocalizationService, LocalizationChangedEventArgs, LocalizationSymbols } from './../Localization';\r\nimport { ActionResult, FiltringResult } from './../Common';\r\nimport { OrderDetails, OrdersFilter } from '.';\r\n\r\n\r\n@injectable()\r\nexport default class OrderService implements IOrderService {\r\n private readonly _provider: IOrderProvider;\r\n private readonly _localizationService: ILocalizationService;\r\n\r\n constructor(@inject(OrderServiceSymbols.OrderProvider) provider: IOrderProvider,\r\n @inject(LocalizationSymbols.LocalizationService) localizationService: ILocalizationService) {\r\n this._provider = provider;\r\n this._localizationService = localizationService;\r\n }\r\n\r\n async GetOrderListAsync(filter: OrdersFilter): Promise>> {\r\n return await this._provider.GetOrderListAsync(filter);\r\n }\r\n async GetOrderAsync(id: number): Promise> {\r\n return await this._provider.GetOrderAsync(id);\r\n }\r\n\r\n private LocalizationChange(sender: any, e: LocalizationChangedEventArgs) {\r\n\r\n }\r\n}","export default class Order {\r\n Id: number = 0;\r\n UserPhone: string = '';\r\n UserName: string = '';\r\n Site: string = \"\";\r\n Organization: string = \"\";\r\n Date: Date = new Date();\r\n Status: number = 0;\r\n Sum: number = 0;\r\n}","import { injectable, inject } from 'inversify';\r\n\r\nimport { IOrderProvider, Order, OrderDetails } from '.';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { FiltringResult, ActionResult, ErrorTypes } from './../Common';\r\nimport { IdentitySymbols, IContext } from './../Identity';\r\nimport OrdersFilter from './orders-filter';\r\nimport GlobalService from '..';\r\n\r\n@injectable()\r\nexport default class OrderProvider implements IOrderProvider {\r\n protected _context: IContext;\r\n constructor(@inject(IdentitySymbols.Context) context: IContext) {\r\n this._context = context;\r\n }\r\n\r\n async GetOrderListAsync(filter: OrdersFilter): Promise>> {\r\n\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n var queryParams = '';\r\n if (filter != null) {\r\n queryParams = `?page=${filter.Page}&pageCount=${filter.PageCount}&fromDate=${filter.FromDate}&toDate=${filter.ToDate}&connectionId=${filter.ConnectionId}&orderCode=${filter.OrderCode}`\r\n\r\n if (filter.Status != null) {\r\n filter.Status.forEach(x => {\r\n queryParams += `&status=${x}`;\r\n })\r\n }\r\n }\r\n\r\n let response = await client.get>>(`/account/api/orders/filter/${queryParams}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData>(ErrorTypes.InternalError, new FiltringResult());\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n async GetOrderAsync(id: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/account/api/orders/${id}`);\r\n console.log(response);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n}\r\n\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n}","export default class OrderDetails {\r\n Id: number = 0;\r\n Code: number = 0;\r\n UserName: string = \"\";\r\n Site: string = \"\";\r\n Organization: string = \"\";\r\n RegistredDate: string = \"\";\r\n Status: number = 0;\r\n CanSend: boolean = false;\r\n Sum: number = 0;\r\n TotalSum: number = 0;\r\n Discount: number = 0;\r\n CanRefund: boolean = false;\r\n RefundAddress: string = \"\";\r\n BonusSum: number = 0;\r\n Items?: Array;\r\n History?: Array;\r\n Transactions?: Array;\r\n}\r\nexport class OrderDetailItem {\r\n Id: number = 0;\r\n Code: number = 0;\r\n Info: string = \"\";\r\n AdditionalInfo: any = {};\r\n Price: string = \"\"; \r\n Tax: number = 0;\r\n Discount: string = \"\";\r\n Barcode?: string;\r\n Sum: number = 0;\r\n BonusSum: number = 0;\r\n AddiotionalInfo: any;\r\n TotalSum: number = 0;\r\n}\r\nexport class OrderHistoryItem {\r\n Id: number = 0;\r\n Date: string = \"\";\r\n Operation: number = 0;\r\n Result: number = 0;\r\n Description: string = \"\";\r\n}\r\nexport class OrderTransactionItem {\r\n Currency: number = 0;\r\n Desciption: string = \"\";\r\n Id: number = 0;\r\n PaySystem: number = 0;\r\n RRN?: string = \"\";\r\n RegistredDate: string = \"\";\r\n Result: number = 0;\r\n Sum: number = 0;\r\n TransactionDate: string = \"\";\r\n TransactionId: string = \"\";\r\n Type: number = 0;\r\n\r\n}","export default class OrdersFilter {\r\n Page: number = 1;\r\n PageCount: number = 20;\r\n FromDate?: string;\r\n ToDate?: string;\r\n Status?: Array;\r\n ConnectionId?: number;\r\n OrderCode?: number;\r\n}","import { injectable } from 'inversify';\r\n\r\nimport ITariffProvider from './i-tariff-provider';\r\nimport Tariff from './tariff';\r\nimport ActionResult from '../Common/action-result';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport GlobalService from './../Global/global-service';\r\nimport { ErrorTypes } from './../Common/error-types';\r\nimport TariffSale from './tariff-sale';\r\nimport TariffsBundle from './tariffs-bundle';\r\nimport CardAcceptableTariffs from './card-acceptable-tariffs';\r\nimport { AppSettings } from '../Global/app-settings';\r\n\r\n@injectable()\r\nexport default class TariffProvider implements ITariffProvider {\r\n _settings: AppSettings;\r\n\r\n // Don't forget to change it back to trfsrv.moipass.ru\r\n protected readonly _apiUrl: string;\r\n\r\n private GetClient(): RestClient {\r\n return new RestClient(\"wp-app\", window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": this._settings.SiteId,\r\n \"SessionId\": this._settings.SessionId\r\n }\r\n });\r\n };\r\n\r\n constructor() {\r\n this._settings = GlobalService.GetSettings();\r\n this._apiUrl = this._settings.IsDevVersion ? 'https://trfsrv-test.moipass.ru' : 'https://trfsrv.moipass.ru/';\r\n }\r\n\r\n async GetCardAcceptableTariffsAsync(card: string, userId: string): Promise> {\r\n let client: RestClient = this.GetClient();\r\n\r\n let response = await client.get>(`/websale/api/tariffs/card?mediaNum=${card}&userId=${userId}`);\r\n\r\n if (response.result != null && response.result.Result != 0) {\r\n if (response.result.Result == 2)\r\n return ActionResult.FailedData(ErrorTypes.MediaCardInProcess, response.result?.Data, undefined);\r\n\r\n if (response.result.Result == 9)\r\n return ActionResult.FailedData(ErrorTypes.MediaCardIsLocked, response.result?.Data, undefined);\r\n\r\n if (response.result.Result == 10)\r\n return ActionResult.FailedData(ErrorTypes.MediaCardNotFound, response.result?.Data, undefined);\r\n\r\n if (response.result.Result == 11)\r\n return ActionResult.FailedData(ErrorTypes.MediaCardExpired, response.result?.Data, undefined);\r\n\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data, response.result.Message);\r\n };\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n };\r\n\r\n async GetTariffsAsync(): Promise>> {\r\n let client: RestClient = this.GetClient();\r\n\r\n let response = await client.get>>(`/websale/api/tariffs`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data, response.result?.Message);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n };\r\n\r\n async GetTariffsBundlesAsync(): Promise>> {\r\n let client: RestClient = this.GetClient();\r\n\r\n let response = await client.get>>(`/websale/api/tariffsbundles`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n };\r\n\r\n async GetAvailableTariffsAsync(date: string): Promise>> {\r\n let client: RestClient = this.GetClient();\r\n\r\n let response = await client.get>>(`/websale/api/tariffs/available?Date=${date}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n };\r\n\r\n async GetTariffSalesAsync(date: string, tariffs: Array): Promise>> {\r\n let client: RestClient = this.GetClient();\r\n\r\n let tariffsString = '';\r\n for (let i = 0; i < tariffs.length; i++) {\r\n tariffsString += '&tariffsId=' + tariffs[i];\r\n };\r\n let response = await client.get>>(`/websale/api/tariffs/sales?date=${date}${tariffsString}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n };\r\n\r\n async GetSingleTariffSalesAsync(date: string, tariffId: number, seanceId?: string): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SessionId\": this._settings.SessionId\r\n }});\r\n\r\n let response = await client.get>(`/trfsrv/api/tariffs/${tariffId}/sales?date=${date}&seanceId=${seanceId != null ? seanceId : ''}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n };\r\n\r\n async GetTariffPrice(date: string, tariffId: number, seanceId?: string): Promise {\r\n let address = GlobalService.GetSettings().IsDevVersion ? 'https://trfsrv-test.moipass.ru/' : 'https://trfsrv.moipass.ru/';\r\n\r\n let client: RestClient = new RestClient('wp-app', address, [], {\r\n headers: {\r\n \"SessionId\": this._settings.SessionId\r\n }});\r\n\r\n let seanceParam = seanceId != null ? `&seanceId=${seanceId}` : ``;\r\n let response = await client.get>(`/api/tariffs/price?id=${tariffId}&date=${date}${seanceParam}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data, response.result?.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n };\r\n\r\n // ����� ������ - http://redmine.isd.su/issues/6843\r\n // ������� ��������:\r\n // https://trfsrv-test.moipass.ru/api/tariffs/all/prices?id=1493&date=15.02.2022\r\n // https://trfsrv-test.moipass.ru/api/tariffs/all/capacities?id=1493&date=15.02.2022\r\n\r\n /*\r\n * ��������� ���� �� ������ ������ ����� ��������\r\n * \r\n * ������ ������:\r\n * ID ������: { ����, ��������� �������� (0 - ��, !0 - ������), ��������� �� ������ }\r\n * {\r\n * 673432: { Data: 100, Result: 0, Message: null },\r\n * 673425: { Data: 120, Result: 0, Message: null },\r\n * 274252: { Data: 100, Result: 0, Message: null }\r\n * }\r\n */\r\n async GetTariffsAllPrices(id: number, date: string): Promise {\r\n let client: RestClient = new RestClient('wp-app', this._apiUrl, [], {\r\n headers: {\r\n \"SiteId\": this._settings.SiteId,\r\n \"SessionId\": this._settings.SessionId\r\n }});\r\n let response = await client.get>(`/api/tariffs/all/prices?id=${id}&date=${date}`);\r\n return response.result != null ? ActionResult.SuccessData(response.result) : ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n};\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n};\r\n","import Vue, { VueConstructor } from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { Prop, DefaultProps } from 'vue/types/options';\r\nimport GlobalService, { ArenaSeance, IArenaService, ArenaSymbols, AppSettings, BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\nimport { formatDateTimeIsoToRu } from 'web-platform-core-ui/src/Utility/format';\r\n\r\nexport const wpArenaSeanceItemProp = Vue.extend({\r\n props: {\r\n Seance: Object as Prop,\r\n }\r\n}) \r\n\r\n@Component({\r\n template: require(\"./wp-arena-seance-item.html\")\r\n})\r\nexport default class WpArenaSeanceItem extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, Vue, wpArenaSeanceItemProp) {\r\n private _arenaService!: IArenaService;\r\n\r\n _formatDateTimeIsoToRu = formatDateTimeIsoToRu;\r\n \r\n MinPrice: number = 0;\r\n MaxPrice: number = 0;\r\n\r\n async mounted() {\r\n this._arenaService = this.GlobalService.Get(ArenaSymbols.ArenaService);\r\n\r\n let seanceTariffs = await this._arenaService.GetTariffsAsync(this.Seance.Id);\r\n if (seanceTariffs.Data !== undefined) {\r\n this.MinPrice = Math.min.apply(Math, seanceTariffs.Data.map(function (x) { return x.MinPrice; }));\r\n this.MaxPrice = Math.max.apply(Math, seanceTariffs.Data.map(function (x) { return x.MaxPrice; }));\r\n }\r\n }\r\n\r\n Selected() {\r\n this.$emit(\"SeanceSelected\", this.Seance);\r\n }\r\n}\r\n\r\nexport class WpArenaSeanceItemDictionary extends BaseSystemLocalizationDictionary {\r\n TicketPrice: string = '';\r\n PricesLoading: string = '';\r\n CurrencyIcon: string = '';\r\n}","module.exports = \"\\r\\n\\r\\n \\r\\n

{{ OrderItem.Info }}

\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\";","module.exports = \"
\\r\\n\\r\\n \\r\\n
\\r\\n

Вы можете связаться с предложениями или замечаниями по приложению через e-mail или оставить отзыв в {{ StoreName }}.

\\r\\n \\r\\n \\r\\n mdi-email Написать нам на e-mail\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\";","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Проблема с подключением к интернету\\r\\n
\\r\\n
\\r\\n
\\r\\n
\";","import './wp-arena-minimap.scss';\r\n\r\nimport Vue, { VueConstructor } from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { Prop, DefaultProps } from 'vue/types/options';\r\nimport WpBaseComponent from '../../../../wp-base-component';\r\nimport { Watch } from 'vue-property-decorator';\r\nimport { Transform } from 'panzoom';\r\nimport html2canvas from 'html2canvas';\r\nimport GlobalService from 'web-platform-core-ui/src/Global/global-service';\r\nimport { AppSettings } from 'web-platform-core-ui/src/Global/app-settings';\r\n\r\nexport const wpArenaMinimapProp = Vue.extend({\r\n props: {\r\n data: Object as Prop,\r\n trigger: Boolean,\r\n transform: Object as Prop,\r\n arenaposition: Number,\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-arena-minimap.html\")\r\n})\r\nexport default class WpArenaMinimap extends mixins(WpBaseComponent, Vue, wpArenaMinimapProp) {\r\n Settings!: AppSettings;\r\n Lens: Lens | null = null;\r\n Map!: HTMLElement;\r\n Viewport!: HTMLElement;\r\n Width: number = 0;\r\n MaxWidth: number = 320;\r\n Height: number = 0;\r\n TouchDown: boolean = false;\r\n AspectRatio: number = 1;\r\n MinimapVisible: boolean = true;\r\n MinimapEnabled: boolean = true;\r\n\r\n @Watch(\"trigger\")\r\n Trigger(): void {\r\n if (!this.transform || !this.Lens) return;\r\n this.Lens.Navigate(this.transform, this.Viewport);\r\n };\r\n\r\n @Watch(\"data\")\r\n DataChanged(n: any): void {\r\n if (!this.Map) return;\r\n this.RenderMinimap();\r\n };\r\n\r\n @Watch(\"transform\")\r\n TransformChanged(T: Transform): void {\r\n if (this.Lens) this.Lens.Navigate(T, this.Viewport);\r\n };\r\n\r\n created(): void {\r\n this.Settings = GlobalService.GetSettings();\r\n this.MinimapEnabled = this.Settings.Minimap;\r\n };\r\n\r\n mounted(): void {\r\n if (!this.MinimapEnabled) return;\r\n this.Map = this.$refs.minimap;\r\n this.Map.addEventListener(\"wheel\", (e: WheelEvent) => {\r\n e.preventDefault();\r\n this.$emit(\"WheelEvent\", e);\r\n });\r\n this.Viewport = document.getElementById(\"seats_wrap\") as HTMLElement;\r\n };\r\n\r\n protected MinimapClick(e: PointerEvent, smooth?: boolean): void {\r\n if (!this.Lens) return;\r\n if (smooth) {\r\n this.$emit(\"MoveSmooth\", this.Lens.Move(e));\r\n } else {\r\n this.$emit(\"Move\", this.Lens.Move(e));\r\n };\r\n };\r\n\r\n protected MouseUp(e: any): void {\r\n if (this.TouchDown) {\r\n this.MinimapClick(e);\r\n this.TouchDown = false;\r\n };\r\n };\r\n\r\n protected MouseMove(e: any): void {\r\n if (this.TouchDown && this.Lens) {\r\n this.Lens.Move(e, true);\r\n };\r\n };\r\n\r\n protected RenderMinimap(): void {\r\n // Converting div to canvas to render seats\r\n console.log(\"Rendering minimap...\");\r\n\r\n if (!html2canvas) {\r\n console.log(html2canvas);\r\n console.error(\"html2canvas is not installed\");\r\n return;\r\n };\r\n\r\n let seats_block = document.getElementById(\"seats_block\");\r\n let aspectRatio = this.Settings.MinimapAspect;\r\n if (this.MinimapEnabled && seats_block) {\r\n html2canvas(seats_block, {\r\n scale: aspectRatio,\r\n }).then((result: any) => {\r\n this.AspectRatio = 1 / aspectRatio;\r\n result.style.width = \"30vw\";\r\n result.style.height = \"30vh\";\r\n this.Map.appendChild(result);\r\n this.Lens = Lens.Create(this.Viewport, this.AspectRatio);\r\n this.Lens.UpdateSize();\r\n });\r\n };\r\n };\r\n};\r\n//todo: линза уезжает за пределы миникарты после уменьшения размера, хз как фиксить пока\r\nclass Lens {\r\n private static Instance: Lens;\r\n private x: number = 0;\r\n private y: number = 0;\r\n private s: number = 1;\r\n private Width: number = 100;\r\n private Height: number = 100;\r\n private Viewport!: HTMLElement;\r\n private AspectRatio: number = 1;\r\n // This is width of rows to the left of original map\r\n // Should be found with query selector, not hardcoded\r\n SidebarWidth: number = 35;\r\n\r\n private constructor() {\r\n // Disable new() keyword\r\n };\r\n\r\n static Create(viewport: HTMLElement, aspectRatio?: number): Lens {\r\n if (!this.Instance) this.Instance = new Lens();\r\n this.Instance.Viewport = viewport;\r\n if (aspectRatio) this.Instance.AspectRatio = aspectRatio;\r\n return this.Instance;\r\n };\r\n\r\n Navigate(T: Transform, viewport: HTMLElement): void {\r\n this.x = (0 - T.x / this.AspectRatio + 35 / this.AspectRatio) / T.scale;\r\n this.y = 0 - T.y / this.AspectRatio / T.scale;\r\n this.s = T.scale;\r\n this.UpdateSize();\r\n };\r\n\r\n UpdateSize(): void {\r\n this.Width = (this.Viewport.clientWidth / this.AspectRatio / this.s - (this.SidebarWidth / this.AspectRatio / this.s)) / 2;\r\n this.Height = this.Viewport.clientHeight / this.AspectRatio / this.s / 7;\r\n };\r\n\r\n Move(e: PointerEvent, update?: boolean): any {\r\n let t = {\r\n x: (e.offsetX - this.Width / 2) * this.AspectRatio,\r\n y: (e.offsetY - this.Height / 2) * this.AspectRatio,\r\n scale: this.s\r\n };\r\n if (update) {\r\n this.x = e.offsetX - this.Width / 2;\r\n this.y = e.offsetY - this.Height / 2;\r\n };\r\n return t;\r\n };\r\n};","import './wp-arena-seats.scss';\r\n\r\nimport Vue, { VueConstructor } from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\n\r\nimport panzoom, { PanZoom, PanZoomController, PanZoomOptions, Transform } from 'panzoom';\r\n\r\nimport GlobalService, { ArenaSeatsList, ArenaPosition, ArenaSector, ArenaSeat, ArenaSeance, ArenaTariff, AppSettings, IArenaService, ArenaSymbols, Cart, ArenaTariffOption, BaseSystemLocalizationDictionary, WpCorePrefixes, ICmsService, CmsSymbols, BaseFilter } from 'web-platform-core-ui';\r\nimport { Prop, DefaultProps } from 'vue/types/options';\r\nimport { PropSync, Watch } from 'vue-property-decorator';\r\nimport WpArenaMinimap from './WpArenaMinimap/wp-arena-minimap';\r\n\r\nVue.component(\"wp-arena-minimap\", WpArenaMinimap);\r\n\r\nexport const wpArenaSeatsProp = Vue.extend({\r\n props: {\r\n Cart: Object as Prop,\r\n ArenaText: String,\r\n ArenaPosition: Number,\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-arena-seats.html\")\r\n})\r\nexport default class WpArenaSeats extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, Vue, wpArenaSeatsProp) {\r\n private _arenaService!: IArenaService;\r\n PanTransform: Transform | null = null;\r\n\r\n ShowOptions: boolean = false;\r\n SelectedSeatTariff: ArenaTariff = new ArenaTariff();\r\n SeatReservateFunc: any = {};\r\n\r\n Settings!: AppSettings;\r\n Seats: ArenaSeat[][] = [];\r\n Tariffs: Array = [];\r\n SeatsList: ArenaSeatsList = new ArenaSeatsList();\r\n TariffColor: { [TariffCode: number]: string; } = {};\r\n\r\n Sidebar: boolean = true;\r\n Panning: boolean = false;\r\n Zooming: boolean = false;\r\n Buying: boolean = false;\r\n Loading: boolean = false;\r\n\r\n SeatSize: number = 40;\r\n\r\n MaxX: number = 0;\r\n MaxY: number = 0;\r\n MapWrap!: HTMLElement | any | null; // This may cause problems in the future with \"any\" option. Needs investigation.\r\n MapBlock!: HTMLElement | null;\r\n MapSeats!: Array | null;\r\n Map?: any;\r\n Zoom: number = 1;\r\n PanZoom!: PanZoom;\r\n\r\n MiniMap!: HTMLElement | null;\r\n MiniMapViewport!: HTMLElement | null;\r\n MinimapVisible: boolean = true;\r\n StickySeats!: HTMLElement | null;\r\n\r\n TooltipTariff: ArenaTariff = new ArenaTariff();\r\n TooltipSeat: ArenaSeat = new ArenaSeat();\r\n TooltipStyle: string = 'display:none';\r\n\r\n @PropSync('sector', { type: Object }) Sector!: ArenaSector;\r\n @PropSync('seance', { type: Object }) Seance!: ArenaSeance;\r\n\r\n @Watch('Sector')\r\n async OnSectorChange(sector: ArenaSector) {\r\n this.Sector = sector;\r\n await this.RenderSeats();\r\n };\r\n\r\n @Watch('Seance')\r\n async OnSeanceChange(seance: ArenaSeance) {\r\n this.Seance = seance;\r\n await this.RenderSeats();\r\n };\r\n\r\n created(): void {\r\n this.Settings = GlobalService.GetSettings();\r\n this._arenaService = this.GlobalService.Get(ArenaSymbols.ArenaService);\r\n };\r\n\r\n async mounted(): Promise {\r\n await this.RenderSeats();\r\n };\r\n\r\n SetBuying(buying: boolean): void {\r\n this.Buying = buying;\r\n };\r\n\r\n async RenderSeats() {\r\n this.Loading = true;\r\n this.Tariffs = [];\r\n if (this.Sector != null && this.Seance != null) {\r\n let seats = await this._arenaService.GetSeatsAsync(this.Seance.Id, this.Sector.SectorCode);\r\n let options: Array = [];\r\n\r\n if (seats.Success && seats.Data != null) {\r\n this.HandlingData(seats.Data.Places);\r\n this.SeatsList = seats.Data;\r\n seats.Data.Tariffs.forEach(x => {\r\n if (seats.Data?.Places.some(y => y.TariffCode == x.TariffCode)) {\r\n if (x.Options != null && x.Options.length > 0) {\r\n options = options.concat(x.Options);\r\n }\r\n\r\n this.Tariffs.push(x);\r\n }\r\n });\r\n let i = 1;\r\n this.Tariffs.forEach(x => {\r\n this.TariffColor[x.TariffCode] = `place-type-${i}`;\r\n i++;\r\n });\r\n };\r\n\r\n let cmsService = this.GlobalService.Get(CmsSymbols.CmsService);\r\n let result = await cmsService.GetEntitiesAsync(WpCorePrefixes.ArenaTariffOptionNames, new BaseFilter(), '');\r\n\r\n if (result.Success && result.Data != null) {\r\n options.forEach(x => {\r\n let option = result.Data?.Entities.find(opt => opt.OptionCode == x.OptionCode);\r\n if (option != null) x.Name = option.Name;\r\n });\r\n };\r\n\r\n this.MapZoom();\r\n this.Loading = false;\r\n };\r\n };\r\n\r\n get ArenaPositionStyle(): string {\r\n if (this.ArenaPosition == ArenaPosition.Top) return 'arena-top';\r\n if (this.ArenaPosition == ArenaPosition.Bottom) return 'arena-bottom';\r\n if (this.ArenaPosition == ArenaPosition.Left) return 'arena-left';\r\n else return 'arena-right';\r\n };\r\n\r\n get ArenaPositionMiniMapStyle(): string {\r\n if (this.ArenaPosition == ArenaPosition.Top) return 'mini-top';\r\n if (this.ArenaPosition == ArenaPosition.Bottom) return 'mini-bottom';\r\n if (this.ArenaPosition == ArenaPosition.Left) return 'mini-left';\r\n else return 'mini-right';\r\n };\r\n\r\n UpdateMiniMapStyle(): void {\r\n if (this.PanZoom !== undefined && this.MiniMapViewport !== undefined && this.MiniMap !== undefined) {\r\n let MapWrapWidth = this.MapWrap!.clientWidth;\r\n let MapWrapHeight = this.MapWrap!.clientHeight;\r\n\r\n let MapBlockWidth = this.MapBlock!.clientWidth;\r\n let MapBlockHeight = this.MapBlock!.clientHeight;\r\n\r\n let MiniMapWidth = this.MiniMap!.clientWidth;\r\n let MiniMapHeight = this.MiniMap!.clientHeight;\r\n\r\n let ViewportWidth = MiniMapWidth / MapBlockWidth / this.Zoom * MapWrapWidth;\r\n let ViewportHeight = MiniMapHeight / MapBlockHeight / this.Zoom * MapWrapHeight;\r\n\r\n let Transform = this.PanZoom!.getTransform();\r\n let TransformX = Transform.x;\r\n let TransformY = Transform.y;\r\n\r\n let ViewportLeft = MiniMapWidth / MapBlockWidth / this.Zoom * TransformX * -1;\r\n let ViewportTop = MiniMapHeight / MapBlockHeight / this.Zoom * TransformY * -1;\r\n\r\n if (ViewportWidth > MiniMapWidth) {\r\n ViewportWidth = MiniMapWidth;\r\n ViewportLeft = 0;\r\n };\r\n if (ViewportHeight > MapWrapHeight) {\r\n ViewportHeight = MapWrapHeight;\r\n ViewportTop = 0;\r\n };\r\n this.MiniMapViewport?.setAttribute('style', 'width: ' + ViewportWidth + 'px; height: ' + ViewportHeight + 'px; left:' + ViewportLeft + 'px; top:' + ViewportTop + 'px');\r\n };\r\n };\r\n\r\n SeatMouseEnter(data: any): void {\r\n // Check if data has a tariff inside, so we can pull up the tooltip. Look for a better solution\r\n if (data.tariff) {\r\n this.TooltipSeat = data.seat;\r\n this.TooltipTariff = data.tariff;\r\n //this.TooltipStyle = `left: ${data.left - 55}px; top: ${data.top - 65}px; display:block`;\r\n this.TooltipStyle = `left: ${data.left}px; top: ${data.top}px; display: block; transform: Translate(-50%, -150%);`;\r\n };\r\n };\r\n\r\n SeatMouseLeave(): void {\r\n // If there is NO tooltip this will return \"is undefined\" error. Look for a better solution\r\n if (this.TooltipTariff) this.TooltipStyle = 'display:none';\r\n };\r\n\r\n ShowTariffOptions(data: any): void {\r\n this.SelectedSeatTariff = data.tariff;\r\n this.ShowOptions = true;\r\n this.SeatReservateFunc = data.reservateFunc;\r\n };\r\n\r\n OptionSelected(option: ArenaTariffOption) {\r\n this.ShowOptions = false;\r\n this.SeatReservateFunc(option);\r\n };\r\n\r\n ZoomIn(): void {\r\n if (this.PanZoom !== undefined && this.MapWrap !== undefined) {\r\n // Changed custom code to panzoom library method. Comment marked for deletion\r\n this.PanZoom.zoomTo(this.MapWrap.clientWidth / 2, this.MapWrap.clientHeight / 2, 1.25);\r\n };\r\n this.TriggerZoom();\r\n };\r\n\r\n ZoomOut(): void {\r\n if (this.PanZoom !== undefined && this.MapWrap !== undefined) {\r\n // Changed custom code to panzoom library method. Comment marked for deletion\r\n this.PanZoom.zoomTo(this.MapWrap?.clientWidth / 2, this.MapWrap?.clientHeight / 2, 0.75);\r\n };\r\n this.TriggerZoom();\r\n };\r\n\r\n SetStickySeats(): void {\r\n if (this.PanZoom !== undefined) {\r\n let StickySeatsDivs = document.querySelectorAll('#sticky_seats div');\r\n\r\n let Transform = this.PanZoom.getTransform();\r\n if (this.StickySeats !== null) {\r\n this.StickySeats.setAttribute('style', 'top:' + (Transform.y + (47 * Transform.scale)) + 'px;');\r\n }\r\n if (StickySeatsDivs.length !== null) {\r\n let that = this;\r\n StickySeatsDivs.forEach(function (element: any) {\r\n element.setAttribute('style', 'height:' + that.Zoom * 50 + 'px;line-height:' + that.Zoom * 50 + 'px;');\r\n });\r\n };\r\n };\r\n };\r\n\r\n GetSeatMiniMapStyle(y: number, x: number) {\r\n let seat = this.Seats[y - 1][x - 1];\r\n if (seat === undefined) return 'mini-map-empty';\r\n if (seat.IsFree) return `mini-map-free ${this.TariffColor[seat.TariffCode]}`\r\n else return `mini-map-notfree`\r\n };\r\n\r\n protected HandlingData(arenaSeats: Array): void {\r\n this.MaxX = Math.max(...arenaSeats.map(x => x.X));\r\n this.MaxY = Math.max(...arenaSeats.map(x => x.Y));\r\n\r\n for (let y = 0; y < this.MaxY; y++) {\r\n let row = [];\r\n for (let x = 0; x < this.MaxX; x++) {\r\n let seat = arenaSeats.find(item => item.X == x + 1 && item.Y == y + 1);\r\n if (seat != null) row[x] = seat;\r\n };\r\n this.Seats[y] = row;\r\n };\r\n };\r\n\r\n protected MapZoom(): void {\r\n if (!panzoom) {\r\n console.log(panzoom);\r\n console.error(\"PanZoom is not installed\");\r\n return;\r\n };\r\n\r\n let that = this;\r\n //this.MapBlock = document.getElementById('seats_block');\r\n this.MapBlock = document.getElementById('svgArena');\r\n this.MapWrap = document.getElementById('seats_wrap');\r\n this.StickySeats = document.getElementById('sticky_seats');\r\n\r\n this.MiniMap = document.getElementById('mini_map');\r\n this.MiniMapViewport = document.getElementById('mini_map_viewport');\r\n\r\n /* CREATION OF THE MAP IS HERE. This includes paning and zooming functionality. */\r\n\r\n if (this.MapBlock !== null && this.MapWrap !== null && this.StickySeats !== null) {\r\n\r\n // Instantiate a panzoom object on this.PanZoom object which allows zooming/panning (sadly not both at the same time)\r\n this.PanZoom = panzoom(this.MapBlock, {\r\n bounds: true,\r\n minZoom: 1,\r\n maxZoom: 3,\r\n zoomSpeed: 0.065, // This affects wheel zoom\r\n initialZoom: this.Zoom,\r\n smoothScroll: true,\r\n transformOrigin: { x: 0.5, y: 0.5 },\r\n });\r\n\r\n this.MapWrap.addEventListener(\"wheel\", function () {\r\n // Catch wheel events to stop zooming, since we don't really have any problems with using zoom on PC (or with mouse)\r\n that.Zooming = false;\r\n // Bug fix - sidemap will also be updated on mouse wheel event\r\n updateSideMap();\r\n });\r\n\r\n this.MapWrap.addEventListener(\"touchend\", function () {\r\n // THIS is a panzoom fix. We catch touchend event (doesn't work everywhere, look for a better solution)\r\n // To flag zooming as false. The \"zoom\" event described below causes an intervention like this in console:\r\n // [Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive\r\n\r\n setTimeout(function () {\r\n that.Zooming = false;\r\n updateSideMap();\r\n }, 250);\r\n });\r\n\r\n this.PanZoom.on('zoom', function (e: any) {\r\n that.PanTransform = that.PanZoom.getTransform();\r\n // This setting PREVENTS from choosing a seat (Meaning \"can't pick a seat while zooming\")\r\n that.Zooming = true;\r\n });\r\n\r\n this.PanZoom.on('zoomend', function (e: any) {\r\n // Remove \"Zooming\" flag to allow selection of the seats.\r\n // THIS DOESN'T WORK ON PINCH ZOOM. See fix on line 287. This is most probably panzoom's issue\r\n that.Zooming = false;\r\n // This works with smoothZoom() on line 202 for example so it's fine for buttons\r\n updateSideMap();\r\n });\r\n\r\n this.PanZoom.on('panstart', function (e: any) {\r\n that.PanTransform = that.PanZoom.getTransform();\r\n // This setting PREVENTS from choosing a seat (Meaning \"can't pick a seat while panning\")\r\n that.Panning = true;\r\n });\r\n\r\n this.PanZoom.on('panend', function (e: any) {\r\n // Remove \"Panning\" flag to allow selection of the seats.\r\n // Timeout sort of FIXES accidental selection of seats right after zoom in/out\r\n setTimeout(function () {\r\n that.Panning = false;\r\n }, 250);\r\n if (that.MapBlock !== null && that.MapWrap !== null && that.Map !== undefined && that.StickySeats !== null) {\r\n\r\n let Transform = that.Map.getTransform();\r\n let TransformX = Transform.x;\r\n let TransformY = Transform.y;\r\n\r\n let MapWrapWidth = that.MapWrap.clientWidth;\r\n let MapWrapHeight = that.MapWrap.clientHeight;\r\n\r\n let MapBlockWidth = that.MapBlock.clientWidth * Transform.scale;\r\n let MapBlockHeight = that.MapBlock.clientHeight * Transform.scale;\r\n\r\n if (TransformX < MapWrapWidth - MapBlockWidth) TransformX = MapWrapWidth - MapBlockWidth;\r\n if (TransformX > 0) TransformX = 0;\r\n\r\n if (TransformY < MapWrapHeight - MapBlockHeight) TransformY = MapWrapHeight - MapBlockHeight;\r\n if (TransformY > 0) TransformY = 0;\r\n\r\n if (MapBlockWidth < MapWrapWidth && MapBlockHeight < MapWrapHeight) {\r\n e.smoothMoveTo((MapWrapWidth - MapBlockWidth) / 2, (MapWrapHeight - MapBlockHeight) / 2);\r\n } else if (MapBlockWidth < MapWrapWidth && MapBlockHeight > MapWrapHeight) {\r\n e.smoothMoveTo((MapWrapWidth - MapBlockWidth) / 2, TransformY);\r\n } else if (MapBlockWidth > MapWrapWidth && MapBlockHeight < MapWrapHeight) {\r\n e.smoothMoveTo(TransformX, (MapWrapHeight - MapBlockHeight) / 2);\r\n } else {\r\n e.smoothMoveTo(TransformX, TransformY);\r\n };\r\n };\r\n });\r\n\r\n this.PanZoom.on('pan', function (e: any) {\r\n that.PanTransform = that.PanZoom.getTransform();\r\n that.Panning = true;\r\n updateSideMap();\r\n });\r\n\r\n let updateSideMap = function () {\r\n if (that.MapBlock !== null && that.MapWrap !== null && that.PanZoom !== undefined && that.StickySeats !== null) {\r\n\r\n let Transform = that.PanZoom.getTransform();\r\n let TransformY = Transform.y;\r\n\r\n that.StickySeats.setAttribute('style', 'top:' + (TransformY + (47 * Transform.scale)) + 'px;');\r\n\r\n let MapWrapHeight = that.MapWrap.clientHeight;\r\n let MapBlockHeight = that.MapBlock.clientHeight * Transform.scale;\r\n\r\n if (TransformY < MapWrapHeight - MapBlockHeight) TransformY = MapWrapHeight - MapBlockHeight;\r\n if (TransformY > 0) TransformY = 0;\r\n\r\n let StickySeatsDivs = document.querySelectorAll('#sticky_seats div');\r\n if (StickySeatsDivs.length !== null) {\r\n StickySeatsDivs.forEach(function (element: any) {\r\n element.setAttribute('style', 'height:' + Transform.scale * 50 + 'px;line-height:' + Transform.scale * 50 + 'px;');\r\n });\r\n };\r\n };\r\n };\r\n this.PanTransform = this.PanZoom.getTransform();\r\n };\r\n };\r\n\r\n MinimapMoved(e: Transform): void {\r\n if (!this.PanZoom) return;\r\n this.PanZoom.moveTo(0 - e.x * e.scale + 35, 0 - e.y * e.scale);\r\n this.TriggerPan();\r\n };\r\n\r\n MinimapWheel(e: WheelEvent): void {\r\n this.PanZoom.zoomTo(\r\n this.MapWrap.clientWidth / 2,\r\n this.MapWrap.clientHeight / 2,\r\n 1 - e.deltaY / 1000\r\n );\r\n this.TriggerZoom();\r\n };\r\n\r\n TriggerPan(): void {\r\n this.Panning = true;\r\n this.$nextTick(() => {\r\n this.Panning = false;\r\n });\r\n };\r\n\r\n TriggerZoom(): void {\r\n this.Zooming = true;\r\n this.$nextTick(() => {\r\n this.Zooming = false;\r\n });\r\n };\r\n};\r\n\r\nexport class WpArenaSeatsDictionary extends BaseSystemLocalizationDictionary {\r\n ChooseSeatsOption: string = '';\r\n GenericOccupied: string = '';\r\n GenericPicked: string = '';\r\n GenericRow: string = '';\r\n GenericSeat: string = '';\r\n};","module.exports = \"
\\r\\n \\r\\n Загрузка...\\r\\n \\r\\n
\";","import './wp-login-form.scss';\r\nimport Vue, { PropOptions } from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { INotificationService, NotificationSymbols, IdentityLoginState, ModifiedWebSaleUserIdentity, IdentitySymbols, IContext, ErrorTypes } from 'web-platform-core-ui';\r\nimport { Ref, Watch } from 'vue-property-decorator';\r\nimport WpBaseComponent from '../../wp-base-component';\r\nimport BaseUILocalizationDictionary from '../../Localization/base-ui-localization-terms';\r\n\r\nexport const wpLoginFormProps = Vue.extend({\r\n props: {\r\n Outlined: {\r\n type: Boolean,\r\n default: false\r\n }\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-login-form.html\")\r\n})\r\nexport default class WpLoginForm extends mixins>(WpBaseComponent, wpLoginFormProps, Vue) {\r\n protected _notificationService!: INotificationService;\r\n private _context?: ModifiedWebSaleUserIdentity;\r\n\r\n BtnLoading: boolean = false;\r\n Show: boolean = false;\r\n Action: string = '';\r\n Username: string = '';\r\n Password: string = '';\r\n RememberMe: boolean = false;\r\n AntiForgeryName: string = '';\r\n AntiForgeryValue: string = '';\r\n OrganizationId: string = '';\r\n SiteId: string = '';\r\n\r\n @Ref('LoginForm') LoginForm!: HTMLFormElement;\r\n\r\n get Rules() {\r\n return [(value: string) => !!value || this.Terms.FieldRequiredMessage]\r\n };\r\n\r\n ResetPassword() {\r\n IdentityLoginState.IsResetPassword = true;\r\n this.$emit(\"ResetPassword\");\r\n };\r\n\r\n Registration() {\r\n IdentityLoginState.IsResetPassword = false;\r\n this.$emit(\"Registration\");\r\n };\r\n\r\n @Watch(\"Username\")\r\n UsernameChanged(): void {\r\n this.$nextTick(() => {\r\n // Remove spaces\r\n try {\r\n this.Username = this.Username.replace(/\\s/, \"\");\r\n } catch (e) {\r\n //\r\n };\r\n });\r\n };\r\n\r\n @Watch(\"Password\")\r\n PasswordChanged(): void {\r\n this.$nextTick(() => {\r\n // Remove spaces\r\n try {\r\n this.Password = this.Password.replace(/\\s/, \"\");\r\n } catch (e) {\r\n //\r\n };\r\n });\r\n };\r\n\r\n async CheckForm(e: any): Promise {\r\n if (this._context != null) e.preventDefault();\r\n\r\n if (!this.LoginForm.validate()) return;\r\n\r\n if (this._context != null) {\r\n\r\n this.BtnLoading = true;\r\n let result = await this._context.Login(this.Username.trim(), this.Password, this.RememberMe);\r\n\r\n this.BtnLoading = false;\r\n if (!result?.Success) {\r\n if (result.ErrorType == ErrorTypes.InvalidData)\r\n this._notificationService.Error(\"\", this.Terms.InvalidUserNameOrPassword);\r\n else {\r\n this._notificationService.Error(\"\", this.Terms.InternalError);\r\n };\r\n } else {\r\n this._notificationService.SendSystemNotification(\"EventUserAuthorized\");\r\n this.LoginForm.reset();\r\n this.RememberMe = false;\r\n this.$emit(\"Authorized\");\r\n };\r\n };\r\n };\r\n\r\n mounted(): void {\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n this._context = this.GlobalService.Get(IdentitySymbols.Context) as ModifiedWebSaleUserIdentity;\r\n };\r\n};\r\n\r\nexport class WpLoginFormDictionary extends BaseUILocalizationDictionary {\r\n FieldRequiredMessage: string = '';\r\n UserNameLblText: string = '';\r\n PasswordLblText: string = '';\r\n RememberMeLblText: string = '';\r\n SignBtnText: string = '';\r\n ForgotPasswordLink: string = '';\r\n RegistrationLink: string = '';\r\n InvalidUserNameOrPassword: string = '';\r\n}","export default class ContractService {\r\n ID?: number;\r\n Caption?: string;\r\n TNODID?: number;\r\n}","module.exports = \"\\r\\n \\r\\n mdi-arrow-left\\r\\n \\r\\n\\r\\n

\\r\\n {{ Terms.RegistrationTitle }}\\r\\n

\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n !!v || Terms.AgreementError]\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.RegistrationBtnText }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\";","export default class ClubCardVisit {\n AMOUNT?: number; // 1\n CARD?: number; // 2985\n CSHI_ID?: number; // 14543110\n CanReserve?: boolean; // true\n ID?: number; // 1116115\n NAME?: string; // \"���� �� ������ Premium (12 ���.)\"\n PRICE?: number; // 0\n REST?: number; // 1\n Reserved?: number; // 0\n SERVICE?: number; // 14535679\n Status?: number; // 1 - Open; 4 - Closed\n TIC_NUM?: number; // 0\n VALID_FROM?: string; // \"2022-09-21T00:00:00\"\n VALID_TO?: string; // \"2023-09-20T00:00:00\"\n};","import IOrganizationProvider from './i-organization-provider';\r\nimport OrganizationInfo from './organization-info';\r\nimport { ActionResult, ErrorTypes } from './../Common';\r\nimport { IdentitySymbols } from './../Identity/symbols';\r\nimport { IContext } from './../Identity';\r\nimport { inject, injectable } from 'inversify';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport GlobalService from '..';\r\n\r\n@injectable()\r\nexport default class OrganizationProvider implements IOrganizationProvider {\r\n private _context: IContext;\r\n\r\n constructor(@inject(IdentitySymbols.Context) context: IContext) {\r\n this._context = context;\r\n }\r\n\r\n async GetOrganizationInfoAsync(): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/websale/api/organizations`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n\r\n async GetOrganizationRulesAsync(): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SiteId\": GlobalService.GetSettings().SiteId,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/websale/api/organizations/rules`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Data);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n}\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n}\r\n","import ClubAppSettings from './../Club/club-app-settings';\r\n\r\nexport default class LTClubAppSettings extends ClubAppSettings {\r\n ContactPhoneToRequests: string = \"+79284262460\";\r\n \r\n}","import \"reflect-metadata\";\r\nimport Vue from 'vue'\r\nimport SibSaleApp from './SibSaleApp.vue'\r\nimport GlobalService, {\r\n GlobalSymbols, INotificationService, NotificationSymbols, OIDCStorageStore, SibIdentity, SibAppSettings,\r\n ILocalizationService, LocalizationSymbols, ServiceRegistredRecord, SibSymbols, DefaultSibProvider\r\n} from 'web-platform-core-ui';\r\nimport vuetify from './vuetify';\r\nimport router from './router';\r\nimport VueTheMask from 'vue-the-mask';\r\nconst Inputmask = require('inputmask');\r\n\r\nimport * as moment from 'moment';\r\nimport 'moment/locale/ru';\r\nimport { UserManager, WebStorageStateStore, Log } from 'oidc-client';\r\nimport loadStaticLocaliztionDictionaries from '../components/Localization';\r\n\r\nmoment.locale('ru');\r\n\r\nVue.use(VueTheMask);\r\n\r\nVue.component('VOffline', require('v-offline'));\r\nVue.directive('input-mask', {\r\n bind: function (el) {\r\n if (el.tagName == 'INPUT')\r\n new Inputmask().mask(el);\r\n else {\r\n let inp = el.getElementsByTagName('input')[0];\r\n new Inputmask().mask(inp);\r\n }\r\n }, \r\n unbind: function (el) {\r\n if (el.tagName == 'INPUT')\r\n Inputmask.remove(el);\r\n else {\r\n let inp = el.getElementsByTagName('input')[0];\r\n Inputmask.remove(inp);\r\n }\r\n }\r\n});\r\n\r\nconst settings = new SibAppSettings();\r\nlet parsingResult = settings.ParseHashParams();\r\nif (!parsingResult)\r\n throw new Error(\"Settings parsing error\");\r\nGlobalService.SetSettings(settings);\r\nconst store: any = new OIDCStorageStore();\r\n\r\nconst mgr = new UserManager({\r\n stateStore: new WebStorageStateStore({ store: store }),\r\n userStore: new WebStorageStateStore({ store: store }),\r\n authority: `${settings.IdentityServerUrl}identity`,\r\n client_id: '0007A50C-29F4-4206-B50F-7974742640C2',\r\n popup_redirect_uri: window.location.origin + '/callback_popup.html',\r\n response_type: 'token id_token',\r\n scope: 'openid profile all_claims',\r\n post_logout_redirect_uri: window.location.origin + '/?rand' + Math.random(),\r\n accessTokenExpiringNotificationTime: 60,\r\n automaticSilentRenew: false,\r\n filterProtocolClaims: false,\r\n loadUserInfo: true,\r\n monitorSession: false\r\n})\r\n\r\nsettings.RedirectUri = window.location.origin + '/sib_callback_popup.html';\r\n\r\nconst globalService = new GlobalService();\r\nconst identityContext = new SibIdentity(mgr, store);\r\n\r\nlet redifined = [];\r\nredifined.push(new ServiceRegistredRecord(SibSymbols.SibProvider, DefaultSibProvider, true));\r\n\r\nglobalService.LoadSibSaleConfiguration(identityContext, [], redifined);\r\nlet localizationService = globalService.Get(LocalizationSymbols.LocalizationService);\r\nloadStaticLocaliztionDictionaries(localizationService);\r\nlocalizationService.ChangeLocalizationAsync(settings.Localization);\r\n\r\nif (settings.IsDevVersion) {\r\n Vue.config.productionTip = false;\r\n Vue.config.devtools = true;\r\n} else {\r\n Vue.config.productionTip = true;\r\n Vue.config.devtools = false;\r\n}\r\n\r\nnew Vue({\r\n vuetify,\r\n router,\r\n render: h => h(SibSaleApp),\r\n provide: {\r\n [GlobalSymbols.GlobalService]: globalService\r\n }\r\n}).$mount('#app')\r\n\r\nfunction _errorEventHandler(errorMsg: string, url: string, lineNumber: string): void {\r\n let notificationService = globalService.Get(NotificationSymbols.NotificationService);\r\n notificationService.Error('Ошибка', errorMsg);\r\n\r\n console.log(`error: ${errorMsg}, url: ${url}, lineNumber: ${lineNumber}`);\r\n}\r\n\r\nconst _global = (window || global) as any;\r\n_global.onerror = _errorEventHandler;","module.exports = \"\\r\\n \\r\\n \\r\\n {{ StoreIcon }}\\r\\n {{ StoreLabel }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n mdi-lock-reset\\r\\n Сменить пароль\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n mdi-email-multiple-outline\\r\\n Email - рассылка\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n mdi-message-text\\r\\n Sms - рассылка\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n mdi-bell\\r\\n Push - рассылка\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n mdi-logout\\r\\n Выход\\r\\n \\r\\n \\r\\n\\r\\n\";","export enum Localization {\r\n RU = \"ru\",\r\n EN = \"en\"\r\n}","import { injectable, inject } from 'inversify';\r\n\r\nimport ILocalizationService from './i-localization-service';\r\nimport LocalizationChangedEventArgs from './localization-changed-event-args';\r\nimport { Localization } from './localization';\r\nimport LocalizationStaticDictionary from './localization-static-dictionary';\r\n\r\nimport { WpEvent, WpEventHandler, ActionResult, ErrorTypes, BaseFilter } from './../Common';\r\nimport ITranslatable from './i-translatable';\r\nimport { BaseSystemLocalizationDictionary } from '.';\r\nimport IDataProvider from '../Cms/i-data-provider';\r\nimport { CmsSymbols } from '../Cms/symbols';\r\nimport WpCorePrefixes from '../wp-core-prefixes';\r\n\r\n@injectable()\r\nexport default class DefaultLocalizationService implements ILocalizationService {\r\n private _downloadedDictionaries: any = {};\r\n private _currentLocalization: Localization = Localization.RU;\r\n private _ruStaticDictionaries: Array = [];\r\n private _enStaticDictionaries: Array = [];\r\n\r\n private _provider: IDataProvider;\r\n\r\n private _localizationChanged: WpEventHandler =\r\n new WpEventHandler();\r\n\r\n get CurrentLocalization(): Localization {\r\n return this._currentLocalization;\r\n }\r\n\r\n get LocalizationChanged(): WpEvent {\r\n return this._localizationChanged;\r\n }\r\n\r\n constructor(@inject(CmsSymbols.DataProvider) provider: IDataProvider) {\r\n this._provider = provider;\r\n }\r\n\r\n AddDictionary(localization: Localization, dictionary: LocalizationStaticDictionary): void {\r\n if (localization == Localization.EN)\r\n this._enStaticDictionaries.push(dictionary);\r\n else\r\n this._ruStaticDictionaries.push(dictionary);\r\n }\r\n\r\n GetStaticDictionary(prefix: symbol): ActionResult> {\r\n let result: LocalizationStaticDictionary;\r\n if (this.CurrentLocalization == Localization.EN) {\r\n result = this._enStaticDictionaries.find(x => x.Prefix == prefix) as LocalizationStaticDictionary;\r\n } else {\r\n result = this._ruStaticDictionaries.find(x => x.Prefix == prefix) as LocalizationStaticDictionary;\r\n }\r\n\r\n if (result == null)\r\n return ActionResult.FailedData(ErrorTypes.NotFoundData, result);\r\n\r\n return ActionResult.SuccessData(result);\r\n }\r\n\r\n async LoadAdditionalDictionary(siteId: number): Promise {\r\n let filter = new BaseFilter();\r\n filter.PlatformId = siteId;\r\n let result = await this._provider.GetEntitiesAsync(WpCorePrefixes.SiteDictionary, filter, \"\", this.CurrentLocalization);\r\n\r\n if (result.Success && result.Data != null && result.Data.Entities != null && result.Data.Entities.length > 0) {\r\n let data = result.Data.Entities[0].Data;\r\n if (data == null || data.trim() === '')\r\n return;\r\n\r\n let siteDictionary = JSON.parse(result.Data.Entities[0].Data);\r\n let staticDictionary = this.CurrentLocalization == Localization.EN ? this._enStaticDictionaries : this._ruStaticDictionaries;\r\n\r\n Object.getOwnPropertyNames(siteDictionary).forEach(propName => {\r\n let terms = staticDictionary.find(x => x.Prefix == Symbol.for(propName));\r\n if (terms != null) {\r\n for (let prop in siteDictionary[propName]) {\r\n terms.Terms[prop] = siteDictionary[propName][prop]\r\n }\r\n }\r\n })\r\n }\r\n }\r\n\r\n async TranslateAsync(prefix: symbol, entity: any): Promise {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n async TranslateManyAsync(prefix: symbol, entities: Array): Promise {\r\n if (entities.length == 0) return;\r\n let filter = new BaseFilter();\r\n filter.PageCount = 200;\r\n\r\n let translate = this._downloadedDictionaries[prefix];\r\n if (translate == null) {\r\n translate = await this._provider.GetEntitiesAsync(prefix, filter, '', this._currentLocalization);\r\n this._downloadedDictionaries[prefix] = translate;\r\n }\r\n\r\n if (translate.Success && translate.Data != null) {\r\n translate.Data.Entities.forEach((x: any) => {\r\n entities.filter(e => x.PlatformEntities.includes(`${e.Id};`)).forEach(s => {\r\n Object.getOwnPropertyNames(x).forEach(propName => {\r\n if (propName.toLowerCase() != 'id' && x[propName] != null && x[propName] != '') {\r\n s[propName] = x[propName];\r\n }\r\n })\r\n });\r\n })\r\n }\r\n }\r\n\r\n async ChangeLocalizationAsync(localization: Localization): Promise {\r\n this._currentLocalization = localization;\r\n this._localizationChanged.Send(this, { OldLocalization: Localization.RU, NewLocalization: Localization.EN });\r\n }\r\n\r\n}\r\n","import { WpEventArgs } from './../Common';\r\nimport { Localization } from './localization';\r\n\r\nexport default class LocalizationChangedEventArgs extends WpEventArgs {\r\n OldLocalization: Localization;\r\n NewLocalization: Localization;\r\n\r\n constructor(oldLocalization: Localization, newLocalization: Localization) {\r\n super();\r\n\r\n this.OldLocalization = oldLocalization;\r\n this.NewLocalization = newLocalization;\r\n }\r\n}","import BaseSystemLocalizationDictionary from './base-system-localization-terms';\r\n\r\nexport default class LocalizationStaticDictionary {\r\n Prefix: symbol;\r\n Terms: T;\r\n\r\n constructor(prefix: symbol, terms: T) {\r\n this.Prefix = prefix;\r\n this.Terms = terms;\r\n }\r\n}","export default abstract class BaseSystemLocalizationDictionary {\r\n InternalError: string = '';\r\n AccessDenied: string = '';\r\n}","import { LoyaltyNotificationStatus } from './loyalty-notification-status';\r\n\r\nexport default class LoyaltyNotification {\r\n Id: string = '';\r\n NotificationDate: string = '';\r\n Title: string = '';\r\n Message: string = '';\r\n Status: LoyaltyNotificationStatus = LoyaltyNotificationStatus.New \r\n}","import LTUpperGroup from './lt-upper-group';\r\n\r\nexport default class LTSubGroup {\r\n Id: number = 0;\r\n Name: string = '';\r\n ParentGroup: number = 0;\r\n ImageLink: string = '';\r\n PlacesIds: string = '';\r\n IsCoaches: boolean = false;\r\n ZIndex: number = 0;\r\n Subgroups: string = '';\r\n Tariffs: string = '';\r\n Description: string = '';\r\n Tags: string = '';\r\n Preview: string = '';\r\n AdditionalTariff: number = 0;\r\n PersonalTariff: number = 0;\r\n GroupTariff: number = 0;\r\n IsServicePackage: number = 0;\r\n LessonsCount: string = '';\r\n LessonsDuration: string = '';\r\n PackageServiceGroups: string = '';\r\n PackageInstructorsCategory: string = '';\r\n\r\n TagsList: Array = [];\r\n TariffsList: Array = [];\r\n PackageTariffs: any = {};\r\n PackageLessonsCount: Array = [];\r\n PackageLessonsDuration: Array = [];\r\n PackageInstructorsCategoryList: Array = [];\r\n\r\n static GetSubGroups(item: LTSubGroup): Array {\r\n if (item.Subgroups == null || item.Subgroups == '') return [];\r\n try {\r\n return JSON.parse(item.Subgroups) as Array;\r\n } catch {\r\n return [];\r\n }\r\n }\r\n\r\n static GetTags(item: LTSubGroup): Array {\r\n if (item.Tags == null || item.Tags == '') return [];\r\n try {\r\n return JSON.parse(item.Tags) as Array;\r\n } catch {\r\n return [];\r\n }\r\n }\r\n\r\n static GetTariffs(item: LTSubGroup): Array {\r\n if (item.Tariffs == null || item.Tariffs == '') return [];\r\n try {\r\n return JSON.parse(item.Tariffs) as Array;\r\n } catch {\r\n return [];\r\n }\r\n }\r\n\r\n static GetPackageLessonsCount(item: LTSubGroup): Array {\r\n if (item.LessonsCount == null || item.LessonsCount == '') return [];\r\n try {\r\n return JSON.parse(item.LessonsCount) as Array;\r\n } catch {\r\n return [];\r\n }\r\n }\r\n\r\n static GetPackageLessonsDuration(item: LTSubGroup): Array {\r\n if (item.LessonsDuration == null || item.LessonsDuration == '') return [];\r\n try {\r\n return JSON.parse(item.LessonsDuration) as Array;\r\n } catch {\r\n return [];\r\n }\r\n }\r\n\r\n static GetPackageServiceGroups(item: LTSubGroup): Array {\r\n if (item.PackageServiceGroups == null || item.PackageServiceGroups == '') return [];\r\n try {\r\n return JSON.parse(item.PackageServiceGroups) as Array;\r\n } catch {\r\n return [];\r\n }\r\n }\r\n\r\n static GetPackageInstructorsCategory(item: LTSubGroup): Array {\r\n if (item.PackageInstructorsCategory == null || item.PackageInstructorsCategory == '') return [];\r\n try {\r\n return JSON.parse(item.PackageInstructorsCategory) as Array;\r\n } catch {\r\n return [];\r\n }\r\n }\r\n\r\n static GetPackageTariffs(item: LTSubGroup): any {\r\n if (item.PackageServiceGroups == null || item.PackageServiceGroups == '') return [];\r\n try {\r\n return JSON.parse(item.PackageServiceGroups) as any;\r\n } catch {\r\n return [];\r\n }\r\n }\r\n}","module.exports = \"
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\";","export enum InstructorsGender {\r\n Male = 1,\r\n Female = 2\r\n}","import { ActionResult, ErrorTypes } from './../Common';\r\nimport { injectable, inject } from 'inversify';\r\nimport {\r\n IdentitySymbols, IContext\r\n} from './../Identity';\r\nimport { ReservationData, OrderSale } from './../sale'\r\nimport { RestClient } from 'typed-rest-client';\r\nimport SaleProvider from './sale-provider';\r\n\r\n@injectable()\r\nexport default class BenefitSaleProvider extends SaleProvider {\r\n\r\n constructor(@inject(IdentitySymbols.Context) context: IContext) {\r\n super(context)\r\n }\r\n\r\n get NotAuthorizationHeaders(): any {\r\n return {\r\n headers: {\r\n \"SiteId\": this._settings.SiteId,\r\n \"SessionId\": this._settings.SessionId,\r\n \"User\": this._settings.SessionId\r\n }\r\n }\r\n }\r\n\r\n\r\n get AuthorizationHeaders(): any {\r\n return {\r\n headers: {\r\n \"SiteId\": this._settings.SiteId,\r\n \"SessionId\": this._settings.SessionId,\r\n \"User\": this._context.CurrentIdentity.UserId,\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`\r\n }\r\n }\r\n }\r\n\r\n async ReservateAsync(data: ReservationData): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [],\r\n this._context.CurrentIdentity.IsAuthentificated ? this.AuthorizationHeaders : this.NotAuthorizationHeaders);\r\n\r\n let response = await client.create>(`/free/reservate`, data);\r\n\r\n if (response.result != null && response.result.Result != 0) {\r\n if (response.result.Result == 6)\r\n return ActionResult.Failed(ErrorTypes.TariffNotAvailableForSale);\r\n\r\n if (response.result.Result == 7)\r\n return ActionResult.Failed(ErrorTypes.QuotaExceededForTariff);\r\n\r\n if (response.result.ErrorType == \"MediaCardExistSoTypeTariff\")\r\n return ActionResult.Failed(ErrorTypes.CardWithSoTypeTariff);\r\n\r\n if (response.result.ErrorType == \"RewriteTariffNotAvailable\")\r\n return ActionResult.Failed(ErrorTypes.RewriteTariffNotAvailable);\r\n\r\n if (response.result.ErrorType == \"InstructorsLessonBlocked\" || response.result.ErrorType == \"InstructorsLessonNotAvailable\")\r\n return ActionResult.Failed(ErrorTypes.LessonNotAvailable);\r\n\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n }\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n }\r\n}\r\n\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n ErrorType: string = '';\r\n}\r\n\r\n\r\n","import './wp-instructors.scss';\r\n\r\nimport Vue, { VueConstructor } from 'vue';\r\nimport { Prop, DefaultProps } from 'vue/types/options';\r\nimport WpBaseComponent from './../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, {\r\n ActionResult, AppSettings,\r\n\r\n InstructorsSymbols, IInstructorsService, GroupLessonsFilter,\r\n InstructorsGroupLesson, InstructorTariffCategory,\r\n SkillType, InstructorsPlace, InstructorsBundlesGroupsLessons,\r\n\r\n INotificationService, NotificationSymbols,\r\n\r\n CartItem, Cart, CartItemTypes, Tariff, InstructorsBundlesCartItem, BaseSystemLocalizationDictionary,\r\n WpCorePrefixes, BaseFilter, ICmsService, CmsSymbols, InstructorsLessonsLocation,\r\n} from 'web-platform-core-ui';\r\n\r\n\r\nexport const wpInstructorsProp = Vue.extend({\r\n props: {\r\n Cart: Object as Prop,\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-instructors-bundles.html\")\r\n})\r\nexport default class WpInstructorsBundles extends mixins,DefaultProps,VueConstructor>(WpBaseComponent, wpInstructorsProp, Vue) {\r\n private _allTariffs: Array = [];\r\n private _instructorsService!: IInstructorsService;\r\n protected _notificationService!: INotificationService;\r\n\r\n Settings!: AppSettings;\r\n DatepickerSettings: any = {};\r\n\r\n SelectedPlace!: InstructorsPlace;\r\n\r\n TariffId: number = 0;\r\n Tariffs: Array = [];\r\n TariffLoaded: boolean = false;\r\n TariffVisible: boolean = true;\r\n NoTariffs: boolean = false;\r\n\r\n Skill: number = 0;\r\n Skills: Array = [];\r\n SkillsLoaded: boolean = false;\r\n SkillsVisible: boolean = true;\r\n NoSkills: boolean = false;\r\n\r\n get Category(): string {\r\n if (this.Categories.length !== 0) {\r\n let categoryById = this.Categories.filter(x => x.Id == parseInt(this.CategoryId));\r\n if (categoryById.length !== 0) {\r\n return categoryById[0].Name;\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n CategoryId: string = '';\r\n Categories: Array = [];\r\n CategoriesLoaded: boolean = false;\r\n CategoriesVisible: boolean = true;\r\n NoCategories: boolean = false;\r\n\r\n LocationId: number = 0;\r\n Locations: Array = [];\r\n LocationsLoaded: boolean = false;\r\n LocationsVisible: boolean = true;\r\n NoLocations: boolean = false;\r\n\r\n ShowButtonVisible: boolean = true;\r\n\r\n Filter?: GroupLessonsFilter;\r\n FilterLoading = false;\r\n LessonsLoaded = false;\r\n Bundles?: Array;\r\n\r\n NoLessons: boolean = false;\r\n\r\n Dates: Array = [];\r\n DatesVisible: boolean = true;\r\n DatesArray: Array = [];\r\n\r\n FilterComplete: boolean = false;\r\n\r\n Datepicker: boolean = false;\r\n StartDatepicker(): void {\r\n this.DatepickerSettings = this.Settings;\r\n this.Datepicker = true;\r\n }\r\n\r\n async mounted() {\r\n this._instructorsService = this.GlobalService.Get(InstructorsSymbols.InstructorsService);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n let cmsService = this.GlobalService.Get(CmsSymbols.CmsService);\r\n\r\n this.Settings = GlobalService.GetSettings();\r\n this.StartDatepicker();\r\n\r\n if (this.Settings.NoSkills) {\r\n this.NoSkills = true;\r\n }\r\n if (this.Settings.NoCategories) {\r\n this.NoCategories = true;\r\n }\r\n if (this.Settings.NoTariffs) {\r\n this.NoTariffs = true;\r\n }\r\n if (this.Settings.NoLocations) {\r\n this.NoLocations = true;\r\n }\r\n\r\n let places = await this._instructorsService.GetPlacesAsync();\r\n\r\n if (!places.Success || places.Data == undefined || places.Data.length == 0) {\r\n this._notificationService.Error(\"Ошибка\", places.ErrorMessage ? places.ErrorMessage : \"Непредвиденная ошибка\");\r\n return;\r\n }\r\n if ('PlaceId' in this.Settings) {\r\n let place = places.Data.filter(x => x.Id == this.Settings?.PlaceId);\r\n if (place.length !== 0) {\r\n this.SelectedPlace = place[0];\r\n }\r\n else {\r\n this.SelectedPlace = places.Data[0];\r\n }\r\n }\r\n else {\r\n this.SelectedPlace = places.Data[0];\r\n }\r\n\r\n let Skills = await this._instructorsService.GetSkillAsync(this.SelectedPlace.Id);\r\n if (Skills.Data !== undefined && Skills.Data.length >= 1) {\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.InstructorsSkillsNames, Skills.Data);\r\n\r\n let translateSkill = await cmsService.GetEntitiesAsync(WpCorePrefixes.InstructorsSkillsNames, new BaseFilter(), '');\r\n\r\n if (translateSkill.Success && translateSkill.Data != null) {\r\n Skills.Data.forEach(x => {\r\n let skill = translateSkill.Data?.Entities.find(sc => sc.Code == x.Id);\r\n if (skill != null) x.Name = skill.Name;\r\n })\r\n }\r\n\r\n this.Skills = Skills.Data.sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n });\r\n\r\n if (Skills.Data.length === 1) {\r\n this.Skill = this.Skills[0].Id;\r\n this.SkillsVisible = false;\r\n }\r\n }\r\n this.SkillsLoaded = true;\r\n\r\n let Categories = await this._instructorsService.GetInstructorsTariffCategoriesAsync();\r\n if (Categories.Data !== undefined && Categories.Data.length >= 1) {\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.InstructorsTariffOptionNames, Categories.Data);\r\n\r\n let translateCategories = await cmsService.GetEntitiesAsync(WpCorePrefixes.InstructorsTariffOptionNames, new BaseFilter(), '');\r\n\r\n if (translateCategories.Success && translateCategories.Data != null) {\r\n Categories.Data.forEach(x => {\r\n let category = translateCategories.Data?.Entities.find(sc => sc.Code == x.Id);\r\n if (category != null) x.Name = category.Name;\r\n })\r\n }\r\n\r\n this.Categories = Categories.Data.sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n });\r\n\r\n if (this.Categories.length === 1) {\r\n this.CategoryId = this.Categories[0].Id.toString();\r\n this.CategoriesVisible = false;\r\n }\r\n }\r\n this.CategoriesLoaded = true;\r\n\r\n let locations = await this._instructorsService.GetLessonsLocationsAsync();\r\n if (locations.Data !== undefined && locations.Data.length >= 1) {\r\n this.Locations = locations.Data.sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n });\r\n\r\n if (this.Locations.length === 1) {\r\n this.LocationId = this.Locations[0].LocationId;\r\n this.LocationsVisible = false;\r\n }\r\n }\r\n this.LocationsLoaded = true;\r\n\r\n let tariffs = await this._instructorsService.GetInstructorsTariffsAsync();\r\n if (tariffs.Data !== undefined && tariffs.Data.length >= 1) {\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.Tariff, tariffs.Data);\r\n\r\n this._allTariffs = tariffs.Data;\r\n\r\n if (this.Settings.BundlesLessonsTariffsId !== undefined && this.Settings.BundlesLessonsTariffsId.length > 0) {\r\n this._allTariffs = this._allTariffs.filter(x => this.Settings.BundlesLessonsTariffsId.indexOf(x.Id) !== -1)\r\n }\r\n }\r\n this.TariffLoaded = true;\r\n\r\n this.ResetTariffs();\r\n this.ResetFilterResults();\r\n\r\n //if (this.FilterComplete) {\r\n // this.ShowButtonVisible = false;\r\n // await this.GetGroupLessonsAsync();\r\n //}\r\n }\r\n\r\n FormatDate(dateString: string): string {\r\n return this.DateHandler.Parse(dateString, 'YYYY-MM-DD').Format('DD.MM.YYYY');\r\n }\r\n FormatTime(dateString: string): string {\r\n return this.DateHandler.Parse(dateString, 'HH:mm:SS').Format('HH:mm');\r\n }\r\n SkillChanged() {\r\n this.ResetTariffs();\r\n this.ResetFilterResults();\r\n }\r\n\r\n CategoryChanged() {\r\n this.ResetTariffs();\r\n this.ResetFilterResults();\r\n }\r\n\r\n TariffChanged(tariffCode: number) {\r\n this.TariffId = tariffCode;\r\n this.ResetFilterResults();\r\n }\r\n\r\n ResetFilterResults(): void {\r\n this.NoLessons = false;\r\n this.Bundles = [];\r\n this.LessonsLoaded = false;\r\n\r\n this.FilterComplete =\r\n this.TariffLoaded && this.SkillsLoaded && this.CategoriesLoaded && this.LocationsLoaded &&\r\n (this.Skill !== 0 || this.NoSkills) &&\r\n (this.CategoryId !== '' || this.NoCategories) &&\r\n (this.LocationId !== 0 || this.NoLocations) &&\r\n (this.TariffId !== 0 || this.NoTariffs) &&\r\n this.Dates.length >= 1;\r\n }\r\n\r\n\r\n ResetTariffs() {\r\n if (this._allTariffs !== undefined) {\r\n this.Tariffs =\r\n this.CategoryId !== '' ?\r\n this._allTariffs.filter(x =>\r\n this.Settings.GroupLessonsSkillsTariffs[`${this.Skill}`] !== undefined ? this.Settings.GroupLessonsSkillsTariffs[`${this.Skill}`].indexOf(x.Id) !== -1 : true)\r\n .filter(x => x.OptionId === this.CategoryId).sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n })\r\n :\r\n this._allTariffs.filter(x =>\r\n this.Settings.GroupLessonsSkillsTariffs != null &&\r\n this.Settings.GroupLessonsSkillsTariffs[`${this.Skill}`] !== undefined ? this.Settings.GroupLessonsSkillsTariffs[`${this.Skill}`].indexOf(x.Id) !== -1 : true)\r\n .sort((x, y) => {\r\n if (x.Name == y.Name) return 0;\r\n if (x.Name < y.Name) return -1;\r\n else return 1;\r\n })\r\n\r\n }\r\n\r\n if (this.Tariffs.length == 1) {\r\n this.TariffId = this.Tariffs[0].TariffCode;\r\n } else {\r\n this.TariffId = 0;\r\n }\r\n }\r\n\r\n AddToCart(bundle: InstructorsBundlesGroupsLessons, amount: number, price: number): void {\r\n let cartItem = new InstructorsBundlesCartItem(bundle, amount, price, this.Cart);\r\n let result = this.Cart.AddItem(cartItem);\r\n\r\n if (!result.Success) {\r\n this._notificationService.Error(\"Ошибка\", result.ErrorMessage ? result.ErrorMessage : \"Непредвиденная ошибка\");\r\n }\r\n else {\r\n var cartItems = this.Cart.SimpleCart();\r\n parent.postMessage({ status: 'addedtocart', data: cartItems }, '*');\r\n }\r\n }\r\n\r\n get BundlesBought(): Array {\r\n let bundlesBought: Array = [];\r\n this.Cart.Items.forEach((element: CartItem) => {\r\n if (element.Type == CartItemTypes.InstructorsBundleLessons)\r\n bundlesBought.push(element);\r\n });\r\n return bundlesBought;\r\n }\r\n\r\n async GetBundlesLessonsAsync(): Promise>> {\r\n this.LessonsLoaded = false;\r\n this.FilterLoading = true;\r\n let dateFrom = this.DateHandler.Parse(this.Dates[0], 'YYYY-MM-DD').Format('DD.MM.YYYY');\r\n let dateTo = this.Dates.length == 2 ? this.DateHandler.Parse(this.Dates[1], 'YYYY-MM-DD').Format('DD.MM.YYYY') : dateFrom;\r\n\r\n let skill = this.Skills.find(x => x.Id == this.Skill);\r\n let filter = new GroupLessonsFilter(this.SelectedPlace.Id, skill !== undefined ? skill.Name : '', this.CategoryId,\r\n dateFrom, dateTo, this.TariffId == 0 ? null : this.TariffId, null, this.Settings?.CoachId, this.LocationId == 0 ? '' : this.LocationId.toString());\r\n\r\n let filterResult = await this._instructorsService.GetBundlesGroupLessonsAsync(filter);\r\n\r\n this.FilterLoading = false;\r\n this.LessonsLoaded = true;\r\n if (filterResult.Success && filterResult.Data !== undefined) {\r\n this.Bundles = filterResult.Data;\r\n }\r\n\r\n let datesArray = new Array();\r\n let _this = this;\r\n this.Bundles?.forEach(bundle => {\r\n let minDate = _this.DateHandler.Parse(bundle.MinDate, 'YYYY-MM-DDTHH:mm:SS').Format('DD.MM.YYYY');\r\n let maxDate = _this.DateHandler.Parse(bundle.MaxDate, 'YYYY-MM-DDTHH:mm:SS').Format('DD.MM.YYYY');\r\n var bundelPeriod = `${minDate} - ${maxDate}`;\r\n if (!datesArray.some(x => x == bundelPeriod)) {\r\n datesArray.push(bundelPeriod);\r\n }\r\n });\r\n\r\n this.DatesArray = datesArray;\r\n\r\n if (this.DatesArray.length == 0) {\r\n this.NoLessons = true;\r\n }\r\n\r\n return filterResult;\r\n }\r\n\r\n DatesSet(dates: Array): void {\r\n this.Dates = dates;\r\n this.ResetFilterResults();\r\n }\r\n}\r\n\r\nexport class WpInstructorsBundlesDictionary extends BaseSystemLocalizationDictionary {\r\n Discipline: string = '';\r\n DisciplinesLoading: string = '';\r\n Category: string = '';\r\n CategoriesLoading: string = '';\r\n Program: string = '';\r\n ProgramsLoading: string = '';\r\n DialogBtnShow: string = '';\r\n NoLessonsAvailable: string = '';\r\n Location: string = '';\r\n LocationsLoading: string = '';\r\n}","import { ConnectionType, SiteStatus } from './';\r\n\r\nexport default class Site {\r\n Id: number = 0;\r\n Name: string = '';\r\n Url: string = '';\r\n Offset: string = '';\r\n OrganizationId: number = 0;\r\n OrganizationName: string = '';\r\n ConnectionId: number = 0;\r\n ConnectionType: ConnectionType = ConnectionType.Tariff;\r\n Status: SiteStatus = SiteStatus.Disabled;\r\n OrganizationStatus: number = 0;\r\n PlatformHelpDeskAddress?: string;\r\n}","export default class AccountBalance {\r\n MoneyBalance: number = 0;\r\n}","import { InstructorsGender } from './instructors-gender';\r\nimport { InstructorUsageType } from './instructor-usage-type';\r\n\r\nexport default class Instructor {\r\n Id: number = 0;\r\n Code: number = 0;\r\n Name: string = '';\r\n Education: string = '';\r\n CoursesName: string = '';\r\n Rate: number = 0;\r\n InstructorsGender?: InstructorsGender;\r\n Skills: Array = [];\r\n UsageType: InstructorUsageType = InstructorUsageType.All;\r\n Preview: string = '';\r\n Description: string = '';\r\n ImageLink: string = '';\r\n}","export enum SortingMode {\r\n ASC = \"ASC\",\r\n DESC = \"DESC\"\r\n}","import WpEventArgs from './wp-event-args';\r\n\r\nexport default abstract class WpEvent{\r\n protected _handlers: { (sender: any, e: T): void; }[] = [];\r\n\r\n Subscribe(handler: { (sender: any, e: T): void }): void {\r\n this._handlers.push(handler);\r\n }\r\n\r\n Unsubscribe(handler: { (sender: any, e: T): void }): void {\r\n this._handlers = this._handlers.filter(h => h !== handler);\r\n }\r\n}","import WpEvent from './wp-event';\r\nimport WpEventArgs from './wp-event-args';\r\n\r\nexport default class WpEventHandler extends WpEvent {\r\n Send(sender: any, e: T) {\r\n this._handlers.forEach(async h => {\r\n try {\r\n h(sender, e);\r\n }\r\n catch{ }\r\n });\r\n }\r\n}","export default class WpEventArgs {\r\n static get Empty(): WpEventArgs {\r\n return new WpEventArgs();\r\n }\r\n}","export default class ErrorsTerms{\r\n InternalErroTitle: string = \"������\";\r\n InternalErrorText: string = \"�������������� ������\";\r\n SystemErrorTitle: string = \"������\";\r\n SystemErrorText: string = \"��������� ������\";\r\n AccessDeniedTitle: string = \"������ ��������\";\r\n AccessDeniedText: string = \"������������ ���� ��� ������� � ������� �����������\";\r\n}","import Sorting from './sorting';\r\n\r\nexport default class BaseFilter {\r\n Page: number = 1;\r\n PageCount: number = 10;\r\n Sorting?: Sorting;\r\n PlatformId?: number;\r\n\r\n constructor(Page: number = 1, PageCount: number = 10, Sorting?: Sorting, PlatformId?: number) {\r\n this.Page = Page;\r\n this.PageCount = PageCount;\r\n if (Sorting) this.Sorting = Sorting;\r\n if (PlatformId) this.PlatformId = PlatformId;\r\n };\r\n};","export enum BarcodeType {\r\n NoBarcode = 0,\r\n Code128B = 1,\r\n Interleaved2of5 = 2,\r\n QRCode = 3\r\n}","import { SortingMode } from './sorting-mode';\r\n\r\nexport default class Sorting {\r\n Member: string = \"\";\r\n Mode: SortingMode = SortingMode.DESC;\r\n}","export default class FiltringResult{\r\n TotalCount: number | string = 0; // ������ �������� \"1\" � �����, � �� �����\r\n Page: number = 0;\r\n PageCount: number = 0;\r\n Entities: Array = []; \r\n}","const createGuid = function (): string {\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n var r = Math.random() * 16 | 0, v = c == 'x' ? r : (r & 0x3 | 0x8);\r\n return v.toString(16);\r\n });\r\n}\r\n\r\nexport { createGuid };","import { injectable, inject } from 'inversify';\r\nimport IDateHandler from './i-date-handler';\r\nconst DateAndTime = require('date-and-time');\r\nconst ru = require('date-and-time/locale/ru');\r\n// Switch to Spanish\r\n\r\n@injectable()\r\nexport default class DateHandlerService implements IDateHandler {\r\n private months_ru: Array = [\"Январь\", \"Февраль\", \"Март\", \"Апрель\", \"Май\", \"Июнь\", \"Июль\", \"Август\", \"Сентябрь\", \"Октябрь\", \"Ноябрь\", \"Декабрь\"];\r\n private months_en: Array = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\n private days_ru: Array = [\"Воскресенье\", \"Понедельник\", \"Вторник\", \"Среда\", \"Четверг\", \"Пятница\", \"Суббота\"];\r\n private days_en: Array = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\r\n private days_ru_short: Array = [\"Вс\", \"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\"];\r\n private days_en_short: Array = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\r\n\r\n _date!: Date;\r\n\r\n GetMonth(which: number = 0, lang: string = \"ru\", declension?: boolean): string {\r\n let monthdeclension = \"я\";\r\n let month = lang == \"ru\" ? this.months_ru[which] : this.months_en[which];;\r\n\r\n if (lang == \"ru\" && declension) {\r\n if (which == 2 || which == 7) {\r\n monthdeclension = \"а\";\r\n month = this.months_ru[which] + monthdeclension; // Just add \"а\"\r\n } else {\r\n month = this.months_ru[which].slice(0, -1) + monthdeclension; // Replace \"ь\" with \"я\"\r\n };\r\n };\r\n\r\n return month;\r\n };\r\n\r\n GetDay(which: number = 1, lang: string = \"ru\"): string {\r\n return lang == \"ru\" ? this.days_ru[which] : this.days_en[which];\r\n };\r\n\r\n GetShortDays(lang: string = \"ru\"): Array {\r\n return lang == \"ru\" ? this.days_ru_short : this.days_en_short;\r\n };\r\n\r\n GetMonthNames(lang: string = \"ru\"): Array {\r\n return lang == \"ru\" ? this.months_ru : this.months_en;\r\n };\r\n\r\n Parse(date: string | Date, format?: string) {\r\n if (date instanceof Date) {\r\n this._date = date;\r\n } else if (format !== undefined) {\r\n this._date = DateAndTime.parse(date, format);\r\n };\r\n return this;\r\n };\r\n\r\n ParseToDate(date: string | Date, format?: string) {\r\n if (date instanceof Date) {\r\n this._date = date;\r\n } else if (format !== undefined) {\r\n this._date = DateAndTime.parse(date, format);\r\n };\r\n return this._date;\r\n };\r\n\r\n Locale(locale: string): void {\r\n DateAndTime.locale(ru);\r\n };\r\n\r\n public Format(format?: string): string {\r\n return DateAndTime.format(this._date, format);\r\n };\r\n\r\n public Add(type: string, amount: number): this {\r\n switch (type) {\r\n case \"years\":\r\n this._date = DateAndTime.addYears(this._date, amount);\r\n break;\r\n case \"months\":\r\n this._date = DateAndTime.addMonths(this._date, amount);\r\n break;\r\n case \"days\":\r\n this._date = DateAndTime.addDays(this._date, amount);\r\n break;\r\n case \"hours\":\r\n this._date = DateAndTime.addHours(this._date, amount);\r\n break;\r\n case \"minutes\":\r\n this._date = DateAndTime.addMinutes(this._date, amount);\r\n break;\r\n case \"seconds\":\r\n this._date = DateAndTime.addSeconds(this._date, amount);\r\n break;\r\n default:\r\n this._date = DateAndTime.addMilliseconds(this._date, amount);\r\n break;\r\n }\r\n return this;\r\n }\r\n\r\n public Subtract(type: string, amount: number): this {\r\n return this.Add(type, amount * -1);\r\n };\r\n\r\n /**\r\n * Convert and sort an array of dates from string to date format.\r\n * Mostly used to convert v-date-picker dates since it returns an Array\r\n * Example: ['2022-04-22', '2022-04-15', '2022-04-17'] => [ new Date('2022-04-15'), new Date('2022-04-17'), new Date('2022-04-22') ]\r\n * @param {array} dates - Array of strings in date format like '2022-04-22'\r\n */\r\n public DatesConvertAndSort(dates: Array): Array {\r\n return dates.map(d => new Date(d).getTime()).sort().map(d => new Date(d));\r\n };\r\n\r\n /**\r\n * Get an array of dates\r\n * Accepts an array of two or more dates, sorts them and returns an array of all dates in between earliest and latest\r\n * @param {array} dates - Array of dates\r\n */\r\n public DatesBetween(dates: Array, removeHours?: false, includeLast?: boolean): Array {\r\n if (Object.prototype.toString.call(dates) !== '[object Array]') {\r\n console.error('Method only accepts an ARRAY');\r\n return [];\r\n };\r\n\r\n dates.forEach(function (d) {\r\n if (Object.prototype.toString.call(d) !== '[object Date]') {\r\n console.error('Method only accepts an array of DATES');\r\n return [];\r\n };\r\n });\r\n\r\n if (dates.length <= 1) {\r\n console.error('Method only accepts an array of TWO OR MORE values');\r\n return [];\r\n };\r\n\r\n // Sort the array of dates in an ascending order\r\n let sortedDates: Array = dates.map(d => d.getTime()).sort().map(d => new Date(d));\r\n\r\n // Store last date in a variable\r\n const lastDate = sortedDates[sortedDates.length - 1];\r\n\r\n // Generate an array of dates between first and last date\r\n let DatesBetween: Array = [];\r\n // Friendly reminder: relational operators like < or >= are FINE to compare two DATE objects.\r\n for (var d = new Date(sortedDates[0]);\r\n d < lastDate;\r\n d.setDate(d.getDate() + 1)) {\r\n // Push new date to array\r\n DatesBetween.push(\r\n new Date(\r\n removeHours ? d.setHours(0, 0, 0, 0) : d\r\n )\r\n );\r\n };\r\n // Include last date if such option is specified\r\n if (includeLast) DatesBetween.push(lastDate);\r\n\r\n return DatesBetween;\r\n };\r\n\r\n /**\r\n * Get a date string in a special format (\"DD Month, ShortDay\" by default)\r\n * @param {Date} date - Date object\r\n * @param {String} format - Desired format\r\n * @param {Boolean} declension - Choose whether to decline month name like from \"Январь\" to \"Января\"\r\n * Supported formats:\r\n * \"DD Month, ShortDay\" (default) - 17 Август, Ср\r\n * \"DD Month YYYY\" - 17 Август 2022\r\n */\r\n public FormatSpecial(date: Date, format?: string, declension: boolean = false, lowercase: boolean = false): string {\r\n let ddate = date.getDate();\r\n let day = date.getDay();\r\n let dayShort = this.days_ru_short[day];\r\n let monthNumber = date.getMonth();\r\n let month = this.GetMonth(monthNumber, undefined, declension);\r\n if (lowercase) month = month.toLowerCase();\r\n let year = date.getFullYear();\r\n if (format === \"ShortDay, DD Month\") return `${dayShort}, ${ddate} ${month}`;\r\n if (format === \"DD Month YYYY\") return `${ddate} ${month} ${year}`;\r\n return `${ddate} ${month}, ${dayShort}`;\r\n };\r\n\r\n /**\r\n * Check if arguement is a date and valid\r\n * @param {any} date - Variable to check\r\n */\r\n public IsValid(date: any): boolean {\r\n if (Object.prototype.toString.call(date) === \"[object Date]\") {\r\n return isNaN(date) ? false : true;\r\n } else {\r\n console.error(\"Not a date object.\")\r\n return false;\r\n }\r\n };\r\n\r\n /**\r\n * Convert time string like \"03:00:00\" to milliseconds\r\n * @param {string} time - Time string like \"03:00:00\"\r\n */\r\n public ConvertToMilliseconds(time: string): number {\r\n if (time != '') {\r\n let a = time.split(':');\r\n let hours = parseInt(a[0]);\r\n let minutes = parseInt(a[1]);\r\n let seconds = parseInt(a[2]);\r\n let fulltime = seconds + (minutes * 60) + (Math.abs(hours) * 60 * 60) * 1000;\r\n return hours >= 0 ? fulltime : -fulltime;\r\n };\r\n return 0;\r\n };\r\n /**\r\n * Returns the day of currently stored date\r\n */\r\n public Weekday(): number {\r\n return this._date.getDay();\r\n };\r\n /**\r\n * Returns the time of currently stored date in milliseconds\r\n * @param {boolean} timeIrelevant - Specify if only date time is needed and not the entire date. If true will return date's time from 00:00:00 ignoring H:M:s of the date\r\n */\r\n public Time(timeIrrelevant?: boolean): number {\r\n // If time is irrelevant\r\n return timeIrrelevant ? new Date(this._date).setHours(0, 0, 0, 0) : this._date.getTime();\r\n };\r\n /**\r\n * Returns an array of dates that spans 7 days starting today + offset\r\n * @param {number} offset - Specify how many days to skip before calculating a week.\r\n */\r\n GetWeek(offset: number = 0): Array {\r\n let today = new Date();\r\n today = new Date(today.setDate(today.getDate() + offset));\r\n let seven = new Date(new Date().setDate(today.getDate() + 6));\r\n return this.DatesBetween([today, seven]);\r\n };\r\n /**\r\n * Calculates the time difference in minutes between two time strings like \"15:00\" and \"17:30\"\r\n * @param {string} timeA - Time string to start counting FROM\r\n * @param {string} timeB - Time string to start counting TO\r\n */\r\n MinutesBetween(timeA: string, timeB: string): number {\r\n let timeStart = new Date();\r\n let timeEnd = new Date();\r\n\r\n let StartHours = timeA.slice(0, 5).split(\":\");\r\n let EndHours = timeB.slice(0, 5).split(\":\");\r\n\r\n let StartMs = timeStart.setHours(parseInt(StartHours[0]), parseInt(StartHours[1]));\r\n let EndMs = timeEnd.setHours(parseInt(EndHours[0]), parseInt(EndHours[1]));\r\n\r\n let result = Math.floor((EndMs - StartMs) / 1000 / 60);\r\n return result;\r\n };\r\n /**\r\n * Get monday date of this week\r\n * Example: If today is 2023-03-04 (Saturday) this will return 2023-02-27 (Monday)\r\n */\r\n GetStartOfTheWeek(): Date {\r\n const d = new Date();\r\n const date = d.getDate()\r\n const day = d.getDay();\r\n return new Date(new Date().setDate(date - (day || 7) + 1));\r\n };\r\n};","export const DateHandlerSymbols = {\r\n DateHandlerService: Symbol.for(\"DateHandlerService\")\r\n}","export * from './Global/app-settings';\r\nexport * from \"./Global/service-registred-record\";\r\nexport * from './Global/m-logger';\r\n\r\nexport * from './Arena';\r\nexport * from './Cart';\r\nexport * from './Club';\r\nexport * from './Cms';\r\nexport * from './Common';\r\nexport * from './Global';\r\nexport * from './Identity';\r\nexport * from './IdentityServerLogin';\r\nexport * from './Instructors';\r\nexport * from './Localization';\r\nexport * from './Loyalty';\r\nexport * from './Luzhniki';\r\nexport * from './Market';\r\nexport * from './Metrics';\r\nexport * from './News';\r\nexport * from './Notification';\r\nexport * from './Order';\r\nexport * from './Organizations';\r\nexport * from './PhoneConfirm';\r\nexport * from './Profile';\r\n//export * from './Questionnaire';\r\nexport * from './RozaHutor';\r\nexport * from './Sale';\r\nexport * from './Sib';\r\nexport * from './StyleSettings';\r\nexport * from './Tariffs';\r\nexport * from './Utility';\r\nexport * from './Tennis';\r\nexport * from './Syntech';\r\nexport * from './LuzhnikiParking';\r\n\r\nimport GlobalService from './Global/global-service';\r\nexport { GlobalSymbols } from './Global/global-service';\r\nimport WpCorePrefixes from './wp-core-prefixes';\r\nexport { WpCorePrefixes };\r\nexport default GlobalService;","import { ReservationItemTypes } from './reservation-item-types';\r\n\r\nexport default class ReservationItem {\r\n public TariffId: number;\r\n public Count: number;\r\n public Date: string;\r\n public BundleId: number;\r\n public LessonId: number;\r\n public SeanceId?: string | null;\r\n public ItemType: ReservationItemTypes;\r\n public MediaNum: string;\r\n public LessonsBundleId: string;\r\n public MarketBillId: number; \r\n public LessonCoachId?: number | null;\r\n public LessonLocationId?: number | null;\r\n public ClubContractId?: number | null;\r\n public PersonContractId?: number | null;\r\n public ReplenishmentSum?: number | null;\r\n\r\n constructor(count: number, itemType: ReservationItemTypes, tariffId?: number | null,\r\n date?: string | null, bundleId?: number | null,\r\n lessonId?: number | null, mediaNum?: string | null,\r\n lessonsBundleId?: string | null,\r\n seanceId?: string | null, marketBillId?: number | null,\r\n lessonCoachId?: number | null,\r\n lessonLocationId?: number | null,\r\n contractId?: number | null,\r\n personContractId?: number | null,\r\n replenishmentSum?: number | null) {\r\n\r\n this.Count = count;\r\n this.ItemType = itemType;\r\n\r\n this.TariffId = tariffId != null ? tariffId : 0;\r\n this.Date = date == null ? '' : date;\r\n this.BundleId = bundleId != null ? bundleId : 0;\r\n this.LessonId = lessonId != null ? lessonId : 0;\r\n this.MediaNum = mediaNum != null ? mediaNum : '';\r\n this.LessonsBundleId = lessonsBundleId != null ? lessonsBundleId : '';\r\n this.SeanceId = seanceId;\r\n this.MarketBillId = marketBillId != null ? marketBillId : 0;\r\n this.LessonCoachId = lessonCoachId;\r\n this.LessonLocationId = lessonLocationId;\r\n this.ClubContractId = contractId;\r\n this.PersonContractId = personContractId;\r\n this.ReplenishmentSum = replenishmentSum;\r\n }\r\n}","import Vue from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { ISaleService, SaleSymbols, BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\n\r\n@Component({\r\n template: require(\"./wp-payconfirm-promo.html\")\r\n})\r\n\r\nexport default class WpPayConfirmPromo extends mixins>(WpBaseComponent, Vue) {\r\n\r\n protected _saleService!: ISaleService;\r\n\r\n CodeLoading: boolean = true;\r\n Code: string = '';\r\n\r\n async SendCode() {\r\n this.CodeLoading = true;\r\n /*\r\n if (this.Step == WpSaleSteps.PayConfirm) {\r\n await this._saleService.CancelOrderAsync(this.OrderId);\r\n this.OrderId = 0;\r\n }\r\n\r\n await this._saleService.ClearOrderSaleStateAsync();\r\n\r\n this.Step = WpSaleSteps.Instructors;\r\n this.BackLoading = false;\r\n */\r\n }\r\n\r\n async mounted() {\r\n this._saleService = await this.GlobalService.Get(SaleSymbols.SaleService);\r\n }\r\n}\r\n\r\nexport class WpPayConfirmPromoDictionary extends BaseSystemLocalizationDictionary {\r\n CallToAction: string = 'Воспользуйтесь промокодом!';\r\n GenericApply: string = 'Применить';\r\n GenericSuccess: string = 'Вы применили промокод «ABC123»!';\r\n}","import { injectable, inject } from 'inversify';\r\n\r\nimport { Order, OrderDetails, OrderDetailItem, OrdersFilter } from './../Order';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { FiltringResult, ActionResult, ErrorTypes } from './../Common';\r\nimport { IdentitySymbols, IContext } from './../Identity';\r\nimport { IDateHandler } from './../';\r\nimport ILuzhOrderProvider from './i-luzh-order-provider';\r\nimport { DateHandlerSymbols } from '../Utility';\r\nimport { OrderStatus } from '../Sale';\r\nimport LuzhnikiOrderProvider from './luzhniki-order-provider';\r\n\r\n@injectable()\r\nexport default class LuzhnikiAccountBalanceProvider extends LuzhnikiOrderProvider {\r\n\r\n constructor(@inject(IdentitySymbols.Context) context: IContext,\r\n @inject(DateHandlerSymbols.DateHandlerService) dateHandler: IDateHandler) {\r\n super(context, dateHandler);\r\n }\r\n\r\n async GetOrderListByTNodAsync(tnodId: number): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`\r\n }\r\n });\r\n\r\n let response = await client.get>(`/luzhniki/balance/history/?tnodid=${tnodId}`);\r\n\r\n if (response.result == null)\r\n return ActionResult.FailedData>(ErrorTypes.InternalError);\r\n\r\n let result = new FiltringResult();\r\n\r\n if (response.result != null) {\r\n response.result.forEach((x: any) => {\r\n let order = new Order();\r\n\r\n order.Id = x.CashListId ?? 0;\r\n order.Date = this._dateHandler.ParseToDate(x.date, 'DD.MM.YYYY');\r\n order.Status = x.TypeOper == 1 || x.TypeOper == 5 ? OrderStatus.Refunded : OrderStatus.Paid;\r\n order.Site = x.comment;\r\n if (x.debet != 0) order.Sum = Number.parseFloat(x.debet) * -1;\r\n if (x.credit != 0) order.Sum = Number.parseFloat(x.credit);\r\n\r\n result.Entities.push(order);\r\n });\r\n }\r\n\r\n return ActionResult.SuccessData>(result);\r\n }\r\n\r\n}\r\n\r\nclass AjaxResult {\r\n Result: string | number = '';\r\n Message: string = '';\r\n Content?: T;\r\n Data?: T;\r\n}","export const CmsSymbols = {\r\n DataProvider: Symbol.for(\"WpCmsDataProvider\"),\r\n CmsService: Symbol.for(\"WpCmsService\")\r\n}","import './wp-tariffs.scss';\r\n\r\nimport Vue from 'vue';\r\nimport WpBaseComponent from './../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, {\r\n ITariffService, TariffSymbols, AppSettings, INotificationService, Cart, Tariff, TariffsBundle, CartItem, TariffSeance, IMetricsService, MetricsSymbols, WpCorePrefixes, NotificationEventArgs, NotificationTypes, NotificationSymbols, ITariffCapacityService, MLogger\r\n} from 'web-platform-core-ui';\r\nimport { Prop, DefaultProps } from 'vue/types/options';\r\nimport { Watch } from 'vue-property-decorator';\r\nimport { MetricsEvents } from '../../metrics-events-symbols';\r\nimport { VueConstructor } from 'vue/types/umd';\r\nimport BaseUILocalizationDictionary from './../../Localization/base-ui-localization-terms';\r\n\r\n\r\nexport const wpTariffsProp = Vue.extend({\r\n props: {\r\n Cart: Object as Prop\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-tariffs.html\")\r\n})\r\nexport default class WpTariffs extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpTariffsProp, Vue) {\r\n private _tariffService!: ITariffService;\r\n private _tariffCapacityService!: ITariffCapacityService;\r\n protected _notificationService!: INotificationService;\r\n private _metricsService!: IMetricsService;\r\n private _logger!: MLogger;\r\n\r\n Step: number = 1;\r\n Settings!: AppSettings;\r\n SelectedSeanceId: string | undefined = '';\r\n SelectedSeance?: TariffSeance;\r\n Seances: Array = [];\r\n Loading: boolean = true;\r\n TariffsSeancesFilter: boolean = false;\r\n Date: string = '';\r\n TariffsZoneList?: Array;\r\n DatepickerSettings: any = {};\r\n Datepicker: boolean = false;\r\n SeanceIdFilter: number = 0;\r\n NotAvailable: boolean = false;\r\n TariffsLoading: boolean = true;\r\n ItemsAvailable: boolean = false;\r\n\r\n // Тарифов может быть 1-2\r\n Tariffs: Array = [];\r\n Bundles: Array = [];\r\n // Но товаров для отображения может быть много, в зависимости от кол-ва сеансов\r\n Items: Array = [];\r\n\r\n created(): void {\r\n // Настройки...\r\n this.Settings = GlobalService.GetSettings();\r\n this.TariffsSeancesFilter = this.Settings.TariffsSeancesFilter;\r\n // Сервис по работе с метрикой\r\n this._metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n // Get notification service up and ready\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n // Watch for notification rules\r\n this._notificationService.NotificationSended.Subscribe(this._notification);\r\n // Сервис по работе с тарифами (Загрузить, узнать цену и прочее)\r\n this._tariffService = this.GlobalService.Get(TariffSymbols.TariffService);\r\n // Сервис по работе с нагрузкой (Кол-во доступных билетов и прочее)\r\n this._tariffCapacityService = this.GlobalService.Get(TariffSymbols.TariffCapacityService);\r\n // Микро логер\r\n this._logger = new MLogger();\r\n }\r\n\r\n async mounted(): Promise {\r\n let result = await this._tariffService.GetTariffsAsync();\r\n let resultBundles = await this._tariffService.GetTariffsBundlesAsync();\r\n\r\n // Сохранить тарифы и связки\r\n if (result.Data != undefined) this.Tariffs = result.Data;\r\n if (resultBundles.Data != undefined) this.Bundles = resultBundles.Data;\r\n\r\n if (result.Data != undefined) {\r\n // Кэшируем цены и загрузку меньшим кол-вом запросов при создании виджета\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.Tariff, this.Tariffs);\r\n\r\n if (this.Settings.TariffsId != null && this.Settings.TariffsId.length > 0) {\r\n this.Tariffs.filter(x => !x.IsRewritable).forEach(x => {\r\n if (this.Settings?.TariffsId.some(id => id == x.Id)) {\r\n this.AddTariffItem(x);\r\n }\r\n });\r\n } else {\r\n this.Tariffs.filter(x => !x.IsRewritable).forEach(x => {\r\n this.AddTariffItem(x);\r\n });\r\n };\r\n };\r\n\r\n if (this.Settings.BundlesId != null && this.Settings.BundlesId.length > 0) {\r\n if (resultBundles.Data != undefined) {\r\n this.Bundles = resultBundles.Data;\r\n\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.TariffBundle, this.Bundles);\r\n\r\n this.Bundles.forEach(x => {\r\n if (this.Settings?.BundlesId.some(id => id == x.Id)) {\r\n this.LocalizationService.TranslateManyAsync(WpCorePrefixes.Tariff, x.Tariffs);\r\n this.AddBundleItem(x);\r\n }\r\n });\r\n }\r\n } else {\r\n if (resultBundles.Data != undefined) {\r\n this.Bundles = resultBundles.Data;\r\n\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.TariffBundle, this.Bundles);\r\n\r\n this.Bundles.forEach(x => {\r\n this.LocalizationService.TranslateManyAsync(WpCorePrefixes.Tariff, x.Tariffs);\r\n this.AddBundleItem(x);\r\n });\r\n };\r\n };\r\n\r\n // Get every bundle\r\n this.Bundles.forEach((b) => {\r\n // Get every tariff in the bundle\r\n b.Tariffs.forEach((t) => {\r\n // If this tariff is NOT in the array this.Tariffs - add it\r\n if (this.Tariffs.find(a => a.Id == t.Id) == undefined) this.Tariffs.push(t);\r\n })\r\n });\r\n // And now we have a list of all tariffs in one array - this.Tariffs\r\n await this.UpdateTariffsPricesCapacitiesAll(this.Date);\r\n\r\n this.Seances = this.Seances.filter((thing, i, arr) => arr.findIndex(t => t.SeanceId === thing.SeanceId) === i);\r\n\r\n this.Seances = this.Seances.sort((x, y) => {\r\n if (x.SeanceValue == y.SeanceValue) return 0;\r\n if (x.SeanceValue < y.SeanceValue) return -1\r\n else return 1;\r\n });\r\n\r\n this.Items = this.Items.sort((x, y) => {\r\n if (x.ZIndex == y.ZIndex) return 0;\r\n if (x.ZIndex < y.ZIndex) return -1\r\n else return 1;\r\n });\r\n\r\n this.Loading = false;\r\n\r\n this.SeanceIdFilter = this.FindFilteredSeance();\r\n\r\n this.StartDatepicker();\r\n }\r\n\r\n protected _notification(sender: any, e: NotificationEventArgs): void {\r\n if (e.Data.Type == NotificationTypes.System && e.Data.SystemProcessKey == \"CartContent\")\r\n this.SeanceIdFilter = this.FindFilteredSeance();\r\n };\r\n\r\n StartDatepicker(): void {\r\n this.DatepickerSettings = this.Settings;\r\n this.Datepicker = true;\r\n }\r\n\r\n AddToCart(cartItem: CartItem): void {\r\n let result = this.Cart.AddItem(cartItem);\r\n\r\n this._metricsService.RegistrateEvent(MetricsEvents.ServiceCartAdd, cartItem.MetricsId);\r\n\r\n if (!result.Success)\r\n this._notificationService.Error(this.Terms.GenericError, result.ErrorMessage ? result.ErrorMessage : this.Terms.InternalError);\r\n };\r\n\r\n SeanceTime(seance: TariffSeance): string | undefined {\r\n return TariffSeance.SeanceTime(seance);\r\n };\r\n\r\n FindFilteredSeance(): number {\r\n try {\r\n // Find if any cart items have Seance in them\r\n var r = this.Cart.Items.find((e: TariffItem) => {\r\n return e.Seance != null;\r\n });\r\n } catch (e) {\r\n console.error(e);\r\n } finally {\r\n // If the corresponding setting ( disablemultipleseances ) is set to true then return the result\r\n if (this.Settings?.DisableMultipleSeances) {\r\n return r ? r.Seance.SeanceId : 0;\r\n } else {\r\n return 0;\r\n };\r\n };\r\n };\r\n\r\n beforeDestroy() {\r\n this._notificationService.NotificationSended.Unsubscribe(this.notification);\r\n };\r\n\r\n SelectSeance(seance: TariffSeance) {\r\n if (this.SelectedSeance != null) {\r\n if (this.SelectedSeance.SeanceId == seance.SeanceId) {\r\n this._metricsService.RegistrateEvent(MetricsEvents.ServiceSeanceUnselected, seance.SeanceId);\r\n\r\n this.SelectedSeance = undefined;\r\n this.Items.forEach(x => {\r\n x.Show = true;\r\n });\r\n } else {\r\n this._metricsService.RegistrateEvent(MetricsEvents.ServiceSeanceSelected, seance.SeanceId);\r\n this.SelectedSeance = seance;\r\n this.Items.forEach(x => {\r\n if (x.Seance != null && x.Seance.SeanceId != this.SelectedSeance?.SeanceId)\r\n x.Show = false;\r\n else\r\n x.Show = true;\r\n });\r\n }\r\n } else {\r\n this._metricsService.RegistrateEvent(MetricsEvents.ServiceSeanceSelected, seance.SeanceId);\r\n this.SelectedSeance = seance;\r\n this.Items.forEach(x => {\r\n if (x.Seance != null && x.Seance.SeanceId != this.SelectedSeance?.SeanceId)\r\n x.Show = false;\r\n });\r\n }\r\n }\r\n\r\n async DateSet(date: string): Promise {\r\n this.TariffsLoading = true;\r\n if (this.Date != date)\r\n this.Seances.forEach(x => x.Disabled = true);\r\n this._metricsService.RegistrateEvent(MetricsEvents.ServiceChangeDate, date);\r\n // Кэшируем цены и загрузку меньшим кол-вом запросов при обновлении даты\r\n await this.UpdateTariffsPricesCapacitiesAll(date);\r\n this.Date = date;\r\n };\r\n\r\n ItemLoadingChange(id: string, value: boolean) {\r\n let element = this.Items.find(x => x.Id == id);\r\n if (element != undefined) {\r\n element.ItemLoading = value;\r\n this.TariffsLoading = this.Items.some(x => x.ItemLoading == true);\r\n }\r\n };\r\n\r\n ItemAvailableChange(id: string, value: boolean, availableCount?: number, seanceId?: string, price?: number) {\r\n let element = this.Items.find(x => x.Id == id);\r\n if (element != undefined) {\r\n element.ItemAvailable = value;\r\n this.ItemsAvailable = this.Items.some(x => x.ItemAvailable == true);\r\n }\r\n\r\n if (value == true) {\r\n if (seanceId != null && (availableCount == null || availableCount != null && availableCount > 0)) {\r\n let seance = this.Seances.find(x => x.SeanceId == seanceId);\r\n if (seance != null) seance.Disabled = false;\r\n };\r\n };\r\n };\r\n\r\n private AddTariffItem(tariff: Tariff) {\r\n let _this = this;\r\n if (tariff.Seances != null && tariff.Seances.length > 0) {\r\n tariff.Seances.forEach(x => {\r\n _this.Seances.push({ SeanceId: x.SeanceId, SeanceValue: x.SeanceValue, Disabled: true });\r\n\r\n this.Items.push({\r\n Id: `tariff_${tariff.Id}_${x.SeanceId}`,\r\n Type: TariffItemType.Tariff,\r\n Data: tariff,\r\n ZIndex: `${tariff.ZIndex.toString().padStart(2, \"0\")}-${x.SeanceValue}`,\r\n ItemLoading: true,\r\n ItemAvailable: false,\r\n Seance: x,\r\n Show: true,\r\n SeanceId: x.SeanceId\r\n });\r\n });\r\n } else {\r\n this.Items.push({\r\n Id: `tariff_${tariff.Id}`,\r\n Type: TariffItemType.Tariff,\r\n Data: tariff,\r\n ZIndex: `${tariff.ZIndex.toString().padStart(2, \"0\")}`,\r\n ItemLoading: true,\r\n ItemAvailable: false,\r\n Show: true,\r\n SeanceId: \"\"\r\n });\r\n };\r\n };\r\n\r\n private AddBundleItem(bundle: TariffsBundle) {\r\n let tariff = bundle.Tariffs.find(x => x.Seances != null && x.Seances.length > 0);\r\n let _this = this;\r\n if (tariff != null) {\r\n tariff.Seances.forEach(x => {\r\n _this.Seances.push({ SeanceId: x.SeanceId, SeanceValue: x.SeanceValue, Disabled: true });\r\n this.Items.push({\r\n Id: `bundle_${bundle.Id}_${x.SeanceId}`,\r\n Type: TariffItemType.Bundle,\r\n Data: bundle,\r\n ZIndex: `${Math.min.apply(Math, bundle.Tariffs.map(function (o) { return o.ZIndex; })).toString().padStart(2, \"0\")}-${x.SeanceValue}`,\r\n ItemLoading: true,\r\n ItemAvailable: false,\r\n Seance: x,\r\n Show: true,\r\n SeanceId: x.SeanceId\r\n });\r\n });\r\n } else {\r\n this.Items.push({\r\n Id: `bundle_${bundle.Id}`,\r\n Type: TariffItemType.Bundle,\r\n Data: bundle,\r\n ZIndex: `${Math.min.apply(Math, bundle.Tariffs.map(function (o) { return o.ZIndex; })).toString().padStart(2, \"0\")}`,\r\n ItemLoading: true,\r\n ItemAvailable: false,\r\n Show: true,\r\n SeanceId: \"\"\r\n });\r\n }\r\n }\r\n\r\n SeanceFilterBlockResizeFix() {\r\n if (this.TariffsSeancesFilter && this.SelectedSeance == null) {\r\n //let seanceSlideBlock = document.getElementById('seances-filter-block')?.querySelector('.v-slide-group__content') as HTMLElement;\r\n let seanceSlideBlock = (this.$refs.filter as HTMLElement).querySelector('.v-slide-group__content') as HTMLElement;\r\n if (seanceSlideBlock != null) seanceSlideBlock.style.transform = 'translateX(0px)';\r\n };\r\n };\r\n\r\n // Новые методы - http://redmine.isd.su/issues/6843\r\n async UpdateTariffsPricesCapacitiesAll(date: string): Promise {\r\n this.PricesLoading = true;\r\n\r\n if (this.Tariffs.length > 0) {\r\n let prices: Array> = [];\r\n let capacities: Array> = [];\r\n\r\n // Дата, по которой будем кэшировать цены и загрузку будет установленной из календаря (date), минимальной по настройкам (Mindate) или сегодняшней (new Date())\r\n let activeDate = date || this.Settings.Mindate || new Date().toLocaleDateString('ru-RU');\r\n\r\n this._logger.time('caching', 'Кэшируем цены и загрузку по дате: ' + activeDate);\r\n\r\n // Mark items as loading so it doesn't show while we update prices\r\n this.Items.forEach((i) => { i.ItemLoading = true; })\r\n\r\n for (var i = 0; i < this.Tariffs.length; i++) {\r\n let item = this.Tariffs[i];\r\n // Этот сервис загружает цены in bulk\r\n prices.push(this._tariffService.GetTariffsAllPrices(item.Id, activeDate));\r\n // Этот сервис подгружает загрузку in bulk\r\n //promises.push(this._tariffCapacityService.GetTariffsAllCapacities(item.Id, activeDate));\r\n };\r\n\r\n for (var i = 0; i < this.Bundles.length; i++) {\r\n // Так как в связке один и тотже тариф, достаточно взять первый попавшийся ([0])\r\n let item = this.Bundles[i].Tariffs[0];\r\n // Этот сервис загружает цены in bulk\r\n prices.push(this._tariffService.GetTariffsAllPrices(item.Id, activeDate));\r\n // Этот сервис подгружает загрузку in bulk\r\n //promises.push(this._tariffCapacityService.GetTariffsAllCapacities(item.Id, activeDate));\r\n };\r\n\r\n // После того как прогрузили все цены...\r\n await Promise.all(prices).then(() => {\r\n // Пройдёмся по кэшу цен...\r\n for (var key in this._tariffService.Cache) {\r\n // Если цена у тарифа есть - посмотреть его загрузку\r\n // Если нет, то и загрузку смысла смотреть нет\r\n // http://redmine.isd.su/issues/8583\r\n if (this._tariffService.Cache[key] !== null) {\r\n let string = key.split(\"_\");\r\n let id = parseInt(string[0]);\r\n let date = string[1];\r\n\r\n // Найдём тариф в списке тарифов (потому что мы его не нашли ранее, что стоило бы сделать)\r\n let tariff: Tariff | undefined = this.Tariffs.find((t: Tariff) => t.Id == id);\r\n\r\n // Если в списке тарифов не нашли то, что искали - посмотрим в списке связок, может там есть?\r\n if (tariff == undefined) {\r\n let findBundle = this.Bundles.find((b: TariffsBundle) => b.Tariffs[0].Id == id);\r\n if (findBundle) tariff = findBundle.Tariffs[0];\r\n };\r\n\r\n // Если нашли, и у него есть ShowLeftTicketCount - запросим загрузку\r\n if (tariff && tariff.ShowLeftTicketCount)\r\n capacities.push(this._tariffCapacityService.GetTariffsAllCapacities(id, date));\r\n };\r\n };\r\n });\r\n\r\n // Когда все загрузки прогрузились....\r\n await Promise.all(capacities).then(() => {\r\n this.PricesLoading = false;\r\n this._logger.time('caching', 'Кэширование заняло %t миллисекунд(ы)');\r\n })\r\n };\r\n\r\n };\r\n};\r\n\r\nenum TariffItemType {\r\n Tariff = 1,\r\n Bundle = 2\r\n}\r\n\r\nclass TariffItem {\r\n Id: string = '';\r\n Type: TariffItemType = 1;\r\n Data?: Tariff | TariffsBundle;\r\n ZIndex: string = '50';\r\n ItemLoading: boolean = true;\r\n ItemAvailable: boolean = false;\r\n Seance?: TariffSeance;\r\n Show: boolean = true;\r\n SeanceId: string = \"\";\r\n Price?: number;\r\n}\r\n\r\nexport class WpTariffsDictionary extends BaseUILocalizationDictionary {\r\n NoAvailableLessonsForThisDate: string = '';\r\n}","import './wp-arena.scss';\r\n\r\nimport Vue, { VueConstructor } from 'vue';\r\nimport WpBaseComponent from './../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { ArenaSeance, ArenaSector, ArenaPosition, Cart, IMetricsService, MetricsSymbols, BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\nimport { Prop, DefaultProps } from 'vue/types/options';\r\nimport { MetricsEvents } from '../../metrics-events-symbols';\r\nimport BaseUILocalizationDictionary from './../../Localization/base-ui-localization-terms';\r\nimport { Watch } from 'vue-property-decorator';\r\n\r\nexport const wpArenaProp = Vue.extend({\r\n props: {\r\n Cart: Object as Prop,\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-arena.html\")\r\n})\r\nexport default class WpArena extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, Vue, wpArenaProp) {\r\n private _metricsService!: IMetricsService;\r\n\r\n Step: WpArenaSaleSteps = WpArenaSaleSteps.Seances;\r\n\r\n ArenaText: string = '';\r\n ArenaPosition: ArenaPosition = ArenaPosition.Bottom;\r\n CurrentSeance: ArenaSeance = new ArenaSeance();\r\n CurrentSector: ArenaSector = new ArenaSector();\r\n OrderId: number = 0;\r\n ForcedSeance: boolean = false;\r\n ForcedSector: boolean = false;\r\n\r\n @Watch('Step')\r\n NavigationHappened(step: WpArenaSaleSteps, _oldValue: WpArenaSaleSteps): void {\r\n if (step == 2 && this.ForcedSector) {\r\n _oldValue < step ? this.Step++ : this.Step--;\r\n };\r\n };\r\n\r\n mounted() {\r\n this.ArenaText = this.Terms.ArenaText;\r\n this._metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetToArenaSeances);\r\n\r\n this.Cart.CartChanged.Subscribe((sender: any, e: any) => {\r\n if (this.Cart.OrderId != null) {\r\n this.OrderId = this.Cart.OrderId;\r\n }\r\n })\r\n if (this.Cart.OrderId != null)\r\n this.OrderId = this.Cart.OrderId;\r\n };\r\n\r\n SeanceSelected(seance: ArenaSeance) {\r\n this.CurrentSeance = seance;\r\n this.Step = WpArenaSaleSteps.Sectors;\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetToArenaSectors, this.CurrentSeance?.Id);\r\n };\r\n\r\n SectorSelected(data: any) {\r\n this.ArenaText = data.ArenaText;\r\n this.ArenaPosition = data.ArenaPosition;\r\n this.CurrentSector = data.Sector;\r\n this.Step = WpArenaSaleSteps.Seats;\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetToArenaSeats, this.CurrentSector?.SectorCode);\r\n };\r\n\r\n Back(): void {\r\n if (this.Step == WpArenaSaleSteps.Sectors) {\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetArenaSectorsBack, this.CurrentSeance?.Id);\r\n };\r\n\r\n if (this.Step == WpArenaSaleSteps.Seats) {\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetArenaSeatsBack, this.CurrentSector?.SectorCode);\r\n };\r\n\r\n if (this.Step == WpArenaSaleSteps.Sectors || this.Step == WpArenaSaleSteps.Seats) {\r\n this.Step--;\r\n\r\n if (this.Step == WpArenaSaleSteps.Seances) {\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetToArenaSeances);\r\n };\r\n };\r\n };\r\n\r\n async CartTimeout() {\r\n this.Cart.OrderId = undefined;\r\n this.Cart.Clear();\r\n this.Cart.Reset();\r\n };\r\n\r\n ForcedSeanceDetected(seance: ArenaSeance): void {\r\n this.CurrentSeance = seance;\r\n this.ForcedSeance = true;\r\n };\r\n\r\n ForcedSectorDetected(sector: ArenaSector): void {\r\n this.CurrentSector = sector;\r\n this.ForcedSector = true;\r\n };\r\n};\r\n\r\nexport enum WpArenaSaleSteps {\r\n Seances = 1,\r\n Sectors = 2,\r\n Seats = 3,\r\n};\r\n\r\nexport class WpArenaDictionary extends BaseUILocalizationDictionary {\r\n ArenaText: string = '';\r\n};","export const OrganizationSymbols = {\r\n OrganizationService: Symbol.for(\"OrganizationService\"),\r\n OrganizationProvider: Symbol.for(\"OrganizationProvider\")\r\n}","import IOrganiationService from './i-organization-service';\r\nimport { injectable, inject } from 'inversify';\r\nimport IOrganizationProvider from './i-organization-provider';\r\nimport { OrganizationSymbols } from './symbols';\r\nimport OrganizationInfo from './organization-info';\r\nimport { ActionResult } from './../Common';\r\n\r\n@injectable()\r\nexport default class OrganizationService implements IOrganiationService {\r\n private _provider: IOrganizationProvider;\r\n\r\n constructor(@inject(OrganizationSymbols.OrganizationProvider) provider: IOrganizationProvider) {\r\n this._provider = provider;\r\n }\r\n\r\n async GetOrganizationInfoAsync(): Promise> {\r\n return await this._provider.GetOrganizationInfoAsync();\r\n }\r\n\r\n async GetOrganizationRulesAsync(): Promise> {\r\n return await this._provider.GetOrganizationRulesAsync();\r\n }\r\n\r\n}","export default class OrganizationInfo {\r\n public Id: number = 0;\r\n public DisplayName: string = \"\";\r\n public OrgUrl: string = \"\";\r\n public OrgDesc: string = \"\";\r\n public OrgName: string = \"\";\r\n public SupportEmail: string = \"\";\r\n public SupportPhone: string = \"\";\r\n public LegalName: string = \"\";\r\n public OGRN: string = \"\";\r\n public INN: string = \"\";\r\n public LegalAddress: string = \"\";\r\n public License: string = \"\";\r\n}\r\n","module.exports = \"
\\r\\n\\r\\n \\r\\n \\r\\n {{ Terms.InstructionEnterCardNumber }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.InstructionCharacters }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n mdi-credit-card-plus {{ Terms.GenericCheck }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n mdi-pencil {{ Terms.GenericChange }}\\r\\n \\r\\n \\r\\n mdi-close\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Message }}\\r\\n \\r\\n \\r\\n
\\r\\n
\";","import NewsArticle from './news-article';\r\n\r\nexport { NewsArticle }","import { injectable, inject } from 'inversify';\r\nimport GlobalService from './..';\r\nimport { IdentitySymbols } from './../Identity/symbols';\r\nimport { IContext } from './../Identity';\r\nimport ICartProvider from './i-cart-provider';\r\nimport { RestClient } from 'typed-rest-client/RestClient';\r\n \r\n@injectable()\r\nexport default class CartProvider implements ICartProvider {\r\n private _context: IContext;\r\n\r\n constructor(@inject(IdentitySymbols.Context) context: IContext) {\r\n this._context = context;\r\n }\r\n\r\n async SaveCartAsync(cart: string): Promise {\r\n let settings = GlobalService.GetSettings();\r\n\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SessionId\": settings.SessionId,\r\n \"User\": this._context.CurrentIdentity.UserId,\r\n \"SiteId\": settings.SiteId,\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity?.AccessToken?.Token}`\r\n }\r\n }); \r\n\r\n await client.replace(`/api/cart/save/`, { data: cart });\r\n }\r\n\r\n async GetCurrentCartAsync(): Promise {\r\n let settings = GlobalService.GetSettings();\r\n\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"SessionId\": settings.SessionId,\r\n \"User\": this._context.CurrentIdentity.UserId,\r\n \"SiteId\": settings.SiteId,\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity?.AccessToken?.Token}`\r\n }\r\n });\r\n\r\n let response = await client.get(`/api/cart/`);\r\n\r\n return response.result == null ? \"\" : response.result;\r\n }\r\n}","import './wp-arena-seances.scss';\r\n\r\nimport Vue from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, { AppSettings, IArenaService, ArenaSymbols, ArenaSeance, BaseSystemLocalizationDictionary, INotificationService, NotificationSymbols, WpCorePrefixes } from 'web-platform-core-ui';\r\n\r\n@Component({\r\n template: require(\"./wp-arena-seances.html\")\r\n})\r\nexport default class WpArenaSeances extends mixins>(WpBaseComponent, Vue) {\r\n private _arenaService!: IArenaService;\r\n protected _notificationService!: INotificationService;\r\n\r\n Settings!: AppSettings;\r\n Seances: Array = [];\r\n ForcedSeance: ArenaSeance | null = null;\r\n\r\n async mounted() {\r\n this._arenaService = this.GlobalService.Get(ArenaSymbols.ArenaService);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n\r\n this.Settings = GlobalService.GetSettings();\r\n\r\n let seances = await this._arenaService.GetSeancesAsync();\r\n\r\n if (seances.Success && seances.Data != null) {\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.ArenaSeance, seances.Data);\r\n this.Seances = seances.Data;\r\n } else {\r\n this._notificationService.Error(\"Ошибка\", seances.ErrorMessage ? seances.ErrorMessage : this.Terms.InternalError);\r\n };\r\n\r\n // Если установлена настройка forceseanceid - найти сеанс, и если есть - кликнуть на него\r\n if (this.Settings.ForceSeanceId) {\r\n this.ForcedSeance = this.Seances.find(seance => seance.Id == this.Settings.ForceSeanceId) || null;\r\n if (this.ForcedSeance) {\r\n this.Selected(this.ForcedSeance);\r\n this.$emit(\"ForcedSeanceDetected\", this.ForcedSeance);\r\n };\r\n };\r\n };\r\n\r\n Selected(seance: ArenaSeance) {\r\n this.$emit(\"SeanceSelected\", seance);\r\n };\r\n}\r\n\r\nexport class WpArenaSeancesDictionary extends BaseSystemLocalizationDictionary {\r\n NoAvailableSeances: string = '';\r\n}","import Vue, { VueConstructor } from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { PropSync } from 'vue-property-decorator';\r\nimport {\r\n INotificationService, NotificationSymbols, InstructorsGroupLesson,\r\n InstructorsGroupCartItem, IInstructorsService, InstructorsSymbols, BaseSystemLocalizationDictionary\r\n} from 'web-platform-core-ui';\r\nimport { DefaultProps } from 'vue/types/options';\r\n\r\n\r\nexport const wpInstructorsGroupLessonsProp = Vue.extend({\r\n props: {\r\n lessons: Array,\r\n dates: Array,\r\n categoryName: String\r\n }\r\n})\r\n@Component({\r\n template: require(\"./wp-instructors-group-lessons.html\")\r\n})\r\n\r\nexport default class WpInstructorsGroupLessons extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpInstructorsGroupLessonsProp, Vue) {\r\n private _price: number = 0;\r\n protected _notificationService!: INotificationService;\r\n private _instructorsService!: IInstructorsService;\r\n\r\n @PropSync('lessonsBought', { type: Array }) LessonsBought!: Array;\r\n\r\n Lessons!: Array;\r\n Dates!: Array;\r\n LessonsAndDatesLoaded: boolean = false;\r\n CategoryName: string = '';\r\n Price: number = 0;\r\n\r\n GroupAmount: number = 1;\r\n\r\n GroupMin: number = 1;\r\n GroupMax: number = 10;\r\n get CanGroupDecrease() {\r\n return this.GroupAmount > this.GroupMin;\r\n }\r\n get CanGroupIncrease() {\r\n if (this.Lesson !== undefined) {\r\n return this.GroupAmount < this.GroupMax && this.GroupAmount < this.Lesson.FreeMembers;\r\n } else {\r\n return this.GroupAmount < this.GroupMax;\r\n }\r\n }\r\n GroupDecrease(): void {\r\n if (this.GroupAmount > this.GroupMin) {\r\n this.GroupAmount--;\r\n }\r\n this.Price = this.GroupAmount * this._price;\r\n }\r\n GroupIncrease(): void {\r\n if (this.Lesson !== undefined) {\r\n if (this.GroupAmount < this.GroupMax && this.GroupAmount < this.Lesson.FreeMembers) {\r\n this.GroupAmount++;\r\n }\r\n } else {\r\n if (this.GroupAmount < this.GroupMax) {\r\n this.GroupAmount++;\r\n }\r\n }\r\n this.Price = this.GroupAmount * this._price;\r\n }\r\n\r\n async mounted() {\r\n this.Lessons = await this.$props.lessons;\r\n this.Dates = await this.$props.dates;\r\n this.LessonsAndDatesLoaded = true;\r\n this.CategoryName = await this.$props.categoryName;\r\n if (this.Lesson !== undefined && this.Lesson.FreeMembers < this.GroupMax)\r\n this.GroupMax = this.Lesson.FreeMembers;\r\n\r\n this._instructorsService = this.GlobalService.Get(InstructorsSymbols.InstructorsService);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n }\r\n\r\n LessonsByDate(date: string) {\r\n let _this = this;\r\n let result = this.Lessons.filter(x => _this.DateHandler.Parse(x.Date, 'YYYY-MM-DDTHH:mm:SS').Format('YYYY-MM-DD') == date)\r\n return result;//DateHandlerSame\r\n }\r\n\r\n Lesson?: InstructorsGroupLesson;\r\n LessonLoaded: boolean = false;\r\n LessonPriceLoaded: boolean = false;\r\n LessonTariffAvailable: boolean = false;\r\n\r\n PeopleAmountDialog: boolean = false;\r\n\r\n async ShowLessonPurchaseDialog(lesson: InstructorsGroupLesson) {\r\n this.LessonPriceLoaded = false;\r\n this.LessonTariffAvailable = false;\r\n if (!this.IsBought(lesson)) {\r\n this.Lesson = this.Lessons?.find(x => x.TariffId === lesson.TariffId &&\r\n x.Date === lesson.Date &&\r\n x.BeginTime === lesson.BeginTime &&\r\n x.EndTime === lesson.EndTime &&\r\n x.SkillType === lesson.SkillType);\r\n this.LessonLoaded = true;\r\n this.PeopleAmountDialog = true;\r\n\r\n if (this.Lesson != null) {\r\n let price = await this._instructorsService.GetGroupLessonPriceAsync(this.Lesson);\r\n\r\n if (price.Success && price.Data !== null && price.Data !== undefined) {\r\n this._price = price.Data.PriceForOne;\r\n this.LessonTariffAvailable = true;\r\n this.Price = this.GroupAmount * this._price;\r\n } \r\n } else {\r\n this._notificationService.Error(\"Ошибка\", \"Занятие не найдено\");\r\n }\r\n }\r\n this.LessonPriceLoaded = true;\r\n }\r\n\r\n FormatDate(dateString: string): string {\r\n return this.DateHandler.Parse(dateString, 'YYYY-MM-DD').Format('DD.MM.YYYY');\r\n }\r\n FormatTime(dateString: string): string {\r\n return this.DateHandler.Parse(dateString, 'HH:mm:SS').Format('HH:mm');\r\n }\r\n\r\n PurchaseLesson(): void {\r\n this.$emit('purchaseLesson', this.Lesson, this.GroupAmount, this._price);\r\n this.PeopleAmountDialog = false;\r\n }\r\n IsBought(lesson: InstructorsGroupLesson): boolean {\r\n let boughtLesson = this.LessonsBought.find(x => x.Lesson.TariffId === lesson.TariffId &&\r\n x.Lesson.Date === lesson.Date &&\r\n x.Lesson.BeginTime === lesson.BeginTime &&\r\n x.Lesson.EndTime === lesson.EndTime &&\r\n x.Lesson.SkillType === lesson.SkillType);\r\n if (boughtLesson !== undefined)\r\n return true\r\n return false\r\n }\r\n}\r\n\r\nexport class WpInstructorsGroupLessonsDictionary extends BaseSystemLocalizationDictionary {\r\n Vacant: string = '';\r\n GuestsAmmount: string = '';\r\n NoAvailableLessons: string = '';\r\n}","export enum CartItemTypes {\r\n InstructorsPersonalLesson = 1,\r\n Tariff = 2,\r\n Bundle = 3,\r\n Rewrite = 4,\r\n InstructorsGroupLesson = 5,\r\n InstructorsBundleLessons = 6,\r\n ArenaTicket = 7,\r\n MarketTariff = 8,\r\n MarketBill = 9,\r\n NewClubContract = 10,\r\n ContractAdditionalService = 11,\r\n AccountReplenishment = 12,\r\n SyntechParking = 13,\r\n ContractAdditionalPackage = 14\r\n} ","module.exports = \"\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{ Terms.GenericTotal }}: {{ $data._formatPrice(OrderSum) }} {{ $data._formatPrice(TotalSum) }}
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
{{ Terms.PlacingOrder }}
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n mdi-arrow-right-bold\\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.ToGetDeals }} {{ Terms.GenericLogIn }}\\r\\n \\r\\n \\r\\n {{ Terms.YouAreMemberOfLoyaltyProgram }} - {{ LoyaltyProgram.Name }}\\r\\n {{ LoyaltyProgram.Name }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n 0\\\">\\r\\n \\r\\n
{{ Terms.ChooseDiscount }}
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ srcItem.src }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n {{ item.text}} \\r\\n\\r\\n \\r\\n \\r\\n {{ item.tooltip }} {{ item.link }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n mdi-login-variant\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n {{ Terms.UsedPromoCode }} {{ PromoDiscount.Name.toUpperCase() }}\\r\\n \\r\\n \\r\\n mdi-delete-forever\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n 0 || !NoPromo\\\">\\r\\n\\r\\n \\r\\n \\r\\n 0 || !NoPromo || HaveLoyaltyProgram\\\">\\r\\n \\r\\n {{ Terms.GenericDiscount }}\\r\\n \\r\\n \\r\\n {{ $data._formatPrice(TotalDiscount) }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ Terms.GenericTotal }}\\r\\n \\r\\n \\r\\n {{ $data._formatPrice(TotalSum) }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n 0 && HaveLoyaltyProgram\\\" elevation=\\\"0\\\" class=\\\"mt-8\\\">\\r\\n {{ Terms.HowManyPointsToSpend }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n {{ Terms.NoPointsToSpend }}\\r\\n
\\r\\n\\r\\n 1\\\" class=\\\"my-2\\\">\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericByPressingPay }} {{ Terms.GenericToRules }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ Terms.GenericPay }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ Terms.GenericByPressingPay }} {{ Terms.GenericToRules }}\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
{{ Terms.PlacingOrder }}
\\r\\n \\r\\n \\r\\n mdi-arrow-down-bold\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ Terms.ToGetDeals }}\\r\\n \\r\\n {{ Terms.GenericLogIn }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ Terms.YouAreMemberOfLoyaltyProgram }} - {{ LoyaltyProgram.Name }}\\r\\n {{ LoyaltyProgram.Name }}\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n 0\\\">\\r\\n \\r\\n
{{ Terms.ChooseDiscount }}
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{ srcItem.src }}\\r\\n
\\r\\n
\\r\\n \\r\\n {{ item.text }} \\r\\n\\r\\n \\r\\n \\r\\n {{ item.tooltip }} {{ item.link }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n mdi-login-variant\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n {{ Terms.UsedPromoCode }} {{ PromoDiscount.Name.toUpperCase() }}\\r\\n \\r\\n \\r\\n mdi-delete-forever\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n 0 || !NoPromo\\\">\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n 0 || !NoPromo || HaveLoyaltyProgram\\\">\\r\\n \\r\\n {{ Terms.GenericDiscount }}\\r\\n \\r\\n \\r\\n {{ $data._formatPrice(TotalDiscount) }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ Terms.GenericTotal }}\\r\\n \\r\\n \\r\\n {{ $data._formatPrice(TotalSum) }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n 0\\\" elevation=\\\"0\\\" class=\\\"mt-8\\\">\\r\\n {{ Terms.HowManyPointsToSpend }}\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n {{ Terms.NoPointsToSpend }}\\r\\n
\\r\\n\\r\\n \\r\\n 1\\\" class=\\\"my-2\\\">\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericByPressingPay }} {{ Terms.GenericToRules }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericPay }}\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericByPressingPay }} {{ Terms.GenericToRules }}\\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.DataRequired }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericCancel }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\";","module.exports = \"
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\";","export const IdentitySymbols = {\r\n Context: Symbol.for(\"Context\")\r\n}","import ClubCard from './club-card';\r\nimport { ContractActualPeriod } from './contract-actual-period';\r\nimport { FixedPriceType } from './fixed-price-type';\r\nimport { ContractPaymentType } from './contract-payment-type';\r\nimport { ContractPeriod } from './contract-period';\r\nimport { ContractProcedure } from './contract-procedure';\r\nimport { ContractServicePeriod } from './contract-service-period';\r\nimport ContractService from './contract-service';\r\n\r\nexport default class ClubContractData {\n /** xs:boolean */\n ACCOUNT_YES?: boolean;\n /** xs:long */\n ACC_DISCOUNT?: number;\n /** xs:string */\n ACC_DISCOUNT_NAME?: string;\n /** xs:dateTime */\n ACTUAL_DATA?: string;\n /** ContractActualPeriod|xs:string|capAny,capDay,capWeek,capMonth,capQuarter,capSixMonth,capYear,capAllPeriod */\n ACTUAL_PERIOD?: ContractActualPeriod;\n /** xs:long */\n ACTUAL_QUANTITY?: number;\n /** xs:long */\n CARD?: number;\n /** CARD_LIST */\n CARD_LIST?: Array;\n /** xs:string */\n CARD_LIST_STR?: string;\n /** xs:string */\n CARD_NAME?: string;\n /** xs:double */\n CHECK_ACCOUNT?: number;\n /** xs:long */\n CURRENCY?: number;\n /** xs:long */\n CURRENCY_TYPE?: number;\n /** xs:long */\n CURRENT_NUMBER?: number;\n /** xs:double */\n ENSUR_AMOUNT?: number;\n /** xs:double */\n ENSUR_SUMMA?: number;\n /** xs:double */\n ENTRY_FEE?: number;\n /** xs:double */\n EXTEND_AMOUNT?: number;\n /** xs:double */\n EXTEND_DAYS_AMOUNT?: number;\n /** xs:long */\n EXTEND_DAYS_COUNT?: number;\n /** xs:long */\n EXTEND_DISCOUNT?: number;\n /** xs:string */\n EXTEND_DISCOUNT_NAME?: string;\n /** xs:double */\n EXTEND_PERCENT?: number;\n /** xs:boolean */\n EXTEND_YES?: boolean;\n /** xs:long */\n FAMILY_YES?: number;\n /** FixedPriceType|xs:string|ftpNo,ftpCard,ftpContract */\n FIXED_PRICE_YES?: FixedPriceType;\n /** xs:boolean */\n FIXED_YES?: boolean;\n /** ���� true - �������� ����� ������� �������� */\n FOR_CHILD?: boolean;\n /** xs:long */\n FREEZE?: number;\n /** xs:string */\n FREEZE_NAME?: string;\n /** xs:boolean */\n FREEZE_YES?: boolean;\n /** xs:long */\n ID?: number;\n /** xs:long */\n KIND?: number;\n /** xs:string */\n KIND_DESC?: string;\n /** xs:string */\n NAME?: string;\n /** xs:string */\n NUMBER?: string;\n /** ContractPaymentType|xs:string|cptNow,cptCredit */\n PAYMENT_TYPE?: ContractPaymentType;\n /** ContractPeriod|xs:string|cpAny,cpDay,cpWeek,cpMonth,cpQuarter,cpSixMonth,cpYear,cpFixed */\n PERIOD?: ContractPeriod;\n /** xs:long */\n PERIOD_QUANTITY?: number;\n /** xs:double */\n PRICE?: number;\n /** ContractProcedure|xs:string|cprCard,cprVisit,cprPayment,cprFreeze,cprProcedure,cprSheduke */\n PROCEDURE?: ContractProcedure;\n /** xs:long */\n REPORTFILE?: number;\n /** xs:long */\n SERVICE?: number;\n /** xs:long */\n SERVICE_DISCOUNT?: number;\n /** xs:string */\n SERVICE_DISCOUNT_NAME?: string;\n /** xs:string */\n SERVICE_NAME?: string;\n /** ContractServicePeriod|xs:string|spAny,spWeek,spMonth1,spMonth2,spMonth3,spMonth6,spYear,spDays */\n SERVICE_PERIOD?: ContractServicePeriod;\n /** xs:long */\n SERVICE_PERIOD_DAYS?: number;\n /** xs:long */\n SERVICE_QUANTITY?: number;\n /** xs:boolean */\n SHEDULED?: boolean;\n /** xs:long */\n SYS_STATUS?: number;\n\n SERVICE_LIST?: Array;\n}\n","import { ClubContractStatus } from './club-contract-status';\r\nimport ClubContractData from './club-contract-data';\r\n\r\nexport default class ClubContract {\r\n ContractCode: number = 0;\r\n Data: ClubContractData = new ClubContractData();\r\n Description: string = '';\r\n Id: number = 0;\r\n IsGuestContract: boolean = false; // �������� �������� ��������?\r\n // ---\r\n LTAccessLK?: number;\r\n LTAchievements?: number;\r\n LTAvailableAdditionalServices?: string; // Parsing from JSON results in Array \"�������������� ������\"\r\n LTExtend?: number;\r\n LTFinanceChange?: number;\r\n LTFinanceRead?: number;\r\n LTHiddenService?: string; // Parsing from JSON results in Array \"�������� ������\"\r\n LTRequest?: number;\r\n LTSchedule?: number;\r\n LTServices?: number;\r\n // ---\r\n Name: string = '';\r\n PlatformEntities?: string;\r\n Status: ClubContractStatus = ClubContractStatus.Disabled;\r\n Type?: number;\r\n ZIndex?: number;\r\n}","import { injectable, inject } from 'inversify';\r\n\r\nimport IInstructorsService from './i-instructors-service';\r\nimport InstructorsPlace from './instructors-places';\r\nimport { ActionResult, BaseFilter } from './../Common';\r\nimport SkillType from './skill-type';\r\nimport InstructorTariffCategory from './instructor-tariff-category';\r\nimport { IInstructorsProvider, PersonalLessonsFilter, GroupLessonsFilter, InstructorsGroupLesson, InstructorsGroupLessonPrice, InstructorsBundlesGroupsLessons, InstructorCategory } from './';\r\nimport { InstructorsSymbols } from './symbols';\r\nimport Instructor from './instructor';\r\nimport InstructorsPersonalLesson from './instructors-personal-lesson';\r\nimport GlobalService from './../Global/global-service';\r\nimport { AppSettings } from './../Global/app-settings';\r\nimport InstructorsPersonalLessonPrice from './instructors-personal-lesson-price';\r\nimport { Tariff } from './../Tariffs';\r\nimport IDataProvider from '../Cms/i-data-provider';\r\nimport { CmsSymbols } from '../Cms';\r\nimport ILocalizationService from '../Localization/i-localization-service';\r\nimport { LocalizationSymbols } from '../Localization/symbols';\r\nimport InstructorsLessonsLocation from './instructors-lessons-location';\r\nimport { WpCorePrefixes } from '..';\r\n\r\n@injectable()\r\nexport default class InstructorsService implements IInstructorsService {\r\n private readonly _settings: AppSettings;\r\n protected readonly _provider: IInstructorsProvider;\r\n protected readonly _cmsProvider: IDataProvider;\r\n private readonly _localizationService: ILocalizationService;\r\n\r\n constructor(@inject(InstructorsSymbols.InstructorsProvider) provider: IInstructorsProvider,\r\n @inject(CmsSymbols.DataProvider) cmsProvider: IDataProvider,\r\n @inject(LocalizationSymbols.LocalizationService) localizationService: ILocalizationService) {\r\n this._provider = provider;\r\n this._cmsProvider = cmsProvider;\r\n this._localizationService = localizationService;\r\n this._settings = GlobalService.GetSettings();\r\n }\r\n async GetPlacesAsync(): Promise>> {\r\n let result = await this._provider.GetPlacesAsync();\r\n\r\n if (this._settings.PlaceId !== undefined) {\r\n result.Data = result.Data?.filter(place => place.Id == this._settings.PlaceId);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n async GetInstructorsTariffsAsync(): Promise>> {\r\n return await this._provider.GetInstructorsTariffsAsync();;\r\n }\r\n async GetSkillAsync(placeId: number): Promise>> {\r\n let skills = await this._provider.GetSkillAsync(placeId);\r\n\r\n if (this._settings.Skills !== undefined && this._settings.Skills.length > 0) {\r\n skills.Data = skills.Data?.filter(x => this._settings.Skills.indexOf(x.Id) !== -1);\r\n }\r\n\r\n return skills;\r\n }\r\n async GetInstructorsTariffCategoriesAsync(): Promise>> {\r\n let categories = await this._provider.GetInstructorsTariffCategoriesAsync();\r\n\r\n if (this._settings.Categories !== undefined && this._settings.Categories.length > 0) {\r\n categories.Data = categories.Data?.filter(x => this._settings.Categories.indexOf(x.Id.toString()) !== -1);\r\n }\r\n\r\n return categories;\r\n }\r\n\r\n async GetInstructorsAsync(placeId: number): Promise>> {\r\n return await this._provider.GetInstructorsAsync(placeId);\r\n }\r\n async GetPersonalLessonsAsync(filter: PersonalLessonsFilter): Promise>> {\r\n let lessons = await this._provider.GetPersonalLessonsAsync(filter);\r\n\r\n if (this._settings.LessonsTariffsId !== undefined && this._settings.LessonsTariffsId.length > 0) {\r\n lessons.Data = lessons.Data?.filter(x => this._settings.LessonsTariffsId.indexOf(x.TariffId) !== -1);\r\n }\r\n\r\n return lessons\r\n }\r\n async GetPersonalLessonPriceAsync(lesson: InstructorsPersonalLesson): Promise> {\r\n return await this._provider.GetPersonalLessonPriceAsync(lesson);\r\n }\r\n async GetGroupLessonsAsync(filter: GroupLessonsFilter): Promise>> {\r\n let lessons = await this._provider.GetGroupLessonsAsync(filter);\r\n\r\n if (this._settings.GroupLessonsTariffsId !== undefined && this._settings.GroupLessonsTariffsId.length > 0) {\r\n lessons.Data = lessons.Data?.filter(x => this._settings.GroupLessonsTariffsId.indexOf(x.TariffId) !== -1);\r\n }\r\n\r\n return lessons\r\n }\r\n async GetGroupLessonPriceAsync(lesson: InstructorsGroupLesson): Promise> {\r\n return await this._provider.GetGroupLessonPriceAsync(lesson);\r\n }\r\n\r\n async GetBundlesGroupLessonsAsync(filter: GroupLessonsFilter): Promise>> {\r\n return await this._provider.GetBundlesLessonsAsync(filter);\r\n }\r\n\r\n async GetLessonsLocationsAsync(): Promise>> {\r\n let result = new Array();\r\n let locations = await this._cmsProvider.GetEntitiesAsync(WpCorePrefixes.InstructorsLessonsLocation, new BaseFilter(), '',\r\n this._localizationService.CurrentLocalization);\r\n\r\n if (locations.Data != null) {\r\n result = locations.Data.Entities;\r\n\r\n if (this._settings.LessonsLocation != null) {\r\n result = result.filter(x => x.LocationId == this._settings.LessonsLocation);\r\n }\r\n }\r\n\r\n return ActionResult.SuccessData(result);\r\n }\r\n\r\n async GetInstructorsCategoriesAsync(placeId: number): Promise>> {\r\n return await this._provider.GetInstructorsCategoriesAsync(placeId);\r\n }\r\n}","export default class PersonalLessonsFilter {\r\n CategoryId: string = '';\r\n PlaceId: number = 0;\r\n Skill: string = '';\r\n DateFrom: string = '';\r\n DateTo: string = '';\r\n CoachId?: number | null;\r\n Location?: string | null;\r\n TariffId?: number | null;\r\n TariffCode?: number | null; // Duplicate of TariffId, see below point #1\r\n ContractId?: number | null;\r\n\r\n constructor(placeId: number, skill: string, categoryId: string, dateFrom: string, dateTo: string,\r\n coachId?: number | null, location?: string | null, tariffId?: number | null, contractId?: number | null) {\r\n this.PlaceId = placeId;\r\n this.Skill = skill;\r\n this.CategoryId = categoryId;\r\n this.DateFrom = dateFrom;\r\n this.DateTo = dateTo;\r\n this.CoachId = coachId;\r\n this.Location = location;\r\n this.TariffId = tariffId;\r\n this.ContractId = contractId;\r\n this.TariffCode = tariffId; // Duplicate of TariffId, see below point #1\r\n };\r\n};\r\n\r\n/*\r\n * Point #1 - Issue with filter not working\r\n * tl;dr - server received TariffId as a filter parameter. My guess it didn't know what to do with it, because it was totally ignored\r\n * I don't know if it's a typo or not - I don't want to modify existing code, so I just added TariffCode (as it is used in group lessons) and send it to the server\r\n * Please advise\r\n */","module.exports = \"
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.NoServicesAvailableOnThisDate }} \\r\\n \\r\\n \\r\\n 0\\\">\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.DataRequired }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericCancel }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n {{ item.Message }}\\r\\n 1\\\"\\r\\n class=\\\"pa-0 pl-2\\\"\\r\\n min-width=\\\"24\\\"\\r\\n dark\\r\\n text\\r\\n @click=\\\"removeItem(item.Id)\\\">\\r\\n $next ({{items.length - 1}})\\r\\n \\r\\n \\r\\n $close\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\";","import CartItem from '../Cart/cart-item';\r\nimport TariffsBundle from './tariffs-bundle';\r\nimport { CartItemTypes } from './../Cart/cart-item-types';\r\nimport { ActionResult, ErrorTypes, WpEventArgs } from './../Common';\r\nimport { ReservationItemTypes, ReservationItem } from './../Sale';\r\nimport * as moment from 'moment';\r\nimport { TariffSeance, TariffSale } from '.';\r\nimport Tariff from './tariff';\r\nimport TariffCapacity from './tariff-capacity';\r\n\r\n\r\nexport default class BundleCartItem extends CartItem {\r\n\r\n private _date: string = \"\";\r\n private _bundle: TariffsBundle;\r\n private _price: number = 0;\r\n private _type: CartItemTypes = CartItemTypes.Bundle;\r\n private _seance?: TariffSeance;\r\n private _sales: Array = [];\r\n private _capacity: Array = [];\r\n\r\n get IsAvailable(): boolean {\r\n let notValidSale = this._sales.some(x => x.Quota != null && x.LeftCount != null && x.Count + x.ReservedCount < x.Quota);\r\n\r\n let notValidCapacity = this._capacity.some(x => x != null && x.Count + x.ReservedCount < x.Capacity);\r\n\r\n return !notValidSale && !notValidCapacity;\r\n }\r\n public get Info(): string {\r\n return `${this._bundle.Name}, ${this._date} ${this._seance != null ? TariffSeance.SeanceTime(this._seance) : ''}`;\r\n }\r\n public get Type(): CartItemTypes {\r\n return this._type;\r\n }\r\n public get Price(): number {\r\n return this._price;\r\n }\r\n public get Sales(): Array {\r\n return this._sales;\r\n }\r\n public get Capacity(): Array {\r\n return this._capacity;\r\n }\r\n get MetricsId(): any | undefined {\r\n return this._bundle?.Id;\r\n }\r\n /*\r\n public get Count(): number {\r\n return 1;\r\n }\r\n */\r\n public get IsCanIncreaseCount(): boolean {\r\n return false;\r\n }\r\n public get IsCanReduceCount(): boolean {\r\n return false;\r\n }\r\n public get Bundle(): TariffsBundle {\r\n return this._bundle;\r\n }\r\n public get Seance(): TariffSeance | undefined {\r\n return this._seance;\r\n }\r\n public get Date(): string {\r\n return this._date;\r\n }\r\n public get Count(): number {\r\n return this._bundle.Tariffs.length;\r\n }\r\n public get Dates(): Array {\r\n let result = new Array();\r\n\r\n if (this.Date !== undefined) {\r\n result.push(moment.parseZone(this.Date, 'YYYY-MM-DDTHH:mm').format('DD.MM.YYYY'));\r\n }\r\n\r\n return result;\r\n }\r\n public get AdditionalInfo(): any {\r\n return this._bundle;\r\n } \r\n\r\n constructor(bundle: TariffsBundle, date: string, price: number, sales: Array,\r\n capacity: Array, seance?: TariffSeance) {\r\n super();\r\n\r\n this._date = date;\r\n this._bundle = bundle;\r\n this._price = price;\r\n this._seance = seance;\r\n this._sales = sales;\r\n this._capacity = capacity;\r\n\r\n this._capacity.forEach(x => {\r\n if (x != null) {\r\n x.ReservedCount++;\r\n }\r\n });\r\n\r\n this._sales.forEach(x => {\r\n if (x.Quota != null) {\r\n x.ReservedCount++;\r\n }\r\n });\r\n }\r\n\r\n public IncreaseCount(): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Превышено допустимое количество для данного типа услуг\");\r\n }\r\n\r\n public ReduceCount(): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Достигнуто минимальное возможное количество\");\r\n }\r\n\r\n public IsConflictItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n\r\n public IsEqualsItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n\r\n public CombineItem(item: CartItem): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Превышено допустимое количество для данного типа услуг\");\r\n }\r\n\r\n public GetReservationItem(): Array {\r\n return [new ReservationItem(1, ReservationItemTypes.Bundle, null, this._date, this._bundle.Id, null, null, null, this._seance?.SeanceId)];\r\n }\r\n\r\n async RemoveItem(): Promise {\r\n this._sales.forEach(x => {\r\n if (x.Quota != null) x.ReservedCount--;\r\n })\r\n\r\n this._capacity.forEach(x => {\r\n if (x != undefined) x.ReservedCount--;\r\n })\r\n\r\n return ActionResult.Success();\r\n }\r\n}","import './wp-payconfirm.scss';\r\n\r\nimport Vue, { VueConstructor } from 'vue';\r\nimport WpBaseComponent from './../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, {\r\n OrderSale, ISaleService, SaleSymbols, OrderItem, INotificationService, NotificationSymbols, DiscountType, OrderDiscount,\r\n ILoyaltyProvider, LoyaltySymbols, AppSettings, IContext, IdentitySymbols, IdentityChangedEventArgs, LockOrderInfo, LoyaltyProgram,\r\n DiscountProgram, IsdUserLoyalty, IMetricsService, MetricsSymbols, BaseSystemLocalizationDictionary, WpCorePrefixes, MLogger, PaymentSystemType, SaleTermsType, BaseFilter, ICmsService, CmsSymbols, SiteAddtionalSettings\r\n} from 'web-platform-core-ui';\r\nimport { Watch, Ref } from 'vue-property-decorator';\r\nimport { MetricsEvents } from '../../metrics-events-symbols';\r\nimport { DefaultProps } from 'vue/types/options';\r\n\r\nexport const wpPayConfirmProps = Vue.extend({\r\n props: {\r\n OrderId: Number,\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-payconfirm.html\")\r\n})\r\nexport default class WpPayConfirm extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpPayConfirmProps, Vue) {\r\n protected _context!: IContext;\r\n protected _service!: ISaleService;\r\n protected _notificationService!: INotificationService;\r\n protected _loyaltyProvider!: ILoyaltyProvider;\r\n protected _metricsService!: IMetricsService;\r\n protected _redirectToAuth: boolean = false;\r\n protected MLogger!: MLogger;\r\n\r\n static WpEmailConfirmKey: string = \"wp-confirm-email-key\";\r\n static WpPhoneConfirmKey: string = \"wp-confirm-phone-key\";\r\n\r\n SelectedSbpPayment: boolean = false;\r\n SelectedWorldDiscount: boolean = false;\r\n RulesTrigger: boolean = false;\r\n RulesConfirmed: boolean = false;\r\n RulesAgreed: boolean = true;\r\n HaveAdditionalRules: boolean = false;\r\n AdditionalRulesConfirmed: boolean = false;\r\n AdditionalRulesRequired: boolean = false;\r\n AdditionalRulesText: string = '';\r\n PromoSheet: boolean = false;\r\n LoginDrawer: boolean = false;\r\n OrderLoading: boolean = true;\r\n OpenModalTrigger: boolean = false;\r\n Order: OrderSale = new OrderSale();\r\n PromoCode: string = '';\r\n EmailIsReadonly: boolean = false;\r\n PhoneIsReadonly: boolean = false;\r\n CancelCodeButtonLoading: boolean = false;\r\n BonusesLoading: boolean = false;\r\n LoyaltyProgramApplied: boolean = false;\r\n LoyaltyDialog: boolean = false;\r\n IsdUserLoyalty?: IsdUserLoyalty;\r\n SelectedDiscountProgram: number = -1;\r\n PayButtonLoading: boolean = false;\r\n NoPromo: boolean = false;\r\n Email: string = '';\r\n Phone: string = '+7'; \r\n FormPromocodeDisabled: boolean = false;\r\n BonusesCharge: number = 0;\r\n BonusesMax: number = 0;\r\n HaveLoyaltyProgram: boolean = false;\r\n LoyaltyProgram?: LoyaltyProgram;\r\n Settings!: AppSettings;\r\n ItemsDiscounts: Array = [];\r\n LockOrderFormValid: boolean = false;\r\n ItemsPayments: Array = [];\r\n SelectedPaymentId: number = 0;\r\n RulesType: SaleTermsType = SaleTermsType.Default;\r\n\r\n @Watch('CancelCodeButtonLoading')\r\n @Watch('BonusesLoading')\r\n SetLoadingOverlay(loadingValue: boolean) {\r\n this.$emit(\"SetLoadingOverlay\", loadingValue);\r\n }\r\n\r\n @Ref('LockOrderForm') LockOrderForm!: HTMLFormElement;\r\n @Ref('LockOrderMobileForm') LockOrderMobileForm!: HTMLFormElement;\r\n\r\n get EmailRules() {\r\n return [\r\n (v: string) => !!v || 'Введите e-mail',\r\n (v: string) => /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(v) || this.Terms.EnterEmail,\r\n ];\r\n };\r\n\r\n get PhoneRules() {\r\n return [\r\n (v: string) => (/^(\\s*)?(\\+)?([- _():=+]?\\d[- _():=+]?){11,14}(\\s*)?$/.test(v)) || this.Terms.EnterPhone\r\n ];\r\n };\r\n\r\n PhoneChange(phone: string): void {\r\n if (phone.length < 2) {\r\n this.$nextTick(() => {\r\n this.Phone = \"+7\" + phone;\r\n });\r\n };\r\n };\r\n\r\n PhoneFocus() { if (this.Phone === '') { this.Phone = '+7('; } }\r\n LockOrderFormSubmit(e: any) { e.preventDefault(); }\r\n\r\n get TotalSum(): number {\r\n let sum = 0;\r\n this.Order.Items.forEach(x => sum += x.TotalSum);\r\n return sum;\r\n }\r\n\r\n get TotalDiscount(): number {\r\n let sum = 0;\r\n this.Order.Items.forEach(x => sum += x.Discount);\r\n return sum;\r\n }\r\n\r\n get OrderSum(): number {\r\n let sum = 0;\r\n this.Order.Items.forEach(x => sum += x.Price);\r\n return sum;\r\n }\r\n\r\n get Bundles(): Array {\r\n let allBundles = this.Order.Items.filter(x => x.BundleId !== null);\r\n let newBundles: any = {};\r\n allBundles.forEach((element) => {\r\n\r\n let bundleId = element.BundleId;\r\n\r\n if (bundleId in newBundles) {\r\n newBundles[bundleId].push(element);\r\n }\r\n else {\r\n newBundles[bundleId] = [];\r\n newBundles[bundleId].push(element);\r\n }\r\n });\r\n return newBundles;\r\n }\r\n\r\n get Items(): Array {\r\n return this.Order.Items.filter(x => x.BundleId == null);\r\n }\r\n\r\n get PromoDiscount(): OrderDiscount | undefined {\r\n return this.Order.DiscountsList.find(x => x.DiscountType == DiscountType.Code);\r\n };\r\n\r\n created(): void {\r\n this.MLogger = new MLogger();\r\n };\r\n\r\n async mounted() {\r\n this.OrderLoading = true;\r\n if (this.$vuetify.breakpoint.smAndUp) this.LoginDrawer = true;\r\n\r\n this._service = await this.GlobalService.Get(SaleSymbols.SaleService);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n this._context = await this.GlobalService.Get(IdentitySymbols.Context);\r\n this._metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n\r\n this._context.IdentityChanged.Subscribe(this.IdentityChangedEventHandler);\r\n this.Settings = GlobalService.GetSettings();\r\n this.NoPromo = this.Settings.NoPromo;\r\n this.RulesType = this.Settings.SaleTermsType;\r\n\r\n if (this.Settings.SaleTermsType == SaleTermsType.Default)\r\n this.RulesConfirmed = true;\r\n\r\n let cmsService = this.GlobalService.Get(CmsSymbols.CmsService);\r\n let filter = new BaseFilter();\r\n filter.PlatformId = this.Settings.SiteId;\r\n let siteSettings = await cmsService.GetEntitiesAsync(WpCorePrefixes.SiteAdditionalSettings, filter, '');\r\n\r\n if (siteSettings.Success && siteSettings.Data != null && siteSettings.Data.Entities != null &&\r\n siteSettings.Data.Entities.length > 0) {\r\n let additionalSiteSettings = siteSettings.Data.Entities[0];\r\n this.HaveAdditionalRules = additionalSiteSettings.AddtionalTerms != null && additionalSiteSettings.AddtionalTerms !== '';\r\n this.AdditionalRulesText = additionalSiteSettings.AddtionalTerms ?? '';\r\n this.AdditionalRulesRequired = this.HaveAdditionalRules && additionalSiteSettings.AddtionalTermsRequired != null && additionalSiteSettings.AddtionalTermsRequired == 1;\r\n }\r\n\r\n try {\r\n let email = localStorage.getItem(WpPayConfirm.WpEmailConfirmKey);\r\n if (email != null) this.Email = email;\r\n let phone = localStorage.getItem(WpPayConfirm.WpPhoneConfirmKey);\r\n if (phone != null) this.Phone = phone;\r\n }\r\n catch { }\r\n\r\n await this.GetOrder();\r\n\r\n this.OrderLoading = false;\r\n\r\n window.addEventListener('resize', this.DialogAndBottomSheetFix, { passive: true })\r\n };\r\n\r\n beforeDestroy() {\r\n if (typeof window === 'undefined') return;\r\n window.removeEventListener('resize', this.DialogAndBottomSheetFix);\r\n };\r\n\r\n DecrementBonuses(): void {\r\n this.BonusesCharge--;\r\n };\r\n\r\n IncrementBonuses(): void {\r\n this.BonusesCharge++;\r\n };\r\n\r\n public RulesConfirm(): void {\r\n this.RulesConfirmed = true;\r\n };\r\n\r\n public RulesDecline(): void {\r\n if (this.Settings.SaleTermsType != SaleTermsType.Default)\r\n this.RulesConfirmed = false;\r\n this.RulesTrigger = false;\r\n };\r\n\r\n EmailChanged(d: any): void {\r\n this.$nextTick(() => {\r\n this.Email = this.Email.split(\" \").join(\"\").trim();\r\n });\r\n };\r\n\r\n protected async IdentityChangedEventHandler(sender: any, e: IdentityChangedEventArgs): Promise {\r\n await this._service.SetAuthorizedUserToOrderAsync(this.OrderId);\r\n\r\n this._metricsService.RegistrateEvent(MetricsEvents.OrderSetUser, this.OrderId);\r\n\r\n if (this._redirectToAuth) {\r\n this._redirectToAuth = false;\r\n await this.LoyaltyProgramRegistration();\r\n };\r\n };\r\n\r\n async PayOrderDefaultButton() {\r\n if (!this.LockOrderForm.validate()) {\r\n let container = this.$el.querySelector(\".v-navigation-drawer__content\");\r\n if (container != null)\r\n container.scrollTop = 0;\r\n return;\r\n };\r\n\r\n await this.LockOrder();\r\n };\r\n\r\n async PayOrderMobileButton() {\r\n if (!this.LockOrderMobileForm.validate()) {\r\n let container = document.getElementById(\"mobile-bottom-sheet\");\r\n if (container != null)\r\n container.scrollTop = 0;\r\n return;\r\n }\r\n\r\n await this.LockOrder();\r\n }\r\n\r\n async LockOrder(): Promise {\r\n this.PayButtonLoading = true;\r\n this.SetLoadingOverlay(true);\r\n let lockOrderInfo = new LockOrderInfo();\r\n\r\n lockOrderInfo.Id = this.OrderId;\r\n lockOrderInfo.Email = this.Email.trim();\r\n lockOrderInfo.UserPhone = this.Phone.trim();\r\n lockOrderInfo.Comments = this.Settings.OrderComment == null || this.Settings.OrderComment == '' ? this.Email.trim() : this.Settings.OrderComment;\r\n lockOrderInfo.PaymentId = this.SelectedPaymentId;\r\n let paymentSystem = this.ItemsPayments.find(x => x.id == this.SelectedPaymentId);\r\n lockOrderInfo.PaymentType = paymentSystem != null && paymentSystem != undefined ? paymentSystem.type : PaymentSystemType.Unknow;\r\n\r\n if (this.LoyaltyProgramApplied) {\r\n lockOrderInfo.UserFirstName = this.IsdUserLoyalty!.FirstName;\r\n lockOrderInfo.UserLastName = this.IsdUserLoyalty!.LastName;\r\n lockOrderInfo.UserSecondName = this.IsdUserLoyalty!.SecondName;\r\n\r\n if (this.BonusesCharge != 0) {\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetToPayAndChargeBonus, this.OrderId);\r\n let chargeBonusesResult = await this._service.ChargeBonusesAsync(this.OrderId, this.BonusesCharge);\r\n if (!chargeBonusesResult.Success) {\r\n this._notificationService.Error(\"Ошибка\", chargeBonusesResult.ErrorMessage ? chargeBonusesResult.ErrorMessage : this.Terms.InternalError);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n try {\r\n localStorage.setItem(WpPayConfirm.WpEmailConfirmKey, this.Email);\r\n localStorage.setItem(WpPayConfirm.WpPhoneConfirmKey, this.Phone);\r\n }\r\n catch {\r\n }\r\n\r\n\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetToPay, this.OrderId);\r\n this.$emit(\"LockOrder\", lockOrderInfo);\r\n }\r\n\r\n async ChargeBonuses(): Promise {\r\n\r\n this.BonusesLoading = true;\r\n\r\n let ChargeBonusesResult = await this._service.ChargeBonusesAsync(this.OrderId, this.BonusesCharge);\r\n\r\n if (ChargeBonusesResult.Success) {\r\n this.Order = ChargeBonusesResult.Data;\r\n if (this.Order.DiscountsList.length !== 0) {\r\n let BonusesByDiscountType = this.Order.DiscountsList.find(x => x.DiscountType == 2);\r\n if (BonusesByDiscountType !== undefined) {\r\n this.BonusesCharge = BonusesByDiscountType?.Sum;\r\n }\r\n }\r\n }\r\n\r\n this.BonusesLoading = false;\r\n }\r\n\r\n async ItemRemove(item: OrderItem) {\r\n let removeResult = await this._service.RemoveItemAsync(item.Id);\r\n\r\n this._metricsService.RegistrateEvent(MetricsEvents.OrderRemoveItem, this.OrderId);\r\n\r\n if (removeResult.Success) {\r\n if (item.BundleId != null) {\r\n this.Order.Items = this.Order.Items.filter(x => x.BundleId != item.BundleId);\r\n }\r\n else {\r\n this.Order.Items = this.Order.Items.filter(x => x.Id != item.Id);\r\n }\r\n\r\n if (this.LoyaltyProgramApplied && this.Order.Items.length != 0) {\r\n this.BonusesCharge = 0;\r\n let BonusesResult = await this._service.GetBalanceAsync(this.OrderId);\r\n if (BonusesResult.Success && BonusesResult.Data.AvailableBonuses > 0) {\r\n this.BonusesMax = BonusesResult.Data.AvailableBonuses;\r\n }\r\n }\r\n }\r\n else {\r\n this._notificationService.Error(\"Ошибка\", removeResult.ErrorMessage ? removeResult.ErrorMessage : this.Terms.InternalError);\r\n }\r\n\r\n if (this.Order.Items.length == 0) {\r\n this.Order = new OrderSale();\r\n this.$emit(\"RemovedAllItems\");\r\n }\r\n }\r\n\r\n async ApplyCode() {\r\n // Disable promocode form\r\n this.FormPromocodeDisabled = true;\r\n\r\n try {\r\n let result = await this._service.ApplyCodeToOrderAsync(this.Order.Id, this.PromoCode.toUpperCase());\r\n if (!result.Success || result.Data == null) {\r\n this._notificationService.Error('', this.Terms.CodeIncorrect);\r\n } else {\r\n\r\n if (this.LoyaltyProgramApplied) {\r\n this.BonusesCharge = 0;\r\n let BonusesResult = await this._service.GetBalanceAsync(this.OrderId);\r\n if (BonusesResult.Success && BonusesResult.Data.AvailableBonuses > 0) {\r\n this.BonusesMax = BonusesResult.Data.AvailableBonuses;\r\n };\r\n };\r\n\r\n this.Order = result.Data;\r\n this.SelectedDiscountProgram = -1;\r\n\r\n this._metricsService.RegistrateEvent(MetricsEvents.OrderSetPromo, this.OrderId);\r\n };\r\n } catch (error) {\r\n console.error(error);\r\n } finally {\r\n this.FormPromocodeDisabled = false;\r\n };\r\n };\r\n\r\n async ChangeDiscount() {\r\n this.SetLoadingOverlay(true);\r\n let result = await this._service.ChangeDiscountAsync(this.Order.Id, this.SelectedDiscountProgram);\r\n\r\n if (!result.Success || result.Data == null) {\r\n this._notificationService.Error('', result.ErrorMessage ? result.ErrorMessage : this.Terms.InternalError);\r\n } else {\r\n if (this.SelectedDiscountProgram == 0) {\r\n this._metricsService.RegistrateEvent(MetricsEvents.OrderResetDiscount, this.OrderId);\r\n\r\n let clearResult = await this._service.ClearOrderCodesAsync(this.Order.Id);\r\n if (clearResult.Success && clearResult.Data != null) {\r\n result.Data = clearResult.Data;\r\n }\r\n } else {\r\n this._metricsService.RegistrateEvent(MetricsEvents.OrderSetDiscount, this.SelectedDiscountProgram);\r\n }\r\n\r\n this.Order = result.Data;\r\n if (this.LoyaltyProgramApplied) {\r\n this.BonusesCharge = 0;\r\n let BonusesResult = await this._service.GetBalanceAsync(this.OrderId);\r\n if (BonusesResult.Success && BonusesResult.Data.AvailableBonuses > 0) {\r\n this.BonusesMax = BonusesResult.Data.AvailableBonuses;\r\n }\r\n }\r\n this.PromoCode = '';\r\n\r\n let discount = this.Order.DiscountsList.find(x => x.DiscountType == DiscountType.DiscountWithPaymentCondition);\r\n if (discount != null) {\r\n this.SelectedWorldDiscount = true;\r\n if (this.SelectedSbpPayment) {\r\n this._notificationService.Error(\"Ошибка\", \"К платёжной системе СБП неприменима данная скидка\");\r\n }\r\n } else {\r\n this.SelectedWorldDiscount = false;\r\n }\r\n }\r\n this.SetLoadingOverlay(false);\r\n }\r\n\r\n async ClearCodes() {\r\n this.CancelCodeButtonLoading = true;\r\n let result = await this._service.ClearOrderCodesAsync(this.Order.Id);\r\n\r\n if (!result.Success || result.Data == null) {\r\n this._notificationService.Error('', result.ErrorMessage ? result.ErrorMessage : this.Terms.InternalError);\r\n } else {\r\n this.Order = result.Data;\r\n this.PromoCode = '';\r\n\r\n this._metricsService.RegistrateEvent(MetricsEvents.OrderRemovePromo, this.OrderId);\r\n\r\n if (this.LoyaltyProgramApplied) {\r\n this.BonusesCharge = 0;\r\n let BonusesResult = await this._service.GetBalanceAsync(this.OrderId);\r\n if (BonusesResult.Success && BonusesResult.Data.AvailableBonuses > 0) {\r\n this.BonusesMax = BonusesResult.Data.AvailableBonuses;\r\n }\r\n }\r\n\r\n if (this.Order.DiscountProgramId != null) {\r\n this.SelectedDiscountProgram = this.Order.DiscountProgramId;\r\n } else if (!this.LoyaltyProgramApplied) {\r\n let defaultDiscount = this.ItemsDiscounts.find(x => x.id == 0);\r\n if (defaultDiscount != null) {\r\n this.SelectedDiscountProgram = 0;\r\n await this.ChangeDiscount();\r\n }\r\n }\r\n }\r\n this.CancelCodeButtonLoading = false;\r\n }\r\n\r\n CodeSendResult(orderSale: OrderSale) {\r\n this.Order = orderSale;\r\n }\r\n\r\n protected async GetOrder() {\r\n this.SetLoadingOverlay(true);\r\n this.PromoCode = '';\r\n\r\n let order = await this._service.GetOrderAsync(this.OrderId);\r\n\r\n if (!order.Success || order.Data === undefined || order.Data === null) {\r\n this._notificationService.Error(\"Ошибка\", order.ErrorMessage ? order.ErrorMessage : this.Terms.InternalError);\r\n } else {\r\n this.Order = order.Data;\r\n if (this.Order.DiscountsList.length !== 0) {\r\n let BonusesByDiscountType = this.Order.DiscountsList.find(x => x.DiscountType == 2);\r\n if (BonusesByDiscountType !== undefined) this.BonusesCharge = BonusesByDiscountType?.Sum;\r\n };\r\n };\r\n\r\n this.Settings = GlobalService.GetSettings();\r\n\r\n let LoyaltyList = await this._service.GetLoyaltyListAsync();\r\n\r\n if (LoyaltyList.Success && LoyaltyList.Data != undefined && LoyaltyList.Data.length > 0) {\r\n this.HaveLoyaltyProgram = true;\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.LoyaltyProgram, LoyaltyList.Data);\r\n\r\n if (this.Settings.LoyaltyId !== 0) {\r\n this.LoyaltyProgram = LoyaltyList.Data.find(x => x.Id == this.Settings.LoyaltyId);\r\n };\r\n\r\n if (this.LoyaltyProgram == null) {\r\n this.LoyaltyProgram = LoyaltyList.Data[0];\r\n this.Settings.LoyaltyId = this.LoyaltyProgram.Id;\r\n };\r\n\r\n if (this._context.CurrentIdentity.IsAuthentificated) {\r\n let loyaltyProvider = this.GlobalService.Get(LoyaltySymbols.LoyaltyProvider);\r\n let result = await loyaltyProvider.GetIsdUserLoyaltyAsync();\r\n\r\n if (result.Success && result.Data != null) {\r\n this.IsdUserLoyalty = result.Data;\r\n await this.ApplyLoyalty(this.LoyaltyProgram.Id);\r\n };\r\n };\r\n };\r\n\r\n if (this._context.CurrentIdentity.IsAuthentificated) {\r\n if (this._context.CurrentIdentity.Username != null && this._context.CurrentIdentity.Username != '') {\r\n this.EmailIsReadonly = true;\r\n this.Email = this._context.CurrentIdentity.Username;\r\n };\r\n if (this._context.CurrentIdentity.Phone != null && this._context.CurrentIdentity.Phone != '') {\r\n this.PhoneIsReadonly = true;\r\n this.Phone = this._context.CurrentIdentity.Phone;\r\n };\r\n };\r\n\r\n await this.SetDiscountsList();\r\n await this.SetPaymentsList();\r\n this.SetLoadingOverlay(false);\r\n }\r\n\r\n async RegisteredLoyalty(success: boolean) {\r\n if (success) {\r\n this.LoyaltyDialog = false;\r\n await this.LoyaltyProgramRegistration();\r\n };\r\n };\r\n\r\n async LoyaltyProgramRegistration(e?: any) {\r\n if (e != null) e.preventDefault();\r\n\r\n this._metricsService.RegistrateEvent(MetricsEvents.OrderClickSignIn, this.OrderId);\r\n\r\n if (this.LoyaltyProgram == null) return;\r\n\r\n if (!this._context.CurrentIdentity.IsAuthentificated) {\r\n this._redirectToAuth = true;\r\n this._context.SignIn();\r\n return;\r\n }\r\n\r\n this.SetLoadingOverlay(true);\r\n let loyaltyProvider = this.GlobalService.Get(LoyaltySymbols.LoyaltyProvider);\r\n let result = await loyaltyProvider.GetIsdUserLoyaltyAsync();\r\n\r\n if (result.Success) {\r\n if (result.Data == null) {\r\n this.LoyaltyDialog = true;\r\n this.SetLoadingOverlay(false);\r\n return;\r\n };\r\n\r\n this.IsdUserLoyalty = result.Data;\r\n this.ApplyLoyalty(this.LoyaltyProgram.Id);\r\n await this.SetDiscountsList();\r\n } else {\r\n this._notificationService.Error('', result?.ErrorMessage ?? this.Terms.InternalError);\r\n };\r\n\r\n if (this._context.CurrentIdentity.Username != null && this._context.CurrentIdentity.Username != '') {\r\n this.EmailIsReadonly = true;\r\n this.Email = this._context.CurrentIdentity.Username;\r\n };\r\n\r\n if (this._context.CurrentIdentity.Phone != null && this._context.CurrentIdentity.Phone != '') {\r\n this.PhoneIsReadonly = true;\r\n this.Phone = this._context.CurrentIdentity.Phone;\r\n };\r\n\r\n this.SetLoadingOverlay(false);\r\n }\r\n\r\n async ApplyLoyalty(loyaltyId: number): Promise {\r\n let ApplyLoyaltyResult = await this._service.ApplyLoyaltyAsync(this.OrderId, loyaltyId);\r\n if (ApplyLoyaltyResult.Success) {\r\n\r\n this._metricsService.RegistrateEvent(MetricsEvents.OrderApplyLoyalty, this.OrderId);\r\n\r\n let BonusesResult = await this._service.GetBalanceAsync(this.OrderId);\r\n if (BonusesResult.Success && BonusesResult.Data.AvailableBonuses > 0) this.BonusesMax = BonusesResult.Data.AvailableBonuses;\r\n\r\n this.Order = ApplyLoyaltyResult.Data;\r\n\r\n if (this.Order.DiscountsList.length !== 0) {\r\n let BonusesByDiscountType = this.Order.DiscountsList.find(x => x.DiscountType == 2);\r\n if (BonusesByDiscountType !== undefined) this.BonusesCharge = BonusesByDiscountType?.Sum;\r\n };\r\n\r\n if (this._context.CurrentIdentity.IsAuthentificated) {\r\n if (this._context.CurrentIdentity.Username != null && this._context.CurrentIdentity.Username != '') {\r\n this.EmailIsReadonly = true;\r\n this.Email = this._context.CurrentIdentity.Username;\r\n };\r\n if (this._context.CurrentIdentity.Phone != null && this._context.CurrentIdentity.Phone != '') {\r\n this.PhoneIsReadonly = true;\r\n this.Phone = this._context.CurrentIdentity.Phone;\r\n };\r\n };\r\n this.LoyaltyProgramApplied = true;\r\n } else {\r\n this.LoyaltyProgramApplied = false;\r\n };\r\n };\r\n\r\n async SetDiscountsList() {\r\n this.ItemsDiscounts = [];\r\n let noConditionsDiscount: DiscountProgram | undefined;\r\n let discounts = await this._service.GetDiscountProgramsAsync();\r\n\r\n if (discounts.Success && discounts.Data != null && discounts.Data.length > 0) {\r\n // No discounts available\r\n await this.LocalizationService.TranslateManyAsync(WpCorePrefixes.DiscountProgram, discounts.Data);\r\n\r\n noConditionsDiscount = discounts.Data.find(x => x.Conditions == null || x.Conditions.length == 0);\r\n\r\n if (this.LoyaltyProgramApplied == false && noConditionsDiscount != null) {\r\n let applyDiscountResult = await this._service.ChangeDiscountAsync(this.OrderId, noConditionsDiscount.Id);\r\n if (applyDiscountResult.Success && applyDiscountResult.Data != null)\r\n this.Order = applyDiscountResult.Data;\r\n };\r\n\r\n if (this.IsdUserLoyalty != null && this.LoyaltyProgram != null) {\r\n this.ItemsDiscounts.push({\r\n id: 0,\r\n icons: [{ type: 'icon', src: 'mdi-gift-outline' }],\r\n text: this.LoyaltyProgram.Name,\r\n tooltip: '',\r\n link: '',\r\n show: false\r\n });\r\n };\r\n\r\n if (noConditionsDiscount != null) {\r\n this.ItemsDiscounts.push({\r\n id: noConditionsDiscount.Id,\r\n icons: [{ type: 'icon', src: 'mdi-gift-outline' }],\r\n text: noConditionsDiscount.Name,\r\n tooltip: noConditionsDiscount.Description,\r\n link: noConditionsDiscount.RuleLink,\r\n show: false\r\n });\r\n };\r\n\r\n if (noConditionsDiscount == null && this.IsdUserLoyalty == null) {\r\n this.ItemsDiscounts.push({\r\n id: 0,\r\n icons: [{ type: 'icon', src: 'mdi-cancel' }],\r\n text: this.Terms.NoDiscount,\r\n tooltip: '',\r\n link: '',\r\n show: false\r\n });\r\n };\r\n\r\n for (let i = 0; i < discounts.Data.length; i++) {\r\n let x = discounts.Data[i];\r\n if (noConditionsDiscount != null && noConditionsDiscount.Id == x.Id)\r\n continue;\r\n\r\n let icons = [];\r\n\r\n x.Conditions.forEach(condition => {\r\n if (condition.DiscountConditionType == 1) {\r\n if (condition.AvailableCards.some((card: any) => card == '2'))\r\n icons.push({ type: 'img', src: 'https://static.moipass.ru/img/mir.png' });\r\n\r\n if (condition.AvailableCards.some((card: any) => card == '4'))\r\n icons.push({ type: 'img', src: 'https://static.moipass.ru/img/visa.png' });\r\n\r\n if (condition.AvailableCards.some((card: any) => card == '5'))\r\n icons.push({ type: 'img', src: 'https://static.moipass.ru/img/mastercard.png' });\r\n };\r\n });\r\n\r\n if (icons.length == 0) icons.push({ type: 'icon', src: 'mdi-sale' });\r\n\r\n this.ItemsDiscounts.push({\r\n id: x.Id,\r\n icons: icons,\r\n text: x.Name,\r\n tooltip: x.Description,\r\n link: x.RuleLink,\r\n show: false\r\n });\r\n };\r\n\r\n if (this.Order.DiscountProgramId != null) {\r\n this.SelectedDiscountProgram = this.Order.DiscountProgramId;\r\n } else {\r\n let defaultDiscount = this.ItemsDiscounts.find(x => x.id == 0);\r\n if (defaultDiscount != null) {\r\n this.SelectedDiscountProgram = 0;\r\n };\r\n };\r\n };\r\n };\r\n\r\n async SetPaymentsList(): Promise {\r\n this.ItemsPayments = [];\r\n let payments = await this._service.GetPaymentsAsync(this.Order.Id);\r\n\r\n if (payments.Success && payments.Data != null && payments.Data.length > 0) {\r\n for (let i = 0; i < payments.Data.length; i++) {\r\n let paymentData = {};\r\n if (payments.Data[i].PaymentType == PaymentSystemType.SbpSberbank) {\r\n paymentData = {\r\n id: payments.Data[i].Id,\r\n icons: { type: 'img', src: 'https://static.moipass.ru/img/sfp.png' },\r\n text: this.Terms.SbpPayment,\r\n type: payments.Data[i].PaymentType\r\n };\r\n }\r\n else if (payments.Data[i].PaymentType == PaymentSystemType.Sbp) {\r\n paymentData = {\r\n id: payments.Data[i].Id,\r\n icons: { type: 'img', src: 'https://static.moipass.ru/img/sfp.png' },\r\n text: this.Terms.SbpPayment,\r\n type: payments.Data[i].PaymentType\r\n };\r\n\r\n }\r\n else if (payments.Data[i].PaymentType == PaymentSystemType.Account) {\r\n paymentData = {\r\n id: payments.Data[i].Id,\r\n icons: { type: 'img', src: 'https://static.moipass.ru/img/sfp.png' },\r\n text: this.Terms.Account,\r\n type: payments.Data[i].PaymentType\r\n };\r\n }\r\n else {\r\n paymentData = {\r\n id: payments.Data[i].Id,\r\n icons: { type: 'icon', src: 'mdi-credit-card-outline' },\r\n text: `${this.Terms.CardPayment} ${this.GetPaymentName(payments.Data[i].PaymentType)}`,\r\n type: payments.Data[i].PaymentType\r\n };\r\n };\r\n\r\n this.ItemsPayments.push(paymentData);\r\n\r\n if (payments.Data[i].IsBasePayment)\r\n this.SelectedPaymentId = payments.Data[i].Id;\r\n };\r\n };\r\n };\r\n\r\n ChangePayment() {\r\n let payment = this.ItemsPayments.find(x => x.id == this.SelectedPaymentId);\r\n if (payment != null && payment != undefined) {\r\n if (payment.type == PaymentSystemType.Sbp || payment.type == PaymentSystemType.SbpSberbank) {\r\n this.SelectedSbpPayment = true;\r\n if (this.SelectedWorldDiscount) {\r\n this._notificationService.Error(\"Ошибка\", \"К платёжной системе СБП неприменима данная скидка\");\r\n }\r\n } else {\r\n this.SelectedSbpPayment = false;\r\n }\r\n }\r\n }\r\n\r\n GetPaymentName(paymentType: PaymentSystemType) {\r\n switch (paymentType) {\r\n case PaymentSystemType.AlfaBank:\r\n return this.Terms.AlfaBank;\r\n case PaymentSystemType.Gazprombank:\r\n return this.Terms.Gazprombank;\r\n case PaymentSystemType.Kazkombank:\r\n return this.Terms.Kazkombank;\r\n case PaymentSystemType.PayOnline:\r\n return this.Terms.PayOnline;\r\n case PaymentSystemType.Payu:\r\n return this.Terms.Payu;\r\n case PaymentSystemType.RfiBank:\r\n return this.Terms.RfiBank;\r\n case PaymentSystemType.RosEuroBank:\r\n return this.Terms.RosEuroBank;\r\n case PaymentSystemType.Sberbank:\r\n return this.Terms.Sberbank;\r\n case PaymentSystemType.SovkomBank:\r\n return this.Terms.SovkomBank;\r\n case PaymentSystemType.Test:\r\n return this.Terms.Test;\r\n case PaymentSystemType.Yandex:\r\n return this.Terms.Yandex;\r\n case PaymentSystemType.Account:\r\n return this.Terms.Account;\r\n };\r\n\r\n return '';\r\n };\r\n\r\n RulesOpen() {\r\n this.RulesTrigger = true;\r\n this._metricsService.RegistrateEvent(MetricsEvents.OrderClickAgreements, this.OrderId);\r\n };\r\n\r\n DialogAndBottomSheetFix() {\r\n try {\r\n if (this.$vuetify.breakpoint.smOnly && this.LoginDrawer) {\r\n if (this.RulesTrigger) {\r\n setTimeout(() => {\r\n let bottomSheet = document.getElementById('mobile-bottom-sheet')?.parentElement?.parentElement?.parentElement;\r\n let rulesDialog = document.getElementsByClassName('wp-rules').item(0)?.parentElement?.parentElement;\r\n let overlay = document.getElementsByClassName('v-overlay--active').item(0) as HTMLElement;\r\n\r\n if (bottomSheet != null && rulesDialog != null) {\r\n let bottomSheetZIndex = Number.parseInt(bottomSheet.style.zIndex);\r\n let rulesDialogZIndex = Number.parseInt(rulesDialog.style.zIndex);\r\n\r\n if (rulesDialogZIndex <= bottomSheetZIndex) {\r\n rulesDialog.style.zIndex = `${bottomSheetZIndex + 2}`;\r\n\r\n if (overlay != null) overlay.style.zIndex = `${bottomSheetZIndex + 1}`;\r\n };\r\n };\r\n }, 1000);\r\n };\r\n\r\n if (this.LoyaltyDialog) {\r\n setTimeout(() => {\r\n let bottomSheet = document.getElementById('loyalty-dialog')?.parentElement?.parentElement?.parentElement;\r\n let rulesDialog = document.getElementsByClassName('wp-rules').item(0)?.parentElement?.parentElement;\r\n let overlay = document.getElementsByClassName('v-overlay--active').item(0) as HTMLElement;\r\n\r\n if (bottomSheet != null && rulesDialog != null) {\r\n let bottomSheetZIndex = Number.parseInt(bottomSheet.style.zIndex);\r\n let rulesDialogZIndex = Number.parseInt(rulesDialog.style.zIndex);\r\n\r\n if (rulesDialogZIndex <= bottomSheetZIndex) {\r\n rulesDialog.style.zIndex = `${bottomSheetZIndex + 2}`;\r\n\r\n if (overlay != null) overlay.style.zIndex = `${bottomSheetZIndex + 1}`;\r\n };\r\n };\r\n }, 1000);\r\n };\r\n };\r\n } catch (e) {\r\n console.error(e);\r\n };\r\n };\r\n};\r\n\r\nexport class WpPayConfirmDictionary extends BaseSystemLocalizationDictionary {\r\n UsedPromoCode: string = 'Применен промокод';\r\n DataRequired: string = 'Необходимо заполнить данные';\r\n PlacingOrder: string = 'Оформление заказа';\r\n ToGetDeals: string = 'Чтобы накопить баллы и получить скидку необходимо';\r\n YouAreMemberOfLoyaltyProgram: string = 'Вы являетесь участником программы лояльности';\r\n LabelEmail: string = 'Email';\r\n LabelPhone: string = 'Телефон';\r\n LabelPromocode: string = 'Промокод';\r\n EnterEmail: string = 'Введите e-mail';\r\n EnterPhone: string = 'Введите телефон';\r\n ChooseDiscount: string = 'Выберите скидку';\r\n CodeIncorrect: string = 'Неверный код';\r\n GenericDiscount: string = 'Скидка';\r\n GenericTotal: string = 'Итого';\r\n GenericPay: string = 'Оплатить';\r\n GenericByPressingPay: string = 'Нажимая \"Оплатить\", Вы соглашаетесь с';\r\n GenericToRules: string = 'условиями';\r\n HowManyPointsToSpend: string = 'Сколько баллов вы хотите списать?';\r\n NoDiscount: string = 'Без скидки';\r\n GenericPurchaseComment: string = 'Комментарий к заказу';\r\n ChoosePayment: string = 'Выберите способ оплаты';\r\n CardPayment: string = 'Оплата картой';\r\n SbpPayment: string = 'Оплата через СБП';\r\n NoPointsToSpend: string = \"У вас нет баллов, которые можно использовать в заказе\";\r\n\r\n Payu = 'Payu';\r\n Yandex = 'Яндекс';\r\n Sberbank = 'Сбербанк';\r\n RfiBank = 'РФИ банк';\r\n RosEuroBank = 'РосЕвроБанк';\r\n Gazprombank = 'Газпромбанк';\r\n SovkomBank = 'Совкомбанк';\r\n Kazkombank = \"Казкомерцбанк\";\r\n Test = \"Тестовая\";\r\n AlfaBank = 'Альфа-банк';\r\n PayOnline = 'Pay онлайн';\r\n Account = 'Оплата с лицевого счёта';\r\n};","export enum ContractPaymentType {\r\n cptNow = 0,\r\n cptCredit = 1\r\n}","export const ClubSymbols = {\r\n ClubProvider: Symbol.for(\"ClubProvider\"),\r\n ClubService: Symbol.for(\"ClubService\")\r\n}","import { injectable, inject } from 'inversify';\r\nimport ITariffService from './i-tariff-service';\r\nimport ActionResult from './../Common/action-result';\r\nimport ITariffProvider from './i-tariff-provider';\r\nimport { TariffSymbols } from './symbols';\r\nimport Tariff from './tariff';\r\nimport TariffSale from './tariff-sale';\r\nimport TariffsBundle from './tariffs-bundle';\r\nimport { IdentitySymbols } from './../Identity/symbols';\r\nimport { IContext } from './../Identity';\r\nimport CardAcceptableTariffs from './card-acceptable-tariffs';\r\nimport { AppSettings } from '../Global/app-settings';\r\nimport GlobalService from '../Global/global-service';\r\nimport { ErrorTypes } from '../Common';\r\n\r\n@injectable()\r\nexport default class TariffService implements ITariffService {\r\n protected readonly _settings: AppSettings;\r\n protected readonly _provider: ITariffProvider;\r\n protected readonly _context: IContext;\r\n\r\n protected _saleItems: Array = [];\r\n\r\n constructor(@inject(TariffSymbols.TariffProvider) provider: ITariffProvider,\r\n @inject(IdentitySymbols.Context) context: IContext) {\r\n this._provider = provider;\r\n this._context = context;\r\n this._settings = GlobalService.GetSettings();\r\n };\r\n\r\n async GetCardAcceptableTariffsAsync(card: string): Promise> {\r\n let userId: string = '';\r\n if (this._context.CurrentIdentity.IsAuthentificated)\r\n userId = this._context.CurrentIdentity.UserId;\r\n\r\n let result = await this._provider.GetCardAcceptableTariffsAsync(card, userId);\r\n return result;\r\n };\r\n\r\n async GetTariffsAsync(): Promise>> {\r\n let result = await this._provider.GetTariffsAsync();\r\n\r\n if (result.Success && result.Data !== undefined && this._settings.GroupId != null)\r\n result.Data = result.Data.filter(x => x.GroupId == this._settings.GroupId);\r\n\r\n return result;\r\n };\r\n\r\n async GetTariffsBundlesAsync(): Promise>> {\r\n let result = await this._provider.GetTariffsBundlesAsync();\r\n\r\n if (result.Success && result.Data !== undefined)\r\n result.Data = result.Data.filter(x => x.Tariffs !== null && x.Tariffs.length > 0 && !x.Tariffs.some(y => y.IsRewritable))\r\n\r\n if (result.Success && result.Data !== undefined && this._settings.GroupId != null && this._settings.GroupId != null)\r\n result.Data = result.Data.filter(x => x.Tariffs !== null && x.Tariffs.length > 0 && !x.Tariffs.some(y => y.GroupId == null || y.GroupId != this._settings.GroupId));\r\n\r\n return result;\r\n };\r\n\r\n async GetAvailableTariffsAsync(date: string): Promise>> {\r\n let result = await this._provider.GetAvailableTariffsAsync(date);\r\n\r\n if (result.Success && result.Data !== undefined && result !== null)\r\n result.Data = result.Data.filter(x => !x.IsRewritable)\r\n\r\n return result;\r\n };\r\n\r\n async GetTariffSalesAsync(date: string, tariffs: Array): Promise>> {\r\n return await this._provider.GetTariffSalesAsync(date, tariffs);\r\n };\r\n\r\n async GetSingleTariffSalesAsync(date: string, tariff: Tariff, seanceId?: string): Promise> {\r\n let sales = await this._provider.GetSingleTariffSalesAsync(date, tariff.Id, seanceId);\r\n\r\n let salesInArray = this._saleItems.find(x => x.TariffId == tariff.Id && x.Date == date && x.SeanceId == seanceId);\r\n\r\n if (salesInArray != null) {\r\n if (sales.Data != null)\r\n salesInArray.Count = sales.Data.Count;\r\n return ActionResult.SuccessData(salesInArray);\r\n };\r\n\r\n if (!sales.Success)\r\n return sales;\r\n\r\n let result = new TariffSale();\r\n\r\n result.TariffId = tariff.Id;\r\n result.Quota = tariff.Quota;\r\n result.Date = date;\r\n result.SeanceId = seanceId;\r\n\r\n if (sales.Data != null)\r\n result.Count = sales.Data.Count;\r\n\r\n this._saleItems.push(result);\r\n\r\n return ActionResult.SuccessData(result);\r\n };\r\n\r\n async GetTariffPrice(date: string, tariffId: number, seanceId?: string): Promise {\r\n return await this._provider.GetTariffPrice(date, tariffId, seanceId);\r\n };\r\n\r\n async RefreshSales(): Promise {\r\n for (let i = 0; i < this._saleItems.length; i++) {\r\n let sale = this._saleItems[i];\r\n let sales = await this._provider.GetSingleTariffSalesAsync(sale.Date, sale.TariffId, sale.SeanceId);\r\n\r\n if (sales.Success && sales.Data != null)\r\n sale.Count = sales.Data.Count;\r\n };\r\n };\r\n\r\n // Новые методы - http://redmine.isd.su/issues/6843\r\n // Имплементация этих методов происходит в сервисе TariffServiceCached\r\n async GetTariffsAllPrices(id: number, date: string): Promise {\r\n console.error(\"Этот метот переопределяется в tariff-service-cached.ts\");\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n\r\n async GetTariffsAllCapacities(id: number, date: string): Promise> {\r\n console.error(\"Этот метот переопределяется в tariff-service-cached.ts\");\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n\r\n Cache: Array = [];\r\n};","import { injectable, inject } from 'inversify';\r\n\r\nimport { Order, OrderDetails, OrderDetailItem, OrdersFilter } from './../Order';\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { FiltringResult, ActionResult, ErrorTypes } from './../Common';\r\nimport { IdentitySymbols, IContext } from './../Identity';\r\nimport GlobalService, { IDateHandler } from './../';\r\nimport ILuzhOrderProvider from './i-luzh-order-provider';\r\nimport { DateHandlerSymbols } from '../Utility';\r\nimport { OrderStatus } from '../Sale';\r\n\r\n@injectable()\r\nexport default class LuzhnikiOrderProvider implements ILuzhOrderProvider {\r\n /* Friendly reminder\r\n * .get() = GET\r\n * .create() = POST\r\n * .replace() = PUT\r\n */\r\n protected _dateHandler: IDateHandler;\r\n protected _context: IContext;\r\n constructor(@inject(IdentitySymbols.Context) context: IContext,\r\n @inject(DateHandlerSymbols.DateHandlerService) dateHandler: IDateHandler) {\r\n this._context = context;\r\n this._dateHandler = dateHandler;\r\n }\r\n\r\n async GetOrderListAsync(filter: OrdersFilter): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>>(`/account/api/orders/`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.FailedData>(ErrorTypes.InternalError, new FiltringResult());\r\n\r\n return ActionResult.SuccessData>(response.result?.Data);\r\n }\r\n\r\n async GetOrderListByTNodAsync(tnodId: number): Promise>> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get>(`/luzhniki/orders/?tnodid=${tnodId}`);\r\n\r\n if (response.result == null)\r\n return ActionResult.FailedData>(ErrorTypes.InternalError);\r\n\r\n let result = new FiltringResult();\r\n\r\n if (response.result != null) {\r\n response.result.forEach((x: any) => {\r\n let order = new Order();\r\n\r\n order.Id = x.Id;\r\n order.Date = this._dateHandler.ParseToDate(x.SaleDate, 'DD.MM.YYYY');\r\n order.Status = x.Status == \"Refunded\" ? OrderStatus.Refunded : OrderStatus.Paid;\r\n order.Sum = x.Sum != null ? Number.parseFloat(x.Sum) : 0;\r\n\r\n result.Entities.push(order);\r\n });\r\n }\r\n\r\n return ActionResult.SuccessData>(result);\r\n }\r\n async GetOrderAsync(id: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n\r\n let response = await client.get(`/luzhniki/orders/details/?id=${id}`);\r\n\r\n if (response.result == null)\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n let bonusSum = 0;\r\n let result = new OrderDetails();\r\n let items = new Array();\r\n if (response.result.Content != null) {\r\n result.Id = response.result.Content.Id;\r\n result.Code = response.result.Content.Id;\r\n result.RegistredDate = response.result.Content.SaleDate;\r\n result.Transactions = [];\r\n result.History = [];\r\n result.Status = response.result.Content.Status == \"Refunded\" ? OrderStatus.Refunded : OrderStatus.Paid;\r\n result.Sum = response.result.Content.Sum;\r\n result.Discount = response.result.Content.Discount;\r\n\r\n if (response.result.Content.Items != null && response.result.Content.Items.Item != null) {\r\n response.result.Content.Items.Item.forEach((x: any) => {\r\n let item = new OrderDetailItem();\r\n\r\n item.Id = x.Id;\r\n item.Code = x.Id;\r\n item.Info = x.ServiceName;\r\n item.Price = x.Price;\r\n item.Barcode = x.Barcode;\r\n item.Discount = x.Discount;\r\n item.Sum = x.Price;\r\n item.BonusSum = Number.parseFloat(x.BonusSum);\r\n\r\n bonusSum += item.BonusSum;\r\n items.push(item);\r\n });\r\n }\r\n\r\n result.BonusSum = bonusSum;\r\n result.Items = items;\r\n }\r\n\r\n return ActionResult.SuccessData(result);\r\n }\r\n\r\n protected RefreshClient(): RestClient {\r\n return new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n }\r\n // ����� ������ - http://redmine.isd.su/issues/6922\r\n async UpdateHeight(height: number): Promise {\r\n let client: RestClient = this.RefreshClient();\r\n let response = await client.replace>('/luzhniki/person', { height: height });\r\n if (response != null && response.statusCode == 200) return ActionResult.SuccessData(response.result);\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n async GetData(): Promise {\r\n try {\r\n let client: RestClient = this.RefreshClient();\r\n let response = await client.get>('/luzhniki/person');\r\n if (response != null && response.statusCode == 200) return ActionResult.SuccessData(response.result);\r\n } catch (e) {\r\n console.error(e);\r\n }\r\n return ActionResult.Failed(ErrorTypes.InternalError, 'Couldn\\'t fetch personal data. Probably a server error...');\r\n }\r\n async GetBio(activityType: number, dateStart: string, dateEnd: string): Promise {\r\n let client: RestClient = this.RefreshClient();\r\n let response = await client.get(`/luzhniki/person/bio?type=${activityType}&datestart=${dateStart}&dateEnd=${dateEnd}`);\r\n if (response != null && response.statusCode == 200) return ActionResult.SuccessData(response.result);\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n }\r\n\r\n async PublishVK(title: string, value: string, type: string, fileType: string): Promise {\r\n try {\r\n let client: RestClient = this.RefreshClient();\r\n let response = await client.replace>('/luzhniki/person/vk/publish', { title: title, type: type, value: value, fileType: fileType });\r\n if (response != null && response.statusCode == 200) return ActionResult.SuccessData(response.result);\r\n } catch (e) {\r\n console.error(e);\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n }\r\n\r\n return ActionResult.Success();\r\n }\r\n}\r\n\r\nclass AjaxResult {\r\n Result: string | number = '';\r\n Message: string = '';\r\n Content?: T;\r\n Data?: T;\r\n}","import { injectable, inject } from 'inversify';\r\n\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { ActionResult, ErrorTypes, WpEventHandler, WpEvent } from './../Common';\r\nimport { IdentitySymbols } from './../Identity/symbols';\r\nimport { IContext, IdentityChangedEventArgs } from './../Identity';\r\nimport IsdUserLoyalty from './isd-user-loyalty';\r\nimport ILoyaltyProvider from './i-loyalty-provider';\r\nimport IsdLoyaltyProgram from './isd-loyalty-program';\r\nimport PersonIsdLoyaltyData from './person-isd-loyalty-data';\r\nimport GlobalService from '../Global/global-service';\r\nimport { AppSettings } from '../Global/app-settings';\r\nimport PersonAchievement, { AvailableGift } from './person-achievement';\r\nimport { NotificationEventArgs, NotificationTypes, NotificationSymbols, INotificationService } from '../Notification';\r\nimport LoyaltyChangedEventArgs from './loyalty-changed-event-args';\r\nimport SocialNetworkData from './social-network-data';\r\nimport { AccountBalance } from '.';\r\n\r\n@injectable()\r\nexport default class DefaultLoyaltyProvider implements ILoyaltyProvider {\r\n static _this: ILoyaltyProvider;\r\n private _context: IContext;\r\n protected _notificationService: INotificationService;\r\n private _loyaltyChanged: WpEventHandler;\r\n private _children: Array | undefined = [];\r\n _currentUserLoyalty?: IsdUserLoyalty;\r\n\r\n // Boilerplate code to generate RestClient\r\n private CreateRestClient(): RestClient {\r\n /* Friendly RestClient reminder\r\n * .get() = GET\r\n * .create() = POST\r\n * .replace() = PUT\r\n */\r\n return new RestClient(\"wp-app\", window.location.origin, [], {\r\n headers: {\r\n \"Authorization\": `Bearer ${this._context.CurrentIdentity.AccessToken.Token}`,\r\n \"SessionId\": GlobalService.GetSettings().SessionId\r\n }\r\n });\r\n };\r\n\r\n get LoyaltyChanged(): WpEvent {\r\n return this._loyaltyChanged;\r\n };\r\n\r\n constructor(@inject(IdentitySymbols.Context) context: IContext,\r\n @inject(NotificationSymbols.NotificationService) notificationService: INotificationService) {\r\n this._context = context;\r\n this._notificationService = notificationService;\r\n\r\n DefaultLoyaltyProvider._this = this;\r\n\r\n let _this = this;\r\n this._loyaltyChanged = new WpEventHandler();\r\n this._context.IdentityChanged.Subscribe((sender: any, e: IdentityChangedEventArgs) => {\r\n _this._currentUserLoyalty = undefined;\r\n });\r\n this._notificationService.NotificationSended.Subscribe(this.notification);\r\n };\r\n\r\n async AddSocialNetworkDataAsync(loyaltyId: number, data: SocialNetworkData): Promise {\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n var request = {\r\n AccountId: loyaltyId,\r\n ExternalId: data.ExternalId,\r\n Type: data.Type.toString(),\r\n AccessToken: data.AccessToken\r\n }\r\n\r\n let response = await client.create>('/account/api/loyalty/isd/socials', request);\r\n if (response.result != null && response.result.Result != 0) {\r\n if (response.result.Result == 8) {\r\n return ActionResult.Failed(ErrorTypes.InvalidData, response.result.Message);\r\n };\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n };\r\n\r\n this._currentUserLoyalty = undefined;\r\n await this.GetIsdUserLoyaltyAsync();\r\n\r\n return ActionResult.Success();\r\n } catch (e) {\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n };\r\n\r\n async RemoveSocialNetworkDataAsync(loyaltyId: number, data: SocialNetworkData): Promise {\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n let response = await client.del>(`/account/api/loyalty/isd/socials?accountid=${loyaltyId}&externalid=${data.ExternalId}&type=${data.Type.toString()}`);\r\n if (response.result != null && response.result.Result != 0) {\r\n if (response.result.Result == 8) {\r\n return ActionResult.Failed(ErrorTypes.InvalidData, response.result.Message);\r\n };\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n };\r\n\r\n this._currentUserLoyalty = undefined;\r\n await this.GetIsdUserLoyaltyAsync();\r\n\r\n return ActionResult.Success();\r\n } catch (e) {\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n };\r\n\r\n async GetIsdUserLoyaltyAsync(): Promise> {\r\n if (this._currentUserLoyalty != null)\r\n return ActionResult.SuccessData(this._currentUserLoyalty);\r\n\r\n try {\r\n let settings = GlobalService.GetSettings();\r\n let client: RestClient = this.CreateRestClient();\r\n\r\n let response = await client.get>(`/account/api/loyalty/isd/?orgId=${settings.CurrentSite?.OrganizationId}`);\r\n\r\n if (response.result != null && response.result.Result != 0) return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n this._currentUserLoyalty = response.result?.Data;\r\n\r\n if (this._currentUserLoyalty != null) this._loyaltyChanged.Send(this, new LoyaltyChangedEventArgs(this._currentUserLoyalty));\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n } catch (e) {\r\n console.error(e);\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n };\r\n };\r\n\r\n async GetProgramInfoAsync(loyaltyId: number): Promise> {\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n let response = await client.get>(`/account/api/loyalty/isd/program/${loyaltyId}`);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Data);\r\n } catch (e) {\r\n console.error(e);\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n };\r\n };\r\n\r\n async GetCards(personId: number): Promise> {\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n let response = await client.get>(`/nspk/cards/?personId=${personId}`);\r\n\r\n if (response == null || response.result == null)\r\n return new Array();\r\n\r\n return response.result;\r\n } catch (e) {\r\n console.error(e);\r\n return new Array();\r\n };\r\n };\r\n\r\n async BindUserAsync(loyaltyId: number, confirmCodeId: number, phone: string): Promise> {\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n let response = await client.create>(`/account/api/loyalty/isd/binduser`, { LoyaltyId: loyaltyId, ConfirmCodeId: confirmCodeId, Phone: phone });\r\n\r\n if (response.result != null) {\r\n if (response.result.Result === 4)\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n else if (response.result.Result == 5)\r\n return ActionResult.FailedData(ErrorTypes.NotFoundData);\r\n else if (response.result.Result == 6)\r\n return ActionResult.FailedData(ErrorTypes.InvalidData, response.result.Data);\r\n else if (response.result.Result == 58)\r\n return ActionResult.Failed(ErrorTypes.InternalError, 'Не удалось однозначно определить пльзователя по номеру телефона. Обратитесь к администору объекта.');\r\n };\r\n\r\n this._currentUserLoyalty = undefined;\r\n await this.GetIsdUserLoyaltyAsync();\r\n\r\n return ActionResult.Success();\r\n } catch (e) {\r\n console.error(e);\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n };\r\n };\r\n\r\n async RegisterAsync(personIsdLoyaltyData: PersonIsdLoyaltyData): Promise> {\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n let response = await client.create>(`/account/api/loyalty/isd/register`, personIsdLoyaltyData);\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n\r\n this._currentUserLoyalty = undefined;\r\n this.GetIsdUserLoyaltyAsync();\r\n\r\n return ActionResult.SuccessData(response.result?.Result);\r\n } catch (e) {\r\n console.error(e);\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n };\r\n };\r\n\r\n async EditAsync(personIsdLoyaltyData: PersonIsdLoyaltyData): Promise {\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n let response = await client.create>(`/account/api/loyalty/isd/edit`, personIsdLoyaltyData);\r\n\r\n if (response.result != null && response.result.Result != 0)\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n\r\n this._currentUserLoyalty = undefined;\r\n await this.GetIsdUserLoyaltyAsync();\r\n\r\n return ActionResult.SuccessData();\r\n } catch (e) {\r\n console.error(e);\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n };\r\n };\r\n\r\n async ChangeEmailAsync(loyaltyId: number, personId: number, email: string): Promise {\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n let data = {\r\n LoyaltyId: loyaltyId,\r\n PersonId: personId,\r\n Email: email\r\n };\r\n let response = await client.replace>(`/account/api/loyalty/isd/changeemail`, data);\r\n if (response.result != null && response.result.Result != 0) {\r\n if (response.result.Result == 8)\r\n return ActionResult.Failed(ErrorTypes.InvalidData, response.result.Message);\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n };\r\n this._currentUserLoyalty = undefined;\r\n await this.GetIsdUserLoyaltyAsync();\r\n return ActionResult.SuccessData();\r\n } catch (e) {\r\n console.error(e);\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n };\r\n\r\n /* Раздел для работы с детьми */\r\n /**\r\n * Get the list of children in form of an Array\r\n * @param {boolean} recache - (Optional) Skip cache and re-request if true\r\n */\r\n async GetChildrenAsync(recache?: boolean): Promise>> {\r\n // Return the array of children from cache if exists\r\n if (this._children && this._children.length != 0 && !recache) return ActionResult.SuccessData(this._children);\r\n\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n let response = await client.get>>('/account/api/loyalty/isd/children');\r\n // If we got any result...\r\n if (response.result != null) {\r\n let resultCode: number = response.result.Result;\r\n switch (resultCode) {\r\n case 0:\r\n this._children = response.result.Data;\r\n return ActionResult.SuccessData(response.result.Data);\r\n default:\r\n return ActionResult.Failed(resultCode);\r\n }\r\n }\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n } catch (e) {\r\n // Couldn't get/update children list\r\n console.error(e);\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n };\r\n\r\n async RemoveChildAsync(loyaltyId: number, personId: number): Promise {\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n let response = await client.del>('/account/api/loyalty/isd/child?loyaltyId=' + loyaltyId + '&personId=' + personId);\r\n if (response.result != null && response.result.Result != 0) {\r\n if (response.result.Result == 8) {\r\n return ActionResult.Failed(ErrorTypes.InvalidData, response.result.Message);\r\n };\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n };\r\n return ActionResult.Success();\r\n } catch (e) {\r\n // Couldn't remove child\r\n console.error(e);\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n };\r\n\r\n async AddChildAsync(child: any): Promise {\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n let response = await client.create>('/account/api/loyalty/isd/child', child);\r\n if (response.result != null && response.result.Result != 0) {\r\n if (response.result.Result == 8) {\r\n return ActionResult.Failed(ErrorTypes.InvalidData, response.result.Message);\r\n };\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n };\r\n return ActionResult.Success();\r\n } catch (e) {\r\n // Couldn't add child\r\n console.error(e);\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n };\r\n\r\n async UpdateChildAsync(child: any): Promise {\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n let response = await client.replace>('/account/api/loyalty/isd/child', child);\r\n if (response.result != null && response.result.Result != 0) {\r\n if (response.result.Result == 8) {\r\n return ActionResult.Failed(ErrorTypes.InvalidData, response.result.Message);\r\n }\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n }\r\n return ActionResult.Success();\r\n } catch (e) {\r\n // Couldn't update child\r\n console.error(e);\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n };\r\n\r\n // http://redmine.isd.su/issues/8104 - Настройка оповещений\r\n async UpdateNotificationSettings(type: string, value: boolean): Promise {\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n let setting = {\r\n \"AccountId\": this._currentUserLoyalty!.Id,\r\n \"Type\": type,\r\n \"Enabled\": value\r\n };\r\n let query = await client.replace>(\"/account/api/loyalty/isd/notification\", setting);\r\n if (query.result && query.result.Result == 0) {\r\n this._currentUserLoyalty = undefined;\r\n await this.GetIsdUserLoyaltyAsync();\r\n\r\n return ActionResult.Success();\r\n };\r\n } catch (e) {\r\n console.error(e);\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n return ActionResult.Failed(ErrorTypes.InternalError, \"Не удалось изменить настройки уведомлений\");\r\n };\r\n\r\n async SetDeviceIdAsync(deviceId: string, pushToken: string, platform: string): Promise {\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n let data = { token: pushToken, deviceid: deviceId, platform: platform };\r\n await client.create(`/mobile/device/`, data);\r\n return ActionResult.SuccessData();\r\n } catch (e) {\r\n console.error(e);\r\n return ActionResult.FailedData(ErrorTypes.InternalError);\r\n };\r\n };\r\n\r\n // http://redmine.isd.su/issues/8306 - Вывод достижений\r\n async GetPersonsAchievements(tnodId: number, loyaltyId: number, contractId?: number): Promise>> {\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n let response = await client.get>>(`/account/api/loyalty/isd/achievements?tnodid=${tnodId}&contractid=${contractId}&loyaltyId=${loyaltyId}`);\r\n if (response.result == null || response.result.Result != 0 || response.result.Data == null) {\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result?.Message);\r\n };\r\n return ActionResult.SuccessData(response.result?.Data);\r\n } catch (e) {\r\n // Couldn't update child\r\n console.error(e);\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n };\r\n\r\n async RegisterGift(gift: AvailableGift, loyalty: IsdUserLoyalty, PerfAchievementId: number, kind?: number): Promise {\r\n let client: RestClient = this.CreateRestClient();\r\n\r\n let type = kind == 1 ? \"coupon\" : \"gift\"\r\n let url = `/account/api/loyalty/isd/${type}/register`;\r\n let data = kind == 1 ? {\r\n CshdId: gift.CshdId,\r\n PerfAchievementId: PerfAchievementId,\r\n TnodId: gift.TnodId,\r\n UserLoyaltyId: loyalty.Id,\r\n CouponId: gift.Id,\r\n TCoupId: gift.TcoupId,\r\n } : {\r\n CshdId: gift.CshdId,\r\n PerfAchievementId: PerfAchievementId,\r\n TnodId: gift.TnodId,\r\n UserLoyaltyId: loyalty.Id,\r\n GiftId: gift.Id,\r\n };\r\n\r\n let register = await client.create>(url, data);\r\n if (register.statusCode == 200 && register.result && register.result.Result == 0)\r\n return ActionResult.Success();\r\n else\r\n return ActionResult.FailedData(ErrorTypes.InternalError, register.result!.Message!);\r\n };\r\n\r\n\r\n async GetAccountBalanceAsync(tnodid: number, personId: number, loyaltyId: number): Promise> {\r\n try {\r\n let client: RestClient = this.CreateRestClient();\r\n let response = await client.get>('/account/api/loyalty/isd/account/balance/?loyaltyId=' + loyaltyId + '&personId=' + personId + '&tnodid=' + tnodid);\r\n if (response.result != null && response.result.Result != 0) {\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n };\r\n return ActionResult.SuccessData(response.result?.Data);\r\n } catch (e) {\r\n console.error(e);\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n };\r\n }; \r\n\r\n\r\n private async notification(sender: any, e: NotificationEventArgs): Promise {\r\n if (e.Data.Type == NotificationTypes.System) {\r\n if (e.Data.SystemProcessKey == 'SaleComplete') {\r\n DefaultLoyaltyProvider._this._currentUserLoyalty = undefined;\r\n DefaultLoyaltyProvider._this.GetIsdUserLoyaltyAsync();\r\n };\r\n };\r\n };\r\n};\r\n\r\nclass AjaxResult {\r\n Result: number = 0;\r\n Message: string = '';\r\n Data?: T;\r\n};","module.exports = \"\\r\\n\\r\\n\\r\\n \\r\\n {{ Seat.PlaceName }}\\r\\n\\r\\n\";","import Vue, { VueConstructor, PropOptions } from 'vue';\r\nimport { Prop, DefaultProps } from \"vue/types/options\";\r\nimport WpBaseComponent from './../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport {\r\n OrderSale, ISaleService, SaleSymbols, INotificationService, NotificationSymbols, OrderStatus, IMetricsService,\r\n MetricsSymbols, BaseSystemLocalizationDictionary, PaymentSystemType\r\n} from 'web-platform-core-ui';\r\nimport { MetricsEvents } from '../../metrics-events-symbols';\r\nimport BaseUILocalizationDictionary from './../../Localization/base-ui-localization-terms';\r\nimport { __await } from 'tslib';\r\n\r\nexport const wpCompleteProps = Vue.extend({\r\n props: {\r\n OrderId: Number,\r\n SbpDialog: {\r\n type: Boolean,\r\n default: false\r\n }\r\n }\r\n})\r\n\r\n@Component({ \r\n template: require(\"./wp-complete.html\")\r\n})\r\nexport default class WpComplete extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpCompleteProps, Vue) {\r\n protected _refreshOrderFunc: any;\r\n protected _service!: ISaleService;\r\n protected _notificationService!: INotificationService;\r\n _metricsService!: IMetricsService;\r\n\r\n Order: OrderSale = new OrderSale();\r\n\r\n OrderLoading: boolean = true;\r\n CancelLoading: boolean = false;\r\n CancelDialog: boolean = false;\r\n BackLoading: boolean = false;\r\n ItemsPayments: Array = [];\r\n SelectedPaymentId: number = 0;\r\n WaitDialog: boolean = true;\r\n\r\n SignLink?: string = '';\r\n\r\n CardDiscountConditionError: boolean = false;\r\n\r\n Back() {\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetRestart, this.OrderId);\r\n\r\n this.$emit('Back');\r\n }\r\n\r\n Cancel() {\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetCompleteWaitingCancel, this.OrderId);\r\n\r\n this.CancelDialog = false;\r\n this.CancelLoading = true;\r\n this.$emit('Cancel');\r\n }\r\n\r\n async mounted() {\r\n this.OrderLoading = true;\r\n this.WaitDialog = !this.SbpDialog;\r\n this._service = await this.GlobalService.Get(SaleSymbols.SaleService);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n this._metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetReturnFromPayment, this.OrderId);\r\n\r\n await this.GetOrder();\r\n\r\n this.OrderLoading = false;\r\n\r\n this.BackLoading = false;\r\n }\r\n\r\n async GetOrder() {\r\n let order = await this._service.GetOrderAsync(this.OrderId);\r\n\r\n if (order.Success && order.Data != null) {\r\n this.Order = order.Data;\r\n let wpComplete = this;\r\n\r\n if (this.Order.Status == OrderStatus.Locked) {\r\n await this.SetPaymentsList();\r\n\r\n this._refreshOrderFunc = setInterval(async () => {\r\n let order = await wpComplete._service.GetOrderAsync(wpComplete.Order.Id);\r\n\r\n if (order.Success && order.Data != null) {\r\n wpComplete.Order = order.Data;\r\n\r\n if (wpComplete.Order.Status != OrderStatus.Locked) {\r\n clearInterval(wpComplete._refreshOrderFunc);\r\n\r\n if (wpComplete.Order.Status == OrderStatus.Paid) {\r\n wpComplete._metricsService.RegistrateEvent(MetricsEvents.WidgetCompleteSuccess, this.OrderId);\r\n let linkToOrder = await wpComplete._service.GetSignLinkToOrderAsync(this.Order.Id);\r\n this.SignLink = linkToOrder.Success && linkToOrder.Data != null ? linkToOrder.Data : '';\r\n } else {\r\n if (this.Order.DiscountProgramId != null) {\r\n let discountPrograms = await this._service.GetDiscountProgramsAsync();\r\n let discountProgram = discountPrograms.Data?.find(x => x.Id == this.Order.DiscountProgramId);\r\n\r\n this.CardDiscountConditionError = discountProgram != null && discountProgram.Conditions != null &&\r\n discountProgram.Conditions.length > 0 && discountProgram.Conditions.some(x => x.DiscountConditionType == 1);\r\n }\r\n\r\n wpComplete._metricsService.RegistrateEvent(MetricsEvents.WidgetCompleteCancel, this.OrderId);\r\n }\r\n\r\n wpComplete._notificationService.SendSystemNotification('SaleComplete');\r\n parent.postMessage({ status: 'completed', data: { order_id: this.OrderId } }, '*');\r\n this.WaitDialog = false;\r\n }\r\n } else {\r\n wpComplete._notificationService.Error(\"Ошибка\", order.ErrorMessage ? order.ErrorMessage : \"Непредвиденная ошибка\");\r\n }\r\n }, 5000);\r\n } else {\r\n\r\n if (this.Order.Status == OrderStatus.Paid) {\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetCompleteSuccess, this.OrderId);\r\n let linkToOrder = await wpComplete._service.GetSignLinkToOrderAsync(this.Order.Id);\r\n this.SignLink = linkToOrder.Success && linkToOrder.Data != null ? linkToOrder.Data : '';\r\n } else {\r\n if (this.Order.DiscountProgramId != null) {\r\n let discountPrograms = await this._service.GetDiscountProgramsAsync();\r\n let discountProgram = discountPrograms.Data?.find(x => x.Id == this.Order.DiscountProgramId);\r\n\r\n this.CardDiscountConditionError = discountProgram != null && discountProgram.Conditions != null &&\r\n discountProgram.Conditions.length > 0 && discountProgram.Conditions.some(x => x.DiscountConditionType == 1);\r\n }\r\n\r\n this._metricsService.RegistrateEvent(MetricsEvents.WidgetCompleteCancel, this.OrderId);\r\n }\r\n\r\n this._notificationService.SendSystemNotification('SaleComplete');\r\n this.WaitDialog = false;\r\n }\r\n }\r\n else {\r\n this.WaitDialog = false;\r\n\r\n this._notificationService.Error(this.Terms.GenericError, order.ErrorMessage ? order.ErrorMessage : this.Terms.InternalError);\r\n }\r\n }\r\n\r\n Pay() {\r\n this.$emit(\"PayClick\", this.SelectedPaymentId, this.ItemsPayments.find(x => x.id == this.SelectedPaymentId).type)\r\n }\r\n\r\n async SetPaymentsList() {\r\n this.ItemsPayments = [];\r\n let payments = await this._service.GetPaymentsAsync(this.Order.Id);\r\n\r\n if (payments.Success && payments.Data != null)\r\n payments.Data = payments.Data.filter(x => x.CanResendForm);\r\n else\r\n return;\r\n\r\n if (payments.Data.length > 0) {\r\n for (let i = 0; i < payments.Data.length; i++) {\r\n let paymentData = {};\r\n if (payments.Data[i].PaymentType == PaymentSystemType.SbpSberbank)\r\n paymentData = {\r\n id: payments.Data[i].Id,\r\n icons: { type: 'img', src: 'https://static.moipass.ru/img/sfp.png' },\r\n text: this.Terms.SbpPayment,\r\n type: payments.Data[i].PaymentType\r\n };\r\n else if (payments.Data[i].PaymentType == PaymentSystemType.Account) {\r\n paymentData = {\r\n id: payments.Data[i].Id,\r\n icons: { type: 'img', src: 'https://static.moipass.ru/img/sfp.png' },\r\n text: this.Terms.AccountPayment,\r\n type: payments.Data[i].PaymentType\r\n };\r\n }\r\n else {\r\n paymentData = {\r\n id: payments.Data[i].Id,\r\n icons: { type: 'icon', src: 'mdi-credit-card-outline' },\r\n text: `${this.Terms.CardPayment} - ${this.GetPaymentName(payments.Data[i].PaymentType)}`,\r\n type: payments.Data[i].PaymentType\r\n };\r\n }\r\n\r\n this.ItemsPayments.push(paymentData);\r\n\r\n if (payments.Data[i].IsBasePayment)\r\n this.SelectedPaymentId = payments.Data[i].Id;\r\n };\r\n }\r\n }\r\n\r\n GetPaymentName(paymentType: PaymentSystemType) {\r\n switch (paymentType) {\r\n case PaymentSystemType.AlfaBank:\r\n return this.Terms.AlfaBank;\r\n case PaymentSystemType.Gazprombank:\r\n return this.Terms.Gazprombank;\r\n case PaymentSystemType.Kazkombank:\r\n return this.Terms.Kazkombank;\r\n case PaymentSystemType.PayOnline:\r\n return this.Terms.PayOnline;\r\n case PaymentSystemType.Payu:\r\n return this.Terms.Payu;\r\n case PaymentSystemType.RfiBank:\r\n return this.Terms.RfiBank;\r\n case PaymentSystemType.RosEuroBank:\r\n return this.Terms.RosEuroBank;\r\n case PaymentSystemType.Sberbank:\r\n return this.Terms.Sberbank;\r\n case PaymentSystemType.SovkomBank:\r\n return this.Terms.SovkomBank;\r\n case PaymentSystemType.Test:\r\n return this.Terms.Test;\r\n case PaymentSystemType.Yandex:\r\n return this.Terms.Yandex;\r\n case PaymentSystemType.Account:\r\n return this.Terms.Account;\r\n }\r\n\r\n return '';\r\n }\r\n\r\n SetBackLoading(backloading: boolean) {\r\n this.BackLoading = backloading;\r\n }\r\n}\r\n\r\nexport class WpCompleteDictionary extends BaseUILocalizationDictionary {\r\n AwaitingResult: string = '';\r\n BackToServiceList: string = '';\r\n ThankYouForPurchase: string = '';\r\n ConfirmRefusalToWait: string = '';\r\n StartOver: string = '';\r\n FatalError: string = '';\r\n YourOrderNo: string = '';\r\n YourOrderStatusOK: string = '';\r\n YourOrderStatusCanceled: string = '';\r\n CardDiscountConditionError: string = '';\r\n CardPayment: string = 'Оплата картой';\r\n SbpPayment: string = 'Оплата через СБП';\r\n GenericPay: string = 'Оплатить';\r\n PayOrderTitle: string = 'Оплатить заказ №';\r\n OrderInfoLinkTitle: string = 'Просмотреть информацию по заказу, а также скачать билеты вы можете';\r\n OrderInfoLinkText: string = 'здесь';\r\n AccountPayment = 'Оплатить с лицевого счёта';\r\n\r\n Payu = 'Payu';\r\n Yandex = 'Яндекс';\r\n Sberbank = 'Сбербанк';\r\n RfiBank = 'РФИ банк';\r\n RosEuroBank = 'РосЕвроБанк';\r\n Gazprombank = 'Газпромбанк';\r\n SovkomBank = 'Совкомбанк';\r\n Kazkombank = \"Казкомерцбанк\";\r\n Test = \"Тестовая\";\r\n AlfaBank = 'Альфа-банк';\r\n PayOnline = 'Pay онлайн';\r\n Account = 'Лицевой счёт';\r\n}","export enum NotificationTypes {\r\n Info = 1,\r\n Success = 2,\r\n Warning = 3,\r\n Error = 4,\r\n System\r\n}","import { NotificationTypes } from './notification-types';\r\n\r\nexport default class WpNotification {\r\n SystemProcessKey: string = '';\r\n Title: string = '';\r\n Message: string = '';\r\n Type: NotificationTypes = NotificationTypes.Info;\r\n AdditionalData?: T;\r\n}","import WpNotification from './wp-notification';\r\n\r\nexport default class NotificationEventArgs {\r\n Data: WpNotification\r\n\r\n constructor(data: WpNotification) {\r\n this.Data = data;\r\n }\r\n}","import { WpEventHandler, WpEvent } from '../Common';\r\n\r\nimport WpNotification from './wp-notification';\r\nimport { NotificationTypes } from './notification-types';\r\nimport INotificationService from './i-notification-service';\r\nimport NotificationEventArgs from './notification-event-args';\r\nimport { injectable } from 'inversify';\r\n\r\n@injectable()\r\nexport default class DefaultNotificationService implements INotificationService {\r\n private _notificationSended: WpEventHandler =\r\n new WpEventHandler();\r\n\r\n get NotificationSended(): WpEvent {\r\n return this._notificationSended;\r\n }\r\n\r\n Success(title: string, message: string) : void {\r\n let notification = new WpNotification();\r\n\r\n notification.Title = title;\r\n notification.Message = message;\r\n notification.Type = NotificationTypes.Success;\r\n let args = new NotificationEventArgs(notification);\r\n\r\n this._notificationSended.Send(this, args);\r\n }\r\n Error(title: string, message: string): void {\r\n let notification = new WpNotification();\r\n\r\n notification.Title = title;\r\n notification.Message = message;\r\n notification.Type = NotificationTypes.Error;\r\n let args = new NotificationEventArgs(notification);\r\n\r\n this._notificationSended.Send(this, args);\r\n }\r\n\r\n SendSystemNotification(processKey: string, data?: T): void {\r\n let notification = new WpNotification();\r\n \r\n notification.AdditionalData = data;\r\n notification.SystemProcessKey = processKey;\r\n notification.Type = NotificationTypes.System;\r\n let args = new NotificationEventArgs(notification);\r\n \r\n this._notificationSended.Send(this, args);\r\n }\r\n}","export const NotificationSymbols = {\r\n NotificationService: Symbol.for(\"NotificationService\")\r\n}","import './wp-phone-confirm.scss';\r\n\r\nimport Vue, { PropOptions, VueConstructor } from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport WpBaseComponent from './../wp-base-component';\r\nimport GlobalService, {\r\n IPhoneConfirmationService, PhoneConfirmationSymbols, PhoneConfirmCode,\r\n UserPhoneConfirmBan, PhoneConfirmationService, INotificationService, NotificationSymbols, IProfileService, ProfileSymbols\r\n} from 'web-platform-core-ui';\r\nimport { ActionResult, ErrorTypes } from 'web-platform-core-ui/src/Common';\r\nimport { Ref } from 'vue-property-decorator';\r\nimport BaseUILocalizationDictionary from '../Localization/base-ui-localization-terms';\r\nimport { DefaultProps } from 'vue/types/options';\r\n\r\nexport const wpPhoneConfirmProps = Vue.extend({\r\n props: {\r\n Outlined: {\r\n type: Boolean,\r\n default: false\r\n },\r\n LoyaltyPhone: {\r\n type: String,\r\n default : ''\r\n }\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-phone-confirm.html\")\r\n})\r\nexport default class WpPhoneConfirm extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpPhoneConfirmProps, Vue) {\r\n _phoneConfirmationService!: IPhoneConfirmationService;\r\n _notificationService!: INotificationService;\r\n _profileService!: IProfileService;\r\n\r\n @Ref('PhoneForm') _phoneForm!: HTMLFormElement;\r\n @Ref('CodeForm') _codeForm!: HTMLFormElement;\r\n\r\n StepEnterPhone: boolean = false;\r\n StepEnterCode: boolean = false;\r\n\r\n IsSendingPhone: boolean = false;\r\n IsSendingCode: boolean = false;\r\n\r\n PhoneValid: boolean = false;\r\n CodeValid: boolean = false;\r\n\r\n get PhoneRules() {\r\n return [\r\n (v: string) => (/^(\\s*)?(\\+)?([- _():=+]?\\d[- _():=+]?){11,14}(\\s*)?$/.test(v)) || this.Terms.PhoneRequiredError\r\n ];\r\n }\r\n get CodeRules() {\r\n return [\r\n (v: string) => (/^\\d{4}$/).test(v) && v.length === 4 || this.Terms.CodeRequiredError\r\n ];\r\n }\r\n\r\n PhoneFocus(): void {\r\n if (this.Phone === '') {\r\n this.Phone = '+7(';\r\n }\r\n }\r\n\r\n Error: string = '';\r\n\r\n Phone: string = '';\r\n CurrentPhone: string = '';\r\n Code: string = '';\r\n CodeId: number = 0;\r\n\r\n created() {\r\n this._phoneConfirmationService = this.GlobalService.Get(PhoneConfirmationSymbols.PhoneConfirmationService);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n\r\n this._profileService = this.GlobalService.Get(ProfileSymbols.ProfileService);\r\n }\r\n async mounted() {\r\n\r\n let loyaltyPhone = this.LoyaltyPhone;\r\n if (loyaltyPhone != null && loyaltyPhone != '') {\r\n this.Phone = loyaltyPhone;\r\n this.IsSendingPhone = true;\r\n let result = await this._phoneConfirmationService.SendCodeAsync(this.Phone);\r\n\r\n if (result.Success) {\r\n this.StepEnterPhone = false;\r\n\r\n if (result.Data!.Id !== undefined) {\r\n\r\n this.CodeId = result.Data!.Id;\r\n\r\n let codeLeftTimeAsync = await this.CodeLeftTimeAsync(result.Data!.Id);\r\n if (codeLeftTimeAsync.Success) {\r\n this.CurrentPhone = this.Phone;\r\n if (this._phoneForm)\r\n this._phoneForm.reset();\r\n this.TimerValue = codeLeftTimeAsync.Data;\r\n this.TimerActive = true;\r\n this.ResendActive = false;\r\n this.TimerStart();\r\n this.StepEnterCode = true;\r\n this.IsSendingPhone = false;\r\n }\r\n }\r\n else {\r\n this._notificationService.Error('Ошибка', this.Terms.InternalError);\r\n\r\n this.IsSendingPhone = false;\r\n }\r\n }\r\n else {\r\n if (result.ErrorType == ErrorTypes.InvalidData)\r\n this._notificationService.Error('Ошибка', this.Terms.SomeOneElsePhoneError);\r\n else\r\n this._notificationService.Error('Ошибка', result.ErrorMessage != null ? result.ErrorMessage : this.Terms.InternalError);\r\n\r\n this.IsSendingPhone = false;\r\n\r\n this.$emit('code-confirm', { CodeId: this.CodeId, Phone: this.CurrentPhone, Error: true });\r\n }\r\n return;\r\n }\r\n\r\n let getCurrentBanAsync = await this._phoneConfirmationService.GetCurrentBanAsync();\r\n if (!getCurrentBanAsync.Success) {\r\n return;\r\n }\r\n\r\n if (getCurrentBanAsync.Data) {\r\n this.Error = this.Terms.TryCountError + ' ' + this.DateHandler.Parse(getCurrentBanAsync.Data.ExpireDate).Format('DD.MM.YYYY HH:mm');\r\n return;\r\n }\r\n\r\n let getCurrentCodeAsync = await this._phoneConfirmationService.GetCurrentCodeAsync();\r\n if (!getCurrentCodeAsync.Success) {\r\n return;\r\n }\r\n\r\n if (getCurrentCodeAsync.Data == null) {\r\n let profile = await this._profileService.GetProfileAsync();\r\n if (profile.Data != null && profile.Data?.Phone !== null && profile.Data?.Phone != '') {\r\n this.Phone = profile.Data!.Phone;\r\n this.CurrentPhone = profile.Data!.Phone;\r\n\r\n this.$emit('code-confirm', { CodeId: this.CodeId, Phone: this.CurrentPhone });\r\n }\r\n this.StepEnterPhone = true;\r\n this.StepEnterCode = false;\r\n return;\r\n }\r\n\r\n if (getCurrentCodeAsync.Data != null && getCurrentCodeAsync.Data.Phone !== undefined\r\n && getCurrentCodeAsync.Data?.Id !== undefined) {\r\n\r\n await this.CancelCodeAsync();\r\n this.CurrentPhone = getCurrentCodeAsync.Data.Phone;\r\n this.CodeId = getCurrentCodeAsync.Data?.Id;\r\n\r\n let codeLeftTimeAsync = await this.CodeLeftTimeAsync(getCurrentCodeAsync.Data?.Id);\r\n if (codeLeftTimeAsync.Success) {\r\n this.TimerValue = codeLeftTimeAsync.Data;\r\n this.TimerActive = true;\r\n this.TimerStart();\r\n\r\n this.ResendActive = false;\r\n this.StepEnterCode = true;\r\n }\r\n }\r\n }\r\n\r\n async PhoneFormSubmit(e: any) {\r\n e.preventDefault();\r\n await this.SendCodeAsync();\r\n }\r\n\r\n async SendCodeAsync() {\r\n if (!this._phoneForm.validate())\r\n return;\r\n\r\n this.IsSendingPhone = true;\r\n let result = await this._phoneConfirmationService.SendCodeAsync(this.Phone);\r\n\r\n if (result.Success) {\r\n this.StepEnterPhone = false;\r\n\r\n if (result.Data!.Id !== undefined) {\r\n\r\n this.CodeId = result.Data!.Id;\r\n\r\n let codeLeftTimeAsync = await this.CodeLeftTimeAsync(result.Data!.Id);\r\n if (codeLeftTimeAsync.Success) {\r\n this.CurrentPhone = this.Phone;\r\n if (this._phoneForm)\r\n this._phoneForm.reset();\r\n this.TimerValue = codeLeftTimeAsync.Data;\r\n this.TimerActive = true;\r\n this.ResendActive = false;\r\n this.TimerStart();\r\n this.StepEnterCode = true;\r\n this.IsSendingPhone = false;\r\n }\r\n }\r\n else {\r\n this._notificationService.Error('Ошибка', this.Terms.InternalError);\r\n\r\n this.IsSendingPhone = false;\r\n }\r\n }\r\n else {\r\n if (result.ErrorType == ErrorTypes.InvalidData)\r\n this._notificationService.Error('Ошибка', this.Terms.SomeOneElsePhoneError);\r\n else\r\n this._notificationService.Error('Ошибка', result.ErrorMessage != null ? result.ErrorMessage : this.Terms.InternalError);\r\n\r\n this.IsSendingPhone = false;\r\n }\r\n }\r\n\r\n async ResendCodeAsync() {\r\n this.IsSendingPhone = true;\r\n let cancelResult = await this._phoneConfirmationService.CancelCodeAsync(this.CodeId);\r\n clearInterval(this.Timer);\r\n let result = await this._phoneConfirmationService.SendCodeAsync(this.CurrentPhone);\r\n\r\n if (result.Success) {\r\n this.StepEnterPhone = false;\r\n\r\n if (result.Data!.Id !== undefined) {\r\n\r\n this.CodeId = result.Data!.Id;\r\n\r\n let codeLeftTimeAsync = await this.CodeLeftTimeAsync(result.Data!.Id);\r\n if (codeLeftTimeAsync.Success) {\r\n this._phoneForm.reset();\r\n this.TimerValue = codeLeftTimeAsync.Data;\r\n this.TimerActive = true;\r\n this.ResendActive = false;\r\n this.TimerStart();\r\n this.StepEnterCode = true;\r\n this.IsSendingPhone = false;\r\n }\r\n }\r\n else {\r\n this._notificationService.Error('Ошибка', this.Terms.InternalError);\r\n\r\n this.IsSendingPhone = false;\r\n }\r\n }\r\n else {\r\n this._notificationService.Error('Ошибка', result.ErrorMessage != null ? result.ErrorMessage : this.Terms.InternalError);\r\n\r\n this.IsSendingPhone = false;\r\n }\r\n }\r\n\r\n async CodeLeftTimeAsync(codeId: number): Promise> {\r\n\r\n let result = await this._phoneConfirmationService.CodeLeftTimeAsync(codeId);\r\n if (result.Success) {\r\n this.StepEnterCode = true;\r\n this.StepEnterPhone = false;\r\n }\r\n else {\r\n this._notificationService.Error('Ошибка', result.ErrorMessage != null ? result.ErrorMessage : this.Terms.InternalError);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n async CodeFormSubmit(e: any) {\r\n e.preventDefault();\r\n await this.ConfirmCodeAsync();\r\n }\r\n async ConfirmCodeAsync() {\r\n if (!this._codeForm.validate())\r\n return;\r\n\r\n this.IsSendingCode = true;\r\n\r\n let result = await this._phoneConfirmationService.ConfirmCodeAsync(this.Code);\r\n if (result.Success) {\r\n this._codeForm.reset();\r\n\r\n this.StepEnterCode = false;\r\n this.StepEnterPhone = true;\r\n this.IsSendingCode = false;\r\n this.$emit('code-confirm', { CodeId: this.CodeId, Phone: this.CurrentPhone });\r\n }\r\n else if (result.ErrorMessage !== undefined) {\r\n this.Code = '';\r\n this.IsSendingCode = false;\r\n this._notificationService.Error('Ошибка', result.ErrorMessage);\r\n }\r\n\r\n }\r\n async CancelCodeAsync(): Promise {\r\n this.CurrentPhone = '';\r\n\r\n this.IsSendingPhone = false;\r\n this.StepEnterCode = false;\r\n\r\n let result = await this._phoneConfirmationService.CancelCodeAsync(this.CodeId);\r\n if (result.Success) {\r\n this.StepEnterPhone = true;\r\n clearInterval(this.Timer);\r\n }\r\n else {\r\n this.StepEnterPhone = true;\r\n this._notificationService.Error('Ошибка', this.Terms.InternalError);\r\n }\r\n return result;\r\n }\r\n\r\n TimerActive: boolean = false;\r\n TimerValue: number | undefined = 0;\r\n Timer: any;\r\n\r\n TimerStart(): void {\r\n let _this = this;\r\n if (this.Timer != undefined)\r\n clearInterval(this.Timer);\r\n this.Timer = setInterval(function () {\r\n if (_this.TimerValue !== undefined) {\r\n if (_this.TimerValue <= 1) {\r\n _this.TimerValue = 0;\r\n _this.TimerActive = false;\r\n _this.ResendActive = true;\r\n clearInterval(_this.Timer);\r\n }\r\n else {\r\n _this.TimerValue--;\r\n }\r\n }\r\n }, 1000);\r\n }\r\n ResendActive: boolean = false;\r\n\r\n IsNumber(evt: any): boolean {\r\n evt = (evt) ? evt : window.event;\r\n var charCode = (evt.which) ? evt.which : evt.keyCode;\r\n console.log(charCode);\r\n if ((charCode > 31 && (charCode < 48 || charCode > 57)) && charCode !== 46) {\r\n evt.preventDefault();\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n}\r\n\r\nexport class WpPhoneConfirmDictionary extends BaseUILocalizationDictionary {\r\n TryCountError: string = 'Слишком много попыток. Попробуйте после';\r\n CodeRequiredError: string = 'Введите код';\r\n PhoneRequiredError: string = 'Заполните номер до конца';\r\n PhoneLblText: string = 'Введите номер телефона';\r\n SendSMSBtnText: string = 'Выслать SMS';\r\n CodeSendedMessage: string = 'Код выслан на номер';\r\n AnotherPhoneLink: string = 'другой номер';\r\n CodeLblText: string = 'Введите код';\r\n SendAgainLink: string = 'Отправить повторно';\r\n TimeoutResendMessage: string = 'Повторно вы сможете запросить код через';\r\n TimeoutSecondsMessage: string = 'сек.';\r\n ConfirmCodeBtnText: string = 'подтвердить';\r\n SomeOneElsePhoneError: string = 'Данный телефон зарегистрирован на другого пользователя';\r\n}\r\n","import ReservationItem from './reservation-item';\r\n\r\nexport default class ReservationData {\r\n public UserId: string = \"\";\r\n public PersonId?: number | null;\r\n\r\n public Items: Array = new Array();\r\n}","export default class IdentityLoginState {\r\n public static IsResetPassword: boolean = true;\r\n public static IsLoginShow: boolean = false;\r\n\r\n}","import { injectable } from 'inversify';\r\n\r\nimport { RestClient } from 'typed-rest-client';\r\nimport { ActionResult, ErrorTypes } from './../Common';\r\nimport IPhoneConfirmationProvider from './../PhoneConfirm/i-phone-confirmation-provider';\r\nimport { UserPhoneConfirmBan } from './../PhoneConfirm';\r\nimport PhoneConfirmCode from './../PhoneConfirm/phone-confirm-code';\r\nimport IdentityLoginState from './identity-login-state';\r\nimport GlobalService from '../Global/global-service';\r\nimport { AppSettings } from '../Global/app-settings';\r\n\r\n@injectable()\r\nexport default class IndentityPhoneConfirmationProvider implements IPhoneConfirmationProvider {\r\n private _settings: AppSettings;\r\n\r\n constructor() {\r\n this._settings = GlobalService.GetSettings();\r\n }\r\n\r\n async GetCurrentBanAsync(): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"session-id\": this._settings.SessionId,\r\n \"wp.language\": this._settings.Locale\r\n }\r\n });\r\n\r\n let response = await client.get>(`/idsrv/phoneconfirmation/currentban`);\r\n\r\n if (response.result != null && response.result.Result != 'ok')\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Content);\r\n\r\n return ActionResult.SuccessData(response.result?.Content);\r\n }\r\n\r\n async GetCurrentCodeAsync(): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"session-id\": this._settings.SessionId,\r\n \"wp.language\": this._settings.Locale\r\n }\r\n });\r\n\r\n let response = await client.get>(`/idsrv/phoneconfirmation/currentcode`);\r\n\r\n if (response.result != null && response.result.Result != 'ok')\r\n return ActionResult.FailedData(ErrorTypes.InternalError, response.result?.Content);\r\n\r\n return ActionResult.SuccessData(response.result?.Content);\r\n }\r\n\r\n async SendCodeAsync(phone: string): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"session-id\": this._settings.SessionId,\r\n \"wp.language\": this._settings.Locale\r\n }\r\n });\r\n\r\n let response = await client.create>(`/idsrv/phoneconfirmation/${IdentityLoginState.IsResetPassword ? 'resetsendcode' : 'sendcode'}`, { Phone: phone, OrganizationId: this._settings.CurrentSite?.OrganizationId });\r\n\r\n if (response.result != null && response.result.Result != 'ok')\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Content);\r\n }\r\n\r\n async ConfirmCodeAsync(code: string): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"session-id\": this._settings.SessionId,\r\n \"wp.language\": this._settings.Locale\r\n }\r\n });\r\n\r\n let response = await client.create>(`/idsrv/phoneconfirmation/confirmcode`, { code: code });\r\n\r\n if (response.result != null && response.result.Result != 'ok')\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Content);\r\n }\r\n\r\n async CodeLeftTimeAsync(codeId: number): Promise> {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"session-id\": this._settings.SessionId,\r\n \"wp.language\": this._settings.Locale\r\n }\r\n });\r\n\r\n let response = await client.get>(`/idsrv/phoneconfirmation/codelefttime/${codeId}`);\r\n\r\n if (response.result != null && response.result.Result != 'ok')\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Content);\r\n }\r\n\r\n async CancelCodeAsync(codeId: number): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"session-id\": this._settings.SessionId,\r\n \"wp.language\": this._settings.Locale\r\n }\r\n });\r\n\r\n let response = await client.create>(`/idsrv/phoneconfirmation/cancelcode`, { Id: codeId });\r\n\r\n if (response.result != null && response.result.Result != 'ok')\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n\r\n return ActionResult.SuccessData(response.result?.Content);\r\n }\r\n}\r\n\r\n\r\nclass AjaxResult {\r\n Result: string = '';\r\n Message: string = '';\r\n Content?: T;\r\n}","import IProfileProvider from './../Profile/i-profile-provider';\r\nimport UserProfile from './../Profile/user-profile';\r\nimport { ActionResult } from './../Common';\r\nimport { injectable } from 'inversify';\r\n\r\n\r\n@injectable()\r\nexport default class FakeProfileProvider implements IProfileProvider {\r\n async ChangePasswordAsync(oldPassword: string, newPassword: string, confirmPassword: string): Promise> {\r\n return ActionResult.Success();\r\n }\r\n async ChangeEmailAsync(email: string): Promise> {\r\n return ActionResult.Success();\r\n }\r\n async SetPhoneAsync(phone: string): Promise> {\r\n return ActionResult.Success();\r\n }\r\n async GetProfileAsync(): Promise> {\r\n return ActionResult.SuccessData(undefined);\r\n }\r\n\r\n async EditProfileAsync(profile: UserProfile): Promise { \r\n return ActionResult.Success();\r\n }\r\n\r\n}","import { RestClient } from 'typed-rest-client';\r\nimport { ActionResult, ErrorTypes } from './../Common';\r\nimport { AppSettings } from '../Global/app-settings';\r\nimport GlobalService from '../Global/global-service';\r\n\r\nexport default class IdentityAccountProvider {\r\n private _settings: AppSettings;\r\n\r\n constructor() {\r\n this._settings = GlobalService.GetSettings();\r\n }\r\n\r\n async ResetPasswordByPhone(newPassword: string, confirmPassword: string): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"session-id\": this._settings.SessionId,\r\n \"wp.language\": this._settings.Locale\r\n }\r\n });\r\n\r\n let response = await client.create>(`/idsrv/account/resetpasswordbyphone`, { NewPassword: newPassword, ConfirmPassword: confirmPassword });\r\n\r\n if (response.statusCode == 404)\r\n return ActionResult.Failed(ErrorTypes.NotFoundData, \"Срок действия кода истек, попробуйте повторить попытку\");\r\n\r\n if (response.result != null && response.result.Result != 'ok') {\r\n if (response.result.Result == 'invalid_data')\r\n return ActionResult.Failed(ErrorTypes.InvalidData, response.result.Message);\r\n\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n }\r\n\r\n return ActionResult.SuccessData();\r\n }\r\n\r\n async ResetPasswordByEmail(email: string, organizationId: number): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"session-id\": this._settings.SessionId,\r\n \"wp.language\": this._settings.Locale\r\n }\r\n });\r\n\r\n let response = await client.create>(`/idsrv/account/resetpasswordbyemail`, { Email: email, OrganizationId: organizationId });\r\n\r\n if (response.result != null && response.result.Result != 'ok') {\r\n if (response.result.Result == 'invalid_data')\r\n return ActionResult.Failed(ErrorTypes.InvalidData, response.result.Message);\r\n\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n }\r\n return ActionResult.SuccessData();\r\n }\r\n\r\n async Registration(email: string, password: string, confirmPassword: string, organizationId: number): Promise {\r\n let client: RestClient = new RestClient('wp-app', window.location.origin, [], {\r\n headers: {\r\n \"session-id\": this._settings.SessionId,\r\n \"wp.language\": this._settings.Locale\r\n }\r\n });\r\n\r\n let response = await client.create>(`/idsrv/account/registration`, { Email: email, Password: password, ConfirmPassword: confirmPassword, OrganizationId: organizationId });\r\n\r\n if (response.statusCode == 404)\r\n return ActionResult.Failed(ErrorTypes.NotFoundData, \"Срок действия кода истек, попробуйте повторить попытку\");\r\n\r\n if (response.result != null && response.result.Result != 'ok') {\r\n if (response.result.Result == 'invalid_data')\r\n return ActionResult.Failed(ErrorTypes.InvalidData, response.result.Message);\r\n\r\n return ActionResult.Failed(ErrorTypes.InternalError, response.result.Message);\r\n }\r\n\r\n return ActionResult.SuccessData();\r\n }\r\n}\r\n\r\n\r\nclass AjaxResult {\r\n Result: string = '';\r\n Message: string = '';\r\n Data?: T;\r\n}","import { AppSettings } from './../Global/app-settings';\r\nimport { Localization } from '../Localization';\r\n\r\nexport default class IdentityServerAppSettings extends AppSettings {\r\n get Localization(): Localization {\r\n let localeInput = document.getElementById(\"locale\");\r\n\r\n if (localeInput != null) {\r\n let locale = localeInput.getAttribute(\"value\") ?? 'ru';\r\n try {\r\n return locale;\r\n } catch {\r\n return Localization.RU;\r\n }\r\n\r\n } else {\r\n return Localization.RU;\r\n }\r\n }\r\n}","import Vue from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, {\r\n AppSettings, ITariffService, TariffSymbols, TariffCartItem, Cart, TariffsBundle, BundleCartItem, Tariff,\r\n TariffSale, TariffSeance, ITariffCapacityService, TariffCapacity, ICartService, CartSymbols, CartItemTypes\r\n} from 'web-platform-core-ui';\r\nimport { Prop, DefaultProps } from 'vue/types/options';\r\nimport { Watch } from 'vue-property-decorator';\r\nimport { VueConstructor } from 'vue/types/umd';\r\nimport BaseUILocalizationDictionary from './../../../Localization/base-ui-localization-terms';\r\n\r\nexport const wpTariffBundleProp = Vue.extend({\r\n props: {\r\n Id: String,\r\n Bundle: Object as Prop,\r\n Date: String,\r\n Cart: Object as Prop,\r\n Seance: Object as Prop,\r\n UIActive: Boolean\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-tariff-bundle.html\")\r\n})\r\nexport default class WpTariffBundle extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpTariffBundleProp, Vue) {\r\n private _tariffCapacityService!: ITariffCapacityService;\r\n private _cartService!: ICartService;\r\n private _tariffService!: ITariffService;\r\n Settings!: AppSettings;\r\n\r\n Items: Array = [];\r\n TariffsSales: Array = [];\r\n TariffsCapacity: Array = [];\r\n\r\n BundleAvailable: boolean = false;\r\n BundleLoading: boolean = false;\r\n CartMaxItems: number = 6;\r\n\r\n created(): void {\r\n this.Settings = GlobalService.GetSettings();\r\n this.CartMaxItems = this.Settings.CartMaxItems;\r\n\r\n this._tariffService = this.GlobalService.Get(TariffSymbols.TariffService);\r\n this._tariffCapacityService = this.GlobalService.Get(TariffSymbols.TariffCapacityService);\r\n this._cartService = this.GlobalService.Get(CartSymbols.CartService);\r\n };\r\n\r\n async mounted(): Promise {\r\n await this.GetTariffsPrice();\r\n };\r\n\r\n \r\n @Watch('Date')\r\n DateChanged(_val: string, _oldVal: string) {\r\n this.GetTariffsPrice();\r\n };\r\n \r\n\r\n get Amount(): number {\r\n return this.Bundle.Tariffs.length;\r\n };\r\n\r\n get SeanceTime(): string | undefined {\r\n if (this.Seance != null && this.Seance.SeanceValue != null && this.Seance.SeanceValue != '')\r\n return this.Seance.SeanceValue.split(' ', 1)[0];\r\n };\r\n\r\n AddToCart(): void {\r\n let sales: Array = [];\r\n let capacity: Array = [];\r\n this.Items.forEach(x => {\r\n sales.push(x.sale);\r\n capacity.push(x.capacity);\r\n });\r\n let cartItem = new BundleCartItem(this.Bundle, this.Date, this.Price, sales, capacity, this.Seance);\r\n this.$emit('addtocart', cartItem);\r\n };\r\n\r\n get Price() {\r\n // Пересчитаем цену\r\n return this.Items.reduce((a, item) => { return item.tariffPrice! + a }, 0);\r\n };\r\n\r\n async GetTariffsPrice(): Promise {\r\n this.BundleLoading = true;\r\n this.BundleAvailable = false;\r\n this.TariffsSales = [];\r\n this.TariffsCapacity = [];\r\n this.Items = [];\r\n\r\n let currentCartItem: BundleCartItem | undefined;\r\n let cart = await this._cartService.GetCurrentOrCreateCartAsync();\r\n\r\n cart.Items.forEach(x => {\r\n if (x.Type == CartItemTypes.Bundle) {\r\n let cartItem = x as BundleCartItem;\r\n if (this.Seance != null && cartItem.Seance != null &&\r\n cartItem.Bundle.Id == this.Bundle.Id &&\r\n cartItem.Date == this.Date &&\r\n cartItem.Seance.SeanceId == this.Seance.SeanceId) {\r\n currentCartItem == cartItem;\r\n } else {\r\n if (cartItem.Seance == null && cartItem.Bundle.Id == this.Bundle.Id && cartItem.Date == this.Date)\r\n currentCartItem == cartItem;\r\n };\r\n };\r\n });\r\n\r\n for (let i = 0; i < this.Bundle.Tariffs.length; i++) {\r\n let tariffSale = new TariffSale();\r\n let tariffCapacity: TariffCapacity | undefined;\r\n let maxCount = 0;\r\n let useCapacity = false;\r\n let tariffPrice;\r\n\r\n let tariff: Tariff = this.Bundle.Tariffs[i];\r\n\r\n let result = await this._tariffService.GetTariffPrice(this.Date, tariff.Id, tariff.HaveSeance ? this.Seance?.SeanceId : \"0\");\r\n\r\n // Если удалось получить цену, и она не undefined (не найдена) и не null (не доступна)\r\n if (result.Success && result.Data !== undefined && result.Data !== null) {\r\n tariffPrice = result.Data;\r\n this.BundleAvailable = true;\r\n } else {\r\n this.BundleAvailable = false;\r\n break;\r\n };\r\n\r\n if (tariff.Quota != null) {\r\n let sales = await this._tariffService.GetSingleTariffSalesAsync(this.Date, tariff, this.Seance?.SeanceId);\r\n if (sales.Success && sales.Data != null) {\r\n let sale = this.TariffsSales.find(x => x.Id == `${tariff.Id}_${this.Date}_${this.Seance?.SeanceId}`);\r\n\r\n tariffSale = sales.Data;\r\n\r\n if (sale != null) {\r\n sale.Coefficient++;\r\n } else {\r\n sale = { Id: `${tariff.Id}_${this.Date}_${this.Seance?.SeanceId}`, Sale: tariffSale, Coefficient: 1 };\r\n this.TariffsSales.push(sale);\r\n };\r\n };\r\n };\r\n\r\n if (tariff.ShowLeftTicketCount) {\r\n if (tariff.HaveSeance === true && this.Seance != null && tariff.Quota == null) {\r\n let capacity = await this._tariffCapacityService.GetCapacityAsync(tariff.Id, this.Date, this.Seance.SeanceId);\r\n\r\n if (capacity.Success && capacity.Data != null) {\r\n let existCapacity = this.TariffsCapacity.find(x => x.Id == `${capacity.Data?.ZoneId}_${this.Date}_${this.Seance?.SeanceId}`);\r\n\r\n if (existCapacity != null) {\r\n existCapacity.Coefficient++;\r\n } else {\r\n existCapacity = { Id: `${capacity.Data?.ZoneId}_${this.Date}_${this.Seance?.SeanceId}`, Capacity: capacity.Data, Coefficient: 1 };\r\n this.TariffsCapacity.push(existCapacity);\r\n };\r\n\r\n tariffCapacity = capacity.Data;\r\n maxCount = tariffCapacity.Capacity;\r\n useCapacity = true;\r\n };\r\n };\r\n\r\n if (tariffCapacity == null && tariff.Quota == null) {\r\n this.BundleAvailable = false;\r\n break;\r\n };\r\n\r\n if (tariffSale.Quota != null)\r\n maxCount = tariffSale.Quota;\r\n };\r\n\r\n this.Items.push({ tariff: tariff, sale: tariffSale, capacity: tariffCapacity, maxCount: maxCount, useCapacity: useCapacity, tariffPrice: tariffPrice });\r\n };\r\n\r\n // Посчитаем сколько осталось тарифов в связке\r\n let itemsLeft = 0;\r\n // Count - кол-во уже скупленных билетов. Отнимем его от максимально возможного - получим сколько осталось\r\n this.TariffsCapacity.forEach(function (e) {\r\n itemsLeft += (e.Capacity.Capacity - e.Capacity.Count);\r\n });\r\n\r\n this.BundleLoading = false;\r\n this.$emit('LoadingChange', this.Id, this.BundleLoading);\r\n this.$emit('AvailableChange', this.Id, this.BundleAvailable, itemsLeft, this.Seance?.SeanceId);\r\n };\r\n};\r\n\r\nexport class WpTariffBundleDictionary extends BaseUILocalizationDictionary {\r\n GenericItemsLeft: string = 'осталось';\r\n GenericItemsOf: string = 'из';\r\n GenericToCart: string = 'В корзину';\r\n CartIsFull: string = 'Максимальное количество элементов в корзине';\r\n NoMoreTickets: string = 'Закончились билеты';\r\n CustomService: string = 'Абонемент на 1 день для проезда и провоза велосипеда на подъемнике Олимпия (однократно) и Волчья Скала (многократно).';\r\n};\r\n\r\nclass TariffBundleItem {\r\n capacity?: TariffCapacity;\r\n maxCount?: number;\r\n sale?: TariffSale;\r\n tariff?: any;\r\n tariffPrice?: number;\r\n useCapacity?: boolean;\r\n};","module.exports = \"
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ Terms.SendSMSBtnText }}\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n

\\r\\n {{ Terms.CodeSendedMessage }}\\r\\n
\\r\\n \\r\\n
\\r\\n {{ Terms.AnotherPhoneLink }}\\r\\n

\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n {{ Terms.SendAgainLink }}\\r\\n \\r\\n \\r\\n {{ Terms.TimeoutResendMessage }} {{ Terms.TimeoutSecondsMessage }} \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n {{ Terms.ConfirmCodeBtnText }}\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\";","import Vue from 'vue';\r\nimport { Prop, DefaultProps } from \"vue/types/options\";\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { formatPrice } from 'web-platform-core-ui/src/Utility/format';\r\nimport BundleCartItem from 'web-platform-core-ui/src/Tariffs/bundle-cart-item';\r\nimport { MetricsSymbols, IMetricsService, BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\nimport { MetricsEvents } from '../../../metrics-events-symbols';\r\nimport { VueConstructor } from 'vue/types/umd';\r\n\r\nexport const wpCartBundleProps = Vue.extend({\r\n props: {\r\n CartItem: Object as Prop\r\n }\r\n})\r\n\r\n@Component({ \r\n template: require(\"./wp-cart-bundle.html\")\r\n})\r\nexport default class WpCartBundle extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpCartBundleProps, Vue) {\r\n _formatPrice = formatPrice;\r\n RemoveItem() {\r\n let metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n\r\n metricsService.RegistrateEvent(MetricsEvents.IncartRemove, this.CartItem?.MetricsId);\r\n\r\n this.$emit('RemoveItem', this.CartItem.TempId);\r\n }\r\n \r\n}\r\n\r\nexport class WpCartBundleDictionary extends BaseSystemLocalizationDictionary {\r\n // No words here... yet...\r\n}","import { VApp } from 'vuetify/lib/components/VApp';\nimport { VMain } from 'vuetify/lib/components/VMain';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.Loading)?_c(VApp,[_c(VMain,{staticClass:\"mx-0 wrap\",attrs:{\"fill-height\":\"\"}},[(!_vm.IsInitializedError)?_c('router-view'):_vm._e(),_c('wp-notification',{attrs:{\"bottom\":\"\"}})],1),_c('v-offline',{on:{\"detected-condition\":_vm.OnlineStatusChange}}),(_vm.IsOffline)?_c('wp-error'):_vm._e()],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/vuetify-loader/lib/loader.js??ref--4!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SibSaleApp.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/vuetify-loader/lib/loader.js??ref--4!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SibSaleApp.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SibSaleApp.vue?vue&type=template&id=36762145&\"\nimport script from \"./SibSaleApp.vue?vue&type=script&lang=ts&\"\nexport * from \"./SibSaleApp.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SibSaleApp.vue?vue&type=style&index=0&id=36762145&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/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 './wp-tariffs-datepicker.scss';\r\n\r\nimport Vue from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, { AppSettings, formatDateIsoToRu, BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\nimport { PropSync, Watch } from 'vue-property-decorator';\r\nimport BaseUILocalizationDictionary from './../../../Localization/base-ui-localization-terms';\r\n\r\n@Component({\r\n template: require(\"./wp-tariffs-datepicker.html\")\r\n})\r\nexport default class WpTariffsDatepicker extends mixins>(WpBaseComponent, Vue) {\r\n SessionDateRangeModal: boolean = false;\r\n TariffDatePicker: any;\r\n SessionDateRange: string = '';\r\n SessionDateRangeSub: string = '';\r\n SessionDatesVisible: boolean = true;\r\n\r\n ShowButtonVisible: boolean = true;\r\n\r\n DateRangeSub: string = '';\r\n DateRangeTitle: string = '';\r\n\r\n TimeOffset: string = '';\r\n\r\n MinDate: string = \"\";\r\n MaxDate: string = \"\";\r\n ForceDate?: Date;\r\n\r\n Today: Date = new Date();\r\n\r\n // This array stores AVAILABLE DATES\r\n allowedDatesArray: Array = [];\r\n\r\n @PropSync('settings', { type: Object }) Settings!: AppSettings;\r\n\r\n @Watch('Settings', { immediate: true })\r\n OnSettingsChange(val: AppSettings, _oldVal: AppSettings) {\r\n if (val !== undefined) this.ChangeSettings(val);\r\n };\r\n\r\n created(): void {\r\n this.Settings = GlobalService.GetSettings();\r\n this.TariffDatePicker = this.SessionDateRange = this.DateHandler.Parse(new Date()).Format(\"YYYY-MM-DD\");\r\n\r\n // Lets set default min/max dates as now and now+30 days temporaryly\r\n this.MinDate = this.DateHandler.Parse(new Date()).Format(\"YYYY-MM-DD\");\r\n this.MaxDate = this.DateHandler.Parse(new Date()).Add(\"days\", 30).Format(\"YYYY-MM-DD\");\r\n };\r\n\r\n get DatesChoosen(): string {\r\n //let date = moment(this.TariffDatePicker, 'YYYY-MM-DD').format('DD.MM.YYYY');\r\n let date = this.DateHandler.Parse(new Date(this.TariffDatePicker)).Format(\"DD.MM.YYYY\");\r\n return date;\r\n };\r\n\r\n AllowedDates(val: string): boolean {\r\n let date = this.DateHandler.Parse(new Date(val)).Format(\"DD.MM.YYYY\");\r\n //let date = moment(val, 'YYYY-MM-DD');\r\n if (this.Settings.Disableddates != undefined && this.Settings.Disableddates.length > 0) return this.Settings.Disableddates.indexOf(date) === -1;\r\n return true;\r\n };\r\n\r\n async ChangeSettings(settings: AppSettings) {\r\n this.SessionDatesVisible = !this.Settings.Nocalendar;\r\n // Берем Offset из настроек сайта (Например \"03:00:00\")\r\n this.TimeOffset = this.Settings.CurrentSite?.Offset || '';\r\n // Конвертируем в милисекунды\r\n let msOffset = this.DateHandler.ConvertToMilliseconds(this.TimeOffset);\r\n // Создаём новую дату, с учетом сдвига (Offset)\r\n let nowDate = new Date();\r\n var currentDateOffset = Date.UTC(\r\n nowDate.getUTCFullYear(),\r\n nowDate.getUTCMonth(),\r\n nowDate.getUTCDate(),\r\n nowDate.getUTCHours(),\r\n nowDate.getUTCMinutes() + nowDate.getTimezoneOffset() + (msOffset / 1000 / 60),\r\n nowDate.getUTCSeconds()\r\n );\r\n this.Today = new Date(currentDateOffset);\r\n /* Логика:\r\n * -Создаем новую дату (new Date() )\r\n * -getUTCHours например возвращает UTC+0000 часы. Т.е. если в Москве 10 (UTC+03:00), то UTCHours вернет 7\r\n * \r\n * В итоге: \r\n * В Москве 11.01.2022 - 10:50\r\n * В Аляске 10.01.2022 - 22:50\r\n * \r\n * Мы в Аляске. let d = new Date();\r\n * console.log( d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds() );\r\n * вернет 2022 0 11 7 45 7\r\n * \r\n * Date.UTC( d.getUTCFullYear(), d.getUTCMonth(), d.getUTCDate(), d.getUTCHours(), d.getUTCMinutes(), d.getUTCSeconds() )\r\n * вернет 1641887799000\r\n * \r\n * new Date(1641887799000) создаст дату и отнимет у неё 9 часов, что нормально, т.к. мы их отняли ранее\r\n * вуаля, мы получили new Date() с таймзоной this.TimeOffset\r\n */\r\n\r\n /* --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- */\r\n\r\n // This may be unnecessary\r\n if (this.Settings.Forcedate == undefined && this.Settings.Nocalendar != undefined) {\r\n this.TariffDatePicker = this.DateHandler.Parse(new Date()).Format(\"YYYY-MM-DD\");\r\n this.SessionDateRange = this.DateHandler.Parse(new Date()).Format(\"DD.MM.YYYY\");\r\n };\r\n\r\n // Новые мин/макс даты с учётом сдвига\r\n let currentDate = new Date(currentDateOffset);\r\n this.MinDate = this.DateHandler.Parse(currentDate).Format(\"YYYY-MM-DD\");\r\n this.MaxDate = this.DateHandler.Parse(currentDate).Add(\"days\", 30).Format(\"YYYY-MM-DD\");\r\n\r\n if (this.Settings.Maxdate) {\r\n let maxdate = new Date(this.Settings.Maxdate.split(\".\").reverse().join(\"-\"));\r\n this.MaxDate = this.DateHandler.Parse(new Date(this.Settings.Maxdate.split(\".\").reverse().join(\"-\"))).Format(\"YYYY-MM-DD\");\r\n\r\n if (maxdate.getTime() < currentDate.getTime()) {\r\n this.TariffDatePicker = this.DateHandler.Parse(maxdate).Format(\"YYYY-MM-DD\");\r\n this.SessionDateRange = this.DateHandler.Parse(maxdate).Format(\"DD.MM.YYYY\");\r\n };\r\n };\r\n\r\n if (this.Settings.Mindate) {\r\n let mindate = new Date(this.Settings.Mindate.split(\".\").reverse().join(\"-\"));\r\n this.MinDate = this.DateHandler.Parse(new Date(mindate)).Format(\"YYYY-MM-DD\");\r\n\r\n if (mindate.getTime() > currentDate.getTime()) {\r\n this.TariffDatePicker = this.DateHandler.Parse(mindate).Format(\"YYYY-MM-DD\");\r\n this.SessionDateRange = this.DateHandler.Parse(mindate).Format(\"DD.MM.YYYY\");\r\n };\r\n };\r\n\r\n // <- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- -> \\\\\r\n // { \"forcedate\":\"21.02.2022\" }\r\n if (this.Settings.Forcedate !== undefined) {\r\n let ForcedDate = new Date(this.Settings.Forcedate.split(\".\").reverse().join(\"/\"));\r\n\r\n if (this.DateHandler.IsValid(ForcedDate)) {\r\n let min = new Date(this.MinDate).getTime();\r\n let max = new Date(this.MaxDate).getTime();\r\n let fdt = ForcedDate.getTime();\r\n\r\n if (fdt < min) {\r\n this.TariffDatePicker = this.DateHandler.Parse(new Date(this.MinDate)).Format('YYYY-MM-DD');\r\n this.SessionDateRange = this.DateHandler.Parse(new Date(this.MinDate)).Format('DD.MM.YYYY');\r\n } else if (fdt > max) {\r\n this.TariffDatePicker = this.DateHandler.Parse(new Date(this.MaxDate)).Format('YYYY-MM-DD');\r\n this.SessionDateRange = this.DateHandler.Parse(new Date(this.MaxDate)).Format('DD.MM.YYYY');\r\n } else {\r\n this.TariffDatePicker = this.DateHandler.Parse(ForcedDate).Format('YYYY-MM-DD');\r\n this.SessionDateRange = this.DateHandler.Parse(ForcedDate).Format('DD.MM.YYYY');\r\n };\r\n //if (moment(this.MinDate, 'YYYY-MM-DD') > forcedate) forcedate = moment(this.MinDate, 'YYYY-MM-DD');\r\n } else {\r\n console.error(\"Force date is invalid\");\r\n };\r\n };\r\n\r\n this.HandleMinDate();\r\n this.HandleForceDate();\r\n this.HandleDisabledDates();\r\n\r\n // <- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- -> \\\\\r\n // Scan ALL AVAILABLE dates from MinDate to MaxDate and add allowed dates to an array\r\n // Regenerate the array. This works even in older versions of ECMA\r\n this.allowedDatesArray.length = 0;\r\n let that = this;\r\n\r\n let between = this.DateHandler.DatesBetween([new Date(this.MinDate), new Date(this.MaxDate)]);\r\n between.forEach(function (d) {\r\n let date = that.DateHandler.Parse(d);\r\n if (that.AllowedDates(date.Format(\"YYYY-MM-DD\"))) that.allowedDatesArray.push(date.Format(\"DD-MM-YYYY\"));\r\n });\r\n // <- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- --- -> \\\\\r\n\r\n if (this.allowedDatesArray.length === 0) this.$emit(\"NotAvailable\");\r\n this.HandleMaxDate();\r\n this.$emit('dateSet', this.SessionDateRange);\r\n };\r\n\r\n // If TODAY > MINDATE then MINDATE IS TODAY\r\n HandleMinDate(): void {\r\n // If MINDATE exists\r\n if (this.Settings.Mindate) {\r\n // Create a Date object from it\r\n let minDate = new Date(this.Settings.Mindate.split(\".\").reverse().join(\"/\"));\r\n // If created Date is valid\r\n if (this.DateHandler.IsValid(minDate)) {\r\n // And if today > mindate\r\n if (this.Today.getTime() > minDate.getTime()) {\r\n // mindate = today\r\n this.MinDate = this.DateHandler.Parse(this.Today).Format(\"YYYY-MM-DD\");\r\n };\r\n };\r\n };\r\n };\r\n HandleMaxDate(): void {\r\n if (this.Settings.Maxdate) {\r\n let maxDate = new Date(this.Settings.Maxdate.split(\".\").reverse().join(\"/\"));\r\n if (this.DateHandler.IsValid(maxDate)) {\r\n // Если сегодня перешло за максимальную дату - отключить календарь\r\n if (this.Today.getDate() > maxDate.getDate() &&\r\n this.Today.getMonth() >= maxDate.getMonth() &&\r\n this.Today.getFullYear() >= maxDate.getFullYear()) {\r\n this.allowedDatesArray.length = 0;\r\n this.$emit(\"NotAvailable\");\r\n };\r\n };\r\n };\r\n };\r\n // Set DatePicker date to TODAY or FORCEDATE, depending on which is bigger\r\n HandleForceDate(): void {\r\n // If we have forcedate setting in a format of \"12.09.2019\"\r\n if (this.Settings.Forcedate) {\r\n this.ForceDate = new Date(this.Settings.Forcedate.split(\".\").reverse().join(\"/\"));\r\n\r\n // If \"mindate\" setting is present\r\n if (this.Settings.Mindate) {\r\n // Create a date from it\r\n let minDate = new Date(this.Settings.Mindate.split(\".\").reverse().join(\"/\"));\r\n // If created date is valid \r\n if (this.DateHandler.IsValid(minDate)) {\r\n // and mindate is above forcedate - make forcedate equal to mindate\r\n if (minDate.getTime() > this.ForceDate.getTime()) this.ForceDate = minDate;\r\n } else {\r\n console.error(\"mindate invalid\");\r\n };\r\n };\r\n\r\n // If \"maxdate\" setting is present\r\n if (this.Settings.Maxdate) {\r\n // Create a date from it\r\n let maxDate = new Date(this.Settings.Maxdate.split(\".\").reverse().join(\"/\"));\r\n // If created date is valid \r\n if (this.DateHandler.IsValid(maxDate)) {\r\n // and mindate is above forcedate - make forcedate equal to mindate\r\n if (maxDate.getTime() < this.ForceDate.getTime()) this.ForceDate = maxDate;\r\n } else {\r\n console.error(\"maxdate invalid\");\r\n };\r\n };\r\n\r\n if (this.DateHandler.IsValid(this.ForceDate)) {\r\n // If today is further than forcedate and forcedate is valid\r\n if (this.Today.getTime() > this.ForceDate.getTime()) {\r\n // Set current date in date picker to TODAY\r\n this.TariffDatePicker = this.DateHandler.Parse(this.Today).Format(\"YYYY-MM-DD\");\r\n this.SessionDateRange = this.DateHandler.Parse(this.Today).Format(\"DD.MM.YYYY\");\r\n } else {\r\n // Set current date in date picker to FORCEDATE\r\n this.TariffDatePicker = this.DateHandler.Parse(this.ForceDate).Format(\"YYYY-MM-DD\");\r\n this.SessionDateRange = this.DateHandler.Parse(this.ForceDate).Format(\"DD.MM.YYYY\");\r\n };\r\n };\r\n };\r\n };\r\n // Hande disabled dates\r\n HandleDisabledDates(): void {\r\n if (this.Settings.Disableddates) {\r\n let disableddates;\r\n\r\n if (!Array.isArray(this.Settings.Disableddates)) {\r\n disableddates = new Array(this.Settings.Disableddates);\r\n } else {\r\n disableddates = this.Settings.Disableddates;\r\n };\r\n\r\n disableddates.forEach((date: any) => {\r\n let d = this.DateHandler.Parse(date, \"DD.MM.YYYY\").Format(\"YYYY-MM-DD\");\r\n if (d == this.TariffDatePicker) {\r\n this.TariffDatePicker = this.DateHandler.Parse(date, \"DD.MM.YYYY\").Add(\"days\", 1).Format(\"YYYY-MM-DD\");\r\n this.SessionDateRange = this.DateHandler.Parse(date, \"DD.MM.YYYY\").Add(\"days\", 1).Format(\"DD.MM.YYYY\");\r\n };\r\n });\r\n };\r\n };\r\n\r\n ClearDates(): void {\r\n this.TariffDatePicker = this.DateHandler.Parse(new Date(this.MinDate)).Format(\"YYYY-MM-DD\");\r\n this.SessionDateRange = this.DateHandler.Parse(new Date(this.MinDate)).Format(\"DD.MM.YYYY\");\r\n };\r\n\r\n SetDateRange(e: any): void {\r\n this.SessionDateRangeModal = false;\r\n this.SessionDateRange = this.FormatDate(this.TariffDatePicker);\r\n this.$emit('dateSet', this.SessionDateRange);\r\n };\r\n\r\n FormatDate(date: string): string {\r\n return this.DateHandler.Parse(new Date(date)).Format(\"DD.MM.YYYY\");\r\n };\r\n\r\n FormatTime(dateString: string): string {\r\n return this.DateHandler.Parse(new Date(dateString)).Format(\"HH:mm\");\r\n };\r\n};\r\n\r\nexport class WpTariffsDatepickerDictionary extends BaseUILocalizationDictionary {\r\n TextBoxLabel: string = '';\r\n\r\n DialogBtnClean: string = '';\r\n DialogBtnOk: string = '';\r\n DialogBtnCancel: string = '';\r\n}\r\n\r\n","import './sib-arena-sectors.scss';\r\n\r\nimport { WpArenaSectors } from '../../components';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { ArenaSector, SibIdentity, SibSymbols, IdentityChangedEventArgs, ICartService, CartSymbols } from 'web-platform-core-ui';\r\n\r\n@Component({\r\n template: require(\"./sib-arena-sectors.html\")\r\n})\r\nexport default class SibArenaSectors extends WpArenaSectors {\r\n AuthModal: boolean = false;\r\n Context?: SibIdentity;\r\n CurrentSector?: ArenaSector;\r\n\r\n async SectorSelected(sector: ArenaSector) {\r\n this.Context = this.GlobalService.Get(SibSymbols.SibContext);\r\n\r\n if (this.Context.IsAuthentificated) {\r\n\r\n if (this.Context._sibUser != null) {\r\n let cartService = this.GlobalService.Get(CartSymbols.CartService);\r\n\r\n let cart = await cartService.GetCurrentOrCreateCartAsync();\r\n //cart.CartMaxItems = 1;\r\n }\r\n\r\n this.$emit(\"SectorSelected\", { Sector: sector, ArenaText: this.SectorsList.ArenaText, ArenaPosition: this.SectorsList.ArenaPosition });\r\n return;\r\n }\r\n\r\n this.CurrentSector = sector;\r\n this.AuthModal = true;\r\n }\r\n\r\n async PolygonSelected(sector: ArenaSector) {\r\n this.Context = this.GlobalService.Get(SibSymbols.SibContext);\r\n\r\n if (this.Context.IsAuthentificated) {\r\n if (this.Context._sibUser != null) {\r\n let cartService = this.GlobalService.Get(CartSymbols.CartService);\r\n let cart = await cartService.GetCurrentOrCreateCartAsync();\r\n\r\n //cart.CartMaxItems = 1;\r\n }\r\n\r\n this.$emit(\"SectorSelected\", { Sector: sector, ArenaText: this.SectorsList.ArenaText, ArenaPosition: this.SectorsList.ArenaPosition });\r\n return;\r\n }\r\n\r\n this.CurrentSector = sector;\r\n this.AuthModal = true;\r\n }\r\n\r\n StandartAuth() {\r\n this.AuthModal = false;\r\n this.Context?.SignIn();\r\n }\r\n\r\n SibAuth() {\r\n this.AuthModal = false;\r\n this.Context?.SigInSib();\r\n this.Context?.IdentityChanged.Subscribe(this.IdentityChanged);\r\n }\r\n\r\n async IdentityChanged(e: any, args: IdentityChangedEventArgs) {\r\n this.Context = this.GlobalService.Get(SibSymbols.SibContext);\r\n let cartService = this.GlobalService.Get(CartSymbols.CartService);\r\n let cart = await cartService.GetCurrentOrCreateCartAsync();\r\n\r\n cart.Clear();\r\n cart.OrderId = undefined;\r\n //if (this.Context._sibUser != null) {\r\n // cart.CartMaxItems = 1;\r\n //}\r\n }\r\n}","import Vue from 'vue';\r\nimport Vuetify from 'vuetify/lib';\r\nimport { extend, wpComponents, vuetifyComponents } from '../components';\r\nimport ru from 'vuetify/src/locale/ru';\r\nimport SibNewArenaSectors from './SibArenaSectors/sib-arena-sectors';\r\nimport { Resize, Scroll } from 'vuetify/lib/directives';\r\n\r\nwpComponents['wp-arena-sectors'] = SibNewArenaSectors;\r\n\r\nconst allComponents = extend(wpComponents, vuetifyComponents);\r\n\r\nVue.use(Vuetify, { components: allComponents, directives: { Resize, Scroll } });\r\n\r\nexport default new Vuetify({\r\n lang: {\r\n locales: { ru },\r\n current: 'ru'\r\n }, \r\n});","export enum InstructorUsageType {\r\n All = 0,\r\n Individual = 1,\r\n Groups = 2\r\n}","export enum ContractActualPeriod {\r\n capAny = 0,\r\n capDay = 1,\r\n capWeek = 2,\r\n capMonth = 3,\r\n capQuarter = 4,\r\n capSixMonth = 5,\r\n capYear = 6,\r\n capAllPeriod = 7\r\n}","export default class OrderItemDiscount {\r\n Id: number = 0;\r\n Name: string = '';\r\n Sum: number = 0;\r\n Description: string = '';\r\n}\r\n","import { WpEventArgs } from './../Common'\r\nimport { IsdUserLoyalty } from './'\r\n\r\nexport default class LoyaltyChangedEventArgs extends WpEventArgs {\r\n IsdUserLoyalty: IsdUserLoyalty;\r\n\r\n constructor(userLoyalty: IsdUserLoyalty) {\r\n super();\r\n this.IsdUserLoyalty = userLoyalty;\r\n }\r\n}","import Vue from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, { AppSettings, BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\nimport { PropSync, Watch } from 'vue-property-decorator';\r\nimport moment from 'moment';\r\n\r\nexport const wpDatepickerProps = Vue.extend({\r\n props: {\r\n disabledweekdays: Array,\r\n forceselectrange: Number,\r\n }\r\n});\r\n\r\n@Component\r\nexport default class WpInstructorsDatepickerClass extends mixins>(WpBaseComponent, wpDatepickerProps, Vue) {\r\n @PropSync('settings', { type: Object }) Settings!: AppSettings;\r\n\r\n private Today: Date = new Date();\r\n\r\n DisabledWeekdays: Array = [];\r\n ForceSelectRange: number = 0;\r\n\r\n SessionDateRangeModal: boolean = false;\r\n SessionDateRangePicker: any = [];\r\n SessionDateRange: string = '';\r\n SessionDateRangeSub: string = '';\r\n SessionDatesVisible: boolean = true;\r\n\r\n ShowButtonVisible: boolean = true;\r\n\r\n DateRangeSub: string = '';\r\n DateRangeTitle: string = '';\r\n HaveForcedDate: boolean = false;\r\n\r\n MinDate: string = \"\";\r\n MaxDate: string = \"\";\r\n MinDateDefault: string = \"\";\r\n MaxDateDefault: string = \"\";\r\n\r\n @Watch('Settings')\r\n OnSettingsChange(val: AppSettings, _oldVal: AppSettings): void {\r\n if (val !== undefined) this.ChangeSettings(val);\r\n };\r\n\r\n created(): void {\r\n this.MinDate = this.DateHandler.Parse(this.Today).Format(\"YYYY-MM-DD\");\r\n this.MaxDate = this.DateHandler.Parse(this.Today).Add(\"months\", 1).Format(\"YYYY-MM-DD\");\r\n this.MinDateDefault = this.DateHandler.Parse(this.Today).Format(\"YYYY-MM-DD\");\r\n this.MaxDateDefault = this.DateHandler.Parse(this.Today).Add(\"days\", 30).Format(\"YYYY-MM-DD\");\r\n };\r\n\r\n protected HandleMinDate() {\r\n if (this.Settings.Mindate !== undefined && this.Settings.Mindate != '') {\r\n let minDate = this.DateHandler.ParseToDate(this.Settings.Mindate, \"DD.MM.YYYY\");\r\n if (this.Today.getTime() > minDate.getTime()) {\r\n this.MinDate = this.MinDateDefault = this.DateHandler.Parse(this.Today).Format(\"YYYY-MM-DD\");\r\n // Выбрать минимальную дату как текущее начало\r\n this.SessionDateRangePicker[0] = this.MinDate;\r\n };\r\n };\r\n };\r\n\r\n get FormatSelectedDate(): string {\r\n let from = this.SortDates[0];\r\n let fromFormat = \"\";\r\n if (from) \r\n fromFormat = new Date(from).toLocaleDateString(\"ru-RU\");\r\n\r\n let to = this.SortDates[1];\r\n let toFormat = \"\";\r\n if (to)\r\n toFormat = new Date(to).toLocaleDateString(\"ru-RU\");\r\n\r\n return `${fromFormat} ${toFormat ? '- ' + toFormat : ''}`;\r\n };\r\n\r\n get DatesArray(): Array {\r\n let datesArray = [];\r\n let firstDate = moment(this.SessionDateRangePicker[0], 'YYYY-MM-DD');\r\n\r\n if (this.SessionDateRangePicker.length == 2) {\r\n let lastDate = moment(this.SessionDateRangePicker[1], 'YYYY-MM-DD');\r\n\r\n while (firstDate <= lastDate) {\r\n datesArray.push(firstDate.format('YYYY-MM-DD'));\r\n firstDate = firstDate.add(1, 'days');\r\n };\r\n } else if (this.SessionDateRangePicker.length == 1) {\r\n datesArray.push(firstDate.format('YYYY-MM-DD'));\r\n };\r\n return datesArray;\r\n };\r\n\r\n get DatesChoosen(): string {\r\n if (this.SessionDateRangePicker[0] == undefined || this.SessionDateRangePicker[1] == undefined) return \"\";\r\n let firstDate = this.DateHandler.Parse(this.SessionDateRangePicker[0], \"YYYY-MM-DD\").Format(\"DD.MM.YYYY\");\r\n let lastDate = this.DateHandler.Parse(this.SessionDateRangePicker[1], \"YYYY-MM-DD\").Format(\"DD.MM.YYYY\");\r\n return firstDate + ' - ' + lastDate;\r\n };\r\n\r\n AllowedDates(val: string): boolean {\r\n //let date = moment(val, 'YYYY-MM-DD');\r\n let date = this.DateHandler.Parse(val, \"YYYY-MM-DD\");\r\n if (this.DisabledWeekdays.length !== 0)\r\n if (this.DisabledWeekdays.indexOf(date.Weekday()) > -1) return false;\r\n\r\n if (this.Settings.Disableddates != undefined && this.Settings.Disableddates.length > 0)\r\n return this.Settings.Disableddates.indexOf(date.Format('DD.MM.YYYY')) === -1;\r\n\r\n return true;\r\n };\r\n\r\n async ChangeSettings(_settings: AppSettings): Promise {\r\n this.Settings = GlobalService.GetSettings();\r\n this.SessionDatesVisible = !this.Settings.Nocalendar;\r\n\r\n if (this.Settings.Maxdate !== undefined && this.Settings.Maxdate != '') {\r\n this.MaxDate = this.MaxDateDefault = this.DateHandler.Parse(this.Settings.Maxdate, \"DD.MM.YYYY\").Format(\"YYYY-MM-DD\");\r\n };\r\n\r\n if (this.Settings.Forcedate !== undefined) {\r\n //let forcedate = moment(this.Settings.Forcedate, 'DD.MM.YYYY');\r\n let forcedate = this.DateHandler.Parse(this.Settings.Forcedate, \"DD.MM.YYYY\");\r\n let forcedateTime = forcedate.Time();\r\n\r\n let mindate = this.DateHandler.Parse(this.MinDate, \"YYYY-MM-DD\");\r\n let mindateTime = mindate.Time();\r\n\r\n let maxdate = this.DateHandler.Parse(this.MaxDate, \"YYYY-MM-DD\");\r\n let maxdateTime = maxdate.Time();\r\n\r\n //if (moment(this.MinDate, 'YYYY-MM-DD') > forcedate)\r\n //forcedate = moment(this.MinDate, 'YYYY-MM-DD');\r\n\r\n forcedate = mindateTime > forcedateTime ? this.DateHandler.Parse(this.MinDate, \"YYYY-MM-DD\") : this.DateHandler.Parse(this.Settings.Forcedate, \"DD.MM.YYYY\");\r\n forcedate = forcedateTime > maxdateTime ? this.DateHandler.Parse(this.MaxDate, \"YYYY-MM-DD\") : this.DateHandler.Parse(this.Settings.Forcedate, \"DD.MM.YYYY\");\r\n\r\n //this.SessionDateRange = forcedate.format('DD.MM.YYYY');\r\n this.SessionDateRange = forcedate.Format('DD.MM.YYYY');\r\n this.SessionDateRangePicker = [forcedate.Format('YYYY-MM-DD')];\r\n\r\n if (this.$props.forceselectrange !== undefined) {\r\n let newDate = forcedate;\r\n //newDate.add('days', this.$props.forceselectrange);\r\n newDate.Add('days', this.$props.forceselectrange);\r\n //this.SessionDateRangePicker.push(newDate.format('YYYY-MM-DD'));\r\n this.SessionDateRangePicker.push(newDate.Format('YYYY-MM-DD'));\r\n\r\n this.$emit('datesSet', this.SessionDateRangePicker);\r\n this.SetDateRange();\r\n } else {\r\n this.$emit('datesSet', this.SessionDateRangePicker);\r\n };\r\n this.HaveForcedDate = true;\r\n };\r\n\r\n if (this.Settings.Forcedate == undefined && this.Settings.Nocalendar === true) {\r\n let d = this.DateHandler.Parse(new Date());\r\n this.SessionDateRange = d.Format('DD.MM.YYYY');\r\n this.SessionDateRangePicker = [\r\n d.Format('YYYY-MM-DD')\r\n ];\r\n };\r\n\r\n this.HandleMinDate();\r\n };\r\n\r\n async mounted(): Promise {\r\n let disabledweekdays = await this.$props.disabledweekdays;\r\n if (disabledweekdays !== undefined) \r\n this.DisabledWeekdays = disabledweekdays;\r\n\r\n let forceselectrange = await this.$props.forceselectrange;\r\n if (forceselectrange !== undefined) \r\n this.ForceSelectRange = forceselectrange;\r\n };\r\n\r\n ClearDates(): void {\r\n this.SessionDateRangePicker = [];\r\n this.MaxDate = this.MaxDateDefault;\r\n this.MinDate = this.MinDateDefault;\r\n this.$emit('datesSet', this.SessionDateRangePicker);\r\n };\r\n\r\n get SortDates() {\r\n return this.SessionDateRangePicker ? this.SessionDateRangePicker.sort() : [];\r\n };\r\n\r\n SortChoosenDates(): void {\r\n if (this.SessionDateRangePicker.length > 1) {\r\n let fd = this.DateHandler.ParseToDate(this.SessionDateRangePicker[0], \"YYYY-MM-DD\");\r\n let ld = this.DateHandler.ParseToDate(this.SessionDateRangePicker[1], \"YYYY-MM-DD\");\r\n\r\n // Friendly reminder - you can compare two dates with >, <, >= or <=\r\n // However you CANNOT use ==, ===, != or !== with Date objects.\r\n if (fd > ld) {\r\n this.SessionDateRangePicker[0] = this.DateHandler.Parse(ld).Format(\"YYYY-MM-DD\");\r\n this.SessionDateRangePicker[1] = this.DateHandler.Parse(fd).Format(\"YYYY-MM-DD\");\r\n };\r\n };\r\n };\r\n\r\n SetDateRange(): void {\r\n this.SessionDateRangeModal = false;\r\n if (this.SessionDateRangePicker.length == 2) {\r\n this.SessionDateRange = this.FormatDate(this.SessionDateRangePicker[0])\r\n + ' − ' +\r\n this.FormatDate(this.SessionDateRangePicker[1]);\r\n\r\n } else if (this.SessionDateRangePicker.length == 1) {\r\n this.SessionDateRange = this.FormatDate(this.SessionDateRangePicker[0]);\r\n };\r\n this.$emit('datesSet', this.SessionDateRangePicker);\r\n };\r\n\r\n FormatDate(dateString: string): string {\r\n return this.DateHandler.Parse(dateString, \"YYYY-MM-DD\").Format(\"DD.MM.YYYY\");\r\n //return moment(dateString, 'YYYY-MM-DD').format('DD.MM.YYYY');\r\n };\r\n\r\n FormatTime(dateString: string): string {\r\n return this.DateHandler.Parse(dateString, \"HH:mm:SS\").Format(\"HH:mm\");\r\n //return moment(dateString, 'HH:mm:SS').format('HH:mm');\r\n };\r\n\r\n DateSelected(dates: Array): void {\r\n if (this.HaveForcedDate == true && this.ForceSelectRange === 0) {\r\n dates.shift();\r\n this.HaveForcedDate = false;\r\n };\r\n\r\n this.SortChoosenDates();\r\n\r\n //let firstDate = moment(dates[0], 'YYYY-MM-DD');\r\n let firstDate = this.DateHandler.Parse(dates[0], \"YYYY-MM-DD\");\r\n\r\n if (this.ForceSelectRange !== 0) {\r\n if (dates.length === 2) dates.pop();\r\n let newDate = firstDate;\r\n //newDate.add('days', this.ForceSelectRange);\r\n newDate.Add('days', this.ForceSelectRange);\r\n //dates.push(newDate.format('YYYY-MM-DD'));\r\n dates.push(newDate.Format('YYYY-MM-DD'));\r\n //this.SetDateRange();\r\n };\r\n\r\n if (dates.length == 1) {\r\n //let maxdate = moment(dates[0], 'YYYY-MM-DD').add('days', 7);\r\n let maxdate = this.DateHandler.Parse(dates[0], \"YYYY-MM-DD\").Add(\"days\", 7);\r\n\r\n if (this.Settings.Maxdate !== undefined) {\r\n //let settingsMaxdate = moment(this.Settings.Maxdate, 'DD.MM.YYYY');\r\n let settingsMaxdate = this.DateHandler.Parse(this.Settings.Maxdate, \"DD.MM.YYYY\");\r\n maxdate = maxdate.Time() > settingsMaxdate.Time() ? settingsMaxdate : maxdate;\r\n } else {\r\n //let defaultMaxdate = moment(new Date()).add('days', 30);\r\n let defaultMaxdate = this.DateHandler.Parse(new Date()).Add(\"days\", 30);\r\n maxdate = maxdate.Time() > defaultMaxdate.Time() ? defaultMaxdate : maxdate;\r\n };\r\n\r\n //this.MaxDate = maxdate.format('YYYY-MM-DD');\r\n this.MaxDate = maxdate.Format(\"YYYY-MM-DD\");\r\n\r\n //let mindate = moment(dates[0], 'YYYY-MM-DD').subtract('days', 7);\r\n let mindate = this.DateHandler.Parse(dates[0], \"YYYY-MM-DD\").Subtract(\"days\", 7);\r\n\r\n if (this.Settings.Mindate !== undefined) {\r\n //let settingsMindate = moment(this.Settings.Mindate, 'DD.MM.YYYY');\r\n let settingsMindate = this.DateHandler.Parse(this.Settings.Mindate, 'DD.MM.YYYY');\r\n\r\n //let currentDate = moment(new Date());\r\n let currentDate = this.DateHandler.Parse(new Date());\r\n if (currentDate.Time() > settingsMindate.Time()) settingsMindate = currentDate;\r\n\r\n if (settingsMindate > mindate) mindate = settingsMindate;\r\n } else {\r\n //let defaultMindate = moment(new Date());\r\n let defaultMindate = this.DateHandler.Parse(new Date());\r\n mindate = mindate.Time() < defaultMindate.Time() ? defaultMindate : mindate;\r\n };\r\n\r\n //this.MinDate = mindate.format('YYYY-MM-DD');\r\n this.MinDate = mindate.Format(\"YYYY-MM-DD\");\r\n } else {\r\n if (this.Settings.Maxdate !== undefined) {\r\n //this.MaxDate = moment(this.Settings.Maxdate, 'DD.MM.YYYY').format('YYYY-MM-DD');\r\n //this.MaxDateDefault = moment(this.Settings.Maxdate, 'DD.MM.YYYY').format('YYYY-MM-DD');\r\n this.MaxDate = this.MaxDateDefault = this.DateHandler.Parse(this.Settings.Maxdate, \"DD.MM.YYYY\").Format(\"YYYY-MM-DD\");\r\n } else {\r\n //this.MaxDate = moment(new Date()).add('days', 30).format('YYYY-MM-DD');\r\n //this.MaxDateDefault = moment(new Date()).add('days', 30).format('YYYY-MM-DD');\r\n this.MaxDate = this.MaxDateDefault = this.DateHandler.Parse(new Date()).Add(\"days\", 30).Format(\"YYYY-MM-DD\");\r\n };\r\n\r\n if (this.Settings.Mindate !== undefined) {\r\n //let mindate = moment(this.Settings.Mindate, 'DD.MM.YYYY');\r\n //let currentDate = moment(new Date());\r\n let mindate = this.DateHandler.Parse(this.Settings.Mindate, \"DD.MM.YYYY\");\r\n let currentDate = this.DateHandler.Parse(new Date());\r\n if (mindate.Time() < currentDate.Time()) mindate = currentDate;\r\n\r\n //this.MinDate = moment(mindate, 'DD.MM.YYYY').format('YYYY-MM-DD');\r\n //this.MinDateDefault = moment(mindate, 'DD.MM.YYYY').format('YYYY-MM-DD');\r\n this.MinDate = mindate.Format('YYYY-MM-DD');\r\n } else {\r\n //this.MinDate = moment(new Date()).format('YYYY-MM-DD');\r\n //this.MinDateDefault = moment(new Date()).format('YYYY-MM-DD');\r\n this.MinDate = this.MinDateDefault = this.DateHandler.Parse(new Date()).Format(\"YYYY-MM-DD\");\r\n };\r\n };\r\n };\r\n};\r\n\r\nexport class WpInstructorsDatepickerDictionary extends BaseSystemLocalizationDictionary {\r\n PeriodOfStudy: string = '';\r\n};","import { DiscountType } from './discount-type';\r\n\r\nexport default class OrderDiscount { \r\n Id: number = 0;\r\n Name: string = '';\r\n Description: string = '';\r\n DiscountType?: DiscountType;\r\n Sum: number = 0;\r\n}","import GlobalService from './global-service';\r\n\r\n/*\r\n * Micro logger v1.0\r\n * A tiny wrapper for typical console methods and a custom timer method (unfortunately it returns time elasped in milliseconds instead of microseconds).\r\n * It puts out a pretty CSS styled message if current app is NOT in development enviroment, so it doesn't show in production.\r\n */\r\nexport class MLogger {\r\n private _style: String = 'color: white; text-shadow: 1px 1px #000, -1px -1px #000, -1px 1px #000, 1px -1px #000; border-radius: 6px; padding: 2px;';\r\n private _isDev: boolean = GlobalService.GetSettings().IsDevVersion;\r\n private _timers: any = [];\r\n private Mode: number = 1;\r\n\r\n /**\r\n * @param {number} mode - (optional) Mode. 0 - OFF. 1 - ON.\r\n */\r\n constructor(mode: number = 1) {\r\n this.Mode = mode;\r\n };\r\n\r\n /**\r\n * Logs a pretty message to the console\r\n * @param {string} text - Message text to output\r\n * @param {string} color - (optional) Define a background color according to the style of the message\r\n */\r\n say(text: string, color?: string): void {\r\n if (this.Mode == 0) return;\r\n if (this._isDev == true) {\r\n let bgcolor: string = '';\r\n\r\n switch (color) {\r\n case 'message':\r\n bgcolor = 'background-color: #007bff;';\r\n break;\r\n case 'work':\r\n bgcolor = 'background-color: #17a2b8;';\r\n break;\r\n case 'info':\r\n bgcolor = 'background-color: #6c757d;';\r\n break;\r\n case 'warning':\r\n bgcolor = 'background-color: #ffc107;';\r\n break;\r\n case 'error':\r\n bgcolor = 'background-color: #dc3545;';\r\n break;\r\n case 'success':\r\n bgcolor = 'background-color: #28a745;';\r\n break;\r\n default:\r\n bgcolor = 'background-color: #343a40;';\r\n break;\r\n };\r\n\r\n if (color == 'work' ||\r\n color == 'info' ||\r\n color == 'success') {\r\n console.info(`%c ${text} `, `${this._style} ${bgcolor}`);\r\n } else if (color == 'warning') {\r\n console.debug(`%c ${text} `, `${this._style} ${bgcolor}`);\r\n } else if (color == 'error') {\r\n console.error(`%c ${text} `, `${this._style} ${bgcolor}`);\r\n } else {\r\n console.log(`%c ${text} `, `${this._style} ${bgcolor}`);\r\n };\r\n\r\n };\r\n };\r\n /**\r\n * Describe an object. Currently just a copt of console.dir() - may be expanded later\r\n * @param {object} object - Object to describe\r\n */\r\n describe(object: Object): void {\r\n if (this.Mode == 0) return;\r\n if (this._isDev == true) {\r\n console.dir(object);\r\n };\r\n };\r\n /**\r\n * Places a timer on a label.\r\n * Returns time elapsed in milliseconds when called again. Returns 0 when called for the first time indicating success. Calls say() method if text param is provided\r\n * @param {string} label - String label that indicates the timer\r\n * @param {string} text - (optional) Message text to output\r\n * @param {string} color - (optional) Define a background color according to the style of the message\r\n * @param {boolean} updateOnCall - (optional) Update timer when checking how much time has passed\r\n */\r\n time(label: string, text?: string, color?: string, updateOnCall: boolean = true): number {\r\n if (this.Mode == 0) return 0;\r\n if (this._timers[label] != null) {\r\n // Return the time elapsed from when the timer started\r\n let timeElapsed = Date.now() - this._timers[label];\r\n if (updateOnCall) {\r\n // Update the timer with a new timestamp\r\n this._timers[label] = Date.now();\r\n };\r\n // Say something if required\r\n if (text != null) this.say(text.replace('%t', timeElapsed.toString()), color);\r\n return timeElapsed;\r\n } else {\r\n // Setting up the timer for the first time\r\n this._timers[label] = Date.now();\r\n // Say something if required\r\n if (text != null) this.say(text, color);\r\n return 0;\r\n };\r\n };\r\n};","export enum OwnerType {\r\n owtPerson = 2,\r\n owtOrganization = 3\r\n}","module.exports = \"
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{ Terms.DialogBtnShow }}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n\";","import './wp-market-rules.scss';\r\n\r\nimport Vue, { VueConstructor } from 'vue';\r\nimport WpBaseComponent from './../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, {\r\n IMarketService, MarketSymbols, AppSettings, INotificationService, Cart, CartItem,\r\n MarketRule, MarketDateTimeRange, IContext, IdentitySymbols, UserProfile, IProfileService, ProfileSymbols, NotificationSymbols, MarketTariffService, MarketBillCartItem, MarketIdentity, MarketBillStatus, BaseSystemLocalizationDictionary\r\n} from 'web-platform-core-ui';\r\nimport { Prop, DefaultProps } from 'vue/types/options';\r\n\r\nexport const wpMarketRulesProp = Vue.extend({\r\n props: {\r\n Cart: Object as Prop,\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-market-rules.html\")\r\n})\r\n\r\nexport default class WpMarketRules extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpMarketRulesProp, Vue) {\r\n private static Initialized: boolean = false;\r\n private _marketService!: IMarketService;\r\n protected _notificationService!: INotificationService;\r\n private _context!: IContext;\r\n\r\n TariffServices: Array = [];\r\n MarketRules: Array = [];\r\n Settings?: AppSettings;\r\n\r\n SelectedItemId: string = \"\";\r\n Items: Array = [];\r\n Loading: boolean = true;\r\n Dialog: boolean = false;\r\n Date: string = '';\r\n\r\n DatepickerSettings: any = {};\r\n Datepicker: boolean = false;\r\n StartDatepicker(): void {\r\n this.DatepickerSettings = this.Settings;\r\n this.Datepicker = true;\r\n }\r\n\r\n AddToCart(cartItem: CartItem): void {\r\n let result = this.Cart.AddItem(cartItem);\r\n\r\n if (!result.Success) {\r\n this._notificationService.Error(\"Ошибка\", result.ErrorMessage ? result.ErrorMessage : \"Непредвиденная ошибка\");\r\n }\r\n }\r\n\r\n async mounted() {\r\n this.Settings = GlobalService.GetSettings();\r\n\r\n this._marketService = this.GlobalService.Get(MarketSymbols.MarketService);\r\n this._context = this.GlobalService.Get(IdentitySymbols.Context);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n\r\n if (this.Settings.MarketBillId != null) {\r\n if (WpMarketRules.Initialized) {\r\n parent.postMessage({ status: 'wp-close-widget' }, '*');\r\n return;\r\n }\r\n\r\n\r\n let billResult = await this._marketService.InitializeByBillAsync(this.Settings.MarketBillId);\r\n\r\n if (billResult.Success && billResult.Data != null) {\r\n if (billResult.Data.Status[0] == MarketBillStatus.New) {\r\n let marketBillCartItem = new MarketBillCartItem(billResult.Data);\r\n this.Cart.AddItem(marketBillCartItem);\r\n\r\n this.$emit('ReservateBill');\r\n } else {\r\n window.console.error(\"Bill not new status\");\r\n parent.postMessage({ status: 'wp-close-widget' }, '*');\r\n }\r\n\r\n return;\r\n }\r\n\r\n WpMarketRules.Initialized = true;\r\n return;\r\n }\r\n\r\n let resultRules = await this._marketService.GetRulesAsync();\r\n\r\n this.StartDatepicker();\r\n if (resultRules.Success && resultRules.Data != undefined) {\r\n this.MarketRules = resultRules.Data.Rule;\r\n this.TariffServices = resultRules.Data.Service;\r\n await this.LoadSchedule();\r\n }\r\n\r\n if (this._context.CurrentIdentity.IsAuthentificated) {\r\n if (this._context.CurrentIdentity.Phone == undefined || this._context.CurrentIdentity.Phone == null || this._context.CurrentIdentity.Phone == \"\") {\r\n this.Dialog = true;\r\n } else {\r\n let client = await this._marketService.GetClientAsync(this._context.CurrentIdentity.Phone);\r\n if (!client.Success)\r\n this._notificationService.Error(\"Ошибка\", client.ErrorMessage ? client.ErrorMessage : \"Непредвиденная ошибка\");\r\n\r\n if (this.Settings)\r\n this.Settings.CurrentMarketClient = client.Data;\r\n }\r\n }\r\n\r\n this._context.IdentityChanged.Subscribe(async (sender, e) => {\r\n if (e.Identity.Phone == undefined || e.Identity.Phone == null || e.Identity.Phone == \"\") {\r\n this.Dialog = true;\r\n return;\r\n }\r\n\r\n let client = await this._marketService.GetClientAsync(e.Identity.Phone);\r\n if (!client.Success)\r\n this._notificationService.Error(\"Ошибка\", client.ErrorMessage ? client.ErrorMessage : \"Непредвиденная ошибка\");\r\n\r\n if (this.Settings)\r\n this.Settings.CurrentMarketClient = client.Data;\r\n\r\n if (this.SelectedItemId !== \"\")\r\n this._notificationService.SendSystemNotification(\"MarketClientGetted\", this.SelectedItemId);\r\n })\r\n }\r\n\r\n async CodeConfirmed(code: any): Promise {\r\n if (this._context.CurrentIdentity)\r\n this._context.CurrentIdentity.Phone = code.Phone;\r\n\r\n let userProfile = new UserProfile();\r\n userProfile = code.Phone;\r\n let service = this.GlobalService.Get(ProfileSymbols.ProfileService);\r\n let savingResult = await service.EditProfileAsync(userProfile);\r\n\r\n if (!savingResult.Success)\r\n this._notificationService.Error(\"Ошибка\", savingResult.ErrorMessage ? savingResult.ErrorMessage : \"Непредвиденная ошибка\");\r\n\r\n let client = await this._marketService.GetClientAsync(code.Phone);\r\n if (!client.Success)\r\n this._notificationService.Error(\"Ошибка\", client.ErrorMessage ? client.ErrorMessage : \"Непредвиденная ошибка\");\r\n\r\n if (this.Settings)\r\n this.Settings.CurrentMarketClient = client.Data;\r\n\r\n if (this.SelectedItemId !== \"\")\r\n this._notificationService.SendSystemNotification(\"MarketClientGetted\", this.SelectedItemId);\r\n }\r\n\r\n ItemSelected(id: string) {\r\n this.SelectedItemId = id;\r\n }\r\n\r\n\r\n async DateSet(date: string): Promise {\r\n this.Date = date;\r\n await this.LoadSchedule();\r\n }\r\n\r\n async LoadSchedule() {\r\n this.Loading = true;\r\n this.Items = [];\r\n\r\n for (let i = 0; i < this.MarketRules.length; i++) {\r\n let x = this.MarketRules[i];\r\n\r\n let tariffService = this.TariffServices?.find(t => x.Service != null && x.Service.length > 0 && t.id == x.Service[0]?.id);\r\n if (this.Settings?.MarketEmployeeId != null && tariffService != null &&\r\n (tariffService.User == null || !tariffService.User.some(x => x.id == this.Settings?.MarketEmployeeId))) {\r\n continue;\r\n }\r\n\r\n let resultSchedule = await this._marketService.GetRuleScheduleAsync(x.id, this.Date);\r\n\r\n if (resultSchedule.Success && resultSchedule.Data) {\r\n resultSchedule.Data.AllowedDateTimeRange.forEach(schedule => {\r\n this.Items.push({\r\n id: `${x.id}_${schedule.StartDateTime[0]}_${schedule.EndDateTime[0]}`,\r\n Data: x,\r\n TariffService: tariffService,\r\n Schedule: schedule\r\n });\r\n });\r\n }\r\n }\r\n this.Loading = false;\r\n }\r\n\r\n async CartTimeout() {\r\n this.Cart.OrderId = undefined;\r\n this.Cart.Clear();\r\n }\r\n}\r\n\r\nclass MarketRuleItem {\r\n id: string = \"\";\r\n Data?: MarketRule;\r\n TariffService?: MarketTariffService;\r\n Schedule?: MarketDateTimeRange;\r\n}\r\n\r\nexport class WpMarketRulesDictionary extends BaseSystemLocalizationDictionary {\r\n NoServicesAvailableOnThisDate: string = 'Нет доступных услуг на эту дату';\r\n DataRequired: string = 'Необходимо заполнить данные';\r\n}","import { injectable, inject } from 'inversify';\r\nimport ActionResult from './../Common/action-result';\r\nimport ITariffProvider from './i-tariff-provider';\r\nimport { TariffSymbols } from './symbols';\r\nimport { IdentitySymbols } from './../Identity/symbols';\r\nimport TariffService from './tariff-service';\r\nimport IContext from './../Identity/i-context';\r\nimport { ErrorTypes } from '../Common/error-types';\r\nimport { MLogger } from '../Global/m-logger';\r\n\r\n\r\n@injectable()\r\nexport default class TariffServiceCached extends TariffService {\r\n protected _logger: MLogger;\r\n protected _processed: any = [];\r\n private _statCached: number = 0;\r\n private _statError: number = 0;\r\n\r\n public Cache: any = [];\r\n\r\n constructor(@inject(TariffSymbols.TariffProvider) provider: ITariffProvider, @inject(IdentitySymbols.Context) context: IContext) {\r\n super(provider, context);\r\n this._logger = new MLogger(0);\r\n };\r\n\r\n // Override this metod with new stuff\r\n async GetTariffPrice(date: string, tariffId: number, seanceId?: string): Promise {\r\n // Form an ID type of a string to access the _cache array\r\n let stringId = `${tariffId}_${date}_${(seanceId || '0')}`;\r\n // Get the price from _cache\r\n let cachedPrice = this.Cache[`${stringId}`];\r\n\r\n // If there is something, like 100 or 120\r\n if (cachedPrice !== undefined) {\r\n this._logger.say(`${stringId} PRICE ${cachedPrice} found in cache`, 'success');\r\n return ActionResult.SuccessData(cachedPrice);\r\n } else {\r\n // If no price has been cached...\r\n this._logger.say(`${stringId} PRICE NOT CACHED. Requesting...`, 'error');\r\n // Send a request\r\n let result = await this._provider.GetTariffPrice(date, tariffId, seanceId);\r\n\r\n if (!result.Success) {\r\n if (result.ErrorType == 1) {\r\n // 'Тариф {0} недоступен на эту дату'\r\n this._logger.say(`${stringId} PRICE is not available (possibly for this date). Marking as null..`, \"warning\");\r\n this.Cache[`${stringId}`] = null;\r\n };\r\n } else {\r\n // Cache result data for future use\r\n this._logger.say(`${stringId} GOT price ${result.Data}. Saving to cache...`, \"info\");\r\n this.Cache[`${stringId}`] = result.Data;\r\n };\r\n\r\n return result;\r\n };\r\n };\r\n\r\n // Новые методы\r\n async GetTariffsAllPrices(id: number, date: string): Promise {\r\n // If id & date already cached\r\n // SHIELD !null\r\n if (this._processed[`${id}_${date}`] != null) {\r\n this._logger.say(`${id}_${date} PRICE already cached! Skipping...`, 'warning')\r\n return ActionResult.Success();\r\n };\r\n\r\n // Mark as cached\r\n this._processed[`${id}_${date}`] = true;\r\n this._logger.say(`GET PRICE - ${id}_${date}`, 'info');\r\n\r\n // Send request\r\n let result = await this._provider.GetTariffsAllPrices(id, date);\r\n\r\n // SHIELD null\r\n if (result.Data == null) return ActionResult.FailedData(ErrorTypes.InternalError);\r\n\r\n this._logger.say(`Found ${Object.keys(result.Data).length} seance(s)`, 'message');\r\n\r\n for (var seanceId in result.Data) {\r\n let price = result.Data[seanceId].Data; // Цена. Если 0, то скорее всего была ошибка\r\n let eRes = result.Data[seanceId].Result; // Результат операции. Если 0 - то всё ок. Если нет - ошибка\r\n let eMes = result.Data[seanceId].Message; // Если результат не 0 - то тут будет сообщение об ошибке\r\n\r\n let stringId = `${id}_${date}_${seanceId}`;\r\n\r\n // Если операция прошла успешно\r\n if (eRes == 0) {\r\n if (this.Cache[`${stringId}`] !== undefined) {\r\n // Если цена уже кэширована\r\n this._logger.say(`${stringId} already cached. Skipping`, 'warning');\r\n } else {\r\n // Если цена не сохранена в кэшэ\r\n this._logger.say(`PRICE - ${stringId} - ${price}`, 'work');\r\n this.Cache[`${stringId}`] = price;\r\n this._statCached++;\r\n }\r\n } else {\r\n this._logger.say(`ERROR - ${stringId} - ${eMes}`, 'error');\r\n this.Cache[`${stringId}`] = null;\r\n this._statError++;\r\n };\r\n };\r\n this._logger.say(`Массовое кэширование закончено. Успех: ${this._statCached} - Ошибка: ${this._statError}`);\r\n\r\n return ActionResult.Success();\r\n };\r\n};\r\n","export enum TariffType {\r\n Default = 0,\r\n InstructorsTariff = 1,\r\n ClubTariff = 2,\r\n SyntechParking = 3\r\n}","import TariffSeance from './tariff-seance';\r\nimport { ITranslatable } from '../Localization';\r\nimport { WpCorePrefixes } from '..';\r\nimport { TariffType } from './tariff-type';\r\n\r\nexport default class Tariff {\r\n Id: number = 0;\r\n TariffCode: number = 0;\r\n Name: string = '';\r\n OptionId: string = '';\r\n OptionName: string = '';\r\n GroupId?: number;\r\n GroupName: string = '';\r\n Category: string = '';\r\n WorkingDays: string = '';\r\n Description: string = '';\r\n Quota?: number;\r\n CalendarEnabled: boolean = true;\r\n StartSale: string = '';\r\n EndSale: string = '';\r\n ZIndex: number = 0;\r\n RequiredPersonification: boolean = false;\r\n IsRewritable: boolean = true;\r\n TariffType: TariffType = TariffType.Default;\r\n\r\n Seances: Array = [];\r\n ShowLeftTicketCount: boolean = false;\r\n HaveSeance: boolean = false;\r\n}","export default class TariffSeance {\r\n SeanceId: string = '';\r\n SeanceValue: string = '';\r\n\r\n static SeanceTime(seance: TariffSeance): string | undefined {\r\n if (seance.SeanceValue != null && seance.SeanceValue != '')\r\n return seance.SeanceValue.split(' ', 1)[0];\r\n }\r\n}","import CartItem from './../Cart/cart-item';\r\nimport Tariff from './tariff';\r\nimport { CartItemTypes } from '../Cart/cart-item-types';\r\nimport { ActionResult, ErrorTypes, WpEventArgs } from './../Common';\r\nimport { ReservationItemTypes, ReservationItem } from './../Sale';\r\nimport { Cart, TariffSale } from './..';\r\nimport TariffSeance from './tariff-seance';\r\nimport TariffCapacity from './tariff-capacity';\r\nimport * as moment from 'moment';\r\n\r\nexport default class TariffCartItem extends CartItem { \r\n private _capacity?: TariffCapacity;\r\n private _date: string = \"\";\r\n private _count: number;\r\n private _tariff: Tariff;\r\n private _price: number = 0;\r\n private _tariffSale: TariffSale = new TariffSale();\r\n private _cart: Cart;\r\n private _maxcartitems: number = 6;\r\n private _type: CartItemTypes = CartItemTypes.Tariff;\r\n private _seance?: TariffSeance;\r\n\r\n get IsAvailable(): boolean {\r\n //if (this._tariffSale.Quota != null && this.TariffSale.LeftCount != null && this.TariffSale.LeftCount != null) {\r\n // return this.TariffSale.Count + this.TariffSale.ReservedCount < this.TariffSale.Quota;\r\n //}\r\n\r\n //if (this._capacity != null) {\r\n // return this._capacity.Count + this._capacity.ReservedCount < this._capacity.Capacity;\r\n //}\r\n\r\n return true;\r\n }\r\n get MetricsId(): any | undefined {\r\n return this._tariff?.Id;\r\n }\r\n public get Info(): string {\r\n return `${this._tariff.Name}, ${this._date} ${this._seance != null ? TariffSeance.SeanceTime(this._seance) : ''}`;\r\n }\r\n public get Type(): CartItemTypes {\r\n return this._type;\r\n }\r\n public get Price(): number {\r\n return this._price * this._count;\r\n }\r\n public get Count(): number {\r\n return this._count;\r\n }\r\n public get IsCanIncreaseCount(): boolean {\r\n if (this._tariffSale != null && this._tariffSale.Quota != null && this.TariffSale.LeftCount != null) {\r\n return this._cart.LeftCount > 0 && this.TariffSale.LeftCount >= this._count + 1;\r\n }\r\n\r\n if (this._capacity != null) {\r\n return this._capacity.LeftCount >= this._count + 1 && this._cart.LeftCount > 0;\r\n }\r\n\r\n return this._cart.LeftCount > 0;\r\n }\r\n\r\n public get IsCanReduceCount(): boolean {\r\n return this._count >= 2;\r\n }\r\n public get Tariff(): Tariff {\r\n return this._tariff;\r\n }\r\n public get TariffSale(): TariffSale {\r\n return this._tariffSale;\r\n }\r\n public get Seance(): TariffSeance | undefined {\r\n return this._seance;\r\n }\r\n public get Date(): string {\r\n return this._date;\r\n }\r\n public get Dates(): Array {\r\n let result = new Array();\r\n\r\n if (this.Date !== undefined) {\r\n result.push(moment.parseZone(this.Date, 'YYYY-MM-DDTHH:mm').format('DD.MM.YYYY'));\r\n }\r\n\r\n return result;\r\n }\r\n public get AdditionalInfo(): any {\r\n return this._tariff;\r\n }\r\n\r\n\r\n constructor(tariff: Tariff, count: number, date: string, price: number, cart: Cart,\r\n tariffSale: TariffSale, seance?: TariffSeance, capacity?: TariffCapacity) {\r\n super();\r\n\r\n this._date = date;\r\n this._tariff = tariff;\r\n this._count = count;\r\n this._price = price;\r\n this._tariffSale = tariffSale;\r\n this._cart = cart;\r\n this._seance = seance;\r\n this._capacity = capacity;\r\n if (cart !== undefined) {\r\n this._maxcartitems = cart.CartMaxItems;\r\n }\r\n\r\n if (this._capacity != null)\r\n this._capacity.ReservedCount = this._capacity.ReservedCount + this._count;\r\n\r\n if (this._tariffSale.Quota != null)\r\n this._tariffSale.ReservedCount = this._tariffSale.ReservedCount + this._count;\r\n }\r\n\r\n public IncreaseCount(): ActionResult {\r\n let increase = this._count < this._maxcartitems;\r\n\r\n if (this.TariffSale != null && this.TariffSale.Quota != null && this.TariffSale.LeftCount != null) {\r\n increase = this.TariffSale.LeftCount >= this._count + 1;\r\n }\r\n\r\n if (this._capacity != null) {\r\n increase = this._capacity.LeftCount >= this._count + 1;\r\n }\r\n\r\n if (increase) {\r\n if (this._capacity) {\r\n this._capacity.ReservedCount++;\r\n }\r\n\r\n if (this._tariffSale.Quota != null) {\r\n this._tariffSale.ReservedCount++;\r\n }\r\n\r\n this._count++;\r\n\r\n this._cartItemChanged.Send(this, WpEventArgs.Empty);\r\n\r\n return ActionResult.Success();\r\n }\r\n else\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Превышено допустимое количество для данного типа услуг\");\r\n }\r\n\r\n public ReduceCount(): ActionResult {\r\n if (this._count > 1) {\r\n if (this._capacity) {\r\n this._capacity.ReservedCount--;\r\n }\r\n\r\n if (this._tariffSale) {\r\n this._tariffSale.ReservedCount--;\r\n }\r\n\r\n this._count--;\r\n\r\n this._cartItemChanged.Send(this, WpEventArgs.Empty);\r\n return ActionResult.Success();\r\n }\r\n else {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Достигнуто минимальное возможное количество\");\r\n }\r\n\r\n }\r\n\r\n public IsConflictItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n\r\n public IsEqualsItem(item: CartItem): boolean {\r\n if (item.Type != CartItemTypes.Tariff) return false;\r\n\r\n let cartItem = item as TariffCartItem;\r\n return cartItem != null && cartItem._tariff.Id == this._tariff.Id && cartItem.Date == this._date &&\r\n cartItem.Seance?.SeanceId == this.Seance?.SeanceId;\r\n }\r\n\r\n public CombineItem(item: CartItem): ActionResult {\r\n let cartItem = item as TariffCartItem;\r\n\r\n if (cartItem.Count == this._maxcartitems)\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Превышено допустимое количество для данного типа услуг\");\r\n\r\n this._count = cartItem._count + this._count;\r\n\r\n this._cartItemChanged.Send(item, WpEventArgs.Empty);\r\n\r\n return ActionResult.Success();\r\n }\r\n\r\n public GetReservationItem(): Array {\r\n return [new ReservationItem(this._count, ReservationItemTypes.Tariff, this._tariff.Id, this._date, null, null, null, null, this._seance?.SeanceId)];\r\n }\r\n\r\n async RemoveItem(): Promise {\r\n if (this._capacity) {\r\n this._capacity.ReservedCount = this._capacity.ReservedCount - this.Count;\r\n }\r\n\r\n if (this._tariffSale.Quota != null) {\r\n this._tariffSale.ReservedCount = this._tariffSale.ReservedCount - this.Count;\r\n }\r\n\r\n return ActionResult.Success();\r\n }\r\n}","import Tariff from './tariff';\r\n\r\nexport default class TariffsBundle {\r\n Id: number = 0;\r\n Name: string = '';\r\n Tariffs: Array = [];\r\n}","import CartItem from './../Cart/cart-item';\r\nimport Tariff from './tariff';\r\nimport { CartItemTypes } from './../Cart/cart-item-types';\r\nimport { ActionResult, ErrorTypes, WpEventArgs } from './../Common';\r\nimport { ReservationItemTypes, ReservationItem } from './../Sale';\r\nimport * as moment from 'moment';\r\n\r\nexport default class RewriteCartItem extends CartItem {\r\n\r\n private _date: string = \"\";\r\n private _tariff: Tariff;\r\n private _price: number = 0;\r\n private _quota?: number;\r\n private _type: CartItemTypes = CartItemTypes.Rewrite;\r\n private _card: string = '';\r\n\r\n get IsAvailable(): boolean {\r\n return true;\r\n }\r\n public get Info(): string {\r\n return `${this._tariff.Name}, ${this._date} на карту ${this._card}`;\r\n }\r\n public get Type(): CartItemTypes {\r\n return this._type;\r\n }\r\n public get Price(): number {\r\n return this._price;\r\n }\r\n public get Count(): number {\r\n return 1;\r\n }\r\n public get IsCanIncreaseCount(): boolean {\r\n return false;\r\n }\r\n public get IsCanReduceCount(): boolean {\r\n return false;\r\n }\r\n public get Tariff(): Tariff {\r\n return this._tariff;\r\n }\r\n public get Date(): string {\r\n return this._date;\r\n }\r\n public get Card(): string {\r\n return this._card;\r\n }\r\n get MetricsId(): any | undefined {\r\n return this._tariff?.Id;\r\n }\r\n public get Dates(): Array {\r\n let result = new Array();\r\n\r\n if (this.Date !== undefined) {\r\n result.push(moment.parseZone(this.Date, 'YYYY-MM-DDTHH:mm').format('DD.MM.YYYY'));\r\n }\r\n\r\n return result;\r\n }\r\n public get AdditionalInfo(): any {\r\n return {\r\n card: this._card,\r\n tariff: this._tariff\r\n }\r\n }\r\n\r\n constructor(tariff: Tariff, date: string, price: number, card: string, quota?: number) {\r\n super();\r\n\r\n this._date = date;\r\n this._tariff = tariff;\r\n this._price = price;\r\n this._quota = quota;\r\n this._card = card;\r\n }\r\n\r\n public IncreaseCount(): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Превышено допустимое количество для данного типа услуг\");\r\n }\r\n\r\n public ReduceCount(): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Достигнуто минимальное возможное количество\");\r\n }\r\n\r\n public IsConflictItem(item: CartItem): boolean {\r\n if (item.Type != CartItemTypes.Rewrite) return false;\r\n\r\n let rewriteCartItem = item as RewriteCartItem;\r\n if (rewriteCartItem == null) return false;\r\n if (rewriteCartItem.Card == this.Card) return true;\r\n\r\n return false;\r\n }\r\n\r\n public IsEqualsItem(item: CartItem): boolean {\r\n return false;\r\n }\r\n\r\n public CombineItem(item: CartItem): ActionResult {\r\n return ActionResult.Failed(ErrorTypes.CartError, \"Превышено допустимое количество для данного типа услуг\");\r\n }\r\n\r\n public GetReservationItem(): Array {\r\n return [new ReservationItem(1, ReservationItemTypes.RewritableTariff, this._tariff.Id, this._date, null, null, this._card)];\r\n }\r\n\r\n async RemoveItem(): Promise {\r\n return ActionResult.Success();\r\n }\r\n}","import ITariffCapacityService from './i-tariff-capacity-service';\r\nimport { injectable, inject } from 'inversify';\r\nimport ActionResult from './../Common/action-result';\r\nimport ITariffCapacityProvider from './i-tariff-capacity-provider';\r\nimport { TariffSymbols } from './symbols';\r\nimport { TariffCapacity } from '.';\r\nimport { MLogger } from '../Global/m-logger';\r\nimport { ErrorTypes } from '../Common/error-types';\r\n\r\n\r\n@injectable()\r\nexport default class TariffCapacityService implements ITariffCapacityService {\r\n protected _capacityItems: Array = [];\r\n protected _logger: MLogger = new MLogger();\r\n protected _cache: any = [];\r\n protected _processed: any = [];\r\n\r\n protected readonly _provider: ITariffCapacityProvider;\r\n\r\n constructor(@inject(TariffSymbols.TariffCapacityProvider) provider: ITariffCapacityProvider) {\r\n this._provider = provider;\r\n }\r\n \r\n\r\n async GetCapacityAsync(tariffId: number, date: string, seanceId: string): Promise> {\r\n let capacity = await this._provider.GetCapacityAsync(tariffId, date, seanceId);\r\n\r\n if (capacity.Success && capacity.Data != null) {\r\n let capacityInArray = this._capacityItems.find(x => x.ZoneId == capacity.Data?.ZoneId && x.Date == date && x.SeanceId == capacity.Data?.SeanceId);\r\n if (capacityInArray != null) { \r\n capacityInArray.Count = capacity.Data.Count;\r\n return ActionResult.SuccessData(capacityInArray);\r\n } else {\r\n capacity.Data.TariffId = tariffId;\r\n capacity.Data.Date = date;\r\n this._capacityItems.push(capacity.Data);\r\n }\r\n }\r\n\r\n return capacity;\r\n }\r\n\r\n async RefreshCapacity(): Promise {\r\n for (let i = 0; i < this._capacityItems.length; i++) {\r\n let capacity = this._capacityItems[i];\r\n let newCapacity = await await this._provider.GetCapacityAsync(capacity.TariffId, capacity.Date, capacity.SeanceId);\r\n\r\n if (newCapacity.Success && newCapacity.Data != null)\r\n capacity.Count = newCapacity.Data.Count;\r\n }\r\n }\r\n\r\n async GetTariffsAllCapacities(id: number, date: string): Promise {\r\n console.error(\"Метод имплементирован в tariff-capacity-service-cached.ts\");\r\n return ActionResult.Failed(ErrorTypes.InternalError);\r\n }\r\n}","import { injectable, inject } from 'inversify';\r\nimport ActionResult from './../Common/action-result';\r\nimport ITariffCapacityProvider from './i-tariff-capacity-provider';\r\nimport { TariffSymbols } from './symbols';\r\nimport { TariffCapacity, TariffCapacityService } from '.';\r\nimport { MLogger } from '../Global/m-logger';\r\n\r\n\r\n@injectable()\r\nexport default class TariffCapacityServiceCached extends TariffCapacityService {\r\n protected _capacityItems: Array = [];\r\n protected _logger: MLogger = new MLogger();\r\n protected _cache: any = [];\r\n protected _processed: any = [];\r\n\r\n constructor(@inject(TariffSymbols.TariffCapacityProvider) provider: ITariffCapacityProvider) {\r\n super(provider);\r\n }\r\n\r\n async GetCapacityAsync(tariffId: number, date: string, seanceId: string): Promise> {\r\n // Form a string ID to access cached capacity\r\n let stringId = `${tariffId}_${date}_${seanceId}`;\r\n // Look up cached item\r\n let cachedItem: TariffCapacity = this._cache[`${stringId}`];\r\n\r\n // If CAPACITY has been CACHED\r\n if (cachedItem != null) {\r\n //this._logger.say(`${stringId} CAPACITY found in cache`, 'success');\r\n return ActionResult.SuccessData(cachedItem);\r\n } else {\r\n // OTHERWISE send a request on per item basis\r\n //this._logger.say(`${stringId} CAPACITY NOT CACHED. Requesting...`, 'error');\r\n\r\n let capacity = await this._provider.GetCapacityAsync(tariffId, date, seanceId);\r\n\r\n if (capacity.Success && capacity.Data != null) {\r\n let capacityInArray = this._capacityItems.find(x => x.ZoneId == capacity.Data?.ZoneId && x.Date == date && x.SeanceId == capacity.Data?.SeanceId);\r\n if (capacityInArray != null) {\r\n capacityInArray.Count = capacity.Data.Count;\r\n return ActionResult.SuccessData(capacityInArray);\r\n } else {\r\n capacity.Data.TariffId = tariffId;\r\n capacity.Data.Date = date;\r\n this._capacityItems.push(capacity.Data);\r\n }\r\n }\r\n\r\n return capacity;\r\n } \r\n }\r\n\r\n // === THIS DOESN'T SEEM TO BE USED ANYWHERE. MARKED FOR DELETION\r\n async RefreshCapacity(): Promise {\r\n for (let i = 0; i < this._capacityItems.length; i++) {\r\n let capacity = this._capacityItems[i];\r\n let newCapacity = await await this._provider.GetCapacityAsync(capacity.TariffId, capacity.Date, capacity.SeanceId);\r\n\r\n if (newCapacity.Success && newCapacity.Data != null)\r\n capacity.Count = newCapacity.Data.Count;\r\n }\r\n }\r\n // === THIS DOESN'T SEEM TO BE USED ANYWHERE. MARKED FOR DELETION\r\n\r\n // ����� ������ - http://redmine.isd.su/issues/6843\r\n async GetTariffsAllCapacities(id: number, date: string): Promise {\r\n // Form an ID type of a string to access the _cache array\r\n let stringId = `${id}_${date}`;\r\n //this._logger.say(`GET CAPACITY - ${stringId}`, 'info');\r\n\r\n if (this._processed[`${id}_${date}`] != null) {\r\n //this._logger.say(`${id}_${date} CAPACITY CACHED already! Skipping...`, 'warning');\r\n } else {\r\n // Mark as processed\r\n this._processed[`${id}_${date}`] = true;\r\n // Send request\r\n let result = await this._provider.GetTariffsAllCapacities(id, date);\r\n\r\n // If request was successful and data was obtained\r\n if (result.Success == true && result.Data != null) {\r\n //this._logger.say(`Found ${Object.keys(result.Data).length} capacity entries`, 'message');\r\n // For each item in the data\r\n for (var r in result.Data) {\r\n //this._logger.say(`CAPACITY - ${stringId}_${r}`, 'work');\r\n // Cache the capacity\r\n\r\n let TC = new TariffCapacity();\r\n TC.Count = result.Data[r].Count;\r\n TC.Capacity = result.Data[r].Capacity;\r\n TC.ZoneId = result.Data[r].ZoneId\r\n TC.TariffId = id;\r\n TC.Date = date;\r\n TC.SeanceId = r;\r\n\r\n this._cache[`${stringId}_${r}`] = TC;\r\n }\r\n }\r\n\r\n }\r\n return ActionResult.Success();\r\n }\r\n\r\n}","import './wp-registration-form.scss';\r\n\r\nimport Vue from 'vue';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport WpBaseComponent from '../../wp-base-component';\r\nimport { Ref, Watch } from 'vue-property-decorator';\r\nimport GlobalService, { INotificationService, IdentityAccountProvider, NotificationSymbols, ErrorTypes, AppSettings } from 'web-platform-core-ui';\r\nimport BaseUILocalizationDictionary from '../../Localization/base-ui-localization-terms';\r\n\r\n@Component({\r\n template: require(\"./wp-registration-form.html\")\r\n})\r\nexport default class WpRegistrationForm extends mixins>(WpBaseComponent, Vue) {\r\n protected _notificationService!: INotificationService;\r\n @Ref('RegistrationForm') RegistrationForm!: HTMLFormElement;\r\n @Ref('ConfirmPasswordInput') ConfirmPasswordInput!: any;\r\n\r\n Settings!: AppSettings;\r\n\r\n RegistrationLoading: boolean = false;\r\n RegistrationFormValid: boolean = false;\r\n CodeId: number = 0;\r\n Password: string = '';\r\n ConfirmPassword: string = '';\r\n PasswordShow: boolean = false;\r\n ConfirmPasswordShow: boolean = false;\r\n Tab: string = 'email';\r\n RegistrationStep: number = 1;\r\n Email: string = '';\r\n Agree: boolean = false;\r\n\r\n @Watch(\"Email\")\r\n EmailChanged(): void {\r\n this.$nextTick(() => {\r\n // Remove spaces\r\n try {\r\n this.Email = this.Email.replace(/\\s/, \"\");\r\n } catch (e) {\r\n //\r\n };\r\n });\r\n };\r\n\r\n @Watch(\"Password\")\r\n PasswordChanged(): void {\r\n this.$nextTick(() => {\r\n // Remove spaces\r\n try {\r\n this.Password = this.Password.replace(/\\s/, \"\");\r\n } catch (e) {\r\n //\r\n };\r\n });\r\n };\r\n\r\n @Watch(\"ConfirmPassword\")\r\n ConfirmPasswordChanged(): void {\r\n this.ConfirmPasswordInput.validate();\r\n this.$nextTick(() => {\r\n // Remove spaces\r\n try {\r\n this.ConfirmPassword = this.ConfirmPassword.replace(/\\s/, \"\");\r\n } catch (e) {\r\n //\r\n };\r\n });\r\n };\r\n\r\n get PassowrdRules() {\r\n return [\r\n (v: string) => !!v || this.Terms.FieldRequiredMessage,\r\n (v: string) => (v && v.length > 6) || this.Terms.PasswordLengthError,\r\n (v: string) => /^[а-яА-Яa-zA-Z0-9ёЁ!№;%:?*()_+=\\-<>.,/\\\\'`@#$%^&{}\\[\\]|\"\"~ ]{0,50}$/.test(v) || this.Terms.PasswordNotAvailableCharacters\r\n ];\r\n };\r\n\r\n get ConfirmPassowrdRules() {\r\n return [\r\n (v: string) => !!v || this.Terms.FieldRequiredMessage,\r\n (v: string) => v == this.Password || this.Terms.ComparePasswordError,\r\n ];\r\n };\r\n\r\n get EmailRules() {\r\n return [\r\n (v: string) => !!v || this.Terms.EmailRequiredMessage,\r\n (v: string) => /.+@.+\\..+/.test(v) || this.Terms.EmailRequiredMessage,\r\n ];\r\n };\r\n\r\n CodeConfirmed(code: any): void {\r\n this.CodeId = code.CodeId;\r\n this.RegistrationStep = 2;\r\n };\r\n\r\n async RegistrationFormSubmit(e: any): Promise {\r\n e.preventDefault();\r\n await this.Registration();\r\n };\r\n\r\n async Registration(): Promise {\r\n if (!this.RegistrationForm.validate())\r\n return;\r\n\r\n this.RegistrationLoading = true;\r\n let organizationId = this.Settings.CurrentSite != null ? this.Settings.CurrentSite.OrganizationId : 0;\r\n\r\n let _identityAccountPorvider: IdentityAccountProvider = new IdentityAccountProvider();\r\n let registrationResult = await _identityAccountPorvider.Registration(this.Email, this.Password, this.ConfirmPassword, organizationId);\r\n if (!registrationResult.Success) {\r\n this.RegistrationLoading = false;\r\n\r\n if (registrationResult.ErrorType == ErrorTypes.InvalidData) {\r\n this._notificationService.Error(\"\", registrationResult.ErrorMessage ?? this.Terms.EmailExistError);\r\n return;\r\n };\r\n\r\n this._notificationService.Error(\"\", registrationResult.ErrorMessage ?? this.Terms.InternalError);\r\n\r\n if (registrationResult.ErrorType == ErrorTypes.NotFoundData) {\r\n this.RegistrationForm.reset();\r\n this.RegistrationStep = 1;\r\n };\r\n\r\n return;\r\n };\r\n\r\n this._notificationService.Success(\"\", this.Terms.SuccessRegistrationMessage);\r\n this.RegistrationForm.reset();\r\n this.RegistrationStep = 1;\r\n this.RegistrationLoading = false;\r\n this.Back();\r\n };\r\n\r\n Oferta(): void {\r\n try {\r\n openInBrowser('https://moipass.ru/oferta');\r\n } catch {\r\n window.open('https://moipass.ru/oferta', '_blank');\r\n };\r\n };\r\n\r\n mounted(): void {\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n this.Settings = GlobalService.GetSettings();\r\n };\r\n\r\n Back(): void {\r\n this.$emit(\"Back\");\r\n };\r\n};\r\n\r\nexport class WpRegistrationFormDictionary extends BaseUILocalizationDictionary {\r\n SuccessRegistrationMessage: string = '';\r\n EmailRequiredMessage: string = '';\r\n FieldRequiredMessage: string = '';\r\n PasswordLengthError: string = '';\r\n PasswordNotAvailableCharacters: string = '';\r\n ComparePasswordError: string = '';\r\n RegistrationTitle: string = '';\r\n EmailLblText: string = '';\r\n PasswordLblText: string = '';\r\n RepeatPasswordLblText: string = '';\r\n AgreementError: string = '';\r\n BeforeAgreementLinkText: string = '';\r\n AgreementLink: string = '';\r\n AfterAgreementLinkText: string = '';\r\n RegistrationBtnText: string = '';\r\n EmailExistError: string = '';\r\n};","module.exports = \"
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n {{ date }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n {{ Bundle.Lessons[0].SkillType }}, {{ CategoryName }}
{{ $data._formatDateIsoToRu(Bundle.MinDate) }} - {{ $data._formatDateIsoToRu(Bundle.MaxDate) }}, {{ $data._formatTimeIsoToRu(Bundle.Lessons[0].BeginTime) }} - {{ $data._formatTimeIsoToRu(Bundle.Lessons[0].EndTime) }}
\\r\\n \\r\\n \\r\\n mdi-account-multiple-plus {{ Terms.GuestsAmmount }}:
\\r\\n
\\r\\n \\r\\n \\r\\n mdi-minus\\r\\n \\r\\n {{ GroupAmount }}\\r\\n \\r\\n mdi-plus\\r\\n \\r\\n \\r\\n \\r\\n

\\r\\n {{ $data._formatPrice(Price) }}\\r\\n mdi-cancel\\r\\n

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericCancel }}\\r\\n {{ Terms.GenericBuy }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\";","export const SaleSymbols = {\r\n SaleService: Symbol.for(\"SaleService\"),\r\n SaleProvider: Symbol.for(\"SaleProvider\")\r\n}","export * from \"-!../../node_modules/vuetify-loader/lib/loader.js??ref--4!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SibSaleApp.vue?vue&type=style&index=0&id=36762145&prod&lang=css&\"","import Vue from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { PropSync } from 'vue-property-decorator';\r\nimport {\r\n INotificationService, NotificationSymbols,\r\n IInstructorsService, InstructorsSymbols, InstructorsBundlesGroupsLessons, BaseSystemLocalizationDictionary\r\n} from 'web-platform-core-ui';\r\nimport { DefaultProps } from 'vue/types/options';\r\nimport { VueConstructor } from 'vue/types/umd';\r\n\r\nexport const wpInstructorsBundlesLessonsProp = Vue.extend({\r\n props: {\r\n bundles: Array,\r\n dates: Array,\r\n categoryName: String\r\n }\r\n})\r\n@Component({\r\n template: require(\"./wp-instructors-bundles-lessons.html\")\r\n})\r\n\r\nexport default class WpInstructorsBundlesLessons extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpInstructorsBundlesLessonsProp, Vue) {\r\n private _price: number = 0;\r\n protected _notificationService!: INotificationService;\r\n private _instructorsService!: IInstructorsService;\r\n\r\n @PropSync('bundlesBought', { type: Array }) BundlesBought!: Array;\r\n\r\n Bundles!: Array;\r\n Dates!: Array;\r\n BundlesAndDatesLoaded: boolean = false;\r\n CategoryName: string = '';\r\n Price: number = 0;\r\n\r\n GroupAmount: number = 1;\r\n\r\n GroupMin: number = 1;\r\n GroupMax: number = 10;\r\n get CanGroupDecrease() {\r\n return this.GroupAmount > this.GroupMin;\r\n }\r\n get CanGroupIncrease() {\r\n if (this.Bundle !== undefined) {\r\n return this.GroupAmount < this.GroupMax && this.GroupAmount < this.Bundle.Lessons[0].FreeMembers;\r\n } else {\r\n return this.GroupAmount < this.GroupMax;\r\n }\r\n }\r\n GroupDecrease(): void {\r\n if (this.GroupAmount > this.GroupMin) {\r\n this.GroupAmount--;\r\n }\r\n this.Price = this.GroupAmount * this._price;\r\n }\r\n GroupIncrease(): void {\r\n if (this.Bundle !== undefined) {\r\n if (this.GroupAmount < this.GroupMax && this.GroupAmount < this.Bundle.Lessons[0].FreeMembers) {\r\n this.GroupAmount++;\r\n }\r\n } else {\r\n if (this.GroupAmount < this.GroupMax) {\r\n this.GroupAmount++;\r\n }\r\n }\r\n this.Price = this.GroupAmount * this._price * (this.Bundle != undefined ? this.Bundle.Lessons.length : 1);\r\n }\r\n\r\n async mounted() {\r\n this.Bundles = await this.$props.bundles;\r\n this.Dates = await this.$props.dates;\r\n this.BundlesAndDatesLoaded = true;\r\n this.CategoryName = await this.$props.categoryName;\r\n if (this.Bundle !== undefined && this.Bundle.Lessons[0].FreeMembers < this.GroupMax)\r\n this.GroupMax = this.Bundle.Lessons[0].FreeMembers;\r\n\r\n this._instructorsService = this.GlobalService.Get(InstructorsSymbols.InstructorsService);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n }\r\n\r\n BundlesByDates(date: string) {\r\n let periodDates = date.split('-');\r\n let minDate = periodDates[0].trim();\r\n let maxDate = periodDates[1].trim();\r\n let result = this.Bundles.filter(x => this.DateHandler.Parse(x.MinDate, 'YYYY-MM-DDTHH:mm:SS').Format('DD.MM.YYYY') == minDate &&\r\n this.DateHandler.Parse(x.MaxDate, 'YYYY-MM-DDTHH:mm:SS').Format('DD.MM.YYYY') == maxDate); \r\n\r\n return result;\r\n }\r\n\r\n Bundle?: InstructorsBundlesGroupsLessons;\r\n BundleLoaded: boolean = false;\r\n LessonPriceLoaded: boolean = false;\r\n LessonTariffAvailable: boolean = false;\r\n\r\n PeopleAmountDialog: boolean = false;\r\n\r\n async ShowBundlePurchaseDialog(bundle: InstructorsBundlesGroupsLessons) {\r\n this.LessonPriceLoaded = false;\r\n this.LessonTariffAvailable = false;\r\n if (!this.IsBought(bundle)) {\r\n this.Bundle = this.Bundles?.find(x => x.BundleId === bundle.BundleId);\r\n this.BundleLoaded = true;\r\n this.PeopleAmountDialog = true;\r\n\r\n if (this.Bundle != null) {\r\n let price = await this._instructorsService.GetGroupLessonPriceAsync(this.Bundle.Lessons[0]);\r\n\r\n if (price.Success && price.Data !== null && price.Data !== undefined) {\r\n this._price = price.Data.PriceForOne;\r\n this.LessonTariffAvailable = true;\r\n this.Price = this.GroupAmount * this._price * this.Bundle.Lessons.length;\r\n } \r\n } else {\r\n this._notificationService.Error(\"Ошибка\", \"Занятие не найдено\");\r\n }\r\n }\r\n this.LessonPriceLoaded = true;\r\n }\r\n\r\n FormatDate(dateString: string): string {\r\n return this.DateHandler.Parse(dateString, 'YYYY-MM-DD').Format('DD.MM.YYYY');\r\n }\r\n FormatTime(dateString: string): string {\r\n return this.DateHandler.Parse(dateString, 'HH:mm:SS').Format('HH:mm');\r\n }\r\n\r\n PurchaseBundle(): void {\r\n this.$emit('purchaseBundle', this.Bundle, this.GroupAmount, this._price * (this.Bundle != undefined ? this.Bundle.Lessons.length : 1));\r\n this.PeopleAmountDialog = false;\r\n }\r\n IsBought(bundle: InstructorsBundlesGroupsLessons): boolean {\r\n let boughtLesson = this.BundlesBought.find(x => x.BundleId === bundle.BundleId);\r\n if (boughtLesson !== undefined)\r\n return true\r\n return false\r\n }\r\n}\r\n\r\nexport class WpInstructorsBundlesLessonsDictionary extends BaseSystemLocalizationDictionary {\r\n Vacant: string = '';\r\n GuestsAmmount: string = '';\r\n}","export default class LTTariffGroup {\r\n Id: number = 0;\r\n Name: string = '';\r\n Children: string = '';\r\n Parent: number = 0;\r\n Tariffs: string = '';\r\n Description: string = '';\r\n ImageLink: string = '';\r\n Index: number = 0;\r\n\r\n static GetSubroups(item: LTTariffGroup): Array {\r\n if (item.Children == null || item.Children == '') return [];\r\n try {\r\n return JSON.parse(item.Children) as Array;\r\n } catch {\r\n return [];\r\n }\r\n }\r\n\r\n static GetTariffs(item: LTTariffGroup): Array {\r\n if (item.Tariffs == null || item.Tariffs == '') return [];\r\n try {\r\n return JSON.parse(item.Tariffs) as Array;\r\n } catch {\r\n return [];\r\n }\r\n }\r\n}","import './wp-arena-seats.scss';\r\n\r\nimport Vue from 'vue';\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport GlobalService, {\r\n ArenaSector, ArenaSeat, ArenaTariff, ArenaSeance, Cart, CartItemTypes, ArenaCartItem, INotificationService, NotificationSymbols,\r\n AppSettings, ActionResult, ArenaTariffOption, IArenaService, ArenaSymbols, ArenaCartItemState, WpEventArgs, IMetricsService, MetricsSymbols, BaseSystemLocalizationDictionary, ErrorTypes\r\n} from 'web-platform-core-ui';\r\nimport { Prop, DefaultProps } from 'vue/types/options';\r\nimport { Watch, PropSync } from 'vue-property-decorator';\r\nimport { MetricsEvents } from '../../../metrics-events-symbols';\r\nimport { VueConstructor } from 'vue/types/umd';\r\nimport BaseUILocalizationDictionary from './../../../Localization/base-ui-localization-terms';\r\n\r\nexport const wpArenaSeatItemProp = Vue.extend({\r\n props: {\r\n Cart: Object as Prop,\r\n Color: String,\r\n Seat: Object as Prop,\r\n Tariff: Object as Prop,\r\n Sector: Object as Prop,\r\n Seance: Object as Prop\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-arena-seat-item.html\")\r\n})\r\nexport default class WpArenaSeatItem extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, Vue, wpArenaSeatItemProp) {\r\n private _metricsService!: IMetricsService;\r\n private _arenaService!: IArenaService;\r\n protected _notificationService!: INotificationService;\r\n\r\n Settings!: AppSettings;\r\n CartItem?: ArenaCartItem;\r\n IsReserved: boolean = false;\r\n Loading: boolean = false;\r\n\r\n get TranslateString() {\r\n return `translate(${(this.Seat.X - 1) * 49 + this.Seat.X + 55}, ${(this.Seat.Y - 1) * 49 + this.Seat.Y + 2 + 55})`;\r\n };\r\n\r\n get CartItems() {\r\n return this.Cart._items;\r\n }\r\n\r\n mounted(): void {\r\n this.Settings = GlobalService.GetSettings();\r\n\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n this._arenaService = this.GlobalService.Get(ArenaSymbols.ArenaService);\r\n this._metricsService = this.GlobalService.Get(MetricsSymbols.MetricsService);\r\n\r\n this.Cart?.Items?.forEach((x: ArenaCartItem) => {\r\n if (x.Type == CartItemTypes.ArenaTicket) {\r\n let cartItem = x as ArenaCartItem;\r\n if (cartItem !== undefined && cartItem.Seat.PlaceCode == this.Seat.PlaceCode) {\r\n this.CartItem = cartItem;\r\n this.CartItem.CartItemChanged.Subscribe(this.ItemRemoved);\r\n this.IsReserved = true;\r\n this.Seat.IsFree = true;\r\n this.Cart.CartChanged.Subscribe(this.CartChanged);\r\n };\r\n };\r\n });\r\n };\r\n\r\n async SeatSelected() {\r\n if (this.$parent.$data.Panning === false && this.$parent.$data.Buying === false && this.$parent.$data.Zooming === false) {\r\n if (this.CartItem == null) {\r\n if (!this.Seat.IsFree) return;\r\n\r\n if (this.Cart.LeftCount == 0) {\r\n this._notificationService.Error(this.Terms.GenericError, this.Terms.ErrorCartIsFull);\r\n return;\r\n };\r\n };\r\n\r\n if (this.CartItem == null && this.Tariff != null && this.Tariff.Options != null && this.Tariff.Options.length > 0) {\r\n this.$emit('ShowOptions', { tariff: this.Tariff, reservateFunc: this.SeatReservate });\r\n } else {\r\n this.SeatReservate(undefined);\r\n };\r\n };\r\n };\r\n\r\n async SeatReservate(option?: ArenaTariffOption) {\r\n this.Loading = true;\r\n this.$emit('SetBuying', true);\r\n\r\n if (this.CartItem == null) {\r\n this.CartItem = new ArenaCartItem(this._arenaService);\r\n\r\n this.CartItem.OrderId = this.Cart.OrderId;\r\n this.CartItem.Seat = this.Seat;\r\n this.CartItem.Sector = this.Sector;\r\n this.CartItem.Seance = this.Seance;\r\n this.CartItem.Tariff = this.Tariff;\r\n this.CartItem.Option = option;\r\n this.CartItem.SibId = this.Settings.SibId;\r\n\r\n let result = await this.CartItem.ReservateItem();\r\n\r\n if (!result.Success) {\r\n this.CartItem = undefined;\r\n\r\n if (result.ErrorType == ErrorTypes.SeatIsOccupied) {\r\n this.Seat.IsFree = false;\r\n this._notificationService.Error(this.Terms.GenericError, this.Terms.ErrorSeatIsOccupied);\r\n } else {\r\n this._notificationService.Error(this.Terms.GenericError, result.ErrorMessage ? result.ErrorMessage : this.Terms.InternalError);\r\n };\r\n } else {\r\n let result = this.Cart.AddItem(this.CartItem);\r\n\r\n this._metricsService.RegistrateEvent(MetricsEvents.ArenaSeatReservate, this.CartItem?.Seance?.Id);\r\n\r\n if (!result.Success) {\r\n this._notificationService.Error(this.Terms.GenericError, result.ErrorMessage ? result.ErrorMessage : this.Terms.InternalError);\r\n };\r\n this.Cart.OrderId = this.CartItem.OrderId;\r\n this.CartItem?.CartItemChanged.Subscribe(this.ItemRemoved);\r\n this.IsReserved = true;\r\n this.Cart.CartChanged.Subscribe(this.CartChanged);\r\n };\r\n } else {\r\n let result = await this.Cart.RemoveItem(this.CartItem.TempId);\r\n this._metricsService.RegistrateEvent(MetricsEvents.ArenaSeatUnreservate, this.CartItem?.Seance?.Id);\r\n if (!result.Success) {\r\n this._notificationService.Error(this.Terms.GenericError, result.ErrorMessage ? result.ErrorMessage : this.Terms.InternalError);\r\n };\r\n };\r\n this.$emit('SetBuying', false);\r\n this.Loading = false;\r\n };\r\n\r\n MouseEnter(event: any) {\r\n if (!this.Seat.IsFree) return;\r\n let seatPosition = event.target.getBoundingClientRect();\r\n this.$emit('SeatMouseEnter', { tariff: this.Tariff, seat: this.Seat, left: seatPosition.left + 15, top: seatPosition.top + 15 });\r\n };\r\n\r\n MouseLeave() {\r\n this.$emit('SeatMouseLeave', this.Seat);\r\n };\r\n\r\n ItemRemoved(e: any, args: WpEventArgs) {\r\n if (this.CartItem != null) {\r\n this.Tariff = this.CartItem.Tariff;\r\n this.Seat.TariffCode = this.CartItem.Tariff.TariffCode;\r\n this.Seat.IsFree = true;\r\n this.IsReserved = false;\r\n this.CartItem.CartItemChanged.Unsubscribe(this.ItemRemoved);\r\n this.CartItem = undefined;\r\n this.Cart.CartChanged.Unsubscribe(this.CartChanged);\r\n };\r\n };\r\n\r\n CartChanged(e: any, args: WpEventArgs) {\r\n if (this.CartItem == null) return;\r\n\r\n let cart = e as Cart;\r\n\r\n if (cart != null && (cart.Items == null || cart.Items.length == 0)) {\r\n this.CartItem = undefined;\r\n this.IsReserved = false;\r\n };\r\n };\r\n};\r\n\r\nexport class WpArenaSeatItemDictionary extends BaseUILocalizationDictionary {\r\n ErrorCartIsFull: string = \"\";\r\n ErrorSeatIsOccupied: string = \"\";\r\n};","export default class SkillType {\r\n Id: number = 0;\r\n Name: string = '';\r\n PlaceId: number = 0;\r\n Code?: number;\r\n}","module.exports = \"\\r\\n \\r\\n {{ Entity.Title }}\\r\\n \\r\\n \\r\\n \\r\\n {{ Entity.Preview }}\\r\\n \\r\\n \\r\\n \\r\\n Подробнее\\r\\n \\r\\n \\r\\n\\r\\n\";","export enum ClubCardType {\r\n cctDefault = 0,\r\n cctBarcode = 1,\r\n cctStripe = 4\r\n}","export default class OrderItemAdditionalInfo {\r\n // todo\r\n}","import Vue, { VueConstructor } from 'vue';\r\nimport { Prop, DefaultProps } from \"vue/types/options\";\r\nimport WpBaseComponent from './../../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport { OrderItem, PersonificationApiOrderItem, PersonSale, IContext, IdentitySymbols, BaseSystemLocalizationDictionary } from 'web-platform-core-ui';\r\nimport { Watch } from 'vue-property-decorator';\r\n\r\nexport const wpPersonificationBundleFromProps = Vue.extend({\r\n props: {\r\n OrderItem: Object as Prop,\r\n Personification: Object as Prop,\r\n UserPersons: Array\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-personification-bundle-form.html\")\r\n})\r\nexport default class WpPersonificationBundleForm extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpPersonificationBundleFromProps, Vue) {\r\n private _selectedPerson!: PersonSale;\r\n\r\n IsAuthetificated: boolean = false;\r\n IsDisabled: boolean = false;\r\n\r\n Yesterday = new Date(new Date().setDate(new Date().getDate() - 1)).toISOString().substr(0, 10);\r\n\r\n // ///////////////////////////////////\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\r\n // WATCH EVERY FIELD TO REMOVE SPACES (Maybe there is a better solution?)\r\n // Point of interest: v-model.trim doesn't seem to work for v-text-field\r\n @Watch(\"Personification.FirstName\")\r\n PFN(): void {\r\n this.$nextTick(() => {\r\n this.Personification.FirstName = this.RemoveSpaces(this.Personification.FirstName);\r\n });\r\n };\r\n @Watch(\"Personification.LastName\")\r\n PLN(): void {\r\n this.$nextTick(() => {\r\n this.Personification.LastName = this.RemoveSpaces(this.Personification.LastName);\r\n });\r\n };\r\n @Watch(\"Personification.SecondName\")\r\n PSN(): void {\r\n this.$nextTick(() => {\r\n this.Personification.SecondName = this.RemoveSpaces(this.Personification.SecondName);\r\n });\r\n };\r\n RemoveSpaces(text: string): string {\r\n return text.replace(/\\s+/g, \"\").trim();\r\n };\r\n // \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\/////////////////////////////////\r\n\r\n public Genders: Array = [\r\n { text: 'Мужской', value: \"1\" },\r\n { text: 'Женский', value: \"2\" },\r\n ];\r\n\r\n get SelectedPerson() {\r\n return this._selectedPerson;\r\n }\r\n set SelectedPerson(personId: any) {\r\n this._selectedPerson = this.UserPersons.find((x: PersonSale) => (x as PersonSale).PersonId == personId) as PersonSale;\r\n\r\n if (this._selectedPerson === undefined || this._selectedPerson.PersonId == 0) {\r\n this.Personification.PersonId = this.OrderItem.AdditionalInfo.PersonId;\r\n\r\n this.Personification.FirstName = '';\r\n this.Personification.LastName = '';\r\n this.Personification.SecondName = '';\r\n this.Personification.Phone = '';\r\n\r\n this.IsDisabled = false;\r\n } else {\r\n this.Personification.PersonId = this._selectedPerson.PersonId;\r\n this.Personification.FirstName = this._selectedPerson.FirstName;\r\n this.Personification.LastName = this._selectedPerson.LastName;\r\n this.Personification.SecondName = this._selectedPerson.SecondName;\r\n this.Personification.Phone = this._selectedPerson.Phone;\r\n\r\n this.IsDisabled = true;\r\n }\r\n }\r\n\r\n BirthdateMenu: boolean = false;\r\n Birthdate: string = \"\";\r\n\r\n get BirthdateRules() {\r\n return [\r\n (v: string) => v !== '' || 'Поле нельзя оставить пустым'\r\n ];\r\n }\r\n\r\n get RadioRules() {\r\n return [\r\n (v: string) => !!v || 'Выберите один из вариантов'\r\n ];\r\n }\r\n\r\n\r\n get BirthdateFormatted(): string {\r\n return this.Birthdate != '' ? this.DateHandler.Parse(this.Birthdate, 'YYYY-MM-DD').Format('DD.MM.YYYY') : '';\r\n }\r\n\r\n UpdateBirthdate(): void {\r\n if (this.Birthdate !== '') {\r\n this.Personification!.BirthDate = this.DateHandler.Parse(this.Birthdate, 'YYYY-MM-DD').Format('YYYY-MM-DDT12:00:00');\r\n }\r\n else {\r\n this.Personification!.BirthDate = null;\r\n }\r\n }\r\n\r\n get Rules(): any {\r\n return {\r\n required: (value: string) => !!value || this.Terms.FieldRequired,\r\n personname: (value: string) => {\r\n const pattern = /^[a-zA-Zа-яёА-ЯЁ\\-]+( [a-zA-Zа-яёА-ЯЁ\\-]+)*$/\r\n if (value === '') return true;\r\n return pattern.test(value) || this.Terms.UnacceptableCharacters\r\n }\r\n }\r\n }\r\n\r\n created() {\r\n let context = this.GlobalService.Get(IdentitySymbols.Context);\r\n this.IsAuthetificated = context.CurrentIdentity.IsAuthentificated;\r\n this.SelectedPerson = this.UserPersons[0] as PersonSale;\r\n }\r\n}\r\n\r\nexport class WpPersonificationBundleFormDictionary extends BaseSystemLocalizationDictionary {\r\n LabelFirstName: string = 'Имя';\r\n LabelSecondName: string = 'Отчество';\r\n LabelLastName: string = 'Фамилия';\r\n LabelBirthDate: string = 'Дата рождения';\r\n LabelGender: string = 'Пол';\r\n FieldRequired: string = 'Необходимо заполнить';\r\n UnacceptableCharacters: string = 'Введены недопустимые символы';\r\n PersonifyOn: string = 'Персонифицировать на:';\r\n}","export enum LoyaltyProgramType {\r\n // todo\r\n}","import { injectable, inject } from 'inversify';\r\n\r\nimport GlobalService from './../Global/global-service';\r\nimport { InstructorsPersonalCartItem, InstructorsPersonalLesson, InstructorsGroupLesson, InstructorsGroupCartItem, InstructorsBundlesCartItem, InstructorsBundlesGroupsLessons } from './../Instructors';\r\nimport { TariffCartItem, Tariff, TariffsBundle, RewriteCartItem, TariffSale, TariffSeance, ITariffCapacityService, TariffSymbols, TariffCapacity, ITariffService } from '../Tariffs';\r\n\r\nimport Cart from './cart';\r\nimport { CartItemTypes } from './cart-item-types';\r\nimport CartItem from './cart-item';\r\nimport ICartProvider from './i-cart-provider';\r\nimport ICartService from './i-cart-service';\r\nimport { CartSymbols } from './symbols';\r\nimport BundleCartItem from './../Tariffs/bundle-cart-item';\r\nimport * as util from 'util';\r\nimport { ArenaSeance, ArenaSector, ArenaTariff, ArenaTariffOption, ArenaSeat, ArenaCartItem, IArenaService, ArenaSymbols } from './../Arena';\r\nimport { IMarketService, MarketSymbols, MarketTariffCartItem, MarketClient, MarketDateTimeRange, MarketRule, MarketEmployee, MarketBillCartItem, MarketBill } from '../Market';\r\nimport { NewContractCartItem, ContractClubTariffCartItem } from '../Club';\r\nimport { AccountReplenishmentCartItem } from '../Loyalty';\r\nimport { SyntechParkingCartItem } from '../Syntech';\r\n\r\n@injectable()\r\nexport default class CartService implements ICartService {\r\n private _cart?: Cart;\r\n\r\n private _arenaService: IArenaService;\r\n private _provider: ICartProvider;\r\n private _marketService: IMarketService;\r\n private _tariffCapacityService: ITariffCapacityService;\r\n private _tariffService: ITariffService; \r\n\r\n constructor(@inject(CartSymbols.CartProvider) provider: ICartProvider,\r\n @inject(ArenaSymbols.ArenaService) arenaService: IArenaService,\r\n @inject(MarketSymbols.MarketService) marketService: IMarketService,\r\n @inject(TariffSymbols.TariffCapacityService) capacityService: ITariffCapacityService,\r\n @inject(TariffSymbols.TariffService) tariffService: ITariffService) {\r\n this._provider = provider;\r\n this._arenaService = arenaService;\r\n this._marketService = marketService;\r\n this._tariffCapacityService = capacityService;\r\n this._tariffService = tariffService;\r\n }\r\n\r\n async GetCurrentOrCreateCartAsync(): Promise {\r\n if (this._cart == null) {\r\n let settings = GlobalService.GetSettings();\r\n\r\n let jsonCart = await this._provider.GetCurrentCartAsync();\r\n\r\n if (jsonCart !== null && jsonCart !== '') {\r\n try {\r\n let cart = JSON.parse(jsonCart);\r\n\r\n if (cart._siteId != settings.SiteId) {\r\n throw Error(\"Existing cart for another site\"); \r\n }\r\n\r\n let cartInstance = new Cart(cart._siteId, cart._sessionId, this._arenaService, settings.CartMaxItems, cart._orderId);\r\n this._cart = cartInstance;\r\n\r\n let currentCart = this._cart;\r\n let items = cart._items as Array;\r\n for (let i = 0; i < items.length; i++) {\r\n let x = items[i];\r\n let cartItem: CartItem;\r\n switch (x._type) {\r\n case CartItemTypes.SyntechParking:\r\n cartItem = this.CreateSyntechParkingCartItem(x, cartInstance);\r\n break;\r\n case CartItemTypes.AccountReplenishment:\r\n cartItem = this.CreateAccountReplenishmentCartItem(x, cartInstance);\r\n break;\r\n case CartItemTypes.ContractAdditionalService:\r\n cartItem = this.CreateContractClubTariffCartItem(x, cartInstance);\r\n break;\r\n case CartItemTypes.NewClubContract:\r\n cartItem = this.CreateNewContractCartItem(x, cartInstance);\r\n break;\r\n case CartItemTypes.ArenaTicket:\r\n cartItem = this.CreateArenaCartItem(x, cartInstance);\r\n break;\r\n case CartItemTypes.InstructorsGroupLesson:\r\n cartItem = this.CreateInstructorsGroupCartItem(x, cartInstance);\r\n break;\r\n case CartItemTypes.InstructorsPersonalLesson:\r\n cartItem = this.CreateInstructorsPersonalCartItem(x, cartInstance);\r\n break;\r\n case CartItemTypes.Tariff:\r\n cartItem = await this.CreateTariffCartItem(x, cartInstance);\r\n break;\r\n case CartItemTypes.Rewrite:\r\n cartItem = this.CreateRewriteTariffCartItem(x, cartInstance);\r\n break;\r\n case CartItemTypes.Bundle:\r\n cartItem = await this.CreateBundleCartItem(x, cartInstance);\r\n break;\r\n case CartItemTypes.InstructorsBundleLessons:\r\n cartItem = this.CreateInstructorsBundleCartItem(x, cartInstance);\r\n break;\r\n case CartItemTypes.MarketTariff:\r\n cartItem = this.CreateMarketTariffCartItem(x, cartInstance);\r\n break;\r\n case CartItemTypes.MarketBill:\r\n cartItem = this.CreateMarketBillCartItem(x, cartInstance);\r\n break;\r\n default:\r\n cartItem = this.CreateInstructorsPersonalCartItem(x, cartInstance);\r\n break;\r\n }\r\n\r\n currentCart.AddItem(cartItem);\r\n }\r\n } catch (err) {\r\n console.error(`Cart parse error: ${err}`);\r\n this._cart = new Cart(settings.SiteId, settings.SessionId, this._arenaService, settings.CartMaxItems);\r\n }\r\n }\r\n else\r\n this._cart = new Cart(settings.SiteId, settings.SessionId, this._arenaService, settings.CartMaxItems);\r\n\r\n if (settings.ResetCart) {\r\n this._cart.Clear();\r\n }\r\n\r\n this._cart.CartChanged.Subscribe(async (sender, e) => {\r\n\r\n let cache: any[] = [];\r\n let jsonCart = JSON.stringify(this._cart, function (key, value) {\r\n //if (typeof value === 'object' && value !== null) {\r\n // if (cache.indexOf(value) !== -1) {\r\n // return;\r\n // }\r\n // cache.push(value);\r\n //}\r\n if (key === '_cart') return;\r\n if (key === '_arenaService') return;\r\n\r\n return value;\r\n });\r\n cache = [];\r\n\r\n await this._provider.SaveCartAsync(jsonCart);\r\n });\r\n }\r\n\r\n return this._cart;\r\n }\r\n\r\n protected CreateMarketTariffCartItem(cartItem: any, cart: Cart): MarketTariffCartItem {\r\n let rule: MarketRule = new MarketRule();\r\n let schedule: MarketDateTimeRange = new MarketDateTimeRange();\r\n let client: MarketClient = new MarketClient();\r\n let employee: MarketEmployee;\r\n\r\n rule.typename = cartItem.Rule.typename;\r\n rule.AccessMask = cartItem.Rule.AccessMask;\r\n rule.CompositeName = cartItem.Rule.CompositeName;\r\n rule.GlobalMask = cartItem.Rule.GlobalMask;\r\n rule.Duration = cartItem.Rule.Duration;\r\n rule.id = cartItem.Rule.id;\r\n rule.IsProduct = cartItem.Rule.IsProduct;\r\n rule.ModificationTS = cartItem.Rule.ModificationTS;\r\n rule.Name = cartItem.Rule.Name;\r\n rule.Price = cartItem.Rule.Price;\r\n rule.Quantity = cartItem.Rule.Quantity;\r\n rule.Service = cartItem.Rule.Service;\r\n rule.State = cartItem.Rule.State;\r\n\r\n schedule.id = cartItem.Period.id;\r\n schedule.typename = cartItem.Period.typename;\r\n schedule.AccessMask = cartItem.Period.AccessMask;\r\n schedule.CompositeName = cartItem.Period.CompositeName;\r\n schedule.GlobalMask = cartItem.Period.GlobalMask;\r\n schedule.ModificationTS = cartItem.Period.ModificationTS;\r\n schedule.StartDateTime = cartItem.Period.StartDateTime;\r\n schedule.EndDateTime = cartItem.Period.EndDateTime;\r\n\r\n client.Id = cartItem.Client.Id;\r\n\r\n let result = new MarketTariffCartItem(this._marketService);\r\n\r\n result.OrderId = cartItem.OrderId;\r\n result.OrderItemId = cartItem.OrderItemId;\r\n result.Period = schedule;\r\n result.Client = client;\r\n result.Rule = rule;\r\n\r\n if (cartItem.Employee != null) {\r\n employee = new MarketEmployee();\r\n\r\n employee.id = cartItem.Employee.id;\r\n employee.typename = cartItem.Employee.typename;\r\n employee.AccessMask = cartItem.Employee.AccessMask;\r\n employee.CompositeName = cartItem.Employee.CompositeName;\r\n employee.GlobalMask = cartItem.Employee.GlobalMask;\r\n employee.FirstName = cartItem.Employee.FirstName;\r\n employee.LastName = cartItem.Employee.LastName;\r\n\r\n result.Employee = employee;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n protected CreateArenaCartItem(cartItem: any, cart: Cart): ArenaCartItem {\r\n let seance: ArenaSeance = new ArenaSeance();\r\n let sector: ArenaSector = new ArenaSector();\r\n let tariff: ArenaTariff = new ArenaTariff();\r\n let seat: ArenaSeat = new ArenaSeat();\r\n let seatOption: ArenaTariffOption | undefined;\r\n\r\n\r\n seance.Id = cartItem.Seance.Id;\r\n seance.Name = cartItem.Seance.Name;\r\n seance.EventCode = cartItem.Seance.EventCode;\r\n seance.EventId = cartItem.Seance.EventId;\r\n seance.EventName = cartItem.Seance.EventName;\r\n seance.EndDate = cartItem.Seance.EndDate;\r\n seance.BeginDate = cartItem.Seance.BeginDate;\r\n seance.SaleEndDate = cartItem.Seance.SaleEndDate;\r\n\r\n sector.SectorCode = cartItem.Sector.SectorCode;\r\n sector.Name = cartItem.Sector.Name;\r\n sector.PlacesWithoutNumbers = sector.PlacesWithoutNumbers;\r\n\r\n tariff.TariffCode = cartItem.Tariff.TariffCode;\r\n tariff.Name = cartItem.Tariff.Name;\r\n tariff.MinPrice = cartItem.Tariff.MinPrice;\r\n tariff.MaxPrice = cartItem.Tariff.MaxPrice;\r\n tariff.Price = cartItem.Tariff.Price;\r\n\r\n if (cartItem.Tariff.Options != null) {\r\n let tariffOptions: Array = [];\r\n\r\n cartItem.Tariff.Options.forEach((x: any) => {\r\n let option = new ArenaTariffOption();\r\n\r\n option.OptionCode = x.OptionCode;\r\n option.Name = x.Name;\r\n option.Price = x.Price;\r\n });\r\n\r\n tariff.Options = tariffOptions;\r\n }\r\n\r\n seat.PlaceCode = cartItem.Seat.PlaceCode;\r\n seat.LineName = cartItem.Seat.LineName;\r\n seat.PlaceName = cartItem.Seat.PlaceName;\r\n seat.TariffCode = cartItem.Seat.TariffCode;\r\n seat.X = cartItem.Seat.X;\r\n seat.Y = cartItem.Seat.Y;\r\n\r\n if (cartItem.Option != null) {\r\n seatOption = new ArenaTariffOption();\r\n\r\n seatOption.OptionCode = cartItem.Option.OptionCode;\r\n seatOption.Name = cartItem.Option.Name;\r\n seatOption.Price = cartItem.Option.Price;\r\n }\r\n\r\n let result = new ArenaCartItem(this._arenaService);\r\n\r\n result.OrderId = cartItem.OrderId;\r\n result.OrderItemId = cartItem.OrderItemId;\r\n result.SibId = cartItem.SibId;\r\n\r\n result.Seat = seat;\r\n result.Sector = sector;\r\n result.Seance = seance;\r\n result.Tariff = tariff;\r\n result.Option = seatOption\r\n\r\n return result;\r\n }\r\n\r\n protected CreateInstructorsBundleCartItem(cartItem: any, cart: Cart): InstructorsBundlesCartItem {\r\n let bundle = new InstructorsBundlesGroupsLessons();\r\n\r\n bundle.BundleId = cartItem._bundle.BundleId;\r\n bundle.MinDate = cartItem._bundle.MinDate;\r\n bundle.MaxDate = cartItem._bundle.MaxDate;\r\n\r\n\r\n cartItem._bundle.Lessons.forEach(function (item: any) {\r\n let lesson = new InstructorsGroupLesson();\r\n\r\n lesson.Id = item.Id;\r\n lesson.BeginTime = item.BeginTime;\r\n lesson.Date = item.Date;\r\n lesson.EndTime = item.EndTime;\r\n lesson.MaxPersonsCount = item.MaxPersonsCount;\r\n lesson.FreeMembers = item.FreeMembers;\r\n lesson.PlaceId = item.PlaceId;\r\n lesson.SkillType = item.SkillType;\r\n lesson.TariffId = item.TariffId;\r\n lesson.TariffName = item.TariffName;\r\n\r\n bundle.Lessons.push(lesson);\r\n });\r\n\r\n return new InstructorsBundlesCartItem(bundle, cartItem._count, cartItem._price, cart);\r\n }\r\n\r\n protected CreateInstructorsGroupCartItem(cartItem: any, cart: Cart): InstructorsGroupCartItem {\r\n let lesson = new InstructorsGroupLesson();\r\n\r\n lesson.Id = cartItem._lesson.Id;\r\n lesson.BeginTime = cartItem._lesson.BeginTime;\r\n lesson.Date = cartItem._lesson.Date;\r\n lesson.EndTime = cartItem._lesson.EndTime;\r\n lesson.MaxPersonsCount = cartItem._lesson.MaxPersonsCount;\r\n lesson.FreeMembers = cartItem._lesson.FreeMembers;\r\n lesson.PlaceId = cartItem._lesson.PlaceId;\r\n lesson.SkillType = cartItem._lesson.SkillType;\r\n lesson.TariffId = cartItem._lesson.TariffId;\r\n lesson.TariffName = cartItem._lesson.TariffName;\r\n\r\n return new InstructorsGroupCartItem(lesson, cartItem._count, cartItem._price, cart, cartItem._lessonCoachId, cartItem._lessonLocationId);\r\n }\r\n\r\n protected CreateInstructorsPersonalCartItem(cartItem: any, cart: Cart): InstructorsPersonalCartItem {\r\n let lesson = new InstructorsPersonalLesson();\r\n\r\n lesson.Id = cartItem._lesson.Id;\r\n lesson.BeginTime = cartItem._lesson.BeginTime;\r\n lesson.Date = cartItem._lesson.Date;\r\n lesson.EndTime = cartItem._lesson.EndTime;\r\n lesson.MaxPersonsCount = cartItem._lesson.MaxPersonsCount;\r\n lesson.PlaceId = cartItem._lesson.PlaceId;\r\n lesson.SkillType = cartItem._lesson.SkillType;\r\n lesson.PriceForOne = cartItem._lesson.PriceForOne;\r\n lesson.PriceForSecond = cartItem._lesson.PriceForSecond;\r\n lesson.TariffId = cartItem._lesson.TariffId;\r\n lesson.TariffName = cartItem._lesson.TariffName;\r\n\r\n return new InstructorsPersonalCartItem(lesson, cartItem._count, cart);\r\n }\r\n\r\n protected async CreateTariffCartItem(cartItem: any, cart: Cart): Promise {\r\n let tariff = new Tariff();\r\n\r\n tariff.Id = cartItem._tariff.Id;\r\n tariff.TariffCode = cartItem._tariff.TariffCode;\r\n tariff.Name = cartItem._tariff.Name;\r\n tariff.GroupId = cartItem._tariff.GroupId;\r\n tariff.GroupName = cartItem._tariff.GroupName;\r\n tariff.Category = cartItem._tariff.Category;\r\n tariff.WorkingDays = cartItem._tariff.WorkingDays;\r\n tariff.Description = cartItem._tariff.Description;\r\n tariff.Quota = cartItem._tariff.Quota;\r\n tariff.CalendarEnabled = cartItem._tariff.CalendarEnabled;\r\n tariff.StartSale = cartItem._tariff.StartSale;\r\n tariff.EndSale = cartItem._tariff.EndSale;\r\n tariff.ZIndex = cartItem._tariff.ZIndex;\r\n tariff.RequiredPersonification = cartItem._tariff.RequiredPersonification;\r\n tariff.IsRewritable = cartItem._tariff.IsRewritable;\r\n\r\n let tariffSeance: TariffSeance | undefined;\r\n if (cartItem._seance != null) {\r\n tariffSeance = new TariffSeance();\r\n tariffSeance.SeanceId = cartItem._seance.SeanceId;\r\n tariffSeance.SeanceValue = cartItem._seance.SeanceValue;\r\n }\r\n\r\n let tariffCapacity: TariffCapacity | undefined;\r\n if (cartItem._capacity != null) {\r\n let capacity = await this._tariffCapacityService.GetCapacityAsync(tariff.Id, cartItem._capacity.Date, cartItem._capacity.SeanceId);\r\n if (capacity.Success && capacity.Data != undefined)\r\n tariffCapacity = capacity.Data;\r\n }\r\n\r\n let tariffSale = new TariffSale();\r\n if (cartItem._tariffSale.TariffId != 0) {\r\n let tariffSaleResult = await this._tariffService.GetSingleTariffSalesAsync(cartItem._tariffSale.Date, tariff, cartItem._seance?.SeanceId);\r\n if (tariffSaleResult.Success && tariffSaleResult.Data != null)\r\n tariffSale = tariffSaleResult.Data;\r\n }\r\n\r\n return new TariffCartItem(tariff, cartItem._count, cartItem._date, cartItem._price, cart, tariffSale, tariffSeance, tariffCapacity);\r\n }\r\n\r\n protected CreateRewriteTariffCartItem(cartItem: any, cart: Cart): RewriteCartItem {\r\n let tariff = new Tariff();\r\n\r\n tariff.Id = cartItem._tariff.Id;\r\n tariff.Name = cartItem._tariff.Name;\r\n tariff.GroupId = cartItem._tariff.GroupId;\r\n tariff.GroupName = cartItem._tariff.GroupName;\r\n tariff.Category = cartItem._tariff.Category;\r\n tariff.WorkingDays = cartItem._tariff.WorkingDays;\r\n tariff.Description = cartItem._tariff.Description;\r\n tariff.Quota = cartItem._tariff.Quota;\r\n tariff.CalendarEnabled = cartItem._tariff.CalendarEnabled;\r\n tariff.StartSale = cartItem._tariff.StartSale;\r\n tariff.EndSale = cartItem._tariff.EndSale;\r\n tariff.ZIndex = cartItem._tariff.ZIndex;\r\n tariff.RequiredPersonification = cartItem._tariff.RequiredPersonification;\r\n tariff.IsRewritable = cartItem._tariff.IsRewritable;\r\n\r\n return new RewriteCartItem(tariff, cartItem._date, cartItem._price, cartItem._card, cartItem._quota);\r\n }\r\n\r\n protected async CreateBundleCartItem(cartItem: any, cart: Cart): Promise {\r\n let bundle: TariffsBundle = new TariffsBundle();\r\n let tariffsSales: Array = [];\r\n let tariffsCapacity: Array = [];\r\n\r\n bundle.Id = cartItem._bundle.Id;\r\n bundle.Name = cartItem._bundle.Name;\r\n\r\n let tariffSeance: TariffSeance | undefined;\r\n if (cartItem._seance != null) {\r\n tariffSeance = new TariffSeance();\r\n tariffSeance.SeanceId = cartItem._seance.SeanceId;\r\n tariffSeance.SeanceValue = cartItem._seance.SeanceValue;\r\n }\r\n\r\n for (let i = 0; i < cartItem._bundle.Tariffs.length; i++) {\r\n let x = cartItem._bundle.Tariffs[i];\r\n\r\n let tariff = new Tariff();\r\n\r\n tariff.Id = x.Id;\r\n tariff.Name = x.Name;\r\n tariff.GroupId = x.GroupId;\r\n tariff.GroupName = x.GroupName;\r\n tariff.Category = x.Category;\r\n tariff.WorkingDays = x.WorkingDays;\r\n tariff.Description = x.Description;\r\n tariff.Quota = x.Quota;\r\n tariff.CalendarEnabled = x.CalendarEnabled;\r\n tariff.StartSale = x.StartSale;\r\n tariff.EndSale = x.EndSale;\r\n tariff.ZIndex = x.ZIndex;\r\n tariff.RequiredPersonification = x.RequiredPersonification;\r\n tariff.IsRewritable = x.IsRewritable;\r\n\r\n bundle.Tariffs.push(tariff);\r\n\r\n\r\n let tariffCapacity: TariffCapacity | undefined;\r\n if (cartItem._capacity[i] != undefined) {\r\n let capacity = await this._tariffCapacityService.GetCapacityAsync(tariff.Id, cartItem._capacity[i].Date, cartItem._capacity[i].SeanceId);\r\n if (capacity.Success && capacity.Data != undefined)\r\n tariffCapacity = capacity.Data;\r\n }\r\n\r\n tariffsCapacity.push(tariffCapacity);\r\n\r\n\r\n let tariffSale = new TariffSale();\r\n let tariffSaleResult = await this._tariffService.GetSingleTariffSalesAsync(cartItem._sales[i].Date, tariff, cartItem._seance?.SeanceId);\r\n if (tariffSaleResult.Success && tariffSaleResult.Data != null)\r\n tariffSale = tariffSaleResult.Data;\r\n\r\n tariffsSales.push(tariffSale);\r\n\r\n\r\n }\r\n\r\n return new BundleCartItem(bundle, cartItem._date, cartItem._price, tariffsSales, tariffsCapacity, tariffSeance);\r\n }\r\n\r\n protected CreateMarketBillCartItem(cartItem: any, cart: Cart): MarketBillCartItem {\r\n let bill: MarketBill = new MarketBill();\r\n let schedule: MarketDateTimeRange = new MarketDateTimeRange();\r\n let client: MarketClient = new MarketClient();\r\n let employee: MarketEmployee;\r\n\r\n bill.typename = cartItem.Bill.typename;\r\n bill.AccessMask = cartItem.Bill.AccessMask;\r\n bill.CompositeName = cartItem.Bill.CompositeName;\r\n bill.GlobalMask = cartItem.Bill.GlobalMask;\r\n bill.id = cartItem.Bill.id;\r\n\r\n bill.Email = cartItem.Bill.Email;\r\n bill.Phone = cartItem.Bill.Phone;\r\n bill.Status = cartItem.Bill.Status;\r\n bill.Price = cartItem.Bill.Price;\r\n\r\n return new MarketBillCartItem(bill);\r\n }\r\n\r\n protected CreateNewContractCartItem(cartItem: any, cart: Cart): NewContractCartItem {\r\n return new NewContractCartItem(cartItem._id, cartItem._date, cartItem._name, cartItem._price, cartItem._code);\r\n }\r\n\r\n protected CreateContractClubTariffCartItem(cartItem: any, cart: Cart): ContractClubTariffCartItem {\r\n return new ContractClubTariffCartItem(cartItem._id, cartItem._templateContractId, cartItem._personContractId,\r\n cartItem._date, cartItem._name, cartItem._price, cartItem._code);\r\n }\r\n\r\n protected CreateAccountReplenishmentCartItem(cartItem: any, cart: Cart): AccountReplenishmentCartItem {\r\n return new AccountReplenishmentCartItem(cartItem._price, cartItem._personId);\r\n }\r\n\r\n protected CreateSyntechParkingCartItem(cartItem: any, cart: Cart): SyntechParkingCartItem {\r\n let tariffId: number = cartItem._tariffId;\r\n let sessionId: string = cartItem._sessionId;\r\n let ticket: string = cartItem._ticket;\r\n let price: number = cartItem._price;\r\n\r\n return new SyntechParkingCartItem(ticket, sessionId, price, tariffId);\r\n }\r\n}","module.exports = \"
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ $data._formatPrice(CartItem.Price) }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
    \\r\\n
  • {{ tariff.Name }}
  • \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n mdi-trash-can-outline\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\";","export const TennisSymbols = {\r\n ContractAccess: Symbol.for(\"LTContractAccess\")\r\n}","export default class InstructorCategory {\r\n Id: number = 0;\r\n Name: string = '';\r\n Status: number = 0;\r\n}\r\n","import { InstructorsGroupLesson } from './';\r\n\r\nexport default class InstructorsBundlesGroupsLessons {\r\n BundleId: number = 0;\r\n MinDate?: string;\r\n MaxDate?: string;\r\n Lessons: Array = [];\r\n}","import './wp-personification.scss';\r\n\r\nimport Vue from 'vue';\r\nimport WpBaseComponent from './../../wp-base-component';\r\nimport Component, { mixins } from 'vue-class-component';\r\nimport {\r\n OrderSale, ISaleService, SaleSymbols, OrderItem, INotificationService, NotificationSymbols,\r\n PersonSale, IContext, IdentitySymbols, PersonificationApiOrderItem, BaseSystemLocalizationDictionary\r\n} from 'web-platform-core-ui';\r\nimport { OrderItemType } from 'web-platform-core-ui/src/Sale/order-item-type';\r\nimport { DefaultProps } from 'vue/types/options';\r\nimport { VueConstructor } from 'vue/types/umd';\r\nimport BaseUILocalizationDictionary from './../../Localization/base-ui-localization-terms';\r\n\r\nexport const wpPersonificationProps = Vue.extend({\r\n props: {\r\n OrderId: Number,\r\n PersonificationItems: Array\r\n }\r\n})\r\n\r\n@Component({\r\n template: require(\"./wp-personification.html\")\r\n})\r\nexport default class WpPersonification extends mixins, DefaultProps, VueConstructor>(WpBaseComponent, wpPersonificationProps, Vue) {\r\n OrderLoading: boolean = true;\r\n Order: OrderSale = new OrderSale();\r\n UserPersons: Array = [];\r\n\r\n protected _service!: ISaleService;\r\n protected _notificationService!: INotificationService;\r\n\r\n get TotalSum(): number {\r\n let sum = 0;\r\n this.Order.Items.forEach(x => sum += x.TotalSum);\r\n return sum;\r\n }\r\n\r\n Bundles: any = {};\r\n Items: Array = [];\r\n\r\n async mounted() {\r\n this.UserPersons = [{\r\n FirstName: this.Terms.PersonSaleFirstName, LastName: this.Terms.PersonSaleLastName, PersonId: 0, TNodId: 0, Phone: '', SecondName: ''\r\n }]\r\n this.OrderLoading = true;\r\n this._service = await this.GlobalService.Get(SaleSymbols.SaleService);\r\n this._notificationService = this.GlobalService.Get(NotificationSymbols.NotificationService);\r\n\r\n let context = this.GlobalService.Get(IdentitySymbols.Context);\r\n\r\n let order = await this._service.GetOrderAsync(this.OrderId);\r\n if (!order.Success || order.Data === undefined || order.Data === null)\r\n this._notificationService.Error(this.Terms.GenericError, order.ErrorMessage ? order.ErrorMessage : this.Terms.InternalError);\r\n else\r\n this.Order = order.Data;\r\n\r\n this.HandlingItems();\r\n this.OrderLoading = false;\r\n\r\n if (context.CurrentIdentity.IsAuthentificated) {\r\n let userArray = await this._service.GetPersonificationUserPersons(context.CurrentIdentity.UserId);\r\n if (userArray.Data !== undefined) {\r\n userArray.Data.forEach(x => this.UserPersons.push(x));\r\n }\r\n }\r\n }\r\n\r\n protected HandlingItems() {\r\n let items = this.Order.Items.filter(x => (x.Type == OrderItemType.TariffPersonification ||\r\n x.Type == OrderItemType.TariffBarcodePesonification ||\r\n x.Type == OrderItemType.TariffRewritablePesonification)\r\n && x.AdditionalInfo != undefined && x.AdditionalInfo.Info != undefined &&\r\n x.AdditionalInfo.Info != null && x.AdditionalInfo.Info.includes('_unknow'));\r\n\r\n\r\n let bundles: any = {};\r\n let singleItems: Array = [];\r\n\r\n this.PersonificationItems.splice(0);\r\n items.forEach((element) => {\r\n let bundleId = element.BundleId;\r\n let personification = new PersonificationApiOrderItem();\r\n personification.Id = element.Id;\r\n personification.PersonId = element.AdditionalInfo.PersonId;\r\n personification.IsdTariffpersonification = element.AdditionalInfo.PersonificationQuestionnaire.Members;\r\n\r\n this.PersonificationItems.push(personification);\r\n\r\n if (element.BundleId !== null && element.BundleId !== undefined && element.BundleId !== '') {\r\n if (bundleId in bundles) {\r\n bundles[bundleId].push({ OrderItem: element, Personification: personification });\r\n }\r\n else {\r\n bundles[bundleId] = [];\r\n bundles[bundleId].push({ OrderItem: element, Personification: personification });\r\n }\r\n } else {\r\n singleItems.push({ OrderItem: element, Personification: personification });\r\n }\r\n });\r\n\r\n this.Bundles = bundles;\r\n this.Items = singleItems;\r\n }\r\n\r\n async ItemRemove(item: OrderItem) {\r\n let removeResult = await this._service.RemoveItemAsync(item.Id);\r\n\r\n if (removeResult.Success) {\r\n if (item.BundleId != null) {\r\n this.Order.Items = this.Order.Items.filter(x => x.BundleId != item.BundleId);\r\n }\r\n else {\r\n this.Order.Items = this.Order.Items.filter(x => x.Id != item.Id);\r\n }\r\n }\r\n else {\r\n this._notificationService.Error(this.Terms.GenericError, removeResult.ErrorMessage ? removeResult.ErrorMessage : this.Terms.InternalError);\r\n }\r\n\r\n if (this.Order.Items.filter(x => (x.Type == OrderItemType.TariffPersonification ||\r\n x.Type == OrderItemType.TariffBarcodePesonification ||\r\n x.Type == OrderItemType.TariffRewritablePesonification)\r\n && x.AdditionalInfo != undefined && x.AdditionalInfo.Info.includes('_unknow')).length == 0) {\r\n this.Order = new OrderSale();\r\n this.$emit(\"RemovedAllItems\", this.Order.Items.length > 0);\r\n }\r\n\r\n this.HandlingItems();\r\n }\r\n}\r\n\r\nexport class WpPersonificationDictionary extends BaseUILocalizationDictionary {\r\n PersonSaleFirstName: string = 'клиента';\r\n PersonSaleLastName: string = 'Нового';\r\n GenericTotalSum: string = 'Итого';\r\n GenericTotalSumDiscounted: string = 'Итого со скидкой';\r\n}","import ClubCard from './club-card';\r\nimport ClubCardVisit from './club-card-visit';\r\nimport { ClubCardType } from './club-card-type';\r\nimport { ContractActualPeriod } from './contract-actual-period';\r\nimport { FixedPriceType } from './fixed-price-type';\r\nimport { ContractPaymentType } from './contract-payment-type';\r\nimport { ContractPeriod } from './contract-period';\r\nimport { ContractProcedure } from './contract-procedure';\r\nimport { ContractServicePeriod } from './contract-service-period';\r\nimport { PPSContractStatus } from './pps-contract-status';\r\nimport { OwnerType } from './owner-type';\r\nimport { ClubSymbols } from './symbols';\r\nimport { ClubContractStatus } from './club-contract-status';\r\nimport IClubProvider from './i-club-provider';\r\nimport DefaultClubProvider from './default-club-provider';\r\nimport ClubAppSettings from './club-app-settings';\r\nimport DefaultClubService from './default-club-service';\r\nimport IClubService, { ClubLesson } from './i-club-service';\r\nimport NewContractCartItem from './new-contract-cart-item';\r\nimport SoldClubContract from './sold-club-contract';\r\nimport ClubContract from './club-contract';\r\nimport SoldContractChangedEventArgs from './sold-contract-changed-event-args';\r\nimport ContractClubTariffCartItem from './contract-club-tariff-cart-item';\r\nimport ContractService from './contract-service';\r\nimport ContractClubPackageCartItem from './contract-club-package-cart-item';\r\n\r\nexport {\r\n ClubCard,\r\n ClubCardVisit,\r\n ClubCardType,\r\n ContractServicePeriod,\r\n ContractProcedure,\r\n ContractPeriod,\r\n ContractPaymentType,\r\n FixedPriceType,\r\n ContractActualPeriod,\r\n PPSContractStatus,\r\n OwnerType,\r\n ClubSymbols,\r\n ClubContractStatus,\r\n IClubService,\r\n IClubProvider,\r\n ClubAppSettings,\r\n DefaultClubProvider,\r\n DefaultClubService,\r\n NewContractCartItem,\r\n SoldClubContract,\r\n ClubContract,\r\n SoldContractChangedEventArgs,\r\n ContractClubTariffCartItem,\r\n ContractService,\r\n ClubLesson,\r\n ContractClubPackageCartItem\r\n}","export enum ErrorTypes {\r\n InternalError = 1,\r\n SystemError = 2,\r\n AccessDenied = 3,\r\n NotFoundData = 5,\r\n InvalidData = 6,\r\n CartError = 7,\r\n TariffNotAvailableForSale = 8,\r\n QuotaExceededForTariff = 9,\r\n SeatIsOccupied = 10,\r\n MediaCardIsLocked = 11,\r\n MediaCardNotFound = 12,\r\n MediaCardExpired = 13,\r\n MediaCardInProcess = 14,\r\n CartItemsConflict = 15,\r\n CardWithSoTypeTariff = 16,\r\n RewriteTariffNotAvailable = 17,\r\n LessonNotAvailable = 18,\r\n FreeTicketLimit = 10000\r\n}","module.exports = \"
\\r\\n \\r\\n

\\r\\n {{ Terms.GenericChildren }}\\r\\n {{ Terms.GenericAdd }}\\r\\n

\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{ Child.FirstName }} {{ Child.SecondName }} {{ Child.LastName }}\\r\\n \\r\\n \\r\\n \\r\\n mdi-account-edit\\r\\n {{ Terms.GenericEdit }}\\r\\n \\r\\n \\r\\n mdi-close-circle-outline\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericChildData }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericAdd }}\\r\\n {{ Terms.GenericUpdate }}\\r\\n {{ Terms.GenericCancel }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{ Terms.GenericConfirm }}\\r\\n \\r\\n {{ Terms.GenericYes }}\\r\\n \\r\\n {{ Terms.GenericCancel }}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\";"],"sourceRoot":""}