{"version":3,"sources":["application/common/models/UpdatePodcastStatusOptions.js","application/common/models/UpdateStationStatusOptions.js","application/common/models/UpdateNakiNigunArtistStatusOptions.js","application/common/models/UpdateNakiNigunAlbumStatusOptions.js","application/common/models/UpdateTorahAnytimeCollectionStatusOptions.js","baasic-react-bootstrap/src/components/layout/content/MrbEditFormFooter.jsx","baasic-react-bootstrap/src/components/layout/content/MrbEditFormValidation.jsx","baasic-react-bootstrap/src/components/layout/content/MrbEditFormContent.jsx","baasic-react-bootstrap/src/components/layout/content/MrbListContent.jsx","baasic-react-bootstrap/src/components/layout/content/MrbEditContent.jsx","baasic-react-bootstrap/src/components/layout/content/MrbPreviewContent.jsx","baasic-react-bootstrap/src/components/layout/utils/getPageObject.js","baasic-react-bootstrap/src/components/layout/utils/renderActions.js","themes/default/administration/producer/components/cell/ProducerNameCellTemplate.jsx","themes/default/administration/producer/components/content-loader/AdminProducerSummaryLoaderTemplate.jsx","themes/default/administration/producer/components/content-loader/ProducerAccountListLoaderTemplate.jsx","themes/default/administration/producer/components/content-loader/AddNewAccountLoaderTemplate.jsx","themes/default/administration/producer/components/content-loader/ProducerBalanceInfoLoaderTemplate.jsx","themes/default/administration/producer/components/AdminProducerAccountBalanceEditTemplate.jsx","themes/default/administration/producer/components/AdminProducerAccountEditTemplate.jsx","themes/default/administration/producer/components/AdminProducerAccountsListTemplate.jsx","themes/default/administration/producer/components/ProducerPaymentReportTemplate.jsx","themes/default/administration/producer/components/ProducerPaymentReportSummaryTemplate.jsx","themes/default/administration/producer/components/ProducerPreviewSummaryTemplate.jsx","themes/default/administration/producer/components/ProducerPreviewMostPopularContentTemplate.jsx","themes/default/administration/producer/components/AdminProducerAccountSummaryPreviewTemplate.jsx","themes/default/administration/producer/components/AdminProducerAccountStripeAccountEditTemplate.jsx","themes/default/administration/producer/components/AdminProducerListSummaryPreviewTemplate.jsx","themes/default/administration/producer/components/AdminProducerAccountAssignedProducersPreviewTemplate.jsx","administration/producer/components/cell/ProducerNameCell.jsx","administration/producer/components/content-loader/AdminProducerSummaryLoader.jsx","administration/producer/components/content-loader/ProducerAccountListLoader.jsx","administration/producer/components/content-loader/AddNewAccountLoader.jsx","administration/producer/components/content-loader/ProducerBalanceInfoLoader.jsx","administration/producer/components/AdminProducerAccountBalanceEdit.jsx","administration/producer/components/AdminProducerAccountsList.jsx","administration/producer/components/AdminProducerAccountEdit.jsx","administration/producer/components/ProducerPaymentReportSummary.jsx","administration/producer/components/ProducerPreviewSummary.jsx","administration/producer/components/ProducerPreviewMostPopularContent.jsx","administration/producer/components/AdminProducerAccountSummaryPreview.jsx","administration/producer/components/AdminProducerAccountStripeAccountEdit.jsx","administration/producer/components/AdminProducerListSummaryPreview.jsx","administration/producer/components/AdminProducerAccountAssignedProducersPreview.jsx","baasic-react-bootstrap/src/components/collapsible-panel/MrbCollapsiblePanelHeader.jsx","baasic-react-bootstrap/src/components/collapsible-panel/MrbCollapsiblePanelBody.jsx","baasic-react-bootstrap/src/components/collapsible-panel/MrbCollapsiblePanel.jsx","common/constants/applicationDefaults.js","common/constants/applicationErrorCodes.js","common/constants/deviceMenuTypes.js","common/constants/nakiRadioRoles.js","common/constants/nakiRadioSystemTypes.js","common/constants/podcastContentType.js","common/constants/podcastType.js","common/constants/reportVersions.js","common/constants/shuffleType.js","common/constants/subscriptionPlans.js","common/constants/subscriptionStatuses.js","common/constants/nakiRadioProductCategoryAbbreviations.js","common/constants/producerTypes.js","baasic-react-bootstrap/src/core/utils/apiParameters.js","baasic-react-bootstrap/src/core/utils/buildAuthorizedMenu.js","baasic-react-bootstrap/src/core/utils/flattenArray.js","common/components/empty-state/EmptyState.jsx","common/components/empty-state/StatsWidgetEmptyState.jsx","baasic-react-bootstrap/src/common/index.js","baasic-react-bootstrap/src/components/tabs/MrbTabViewStore.js","baasic-react-bootstrap/src/components/tabs/MrbTabHeader.jsx","baasic-react-bootstrap/src/components/tabs/MrbTabHeaders.jsx","baasic-react-bootstrap/src/components/tabs/MrbTabContent.jsx","baasic-react-bootstrap/src/components/tabs/MrbTabLayout.jsx","../node_modules/validatorjs/src/lang sync /^/.*$","application/home/filters/HomeContentFilter.js","application/home/filters/HomeGenericSearchFilter.js","application/home/stores/HomeGenericSearchViewStore.js","application/home/models/HomeGridItemDecorator.js","application/home/stores/HomeFeaturedContentViewStore.js","application/home/stores/HomeRouteStore.js","application/home/stores/HomeViewStore.js","application/home/stores/BaseHomePreviewViewStore.js","application/home/stores/HomeStationRouteStore.js","application/home/stores/HomeStationViewStore.js","application/home/stores/podcast/BaseHomePodcastRouteStore.js","application/home/stores/podcast/HomePodcastRouteStore.js","application/home/stores/podcast/HomePodcastGroupRouteStore.js","application/home/stores/podcast/BaseHomePodcastViewStore.js","application/home/stores/podcast/HomePodcastViewStore.js","application/home/stores/podcast/HomePodcastGroupViewStore.js","application/home/stores/podcast/HomeSubPodcastViewStore.js","application/home/stores/HomeManageSelectedItemsViewStore.js","baasic-react-bootstrap/src/components/layout/content/form/MrbFieldLabel.jsx","baasic-react-bootstrap/src/components/layout/content/form/MrbFieldValidation.jsx","baasic-react-bootstrap/src/components/layout/content/form/MrbFieldLayout.jsx","themes/default/application/common/components/content-policy/ContentPolicyModalTemplate.jsx","themes/default/application/common/components/content-policy/ContentPolicyWidgetTemplate.jsx","themes/default/application/common/components/content-unavailable-modal/ContentUnavailableModalTemplate.jsx","themes/default/application/common/components/naki-nigun-album-unavailable/NakiNigunAlbumUnavailableInAppTemplate.jsx","themes/default/application/common/components/naki-nigun-artist-unavailable/NakiNigunArtistUnavailableInAppTemplate.jsx","themes/default/application/common/components/podcast-unavailable/PodcastUnavailableInAppTemplate.jsx","themes/default/application/common/components/station-unavailable/StationUnavailableInAppTemplate.jsx","application/common/components/content-policy/ContentPolicyModal.jsx","application/common/components/content-policy/ContentPolicyWidgetViewStore.js","application/common/components/content-policy/ContentPolicyWidget.jsx","application/common/components/content-unavailable-modal/ContentUnavailableModal.jsx","application/common/components/naki-nigun-album-unavailable/NakiNigunAlbumUnavailableInApp.jsx","application/common/components/naki-nigun-artist-unavailable/NakiNigunArtistUnavailableInApp.jsx","application/common/components/podcast-unavailable/PodcastUnavailableInApp.jsx","application/common/components/station-unavailable/StationUnavailableInApp.jsx","common/stores/BaseCoverImageUploadViewStore.js","common/stores/UserDeviceSyncStore.js","common/stores/UserDeviceStore.js","common/stores/MainRouteStore.js","common/stores/PremiumSubscriptionStore.js","application/common/stores/UserContentManagerStore.js","common/stores/RootStore.js","common/stores/MainSidebarViewStore.js","common/stores/NakiRadioUserStore.js","common/stores/NakiRadioApplicationSectionStore.js","common/stores/JoyrideViewStore.js","common/stores/ContentEncoderSyncStore.js","common/stores/DownloadManagerStore.js","common/components/content-loader/CoverImageUploadLoader.jsx","common/components/content-loader/PreviewContentLoader.jsx","common/components/content-loader/AddStationsOrPodcastsLoader.jsx","common/components/content-loader/UploadedImageLoader.jsx","common/components/content-loader/DescriptionLoader.jsx","common/components/content-loader/ChangePasswordLoader.jsx","common/components/content-loader/ToggleActionsLoader.jsx","common/components/content-loader/UploadAlbumTrackLoader.jsx","common/components/cover-image-upload/CoverImageUpload.jsx","common/components/image/Image.jsx","common/components/input/CurrencyInputField.jsx","common/components/popover/Popover.jsx","common/components/playlist-tags/PlaylistSelectStore.js","common/components/tags/StatusTag.jsx","common/components/accordion/Accordion.jsx","common/components/progressbar/Progressbar.jsx","common/components/dropdown/CustomDropdown.jsx","common/components/password-field-info/PasswordFieldInfoViewStore.js","common/components/password-field-info/PasswordFieldInfo.jsx","common/components/card/FloatingCard.jsx","common/components/ApplicationWidgetPanel.jsx","common/components/AppStartupLoader.jsx","common/components/MainSidebar.jsx","common/components/TableNoDataOverlay.jsx","common/components/DragDropList.jsx","common/components/rich-text-editor/RichTextEditor.jsx","common/components/rich-text-editor/FieldRichTextEditor.jsx","common/components/HTMLRender.jsx","common/components/Genres.jsx","common/components/PremiumBadge.jsx","common/components/ImageUploadNote.jsx","common/components/JoyrideOnboarding.jsx","common/components/AdministrationWidgetPanel.jsx","baasic-react-bootstrap/src/core/contexts/RootContext.js","baasic-react-bootstrap/src/components/button/MrbButton.jsx","baasic-react-bootstrap/src/components/button/MrbFeedbackButton.jsx","baasic-react-bootstrap/src/components/breadcrumbs/MrbBreadcrumbsOptions.jsx","baasic-react-bootstrap/src/components/breadcrumbs/MrbBreadcrumbs.jsx","baasic-react-bootstrap/src/components/pager/MrbPager.jsx","baasic-react-bootstrap/src/components/date-picker/MrbDatePicker.jsx","baasic-react-bootstrap/src/components/date-picker/MrbFieldDatePicker.jsx","common/services/app-home-section/AppHomeSectionApiRouteService.js","common/services/app-home-section/AppHomeSectionService.js","common/services/app-home-section/FeaturedSectionFileStreamApiRouteService.js","common/services/app-home-section/FeaturedSectionFileStreamService.js","common/services/content/ContentApiRouteService.js","common/services/content/ContentService.js","common/services/day-hour/DayHourApiRouteService.js","common/services/day-hour/DayHourService.js","common/services/day-hour/DayHourCacheService.js","common/services/device/DeviceApiRouteService.js","common/services/device/DeviceService.js","common/services/device-analytics/DeviceAnalyticsApiRouteService.js","common/services/device-analytics/DeviceAnalyticsService.js","common/services/device-menu-type/DeviceMenuTypeApiRouteService.js","common/services/device-menu-type/DeviceMenuTypeService.js","common/services/device-menu-type/DeviceMenuTypeCacheService.js","common/services/episode-sort-type/EpisodeSortTypeApiRouteService.js","common/services/episode-sort-type/EpisodeSortTypeService.js","common/services/episode-sort-type/EpisodeSortTypeCacheService.js","common/services/genre-lookup/GenreLookupApiRouteService.js","common/services/genre-lookup/GenreLookupService.js","common/services/language/LanguageApiRouteService.js","common/services/language/LanguageService.js","common/services/location/LocationApiRouteService.js","common/services/location/LocationService.js","common/services/media-vault/MediaVaultStreamService.js","common/services/naki-nigun/NakiNigunAlbumApiRouteService.js","common/services/naki-nigun/NakiNigunAlbumFileStreamApiRouteService.js","common/services/naki-nigun/NakiNigunArtistApiRouteService.js","common/services/naki-nigun/NakiNigunAlbumFileStreamService.js","common/services/naki-nigun/NakiNigunAlbumService.js","common/services/naki-nigun/NakiNigunArtistService.js","common/services/naki-nigun/NakiNigunArtistFileStreamApiRouteService.js","common/services/naki-nigun/NakiNigunArtistFileStreamService.js","common/services/naki-nigun/NakiNigunUserContentApiRouteService.js","common/services/naki-nigun/NakiNigunUserContentService.js","common/services/order/OrderApiRouteService.js","common/services/order/OrderService.js","common/services/payment/PaymentApiRouteService.js","common/services/payment/PaymentService.js","common/services/podcast/PodcastApiRouteService.js","common/services/podcast/PodcastService.js","common/services/podcast/PodcastFileStreamApiRouteService.js","common/services/podcast/PodcastFileStreamService.js","common/services/podcast/UserPodcastExpirationApiRouteService.js","common/services/podcast/UserPodcastExpirationService.js","common/services/podcast-analytics/PodcastAnalyticsApiRouteService.js","common/services/podcast-analytics/PodcastAnalyticsService.js","common/services/premium-payment-analytics/PremiumPaymentAnalyticsApiRouteService.js","common/services/premium-payment-analytics/PremiumPaymentAnalyticsService.js","common/services/producer/ProducerApiRouteService.js","common/services/producer/ProducerService.js","common/services/producer/ProducerReportApiRouteService.js","common/services/producer/ProducerReportService.js","common/services/producer/ProducerUserAccountService.js","common/services/producer/ProducerUserAccountApiRouteService.js","common/services/producer-analytics/ProducerAnalyticsApiRouteService.js","common/services/producer-analytics/ProducerAnalyticsService.js","common/services/product/ProductApiRouteService.js","common/services/product/ProductService.js","common/services/shuffle/ShuffleApiRouteService.js","common/services/shuffle/ShuffleService.js","common/services/shuffle-weight/ShuffleWeightApiRouteService.js","common/services/shuffle-weight/ShuffleWeightService.js","common/services/shuffle-weight/ShuffleWeightCacheService.js","common/services/station/StationApiRouteService.js","common/services/station/StationService.js","common/services/station/StationFileStreamApiRouteService.js","common/services/station/StationFileStreamService.js","common/services/station/StationFileApiRouteService.js","common/services/station/StationFileService.js","common/services/station/UserStationExpirationApiRouteService.js","common/services/station/UserStationExpirationService.js","common/services/station-analytics/StationAnalyticsApiRouteService.js","common/services/station-analytics/StationAnalyticsService.js","common/services/torahanytime/TorahAnytimeApiRouteService.js","common/services/torahanytime/TorahAnytimeService.js","common/services/torahanytime/UserTorahAnytimeCollectionApiRouteService.js","common/services/torahanytime/UserTorahAnytimeCollectionService.js","common/services/user-content/UserContentApiRouteService.js","common/services/user-content/UserContentService.js","common/services/user-account/UserAccountApiRouteService.js","common/services/user-account/UserAccountService.js","common/services/week-day/WeekDayApiRouteService.js","common/services/week-day/WeekDayService.js","common/services/week-day/WeekDayCacheService.js","common/services/portal-analytics/PortalAnalyticsService.js","common/services/portal-analytics/PortalAnalyticsApiRouteService.js","common/services/user-settings/UserSettingsApiRouteService.js","common/services/user-settings/UserSettingsService.js","common/services/naki-nigun-analytics/NakiNigunAnalyticsApiRouteService.js","common/services/naki-nigun-analytics/NakiNigunAnalyticsService.js","common/services/rss-sync/RssSyncApiRouteService.js","common/services/rss-sync/RssSyncService.js","common/services/genre/GenreApiRouteService.js","common/services/genre/GenreService.js","common/services/playlist/PlaylistApiRouteService.js","common/services/playlist/PlaylistService.js","common/services/CoverImageFactory.js","baasic-react-bootstrap/src/core/cache/BaseCacheManager.js","baasic-react-bootstrap/src/core/cache/mrbCacheManager.js","baasic-react-bootstrap/src/core/cache/BaseCacheService.js","common/models/StripeField.js","common/models/DownloadRequest.js","baasic-react-bootstrap/src/components/loader/MrbProgressBarLoader.jsx","baasic-react-bootstrap/src/components/loader/MrbLoaderStore.js","baasic-react-bootstrap/src/components/loader/MrbContentLoaderStore.js","baasic-react-bootstrap/src/components/loader/skeleton/MrbFormFieldContentLoader.jsx","baasic-react-bootstrap/src/components/loader/skeleton/MrbLineContentLoader.jsx","baasic-react-bootstrap/src/components/loader/skeleton/MrbHeaderLoader.jsx","baasic-react-bootstrap/src/components/loader/skeleton/MrbRectangleContentLoader.jsx","baasic-react-bootstrap/src/components/loader/skeleton/MrbContentLoader.jsx","baasic-react-bootstrap/src/components/loader/skeleton/MrbHeaderWithoutImageLoader.jsx","baasic-react-bootstrap/src/common/utils/arrayDifference.js","baasic-react-bootstrap/src/common/utils/isSome.js","baasic-react-bootstrap/src/common/utils/renderIf.js","baasic-react-bootstrap/src/common/utils/mrbFileUtility.js","baasic-react-bootstrap/src/common/utils/mergeCss.js","baasic-react-bootstrap/src/common/utils/mergeOrOverrideCss.js","baasic-react-bootstrap/src/common/utils/timeZoneConverter.js","common/hoc/defaultTemplate.jsx","common/hoc/stripeProvider.jsx","baasic-react-bootstrap/src/core/infrastructure/ModuleProvider.js","baasic-react-bootstrap/src/core/infrastructure/moduleProviderFactory.js","baasic-react-bootstrap/src/core/infrastructure/moduleBuilder.js","baasic-react-bootstrap/src/core/infrastructure/applicationBootstrapper.js","common/components/stripe/StripeAccountFieldSelect.jsx","common/components/stripe/StripeAccountLink.jsx","common/components/stripe/StripeFieldValidation.jsx","common/components/stripe/StripeCreditCardField.jsx","themes/default/administration/analytics/layouts/AnalyticsLayoutTemplate.jsx","administration/analytics/layouts/AnalyticsLayout.jsx","baasic-react-bootstrap/src/components/layout/page/MrbPageContentFooter.jsx","baasic-react-bootstrap/src/components/layout/page/MrbPageContentHeader.jsx","baasic-react-bootstrap/src/components/layout/page/MrbPageContentSidebar.jsx","baasic-react-bootstrap/src/components/layout/page/MrbPageFooter.jsx","baasic-react-bootstrap/src/components/layout/page/MrbPageHeader.jsx","baasic-react-bootstrap/src/components/layout/page/MrbPageContent.jsx","baasic-react-bootstrap/src/components/layout/page/MrbPage.jsx","baasic-react-bootstrap/src/components/layout/page/MrbEditPageHeader.jsx","baasic-react-bootstrap/src/components/layout/page/MrbEditPage.jsx","baasic-react-bootstrap/src/components/layout/page/MrbListPage.jsx","baasic-react-bootstrap/src/components/layout/page/MrbPreviewPageHeader.jsx","baasic-react-bootstrap/src/components/layout/page/MrbPreviewPage.jsx","baasic-react-bootstrap/src/core/form/utils/uriFormat.js","baasic-react-bootstrap/src/core/form/validation/mrbDefaultFormRules.js","baasic-react-bootstrap/src/core/form/validation/mrbDefaultValidationErrors.js","baasic-react-bootstrap/src/core/form/validation/MrbValidationRules.js","administration/analytics/utils/spanDataSetToFullDateRange.js","administration/analytics/utils/createTimeRangeChartLabel.js","administration/analytics/utils/timeRangeLabelParser.js","baasic-react-bootstrap/src/components/empty-state/MrbEmptyState.jsx","baasic-react-bootstrap/src/components/gravatar/MrbGravatar.jsx","baasic-react-bootstrap/src/components/recaptcha/MrbRecaptcha.jsx","baasic-react-bootstrap/src/components/recaptcha/MrbRecaptchaViewStore.js","baasic-react-bootstrap/src/components/recaptcha/MrbRecaptchaPrivacyPolicy.jsx","common/components/charts/line/LineChartStore.js","common/components/charts/line/LineChart.jsx","common/components/charts/doughnut/DoughnutChartStore.js","common/components/charts/doughnut/DoughnutChart.jsx","baasic-react-bootstrap/src/core/models/Error.js","baasic-react-bootstrap/src/core/models/MenuItem.js","baasic-react-bootstrap/src/core/models/NavigationOptions.js","baasic-react-bootstrap/src/components/notify-outside-click/MrbNotifyOutsideClick.jsx","themes/default/assets/images/placeholder-template.svg","themes/default/assets/images/logo-spa.svg","baasic-react-bootstrap/src/components/layout/MrbHeader.jsx","baasic-react-bootstrap/src/components/layout/MrbEditFormLayout.jsx","baasic-react-bootstrap/src/common/formatting/mrbDefaultFormats.js","baasic-react-bootstrap/src/common/formatting/MrbBaseFormatter.js","baasic-react-bootstrap/src/common/formatting/boolFormatter.js","baasic-react-bootstrap/src/common/formatting/dateFormatter.js","baasic-react-bootstrap/src/common/formatting/currencyFormatter.js","baasic-react-bootstrap/src/common/formatting/MrbApplicationFormatter.js","baasic-react-bootstrap/src/common/storage/handler/localStorageHandler.js","baasic-react-bootstrap/src/common/storage/StorageProvider.js","baasic-react-bootstrap/src/common/storage/localStorageProvider.js","baasic-react-bootstrap/src/core/infrastructure/router/utils.js","baasic-react-bootstrap/src/core/infrastructure/router/MrbRouter.js","baasic-react-bootstrap/src/core/infrastructure/router/StateRouteOptions.js","baasic-react-bootstrap/src/core/infrastructure/router/StateRoute.js","baasic-react-bootstrap/src/core/infrastructure/router/renderComponent.js","baasic-react-bootstrap/src/core/infrastructure/router/renderParentComponent.js","baasic-react-bootstrap/src/core/infrastructure/router/flattenRoutes.js","baasic-react-bootstrap/src/core/infrastructure/router/getDefaultRouteDataMap.js","baasic-react-bootstrap/src/core/infrastructure/router/ApplicationRouterView.jsx","baasic-react-bootstrap/src/core/infrastructure/router/MrbRouterLink.jsx","common/utils/currencyFormatter.js","common/utils/numberFormatter.js","common/utils/roundedCurrencyFormatter.js","common/utils/UUID.js","common/utils/sideScroll.js","common/utils/calculatePercantageIncrease.js","common/utils/calculateNumberOfColumns.js","common/utils/calculateNumberOfTorahAnytimeWizardRows.js","common/utils/calculateNumberOfRows.js","common/utils/convertSecondsToHMS.js","common/utils/producerPlaybackTimeConverter.js","common/utils/isProducerReportComplete.js","common/utils/isSubscriptionBundle.js","common/utils/logger.js","baasic-react-bootstrap/src/core/services/BaseApiRouteService.js","baasic-react-bootstrap/src/core/services/BaseService.js","baasic-react-bootstrap/src/core/services/errorFormatterService.js","baasic-react-bootstrap/src/core/form/MrbBaseField.js","baasic-react-bootstrap/src/core/form/MrbBaseForm.js","baasic-react-bootstrap/src/notifications/MrbNotificationProvider.js","baasic-react-bootstrap/src/notifications/MrbNotificationContainer.jsx","common/localization/localizationService.js","common/localization/localizedValidatorService.js","common/localization/ApplicationLocalization.jsx","common/localization/LocalizedField.js","common/localization/LocalizedForm.js","themes/default/administration/content-sync/components/ContentSyncWidgetTemplate.jsx","themes/default/administration/content-sync/components/ContentSyncModalTemplate.jsx","themes/default/administration/content-sync/components/GenerateAudioFilesModalTemplate.jsx","administration/content-sync/components/ContentSyncWidget.jsx","administration/content-sync/components/GenerateAudioFilesModal.jsx","baasic-react-bootstrap/src/core/providers/menuProvider.js","baasic-react-bootstrap/src/core/providers/routeProvider.js","baasic-react-bootstrap/src/core/providers/storeProvider.js","administration/producer/filters/ProducerPaymentReportFilter.js","administration/producer/filters/ProducerPayoutUserEventFilter.js","baasic-react-bootstrap/src/components/tabs/utils/getTabContent.js","baasic-react-bootstrap/src/components/tabs/utils/renderTabs.jsx","baasic-react-bootstrap/src/common/constants/fileExtensions.js","administration/analytics/models/dateRangeFactory.js","baasic-react-bootstrap/src/components/select/components/MrbSelectVirtualizedList.jsx","baasic-react-bootstrap/src/components/select/models/DropdownItemsResult.js","baasic-react-bootstrap/src/components/select/stores/MrbBaseSelectStore.js","baasic-react-bootstrap/src/components/select/stores/MrbSelectStore.js","baasic-react-bootstrap/src/components/select/stores/MrbSimpleSelectStore.js","baasic-react-bootstrap/src/components/select/stores/query/MrbQuerySelectStore.js","baasic-react-bootstrap/src/components/select/stores/query/MrbQuerySimpleSelectStore.js","baasic-react-bootstrap/src/components/select/stores/field/MrbFieldSelectStore.js","baasic-react-bootstrap/src/components/select/stores/field/MrbFieldSimpleSelectStore.js","baasic-react-bootstrap/src/components/select/MrbSelect.jsx","baasic-react-bootstrap/src/components/select/MrbFieldSelect.jsx","baasic-react-bootstrap/src/components/select/components/MrbSimpleSelectOption.jsx","baasic-react-bootstrap/src/components/select/components/MrbSimpleSelectPanel.jsx","baasic-react-bootstrap/src/components/select/components/MrbSimpleSelectPanelContainer.jsx","baasic-react-bootstrap/src/components/select/components/MrbSimpleSelectValue.jsx","baasic-react-bootstrap/src/components/select/components/MrbSimpleSelectValueContainer.jsx","baasic-react-bootstrap/src/components/select/MrbSimpleSelect.jsx","baasic-react-bootstrap/src/components/checkbox/MrbCheckbox.jsx","baasic-react-bootstrap/src/components/checkbox/MrbFieldCheckbox.jsx","baasic-react-bootstrap/src/components/checkbox/MrbToggle.jsx","baasic-react-bootstrap/src/components/checkbox/MrbFieldToggle.jsx","administration/analytics/constants/timeGroup.js","administration/analytics/constants/timeRangeType.js","themes/default/common/components/charts/LineChartTemplate.jsx","themes/default/common/components/charts/DoughnutChartTemplate.jsx","themes/default/common/components/cover-image-upload/CoverImageUploadTemplate.jsx","themes/default/common/components/image/ImageTemplate.jsx","themes/default/common/components/input/CurrencyInputFieldTemplate.jsx","themes/default/common/components/content-loader/CoverImageUploadLoaderTemplate.jsx","themes/default/common/components/content-loader/AddStationsOrPodcastsLoaderTemplate.jsx","themes/default/common/components/content-loader/PreviewContentLoaderTemplate.jsx","themes/default/common/components/content-loader/UploadedImageLoaderTemplate.jsx","themes/default/common/components/content-loader/DescriptionLoaderTemplate.jsx","themes/default/common/components/content-loader/FormInputsLoaderTemplate.jsx","themes/default/common/components/content-loader/ChangePasswordLoaderTemplate.jsx","themes/default/common/components/content-loader/ToggleActionsLoaderTemplate.jsx","themes/default/common/components/content-loader/UploadAlbumTrackLoaderTemplate.jsx","themes/default/common/components/stripe/StripeAccountFieldSelectTemplate.jsx","themes/default/common/components/stripe/StripeAccountLinkTemplate.jsx","themes/default/common/components/stripe/StripeFieldValidationTemplate.jsx","themes/default/common/components/stripe/StripeCreditCardFieldTemplate.jsx","themes/default/common/components/popover/PopoverTemplate.jsx","themes/default/common/components/tags/StatusTagTemplate.jsx","themes/default/common/components/accordion/AccordionTemplate.jsx","themes/default/common/components/progressbar/ProgressbarTemplate.jsx","themes/default/common/components/card/FloatingCardTemplate.jsx","themes/default/common/components/dropdown/CustomDropdownTemplate.jsx","themes/default/common/components/ApplicationWidgetPanelTemplate.jsx","themes/default/common/components/AppStartupLoaderTemplate.jsx","themes/default/common/components/MainSidebarTemplate.jsx","themes/default/common/components/TableNoDataOverlayTemplate.jsx","themes/default/common/components/DragDropListTemplate.jsx","themes/default/common/components/ShuffleWeightPickerTemplate.jsx","themes/default/common/components/rich-text-editor/RichTextEditorTemplate.jsx","themes/default/common/components/rich-text-editor/FieldRichTextEditorTemplate.jsx","themes/default/common/components/HTMLRenderTemplate.jsx","themes/default/common/components/GenresTemplate.jsx","themes/default/common/components/PremiumBadgeTemplate.jsx","themes/default/common/components/PasswordFieldInfoTemplate.jsx","themes/default/common/components/ImageUploadNoteTemplate.jsx","themes/default/common/components/JoyrideOnboardingTemplate.jsx","themes/default/common/components/AdministrationWidgetPanelTemplate.jsx","baasic-react-bootstrap/src/core/stores/base/MrbBaseAppStore.js","baasic-react-bootstrap/src/core/stores/base/MrbBaseUserStore.js","baasic-react-bootstrap/src/core/stores/base/MrbBaseAuthenticationStore.js","baasic-react-bootstrap/src/components/input/MrbFieldInput.jsx","baasic-react-bootstrap/src/components/input/MrbFieldTextArea.jsx","baasic-react-bootstrap/src/components/input/MrbQuerySearchInput.jsx","baasic-react-bootstrap/src/components/input/MrbNumericInput.jsx","baasic-react-bootstrap/src/components/input/MrbFieldNumericInput.jsx","baasic-react-bootstrap/src/components/select/MrbBasicSelect.jsx","baasic-react-bootstrap/src/components/grid/stores/MrbBaseGridViewStore.js","baasic-react-bootstrap/src/index.js","themes/default/administration/analytics/components/cells/DeviceHardwareCellTemplate.jsx","themes/default/administration/analytics/components/cells/UserDeviceActivityContentCellTemplate.jsx","themes/default/administration/analytics/components/cells/UserPayoutEventListContentCellTemplate.jsx","themes/default/administration/analytics/components/content-loader/TopTrendingListLoaderTemplate.jsx","themes/default/administration/analytics/components/content-loader/AnalyticsGraphLoaderTemplate.jsx","themes/default/administration/analytics/components/content-loader/TopTrendingListViewMoreLoaderTemplate.jsx","themes/default/administration/analytics/components/content-loader/AnalyticsStatsLoaderTemplate.jsx","themes/default/administration/analytics/components/content-loader/PortalDetailedActivityLoaderTemplate.jsx","themes/default/administration/analytics/components/content-loader/StatsWidgetLoaderTemplate.jsx","themes/default/administration/analytics/components/content-loader/AnalyticsPremiumListLoaderTemplate.jsx","themes/default/administration/analytics/components/content-loader/ContentStatsListLoaderTemplate.jsx","themes/default/administration/analytics/components/user-device-activity/content-loader/UserAccountSummaryLoaderTemplate.jsx","themes/default/administration/analytics/components/user-device-activity/content-loader/UserDeviceActivitySummaryLoaderTemplate.jsx","themes/default/administration/analytics/components/user-device-activity/UserAccountSummaryTemplate.jsx","themes/default/administration/analytics/components/user-device-activity/UserDeviceActivitySummaryTemplate.jsx","themes/default/administration/analytics/components/user-device-activity/UserContentListSummaryTemplate.jsx","themes/default/administration/analytics/components/AnalyticsCounterTemplate.jsx","themes/default/administration/analytics/components/TrendingIndicatorTemplate.jsx","themes/default/administration/analytics/components/StatsWidgetTemplate.jsx","themes/default/administration/analytics/components/AnalyticsTimeRangeTemplate.jsx","themes/default/administration/analytics/components/DeviceActivitySummaryTemplate.jsx","themes/default/administration/analytics/components/TopTrendingPodcastsTemplate.jsx","themes/default/administration/analytics/components/TopTrendingStationsTemplate.jsx","themes/default/administration/analytics/components/DeviceActivityEmptyStateTemplate.jsx","themes/default/administration/analytics/components/TopTrendingEmptyStateTemplate.jsx","themes/default/administration/analytics/components/TrendingListItemTemplate.jsx","themes/default/administration/analytics/components/PortalUserDeviceTemplate.jsx","themes/default/administration/analytics/components/PortalNewDevicesTemplate.jsx","themes/default/administration/analytics/components/PortalDetailedActivityTemplate.jsx","themes/default/administration/analytics/components/PercentageIncreaseDonutChartTemplate.jsx","themes/default/administration/analytics/components/PodcastListenersListTemplate.jsx","themes/default/administration/analytics/components/NakiNigunListenersListTemplate.jsx","themes/default/administration/analytics/components/StationListenersListTemplate.jsx","themes/default/administration/analytics/components/PodcastListenersCellTemplate.jsx","themes/default/administration/analytics/components/StationListenersCellTemplate.jsx","themes/default/administration/analytics/components/NakiNigunListenersCellTemplate.jsx","themes/default/administration/analytics/components/TopTrendingNakiNigunAlbumsTemplate.jsx","administration/analytics/components/cells/DeviceHardwareCell.jsx","administration/analytics/components/cells/UserDeviceActivityContentCell.jsx","administration/analytics/components/cells/UserPayoutEventListContentCell.jsx","administration/analytics/components/content-loader/TopTrendingListLoader.jsx","administration/analytics/components/content-loader/AnalyticsGraphLoader.jsx","administration/analytics/components/content-loader/TopTrendingListViewMoreLoader.jsx","administration/analytics/components/content-loader/AnalyticsStatsLoader.jsx","administration/analytics/components/content-loader/PortalDetailedActivityLoader.jsx","administration/analytics/components/content-loader/StatsWidgetLoader.jsx","administration/analytics/components/content-loader/AnalyticsPremiumListLoader.jsx","administration/analytics/components/content-loader/ContentStatsListLoader.jsx","administration/analytics/components/user-device-activity/content-loader/UserAccountSummaryLoader.jsx","administration/analytics/components/user-device-activity/content-loader/UserDeviceActivitySummaryLoader.jsx","administration/analytics/components/user-device-activity/UserAccountSummary.jsx","administration/analytics/components/user-device-activity/UserContentListSummary.jsx","administration/analytics/components/user-device-activity/UserDeviceActivitySummary.jsx","administration/analytics/components/AnalyticsCounter.jsx","administration/analytics/components/TrendingIndicator.jsx","administration/analytics/components/StatsWidget.jsx","administration/analytics/components/AnalyticsTimeRange.jsx","administration/analytics/components/DeviceActivitySummary.jsx","administration/analytics/components/TopTrendingPodcasts.jsx","administration/analytics/components/TopTrendingStations.jsx","administration/analytics/components/DeviceActivityEmptyState.jsx","administration/analytics/components/TopTrendingEmptyState.jsx","administration/analytics/components/TrendingListItem.jsx","administration/analytics/components/PortalUserDevice.jsx","administration/analytics/components/PortalNewDevices.jsx","administration/analytics/components/PortalDetailedActivity.jsx","administration/analytics/components/PercentageIncreaseDonutChart.jsx","administration/analytics/components/PodcastListenersList.jsx","administration/analytics/components/StationListenersList.jsx","administration/analytics/components/NakiNigunListenersList.jsx","administration/analytics/components/PodcastListenersCell.jsx","administration/analytics/components/StationListenersCell.jsx","administration/analytics/components/NakiNigunListenersCell.jsx","administration/analytics/components/TopTrendingNakiNigunAlbums.jsx","baasic-react-bootstrap/src/core/MrbApp.jsx","baasic-react-bootstrap/src/core/stores/base/MrbBaseViewStore.js","baasic-react-bootstrap/src/core/stores/base/MrbBaseRouteStore.js","baasic-react-bootstrap/src/core/stores/base/MrbBaseEditViewStore.js","baasic-react-bootstrap/src/core/stores/base/MrbBaseListViewStore.js","baasic-react-bootstrap/src/core/stores/base/MrbBaseInfiniteScrollListViewStore.js","baasic-react-bootstrap/src/core/stores/base/MrbBasePreviewViewStore.js","baasic-react-bootstrap/src/core/stores/main/MrbApplicationMainSectionStore.js","baasic-react-bootstrap/src/core/stores/main/MainRouteStore.js","baasic-react-bootstrap/src/core/stores/ModuleStore.js","baasic-react-bootstrap/src/core/stores/MrbApplicationStartupStore.js","baasic-react-bootstrap/src/core/stores/MrbErrorStore.js","baasic-react-bootstrap/src/core/stores/MrbRouterStore.js","baasic-react-bootstrap/src/core/stores/MrbMainViewStore.js","baasic-react-bootstrap/src/core/stores/MrbMenuStore.js","baasic-react-bootstrap/src/core/stores/MrbNotificationStore.js","baasic-react-bootstrap/src/core/stores/MrbConfirmDialogStore.js","baasic-react-bootstrap/src/core/stores/MrbRootStore.js","baasic-react-bootstrap/src/components/menu/MrbMenu.jsx","baasic-react-bootstrap/src/components/menu/MrbMenuItem.jsx","baasic-react-bootstrap/src/components/menu/MrbMenuToggle.jsx","baasic-react-bootstrap/src/components/menu/MrbPrimaryMenuLevel.jsx","baasic-react-bootstrap/src/components/menu/MrbRouteLinkMenuItem.jsx","baasic-react-bootstrap/src/components/menu/MrbSecondaryMenuLevel.jsx","baasic-react-bootstrap/src/core/hoc/withRootStore.js","baasic-react-bootstrap/src/core/hoc/withAuthorization.js","baasic-react-bootstrap/src/core/hoc/setCurrentView.js","baasic-react-bootstrap/src/components/grid/stores/MrbGridViewStore.js","baasic-react-bootstrap/src/components/grid/components/MrbGridEmptyState.jsx","baasic-react-bootstrap/src/components/grid/MrbGrid.jsx","common/stores/producer/BaseProducerRevenueReportViewStore.js","administration/analytics/filters/AnalyticsFilter.js","administration/analytics/filters/UserDeviceActivityFilter.js","administration/analytics/stores/BaseAnalyticsViewStore.js","administration/analytics/stores/BasePortalDetailedActivityViewStore.js","administration/analytics/stores/dashboard/AnalyticsDashboardRouteStore.js","administration/analytics/stores/dashboard/AnalyticsDashboardViewStore.js","administration/analytics/stores/dashboard/DeviceActivitySummaryViewStore.js","administration/analytics/stores/dashboard/TopTrendingStationsViewStore.js","administration/analytics/stores/dashboard/TopTrendingPodcastsViewStore.js","administration/analytics/stores/dashboard/TopTrendingNakiNigunAlbumsViewStore.js","administration/analytics/stores/dashboard/PortalViewStore.js","administration/analytics/stores/device-activity/DeviceActivityRouteStore.js","administration/analytics/stores/device-activity/DeviceActivityViewStore.js","administration/analytics/stores/premium-users-activity/PremiumUsersActivityRouteStore.js","administration/analytics/stores/premium-users-activity/PremiumUsersActivityViewStore.js","administration/analytics/stores/registered-users-activity/RegisteredUsersActivityRouteStore.js","administration/analytics/stores/registered-users-activity/RegisteredUsersActivityViewStore.js","administration/analytics/stores/registered-devices-activity/RegisteredUserDevicesActivityRouteStore.js","administration/analytics/stores/registered-devices-activity/RegisteredUserDevicesActivityViewStore.js","administration/analytics/stores/podcast-activity/PodcastActivityRouteStore.js","administration/analytics/stores/podcast-activity/PodcastActivityViewStore.js","administration/analytics/stores/station-activity/StationActivityRouteStore.js","administration/analytics/stores/station-activity/StationActivityViewStore.js","administration/analytics/stores/naki-nigun-album-activity/NakiNigunAlbumActivityRouteStore.js","administration/analytics/stores/naki-nigun-album-activity/NakiNigunAlbumActivityViewStore.js","administration/analytics/stores/connected-devices-activity/ConnectedDevicesActivityRouteStore.js","administration/analytics/stores/connected-devices-activity/ConnectedDevicesActivityViewStore.js","administration/analytics/stores/trending-station-list/TrendingStationListRouteStore.js","administration/analytics/stores/trending-station-list/TrendingStationListViewStore.js","administration/analytics/stores/trending-podcast-list/TrendingPodcastListRouteStore.js","administration/analytics/stores/trending-podcast-list/TrendingPodcastListViewStore.js","administration/analytics/stores/trending-naki-nigun-album-list/TrendingNakiNigunAlbumListRouteStore.js","administration/analytics/stores/trending-naki-nigun-album-list/TrendingNakiNigunAlbumListViewStore.js","administration/analytics/stores/user-device-activity/UserDeviceActivityRouteStore.js","administration/analytics/stores/user-device-activity/UserDeviceActivitySummaryViewStore.js","administration/analytics/stores/user-device-activity/UserDeviceActivityViewStore.js","administration/analytics/stores/AnalyticsTimeRangeViewStore.js","administration/analytics/stores/BaseStatsWidgetViewStore.js","administration/analytics/stores/ContentStatsViewStore.js","administration/analytics/stores/ContentStatsRouteStore.js","administration/analytics/stores/PodcastListenersListViewStore.js","administration/analytics/stores/StationListenersListViewStore.js","administration/analytics/stores/NakiNigunListenersListViewStore.js","baasic-react-bootstrap/src/baasic/constants/baasicSystemRoles.js","baasic-react-bootstrap/src/baasic/baasicAppFactory.js","baasic-react-bootstrap/src/baasic/BaasicAppStore.js","baasic-react-bootstrap/src/baasic/BaasicAuthenticationStore.js","baasic-react-bootstrap/src/baasic/BaasicPermissionService.js","baasic-react-bootstrap/src/baasic/BaasicUserStore.js","baasic-react-bootstrap/src/baasic/createBaasicAuthenticatedMediaVaultUrl.js","themes/default/application/home/components/content-loader/HomeListSearchLoaderTemplate.jsx","themes/default/application/home/components/content-loader/HomeListLoaderTemplate.jsx","themes/default/application/home/components/content-loader/HomePreviewStationsLoaderTemplate.jsx","themes/default/application/home/components/content-loader/HomePreviewSubPodcastListLoaderTemplate.jsx","themes/default/application/home/components/HomeEmptyStateTemplate.jsx","themes/default/application/home/components/ConnectDeviceModalTemplate.jsx","themes/default/application/home/components/HomeSearchResultGridCellTemplate.jsx","application/home/utils/getContentActivityStatusIcon.js","themes/default/application/home/components/HomeGridCellTemplate.jsx","themes/default/application/home/components/HomePreviewHeaderTemplate.jsx","themes/default/application/home/components/HomeDeviceSelectTemplate.jsx","themes/default/application/home/components/HomeOrderBySelectTemplate.jsx","themes/default/application/home/components/HomePageHeaderTemplate.jsx","themes/default/application/home/components/HomePageLayoutTemplate.jsx","themes/default/application/home/components/HomeSubPodcastTemplate.jsx","themes/default/application/home/components/HomeMainViewTemplate.jsx","themes/default/application/home/components/HomeSearchResultsTemplate.jsx","themes/default/application/home/components/HomeFeaturedContentTemplate.jsx","themes/default/application/home/components/TogglePremiumTemplate.jsx","themes/default/application/home/components/HomeManageSelectedItemsTemplate.jsx","application/home/components/content-loader/HomeListSearchLoader.jsx","application/home/components/content-loader/HomeListLoader.jsx","application/home/components/content-loader/HomePreviewStationsLoader.jsx","application/home/components/content-loader/HomePreviewSubPodcastListLoader.jsx","application/home/components/HomeEmptyState.jsx","application/home/components/ConnectDeviceModal.jsx","application/home/components/HomeGridCell.jsx","application/home/components/HomePreviewHeader.jsx","application/home/components/HomeDeviceSelect.jsx","application/home/components/HomeOrderBySelect.jsx","application/home/components/HomePageHeader.jsx","application/home/components/HomePageLayout.jsx","application/home/components/HomeSubPodcast.jsx","application/home/components/HomeSearchResultGridCell.jsx","application/home/components/HomeSearchResults.jsx","application/home/components/HomeFeaturedContent.jsx","application/home/components/HomeMainView.jsx","application/home/components/TogglePremium.jsx","application/home/components/HomeManageSelectedItems.jsx","baasic-react-bootstrap/src/core/constants/httpStatusCodes.js","common/components/producer/cell/ProducerPaymentReportCell.jsx","common/components/producer/cell/ProducerPlaybackTimeCell.jsx","common/components/producer/cell/UserEventPayoutCell.jsx","common/components/producer/cell/ProducerPreviewReportPeriodCell.jsx","common/components/producer/cell/ProducerPreviewReportPlaybackTimeCell.jsx","common/components/producer/loader/ProducersDetailsListLoader.jsx","common/components/producer/loader/ProducerSummaryLoader.jsx","common/components/producer/ProducerFieldSelect.jsx","common/components/producer/ProducerLabel.jsx","common/components/producer/ProducerReport.jsx","common/components/producer/ProducerReportLayout.jsx","common/components/producer/ProducerReportsTable.jsx","common/components/producer/ProducerAccountPreviewBalance.jsx","common/components/producer/ProducerAccountPreviewRevenueTransaction.jsx","themes/default/application/payment/components/badges/NakiNigunPremiumBadgeTemplate.jsx","themes/default/application/payment/components/badges/NakiRadioPremiumBadgeTemplate.jsx","themes/default/application/payment/components/badges/NakiRadioFreeBadgeTemplate.jsx","themes/default/application/payment/components/content-loader/ExplorePremiumLoaderTemplate.jsx","themes/default/application/payment/components/content-loader/PaymentCardLoaderTemplate.jsx","themes/default/application/payment/components/content-loader/SubscriptionPlanLoaderTemplate.jsx","themes/default/application/payment/components/content-loader/PlanCardLoaderTemplate.jsx","themes/default/application/payment/components/content-loader/ChangeSubscriptionPlanLoaderTemplate.jsx","themes/default/application/payment/components/InvalidPaymentInfoTemplate.jsx","themes/default/application/payment/components/PremiumTrialExpirationTemplate.jsx","themes/default/application/payment/components/PremiumContentListItemTemplate.jsx","themes/default/application/payment/components/PremiumContentListTemplate.jsx","themes/default/application/payment/components/PastDueSubscriptionWidgetTemplate.jsx","themes/default/application/payment/components/CreditCardInfoTemplate.jsx","themes/default/application/payment/components/PremiumTrialTermsInfoTemplate.jsx","themes/default/application/payment/components/CustomerPaymentMethodInfoTemplate.jsx","themes/default/application/payment/components/PaymentSuccessModalTemplate.jsx","themes/default/application/payment/components/TrialActivatedModalTemplate.jsx","themes/default/application/payment/components/TakePaymentHeaderTemplate.jsx","themes/default/application/payment/components/SubscriptionPlanCardTemplate.jsx","themes/default/application/payment/components/SubscriptionPriceTemplate.jsx","themes/default/application/payment/components/PaymentValidationTemplate.jsx","themes/default/application/payment/components/PremiumInfoWidgetTemplate.jsx","themes/default/application/payment/components/PremiumInfoTrialWidgetTemplate.jsx","themes/default/application/payment/components/PaymentInfoTemplate.jsx","themes/default/application/payment/components/UpdateCustomerPaymentMethodTemplate.jsx","themes/default/application/payment/components/PremiumContentSubListItemTemplate.jsx","themes/default/application/payment/components/UserSubscriptionInfoTemplate.jsx","application/payment/components/badges/NakiNigunPremiumBadge.jsx","application/payment/components/badges/NakiRadioPremiumBadge.jsx","application/payment/components/badges/NakiRadioFreeBadge.jsx","application/payment/components/content-loader/ExplorePremiumLoader.jsx","application/payment/components/content-loader/PaymentCardLoader.jsx","application/payment/components/content-loader/SubscriptionPlanLoader.jsx","application/payment/components/content-loader/PlanCardLoader.jsx","application/payment/components/content-loader/ChangeSubscriptionPlanLoader.jsx","application/payment/components/PremiumTrialExpiration.jsx","application/payment/components/InvalidPaymentInfo.jsx","application/payment/components/CreditCardInfo.jsx","application/payment/components/PremiumContentListItem.jsx","application/payment/components/PremiumContentList.jsx","application/payment/components/CustomerPaymentMethodInfo.jsx","application/payment/components/PremiumTrialTermsInfo.jsx","application/payment/components/PaymentSuccessModal.jsx","application/payment/components/TrialActivatedModal.jsx","application/payment/components/TakePaymentHeader.jsx","application/payment/components/PastDueSubscriptionWidget.jsx","application/payment/components/PremiumInfoWidget.jsx","application/payment/components/PremiumInfoTrialWidget.jsx","application/payment/components/SubscriptionPlanCard.jsx","application/payment/components/SubscriptionPrice.jsx","application/payment/components/PaymentInfo.jsx","application/payment/components/UpdateCustomerPaymentMethod.jsx","application/payment/components/PremiumContentSubListItem.jsx","application/payment/components/UserSubscriptionInfo.jsx","baasic-react-bootstrap/src/common/models/MrbModalParams.js","baasic-react-bootstrap/src/common/models/MrbConfirmModalParams.js","baasic-react-bootstrap/src/components/media/MrbFileUploadValidation.jsx","baasic-react-bootstrap/src/components/media/MrbFileUpload.jsx","baasic-react-bootstrap/src/components/media/MrbFileUploadViewStore.js","baasic-react-bootstrap/src/components/media/MrbImage.jsx","baasic-react-bootstrap/src/components/modal/MrbConfirmDialogPanel.jsx","baasic-react-bootstrap/src/components/modal/MrbModal.jsx","baasic-react-bootstrap/src/components/modal/MrbConfirmDialog.jsx","baasic-react-bootstrap/src/components/infinite-scroll-grid/components/MrbInfiniteScrollGridEmptyState.jsx","baasic-react-bootstrap/src/components/infinite-scroll-grid/MrbInfiniteScrollGrid.jsx","baasic-react-bootstrap/src/components/infinite-scroll-grid/MrbInfiniteScrollGridViewStore.js","baasic-react-bootstrap/src/core/filter/sortDirection.js","baasic-react-bootstrap/src/core/filter/MrbFilterParameters.js","baasic-react-bootstrap/src/components/radio/MrbRadioButtons.jsx","baasic-react-bootstrap/src/components/radio/MrbFieldRadioButtons.jsx","baasic-react-bootstrap/src/components/table/columns/MrbTableHeader.jsx","baasic-react-bootstrap/src/components/table/columns/mrbTableColumnRenderer.jsx","baasic-react-bootstrap/src/components/table/columns/MrbTableActionColumn.jsx","baasic-react-bootstrap/src/components/table/columns/mrbTableActionColumnRenderer.jsx","baasic-react-bootstrap/src/components/table/stores/MrbBaseTableViewStore.js","baasic-react-bootstrap/src/components/table/stores/MrbTableViewStore.js","baasic-react-bootstrap/src/components/table/overlays/MrbTableLoadingOverlay.jsx","baasic-react-bootstrap/src/components/table/overlays/MrbTableNoDataOverlay.jsx","baasic-react-bootstrap/src/components/table/MrbTable.jsx","administration/producer/stores/producer-payment-report-preview/ProducerPaymentReportPreviewRouteStore.js","administration/producer/stores/producer-payment-report-preview/ProducerPaymentReportPreviewViewStore.js","administration/producer/stores/producer-payment-report-preview/ProducerPayoutUserEventListViewStore.js","administration/producer/forms/AdminProducerAccountBalanceEditForm.js","administration/producer/forms/AdminProducerAccountsEditForm.js","administration/producer/forms/AdminProducerAccountEditFields.js","administration/producer/forms/AdminProducerEditForm.js","administration/producer/forms/AdminProducerAccountStripeAccountEditForm.js","administration/producer/stores/producer-account-balance-edit/AdminProducerAccountBalanceEditViewStore.js","administration/producer/stores/producer-account-edit/AdminProducerAccountEditRouteStore.js","administration/producer/stores/producer-account-edit/AdminProducerAccountsViewStore.js","administration/producer/stores/producer-account-edit/AdminProducerAccountEditViewStore.js","administration/producer/stores/producer-list/AdminProducerListRouteStore.js","administration/producer/stores/producer-list/AdminProducerListViewStore.js","administration/producer/stores/producer-preview/AdminProducerPreviewRouteStore.js","administration/producer/stores/producer-preview/AdminProducerAccountsListViewStore.js","administration/producer/stores/producer-preview/AdminProducerPreviewViewStore.js","administration/producer/stores/producer-edit/AdminProducerEditRouteStore.js","administration/producer/stores/producer-edit/AdminProducerEditViewStore.js","administration/producer/stores/producer-account-preview/AdminProducerAccountPreviewViewStore.js","administration/producer/stores/producer-account-preview/AdminProducerAccountPreviewRouteStore.js","administration/producer/stores/producer-account-stripe-account-edit/AdminProducerAccountStripeAccountEditViewStore.js","baasic-react-bootstrap/src/core/filter/MrbQueryUtility.js","themes/default/common/components/producer/cell/ProducerPaymentReportCellTemplate.jsx","themes/default/common/components/producer/cell/UserEventPayoutCellTemplate.jsx","themes/default/common/components/producer/cell/ProducerPlaybackTimeCellTemplate.jsx","themes/default/common/components/producer/cell/ProducerPreviewReportPeriodCellTemplate.jsx","themes/default/common/components/producer/cell/ProducerPreviewReportPlaybackTimeCellTemplate.jsx","themes/default/common/components/producer/loader/ProducersDetailsListLoaderTemplate.jsx","themes/default/common/components/producer/loader/ProducerSummaryLoaderTemplate.jsx","themes/default/common/components/producer/ProducerFieldSelectTemplate.jsx","themes/default/common/components/producer/ProducerLabelTemplate.jsx","themes/default/common/components/producer/ProducerReportLayoutTemplate.jsx","themes/default/common/components/producer/ProducerReportsTableTemplate.jsx","themes/default/common/components/producer/ProducerReportTemplate.jsx","themes/default/common/components/producer/ProducerAccountPreviewBalanceTemplate.jsx","themes/default/common/components/producer/ProducerAccountPreviewRevenueTransactionTemplate.jsx","application/common/content-access/nakiRadioContentType.js","application/common/content-access/ContentAccessResult.js","application/common/content-access/ContentAccessValidator.js","application/common/content-access/useCanAccessContent.js","application/payment/stores/BasePaymentViewStore.js","application/payment/stores/take-payment/TakePaymentRouteStore.js","application/payment/stores/take-payment/TakePaymentViewStore.js","application/payment/stores/upgrade-trial/UpgradeTrialRouteStore.js","application/payment/stores/upgrade-trial/UpgradeTrialViewStore.js","application/payment/stores/activate-trial/ActivateTrialRouteStore.js","application/payment/stores/activate-trial/ActivateTrialViewStore.js","application/payment/stores/change-subscription-plan/ChangeSubscriptionPlanRouteStore.js","application/payment/stores/change-subscription-plan/ChangeSubscriptionPlanViewStore.js","application/payment/stores/change-subscription-plan-preview/ChangeSubscriptionPlanPreviewRouteStore.js","application/payment/utils/subscriptionPlansSortOrder.js","application/payment/stores/change-subscription-plan-preview/ChangeSubscriptionPlanPreviewViewStore.js","application/payment/stores/premium/CustomerPaymentMethodInfoViewStore.js","application/payment/stores/premium-subscriptions/PremiumSubscriptionsRouteStore.js","application/payment/models/NakiRadioFreePlan.js","application/payment/stores/premium-subscriptions/PremiumSubscriptionsViewStore.js","application/payment/stores/user-subscriptions-preview/UserSubscriptionsPreviewRouteStore.js","application/payment/stores/user-subscriptions-preview/UserSubscriptionsPreviewViewStore.js","application/payment/filters/PremiumContentListFilter.js","application/payment/stores/PremiumContentListViewStore.js","application/payment/stores/PremiumContentListItemViewStore.js"],"names":["UpdatePodcastStatusOptions","constructor","podcastId","title","isPremium","isUnavailableInApp","_defineProperty","this","UpdateStationStatusOptions","stationId","UpdateNakiNigunArtistStatusOptions","artistId","name","UpdateNakiNigunAlbumStatusOptions","albumId","UpdateTorahAnytimeCollectionStatusOptions","collectionId","collectionName","torahAnytimePodcastId","torahAnytimePodcastTitle","observer","_ref","form","footer","visible","onClickCancel","submitLabel","cancelLabel","hideCancel","submitDisabled","t","i","label","_jsxs","className","children","_jsx","MrbButton","type","onClick","onSubmit","aria-label","aria-busy","submitting","validating","disabled","React","Fragment","isString","error","MrbEditFormContent","MrbListContent","MrbEditContent","MrbPreviewContent","getPageObject","page","header","content","sidebar","Children","forEach","child","isValidElement","MrbPageHeader","push","MrbPageFooter","MrbPageContentHeader","MrbPageContentFooter","MrbPageContentSidebar","renderActions","actions","isEmpty","components","map","action","actionName","classNameOverride","icon","isFunction","authorization","flatMap","value","index","array","length","ProducerNameCellTemplate","data","producerName","userId","userFirstName","userLastName","isUser","isNil","user","firstName","lastName","ProducerLabel","AdminProducerSummaryLoaderTemplate","props","loaderWidth","setLoaderWidth","useState","ref","useCallback","node","getBoundingClientRect","width","ContentLoader","speed","height","viewBox","concat","backgroundColor","foregroundColor","x","y","rx","ry","_Fragment","ProducerAccountListLoaderTemplate","ListItem","AccountTitle","AddNewAccountLoaderTemplate","LoaderHeader","loaderHeight","ProducerBalanceInfoLoaderTemplate","adminProducerAccountBalanceEditViewStore","currentAccountBalance","newAccountBalance","diff","sign","Math","newBalanceClassName","MrbEditFormLayout","CurrencyInputField","field","$","currencyFormatter","format","currency","MrbFieldTextArea","rows","classNameExtend","UserOption","item","Option","UserLabel","_ref2","email","UserSelectedValue","SingleValue","AccountBalance","_ref3","adminProducerAccountEditViewStore","userAccountSelectStore","stripeAccountSelectStore","removeAccount","MrbFieldSelect","store","fieldClassNameOverride","StripeAccountFieldSelect","MrbFieldNumericInput","precision","NoDataEmptyState","producerId","MrbRouterLink","routeName","params","id","defaultTemplate","adminProducerAccountsListViewStore","accounts","selectAccount","loaderStore","MrbContentLoader","loaderRender","ProducerAccountListLoader","colSpan","account","stripeAccountId","StripeAccountLink","accountId","revenuePercentage","accountBalance","random","GridItem","numberFormatter","browsePlaybacks","totalBrowsePlaybacks","browsePaymentShare","browseProducerPayment","shufflePlaybacks","totalShufflePlaybacks","shufflePaymentShare","shuffleProducerPayment","totalProducerPayment","producerPaymentReportPreviewViewStore","scrollParent","listClassName","gridStore","MrbInfiniteScrollGrid","loaderRenderer","AnalyticsPremiumListLoader","podcastGruop","row","loadMoreLoader","emptyStateRenderer","StatsWidgetEmptyState","mergeCss","cellRenderer","TotalPlaybackTime","summaryData","totalPlaybackTime","producerPlaybackTimeConverter","currentMonthReportVersion","currentMonthTotalProducerPlaybacks","MonthOfReportLabel","dateFormatter","filteredBy","date","applicationDefaults","formats","monthFull","ReportPeriodRange","_ref4","startDate","currentMonthPeriodStartDate","timeZone","defaultProductReportTimeZone","endDate","currentMonthPeriodEndDate","isComplete","isProducerReportComplete","ProducerSummaryLoader","isDetails","undefined","currentMonthTotalProducerPayment","ProducerPositionIndicator","topPaidProducerStatus","totalPayment","getNumberWithOrdinal","position","n","s","v","producerPreviewViewStore","producer","lastProducerReport","monthOfYear","monthShort","PlaybackItem","route","station","podcast","playbacks","EmptyState","mostPopularContent","TopTrendingListLoader","noButton","adminProducerAccountPreviewViewStore","AdminProducerSummaryLoader","adminProducerAccountStripeAccountEditViewStore","adminProducerListViewStore","producersSummary","ProducerBalanceInfoLoader","totalBalance","producerAccountSummaries","summary","producerUserAccountId","payoutAmount","assignedProducers","ProducerNameCell","AddNewAccountLoader","AdminProducerAccountBalanceEdit","setCurrentView","rootStore","componentProps","AdminProducerAccountBalanceEditViewStore","_dec","_class","Component","render","AdminProducerAccountBalanceEditTemplate","AdminProducerAccountsList","AdminProducerAccountsListViewStore","AdminProducerAccountsListTemplate","AdminProducerAccountEdit","AdminProducerAccountEditViewStore","AdminProducerAccountEditTemplate","ProducerPaymentReportSummary","ProducerPaymentReportSummaryTemplate","ProducerPreviewSummary","ProducerPreviewSummaryTemplate","ProducerPreviewMostPopularContent","ProducerPreviewMostPopularContentTemplate","AdminProducerAccountSummaryPreview","AdminProducerAccountSummaryPreviewTemplate","AdminProducerAccountStripeAccountEdit","AdminProducerAccountStripeAccountEditViewStore","AdminProducerAccountStripeAccountEditTemplate","AdminProducerListSummaryPreview","AdminProducerListSummaryPreviewTemplate","AdminProducerAccountAssignedProducersPreview","AdminProducerAccountAssignedProducersPreviewTemplate","MrbCollapsiblePanelHeader","headerRender","isCollapsed","onChangeCollapse","mergeOrOverrideCss","renderChildren","headerClassNameExtend","headerClassNameOverride","bodyClassNameExtend","bodyClassNameOverride","containerClassNameExtend","containerClassNameOverride","innerRef","MrbCollapsiblePanelBody","rpp","dateTime","dateTimeSeconds","longDate","month","isoDate","maximumNumberOfDevices","trialPeriodDays","applicationErrorCodes","device","notExists","alreadyRegistered","payment","existingActiveSubscription","paymentFailedAuthenticationRequired","paymentFailedExpiredCreditCard","paymentFailedInvalidCreditCard","paymentFailedUnknownReason","rssSync","rssSyncFailed","administratorConflict","producerNameEmpty","userNotFound","emailAlreadyExists","insufficientAccountBalance","stripeConnectAccountNotExists","producerUserAccountNotExists","stripeConnectAccountNotEnabled","userIsAdministrator","duplicateUsersSelected","deviceMenuTypes","shuffle","search","separator","directory","nakiNigunArtist","nakiNigunAlbum","nakiTalesCollection","nakiTalesTitle","torahAnytime","myRecentlyUpdated","allRecentlyUpdated","playlists","nakiRadioRoles","accountOwnerRoleName","baasicSystemRoles","administratorRoleName","producerRoleName","userRoleName","guestRoleName","anonymousRoleName","nakiRadioSystemTypes","venice","mobile","mobile_embedded","podcastContentType","default","podcastType","podcastGroup","reportVersions","shuffleType","nakiNigun","subscriptionPlans","nakiTales","nakiRadioPremium","nakiRadioFree","subscriptionBundleDuo","subscriptionBundleSolo","subscriptionBundleNaki23Black","subscriptionStatuses","canceled","pending","pastDue","active","unrecognized","expired","trial","nakiRadioProductCategoryAbbreviations","radioDevice","subscription","subscriptionBundle","producerTypes","artistSlug","podcasterSlug","FindParams","options","isObject","extend","pickBy","hasOwnProperty","sort","orderBy","orderDirection","orderByParts","split","trim","orderDirectionParts","Error","join","zipWith","searchQuery","pageNumber","pageSize","KeyParams","propName","findParams","getParams","evaluateSubMenuItems","menuItem","routes","permissionFunc","keys","each","subMenu","subMenuItem","key","hasPermission","getRouteByMenu","reverse","isArray","splice","menuRoute","find","r","authorized","buildAuthorizedMenu","menuItems","menuTree","moduleItems","moduleItem","root","order","secondaryMenuItem","idx","subRoot","terniaryMenuItem","flattenArray","arr","reduce","flat","toFlatten","Array","description","period","MrbTabViewStore","bound","_dec2","MrbBaseViewStore","config","super","_initializerDefineProperty","_descriptor","onTabChange","makeObservable","handleTabClick","tabIndex","setActiveTabIndex","activeTabIndex","_applyDecoratedDescriptor","prototype","observable","configurable","enumerable","writable","initializer","Object","getOwnPropertyDescriptor","isActive","headersRenderer","renderTabs","MrbTabContent","renderActiveTab","toArray","tabElements","getTabContent","MrbTabHeaders","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","code","resolve","module","exports","HomeContentFilter","MrbFilterParameters","_descriptor2","_descriptor3","reset","contentType","isEnabled","HomeGenericSearchFilter","genreId","HomeGenericSearchViewStore","_dec3","_dec4","_dec5","_dec6","_dec7","_dec8","MrbBaseListViewStore","homeViewStore","queryConfig","filter","disableUpdateQueryParams","_descriptor4","routerStore","goTo","parentPodcastId","subPodcastId","routeStore","setGridStore","MrbGridViewStore","queryUtility","onCellClick","onClickCellItem","generateKey","mapper","coverImageUrl","createCoverImageUrl","orderBySelectStore","MrbSimpleSelectStore","textKey","valueKey","onChange","selectedOrder","fetch","orderOptions","genreSelectStore","MrbQuerySelectStore","isSearchable","initFetch","searchTerm","findGenres","initializeSortingDefault","reaction","searchPhrase","delay","groups","podcastGroups","container","appearsInContainerRef","context","setTimeout","runInAction","isAppearsInScrollable","scrollWidth","clientWidth","abortExistingRequest","setShowSearchView","_isInitialLoad","suspend","response","setData","setPodcastGroups","resume","err","onFetchError","uniqBy","parentPodcastTitle","isParentPodcastPremium","createPodcastGroupCoverImageUrl","parentPodcastCoverImageId","setSelectedItem","orderOption","_abortController","AbortController","genericSearch","coverImageId","createPodcastCoverImageUrl","createStationCoverImageUrl","statusCode","httpStatusCodes","CanceledRequest","notificationStore","showSearchView","setValue","scrollFeaturedLeft","sideScroll","scrollFeaturedRight","abort","onDestroy","setAppearsInContainerRef","HomeGridItemDecorator","obj","setIsTurnedOn","_isTurnedOn","isTurnedOn","computed","HomeFeaturedContentViewStore","_dec9","userDeviceStore","selectedDevice","async","contentAccessValidator","canAccessStation","isLegacySubscriptionValid","validLegacySubscription","unavailableInMobileApp","isVisibleInApp","unavailableInNakiTouch","isVisibleInEmbeddedApp","canAccess","changeDeviceStationStatus","canAccessPodcast","changeDevicePodcastStatus","items","featuredContainerRef","isFeaturedScrollable","deviceId","fetchResources","onInit","getFeaturedContent","setItems","isUpdating","mainLoaderStore","newValue","userContentManagerStore","updateStationStatus","updateMainViewStationStatus","resetItems","updatePodcastStatus","updateMainViewPodcastStatus","setFeaturedContainerRef","HomeRouteStore","MrbBaseRouteStore","service","createApplicationService","UserContentService","podcastFileStreamService","PodcastFileStreamService","stationFileStreamService","StationFileStreamService","genreLookupService","GenreLookupService","abortController","arguments","createBaasicAuthenticatedMediaVaultUrl","routeService","get","HomeViewStore","homeGenericSearchViewStore","devices","calculateNumberOfColumns","window","innerWidth","calculateNumberOfRows","queryParamMap","toQuery","homeFeaturedContentViewStore","homeManageSelectedItemsViewStore","HomeManageSelectedItemsViewStore","connectDeviceModal","MrbModalParams","onClose","userStore","disableConnectDeviceMessage","goToConnectDevice","MrbInfiniteScrollGridViewStore","deviceSelectStore","option","setSelectedDevice","MrbQuerySimpleSelectStore","inSearchMode","bind","updateFeaturedListStationStatus","updateFeaturedListPodcastStatus","changeDeviceSelectedItemsStatus","selectedItems","intersectionWith","selectedItem","anyDevice","isConnectDeviceMessageVisible","open","Promise","all","initialize","findUserContent","isFirstPageLoad","changeContentTypeFilter","set","changePremiumDisabledFilter","destroy","BaseHomePreviewViewStore","MrbBasePreviewViewStore","evaluateContentAccess","statusItem","systemType","abrv","isTurnedOnByDefault","isTurnedOnByDefaultInApp","goBack","statusToggleLoader","MrbLoaderStore","getStatusItemResource","getStatusItem","setStatusItem","resourceId","setUpdatingStatus","updatingStatus","HomeStationRouteStore","userContentService","getStationWthDeviceSettings","embed","getStation","getUserDeviceStation","HomeStationViewStore","routerState","navigateBack","setItem","userDeviceStation","BaseHomePodcastRouteStore","getUserDevicePodcast","getPodcastGroupUserDevicePodcast","HomePodcastRouteStore","getPodcastWthDeviceSettings","getPodcast","HomePodcastGroupRouteStore","getPodcastGroupWthDeviceSettings","getPodcastGroup","BaseHomePodcastViewStore","userDevicePodcast","HomePodcastViewStore","HomePodcastGroupViewStore","subPodcast","subPodcastIndex","findIndex","subPodcasts","override","HomeSubPodcastViewStore","homePodcastViewStore","subPodcastStatusItem","isTurnedOnByDefaultInEmbeddedApp","createRef","panelRef","scrollIntoView","behavior","block","queryParams","setIsUpdating","updateSubPodcastTurnedOnStatus","toggleCollapse","legacySubscriptionExpirationDate","changeIsBulk","isBulk","selectItem","some","indexOfElement","pullAt","contentAccessResult","stationOptions","podcastOptions","updateStationsAndPodcastsStatus","infoRenderer","infoLabelRenderer","isInfoOpen","setIsInfoOpen","requiredMark","rules","indexOf","info","extra","infoLabel","htmlFor","event","preventDefault","stopPropagation","createElement","MrbFieldValidation","fill","xmlns","d","errorMessage","labelRender","validationRender","showLabel","MrbFieldLabel","renderIf","isSome","ContentPolicyModalTemplate","modalParams","MrbModal","disableContentPolicy","close","contentPolicyWidgetViewStore","contentPolicyModal","displayContentPolicy","isContentPolicyVisible","ContentPolicyModal","generateContentName","stations","podcasts","nakiNigunArtists","nakiNigunAlbums","result","generateContentNameLabel","capitalize","pluralize","singularWord","pluralWord","contentName","values","generateDevicesLabel","deviceName","deviceNames","userDevice","lastKey","contentUnavailableModal","disableContentUnavailableInAppPolicy","NakiNigunAlbumUnavailableInAppTemplate","NakiNigunArtistUnavailableInAppTemplate","PodcastUnavailableInAppTemplate","StationUnavailableInAppTemplate","ContentPolicyWidgetViewStore","menuStore","closeMenu","ContentPolicyWidget","ContentPolicyWidgetTemplate","ContentUnavailableModal","ContentUnavailableModalTemplate","NakiNigunAlbumUnavailableInApp","NakiNigunArtistUnavailableInApp","PodcastUnavailableInApp","StationUnavailableInApp","CoverImageUploadViewStore","head","fileUploadStore","files","acceptedFiles","maxSize","onFileRejected","errorsMap","file-invalid-type","file-too-large","raiseBrowse","setImageUrl","changeUploadedFileId","clear","baseUrl","MrbFileUploadViewStore","showValidation","MrbContentLoaderStore","suspendRenderOnInit","file","uploadFile","uploadedFileId","getMediaVaultFileUrl","mediaVaultFile","uploadImageToMediaVault","fileId","setUploadedFileId","hasChanged","url","imageUrl","createAuthenticatedImageUrl","UserDeviceSyncStore","setIsDeviceSyncEnabled","isDeviceSyncEnabled","localStorageProvider","add","_cacheKey","syncDeviceSyncStatus","isBoolean","UserDeviceStore","userDeviceSyncStore","deviceLimit","_deviceService","DeviceService","newDevices","existingDevice","loadUserDevices","deviceService","getUserDeviceInfo","setDeviceLimit","setDevices","getUserDevice","resource","updateUserDevice","deleteUserDevice","limit","isDisabled","MainRouteStore","applicationMainSectionStore","isInitialized","PremiumSubscriptionStore","_paymentService","PaymentService","_productService","ProductService","_premiumInfo","customerPaymentMethod","subscriptions","_activeSubscriptionStatuses","statusAbrv","subscriptionStatus","isSubscriptionBundle","product","productCategory","premiumTrialPeriodUsed","invalidPaymentSubscriptions","latestInvalidPaymentTransaction","isInternal","isLegacySubscriptionActive","planId","paymentService","preprocess","subscriptionId","postprocess","refreshUserPremiumSubscription","paymentMethodId","postprocessPaymentMethodUpdate","paymentProviderPaymentMethodId","updateDefaultPaymentMethod","cancelSubscription","changeSubscriptionPlan","renewSubscription","upgradeTrialSubscription","activateTrial","endTrialPeriod","subscribeUsingExistingPaymentMethod","setupPaymentMethodRequest","getUserPremiumInfo","setPremiumInfo","getSubscription","getSubscriptionBySubscriptionPlan","subscriptionPlanId","premiumInfo","moment","utc","isBefore","isSubscriptionPlanActive","subscriptionPlan","status","UserContentManagerStore","isContentUnavailableInAppPolicyVisible","_userContentService","_nakiNigunUserContentService","NakiNigunUserContentService","_userTorahAnytimeCollectionService","UserTorahAnytimeCollectionService","_disableContentUnavailableInAppPolicy","mobileDevices","_updateStationsAndPodcastsStatusInternal","updateNakiNigunAlbumsStatus","_updateAlbumsTurnedOnStatusInternal","updateNakiNigunAlbumsStatusByArtist","_updateAlbumsTurnedOnStatusByArtistInternal","updateNakiNigunAlbumsStatusBulk","_updateAlbumsTurnedOnStatusBulkInteral","updateNakiNigunAlbumsStatusByArtistBulk","_updateAlbumsTurnedOnStatusByArtistBulkInternal","albumIds","nakiNigunUserContentService","updateAlbumsTurnedOnStatus","deviceIds","selectedDeviceIds","updateAlbumsTurnedOnStatusBulk","artistIds","updateAlbumsTurnedOnStatusByArtist","updateAlbumsTurnedOnStatusByArtistBulk","stationIds","podcastIds","updateStationsAndPodcastsTurnedOnStatus","collectionIds","userTorahAnytimeCollectionService","updateCollectionsTurnedOnStatus","unavailableStations","unavailablePodcasts","updateTorahAnytimeCollectionsStatus","_updateTorahAnytimeCollectionsStatusInternal","RootStore","MrbRootStore","modulesConfiguration","applicationSettings","ApplicationSettings","stores","applicationStoreFactory","BaasicAppStore","baasicAppFactory","authenticationStoreFactory","BaasicAuthenticationStore","userStoreFactory","NakiRadioUserStore","applicationMainSectionStoreFactory","NakiRadioApplicationSectionStore","downloadManagerStoreFactory","_ref5","DownloadManagerStore","providers","notificationProvider","MrbNotificationProvider","createStores","storesConfig","premiumSubscriptionStore","joyrideViewStore","JoyrideViewStore","contentEncoderSyncStore","ContentEncoderSyncStore","downloadManagerStore","createServices","coverImageFactory","CoverImageFactory","ContentAccessValidator","MainSidebarViewStore","isLogoutDisabled","logout","BaasicUserStore","roles","roleName","userProfile","membership","contentPolicyVisible","torahAnytimeAvailabilityVisible","connectDeviceVisible","contentUnavailableInAppVisible","_userSettingsService","UserSettingsService","_producerUserAccountService","ProducerUserAccountService","resolveUser","isAdministrator","setSystemRoute","isProducer","producerType","producerUserAccountService","getProducerUserAccountProducerType","userSettingsService","refreshUserAccount","disableTorahAnytimeAvailability","disableConnectDevice","application","baasic","membershipModule","update","MrbApplicationMainSectionStore","authenticationStore","resetSignInRedirect","buildMenu","setIsInitialized","isAuthenticated","_buildApplicationMenu","modules","_this$rootStore$userS","_this$rootStore$userS2","menu","moduleBuilder","buildMenus","configuration","menus","producerMenu","producerVerification","slug","localizationService","setMenu","deviceCount","_run","target","isTutorialPassed","tutorialPassed","stepIndex","EVENTS","STEP_AFTER","TARGET_NOT_FOUND","includes","ACTIONS","PREV","STATUS","FINISHED","SKIPPED","updateIsTutorialPassed","podcastEpisodeTasks","albumTrackTasks","numberOfActiveTasks","_rssSyncService","RssSyncService","_sync","startSync","stopSync","_clear","_tickIntervalInstance","setInterval","_tickDelay","resetSync","clearInterval","tasks","rssSyncService","getAllRssSyncTasks","task","podcastEpisodeId","trackId","setPodcastEpisodeTasks","setAlbumTrackTasks","downloadStatus","downloading","new","finished","failed","JSZip","downloadItem","initializeListeners","onItemsChanged","queuedItems","currentlyDownloadingItem","xhr","addItemToQueue","addItemsToQueue","XMLHttpRequest","downloadUrl","responseType","send","onload","_this$currentlyDownlo","_this$currentlyDownlo2","blob","Blob","sanitizedTitle","replace","defaultName","nameCounter","zip","onerror","onabort","onprogress","setDownloadProgress","loaded","total","fileName","generateAsync","then","downloadSingleItem","downloadZip","URL","createObjectURL","a","document","href","download","body","appendChild","click","revokeObjectURL","removeChild","localZip","clone","cancelDownload","retryDownload","downloadProgress","setSelectedViewValue","selectedViewValue","closeWindow","confirmDialogStore","showConfirm","message","onConfirm","yesLabel","noLabel","CoverImageUploadLoader","CoverImageUploadLoaderTemplate","PreviewContentLoader","PreviewContentLoaderTemplate","AddStationsOrPodcastsLoader","AddStationsOrPodcastsLoaderTemplate","UploadedImageLoader","UploadedImageLoaderTemplate","DescriptionLoader","DescriptionLoaderTemplate","ChangePasswordLoader","ChangePasswordLoaderTemplate","ToggleActionsLoader","ToggleActionsLoaderTemplate","UploadAlbumTrackLoader","UploadAlbumTrackLoaderTemplate","CoverImageUpload","CoverImageUploadTemplate","Image","ImageTemplate","CurrencyInputFieldTemplate","Popover","PopoverTemplate","PlaylistSelectStore","initialItems","isCreatable","createOption","showCreateOption","filteredItems","_this$filteredItems","_item$title","createdItem","_this$filteredItems$i","DropdownItemsResult","recordsPerPage","totalRecords","selectedOption","selectedOptions","onSelected","onRemoved","StatusTag","StatusTagTemplate","Accordion","AccordionTemplate","Progressbar","ProgressbarTemplate","CustomDropdown","CustomDropdownTemplate","numericRegex","PasswordFieldInfoViewStore","passwordField","character","toUpperCase","toLowerCase","containsSpecialCharacter","test","PasswordFieldInfo","PasswordFieldInfoTemplate","FloatingCard","FloatingCardTemplate","ApplicationWidgetPanel","ApplicationWidgetPanelTemplate","AppStartupLoader","AppStartupLoaderTemplate","MainSidebar","MainSidebarTemplate","TableNoDataOverlay","TableNoDataOverlayTemplate","DragDropList","DragDropListTemplate","RichTextEditor","RichTextEditorTemplate","FieldRichTextEditor","FieldRichTextEditorTemplate","HTMLRender","HTMLRenderTemplate","Genres","GenresTemplate","PremiumBadge","PremiumBadgeTemplate","ImageUploadNote","ImageUploadNoteTemplate","JoyrideOnboarding","JoyrideOnboardingTemplate","AdministrationWidgetPanel","AdministrationWidgetPanelTemplate","RootContext","createContext","useRootStore","useContext","AuthContent","withAuthorization","onlyIcon","onAction","other","displayLabel","otherProps","viewStore","statusType","inProgress","success","currentIcon","currentClassName","loading","MrbBreadcrumbs","navigationOptions","MrbBreadcrumbsOptions","defaultProps","overrideDefaultContent","createPageNumbers","totalPages","currentPage","pageNeighbours","ranges","range","rangeNum","tableStore","pageSizes","onPageChange","nextPageLabel","previousPageLabel","itemsPerPageLabel","totalRecordsLabel","hidePagerIfUnderLimit","hideItemsPerPage","recordCount","setPage","setPageSize","hideControls","min","isInteger","ceil","pages","pageSizeItems","goToPage","max","onClickPage","aria-hidden","MrbBasicSelect","onSelect","createInternalValue","timeZoneConverter","toJsDate","toDate","placeholder","isClearable","todayButtonLabel","minDate","maxDate","selectsStart","selectsEnd","monthsShown","showMonthYearPicker","dateFormat","internalValue","internalStartDate","internalEndDate","DatePicker","selected","parsedValue","toISOString","placeholderText","todayButton","popperClassName","fieldClassNameExtend","MrbFieldLayout","MrbDatePicker","AppHomeSectionApiRouteService","BaseApiRouteService","getAll","base","getFeaturedGrid","getContent","create","updateFeaturedGrid","delete","AppHomeSectionService","BaseService","apiClient","abortSignal","put","FeaturedSectionFileStreamApiRouteService","getFeaturedSectionCoverImageByGridItemId","featuredSectionGridItemId","FeaturedSectionFileStreamService","featuredGridItemId","ContentApiRouteService","DayHourApiRouteService","DayHourService","DayHourCacheService","BaseCacheService","DeviceApiRouteService","findUserDeviceForAuthenticatedUser","findUserDevice","updateUserDeviceDisabledStatus","getMenu","getMenuLatestItems","updateMenu","registerUserDevice","post","DeviceAnalyticsApiRouteService","getUserActivitySummary","getDeviceActivity","getUserDeviceActivity","getDeviceActivitySummary","DeviceAnalyticsService","DeviceMenuTypeApiRouteService","DeviceMenuTypeService","DeviceMenuTypeCacheService","EpisodeSortTypeApiRouteService","EpisodeSortTypeService","EpisodeSortTypeCacheService","GenreLookupApiRouteService","LanguageApiRouteService","LanguageService","LocationApiRouteService","LocationService","MediaVaultStreamService","mediaVaultModule","streams","routeDefinition","formData","FormData","append","getBlog","NakiNigunAlbumApiRouteService","findSongs","deleteAlbumTrack","getAllSongs","updateActiveStatus","updatePremiumStatus","updateFeaturedStatus","updateOnByDefaultStatus","updateOnByDefaultInAppStatus","updateOnByDefaultInNakiTouchStatus","findShufflableNakiNigunAlbum","updateHlsEnabledStatus","editAlbumTrackTitle","resources","uploadAlbumTrack","findAudioTrackAlbumSongs","findAlbums","NakiNigunAlbumFileStreamApiRouteService","getAlbumCoverImageByAlbum","getAlbumTrackAudioFile","NakiNigunArtistApiRouteService","updateVisibilityStatus","updateMobileAppVisibilityStatus","updateNakiTouchVisibilityStatus","findArtists","NakiNigunAlbumFileStreamService","NakiNigunAlbumService","excludeIds","fields","NakiNigunArtistService","NakiNigunArtistFileStreamApiRouteService","getArtistCoverImageByArtist","NakiNigunArtistFileStreamService","NakiNigunUserContentApiRouteService","getAlbumsByArtist","getNakiNigunArtistWthDeviceSettings","getNakiNigunArtist","getUserDeviceAlbumsByArtist","getFeaturedArtists","getFeaturedAlbums","OrderApiRouteService","OrderService","PaymentApiRouteService","getLatestSubscriptionPayment","getSubscriptionChangePreview","PodcastApiRouteService","findEpisodes","getAllEpisodes","deletePodcastEpisode","updateExcludedFromRevenueStatus","excludedFromRevenue","findShufflablePodcast","findDevicePodcasts","createGroup","updateGroup","updatePodcastTurnedOnStatus","updateAppVisibilityStatus","updateRecentlyUpdatedVisibilityStatus","editPodcastEpisodeTitle","uploadEpisode","findAudioTrackEpisodes","getPodcasts","PodcastService","PodcastFileStreamApiRouteService","getPodcastCoverImageByPodcast","getPodcastEpisodeAudioFile","UserPodcastExpirationApiRouteService","UserPodcastExpirationService","PodcastAnalyticsApiRouteService","getTrendingPodcasts","getPodcastActivity","getPodcastStats","getPodcastSummary","getPodcastListenersStats","getTrendingPodcastsForProducer","getTrendingPodcastsTotalStreamsForProducer","PodcastAnalyticsService","getPodcastPremiumStatistic","getPodcastGroupPremiumStatistic","PremiumPaymentAnalyticsApiRouteService","getPodcastGroupPaymentStatistic","getPodcastPaymentStatistic","getStationPaymentStatistic","findPremiumPaymentSummary","ProducerApiRouteService","ProducerService","ProducerPreviewReportPeriodCellApiRouteService","findProducerReportPayoutUserEvents","findProducerReports","getProducerPaymentSummary","findProducerReportItems","ProducerReportService","ProducerReportApiRouteService","ProducerUserAccountApiRouteService","getProducerAccountsSummary","getAdminProducerAccountSummary","getAdminProducerAccountAssignedProducers","getProducerAccountSummary","getAccountTotalBalance","getProducerTotalBalance","getStripeConnectAccounts","getAdminProducerAccountBalance","getAdminProducerAccountRevenueTransaction","getProducerAccountBalance","getProducerAccountRevenueTransaction","updateAccounts","addAccountBalance","processPayoutToBankAccount","updateStripeAccount","getProducers","getProducersSummary","getStripeConnectOnboardingStatus","createStripeConnectLink","ProducerAnalyticsApiRouteService","findProducerPaymentSummary","getProducerSummary","getProducerMostPopularContent","ProducerAnalyticsService","ProductApiRouteService","getAllSubscriptions","getSubscriptionBundle","getAllSubscriptionBundles","ShuffleApiRouteService","createStation","createNakiNigun","createPodcast","ShuffleService","ShuffleWeightApiRouteService","ShuffleWeightService","ShuffleWeightCacheService","StationApiRouteService","findShufflableStation","findDeviceStations","updateStationTurnedOnStatus","StationService","StationFileStreamApiRouteService","getStationCoverImageByStation","createStationCoverImage","updateStationCoverImage","StationFileApiRouteService","deleteByStation","UserStationExpirationApiRouteService","UserStationExpirationService","StationAnalyticsApiRouteService","getStationPremiumStatistic","getTrendingStations","getStationActivity","getStationStats","getStationSummary","getStationListenersStats","StationAnalyticsService","TorahAnytimeApiRouteService","findSpeakers","findTopics","getSetting","findSpeakersByGender","findSpeakerIdsByTopicIds","TorahAnytimeService","topicIds","UserTorahAnytimeCollectionApiRouteService","findWthDeviceSettings","UserContentApiRouteService","findPremiumContentInfo","getSubPodcasts","getPodcastVolumes","UserAccountApiRouteService","activateSystemTypeSubscription","getUserSubscriptionInfo","artistRegister","UserAccountService","WeekDayApiRouteService","WeekDayService","WeekDayCacheService","PortalAnalyticsService","PortalAnalyticsApiRouteService","getUserPortalStatsSummary","getPortalAnalytics","getRegisteredUsersActivity","getRegisteredUsersSummary","getRegisteredUserDevicesActivity","getRegisteredUserDevicesSummary","getConnectedDevicesActivity","getConnectedDevicesSummary","getPremiumSubscriptionsActivity","getPremiumSubscriptionsSummary","UserSettingsApiRouteService","NakiNigunAnalyticsApiRouteService","getNakiNigunListenersStats","getTrendingAlbumsForProducer","getTrendingAlbumsTotalStreamsForProducer","getTrendingNakiNigunAlbums","getNakiNigunAlbumActivity","getNakiNigunAlbumSummary","NakiNigunAnalyticsService","RssSyncApiRouteService","hlsEncodeAlbums","ids","processHls","overwriteHls","processMp3","overwriteMp3","hlsEncodePodcasts","hlsEncodeAlbumTracks","hlsEncodePodcastEpisodes","syncPodcasts","syncNakiNigunAlbums","syncPodcastsBackground","syncNakiNigunAlbumsBackground","GenreApiRouteService","getGenreContent","GenreService","PlaylistApiRouteService","findAdminGeneratedPlaylists","createAdminGeneratedPlaylist","addItemToAdminGeneratedPlaylist","playlistId","deleteAlbumTrackFromAdminGeneratedPlaylist","albumTrackId","getAllAdminGeneratedPlaylists","updateAdminGeneratedPlaylists","getAdminPlaylist","deleteAlbumTrackFromAdminPlaylist","PlaylistService","_podcastFileStreamService","_stationFileStreamService","_nakiNigunArtistFileStreamService","_nakiNigunAlbumFileStreamService","_featuredSectionFileStreamService","createNakiNigunArtistCoverImageUrl","nakiNigunArtistFileStreamService","createNakiNigunAlbumCoverImageUrl","nakiNigunAlbumFileStreamService","createFeaturedSectionCoverImageUrl","featuredSectionFileStreamService","CACHE_PREFIX","BaseCacheManager","storageProvider","composeKey","region","fetchFn","composedKey","existingPromise","promiseRegistry","resultPromise","remove","clearRegion","getKeys","k","startsWith","mrbCacheManager","cacheKey","getItems","getOrAdd","removeItems","StripeField","setError","onStripeFieldChange","setIsCompleted","complete","isCompleted","resetValidation","DownloadRequest","artworkUrl","duration","fileSize","isLoading","DefaultOptions","minDispayTime","_loaderCount","_pastStartDelay","customDelay","stopDelayTimeout","clearStopDelayTimeout","createLoadingStartTime","startDelayTimeout","loadingStartTime","Date","getTime","_resumeWithDelay","_resumeLoaderInternal","clearTimeout","clearStartDelayTimeout","box","_initial","MrbFormFieldContentLoader","col","screenwidth","floor","colWidth","MrbLineContentLoader","smallWidth","setWidth","lineheight","setHeight","setY","MrbHeaderLoader","headerheight","cx","cy","MrbRectangleContentLoader","rectangleHeight","rectangleWidth","spacing","xRadius","yRadius","xBase","yBase","columns","j","suspendRendering","propTypes","PropTypes","object","isRequired","func","any","MrbHeaderWithoutImageLoader","arrayDifference","lhsArray","rhsArray","predicate","elemOrThunk","isImage","fileExtension","fileExtensions","image","isDocument","isVideo","video","_len","args","_key","defaultCss","forOverride","forMerge","momentDate","isMoment","ISO_8601","isValid","tz","localTimeZone","guess","TemplateComponent","withTranslation","stripePromise","loadStripe","stripeProvider","Elements","stripe","ModuleProvider","configurations","ctx","moduleStore","moduleProviderFactory","names","buildConfiguration","modulesRouteConfig","moduleRoute","moduleName","contextRoutes","routeProvider","modulesMenuConfig","moduleMenu","contextMenus","menuProvider","modulesStoreConfig","contextStores","storeProvider","applicationBootstrapper","getConfigurations","moduleNames","getRoutes","getMenus","getStores","StripeAccountFieldSelectTemplate","StripeAccountLinkTemplate","StripeFieldValidation","StripeFieldValidationTemplate","StripeCreditCardField","StripeCreditCardFieldTemplate","Header","analyticsTimeRangeViewStore","AnalyticsTimeRange","MrbPage","AnalyticsLayout","AnalyticsLayoutTemplate","MrbPageContent","emptyRenderer","MrbApplicationEmptyState","contentClassNameExtend","contentClassNameOverride","EditPageActions","layoutActions","routeParams","MrbEditFormValidation","pageProps","MrbEditPageHeader","MrbListPage","layoutActionsLength","MrbPreviewPageHeader","uriFormat","RegExp","mrbDefaultFormRules","array_required","rule","attr","mrbDefaultValidationErrors","accepted","after","after_or_equal","alpha","alpha_dash","alpha_num","before","before_or_equal","between","confirmed","def","different","digits","in","integer","numeric","string","not_in","present","regex","required","required_if","required_unless","required_with","required_with_all","required_without","required_without_all","same","size","after_date","MrbValidationRules","_rules","rulesExpression","_separator","addIsRequiredRule","addRule","removeIsRequiredRule","removeRule","ruleName","ruleExists","createExpression","spanDataSetToFullDateRange","dataset","createItemFn","timeRange","groupedBy","periods","currentPeriodStart","startOf","currentPeriodEnd","endOf","missingPeriods","periodStartDate","isSame","createTimeRangeChartLabel","timeGroup","hour","startOfDay","day","week","startOfWeek","endOfWeek","periodEndDate","timeRangeLabelParser","createCurrentCycleLabel","from","to","timeRangeType","today","yesterday","last3Days","thisWeek","lastWeek","thisMonth","lastMonth","fromDate","createPreviousCycleLabel","MrbEmptyState","MrbRecaptcha","tabindex","setCaptchaRef","onExpired","onError","ReCAPTCHA","sitekey","siteKey","badge","badgePosition","stoken","secureToken","onErrored","DefaultConfig","MrbRecaptchaViewStore","captchaRef","getVerificationResult","executeAsync","getValue","merge","MrbRecaptchaPrivacyPolicy","responsive","maintainAspectRatio","animation","easing","scales","suggestedMax","grid","color","ticks","LineChartStore","generate","getResources","preprocessData","mapDataset","labels","mapLabels","setLabels","LineChart","LineChartTemplate","DoughnutChartStore","setDataSet","DoughnutChart","DoughnutChartTemplate","MenuItem","hasChildren","m","isClickable","canNavigate","json","parent","path","depth","equals","isActiveByPath","shouldHideChildren","getRoute","forceLeaf","every","p","getPattern","pattern","findRoute","generateUrl","setIsSelected","isSelected","setIsActive","NavigationOptions","_descriptor5","MrbNotifyOutsideClick","ignoreElementsRef","setWrapperRef","handleClickOutside","isInIgnoreList","componentDidMount","addEventListener","componentWillUnmount","removeEventListener","wrapperRef","contains","MrbHeader","layoutFooterVisible","MrbEditFormFooter","mrbDefaultFormats","bool","MrbBaseFormatter","formatType","canFormat","boolFormatter","isTrue","trueLabel","falseLabel","locale","_getOrAddFormatter","formatter","_formatters","Intl","NumberFormat","style","MrbApplicationFormatter","formatters","existingFormatterIndex","existingFormatter","localStorageHandler","localStorage","removeItem","getItem","JSON","parse","stringify","len","StorageProvider","storage","storageKey","joinPaths","b","str","removeStartingSlash","getSkipRoutePrefix","fromState","toState","fromParts","getRouteParts","toParts","skipRoutePrefix","fromElement","toElement","getBreadcrumbTitle","suffix","endsWith","breadcrumb","MrbRouter","RouterStore","goToState","valueEqual","StateRouteOptions","component","layouts","last","initial","isPublic","appendComponents","hookCondition","beforeExit","beforeEnter","onExit","onEnter","eventHooks","flatParentRoute","parentOptions","StateRoute","layout","childRoute","routeChanged","routeOptions","hook","triggerRouteStoreLifecycle","ex","reject","createRouterState","eventName","createCurrentRouteStore","onBeforeEnter","getCurrentRouteStore","onBeforeExit","removeCurrentRouteStore","flatParentOptions","routeTree","prev","current","f","optionLength","back","crumbs","createRouteTree","router","fireEvent","mainViewStore","setNavigationOptions","isEqual","routeChange","renderComponent","renderParentComponent","flattenRoutes","flatRoutes","getFlatRoutes","routerMaps","getRouterMaps","maps","flatten","stateRoute","getDefaultRouteDataMap","routeDataMap","parts","listRoute","take","routeData","renderRouteTree","renderChildRoute","viewMap","RouterLink","maximumFractionDigits","roundedCurrencyFormatter","minimumFractionDigits","UUID","uuidv4","NIL","uuid","validate","element","direction","distance","step","scrollAmount","slideTimer","scrollLeft","calculatePercantageIncrease","currentVal","originalValue","calculateNumberOfTorahAnytimeWizardRows","round","innerHeight","convertSecondsToHMS","sec","parseInt","hours","minutes","seconds","reportVersion","reportForMonth","endOfMonth","subscriptionCategory","logger","logError","console","log","Sentry","uriTemplateService","uritemplate","expand","batchDelete","batchUpdate","batchCreate","errorFormatterService","dataMessage","headers","isUndefined","isNull","mergeMessages","exceptionMessage","exception","innerException","Message","modelState","MrbBaseField","Field","preprocessErrorMessage","setup","output","initialSetup","validationRules","disable","enable","validationDebounceWait","validateOnChange","validateOnBlur","validateOnChangeAfterSubmit","MrbBaseForm","Form","hooks","customRules","mapRuleValidationMessage","plugins","dvr","package","validatorjs","validator","customRule","register","submit","vals","vk","setFieldsDisabled","makeField","toast","warning","MrbNotificationContainer","ToastContainer","i18n","use","Backend","LanguageDetector","initReactI18next","init","defaultNS","fallbackLng","debug","load","react","useSuspense","preload","backend","loadPath","whitelist","localizeMessages","messages","attributes","forOwn","on","lng","Validator","getMessages","setMessages","useLang","callbacks","c","registerCallback","callback","callbackId","removeCallback","ApplicationLocalization","ready","useTranslation","I18nextProvider","LocalizedField","_callbackId","localizedValidatorService","showError","showErrors","match","createLocalizedValidationMessage","LocalizedForm","getLocalizeFields","localize","isSyncing","number","GenerateAudioFilesModalTemplate","GenerateAudioFiles","subtitle","hlsStreamUrl","audioFileBitrate","audioFileSize","audioStreamUrl","processHlsEncodingForSingleEntity","processHlsEncodingForAllEntities","cancel","generateHls","setGenerateHls","generateMp3","setGenerateMp3","src","MrbToggle","checked","ContentSyncWidget","ContentSyncWidgetTemplate","GenerateAudioFilesModal","cloneDeep","_this","getRouteLevel","merged","mergeRoutes","mergeRoute","getCurrentPath","ln","_getRoute","el","moduleStores","storeInfos","namespaces","count","isLast","namespace","ProducerPaymentReportFilter","subtract","ProducerPayoutUserEventFilter","elements","tab","MrbTabHeader","png","jpg","jpeg","bmp","svg","heic","tif","tiff","pdf","docx","xlsx","xls","txt","csv","avi","flv","swf","wmv","mpeg","mpg","mp4","mp3","mov","m4a","rm","ogv","webm","mpe","dateRangeFactory","createPreviousCycleRangeFrom","daysDiff","createPreviousCycleRangeTo","createPreviousCycleRange","MrbSelectVirtualizedList","componentDidUpdate","prevProps","focusedOption","previousFocusedIndex","focusedOptionIndex","virtualListRef","scrollToItem","maxHeight","NoOptionsMessage","initialOffset","valueIndex","rowHeight","potentialTotalHeight","FixedSizeList","itemCount","itemSize","initialScrollOffset","appendNextPage","MrbBaseSelectStore","_dec10","_dec11","_dec12","_dec13","_dec14","_dec15","_dec16","_dec17","_value","isMulti","mapDropdownItems","originalItems","_descriptor6","isDisabledKey","filterDebounce","pageable","preselectFirstItemAsDefault","mapItem","onOpen","fetchOriginalItem","initializeOriginalItems","onPostInitializeOriginalItems","setSelectedOption","mapDropdownItem","setPageNumber","addSelectedItem","setSearchTerm","filterDataSource","filterInMemory","dropdownItemsResult","clearOptions","defaultConfig","virtualized","createOptionPosition","formatCreateLabel","isOptionDisabled","MrbSelectStore","setIsOpen","isOpen","valueContainerRef","toggleFocusPosition","setFocusedIndex","registerKeyDownEventListener","removeKeyDownEventListener","resetFocusedIndex","focusedIndex","fetchOnChange","oldValue","MrbFieldSelectStore","formField","setFormValue","MrbFieldSimpleSelectStore","autoFocus","formatOptionLabel","setSelectRef","loadNextPage","MenuList","SelectComponent","Creatable","Select","onInputChange","filterOption","onCreateOption","onMenuOpen","onMenuClose","onMenuScrollToBottom","classNamePrefix","MrbSelect","MrbSimpleSelectOption","optionRender","onMouseOver","onMouseDown","dropdownClassNameExtend","MrbSimpleSelectPanel","MrbSimpleSelectValue","DropdownIndicator","valueRender","showDropdownIndicator","toggleIsOpen","setValueContainerRef","onFocus","onBlur","MrbSimpleSelectValueContainer","MrbSimpleSelectPanelContainer","MrbCheckbox","labelClassNameExtend","labelClassNameOverride","custom","Line","canvas","getContext","getAttribute","gradient","createLinearGradient","addColorStop","datasets","borderColor","lineTension","createChartjsParams","DeviceActivityEmptyState","Doughnut","borderWidth","UploadFooter","isFullWidthFooterButtons","uploadImage","coverImageUploadViewStore","classNameExtendUpload","showInfo","MrbFileUpload","MrbImage","fallbackSrc","coverPlaceholder","rest","defaultCoverPlaceholder","loadingPlaceholder","restOfProps","CurrencyInput","decimalsLimit","prefix","onValueChange","PodcastGroupLoader","PodcastsLoader","StationsLoader","StationsOrPodcastLoaderLrg","BoxList","ToggleList","cardHeight","InputLoader","containerWidth","viewWidth","smlSpace","x2","y2","FormInputsLoaderTemplate","noBackground","button","Button","screewidth","contentWidth","PasswordHeader","PasswordPreview","textWidth","sidebarLrg","UploadAlbumTrackTemplate","uploadLoaderWidth","setUploadLoaderWidth","uploadRef","AccountOption","AccountLabel","AccountSelectedValue","rel","cardStyle","iconColor","fontFamily","fontSize","CardElement","trigger","contentList","contentClassName","handleIsOpen","customStyle","handleRemoveCard","showClose","additionalContent","prevIsOpen","displayValue","percentage","toFixed","widthValue","statusClass","createPortal","triggerClassNameOverride","triggerClassNameExtend","triggerClassName","positions","align","padding","onClickOutside","boundaryInset","containerClassName","SubscriptionInfoWidgets","pastDueSubscriptions","premiumPastDueSubscriptions","PastDueSubscriptionWidget","trialSubscriptions","premiumTrialSubscriptions","PremiumInfoTrialWidget","subscriptionExist","PremiumInfoWidget","APP_VERSION","version","UserInfo","displayName","userName","mainSidebarViewStore","toggleMenuOpen","logo","alt","MrbMenu","droppableId","itemRender","generateItemKey","onDragEnd","DragDropContext","Droppable","provided","droppableProps","Draggable","draggableId","draggableProps","dragHandleProps","shuffleDisabled","shuffleWeightOptions","toggleId","MrbFieldRadioButtons","_class2","htmlToDraft","contentState","ContentState","createFromBlockArray","contentBlocks","editorState","EditorState","createWithContent","setEditorState","onEditorStateChange","draftToHtml","convertToRaw","getCurrentContent","Editor","toolbar","inline","createEmpty","dangerouslySetInnerHTML","__html","genres","genre","isPremiumSubscriptionValid","premiumSize","iconSize","passwordFieldInfoViewStore","isMiniumLengthValid","containsNumericCharacter","customStyles","arrowColor","textColor","zIndex","tooltip","tooltipFooter","marginTop","buttonClose","right","top","borderRadius","tooltipContent","textAlign","buttonSkip","opacity","buttonBack","buttonNext","steps","run","handleJoyrideCallback","Joyride","continuous","showSkipButton","styles","MrbBaseAppStore","_getApiClient","app","setApp","Type","MrbBaseUserStore","applicationUser","resetPermissions","removeUser","permissions","MrbBaseAuthenticationStore","isTokenValid","token","onIsAuthenticatedChange","onUnauthenticated","goToLogin","syncToken","setToken","setSignInRedirect","state","signInRedirect","getSignInRedirect","initialState","login","username","password","propertyName","searchButtonLabel","showSearchButton","maxLength","onKeyPress","onInlineReset","MrbNumericInput","NumericInput","noStyle","panelRender","paging","onDataChange","MrbBaseGridViewStore","_filterActionsWithPermission","formatValue","generateCellKey","originalData","handleResponse","dataInitialized","changePage","changePageSize","setSort","changeOrder","resetGridItems","deviceHardwareFormatter","deviceHardware","deviceFirmware","hardware","DeviceHardwareCellTemplate","ContentTypeIcon","UserDeviceActivityContentCellTemplate","contentTitle","UserPayoutEventListContentCellTemplate","TopTrendingListLoaderTemplate","userActivity","AnalyticsGraphLoaderTemplate","itemX","itemY","labelY","labelX","transform","TopTrendingListViewMoreLoaderTemplate","loadMore","loaderSml","imgY","textWidth2","AnalyticsStatsLoaderTemplate","screenWidth","circleLoaderHeight","NewDevices","PremiumAnalyticsLoader","circleWidth","y1","y3","circleY","PortalDetailedActivityLoaderTemplate","cardWidth","CircleLoader","StatsWidgetLoaderTemplate","statsPreview","StatsPreviewLoader","AnalyticsPremiumListLoaderTemplate","AnalyticsGruopLoaderCard","listItems","headerItems","ContentStatsListLoaderTemplate","loaderList","UserAccountSummaryLoaderTemplate","secondTextWidth","UserDeviceActivitySummaryLoaderTemplate","SubscriptionInfo","userDeviceActivityViewStore","userPortalSummary","UserAccountSummaryLoader","dateOfRegistration","numberOfDevices","userDeviceActivitySummaryViewStore","chartStore","UserDeviceActivitySummaryLoader","PlaybacksList","contentPlaybacks","Sign","TimeRangeLabel","currentCycleNumber","previousCycleNumber","timeRangeLabelRenderer","trend","indicatorClass","abs","TrendingNumber","TrendingIndicatorTemplate","showIncreaseNumber","indicatorClassNameExtend","currentPeriodLabel","previousPeriodLabel","StatsWidgetLoader","currentCycleScore","currentCyclePosition","previousCyclePosition","TrendingIndicator","timeRangeSelectStore","isDateRangeDisabled","setFromDate","setToDate","applyFilter","datePickerOptions","MrbSimpleSelect","deviceActivitySummaryViewStore","deviceActivityChartStore","AnalyticsGraphLoader","topTrendingPodcastsViewStore","filterOptions","selectedFilterOption","setFilterOption","MrbRadioButtons","inputClassNameExtend","TopTrendingEmptyState","topTrendingStationsViewStore","DeviceActivityEmptyStateTemplate","TopTrendingEmptyStateTemplate","TrendingListItemTemplate","score","portalViewStore","AnalyticsStatsLoader","AnalyticsCounter","arrowRight","currentCycleTotal","registeredUserDevices","registeredUsers","connectedDevices","PercentageIncreaseDonutChart","previousCycleTotal","Summary","totalLabel","nameFieldRenderer","PortalDetailedActivityLoader","chartSize","previousCycleFrom","previousCycleTo","activityLabel","PercentageIncreaseDonutChartTemplate","graphValue","stroke","strokeWidth","strokeDasharray","strokeDashoffset","podcastListenersListViewStore","MrbGrid","emptyStateRender","ContentStatsListLoader","cellRender","PodcastListenersCell","nakiNigunListenersListViewStore","NakiNigunListenersCell","stationListenersListViewStore","StationListenersCell","PodcastListenersCellTemplate","podcastGroupId","podcastGroupTitle","StationListenersCellTemplate","NakiNigunListenersCellTemplate","artistName","topTrendingNakiNigunAlbumsViewStore","nakiNigunAlbumId","DeviceHardwareCell","UserDeviceActivityContentCell","UserPayoutEventListContentCell","TopTrendingListViewMoreLoader","UserAccountSummary","UserAccountSummaryTemplate","UserContentListSummary","UserContentListSummaryTemplate","UserDeviceActivitySummary","UserDeviceActivitySummaryTemplate","AnalyticsCounterTemplate","StatsWidget","StatsWidgetTemplate","AnalyticsTimeRangeTemplate","DeviceActivitySummary","DeviceActivitySummaryTemplate","TopTrendingPodcasts","TopTrendingPodcastsTemplate","TopTrendingStations","TopTrendingStationsTemplate","TrendingListItem","PortalUserDevice","PortalUserDeviceTemplate","PortalNewDevices","PortalNewDevicesTemplate","PortalDetailedActivity","PortalDetailedActivityTemplate","PodcastListenersList","PodcastListenersListViewStore","PodcastListenersListTemplate","StationListenersList","StationListenersListViewStore","StationListenersListTemplate","NakiNigunListenersList","NakiNigunListenersListViewStore","NakiNigunListenersListTemplate","TopTrendingNakiNigunAlbums","TopTrendingNakiNigunAlbumsTemplate","MrbApp","applicationStartupStore","Provider","RouterContext","ApplicationRouterView","observe","listener","disposer","observeDisposers","reactDisposers","addEvent","eventHandler","eventDisposers","parentRouteStore","_resolveRouteExitBlocking","setIsRouteExitBlocked","isRouteExitBlocked","onCancel","MrbBaseEditViewStore","FormClass","redirectOnCreateSuccess","redirectOnUpdateSuccess","successCreateNotification","successUpdateNotification","autoFocusField","_createNavigateBackAction","onSuccess","isEdit","updateResource","createResource","focus","initializeResource","getResource","NotFound","goToNotFound","resetForm","onCreateSuccess","onCreateError","onUpdateSuccess","onUpdateError","updateForm","notifySuccessCreate","notifySuccessUpdate","getCurrentRoute","MrbQueryUtility","MrbBaseInfiniteScrollListViewStore","ModuleStore","MrbApplicationStartupStore","_isInitialized","currentPath","historyAdapter","history","location","pathname","loginState","moduleContext","buildStores","applicationStore","createModuleStores","postInitialize","MrbErrorStore","handleApiError","initializeGlobalUnhadledRejectionListener","initializeGlobalErrorListener","self","reason","request","handleError","handlerFn","Unauthorized","Forbidden","goToUnauthorized","errorState","getErrorObject","errorStore","MrbRouterStore","configuredRoutes","isRouterInitialized","buildRoutes","notFoundState","HistoryAdapter","browserHistory","observeRouterStateChanges","newRoute","newParams","newQueryParams","transitionData","newState","unauthorizedState","goToDefaultRoute","setQueryParams","setRouterState","setTransitionData","setRouteTitle","routeTitleMap","setRouteData","setRouteNavigateBack","routeBackMap","getMergeObject","newRouteData","getCurrentData","MrbMainViewStore","opts","res","setTitle","findActiveMenuItem","bestMatch","difference","getDifference","menuParts","routeParts","slice","MrbMenuStore","selectedPath","activePath","activeRoute","syncMenuRoute","rawMenu","setActivePath","setSelectedPath","selectMenuItem","newPath","subPath","_getCommonSubPath","pop","selectedMenuItem","setActiveMenuItem","activeItem","lhs","rhs","minLength","MrbNotificationStore","MrbConfirmDialogStore","confirmModalParams","MrbConfirmModalParams","errorStoreFactory","applicationStartupStoreFactory","routerStoreFactory","mainViewStoreFactory","menuStoreFactory","notificationStoreFactory","mainLoaderStoreFactory","confirmDialogStoreFactory","_config","Map","Store","parentName","parentStore","currentRouteStores","has","MrbPrimaryMenuLevel","subMenuRenderer","baseCss","MrbRouteLinkMenuItem","isMenuExpanded","toggleMenu","MrbMenuItem","MrbSecondaryMenuLevel","activeClassName","secondaryMenu","withRootStore","Consumer","AuthComponent","getPropertyName","property","getView","WrapComponent","initializeView","parentView","storeName","customStoreName","currentView","store_path","view","onViewUpdate","loaderOptions","MrbGridEmptyState","PagerWrapper","pagerRender","renderer","MrbPager","valueFormatter","BaseProducerRevenueReportViewStore","maskUserNames","ignoreQueryParams","fetchSummaryData","selectedDate","getSumaryData","setSummaryData","setContainerRef","containerRef","AnalyticsFilter","_range","UserDeviceActivityFilter","BaseAnalyticsViewStore","timeRangeOptions","_options","paramKeyMap","createAnalyticsTimeRangeViewStore","AnalyticsTimeRangeViewStore","BasePortalDetailedActivityViewStore","chartLabel","spannedDataset","periodStart","periodEnd","createParams","getActivityChartData","legend","display","fetchSummary","_fetchSummary","AnalyticsDashboardRouteStore","deviceAnalyticsService","stationAnalyticsService","podcastAnalyticsService","nakiNigunAnalyticsService","portalAnalyticsService","AnalyticsDashboardViewStore","DeviceActivitySummaryViewStore","TopTrendingPodcastsViewStore","TopTrendingStationsViewStore","TopTrendingNakiNigunAlbumsViewStore","PortalViewStore","uniqueListeners","DeviceActivityRouteStore","DeviceActivityViewStore","PremiumUsersActivityRouteStore","PremiumUsersActivityViewStore","RegisteredUsersActivityRouteStore","RegisteredUsersActivityViewStore","RegisteredUserDevicesActivityRouteStore","RegisteredUserDevicesActivityViewStore","PodcastActivityRouteStore","PodcastActivityViewStore","StationActivityRouteStore","StationActivityViewStore","NakiNigunAlbumActivityRouteStore","NakiNigunAlbumActivityViewStore","ConnectedDevicesActivityRouteStore","ConnectedDevicesActivityViewStore","TrendingStationListRouteStore","TrendingStationListViewStore","TrendingPodcastListRouteStore","TrendingPodcastListViewStore","TrendingNakiNigunAlbumListRouteStore","TrendingNakiNigunAlbumListViewStore","UserDeviceActivityRouteStore","UserDeviceActivitySummaryViewStore","sumBy","parsed","loadData","getUserDeviceActivitySummary","devicePlaybacks","setContentPlaybacks","UserDeviceActivityViewStore","userIds","findUserDevices","deviceIdentifier","MrbTableViewStore","cell","sortable","setUserPortalSummary","defaultDropdownOptions","selectableOptions","BaseStatsWidgetViewStore","fetchResource","setTimeRange","setParameters","parameters","ContentStatsViewStore","selectedContentType","ContentStatsRouteStore","apiKey","BaasicApp","storageHandler","BaasicOptions","useSSL","apiRootUrl","appUrl","apiVersion","applicationIdentifier","getApiKey","apps","getAccessToken","initAuthEvents","tokenHandler","tokenExpiredEventName","tokenUpdatedEventName","expireTime","BaasicPermissionService","tokens","section","toLower","sectionPermissions","authorizationValid","permissionService","_resolveUserPromise","resolveBaasicApplicationUser","setUser","baasicApplication","loadUserData","isApplicationUser","getUserProfile","userProfileModule","profile","policy","requestedAuthorization","l","accessPolicy","first","getApiUrl","tokenUrl","ttype","HomeListSearchLoaderTemplate","list","x1","HomeListLoaderTemplate","bulk","explorePremium","useRef","useEffect","offsetWidth","outsideContent","cardSpace","cardSize","setX","HomePreviewStationsLoaderTemplate","HomePreviewCollapsePanelLoaderTemplate","HomePreviewSubPodcastListLoaderTemplate","HomeEmptyStateTemplate","ConnectDeviceModalTemplate","shouldCloseOnOverlayClick","HomeSearchResultGridCellTemplate","nakiRadioContentType","useCanAccessContent","canAccessPremium","getContentActivityStatusIcon","numberOfEnabledSubPodcasts","numberOfSubPodcasts","canAccessOnSelectedDevice","StatusToggle","updateTurnedOnStatus","TogglePremium","canAccessPremiumContent","HomePreviewHeaderTemplate","hideStatusButton","HomeDeviceSelect","DeviceSelectValue","DeviceOption","isMobile","HomeDeviceSelectTemplate","OrderBySelectValue","HomeOrderBySelectTemplate","contentTypeOptions","MrbQuerySearchInput","HomePageLayoutTemplate","SubPodcastPanelHeader","homeSubPodcastViewStore","toggleSubPodcastStatus","setPanelRef","MrbCollapsiblePanel","descriptionLink","language","alternativeDescription","ContentFilter","premiumDisabledOptions","selectedPremiumDisabledOption","HomeManageSelectedItems","HomeFeaturedContent","HomeOrderBySelect","HomeListLoader","HomeGridCell","HomeEmptyState","PodcastGroupsList","onClickPodcastGroup","PodcastGroup","hasItems","HomeListSearchLoader","HomeSearchResultGridCell","FeaturedItem","onClickFeaturedItem","changeTurnOn","isSelectedItemsAny","HomePreviewStations","HomePreviewSubPodcastListLoader","ConnectDeviceModal","HomeGridCellTemplate","HomePreviewHeader","HomePageHeader","HomePageHeaderTemplate","HomePageLayout","HomeSubPodcast","HomeSubPodcastTemplate","HomeSearchResults","HomeSearchResultsTemplate","HomeFeaturedContentTemplate","HomeMainView","HomeMainViewTemplate","TogglePremiumTemplate","HomeManageSelectedItemsTemplate","Continue","SwitchingProtocols","OK","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultipleChoices","Ambiguous","MovedPermanently","Moved","Found","Redirect","SeeOther","RedirectMethod","NotModified","UseProxy","Unused","TemporaryRedirect","RedirectKeepVerb","BadRequest","PaymentRequired","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","RequestEntityTooLarge","RequestUriTooLong","UnsupportedMediaType","RequestedRangeNotSatisfiable","ExpectationFailed","UpgradeRequired","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","ProducerPaymentReportCell","ProducerPayoutUserEventListViewStore","ProducerPaymentReportCellTemplate","ProducerPlaybackTimeCell","ProducerPlaybackTimeCellTemplate","UserEventPayoutCell","UserEventPayoutCellTemplate","ProducerPreviewReportPeriodCell","ProducerPreviewReportPeriodCellTemplate","ProducerPreviewReportPlaybackTimeCell","ProducerPreviewReportPlaybackTimeCellTemplate","ProducersDetailsListLoader","ProducersDetailsListLoaderTemplate","ProducerSummaryLoaderTemplate","ProducerFieldSelect","ProducerFieldSelectTemplate","ProducerLabelTemplate","ProducerReport","ProducerReportTemplate","ProducerReportLayout","ProducerReportLayoutTemplate","ProducerReportsTable","ProducerReportsTableTemplate","ProducerAccountPreviewBalance","ProducerAccountPreviewBalanceTemplate","ProducerAccountPreviewRevenueTransaction","ProducerAccountPreviewRevenueTransactionTemplate","NakiNigunPremiumBadgeTemplate","NakiRadioPremiumBadgeTemplate","NakiRadioFreeBadgeTemplate","ExplorePremiumLoaderTemplate","ExplorePremiumItem","imgSize","imgX","titleX","titleY","arrowY","InfoList","start","infoList","PaymentCardLoaderTemplate","SubscriptionPlanLoaderTemplate","PlanCardLoaderTemplate","ChangeSubscriptionPlanLoaderTemplate","PlanCardLoader","ChangeSubscriptionInfoLoader","InvalidPaymentInfoTemplate","paymentError","errorCode","PremiumTrialExpirationTemplate","todayDate","trialPeriod","trialEndDate","nextBillingDate","daysNum","getTrialExpiresDescription","getPremiumStartsDescription","SubItems","premiumContentViewStore","onClickSubItem","PremiumContentSubListItem","ContentItemPanelHeader","hasSubContent","premiumContentListItemViewStore","premiumContentListViewStore","changeContentFilter","premiumSubscriptionsViewStore","selectedSubscriptionPlan","ExplorePremiumLoader","PremiumContentListItem","PastDueSubscriptionWidgetTemplate","productNames","CreditCardInfoTemplate","creditCard","onClickUpdateCreditCard","brand","last4Numbers","PremiumTrialExpiration","SubscriptionPrice","price","CreditCardPanel","customerPaymentMethodInfoViewStore","setIsCreditCardFormVisible","isCreditCardFormVisible","isInternalSubscriptionActive","UpdateCustomerPaymentMethod","trialUpgraded","billingStartDate","buttonLabel","displayCloseIcon","onClickExplorePremium","Footer","actionButton","isPremiumTrialPeriodUsed","isSubscriptionBundleActive","onClickExploreContent","DefaultActionButton","SubscriptionPlanCardTemplate","footerRenderer","iconClassName","PaymentCardLoader","features","feature","isStrong","SubscriptionPriceTemplate","isRounded","PremiumInfoWidgetTemplate","PremiumInfoTrialWidgetTemplate","PaymentInfoTemplate","useStripe","useElements","stripeField","isPaymentDisabled","setStripe","cardElement","getElement","onFormSubmit","PremiumContentSubListItemTemplate","SubscriptionHeader","premiumBadge","NakiRadioPremiumBadge","NakiNigunPremiumBadge","NakiRadioFreeBadge","isTrial","amount","SubscriptionDetails","activeSubscription","pendingSubscription","isPremiumSubscriptionTrial","currentBillingCycle","DefaultSubscriptionDetails","NakiBundleSubscriptionDetails","UpgradeSubscriptionDetails","PremiumTrialTermsInfo","InvalidPaymentInfo","InternalSubscriptionControls","SubscriptionControls","Discount","userSubscriptionsPreviewViewStore","activeTo","discount","amountOff","percentOff","_ref6","_ref7","_ref8","_ref9","revertSubscription","endTrial","SubscriptionPlanLoader","ChangeSubscriptionPlanLoader","CreditCardInfo","PremiumContentListItemViewStore","PremiumContentListItemTemplate","PremiumContentList","PremiumContentListViewStore","PremiumContentListTemplate","CustomerPaymentMethodInfo","CustomerPaymentMethodInfoViewStore","CustomerPaymentMethodInfoTemplate","PremiumTrialTermsInfoTemplate","PaymentSuccessModal","PaymentSuccessModalTemplate","TrialActivatedModal","TrialActivatedModalTemplate","TakePaymentHeader","TakePaymentHeaderTemplate","SubscriptionPlanCard","PaymentInfo","UpdateCustomerPaymentMethodTemplate","UserSubscriptionInfo","UserSubscriptionInfoTemplate","setOpen","setLoading","getErrorMessage","rejectedFiles","rejectedFile","errors","setUploadInputRef","onDropRejected","Dropzone","accept","onDrop","multiple","maxFiles","removeFiles","getRootProps","getInputProps","MrbFileUploadValidation","setRejectedFiles","setDisabled","uploadInputRef","handleImageLoaded","errored","useCssImageFallback","useCssImage","setIsLoaded","isLoaded","fallbackComponent","imageStyle","onLoad","Modal","setAppElement","overlayClassName","onRequestClose","modalData","MrbConfirmDialogPanel","confirm","MrbInfiniteScrollGridEmptyState","hasMoreData","InfiniteScroll","pageStart","hasMore","loader","getScrollParent","useWindow","isLoadingMoreData","setIsLoadingMoreData","sortDirection","asc","desc","_descriptor7","toggle","rowView","inputClassNameOverride","WrapElement","itemId","isChecked","defaultClass","enableSorting","column","colId","mrbTableColumnRenderer","HeaderComponent","MrbTableHeader","onCellClicked","cellClass","AgGridColumn","colDef","cellRendererFramework","checkboxSelection","headerName","minWidth","headerCheckboxSelection","maxWidth","suppressMovable","defaultColumnDefinition","keyCreator","headerComponentFramework","suppressSizeToFit","MrbTableActionColumn","ActionsComponent","buttonProps","hasAction","mrbTableActionColumnRenderer","actionCount","actionsColumn","actionsColumnId","selection","headerCheckboxSelectionFilteredOnly","hide","resizable","lockPosition","pinned","suppressMenu","suppressActionsSizeToFit","cellProps","onRowClick","MrbBaseTableViewStore","gridIdentifier","columnId","rowClass","getRowClass","export","suppressCsvExport","csvExportParams","allColumns","processCellCallback","rowSelection","suppressRowClickSelection","groupSelectsChildren","groupSelectsFiltered","suppressMultiRangeSelection","onRowSelected","onSelectionChanged","onRowDataChanged","editable","filterParams","buttons","floatingFilter","autoSizeColumns","multiSortKey","loaderDisposer","showLoadingOverlay","hideLoadingOverlay","gridApi","setRowData","hideOverlay","showNoRowsOverlay","api","getSelectedNodes","onGridReady","gridColumnApi","columnApi","initialized","sizeColumnsToFit","isRowSelectable","MrbTableLoadingOverlay","MrbTableNoDataOverlay","renderColumns","ModuleRegistry","registerModules","ClientSideRowModelModule","InfiniteRowModelModule","loadingRender","rowDataChanged","processCellForClipboard","getRowStyle","getContextMenuItems","AgGridReact","suppressPropertyNamesCheck","defaultColDef","suppressPaginationPanel","onRowClicked","rowMultiSelectWithClick","allowContextMenuWithControlKey","loadingOverlayComponentFramework","noRowsOverlayComponentFramework","ProducerPaymentReportPreviewRouteStore","ProducerPaymentReportPreviewViewStore","isAllowedForPayout","subscriptionCycleStartDate","subscriptionCycleEndDate","setIsCollapsed","AdminProducerAccountBalanceEditForm","AdminProducerAccountsEditForm","AdminProducerAccountEditFields","AdminProducerForm","AdminProducerAccountStripeAccountEditForm","producerUserAccount","parseFloat","invalidate","AdminProducerAccountEditRouteStore","producerService","userAccountService","AdminProducerAccountsViewStore","usersIds","getProducer","getProducerAccounts","setProducer","setAccounts","setProducerTotalBalance","setStripeConnectAccounts","fieldDefinition","stripeConnectAccounts","addNewAccount","producerTotalBalance","selectedAccountExistingBalance","existingAccount","adminProducerAccountsViewStore","setForm","selectedUsers","findUser","getUser","balance","_","newProps","onDel","AdminProducerListRouteStore","AdminProducerListViewStore","now","currentMonthLabel","edit","fetchProducersSummary","findContent","setProducersSummary","AdminProducerPreviewRouteStore","getProducerUserAccountsSummary","AdminProducerPreviewViewStore","_id","spanChartDataSetToFullRange","producerIds","formattedValue","fetchMostPopularContent","currentPeriod","setMostPopularContent","AdminProducerEditRouteStore","AdminProducerEditViewStore","AdminProducerEditForm","createProducer","updateProducer","AdminProducerAccountPreviewViewStore","_producerId","revenueQueryUtility","revenueFetchResources","balanceQueryUtility","balanceFetchResources","setRevenueGridStore","setBalanceGridStore","_producerNavigation","addToAccountBalanceModal","addToAccountBalance","updateStripeAccountModal","revenueGridStore","producerUserAccountIds","fetchRevenueData","balanceGridStore","fetchBalanceData","fetchAccountSummaryData","fetchAssignedProducers","_producer","setAssignedProducers","openAddToAccountBalanceModal","openUpdateStripeAccountModal","refreshAccountBalance","refreshStripeAccount","AdminProducerAccountPreviewRouteStore","setProducerUserAccount","fetchFunc","onChangeOrder","onChangePage","onChangePageSize","onTransformQueryParams","onResetFilter","updateUrlParams","_descriptor8","others","sortSlug","realKey","getValidQueryParams","omitBy","param","ignore","getFilterUrlParams","paramsToRemove","prop","proto","__proto__","useDefault","mapParams","withoutProperties","evaluateQueryParam","queryParamKey","queryParamValue","filterValue","fromQuery","eval","assignWith","objValue","srcValue","_init","resetFilter","_this2","useDefaultFilter","updateFilter","_reloadCollection","_this3","_this4","_this5","_this6","properties","PlaybackTime","producerPayoutUserEventListViewStore","producerPlaybacks","totalUserPlaybacks","producerPayment","MrbTable","totalProducerPlaybacks","ProducerOption","ProducerSelectedValue","producerReportViewStore","backButtonRenderer","ContentAccessResult","CONTENT_ACCESS_MAP","premiumContentAccess","deviceSystemType","_canAccessContent","canAccessNakiNigun","_validateParameters","isUnavailable","_canAccessPremiumContent","_validateSubscription","_validateLegacySubscription","subscriptionAccessRules","BasePaymentViewStore","paymentMethodExist","paymentSuccessModal","goToPremiumContent","setSubscriptionPlan","plan","clientSecret","handleCardAction","confirmPayment","providerPaymentRequestId","paymentIntent","TakePaymentRouteStore","productService","preprocessPayment","postprocessPayment","TakePaymentViewStore","onClickSubscribe","fetchSubscriptionPlan","getSubscriptionPlan","cardElements","submitPayment","formattedPrice","payload","paymentMethod","confirmCardPayment","payment_method","card","receipt_email","setupPaymentMethodResponse","confirmCardSetup","setupIntent","undoChanges","paymentProviderSubscriptionId","UpgradeTrialRouteStore","UpgradeTrialViewStore","setSubscriptionId","upgradeTrialToFullSubscription","upgradeUsingExistingPaymentMethod","upgradeUsingNewCreditCard","ActivateTrialRouteStore","ActivateTrialViewStore","trialActivatedModal","setIsSubmitDisabled","isSubmitDisabled","ChangeSubscriptionPlanRouteStore","ChangeSubscriptionPlanViewStore","subscriptionChangePreview","newSubscriptionPlan","changePlan","changePlanSuccessModal","currentSubscription","fetchSubscriptionChangePreview","preview","setSubscriptionChangePreview","formattedSubscriptionPlanPrice","setIsChangePlanDisabled","dateOfChange","isChangePlanDisabled","subscriptionPlansSortOrder","ChangeSubscriptionPlanPreviewViewStore","fetchSubscriptionPlans","getAllSubscriptionProducts","sortedSubscriptionPlans","sortBy","setSubscriptionPlans","isVisible","invalidPaymentExist","submitPaymentMethod","creditCardExist","createNewPaymentMethod","addPaymentMethod","processorAuthorizationCode","setup_future_usage","PremiumSubscriptionsRouteStore","NakiRadioFreePlan","sortOrder","PremiumSubscriptionsViewStore","setSelectedSubscriptionPlan","hasActivePlan","freePlan","UserSubscriptionsPreviewRouteStore","UserSubscriptionsPreviewViewStore","preprocessSubscription","setIsCanceling","isCanceling","PremiumContentListFilter","_contentTypeOptions","nakiNigunArtistId","SUB_ITEM_TYPE","numberOfPodcastVolumes","numberOfAlbums","hasSubItems","isPopulated","setIsPopulated","getPodcastSubContent","getNakiNigunArtistSubContent","subItem","podcastFileEntryId"],"mappings":"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","file":"static/js/adminModules~app~appModules~coreModules~publicModules.c7fe5d1e.chunk.js","sourcesContent":["class UpdatePodcastStatusOptions {\r\n podcastId = null;\r\n title = null;\r\n isPremium = false;\r\n isUnavailableInApp = false;\r\n\r\n constructor(podcastId, title, isPremium, isUnavailableInApp) {\r\n this.podcastId = podcastId;\r\n this.title = title;\r\n this.isPremium = isPremium;\r\n this.isUnavailableInApp = isUnavailableInApp;\r\n }\r\n}\r\n\r\nexport default UpdatePodcastStatusOptions;\r\n","class UpdateStationStatusOptions {\r\n stationId = null;\r\n title = null;\r\n isPremium = false;\r\n isUnavailableInApp = false;\r\n\r\n constructor(stationId, title, isPremium, isUnavailableInApp) {\r\n this.stationId = stationId;\r\n this.title = title;\r\n this.isPremium = isPremium;\r\n this.isUnavailableInApp = isUnavailableInApp;\r\n }\r\n}\r\n\r\nexport default UpdateStationStatusOptions;\r\n","class UpdateNakiNigunArtistStatusOptions {\r\n artistId = null;\r\n name = null;\r\n isPremium = false;\r\n isUnavailableInApp = false;\r\n\r\n constructor(artistId, name, isPremium, isUnavailableInApp) {\r\n this.artistId = artistId;\r\n this.name = name;\r\n this.isPremium = isPremium;\r\n this.isUnavailableInApp = isUnavailableInApp;\r\n }\r\n}\r\n\r\nexport default UpdateNakiNigunArtistStatusOptions;\r\n","class UpdateNakiNigunAlbumStatusOptions {\r\n albumId = null;\r\n title = null;\r\n isPremium = false;\r\n isUnavailableInApp = false;\r\n\r\n constructor(albumId, title, isPremium, isUnavailableInApp) {\r\n this.albumId = albumId;\r\n this.title = title;\r\n this.isPremium = isPremium;\r\n this.isUnavailableInApp = isUnavailableInApp;\r\n }\r\n}\r\n\r\nexport default UpdateNakiNigunAlbumStatusOptions;\r\n","class UpdateTorahAnytimeCollectionStatusOptions {\r\n collectionId = null;\r\n collectionName = null;\r\n torahAnytimePodcastId = null;\r\n torahAnytimePodcastTitle = null;\r\n isPremium = false;\r\n isUnavailableInApp = false;\r\n\r\n constructor(\r\n collectionId,\r\n collectionName,\r\n torahAnytimePodcastId,\r\n torahAnytimePodcastTitle,\r\n isPremium,\r\n isUnavailableInApp\r\n ) {\r\n this.collectionId = collectionId;\r\n this.collectionName = collectionName;\r\n this.torahAnytimePodcastId = torahAnytimePodcastId;\r\n this.torahAnytimePodcastTitle = torahAnytimePodcastTitle;\r\n this.isPremium = isPremium;\r\n this.isUnavailableInApp = isUnavailableInApp;\r\n }\r\n}\r\n\r\nexport default UpdateTorahAnytimeCollectionStatusOptions;\r\n","import { React } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbButton } from \"../../button\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbEditFormFooter({\r\n form,\r\n footer,\r\n visible = true,\r\n onClickCancel,\r\n submitLabel = \"FORM_CONTROLS.SAVE_BUTTON\",\r\n cancelLabel = \"FORM_CONTROLS.CANCEL_BUTTON\",\r\n hideCancel = false,\r\n submitDisabled = false,\r\n t = (i) => i,\r\n}) {\r\n const label = t(submitLabel);\r\n return visible ? (\r\n footer ? (\r\n footer\r\n ) : (\r\n
\r\n {\" \"}\r\n {!hideCancel && onClickCancel && (\r\n \r\n )}\r\n
\r\n )\r\n ) : null;\r\n}\r\n\r\nMrbEditFormFooter.propTypes = {\r\n form: PropTypes.object,\r\n footer: PropTypes.any,\r\n visible: PropTypes.bool,\r\n onClickCancel: PropTypes.func,\r\n submitLabel: PropTypes.string,\r\n cancelLabel: PropTypes.string,\r\n t: PropTypes.func,\r\n hideCancel: PropTypes.bool,\r\n submitDisabled: PropTypes.bool,\r\n};\r\n\r\nexport default observer(MrbEditFormFooter);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { isString } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbEditFormValidation({ form, t = (i) => i }) {\r\n return (\r\n \r\n {isString(form.error) && (\r\n
\r\n

{t(form.error)}

\r\n
\r\n )}\r\n
\r\n );\r\n}\r\n\r\nMrbEditFormValidation.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(MrbEditFormValidation);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction MrbEditFormContent({ children }) {\r\n return (\r\n \r\n {children ? {children} : null}\r\n \r\n );\r\n}\r\n\r\nMrbEditFormContent.propTypes = {\r\n children: PropTypes.any,\r\n};\r\n\r\nexport default MrbEditFormContent;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction MrbListContent({ children }) {\r\n return {children};\r\n}\r\n\r\nMrbListContent.propTypes = {\r\n children: PropTypes.any,\r\n};\r\n\r\nexport default MrbListContent;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction MrbEditContent({ children }) {\r\n return {children};\r\n}\r\n\r\nMrbEditContent.propTypes = {\r\n children: PropTypes.any,\r\n};\r\n\r\nexport default MrbEditContent;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction MrbPreviewContent({ children }) {\r\n return {children};\r\n}\r\n\r\nMrbPreviewContent.propTypes = {\r\n children: PropTypes.any,\r\n};\r\n\r\nexport default MrbPreviewContent;\r\n","import React from \"react\";\r\nimport {\r\n MrbPageHeader,\r\n MrbPageFooter,\r\n MrbPageContentHeader,\r\n MrbPageContentFooter,\r\n MrbPageContentSidebar,\r\n} from \"../page\";\r\n\r\nfunction getPageObject(children) {\r\n const page = {\r\n header: null,\r\n footer: null,\r\n content: {\r\n header: null,\r\n footer: null,\r\n sidebar: null,\r\n children: null,\r\n },\r\n };\r\n\r\n React.Children.forEach(children, (child) => {\r\n if (!React.isValidElement(child)) return;\r\n switch (child.type) {\r\n case MrbPageHeader:\r\n if (!page.header) page.header = [];\r\n page.header.push(child);\r\n break;\r\n case MrbPageFooter:\r\n if (!page.footer) page.footer = [];\r\n page.footer.push(child);\r\n break;\r\n case MrbPageContentHeader:\r\n if (!page.content.header) page.content.header = [];\r\n page.content.header.push(child);\r\n break;\r\n case MrbPageContentFooter:\r\n if (!page.content.footer) page.content.footer = [];\r\n page.content.footer.push(child);\r\n break;\r\n case MrbPageContentSidebar:\r\n if (!page.content.sidebar) page.content.sidebar = [];\r\n page.content.sidebar.push(child);\r\n break;\r\n default:\r\n if (!page.content.children) page.content.children = [];\r\n page.content.children.push(child);\r\n break;\r\n }\r\n });\r\n\r\n return page;\r\n}\r\nexport default getPageObject;\r\n","import React from \"react\";\r\nimport { MrbButton } from \"../../button\";\r\nimport { map, isEmpty, isFunction, flatMap } from \"lodash\";\r\n\r\nfunction renderActions(actions, t) {\r\n if (!actions || isEmpty(actions)) {\r\n return null;\r\n }\r\n\r\n const components = map(actions, (action, actionName) => {\r\n if (actionName === \"edit\") {\r\n action.className = action.className || \"c-btn c-btn--base c-btn--primary\";\r\n action.label = action.label || \"Edit\";\r\n } else if (actionName === \"cancel\") {\r\n action.className = action.className || \"c-btn c-btn--base c-btn--ghost\";\r\n action.label = action.label || \"Cancel\";\r\n }\r\n return (\r\n \r\n );\r\n });\r\n\r\n const result = flatMap(components, (value, index, array) => (array.length - 1 !== index ? [value, \" \"] : value));\r\n return result;\r\n}\r\n\r\nexport default renderActions;\r\n","import { PropTypes } from \"prop-types\";\r\nimport { ProducerLabel } from \"common/components/producer\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction ProducerNameCellTemplate({ data }) {\r\n const { producerName, userId, userFirstName, userLastName } = data;\r\n const isUser = !isNil(userId);\r\n let user;\r\n if (isUser && userFirstName && userLastName) {\r\n user = {\r\n firstName: userFirstName,\r\n lastName: userLastName,\r\n };\r\n }\r\n return ;\r\n}\r\n\r\nProducerNameCellTemplate.propTypes = {\r\n data: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default ProducerNameCellTemplate;\r\n","import React, { useCallback, useState } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst AdminProducerSummaryLoaderTemplate = (props) => {\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n const loaderHeight = 124;\r\n\r\n const ref = useCallback((node) => {\r\n if (node !== null) setLoaderWidth(node.getBoundingClientRect().width);\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n\r\n {!props.isUser && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AdminProducerSummaryLoaderTemplate;\r\n","import React, { useCallback, useState } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\nconst ProducerAccountListLoaderTemplate = (props) => {\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n const loaderHeight = 56;\r\n const listItemHeight = 16;\r\n\r\n const ref = useCallback((node) => {\r\n if (node !== null) setLoaderWidth(node.getBoundingClientRect().width);\r\n }, []);\r\n\r\n const ListItem = ({ y }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n };\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default ProducerAccountListLoaderTemplate;\r\n\r\nconst AccountTitle = (props) => {\r\n const loaderHeight = 20;\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import ContentLoader from \"react-content-loader\";\r\nimport React, { useCallback, useState } from \"react\";\r\n\r\nconst AddNewAccountLoaderTemplate = (props) => {\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n // const screenWidth = window.innerWidth;\r\n const loaderHeight = 270;\r\n\r\n const ref = useCallback((node) => {\r\n if (node !== null) setLoaderWidth(node.getBoundingClientRect().width);\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AddNewAccountLoaderTemplate;\r\n\r\nconst LoaderHeader = ({ loaderHeight, loaderWidth, props }) => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { useCallback, useState } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst ProducerBalanceInfoLoaderTemplate = (props) => {\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n const loaderHeight = 230;\r\n\r\n const ref = useCallback((node) => {\r\n if (node !== null) setLoaderWidth(node.getBoundingClientRect().width);\r\n }, []);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ProducerBalanceInfoLoaderTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbEditFormLayout, MrbFieldTextArea } from \"mrb/components\";\r\nimport { CurrencyInputField } from \"common/components\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction AdminProducerAccountBalanceEditTemplate({ adminProducerAccountBalanceEditViewStore, t }) {\r\n const { form, currentAccountBalance, newAccountBalance } = adminProducerAccountBalanceEditViewStore;\r\n const diff = newAccountBalance - currentAccountBalance;\r\n const sign = Math.sign(diff);\r\n let newBalanceClassName;\r\n if (sign > 0) {\r\n newBalanceClassName = \"u-type--color--success\";\r\n } else if (sign < 0) {\r\n newBalanceClassName = \"u-type--color--warning\";\r\n }\r\n return (\r\n \r\n \r\n\r\n
\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.PRODUCER.ACCOUNT.EDIT.FIELDS.CURRENT_ACCOUNT_BALANCE_LABEL\")}\r\n

\r\n
\r\n {currencyFormatter.format(currentAccountBalance, {\r\n currency: \"USD\",\r\n })}\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.PRODUCER.ACCOUNT.EDIT.FIELDS.NEW_ACCOUNT_BALANCE_LABEL\")}\r\n

\r\n
\r\n {currencyFormatter.format(newAccountBalance, {\r\n currency: \"USD\",\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n );\r\n}\r\nAdminProducerAccountBalanceEditTemplate.propTypes = {\r\n adminProducerAccountBalanceViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(AdminProducerAccountBalanceEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldNumericInput, MrbFieldSelect, MrbButton } from \"mrb/components\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\nimport { StripeAccountFieldSelect } from \"common/components/stripe\";\r\nimport { components } from \"react-select\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction AdminProducerAccountEditTemplate({ adminProducerAccountEditViewStore, t }) {\r\n const { userAccountSelectStore, stripeAccountSelectStore, removeAccount, form } = adminProducerAccountEditViewStore;\r\n return (\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n\r\n \r\n
\r\n );\r\n}\r\n\r\nAdminProducerAccountEditTemplate.propTypes = {\r\n adminProducerAccountEditViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction UserOption(props) {\r\n const { item } = props.data;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction UserLabel({ item }) {\r\n return (\r\n \r\n {item.firstName} {item.lastName} - {item.email}\r\n \r\n );\r\n}\r\n\r\nfunction UserSelectedValue(props) {\r\n const { item } = props.data;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst AccountBalance = observer(function AccountBalance({ adminProducerAccountEditViewStore, t }) {\r\n const { currentAccountBalance } = adminProducerAccountEditViewStore;\r\n return (\r\n
\r\n
\r\n
\r\n

\r\n {t(\"ADMINISTRATION.PRODUCER.ACCOUNT.EDIT.FIELDS.ACCOUNT_BALANCE_LABEL\")}\r\n

\r\n
\r\n {currencyFormatter.format(currentAccountBalance, {\r\n currency: \"USD\",\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n});\r\n\r\nexport default observer(AdminProducerAccountEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { StripeAccountLink } from \"common/components/stripe\";\r\nimport { map } from \"lodash\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { ProducerAccountListLoader } from \"administration/producer/components\";\r\n\r\nfunction AdminProducerAccountsListTemplate({ adminProducerAccountsListViewStore, t }) {\r\n const { accounts, producerId, selectAccount, loaderStore } = adminProducerAccountsListViewStore;\r\n\r\n return (\r\n
\r\n }>\r\n {() => (\r\n \r\n
\r\n \r\n {t(\"ADMINISTRATION.PRODUCER.PAYMENT.PREVIEW.ACCOUNTS.TITLE\")}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {accounts.length === 0 ? (\r\n \r\n \r\n \r\n ) : (\r\n map(accounts, (account) => (\r\n selectAccount(account)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n ))\r\n )}\r\n \r\n
\r\n {t(\"ADMINISTRATION.PRODUCER.PAYMENT.PREVIEW.ACCOUNTS.COLUMNS.USER\")}\r\n \r\n {t(\r\n \"ADMINISTRATION.PRODUCER.PAYMENT.PREVIEW.ACCOUNTS.COLUMNS.STRIPE_CONNECT\"\r\n )}\r\n \r\n {t(\r\n \"ADMINISTRATION.PRODUCER.PAYMENT.PREVIEW.ACCOUNTS.COLUMNS.REVENUE_PERCENTAGE\"\r\n )}\r\n \r\n {t(\r\n \"ADMINISTRATION.PRODUCER.PAYMENT.PREVIEW.ACCOUNTS.COLUMNS.ACCOUNT_BALANCE\"\r\n )}\r\n
\r\n \r\n
\r\n {account.firstName} {account.lastName} ({account.email})\r\n \r\n {account.stripeAccountId && (\r\n \r\n )}\r\n \r\n {account.revenuePercentage} %\r\n \r\n {currencyFormatter.format(account.accountBalance, {\r\n currency: \"USD\",\r\n })}\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nAdminProducerAccountsListTemplate.propTypes = {\r\n adminProducerAccountsListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction NoDataEmptyState({ producerId, t }) {\r\n return (\r\n
\r\n
\r\n
\r\n

{t(\"Add new account\")}

\r\n

{t(\"In order to add a new account, please click the button below.\")}

\r\n
\r\n \r\n Add New\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default defaultTemplate(AdminProducerAccountsListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbInfiniteScrollGrid } from \"mrb/components/infinite-scroll-grid\";\r\nimport { AnalyticsPremiumListLoader } from \"administration/analytics/components\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { observer } from \"mobx-react\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { StatsWidgetEmptyState } from \"common/components/empty-state\";\r\n\r\nfunction ProducerPaymentReportTemplate({ producerPaymentReportPreviewViewStore, scrollParent, t, listClassName }) {\r\n const { gridStore } = producerPaymentReportPreviewViewStore;\r\n return (\r\n \r\n
\r\n User\r\n \r\n # of Browse Playbacks\r\n \r\n \r\n Total # of Premium Browse Playbacks\r\n \r\n \r\n Browse Payment Share\r\n \r\n \r\n Producer's Browse Payment\r\n \r\n \r\n # of Shuffle Playbacks\r\n \r\n \r\n Total # of Premium Shuffle Playbacks\r\n \r\n \r\n Browse Shuffle Share\r\n \r\n \r\n Producer's Shuffle Payment\r\n \r\n Total Payment\r\n
\r\n
\r\n }\r\n loadMoreLoader={}\r\n emptyStateRenderer={() => (\r\n \r\n )}\r\n classNameOverride={mergeCss(\"c-analytics__list\", listClassName ? listClassName : null)}\r\n store={gridStore}\r\n cellRenderer={(props) => }\r\n />\r\n
\r\n
\r\n );\r\n}\r\n\r\nProducerPaymentReportTemplate.propTypes = {\r\n producerPaymentReportPreviewViewStore: PropTypes.object.isRequired,\r\n scrollParent: PropTypes.any,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction GridItem({ item }) {\r\n return (\r\n
\r\n
\r\n \r\n {item.firstName} {item.lastName}\r\n \r\n
\r\n
{numberFormatter.format(item.browsePlaybacks)}
\r\n
\r\n {numberFormatter.format(item.totalBrowsePlaybacks)}\r\n
\r\n
\r\n {currencyFormatter.format(item.browsePaymentShare, { currency: \"USD\" })}\r\n
\r\n
\r\n {currencyFormatter.format(item.browseProducerPayment, { currency: \"USD\" })}\r\n
\r\n
{numberFormatter.format(item.shufflePlaybacks)}
\r\n
\r\n {numberFormatter.format(item.totalShufflePlaybacks)}\r\n
\r\n
\r\n {currencyFormatter.format(item.shufflePaymentShare, { currency: \"USD\" })}\r\n
\r\n
\r\n {currencyFormatter.format(item.shuffleProducerPayment, { currency: \"USD\" })}\r\n
\r\n
\r\n {currencyFormatter.format(item.totalProducerPayment, { currency: \"USD\" })}\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default observer(ProducerPaymentReportTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { numberFormatter, producerPlaybackTimeConverter } from \"common/utils\";\r\nimport { dateFormatter, currencyFormatter } from \"mrb/common/formatting\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { isProducerReportComplete } from \"common/utils\";\r\nimport { ProducerLabel, ProducerSummaryLoader } from \"common/components/producer\";\r\nimport { observer } from \"mobx-react\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction ProducerPaymentReportSummaryTemplate({ producerPaymentReportPreviewViewStore, t }) {\r\n const { summaryData, loaderStore } = producerPaymentReportPreviewViewStore;\r\n\r\n return (\r\n \r\n

Summary

\r\n
\r\n }>\r\n {() => (\r\n \r\n {summaryData && (\r\n \r\n
\r\n
\r\n

Producer

\r\n

\r\n \r\n

\r\n
\r\n {summaryData.currentMonthTotalProducerPlaybacks !== null &&\r\n summaryData.currentMonthTotalProducerPlaybacks !== undefined && (\r\n
\r\n

Period

\r\n

\r\n \r\n

\r\n
\r\n )}\r\n
\r\n

\r\n \r\n

\r\n
\r\n

\r\n {currencyFormatter.format(\r\n summaryData.currentMonthTotalProducerPayment,\r\n {\r\n currency: \"USD\",\r\n }\r\n )}\r\n

\r\n
\r\n
\r\n\r\n \r\n\r\n
\r\n

Total Playback Points

\r\n

\r\n {numberFormatter.format(summaryData.currentMonthTotalProducerPlaybacks)}\r\n

\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nProducerPaymentReportSummaryTemplate.propTypes = {\r\n producerPaymentReportPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction TotalPlaybackTime({ summaryData }) {\r\n const totalPlaybackTime = producerPlaybackTimeConverter(\r\n summaryData.currentMonthReportVersion,\r\n summaryData.currentMonthTotalProducerPlaybacks\r\n );\r\n if (totalPlaybackTime) {\r\n return (\r\n
\r\n

Total Playback Time

\r\n

{totalPlaybackTime}

\r\n
\r\n );\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction MonthOfReportLabel({ summaryData }) {\r\n const monthLabel = dateFormatter.format(summaryData.filteredBy.date, {\r\n format: applicationDefaults.formats.monthFull,\r\n });\r\n return monthLabel;\r\n}\r\n\r\nfunction ReportPeriodRange({ summaryData }) {\r\n const startDate = dateFormatter.format(summaryData.currentMonthPeriodStartDate, {\r\n format: applicationDefaults.formats.date,\r\n timeZone: applicationDefaults.defaultProductReportTimeZone,\r\n });\r\n const endDate = dateFormatter.format(summaryData.currentMonthPeriodEndDate, {\r\n format: applicationDefaults.formats.date,\r\n timeZone: applicationDefaults.defaultProductReportTimeZone,\r\n });\r\n const isComplete = isProducerReportComplete(summaryData.filteredBy.date, summaryData.currentMonthPeriodEndDate);\r\n return (\r\n \r\n {startDate} - {endDate}{\" \"}\r\n {!isComplete ? (In Progress) : null}\r\n \r\n );\r\n}\r\n\r\nexport default observer(ProducerPaymentReportSummaryTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\nimport { ProducerLabel, ProducerSummaryLoader } from \"common/components/producer\";\r\nimport { observer } from \"mobx-react\";\r\nimport { dateFormatter } from \"baasic-react-bootstrap/src/common\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction ProducerPreviewSummaryTemplate({ producerPreviewViewStore, t }) {\r\n const { summaryData, loaderStore } = producerPreviewViewStore;\r\n\r\n return (\r\n
\r\n

Summary

\r\n
\r\n }>\r\n {() => (\r\n \r\n
\r\n {summaryData && (\r\n \r\n
\r\n
\r\n
\r\n

Producer

\r\n

\r\n \r\n

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

Total Revenue

\r\n
\r\n

\r\n {currencyFormatter.format(\r\n summaryData.topPaidProducerStatus\r\n ? summaryData.topPaidProducerStatus.totalPayment\r\n : 0,\r\n {\r\n currency: \"USD\",\r\n }\r\n )}\r\n

\r\n
\r\n
\r\n
\r\n\r\n {summaryData.lastProducerReport && (\r\n
\r\n

\r\n Last Revenue (\r\n {dateFormatter.format(\r\n summaryData.lastProducerReport.monthOfYear,\r\n {\r\n format: applicationDefaults.formats.monthShort,\r\n timeZone: \"utc\",\r\n }\r\n )}\r\n )\r\n

\r\n

\r\n {currencyFormatter.format(\r\n summaryData.lastProducerReport.totalProducerPayment,\r\n {\r\n currency: \"USD\",\r\n }\r\n )}\r\n

\r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nProducerPreviewSummaryTemplate.propTypes = {\r\n producerPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction ProducerPositionIndicator({ topPaidProducerStatus }) {\r\n if (!topPaidProducerStatus || topPaidProducerStatus.totalPayment === 0) {\r\n return null;\r\n }\r\n\r\n return (\r\n
\r\n {getNumberWithOrdinal(topPaidProducerStatus.position)}\r\n
most paid producer
\r\n
\r\n );\r\n}\r\n\r\nfunction getNumberWithOrdinal(n) {\r\n const s = [\"th\", \"st\", \"nd\", \"rd\"];\r\n const v = n % 100;\r\n return n + (s[(v - 20) % 10] || s[v] || s[0]);\r\n}\r\n\r\nexport default observer(ProducerPreviewSummaryTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { TopTrendingListLoader } from \"administration/analytics/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction ProducerPreviewMostPopularContentTemplate({ producerPreviewViewStore }) {\r\n const { loaderStore, mostPopularContent } = producerPreviewViewStore;\r\n return (\r\n
\r\n

Most Popular Content

\r\n
\r\n }\r\n >\r\n {() => (\r\n
\r\n {mostPopularContent && mostPopularContent.length > 0 ? (\r\n
\r\n {map(mostPopularContent, (item, index) => (\r\n \r\n ))}\r\n
\r\n ) : (\r\n \r\n )}\r\n
\r\n )}\r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nProducerPreviewMostPopularContentTemplate.propTypes = {\r\n producerPreviewViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction PlaybackItem({ index, item }) {\r\n let title, route, isPremium, params;\r\n if (item.station) {\r\n title = item.station.title;\r\n isPremium = item.station.isPremium;\r\n route = \"master.administration.analytics.station-activity\";\r\n params = { id: item.station.id };\r\n } else if (item.podcast) {\r\n title = item.podcast.title;\r\n isPremium = item.podcast.isPremium;\r\n route = \"master.administration.analytics.podcast-activity\";\r\n params = { id: item.podcast.id };\r\n }\r\n return (\r\n
\r\n
\r\n {index + 1}.\r\n \r\n \r\n {title}\r\n {isPremium && }\r\n \r\n
\r\n {numberFormatter.format(item.playbacks)}\r\n
\r\n );\r\n}\r\n\r\nfunction EmptyState() {\r\n return (\r\n
\r\n \r\n

No activity data

\r\n

There are no detected playbacks.

\r\n
\r\n );\r\n}\r\n\r\nexport default observer(ProducerPreviewMostPopularContentTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\nimport { observer } from \"mobx-react\";\r\nimport { AdminProducerSummaryLoader } from \"administration/producer/components\";\r\nimport { isNil } from \"lodash\";\r\nimport { StripeAccountLink } from \"common/components/stripe\";\r\n\r\nfunction AdminProducerAccountSummaryPreviewTemplate({ adminProducerAccountPreviewViewStore, t }) {\r\n const { summaryData, loaderStore } = adminProducerAccountPreviewViewStore;\r\n\r\n return (\r\n
\r\n

Summary

\r\n
\r\n }>\r\n {() => (\r\n \r\n
\r\n {summaryData && (\r\n \r\n
\r\n
\r\n
\r\n

User Email

\r\n

\r\n {summaryData.email}\r\n

\r\n
\r\n
\r\n\r\n {!isNil(summaryData.stripeAccountId) && (\r\n
\r\n
\r\n

\r\n Stripe Account\r\n

\r\n

\r\n \r\n

\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n

Account Balance

\r\n
\r\n

\r\n {currencyFormatter.format(\r\n summaryData.accountBalance\r\n ? summaryData.accountBalance\r\n : 0,\r\n {\r\n currency: \"USD\",\r\n }\r\n )}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nAdminProducerAccountSummaryPreviewTemplate.propTypes = {\r\n adminProducerAccountPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(AdminProducerAccountSummaryPreviewTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbEditFormLayout } from \"mrb/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { StripeAccountFieldSelect } from \"common/components/stripe\";\r\n\r\nfunction AdminProducerAccountStripeAccountEditTemplate({ adminProducerAccountStripeAccountEditViewStore, t }) {\r\n const { form, stripeAccountSelectStore } = adminProducerAccountStripeAccountEditViewStore;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nAdminProducerAccountStripeAccountEditTemplate.propTypes = {\r\n adminProducerAccountStripeAccountViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(AdminProducerAccountStripeAccountEditTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { observer } from \"mobx-react\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\nimport { map } from \"lodash\";\r\nimport { ProducerBalanceInfoLoader } from \"administration/producer/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\n\r\nfunction AdminProducerListSummaryPreviewTemplate({ adminProducerListViewStore, t }) {\r\n const { producersSummary, loaderStore } = adminProducerListViewStore;\r\n return (\r\n
\r\n }>\r\n {() => (\r\n
\r\n {producersSummary && (\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Total balance on all accounts\r\n

\r\n\r\n
\r\n

\r\n {currencyFormatter.format(\r\n producersSummary.totalBalance\r\n ? producersSummary.totalBalance\r\n : 0,\r\n {\r\n currency: \"USD\",\r\n }\r\n )}\r\n

\r\n
\r\n
\r\n
\r\n
\r\n

\r\n Top users by balance\r\n

\r\n {map(producersSummary.producerAccountSummaries, (summary, index) => (\r\n
\r\n \r\n {`${summary.firstName} ${summary.lastName} `}\r\n \r\n\r\n
\r\n {currencyFormatter.format(\r\n summary.accountBalance ? summary.accountBalance : 0,\r\n {\r\n currency: \"USD\",\r\n }\r\n )}\r\n
\r\n
\r\n ))}\r\n
\r\n

\r\n Today's payouts to bank accounts\r\n

\r\n
\r\n

\r\n {currencyFormatter.format(\r\n producersSummary.payoutAmount ? producersSummary.payoutAmount : 0,\r\n {\r\n currency: \"USD\",\r\n }\r\n )}\r\n

\r\n
\r\n
\r\n
\r\n )}\r\n
\r\n )}\r\n
\r\n
\r\n );\r\n}\r\n\r\nAdminProducerListSummaryPreviewTemplate.propTypes = {\r\n adminProducerListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(AdminProducerListSummaryPreviewTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { observer } from \"mobx-react\";\r\nimport { AdminProducerSummaryLoader } from \"administration/producer/components\";\r\nimport { map } from \"lodash\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\n\r\nfunction AdminProducerAccountAssignedProducersPreviewTemplate({ adminProducerAccountPreviewViewStore, t }) {\r\n const { assignedProducers, loaderStore } = adminProducerAccountPreviewViewStore;\r\n\r\n return (\r\n \r\n
\r\n {assignedProducers && (\r\n

\r\n {assignedProducers.length > 1 ? \"Producers\" : \"Producer\"}\r\n

\r\n )}\r\n
\r\n }>\r\n {() => (\r\n
\r\n {assignedProducers &&\r\n map(assignedProducers, (item) => (\r\n
\r\n
\r\n
\r\n

Producer

\r\n

\r\n \r\n {`${item.producerName} `}\r\n \r\n

\r\n
\r\n
\r\n

Revenue Share

\r\n
\r\n

{item.revenuePercentage}%

\r\n
\r\n
\r\n
\r\n
\r\n ))}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nAdminProducerAccountAssignedProducersPreviewTemplate.propTypes = {\r\n adminProducerAccountPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(AdminProducerAccountAssignedProducersPreviewTemplate);\r\n","import React from \"react\";\r\nimport { ProducerNameCellTemplate } from \"themes/administration/producer/components\";\r\n\r\nfunction ProducerNameCell(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerNameCell;\r\n","import React from \"react\";\r\nimport { AdminProducerSummaryLoaderTemplate } from \"themes/administration/producer/components\";\r\n\r\nfunction AdminProducerSummaryLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default AdminProducerSummaryLoader;\r\n","import React from \"react\";\r\nimport { ProducerAccountListLoaderTemplate } from \"themes/administration/producer/components\";\r\n\r\nfunction ProducerAccountListLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerAccountListLoader;\r\n","import React from \"react\";\r\nimport { AddNewAccountLoaderTemplate } from \"themes/administration/producer/components\";\r\n\r\nfunction AddNewAccountLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default AddNewAccountLoader;\r\n","import React from \"react\";\r\nimport { ProducerBalanceInfoLoaderTemplate } from \"themes/administration/producer/components\";\r\n\r\nfunction ProducerBalanceInfoLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerBalanceInfoLoader;\r\n","import React from \"react\";\r\nimport { AdminProducerAccountBalanceEditTemplate } from \"themes/administration/producer/components\";\r\nimport { AdminProducerAccountBalanceEditViewStore } from \"administration/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new AdminProducerAccountBalanceEditViewStore(rootStore, componentProps),\r\n \"adminProducerAccountBalanceEditViewStore\"\r\n)\r\nclass AdminProducerAccountBalanceEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AdminProducerAccountBalanceEdit;\r\n","import React from \"react\";\r\nimport { AdminProducerAccountsListTemplate } from \"themes/administration/producer/components\";\r\nimport { AdminProducerAccountsListViewStore } from \"administration/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new AdminProducerAccountsListViewStore(rootStore, componentProps),\r\n \"adminProducerAccountsListViewStore\"\r\n)\r\nclass AdminProducerAccountsList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AdminProducerAccountsList;\r\n","import React from \"react\";\r\nimport { AdminProducerAccountEditTemplate } from \"themes/administration/producer/components\";\r\nimport { AdminProducerAccountEditViewStore } from \"administration/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new AdminProducerAccountEditViewStore(rootStore, componentProps),\r\n \"adminProducerAccountEditViewStore\"\r\n)\r\nclass AdminProducerAccountEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AdminProducerAccountEdit;\r\n","import React from \"react\";\r\nimport { ProducerPaymentReportSummaryTemplate } from \"themes/administration/producer/components\";\r\n\r\nfunction ProducerPaymentReportSummary(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerPaymentReportSummary;\r\n","import React from \"react\";\r\nimport { ProducerPreviewSummaryTemplate } from \"themes/administration/producer/components\";\r\n\r\nfunction ProducerPreviewSummary(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerPreviewSummary;\r\n","import React from \"react\";\r\nimport { ProducerPreviewMostPopularContentTemplate } from \"themes/administration/producer/components\";\r\n\r\nfunction ProducerPreviewMostPopularContent(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerPreviewMostPopularContent;\r\n","import React from \"react\";\r\nimport { AdminProducerAccountSummaryPreviewTemplate } from \"themes/administration/producer/components\";\r\n\r\nfunction AdminProducerAccountSummaryPreview(props) {\r\n return ;\r\n}\r\n\r\nexport default AdminProducerAccountSummaryPreview;\r\n","import React from \"react\";\r\nimport { AdminProducerAccountStripeAccountEditTemplate } from \"themes/administration/producer/components\";\r\nimport { AdminProducerAccountStripeAccountEditViewStore } from \"administration/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new AdminProducerAccountStripeAccountEditViewStore(rootStore, componentProps),\r\n \"adminProducerAccountStripeAccountEditViewStore\"\r\n)\r\nclass AdminProducerAccountStripeAccountEdit extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default AdminProducerAccountStripeAccountEdit;\r\n","import React from \"react\";\r\nimport { AdminProducerListSummaryPreviewTemplate } from \"themes/administration/producer/components\";\r\n\r\nfunction AdminProducerListSummaryPreview(props) {\r\n return ;\r\n}\r\n\r\nexport default AdminProducerListSummaryPreview;\r\n","import React from \"react\";\r\nimport { AdminProducerAccountAssignedProducersPreviewTemplate } from \"themes/administration/producer/components\";\r\n\r\nfunction AdminProducerAccountAssignedProducersPreview(props) {\r\n return ;\r\n}\r\n\r\nexport default AdminProducerAccountAssignedProducersPreview;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeOrOverrideCss } from \"../../common/utils\";\r\n\r\nfunction MrbCollapsiblePanelHeader({\r\n title,\r\n t = (i) => i,\r\n classNameOverride,\r\n classNameExtend,\r\n headerRender,\r\n isCollapsed,\r\n onChangeCollapse,\r\n}) {\r\n return (\r\n \r\n {headerRender ? (\r\n headerRender({\r\n title,\r\n t,\r\n isCollapsed,\r\n })\r\n ) : (\r\n \r\n
\r\n {t(title)}\r\n
\r\n
\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nMrbCollapsiblePanelHeader.propTypes = {\r\n title: PropTypes.string,\r\n t: PropTypes.func,\r\n classNameOverride: PropTypes.string,\r\n classNameExtend: PropTypes.string,\r\n onChangeCollapse: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default MrbCollapsiblePanelHeader;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeOrOverrideCss } from \"../../common/utils\";\r\nimport { observer } from \"mobx-react\";\r\nimport { isFunction } from \"lodash\";\r\n\r\nfunction MrbCollapsiblePanelBody({\r\n isCollapsed,\r\n classNameOverride,\r\n classNameExtend,\r\n children,\r\n}) {\r\n return (\r\n \r\n {isCollapsed && renderChildren(children)}\r\n \r\n );\r\n}\r\n\r\nMrbCollapsiblePanelBody.propTypes = {\r\n isCollapsed: PropTypes.bool.isRequired,\r\n classNameOverride: PropTypes.string,\r\n classNameExtend: PropTypes.string,\r\n children: PropTypes.any,\r\n};\r\n\r\nfunction renderChildren(children) {\r\n if (isFunction(children)) {\r\n return children();\r\n }\r\n return children;\r\n}\r\n\r\nexport default observer(MrbCollapsiblePanelBody);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbCollapsiblePanelBody, MrbCollapsiblePanelHeader } from \"./\";\r\nimport { mergeOrOverrideCss } from \"../../common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbCollapsiblePanel({\r\n title,\r\n isCollapsed,\r\n t = (i) => i,\r\n headerRender,\r\n headerClassNameExtend,\r\n headerClassNameOverride,\r\n bodyClassNameExtend,\r\n bodyClassNameOverride,\r\n containerClassNameExtend,\r\n containerClassNameOverride,\r\n children,\r\n onChangeCollapse,\r\n innerRef,\r\n}) {\r\n return (\r\n \r\n
\r\n \r\n {isCollapsed && (\r\n \r\n {children}\r\n \r\n )}\r\n
\r\n \r\n );\r\n}\r\n\r\nMrbCollapsiblePanel.propTypes = {\r\n title: PropTypes.string,\r\n isCollapsed: PropTypes.bool.isRequired,\r\n headerRender: PropTypes.func,\r\n headerClassNameExtend: PropTypes.string,\r\n headerClassNameOverride: PropTypes.string,\r\n bodyClassNameExtend: PropTypes.string,\r\n bodyClassNameOverride: PropTypes.string,\r\n containerClassNameExtend: PropTypes.string,\r\n containerClassNameOverride: PropTypes.string,\r\n children: PropTypes.any,\r\n onChangeCollapse: PropTypes.func.isRequired,\r\n innerRef: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbCollapsiblePanel);\r\n","const applicationDefaults = {\r\n rpp: 20,\r\n formats: {\r\n dateTime: \"MM/DD/YYYY HH:mm A\",\r\n dateTimeSeconds: \"MM/DD/YYYY HH:mm:ss A\",\r\n date: \"MM/DD/YYYY\",\r\n longDate: \"MMMM DD, YYYY\",\r\n month: \"MMM YYYY\",\r\n monthFull: \"MMMM, YYYY\",\r\n monthShort: \"MM/YYYY\",\r\n isoDate: \"YYYY-MM-DD\",\r\n },\r\n maximumNumberOfDevices: 5,\r\n trialPeriodDays: 7,\r\n defaultProductReportTimeZone: \"America/New_York\",\r\n};\r\n\r\nexport default applicationDefaults;\r\n","const applicationErrorCodes = {\r\n device: {\r\n notExists: 51002,\r\n alreadyRegistered: 51003,\r\n },\r\n payment: {\r\n existingActiveSubscription: 53001,\r\n paymentFailedAuthenticationRequired: 53003,\r\n paymentFailedExpiredCreditCard: 53005,\r\n paymentFailedInvalidCreditCard: 53004,\r\n paymentFailedUnknownReason: 53006,\r\n },\r\n rssSync: {\r\n rssSyncFailed: 55001,\r\n },\r\n producer: {\r\n administratorConflict: 58001,\r\n producerNameEmpty: 58002,\r\n userNotFound: 58003,\r\n emailAlreadyExists: 58005,\r\n insufficientAccountBalance: 59006,\r\n stripeConnectAccountNotExists: 59005,\r\n producerUserAccountNotExists: 59004,\r\n stripeConnectAccountNotEnabled: 59007,\r\n userIsAdministrator: 59008,\r\n duplicateUsersSelected: 59002,\r\n },\r\n};\r\n\r\nexport default applicationErrorCodes;\r\n","const deviceMenuTypes = {\r\n station: \"station\",\r\n podcast: \"podcast\",\r\n shuffle: \"shuffle\",\r\n search: \"search\",\r\n separator: \"separator\",\r\n directory: \"directory\",\r\n nakiNigunArtist: \"naki-nigun-artist\",\r\n nakiNigunAlbum: \"naki-nigun-album\",\r\n nakiTalesCollection: \"naki-tales-collection\",\r\n nakiTalesTitle: \"naki-tales-title\",\r\n torahAnytime: \"torahanytime\",\r\n myRecentlyUpdated: \"recently-updated-my\",\r\n allRecentlyUpdated: \"recently-updated-all\",\r\n playlists: \"playlists\",\r\n};\r\n\r\nexport default deviceMenuTypes;\r\n","import { baasicSystemRoles } from \"mrb/baasic\";\r\n\r\nconst nakiRadioRoles = {\r\n accountOwnerRoleName: baasicSystemRoles.accountOwnerRoleName,\r\n administratorRoleName: baasicSystemRoles.administratorRoleName,\r\n producerRoleName: \"Producers\",\r\n userRoleName: baasicSystemRoles.userRoleName,\r\n guestRoleName: \"Guests\",\r\n anonymousRoleName: baasicSystemRoles.anonymousRoleName,\r\n};\r\n\r\nexport default nakiRadioRoles;\r\n","const nakiRadioSystemTypes = {\r\n venice: \"venice\",\r\n mobile: \"mobile\",\r\n mobile_embedded: \"mobile-embedded\",\r\n};\r\n\r\nexport default nakiRadioSystemTypes;\r\n","const podcastContentType = {\r\n default: 1,\r\n torahAnytime: 2,\r\n};\r\n\r\nexport default podcastContentType;\r\n","const podcastType = {\r\n podcast: 1,\r\n podcastGroup: 2,\r\n};\r\n\r\nexport default podcastType;\r\n","const reportVersions = {\r\n \"1_0\": \"1.0\",\r\n \"2_0\": \"2.0\",\r\n};\r\n\r\nexport default reportVersions;\r\n","const shuffleType = {\r\n station: \"station\",\r\n podcast: \"podcast\",\r\n nakiNigun: \"naki-nigun-album\",\r\n};\r\n\r\nexport default shuffleType;\r\n","const subscriptionPlans = {\r\n nakiTales: \"naki-tales-premium\",\r\n nakiNigun: \"naki-nigun-premium\",\r\n nakiRadioPremium: \"naki-radio-premium\",\r\n nakiRadioFree: \"naki-radio-free\",\r\n subscriptionBundleDuo: \"subscription-bundle-duo\",\r\n subscriptionBundleSolo: \"subscription-bundle-solo\",\r\n subscriptionBundleNaki23Black: \"subscription-bundle-naki-23-black\",\r\n};\r\n\r\nexport default subscriptionPlans;\r\n","const subscriptionStatuses = {\r\n canceled: \"Cancelled\",\r\n pending: \"Pending\",\r\n pastDue: \"PastDue\",\r\n active: \"Active\",\r\n unrecognized: \"Unrecognized\",\r\n expired: \"Expired\",\r\n trial: \"Trial\",\r\n};\r\n\r\nexport default subscriptionStatuses;\r\n","const nakiRadioProductCategoryAbbreviations = {\r\n radioDevice: \"radio-device\",\r\n subscription: \"subscription\",\r\n subscriptionBundle: \"subscription-bundle\",\r\n};\r\n\r\nexport default nakiRadioProductCategoryAbbreviations;\r\n","const producerTypes = {\r\n artistSlug: \"artist\",\r\n podcasterSlug: \"podcaster\",\r\n};\r\n\r\nexport default producerTypes;\r\n","import { isObject, join, extend, each, map, zipWith, pickBy, isNil, isEmpty } from \"lodash\";\r\n\r\nfunction FindParams(options) {\r\n if (isObject(options)) {\r\n extend(\r\n this,\r\n pickBy(options, (value) => !isNil(value) && ((isObject(value) && !isEmpty(value)) || !isObject(value)))\r\n );\r\n if (\r\n (options.hasOwnProperty(\"orderBy\") && options.hasOwnProperty(\"orderDirection\")) ||\r\n options.hasOwnProperty(\"sort\")\r\n ) {\r\n if (options.hasOwnProperty(\"sort\")) {\r\n this.sort = options.sort;\r\n } else if (options.orderBy && options.orderDirection) {\r\n const orderByParts = map(options.orderBy.split(\",\"), (i) => i.trim());\r\n const orderDirectionParts = map(options.orderDirection.split(\",\"), (i) => i.trim());\r\n if (orderByParts.length !== orderDirectionParts.length) {\r\n throw new Error(\"Invalid sorting parameters.\");\r\n }\r\n if (orderByParts.length > 0 && orderDirectionParts.length > 0) {\r\n this.sort = join(\r\n zipWith(\r\n orderByParts,\r\n orderDirectionParts,\r\n (orderBy, orderDirection) => `${orderBy}|${orderDirection}`\r\n ),\r\n \",\"\r\n );\r\n }\r\n }\r\n }\r\n if (options.search) {\r\n this.searchQuery = options.search;\r\n }\r\n if (options.hasOwnProperty(\"pageNumber\")) {\r\n this.page = options.pageNumber;\r\n }\r\n if (options.hasOwnProperty(\"pageSize\")) {\r\n this.rpp = options.pageSize;\r\n }\r\n } else {\r\n this.searchQuery = options;\r\n }\r\n}\r\n\r\nfunction KeyParams(id, options, propName) {\r\n if (isObject(id)) {\r\n extend(this, id);\r\n } else {\r\n if (propName !== undefined) {\r\n this[propName] = id;\r\n } else {\r\n this[\"id\"] = id;\r\n }\r\n }\r\n\r\n if (options !== undefined && isObject(options)) {\r\n extend(this, options);\r\n }\r\n}\r\n\r\nfunction findParams(options) {\r\n return new FindParams(options);\r\n}\r\n\r\nfunction getParams(id, options, propName) {\r\n return new KeyParams(id, options, propName);\r\n}\r\n\r\nfunction batchDeleteParams(data, idPropertyName = \"id\") {\r\n let items = [];\r\n each(data, (item) => {\r\n if (isObject(item)) {\r\n items.push(item[idPropertyName]);\r\n }\r\n });\r\n\r\n return items;\r\n}\r\n\r\nexport { findParams, getParams, batchDeleteParams };\r\n","import { each, find, orderBy, isArray, isString } from \"lodash\";\r\n\r\nfunction buildAuthorizedMenu(menuItems, routes, permissionFunc) {\r\n let menuTree = [];\r\n each(menuItems, function (moduleItems) {\r\n each(moduleItems, (moduleItem) => {\r\n if (hasPermission(moduleItem, permissionFunc)) {\r\n let root = find(menuTree, (t) => t.title === moduleItem.title);\r\n if (!root) {\r\n root = {\r\n title: moduleItem.title,\r\n subMenu: [],\r\n };\r\n menuTree.push(root);\r\n }\r\n if (!root.icon && moduleItem.icon) {\r\n root.icon = moduleItem.icon;\r\n }\r\n if (!root.route && moduleItem.route) {\r\n root.route = moduleItem.route;\r\n }\r\n if (!root.order && moduleItem.order) {\r\n root.order = moduleItem.order;\r\n }\r\n each(moduleItem.subMenu, function (secondaryMenuItem, idx) {\r\n // eslint-disable-line\r\n var route = getRouteByMenu(secondaryMenuItem, routes);\r\n if (hasPermission(route, permissionFunc)) {\r\n let subRoot = find(\r\n root.subMenu,\r\n (t) => t.title === secondaryMenuItem.title\r\n );\r\n if (secondaryMenuItem.subMenu) {\r\n evaluateSubMenuItems(\r\n secondaryMenuItem,\r\n routes,\r\n permissionFunc\r\n );\r\n }\r\n if (!subRoot) {\r\n root.subMenu = [...root.subMenu, secondaryMenuItem];\r\n } else {\r\n each(\r\n secondaryMenuItem.subMenu,\r\n function (terniaryMenuItem, idx) {\r\n // eslint-disable-line\r\n var route = getRouteByMenu(\r\n terniaryMenuItem,\r\n routes\r\n );\r\n if (hasPermission(route, permissionFunc)) {\r\n subRoot.subMenu = [\r\n ...subRoot.subMenu,\r\n terniaryMenuItem,\r\n ];\r\n }\r\n }\r\n );\r\n subRoot.subMenu = orderBy(\r\n subRoot.subMenu,\r\n \"order\",\r\n \"asc\"\r\n );\r\n }\r\n }\r\n });\r\n root.subMenu = orderBy(root.subMenu, \"order\", \"asc\");\r\n }\r\n });\r\n });\r\n\r\n return menuTree;\r\n}\r\nfunction evaluateSubMenuItems(menuItem, routes, permissionFunc) {\r\n var keys = [];\r\n each(menuItem.subMenu, function (subMenuItem, key) {\r\n var childRoute = getRouteByMenu(subMenuItem, routes);\r\n if (!hasPermission(childRoute, permissionFunc)) {\r\n keys.push(key);\r\n } else {\r\n if (subMenuItem.subMenu) {\r\n evaluateSubMenuItems(subMenuItem);\r\n }\r\n }\r\n });\r\n each(keys.reverse(), function (key) {\r\n if (isArray(menuItem.subMenu)) {\r\n menuItem.subMenu.splice(key, 1);\r\n } else {\r\n delete menuItem.subMenu[key];\r\n }\r\n });\r\n\r\n menuItem.subMenu = orderBy(menuItem.subMenu, \"order\", \"asc\");\r\n}\r\n\r\nfunction getRouteByMenu(menuItem, routes) {\r\n var route = \"\";\r\n if (menuItem.route === \"function\") {\r\n const menuRoute = menuItem.route();\r\n if (menuRoute === null) return null;\r\n\r\n route = menuRoute.routeName;\r\n } else {\r\n route = menuItem.route;\r\n }\r\n\r\n return find(routes, (r) => r.name === route);\r\n}\r\n\r\nfunction hasPermission(item, permissionFunc) {\r\n let authorized = true;\r\n if (item && item.authorization) {\r\n if (isString(item.authorization) || isArray(item.authorization)) {\r\n authorized = permissionFunc(item.authorization);\r\n } else {\r\n authorized = item.authorization();\r\n }\r\n }\r\n return authorized;\r\n}\r\n\r\nexport default buildAuthorizedMenu;\r\n","export default function flattenArray(arr) {\r\n return arr.reduce(function (flat, toFlatten) {\r\n return flat.concat(\r\n Array.isArray(toFlatten) ? flattenArray(toFlatten) : toFlatten\r\n );\r\n }, []);\r\n}\r\n","import React from \"react\";\r\nimport { mergeOrOverrideCss } from \"baasic-react-bootstrap/src/common\";\r\n\r\nconst EmptyState = ({ title, description, classNameOverride, classNameExtend }) => {\r\n return (\r\n
\r\n \r\n

{title ? title : \"No results found\"}

\r\n

{description ? description : \"Try adjusting your search to find what you are looking for.\"}

\r\n
\r\n );\r\n};\r\n\r\nexport default EmptyState;\r\n","import React from \"react\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nconst StatsWidgetEmptyState = (props) => {\r\n const { period, classNameExtend } = props;\r\n\r\n return (\r\n
\r\n \r\n
{`No statistic available for the current ${period ? period : \"period\"}`}
\r\n
\r\n );\r\n};\r\n\r\nexport default StatsWidgetEmptyState;\r\n","export * from \"./constants\";\r\nexport * from \"./formatting\";\r\nexport * from \"./models\";\r\nexport * from \"./storage\";\r\nexport * from \"./utils\";\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"../../core/stores\";\r\nimport { extend, isFunction } from \"lodash\";\r\n\r\nclass MrbTabViewStore extends MrbBaseViewStore {\r\n @observable activeTabIndex = 0;\r\n\r\n config = {\r\n actions: {\r\n onTabChange: null,\r\n },\r\n };\r\n\r\n constructor(rootStore, config) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.config = extend({}, this.config, config);\r\n }\r\n\r\n @action.bound\r\n handleTabClick(tabIndex) {\r\n this.setActiveTabIndex(tabIndex);\r\n if (isFunction(this.config.actions.onTabChange)) {\r\n this.config.actions.onTabChange(tabIndex);\r\n }\r\n }\r\n\r\n @action.bound\r\n setActiveTabIndex(tabIndex) {\r\n this.activeTabIndex = tabIndex;\r\n }\r\n}\r\n\r\nexport default MrbTabViewStore;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\nimport { mergeCss } from \"../../common/utils\";\r\n\r\nfunction MrbTabHeader({ onClick, label, isActive, icon, t = (i) => i }) {\r\n return (\r\n
  • \r\n \r\n {t(label)}\r\n \r\n {icon && }\r\n
  • \r\n );\r\n}\r\n\r\nMrbTabHeader.propTypes = {\r\n onClick: PropTypes.func.isRequired,\r\n label: PropTypes.string.isRequired,\r\n isActive: PropTypes.bool.isRequired,\r\n icon: PropTypes.string,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbTabHeader);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { renderTabs } from \"./utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbTabHeaders({ store, headersRenderer, children, t }) {\r\n if (headersRenderer) {\r\n return headersRenderer({ store, children, t });\r\n }\r\n return (\r\n \r\n );\r\n}\r\n\r\nMrbTabHeaders.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n headersRenderer: PropTypes.func,\r\n children: PropTypes.node.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbTabHeaders);\r\n","import React from \"react\";\r\n\r\nfunction MrbTabContent({ children }) {\r\n return {render(children)};\r\n}\r\n\r\nfunction render(content) {\r\n return content\r\n ? typeof content === \"function\"\r\n ? content()\r\n : content\r\n : null;\r\n}\r\n\r\nexport default MrbTabContent;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbTabHeaders } from \"./\";\r\nimport { getTabContent } from \"./utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbTabLayout({ store, headersRenderer, children, t }) {\r\n const { activeTabIndex } = store;\r\n const tabElements = getTabContent(children);\r\n return (\r\n
    \r\n \r\n {tabElements}\r\n \r\n {renderActiveTab(activeTabIndex, tabElements)}\r\n
    \r\n );\r\n}\r\n\r\nfunction renderActiveTab(activeTabIndex, children) {\r\n const tabs = React.Children.toArray(children);\r\n const tab = tabs[activeTabIndex];\r\n return tab;\r\n}\r\n\r\nMrbTabLayout.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n headersRenderer: PropTypes.func,\r\n children: PropTypes.node.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbTabLayout);\r\n","var map = {\n\t\"./ar\": 750,\n\t\"./ar.js\": 750,\n\t\"./az\": 751,\n\t\"./az.js\": 751,\n\t\"./be\": 752,\n\t\"./be.js\": 752,\n\t\"./bg\": 753,\n\t\"./bg.js\": 753,\n\t\"./bs\": 754,\n\t\"./bs.js\": 754,\n\t\"./ca\": 755,\n\t\"./ca.js\": 755,\n\t\"./cs\": 756,\n\t\"./cs.js\": 756,\n\t\"./cy\": 757,\n\t\"./cy.js\": 757,\n\t\"./da\": 758,\n\t\"./da.js\": 758,\n\t\"./de\": 759,\n\t\"./de.js\": 759,\n\t\"./el\": 760,\n\t\"./el.js\": 760,\n\t\"./en\": 586,\n\t\"./en.js\": 586,\n\t\"./es\": 761,\n\t\"./es.js\": 761,\n\t\"./et\": 762,\n\t\"./et.js\": 762,\n\t\"./eu\": 763,\n\t\"./eu.js\": 763,\n\t\"./fa\": 764,\n\t\"./fa.js\": 764,\n\t\"./fi\": 765,\n\t\"./fi.js\": 765,\n\t\"./fr\": 766,\n\t\"./fr.js\": 766,\n\t\"./hr\": 767,\n\t\"./hr.js\": 767,\n\t\"./hu\": 768,\n\t\"./hu.js\": 768,\n\t\"./id\": 769,\n\t\"./id.js\": 769,\n\t\"./it\": 770,\n\t\"./it.js\": 770,\n\t\"./ja\": 771,\n\t\"./ja.js\": 771,\n\t\"./ka\": 772,\n\t\"./ka.js\": 772,\n\t\"./ko\": 773,\n\t\"./ko.js\": 773,\n\t\"./lt\": 774,\n\t\"./lt.js\": 774,\n\t\"./lv\": 775,\n\t\"./lv.js\": 775,\n\t\"./mk\": 776,\n\t\"./mk.js\": 776,\n\t\"./mn\": 777,\n\t\"./mn.js\": 777,\n\t\"./ms\": 778,\n\t\"./ms.js\": 778,\n\t\"./nb_NO\": 779,\n\t\"./nb_NO.js\": 779,\n\t\"./nl\": 780,\n\t\"./nl.js\": 780,\n\t\"./pl\": 781,\n\t\"./pl.js\": 781,\n\t\"./pt\": 782,\n\t\"./pt.js\": 782,\n\t\"./pt_BR\": 783,\n\t\"./pt_BR.js\": 783,\n\t\"./ro\": 784,\n\t\"./ro.js\": 784,\n\t\"./ru\": 785,\n\t\"./ru.js\": 785,\n\t\"./se\": 786,\n\t\"./se.js\": 786,\n\t\"./sl\": 787,\n\t\"./sl.js\": 787,\n\t\"./sq\": 788,\n\t\"./sq.js\": 788,\n\t\"./sr\": 789,\n\t\"./sr.js\": 789,\n\t\"./sv\": 790,\n\t\"./sv.js\": 790,\n\t\"./tr\": 791,\n\t\"./tr.js\": 791,\n\t\"./ua\": 792,\n\t\"./ua.js\": 792,\n\t\"./uk\": 793,\n\t\"./uk.js\": 793,\n\t\"./vi\": 794,\n\t\"./vi.js\": 794,\n\t\"./zh\": 795,\n\t\"./zh.js\": 795,\n\t\"./zh_TW\": 796,\n\t\"./zh_TW.js\": 796\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 = 1182;","import { observable, makeObservable } from \"mobx\";\r\nimport { MrbFilterParameters } from \"mrb/core/filter\";\r\n\r\nclass HomeContentFilter extends MrbFilterParameters {\r\n @observable contentType;\r\n @observable isEnabled;\r\n @observable isPremium;\r\n\r\n constructor() {\r\n super();\r\n makeObservable(this);\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n super.reset();\r\n this.contentType = 0;\r\n this.isEnabled = null;\r\n this.isPremium = null;\r\n }\r\n}\r\n\r\nexport default HomeContentFilter;\r\n","import { observable, makeObservable } from \"mobx\";\r\nimport { MrbFilterParameters } from \"mrb/core/filter\";\r\n\r\nclass HomeGenericSearchFilter extends MrbFilterParameters {\r\n @observable genreId;\r\n\r\n constructor() {\r\n super();\r\n makeObservable(this);\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n super.reset();\r\n this.genreId = null;\r\n }\r\n}\r\n\r\nexport default HomeGenericSearchFilter;\r\n","import { action, makeObservable, observable, runInAction } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\nimport { MrbGridViewStore } from \"mrb/components/grid\";\r\nimport { MrbSimpleSelectStore, MrbQuerySelectStore } from \"mrb/components/select\";\r\nimport { HomeGenericSearchFilter } from \"application/home/filters\";\r\nimport { sideScroll } from \"common/utils\";\r\nimport { podcastType, podcastContentType } from \"common/constants\";\r\nimport { find, filter, map, isNil, uniqBy } from \"lodash\";\r\n\r\nclass HomeGenericSearchViewStore extends MrbBaseListViewStore {\r\n @observable showSearchView = false;\r\n @observable.ref podcastGroups = [];\r\n @observable isAppearsInScrollable = false;\r\n @observable.ref appearsInContainerRef = null;\r\n _isInitialLoad = true;\r\n\r\n _abortController = null;\r\n\r\n orderOptions = [\r\n {\r\n label: \"APPLICATION.HOME.LIST.GENERIC_SEARCH.ORDER.RELEVANCE_OPTION\",\r\n value: \"-1\",\r\n },\r\n {\r\n label: \"APPLICATION.HOME.LIST.GENERIC_SEARCH.ORDER.RECENTLY_ADDED_OPTION\",\r\n value: \"dateCreated\",\r\n },\r\n {\r\n label: \"APPLICATION.HOME.LIST.GENERIC_SEARCH.ORDER.ALPHABETICALY_OPTION\",\r\n value: \"title\",\r\n },\r\n ];\r\n\r\n constructor(rootStore, homeViewStore) {\r\n super(rootStore, {\r\n queryConfig: {\r\n filter: new HomeGenericSearchFilter(),\r\n disableUpdateQueryParams: true,\r\n pageSize: 30,\r\n },\r\n });\r\n makeObservable(this);\r\n this.homeViewStore = homeViewStore;\r\n this.routeStore = this.homeViewStore.routeStore;\r\n\r\n this.setGridStore(\r\n new MrbGridViewStore(this.rootStore, this.queryUtility, {\r\n onCellClick: (item) => this.onClickCellItem(item),\r\n generateKey: (item) => item.stationId || item.podcastId,\r\n mapper: (item) => {\r\n return {\r\n ...item,\r\n coverImageUrl: this.createCoverImageUrl(item),\r\n };\r\n },\r\n })\r\n );\r\n\r\n this.orderBySelectStore = new MrbSimpleSelectStore(\r\n {\r\n textKey: \"label\",\r\n valueKey: \"value\",\r\n actions: {\r\n onChange: (selectedOrder) => {\r\n if (this.queryUtility.filter.orderBy !== selectedOrder.value) {\r\n if (selectedOrder.value === \"-1\") {\r\n this.queryUtility.filter.orderBy = null;\r\n this.queryUtility.filter.orderDirection = null;\r\n } else {\r\n this.queryUtility.filter.orderBy = selectedOrder.value;\r\n if (selectedOrder.value === \"title\") {\r\n this.queryUtility.filter.orderDirection = \"asc\";\r\n } else {\r\n this.queryUtility.filter.orderDirection = \"desc\";\r\n }\r\n }\r\n this.queryUtility.fetch();\r\n }\r\n },\r\n },\r\n },\r\n this.orderOptions\r\n );\r\n\r\n this.genreSelectStore = new MrbQuerySelectStore(\r\n {\r\n isSearchable: true,\r\n textKey: \"name\",\r\n valueKey: \"id\",\r\n initFetch: false,\r\n actions: {\r\n find: (searchTerm) => {\r\n return this.routeStore.findGenres(searchTerm);\r\n },\r\n },\r\n },\r\n this.queryUtility,\r\n \"genreId\"\r\n );\r\n\r\n this.initializeSortingDefault();\r\n\r\n this.reaction(\r\n () => (this.queryUtility.filter.search || \"\").trim(),\r\n (searchPhrase) => {\r\n if (searchPhrase) {\r\n this.queryUtility.fetch();\r\n } else {\r\n this.reset();\r\n }\r\n },\r\n {\r\n delay: 300,\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => ({\r\n groups: this.podcastGroups,\r\n container: this.appearsInContainerRef,\r\n }),\r\n (context) => {\r\n if (context.container) {\r\n setTimeout(() => {\r\n runInAction(() => {\r\n this.isAppearsInScrollable = context.container.scrollWidth > context.container.clientWidth;\r\n });\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n async fetchResources(filter) {\r\n if (filter.search) {\r\n this.abortExistingRequest();\r\n this.setShowSearchView(true);\r\n let delay = null;\r\n if (this._isInitialLoad) {\r\n delay = 0;\r\n }\r\n this.gridStore.suspend(delay);\r\n filter.contentType = this.homeViewStore.queryUtility.filter.contentType;\r\n try {\r\n const response = await this.find(filter);\r\n runInAction(() => {\r\n this.gridStore.setData(response);\r\n this.setPodcastGroups(response);\r\n this.gridStore.resume();\r\n });\r\n } catch (err) {\r\n runInAction(() => {\r\n this.gridStore.resume();\r\n });\r\n this.onFetchError(err);\r\n } finally {\r\n this._isInitialLoad = false;\r\n }\r\n } else {\r\n this.reset();\r\n }\r\n }\r\n\r\n @action.bound\r\n setPodcastGroups(response) {\r\n const data = response.item ? response.item : response;\r\n const podcastGroups = map(\r\n uniqBy(\r\n filter(data, (item) => !isNil(item.parentPodcastId)),\r\n \"parentPodcastId\"\r\n ),\r\n (item) => {\r\n return {\r\n podcastId: item.parentPodcastId,\r\n title: item.parentPodcastTitle,\r\n isParentPodcastPremium: item.isParentPodcastPremium,\r\n coverImageUrl: this.createPodcastGroupCoverImageUrl(item.parentPodcastCoverImageId),\r\n };\r\n }\r\n );\r\n this.podcastGroups = podcastGroups;\r\n }\r\n\r\n initializeSortingDefault() {\r\n if (this.queryUtility.filter.orderBy) {\r\n this.orderBySelectStore.setSelectedItem(\r\n find(this.orderOptions, (orderOption) => orderOption.value === this.queryUtility.filter.orderBy)\r\n );\r\n } else {\r\n this.orderBySelectStore.setSelectedItem(this.orderOptions[0]);\r\n }\r\n }\r\n\r\n find(params) {\r\n this._abortController = new AbortController();\r\n return this.routeStore.genericSearch(params, this._abortController);\r\n }\r\n\r\n onClickCellItem = (item) => {\r\n if (item.stationId) {\r\n this.rootStore.routerStore.goTo(\"master.application.home.station\", {\r\n id: item.stationId,\r\n });\r\n } else if (item.podcastId) {\r\n if (item.podcastType === podcastType.podcast) {\r\n if (item.podcastContentType === podcastContentType.torahAnytime) {\r\n this.rootStore.routerStore.goTo(\"master.application.home.torah-anytime\", { id: item.podcastId });\r\n } else if (!isNil(item.parentPodcastId)) {\r\n this.rootStore.routerStore.goTo(\r\n \"master.application.home.podcast-group\",\r\n {\r\n id: item.parentPodcastId,\r\n },\r\n { subPodcastId: item.podcastId }\r\n );\r\n } else {\r\n this.rootStore.routerStore.goTo(\"master.application.home.podcast\", {\r\n id: item.podcastId,\r\n });\r\n }\r\n } else {\r\n this.rootStore.routerStore.goTo(\"master.application.home.podcast-group\", {\r\n id: item.podcastId,\r\n });\r\n }\r\n }\r\n };\r\n\r\n createPodcastGroupCoverImageUrl(coverImageId) {\r\n if (coverImageId) {\r\n return this.routeStore.createPodcastCoverImageUrl(coverImageId, 200, 200);\r\n }\r\n return null;\r\n }\r\n\r\n createCoverImageUrl(item) {\r\n if (item.coverImageId) {\r\n if (item.stationId) {\r\n return this.routeStore.createStationCoverImageUrl(item.coverImageId, 200, 200);\r\n } else if (item.podcastId) {\r\n return this.routeStore.createPodcastCoverImageUrl(item.coverImageId, 200, 200);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n onFetchError(error) {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred while trying to load content. Please contact the support team.\",\r\n error\r\n );\r\n }\r\n\r\n @action.bound\r\n setShowSearchView(value) {\r\n this.showSearchView = value;\r\n }\r\n\r\n @action.bound\r\n reset() {\r\n this.setShowSearchView(false);\r\n this.abortExistingRequest();\r\n this.genreSelectStore.setValue(null);\r\n this.gridStore.setData([]);\r\n this.setPodcastGroups([]);\r\n this._isInitialLoad = true;\r\n }\r\n\r\n @action.bound\r\n scrollFeaturedLeft() {\r\n sideScroll(this.appearsInContainerRef, \"left\", 20, 400, 20);\r\n }\r\n\r\n @action.bound\r\n scrollFeaturedRight() {\r\n sideScroll(this.appearsInContainerRef, \"right\", 20, 400, 20);\r\n }\r\n\r\n abortExistingRequest() {\r\n if (this._abortController) {\r\n this._abortController.abort();\r\n }\r\n }\r\n\r\n onDestroy() {\r\n this.abortExistingRequest();\r\n }\r\n\r\n onClickPodcastGroup = (podcastGroup) => {\r\n this.rootStore.routerStore.goTo(\"master.application.home.podcast-group\", {\r\n id: podcastGroup.podcastId,\r\n });\r\n };\r\n\r\n @action.bound\r\n setAppearsInContainerRef(ref) {\r\n this.appearsInContainerRef = ref;\r\n }\r\n}\r\n\r\nexport default HomeGenericSearchViewStore;\r\n","import { action, computed, makeObservable, observable } from \"mobx\";\r\nimport { forEach } from \"lodash\";\r\n\r\nclass HomeGridItemDecorator {\r\n @observable _isTurnedOn = null;\r\n\r\n constructor(obj) {\r\n makeObservable(this);\r\n forEach(obj, (value, key) => {\r\n if (key === \"isTurnedOn\") {\r\n this.setIsTurnedOn(value);\r\n } else {\r\n this[key] = value;\r\n }\r\n });\r\n }\r\n\r\n @computed get isTurnedOn() {\r\n return this._isTurnedOn;\r\n }\r\n\r\n set isTurnedOn(value) {\r\n this.setIsTurnedOn(value);\r\n }\r\n\r\n @action.bound\r\n setIsTurnedOn(isTurnedOn) {\r\n this._isTurnedOn = isTurnedOn;\r\n }\r\n}\r\n\r\nexport default HomeGridItemDecorator;\r\n","import { action, computed, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { sideScroll } from \"common/utils\";\r\nimport { podcastType, podcastContentType } from \"common/constants\";\r\nimport { map, find } from \"lodash\";\r\nimport { HomeGridItemDecorator } from \"application/home/models\";\r\nimport { UpdatePodcastStatusOptions, UpdateStationStatusOptions } from \"application/common/models\";\r\n\r\nclass HomeFeaturedContentViewStore extends MrbBaseViewStore {\r\n @observable.ref items = [];\r\n @observable isFeaturedScrollable = false;\r\n @observable.ref featuredContainerRef = null;\r\n\r\n @computed get selectedDevice() {\r\n return this.rootStore.userDeviceStore.selectedDevice;\r\n }\r\n\r\n constructor(rootStore, homeViewStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.homeViewStore = homeViewStore;\r\n this.routeStore = homeViewStore.routeStore;\r\n\r\n this.reaction(\r\n () => ({\r\n groups: this.items,\r\n container: this.featuredContainerRef,\r\n }),\r\n (context) => {\r\n if (context.container) {\r\n setTimeout(() => {\r\n runInAction(() => {\r\n this.isFeaturedScrollable = context.container.scrollWidth > context.container.clientWidth;\r\n });\r\n });\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => ({\r\n deviceId: this.selectedDevice && this.selectedDevice.id,\r\n contentType: this.homeViewStore.queryUtility.filter.contentType,\r\n }),\r\n (context) => {\r\n this.fetchResources(context);\r\n }\r\n );\r\n }\r\n\r\n onInit() {\r\n let deviceId;\r\n if (this.selectedDevice) {\r\n deviceId = this.selectedDevice.id;\r\n }\r\n return this.fetchResources({ deviceId: deviceId });\r\n }\r\n\r\n async fetchResources({ deviceId, contentType }) {\r\n this.loaderStore.suspend();\r\n try {\r\n const items = await this.routeStore.getFeaturedContent(deviceId, contentType);\r\n this.setItems(items);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred while trying to load featured content. Please contact the support team.\",\r\n err\r\n );\r\n } finally {\r\n this.loaderStore.resume();\r\n }\r\n }\r\n\r\n onClickFeaturedItem = async (item) => {\r\n if (item.podcastId && item.podcastType === podcastType.podcastGroup) {\r\n this.rootStore.routerStore.goTo(\"master.application.home.podcast-group\", {\r\n id: item.podcastId,\r\n });\r\n } else if (item.podcastId && item.podcastContentType === podcastContentType.torahAnytime) {\r\n this.rootStore.routerStore.goTo(\"master.application.home.torah-anytime\", { id: item.podcastId });\r\n } else {\r\n if (item.stationId) {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessStation({\r\n isPremium: item.isPremium,\r\n isLegacySubscriptionValid: item.validLegacySubscription,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n await this.changeDeviceStationStatus(item);\r\n }\r\n } else if (item.podcastId) {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessPodcast({\r\n isPremium: item.isPremium,\r\n isLegacySubscriptionValid: item.validLegacySubscription,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n await this.changeDevicePodcastStatus(item);\r\n }\r\n }\r\n }\r\n };\r\n\r\n goTo = (item) => {\r\n if (item.stationId) {\r\n this.rootStore.routerStore.goTo(\"master.application.home.station\", {\r\n id: item.stationId,\r\n });\r\n } else if (item.podcastId) {\r\n if (item.podcastType === podcastType.podcast) {\r\n if (item.podcastContentType === podcastContentType.torahAnytime) {\r\n this.rootStore.routerStore.goTo(\"master.application.home.torah-anytime\", { id: item.podcastId });\r\n } else {\r\n this.rootStore.routerStore.goTo(\"master.application.home.podcast\", {\r\n id: item.podcastId,\r\n });\r\n }\r\n } else {\r\n this.rootStore.routerStore.goTo(\"master.application.home.podcast-group\", {\r\n id: item.podcastId,\r\n });\r\n }\r\n }\r\n };\r\n\r\n async changeDeviceStationStatus(item) {\r\n if (!item.isUpdating) {\r\n try {\r\n item.isUpdating = true;\r\n this.rootStore.mainLoaderStore.suspend();\r\n const newValue = !item.isTurnedOn;\r\n const options = new UpdateStationStatusOptions(\r\n item.stationId,\r\n item.title,\r\n item.isPremium,\r\n item.isVisibleInApp === false,\r\n item.isVisibleInEmbeddedApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updateStationStatus(options, newValue);\r\n runInAction(() => {\r\n item.isTurnedOn = newValue;\r\n // Since there is a possibility of having the same item twice in the featured list and main list, we need to sync turned on status\r\n this.updateMainViewStationStatus(item.stationId, newValue);\r\n this.resetItems();\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Please contact the support team.\",\r\n err\r\n );\r\n } finally {\r\n delete item.isUpdating;\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n }\r\n\r\n async changeDevicePodcastStatus(item) {\r\n if (!item.isUpdating) {\r\n try {\r\n item.isUpdating = true;\r\n this.rootStore.mainLoaderStore.suspend();\r\n const newValue = !item.isTurnedOn;\r\n const options = new UpdatePodcastStatusOptions(\r\n item.podcastId,\r\n item.title,\r\n item.isPremium,\r\n item.isVisibleInApp === false,\r\n item.isVisibleInEmbeddedApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updatePodcastStatus(options, newValue);\r\n runInAction(() => {\r\n item.isTurnedOn = newValue;\r\n // Since there is a possibility of having the same item twice in the featured list and main list, we need to sync turned on status\r\n this.updateMainViewPodcastStatus(item.podcastId, newValue);\r\n this.resetItems();\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Please contact the support team.\",\r\n err\r\n );\r\n } finally {\r\n delete item.isUpdating;\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n updateMainViewStationStatus(stationId, isTurnedOn) {\r\n const item = find(this.homeViewStore.gridStore.data, (x) => x.stationId === stationId);\r\n if (item) {\r\n item.isTurnedOn = isTurnedOn;\r\n }\r\n }\r\n\r\n @action.bound\r\n updateMainViewPodcastStatus(podcastId, isTurnedOn) {\r\n const item = find(this.homeViewStore.gridStore.data, (x) => x.podcastId === podcastId);\r\n if (item) {\r\n item.isTurnedOn = isTurnedOn;\r\n }\r\n }\r\n\r\n @action.bound\r\n resetItems() {\r\n this.items = [...this.items];\r\n }\r\n\r\n createCoverImageUrl(item) {\r\n if (item.coverImageId) {\r\n if (item.stationId) {\r\n return this.routeStore.createStationCoverImageUrl(item.coverImageId, 200, 200);\r\n } else if (item.podcastId) {\r\n return this.routeStore.createPodcastCoverImageUrl(item.coverImageId, 200, 200);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n @action.bound\r\n setItems(items) {\r\n this.items = map(items, (item) => {\r\n return new HomeGridItemDecorator({\r\n ...item,\r\n coverImageUrl: this.createCoverImageUrl(item),\r\n });\r\n });\r\n }\r\n\r\n @action.bound\r\n setFeaturedContainerRef(ref) {\r\n this.featuredContainerRef = ref;\r\n }\r\n\r\n @action.bound\r\n scrollFeaturedLeft() {\r\n sideScroll(this.featuredContainerRef, \"left\", 20, 400, 20);\r\n }\r\n\r\n @action.bound\r\n scrollFeaturedRight() {\r\n sideScroll(this.featuredContainerRef, \"right\", 20, 400, 20);\r\n }\r\n}\r\n\r\nexport default HomeFeaturedContentViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport {\r\n UserContentService,\r\n StationFileStreamService,\r\n PodcastFileStreamService,\r\n GenreLookupService,\r\n} from \"common/services\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\n\r\nclass HomeRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.createApplicationService(UserContentService);\r\n this.podcastFileStreamService = this.rootStore.createApplicationService(PodcastFileStreamService);\r\n this.stationFileStreamService = this.rootStore.createApplicationService(StationFileStreamService);\r\n this.genreLookupService = this.rootStore.createApplicationService(GenreLookupService);\r\n }\r\n\r\n async getFeaturedContent(deviceId, contentType) {\r\n const response = await this.service.getFeaturedContent(deviceId, contentType);\r\n return response.data;\r\n }\r\n\r\n async genericSearch(params, abortController) {\r\n const response = await this.service.genericSearch(params, abortController);\r\n return response.data;\r\n }\r\n\r\n async findUserContent(params) {\r\n const response = await this.service.find(params);\r\n return response.data;\r\n }\r\n\r\n async findGenres(searchPhrase) {\r\n const response = await this.genreLookupService.find(searchPhrase);\r\n return response.data;\r\n }\r\n\r\n createStationCoverImageUrl(coverImageId, width = null, height = null) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.stationFileStreamService.routeService.get(coverImageId),\r\n {\r\n width: width,\r\n height: height,\r\n }\r\n );\r\n }\r\n\r\n createPodcastCoverImageUrl(coverImageId, width = null, height = null) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.podcastFileStreamService.routeService.get(coverImageId),\r\n {\r\n width: width,\r\n height: height,\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport default HomeRouteStore;\r\n","import { action, computed, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbInfiniteScrollGridViewStore } from \"mrb/components/infinite-scroll-grid\";\r\nimport { MrbSimpleSelectStore, MrbQuerySimpleSelectStore } from \"mrb/components/select\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\nimport { HomeContentFilter } from \"application/home/filters\";\r\nimport {\r\n HomeGenericSearchViewStore,\r\n HomeFeaturedContentViewStore,\r\n HomeManageSelectedItemsViewStore,\r\n} from \"application/home/stores\";\r\nimport { UpdatePodcastStatusOptions, UpdateStationStatusOptions } from \"application/common/models\";\r\nimport { HomeGridItemDecorator } from \"application/home/models\";\r\nimport { podcastType, podcastContentType } from \"common/constants\";\r\nimport { calculateNumberOfColumns, calculateNumberOfRows } from \"common/utils\";\r\nimport { find, isNil, intersectionWith } from \"lodash\";\r\n\r\nclass HomeViewStore extends MrbBaseListViewStore {\r\n @computed get selectedDevice() {\r\n return this.rootStore.userDeviceStore.selectedDevice;\r\n }\r\n\r\n @computed get inSearchMode() {\r\n return this.homeGenericSearchViewStore.showSearchView;\r\n }\r\n\r\n @computed get anyDevice() {\r\n return this.rootStore.userDeviceStore.devices.length > 0;\r\n }\r\n\r\n @computed get selectedPremiumDisabledOption() {\r\n if (!isNil(this.queryUtility.filter.isEnabled)) {\r\n return this.queryUtility.filter.isEnabled ? 2 : 3;\r\n } else if (!isNil(this.queryUtility.filter.isPremium)) {\r\n return 1;\r\n }\r\n return 0;\r\n }\r\n\r\n contentTypeOptions = [\r\n {\r\n label: \"APPLICATION.HOME.LIST.FILTER.ALL\",\r\n value: 0,\r\n },\r\n {\r\n label: \"APPLICATION.HOME.LIST.FILTER.STATIONS\",\r\n value: 1,\r\n },\r\n {\r\n label: \"APPLICATION.HOME.LIST.FILTER.PODCASTS\",\r\n value: 2,\r\n },\r\n ];\r\n\r\n premiumDisabledOptions = [\r\n {\r\n label: \"APPLICATION.HOME.LIST.FILTER.ALL\",\r\n value: 0,\r\n },\r\n {\r\n label: \"APPLICATION.HOME.LIST.FILTER.PREMIUM\",\r\n value: 1,\r\n },\r\n {\r\n label: \"APPLICATION.HOME.LIST.FILTER.ENABLED\",\r\n value: 2,\r\n },\r\n {\r\n label: \"APPLICATION.HOME.LIST.FILTER.DISABLED\",\r\n value: 3,\r\n },\r\n ];\r\n\r\n orderOptions = [\r\n {\r\n label: \"APPLICATION.HOME.LIST.ORDER.ALPHABETICALY_OPTION\",\r\n value: \"title\",\r\n },\r\n {\r\n label: \"APPLICATION.HOME.LIST.ORDER.RECENTLY_ADDED_OPTION\",\r\n value: \"dateCreated\",\r\n },\r\n ];\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const pageSize = calculateNumberOfColumns(window.innerWidth) * calculateNumberOfRows(window.innerWidth);\r\n super(rootStore, {\r\n queryConfig: {\r\n filter: new HomeContentFilter(),\r\n orderBy: \"title\",\r\n orderDirection: \"asc\",\r\n pageSize: pageSize,\r\n queryParamMap: {\r\n page: {\r\n toQuery: () => 1,\r\n },\r\n },\r\n },\r\n });\r\n\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.homeGenericSearchViewStore = new HomeGenericSearchViewStore(this.rootStore, this);\r\n this.homeFeaturedContentViewStore = new HomeFeaturedContentViewStore(this.rootStore, this);\r\n this.homeManageSelectedItemsViewStore = new HomeManageSelectedItemsViewStore(this.rootStore, this);\r\n this.connectDeviceModal = new MrbModalParams(\r\n {\r\n onClose: () => this.rootStore.userStore.disableConnectDeviceMessage(),\r\n },\r\n {\r\n goToConnectDevice: this.goToConnectDevice,\r\n }\r\n );\r\n\r\n this.setGridStore(\r\n new MrbInfiniteScrollGridViewStore(this.rootStore, this.queryUtility, {\r\n onCellClick: (item) => this.onClickCellItem(item),\r\n generateKey: (item) => item.stationId || item.podcastId,\r\n mapper: (item) => {\r\n return new HomeGridItemDecorator({\r\n ...item,\r\n coverImageUrl: this.createCoverImageUrl(item),\r\n });\r\n },\r\n })\r\n );\r\n\r\n this.deviceSelectStore = new MrbSimpleSelectStore(\r\n {\r\n textKey: \"deviceName\",\r\n valueKey: \"id\",\r\n actions: {\r\n onChange: (option) => {\r\n this.rootStore.userDeviceStore.setSelectedDevice(option.item);\r\n },\r\n },\r\n },\r\n this.rootStore.userDeviceStore.devices\r\n );\r\n this.deviceSelectStore.setSelectedItem(this.selectedDevice);\r\n\r\n this.orderBySelectStore = new MrbQuerySimpleSelectStore(\r\n {\r\n textKey: \"label\",\r\n valueKey: \"value\",\r\n actions: {\r\n onChange: (selectedOrder) => {\r\n if (selectedOrder.value === \"title\") {\r\n this.queryUtility.filter.orderDirection = \"asc\";\r\n } else {\r\n this.queryUtility.filter.orderDirection = \"desc\";\r\n }\r\n },\r\n },\r\n },\r\n this.queryUtility,\r\n \"orderBy\",\r\n this.orderOptions\r\n );\r\n\r\n this.reaction(\r\n () => this.selectedDevice,\r\n () => {\r\n if (!this.inSearchMode) {\r\n this.queryUtility.fetch();\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.inSearchMode,\r\n (inSearchMode) => {\r\n if (!inSearchMode) {\r\n this.queryUtility.fetch();\r\n }\r\n }\r\n );\r\n\r\n this.changeDeviceStationStatus = this.changeDeviceStationStatus.bind(this);\r\n this.changeDevicePodcastStatus = this.changeDevicePodcastStatus.bind(this);\r\n }\r\n\r\n onClickCellItem = async (item) => {\r\n if (item.podcastId && item.podcastType === podcastType.podcastGroup) {\r\n this.rootStore.routerStore.goTo(\"master.application.home.podcast-group\", {\r\n id: item.podcastId,\r\n });\r\n } else if (item.podcastId && item.podcastContentType === podcastContentType.torahAnytime) {\r\n this.rootStore.routerStore.goTo(\"master.application.home.torah-anytime\", { id: item.podcastId });\r\n } else {\r\n if (item.stationId) {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessStation({\r\n isPremium: item.isPremium,\r\n isLegacySubscriptionValid: item.validLegacySubscription,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n await this.changeDeviceStationStatus(item);\r\n }\r\n } else if (item.podcastId) {\r\n const contentAccessResult = this.rootStore.contentAccessValidator.canAccessPodcast({\r\n isPremium: item.isPremium,\r\n isLegacySubscriptionValid: item.validLegacySubscription,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n if (contentAccessResult.canAccess) {\r\n await this.changeDevicePodcastStatus(item);\r\n }\r\n }\r\n }\r\n };\r\n\r\n async changeDeviceStationStatus(item) {\r\n if (!item.isUpdating) {\r\n try {\r\n item.isUpdating = true;\r\n this.rootStore.mainLoaderStore.suspend();\r\n const newValue = !item.isTurnedOn;\r\n const options = new UpdateStationStatusOptions(\r\n item.stationId,\r\n item.title,\r\n item.isPremium,\r\n item.isVisibleInApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updateStationStatus(options, newValue);\r\n runInAction(() => {\r\n item.isTurnedOn = newValue;\r\n this.updateFeaturedListStationStatus(item.stationId, newValue);\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Please contact the support team.\",\r\n err\r\n );\r\n } finally {\r\n delete item.isUpdating;\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n }\r\n\r\n async changeDevicePodcastStatus(item) {\r\n if (!item.isUpdating) {\r\n try {\r\n item.isUpdating = true;\r\n this.rootStore.mainLoaderStore.suspend();\r\n const newValue = !item.isTurnedOn;\r\n const options = new UpdatePodcastStatusOptions(\r\n item.podcastId,\r\n item.title,\r\n item.isPremium,\r\n item.isVisibleInApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updatePodcastStatus(options, newValue);\r\n runInAction(() => {\r\n item.isTurnedOn = newValue;\r\n this.updateFeaturedListPodcastStatus(item.podcastId, newValue);\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Please contact the support team.\",\r\n err\r\n );\r\n } finally {\r\n delete item.isUpdating;\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n changeDeviceSelectedItemsStatus(selectedItems, value) {\r\n let items = intersectionWith(this.gridStore.data, selectedItems, (item, selectedItem) => {\r\n return item.stationId === selectedItem.stationId && item.podcastId === selectedItem.podcastId;\r\n });\r\n items.forEach((item) => {\r\n item.isTurnedOn = value;\r\n });\r\n let featuredItems = intersectionWith(\r\n this.homeFeaturedContentViewStore.items,\r\n selectedItems,\r\n (item, selectedItem) => {\r\n return item.stationId === selectedItem.stationId && item.podcastId === selectedItem.podcastId;\r\n }\r\n );\r\n featuredItems.forEach((item) => {\r\n item.isTurnedOn = value;\r\n });\r\n }\r\n\r\n goToConnectDevice = () => {\r\n this.rootStore.routerStore.goTo(\"master.application.device.create\");\r\n };\r\n\r\n goTo = (item) => {\r\n if (item.stationId) {\r\n this.rootStore.routerStore.goTo(\"master.application.home.station\", {\r\n id: item.stationId,\r\n });\r\n } else if (item.podcastId) {\r\n if (item.podcastType === podcastType.podcast) {\r\n if (item.podcastContentType === podcastContentType.torahAnytime) {\r\n this.rootStore.routerStore.goTo(\"master.application.home.torah-anytime\", { id: item.podcastId });\r\n } else {\r\n this.rootStore.routerStore.goTo(\"master.application.home.podcast\", {\r\n id: item.podcastId,\r\n });\r\n }\r\n } else {\r\n this.rootStore.routerStore.goTo(\"master.application.home.podcast-group\", {\r\n id: item.podcastId,\r\n });\r\n }\r\n }\r\n };\r\n\r\n onInit() {\r\n if (!this.anyDevice && this.rootStore.userStore.isConnectDeviceMessageVisible) {\r\n this.connectDeviceModal.open();\r\n }\r\n return Promise.all([this.homeFeaturedContentViewStore.onInit(), this.queryUtility.initialize()]);\r\n }\r\n\r\n find(params) {\r\n if (this.selectedDevice) {\r\n params.deviceId = this.selectedDevice.id;\r\n }\r\n return this.routeStore.findUserContent(params);\r\n }\r\n\r\n async fetchResources(filter) {\r\n // Display grid (Skeleton loader) only during the first page load, and in other cases, during loading more data on scroll event,\r\n // display only top bar loader (mainLoaderStore)\r\n const isFirstPageLoad = filter.pageNumber === 1;\r\n if (isFirstPageLoad) {\r\n this.gridStore.suspend();\r\n } else {\r\n this.rootStore.mainLoaderStore.suspend();\r\n }\r\n try {\r\n const response = await this.find(filter);\r\n runInAction(() => {\r\n this.gridStore.setData(response);\r\n if (isFirstPageLoad) {\r\n this.gridStore.resume();\r\n } else {\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n });\r\n } catch (err) {\r\n if (isFirstPageLoad) {\r\n this.gridStore.resume();\r\n } else {\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n this.onFetchError(err);\r\n }\r\n }\r\n\r\n onFetchError(error) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred while trying to load content. Please contact the support team.\",\r\n error\r\n );\r\n }\r\n\r\n createCoverImageUrl(item) {\r\n if (item.coverImageId) {\r\n if (item.stationId) {\r\n return this.routeStore.createStationCoverImageUrl(item.coverImageId, 200, 200);\r\n } else if (item.podcastId) {\r\n return this.routeStore.createPodcastCoverImageUrl(item.coverImageId, 200, 200);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n @action.bound\r\n changeContentTypeFilter(value) {\r\n this.queryUtility.filter.set(\"contentType\", value);\r\n if (this.inSearchMode) {\r\n this.homeGenericSearchViewStore.queryUtility.fetch();\r\n } else {\r\n this.queryUtility.fetch();\r\n }\r\n }\r\n\r\n @action.bound\r\n changePremiumDisabledFilter(value) {\r\n if (value === 0) {\r\n this.queryUtility.filter.set(\"isEnabled\", null);\r\n this.queryUtility.filter.set(\"isPremium\", null);\r\n } else if (value === 1) {\r\n this.queryUtility.filter.set(\"isEnabled\", null);\r\n this.queryUtility.filter.set(\"isPremium\", true);\r\n } else if (value === 2) {\r\n this.queryUtility.filter.set(\"isEnabled\", true);\r\n this.queryUtility.filter.set(\"isPremium\", null);\r\n } else if (value === 3) {\r\n this.queryUtility.filter.set(\"isEnabled\", false);\r\n this.queryUtility.filter.set(\"isPremium\", null);\r\n }\r\n this.queryUtility.fetch();\r\n }\r\n\r\n @action.bound\r\n updateFeaturedListStationStatus(stationId, isTurnedOn) {\r\n const item = find(this.homeFeaturedContentViewStore.items, (x) => x.stationId === stationId);\r\n if (item) {\r\n item.isTurnedOn = isTurnedOn;\r\n }\r\n }\r\n\r\n @action.bound\r\n updateFeaturedListPodcastStatus(podcastId, isTurnedOn) {\r\n const item = find(this.homeFeaturedContentViewStore.items, (x) => x.podcastId === podcastId);\r\n if (item) {\r\n item.isTurnedOn = isTurnedOn;\r\n }\r\n }\r\n\r\n onDestroy() {\r\n this.homeGenericSearchViewStore.destroy();\r\n this.homeFeaturedContentViewStore.destroy();\r\n this.homeManageSelectedItemsViewStore.destroy();\r\n }\r\n}\r\n\r\nexport default HomeViewStore;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbBasePreviewViewStore } from \"mrb/core\";\r\nimport { MrbSimpleSelectStore } from \"mrb/components/select\";\r\nimport { MrbLoaderStore } from \"mrb/components/loader\";\r\nimport { nakiRadioSystemTypes } from \"common/constants\";\r\nimport { isNil } from \"lodash\";\r\n\r\nclass BaseHomePreviewViewStore extends MrbBasePreviewViewStore {\r\n @observable.ref statusItem = null;\r\n @observable updatingStatus = false;\r\n\r\n @computed get contentAccessResult() {\r\n return this.evaluateContentAccess(this.item);\r\n }\r\n\r\n @computed get isTurnedOn() {\r\n if (!isNil(this.statusItem)) {\r\n return this.statusItem.isTurnedOn;\r\n } else if (!isNil(this.item)) {\r\n const selectedDevice = this.rootStore.userDeviceStore.selectedDevice;\r\n if (selectedDevice && selectedDevice.device && selectedDevice.device.systemType) {\r\n switch (selectedDevice.device.systemType.abrv) {\r\n case nakiRadioSystemTypes.venice:\r\n return this.item.isTurnedOnByDefault;\r\n case nakiRadioSystemTypes.mobile:\r\n return this.item.isTurnedOnByDefaultInApp;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n constructor(rootStore, params) {\r\n super(rootStore, params);\r\n makeObservable(this);\r\n\r\n this.statusToggleLoader = new MrbLoaderStore();\r\n\r\n this.deviceSelectStore = new MrbSimpleSelectStore(\r\n {\r\n textKey: \"deviceName\",\r\n valueKey: \"id\",\r\n actions: {\r\n onChange: (option) => {\r\n this.rootStore.userDeviceStore.setSelectedDevice(option.item);\r\n },\r\n },\r\n },\r\n this.rootStore.userDeviceStore.devices\r\n );\r\n this.deviceSelectStore.setSelectedItem(this.rootStore.userDeviceStore.selectedDevice);\r\n\r\n this.reaction(\r\n () => this.rootStore.userDeviceStore.selectedDevice,\r\n (device) => {\r\n this.getStatusItemResource(device.id, this.id);\r\n }\r\n );\r\n }\r\n\r\n async getStatusItemResource(deviceId, stationId) {\r\n try {\r\n this.statusToggleLoader.suspend();\r\n this.rootStore.mainLoaderStore.suspend();\r\n const statusItem = await this.getStatusItem(deviceId, stationId);\r\n this.setStatusItem(statusItem);\r\n } catch (err) {\r\n } finally {\r\n this.statusToggleLoader.resume();\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n\r\n getStatusItem(deviceId, resourceId) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n @action.bound\r\n setStatusItem(statusItem) {\r\n this.statusItem = statusItem;\r\n }\r\n\r\n @action.bound\r\n setUpdatingStatus(value) {\r\n this.updatingStatus = value;\r\n }\r\n\r\n goBack = () => {\r\n this.rootStore.routerStore.goBack();\r\n };\r\n\r\n evaluateContentAccess(item) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n}\r\n\r\nexport default BaseHomePreviewViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { StationFileStreamService, UserContentService } from \"common/services\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\n\r\nclass HomeStationRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.stationFileStreamService = this.rootStore.createApplicationService(StationFileStreamService);\r\n this.userContentService = this.rootStore.createApplicationService(UserContentService);\r\n }\r\n\r\n async getStationWthDeviceSettings(stationId, deviceId) {\r\n const response = await this.userContentService.getStationWthDeviceSettings(stationId, deviceId, {\r\n embed: \"location,language\",\r\n });\r\n return response.data;\r\n }\r\n\r\n async getStation(stationId) {\r\n const response = await this.userContentService.getStation(stationId, {\r\n embed: \"location,language\",\r\n });\r\n return response.data;\r\n }\r\n\r\n createStationCoverImageUrl(coverImageId, width = null, height = null) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.stationFileStreamService.routeService.get(coverImageId),\r\n {\r\n width: width,\r\n height: height,\r\n }\r\n );\r\n }\r\n\r\n async getUserDeviceStation(deviceId, stationId) {\r\n const response = await this.userContentService.getUserDeviceStation(deviceId, stationId);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default HomeStationRouteStore;\r\n","import { action, computed, makeObservable } from \"mobx\";\r\nimport { BaseHomePreviewViewStore } from \"application/home/stores\";\r\nimport { UpdateStationStatusOptions } from \"application/common/models\";\r\nimport { isNil } from \"lodash\";\r\n\r\nclass HomeStationViewStore extends BaseHomePreviewViewStore {\r\n @computed get coverImageUrl() {\r\n if (this.item && this.item.coverImageId) {\r\n return this.routeStore.createStationCoverImageUrl(this.item.coverImageId, 200, 200);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const id = rootStore.routerStore.routerState.params.id;\r\n super(rootStore, {\r\n id: id,\r\n navigateBack: \"master.application.home.list\",\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n async get(id) {\r\n if (this.rootStore.userDeviceStore.selectedDevice) {\r\n return this.routeStore.getStationWthDeviceSettings(id, this.rootStore.userDeviceStore.selectedDevice.id);\r\n } else {\r\n return this.routeStore.getStation(id);\r\n }\r\n }\r\n\r\n setItem(item) {\r\n super.setItem(item);\r\n this.setStatusItem(item.userDeviceStation);\r\n }\r\n\r\n @action.bound\r\n async updateTurnedOnStatus(isTurnedOn) {\r\n try {\r\n this.setUpdatingStatus(true);\r\n const options = new UpdateStationStatusOptions(\r\n this.item.id,\r\n this.item.title,\r\n this.item.isPremium,\r\n this.item.isVisibleInApp === false,\r\n this.item.isVisibleInEmbeddedApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updateStationStatus(options, isTurnedOn);\r\n this.setStatusItem({ isTurnedOn: isTurnedOn });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Please contact the support team.\", err);\r\n } finally {\r\n this.setUpdatingStatus(false);\r\n }\r\n }\r\n\r\n getStatusItem(deviceId, resourceId) {\r\n return this.routeStore.getUserDeviceStation(deviceId, resourceId);\r\n }\r\n\r\n evaluateContentAccess(item) {\r\n if (isNil(item)) {\r\n return false;\r\n }\r\n return this.rootStore.contentAccessValidator.canAccessStation({\r\n isPremium: item.isPremium,\r\n isLegacySubscriptionValid: item.validLegacySubscription,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n }\r\n}\r\n\r\nexport default HomeStationViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PodcastFileStreamService, UserContentService } from \"common/services\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\n\r\nclass BaseHomePodcastRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.podcastFileStreamService = this.rootStore.createApplicationService(PodcastFileStreamService);\r\n this.userContentService = this.rootStore.createApplicationService(UserContentService);\r\n }\r\n\r\n createPodcastCoverImageUrl(coverImageId, width = null, height = null) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.podcastFileStreamService.routeService.get(coverImageId),\r\n {\r\n width: width,\r\n height: height,\r\n }\r\n );\r\n }\r\n\r\n async getUserDevicePodcast(deviceId, podcastId) {\r\n const response = await this.userContentService.getUserDevicePodcast(deviceId, podcastId);\r\n return response.data;\r\n }\r\n\r\n async getPodcastGroupUserDevicePodcast(deviceId, podcastId) {\r\n const response = await this.userContentService.getPodcastGroupUserDevicePodcast(deviceId, podcastId);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default BaseHomePodcastRouteStore;\r\n","import { BaseHomePodcastRouteStore } from \"application/home/stores\";\r\n\r\nclass HomePodcastRouteStore extends BaseHomePodcastRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n }\r\n\r\n async getPodcastWthDeviceSettings(podcastId, deviceId) {\r\n const response = await this.userContentService.getPodcastWthDeviceSettings(podcastId, deviceId, {\r\n embed: \"location,language\",\r\n });\r\n return response.data;\r\n }\r\n\r\n async getPodcast(podcastId) {\r\n const response = await this.userContentService.getPodcast(podcastId, {\r\n embed: \"location,language\",\r\n });\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default HomePodcastRouteStore;\r\n","import { BaseHomePodcastRouteStore } from \"application/home/stores\";\r\n\r\nclass HomePodcastGroupRouteStore extends BaseHomePodcastRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n }\r\n\r\n async getPodcastGroupWthDeviceSettings(podcastId, deviceId) {\r\n const response = await this.userContentService.getPodcastGroupWthDeviceSettings(podcastId, deviceId, {\r\n embed: \"subPodcasts.location,subPodcasts.language\",\r\n });\r\n return response.data;\r\n }\r\n\r\n async getPodcastGroup(podcastId) {\r\n const response = await this.userContentService.getPodcastGroup(podcastId, {\r\n embed: \"subPodcasts.location,subPodcasts.language\",\r\n });\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default HomePodcastGroupRouteStore;\r\n","import { action, computed, makeObservable } from \"mobx\";\r\nimport { BaseHomePreviewViewStore } from \"application/home/stores\";\r\nimport { UpdatePodcastStatusOptions } from \"application/common/models\";\r\nimport { isNil } from \"lodash\";\r\n\r\nclass BaseHomePodcastViewStore extends BaseHomePreviewViewStore {\r\n @computed get coverImageUrl() {\r\n if (this.item && this.item.coverImageId) {\r\n return this.routeStore.createPodcastCoverImageUrl(this.item.coverImageId, 200, 200);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const id = rootStore.routerStore.routerState.params.id;\r\n super(rootStore, {\r\n id: id,\r\n navigateBack: \"master.application.home.list\",\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n async get(id) {\r\n return this.routeStore.getPodcast(id, this.rootStore.userDeviceStore.selectedDevice.id);\r\n }\r\n\r\n setItem(item) {\r\n super.setItem(item);\r\n this.statusItem = item.userDevicePodcast;\r\n }\r\n\r\n @action.bound\r\n async updateTurnedOnStatus(isTurnedOn) {\r\n try {\r\n this.setUpdatingStatus(true);\r\n const options = new UpdatePodcastStatusOptions(\r\n this.item.id,\r\n this.item.title,\r\n this.item.isPremium,\r\n this.item.isVisibleInApp === false,\r\n this.item.isVisibleInEmbeddedApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updatePodcastStatus(options, isTurnedOn);\r\n this.setStatusItem({ isTurnedOn: isTurnedOn });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Please contact the support team.\", err);\r\n } finally {\r\n this.setUpdatingStatus(false);\r\n }\r\n }\r\n\r\n getStatusItem(deviceId, resourceId) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n setStatusItem(statusItem) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n evaluateContentAccess(item) {\r\n if (isNil(item)) {\r\n return false;\r\n }\r\n return this.rootStore.contentAccessValidator.canAccessPodcast({\r\n isPremium: item.isPremium,\r\n isLegacySubscriptionValid: item.validLegacySubscription,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n }\r\n}\r\n\r\nexport default BaseHomePodcastViewStore;\r\n","import { BaseHomePodcastViewStore } from \"application/home/stores\";\r\n\r\nclass HomePodcastViewStore extends BaseHomePodcastViewStore {\r\n async get(id) {\r\n if (this.rootStore.userDeviceStore.selectedDevice) {\r\n return this.routeStore.getPodcastWthDeviceSettings(id, this.rootStore.userDeviceStore.selectedDevice.id);\r\n }\r\n return this.routeStore.getPodcast(id);\r\n }\r\n\r\n getStatusItem(deviceId, resourceId) {\r\n return this.routeStore.getUserDevicePodcast(deviceId, resourceId);\r\n }\r\n\r\n setStatusItem(statusItem) {\r\n this.statusItem = statusItem;\r\n }\r\n}\r\n\r\nexport default HomePodcastViewStore;\r\n","import { action, override, runInAction } from \"mobx\";\r\nimport { BaseHomePodcastViewStore } from \"application/home/stores\";\r\nimport { UpdatePodcastStatusOptions } from \"application/common/models\";\r\nimport { forEach, find, findIndex } from \"lodash\";\r\n\r\nclass HomePodcastGroupViewStore extends BaseHomePodcastViewStore {\r\n async get(id) {\r\n if (this.rootStore.userDeviceStore.selectedDevice) {\r\n return this.routeStore.getPodcastGroupWthDeviceSettings(\r\n id,\r\n this.rootStore.userDeviceStore.selectedDevice.id\r\n );\r\n }\r\n return this.routeStore.getPodcastGroup(id);\r\n }\r\n\r\n @action.bound\r\n async updateSubPodcastTurnedOnStatus(subPodcast, isTurnedOn) {\r\n try {\r\n this.statusToggleLoader.suspend();\r\n const options = new UpdatePodcastStatusOptions(\r\n subPodcast.id,\r\n subPodcast.title,\r\n subPodcast.isPremium,\r\n subPodcast.isVisibleInApp === false,\r\n subPodcast.isVisibleInEmbeddedApp === false\r\n );\r\n await this.rootStore.userContentManagerStore.updatePodcastStatus(options, isTurnedOn);\r\n runInAction(() => {\r\n const subPodcastIndex = findIndex(this.item.subPodcasts, (item) => item.id === subPodcast.id);\r\n this.item.subPodcasts[subPodcastIndex].userDevicePodcast = { isTurnedOn: isTurnedOn };\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Please contact the support team.\", err);\r\n } finally {\r\n this.statusToggleLoader.resume();\r\n }\r\n }\r\n\r\n getStatusItem(deviceId, resourceId) {\r\n return this.routeStore.getPodcastGroupUserDevicePodcast(deviceId, resourceId);\r\n }\r\n\r\n @override\r\n setStatusItem(statusItem) {\r\n this.statusItem = statusItem.podcastGroup;\r\n forEach(this.item.subPodcasts, (subPodcast) => {\r\n if (statusItem.subPodcasts && statusItem.subPodcasts.length > 0) {\r\n subPodcast.userDevicePodcast = find(statusItem.subPodcasts, (item) => item.podcastId === subPodcast.id);\r\n } else {\r\n subPodcast.userDevicePodcast = null;\r\n }\r\n });\r\n }\r\n}\r\n\r\nexport default HomePodcastGroupViewStore;\r\n","import React from \"react\";\r\nimport { computed, observable, makeObservable, action, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { nakiRadioSystemTypes } from \"common/constants\";\r\nimport { find, isNil } from \"lodash\";\r\n\r\nclass HomeSubPodcastViewStore extends MrbBaseViewStore {\r\n @observable isCollapsed = false;\r\n @observable isUpdating = false;\r\n\r\n panelRef = React.createRef();\r\n subPodcastId = null;\r\n\r\n @computed get coverImageUrl() {\r\n if (this.subPodcast && this.subPodcast.coverImageId) {\r\n return this.homePodcastViewStore.routeStore.createPodcastCoverImageUrl(\r\n this.subPodcast.coverImageId,\r\n 50,\r\n 50\r\n );\r\n }\r\n\r\n return null;\r\n }\r\n\r\n @computed get isDisabled() {\r\n return this.homePodcastViewStore.updatingStatus || this.isUpdating;\r\n }\r\n\r\n @computed get subPodcast() {\r\n if (this.homePodcastViewStore.item && this.homePodcastViewStore.item.subPodcasts) {\r\n return find(\r\n this.homePodcastViewStore.item.subPodcasts,\r\n (subPodcast) => subPodcast.id === this.subPodcastId\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n @computed get contentAccessResult() {\r\n return this.evaluateContentAccess(this.subPodcast);\r\n }\r\n\r\n @computed get subPodcastStatusItem() {\r\n if (this.subPodcast) {\r\n return this.subPodcast.userDevicePodcast;\r\n }\r\n return null;\r\n }\r\n\r\n @computed get isTurnedOn() {\r\n if (!isNil(this.subPodcastStatusItem)) {\r\n return this.subPodcastStatusItem.isTurnedOn;\r\n } else if (this.subPodcast) {\r\n const selectedDevice = this.rootStore.userDeviceStore.selectedDevice;\r\n if (selectedDevice && selectedDevice.device && selectedDevice.device.systemType) {\r\n switch (selectedDevice.device.systemType.abrv) {\r\n case nakiRadioSystemTypes.venice:\r\n return this.subPodcast.isTurnedOnByDefault;\r\n case nakiRadioSystemTypes.mobile:\r\n return this.subPodcast.isTurnedOnByDefaultInApp;\r\n case nakiRadioSystemTypes.mobile_embedded:\r\n return this.subPodcast.isTurnedOnByDefaultInEmbeddedApp;\r\n default:\r\n break;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n constructor(rootStore, { subPodcastId, homePodcastViewStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.subPodcastId = subPodcastId;\r\n this.homePodcastViewStore = homePodcastViewStore;\r\n\r\n this.reaction(\r\n () => this.isCollapsed,\r\n (isCollapsed) => {\r\n if (isCollapsed && this.panelRef) {\r\n // We need to execute scroll function asynchronously in order to take effect.\r\n setTimeout(() => {\r\n this.panelRef.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"center\",\r\n });\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n initialize() {\r\n const subPodcastId = this.rootStore.routerStore.routerState.queryParams.subPodcastId;\r\n if (subPodcastId && this.subPodcast.id === subPodcastId) {\r\n runInAction(() => {\r\n this.isCollapsed = true;\r\n });\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n @action.bound\r\n async toggleSubPodcastStatus(isTurnedOn) {\r\n this.isCollapsed = !this.isCollapsed;\r\n\r\n this.setIsUpdating(true);\r\n await this.homePodcastViewStore.updateSubPodcastTurnedOnStatus(this.subPodcast, isTurnedOn);\r\n this.setIsUpdating(false);\r\n }\r\n\r\n @action.bound\r\n setIsUpdating(isUpdating) {\r\n this.isUpdating = isUpdating;\r\n }\r\n\r\n @action.bound\r\n toggleCollapse() {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n setPanelRef = (ref) => {\r\n this.panelRef = ref;\r\n };\r\n\r\n evaluateContentAccess(item) {\r\n if (isNil(item)) {\r\n return false;\r\n }\r\n return this.rootStore.contentAccessValidator.canAccessPodcast({\r\n isPremium: item.isPremium,\r\n legacySubscriptionExpirationDate: item.legacySubscriptionExpirationDate,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n }\r\n}\r\n\r\nexport default HomeSubPodcastViewStore;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\nimport { observable, makeObservable, action, computed } from \"mobx\";\r\nimport { UpdatePodcastStatusOptions, UpdateStationStatusOptions } from \"application/common/models\";\r\nimport { some, findIndex, pullAt, forEach, isNil } from \"lodash\";\r\nimport { podcastType } from \"common/constants\";\r\n\r\nclass HomeManageSelectedItemsViewStore extends MrbBaseViewStore {\r\n @observable isBulk = false;\r\n @observable isUpdating = false;\r\n @observable selectedItems = [];\r\n\r\n @computed get isSelectedItemsAny() {\r\n return this.selectedItems.length > 0;\r\n }\r\n\r\n constructor(rootStore, homeViewStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.homeViewStore = homeViewStore;\r\n this.routeStore = homeViewStore.routeStore;\r\n this.selectedItems = [];\r\n }\r\n\r\n @action.bound\r\n changeIsBulk() {\r\n if (this.isUpdating) {\r\n return;\r\n }\r\n this.isBulk = !this.isBulk;\r\n if (!this.isBulk) {\r\n this.selectedItems = [];\r\n }\r\n }\r\n\r\n @action.bound\r\n selectItem(item) {\r\n if (this.isUpdating) {\r\n return;\r\n }\r\n let selectedItem = {\r\n stationId: item.stationId,\r\n podcastId: item.podcastId,\r\n title: item.title,\r\n isPremium: item.isPremium,\r\n isVisibleInApp: item.isVisibleInApp,\r\n isVisibleInEmbeddedApp: item.isVisibleInEmbeddedApp,\r\n };\r\n if (!some(this.selectedItems, selectedItem)) {\r\n let contentAccessResult = null;\r\n if (!isNil(item.stationId)) {\r\n contentAccessResult = this.rootStore.contentAccessValidator.canAccessStation({\r\n isPremium: item.isPremium,\r\n isLegacySubscriptionValid: item.validLegacySubscription,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n } else {\r\n contentAccessResult = this.rootStore.contentAccessValidator.canAccessPodcast({\r\n isPremium: item.isPremium,\r\n isLegacySubscriptionValid: item.validLegacySubscription,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n }\r\n if (contentAccessResult.canAccess) {\r\n if (item.podcastType !== podcastType.podcastGroup) {\r\n this.selectedItems.push(selectedItem);\r\n }\r\n }\r\n } else {\r\n let indexOfElement = findIndex(\r\n this.selectedItems,\r\n function (o) {\r\n return o.stationId === item.stationId && o.podcastId === item.podcastId;\r\n },\r\n 0\r\n );\r\n pullAt(this.selectedItems, indexOfElement);\r\n }\r\n }\r\n\r\n @action.bound\r\n async changeTurnOn(value) {\r\n const stationOptions = [];\r\n const podcastOptions = [];\r\n forEach(this.selectedItems, function (item) {\r\n if (item.stationId) {\r\n stationOptions.push(\r\n new UpdateStationStatusOptions(\r\n item.stationId,\r\n item.title,\r\n item.isPremium,\r\n item.isVisibleInApp === false,\r\n item.isVisibleInEmbeddedApp === false\r\n )\r\n );\r\n }\r\n if (item.podcastId) {\r\n podcastOptions.push(\r\n new UpdatePodcastStatusOptions(\r\n item.podcastId,\r\n item.title,\r\n item.isPremium,\r\n item.isVisibleInApp === false,\r\n item.isVisibleInEmbeddedApp === false\r\n )\r\n );\r\n }\r\n });\r\n if (!this.isUpdating) {\r\n if (this.selectedItems.length > 0) {\r\n this.setIsUpdating(true);\r\n try {\r\n this.rootStore.mainLoaderStore.suspend();\r\n await this.rootStore.userContentManagerStore.updateStationsAndPodcastsStatus(\r\n stationOptions,\r\n podcastOptions,\r\n value\r\n );\r\n this.homeViewStore.changeDeviceSelectedItemsStatus(this.selectedItems, value);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Please contact the support team.\",\r\n err\r\n );\r\n } finally {\r\n this.setIsUpdating(false);\r\n this.changeIsBulk();\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n }\r\n }\r\n\r\n @action\r\n setIsUpdating(isUpdating) {\r\n this.isUpdating = isUpdating;\r\n }\r\n}\r\n\r\nexport default HomeManageSelectedItemsViewStore;\r\n","import React, { useState } from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\nimport { isFunction } from \"lodash\";\r\n\r\nfunction MrbFieldLabel({ field, infoRenderer, infoLabelRenderer, t = (i) => i }) {\r\n const [isInfoOpen, setIsInfoOpen] = useState(false);\r\n\r\n const requiredMark =\r\n field.rules && field.rules.indexOf(\"required\") !== -1 ? (\r\n *\r\n ) : null;\r\n\r\n const info = field.extra && field.extra.info;\r\n const infoLabel = field.extra && field.extra.infoLabel;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nMrbFieldLabel.propTypes = {\r\n field: PropTypes.object.isRequired,\r\n infoRenderer: PropTypes.func,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbFieldLabel);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\n\r\nfunction MrbFieldValidation({ field }) {\r\n return (\r\n

    \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n {field.errorMessage}\r\n

    \r\n );\r\n}\r\n\r\nMrbFieldValidation.propTypes = {\r\n field: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default MrbFieldValidation;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldLabel, MrbFieldValidation } from \"./\";\r\nimport { isSome, renderIf, mergeOrOverrideCss } from \"../../../../common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbFieldLayout({\r\n field,\r\n t = (i) => i,\r\n labelRender,\r\n validationRender,\r\n infoRenderer,\r\n infoLabelRenderer,\r\n showLabel = true,\r\n children,\r\n classNameOverride,\r\n classNameExtend,\r\n}) {\r\n return (\r\n
    \r\n {showLabel && (\r\n \r\n {labelRender ? (\r\n labelRender(field, t)\r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n {renderIf(isSome(field.errorMessage))(\r\n \r\n {validationRender ? validationRender(field) : }\r\n \r\n )}\r\n {children}\r\n
    \r\n );\r\n}\r\n\r\nMrbFieldLayout.propTypes = {\r\n field: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n labelRender: PropTypes.func,\r\n validationRender: PropTypes.func,\r\n infoRenderer: PropTypes.func,\r\n infoLabelRenderer: PropTypes.func,\r\n showLabel: PropTypes.bool,\r\n children: PropTypes.any,\r\n classNameOverride: PropTypes.string,\r\n};\r\n\r\nexport default observer(MrbFieldLayout);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\n\r\nfunction ContentPolicyModalTemplate({ modalParams, t }) {\r\n const description =\r\n \"While all items available on the NakiRadio Portal have been determined by our guidance to have a place within appropriate public discourse, some shows may not be intended for all ages or conform to all ideological inclinations. In its default state, only items whose intended audience includes children are available on the NakiRadio. We encourage the user to use discretion when installing additional items on the NakiRadio, along with visiting their respective websites for details on content, programming, and intended audience. For more information on a given show, please click the show’s title in the Portal.\";\r\n return (\r\n \r\n
    \r\n
    \r\n

    Content Policy

    \r\n
    \r\n
    \r\n

    {description}

    \r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nContentPolicyModalTemplate.propTypes = {\r\n modalParams: PropTypes.object,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default ContentPolicyModalTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { ContentPolicyModal } from \"application/common/components/content-policy\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction ContentPolicyWidgetTemplate({ contentPolicyWidgetViewStore, t }) {\r\n const { contentPolicyModal, displayContentPolicy, isContentPolicyVisible } = contentPolicyWidgetViewStore;\r\n if (!isContentPolicyVisible) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n

    \r\n \r\n Content Policy\r\n

    \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n );\r\n}\r\n\r\nContentPolicyWidgetTemplate.propTypes = {\r\n contentPolicyWidgetViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(ContentPolicyWidgetTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { capitalize, isNil, map, reduce } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction ContentUnavailableModalTemplate({ store, t }) {\r\n const { contentUnavailableModal } = store;\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n

    Content Availability Information

    \r\n
    \r\n
    \r\n

    \r\n {generateContentName(\r\n contentUnavailableModal.data.stations,\r\n contentUnavailableModal.data.podcasts,\r\n contentUnavailableModal.data.nakiNigunArtists,\r\n contentUnavailableModal.data.nakiNigunAlbums\r\n )}{\" \"}\r\n {pluralize(\r\n contentUnavailableModal.data.stations,\r\n contentUnavailableModal.data.podcasts,\r\n contentUnavailableModal.data.nakiNigunArtists,\r\n contentUnavailableModal.data.nakiNigunAlbums,\r\n \"is\",\r\n \"are\"\r\n )}{\" \"}\r\n not yet available in Naki Mobile application, and it won't sync to{\" \"}\r\n {generateDevicesLabel(contentUnavailableModal.data.devices)}{\" \"}\r\n {contentUnavailableModal.data.devices\r\n ? contentUnavailableModal.data.devices.length > 0\r\n ? \"devices\"\r\n : \"device\"\r\n : null}\r\n .\r\n

    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nContentUnavailableModalTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction generateContentName(stations = [], podcasts = [], nakiNigunArtists = [], nakiNigunAlbums = []) {\r\n let result = [];\r\n if (\r\n stations.length === 0 &&\r\n podcasts.length === 0 &&\r\n nakiNigunArtists.length === 0 &&\r\n nakiNigunAlbums.length === 0\r\n ) {\r\n return null;\r\n }\r\n\r\n if (stations.length > 0 && podcasts.length > 0) {\r\n const stationLabels = generateContentNameLabel(stations, \"station\");\r\n const podcastLabels = generateContentNameLabel(podcasts, \"podcast\");\r\n result = [...stationLabels, \" and \", ...podcastLabels];\r\n } else if (stations.length > 0) {\r\n result = generateContentNameLabel(stations, \"station\");\r\n } else if (podcasts.length > 0) {\r\n result = generateContentNameLabel(podcasts, \"podcast\");\r\n } else if (nakiNigunArtists.length > 0) {\r\n result = generateContentNameLabel(nakiNigunArtists, \"artist\");\r\n } else if (nakiNigunAlbums.length > 0) {\r\n result = generateContentNameLabel(nakiNigunAlbums, \"album\");\r\n }\r\n result[0] = capitalize(result[0]);\r\n\r\n return result;\r\n}\r\n\r\nfunction pluralize(\r\n stations = [],\r\n podcasts = [],\r\n nakiNigunArtists = [],\r\n nakiNigunAlbums = [],\r\n singularWord,\r\n pluralWord\r\n) {\r\n const length = stations.length + podcasts.length + nakiNigunArtists.length + nakiNigunAlbums.length;\r\n if (length > 1) {\r\n return pluralWord;\r\n }\r\n return singularWord;\r\n}\r\n\r\nfunction generateContentNameLabel(items, contentName) {\r\n const values = reduce(\r\n items,\r\n function (result, value, key) {\r\n if (key > 0) {\r\n result.push(\", \");\r\n }\r\n result.push(\"{value}\");\r\n return result;\r\n },\r\n []\r\n );\r\n const label = items.length > 1 ? `${contentName}s ` : `${contentName} `;\r\n\r\n return [label, values];\r\n}\r\n\r\nfunction generateDevicesLabel(devices) {\r\n if (isNil(devices)) {\r\n return null;\r\n }\r\n if (devices.length === 1) {\r\n return {devices[0].deviceName};\r\n }\r\n const deviceNames = map(devices, (userDevice) => \"{userDevice.deviceName}\");\r\n const lastKey = devices.length - 1;\r\n const value = reduce(\r\n deviceNames,\r\n function (result, value, key) {\r\n if (key === lastKey) {\r\n result.push(\" and \");\r\n } else if (key > 0) {\r\n result.push(\", \");\r\n }\r\n result.push(value);\r\n return result;\r\n },\r\n []\r\n );\r\n\r\n return value;\r\n}\r\n\r\nexport default observer(ContentUnavailableModalTemplate);\r\n","import React from \"react\";\r\n\r\nfunction NakiNigunAlbumUnavailableInAppTemplate() {\r\n return (\r\n

    This album is not available in mobile application

    \r\n );\r\n}\r\n\r\nexport default NakiNigunAlbumUnavailableInAppTemplate;\r\n","import React from \"react\";\r\n\r\nfunction NakiNigunArtistUnavailableInAppTemplate() {\r\n return (\r\n

    This artist is not available in mobile application

    \r\n );\r\n}\r\n\r\nexport default NakiNigunArtistUnavailableInAppTemplate;\r\n","import React from \"react\";\r\n\r\nfunction PodcastUnavailableInAppTemplate() {\r\n return (\r\n

    This podcast is not available in mobile application

    \r\n );\r\n}\r\n\r\nexport default PodcastUnavailableInAppTemplate;\r\n","import React from \"react\";\r\n\r\nfunction StationUnavailableInAppTemplate() {\r\n return (\r\n

    This station is not available in mobile application

    \r\n );\r\n}\r\n\r\nexport default StationUnavailableInAppTemplate;\r\n","import React from \"react\";\r\nimport { ContentPolicyModalTemplate } from \"themes/application/common/components\";\r\n\r\nfunction ContentPolicyModal(props) {\r\n return ;\r\n}\r\n\r\nexport default ContentPolicyModal;\r\n","import { computed, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\n\r\nclass ContentPolicyWidgetViewStore extends MrbBaseViewStore {\r\n @computed get isContentPolicyVisible() {\r\n return this.rootStore.userStore.isContentPolicyVisible;\r\n }\r\n\r\n constructor(rootStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n\r\n this.disableContentPolicy = this.disableContentPolicy.bind(this);\r\n this.displayContentPolicy = this.displayContentPolicy.bind(this);\r\n\r\n this.contentPolicyModal = new MrbModalParams(null, {\r\n disableContentPolicy: this.disableContentPolicy,\r\n });\r\n }\r\n\r\n displayContentPolicy() {\r\n this.contentPolicyModal.open();\r\n this.rootStore.menuStore.closeMenu();\r\n }\r\n\r\n async disableContentPolicy() {\r\n try {\r\n this.contentPolicyModal.close();\r\n this.rootStore.mainLoaderStore.suspend();\r\n await this.rootStore.userStore.disableContentPolicy();\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to update user settings.\",\r\n err\r\n );\r\n } finally {\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n}\r\n\r\nexport default ContentPolicyWidgetViewStore;\r\n","import React from \"react\";\r\nimport { ContentPolicyWidgetTemplate } from \"themes/application/common/components\";\r\nimport { ContentPolicyWidgetViewStore } from \"application/common/components/content-policy\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ContentPolicyWidgetViewStore(rootStore, componentProps),\r\n \"contentPolicyWidgetViewStore\"\r\n)\r\nclass ContentPolicyWidget extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ContentPolicyWidget;\r\n","import React from \"react\";\r\nimport { ContentUnavailableModalTemplate } from \"themes/application/common/components\";\r\n\r\nfunction ContentUnavailableModal(props) {\r\n return ;\r\n}\r\n\r\nexport default ContentUnavailableModal;\r\n","import React from \"react\";\r\nimport { NakiNigunAlbumUnavailableInAppTemplate } from \"themes/application/common/components\";\r\n\r\nfunction NakiNigunAlbumUnavailableInApp(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunAlbumUnavailableInApp;\r\n","import React from \"react\";\r\nimport { NakiNigunArtistUnavailableInAppTemplate } from \"themes/application/common/components\";\r\n\r\nfunction NakiNigunArtistUnavailableInApp(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunArtistUnavailableInApp;\r\n","import React from \"react\";\r\nimport { PodcastUnavailableInAppTemplate } from \"themes/application/common/components\";\r\n\r\nfunction PodcastUnavailableInApp(props) {\r\n return ;\r\n}\r\n\r\nexport default PodcastUnavailableInApp;\r\n","import React from \"react\";\r\nimport { StationUnavailableInAppTemplate } from \"themes/application/common/components\";\r\n\r\nfunction StationUnavailableInApp(props) {\r\n return ;\r\n}\r\n\r\nexport default StationUnavailableInApp;\r\n","import { action, computed, makeObservable, observable, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { MrbContentLoaderStore } from \"mrb/components/loader\";\r\nimport { MrbFileUploadViewStore } from \"mrb/components/media\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\nimport { head } from \"lodash\";\r\n\r\nclass CoverImageUploadViewStore extends MrbBaseViewStore {\r\n @computed get file() {\r\n return head(this.fileUploadStore.files);\r\n }\r\n\r\n @observable uploadedFileId = null;\r\n\r\n @observable.ref imageUrl = null;\r\n\r\n @observable hasChanged = false;\r\n\r\n constructor(\r\n rootStore,\r\n {\r\n width = 400,\r\n height = 400,\r\n acceptedFiles = \"image/jpeg, image/png, image/gif\",\r\n maxSize = 20000000,\r\n onFileRejected,\r\n errorsMap = {\r\n \"file-invalid-type\": () => {\r\n return \"File type must be .jpg, .png or .gif\";\r\n },\r\n \"file-too-large\": () => {\r\n return \"File is larger than 20MB\";\r\n },\r\n },\r\n } = {}\r\n ) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.fileUploadStore = new MrbFileUploadViewStore(this.rootStore, {\r\n acceptedFiles: acceptedFiles,\r\n maxSize: maxSize,\r\n showValidation: false,\r\n actions: {\r\n onFileRejected: onFileRejected,\r\n },\r\n errorsMap: errorsMap,\r\n });\r\n this.width = width;\r\n this.height = height;\r\n this.loaderStore = new MrbContentLoaderStore({\r\n suspendRenderOnInit: false,\r\n });\r\n\r\n this.reaction(\r\n () => this.file,\r\n (file) => {\r\n if (file) {\r\n this.uploadFile(file);\r\n } else {\r\n this.changeUploadedFileId(null);\r\n }\r\n }\r\n );\r\n\r\n this.reaction(\r\n () => this.uploadedFileId,\r\n (id) => {\r\n if (id) {\r\n this.setImageUrl(this.getMediaVaultFileUrl(id));\r\n } else {\r\n this.setImageUrl(null);\r\n }\r\n }\r\n );\r\n }\r\n\r\n @action.bound\r\n async uploadFile(file) {\r\n try {\r\n this.loaderStore.suspend();\r\n const mediaVaultFile = await this.uploadImageToMediaVault(file);\r\n runInAction(() => {\r\n this.changeUploadedFileId(mediaVaultFile.id);\r\n this.loaderStore.resume();\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred while trying to upload image. Please contact the support team.\",\r\n err\r\n );\r\n this.loaderStore.resume();\r\n }\r\n }\r\n\r\n uploadImageToMediaVault(file) {\r\n throw new Error(\"Method not implemented\");\r\n }\r\n\r\n getMediaVaultFileUrl(id) {\r\n throw new Error(\"Method not implemented\");\r\n }\r\n\r\n @action.bound\r\n changeUploadedFileId(fileId) {\r\n this.setUploadedFileId(fileId);\r\n this.hasChanged = true;\r\n }\r\n\r\n @action.bound\r\n setUploadedFileId(fileId) {\r\n this.uploadedFileId = fileId;\r\n }\r\n\r\n @action.bound\r\n setImageUrl(url) {\r\n if (url) {\r\n this.imageUrl = this.createAuthenticatedImageUrl(url);\r\n } else {\r\n this.imageUrl = null;\r\n }\r\n }\r\n\r\n uploadImage = (event) => {\r\n this.fileUploadStore.raiseBrowse(event);\r\n };\r\n\r\n remove = () => {\r\n this.setImageUrl(null);\r\n this.changeUploadedFileId(null);\r\n this.fileUploadStore.clear();\r\n };\r\n\r\n createAuthenticatedImageUrl = (baseUrl) => {\r\n return createBaasicAuthenticatedMediaVaultUrl(this.rootStore, baseUrl, {\r\n width: this.width,\r\n height: this.height,\r\n });\r\n };\r\n}\r\n\r\nexport default CoverImageUploadViewStore;\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { localStorageProvider } from \"mrb/common/storage\";\r\nimport { isBoolean } from \"lodash\";\r\n\r\nclass UserDeviceSyncStore {\r\n @observable isDeviceSyncEnabled = false;\r\n _cacheKey = null;\r\n\r\n constructor(rootStore) {\r\n makeObservable(this);\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @action.bound\r\n setIsDeviceSyncEnabled(value) {\r\n this.isDeviceSyncEnabled = value;\r\n localStorageProvider.add(this._cacheKey, value);\r\n }\r\n\r\n initialize() {\r\n this._cacheKey = `device-sync-u-${this.rootStore.userStore.user.id}`;\r\n this.syncDeviceSyncStatus();\r\n }\r\n\r\n @action.bound\r\n syncDeviceSyncStatus() {\r\n const isEnabled = localStorageProvider.get(this._cacheKey);\r\n if (isBoolean(isEnabled)) {\r\n this.isDeviceSyncEnabled = isEnabled;\r\n } else {\r\n this.isDeviceSyncEnabled = false;\r\n }\r\n }\r\n}\r\n\r\nexport default UserDeviceSyncStore;\r\n","import { action, computed, observable, makeObservable, reaction, runInAction } from \"mobx\";\r\nimport { DeviceService } from \"common/services\";\r\nimport { UserDeviceSyncStore } from \"common/stores\";\r\nimport { find, isNil, head, map } from \"lodash\";\r\n\r\nclass UserDeviceStore {\r\n @observable.ref devices = [];\r\n @observable.ref deviceLimit = null;\r\n @observable.ref selectedDevice = null;\r\n _deviceService = null;\r\n\r\n @computed get isDeviceSyncEnabled() {\r\n return this.userDeviceSyncStore.isDeviceSyncEnabled;\r\n }\r\n\r\n @computed get isDeviceSlotAvailable() {\r\n if (isNil(this.deviceLimit)) {\r\n return true;\r\n }\r\n return this.devices.length < this.deviceLimit;\r\n }\r\n\r\n @computed get deviceCount() {\r\n if (this.devices) {\r\n return this.devices.length;\r\n }\r\n return 0;\r\n }\r\n\r\n @computed get deviceIds() {\r\n return map(this.devices, (device) => device.id);\r\n }\r\n\r\n get deviceService() {\r\n if (isNil(this._deviceService)) {\r\n this._deviceService = this.rootStore.createApplicationService(DeviceService);\r\n }\r\n return this._deviceService;\r\n }\r\n\r\n constructor(rootStore) {\r\n makeObservable(this);\r\n this.rootStore = rootStore;\r\n this.userDeviceSyncStore = new UserDeviceSyncStore(rootStore);\r\n\r\n reaction(\r\n () => this.devices,\r\n (newDevices) => {\r\n if (isNil(this.selectedDevice)) {\r\n if (newDevices.length > 0) {\r\n this.setSelectedDevice(head(newDevices));\r\n }\r\n } else {\r\n const existingDevice = find(newDevices, (device) => device.id === this.selectedDevice.id);\r\n if (existingDevice) {\r\n this.setSelectedDevice(existingDevice);\r\n } else if (newDevices.length > 0) {\r\n this.setSelectedDevice(head(newDevices));\r\n } else {\r\n this.setSelectedDevice(null);\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n @action.bound\r\n async initialize() {\r\n await this.loadUserDevices();\r\n this.userDeviceSyncStore.initialize();\r\n }\r\n\r\n async loadUserDevices() {\r\n try {\r\n const response = await this.deviceService.getUserDeviceInfo({\r\n embed: \"device,device.systemType\",\r\n orderBy: \"dateCreated\",\r\n orderDirection: \"desc\",\r\n });\r\n runInAction(() => {\r\n this.setDeviceLimit(response.data.deviceLimit);\r\n this.setDevices(response.data.devices);\r\n });\r\n } catch (err) {}\r\n }\r\n\r\n async getUserDevice(id, options = null) {\r\n const response = await this.deviceService.getUserDevice(id, options);\r\n return response.data;\r\n }\r\n\r\n async updateUserDevice(resource) {\r\n const response = await this.deviceService.updateUserDevice(resource);\r\n await this.loadUserDevices();\r\n return response.data;\r\n }\r\n\r\n async deleteUserDevice(resource) {\r\n const response = await this.deviceService.deleteUserDevice(resource);\r\n await this.loadUserDevices();\r\n return response.data;\r\n }\r\n\r\n @action.bound\r\n setDeviceLimit(limit) {\r\n this.deviceLimit = limit;\r\n }\r\n\r\n @action.bound\r\n setDevices(devices) {\r\n this.devices = devices;\r\n }\r\n\r\n @action.bound\r\n setSelectedDevice(device) {\r\n if (!device.isDisabled) {\r\n this.selectedDevice = device;\r\n }\r\n }\r\n\r\n @action.bound\r\n setIsDeviceSyncEnabled(value) {\r\n this.userDeviceSyncStore.setIsDeviceSyncEnabled(value);\r\n }\r\n}\r\n\r\nexport default UserDeviceStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { makeObservable, computed } from \"mobx\";\r\n\r\nclass MainRouteStore extends MrbBaseRouteStore {\r\n @computed get isInitialized() {\r\n return this.rootStore.applicationMainSectionStore.isInitialized;\r\n }\r\n\r\n constructor(rootStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n }\r\n\r\n async onBeforeEnter() {\r\n await this.rootStore.applicationMainSectionStore.initialize();\r\n }\r\n}\r\n\r\nexport default MainRouteStore;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { PaymentService, ProductService } from \"common/services\";\r\nimport { subscriptionStatuses } from \"common/constants\";\r\nimport { isSubscriptionBundle } from \"common/utils\";\r\nimport { isNil, find, findIndex, orderBy, some, filter } from \"lodash\";\r\nimport moment from \"moment\";\r\n\r\nclass PremiumSubscriptionStore {\r\n @observable.ref _premiumInfo = null;\r\n\r\n _activeSubscriptionStatuses = [\r\n subscriptionStatuses.active,\r\n subscriptionStatuses.pastDue,\r\n subscriptionStatuses.trial,\r\n ];\r\n _paymentService = null;\r\n _productService = null;\r\n\r\n get paymentService() {\r\n if (isNil(this._paymentService)) {\r\n this._paymentService = this.rootStore.createApplicationService(PaymentService);\r\n }\r\n return this._paymentService;\r\n }\r\n\r\n get productService() {\r\n if (isNil(this._productService)) {\r\n this._productService = this.rootStore.createApplicationService(ProductService);\r\n }\r\n return this._productService;\r\n }\r\n\r\n @computed get customerPaymentMethod() {\r\n if (this._premiumInfo) {\r\n return this._premiumInfo.customerPaymentMethod;\r\n }\r\n return null;\r\n }\r\n\r\n @computed get subscriptions() {\r\n if (isNil(this._premiumInfo)) {\r\n return [];\r\n }\r\n return this._premiumInfo.subscriptions;\r\n }\r\n\r\n @computed get subscription() {\r\n if (this._premiumInfo) {\r\n return find(\r\n orderBy(this._premiumInfo.subscriptions, (s) => s.startDate, \"desc\"),\r\n (s) =>\r\n findIndex(\r\n this._activeSubscriptionStatuses,\r\n (statusAbrv) => s.subscriptionStatus.abrv === statusAbrv\r\n ) !== -1\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n @computed get isSubscriptionBundleActive() {\r\n return this.subscription && isSubscriptionBundle(this.subscription.product.productCategory);\r\n }\r\n\r\n @computed get pendingSubscription() {\r\n if (this._premiumInfo) {\r\n return find(\r\n this._premiumInfo.subscriptions,\r\n (s) => s.subscriptionStatus.abrv === subscriptionStatuses.pending\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n @computed get isPremiumTrialPeriodUsed() {\r\n if (this._premiumInfo) {\r\n return this._premiumInfo.premiumTrialPeriodUsed;\r\n }\r\n return true;\r\n }\r\n\r\n @computed get invalidPaymentExist() {\r\n return this.invalidPaymentSubscriptions && this.invalidPaymentSubscriptions.length > 0;\r\n }\r\n\r\n @computed get invalidPaymentSubscriptions() {\r\n return filter(this.subscriptions, (subscription) => !isNil(subscription.latestInvalidPaymentTransaction));\r\n }\r\n\r\n @computed get subscriptionExist() {\r\n return this.subscriptions.length > 0;\r\n }\r\n\r\n @computed get premiumTrialSubscriptionExist() {\r\n return some(\r\n this.subscriptions,\r\n (subscription) => subscription.subscriptionStatus.abrv === subscriptionStatuses.trial\r\n );\r\n }\r\n\r\n @computed get premiumTrialSubscriptions() {\r\n return filter(\r\n this.subscriptions,\r\n (subscription) => subscription.subscriptionStatus.abrv === subscriptionStatuses.trial\r\n );\r\n }\r\n\r\n @computed get premiumPastDueSubscriptionExist() {\r\n return some(\r\n this.subscriptions,\r\n (subscription) => subscription.subscriptionStatus.abrv === subscriptionStatuses.pastDue\r\n );\r\n }\r\n\r\n @computed get premiumPastDueSubscriptions() {\r\n return filter(\r\n this.subscriptions,\r\n (subscription) => subscription.subscriptionStatus.abrv === subscriptionStatuses.pastDue\r\n );\r\n }\r\n\r\n @computed get isInternalSubscriptionActive() {\r\n return !isNil(this.subscription) && this.subscription.isInternal;\r\n }\r\n\r\n constructor(rootStore) {\r\n this.rootStore = rootStore;\r\n makeObservable(this);\r\n\r\n this.isLegacySubscriptionActive = this.isLegacySubscriptionActive.bind(this);\r\n }\r\n\r\n async preprocessPayment(planId) {\r\n const response = await this.paymentService.preprocess(planId);\r\n return response.data;\r\n }\r\n\r\n async postprocessPayment(subscriptionId) {\r\n const response = await this.paymentService.postprocess(subscriptionId);\r\n await this.refreshUserPremiumSubscription();\r\n return response.data;\r\n }\r\n\r\n async postprocessPaymentMethodUpdate(paymentMethodId) {\r\n const response = await this.paymentService.postprocessPaymentMethodUpdate({\r\n paymentProviderPaymentMethodId: paymentMethodId,\r\n });\r\n await this.refreshUserPremiumSubscription();\r\n return response.data;\r\n }\r\n\r\n async updateDefaultPaymentMethod(paymentMethodId) {\r\n const response = await this.paymentService.updateDefaultPaymentMethod({\r\n paymentProviderPaymentMethodId: paymentMethodId,\r\n });\r\n await this.refreshUserPremiumSubscription();\r\n return response.data;\r\n }\r\n\r\n async cancelSubscription(subscriptionId) {\r\n const response = await this.paymentService.cancelSubscription(subscriptionId);\r\n await this.refreshUserPremiumSubscription();\r\n return response.data;\r\n }\r\n\r\n async changeSubscriptionPlan(planId) {\r\n const response = await this.paymentService.changeSubscriptionPlan(planId);\r\n await this.refreshUserPremiumSubscription();\r\n return response.data;\r\n }\r\n\r\n async renewSubscription(subscriptionId) {\r\n const response = await this.paymentService.renewSubscription(subscriptionId);\r\n await this.refreshUserPremiumSubscription();\r\n return response.data;\r\n }\r\n\r\n async upgradeTrialSubscription(subscriptionId, paymentMethodId) {\r\n const response = await this.paymentService.upgradeTrialSubscription(subscriptionId, {\r\n paymentProviderPaymentMethodId: paymentMethodId,\r\n });\r\n await this.refreshUserPremiumSubscription();\r\n return response.data;\r\n }\r\n\r\n async activateTrial(planId) {\r\n const response = await this.paymentService.activateTrial(planId);\r\n await this.refreshUserPremiumSubscription();\r\n return response.data;\r\n }\r\n\r\n async endTrialPeriod(subscriptionId) {\r\n const response = await this.paymentService.endTrialPeriod(subscriptionId);\r\n await this.refreshUserPremiumSubscription();\r\n return response.data;\r\n }\r\n\r\n async subscribeUsingExistingPaymentMethod(planId) {\r\n const response = await this.paymentService.subscribeUsingExistingPaymentMethod(planId);\r\n await this.refreshUserPremiumSubscription();\r\n return response.data;\r\n }\r\n\r\n async setupPaymentMethodRequest() {\r\n const response = await this.paymentService.setupPaymentMethodRequest();\r\n return response.data;\r\n }\r\n\r\n async getUserPremiumInfo() {\r\n try {\r\n const response = await this.paymentService.getUserPremiumInfo({\r\n embed: \"subscriptionStatus,trialPeriod\",\r\n });\r\n this.setPremiumInfo(response.data);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Something went wrong while trying to reload premium subscription. Please contact the support team.\"\r\n );\r\n }\r\n }\r\n\r\n refreshUserPremiumSubscription() {\r\n return this.getUserPremiumInfo();\r\n }\r\n\r\n getSubscription(subscriptionId) {\r\n if (this._premiumInfo && this._premiumInfo.subscriptions) {\r\n return find(this._premiumInfo.subscriptions, (subscription) => subscription.id === subscriptionId);\r\n }\r\n return null;\r\n }\r\n\r\n getSubscriptionBySubscriptionPlan(subscriptionPlanId) {\r\n if (this._premiumInfo && this._premiumInfo.subscriptions) {\r\n return find(\r\n this._premiumInfo.subscriptions,\r\n (subscription) => subscription.product.id === subscriptionPlanId\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n @action.bound\r\n setPremiumInfo(premiumInfo) {\r\n this._premiumInfo = premiumInfo;\r\n }\r\n\r\n isLegacySubscriptionActive(legacySubscriptionExpirationDate) {\r\n if (isNil(legacySubscriptionExpirationDate)) {\r\n return false;\r\n }\r\n return moment.utc().isBefore(legacySubscriptionExpirationDate);\r\n }\r\n\r\n isSubscriptionPlanActive(subscriptionPlan) {\r\n let isActive = false;\r\n if (this.subscriptions && this.subscriptions.length > 0) {\r\n const subscription = find(\r\n this.subscriptions,\r\n (subscription) => subscription.product.id === subscriptionPlan.id\r\n );\r\n if (subscription) {\r\n isActive = some(\r\n this._activeSubscriptionStatuses,\r\n (status) => subscription.subscriptionStatus.abrv === status\r\n );\r\n }\r\n }\r\n\r\n return isActive;\r\n }\r\n}\r\n\r\nexport default PremiumSubscriptionStore;\r\n","import { computed, makeObservable } from \"mobx\";\r\nimport { UserContentService, NakiNigunUserContentService, UserTorahAnytimeCollectionService } from \"common/services\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\nimport { nakiRadioSystemTypes } from \"common/constants\";\r\nimport { filter, isNil, map } from \"lodash\";\r\n\r\nclass UserContentManagerStore {\r\n @computed get selectedDeviceIds() {\r\n if (this.userDeviceStore.isDeviceSyncEnabled) {\r\n return map(this.userDeviceStore.devices, (device) => device.id);\r\n }\r\n if (!isNil(this.userDeviceStore.selectedDevice)) {\r\n return [this.userDeviceStore.selectedDevice.id];\r\n }\r\n return [];\r\n }\r\n\r\n @computed get mobileDevices() {\r\n return filter(\r\n this.userDeviceStore.devices,\r\n (userDevice) => userDevice.device.systemType.abrv === nakiRadioSystemTypes.mobile\r\n );\r\n }\r\n\r\n @computed get isContentUnavailableInAppPolicyVisible() {\r\n return this.rootStore.userStore.isContentUnavailableInAppPolicyVisible;\r\n }\r\n\r\n _userContentService = null;\r\n _nakiNigunUserContentService = null;\r\n _userTorahAnytimeCollectionService = null;\r\n\r\n get userContentService() {\r\n if (isNil(this._userContentService)) {\r\n this._userContentService = this.rootStore.createApplicationService(UserContentService);\r\n }\r\n return this._userContentService;\r\n }\r\n\r\n get nakiNigunUserContentService() {\r\n if (isNil(this._nakiNigunUserContentService)) {\r\n this._nakiNigunUserContentService = this.rootStore.createApplicationService(NakiNigunUserContentService);\r\n }\r\n return this._nakiNigunUserContentService;\r\n }\r\n\r\n get userTorahAnytimeCollectionService() {\r\n if (isNil(this._userTorahAnytimeCollectionService)) {\r\n this._userTorahAnytimeCollectionService = this.rootStore.createApplicationService(\r\n UserTorahAnytimeCollectionService\r\n );\r\n }\r\n return this._userTorahAnytimeCollectionService;\r\n }\r\n\r\n constructor(rootStore) {\r\n makeObservable(this);\r\n this.rootStore = rootStore;\r\n this.userDeviceStore = this.rootStore.userDeviceStore;\r\n\r\n this._disableContentUnavailableInAppPolicy = this._disableContentUnavailableInAppPolicy.bind(this);\r\n this.contentUnavailableModal = new MrbModalParams(null, {\r\n disableContentUnavailableInAppPolicy: this._disableContentUnavailableInAppPolicy,\r\n });\r\n }\r\n\r\n updateStationStatus(options, isEnabled) {\r\n if (\r\n this.userDeviceStore.isDeviceSyncEnabled &&\r\n options.isUnavailableInApp &&\r\n this.mobileDevices.length > 0 &&\r\n this.isContentUnavailableInAppPolicyVisible\r\n ) {\r\n this.contentUnavailableModal.open({\r\n stations: [options.title],\r\n devices: this.mobileDevices,\r\n });\r\n }\r\n return this._updateStationsAndPodcastsStatusInternal([options.stationId], [], isEnabled);\r\n }\r\n\r\n updateNakiNigunAlbumsStatus(options, isEnabled) {\r\n if (\r\n this.userDeviceStore.isDeviceSyncEnabled &&\r\n options.isUnavailableInApp &&\r\n this.mobileDevices.length > 0 &&\r\n this.isContentUnavailableInAppPolicyVisible\r\n ) {\r\n this.contentUnavailableModal.open({\r\n nakiNigunAlbums: [options.title],\r\n devices: this.mobileDevices,\r\n });\r\n }\r\n return this._updateAlbumsTurnedOnStatusInternal([options.albumId], isEnabled);\r\n }\r\n\r\n updateNakiNigunAlbumsStatusByArtist(options, isEnabled) {\r\n if (\r\n this.userDeviceStore.isDeviceSyncEnabled &&\r\n options.isUnavailableInApp &&\r\n this.mobileDevices.length > 0 &&\r\n this.isContentUnavailableInAppPolicyVisible\r\n ) {\r\n this.contentUnavailableModal.open({\r\n nakiNigunArtists: [options.name],\r\n devices: this.mobileDevices,\r\n });\r\n }\r\n return this._updateAlbumsTurnedOnStatusByArtistInternal([options.artistId], isEnabled);\r\n }\r\n\r\n updateNakiNigunAlbumsStatusBulk(resource) {\r\n return this._updateAlbumsTurnedOnStatusBulkInteral(resource);\r\n }\r\n\r\n updateNakiNigunAlbumsStatusByArtistBulk(resource) {\r\n return this._updateAlbumsTurnedOnStatusByArtistBulkInternal(resource);\r\n }\r\n\r\n async _updateAlbumsTurnedOnStatusInternal(albumIds, isEnabled) {\r\n const response = await this.nakiNigunUserContentService.updateAlbumsTurnedOnStatus(\r\n { deviceIds: this.selectedDeviceIds, albumIds: albumIds },\r\n isEnabled\r\n );\r\n return response.data;\r\n }\r\n\r\n async _updateAlbumsTurnedOnStatusBulkInteral(resource) {\r\n resource.deviceIds = this.selectedDeviceIds;\r\n const response = await this.nakiNigunUserContentService.updateAlbumsTurnedOnStatusBulk(resource);\r\n return response.data;\r\n }\r\n\r\n async _updateAlbumsTurnedOnStatusByArtistInternal(artistIds, isEnabled) {\r\n const response = await this.nakiNigunUserContentService.updateAlbumsTurnedOnStatusByArtist(\r\n { deviceIds: this.selectedDeviceIds, artistIds: artistIds },\r\n isEnabled\r\n );\r\n return response.data;\r\n }\r\n\r\n async _updateAlbumsTurnedOnStatusByArtistBulkInternal(resource) {\r\n resource.deviceIds = this.selectedDeviceIds;\r\n const response = await this.nakiNigunUserContentService.updateAlbumsTurnedOnStatusByArtistBulk(resource);\r\n return response.data;\r\n }\r\n\r\n async _updateStationsAndPodcastsStatusInternal(stationIds, podcastIds, isEnabled) {\r\n const response = await this.userContentService.updateStationsAndPodcastsTurnedOnStatus(\r\n {\r\n deviceIds: this.selectedDeviceIds,\r\n stationIds: stationIds,\r\n podcastIds: podcastIds,\r\n },\r\n isEnabled\r\n );\r\n\r\n return response.data;\r\n }\r\n\r\n async _updateTorahAnytimeCollectionsStatusInternal(collectionIds, isEnabled) {\r\n const response = await this.userTorahAnytimeCollectionService.updateCollectionsTurnedOnStatus(\r\n {\r\n deviceIds: this.selectedDeviceIds,\r\n collectionIds: collectionIds,\r\n },\r\n isEnabled\r\n );\r\n\r\n return response.data;\r\n }\r\n\r\n updateStationsAndPodcastsStatus(stationOptions, podcastOptions, isEnabled) {\r\n const unavailableStations = filter(stationOptions, (item) => item.isUnavailableInApp);\r\n const unavailablePodcasts = filter(podcastOptions, (item) => item.isUnavailableInApp);\r\n if (\r\n this.userDeviceStore.isDeviceSyncEnabled &&\r\n (unavailableStations.length > 0 || unavailablePodcasts.length > 0) &&\r\n this.mobileDevices.length > 0 &&\r\n this.isContentUnavailableInAppPolicyVisible\r\n ) {\r\n this.contentUnavailableModal.open({\r\n stations: map(unavailableStations, (item) => item.title),\r\n podcasts: map(unavailablePodcasts, (item) => item.title),\r\n devices: this.mobileDevices,\r\n });\r\n }\r\n const stationIds = map(stationOptions, (item) => item.stationId);\r\n const podcastIds = map(podcastOptions, (item) => item.podcastId);\r\n return this._updateStationsAndPodcastsStatusInternal(stationIds, podcastIds, isEnabled);\r\n }\r\n\r\n updatePodcastStatus(options, isEnabled) {\r\n if (\r\n this.userDeviceStore.isDeviceSyncEnabled &&\r\n options.isUnavailableInApp &&\r\n this.mobileDevices.length > 0 &&\r\n this.isContentUnavailableInAppPolicyVisible\r\n ) {\r\n this.contentUnavailableModal.open({\r\n podcasts: [options.title],\r\n devices: this.mobileDevices,\r\n });\r\n }\r\n return this._updateStationsAndPodcastsStatusInternal([], [options.podcastId], isEnabled);\r\n }\r\n\r\n updateTorahAnytimeCollectionsStatus(options, isEnabled) {\r\n if (\r\n this.userDeviceStore.isDeviceSyncEnabled &&\r\n options.isUnavailableInApp &&\r\n this.mobileDevices.length > 0 &&\r\n this.isContentUnavailableInAppPolicyVisible\r\n ) {\r\n this.contentUnavailableModal.open({\r\n podcasts: [options.torahAnytimePodcastTitle],\r\n devices: this.mobileDevices,\r\n });\r\n }\r\n return this._updateTorahAnytimeCollectionsStatusInternal([options.collectionId], isEnabled);\r\n }\r\n\r\n async _disableContentUnavailableInAppPolicy() {\r\n try {\r\n this.contentUnavailableModal.close();\r\n this.rootStore.mainLoaderStore.suspend();\r\n await this.rootStore.userStore.disableContentUnavailableInAppPolicy();\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to update user settings.\",\r\n err\r\n );\r\n } finally {\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n}\r\n\r\nexport default UserContentManagerStore;\r\n","import { MrbRootStore } from \"mrb/core\";\r\nimport { baasicAppFactory, BaasicAppStore, BaasicAuthenticationStore } from \"mrb/baasic\";\r\nimport { MrbNotificationProvider } from \"mrb/notifications\";\r\nimport {\r\n NakiRadioApplicationSectionStore,\r\n NakiRadioUserStore,\r\n UserDeviceStore,\r\n PremiumSubscriptionStore,\r\n JoyrideViewStore,\r\n DownloadManagerStore,\r\n} from \"common/stores\";\r\nimport { ContentAccessValidator } from \"application/common/content-access\";\r\nimport { UserContentManagerStore } from \"application/common/stores\";\r\nimport { CoverImageFactory } from \"common/services\";\r\nimport { ContentEncoderSyncStore } from \"common/stores\";\r\n\r\nclass RootStore extends MrbRootStore {\r\n constructor(modulesConfiguration) {\r\n super(modulesConfiguration, {\r\n applicationSettings: ApplicationSettings,\r\n stores: {\r\n applicationStoreFactory: ({ rootStore }) => new BaasicAppStore(rootStore, baasicAppFactory),\r\n authenticationStoreFactory: ({ rootStore }) => new BaasicAuthenticationStore(rootStore),\r\n userStoreFactory: ({ rootStore }) => new NakiRadioUserStore(rootStore),\r\n applicationMainSectionStoreFactory: ({ rootStore }) => new NakiRadioApplicationSectionStore(rootStore),\r\n downloadManagerStoreFactory: ({ rootStore }) => new DownloadManagerStore(rootStore),\r\n },\r\n providers: {\r\n notificationProvider: new MrbNotificationProvider(),\r\n },\r\n });\r\n }\r\n\r\n createStores(context, storesConfig) {\r\n super.createStores(context, storesConfig);\r\n\r\n this.userDeviceStore = new UserDeviceStore(context.rootStore);\r\n this.premiumSubscriptionStore = new PremiumSubscriptionStore(context.rootStore);\r\n this.joyrideViewStore = new JoyrideViewStore(context.rootStore);\r\n this.userContentManagerStore = new UserContentManagerStore(context.rootStore);\r\n this.contentEncoderSyncStore = new ContentEncoderSyncStore(context.rootStore);\r\n this.downloadManagerStore = new DownloadManagerStore(context.rootStore);\r\n }\r\n\r\n createServices(context) {\r\n this.coverImageFactory = new CoverImageFactory(context.rootStore);\r\n this.contentAccessValidator = new ContentAccessValidator(context.rootStore);\r\n }\r\n}\r\n\r\nexport default RootStore;\r\n","import { action, computed, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\n\r\nclass MainSidebarViewStore extends MrbBaseViewStore {\r\n isLogoutDisabled = false;\r\n\r\n @computed get user() {\r\n return this.rootStore.userStore.user;\r\n }\r\n\r\n constructor(rootStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n }\r\n\r\n @action.bound\r\n async logout() {\r\n if (!this.isLogoutDisabled) {\r\n this.isLogoutDisabled = true;\r\n this.rootStore.mainLoaderStore.suspend();\r\n try {\r\n await this.rootStore.applicationMainSectionStore.logout();\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to logout. Please contant the support team.\"\r\n );\r\n } finally {\r\n runInAction(() => {\r\n this.isLogoutDisabled = false;\r\n this.rootStore.mainLoaderStore.resume();\r\n });\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default MainSidebarViewStore;\r\n","import { computed, makeObservable, observable, runInAction } from \"mobx\";\r\nimport { BaasicUserStore } from \"mrb/baasic\";\r\nimport { ProducerUserAccountService, UserSettingsService } from \"common/services\";\r\nimport { isNil, some } from \"lodash\";\r\n\r\nclass NakiRadioUserStore extends BaasicUserStore {\r\n @observable producerType = null;\r\n\r\n @computed get isAdministrator() {\r\n if (this.user && this.user.roles) {\r\n return some(this.user.roles, (roleName) => roleName === \"Administrators\");\r\n }\r\n return false;\r\n }\r\n\r\n @computed get isProducer() {\r\n if (this.user && this.user.roles) {\r\n return some(this.user.roles, (roleName) => roleName === \"Producers\");\r\n }\r\n return false;\r\n }\r\n\r\n @computed get isContentPolicyVisible() {\r\n return this.user && this.user.userProfile.membership.contentPolicyVisible !== false;\r\n }\r\n\r\n @computed get isTorahAnytimeAvailabilityVisible() {\r\n return this.user && this.user.userProfile.membership.torahAnytimeAvailabilityVisible !== false;\r\n }\r\n\r\n @computed get isConnectDeviceMessageVisible() {\r\n return this.user && this.user.userProfile.membership.connectDeviceVisible !== false;\r\n }\r\n\r\n @computed get isContentUnavailableInAppPolicyVisible() {\r\n return this.user && this.user.userProfile.membership.contentUnavailableInAppVisible !== false;\r\n }\r\n\r\n _userSettingsService = null;\r\n _producerUserAccountService = null;\r\n\r\n get userSettingsService() {\r\n if (isNil(this._userSettingsService)) {\r\n this._userSettingsService = this.rootStore.createApplicationService(UserSettingsService);\r\n }\r\n return this._userSettingsService;\r\n }\r\n\r\n get producerUserAccountService() {\r\n if (isNil(this._producerUserAccountService)) {\r\n this._producerUserAccountService = this.rootStore.createApplicationService(ProducerUserAccountService);\r\n }\r\n return this._producerUserAccountService;\r\n }\r\n\r\n constructor(rootStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n }\r\n\r\n async resolveUser() {\r\n await super.resolveUser();\r\n if (this.isAdministrator) {\r\n this.rootStore.routerStore.setSystemRoute(\"initialState\", \"master.administration.dashboard\");\r\n } else {\r\n this.rootStore.routerStore.setSystemRoute(\"initialState\", \"master.application.home.list\");\r\n }\r\n\r\n if (this.isProducer) {\r\n var result = await this.producerUserAccountService.getProducerUserAccountProducerType();\r\n var producerType = result.data;\r\n runInAction(() => {\r\n this.producerType = producerType;\r\n });\r\n }\r\n }\r\n\r\n async disableContentPolicy() {\r\n await this.userSettingsService.disableContentPolicy();\r\n await this.rootStore.userStore.refreshUserAccount();\r\n }\r\n\r\n async disableTorahAnytimeAvailability() {\r\n await this.userSettingsService.disableTorahAnytimeAvailability();\r\n await this.rootStore.userStore.refreshUserAccount();\r\n }\r\n\r\n async disableConnectDeviceMessage() {\r\n await this.userSettingsService.disableConnectDevice();\r\n await this.rootStore.userStore.refreshUserAccount();\r\n }\r\n\r\n async disableContentUnavailableInAppPolicy() {\r\n await this.userSettingsService.disableContentUnavailableInAppPolicy();\r\n await this.rootStore.userStore.refreshUserAccount();\r\n }\r\n\r\n async updateAccountInfo(data) {\r\n await this.rootStore.application.baasic.membershipModule.user.update(data);\r\n await this.refreshUserAccount();\r\n }\r\n}\r\n\r\nexport default NakiRadioUserStore;\r\n","import { MrbApplicationMainSectionStore } from \"mrb/core/stores\";\r\nimport { moduleBuilder } from \"mrb/core/infrastructure\";\r\nimport { find } from \"lodash\";\r\nimport { producerTypes } from \"common/constants\";\r\nimport { localizationService } from \"common/localization\";\r\n\r\nclass NakiRadioApplicationSectionStore extends MrbApplicationMainSectionStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n }\r\n\r\n async initialize() {\r\n if (!this.isInitialized) {\r\n this.rootStore.authenticationStore.resetSignInRedirect();\r\n this.buildMenu();\r\n this.setIsInitialized(true);\r\n }\r\n if (this.rootStore.authenticationStore.isAuthenticated && !this.rootStore.userStore.isAdministrator) {\r\n await Promise.all([\r\n this.rootStore.userDeviceStore.initialize(),\r\n this.rootStore.premiumSubscriptionStore.refreshUserPremiumSubscription(),\r\n ]);\r\n }\r\n }\r\n\r\n buildMenu() {\r\n if (this.rootStore.userStore.isAdministrator) {\r\n super.buildMenu([\"administration\"]);\r\n } else {\r\n this._buildApplicationMenu([\"application\"]);\r\n }\r\n }\r\n\r\n _buildApplicationMenu(modules) {\r\n var menu = moduleBuilder.buildMenus(this.rootStore.configuration.menus, { rootStore: this.rootStore }, modules);\r\n\r\n var producerMenu = find(menu, (item) => item.route === \"master.application.producer.preview.dashboard\");\r\n var producerVerification = producerMenu && this.rootStore.userStore.isProducer;\r\n if (producerVerification && this.rootStore.userStore.producerType?.slug === producerTypes.artistSlug) {\r\n producerMenu.title = localizationService.t(\"APPLICATION.PRODUCER.MENU.ARTIST_TITLE\");\r\n } else if (\r\n producerVerification &&\r\n this.rootStore.userStore.producerType?.slug === producerTypes.podcasterSlug\r\n ) {\r\n producerMenu.title = localizationService.t(\"APPLICATION.PRODUCER.MENU.PODCASTER_TITLE\");\r\n }\r\n\r\n this.rootStore.menuStore.setMenu(menu);\r\n }\r\n}\r\n\r\nexport default NakiRadioApplicationSectionStore;\r\n","import { action, computed, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { STATUS, EVENTS, ACTIONS } from \"react-joyride\";\r\nimport { isNil } from \"lodash\";\r\nimport { UserSettingsService } from \"common/services\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\n\r\nclass JoyrideViewStore extends MrbBaseViewStore {\r\n @observable _run = true;\r\n @observable isTutorialPassed = false;\r\n @observable stepIndex = 0;\r\n _userSettingsService = null;\r\n\r\n @computed get run() {\r\n return this.rootStore.userDeviceStore.deviceCount > 0 && this._run;\r\n }\r\n\r\n get userSettingsService() {\r\n if (isNil(this._userSettingsService)) {\r\n this._userSettingsService = this.rootStore.createApplicationService(UserSettingsService);\r\n }\r\n return this._userSettingsService;\r\n }\r\n\r\n steps = [\r\n {\r\n target: \".jq-onboarding-search\",\r\n content:\r\n \"Start typing to search content. You can search by title, genre, location, language, and keywords.\",\r\n },\r\n {\r\n target: \".jq-onboarding-sync\",\r\n content: 'Use \"Device sync\" to enable or disable content on all of your devices.',\r\n },\r\n {\r\n target: \".jq-onboarding-select-device\",\r\n content: \"Use the dropdown to switch between your devices.\",\r\n },\r\n {\r\n target: \".jq-onboarding-bulk-edit\",\r\n content: \"Enable or disable multiple items with the bulk edit option.\",\r\n },\r\n {\r\n target: \".jq-onboarding-turn-on-off\",\r\n content:\r\n 'To enable or disable content, click here. If \"Device sync\" is enabled, it will apply across all of your devices.',\r\n },\r\n {\r\n target: \".jq-onboarding-title\",\r\n content: \"To reveal more information about each station or podcast, click here.\",\r\n },\r\n {\r\n target: \".c-nav__icon--devices\",\r\n content: \"Manage your devices in Devices section.\",\r\n },\r\n {\r\n target: \".jq-onboarding-premium\",\r\n content: \"Explore our Premium content with a 3-day trial offer!\",\r\n },\r\n ];\r\n\r\n constructor(rootStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.rootStore = rootStore;\r\n\r\n this.reaction(\r\n () => this.rootStore.userStore.user,\r\n (user) => {\r\n if (user && user.userProfile && user.userProfile.membership) {\r\n runInAction(() => {\r\n this.reset();\r\n if (user) {\r\n this.isTutorialPassed = user.userProfile.membership.tutorialPassed;\r\n }\r\n });\r\n }\r\n }\r\n );\r\n }\r\n\r\n @action.bound\r\n handleJoyrideCallback = (data) => {\r\n const { action, index, status, type } = data;\r\n if ([EVENTS.STEP_AFTER, EVENTS.TARGET_NOT_FOUND].includes(type)) {\r\n this.stepIndex = index + (action === ACTIONS.PREV ? -1 : 1);\r\n } else if ([STATUS.FINISHED, STATUS.SKIPPED].includes(status)) {\r\n this.userSettingsService.updateIsTutorialPassed(true);\r\n this._run = false;\r\n }\r\n };\r\n\r\n @action.bound\r\n reset() {\r\n this._run = true;\r\n this.stepIndex = 0;\r\n this.isTutorialPassed = false;\r\n }\r\n}\r\n\r\nexport default JoyrideViewStore;\r\n","import { RssSyncService } from \"common/services\";\r\nimport { filter, isNil } from \"lodash\";\r\nimport { action, computed, observable, makeObservable, reaction } from \"mobx\";\r\n\r\nclass ContentEncoderSyncStore {\r\n @observable podcastEpisodeTasks = [];\r\n @observable albumTrackTasks = [];\r\n _rssSyncService = null;\r\n\r\n @computed get numberOfActiveTasks() {\r\n return this.podcastEpisodeTasks.length + this.albumTrackTasks.length;\r\n }\r\n\r\n @computed get isSyncing() {\r\n return this.numberOfActiveTasks > 0;\r\n }\r\n\r\n get rssSyncService() {\r\n if (isNil(this._rssSyncService)) {\r\n this._rssSyncService = this.rootStore.createApplicationService(RssSyncService);\r\n }\r\n return this._rssSyncService;\r\n }\r\n\r\n _tickDelay = 15000;\r\n _tickIntervalInstance = null;\r\n\r\n constructor(rootStore) {\r\n this.rootStore = rootStore;\r\n makeObservable(this);\r\n\r\n reaction(\r\n () => this.rootStore.authenticationStore.isAuthenticated,\r\n (isAuthenticated) => {\r\n if (isAuthenticated) {\r\n this._sync();\r\n this.startSync();\r\n } else {\r\n this.stopSync();\r\n this._clear();\r\n }\r\n }\r\n );\r\n }\r\n\r\n startSync() {\r\n this._tickIntervalInstance = setInterval(() => this._sync(), this._tickDelay);\r\n }\r\n\r\n resetSync() {\r\n this.stopSync();\r\n this._sync();\r\n this.startSync();\r\n }\r\n\r\n stopSync() {\r\n if (this._tickIntervalInstance != null) {\r\n clearInterval(this._tickIntervalInstance);\r\n this._tickIntervalInstance = null;\r\n }\r\n }\r\n\r\n async _sync() {\r\n try {\r\n const response = await this.rssSyncService.getAllRssSyncTasks();\r\n const tasks = response.data;\r\n\r\n const podcastEpisodeTasks = filter(tasks, (task) => task.podcastEpisodeId);\r\n const albumTrackTasks = filter(tasks, (task) => task.trackId);\r\n\r\n this.setPodcastEpisodeTasks(podcastEpisodeTasks);\r\n this.setAlbumTrackTasks(albumTrackTasks);\r\n } catch (err) {}\r\n }\r\n\r\n @action.bound\r\n setPodcastEpisodeTasks(items) {\r\n this.podcastEpisodeTasks = items;\r\n }\r\n\r\n @action.bound\r\n setAlbumTrackTasks(items) {\r\n this.albumTrackTasks = items;\r\n }\r\n\r\n @action.bound\r\n _clear() {\r\n this.setAlbumTrackTasks([]);\r\n this.setPodcastEpisodeTasks([]);\r\n }\r\n}\r\n\r\nexport default ContentEncoderSyncStore;\r\n","import { makeObservable, observable, action, computed, reaction } from \"mobx\";\r\nimport { forEach, filter, find } from \"lodash\";\r\nimport JSZip from \"jszip\";\r\nimport { localizationService } from \"common/localization\";\r\n\r\nclass DownloadManagerStore {\r\n downloadStatus = {\r\n new: \"new\",\r\n downloading: \"downloading\",\r\n finished: \"finished\",\r\n canceled: \"canceled\",\r\n failed: \"failed\",\r\n };\r\n\r\n @observable selectedViewValue = 1;\r\n\r\n @observable.ref items = [];\r\n\r\n zip = new JSZip();\r\n nameCounter = 0;\r\n\r\n @computed\r\n get currentlyDownloadingItem() {\r\n return find(this.items, (item) => item.status === this.downloadStatus.downloading);\r\n }\r\n\r\n @computed\r\n get queuedItems() {\r\n return filter(this.items, (item) => item.status === this.downloadStatus.new);\r\n }\r\n\r\n @computed\r\n get finishedItems() {\r\n return filter(this.items, (item) => item.status === this.downloadStatus.finished);\r\n }\r\n\r\n @computed\r\n get canceledItems() {\r\n return filter(this.items, (item) => item.status === this.downloadStatus.canceled);\r\n }\r\n\r\n @computed\r\n get failedItems() {\r\n return filter(this.items, (item) => item.status === this.downloadStatus.failed);\r\n }\r\n\r\n constructor(rootStore) {\r\n this.rootStore = rootStore;\r\n makeObservable(this);\r\n this.downloadItem = this.downloadItem.bind(this);\r\n this.initializeListeners = this.initializeListeners.bind(this);\r\n\r\n reaction(\r\n () => this.items,\r\n () => {\r\n this.onItemsChanged();\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.rootStore.authenticationStore.isAuthenticated,\r\n (isAuthenticated) => {\r\n if (!isAuthenticated) {\r\n try {\r\n if (this.queuedItems && this.queuedItems.length > 0) {\r\n forEach(this.queuedItems, (item) => {\r\n item.status = this.downloadStatus.canceled;\r\n });\r\n }\r\n if (this.currentlyDownloadingItem && this.currentlyDownloadingItem.xhr) {\r\n this.currentlyDownloadingItem.xhr.abort();\r\n }\r\n this.items = [];\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred. Unable to close the window.\",\r\n err\r\n );\r\n }\r\n }\r\n }\r\n );\r\n }\r\n\r\n @action.bound\r\n addItemToQueue(item) {\r\n item.status = this.downloadStatus.new;\r\n item.index = this.items.length;\r\n this.items.push(item);\r\n this.items = [...this.items];\r\n }\r\n\r\n @action.bound\r\n addItemsToQueue(items) {\r\n forEach(items, (item, index) => {\r\n item.status = this.downloadStatus.new;\r\n item.index = this.items.length + index;\r\n });\r\n this.items.push(...items);\r\n this.items = [...this.items];\r\n }\r\n\r\n downloadItem(item) {\r\n item.status = this.downloadStatus.downloading;\r\n this.items = [...this.items];\r\n const xhr = new XMLHttpRequest();\r\n item.xhr = xhr;\r\n this.initializeListeners(item.xhr);\r\n item.xhr.open(\"GET\", item.downloadUrl);\r\n item.xhr.responseType = \"blob\";\r\n item.xhr.send();\r\n }\r\n\r\n initializeListeners(xhr) {\r\n xhr.onload = () => {\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n const blob = new Blob([xhr.response], { type: \"audio/mp3\" });\r\n const sanitizedTitle = this.currentlyDownloadingItem.title?.replace(/[\\\\/:*?\"<>|]/g, \" \")?.trim();\r\n var defaultName;\r\n if (!sanitizedTitle) {\r\n if (this.nameCounter === 0) {\r\n defaultName = \"download\";\r\n } else {\r\n defaultName = `download (${this.nameCounter})`;\r\n }\r\n this.nameCounter += 1;\r\n }\r\n\r\n this.zip.file(`${sanitizedTitle || defaultName}.mp3`, blob);\r\n this.currentlyDownloadingItem.status = this.downloadStatus.finished;\r\n } else {\r\n this.currentlyDownloadingItem.status = this.downloadStatus.failed;\r\n }\r\n this.items = [...this.items];\r\n };\r\n\r\n xhr.onerror = () => {\r\n this.currentlyDownloadingItem.status = this.downloadStatus.failed;\r\n this.items = [...this.items];\r\n };\r\n\r\n xhr.onabort = () => {\r\n this.currentlyDownloadingItem.status = this.downloadStatus.canceled;\r\n this.items = [...this.items];\r\n };\r\n\r\n xhr.onprogress = (event) => {\r\n this.setDownloadProgress((event.loaded / event.total) * 100);\r\n // event.loaded returns how many bytes are downloaded\r\n // event.total returns the total number of bytes\r\n // event.total is only available if server sends `Content-Length` header\r\n };\r\n }\r\n\r\n onItemsChanged() {\r\n if (this.currentlyDownloadingItem != null) {\r\n return;\r\n }\r\n if (this.queuedItems != null && this.queuedItems.length > 0) {\r\n this.downloadItem(this.queuedItems[0]);\r\n } else {\r\n if (Object.keys(this.zip.files).length === 1 && this.queuedItems.length === 0) {\r\n const fileName = Object.keys(this.zip.files)[0];\r\n this.zip.generateAsync({ type: \"blob\" }).then((blob) => {\r\n this.downloadSingleItem(blob, fileName.split(\".mp3\")[0]);\r\n });\r\n this.zip = new JSZip();\r\n return;\r\n } else {\r\n this.downloadZip();\r\n }\r\n }\r\n }\r\n\r\n downloadSingleItem(blob, fileName) {\r\n const url = URL.createObjectURL(blob);\r\n const a = document.createElement(\"a\");\r\n a.href = url;\r\n a.download = `${fileName}.mp3`;\r\n document.body.appendChild(a);\r\n a.click();\r\n URL.revokeObjectURL(url);\r\n document.body.removeChild(a);\r\n }\r\n\r\n downloadZip() {\r\n if (Object.keys(this.zip.files).length === 0) {\r\n return;\r\n }\r\n const localZip = this.zip.clone();\r\n this.zip = new JSZip();\r\n this.nameCounter = 0;\r\n\r\n localZip.generateAsync({ type: \"blob\" }).then((blob) => {\r\n const url = URL.createObjectURL(blob);\r\n const a = document.createElement(\"a\");\r\n a.href = url;\r\n a.download = \"downloads.zip\";\r\n document.body.appendChild(a);\r\n a.click();\r\n URL.revokeObjectURL(url);\r\n document.body.removeChild(a);\r\n });\r\n }\r\n\r\n @action.bound\r\n cancelDownload(index) {\r\n var item = find(this.items, (item) => item.index === index);\r\n if (item.status === this.downloadStatus.downloading && item.xhr) {\r\n item.xhr.abort();\r\n } else {\r\n item.status = this.downloadStatus.canceled;\r\n }\r\n this.items = [...this.items];\r\n }\r\n\r\n @action.bound\r\n retryDownload(index) {\r\n var item = find(this.items, (item) => item.index === index);\r\n item.status = this.downloadStatus.new;\r\n this.items = [...this.items];\r\n }\r\n\r\n @action.bound\r\n setDownloadProgress(value) {\r\n this.currentlyDownloadingItem.downloadProgress = value;\r\n this.items = [...this.items];\r\n }\r\n\r\n @action.bound\r\n setSelectedViewValue(value) {\r\n this.selectedViewValue = value;\r\n }\r\n\r\n @action.bound\r\n closeWindow() {\r\n if (this.queuedItems.length === 0 && this.currentlyDownloadingItem == null) {\r\n this.items = [];\r\n } else {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: localizationService.t(\"ADMINISTRATION.DOWNLOAD_MANAGER.CLOSE_MODAL.TITLE\"),\r\n onConfirm: () => {\r\n try {\r\n forEach(this.queuedItems, (item) => {\r\n item.status = this.downloadStatus.canceled;\r\n });\r\n\r\n if (this.currentlyDownloadingItem.xhr) {\r\n this.currentlyDownloadingItem.xhr.abort();\r\n }\r\n this.items = [];\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred. Unable to close the window.\",\r\n err\r\n );\r\n }\r\n },\r\n yesLabel: localizationService.t(\"ADMINISTRATION.DOWNLOAD_MANAGER.CLOSE_MODAL.YES_LABEL\"),\r\n noLabel: localizationService.t(\"ADMINISTRATION.DOWNLOAD_MANAGER.CLOSE_MODAL.NO_LABEL\"),\r\n description: localizationService.t(\"ADMINISTRATION.DOWNLOAD_MANAGER.CLOSE_MODAL.DESCRIPTION\"),\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport default DownloadManagerStore;\r\n","import React from \"react\";\r\nimport { CoverImageUploadLoaderTemplate } from \"themes/common/components\";\r\n\r\nfunction CoverImageUploadLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default CoverImageUploadLoader;\r\n","import React from \"react\";\r\nimport { PreviewContentLoaderTemplate } from \"themes/common/components\";\r\n\r\nfunction PreviewContentLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default PreviewContentLoader;\r\n","import React from \"react\";\r\nimport { AddStationsOrPodcastsLoaderTemplate } from \"themes/common/components\";\r\n\r\nfunction AddStationsOrPodcastsLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default AddStationsOrPodcastsLoader;\r\n","import React from \"react\";\r\nimport { UploadedImageLoaderTemplate } from \"themes/common/components\";\r\n\r\nfunction UploadedImageLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default UploadedImageLoader;\r\n","import React from \"react\";\r\nimport { DescriptionLoaderTemplate } from \"themes/common/components\";\r\n\r\nfunction DescriptionLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default DescriptionLoader;\r\n","import React from \"react\";\r\nimport { ChangePasswordLoaderTemplate } from \"themes/common/components\";\r\n\r\nfunction ChangePasswordLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ChangePasswordLoader;\r\n","import React from \"react\";\r\nimport { ToggleActionsLoaderTemplate } from \"themes/common/components\";\r\n\r\nconst ToggleActionsLoader = (props) => {\r\n return ;\r\n};\r\n\r\nexport default ToggleActionsLoader;\r\n","import React from \"react\";\r\nimport { UploadAlbumTrackLoaderTemplate } from \"themes/common/components\";\r\n\r\nconst UploadAlbumTrackLoader = (props) => {\r\n return ;\r\n};\r\n\r\nexport default UploadAlbumTrackLoader;\r\n","import React from \"react\";\r\nimport { CoverImageUploadTemplate } from \"themes/common/components\";\r\n\r\nclass CoverImageUpload extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default CoverImageUpload;\r\n","import React from \"react\";\r\nimport { ImageTemplate } from \"themes/common/components\";\r\n\r\nfunction Image(props) {\r\n return ;\r\n}\r\n\r\nexport default Image;\r\n","import React from \"react\";\r\nimport { CurrencyInputFieldTemplate } from \"themes/common/components\";\r\n\r\nfunction CurrencyInputField(props) {\r\n return ;\r\n}\r\n\r\nexport default CurrencyInputField;\r\n","import { PopoverTemplate } from \"themes/common/components\";\r\n\r\nfunction Popover(props) {\r\n return ;\r\n}\r\n\r\nexport default Popover;\r\n","import { runInAction, observable, reaction } from \"mobx\";\r\nimport { MrbSimpleSelectStore, DropdownItemsResult } from \"mrb/components/select\";\r\nimport { isFunction, findIndex, filter, some } from \"lodash\";\r\n\r\nexport default class PlaylistSelectStore extends MrbSimpleSelectStore {\r\n isCreatable = false;\r\n\r\n @observable showCreateOption = false;\r\n\r\n constructor(config, initialItems) {\r\n super(config, initialItems);\r\n\r\n this.isCreatable = isFunction(this.actions.createOption);\r\n this.createOption = this.createOption.bind(this);\r\n\r\n reaction(\r\n () => this.searchTerm,\r\n () => {\r\n runInAction(() => {\r\n this.showCreateOption = false;\r\n });\r\n }\r\n );\r\n\r\n reaction(\r\n () => this.filteredItems,\r\n () => {\r\n runInAction(() => {\r\n if (\r\n this.searchTerm == null ||\r\n this.searchTerm.trim() === \"\" ||\r\n some(this.filteredItems?.items, (item) => {\r\n return item?.title?.trim() === this.searchTerm.trim();\r\n })\r\n ) {\r\n this.showCreateOption = false;\r\n } else {\r\n this.showCreateOption = true;\r\n }\r\n });\r\n }\r\n );\r\n }\r\n\r\n async createOption(value) {\r\n this.loaderStore.suspend();\r\n const createdItem = await this.actions.createOption(value);\r\n runInAction(() => {\r\n this.filteredItems = new DropdownItemsResult(\r\n [...(this.filteredItems.items?.item || []), createdItem],\r\n this.filteredItems.page,\r\n this.filteredItems.recordsPerPage,\r\n this.filteredItems.totalRecords + 1,\r\n value\r\n );\r\n this.loaderStore.resume();\r\n });\r\n await this.filter();\r\n }\r\n\r\n onChange(option) {\r\n const index = findIndex(this.selectedOption, (o) => o.value === option.value);\r\n if (index === -1) {\r\n const selectedOptions = [...this.selectedOption, option];\r\n super.onChange(selectedOptions);\r\n if (this.actions.onSelected) {\r\n this.actions.onSelected(option.item);\r\n }\r\n } else {\r\n const selectedOptions = filter(this.selectedOption, (o) => o.value !== option.value);\r\n super.onChange(selectedOptions);\r\n if (this.actions.onRemoved) {\r\n this.actions.onRemoved(option.item);\r\n }\r\n }\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { StatusTagTemplate } from \"themes/common/components\";\r\n\r\nfunction StatusTag(props) {\r\n return ;\r\n}\r\n\r\nexport default StatusTag;\r\n","import { AccordionTemplate } from \"themes/common/components\";\r\n\r\nfunction Accordion(props) {\r\n return ;\r\n}\r\n\r\nexport default Accordion;\r\n","import { ProgressbarTemplate } from \"themes/common/components\";\r\n\r\nfunction Progressbar(props) {\r\n return ;\r\n}\r\n\r\nexport default Progressbar;\r\n","import { CustomDropdownTemplate } from \"themes/common/components\";\r\n\r\nfunction CustomDropdown(props) {\r\n return ;\r\n}\r\n\r\nexport default CustomDropdown;\r\n","import { computed, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\n\r\nconst numericRegex = /\\d/;\r\n\r\nclass PasswordFieldInfoViewStore extends MrbBaseViewStore {\r\n passwordField = null;\r\n\r\n @computed get isMiniumLengthValid() {\r\n return this.passwordField.value && this.passwordField.value.length >= 8;\r\n }\r\n\r\n @computed get containsSpecialCharacter() {\r\n return containsSpecialCharacter(this.passwordField.value);\r\n }\r\n\r\n @computed get containsNumericCharacter() {\r\n return numericRegex.test(this.passwordField.value);\r\n }\r\n\r\n constructor(rootStore, { field }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.passwordField = field;\r\n }\r\n}\r\n\r\nfunction containsSpecialCharacter(value) {\r\n if (value) {\r\n for (let i = 0; i < value.length; i++) {\r\n const character = value[i];\r\n if (\r\n !(character >= \"0\" && character <= \"9\") &&\r\n character.toUpperCase() === character.toLowerCase()\r\n ) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\nexport default PasswordFieldInfoViewStore;\r\n","import React from \"react\";\r\nimport { PasswordFieldInfoTemplate } from \"themes/common/components\";\r\nimport { PasswordFieldInfoViewStore } from \"common/components\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new PasswordFieldInfoViewStore(rootStore, componentProps),\r\n \"passwordFieldInfoViewStore\"\r\n)\r\nclass PasswordFieldInfo extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PasswordFieldInfo;\r\n","import { FloatingCardTemplate } from \"themes/common/components\";\r\n\r\nfunction FloatingCard(props) {\r\n return ;\r\n}\r\n\r\nexport default FloatingCard;\r\n","import React from \"react\";\r\nimport { ApplicationWidgetPanelTemplate } from \"themes/common/components\";\r\n\r\nfunction ApplicationWidgetPanel(props) {\r\n return ;\r\n}\r\n\r\nexport default ApplicationWidgetPanel;\r\n","import React from \"react\";\r\nimport { AppStartupLoaderTemplate } from \"themes/common/components\";\r\n\r\nfunction AppStartupLoader() {\r\n return ;\r\n}\r\n\r\nexport default AppStartupLoader;\r\n","import React from \"react\";\r\nimport { MainSidebarTemplate } from \"themes/common/components\";\r\nimport { MainSidebarViewStore } from \"common/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new MainSidebarViewStore(rootStore, componentProps),\r\n \"mainSidebarViewStore\"\r\n)\r\nclass MainSidebar extends React.Component {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default MainSidebar;\r\n","import { TableNoDataOverlayTemplate } from \"themes/common/components\";\r\n\r\nfunction TableNoDataOverlay() {\r\n return ;\r\n}\r\n\r\nexport default TableNoDataOverlay;\r\n","import React from \"react\";\r\nimport { DragDropListTemplate } from \"themes/common/components\";\r\n\r\nfunction DragDropList(props) {\r\n return ;\r\n}\r\n\r\nexport default DragDropList;\r\n","import React from \"react\";\r\nimport { RichTextEditorTemplate } from \"themes/common/components\";\r\n\r\nfunction RichTextEditor(props) {\r\n return ;\r\n}\r\n\r\nexport default RichTextEditor;\r\n","import React from \"react\";\r\nimport { FieldRichTextEditorTemplate } from \"themes/common/components\";\r\n\r\nfunction FieldRichTextEditor(props) {\r\n return ;\r\n}\r\n\r\nexport default FieldRichTextEditor;\r\n","import React from \"react\";\r\nimport { HTMLRenderTemplate } from \"themes/common/components\";\r\n\r\nfunction HTMLRender(props) {\r\n return ;\r\n}\r\n\r\nexport default HTMLRender;\r\n","import React from \"react\";\r\nimport { GenresTemplate } from \"themes/common/components\";\r\n\r\nfunction Genres(props) {\r\n return ;\r\n}\r\n\r\nexport default Genres;\r\n","import React from \"react\";\r\nimport { PremiumBadgeTemplate } from \"themes/common/components\";\r\n\r\nconst PremiumBadge = (props) => {\r\n return ;\r\n};\r\n\r\nexport default PremiumBadge;\r\n","import React from \"react\";\r\nimport { ImageUploadNoteTemplate } from \"themes/common/components\";\r\n\r\nfunction ImageUploadNote(props) {\r\n return ;\r\n}\r\n\r\nexport default ImageUploadNote;\r\n","import React from \"react\";\r\nimport { JoyrideOnboardingTemplate } from \"themes/common/components\";\r\n\r\nfunction JoyrideOnboarding(props) {\r\n return ;\r\n}\r\n\r\nexport default JoyrideOnboarding;\r\n","import React from \"react\";\r\nimport { AdministrationWidgetPanelTemplate } from \"themes/common/components\";\r\n\r\nfunction AdministrationWidgetPanel(props) {\r\n return ;\r\n}\r\n\r\nexport default AdministrationWidgetPanel;\r\n","import React, { useContext } from \"react\";\r\n\r\nconst RootContext = React.createContext(null);\r\n\r\nfunction useRootStore() {\r\n return useContext(RootContext);\r\n}\r\n\r\nexport { RootContext, useRootStore };\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { withAuthorization } from \"../../core/hoc\";\r\nimport { mergeOrOverrideCss } from \"../../common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nconst iconName = (name) => (name ? \"\" + name : \"\");\r\n\r\nconst MrbButton = function ({ onClick, authorization, ...otherProps }) {\r\n return (\r\n \r\n );\r\n};\r\n\r\nMrbButton.propTypes = {\r\n onClick: PropTypes.func,\r\n authorization: PropTypes.any,\r\n};\r\n\r\nconst AuthContent = withAuthorization(DefaultContent);\r\n\r\nfunction DefaultContent({\r\n onlyIcon = false,\r\n disabled = false,\r\n content = null,\r\n type = \"button\",\r\n classNameOverride,\r\n classNameExtend,\r\n onAction,\r\n label,\r\n icon,\r\n t = (i) => i,\r\n ...other\r\n}) {\r\n const displayLabel = t(label);\r\n return (\r\n \r\n {content || (\r\n \r\n \r\n {!onlyIcon && displayLabel}\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nDefaultContent.propTypes = {\r\n onlyIcon: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n content: PropTypes.any,\r\n type: PropTypes.string,\r\n classNameOverride: PropTypes.string,\r\n classNameExtend: PropTypes.string,\r\n onAction: PropTypes.func,\r\n label: PropTypes.string,\r\n icon: PropTypes.string,\r\n other: PropTypes.any,\r\n};\r\n\r\nexport default observer(MrbButton);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbButton } from \"./\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbFeedbackButton({\r\n viewStore,\r\n label,\r\n type,\r\n disabled,\r\n authorization,\r\n t = (i) => i,\r\n}) {\r\n const { status } = viewStore;\r\n return (\r\n \r\n );\r\n}\r\n\r\nMrbFeedbackButton.propTypes = {\r\n viewStore: PropTypes.object.isRequired,\r\n label: PropTypes.string,\r\n type: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n authorization: PropTypes.string,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbFeedbackButton);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbBreadcrumbsOptions({ options, t = (i) => i }) {\r\n if (!options) {\r\n return null;\r\n }\r\n\r\n if (options.loading) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n if (options.title && options.title !== \"\") {\r\n return : {t(options.title)};\r\n }\r\n\r\n return null;\r\n}\r\n\r\nMrbBreadcrumbsOptions.propTypes = {\r\n options: PropTypes.object,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbBreadcrumbsOptions);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbBreadcrumbsOptions } from \"./\";\r\n\r\nfunction MrbBreadcrumbs({ navigationOptions, t = (i) => i }) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nMrbBreadcrumbs.propTypes = {\r\n navigationOptions: PropTypes.object,\r\n breadcrumbs: PropTypes.array,\r\n t: PropTypes.func,\r\n};\r\n\r\nMrbBreadcrumbs.defaultProps = {\r\n overrideDefaultContent: false,\r\n};\r\n\r\nexport default MrbBreadcrumbs;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { default as MrbBasicSelect } from \"../select/MrbBasicSelect\";\r\nimport { observer } from \"mobx-react\";\r\nimport { range, map, min, filter, isBoolean, isInteger } from \"lodash\";\r\n\r\nfunction MrbPager({\r\n tableStore,\r\n pageNeighbours = window.innerWidth >= 425 ? 2 : 1,\r\n pageSizes = [10, 30, 50, 100],\r\n onPageChange = null,\r\n nextPageLabel = \"Next\",\r\n previousPageLabel = \"Previous\",\r\n itemsPerPageLabel = \"Items per page\",\r\n totalRecordsLabel = \"Total Records\",\r\n hidePagerIfUnderLimit = false,\r\n hideItemsPerPage = false,\r\n t = (i) => i,\r\n}) {\r\n const { pageNumber, pageSize, recordCount, setPage, setPageSize } =\r\n tableStore;\r\n\r\n let hideControls = false;\r\n if (\r\n isBoolean(hidePagerIfUnderLimit) &&\r\n hidePagerIfUnderLimit &&\r\n recordCount <= min(pageSizes)\r\n ) {\r\n hideControls = true;\r\n } else if (\r\n isInteger(hidePagerIfUnderLimit) &&\r\n recordCount <= hidePagerIfUnderLimit\r\n ) {\r\n hideControls = true;\r\n }\r\n\r\n const totalPages = Math.ceil(recordCount / pageSize);\r\n const pages = createPageNumbers(totalPages, pageNumber, pageNeighbours);\r\n\r\n const pageSizeItems = map(pageSizes, (item) => {\r\n return {\r\n value: item,\r\n label: item,\r\n };\r\n });\r\n\r\n const goToPage = (page) => {\r\n const currentPage = Math.max(0, Math.min(page, recordCount));\r\n\r\n if (onPageChange && typeof onPageChange === \"function\") {\r\n onPageChange(page);\r\n } else {\r\n setPage(currentPage);\r\n }\r\n };\r\n\r\n const onClickPage = (page) => (event) => {\r\n event.preventDefault();\r\n goToPage(page);\r\n };\r\n\r\n const onClickPreviousPage = (event) => {\r\n event.preventDefault();\r\n goToPage(pageNumber - 1);\r\n };\r\n\r\n const onClickNextPage = (event) => {\r\n event.preventDefault();\r\n goToPage(pageNumber + 1);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n {recordCount > 0 && (\r\n \r\n
    \r\n {!hideControls && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n {!hideControls && !hideItemsPerPage && (\r\n \r\n
    \r\n {t(itemsPerPageLabel)}\r\n
    \r\n {\" \"}\r\n
    \r\n )}\r\n

    \r\n {t(totalRecordsLabel)}:{\" \"}\r\n \r\n {recordCount}\r\n \r\n

    \r\n
    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nMrbPager.propTypes = {\r\n tableStore: PropTypes.object.isRequired,\r\n pageNeighbours: PropTypes.number,\r\n pageSizes: PropTypes.arrayOf(PropTypes.number),\r\n onPageChange: PropTypes.func,\r\n nextPageLabel: PropTypes.string,\r\n previousPageLabel: PropTypes.string,\r\n itemsPerPageLabel: PropTypes.string,\r\n totalRecordsLabel: PropTypes.string,\r\n hidePagerIfUnderLimit: PropTypes.oneOfType([\r\n PropTypes.bool,\r\n PropTypes.number,\r\n ]),\r\n hideItemsPerPage: PropTypes.bool,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst createPageNumbers = (totalPages, currentPage, pageNeighbours) => {\r\n const ranges = range(-pageNeighbours, pageNeighbours + 1);\r\n return filter(\r\n map(ranges, (rangeNum) => currentPage + rangeNum),\r\n (page) => page > 0 && page <= totalPages\r\n );\r\n};\r\n\r\nexport default observer(MrbPager);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport DatePicker from \"react-datepicker\";\r\nimport \"react-datepicker/dist/react-datepicker.css\";\r\nimport { timeZoneConverter } from \"../../common/utils\";\r\nimport moment from \"moment\";\r\nimport { mergeOrOverrideCss, mergeCss } from \"../../common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbDatePicker({\r\n value,\r\n onChange,\r\n placeholder = \"--/--/----\",\r\n isClearable = true,\r\n todayButtonLabel = \"Today\",\r\n disabled,\r\n minDate,\r\n maxDate,\r\n timeZone,\r\n selectsStart,\r\n selectsEnd,\r\n startDate,\r\n endDate,\r\n classNameExtend,\r\n classNameOverride,\r\n monthsShown,\r\n showMonthYearPicker,\r\n dateFormat,\r\n t = (i) => i,\r\n}) {\r\n let internalValue = null,\r\n internalStartDate = null,\r\n internalEndDate = null;\r\n if (value) {\r\n internalValue = createInternalValue(value, timeZone);\r\n }\r\n if (startDate) {\r\n internalStartDate = createInternalValue(startDate, timeZone);\r\n }\r\n if (endDate) {\r\n internalEndDate = createInternalValue(endDate, timeZone);\r\n }\r\n\r\n function internalOnChange(value) {\r\n let parsedValue;\r\n if (value) {\r\n if (timeZone) {\r\n parsedValue = timeZoneConverter.toISOString(value, timeZone);\r\n } else {\r\n parsedValue = value.toISOString();\r\n }\r\n }\r\n onChange(parsedValue);\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nMrbDatePicker.propTypes = {\r\n value: PropTypes.string,\r\n onChange: PropTypes.func,\r\n placeholder: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n isClearable: PropTypes.bool,\r\n minDate: PropTypes.any,\r\n maxDate: PropTypes.any,\r\n startDate: PropTypes.string,\r\n endDate: PropTypes.string,\r\n todayButtonLabel: PropTypes.string,\r\n classNameExtend: PropTypes.string,\r\n classNameOverride: PropTypes.string,\r\n monthsShown: PropTypes.number,\r\n showMonthYearPicker: PropTypes.bool,\r\n dateFormat: PropTypes.string,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction createInternalValue(value, timeZone) {\r\n if (timeZone) {\r\n return timeZoneConverter.toJsDate(value, timeZone);\r\n } else {\r\n return moment.utc(value).toDate();\r\n }\r\n}\r\n\r\nexport default observer(MrbDatePicker);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldLayout } from \"../layout/content/form\";\r\nimport { MrbDatePicker } from \"./\";\r\nimport { isNil } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbFieldDatePicker({\r\n field,\r\n labelRender,\r\n showLabel,\r\n validationRender,\r\n infoRenderer,\r\n fieldClassNameExtend,\r\n fieldClassNameOverride,\r\n t = (i) => i,\r\n ...props\r\n}) {\r\n if (isNil(field)) {\r\n throw new Error(\"Form field must be provided.\");\r\n }\r\n\r\n const { value, onChange, placeholder } = field.bind();\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nMrbFieldDatePicker.propTypes = {\r\n field: PropTypes.object.isRequired,\r\n labelRender: PropTypes.func,\r\n showLabel: PropTypes.bool,\r\n validationRender: PropTypes.func,\r\n infoRenderer: PropTypes.func,\r\n fieldClassNameExtend: PropTypes.string,\r\n fieldClassNameOverride: PropTypes.string,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbFieldDatePicker);\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass AppHomeSectionApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"app-home-sections\");\r\n }\r\n\r\n getAll(options) {\r\n return super.find(`${this.base}{?embed}`, options);\r\n }\r\n\r\n getFeaturedGrid(options) {\r\n return super.find(`${this.base}/featured-grid{?systemType,embed}`, options);\r\n }\r\n\r\n getContent(options) {\r\n return super.find(`${this.base}/content{?systemType,searchQuery,page,rpp}`, options);\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?embed,fields}`, id, options);\r\n }\r\n\r\n create(resource) {\r\n return super.create(this.base, resource);\r\n }\r\n\r\n update(resource) {\r\n return super.update(`${this.base}`, resource);\r\n }\r\n\r\n updateFeaturedGrid(systemType, resource) {\r\n return super.update(`${this.base}/featured-grid{?systemType}`, { systemType: systemType }, resource);\r\n }\r\n\r\n delete(resource) {\r\n return super.delete(`${this.base}/{id}`, resource);\r\n }\r\n}\r\n\r\nexport default AppHomeSectionApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { AppHomeSectionApiRouteService } from \"common/services\";\r\n\r\nclass AppHomeSectionService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new AppHomeSectionApiRouteService());\r\n }\r\n\r\n getAll(options, abortSignal = null) {\r\n const url = this.routeService.getAll(options);\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n\r\n getFeaturedGrid(options, abortSignal = null) {\r\n const url = this.routeService.getFeaturedGrid(options);\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n\r\n getContent(options, abortSignal = null) {\r\n const url = this.routeService.getContent(options);\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n\r\n update(resource, abortSignal = null) {\r\n const url = this.routeService.update(resource);\r\n return this.apiClient.put(url, resource, null, abortSignal);\r\n }\r\n\r\n updateFeaturedGrid(systemType, resource, abortSignal = null) {\r\n const url = this.routeService.updateFeaturedGrid(systemType, resource);\r\n return this.apiClient.put(url, resource, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default AppHomeSectionService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass FeaturedSectionFileStreamApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"featured-section-file-streams\");\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?width,height}`, id, options);\r\n }\r\n\r\n getFeaturedSectionCoverImageByGridItemId(featuredSectionGridItemId, options) {\r\n return super.get(\r\n `${this.base}/featured-section-grid-item-cover/{featuredSectionGridItemId}{?width,height}`,\r\n featuredSectionGridItemId,\r\n options\r\n );\r\n }\r\n}\r\n\r\nexport default FeaturedSectionFileStreamApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { FeaturedSectionFileStreamApiRouteService } from \"common/services\";\r\n\r\nclass FeaturedSectionFileStreamService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new FeaturedSectionFileStreamApiRouteService());\r\n }\r\n\r\n get(id, params, abortSignal = null) {\r\n const url = this.routeService.get(id, params);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getFeaturedSectionCoverImageByGridItemId(featuredGridItemId, params, abortSignal = null) {\r\n const url = this.routeService.getFeaturedSectionCoverImageByGridItemId(featuredGridItemId, params);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default FeaturedSectionFileStreamService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass ContentApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"content\");\r\n }\r\n\r\n find(filter) {\r\n return super.find(`${this.base}/{?searchQuery,isPremium,isActive,page,rpp,sort}`, filter);\r\n }\r\n}\r\n\r\nexport default ContentApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { ContentApiRouteService } from \"common/services\";\r\n\r\nclass ContentService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new ContentApiRouteService());\r\n }\r\n}\r\n\r\nexport default ContentService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass DayHourApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"lookups/day-hours\");\r\n }\r\n\r\n get() {\r\n return super.get(this.base);\r\n }\r\n}\r\n\r\nexport default DayHourApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { DayHourApiRouteService } from \"common/services\";\r\n\r\nclass DayHourService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new DayHourApiRouteService());\r\n }\r\n\r\n get(abortSignal = null) {\r\n const url = this.routeService.get();\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default DayHourService;\r\n","import { BaseCacheService } from \"mrb/core/cache\";\r\nimport { DayHourService } from \"common/services\";\r\n\r\nclass DayHourCacheService extends BaseCacheService {\r\n constructor(rootStore) {\r\n super(\"day-hour\", \"lookup\", async () => {\r\n const response = await this.service.get();\r\n return response.data;\r\n });\r\n this.service = rootStore.createApplicationService(DayHourService);\r\n }\r\n}\r\n\r\nexport default DayHourCacheService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass DeviceApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"devices\");\r\n }\r\n\r\n findUserDeviceForAuthenticatedUser(filter) {\r\n return super.find(`${this.base}/user/{?searchQuery,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n getUserDeviceInfo(params) {\r\n return super.find(`${this.base}/user/info/{?sort,embed,fields}`, params);\r\n }\r\n\r\n findUserDevice(filter) {\r\n return super.find(`${this.base}/{?searchQuery,userIds,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n updateUserDeviceDisabledStatus(id, value) {\r\n return super.update(`${this.base}/{id}/disabled{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n getMenu() {\r\n return super.get(`${this.base}/menu`);\r\n }\r\n\r\n getMenuLatestItems() {\r\n return super.get(`${this.base}/menu/latest-items`);\r\n }\r\n\r\n updateMenu() {\r\n return super.update(`${this.base}/menu`);\r\n }\r\n\r\n getUserDevice(id, options) {\r\n return super.get(`${this.base}/{id}/user{?embed,fields}`, id, options);\r\n }\r\n\r\n registerUserDevice(resource) {\r\n return super.create(`${this.base}/user/register`, resource);\r\n }\r\n\r\n updateUserDevice(resource) {\r\n return super.update(`${this.base}/{id}/user`, resource);\r\n }\r\n\r\n deleteUserDevice(resource) {\r\n return super.delete(`${this.base}/{id}/user`, resource);\r\n }\r\n}\r\n\r\nexport default DeviceApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { DeviceApiRouteService } from \"common/services\";\r\n\r\nclass DeviceService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new DeviceApiRouteService());\r\n }\r\n\r\n findUserDeviceForAuthenticatedUser(filter, abortSignal = null) {\r\n const url = this.routeService.findUserDeviceForAuthenticatedUser(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getUserDeviceInfo(params, abortSignal = null) {\r\n const url = this.routeService.getUserDeviceInfo(params);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n findUserDevice(filter, abortSignal = null) {\r\n const url = this.routeService.findUserDevice(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n updateUserDeviceDisabledStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateUserDeviceDisabledStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n getUserDevice(id, options = {}, abortSignal = null) {\r\n const url = this.routeService.getUserDevice(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getMenu(abortSignal = null) {\r\n const url = this.routeService.getMenu();\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getMenuLatestItems(abortSignal = null) {\r\n const url = this.routeService.getMenuLatestItems();\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n updateMenu(resource, abortSignal = null) {\r\n const url = this.routeService.updateMenu();\r\n return this.apiClient.put(url, resource, null, abortSignal);\r\n }\r\n\r\n registerUserDevice(resource, abortSignal = null) {\r\n const url = this.routeService.registerUserDevice(resource);\r\n return this.apiClient.post(url, resource, null, abortSignal);\r\n }\r\n\r\n updateUserDevice(resource, abortSignal = null) {\r\n const url = this.routeService.updateUserDevice(resource);\r\n return this.apiClient.put(url, resource, null, abortSignal);\r\n }\r\n\r\n deleteUserDevice(resource, abortSignal = null) {\r\n const url = this.routeService.deleteUserDevice(resource);\r\n return this.apiClient.delete(url, null, resource, abortSignal);\r\n }\r\n}\r\n\r\nexport default DeviceService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass DeviceAnalyticsApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"analytics/devices\");\r\n }\r\n\r\n getUserActivitySummary(userId) {\r\n return super.get(`${this.base}/user/{id}/summary`, userId);\r\n }\r\n\r\n getDeviceActivity(filter) {\r\n return super.find(`${this.base}/{?from,to,timeZone}`, filter);\r\n }\r\n\r\n getUserDeviceActivity(filter) {\r\n return super.find(`${this.base}/user-activity/{userId}{?deviceIds,from,to,page,rpp,sort}`, filter);\r\n }\r\n\r\n getDeviceActivitySummary(filter) {\r\n return super.find(`${this.base}/summary{?from,to,previousCycleFrom,previousCycleTo}`, filter);\r\n }\r\n}\r\n\r\nexport default DeviceAnalyticsApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { DeviceAnalyticsApiRouteService } from \"common/services\";\r\n\r\nclass DeviceAnalyticsService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new DeviceAnalyticsApiRouteService());\r\n }\r\n\r\n getUserActivitySummary(userId, abortSignal = null) {\r\n const url = this.routeService.getUserActivitySummary(userId);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getDeviceActivity(filter, abortSignal = null) {\r\n const url = this.routeService.getDeviceActivity(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getUserDeviceActivity(filter, abortSignal = null) {\r\n const url = this.routeService.getUserDeviceActivity(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getDeviceActivitySummary(filter, abortSignal = null) {\r\n const url = this.routeService.getDeviceActivitySummary(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default DeviceAnalyticsService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass DeviceMenuTypeApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"lookups/device-menu-types\");\r\n }\r\n\r\n get() {\r\n return super.get(this.base);\r\n }\r\n}\r\n\r\nexport default DeviceMenuTypeApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { DeviceMenuTypeApiRouteService } from \"common/services\";\r\n\r\nclass DeviceMenuTypeService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new DeviceMenuTypeApiRouteService());\r\n }\r\n\r\n get(abortSignal = null) {\r\n const url = this.routeService.get();\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default DeviceMenuTypeService;\r\n","import { BaseCacheService } from \"mrb/core/cache\";\r\nimport { DeviceMenuTypeService } from \"common/services\";\r\n\r\nclass DeviceMenuTypeCacheService extends BaseCacheService {\r\n constructor(rootStore) {\r\n super(\"device-menu-type\", \"lookup\", async () => {\r\n const response = await this.service.get();\r\n return response.data;\r\n });\r\n this.service = rootStore.createApplicationService(\r\n DeviceMenuTypeService\r\n );\r\n }\r\n}\r\n\r\nexport default DeviceMenuTypeCacheService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass EpisodeSortTypeApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"lookups/episode-sort-types\");\r\n }\r\n\r\n get() {\r\n return super.get(this.base);\r\n }\r\n}\r\n\r\nexport default EpisodeSortTypeApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { EpisodeSortTypeApiRouteService } from \"common/services\";\r\n\r\nclass EpisodeSortTypeService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new EpisodeSortTypeApiRouteService());\r\n }\r\n\r\n get(abortSignal = null) {\r\n const url = this.routeService.get();\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default EpisodeSortTypeService;\r\n","import { BaseCacheService } from \"mrb/core/cache\";\r\nimport { EpisodeSortTypeService } from \"common/services\";\r\n\r\nclass EpisodeSortTypeCacheService extends BaseCacheService {\r\n constructor(rootStore) {\r\n super(\"episode-sort-type\", \"lookup\", async () => {\r\n const response = await this.service.get();\r\n return response.data;\r\n });\r\n this.service = rootStore.createApplicationService(\r\n EpisodeSortTypeService\r\n );\r\n }\r\n}\r\n\r\nexport default EpisodeSortTypeCacheService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass GenreLookupApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"lookups/genres\");\r\n }\r\n\r\n find(filter) {\r\n return super.find(`${this.base}/{?searchQuery}`, filter);\r\n }\r\n\r\n get(id) {\r\n return super.get(`${this.base}/{id}`, id);\r\n }\r\n\r\n create(resource) {\r\n return super.create(this.base, resource);\r\n }\r\n}\r\n\r\nexport default GenreLookupApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { GenreLookupApiRouteService } from \"common/services\";\r\n\r\nclass GenreLookupService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new GenreLookupApiRouteService());\r\n }\r\n}\r\n\r\nexport default GenreLookupService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass LanguageApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"lookups/app-languages\");\r\n }\r\n\r\n find(filter) {\r\n return super.find(`${this.base}/{?searchQuery}`, filter);\r\n }\r\n\r\n create(resource) {\r\n return super.create(this.base, resource);\r\n }\r\n}\r\n\r\nexport default LanguageApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { LanguageApiRouteService } from \"common/services\";\r\n\r\nclass LanguageService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new LanguageApiRouteService());\r\n }\r\n}\r\n\r\nexport default LanguageService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass LocationApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"lookups/locations\");\r\n }\r\n\r\n find(filter) {\r\n return super.find(`${this.base}/{?searchQuery}`, filter);\r\n }\r\n\r\n create(resource) {\r\n return super.create(this.base, resource);\r\n }\r\n}\r\n\r\nexport default LocationApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { LocationApiRouteService } from \"common/services\";\r\n\r\nclass LocationService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new LocationApiRouteService());\r\n }\r\n}\r\n\r\nexport default LocationService;\r\n","class MediaVaultStreamService {\r\n constructor(apiClient, baasic) {\r\n this.apiClient = apiClient;\r\n this.mediaVaultModule = baasic.mediaVaultModule;\r\n }\r\n\r\n create(data, file, abortSignal = null) {\r\n const url = this.mediaVaultModule.streams.routeDefinition.create(data);\r\n let formData = new FormData();\r\n formData.append(\"file\", file);\r\n return this.apiClient.post(url, formData, null, abortSignal);\r\n }\r\n\r\n get(id) {\r\n return this.mediaVaultModule.streams.getBlog(id);\r\n }\r\n}\r\n\r\nexport default MediaVaultStreamService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass NakiNigunAlbumApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"naki-nigun/albums\");\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?embed,fields}`, id, options);\r\n }\r\n\r\n findSongs(albumId, filter) {\r\n return super.find(`${this.base}/{id}/songs{?searchQuery,page,rpp,sort,embed,fields}`, {\r\n id: albumId,\r\n ...filter,\r\n });\r\n }\r\n\r\n deleteAlbumTrack(id) {\r\n return super.delete(`${this.base}/song/{id}`, { id: id });\r\n }\r\n\r\n getAllSongs(id, options) {\r\n return super.get(`${this.base}/{id}/songs/all{?embed,fields}`, id, options);\r\n }\r\n\r\n updateActiveStatus(id, value) {\r\n return super.update(`${this.base}/{id}/active{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updatePremiumStatus(id, value) {\r\n return super.update(`${this.base}/{id}/premium{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateFeaturedStatus(id, value) {\r\n return super.update(`${this.base}/{id}/featured{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateOnByDefaultStatus(id, value) {\r\n return super.update(`${this.base}/{id}/on-by-default{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateOnByDefaultInAppStatus(id, value) {\r\n return super.update(`${this.base}/{id}/on-by-default-in-app{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateOnByDefaultInNakiTouchStatus(id, value) {\r\n return super.update(`${this.base}/{id}/on-by-default-in-embedded-app{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n findShufflableNakiNigunAlbum(filter) {\r\n return super.create(`${this.base}/shufflable-album`, filter);\r\n }\r\n\r\n updateHlsEnabledStatus(id, value) {\r\n return super.update(`${this.base}/{id}/hls-enabled{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n editAlbumTrackTitle(id, resources) {\r\n return super.update(`${this.base}/album-track/{id}/title`, {\r\n resources: resources,\r\n id: id,\r\n });\r\n }\r\n\r\n uploadAlbumTrack(albumId) {\r\n return super.create(`${this.base}/{id}/track`, { id: albumId });\r\n }\r\n\r\n findAudioTrackAlbumSongs(filter) {\r\n return super.find(\r\n `${this.base}/songs{?page,searchQuery,albumIds,artistIds,rpp,sort,embed,fields,audioTrackAvailable}`,\r\n filter\r\n );\r\n }\r\n\r\n findAlbums(filter) {\r\n return super.find(`${this.base}{?page,searchQuery,rpp,sort,embed,fields}`, filter);\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumApiRouteService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass NakiNigunAlbumFileStreamApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"naki-nigun/album-file-streams\");\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?width,height}`, id, options);\r\n }\r\n\r\n getAlbumCoverImageByAlbum(id, options) {\r\n return super.get(`${this.base}/album-cover/{id}{?width,height}`, id, options);\r\n }\r\n\r\n getAlbumTrackAudioFile(id) {\r\n return super.get(`${this.base}/track/{id}`, id);\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumFileStreamApiRouteService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass NakiNigunArtistApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"naki-nigun/artists\");\r\n }\r\n\r\n find(filter) {\r\n return super.find(`${this.base}/{?searchQuery,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?embed,fields}`, id, options);\r\n }\r\n\r\n create(resource) {\r\n return super.create(this.base, resource);\r\n }\r\n\r\n update(resource) {\r\n return super.update(`${this.base}/{id}`, resource);\r\n }\r\n\r\n delete(resource) {\r\n return super.delete(`${this.base}/{id}`, resource);\r\n }\r\n\r\n updateActiveStatus(id, value) {\r\n return super.update(`${this.base}/{id}/active{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updatePremiumStatus(id, value) {\r\n return super.update(`${this.base}/{id}/premium{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateVisibilityStatus(id, value) {\r\n return super.update(`${this.base}/{id}/visibility{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateMobileAppVisibilityStatus(id, value) {\r\n return super.update(`${this.base}/{id}/mobile-app-visibility{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateNakiTouchVisibilityStatus(id, value) {\r\n return super.update(`${this.base}/{id}/embedded-app-visibility{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateFeaturedStatus(id, value) {\r\n return super.update(`${this.base}/{id}/featured{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n findArtists(filter) {\r\n return super.find(`${this.base}{?page,searchQuery,rpp,sort,embed,fields}`, filter);\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { NakiNigunAlbumFileStreamApiRouteService } from \"common/services\";\r\n\r\nclass NakiNigunAlbumFileStreamService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new NakiNigunAlbumFileStreamApiRouteService());\r\n }\r\n\r\n get(id, params, abortSignal = null) {\r\n const url = this.routeService.get(id, params);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getAlbumCoverImageByAlbum(albumId, params, abortSignal = null) {\r\n const url = this.routeService.getAlbumCoverImageByAlbum(albumId, params);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getAlbumTrackAudioFile(id, abortSignal = null) {\r\n const url = this.routeService.getAlbumTrackAudioFile(id);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumFileStreamService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { NakiNigunAlbumApiRouteService } from \"common/services\";\r\nimport { findParams } from \"mrb/core/utils\";\r\n\r\nclass NakiNigunAlbumService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new NakiNigunAlbumApiRouteService());\r\n }\r\n\r\n findShufflableNakiNigunAlbum(filter, abortSignal = null) {\r\n const params = findParams(filter);\r\n const data = {\r\n embed: params.embed,\r\n excludeIds: params.excludeIds,\r\n fields: params.fields,\r\n page: params.page,\r\n rpp: params.rpp,\r\n searchQuery: params.searchQuery,\r\n sort: params.sort,\r\n };\r\n const url = this.routeService.findShufflableNakiNigunAlbum(data);\r\n return this.apiClient.post(url, data, null, abortSignal);\r\n }\r\n\r\n findSongs(albumId, filter, abortSignal = null) {\r\n const url = this.routeService.findSongs(albumId, filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n deleteAlbumTrack(id, abortSignal = null) {\r\n const url = this.routeService.deleteAlbumTrack(id);\r\n return this.apiClient.delete(url, null, null, abortSignal);\r\n }\r\n\r\n getAllSongs(id, options = {}, abortSignal = null) {\r\n const url = this.routeService.getAllSongs(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n updateActiveStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateActiveStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updatePremiumStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updatePremiumStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateOnByDefaultStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateOnByDefaultStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateOnByDefaultInAppStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateOnByDefaultInAppStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateOnByDefaultInNakiTouchStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateOnByDefaultInNakiTouchStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateFeaturedStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateFeaturedStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateHlsEnabledStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateHlsEnabledStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n editAlbumTrackTitle(id, resources, abortSignal = null) {\r\n const url = this.routeService.editAlbumTrackTitle(id, resources);\r\n return this.apiClient.put(url, resources, null, abortSignal);\r\n }\r\n\r\n uploadAlbumTrack(albumId, formData, abortSignal = null) {\r\n const url = this.routeService.uploadAlbumTrack(albumId);\r\n return this.apiClient.post(url, formData, null, abortSignal);\r\n }\r\n\r\n findAudioTrackAlbumSongs(filter, abortSignal = null) {\r\n const url = this.routeService.findAudioTrackAlbumSongs(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n findAlbums(filter, abortSignal = null) {\r\n const url = this.routeService.findAlbums(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { NakiNigunArtistApiRouteService } from \"common/services\";\r\n\r\nclass NakiNigunArtistService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new NakiNigunArtistApiRouteService());\r\n }\r\n\r\n updateActiveStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateActiveStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updatePremiumStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updatePremiumStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateVisibilityStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateVisibilityStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateMobileAppVisibilityStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateMobileAppVisibilityStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateNakiTouchVisibilityStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateNakiTouchVisibilityStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateFeaturedStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateFeaturedStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n findArtists(filter, abortSignal = null) {\r\n const url = this.routeService.findArtists(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass NakiNigunArtistFileStreamApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"naki-nigun/artist-file-streams\");\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?width,height}`, id, options);\r\n }\r\n\r\n getArtistCoverImageByArtist(id, options) {\r\n return super.get(`${this.base}/artist-cover/{id}{?width,height}`, id, options);\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistFileStreamApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { NakiNigunArtistFileStreamApiRouteService } from \"common/services\";\r\n\r\nclass NakiNigunArtistFileStreamService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new NakiNigunArtistFileStreamApiRouteService());\r\n }\r\n\r\n get(id, params, abortSignal = null) {\r\n const url = this.routeService.get(id, params);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getArtistCoverImageByArtist(artistId, params, abortSignal = null) {\r\n const url = this.routeService.getArtistCoverImageByArtist(artistId, params);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default NakiNigunArtistFileStreamService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass NakiNigunUserContentApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"naki-nigun/user-content\");\r\n }\r\n\r\n findArtists(filter) {\r\n return super.find(`${this.base}/artist/{?searchQuery,deviceId,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n findAlbums(filter) {\r\n return super.find(`${this.base}/album/{?searchQuery,deviceId,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n getAlbumsByArtist(id) {\r\n return super.find(`${this.base}/artist/{id}/albums`, {\r\n id: id,\r\n });\r\n }\r\n\r\n genericSearch(filter) {\r\n return super.find(`${this.base}/generic-search/{?searchQuery,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n getNakiNigunArtistWthDeviceSettings(artistId, deviceId, options) {\r\n return super.get(`${this.base}/artist/{artistId}/device/{deviceId}{?embed,fields}`, null, {\r\n deviceId: deviceId,\r\n artistId: artistId,\r\n ...options,\r\n });\r\n }\r\n\r\n getNakiNigunArtist(artistId, options) {\r\n return super.get(`${this.base}/artist/{artistId}{?embed,fields}`, null, {\r\n artistId: artistId,\r\n ...options,\r\n });\r\n }\r\n\r\n getUserDeviceAlbumsByArtist(deviceId, artistId) {\r\n return super.get(`${this.base}/{deviceId}/artist/{artistId}`, null, {\r\n deviceId: deviceId,\r\n artistId: artistId,\r\n });\r\n }\r\n\r\n updateAlbumsTurnedOnStatusBulk(resources) {\r\n return super.update(`${this.base}/album/turned-on/bulk`, {\r\n resources: resources,\r\n });\r\n }\r\n\r\n updateAlbumsTurnedOnStatus(resources, value) {\r\n return super.update(`${this.base}/album/turned-on{?value}`, {\r\n resources: resources,\r\n value: value,\r\n });\r\n }\r\n\r\n updateAlbumsTurnedOnStatusByArtist(resources, value) {\r\n return super.update(`${this.base}/artist/turned-on{?value}`, {\r\n resources: resources,\r\n value: value,\r\n });\r\n }\r\n\r\n updateAlbumsTurnedOnStatusByArtistBulk(resources) {\r\n return super.update(`${this.base}/artist/turned-on/bulk`, {\r\n resources: resources,\r\n });\r\n }\r\n\r\n getFeaturedArtists(deviceId) {\r\n return super.get(`${this.base}/artist/featured{?deviceId}`, null, {\r\n deviceId,\r\n });\r\n }\r\n\r\n getFeaturedAlbums(deviceId) {\r\n return super.get(`${this.base}/album/featured{?deviceId}`, null, {\r\n deviceId,\r\n });\r\n }\r\n}\r\n\r\nexport default NakiNigunUserContentApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { NakiNigunUserContentApiRouteService } from \"common/services\";\r\n\r\nclass NakiNigunUserContentService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new NakiNigunUserContentApiRouteService());\r\n }\r\n\r\n findArtists(filter, abortSignal = null) {\r\n const url = this.routeService.findArtists(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n findAlbums(filter, abortSignal = null) {\r\n const url = this.routeService.findAlbums(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n genericSearch(filter, abortSignal = null) {\r\n const url = this.routeService.genericSearch(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getFeaturedArtists(deviceId, abortSignal = null) {\r\n const url = this.routeService.getFeaturedArtists(deviceId);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getFeaturedAlbums(deviceId, abortSignal = null) {\r\n const url = this.routeService.getFeaturedAlbums(deviceId);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getAlbumsByArtist(artistId, abortSignal = null) {\r\n const url = this.routeService.getAlbumsByArtist(artistId);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getNakiNigunArtistWthDeviceSettings(artistId, deviceId, options, abortSignal = null) {\r\n const url = this.routeService.getNakiNigunArtistWthDeviceSettings(artistId, deviceId, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getNakiNigunArtist(artistId, options, abortSignal = null) {\r\n const url = this.routeService.getNakiNigunArtist(artistId, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getUserDeviceAlbumsByArtist(deviceId, artistId, abortSignal = null) {\r\n const url = this.routeService.getUserDeviceAlbumsByArtist(deviceId, artistId);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n updateAlbumsTurnedOnStatusBulk(resources, abortSignal = null) {\r\n const url = this.routeService.updateAlbumsTurnedOnStatusBulk(resources);\r\n return this.apiClient.put(url, resources, null, abortSignal);\r\n }\r\n\r\n updateAlbumsTurnedOnStatus(resources, value, abortSignal = null) {\r\n const url = this.routeService.updateAlbumsTurnedOnStatus(resources, value);\r\n return this.apiClient.put(url, resources, null, abortSignal);\r\n }\r\n\r\n updateAlbumsTurnedOnStatusByArtist(resources, value, abortSignal = null) {\r\n const url = this.routeService.updateAlbumsTurnedOnStatusByArtist(resources, value);\r\n return this.apiClient.put(url, resources, null, abortSignal);\r\n }\r\n\r\n updateAlbumsTurnedOnStatusByArtistBulk(resources, abortSignal = null) {\r\n const url = this.routeService.updateAlbumsTurnedOnStatusByArtistBulk(resources);\r\n return this.apiClient.put(url, resources, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default NakiNigunUserContentService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass OrderApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"orders\");\r\n }\r\n\r\n find(filter) {\r\n return super.find(`${this.base}/{?searchQuery,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?embed,fields}`, id, options);\r\n }\r\n}\r\n\r\nexport default OrderApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { OrderApiRouteService } from \"common/services\";\r\n\r\nclass OrderService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new OrderApiRouteService());\r\n }\r\n}\r\n\r\nexport default OrderService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass PaymentApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"payment\");\r\n }\r\n\r\n activateTrial(planId) {\r\n return super.create(`${this.base}/trial/{planId}`, { planId });\r\n }\r\n\r\n endTrialPeriod(subscriptionId) {\r\n return super.delete(`${this.base}/subscription/{subscriptionId}/end-trial`, { subscriptionId });\r\n }\r\n\r\n upgradeTrialSubscription(subscriptionId) {\r\n return super.update(`${this.base}/subscription/{subscriptionId}/upgrade-trial`, { subscriptionId });\r\n }\r\n\r\n getUserPremiumInfo(options) {\r\n return super.get(`${this.base}/premium-info{?embed}`, null, options);\r\n }\r\n\r\n getLatestSubscriptionPayment(subscriptionId, options) {\r\n return super.get(`${this.base}/subscription/{id}/latest-payment{?embed}`, subscriptionId, options);\r\n }\r\n\r\n cancelSubscription(subscriptionId) {\r\n return super.delete(`${this.base}/subscription/{subscriptionId}/cancel`, { subscriptionId });\r\n }\r\n\r\n renewSubscription(subscriptionId) {\r\n return super.update(`${this.base}/subscription/{subscriptionId}/renew`, { subscriptionId });\r\n }\r\n\r\n changeSubscriptionPlan(planId) {\r\n return super.update(`${this.base}/subscription/change-plan/{planId}`, {\r\n planId,\r\n });\r\n }\r\n\r\n getSubscriptionChangePreview(subscriptionId, planId) {\r\n return super.get(`${this.base}/subscription/{subscriptionId}/change-plan/{planId}/preview`, null, {\r\n subscriptionId,\r\n planId,\r\n });\r\n }\r\n\r\n preprocess(planId) {\r\n return super.create(`${this.base}/preprocess/{planId}`, { planId });\r\n }\r\n\r\n postprocess() {\r\n return super.update(`${this.base}/postprocess`);\r\n }\r\n\r\n subscribeUsingExistingPaymentMethod(planId) {\r\n return super.create(`${this.base}/subscribe/{planId}`, { planId });\r\n }\r\n\r\n postprocessPaymentMethodUpdate() {\r\n return super.update(`${this.base}/payment-method/update/postprocess`);\r\n }\r\n\r\n setupPaymentMethodRequest() {\r\n return super.create(`${this.base}/setup-payment-method`);\r\n }\r\n\r\n updateDefaultPaymentMethod() {\r\n return super.update(`${this.base}/payment-method/update`);\r\n }\r\n}\r\n\r\nexport default PaymentApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { PaymentApiRouteService } from \"common/services\";\r\n\r\nclass PaymentService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new PaymentApiRouteService());\r\n }\r\n\r\n preprocess(planId, abortSignal = null) {\r\n const url = this.routeService.preprocess(planId);\r\n return this.apiClient.post(url, null, null, abortSignal);\r\n }\r\n\r\n activateTrial(planId, abortSignal = null) {\r\n const url = this.routeService.activateTrial(planId);\r\n return this.apiClient.post(url, null, null, abortSignal);\r\n }\r\n\r\n endTrialPeriod(subscriptionId, abortSignal = null) {\r\n const url = this.routeService.endTrialPeriod(subscriptionId);\r\n return this.apiClient.delete(url, null, null, abortSignal);\r\n }\r\n\r\n upgradeTrialSubscription(subscriptionId, data, abortSignal = null) {\r\n const url = this.routeService.upgradeTrialSubscription(subscriptionId);\r\n return this.apiClient.put(url, data, null, abortSignal);\r\n }\r\n\r\n setupPaymentMethodRequest(abortSignal = null) {\r\n const url = this.routeService.setupPaymentMethodRequest();\r\n return this.apiClient.post(url, null, null, abortSignal);\r\n }\r\n\r\n getUserPremiumInfo(options, abortSignal = null) {\r\n const url = this.routeService.getUserPremiumInfo(options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getLatestSubscriptionPayment(subscriptionId, options, abortSignal = null) {\r\n const url = this.routeService.getLatestSubscriptionPayment(subscriptionId, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n postprocess(data, abortSignal = null) {\r\n const url = this.routeService.postprocess();\r\n return this.apiClient.put(url, data, null, abortSignal);\r\n }\r\n\r\n subscribeUsingExistingPaymentMethod(planId, abortSignal = null) {\r\n const url = this.routeService.subscribeUsingExistingPaymentMethod(planId);\r\n return this.apiClient.post(url, null, null, abortSignal);\r\n }\r\n\r\n updateDefaultPaymentMethod(data, abortSignal = null) {\r\n const url = this.routeService.updateDefaultPaymentMethod();\r\n return this.apiClient.put(url, data, null, abortSignal);\r\n }\r\n\r\n postprocessPaymentMethodUpdate(data, abortSignal = null) {\r\n const url = this.routeService.postprocessPaymentMethodUpdate();\r\n return this.apiClient.put(url, data, null, abortSignal);\r\n }\r\n\r\n cancelSubscription(subscriptionId, abortSignal = null) {\r\n const url = this.routeService.cancelSubscription(subscriptionId);\r\n return this.apiClient.delete(url, null, null, abortSignal);\r\n }\r\n\r\n renewSubscription(subscriptionId, abortSignal = null) {\r\n const url = this.routeService.renewSubscription(subscriptionId);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n changeSubscriptionPlan(planId, abortSignal = null) {\r\n const url = this.routeService.changeSubscriptionPlan(planId);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n getSubscriptionChangePreview(subscriptionId, planId, abortSignal = null) {\r\n const url = this.routeService.getSubscriptionChangePreview(subscriptionId, planId);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default PaymentService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass PodcastApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"podcasts\");\r\n }\r\n\r\n find(filter) {\r\n return super.find(`${this.base}/{?searchQuery,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n findEpisodes(podcastId, filter) {\r\n return super.find(`${this.base}/{id}/episodes{?searchQuery,page,rpp,sort,embed,fields}`, {\r\n id: podcastId,\r\n ...filter,\r\n });\r\n }\r\n\r\n getAllEpisodes(id, options) {\r\n return super.get(`${this.base}/{id}/episodes/all{?embed,fields}`, id, options);\r\n }\r\n\r\n deletePodcastEpisode(id) {\r\n return super.delete(`${this.base}/episode/{id}`, { id: id });\r\n }\r\n\r\n updateExcludedFromRevenueStatus(id, excludedFromRevenue) {\r\n return super.update(`${this.base}/{id}/excluded-from-revenue{?value}`, { id: id, value: excludedFromRevenue });\r\n }\r\n\r\n findShufflablePodcast(filter) {\r\n return super.create(`${this.base}/shufflable-podcast`, filter);\r\n }\r\n\r\n findDevicePodcasts(filter) {\r\n return super.find(`${this.base}/device-podcasts/{?deviceId,searchQuery,page,rpp,sort}`, filter);\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?embed,fields}`, id, options);\r\n }\r\n\r\n create(resource) {\r\n return super.create(this.base, resource);\r\n }\r\n\r\n createGroup(resource) {\r\n return super.create(`${this.base}/group`, resource);\r\n }\r\n\r\n update(resource) {\r\n return super.update(`${this.base}/{id}`, resource);\r\n }\r\n\r\n updateGroup(resource) {\r\n return super.update(`${this.base}/{id}/group`, resource);\r\n }\r\n\r\n delete(resource) {\r\n return super.delete(`${this.base}/{id}`, resource);\r\n }\r\n\r\n updateActiveStatus(id, value) {\r\n return super.update(`${this.base}/{id}/active{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updatePodcastTurnedOnStatus(deviceId, podcastId, value) {\r\n return super.update(`${this.base}/{podcastId}/device/{deviceId}/turned-on{?value}`, {\r\n deviceId: deviceId,\r\n podcastId: podcastId,\r\n value: value,\r\n });\r\n }\r\n\r\n updateOnByDefaultStatus(id, value) {\r\n return super.update(`${this.base}/{id}/on-by-default{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateOnByDefaultInAppStatus(id, value) {\r\n return super.update(`${this.base}/{id}/on-by-default-in-app{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateOnByDefaultInNakiTouchStatus(id, value) {\r\n return super.update(`${this.base}/{id}/on-by-default-in-embedded-app{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updatePremiumStatus(id, value) {\r\n return super.update(`${this.base}/{id}/premium{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateVisibilityStatus(id, value) {\r\n return super.update(`${this.base}/{id}/visibility{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateAppVisibilityStatus(id, value) {\r\n return super.update(`${this.base}/{id}/app-visibility{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateNakiTouchVisibilityStatus(id, value) {\r\n return super.update(`${this.base}/{id}/embedded-app-visibility{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateRecentlyUpdatedVisibilityStatus(id, value) {\r\n return super.update(`${this.base}/{id}/recently-updated-visibility{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateFeaturedStatus(id, value) {\r\n return super.update(`${this.base}/{id}/featured{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateHlsEnabledStatus(id, value) {\r\n return super.update(`${this.base}/{id}/hls-enabled{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n editPodcastEpisodeTitle(id, resources) {\r\n return super.update(`${this.base}/episode/{id}/title`, {\r\n resources: resources,\r\n id: id,\r\n });\r\n }\r\n\r\n uploadEpisode(podcastId) {\r\n return super.create(`${this.base}/{id}/episode`, { id: podcastId });\r\n }\r\n\r\n findAudioTrackEpisodes(filter) {\r\n return super.find(\r\n `${this.base}/episodes{?page,searchQuery,podcastIds,podcastGroupIds,rpp,sort,embed,fields,audioTrackAvailable}`,\r\n filter\r\n );\r\n }\r\n\r\n getPodcasts(filter) {\r\n return super.find(`${this.base}/{?page,searchQuery,rpp,sort,embed,fields,podcastType}`, filter);\r\n }\r\n}\r\n\r\nexport default PodcastApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { PodcastApiRouteService } from \"common/services\";\r\nimport { findParams } from \"mrb/core/utils\";\r\n\r\nclass PodcastService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new PodcastApiRouteService());\r\n }\r\n\r\n findShufflablePodcast(filter, abortSignal = null) {\r\n const params = findParams(filter);\r\n const data = {\r\n embed: params.embed,\r\n excludeIds: params.excludeIds,\r\n fields: params.fields,\r\n page: params.page,\r\n rpp: params.rpp,\r\n searchQuery: params.searchQuery,\r\n sort: params.sort,\r\n };\r\n const url = this.routeService.findShufflablePodcast(data);\r\n return this.apiClient.post(url, data, null, abortSignal);\r\n }\r\n\r\n getAllEpisodes(id, options = {}, abortSignal = null) {\r\n const url = this.routeService.getAllEpisodes(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n deletePodcastEpisode(id, abortSignal = null) {\r\n const url = this.routeService.deletePodcastEpisode(id);\r\n return this.apiClient.delete(url, null, null, abortSignal);\r\n }\r\n\r\n updateExcludedFromRevenueStatus(id, excludedFromRevenue, abortSignal = null) {\r\n const url = this.routeService.updateExcludedFromRevenueStatus(id, excludedFromRevenue);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n findEpisodes(podcastId, filter, abortSignal = null) {\r\n const url = this.routeService.findEpisodes(podcastId, filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n updateActiveStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateActiveStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n findDevicePodcasts(filter, abortSignal = null) {\r\n const url = this.routeService.findDevicePodcasts(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n updateOnByDefaultStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateOnByDefaultStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateOnByDefaultInAppStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateOnByDefaultInAppStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateOnByDefaultInNakiTouchStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateOnByDefaultInNakiTouchStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updatePremiumStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updatePremiumStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updatePodcastTurnedOnStatus(deviceId, podcastId, value, abortSignal = null) {\r\n const url = this.routeService.updatePodcastTurnedOnStatus(deviceId, podcastId, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateVisibilityStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateVisibilityStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateAppVisibilityStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateAppVisibilityStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateNakiTouchVisibilityStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateNakiTouchVisibilityStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateRecentlyUpdatedVisibilityStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateRecentlyUpdatedVisibilityStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateFeaturedStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateFeaturedStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n createGroup(resource, abortSignal = null) {\r\n const url = this.routeService.createGroup(resource);\r\n return this.apiClient.post(url, resource, null, abortSignal);\r\n }\r\n\r\n updateGroup(resource, abortSignal = null) {\r\n const url = this.routeService.updateGroup(resource);\r\n return this.apiClient.put(url, resource, null, abortSignal);\r\n }\r\n\r\n updateHlsEnabledStatus(podcastId, value, abortSignal = null) {\r\n const url = this.routeService.updateHlsEnabledStatus(podcastId, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n editPodcastEpisodeTitle(id, resources, abortSignal = null) {\r\n const url = this.routeService.editPodcastEpisodeTitle(id, resources);\r\n return this.apiClient.put(url, resources, null, abortSignal);\r\n }\r\n\r\n uploadEpisode(podcastId, formData, abortSignal = null) {\r\n const url = this.routeService.uploadEpisode(podcastId);\r\n return this.apiClient.post(url, formData, null, abortSignal);\r\n }\r\n\r\n findAudioTrackEpisodes(filter, abortSignal = null) {\r\n const url = this.routeService.findAudioTrackEpisodes(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPodcasts(filter, abortSignal = null) {\r\n const url = this.routeService.getPodcasts(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default PodcastService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass PodcastFileStreamApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"podcast-file-streams\");\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?width,height}`, id, options);\r\n }\r\n\r\n getPodcastCoverImageByPodcast(id, options) {\r\n return super.get(`${this.base}/podcast-cover/{id}{?width,height}`, id, options);\r\n }\r\n\r\n getPodcastEpisodeAudioFile(id) {\r\n return super.get(`${this.base}/episode/{id}`, id);\r\n }\r\n}\r\n\r\nexport default PodcastFileStreamApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { PodcastFileStreamApiRouteService } from \"common/services\";\r\n\r\nclass PodcastFileStreamService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new PodcastFileStreamApiRouteService());\r\n }\r\n\r\n get(id, params, abortSignal = null) {\r\n const url = this.routeService.get(id, params);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPodcastCoverImageByPodcast(podcastId, params, abortSignal = null) {\r\n const url = this.routeService.getPodcastCoverImageByPodcast(podcastId, params);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPodcastEpisodeAudioFile(id, abortSignal = null) {\r\n const url = this.routeService.getPodcastEpisodeAudioFile(id);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default PodcastFileStreamService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass UserPodcastExpirationApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"podcast-expiration\");\r\n }\r\n\r\n find(filter) {\r\n return super.find(\r\n `${this.base}/{?userId,searchQuery,page,rpp,sort}`,\r\n filter\r\n );\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?embed,fields}`, id, options);\r\n }\r\n\r\n create(resource) {\r\n return super.create(this.base, resource);\r\n }\r\n\r\n update(resource) {\r\n return super.update(`${this.base}/{id}`, resource);\r\n }\r\n\r\n delete(resource) {\r\n return super.delete(`${this.base}/{id}`, resource);\r\n }\r\n}\r\n\r\nexport default UserPodcastExpirationApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { UserPodcastExpirationApiRouteService } from \"common/services\";\r\n\r\nclass UserPodcastExpirationService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new UserPodcastExpirationApiRouteService());\r\n }\r\n}\r\n\r\nexport default UserPodcastExpirationService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass PodcastAnalyticsApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"analytics/podcasts\");\r\n }\r\n\r\n getTrendingPodcasts(filter) {\r\n return super.find(\r\n `${this.base}/{?from,to,previousCycleFrom,previousCycleTo,timeZone,page,rpp,uniqueListeners}`,\r\n filter\r\n );\r\n }\r\n\r\n getPodcastActivity(id, options) {\r\n return super.get(`${this.base}/{id}{?from,to,previousCycleFrom,previousCycleTo,timeZone}`, id, options);\r\n }\r\n\r\n getPodcastStats(id, options) {\r\n return super.get(`${this.base}/{id}/stats{?from,to,previousCycleFrom,previousCycleTo,timeZone}`, id, options);\r\n }\r\n\r\n getPodcastSummary(id, options) {\r\n return super.get(\r\n `${this.base}/{id}/summary{?from,to,previousCycleFrom,previousCycleTo,embed,fields}`,\r\n id,\r\n options\r\n );\r\n }\r\n\r\n getPodcastListenersStats() {\r\n return super.get(`${this.base}/listeners`);\r\n }\r\n\r\n getTrendingPodcastsForProducer(filter) {\r\n return super.find(\r\n `${this.base}/producer/{?from,to,previousCycleFrom,previousCycleTo,timeZone,page,rpp,uniqueListeners}`,\r\n filter\r\n );\r\n }\r\n\r\n getTrendingPodcastsTotalStreamsForProducer(filter) {\r\n return super.find(`${this.base}/producer-total/{?from,to,timeZone,uniqueListeners}`, filter);\r\n }\r\n}\r\n\r\nexport default PodcastAnalyticsApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { PodcastAnalyticsApiRouteService } from \"common/services\";\r\n\r\nclass PodcastAnalyticsService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new PodcastAnalyticsApiRouteService());\r\n }\r\n\r\n getPodcastPremiumStatistic(id, options, abortSignal = null) {\r\n const url = this.routeService.getPodcastPremiumStatistic(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPodcastGroupPremiumStatistic(id, options, abortSignal = null) {\r\n const url = this.routeService.getPodcastGroupPremiumStatistic(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getTrendingPodcasts(filter, abortSignal = null) {\r\n const url = this.routeService.getTrendingPodcasts(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPodcastActivity(id, options, abortSignal = null) {\r\n const url = this.routeService.getPodcastActivity(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPodcastStats(id, options, abortSignal = null) {\r\n const url = this.routeService.getPodcastStats(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPodcastSummary(id, options, abortSignal = null) {\r\n const url = this.routeService.getPodcastSummary(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPodcastListenersStats(abortSignal = null) {\r\n const url = this.routeService.getPodcastListenersStats();\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getTrendingPodcastsForProducer(filter, abortSignal = null) {\r\n const url = this.routeService.getTrendingPodcastsForProducer(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getTrendingPodcastsTotalStreamsForProducer(filter, abortSignal = null) {\r\n const url = this.routeService.getTrendingPodcastsTotalStreamsForProducer(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default PodcastAnalyticsService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass PremiumPaymentAnalyticsApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"analytics/premium-payment\");\r\n }\r\n\r\n getPodcastGroupPaymentStatistic(id, options) {\r\n return super.get(`${this.base}/podcast-group/{id}{?from,to,page,rpp}`, id, options);\r\n }\r\n\r\n getPodcastPaymentStatistic(id, options) {\r\n return super.get(`${this.base}/podcast/{id}{?from,to,page,rpp}`, id, options);\r\n }\r\n\r\n getStationPaymentStatistic(id, options) {\r\n return super.get(`${this.base}/station/{id}{?from,to,page,rpp}`, id, options);\r\n }\r\n\r\n findPremiumPaymentSummary(filter) {\r\n return super.find(`${this.base}/summary{?searchQuery,from,to,page,rpp,sort}`, filter);\r\n }\r\n}\r\n\r\nexport default PremiumPaymentAnalyticsApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { PremiumPaymentAnalyticsApiRouteService } from \"common/services\";\r\n\r\nclass PremiumPaymentAnalyticsService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new PremiumPaymentAnalyticsApiRouteService());\r\n }\r\n\r\n getPodcastGroupPaymentStatistic(id, options, abortSignal = null) {\r\n const url = this.routeService.getPodcastGroupPaymentStatistic(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPodcastPaymentStatistic(id, options, abortSignal = null) {\r\n const url = this.routeService.getPodcastPaymentStatistic(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getStationPaymentStatistic(id, options, abortSignal = null) {\r\n const url = this.routeService.getStationPaymentStatistic(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n findPremiumPaymentSummary(filter, abortSignal = null) {\r\n const url = this.routeService.findPremiumPaymentSummary(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default PremiumPaymentAnalyticsService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass ProducerApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"lookups/producers\");\r\n }\r\n\r\n find(filter) {\r\n return super.find(`${this.base}/{?searchQuery}`, filter);\r\n }\r\n\r\n get(id) {\r\n return super.get(`${this.base}/{id}`, id);\r\n }\r\n\r\n create(resource) {\r\n return super.create(this.base, resource);\r\n }\r\n\r\n update(resource) {\r\n return super.update(`${this.base}/{id}`, resource);\r\n }\r\n}\r\n\r\nexport default ProducerApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { ProducerApiRouteService } from \"common/services\";\r\n\r\nclass ProducerService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new ProducerApiRouteService());\r\n }\r\n}\r\n\r\nexport default ProducerService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass ProducerPreviewReportPeriodCellApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"producer/reports\");\r\n }\r\n\r\n findProducerReportPayoutUserEvents(filter) {\r\n return super.find(\r\n `${this.base}/payout-user-events/{?producerId,userId,deviceIds,from,to,page,rpp,sort,embed,fields}`,\r\n filter\r\n );\r\n }\r\n\r\n findProducerReports(filter) {\r\n return super.find(`${this.base}/{?producerId,from,to,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n getProducerPaymentSummary(producerId, options) {\r\n return super.get(`${this.base}/summary{?producerId,monthOfYear}`, producerId, options);\r\n }\r\n\r\n findProducerReportItems(filter) {\r\n return super.find(`${this.base}/items{?producerId,searchQuery,monthOfYear,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n}\r\n\r\nexport default ProducerPreviewReportPeriodCellApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { ProducerReportApiRouteService } from \"common/services\";\r\n\r\nclass ProducerReportService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new ProducerReportApiRouteService());\r\n }\r\n\r\n findProducerReportPayoutUserEvents(filter, abortSignal = null) {\r\n const url = this.routeService.findProducerReportPayoutUserEvents(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n findProducerReports(filter, abortSignal = null) {\r\n const url = this.routeService.findProducerReports(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getProducerPaymentSummary(producerId, options, abortSignal = null) {\r\n const url = this.routeService.getProducerPaymentSummary(producerId, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n findProducerReportItems(filter, abortSignal = null) {\r\n const url = this.routeService.findProducerReportItems(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default ProducerReportService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { ProducerUserAccountApiRouteService } from \"common/services\";\r\n\r\nclass ProducerUserAccountService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new ProducerUserAccountApiRouteService());\r\n }\r\n\r\n getProducerAccountsSummary(producerId, abortSignal = null) {\r\n const url = this.routeService.getProducerAccountsSummary(producerId);\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n\r\n getAdminProducerAccountSummary(accountId, abortSignal = null) {\r\n const url = this.routeService.getAdminProducerAccountSummary(accountId);\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n\r\n getAdminProducerAccountAssignedProducers(accountId, abortSignal = null) {\r\n const url = this.routeService.getAdminProducerAccountAssignedProducers(accountId);\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n\r\n getProducerAccountSummary(abortSignal = null) {\r\n const url = this.routeService.getProducerAccountSummary();\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n\r\n getAccountTotalBalance(accountId, abortSignal = null) {\r\n const url = this.routeService.getAccountTotalBalance(accountId);\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n\r\n getProducerTotalBalance(producerId, abortSignal = null) {\r\n const url = this.routeService.getProducerTotalBalance(producerId);\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n\r\n getStripeConnectAccounts(abortSignal = null) {\r\n const url = this.routeService.getStripeConnectAccounts();\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n\r\n getAdminProducerAccountBalance(filter, abortSignal = null) {\r\n const url = this.routeService.getAdminProducerAccountBalance(filter);\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n\r\n getAdminProducerAccountRevenueTransaction(filter, abortSignal = null) {\r\n const url = this.routeService.getAdminProducerAccountRevenueTransaction(filter);\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n\r\n getProducerAccountBalance(filter, abortSignal = null) {\r\n const url = this.routeService.getProducerAccountBalance(filter);\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n\r\n getProducerAccountRevenueTransaction(filter, abortSignal = null) {\r\n const url = this.routeService.getProducerAccountRevenueTransaction(filter);\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n\r\n updateAccounts(producerId, resource, abortSignal = null) {\r\n const url = this.routeService.updateAccounts(producerId);\r\n return this.apiClient.put(url, resource, null, abortSignal);\r\n }\r\n\r\n addAccountBalance(resource, abortSignal = null) {\r\n const url = this.routeService.addAccountBalance();\r\n return this.apiClient.post(url, resource, null, abortSignal);\r\n }\r\n\r\n processPayoutToBankAccount(accountId, resource, abortSignal = null) {\r\n const url = this.routeService.processPayoutToBankAccount(accountId);\r\n return this.apiClient.post(url, resource, null, abortSignal);\r\n }\r\n\r\n updateStripeAccount(resource, abortSignal = null) {\r\n const url = this.routeService.updateStripeAccount();\r\n return this.apiClient.put(url, resource, null, abortSignal);\r\n }\r\n\r\n getProducers(abortSignal = null) {\r\n const url = this.routeService.getProducers();\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getProducersSummary(filter, abortSignal = null) {\r\n const url = this.routeService.getProducersSummary(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getStripeConnectOnboardingStatus(abortSignal = null) {\r\n const url = this.routeService.getStripeConnectOnboardingStatus();\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n createStripeConnectLink(resource, abortSignal = null) {\r\n const url = this.routeService.createStripeConnectLink();\r\n return this.apiClient.post(url, resource, null, abortSignal);\r\n }\r\n\r\n getProducerUserAccountProducerType(abortSignal = null) {\r\n const url = this.routeService.getProducerUserAccountProducerType();\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default ProducerUserAccountService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass ProducerUserAccountApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"producer-accounts\");\r\n }\r\n\r\n find(filter) {\r\n return super.find(\r\n `${this.base}/admin/producer-user-accounts/{?producerIds,userIds,page,rpp,sort,embed,fields}`,\r\n filter\r\n );\r\n }\r\n\r\n getProducerAccountsSummary(id) {\r\n return super.get(`${this.base}/admin/{id}/accounts-summary`, id);\r\n }\r\n\r\n getAdminProducerAccountSummary(accountId) {\r\n return super.get(`${this.base}/admin/account/${accountId}/summary`);\r\n }\r\n\r\n getAdminProducerAccountAssignedProducers(accountId) {\r\n return super.get(`${this.base}/admin/account/${accountId}/assigned-producers`);\r\n }\r\n\r\n getProducerAccountSummary() {\r\n return super.get(`${this.base}/account-summary`);\r\n }\r\n\r\n getAccountTotalBalance(id) {\r\n return super.get(`${this.base}/admin/account/{id}/total-balance`, id);\r\n }\r\n\r\n getProducerTotalBalance(id) {\r\n return super.get(`${this.base}/admin/{id}/total-balance`, id);\r\n }\r\n\r\n getStripeConnectAccounts() {\r\n return super.get(`${this.base}/admin/stripe-connect`);\r\n }\r\n\r\n getAdminProducerAccountBalance(filter) {\r\n return super.find(\r\n `${this.base}/admin/producer-user-account-balance/{?producerUserAccountIds,page,rpp,sort}`,\r\n filter\r\n );\r\n }\r\n\r\n getAdminProducerAccountRevenueTransaction(filter) {\r\n return super.find(\r\n `${this.base}/admin/producer-revenue-transaction/{?producerUserAccountIds,page,rpp,sort}`,\r\n filter\r\n );\r\n }\r\n\r\n getProducerAccountBalance(filter) {\r\n return super.find(`${this.base}/producer-user-account-balance/{?page,rpp,sort}`, filter);\r\n }\r\n\r\n getProducerAccountRevenueTransaction(filter) {\r\n return super.find(`${this.base}/producer-revenue-transaction/{?page,rpp,sort}`, filter);\r\n }\r\n\r\n updateAccounts(producerId) {\r\n return super.update(`${this.base}/admin/account/{id}`, { id: producerId });\r\n }\r\n\r\n addAccountBalance() {\r\n return super.create(`${this.base}/admin/account/add-balance`);\r\n }\r\n\r\n processPayoutToBankAccount(accountId) {\r\n return super.update(`${this.base}/{id}/payout`, { id: accountId });\r\n }\r\n\r\n updateStripeAccount() {\r\n return super.update(`${this.base}/admin/stripe-account-update`);\r\n }\r\n\r\n getProducers() {\r\n return super.get(`${this.base}/producers`);\r\n }\r\n\r\n getProducersSummary(filter) {\r\n return super.find(`${this.base}/admin/producers-summary/{?size,from,to}`, filter);\r\n }\r\n\r\n getStripeConnectOnboardingStatus() {\r\n return super.get(`${this.base}/stripe-connect-onboarding-status`);\r\n }\r\n\r\n createStripeConnectLink() {\r\n return super.create(`${this.base}/stripe-connect-link`);\r\n }\r\n\r\n getProducerUserAccountProducerType() {\r\n return super.get(`${this.base}/producer-type`);\r\n }\r\n}\r\n\r\nexport default ProducerUserAccountApiRouteService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass ProducerAnalyticsApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"analytics/producers\");\r\n }\r\n\r\n findProducerReportPayoutUserEvents(filter) {\r\n return super.find(\r\n `${this.base}/reports/payout-user-events/{?userId,deviceIds,from,to,page,rpp,sort,embed,fields}`,\r\n filter\r\n );\r\n }\r\n\r\n findProducerReports(filter) {\r\n return super.find(`${this.base}/reports/{?producerIds,from,to,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n findProducerPaymentSummary(filter) {\r\n return super.find(`${this.base}/summary{?searchQuery,monthOfYear,page,rpp,sort}`, filter);\r\n }\r\n\r\n getProducerPaymentSummary(producerId, options) {\r\n return super.get(`${this.base}/{id}/reports/summary{?monthOfYear}`, producerId, options);\r\n }\r\n\r\n getProducerSummary(producerId) {\r\n return super.get(`${this.base}/{id}/summary`, producerId);\r\n }\r\n\r\n getProducerMostPopularContent(producerId, options) {\r\n return super.get(`${this.base}/{id}/top-content{?page,rpp}`, producerId, options);\r\n }\r\n\r\n findProducerReportItems(filter) {\r\n return super.find(\r\n `${this.base}/{producerId}/reports/items{?searchQuery,monthOfYear,page,rpp,sort,embed,fields}`,\r\n filter\r\n );\r\n }\r\n}\r\n\r\nexport default ProducerAnalyticsApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { ProducerAnalyticsApiRouteService } from \"common/services\";\r\n\r\nclass ProducerAnalyticsService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new ProducerAnalyticsApiRouteService());\r\n }\r\n\r\n findProducerReportPayoutUserEvents(filter, abortSignal = null) {\r\n const url = this.routeService.findProducerReportPayoutUserEvents(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n findProducerReports(filter, abortSignal = null) {\r\n const url = this.routeService.findProducerReports(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n findProducerPaymentSummary(filter, abortSignal = null) {\r\n const url = this.routeService.findProducerPaymentSummary(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getProducerPaymentSummary(producerId, options, abortSignal = null) {\r\n const url = this.routeService.getProducerPaymentSummary(producerId, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getProducerMostPopularContent(producerId, options, abortSignal = null) {\r\n const url = this.routeService.getProducerMostPopularContent(producerId, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getProducerSummary(producerId, abortSignal = null) {\r\n const url = this.routeService.getProducerSummary(producerId);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n findProducerReportItems(filter, abortSignal = null) {\r\n const url = this.routeService.findProducerReportItems(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default ProducerAnalyticsService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass ProductApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"application-product\");\r\n }\r\n\r\n getSubscription(id, options) {\r\n return super.get(`${this.base}/subscription/{id}{?embed,fields}`, id, options);\r\n }\r\n\r\n getAllSubscriptions() {\r\n return super.get(`${this.base}/subscription`);\r\n }\r\n\r\n getSubscriptionBundle(id, options) {\r\n return super.get(`${this.base}/subscription/bundle/{id}`, id, options);\r\n }\r\n\r\n getAllSubscriptionBundles() {\r\n return super.get(`${this.base}/subscription/bundle`);\r\n }\r\n}\r\n\r\nexport default ProductApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { ProductApiRouteService } from \"common/services\";\r\n\r\nclass ProductService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new ProductApiRouteService());\r\n }\r\n\r\n getSubscription(id, options, abortSignal = null) {\r\n const url = this.routeService.getSubscription(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getAllSubscriptions(abortSignal = null) {\r\n const url = this.routeService.getAllSubscriptions();\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getSubscriptionBundle(id, options, abortSignal = null) {\r\n const url = this.routeService.getSubscriptionBundle(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getAllSubscriptionBundles(abortSignal = null) {\r\n const url = this.routeService.getAllSubscriptionBundles();\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default ProductService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass ShuffleApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"shuffles\");\r\n }\r\n\r\n find(filter) {\r\n return super.find(`${this.base}/{?searchQuery,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?embed,fields}`, id, options);\r\n }\r\n\r\n createStation(resource) {\r\n return super.create(`${this.base}/station`, resource);\r\n }\r\n\r\n createNakiNigun(resource) {\r\n return super.create(`${this.base}/naki-nigun`, resource);\r\n }\r\n\r\n createPodcast(resource) {\r\n return super.create(`${this.base}/podcast`, resource);\r\n }\r\n\r\n update(resource) {\r\n return super.update(`${this.base}/{id}`, resource);\r\n }\r\n\r\n delete(resource) {\r\n return super.delete(`${this.base}/{id}`, resource);\r\n }\r\n}\r\n\r\nexport default ShuffleApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { ShuffleApiRouteService } from \"common/services\";\r\n\r\nclass ShuffleService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new ShuffleApiRouteService());\r\n }\r\n\r\n createStation(resource, abortSignal = null) {\r\n const url = this.routeService.createStation(resource);\r\n return this.apiClient.post(url, resource, null, abortSignal);\r\n }\r\n\r\n createPodcast(resource, abortSignal = null) {\r\n const url = this.routeService.createPodcast(resource);\r\n return this.apiClient.post(url, resource, null, abortSignal);\r\n }\r\n\r\n createNakiNigun(resource, abortSignal = null) {\r\n const url = this.routeService.createNakiNigun(resource);\r\n return this.apiClient.post(url, resource, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default ShuffleService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass ShuffleWeightApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"lookups/shuffle-weights\");\r\n }\r\n\r\n get() {\r\n return super.get(this.base);\r\n }\r\n}\r\n\r\nexport default ShuffleWeightApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { ShuffleWeightApiRouteService } from \"common/services\";\r\n\r\nclass ShuffleWeightService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new ShuffleWeightApiRouteService());\r\n }\r\n}\r\n\r\nexport default ShuffleWeightService;\r\n","import { BaseCacheService } from \"mrb/core/cache\";\r\nimport { ShuffleWeightService } from \"common/services\";\r\n\r\nclass ShuffleWeightCacheService extends BaseCacheService {\r\n constructor(rootStore) {\r\n super(\"shuffle-weight\", \"lookup\", async () => {\r\n const response = await this.service.get();\r\n return response.data;\r\n });\r\n this.service = rootStore.createApplicationService(ShuffleWeightService);\r\n }\r\n}\r\n\r\nexport default ShuffleWeightCacheService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass StationApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"stations\");\r\n }\r\n\r\n find(filter) {\r\n return super.find(`${this.base}/{?searchQuery,shuffleWeightIds,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n findShufflableStation(filter) {\r\n return super.create(`${this.base}/shufflable-station`, filter);\r\n }\r\n\r\n findDeviceStations(filter) {\r\n return super.find(`${this.base}/device-stations/{?deviceId,searchQuery,page,rpp,sort}`, filter);\r\n }\r\n\r\n updateExcludedFromRevenueStatus(id, excludedFromRevenue) {\r\n return super.update(`${this.base}/{id}/excluded-from-revenue{?value}`, { id: id, value: excludedFromRevenue });\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?embed,fields}`, id, options);\r\n }\r\n\r\n create(resource) {\r\n return super.create(this.base, resource);\r\n }\r\n\r\n update(resource) {\r\n return super.update(`${this.base}/{id}`, resource);\r\n }\r\n\r\n delete(resource) {\r\n return super.delete(`${this.base}/{id}`, resource);\r\n }\r\n\r\n updateActiveStatus(id, value) {\r\n return super.update(`${this.base}/{id}/active{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateOnByDefaultStatus(id, value) {\r\n return super.update(`${this.base}/{id}/on-by-default{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateOnByDefaultInAppStatus(id, value) {\r\n return super.update(`${this.base}/{id}/on-by-default-in-app{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateOnByDefaultInNakiTouchStatus(id, value) {\r\n return super.update(`${this.base}/{id}/on-by-default-in-embedded-app{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updatePremiumStatus(id, value) {\r\n return super.update(`${this.base}/{id}/premium{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateVisibilityStatus(id, value) {\r\n return super.update(`${this.base}/{id}/visibility{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateAppVisibilityStatus(id, value) {\r\n return super.update(`${this.base}/{id}/app-visibility{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateNakiTouchVisibilityStatus(id, value) {\r\n return super.update(`${this.base}/{id}/embedded-app-visibility{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n\r\n updateStationTurnedOnStatus(deviceId, stationId, value) {\r\n return super.update(`${this.base}/{stationId}/device/{deviceId}/turned-on{?value}`, {\r\n deviceId: deviceId,\r\n stationId: stationId,\r\n value: value,\r\n });\r\n }\r\n\r\n updateFeaturedStatus(id, value) {\r\n return super.update(`${this.base}/{id}/featured{?value}`, {\r\n id: id,\r\n value: value,\r\n });\r\n }\r\n}\r\n\r\nexport default StationApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { StationApiRouteService } from \"common/services\";\r\nimport { findParams } from \"mrb/core/utils\";\r\n\r\nclass StationService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new StationApiRouteService());\r\n }\r\n\r\n findShufflableStation(filter, abortSignal = null) {\r\n const params = findParams(filter);\r\n const data = {\r\n embed: params.embed,\r\n excludeIds: params.excludeIds,\r\n fields: params.fields,\r\n page: params.page,\r\n rpp: params.rpp,\r\n searchQuery: params.searchQuery,\r\n sort: params.sort,\r\n };\r\n const url = this.routeService.findShufflableStation(data);\r\n return this.apiClient.post(url, data, null, abortSignal);\r\n }\r\n\r\n updateActiveStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateActiveStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateExcludedFromRevenueStatus(id, excludedFromRevenue, abortSignal = null) {\r\n const url = this.routeService.updateExcludedFromRevenueStatus(id, excludedFromRevenue);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateOnByDefaultStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateOnByDefaultStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateOnByDefaultInAppStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateOnByDefaultInAppStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateOnByDefaultInNakiTouchStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateOnByDefaultInNakiTouchStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updatePremiumStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updatePremiumStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateVisibilityStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateVisibilityStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateStationTurnedOnStatus(deviceId, stationId, value, abortSignal = null) {\r\n const url = this.routeService.updateStationTurnedOnStatus(deviceId, stationId, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateAppVisibilityStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateAppVisibilityStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateNakiTouchVisibilityStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateNakiTouchVisibilityStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n updateFeaturedStatus(id, value, abortSignal = null) {\r\n const url = this.routeService.updateFeaturedStatus(id, value);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n findDeviceStations(filter, abortSignal = null) {\r\n const url = this.routeService.findDeviceStations(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default StationService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass StationFileStreamApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"station-file-streams\");\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?width,height}`, id, options);\r\n }\r\n\r\n getStationCoverImageByStation(id, options) {\r\n return super.get(\r\n `${this.base}/station-cover/{id}{?width,height}`,\r\n id,\r\n options\r\n );\r\n }\r\n\r\n createStationCoverImage(stationId, fileName) {\r\n return super.create(`${this.base}/{stationId}/cover/{fileName}`, {\r\n stationId: stationId,\r\n fileName: fileName,\r\n });\r\n }\r\n}\r\n\r\nexport default StationFileStreamApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { StationFileStreamApiRouteService } from \"common/services\";\r\n\r\nclass StationFileStreamService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new StationFileStreamApiRouteService());\r\n }\r\n\r\n createStationCoverImage(stationId, file, abortSignal = null) {\r\n let formData = new FormData();\r\n formData.append(\"file\", file, file.name);\r\n const url = this.routeService.createStationCoverImage(\r\n stationId,\r\n file.name\r\n );\r\n return this.apiClient.post(url, formData, null, abortSignal);\r\n }\r\n\r\n updateStationCoverImage(stationId, file, abortSignal = null) {\r\n let formData = new FormData();\r\n formData.append(\"file\", file, file.name);\r\n const url = this.routeService.update(stationId, file.name);\r\n return this.apiClient.put(url, formData, null, abortSignal);\r\n }\r\n\r\n get(id, params, abortSignal = null) {\r\n const url = this.routeService.get(id, params);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getStationCoverImageByStation(stationId, params, abortSignal = null) {\r\n const url = this.routeService.getStationCoverImageByStation(\r\n stationId,\r\n params\r\n );\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default StationFileStreamService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass StationFileApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"station-files\");\r\n }\r\n\r\n deleteByStation(stationId) {\r\n return super.delete(`${this.base}/unlink-by-station/{id}`, {\r\n id: stationId,\r\n });\r\n }\r\n}\r\n\r\nexport default StationFileApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { StationFileApiRouteService } from \"common/services\";\r\n\r\nclass StationFileService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new StationFileApiRouteService());\r\n }\r\n\r\n deleteByStation(stationId, abortSignal = null) {\r\n const url = this.routeService.deleteByStation(stationId);\r\n return this.apiClient.delete(url, null, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default StationFileService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass UserStationExpirationApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"station-expiration\");\r\n }\r\n\r\n find(filter) {\r\n return super.find(\r\n `${this.base}/{?userId,searchQuery,page,rpp,sort}`,\r\n filter\r\n );\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?embed,fields}`, id, options);\r\n }\r\n\r\n create(resource) {\r\n return super.create(this.base, resource);\r\n }\r\n\r\n update(resource) {\r\n return super.update(`${this.base}/{id}`, resource);\r\n }\r\n\r\n delete(resource) {\r\n return super.delete(`${this.base}/{id}`, resource);\r\n }\r\n}\r\n\r\nexport default UserStationExpirationApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { UserStationExpirationApiRouteService } from \"common/services\";\r\n\r\nclass UserStationExpirationService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new UserStationExpirationApiRouteService());\r\n }\r\n}\r\n\r\nexport default UserStationExpirationService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass StationAnalyticsApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"analytics/stations\");\r\n }\r\n\r\n getStationPremiumStatistic(id, options) {\r\n return super.get(`${this.base}/{id}/premium-statistic{?from,to,page,rpp}`, id, options);\r\n }\r\n\r\n getTrendingStations(filter) {\r\n return super.find(\r\n `${this.base}/{?from,to,previousCycleFrom,previousCycleTo,timeZone,page,rpp,uniqueListeners}`,\r\n filter\r\n );\r\n }\r\n\r\n getStationActivity(id, options) {\r\n return super.get(`${this.base}/{id}{?from,to,previousCycleFrom,previousCycleTo,timeZone}`, id, options);\r\n }\r\n\r\n getStationStats(id, options) {\r\n return super.get(`${this.base}/{id}/stats{?from,to,previousCycleFrom,previousCycleTo,timeZone}`, id, options);\r\n }\r\n\r\n getStationSummary(id, options) {\r\n return super.get(\r\n `${this.base}/{id}/summary{?from,to,previousCycleFrom,previousCycleTo,embed,fields}`,\r\n id,\r\n options\r\n );\r\n }\r\n\r\n getStationListenersStats() {\r\n return super.get(`${this.base}/listeners`);\r\n }\r\n}\r\n\r\nexport default StationAnalyticsApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { StationAnalyticsApiRouteService } from \"common/services\";\r\n\r\nclass StationAnalyticsService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new StationAnalyticsApiRouteService());\r\n }\r\n\r\n getStationPremiumStatistic(id, options, abortSignal = null) {\r\n const url = this.routeService.getStationPremiumStatistic(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getTrendingStations(filter, abortSignal = null) {\r\n const url = this.routeService.getTrendingStations(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getStationActivity(id, options, abortSignal = null) {\r\n const url = this.routeService.getStationActivity(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getStationStats(id, options, abortSignal = null) {\r\n const url = this.routeService.getStationStats(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getStationSummary(id, options, abortSignal = null) {\r\n const url = this.routeService.getStationSummary(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getStationListenersStats(abortSignal = null) {\r\n const url = this.routeService.getStationListenersStats();\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default StationAnalyticsService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass TorahAnytimeApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"torah-anytime\");\r\n }\r\n\r\n findSpeakers() {\r\n return super.create(`${this.base}/speakers`);\r\n }\r\n\r\n findTopics(filter) {\r\n return super.find(`${this.base}/topics/{?searchQuery,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n getSetting() {\r\n return super.get(`${this.base}/setting`);\r\n }\r\n\r\n findSpeakersByGender() {\r\n return super.create(`${this.base}/speakers/gender`);\r\n }\r\n\r\n findSpeakerIdsByTopicIds() {\r\n return super.create(`${this.base}/speakers/topics`);\r\n }\r\n}\r\n\r\nexport default TorahAnytimeApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { TorahAnytimeApiRouteService } from \"common/services\";\r\nimport { findParams } from \"mrb/core/utils\";\r\n\r\nclass TorahAnytimeService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new TorahAnytimeApiRouteService());\r\n }\r\n\r\n findSpeakers(filter, abortSignal = null) {\r\n const url = this.routeService.findSpeakers();\r\n const params = findParams(filter);\r\n const data = {\r\n embed: params.embed,\r\n topicIds: params.topicIds,\r\n fields: params.fields,\r\n page: params.page,\r\n rpp: params.rpp,\r\n searchQuery: params.searchQuery,\r\n sort: params.sort,\r\n };\r\n return this.apiClient.post(url, data, null, abortSignal);\r\n }\r\n\r\n findTopics(filter, abortSignal = null) {\r\n const url = this.routeService.findTopics(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getSetting(abortSignal = null) {\r\n const url = this.routeService.getSetting();\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n findSpeakersByGender(filter) {\r\n const url = this.routeService.findSpeakersByGender();\r\n return this.apiClient.post(url, filter, null, null);\r\n }\r\n\r\n findSpeakerIdsByTopicIds(filter) {\r\n const url = this.routeService.findSpeakerIdsByTopicIds();\r\n return this.apiClient.post(url, filter, null, null);\r\n }\r\n}\r\n\r\nexport default TorahAnytimeService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass UserTorahAnytimeCollectionApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"user-torah-anytime-collection\");\r\n }\r\n\r\n find(filter) {\r\n return super.find(`${this.base}/{?podcastId,searchQuery,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n findWthDeviceSettings(deviceId, filter) {\r\n return super.find(`${this.base}/device/{deviceId}/{?podcastId,searchQuery,page,rpp,sort,embed,fields}`, {\r\n deviceId: deviceId,\r\n ...filter,\r\n });\r\n }\r\n\r\n updateCollectionsTurnedOnStatus(resources, value) {\r\n return super.update(`${this.base}/turned-on{?value}`, {\r\n resources: resources,\r\n value: value,\r\n });\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?embed,fields}`, id, options);\r\n }\r\n\r\n create(resource) {\r\n return super.create(this.base, resource);\r\n }\r\n\r\n update(resource) {\r\n return super.update(`${this.base}/{id}`, resource);\r\n }\r\n\r\n delete(resource) {\r\n return super.delete(`${this.base}/{id}`, resource);\r\n }\r\n}\r\n\r\nexport default UserTorahAnytimeCollectionApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { UserTorahAnytimeCollectionApiRouteService } from \"common/services\";\r\n\r\nclass UserTorahAnytimeCollectionService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new UserTorahAnytimeCollectionApiRouteService());\r\n }\r\n\r\n findWthDeviceSettings(deviceId, filter, abortSignal = null) {\r\n const url = this.routeService.findWthDeviceSettings(deviceId, filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n updateCollectionsTurnedOnStatus(resources, value, abortSignal = null) {\r\n const url = this.routeService.updateCollectionsTurnedOnStatus(resources, value);\r\n return this.apiClient.put(url, resources, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default UserTorahAnytimeCollectionService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass UserContentApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"user-content\");\r\n }\r\n\r\n find(filter) {\r\n return super.find(\r\n `${this.base}/{?searchQuery,deviceId,genreIds,isPremium,isEnabled,contentType,page,rpp,sort,embed,fields}`,\r\n filter\r\n );\r\n }\r\n\r\n findPremiumContentInfo(filter) {\r\n return super.find(`${this.base}/premium-info/{?contentType,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n getSubPodcasts(id) {\r\n return super.find(`${this.base}/podcast/{id}/sub-podcasts`, {\r\n id: id,\r\n });\r\n }\r\n\r\n getPodcastVolumes(id) {\r\n return super.find(`${this.base}/podcast/{id}/volumes`, {\r\n id: id,\r\n });\r\n }\r\n\r\n genericSearch(filter) {\r\n return super.find(\r\n `${this.base}/generic-search/{?searchQuery,genreId,deviceId,contentType,page,rpp,sort,embed,fields}`,\r\n filter\r\n );\r\n }\r\n\r\n getUserDeviceStation(deviceId, stationId) {\r\n return super.get(`${this.base}/{deviceId}/station/{stationId}`, null, {\r\n deviceId: deviceId,\r\n stationId: stationId,\r\n });\r\n }\r\n\r\n getFeaturedContent(deviceId, contentType) {\r\n return super.get(`${this.base}/featured{?deviceId,contentType}`, null, {\r\n deviceId,\r\n contentType,\r\n });\r\n }\r\n\r\n getStationWthDeviceSettings(stationId, deviceId, options) {\r\n return super.get(`${this.base}/station/{stationId}/device/{deviceId}{?embed,fields}`, null, {\r\n deviceId: deviceId,\r\n stationId: stationId,\r\n ...options,\r\n });\r\n }\r\n\r\n getStation(stationId, options) {\r\n return super.get(`${this.base}/station/{stationId}{?embed,fields}`, null, {\r\n stationId: stationId,\r\n ...options,\r\n });\r\n }\r\n\r\n getUserDevicePodcast(deviceId, podcastId) {\r\n return super.get(`${this.base}/{deviceId}/podcast/{podcastId}`, null, {\r\n deviceId: deviceId,\r\n podcastId: podcastId,\r\n });\r\n }\r\n\r\n getPodcastGroupUserDevicePodcast(deviceId, podcastId) {\r\n return super.get(`${this.base}/{deviceId}/podcast-group/{podcastId}`, null, {\r\n deviceId: deviceId,\r\n podcastId: podcastId,\r\n });\r\n }\r\n\r\n getPodcastWthDeviceSettings(podcastId, deviceId, options) {\r\n return super.get(`${this.base}/podcast/{podcastId}/device/{deviceId}{?embed,fields}`, null, {\r\n deviceId: deviceId,\r\n podcastId: podcastId,\r\n ...options,\r\n });\r\n }\r\n\r\n getPodcast(podcastId, options) {\r\n return super.get(`${this.base}/podcast/{podcastId}{?embed,fields}`, null, {\r\n podcastId: podcastId,\r\n ...options,\r\n });\r\n }\r\n\r\n getPodcastGroupWthDeviceSettings(podcastId, deviceId, options) {\r\n return super.get(`${this.base}/podcast-group/{podcastId}/device/{deviceId}{?embed,fields}`, null, {\r\n deviceId: deviceId,\r\n podcastId: podcastId,\r\n ...options,\r\n });\r\n }\r\n\r\n getPodcastGroup(podcastId, options) {\r\n return super.get(`${this.base}/podcast-group/{podcastId}{?embed,fields}`, null, {\r\n podcastId: podcastId,\r\n ...options,\r\n });\r\n }\r\n\r\n updateStationsAndPodcastsTurnedOnStatus(resources, value) {\r\n return super.update(`${this.base}/turned-on/bulk{?value}`, {\r\n resources: resources,\r\n value: value,\r\n });\r\n }\r\n}\r\n\r\nexport default UserContentApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { UserContentApiRouteService } from \"common/services\";\r\n\r\nclass UserContentService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new UserContentApiRouteService());\r\n }\r\n\r\n getFeaturedContent(deviceId, contentType, abortSignal = null) {\r\n const url = this.routeService.getFeaturedContent(deviceId, contentType);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n genericSearch(filter, abortSignal = null) {\r\n const url = this.routeService.genericSearch(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n findPremiumContentInfo(filter, abortSignal = null) {\r\n const url = this.routeService.findPremiumContentInfo(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getSubPodcasts(id, abortSignal = null) {\r\n const url = this.routeService.getSubPodcasts(id);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPodcastVolumes(id, abortSignal = null) {\r\n const url = this.routeService.getPodcastVolumes(id);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n updateStationsAndPodcastsTurnedOnStatus(resources, value, abortSignal = null) {\r\n const url = this.routeService.updateStationsAndPodcastsTurnedOnStatus(resources, value);\r\n return this.apiClient.put(url, resources, null, abortSignal);\r\n }\r\n\r\n getUserDeviceStation(deviceId, stationId, abortSignal = null) {\r\n const url = this.routeService.getUserDeviceStation(deviceId, stationId);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getUserDevicePodcast(deviceId, podcastId, abortSignal = null) {\r\n const url = this.routeService.getUserDevicePodcast(deviceId, podcastId);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPodcastGroupUserDevicePodcast(deviceId, podcastId, abortSignal = null) {\r\n const url = this.routeService.getPodcastGroupUserDevicePodcast(deviceId, podcastId);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getStationWthDeviceSettings(stationId, deviceId, options, abortSignal = null) {\r\n const url = this.routeService.getStationWthDeviceSettings(stationId, deviceId, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getStation(stationId, options, abortSignal = null) {\r\n const url = this.routeService.getStation(stationId, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPodcastWthDeviceSettings(podcastId, deviceId, options, abortSignal = null) {\r\n const url = this.routeService.getPodcastWthDeviceSettings(podcastId, deviceId, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPodcast(podcastId, options, abortSignal = null) {\r\n const url = this.routeService.getPodcast(podcastId, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPodcastGroupWthDeviceSettings(podcastId, deviceId, options, abortSignal = null) {\r\n const url = this.routeService.getPodcastGroupWthDeviceSettings(podcastId, deviceId, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPodcastGroup(podcastId, deviceId, options, abortSignal = null) {\r\n const url = this.routeService.getPodcastGroup(podcastId, deviceId, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default UserContentService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass UserAccountApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"user-accounts\");\r\n }\r\n\r\n activateSystemTypeSubscription() {\r\n return super.create(`${this.base}/admin/subscription/activate`);\r\n }\r\n\r\n cancelSubscription(subscriptionId) {\r\n return super.delete(`${this.base}/admin/subscription/{subscriptionId}/cancel`, { subscriptionId });\r\n }\r\n\r\n getUserSubscriptionInfo(userId, options) {\r\n return super.get(`${this.base}/admin/subscription/{id}/info{?embed}`, userId, options);\r\n }\r\n\r\n update(resource) {\r\n return super.update(`${this.base}/{id}`, resource);\r\n }\r\n\r\n get(id, options) {\r\n return super.get(`${this.base}/{id}{?embed,fields}`, id, options);\r\n }\r\n\r\n find(filter) {\r\n return super.find(`${this.base}/admin/users/{?searchQuery,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n artistRegister() {\r\n return super.create(`${this.base}/artist`);\r\n }\r\n}\r\n\r\nexport default UserAccountApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { UserAccountApiRouteService } from \"common/services\";\r\n\r\nclass UserAccountService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new UserAccountApiRouteService());\r\n }\r\n\r\n activateSystemTypeSubscription(data, abortSignal = null) {\r\n const url = this.routeService.activateSystemTypeSubscription();\r\n return this.apiClient.post(url, data, null, abortSignal);\r\n }\r\n\r\n cancelSubscription(subscriptionId, abortSignal = null) {\r\n const url = this.routeService.cancelSubscription(subscriptionId);\r\n return this.apiClient.delete(url, null, null, abortSignal);\r\n }\r\n\r\n getUserSubscriptionInfo(userId, options, abortSignal = null) {\r\n const url = this.routeService.getUserSubscriptionInfo(userId, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n artistRegister(data, abortSignal = null) {\r\n const url = this.routeService.artistRegister();\r\n return this.apiClient.post(url, data, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default UserAccountService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass WeekDayApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"lookups/week-days\");\r\n }\r\n\r\n get() {\r\n return super.get(this.base);\r\n }\r\n}\r\n\r\nexport default WeekDayApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { WeekDayApiRouteService } from \"common/services\";\r\n\r\nclass WeekDayService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new WeekDayApiRouteService());\r\n }\r\n\r\n get(abortSignal = null) {\r\n const url = this.routeService.get();\r\n return this.apiClient.get(url, null, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default WeekDayService;\r\n","import { BaseCacheService } from \"mrb/core/cache\";\r\nimport { WeekDayService } from \"common/services\";\r\n\r\nclass WeekDayCacheService extends BaseCacheService {\r\n constructor(rootStore) {\r\n super(\"week-day\", \"lookup\", async () => {\r\n const response = await this.service.get();\r\n return response.data;\r\n });\r\n this.service = rootStore.createApplicationService(WeekDayService);\r\n }\r\n}\r\n\r\nexport default WeekDayCacheService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { PortalAnalyticsApiRouteService } from \"common/services\";\r\n\r\nclass PortalAnalyticsService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new PortalAnalyticsApiRouteService());\r\n }\r\n\r\n getUserPortalStatsSummary(userId, abortSignal = null) {\r\n const url = this.routeService.getUserPortalStatsSummary(userId);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPortalAnalytics(filter, abortSignal = null) {\r\n const url = this.routeService.getPortalAnalytics(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getRegisteredUsersActivity(filter, abortSignal = null) {\r\n const url = this.routeService.getRegisteredUsersActivity(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getRegisteredUsersSummary(filter, abortSignal = null) {\r\n const url = this.routeService.getRegisteredUsersSummary(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getRegisteredUserDevicesActivity(filter, abortSignal = null) {\r\n const url = this.routeService.getRegisteredUserDevicesActivity(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getRegisteredUserDevicesSummary(filter, abortSignal = null) {\r\n const url = this.routeService.getRegisteredUserDevicesSummary(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getConnectedDevicesActivity(filter, abortSignal = null) {\r\n const url = this.routeService.getConnectedDevicesActivity(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getConnectedDevicesSummary(filter, abortSignal = null) {\r\n const url = this.routeService.getConnectedDevicesSummary(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPremiumSubscriptionsActivity(filter, abortSignal = null) {\r\n const url = this.routeService.getPremiumSubscriptionsActivity(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getPremiumSubscriptionsSummary(filter, abortSignal = null) {\r\n const url = this.routeService.getPremiumSubscriptionsSummary(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default PortalAnalyticsService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass PortalAnalyticsApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"analytics/portal\");\r\n }\r\n\r\n getUserPortalStatsSummary(userId) {\r\n return super.get(`${this.base}/user/{id}/summary`, userId);\r\n }\r\n\r\n getPortalAnalytics(filter) {\r\n return super.find(`${this.base}/{?from,to,previousCycleFrom,previousCycleTo}`, filter);\r\n }\r\n\r\n getRegisteredUsersSummary(filter) {\r\n return super.find(`${this.base}/registered-users/summary/{?from,to,previousCycleFrom,previousCycleTo}`, filter);\r\n }\r\n\r\n getRegisteredUsersActivity(filter) {\r\n return super.find(`${this.base}/registered-users/activity/{?from,to,timeZone}`, filter);\r\n }\r\n\r\n getRegisteredUserDevicesActivity(filter) {\r\n return super.find(`${this.base}/registered-user-devices/activity/{?from,to,timeZone}`, filter);\r\n }\r\n\r\n getRegisteredUserDevicesSummary(filter) {\r\n return super.find(\r\n `${this.base}/registered-user-devices/summary/{?from,to,previousCycleFrom,previousCycleTo}`,\r\n filter\r\n );\r\n }\r\n\r\n getConnectedDevicesActivity(filter) {\r\n return super.find(`${this.base}/connected-devices/activity/{?from,to,timeZone}`, filter);\r\n }\r\n\r\n getConnectedDevicesSummary(filter) {\r\n return super.find(\r\n `${this.base}/connected-devices/summary/{?from,to,previousCycleFrom,previousCycleTo}`,\r\n filter\r\n );\r\n }\r\n\r\n getPremiumSubscriptionsActivity(filter) {\r\n return super.find(`${this.base}/subscriptions/activity/{?from,to,timeZone}`, filter);\r\n }\r\n\r\n getPremiumSubscriptionsSummary(filter) {\r\n return super.find(`${this.base}/subscriptions/summary/{?from,to,previousCycleFrom,previousCycleTo}`, filter);\r\n }\r\n}\r\n\r\nexport default PortalAnalyticsApiRouteService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass UserSettingsApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"user-settings\");\r\n }\r\n\r\n updateIsTutorialPassed(isTutorialPassed) {\r\n return super.update(`${this.base}/tutorial-passed{?value}`, {\r\n value: isTutorialPassed,\r\n });\r\n }\r\n\r\n disableContentPolicy() {\r\n return super.update(`${this.base}/content-policy/disable`);\r\n }\r\n\r\n disableTorahAnytimeAvailability() {\r\n return super.update(`${this.base}/torah-anytime-availability/disable`);\r\n }\r\n\r\n disableConnectDevice() {\r\n return super.update(`${this.base}/connect-device/disable`);\r\n }\r\n\r\n disableContentUnavailableInAppPolicy() {\r\n return super.update(`${this.base}/content-unavailable-policy/disable`);\r\n }\r\n}\r\n\r\nexport default UserSettingsApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { UserSettingsApiRouteService } from \"common/services\";\r\n\r\nclass UserSettingsService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new UserSettingsApiRouteService());\r\n }\r\n\r\n updateIsTutorialPassed(isTutorialPassed, abortSignal = null) {\r\n const url = this.routeService.updateIsTutorialPassed(isTutorialPassed);\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n disableContentPolicy(abortSignal = null) {\r\n const url = this.routeService.disableContentPolicy();\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n disableConnectDevice(abortSignal = null) {\r\n const url = this.routeService.disableConnectDevice();\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n disableTorahAnytimeAvailability(abortSignal = null) {\r\n const url = this.routeService.disableTorahAnytimeAvailability();\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n\r\n disableContentUnavailableInAppPolicy(abortSignal = null) {\r\n const url = this.routeService.disableContentUnavailableInAppPolicy();\r\n return this.apiClient.put(url, null, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default UserSettingsService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass NakiNigunAnalyticsApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"analytics/naki-nigun\");\r\n }\r\n\r\n getNakiNigunListenersStats() {\r\n return super.get(`${this.base}/listeners`);\r\n }\r\n\r\n getTrendingAlbumsForProducer(filter) {\r\n return super.find(\r\n `${this.base}/producer/{?from,to,previousCycleFrom,previousCycleTo,timeZone,page,rpp,uniqueListeners}`,\r\n filter\r\n );\r\n }\r\n\r\n getTrendingAlbumsTotalStreamsForProducer(filter) {\r\n return super.find(`${this.base}/producer-total/{?from,to,timeZone,uniqueListeners}`, filter);\r\n }\r\n\r\n getTrendingNakiNigunAlbums(filter) {\r\n return super.find(\r\n `${this.base}/{?from,to,previousCycleFrom,previousCycleTo,timeZone,page,rpp,uniqueListeners}`,\r\n filter\r\n );\r\n }\r\n\r\n getNakiNigunAlbumActivity(id, options) {\r\n return super.get(`${this.base}/{id}{?from,to,previousCycleFrom,previousCycleTo,timeZone}`, id, options);\r\n }\r\n\r\n getNakiNigunAlbumSummary(id, options) {\r\n return super.get(\r\n `${this.base}/{id}/summary{?from,to,previousCycleFrom,previousCycleTo,embed,fields}`,\r\n id,\r\n options\r\n );\r\n }\r\n}\r\n\r\nexport default NakiNigunAnalyticsApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { NakiNigunAnalyticsApiRouteService } from \"common/services\";\r\n\r\nclass NakiNigunAnalyticsService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new NakiNigunAnalyticsApiRouteService());\r\n }\r\n\r\n getNakiNigunListenersStats(abortSignal = null) {\r\n const url = this.routeService.getNakiNigunListenersStats();\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getTrendingAlbumsForProducer(filter, abortSignal = null) {\r\n const url = this.routeService.getTrendingAlbumsForProducer(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getTrendingNakiNigunAlbums(filter, abortSignal = null) {\r\n const url = this.routeService.getTrendingNakiNigunAlbums(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getTrendingAlbumsTotalStreamsForProducer(filter, abortSignal = null) {\r\n const url = this.routeService.getTrendingAlbumsTotalStreamsForProducer(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getNakiNigunAlbumActivity(id, options, abortSignal = null) {\r\n const url = this.routeService.getNakiNigunAlbumActivity(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getNakiNigunAlbumSummary(id, options, abortSignal = null) {\r\n const url = this.routeService.getNakiNigunAlbumSummary(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default NakiNigunAnalyticsService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass RssSyncApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"rss-sync\");\r\n }\r\n\r\n hlsEncodeAlbums(data) {\r\n return super.create(`${this.base}/hls/naki-nigun`, {\r\n ids: data.ids,\r\n processHls: data.processHls,\r\n overwriteHls: data.overwriteHls,\r\n processMp3: data.processMp3,\r\n overwriteMp3: data.overwriteMp3,\r\n });\r\n }\r\n\r\n hlsEncodePodcasts(data) {\r\n return super.create(`${this.base}/hls/podcast`, {\r\n ids: data.ids,\r\n processHls: data.processHls,\r\n overwriteHls: data.overwriteHls,\r\n processMp3: data.processMp3,\r\n overwriteMp3: data.overwriteMp3,\r\n });\r\n }\r\n\r\n hlsEncodeAlbumTracks(data) {\r\n return super.create(`${this.base}/hls/album-track`, {\r\n ids: data.ids,\r\n processHls: data.processHls,\r\n overwriteHls: data.overwriteHls,\r\n processMp3: data.processMp3,\r\n overwriteMp3: data.overwriteMp3,\r\n });\r\n }\r\n\r\n hlsEncodePodcastEpisodes(data) {\r\n return super.create(`${this.base}/hls/podcast-episode`, {\r\n ids: data.ids,\r\n processHls: data.processHls,\r\n overwriteHls: data.overwriteHls,\r\n processMp3: data.processMp3,\r\n overwriteMp3: data.overwriteMp3,\r\n });\r\n }\r\n\r\n syncPodcasts(data) {\r\n return super.create(`${this.base}/podcast`, {\r\n ids: data.ids,\r\n });\r\n }\r\n\r\n syncNakiNigunAlbums(data) {\r\n return super.create(`${this.base}/naki-nigun`, {\r\n ids: data.ids,\r\n });\r\n }\r\n\r\n getAllRssSyncTasks() {\r\n return super.get(`${this.base}/sync-task`);\r\n }\r\n\r\n syncPodcastsBackground(data) {\r\n return super.create(`${this.base}/podcast/background`, {\r\n data,\r\n });\r\n }\r\n\r\n syncNakiNigunAlbumsBackground(data) {\r\n return super.create(`${this.base}/naki-nigun/background`, {\r\n data,\r\n });\r\n }\r\n}\r\n\r\nexport default RssSyncApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { RssSyncApiRouteService } from \"common/services\";\r\n\r\nclass RssSyncService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new RssSyncApiRouteService());\r\n }\r\n\r\n hlsEncodeAlbums(data, abortSignal = null) {\r\n const url = this.routeService.hlsEncodeAlbums(data);\r\n return this.apiClient.post(url, data, null, abortSignal);\r\n }\r\n\r\n hlsEncodePodcasts(data, abortSignal = null) {\r\n const url = this.routeService.hlsEncodePodcasts(data);\r\n return this.apiClient.post(url, data, null, abortSignal);\r\n }\r\n\r\n hlsEncodeAlbumTracks(data, abortSignal = null) {\r\n const url = this.routeService.hlsEncodeAlbumTracks(data);\r\n return this.apiClient.post(url, data, null, abortSignal);\r\n }\r\n\r\n hlsEncodePodcastEpisodes(data, abortSignal = null) {\r\n const url = this.routeService.hlsEncodePodcastEpisodes(data);\r\n return this.apiClient.post(url, data, null, abortSignal);\r\n }\r\n\r\n getAllRssSyncTasks(abortSignal = null) {\r\n const url = this.routeService.getAllRssSyncTasks();\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n syncPodcasts(data, abortSignal = null) {\r\n const url = this.routeService.syncPodcasts(data);\r\n return this.apiClient.post(url, data, null, abortSignal);\r\n }\r\n\r\n syncNakiNigunAlbums(data, abortSignal = null) {\r\n const url = this.routeService.syncNakiNigunAlbums(data);\r\n return this.apiClient.post(url, data, null, abortSignal);\r\n }\r\n\r\n syncPodcastsBackground(data, abortSignal = null) {\r\n const url = this.routeService.syncPodcastsBackground(data);\r\n return this.apiClient.post(url, data, null, abortSignal);\r\n }\r\n\r\n syncNakiNigunAlbumsBackground(data, abortSignal = null) {\r\n const url = this.routeService.syncNakiNigunAlbumsBackground(data);\r\n return this.apiClient.post(url, data, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default RssSyncService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass GenreApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"genre\");\r\n }\r\n\r\n getGenreContent(id, filter) {\r\n return super.get(`${this.base}/content/{id}{?page,rpp,sort}`, id, filter);\r\n }\r\n}\r\n\r\nexport default GenreApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { GenreApiRouteService } from \"common/services\";\r\nimport { findParams } from \"mrb/core/utils\";\r\n\r\nclass GenreService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new GenreApiRouteService());\r\n }\r\n\r\n getGenreContent(id, filter, abortSignal = null) {\r\n const params = findParams(filter);\r\n const data = {\r\n page: params.page,\r\n rpp: params.rpp,\r\n sort: params.sort,\r\n };\r\n const url = this.routeService.getGenreContent(id, data);\r\n return this.apiClient.get(url, data, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default GenreService;\r\n","import { BaseApiRouteService } from \"mrb/core\";\r\n\r\nclass PlaylistApiRouteService extends BaseApiRouteService {\r\n constructor() {\r\n super(\"playlist\");\r\n }\r\n\r\n findAdminGeneratedPlaylists(filter) {\r\n return super.find(`${this.base}/admin/{?searchQuery,page,rpp,sort,embed,fields}`, filter);\r\n }\r\n\r\n createAdminGeneratedPlaylist(resource) {\r\n return super.create(`${this.base}/admin`, resource);\r\n }\r\n\r\n addItemToAdminGeneratedPlaylist(playlistId, resource) {\r\n return super.update(`${this.base}/admin/{id}/item`, { id: playlistId, resource: resource });\r\n }\r\n\r\n deleteAlbumTrackFromAdminGeneratedPlaylist(playlistId, albumTrackId) {\r\n return super.delete(`${this.base}/admin/{id}/item/album-track/{albumTrackId}`, {\r\n id: playlistId,\r\n albumTrackId: albumTrackId,\r\n });\r\n }\r\n\r\n getAllAdminGeneratedPlaylists() {\r\n return super.get(`${this.base}/admin/all`);\r\n }\r\n\r\n updateAdminGeneratedPlaylists() {\r\n return super.update(`${this.base}/admin`);\r\n }\r\n\r\n getAdminPlaylist(id) {\r\n return super.get(`${this.base}/admin/{id}`, id);\r\n }\r\n\r\n deleteAlbumTrackFromAdminPlaylist(playlistId, albumTrackId) {\r\n return super.delete(`${this.base}/admin/{id}/item/album-track/{albumTrackId}`, {\r\n id: playlistId,\r\n albumTrackId: albumTrackId,\r\n });\r\n }\r\n}\r\n\r\nexport default PlaylistApiRouteService;\r\n","import { BaseService } from \"mrb/core\";\r\nimport { PlaylistApiRouteService } from \"common/services\";\r\n\r\nclass PlaylistService extends BaseService {\r\n constructor(apiClient) {\r\n super(apiClient, new PlaylistApiRouteService());\r\n }\r\n\r\n findAdminGeneratedPlaylists(filter, abortSignal = null) {\r\n const url = this.routeService.findAdminGeneratedPlaylists(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n getAdminPlaylist(playlistId, abortSignal = null) {\r\n const url = this.routeService.getAdminPlaylist(playlistId);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n createAdminGeneratedPlaylist(resource, abortSignal = null) {\r\n const url = this.routeService.createAdminGeneratedPlaylist(resource);\r\n return this.apiClient.post(url, resource, null, abortSignal);\r\n }\r\n\r\n addItemToAdminGeneratedPlaylist(playlistId, resource, abortSignal = null) {\r\n const url = this.routeService.addItemToAdminGeneratedPlaylist(playlistId, resource);\r\n return this.apiClient.put(url, resource, null, abortSignal);\r\n }\r\n\r\n deleteAlbumTrackFromAdminGeneratedPlaylist(playlistId, albumTrackId, abortSignal = null) {\r\n const url = this.routeService.deleteAlbumTrackFromAdminGeneratedPlaylist(playlistId, albumTrackId);\r\n return this.apiClient.delete(url, null, abortSignal);\r\n }\r\n\r\n getAllAdminGeneratedPlaylists(abortSignal = null) {\r\n const url = this.routeService.getAllAdminGeneratedPlaylists();\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n updateAdminGeneratedPlaylists(playlists, abortSignal = null) {\r\n const url = this.routeService.updateAdminGeneratedPlaylists();\r\n return this.apiClient.put(url, playlists, null, abortSignal);\r\n }\r\n\r\n deleteAlbumTrackFromAdminPlaylist(playlistId, albumTrackId, abortSignal = null) {\r\n const url = this.routeService.deleteAlbumTrackFromAdminPlaylist(playlistId, albumTrackId);\r\n return this.apiClient.delete(url, null, abortSignal);\r\n }\r\n}\r\n\r\nexport default PlaylistService;\r\n","import {\r\n StationFileStreamService,\r\n PodcastFileStreamService,\r\n NakiNigunArtistFileStreamService,\r\n NakiNigunAlbumFileStreamService,\r\n FeaturedSectionFileStreamService,\r\n} from \"common/services\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\nimport { isNil } from \"lodash\";\r\n\r\nclass CoverImageFactory {\r\n _podcastFileStreamService = null;\r\n _stationFileStreamService = null;\r\n _nakiNigunArtistFileStreamService = null;\r\n _nakiNigunAlbumFileStreamService = null;\r\n _featuredSectionFileStreamService = null;\r\n\r\n get podcastFileStreamService() {\r\n if (isNil(this._podcastFileStreamService)) {\r\n this._podcastFileStreamService = this.rootStore.createApplicationService(PodcastFileStreamService);\r\n }\r\n return this._podcastFileStreamService;\r\n }\r\n\r\n get stationFileStreamService() {\r\n if (isNil(this._stationFileStreamService)) {\r\n this._stationFileStreamService = this.rootStore.createApplicationService(StationFileStreamService);\r\n }\r\n return this._stationFileStreamService;\r\n }\r\n\r\n get nakiNigunArtistFileStreamService() {\r\n if (isNil(this._nakiNigunArtistFileStreamService)) {\r\n this._nakiNigunArtistFileStreamService = this.rootStore.createApplicationService(\r\n NakiNigunArtistFileStreamService\r\n );\r\n }\r\n return this._nakiNigunArtistFileStreamService;\r\n }\r\n\r\n get nakiNigunAlbumFileStreamService() {\r\n if (isNil(this._nakiNigunAlbumFileStreamService)) {\r\n this._nakiNigunAlbumFileStreamService = this.rootStore.createApplicationService(\r\n NakiNigunAlbumFileStreamService\r\n );\r\n }\r\n return this._nakiNigunAlbumFileStreamService;\r\n }\r\n\r\n get featuredSectionFileStreamService() {\r\n if (isNil(this._featuredSectionFileStreamService)) {\r\n this._featuredSectionFileStreamService = this.rootStore.createApplicationService(\r\n FeaturedSectionFileStreamService\r\n );\r\n }\r\n return this._featuredSectionFileStreamService;\r\n }\r\n\r\n constructor(rootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n\r\n createStationCoverImageUrl(coverImageId, width = null, height = null) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.stationFileStreamService.routeService.get(coverImageId),\r\n {\r\n width: width,\r\n height: height,\r\n }\r\n );\r\n }\r\n\r\n createPodcastCoverImageUrl(coverImageId, width = null, height = null) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.podcastFileStreamService.routeService.get(coverImageId),\r\n {\r\n width: width,\r\n height: height,\r\n }\r\n );\r\n }\r\n\r\n createNakiNigunArtistCoverImageUrl(coverImageId, width = null, height = null) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.nakiNigunArtistFileStreamService.routeService.get(coverImageId),\r\n {\r\n width: width,\r\n height: height,\r\n }\r\n );\r\n }\r\n\r\n createNakiNigunAlbumCoverImageUrl(coverImageId, width = null, height = null) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.nakiNigunAlbumFileStreamService.routeService.get(coverImageId),\r\n {\r\n width: width,\r\n height: height,\r\n }\r\n );\r\n }\r\n\r\n createFeaturedSectionCoverImageUrl(coverImageId, width = null, height = null) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.featuredSectionFileStreamService.routeService.get(coverImageId),\r\n {\r\n width: width,\r\n height: height,\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport default CoverImageFactory;\r\n","const CACHE_PREFIX = \"CS\";\r\n\r\nclass BaseCacheManager {\r\n promiseRegistry = {};\r\n\r\n constructor(storageProvider) {\r\n if (!storageProvider) {\r\n throw new Error(\"Storage provider not specified.\");\r\n }\r\n this.storageProvider = storageProvider;\r\n }\r\n\r\n composeKey(key, region = null) {\r\n if (region) {\r\n return `${CACHE_PREFIX}-${region}-${key}`;\r\n }\r\n return `${CACHE_PREFIX}-${key}`;\r\n }\r\n\r\n async getOrAdd(key, fetchFn, region = null) {\r\n const composedKey = this.composeKey(key, region);\r\n let item = this.storageProvider.get(composedKey);\r\n if (!item) {\r\n const existingPromise = this.promiseRegistry[composedKey];\r\n if (existingPromise) {\r\n return existingPromise;\r\n }\r\n const resultPromise = fetchFn(key);\r\n this.promiseRegistry[composedKey] = resultPromise;\r\n item = await resultPromise;\r\n this.storageProvider.add(composedKey, item);\r\n delete this.promiseRegistry[composedKey];\r\n }\r\n return item;\r\n }\r\n\r\n remove(key, region = null) {\r\n const composedKey = this.composeKey(key, region);\r\n\r\n this.storageProvider.remove(composedKey);\r\n }\r\n\r\n clearRegion(region) {\r\n const keys = this.storageProvider.getKeys();\r\n const regionKeys = keys.filter((k) =>\r\n k.startsWith(`${CACHE_PREFIX}-${region}`)\r\n );\r\n\r\n regionKeys.forEach((key) => {\r\n this.storageProvider.remove(key);\r\n });\r\n }\r\n\r\n clear() {\r\n const keys = this.storageProvider.getKeys();\r\n const cacheKeys = keys.filter((k) => k.startsWith(CACHE_PREFIX));\r\n cacheKeys.forEach((key) => {\r\n this.storageProvider.remove(key);\r\n });\r\n }\r\n}\r\n\r\nexport default BaseCacheManager;\r\n","import { BaseCacheManager } from \"./\";\r\nimport { localStorageProvider } from \"../../common/storage\";\r\n\r\nclass MrbCacheManager extends BaseCacheManager {\r\n constructor() {\r\n super(localStorageProvider);\r\n }\r\n}\r\n\r\nconst mrbCacheManager = new MrbCacheManager();\r\nexport default mrbCacheManager;\r\n","import { mrbCacheManager } from \"./\";\r\n\r\nclass BaseCacheService {\r\n constructor(cacheKey, region, fetchFn) {\r\n this.cacheKey = cacheKey;\r\n this.region = region;\r\n this.fetchFn = fetchFn;\r\n }\r\n\r\n getItems() {\r\n return mrbCacheManager.getOrAdd(\r\n this.cacheKey,\r\n this.fetchFn,\r\n this.region\r\n );\r\n }\r\n\r\n removeItems() {\r\n mrbCacheManager.remove(this.cacheKey, this.region);\r\n }\r\n\r\n setItems(data) {\r\n if (!data) {\r\n return;\r\n }\r\n mrbCacheManager.add(this.cacheKey, data, this.region);\r\n }\r\n}\r\n\r\nexport default BaseCacheService;\r\n","import { action, observable, makeObservable } from \"mobx\";\r\n\r\nclass StripeField {\r\n @observable isCompleted = false;\r\n @observable.ref error = null;\r\n\r\n constructor() {\r\n makeObservable(this);\r\n }\r\n\r\n @action.bound\r\n setError(error) {\r\n this.error = error;\r\n }\r\n\r\n @action.bound\r\n onStripeFieldChange(event) {\r\n this.setIsCompleted(event.complete);\r\n this.setError(event.error);\r\n }\r\n\r\n @action.bound\r\n setIsCompleted(isCompleted) {\r\n this.isCompleted = isCompleted;\r\n }\r\n\r\n resetValidation() {\r\n this.setError(null);\r\n }\r\n\r\n @action.bound\r\n reset() {\r\n this.resetValidation();\r\n this.setIsCompleted(false);\r\n }\r\n}\r\n\r\nexport default StripeField;\r\n","class DownloadRequest {\r\n id = null;\r\n title = null;\r\n artworkUrl = null;\r\n downloadUrl = null;\r\n duration = null;\r\n fileSize = null;\r\n\r\n constructor(id, title, artworkUrl, downloadUrl, duration, fileSize) {\r\n this.id = id;\r\n this.title = title;\r\n this.artworkUrl = artworkUrl;\r\n this.downloadUrl = downloadUrl;\r\n this.duration = duration;\r\n this.fileSize = fileSize;\r\n }\r\n}\r\n\r\nexport default DownloadRequest;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbProgressBarLoader({ loaderStore }) {\r\n const isLoading = loaderStore.loading;\r\n return (\r\n \r\n {isLoading && (\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nMrbProgressBarLoader.propTypes = {\r\n loaderStore: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default observer(MrbProgressBarLoader);\r\n","import { action, observable, computed, makeObservable, runInAction } from \"mobx\";\r\nimport { extend, isInteger } from \"lodash\";\r\n\r\nconst DefaultOptions = {\r\n delay: 80,\r\n minDispayTime: 180,\r\n};\r\n\r\nclass MrbLoaderStore {\r\n @observable _loaderCount = 0;\r\n @observable _pastStartDelay = observable.box(false);\r\n\r\n options = null;\r\n startDelayTimeout = null;\r\n stopDelayTimeout = null;\r\n loadingStartTime = null;\r\n\r\n @computed get loading() {\r\n return this._loaderCount > 0 && this._pastStartDelay.get();\r\n }\r\n\r\n constructor(options) {\r\n makeObservable(this);\r\n this.options = extend({}, DefaultOptions, options);\r\n }\r\n\r\n @action.bound\r\n suspend(customDelay = null) {\r\n if (this.stopDelayTimeout) {\r\n this._loaderCount--; // silently decrement loader for previous iteration\r\n this.clearStopDelayTimeout();\r\n }\r\n if (this._loaderCount === 0) {\r\n this._pastStartDelay.set(false);\r\n const delay = isInteger(customDelay) ? customDelay : this.options.delay;\r\n if (delay === 0) {\r\n this._pastStartDelay.set(true);\r\n this.createLoadingStartTime();\r\n } else {\r\n this.startDelayTimeout = setTimeout(() => {\r\n runInAction(() => {\r\n this._pastStartDelay.set(true);\r\n this.createLoadingStartTime();\r\n });\r\n }, delay);\r\n }\r\n }\r\n this._loaderCount++;\r\n }\r\n\r\n createLoadingStartTime() {\r\n this.loadingStartTime = new Date().getTime();\r\n }\r\n\r\n @action.bound\r\n resume() {\r\n if (this._loaderCount > 0) {\r\n if (\r\n this._loaderCount === 1 &&\r\n !this.stopDelayTimeout &&\r\n this.loadingStartTime &&\r\n isInteger(this.options.minDispayTime)\r\n ) {\r\n this._resumeWithDelay();\r\n } else {\r\n this._resumeLoaderInternal();\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n _resumeWithDelay() {\r\n const now = new Date().getTime();\r\n const diff = now - this.loadingStartTime;\r\n // 10ms is allowed error constant\r\n if (diff + 10 < this.options.minDispayTime) {\r\n this.stopDelayTimeout = setTimeout(() => {\r\n this._resumeLoaderInternal();\r\n }, this.options.minDispayTime - diff);\r\n } else {\r\n this._resumeLoaderInternal();\r\n }\r\n }\r\n\r\n @action.bound\r\n _resumeLoaderInternal() {\r\n if (this._loaderCount > 0) {\r\n this._loaderCount--;\r\n if (this._loaderCount === 0) {\r\n this._pastStartDelay.set(false);\r\n this.clearStopDelayTimeout();\r\n }\r\n }\r\n }\r\n\r\n clearStopDelayTimeout() {\r\n if (this.stopDelayTimeout) {\r\n clearTimeout(this.stopDelayTimeout);\r\n this.stopDelayTimeout = null;\r\n }\r\n }\r\n\r\n clearStartDelayTimeout() {\r\n if (this.startDelayTimeout) {\r\n clearTimeout(this.startDelayTimeout);\r\n this.startDelayTimeout = null;\r\n }\r\n }\r\n\r\n destroy() {\r\n this.clearStartDelayTimeout();\r\n this.clearStopDelayTimeout();\r\n }\r\n}\r\n\r\nexport default MrbLoaderStore;\r\n","import { observable, override, computed, makeObservable } from \"mobx\";\r\nimport { MrbLoaderStore } from \"./\";\r\nimport { extend } from \"lodash\";\r\n\r\nconst DefaultOptions = {\r\n delay: 10,\r\n suspendRenderOnInit: true,\r\n};\r\n\r\nclass MrbContentLoaderStore extends MrbLoaderStore {\r\n @observable _initial = true;\r\n\r\n @computed get suspendRendering() {\r\n return this._initial && this.options.suspendRenderOnInit;\r\n }\r\n\r\n constructor(options) {\r\n super(extend({}, DefaultOptions, options));\r\n makeObservable(this);\r\n }\r\n\r\n @override\r\n resume() {\r\n this._initial = false;\r\n super.resume();\r\n }\r\n}\r\n\r\nexport default MrbContentLoaderStore;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst MrbFormFieldContentLoader = ({ props, col = 1 }) => {\r\n const screenwidth = window.innerWidth;\r\n let loaderWidth;\r\n\r\n if (screenwidth > 1440) {\r\n loaderWidth = Math.floor((screenwidth - 300) / 3);\r\n } else if (screenwidth > 992) {\r\n loaderWidth = Math.floor((screenwidth - 250) / 2);\r\n } else {\r\n loaderWidth = screenwidth - 40;\r\n }\r\n\r\n const items = [];\r\n const colWidth = 110;\r\n let x = 0;\r\n\r\n for (let i = 1; i <= col; i++) {\r\n if (i === col) {\r\n items.push(\r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n } else {\r\n items.push(\r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n }\r\n x += colWidth + 15;\r\n }\r\n\r\n return (\r\n \r\n \r\n {col > 1 ? (\r\n items\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MrbFormFieldContentLoader;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst MrbLineContentLoader = ({\r\n smallWidth,\r\n setWidth,\r\n rows = 1,\r\n lineheight = 34,\r\n setHeight,\r\n setY = 50,\r\n backgroundColor = \"#262729\",\r\n foregroundColor = \"#2b2b2b\",\r\n ...props\r\n}) => {\r\n const screenwidth = window.innerWidth;\r\n let loaderWidth;\r\n\r\n if (setWidth && screenwidth > 1270) {\r\n loaderWidth = setWidth;\r\n } else if (smallWidth && screenwidth > 1190) {\r\n loaderWidth = 380;\r\n } else if (screenwidth > 1190) {\r\n loaderWidth = screenwidth - 660;\r\n } else if (screenwidth > 990) {\r\n loaderWidth = screenwidth - 250;\r\n } else {\r\n loaderWidth = screenwidth;\r\n }\r\n\r\n const items = [];\r\n let y = 0;\r\n\r\n for (let i = 0; i < rows; i++) {\r\n items.push(\r\n \r\n );\r\n\r\n y += setY;\r\n }\r\n\r\n return (\r\n \r\n {items}\r\n \r\n );\r\n};\r\n\r\nexport default MrbLineContentLoader;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst MrbHeaderLoader = (props) => {\r\n const screenwidth =\r\n window.innerWidth > 992 ? window.innerWidth - 200 : window.innerWidth;\r\n const headerheight = screenwidth > 766 ? 135 : 272;\r\n\r\n return (\r\n \r\n {screenwidth > 766 ? (\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n\r\n \r\n \r\n ) : (\r\n \r\n \r\n\r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default MrbHeaderLoader;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst MrbRectangleContentLoader = ({\r\n rows = 1,\r\n rectangleHeight = 80,\r\n rectangleWidth = 280,\r\n spacing = 10,\r\n xRadius = 6,\r\n yRadius = 6,\r\n xBase = 10,\r\n yBase = 10,\r\n ...props\r\n}) => {\r\n const screenwidth = window.innerWidth;\r\n let columns;\r\n\r\n if (screenwidth > 1494) {\r\n columns = 5;\r\n } else if (screenwidth > 1180) {\r\n columns = 3;\r\n } else if (screenwidth > 760) {\r\n columns = 2;\r\n } else {\r\n columns = 1;\r\n }\r\n \r\n const items = [];\r\n\r\n for (let i = 0; i < rows; i++) {\r\n for (let j = 0; j < columns; j++) {\r\n items.push(\r\n \r\n );\r\n }\r\n }\r\n\r\n return (\r\n 988 ? screenwidth - 248 : screenwidth\r\n } 80`}\r\n backgroundColor=\"#393c42\"\r\n foregroundColor=\"#404143\"\r\n {...props}\r\n >\r\n {items}\r\n \r\n );\r\n};\r\n\r\nexport default MrbRectangleContentLoader;\r\n","import { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbContentLoader({ loaderStore, loaderRender, children }) {\r\n const { loading, suspendRendering } = loaderStore;\r\n if (suspendRendering && !loading) {\r\n return null;\r\n } else if (loading) {\r\n return loaderRender();\r\n }\r\n return children();\r\n}\r\n\r\nMrbContentLoader.propTypes = {\r\n loaderStore: PropTypes.object.isRequired,\r\n loaderRender: PropTypes.func.isRequired,\r\n children: PropTypes.any,\r\n};\r\n\r\nexport default observer(MrbContentLoader);\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst MrbHeaderWithoutImageLoader = (props) => {\r\n const screenwidth =\r\n window.innerWidth > 992 ? window.innerWidth - 200 : window.innerWidth;\r\n const headerheight = 130;\r\n\r\n return (\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MrbHeaderWithoutImageLoader;\r\n","function arrayDifference(lhsArray, rhsArray) {\r\n if (!lhsArray && !rhsArray) {\r\n return [];\r\n } else if (!lhsArray && rhsArray && rhsArray.length > 0) {\r\n return [...rhsArray];\r\n } else if (lhsArray && lhsArray.length > 0 && !rhsArray) {\r\n return [...lhsArray];\r\n }\r\n\r\n const difference = lhsArray\r\n .filter((x) => !rhsArray.includes(x))\r\n .concat(rhsArray.filter((x) => !lhsArray.includes(x)));\r\n\r\n return difference;\r\n}\r\n\r\nexport default arrayDifference;\r\n","export default function isSome(value) {\r\n return value !== null && value !== undefined;\r\n}\r\n","import { isFunction } from \"lodash\";\r\n\r\nconst renderIf = (predicate) => (elemOrThunk) =>\r\n predicate ? (isFunction(elemOrThunk) ? elemOrThunk() : elemOrThunk) : null;\r\nexport default renderIf;\r\n","import { fileExtensions } from \"../constants\";\r\nimport { find } from \"lodash\";\r\n\r\nclass MrbFileUtility {\r\n isImage(fileExtension) {\r\n if (!fileExtension.startsWith(\".\")) {\r\n fileExtension = `.${fileExtension}`;\r\n }\r\n return find(fileExtensions.image, (type) => type === fileExtension)\r\n ? true\r\n : false;\r\n }\r\n\r\n isDocument(fileExtension) {\r\n if (!fileExtension.startsWith(\".\")) {\r\n fileExtension = `.${fileExtension}`;\r\n }\r\n return find(fileExtensions.document, (type) => type === fileExtension)\r\n ? true\r\n : false;\r\n }\r\n\r\n isVideo(fileExtension) {\r\n if (!fileExtension.startsWith(\".\")) {\r\n fileExtension = `.${fileExtension}`;\r\n }\r\n return find(fileExtensions.video, (type) => type === fileExtension)\r\n ? true\r\n : false;\r\n }\r\n}\r\n\r\nconst fileUtility = new MrbFileUtility();\r\nexport default fileUtility;\r\n","import { join, filter, isEmpty } from \"lodash\";\r\n\r\nfunction mergeCss(...args) {\r\n return join(\r\n filter(args, (x) => !isEmpty(x)),\r\n \" \"\r\n );\r\n}\r\n\r\nexport default mergeCss;\r\n","import { mergeCss } from \"./\";\r\n\r\nfunction mergeOrOverrideCss(defaultCss, forOverride, forMerge) {\r\n if (forOverride) {\r\n return forOverride;\r\n }\r\n return mergeCss(defaultCss, forMerge);\r\n}\r\n\r\nexport default mergeOrOverrideCss;\r\n","import { isNil } from \"lodash\";\r\nimport moment from \"moment\";\r\nimport \"moment-timezone\";\r\n\r\nclass TimeZoneConverter {\r\n toISOString(value, timeZone) {\r\n if (isNil(value)) {\r\n throw new Error(\"value must be provided\");\r\n }\r\n if (isNil(timeZone)) {\r\n throw new Error(\"timeZone must be provided\");\r\n }\r\n\r\n let momentDate = null;\r\n if (moment.isMoment(value)) {\r\n momentDate = value;\r\n } else if (typeof value === \"string\" && moment(value, moment.ISO_8601, true).isValid()) {\r\n momentDate = moment.utc(value);\r\n } else {\r\n momentDate = moment(value);\r\n }\r\n\r\n const convertedDate = momentDate.tz(timeZone, true);\r\n\r\n return convertedDate.toISOString();\r\n }\r\n\r\n toJsDate(value, timeZone) {\r\n if (isNil(value)) {\r\n throw new Error(\"value must be provided\");\r\n }\r\n if (isNil(timeZone)) {\r\n throw new Error(\"timeZone must be provided\");\r\n }\r\n\r\n let momentDate = null;\r\n if (moment.isMoment(value)) {\r\n momentDate = value;\r\n } else if (typeof value === \"string\" && moment(value, moment.ISO_8601, true).isValid()) {\r\n momentDate = moment.utc(value);\r\n } else {\r\n momentDate = moment(value);\r\n }\r\n\r\n const localTimeZone = moment.tz.guess();\r\n const dateInLocalTimeZone = momentDate.tz(timeZone).tz(localTimeZone, true);\r\n\r\n const date = dateInLocalTimeZone.toDate();\r\n return date;\r\n }\r\n}\r\n\r\nconst timeZoneConverter = new TimeZoneConverter();\r\nexport default timeZoneConverter;\r\n","import { observer } from \"mobx-react\";\r\nimport { withTranslation } from \"react-i18next\";\r\n\r\nexport default function defaultTemplate(TemplateComponent) {\r\n return withTranslation()(observer(TemplateComponent));\r\n}\r\n","import React from \"react\";\r\nimport { Elements } from \"@stripe/react-stripe-js\";\r\nimport { loadStripe } from \"@stripe/stripe-js\";\r\n\r\nconst stripePromise = loadStripe(ApplicationSettings.stripePublishableKey);\r\n\r\nfunction stripeProvider(Component) {\r\n return class extends React.Component {\r\n render() {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n };\r\n}\r\n\r\nexport default stripeProvider;\r\n","import { each, isFunction } from \"lodash\";\r\n\r\nclass ModuleProvider {\r\n name = null;\r\n configurations = [];\r\n\r\n constructor(name) {\r\n if (!name) {\r\n throw new Error(\"name parameter must be defined.\");\r\n }\r\n this.name = name;\r\n }\r\n\r\n register = (config) => {\r\n this.configurations.push(config);\r\n };\r\n\r\n getRoutes = () => {\r\n const items = [];\r\n each(this.configurations, (config) => {\r\n if (config.routes) {\r\n const routes = isFunction(config.routes)\r\n ? (ctx) => config.routes(ctx)\r\n : config.routes;\r\n items.push(...routes);\r\n }\r\n });\r\n return items;\r\n };\r\n\r\n getMenus = () => {\r\n const items = [];\r\n each(this.configurations, (config) => {\r\n if (config.menu) {\r\n items.push(\r\n isFunction(config.menu)\r\n ? (ctx) => config.menu(ctx)\r\n : config.menu\r\n );\r\n }\r\n });\r\n return items;\r\n };\r\n\r\n getStores = () => {\r\n const items = [];\r\n each(this.configurations, (config) => {\r\n if (config.moduleStore) {\r\n items.push(\r\n isFunction(config.moduleStore)\r\n ? (ctx) => config.moduleStore(ctx)\r\n : config.moduleStore\r\n );\r\n }\r\n });\r\n return items;\r\n };\r\n}\r\n\r\nexport default ModuleProvider;\r\n","import { ModuleProvider } from \"./\";\r\n\r\nclass ModuleProviderFactory {\r\n modules = {};\r\n\r\n module(name) {\r\n if (this.modules[name] === undefined) {\r\n this.modules[name] = new ModuleProvider(name);\r\n }\r\n\r\n return this.modules[name];\r\n }\r\n\r\n find(names) {\r\n if (!names || names.length === 0) {\r\n return Object.values(this.modules);\r\n }\r\n }\r\n}\r\n\r\nconst moduleProviderFactory = new ModuleProviderFactory();\r\nexport default moduleProviderFactory;\r\n","import { menuProvider, routeProvider, storeProvider } from \"../providers\";\r\nimport { filter, isFunction, map, forEach, some } from \"lodash\";\r\n\r\nclass ModuleBuilder {\r\n buildRoutes = (modulesRouteConfig, context = {}, modules = null) => {\r\n if (modules && modules.length > 0) {\r\n modulesRouteConfig = filter(modulesRouteConfig, (moduleRoute) =>\r\n some(modules, (moduleName) => moduleName === moduleRoute.module)\r\n );\r\n }\r\n let routes = [];\r\n forEach(modulesRouteConfig, (moduleRoute) => {\r\n routes = [...routes, ...moduleRoute.items];\r\n });\r\n const contextRoutes = buildConfiguration(routes, context);\r\n return routeProvider.initialize(contextRoutes, context);\r\n };\r\n\r\n buildMenus = (modulesMenuConfig, context = {}, modules = null) => {\r\n if (modules && modules.length > 0) {\r\n modulesMenuConfig = filter(modulesMenuConfig, (moduleMenu) =>\r\n some(modules, (moduleName) => moduleName === moduleMenu.module)\r\n );\r\n }\r\n let menus = [];\r\n forEach(modulesMenuConfig, (moduleMenu) => {\r\n menus = [...menus, ...moduleMenu.items];\r\n });\r\n const contextMenus = buildConfiguration(menus, context);\r\n return menuProvider.initialize(contextMenus, context);\r\n };\r\n\r\n buildStores = (modulesStoreConfig, context = {}, modules = null) => {\r\n if (modules && modules.length > 0) {\r\n modulesStoreConfig = filter(modulesStoreConfig, (moduleStore) =>\r\n some(modules, (moduleName) => moduleName === moduleStore.module)\r\n );\r\n }\r\n let stores = [];\r\n forEach(modulesStoreConfig, (moduleStore) => {\r\n stores = [...stores, ...moduleStore.items];\r\n });\r\n const contextStores = buildConfiguration(stores, context);\r\n return storeProvider.initialize(contextStores, context);\r\n };\r\n}\r\n\r\nfunction buildConfiguration(items, ctx) {\r\n return map(items, (item) => (isFunction(item) ? item(ctx) : item));\r\n}\r\n\r\nconst moduleBuilder = new ModuleBuilder();\r\nexport default moduleBuilder;\r\n","import { moduleProviderFactory } from \"./\";\r\nimport { each } from \"lodash\";\r\n\r\nclass ApplicationBootstrapper {\r\n run = () => {\r\n return this.getConfigurations();\r\n };\r\n\r\n getConfigurations = (moduleNames) => {\r\n const modules = moduleProviderFactory.find(moduleNames);\r\n let routes = [];\r\n let menus = [];\r\n let stores = [];\r\n\r\n each(modules, (module) => {\r\n routes.push({\r\n module: module.name,\r\n items: module.getRoutes(),\r\n });\r\n menus.push({\r\n module: module.name,\r\n items: module.getMenus(),\r\n });\r\n stores.push({\r\n module: module.name,\r\n items: module.getStores(),\r\n });\r\n });\r\n\r\n return {\r\n routes,\r\n menus,\r\n stores,\r\n };\r\n };\r\n}\r\n\r\nconst applicationBootstrapper = new ApplicationBootstrapper();\r\nexport default applicationBootstrapper;\r\n","import React from \"react\";\r\nimport { StripeAccountFieldSelectTemplate } from \"themes/common/components\";\r\n\r\nfunction StripeAccountFieldSelect(props) {\r\n return ;\r\n}\r\n\r\nexport default StripeAccountFieldSelect;\r\n","import React from \"react\";\r\nimport { StripeAccountLinkTemplate } from \"themes/common/components\";\r\n\r\nfunction StripeAccountLink(props) {\r\n return ;\r\n}\r\n\r\nexport default StripeAccountLink;\r\n","import React from \"react\";\r\nimport { StripeFieldValidationTemplate } from \"themes/common/components\";\r\n\r\nfunction StripeFieldValidation(props) {\r\n return ;\r\n}\r\n\r\nexport default StripeFieldValidation;\r\n","import React from \"react\";\r\nimport { StripeCreditCardFieldTemplate } from \"themes/common/components\";\r\n\r\nfunction StripeCreditCardField(props) {\r\n return ;\r\n}\r\n\r\nexport default StripeCreditCardField;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { AnalyticsTimeRange } from \"administration/analytics/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction AnalyticsLayoutTemplate({ analyticsTimeRangeViewStore, children, t }) {\r\n return (\r\n \r\n \r\n
    \r\n \r\n\r\n {children}\r\n \r\n );\r\n}\r\n\r\nAnalyticsLayoutTemplate.propTypes = {\r\n analyticsTimeRangeViewStore: PropTypes.object.isRequired,\r\n children: PropTypes.any,\r\n};\r\n\r\nconst Header = observer(function Header({ analyticsTimeRangeViewStore, t }) {\r\n const {\r\n rootStore: { routerStore },\r\n } = analyticsTimeRangeViewStore;\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Analytics\r\n \r\n \r\n \r\n );\r\n});\r\n\r\nexport default observer(AnalyticsLayoutTemplate);\r\n","import React from \"react\";\r\nimport { AnalyticsLayoutTemplate } from \"themes/administration/analytics/layouts\";\r\n\r\nfunction AnalyticsLayout(props) {\r\n return ;\r\n}\r\n\r\nexport default AnalyticsLayout;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeOrOverrideCss } from \"../../../common/utils\";\r\n\r\nfunction MrbPageContentFooter({\r\n classNameOverride,\r\n classNameExtend,\r\n children,\r\n}) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nMrbPageContentFooter.propTypes = {\r\n classNameOverride: PropTypes.string,\r\n classNameExtend: PropTypes.string,\r\n children: PropTypes.any,\r\n};\r\n\r\nexport default MrbPageContentFooter;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\n\r\nfunction MrbPageContentHeader({\r\n classNameExtend,\r\n classNameOverride,\r\n children,\r\n}) {\r\n return (\r\n
    {children}
    \r\n );\r\n}\r\n\r\nMrbPageContentHeader.propTypes = {\r\n children: PropTypes.any,\r\n classNameExtend: PropTypes.string,\r\n classNameOverride: PropTypes.string,\r\n};\r\n\r\nexport default MrbPageContentHeader;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeOrOverrideCss } from \"../../../common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbPageContentSidebar({\r\n children,\r\n classNameOverride,\r\n classNameExtend,\r\n}) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nMrbPageContentSidebar.propTypes = {\r\n classNameOverride: PropTypes.string,\r\n classNameExtend: PropTypes.string,\r\n children: PropTypes.any,\r\n};\r\n\r\nexport default observer(MrbPageContentSidebar);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeOrOverrideCss } from \"../../../common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbPageFooter({ children, classNameOverride, classNameExtend }) {\r\n return (\r\n \r\n
    {children}
    \r\n \r\n );\r\n}\r\n\r\nMrbPageFooter.propTypes = {\r\n children: PropTypes.any,\r\n classNameOverride: PropTypes.string,\r\n classNameExtend: PropTypes.string,\r\n};\r\n\r\nexport default observer(MrbPageFooter);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeOrOverrideCss } from \"../../../common/utils\";\r\n\r\nfunction MrbPageHeader({ children, classNameOverride, classNameExtend }) {\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nMrbPageHeader.propTypes = {\r\n children: PropTypes.any,\r\n classNameOverride: PropTypes.string,\r\n classNameExtend: PropTypes.string,\r\n};\r\n\r\nexport default MrbPageHeader;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeOrOverrideCss } from \"../../../common/utils\";\r\n\r\nfunction render(content) {\r\n return content\r\n ? typeof content === \"function\"\r\n ? content()\r\n : content\r\n : null;\r\n}\r\n\r\nfunction MrbPageContent({\r\n content,\r\n // loaderRenderer = () =>
    , // eslint-disable-line\r\n emptyRenderer = () => , // eslint-disable-line\r\n isEmpty = false,\r\n classNameExtend,\r\n classNameOverride,\r\n}) {\r\n // if (loading) return render(loaderRenderer);\r\n if (emptyRenderer && isEmpty) {\r\n return render(emptyRenderer);\r\n }\r\n\r\n return (\r\n \r\n {content.header ? content.header : null}\r\n\r\n
    {content.children}
    \r\n\r\n {content.sidebar ? content.sidebar : null}\r\n\r\n {content.footer ? content.footer : null}\r\n \r\n );\r\n}\r\n\r\nMrbPageContent.propTypes = {\r\n isEmpty: PropTypes.bool,\r\n emptyRenderer: PropTypes.any,\r\n content: PropTypes.any,\r\n classNameExtend: PropTypes.string,\r\n classNameOverride: PropTypes.string,\r\n};\r\n\r\nexport default MrbPageContent;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPageContent } from \"./\";\r\nimport { getPageObject } from \"../utils\";\r\n\r\nfunction MrbPage({\r\n children,\r\n contentClassNameExtend,\r\n contentClassNameOverride,\r\n t,\r\n}) {\r\n const { header, footer, content } = getPageObject(children);\r\n return (\r\n \r\n {header}\r\n \r\n {footer}\r\n \r\n );\r\n}\r\n\r\nMrbPage.propTypes = {\r\n children: PropTypes.any,\r\n contentClassNameExtend: PropTypes.string,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default MrbPage;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { renderActions } from \"../utils\";\r\nimport { MrbBreadcrumbs } from \"../../breadcrumbs\";\r\nimport { MrbButton } from \"../../button\";\r\nimport { isFunction } from \"lodash\";\r\nimport { default as MrbRouterLink } from \"../../../core/infrastructure/router/MrbRouterLink\";\r\nimport { MrbEditFormValidation } from \"../content\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbEditPageHeader({\r\n form,\r\n onClickCancel,\r\n title,\r\n layoutActions,\r\n navigationOptions,\r\n navigateBack,\r\n t = (i) => i,\r\n submitLabel,\r\n cancelLabel,\r\n}) {\r\n return (\r\n \r\n
    \r\n {navigateBack ? (\r\n \r\n \r\n \r\n \r\n {t(navigateBack.title)}\r\n \r\n ) : (\r\n
    {t(title)}
    \r\n )}\r\n
    \r\n \r\n\r\n \r\n {renderActions(layoutActions)}\r\n
    \r\n
    \r\n {navigationOptions && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nMrbEditPageHeader.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n onClickCancel: PropTypes.func,\r\n title: PropTypes.string,\r\n layoutActions: PropTypes.object,\r\n navigationOptions: PropTypes.object,\r\n navigateBack: PropTypes.object,\r\n t: PropTypes.func,\r\n submitLabel: PropTypes.string,\r\n cancelLabel: PropTypes.string,\r\n};\r\n\r\nconst EditPageActions = observer(function EditPageActions({\r\n form,\r\n onClickCancel,\r\n submitLabel = \"Save\",\r\n cancelLabel = \"Cancel\",\r\n t,\r\n}) {\r\n return (\r\n \r\n {onClickCancel && isFunction(onClickCancel) && (\r\n \r\n )}{\" \"}\r\n \r\n \r\n );\r\n});\r\n\r\nEditPageActions.propTypes = {\r\n form: PropTypes.object.isRequired,\r\n onClickCancel: PropTypes.func,\r\n submitLabel: PropTypes.string,\r\n cancelLabel: PropTypes.string,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbEditPageHeader);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbPage, MrbPageHeader } from \"./\";\r\nimport { MrbEditContent } from \"../content\";\r\nimport { getPageObject } from \"../utils\";\r\nimport { MrbEditPageHeader } from \"./\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbEditPage({\r\n store,\r\n children,\r\n onSubmit,\r\n t,\r\n submitLabel,\r\n cancelLabel,\r\n ...pageProps\r\n}) {\r\n const {\r\n form,\r\n onClickCancel,\r\n title,\r\n layoutActions,\r\n navigationOptions,\r\n navigateBack,\r\n } = store;\r\n const { header, footer, content } = getPageObject(children);\r\n return (\r\n
    \r\n \r\n {header ? (\r\n header\r\n ) : (\r\n \r\n \r\n \r\n )}\r\n {content.header}\r\n {content.sidebar}\r\n {content.children}\r\n {content.footer}\r\n {footer}\r\n \r\n
    \r\n );\r\n}\r\n\r\nMrbEditPage.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n children: PropTypes.any,\r\n onSubmit: PropTypes.func,\r\n t: PropTypes.func,\r\n layoutFooterVisible: PropTypes.bool,\r\n submitLabel: PropTypes.string,\r\n cancelLabel: PropTypes.string,\r\n};\r\n\r\nexport default observer(MrbEditPage);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbPage, MrbPageHeader } from \"./\";\r\nimport { MrbListContent } from \"../content\";\r\nimport { MrbBreadcrumbs } from \"../../breadcrumbs\";\r\nimport { getPageObject, renderActions } from \"../utils\";\r\n\r\nfunction MrbListPage({ store, children, t = (i) => i, ...pageProps }) {\r\n const { layoutActions, navigationOptions, title } = store;\r\n const { header, footer, content } = getPageObject(children);\r\n\r\n let layoutActionsLength = Object.keys(layoutActions).length;\r\n\r\n return (\r\n \r\n {header ? (\r\n header\r\n ) : (\r\n \r\n
    \r\n
    {t(title)}
    \r\n 0\r\n ? \"c-header__actions--end\"\r\n : \"\"\r\n }`}\r\n >\r\n {renderActions(layoutActions, t)}\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n {content.header}\r\n {content.sidebar}\r\n {content.children}\r\n {content.footer}\r\n {footer}\r\n
    \r\n );\r\n}\r\nMrbListPage.propTypes = {\r\n title: PropTypes.string,\r\n store: PropTypes.object.isRequired,\r\n children: PropTypes.any,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default MrbListPage;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { renderActions } from \"../utils\";\r\nimport { MrbBreadcrumbs } from \"../../breadcrumbs\";\r\nimport { isNil } from \"lodash\";\r\nimport { default as MrbRouterLink } from \"../../../core/infrastructure/router/MrbRouterLink\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbPreviewPageHeader({ title, layoutActions, navigationOptions, navigateBack, t = (i) => i }) {\r\n const layoutActionsLength = !isNil(layoutActions) ? Object.keys(layoutActions).length : 0;\r\n\r\n return (\r\n \r\n
    \r\n {navigateBack ? (\r\n \r\n \r\n \r\n \r\n {t(navigateBack.title)}\r\n \r\n ) : (\r\n
    {t(title)}
    \r\n )}\r\n \r\n {renderActions(layoutActions, t)}\r\n
    \r\n \r\n {navigationOptions && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nMrbPreviewPageHeader.propTypes = {\r\n title: PropTypes.string,\r\n layoutActions: PropTypes.object,\r\n navigationOptions: PropTypes.object,\r\n navigateBack: PropTypes.object,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbPreviewPageHeader);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbPreviewContent } from \"../content\";\r\nimport { getPageObject } from \"../utils\";\r\nimport { MrbPage, MrbPageHeader, MrbPreviewPageHeader } from \"./\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbPreviewPage({ store, children, t = (i) => i, ...pageProps }) {\r\n const { layoutActions, navigationOptions, title, navigateBack } = store;\r\n const { header, footer, content } = getPageObject(children);\r\n\r\n return (\r\n \r\n {header ? (\r\n header\r\n ) : (\r\n \r\n \r\n \r\n )}\r\n {content.header}\r\n {content.sidebar}\r\n {content.children}\r\n {content.footer}\r\n {footer}\r\n \r\n );\r\n}\r\n\r\nMrbPreviewPage.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n children: PropTypes.any,\r\n layoutFooterVisible: PropTypes.bool,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbPreviewPage);\r\n","const uriFormat = new RegExp(\r\n \"^\" +\r\n // protocol identifier (optional)\r\n // short syntax // still required\r\n \"(?:(?:(?:https?):)?\\\\/\\\\/)?\" +\r\n // user:pass BasicAuth (optional)\r\n \"(?:\\\\S+(?::\\\\S*)?@)?\" +\r\n \"(?:\" +\r\n // IP address exclusion\r\n // private & local networks\r\n \"(?!(?:10|127)(?:\\\\.\\\\d{1,3}){3})\" +\r\n \"(?!(?:169\\\\.254|192\\\\.168)(?:\\\\.\\\\d{1,3}){2})\" +\r\n \"(?!172\\\\.(?:1[6-9]|2\\\\d|3[0-1])(?:\\\\.\\\\d{1,3}){2})\" +\r\n // IP address dotted notation octets\r\n // excludes loopback network 0.0.0.0\r\n // excludes reserved space >= 224.0.0.0\r\n // excludes network & broacast addresses\r\n // (first & last IP address of each class)\r\n \"(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])\" +\r\n \"(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}\" +\r\n \"(?:\\\\.(?:[1-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))\" +\r\n \"|\" +\r\n // host & domain names, may end with dot\r\n // can be replaced by a shortest alternative\r\n // (?![-_])(?:[-\\\\w\\\\u00a1-\\\\uffff]{0,63}[^-_]\\\\.)+\r\n \"(?:\" +\r\n \"(?:\" +\r\n \"[a-z0-9\\\\u00a1-\\\\uffff]\" +\r\n \"[a-z0-9\\\\u00a1-\\\\uffff_-]{0,62}\" +\r\n \")?\" +\r\n \"[a-z0-9\\\\u00a1-\\\\uffff]\\\\.\" +\r\n \")+\" +\r\n // TLD identifier name, may end with dot\r\n \"(?:[a-z\\\\u00a1-\\\\uffff]{2,}\\\\.?)\" +\r\n \")\" +\r\n // port number (optional)\r\n \"(?::\\\\d{2,5})?\" +\r\n // resource path (optional)\r\n \"(?:[/?#]\\\\S*)?\" +\r\n \"$\",\r\n \"i\"\r\n);\r\n\r\nexport default uriFormat;\r\n","import { uriFormat } from \"../utils\";\r\n\r\nconst mrbDefaultFormRules = {\r\n array_required: {\r\n // eslint-disable-next-line\r\n rule: (value, req, attr, form) => {\r\n return Array.isArray(value) && value.length > 0;\r\n },\r\n message: \"The :attribute must have at least 1 value\",\r\n },\r\n // before_or_equal_date: beforeOrEqualDate,\r\n // before_date: beforeDate,\r\n // after_date: afterDate,\r\n // min_date: minDate,\r\n // max_date: maxDate,\r\n // greater_than: greaterThan,\r\n // less_than: lessThan,\r\n url: {\r\n // eslint-disable-next-line\r\n rule: (value, req, attr, form) => {\r\n if (value.indexOf(\" \") !== -1) {\r\n return false;\r\n }\r\n\r\n return uriFormat.test(value);\r\n },\r\n message: \"Invalid URL.\",\r\n },\r\n};\r\n\r\nexport default mrbDefaultFormRules;\r\n","const mrbDefaultValidationErrors = {\r\n accepted: \"ERROR_MESSAGES.ACCEPTED\",\r\n after: \"ERROR_MESSAGES.AFTER\",\r\n after_or_equal: \"ERROR_MESSAGES.AFTER_OR_EQUAL\",\r\n alpha: \"ERROR_MESSAGES.ALPHA\",\r\n alpha_dash: \"ERROR_MESSAGES.ALPHA_DASH\",\r\n alpha_num: \"ERROR_MESSAGES.ALPHA_NUM\",\r\n before: \"ERROR_MESSAGES.BEFORE\",\r\n before_or_equal: \"ERROR_MESSAGES.BEFORE_OR_EQUAL\",\r\n between: \"ERROR_MESSAGES.BETWEEN\",\r\n confirmed: \"ERROR_MESSAGES.CONFIRMED\",\r\n date: \"ERROR_MESSAGES.DATE\",\r\n def: \"ERROR_MESSAGES.DEF\",\r\n different: \"ERROR_MESSAGES.DIFFERENT\",\r\n digits: \"ERROR_MESSAGES.DIGITS\",\r\n email: \"ERROR_MESSAGES.EMAIL\",\r\n in: \"ERROR_MESSAGES.IN\",\r\n integer: \"ERROR_MESSAGES.INTEGER\",\r\n max: {\r\n numeric: \"ERROR_MESSAGES.MAX.NUMERIC\",\r\n string: \"ERROR_MESSAGES.MAX.STRING\",\r\n },\r\n min: {\r\n numeric: \"ERROR_MESSAGES.MIN.NUMERIC\",\r\n string: \"ERROR_MESSAGES.MIN.STRING\",\r\n },\r\n not_in: \"ERROR_MESSAGES.NOT_IN\",\r\n numeric: \"ERROR_MESSAGES.NUMERIC\",\r\n present: \"ERROR_MESSAGES.PRESENT\",\r\n regex: \"ERROR_MESSAGES.REGEX\",\r\n required: \"ERROR_MESSAGES.REQUIRED\",\r\n required_if: \"ERROR_MESSAGES.REQUIRED_IF\",\r\n required_unless: \"ERROR_MESSAGES.REQUIRED_UNLESS\",\r\n required_with: \"ERROR_MESSAGES.REQUIRED_WITH\",\r\n required_with_all: \"ERROR_MESSAGES.REQUIIRED_WITH_ALL\",\r\n required_without: \"ERROR_MESSAGES.REQUIRED_WITHOUT\",\r\n required_without_all: \"ERROR_MESSAGES.REQUIRED_WITHOUT_ALL\",\r\n same: \"ERROR_MESSAGES.SAME\",\r\n size: {\r\n numeric: \"ERROR_MESSAGES.SIZE.NUMERIC\",\r\n string: \"ERROR_MESSAGES.SIZE.STRING\",\r\n },\r\n string: \"ERROR_MESSAGES.STRING\",\r\n url: \"ERROR_MESSAGES.URL\",\r\n after_date: \"ERROR_MESSAGES.CUSTOM.AFTER_DATE\",\r\n};\r\n\r\nexport default mrbDefaultValidationErrors;\r\n","import { split, join, filter, findIndex } from \"lodash\";\r\n\r\nclass MrbValidationRules {\r\n _rules = [];\r\n _separator = \"|\";\r\n\r\n get rules() {\r\n return [...this._rules];\r\n }\r\n\r\n get isRequired() {\r\n return findIndex(this._rules, (rule) => rule === \"required\") !== -1;\r\n }\r\n\r\n constructor(rulesExpression) {\r\n if (rulesExpression) {\r\n this._rules = split(rulesExpression, this._separator);\r\n }\r\n }\r\n\r\n addIsRequiredRule() {\r\n if (!this.isRequired) {\r\n this.rules.push(\"required\");\r\n }\r\n this.addRule(\"required\");\r\n }\r\n\r\n removeIsRequiredRule() {\r\n this.removeRule(\"required\");\r\n }\r\n\r\n addRule(ruleName) {\r\n if (!this.ruleExists(ruleName)) {\r\n this._rules.push(ruleName);\r\n }\r\n }\r\n\r\n removeRule(ruleName) {\r\n if (this.ruleExists(ruleName)) {\r\n this._rules = filter(this._rules, (rule) => rule !== ruleName);\r\n }\r\n }\r\n\r\n ruleExists(ruleName) {\r\n return findIndex(this._rules, (rule) => rule === ruleName) !== -1;\r\n }\r\n\r\n createExpression() {\r\n if (this._rules && this._rules.length > 0) {\r\n return join(this._rules, this._separator);\r\n }\r\n\r\n return \"\";\r\n }\r\n}\r\n\r\nexport default MrbValidationRules;\r\n","import { findIndex, orderBy, isFunction } from \"lodash\";\r\nimport moment from \"moment\";\r\n\r\nfunction spanDataSetToFullDateRange(dataset, createItemFn) {\r\n if (!isFunction(createItemFn)) {\r\n throw new Error(\"createItemFn is not defined.\");\r\n }\r\n const min = moment(dataset.timeRange.min);\r\n const max = moment(dataset.timeRange.max);\r\n const groupedBy = dataset.groupedBy.toLowerCase();\r\n const periods = max.diff(min, groupedBy) + 1;\r\n let currentPeriodStart = moment.tz(dataset.timeRange.min, dataset.timeZone).startOf(groupedBy).toISOString();\r\n let currentPeriodEnd = moment.tz(dataset.timeRange.min, dataset.timeZone).endOf(groupedBy).toISOString();\r\n let missingPeriods = [];\r\n for (let period = 1; period <= periods; period++) {\r\n /* eslint-disable no-loop-func */\r\n const index = findIndex(dataset.data, (x) => moment(x.periodStartDate).isSame(currentPeriodStart));\r\n if (index === -1) {\r\n missingPeriods.push(createItemFn(currentPeriodStart, currentPeriodEnd));\r\n }\r\n currentPeriodStart = moment\r\n .tz(currentPeriodStart, dataset.timeZone)\r\n .add(1, groupedBy)\r\n .startOf(groupedBy)\r\n .toISOString();\r\n currentPeriodEnd = moment\r\n .tz(currentPeriodEnd, dataset.timeZone)\r\n .add(1, groupedBy)\r\n .endOf(groupedBy)\r\n .toISOString();\r\n }\r\n const result = orderBy([...dataset.data, ...missingPeriods], (x) => x.periodStartDate);\r\n return result;\r\n}\r\n\r\nexport default spanDataSetToFullDateRange;\r\n","import { timeGroup } from \"administration/analytics/constants\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { map } from \"lodash\";\r\nimport moment from \"moment\";\r\n\r\nfunction createTimeRangeChartLabel(result) {\r\n if (result.groupedBy === timeGroup.hour) {\r\n return map(result.data, (item) => {\r\n const startOfDay = moment.tz(item.periodStartDate, result.timeZone).startOf(\"day\").toISOString();\r\n if (moment(item.periodStartDate).isSame(startOfDay, \"hour\")) {\r\n return dateFormatter.format(item.periodStartDate, {\r\n format: \"MMM D\",\r\n timeZone: result.timeZone,\r\n });\r\n }\r\n return dateFormatter.format(item.periodStartDate, {\r\n format: \"HH A\",\r\n timeZone: result.timeZone,\r\n });\r\n });\r\n } else if (result.groupedBy === timeGroup.day) {\r\n return map(result.data, (item) =>\r\n dateFormatter.format(item.periodStartDate, {\r\n format: \"MMM D\",\r\n timeZone: result.timeZone,\r\n })\r\n );\r\n } else if (result.groupedBy === timeGroup.week) {\r\n return map(result.data, (item) => {\r\n const startOfWeek = dateFormatter.format(item.periodStartDate, {\r\n format: \"MMM D\",\r\n });\r\n const endOfWeek = dateFormatter.format(item.periodEndDate, {\r\n format: \"MMM D\",\r\n timeZone: result.timeZone,\r\n });\r\n\r\n return `${startOfWeek} - ${endOfWeek}`;\r\n });\r\n } else if (result.groupedBy === timeGroup.month) {\r\n return map(result.data, (item) =>\r\n dateFormatter.format(item.periodStartDate, {\r\n format: applicationDefaults.formats.month,\r\n timeZone: result.timeZone,\r\n })\r\n );\r\n }\r\n}\r\n\r\nexport default createTimeRangeChartLabel;\r\n","import { timeRangeType } from \"administration/analytics/constants\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\n\r\nclass TimeRangeLabelParser {\r\n createCurrentCycleLabel(range, from, to, timeZone) {\r\n switch (range) {\r\n case timeRangeType.today:\r\n return \"Today\";\r\n case timeRangeType.yesterday:\r\n return \"Yesterday\";\r\n case timeRangeType.last3Days:\r\n return \"Last 3 Days\";\r\n case timeRangeType.thisWeek:\r\n return \"This Week\";\r\n case timeRangeType.lastWeek:\r\n return \"Last Week\";\r\n case timeRangeType.thisMonth:\r\n return \"This Month\";\r\n case timeRangeType.lastMonth:\r\n return \"Last Month\";\r\n default:\r\n const fromDate = dateFormatter.format(from, {\r\n format: applicationDefaults.formats.date,\r\n timeZone: timeZone,\r\n });\r\n const toDate = dateFormatter.format(to, {\r\n format: applicationDefaults.formats.date,\r\n timeZone: timeZone,\r\n });\r\n return `${fromDate} - ${toDate}`;\r\n }\r\n }\r\n\r\n createPreviousCycleLabel(range, from, to, timeZone) {\r\n switch (range) {\r\n case timeRangeType.today:\r\n return \"Yesterday\";\r\n case timeRangeType.yesterday:\r\n return dateFormatter.format(from, {\r\n format: applicationDefaults.formats.date,\r\n timeZone: timeZone,\r\n });\r\n case timeRangeType.thisWeek:\r\n return \"Last Week\";\r\n case timeRangeType.thisMonth:\r\n return \"Last Month\";\r\n case timeRangeType.lastMonth:\r\n return dateFormatter.format(from, {\r\n format: applicationDefaults.formats.monthFull,\r\n timeZone: timeZone,\r\n });\r\n case timeRangeType.last3Days:\r\n case timeRangeType.lastWeek:\r\n default:\r\n const fromDate = dateFormatter.format(from, {\r\n format: applicationDefaults.formats.date,\r\n timeZone: timeZone,\r\n });\r\n const toDate = dateFormatter.format(to, {\r\n format: applicationDefaults.formats.date,\r\n timeZone: timeZone,\r\n });\r\n return `${fromDate} - ${toDate}`;\r\n }\r\n }\r\n}\r\n\r\nconst timeRangeLabelParser = new TimeRangeLabelParser();\r\nexport default timeRangeLabelParser;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction MrbEmptyState({ title, message, children, t = (i) => i }) {\r\n return (\r\n
    \r\n
    \r\n \r\n
    {t(title)}
    \r\n
    \r\n
    \r\n {children ? children :

    {t(message)}

    }\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nMrbEmptyState.propTypes = {\r\n title: PropTypes.string,\r\n message: PropTypes.string,\r\n children: PropTypes.any,\r\n};\r\n\r\nMrbEmptyState.defaultProps = {\r\n title: \"EMPTY_STATE.NO_DATA\",\r\n message: \"\",\r\n};\r\n\r\nexport default MrbEmptyState;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport md5 from \"md5\";\r\n\r\nconst baseUrl = \"https://www.gravatar.com/avatar/\";\r\n\r\nfunction MrbGravatar({ email, size, className }) {\r\n const hash = md5(email, { encoding: \"binary\" });\r\n const src = `${baseUrl}${hash}`;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nMrbGravatar.propTypes = {\r\n email: PropTypes.string.isRequired,\r\n size: PropTypes.number,\r\n className: PropTypes.string,\r\n};\r\n\r\nexport default React.memo(MrbGravatar);\r\n","import React from \"react\";\r\nimport ReCAPTCHA from \"react-google-recaptcha\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction MrbRecaptcha({ store, className, tabindex }) {\r\n const { setCaptchaRef, config, onChange, onExpired, onError } = store;\r\n return (\r\n
    \r\n setCaptchaRef(ref)}\r\n onChange={onChange}\r\n onExpired={onExpired}\r\n onErrored={onError}\r\n />\r\n
    \r\n );\r\n}\r\n\r\nMrbRecaptcha.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n className: PropTypes.string,\r\n onResolved: PropTypes.func,\r\n tabindex: PropTypes.number,\r\n};\r\n\r\nexport default MrbRecaptcha;\r\n","import { MrbBaseViewStore } from \"../../core/stores\";\r\nimport { merge, isFunction } from \"lodash\";\r\n\r\nconst DefaultConfig = {\r\n siteKey: null,\r\n secureToken: null,\r\n type: \"invisible\",\r\n badgePosition: \"bottomright\",\r\n actions: {\r\n onError: () => {},\r\n onExpired: () => {},\r\n onChange: () => {},\r\n },\r\n};\r\n\r\nclass MrbRecaptchaViewStore extends MrbBaseViewStore {\r\n initialUpdate = false;\r\n captchaRef = null;\r\n siteKey = null;\r\n\r\n constructor(rootStore, config) {\r\n super(rootStore);\r\n this.config = merge({}, DefaultConfig, config);\r\n\r\n if (!this.config.siteKey) {\r\n throw new Error(\"Public site key must be provided.\");\r\n }\r\n }\r\n\r\n setCaptchaRef = (ref) => {\r\n this.captchaRef = ref;\r\n };\r\n\r\n execute = () => {\r\n const existingToken = this.getVerificationResult();\r\n if (existingToken) {\r\n this.reset();\r\n }\r\n return this.captchaRef.executeAsync();\r\n };\r\n\r\n onChange = (response) => {\r\n if (\r\n this.config.actions.onChange &&\r\n isFunction(this.config.actions.onChange)\r\n ) {\r\n this.config.actions.onChange(response);\r\n }\r\n };\r\n\r\n onError = (response) => {\r\n if (\r\n this.config.actions.onError &&\r\n isFunction(this.config.actions.onError)\r\n ) {\r\n this.config.actions.onError(response);\r\n }\r\n };\r\n\r\n onExpired = (response) => {\r\n if (\r\n this.config.actions.onExpired &&\r\n isFunction(this.config.actions.onExpired)\r\n ) {\r\n this.config.actions.onExpired(response);\r\n }\r\n };\r\n\r\n reset = () => {\r\n return this.captchaRef.reset();\r\n };\r\n\r\n getVerificationResult = () => {\r\n return this.captchaRef.getValue();\r\n };\r\n}\r\n\r\nexport default MrbRecaptchaViewStore;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction MrbRecaptchaPrivacyPolicy({ className = null }) {\r\n return (\r\n

    \r\n This page is protected by reCAPTCHA and the Google{\" \"}\r\n \r\n Privacy Policy\r\n {\" \"}\r\n and{\" \"}\r\n \r\n Terms of Service\r\n {\" \"}\r\n apply.\r\n

    \r\n );\r\n}\r\n\r\nMrbRecaptchaPrivacyPolicy.propTypes = {\r\n className: PropTypes.string,\r\n};\r\n\r\nexport default MrbRecaptchaPrivacyPolicy;\r\n","import { action, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { merge, isFunction } from \"lodash\";\r\nimport { MrbContentLoaderStore } from \"mrb/components/loader\";\r\n\r\nconst DefaultConfig = {\r\n label: \"Chart\",\r\n fill: true,\r\n actions: {\r\n find: () => { },\r\n },\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n animation: {\r\n easing: \"easeInOutQuad\",\r\n duration: 520,\r\n },\r\n scales: {\r\n y: {\r\n suggestedMax: 10,\r\n grid: {\r\n color: \"rgba(190,190,190,0.4)\",\r\n },\r\n ticks: {\r\n color: \"rgba(200,200,200,0.7)\",\r\n precision: 0,\r\n },\r\n },\r\n x: {\r\n grid: {\r\n color: \"rgba(200,200,200,0.4)\",\r\n },\r\n ticks: {\r\n color: \"rgba(200,200,200,0.7)\",\r\n },\r\n },\r\n },\r\n },\r\n};\r\n\r\nclass LineChartStore {\r\n @observable.ref data = [];\r\n @observable.ref labels = [];\r\n\r\n config = {};\r\n\r\n constructor(rootStore, config) {\r\n makeObservable(this);\r\n this.rootStore = rootStore;\r\n this.loaderStore = new MrbContentLoaderStore();\r\n\r\n this.config = merge(this.config, DefaultConfig, config);\r\n\r\n this.suspend = this.suspend.bind(this);\r\n this.resume = this.resume.bind(this);\r\n }\r\n\r\n suspend() {\r\n this.loaderStore.suspend();\r\n }\r\n\r\n resume() {\r\n this.loaderStore.resume();\r\n }\r\n\r\n generate(params, abortController = null) {\r\n return this.getResources(params, abortController);\r\n }\r\n\r\n async getResources(params, abortController = null) {\r\n try {\r\n this.suspend();\r\n let data = await this.config.actions.find(params, abortController);\r\n if (isFunction(this.config.actions.preprocessData)) {\r\n data = this.config.actions.preprocessData(data);\r\n }\r\n const dataset = this.config.actions.mapDataset(data);\r\n const labels = this.config.actions.mapLabels(data);\r\n runInAction(() => {\r\n this.setLabels(labels);\r\n this.setData(dataset);\r\n this.resume();\r\n });\r\n } catch (err) {\r\n this.resume();\r\n if (isFunction(this.config.actions.onError)) {\r\n this.config.actions.onError(err);\r\n } else {\r\n throw err;\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n setData(data) {\r\n this.data = data;\r\n }\r\n\r\n @action.bound\r\n setLabels(labels) {\r\n this.labels = labels;\r\n }\r\n}\r\n\r\nexport default LineChartStore;\r\n","import React from \"react\";\r\nimport { LineChartTemplate } from \"themes/common/components\";\r\n\r\nfunction LineChart(props) {\r\n return ;\r\n}\r\n\r\nexport default LineChart;\r\n","import { action, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { merge, isFunction } from \"lodash\";\r\nimport { MrbContentLoaderStore } from \"mrb/components/loader\";\r\n\r\nconst DefaultConfig = {\r\n label: \"Chart\",\r\n actions: {\r\n find: () => { },\r\n },\r\n options: {\r\n responsive: true,\r\n maintainAspectRatio: false,\r\n animation: {\r\n easing: \"easeInOutQuad\",\r\n duration: 520,\r\n },\r\n },\r\n};\r\n\r\nclass DoughnutChartStore {\r\n @observable.ref data = [];\r\n @observable.ref labels = [];\r\n\r\n config = {};\r\n\r\n constructor(rootStore, config) {\r\n makeObservable(this);\r\n this.rootStore = rootStore;\r\n this.loaderStore = new MrbContentLoaderStore();\r\n\r\n this.config = merge(this.config, DefaultConfig, config);\r\n\r\n this.suspend = this.suspend.bind(this);\r\n this.resume = this.resume.bind(this);\r\n }\r\n\r\n suspend() {\r\n this.loaderStore.suspend();\r\n }\r\n\r\n resume() {\r\n this.loaderStore.resume();\r\n }\r\n\r\n generate(params, abortController = null) {\r\n return this.getResources(params, abortController);\r\n }\r\n\r\n @action.bound\r\n setDataSet(data) {\r\n if (isFunction(this.config.actions.preprocessData)) {\r\n data = this.config.actions.preprocessData(data);\r\n }\r\n const dataset = this.config.actions.mapDataset(data);\r\n const labels = this.config.actions.mapLabels(data);\r\n this.setLabels(labels);\r\n this.setData(dataset);\r\n }\r\n\r\n async getResources(params, abortController = null) {\r\n try {\r\n this.suspend();\r\n let data = await this.config.actions.find(params, abortController);\r\n runInAction(() => {\r\n this.setDataSet(data);\r\n this.resume();\r\n });\r\n } catch (err) {\r\n this.resume();\r\n if (isFunction(this.config.actions.onError)) {\r\n this.config.actions.onError(err);\r\n } else {\r\n throw err;\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n setData(data) {\r\n this.data = data;\r\n }\r\n\r\n @action.bound\r\n setLabels(labels) {\r\n this.labels = labels;\r\n }\r\n}\r\n\r\nexport default DoughnutChartStore;\r\n","import React from \"react\";\r\nimport { DoughnutChartTemplate } from \"themes/common/components\";\r\n\r\nfunction DoughnutChart(props) {\r\n return ;\r\n}\r\n\r\nexport default DoughnutChart;\r\n","class Error {\r\n constructor() {\r\n this.error = { message: \"N/A\" };\r\n this.message = \"Unhandled error occurred, please contact support team.\";\r\n this.description = \"\";\r\n }\r\n}\r\n\r\nexport default Error;\r\n","import { some, reverse, every, map, orderBy } from \"lodash\";\r\nimport { action, observable, computed, makeObservable } from \"mobx\";\r\nimport { generateUrl } from \"mobx-state-router\";\r\n\r\nclass MenuItem {\r\n title = null;\r\n icon = null;\r\n route = null;\r\n params = null;\r\n parent = null;\r\n isExternal = false;\r\n order = null;\r\n\r\n @observable isSelected = false;\r\n\r\n @observable isActive = false;\r\n\r\n @observable.ref subMenu = [];\r\n\r\n @computed get hasChildren() {\r\n return this.subMenu && this.subMenu.length > 0;\r\n }\r\n\r\n get canNavigate() {\r\n return this.route && this.route !== \"\";\r\n }\r\n\r\n get isClickable() {\r\n return (this.hasChildren && some(this.subMenu, (m) => m.isClickable)) || this.canNavigate;\r\n }\r\n\r\n constructor(menuStore, json) {\r\n this.menuStore = menuStore;\r\n makeObservable(this);\r\n this.title = json.title;\r\n this.icon = json.icon;\r\n this.parent = json.parent || null;\r\n this.route = json.route;\r\n this.order = json.order || null; // if order is not defined, push item to the bottom\r\n this.path = reverse([this, ...(this.parent ? reverse([...this.parent.path]) : [])]);\r\n this.params = json.params;\r\n\r\n this.depth = this.path.length;\r\n\r\n if (json.subMenu) {\r\n this.subMenu = orderBy(\r\n map(json.subMenu, (item) => {\r\n return new MenuItem(this.menuStore, {\r\n ...item,\r\n subMenu: item.subMenu,\r\n parent: this,\r\n });\r\n }),\r\n (item) => item.order,\r\n \"asc\"\r\n );\r\n }\r\n\r\n this.equals = this.equals.bind(this);\r\n this.isActiveByPath = this.isActiveByPath.bind(this);\r\n this.shouldHideChildren = json.shouldHideChildren || false;\r\n }\r\n\r\n getRoute(forceLeaf = false) {\r\n if (!this.canNavigate) {\r\n if (forceLeaf && this.hasChildren) {\r\n const subItem = this.subMenu[0]; // immediatelly navigate to first child\r\n return subItem.getRoute();\r\n }\r\n } else {\r\n const route = typeof this.route === \"function\" ? this.route() : this.route;\r\n if (route !== null) {\r\n return route;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n equals(other) {\r\n return this.depth === other.depth && this.title === other.title && this.route === other.route;\r\n }\r\n\r\n isActiveByPath(path) {\r\n if (path.length < this.path.length) return false;\r\n return every(this.path, (p, idx) => p.equals(path[idx]));\r\n }\r\n\r\n getPattern() {\r\n const routeName = this.getRoute();\r\n if (routeName) {\r\n const routerStore = this.menuStore.rootStore.routerStore;\r\n const pattern = routerStore.findRoute(routeName) ? routerStore.findRoute(routeName).pattern : \"/\";\r\n return generateUrl(pattern);\r\n }\r\n\r\n return \"\";\r\n }\r\n\r\n @action.bound\r\n setIsSelected(isSelected) {\r\n this.isSelected = isSelected;\r\n }\r\n\r\n @action.bound\r\n setIsActive(isActive) {\r\n this.isActive = isActive;\r\n }\r\n\r\n @action.bound\r\n onClick() {}\r\n}\r\n\r\nexport default MenuItem;\r\n","import { action, observable } from \"mobx\";\r\n\r\nclass NavigationOptions {\r\n @observable loading = false;\r\n @observable title = null;\r\n\r\n @action setTitle = (title) => {\r\n this.title = title;\r\n };\r\n\r\n @action suspend = () => {\r\n this.loading = true;\r\n };\r\n\r\n @action resume = () => {\r\n this.loading = false;\r\n };\r\n}\r\n\r\nexport default NavigationOptions;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { findIndex } from \"lodash\";\r\n\r\n/*\r\n will NOT work with kendo UI components since they always render outside of your usual DOM tree\r\n if you're trying to make this work, set a ref directly on a kendo UI component instead of using a wrapper\r\n and handle it same as it's handled here\r\n*/\r\n\r\nclass MrbNotifyOutsideClick extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.ignoreElementsRef = props.ignoreElementsRef;\r\n this.setWrapperRef = this.setWrapperRef.bind(this);\r\n this.handleClickOutside = this.handleClickOutside.bind(this);\r\n this.isInIgnoreList = this.isInIgnoreList.bind(this);\r\n }\r\n\r\n componentDidMount() {\r\n document.addEventListener(\"mousedown\", this.handleClickOutside);\r\n }\r\n\r\n componentWillUnmount() {\r\n document.removeEventListener(\"mousedown\", this.handleClickOutside);\r\n }\r\n\r\n setWrapperRef(node) {\r\n this.wrapperRef = node;\r\n }\r\n\r\n handleClickOutside(event) {\r\n if (\r\n this.wrapperRef &&\r\n !this.isInIgnoreList(event) &&\r\n !this.wrapperRef.contains(event.target)\r\n ) {\r\n this.props.action(event);\r\n }\r\n }\r\n\r\n isInIgnoreList(event) {\r\n if (this.ignoreElementsRef && this.ignoreElementsRef.length > 0) {\r\n return (\r\n findIndex(\r\n this.ignoreElementsRef,\r\n (ref) => ref === event.target || ref.contains(event.target)\r\n ) !== -1\r\n );\r\n }\r\n return false;\r\n }\r\n\r\n render() {\r\n return
    {this.props.children}
    ;\r\n }\r\n}\r\n\r\nMrbNotifyOutsideClick.propTypes = {\r\n children: PropTypes.node.isRequired,\r\n ignoreElements: PropTypes.any,\r\n action: PropTypes.func,\r\n};\r\n\r\nexport default MrbNotifyOutsideClick;\r\n","export default __webpack_public_path__ + \"static/media/placeholder-template.0f3bd0e8.svg\";","export default __webpack_public_path__ + \"static/media/logo-spa.9a11b108.svg\";","import React from \"react\";\r\n\r\nfunction MrbHeader() {\r\n return
    header
    ;\r\n}\r\n\r\nexport default MrbHeader;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport {\r\n MrbEditFormContent,\r\n MrbEditFormFooter,\r\n MrbEditFormValidation,\r\n} from \"./content\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbEditFormLayout({\r\n form,\r\n children,\r\n t,\r\n layoutFooterVisible,\r\n footer,\r\n onClickCancel,\r\n onSubmit,\r\n submitLabel,\r\n cancelLabel,\r\n hideCancel = false,\r\n submitDisabled = false,\r\n}) {\r\n return (\r\n \r\n
    \r\n {children}\r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nMrbEditFormLayout.propTypes = {\r\n form: PropTypes.object,\r\n children: PropTypes.any,\r\n t: PropTypes.func,\r\n layoutFooterVisible: PropTypes.bool,\r\n footer: PropTypes.any,\r\n onClickCancel: PropTypes.func,\r\n onSubmit: PropTypes.func,\r\n submitLabel: PropTypes.string,\r\n cancelLabel: PropTypes.string,\r\n hideCancel: PropTypes.bool,\r\n submitDisabled: PropTypes.bool,\r\n};\r\n\r\nexport default observer(MrbEditFormLayout);\r\n","const mrbDefaultFormats = {\r\n date: \"date\",\r\n bool: \"bool\",\r\n currency: \"currency\",\r\n};\r\n\r\nexport default mrbDefaultFormats;\r\n","class MrbBaseFormatter {\r\n constructor(formatType) {\r\n this.formatType = formatType;\r\n }\r\n\r\n canFormat(format) {\r\n return this.formatType === format;\r\n }\r\n\r\n format(value, options) {\r\n throw new Error(\"Not implemented.\");\r\n }\r\n}\r\n\r\nexport default MrbBaseFormatter;\r\n","import { MrbBaseFormatter } from \"./\";\r\nimport { mrbDefaultFormats } from \"./\";\r\n\r\nclass BoolFormatter extends MrbBaseFormatter {\r\n constructor() {\r\n super(mrbDefaultFormats.bool);\r\n }\r\n\r\n format(isTrue, { trueLabel, falseLabel }) {\r\n return isTrue ? trueLabel : falseLabel;\r\n }\r\n}\r\n\r\nconst boolFormatter = new BoolFormatter();\r\nexport default boolFormatter;\r\n","import { MrbBaseFormatter } from \"./\";\r\nimport { mrbDefaultFormats } from \"./\";\r\nimport moment from \"moment\";\r\n\r\nclass DateFormatter extends MrbBaseFormatter {\r\n constructor() {\r\n super(mrbDefaultFormats.date);\r\n }\r\n\r\n format(date, { format, timeZone = null }) {\r\n let momentDate = null;\r\n if (moment.isMoment(date)) {\r\n momentDate = date;\r\n } else if (timeZone && typeof date === \"string\" && moment(date, moment.ISO_8601, true).isValid()) {\r\n momentDate = moment.utc(date);\r\n } else {\r\n momentDate = moment(date);\r\n }\r\n if (timeZone) {\r\n momentDate = moment.tz(momentDate, timeZone);\r\n } else {\r\n momentDate = moment(momentDate);\r\n }\r\n if (format) {\r\n return momentDate.format(format);\r\n }\r\n return momentDate.toISOString();\r\n }\r\n}\r\n\r\nconst dateFormatter = new DateFormatter();\r\nexport default dateFormatter;\r\n","import { MrbBaseFormatter } from \"./\";\r\nimport { mrbDefaultFormats } from \"./\";\r\nimport { isNil } from \"lodash\";\r\n\r\nclass CurrencyFormatter extends MrbBaseFormatter {\r\n _formatters = {};\r\n\r\n constructor() {\r\n super(mrbDefaultFormats.currency);\r\n }\r\n\r\n format(value, { currency, locale = \"en-US\" }) {\r\n const formatter = this._getOrAddFormatter(currency, locale);\r\n\r\n return formatter.format(value);\r\n }\r\n\r\n _getOrAddFormatter(currency, locale) {\r\n const key = `${locale}_${currency}`;\r\n let formatter = this._formatters[key];\r\n if (isNil(formatter)) {\r\n formatter = new Intl.NumberFormat(locale, { style: \"currency\", currency: currency });\r\n this._formatters[key] = formatter;\r\n }\r\n\r\n return formatter;\r\n }\r\n}\r\n\r\nconst currencyFormatter = new CurrencyFormatter();\r\nexport default currencyFormatter;\r\n","import { boolFormatter, dateFormatter, currencyFormatter } from \"./\";\r\nimport { find, findIndex, forEach } from \"lodash\";\r\n\r\nclass MrbApplicationFormatter {\r\n _formatters = [boolFormatter, dateFormatter, currencyFormatter];\r\n\r\n constructor(formatters = []) {\r\n forEach(formatters, (formatter) => {\r\n const existingFormatterIndex = findIndex(\r\n this._formatters,\r\n (existingFormatter) => existingFormatter.formatType === formatter.formatType\r\n );\r\n if (existingFormatterIndex === -1) {\r\n this._formatters.push(formatter);\r\n } else {\r\n this._formatters[existingFormatterIndex] = formatter;\r\n }\r\n });\r\n }\r\n\r\n format(type, value, options = {}) {\r\n const formatter = find(this._formatters, (formatter) => formatter.canFormat(type));\r\n return formatter.format(value, options);\r\n }\r\n}\r\n\r\nexport default MrbApplicationFormatter;\r\n","class LocalStorageHandler {\r\n constructor() {\r\n if (!localStorage) {\r\n throw new Error(\"Local storage not found.\");\r\n }\r\n }\r\n\r\n clear() {\r\n return localStorage.clear();\r\n }\r\n\r\n remove(key) {\r\n return localStorage.removeItem(key);\r\n }\r\n\r\n get(key) {\r\n const item = localStorage.getItem(key);\r\n try {\r\n return JSON.parse(item);\r\n } catch (err) {\r\n return item;\r\n }\r\n }\r\n\r\n set(key, data) {\r\n if (typeof data === \"string\") {\r\n localStorage.setItem(key, data);\r\n } else {\r\n localStorage.setItem(key, JSON.stringify(data));\r\n }\r\n }\r\n\r\n getKeys() {\r\n let keys = [];\r\n\r\n for (let i = 0, len = localStorage.length; i < len; ++i) {\r\n keys.push(localStorage.key(i));\r\n }\r\n\r\n return keys;\r\n }\r\n}\r\n\r\nconst localStorageHandler = new LocalStorageHandler();\r\nexport default localStorageHandler;\r\n","class StorageProvider {\r\n constructor(storage) {\r\n this.storage = storage;\r\n }\r\n\r\n add(storageKey, item) {\r\n return this.storage.set(storageKey, item);\r\n }\r\n\r\n get(storageKey) {\r\n return this.storage.get(storageKey);\r\n }\r\n\r\n remove(storageKey) {\r\n this.storage.remove(storageKey);\r\n }\r\n\r\n clear() {\r\n this.storage.clear();\r\n }\r\n\r\n getKeys() {\r\n return this.storage.getKeys();\r\n }\r\n}\r\n\r\nexport default StorageProvider;\r\n","import { localStorageHandler } from \"./\";\r\nimport { StorageProvider } from \"./\";\r\n\r\nclass LocalStorageProvider extends StorageProvider {\r\n constructor() {\r\n super(localStorageHandler);\r\n }\r\n}\r\n\r\nconst localStorageProvider = new LocalStorageProvider();\r\nexport default localStorageProvider;\r\n","import { endsWith } from \"lodash\";\r\n\r\nfunction joinPaths(a, b) {\r\n a = a || \"\";\r\n b = b || \"\";\r\n if (b === \"\") return a;\r\n return removeEndingSlash(a) + \"/\" + removeStartingSlash(b);\r\n}\r\n\r\nfunction removeStartingSlash(str) {\r\n return str.replace(/^[\\/]+/, \"\"); // eslint-disable-line\r\n}\r\n\r\nfunction removeEndingSlash(str) {\r\n return str.replace(/[\\/]+$/, \"\"); // eslint-disable-line\r\n}\r\n\r\nfunction getSkipRoutePrefix(fromState, toState) {\r\n const fromParts = getRouteParts(fromState.routeName);\r\n const toParts = getRouteParts(toState.routeName);\r\n\r\n let skipRoutePrefix = undefined;\r\n const length = fromParts.length;\r\n for (let j = 0; j < toParts.length; j++) {\r\n if (length < j + 1) {\r\n break;\r\n }\r\n\r\n const fromElement = fromParts[j];\r\n const toElement = toParts[j];\r\n if (fromElement === toElement) {\r\n skipRoutePrefix =\r\n skipRoutePrefix === undefined\r\n ? toElement\r\n : skipRoutePrefix + \".\" + toElement;\r\n }\r\n }\r\n return skipRoutePrefix;\r\n}\r\n\r\nfunction getBreadcrumbTitle(routeName) {\r\n const predicate = (suffix) => endsWith(routeName, suffix);\r\n\r\n let breadcrumb;\r\n if (predicate(\".list\")) {\r\n breadcrumb = \"\";\r\n } else if (predicate(\".edit\")) {\r\n breadcrumb = \"BREADCRUMBS.EDIT\";\r\n } else if (predicate(\".create\")) {\r\n breadcrumb = \"BREADCRUMBS.CREATE\";\r\n } else if (predicate(\".language\") || predicate(\".localization\")) {\r\n breadcrumb = \"BREADCRUMBS.LANGUAGE\";\r\n } else if (predicate(\".settings\")) {\r\n breadcrumb = \"BREADCRUMBS.SETTINGS\";\r\n } else if (predicate(\".preview\")) {\r\n breadcrumb = \"BREADCRUMBS.PREVIEW\";\r\n }\r\n return breadcrumb;\r\n}\r\n\r\nfunction getRouteParts(route) {\r\n return route.split(\".\");\r\n}\r\n\r\nexport { joinPaths, getSkipRoutePrefix, getBreadcrumbTitle };\r\n","import { RouterStore } from \"mobx-state-router\";\r\nimport { valueEqual } from \"@react-force/utils\";\r\n\r\nclass MrbRouter extends RouterStore {\r\n goToState(toState) {\r\n if (valueEqual(this.routerState, toState)) {\r\n return this.routerState;\r\n }\r\n return super.goToState(toState);\r\n }\r\n}\r\n\r\nexport default MrbRouter;\r\n","import { isArray, last, initial } from \"lodash\";\r\nimport { isSome } from \"../../../common/utils\";\r\n\r\nclass StateRouteOptions {\r\n constructor(route, parent) {\r\n this.layouts = [];\r\n this.component = [];\r\n this.name = route.name;\r\n this.pattern = route.pattern;\r\n this.authorization = route.authorization;\r\n this.data = route.data;\r\n this.parent = parent;\r\n this.isPublic = route.isPublic;\r\n this.appendComponents(route);\r\n this.store = route.store;\r\n\r\n this.hookCondition = route.hookCondition;\r\n this.beforeExit = route.beforeExit;\r\n this.beforeEnter = route.beforeEnter;\r\n this.onExit = route.onExit;\r\n this.onEnter = route.onEnter;\r\n }\r\n\r\n appendComponents = (route) => {\r\n if (isSome(route.component)) {\r\n if (route.children && route.children.length > 0) {\r\n if (isArray(route.component)) {\r\n this.layouts = route.component;\r\n } else {\r\n this.layouts = [route.component];\r\n }\r\n } else {\r\n if (isArray(route.component)) {\r\n if (route.component.length === 1) {\r\n this.component = route.component[0];\r\n } else if (route.component.length > 1) {\r\n this.component = last(route.component);\r\n this.layouts = initial(route.component);\r\n }\r\n } else {\r\n this.component = route.component;\r\n }\r\n }\r\n }\r\n };\r\n}\r\n\r\nexport default StateRouteOptions;\r\n","import { createRouterState } from \"mobx-state-router\";\r\nimport { joinPaths, getSkipRoutePrefix, getBreadcrumbTitle } from \"./\";\r\nimport { filter, forEach, isString, isArray, isEqual, isFunction, isNil, map, reduce, startsWith } from \"lodash\";\r\n\r\nconst eventHooks = {\r\n beforeEnter: \"beforeEnter\",\r\n onEnter: \"onEnter\",\r\n beforeExit: \"beforeExit\",\r\n onExit: \"onExit\",\r\n};\r\n\r\nclass StateRoute {\r\n constructor(route) {\r\n this.name = route.name;\r\n this.parent = route.parent;\r\n this.isPublic = route.isPublic || false;\r\n // Flat all parent routes in tree order\r\n const parentOptions = flatParentOptions(route);\r\n const routeTree = [...parentOptions, route];\r\n\r\n this.pattern = reduce(routeTree, (prev, current) => joinPaths(prev, current.pattern), \"\");\r\n this.authorization = filter(\r\n map(routeTree, (p) => p.authorization),\r\n (f) => !isNil(f) && f !== \"\"\r\n );\r\n\r\n const optionLength = routeTree.length;\r\n this.data = reduce(\r\n routeTree,\r\n (prev, current, idx) => {\r\n if (current.data) {\r\n if (current.data.title) {\r\n prev.title = current.data.title;\r\n }\r\n\r\n if (current.data.back) {\r\n prev.back = current.data.back;\r\n }\r\n\r\n if (current.data.crumbs) {\r\n const crumbs = isArray(current.data.crumbs) ? current.data.crumbs : [current.data.crumbs];\r\n prev.crumbs = [...prev.crumbs, ...crumbs];\r\n } else if (optionLength - 1 === idx) {\r\n prev.crumbs = [\r\n ...prev.crumbs,\r\n {\r\n title: getBreadcrumbTitle(route.name),\r\n route: route.name,\r\n },\r\n ];\r\n }\r\n\r\n // NOTICE: add more properties here if you want to support them in data property\r\n if (current.data.type) {\r\n prev.type = current.data.type;\r\n }\r\n }\r\n\r\n return prev;\r\n },\r\n {\r\n crumbs: [],\r\n }\r\n );\r\n\r\n this.component = this.createRouteTree(route, parentOptions);\r\n this.onExit = (fromState, toState, router) => {\r\n const {\r\n rootStore: { routerStore },\r\n } = router.options;\r\n return this.fireEvent(eventHooks.onExit, fromState, toState, routerStore, routeTree);\r\n };\r\n this.onEnter = (fromState, toState, router) => {\r\n const {\r\n rootStore: { routerStore },\r\n } = router.options;\r\n return this.fireEvent(eventHooks.onEnter, fromState, toState, routerStore, routeTree);\r\n };\r\n this.beforeExit = (fromState, toState, router) => {\r\n const {\r\n rootStore: { routerStore },\r\n } = router.options;\r\n return this.fireEvent(eventHooks.beforeExit, fromState, toState, routerStore, routeTree);\r\n };\r\n this.beforeEnter = async (fromState, toState, router) => {\r\n const { rootStore } = router.options;\r\n if (fromState.routeName !== toState.routeName) {\r\n rootStore.mainViewStore.setNavigationOptions(null);\r\n } else if (isEqual(fromState.params, toState.params)) {\r\n // if same state and same params don't initiaze any beforeEnter actions\r\n return Promise.resolve();\r\n }\r\n\r\n try {\r\n await this.fireEvent(eventHooks.beforeEnter, fromState, toState, rootStore.routerStore, routeTree);\r\n\r\n await rootStore.routerStore.routeChange({\r\n fromState,\r\n toState,\r\n options: {\r\n authorization: this.authorization,\r\n pattern: this.pattern,\r\n data: this.data,\r\n isPublic: this.isPublic,\r\n },\r\n });\r\n } catch (ex) {\r\n return ex;\r\n }\r\n\r\n return Promise.resolve();\r\n };\r\n }\r\n\r\n createRouteTree = (route, parentOptions) => {\r\n let node = null;\r\n let root = null;\r\n if (parentOptions && parentOptions.length > 0) {\r\n //parentOptions = parentOptions.reverse();\r\n forEach(parentOptions, (option) => {\r\n if (option.layouts && option.layouts.length > 0) {\r\n forEach(option.layouts, (layout) => {\r\n if (!node) {\r\n node = {\r\n routeName: option.name,\r\n component: layout,\r\n };\r\n root = node;\r\n } else {\r\n node.childRoute = {\r\n routeName: option.name,\r\n component: layout,\r\n };\r\n node = node.childRoute;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n if (!node) {\r\n node = {\r\n routeName: route.name,\r\n component: route.component,\r\n };\r\n root = node;\r\n } else {\r\n node.childRoute = {\r\n routeName: route.name,\r\n component: route.component,\r\n };\r\n }\r\n return root;\r\n };\r\n\r\n // executes all parents and own event in order starting from initial parent\r\n // NOTE: this method is initiated when:\r\n // 1. route name is changed - in this case parts that changed are compared and only those\r\n // parts are fired. e.g. master.user.edit -> master.user.list\r\n // means that only master.user.list event will be fired (master and master.user will be skipped since they are same as on previous route)\r\n // 2. custom condition has been defined for the route - condition is always inherited from\r\n // parent route and it overrides rule 1. if defined.\r\n // It can be defiend on route as hookCondition: (fromState, toState, routerState) => { return bool; }\r\n // If hookCondition returns false on master but true on master.user everything beneath master.user (including master.user) will be initiated\r\n fireEvent = async (name, fromState, toState, routerStore, parentOptions) => {\r\n const routeChanged = fromState.routeName !== toState.routeName;\r\n\r\n let hookCondition = false;\r\n for (let i = 0; i < parentOptions.length; i++) {\r\n const routeOptions = parentOptions[i];\r\n const hook = routeOptions[name];\r\n\r\n if (routeOptions.hookCondition) {\r\n hookCondition = routeOptions.hookCondition(fromState, toState, routerStore);\r\n }\r\n\r\n if (routeChanged || hookCondition) {\r\n const skipRoutePrefix = getSkipRoutePrefix(fromState, toState);\r\n if (hookCondition || !skipRoutePrefix || !startsWith(skipRoutePrefix, routeOptions.name)) {\r\n try {\r\n await this.triggerRouteStoreLifecycle(\r\n name,\r\n routerStore.rootStore,\r\n routeOptions,\r\n fromState,\r\n toState\r\n );\r\n } catch (ex) {\r\n if (process.env.NODE_ENV === \"development\") {\r\n console.log(ex); // eslint-disable-line\r\n }\r\n if (isString(ex)) {\r\n return Promise.reject(createRouterState(ex));\r\n }\r\n return Promise.reject(ex);\r\n }\r\n\r\n // if there is no hook defined for route options, continue\r\n if (isNil(hook)) continue;\r\n\r\n try {\r\n await hook(fromState, toState, routerStore);\r\n } catch (ex) {\r\n if (process.env.NODE_ENV === \"development\") {\r\n console.log(ex); // eslint-disable-line\r\n }\r\n return Promise.reject(ex);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return Promise.resolve();\r\n };\r\n\r\n triggerRouteStoreLifecycle = async (eventName, rootStore, routeOptions, fromState, toState) => {\r\n if (eventName === eventHooks.beforeEnter) {\r\n if (routeOptions.store) {\r\n const routeStore = rootStore.createCurrentRouteStore(\r\n routeOptions.name,\r\n routeOptions.store,\r\n routeOptions.parent.name\r\n );\r\n if (routeStore.onBeforeEnter && isFunction(routeStore.onBeforeEnter)) {\r\n await routeStore.onBeforeEnter(fromState, toState);\r\n }\r\n }\r\n } else if (eventName === eventHooks.onEnter) {\r\n const routeStore = rootStore.getCurrentRouteStore(routeOptions.name);\r\n if (routeStore && routeStore.onEnter && isFunction(routeStore.onEnter)) {\r\n await routeStore.onEnter(fromState, toState);\r\n }\r\n } else if (eventName === eventHooks.beforeExit) {\r\n const routeStore = rootStore.getCurrentRouteStore(routeOptions.name);\r\n if (routeStore && routeStore.onBeforeExit && isFunction(routeStore.onBeforeExit)) {\r\n await routeStore.onBeforeExit(fromState, toState);\r\n }\r\n } else if (eventName === eventHooks.onExit) {\r\n const routeStore = rootStore.getCurrentRouteStore(routeOptions.name);\r\n if (routeStore && routeStore.onExit && isFunction(routeStore.onExit)) {\r\n await routeStore.onExit(fromState, toState);\r\n }\r\n rootStore.removeCurrentRouteStore(routeOptions.name);\r\n }\r\n };\r\n}\r\n\r\nfunction flatParentOptions(route) {\r\n const parentOptions = [];\r\n flatParentRoute(route, parentOptions);\r\n return parentOptions;\r\n}\r\n\r\nfunction flatParentRoute(route, parentOptions) {\r\n if (route.parent) {\r\n flatParentRoute(route.parent, parentOptions);\r\n parentOptions.push(route.parent);\r\n }\r\n}\r\n\r\nexport default StateRoute;\r\n","import React from \"react\";\r\n\r\nfunction renderComponent(Component, props = {}) {\r\n return ;\r\n}\r\n\r\nexport default renderComponent;\r\n","import React from \"react\";\r\nimport { renderComponent } from \"./\";\r\n\r\nfunction renderParentComponent({ Parent, component }) {\r\n return (props) => (\r\n {\r\n return renderComponent(component, renderProps);\r\n }}\r\n />\r\n );\r\n}\r\n\r\nexport default renderParentComponent;\r\n","import { StateRoute, StateRouteOptions } from \"./\";\r\nimport { flattenArray } from \"../../utils\";\r\nimport { forEach, map } from \"lodash\";\r\n\r\nexport default function flattenRoutes(routes) {\r\n const flatRoutes = getFlatRoutes(routes);\r\n return {\r\n routes: flatRoutes,\r\n routerMaps: getRouterMaps(flatRoutes),\r\n };\r\n}\r\n\r\nfunction getRouterMaps(flatRoutes) {\r\n let maps = {};\r\n forEach(flatRoutes, (item) => {\r\n maps[item.name] = item.component;\r\n });\r\n return maps;\r\n}\r\n\r\nfunction getFlatRoutes(routes, parent, parentOptions = []) {\r\n return flattenArray(\r\n map(routes, (r) => {\r\n return flatten(r, parent, parentOptions);\r\n })\r\n );\r\n}\r\n\r\nfunction flatten(route, parent, parentOptions = []) {\r\n let options = new StateRouteOptions(route, parent);\r\n\r\n if (route.children && route.children.length > 0) {\r\n const children = getFlatRoutes(route.children, options, parentOptions);\r\n return [...children];\r\n }\r\n const stateRoute = new StateRoute(options);\r\n\r\n return [stateRoute];\r\n}\r\n","import { observable } from \"mobx\";\r\nimport { each, endsWith, split, join, take, some, merge } from \"lodash\";\r\n\r\nfunction getDefaultRouteDataMap(routes) {\r\n const routeDataMap = observable.map();\r\n\r\n each(routes, (route) => {\r\n // set default back for common pages\r\n // create -> list\r\n // edit -> list\r\n // settings -> list\r\n // language -> list\r\n if (!route.data) {\r\n route.data = {};\r\n }\r\n let goBack = route.data.back;\r\n if (!goBack) {\r\n const routeName = route.name;\r\n if (\r\n endsWith(routeName, \".create\") ||\r\n endsWith(routeName, \".edit\") ||\r\n endsWith(routeName, \".settings\") ||\r\n endsWith(routeName, \".language\") ||\r\n endsWith(routeName, \".localization\")\r\n ) {\r\n const parts = split(routeName, \".\");\r\n const listRoute =\r\n join(take(parts, parts.length - 1), \".\") + \".list\";\r\n if (some(routes, (r) => r.name === listRoute)) {\r\n goBack = listRoute;\r\n }\r\n }\r\n }\r\n\r\n const { data } = route;\r\n if (data && data.title && (!data.crumbs || data.crumbs.length === 0)) {\r\n // set page breadcrumb as page title if not breadcrumb defined\r\n data.crumbs = [{ title: data.title }];\r\n }\r\n\r\n const routeData = merge({}, route.data, {\r\n back: goBack,\r\n crumbs: data.crumbs,\r\n });\r\n\r\n routeDataMap.set(route.name, routeData);\r\n });\r\n\r\n return routeDataMap;\r\n}\r\n\r\nexport default getDefaultRouteDataMap;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\n\r\n// NOTE: This is a direct implementation of the mobx-state-router RouterView component. We need to support factory pattern for view components.\r\n// https://github.com/nareshbhatia/mobx-state-router/blob/master/src/components/RouterView.tsx\r\nfunction ApplicationRouterView({ routerStore, viewMap }) {\r\n const { routerState } = routerStore.router;\r\n const route = viewMap[routerState.routeName];\r\n return route ? renderRouteTree(route, routerStore) : null;\r\n}\r\n\r\nfunction renderRouteTree(route, routerStore, componentProps = {}) {\r\n componentProps.routeStore = routerStore.rootStore.getCurrentRouteStore(\r\n route.routeName\r\n );\r\n const renderChildRoute = route.childRoute\r\n ? (props) => renderRouteTree(route.childRoute, routerStore, props)\r\n : null;\r\n if (renderChildRoute) {\r\n componentProps.renderChildRoute = renderChildRoute;\r\n }\r\n return ;\r\n}\r\n\r\nexport default observer(ApplicationRouterView);\r\n","import React from \"react\";\r\nimport { RouterLink } from \"mobx-state-router\";\r\n\r\nfunction MrbRouterLink({ children, ...props }) {\r\n return {children};\r\n}\r\n\r\nexport default MrbRouterLink;\r\n","const currencyFormatter = new Intl.NumberFormat(\"en-US\", { style: \"currency\", currency: \"USD\" });\r\n\r\nexport default currencyFormatter;\r\n","const numberFormatter = new Intl.NumberFormat(\"en-US\", { maximumFractionDigits: 2 });\r\n\r\nexport default numberFormatter;\r\n","const roundedCurrencyFormatter = new Intl.NumberFormat(\"en-US\", {\r\n style: \"currency\",\r\n currency: \"USD\",\r\n\r\n // These options are needed to round to whole numbers if that's what you want.\r\n minimumFractionDigits: 0, // (this suffices for whole numbers, but will print 2500.10 as $2,500.1)\r\n maximumFractionDigits: 0, // (causes 2500.99 to be printed as $2,501)\r\n});\r\n\r\nexport default roundedCurrencyFormatter;\r\n","import { v4 as uuidv4, NIL, validate } from \"uuid\";\r\n\r\nclass UUID {\r\n static create() {\r\n return uuidv4();\r\n }\r\n\r\n static emptyUuid() {\r\n return NIL;\r\n }\r\n\r\n static isValid(uuid) {\r\n return validate(uuid);\r\n }\r\n}\r\n\r\nexport default UUID;\r\n","function sideScroll(element, direction, speed, distance, step) {\r\n let scrollAmount = 0;\r\n var slideTimer = setInterval(function () {\r\n if (direction === \"left\") {\r\n element.scrollLeft -= step;\r\n } else {\r\n element.scrollLeft += step;\r\n }\r\n scrollAmount += step;\r\n if (scrollAmount >= distance) {\r\n window.clearInterval(slideTimer);\r\n }\r\n }, speed);\r\n}\r\n\r\nexport default sideScroll;\r\n","function calculatePercantageIncrease(currentVal, originalValue) {\r\n if (originalValue === 0) {\r\n return currentVal;\r\n }\r\n\r\n return ((currentVal - originalValue) / originalValue) * 100;\r\n}\r\n\r\nexport default calculatePercantageIncrease;\r\n","export default function calculateNumberOfColumns(width) {\r\n if (width > 990) {\r\n return Math.floor((width - 200) / 162);\r\n } else if (width > 544) {\r\n return Math.floor((width - 24) / 156);\r\n }\r\n return Math.floor((width - 8) / 119);\r\n}\r\n","export default function calculateNumberOfTorahAnytimeWizardRows(width) {\r\n if (width < 544) {\r\n return Math.round((window.innerHeight - 100) / 240);\r\n }\r\n return Math.round((window.innerHeight - 100) / 240);\r\n}\r\n","export default function calculateNumberOfRows(width) {\r\n if (width < 544) {\r\n return Math.round((window.innerHeight - 100) / 150);\r\n }\r\n return Math.round((window.innerHeight - 100) / 180);\r\n}\r\n","function convertSecondsToHMS(value) {\r\n const sec = parseInt(value, 10); // convert value to number if it's string\r\n let hours = Math.floor(sec / 3600); // get hours\r\n let minutes = Math.floor((sec - hours * 3600) / 60); // get minutes\r\n let seconds = sec - hours * 3600 - minutes * 60; // get seconds\r\n // add 0 if value < 10; Example: 2 => 02\r\n if (hours < 10) {\r\n hours = \"0\" + hours;\r\n }\r\n if (minutes < 10) {\r\n minutes = \"0\" + minutes;\r\n }\r\n if (seconds < 10) {\r\n seconds = \"0\" + seconds;\r\n }\r\n return hours + \":\" + minutes + \":\" + seconds; // Return is HH : MM : SS\r\n}\r\n\r\nexport default convertSecondsToHMS;\r\n","import { convertSecondsToHMS } from \"common/utils\";\r\nimport { reportVersions } from \"common/constants\";\r\n\r\nfunction producerPlaybackTimeConverter(reportVersion, value) {\r\n if (value) {\r\n if (reportVersion === reportVersions[\"1_0\"]) {\r\n return null;\r\n } else {\r\n return convertSecondsToHMS(value);\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\nexport default producerPlaybackTimeConverter;\r\n","import { applicationDefaults } from \"common/constants\";\r\nimport moment from \"moment\";\r\nimport \"moment-timezone\";\r\n\r\nfunction isProducerReportComplete(reportForMonth, periodEndDate) {\r\n const endOfMonth = moment.utc(reportForMonth).endOf(\"month\");\r\n const endDate = moment.utc(periodEndDate).tz(applicationDefaults.defaultProductReportTimeZone);\r\n const isCompleted = endDate.isSame(endOfMonth, \"day\");\r\n\r\n return isCompleted;\r\n}\r\n\r\nexport default isProducerReportComplete;\r\n","import { isNil } from \"lodash\";\r\nimport { nakiRadioProductCategoryAbbreviations } from \"common/constants\";\r\n\r\nexport default function isSubscriptionBundle(subscriptionCategory) {\r\n if (isNil(subscriptionCategory)) {\r\n throw new Error(\"subscription category can't be null.\");\r\n }\r\n\r\n return subscriptionCategory.abrv === nakiRadioProductCategoryAbbreviations.subscriptionBundle;\r\n}\r\n","import * as Sentry from \"@sentry/react\";\r\n\r\nclass Logger {\r\n logError(error) {\r\n console.log(error);\r\n Sentry.captureException(error);\r\n }\r\n}\r\n\r\nconst logger = new Logger();\r\nexport default logger;\r\n","import * as uritemplate from \"uritemplate\";\r\nimport { findParams, getParams } from \"../utils\";\r\n\r\nclass BaseApiRouteService {\r\n constructor(base) {\r\n if (!base) {\r\n throw new Error(\"Property 'base' in BaseRouteService is missing\");\r\n }\r\n this.base = base;\r\n\r\n this.uriTemplateService = uritemplate;\r\n }\r\n\r\n find(route, options) {\r\n const params = findParams(options);\r\n return this.uriTemplateService.parse(route).expand(params);\r\n }\r\n\r\n get(route, id, options) {\r\n const params = getParams({ id: id, ...options });\r\n return this.uriTemplateService.parse(route).expand(params);\r\n }\r\n\r\n create(route, resource = {}) {\r\n return this.uriTemplateService.parse(route).expand(resource);\r\n }\r\n\r\n update(route, resource) {\r\n return this.uriTemplateService.parse(route).expand(resource);\r\n }\r\n\r\n delete(route, resource) {\r\n return this.uriTemplateService.parse(route).expand(resource);\r\n }\r\n\r\n batchDelete(route) {\r\n return this.uriTemplateService.parse(route).expand({});\r\n }\r\n\r\n batchUpdate(route, resources) {\r\n return this.uriTemplateService.parse(route).expand(resources);\r\n }\r\n\r\n batchCreate(route, resources) {\r\n return this.uriTemplateService.parse(route).expand(resources);\r\n }\r\n}\r\n\r\nexport default BaseApiRouteService;\r\n","import { map } from \"lodash\";\r\n\r\nclass BaseService {\r\n apiClient = null;\r\n\r\n constructor(apiClient, routeService) {\r\n this.apiClient = apiClient;\r\n this.routeService = routeService;\r\n\r\n this.find = this.find.bind(this);\r\n this.get = this.get.bind(this);\r\n this.create = this.create.bind(this);\r\n this.update = this.update.bind(this);\r\n this.delete = this.delete.bind(this);\r\n this.batchDelete = this.batchDelete.bind(this);\r\n this.batchUpdate = this.batchUpdate.bind(this);\r\n }\r\n\r\n find(filter, abortSignal = null) {\r\n const url = this.routeService.find(filter);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n get(id, options = {}, abortSignal = null) {\r\n const url = this.routeService.get(id, options);\r\n return this.apiClient.get(url, null, abortSignal);\r\n }\r\n\r\n create(resource, abortSignal = null) {\r\n const url = this.routeService.create(resource);\r\n return this.apiClient.post(url, resource, null, abortSignal);\r\n }\r\n\r\n update(resource, abortSignal = null) {\r\n const url = this.routeService.update(resource);\r\n return this.apiClient.put(url, resource, null, abortSignal);\r\n }\r\n\r\n delete(resource, abortSignal = null) {\r\n const url = this.routeService.delete(resource);\r\n return this.apiClient.delete(url, null, resource, abortSignal);\r\n }\r\n\r\n batchDelete(resources, abortSignal = null) {\r\n const url = this.routeService.batchDelete(resources);\r\n const ids = resources ? map(resources, (r) => r.id) : [];\r\n return this.apiClient.delete(url, null, ids, abortSignal);\r\n }\r\n\r\n batchUpdate(resources, abortSignal = null) {\r\n const url = this.routeService.batchUpdate(resources);\r\n return this.apiClient.put(url, resources, abortSignal);\r\n }\r\n\r\n batchCreate(resources, abortSignal = null) {\r\n const url = this.routeService.batchCreate(resources);\r\n return this.apiClient.post(url, resources, abortSignal);\r\n }\r\n}\r\n\r\nexport default BaseService;\r\n","import { Error } from \"../models\";\r\nimport { trim, isUndefined, isNull } from \"lodash\";\r\n\r\nclass ErrorFormatterService {\r\n mergeMessages = (message, dataMessage) => {\r\n message = message || \"\";\r\n dataMessage = dataMessage || \"\";\r\n\r\n return trim(message + \" \" + dataMessage);\r\n };\r\n\r\n getErrorObject = (data, message, status, headers, config) => {\r\n let result = new Error();\r\n if (!isUndefined(data) && !isNull(data)) {\r\n if (!isUndefined(data.message)) {\r\n result.message = message = this.mergeMessages(\r\n message,\r\n data.message\r\n );\r\n } else if (!isUndefined(message)) {\r\n result.message = this.mergeMessages(\r\n result.message,\r\n this.mergeMessages(message, \"HTTP Status: \" + status)\r\n );\r\n } else if (!isUndefined(data)) {\r\n result.message = data;\r\n }\r\n\r\n if (!isUndefined(data.error) && !isNull(data.error)) {\r\n result.message = this.mergeMessages(\r\n message,\r\n data.error.Message\r\n );\r\n result.error = data.error;\r\n } else if (!isUndefined(data.exceptionMessage)) {\r\n let exception = data;\r\n while (!isUndefined(exception.innerException)) {\r\n exception = exception.innerException;\r\n }\r\n result.message = this.mergeMessages(\r\n message,\r\n exception.exceptionMessage\r\n );\r\n result.error = data;\r\n } else if (!isUndefined(data.message)) {\r\n result.error = data;\r\n } else {\r\n result.error = {\r\n message: message,\r\n data: data,\r\n status: status,\r\n headers: headers !== undefined ? headers : null,\r\n config: config,\r\n };\r\n }\r\n\r\n if (!isUndefined(data.modelState)) {\r\n result.message = this.mergeMessages(\r\n result.message,\r\n \" Model state is invalid.\"\r\n );\r\n }\r\n }\r\n return result;\r\n };\r\n}\r\n\r\nconst errorFormatterService = new ErrorFormatterService();\r\n\r\nexport default errorFormatterService;\r\n","import { computed, makeObservable } from \"mobx\";\r\nimport { Field } from \"mobx-react-form\";\r\nimport { MrbValidationRules } from \"./validation\";\r\nimport moment from \"moment\";\r\n\r\nclass MrbBaseField extends Field {\r\n initialSetup = null;\r\n\r\n @computed get errorMessage() {\r\n return this.preprocessErrorMessage(this.error);\r\n }\r\n\r\n constructor(props) {\r\n const setup = props.data;\r\n if (setup && setup.type === \"date\") {\r\n setup.output =\r\n setup.output ||\r\n ((value) => {\r\n return moment.utc(value).format();\r\n });\r\n }\r\n\r\n super({\r\n ...props,\r\n data: { ...setup },\r\n });\r\n makeObservable(this);\r\n\r\n this.initialSetup = props ? props.data : null;\r\n }\r\n\r\n preprocessErrorMessage(error) {\r\n return error;\r\n }\r\n\r\n addIsRequiredRule() {\r\n const validationRules = new MrbValidationRules(this.rules);\r\n if (!validationRules.isRequired) {\r\n validationRules.addIsRequiredRule();\r\n this.set(\"rules\", validationRules.createExpression());\r\n }\r\n }\r\n\r\n removeIsRequiredRule() {\r\n const validationRules = new MrbValidationRules(this.rules);\r\n if (validationRules.isRequired) {\r\n validationRules.removeIsRequiredRule();\r\n this.set(\"rules\", validationRules.createExpression());\r\n }\r\n }\r\n\r\n addRule(ruleName) {\r\n const validationRules = new MrbValidationRules(this.rules);\r\n if (!validationRules.ruleExists(ruleName)) {\r\n validationRules.addRule(ruleName);\r\n this.set(\"rules\", validationRules.createExpression());\r\n }\r\n }\r\n\r\n removeRule(ruleName) {\r\n const validationRules = new MrbValidationRules(this.rules);\r\n if (validationRules.ruleExists(ruleName)) {\r\n validationRules.removeRule(ruleName);\r\n this.set(\"rules\", validationRules.createExpression());\r\n }\r\n }\r\n\r\n disable() {\r\n this.set(\"disabled\", true);\r\n }\r\n\r\n enable() {\r\n this.set(\"disabled\", false);\r\n }\r\n}\r\n\r\nexport default MrbBaseField;\r\n","import { action } from \"mobx\";\r\nimport { Form } from \"mobx-react-form\";\r\nimport dvr from \"mobx-react-form/lib/validators/DVR\";\r\nimport validatorjs from \"validatorjs\";\r\nimport { merge, isFunction, isEmpty, forEach, isObject, isArray } from \"lodash\";\r\nimport { MrbBaseField } from \"./\";\r\nimport { mrbDefaultFormRules } from \"./validation\";\r\n\r\nconst DefaultOptions = {\r\n validationDebounceWait: 50,\r\n validateOnChange: false,\r\n validateOnBlur: false,\r\n validateOnChangeAfterSubmit: true,\r\n};\r\n\r\nclass MrbBaseForm extends Form {\r\n constructor(\r\n hooks,\r\n fields,\r\n options = {\r\n customRules: mrbDefaultFormRules,\r\n mapRuleValidationMessage: null,\r\n }\r\n ) {\r\n super(\r\n { fields },\r\n {\r\n plugins: {\r\n dvr: dvr({\r\n package: validatorjs,\r\n extend: ({ form, validator }) => {\r\n // add custom rules\r\n if (!isEmpty(options.customRules)) {\r\n forEach(options.customRules, (customRule, key) => {\r\n validator.register(\r\n key,\r\n (value, req, attr) => customRule.rule(value, req, attr, form),\r\n isFunction(options.mapRuleValidationMessage)\r\n ? options.mapRuleValidationMessage(customRule)\r\n : customRule.message\r\n );\r\n });\r\n }\r\n },\r\n }),\r\n },\r\n hooks,\r\n options: merge({}, DefaultOptions, options),\r\n }\r\n );\r\n }\r\n\r\n // eslint-disable-next-line\r\n @action.bound\r\n update(obj, convertNullToEmptyString = false) {\r\n this.set(\"value\", obj);\r\n this.set(\"initial\", obj);\r\n }\r\n\r\n @action.bound\r\n submit(obj) {\r\n // trim all inputs on submit\r\n const vals = this.values();\r\n if (isObject(vals) && !isArray(vals)) {\r\n const valKeys = Object.keys(vals);\r\n\r\n valKeys.forEach((vk) => {\r\n if (typeof vals[vk] === \"string\") {\r\n vals[vk] = vals[vk].trim();\r\n if (vals[vk] === \"true\") vals[vk] = true;\r\n else if (vals[vk] === \"false\") vals[vk] = false;\r\n }\r\n });\r\n }\r\n this.set(\"value\", vals);\r\n\r\n super.submit(obj);\r\n }\r\n\r\n @action.bound\r\n setFieldsDisabled(disabled) {\r\n this.each((field) => field.set(\"disabled\", disabled));\r\n }\r\n\r\n makeField(props) {\r\n return new MrbBaseField(props);\r\n }\r\n}\r\n\r\nexport default MrbBaseForm;\r\n","import { toast } from \"react-toastify\";\r\nimport { merge } from \"lodash\";\r\n\r\nconst DefaultOptions = {\r\n t: (i) => i,\r\n};\r\nclass MrbNotificationProvider {\r\n constructor(options) {\r\n const { t } = merge(DefaultOptions, options);\r\n this.t = t;\r\n }\r\n\r\n success(message, options = null) {\r\n return toast.success(this.t(message), options);\r\n }\r\n\r\n warning(message, options = null) {\r\n return toast.warning(this.t(message), options);\r\n }\r\n\r\n error(message, options = null) {\r\n return toast.error(this.t(message), options);\r\n }\r\n\r\n info(message, options = null) {\r\n return toast.info(this.t(message), options);\r\n }\r\n}\r\n\r\nexport default MrbNotificationProvider;\r\n","import React from \"react\";\r\nimport { ToastContainer } from \"react-toastify\";\r\nimport \"react-toastify/dist/ReactToastify.css\";\r\n\r\nfunction MrbNotificationContainer(props) {\r\n return ;\r\n}\r\n\r\nexport default MrbNotificationContainer;\r\n","import i18n from \"i18next\";\r\nimport Backend from \"i18next-fetch-backend\";\r\nimport LanguageDetector from \"i18next-browser-languagedetector\";\r\nimport { initReactI18next } from \"react-i18next\";\r\n\r\ni18n.use(Backend)\r\n .use(LanguageDetector)\r\n .use(initReactI18next)\r\n .init({\r\n defaultNS: \"translation\",\r\n fallbackLng: \"en-US\",\r\n debug: false,\r\n load: \"currentOnly\",\r\n react: {\r\n useSuspense: false,\r\n },\r\n preload: [\"en-US\"],\r\n backend: {\r\n loadPath: \"/locales/{{lng}}/{{ns}}.json\",\r\n },\r\n whitelist: ApplicationSettings.availableLanguages,\r\n });\r\n\r\nexport default i18n;\r\n","import Validator from \"validatorjs\";\r\nimport { mrbDefaultValidationErrors } from \"mrb/core/form/validation\";\r\nimport { each, forOwn, isObject, findIndex } from \"lodash\";\r\nimport { localizationService } from \"common/localization\";\r\nimport { UUID } from \"common/utils\";\r\n\r\nclass LocalizedValidatorService {\r\n callbacks = [];\r\n\r\n constructor() {\r\n const localizeMessages = (obj) => {\r\n let messages = {\r\n attributes: {}, // This should be defined as an empty object at least, or in some cases, the validatorjs will throw an exception\r\n };\r\n forOwn(obj, (value, key) => {\r\n if (isObject(value)) {\r\n messages[key] = localizeMessages(value);\r\n } else {\r\n messages[key] = localizationService.t(value);\r\n }\r\n });\r\n\r\n return messages;\r\n };\r\n\r\n localizationService.on(\"languageChanged\", (lng) => {\r\n if (!Validator.getMessages(lng)) {\r\n Validator.setMessages(lng, localizeMessages(mrbDefaultValidationErrors));\r\n }\r\n\r\n Validator.useLang(lng);\r\n\r\n each(this.callbacks, (c) => {\r\n if (c.eventName === \"onMessageSourceChange\") c.action();\r\n });\r\n });\r\n }\r\n\r\n registerCallback(eventName, callback) {\r\n const callbackId = UUID.create();\r\n this.callbacks.push({ id: callbackId, eventName: eventName, action: callback });\r\n return callbackId;\r\n }\r\n\r\n removeCallback(callbackId) {\r\n const index = findIndex(this.callbacks, (callback) => callback.id === callbackId);\r\n if (index !== -1) {\r\n this.callbacks.splice(index, 1);\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n\r\nconst service = new LocalizedValidatorService();\r\n\r\nexport default service;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { I18nextProvider, useTranslation } from \"react-i18next\";\r\n\r\nfunction ApplicationLocalization({ children, localizationService, ...props }) {\r\n const { ready } = useTranslation();\r\n return (\r\n \r\n {React.createElement(children, {\r\n ...props,\r\n suspendRendering: !ready,\r\n })}\r\n \r\n );\r\n}\r\n\r\nApplicationLocalization.propTypes = {\r\n App: PropTypes.any,\r\n props: PropTypes.object,\r\n};\r\n\r\nexport default ApplicationLocalization;\r\n","import { MrbBaseField } from \"mrb/core/form\";\r\nimport { localizedValidatorService, localizationService } from \"common/localization\";\r\nimport { trim } from \"lodash\";\r\n\r\nclass LocalizedField extends MrbBaseField {\r\n initialSetup = null;\r\n _callbackId = null;\r\n\r\n constructor(props) {\r\n super(props);\r\n\r\n this._callbackId = localizedValidatorService.registerCallback(\"onMessageSourceChange\", async () => {\r\n if (this.showError) {\r\n await this.validate();\r\n this.showErrors(!this.isValid);\r\n }\r\n });\r\n }\r\n\r\n preprocessErrorMessage(error) {\r\n return error\r\n ? error.replace(\r\n /\\[[^\\]]+\\]/g,\r\n function (\r\n // eslint-disable-next-line\r\n match,\r\n value,\r\n a,\r\n b,\r\n c,\r\n str\r\n ) {\r\n return localizationService.t(trim(match, \"[]\"));\r\n }\r\n )\r\n : null;\r\n }\r\n\r\n destroy() {\r\n localizedValidatorService.removeCallback(this._callbackId);\r\n }\r\n}\r\n\r\nexport default LocalizedField;\r\n","import { MrbBaseForm } from \"mrb/core/form\";\r\nimport { LocalizedField, localizationService } from \"common/localization\";\r\nimport { isFunction, filter } from \"lodash\";\r\n\r\nfunction createLocalizedValidationMessage(rule) {\r\n return localizationService.t(rule.message);\r\n}\r\n\r\nclass LocalizedForm extends MrbBaseForm {\r\n constructor(hooks, fields, options = {}) {\r\n super(hooks, fields, {\r\n mapRuleValidationMessage: createLocalizedValidationMessage,\r\n ...options,\r\n });\r\n\r\n if (this.getLocalizeFields().length > 0) {\r\n this.add({ key: \"languageMetadata\", fields: [] });\r\n }\r\n }\r\n\r\n getLocalizeFields() {\r\n if (this.setup && isFunction(this.setup)) {\r\n return filter(this.setup().fields, (s) => s.localize);\r\n }\r\n\r\n return [];\r\n }\r\n\r\n makeField(props) {\r\n return new LocalizedField(props);\r\n }\r\n\r\n destroy() {\r\n this.each((field) => {\r\n field.destroy();\r\n });\r\n }\r\n}\r\n\r\nexport default LocalizedForm;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction ContentSyncWidgetTemplate({ contentEncoderSyncStore, t }) {\r\n if (!contentEncoderSyncStore.isSyncing) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n

    \r\n \r\n {t(\"ADMINISTRATION.CONTENT_GENERATE.WIDGET.TITLE\")}\r\n

    \r\n
    \r\n {contentEncoderSyncStore.numberOfActiveTasks === 1 ? (\r\n

    {t(\"ADMINISTRATION.CONTENT_GENERATE.WIDGET.GENERATING_SINGLE\")}

    \r\n ) : (\r\n

    \r\n {t(\"ADMINISTRATION.CONTENT_GENERATE.WIDGET.GENERATING_PLURAL\", {\r\n number: contentEncoderSyncStore.numberOfActiveTasks,\r\n })}\r\n

    \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nContentSyncWidgetTemplate.propTypes = {\r\n contentEncoderSyncStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(ContentSyncWidgetTemplate);\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction ContentSyncModalTemplate() {\r\n return
    ;\r\n}\r\n\r\nexport default observer(ContentSyncModalTemplate);\r\n","import React, { useState } from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { Image } from \"common/components\";\r\nimport { convertSecondsToHMS } from \"common/utils\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { MrbToggle } from \"mrb/components/checkbox\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nconst GenerateAudioFilesModalTemplate = observer(function GenerateAudioFilesModalTemplate({ modalParams, t }) {\r\n return (\r\n \r\n \r\n {/* */}\r\n \r\n );\r\n});\r\n\r\nGenerateAudioFilesModalTemplate.propTypes = {\r\n modalParams: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst GenerateAudioFiles = observer(function GenerateAudioFiles({\r\n id,\r\n artworkUrl,\r\n hlsStreamUrl,\r\n title,\r\n subtitle,\r\n duration,\r\n audioStreamUrl,\r\n processHlsEncodingForSingleEntity,\r\n processHlsEncodingForAllEntities,\r\n cancel,\r\n}) {\r\n const [generateHls, setGenerateHls] = useState(false);\r\n const [generateMp3, setGenerateMp3] = useState(false);\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n

    {title}

    \r\n {subtitle &&

    {subtitle}

    }\r\n {duration &&

    {convertSecondsToHMS(duration)}

    }\r\n
    \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n setGenerateHls(event.target.checked)}\r\n />\r\n {generateHls && hlsStreamUrl && (\r\n
    \r\n Existing HLS files will be overwritten.\r\n
    \r\n )}\r\n setGenerateMp3(event.target.checked)}\r\n />\r\n {generateMp3 && audioStreamUrl && (\r\n
    \r\n Existing mp3 audio file will be overwritten.\r\n
    \r\n )}\r\n
    \r\n\r\n
    \r\n \r\n processHlsEncodingForSingleEntity(id, generateHls, generateMp3)\r\n : () => processHlsEncodingForAllEntities(generateHls, generateMp3)\r\n }\r\n />\r\n
    \r\n
    \r\n );\r\n});\r\n\r\nGenerateAudioFiles.propTypes = {\r\n artworkUrl: PropTypes.string,\r\n hlsStreamUrl: PropTypes.string,\r\n title: PropTypes.string.isRequired,\r\n subtitle: PropTypes.string,\r\n duration: PropTypes.number,\r\n cancel: PropTypes.func,\r\n};\r\n\r\nexport default GenerateAudioFilesModalTemplate;\r\n","import React from \"react\";\r\nimport { ContentSyncWidgetTemplate } from \"themes/administration/content-sync/components\";\r\n\r\nfunction ContentSyncWidget(props) {\r\n return ;\r\n}\r\n\r\nexport default ContentSyncWidget;\r\n","import React from \"react\";\r\nimport { GenerateAudioFilesModalTemplate } from \"themes/administration/content-sync/components\";\r\n\r\nfunction GenerateAudioFilesModal(props) {\r\n return ;\r\n}\r\n\r\nexport default GenerateAudioFilesModal;\r\n","import { cloneDeep } from \"lodash\";\r\nimport { buildAuthorizedMenu } from \"../utils\";\r\nimport { isSome } from \"../../common/utils\";\r\n\r\nclass MenuProvider {\r\n menus = [];\r\n\r\n initialize = (menus, context) => {\r\n this.menus = [...menus];\r\n this.context = context;\r\n\r\n const rootStore = this.context.rootStore;\r\n\r\n if (menus.length > 0 && !isSome(rootStore.routerStore.routes)) {\r\n throw new Error(\r\n \"Menu provider requires that root store routes are initialized - initialize RouteProvider\"\r\n );\r\n }\r\n\r\n return this.buildMenu(\r\n rootStore,\r\n cloneDeep(menus),\r\n rootStore.routerStore.routes\r\n );\r\n };\r\n\r\n buildMenu = (rootStore, menu, routes) => {\r\n return buildAuthorizedMenu(\r\n menu,\r\n routes,\r\n rootStore.userStore.hasPermission\r\n );\r\n };\r\n}\r\n\r\nconst menuProvider = new MenuProvider();\r\nexport default menuProvider;\r\n","import { flattenRoutes } from \"../infrastructure/router\";\r\n\r\nclass RouteProvider {\r\n //eslint-disable-next-line\r\n initialize = (routes, ctx) => {\r\n routes.sort((a, b) => this.getRouteLevel(a) - this.getRouteLevel(b));\r\n const merged = this.mergeRoutes([], routes);\r\n\r\n return flattenRoutes(merged);\r\n };\r\n\r\n getRouteLevel = (route) => {\r\n return route.name.split(\".\").length;\r\n };\r\n\r\n mergeRoutes = (root, routes, path = null) => {\r\n if (routes && routes.length > 0) {\r\n routes.forEach((element) => {\r\n this.mergeRoute(root, element, path);\r\n });\r\n }\r\n return root;\r\n };\r\n\r\n mergeRoute = (root, route, path = null) => {\r\n function getCurrentPath(path, parts) {\r\n if (!parts || parts.length <= 0) {\r\n return path;\r\n }\r\n\r\n if (path !== null && path !== undefined && path !== \"\") {\r\n const ln = path.split(\".\").length;\r\n if (parts.length <= ln) {\r\n throw new Error(\r\n \"Route path '\" +\r\n parts.join(\".\") +\r\n \"' is not named child of current path: '\" +\r\n path +\r\n \"'\"\r\n );\r\n }\r\n path += \".\" + parts[ln];\r\n } else {\r\n path = parts[0];\r\n }\r\n return path;\r\n }\r\n\r\n const parts = route.name.split(\".\");\r\n path = getCurrentPath(path, parts);\r\n\r\n let match = false;\r\n for (let i = 0; i < root.length; i++) {\r\n const element = root[i];\r\n if (element.name !== path) {\r\n continue;\r\n }\r\n\r\n match = true;\r\n\r\n if (this.hasChildren(route)) {\r\n if (this.hasChildren(element)) {\r\n if (path !== route.name) {\r\n this.mergeRoute(element.children, route, path);\r\n } else {\r\n this.mergeRoutes(\r\n element.children,\r\n route.children,\r\n path\r\n );\r\n }\r\n } else {\r\n if (this._getRoute(root, route.name)) {\r\n throw new Error(\r\n \"Route name: '\" + route.name + \"' already defined!\"\r\n );\r\n }\r\n\r\n element.children = [route];\r\n }\r\n } else {\r\n if (this.hasChildren(element)) {\r\n this.mergeRoute(element.children, route, path);\r\n } else {\r\n if (this._getRoute(root, route.name)) {\r\n throw new Error(\r\n \"Route name: '\" + route.name + \"' already defined!\"\r\n );\r\n }\r\n\r\n element.children = [route];\r\n }\r\n }\r\n }\r\n\r\n if (!match) {\r\n if (this._getRoute(root, route.name)) {\r\n throw new Error(\r\n \"Route name: '\" + route.name + \"' already defined!\"\r\n );\r\n }\r\n\r\n if (\r\n this.hasChildren(route) &&\r\n this._getRoute(route.children, route.name)\r\n ) {\r\n throw new Error(\r\n \"Route name: '\" + route.name + \"' already defined!\"\r\n );\r\n }\r\n\r\n root.push(route);\r\n }\r\n };\r\n\r\n getRoute = (name) => {\r\n return this._getRoute(this.routes, name);\r\n };\r\n\r\n _getRoute = (routes, name) => {\r\n for (let i = 0; i < routes.length; i++) {\r\n const element = routes[i];\r\n if (element.name === name) {\r\n return element;\r\n } else if (this.hasChildren(element)) {\r\n const el = this._getRoute(element.children, name);\r\n if (el !== null) {\r\n return el;\r\n }\r\n continue;\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n hasChildren = (route) => {\r\n return route && route.children && route.children.length > 0;\r\n };\r\n}\r\n\r\nexport default new RouteProvider();\r\n","class StoreProvider {\r\n initialize = (moduleStores) => {\r\n const storeInfos = [];\r\n for (let i = 0; i < moduleStores.length; i++) {\r\n const store = moduleStores[i];\r\n\r\n const keys = Object.keys(store);\r\n if (keys.length < 1) {\r\n throw new Error(\r\n \"Module store definition should contain at least one key which is pattern to module store (e.g. { 'my.module.path' : new MyModuleStore() }\"\r\n );\r\n }\r\n\r\n const key = keys[0];\r\n const namespaces = key.split(\".\");\r\n storeInfos.push({\r\n key,\r\n store,\r\n namespaces: namespaces,\r\n count: namespaces.length,\r\n });\r\n }\r\n\r\n storeInfos.sort(function (a, b) {\r\n return a.count - b.count;\r\n });\r\n\r\n const root = {};\r\n for (let i = 0; i < storeInfos.length; i++) {\r\n const { key, store, namespaces, count } = storeInfos[i];\r\n\r\n let parent = root;\r\n for (let i = 0; i < count; i++) {\r\n const isLast = i === count - 1;\r\n const namespace = namespaces[i];\r\n\r\n if (parent[namespace] !== undefined) {\r\n if (isLast) {\r\n throw new Error(`Module store ${key} already exists!`);\r\n }\r\n parent = parent[namespace];\r\n continue;\r\n } else {\r\n parent[namespace] = isLast ? store[key] : {};\r\n parent = parent[namespace];\r\n }\r\n }\r\n }\r\n return root;\r\n };\r\n}\r\n\r\nexport default new StoreProvider();\r\n","import { observable, makeObservable, override } from \"mobx\";\r\nimport { MrbFilterParameters } from \"mrb/core/filter\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport moment from \"moment\";\r\n\r\nclass ProducerPaymentReportFilter extends MrbFilterParameters {\r\n @observable monthOfYear;\r\n @observable timeZone;\r\n\r\n constructor() {\r\n super();\r\n makeObservable(this);\r\n this.reset();\r\n }\r\n\r\n @override\r\n reset() {\r\n super.reset();\r\n this.monthOfYear = moment().subtract(1, \"month\").startOf(\"month\").format(applicationDefaults.formats.isoDate);\r\n this.timeZone = moment.tz.guess();\r\n }\r\n}\r\n\r\nexport default ProducerPaymentReportFilter;\r\n","import { observable, makeObservable, override } from \"mobx\";\r\nimport { MrbFilterParameters } from \"mrb/core/filter\";\r\n\r\nclass ProducerPayoutUserEventFilter extends MrbFilterParameters {\r\n @observable userId;\r\n @observable deviceIds;\r\n @observable from;\r\n @observable to;\r\n\r\n constructor() {\r\n super();\r\n makeObservable(this);\r\n this.reset();\r\n }\r\n\r\n @override\r\n reset() {\r\n super.reset();\r\n this.userId = null;\r\n this.deviceIds = null;\r\n this.from = null;\r\n this.to = null;\r\n }\r\n}\r\n\r\nexport default ProducerPayoutUserEventFilter;\r\n","import React from \"react\";\r\nimport { MrbTabContent } from \"../\";\r\nimport { filter } from \"lodash\";\r\n\r\nfunction getTabContent(children) {\r\n const elements = React.Children.toArray(children);\r\n return filter(elements, (element) => element.type === MrbTabContent);\r\n}\r\n\r\nexport default getTabContent;\r\n","import React from \"react\";\r\nimport { MrbTabHeader } from \"../\";\r\n\r\nfunction renderTabs(store, children, t) {\r\n return React.Children.map(children, (tab, idx) => {\r\n if (!tab) {\r\n return null;\r\n }\r\n const { label, icon } = tab.props;\r\n const { key } = tab;\r\n return (\r\n store.handleTabClick(idx)}\r\n isActive={idx === store.activeTabIndex}\r\n t={t}\r\n />\r\n );\r\n });\r\n}\r\n\r\nexport default renderTabs;\r\n","export const fileExtensions = {\r\n image: {\r\n png: \".png\",\r\n jpg: \".jpg\",\r\n jpeg: \".jpeg\",\r\n bmp: \".bmp\",\r\n svg: \".svg\",\r\n heic: \".heic\",\r\n tif: \".tif\",\r\n tiff: \".tiff\",\r\n },\r\n document: {\r\n pdf: \".pdf\",\r\n docx: \".docx\",\r\n xlsx: \".xlsx\",\r\n xls: \".xls\",\r\n txt: \".txt\",\r\n tif: \".tif\",\r\n tiff: \".tiff\",\r\n csv: \".csv\",\r\n },\r\n video: {\r\n avi: \".avi\",\r\n flv: \".flv\",\r\n swf: \".swf\",\r\n wmv: \".wmv\",\r\n mpeg: \".mpeg\",\r\n mpg: \".mpg\",\r\n mp4: \".mp4\",\r\n mp3: \".mp3\",\r\n mov: \".mov\",\r\n m4a: \".m4a\",\r\n \"3gp\": \".3gp\",\r\n rm: \".rm\",\r\n ogv: \".ogv\",\r\n webm: \".webm\",\r\n mpe: \".mpe\",\r\n },\r\n};\r\n\r\nexport default fileExtensions;\r\n","import { timeRangeType } from \"administration/analytics/constants\";\r\nimport moment from \"moment\";\r\nimport \"moment-timezone\";\r\n\r\nclass DateRangeFactory {\r\n create(type, timeZone) {\r\n const range = {\r\n from: null,\r\n to: null,\r\n };\r\n switch (type) {\r\n case timeRangeType.today:\r\n range.from = moment().tz(timeZone).startOf(\"day\").toISOString();\r\n range.to = moment().tz(timeZone).endOf(\"day\").toISOString();\r\n break;\r\n case timeRangeType.yesterday:\r\n range.from = moment().tz(timeZone).subtract(1, \"day\").startOf(\"day\").toISOString();\r\n range.to = moment().tz(timeZone).subtract(1, \"day\").endOf(\"day\").toISOString();\r\n break;\r\n case timeRangeType.last3Days:\r\n range.from = moment().tz(timeZone).subtract(2, \"day\").startOf(\"day\").toISOString();\r\n range.to = moment().tz(timeZone).endOf(\"day\").toISOString();\r\n break;\r\n case timeRangeType.thisWeek:\r\n range.from = moment().tz(timeZone).startOf(\"week\").toISOString();\r\n range.to = moment().tz(timeZone).endOf(\"week\").toISOString();\r\n break;\r\n case timeRangeType.lastWeek:\r\n range.from = moment().tz(timeZone).subtract(1, \"week\").startOf(\"week\").toISOString();\r\n range.to = moment().tz(timeZone).subtract(1, \"week\").endOf(\"week\").toISOString();\r\n break;\r\n case timeRangeType.thisMonth:\r\n range.from = moment().tz(timeZone).startOf(\"month\").toISOString();\r\n range.to = moment().tz(timeZone).endOf(\"month\").toISOString();\r\n break;\r\n case timeRangeType.lastMonth:\r\n range.from = moment().tz(timeZone).subtract(1, \"month\").startOf(\"month\").toISOString();\r\n range.to = moment().tz(timeZone).subtract(1, \"month\").endOf(\"month\").toISOString();\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return range;\r\n }\r\n\r\n createPreviousCycleRangeFrom(type, from, to, timeZone) {\r\n switch (type) {\r\n case timeRangeType.today:\r\n case timeRangeType.yesterday:\r\n return moment.tz(from, timeZone).subtract(1, \"day\").startOf(\"day\").toISOString();\r\n case timeRangeType.last3Days:\r\n return moment.tz(from, timeZone).subtract(2, \"day\").startOf(\"day\").toISOString();\r\n case timeRangeType.lastWeek:\r\n case timeRangeType.thisWeek:\r\n return moment.tz(from, timeZone).subtract(1, \"week\").startOf(\"week\").toISOString();\r\n case timeRangeType.thisMonth:\r\n case timeRangeType.lastMonth:\r\n return moment.tz(from, timeZone).subtract(1, \"month\").startOf(\"month\").toISOString();\r\n default:\r\n const daysDiff =\r\n moment.tz(to, timeZone).startOf(\"day\").diff(moment.tz(from, timeZone).startOf(\"day\"), \"days\") + 1;\r\n return moment.tz(from, timeZone).subtract(daysDiff, \"days\").toISOString();\r\n }\r\n }\r\n\r\n createPreviousCycleRangeTo(type, from, to, timeZone) {\r\n switch (type) {\r\n case timeRangeType.today:\r\n case timeRangeType.yesterday:\r\n return moment.tz(to, timeZone).subtract(1, \"day\").endOf(\"day\").toISOString();\r\n case timeRangeType.last3Days:\r\n return moment.tz(from, timeZone).subtract(1, \"day\").endOf(\"day\").toISOString();\r\n case timeRangeType.lastWeek:\r\n case timeRangeType.thisWeek:\r\n return moment.tz(to, timeZone).subtract(1, \"week\").endOf(\"week\").toISOString();\r\n case timeRangeType.thisMonth:\r\n case timeRangeType.lastMonth:\r\n return moment.tz(to, timeZone).subtract(1, \"month\").endOf(\"month\").toISOString();\r\n default:\r\n const daysDiff =\r\n moment.tz(to, timeZone).startOf(\"day\").diff(moment.tz(from, timeZone).startOf(\"day\"), \"days\") + 1;\r\n return moment.tz(to, timeZone).subtract(daysDiff, \"days\").toISOString();\r\n }\r\n }\r\n\r\n createPreviousCycleRange(type, from, to, timeZone) {\r\n const range = {\r\n from: this.createPreviousCycleRangeFrom(type, from, to, timeZone),\r\n to: this.createPreviousCycleRangeTo(type, from, to, timeZone),\r\n };\r\n return range;\r\n }\r\n}\r\n\r\nconst dateRangeFactory = new DateRangeFactory();\r\nexport default dateRangeFactory;\r\n","import React from \"react\";\r\nimport { components } from \"react-select\";\r\nimport { FixedSizeList } from \"react-window\";\r\nimport { observer } from \"mobx-react\";\r\nimport { findIndex } from \"lodash\";\r\n\r\nclass MrbSelectVirtualizedList extends React.Component {\r\n virtualListRef = React.createRef();\r\n rowHeight = 47;\r\n\r\n componentDidUpdate(prevProps) {\r\n const { focusedOption, options } = this.props;\r\n const previousFocusedIndex = prevProps.focusedOption\r\n ? findIndex(\r\n options,\r\n (option) => option.value === prevProps.focusedOption.value\r\n )\r\n : -1;\r\n const focusedOptionIndex = focusedOption\r\n ? findIndex(\r\n options,\r\n (option) => option.value === focusedOption.value\r\n )\r\n : -1;\r\n if (\r\n previousFocusedIndex !== focusedOptionIndex &&\r\n this.virtualListRef.current\r\n ) {\r\n this.virtualListRef.current.scrollToItem(focusedOptionIndex);\r\n }\r\n }\r\n\r\n render() {\r\n const { children, maxHeight, getValue, options } = this.props;\r\n if (children && !children.length) {\r\n return ;\r\n }\r\n\r\n const [value] = getValue();\r\n let initialOffset = 0;\r\n if (value) {\r\n const valueIndex = findIndex(\r\n options,\r\n (option) => option.value === value.value\r\n );\r\n if (valueIndex > 0) {\r\n initialOffset = valueIndex * this.rowHeight;\r\n }\r\n }\r\n const potentialTotalHeight = children.length * this.rowHeight;\r\n return (\r\n = maxHeight\r\n ? maxHeight\r\n : potentialTotalHeight\r\n }\r\n itemCount={children.length}\r\n itemSize={this.rowHeight}\r\n initialScrollOffset={\r\n initialOffset >= maxHeight ? initialOffset : null\r\n }\r\n >\r\n {({ index, style }) => {\r\n return
    {children[index]}
    ;\r\n }}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default observer(MrbSelectVirtualizedList);\r\n","import {\r\n action,\r\n computed,\r\n observable,\r\n makeObservable,\r\n runInAction,\r\n} from \"mobx\";\r\n\r\nclass DropdownItemsResult {\r\n @observable.ref items = [];\r\n @observable pageNumber = 1;\r\n totalRecords = 0;\r\n searchPhrase = null;\r\n pageSize = 15;\r\n\r\n @computed get isEmpty() {\r\n return this.items.length === 0;\r\n }\r\n\r\n @computed get totalPages() {\r\n return Math.ceil(this.totalRecords / this.pageSize);\r\n }\r\n\r\n constructor(\r\n items,\r\n pageNumber,\r\n pageSize,\r\n totalRecords,\r\n searchPhrase = null\r\n ) {\r\n makeObservable(this);\r\n runInAction(() => {\r\n this.items = items;\r\n this.pageNumber = pageNumber;\r\n this.pageSize = pageSize;\r\n this.totalRecords = totalRecords;\r\n this.searchPhrase = searchPhrase;\r\n });\r\n }\r\n\r\n @action.bound\r\n appendNextPage(items, pageNumber) {\r\n this.items = [...this.items, ...items];\r\n this.pageNumber = pageNumber;\r\n }\r\n}\r\n\r\nexport default DropdownItemsResult;\r\n","import { action, computed, observable, makeObservable, reaction, runInAction } from \"mobx\";\r\nimport { MrbLoaderStore } from \"../../loader\";\r\nimport { DropdownItemsResult } from \"../models\";\r\nimport { extend, isNil, isString, map, isObject, isFunction, find, filter, isArray, head } from \"lodash\";\r\n\r\nclass MrbBaseSelectStore {\r\n @observable.ref selectedOption = null;\r\n @observable.ref _value = null;\r\n @observable.ref originalItems = null;\r\n @observable.ref filteredItems = null;\r\n @observable isInitialized = false;\r\n @observable searchTerm = \"\";\r\n loaderStore = null;\r\n\r\n @computed get value() {\r\n return this._value;\r\n }\r\n\r\n @computed get selectedItem() {\r\n if (this.selectedOption) {\r\n if (this.config.isMulti && isArray(this.selectedOption)) {\r\n return map(this.selectedOption, (option) => option.item);\r\n } else if (!this.config.isMulti) {\r\n return this.selectedOption.item;\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n @computed get options() {\r\n if (this.filteredItems) {\r\n return this.mapDropdownItems(this.filteredItems.items);\r\n } else if (this.originalItems) {\r\n return this.mapDropdownItems(this.originalItems.items);\r\n }\r\n return [];\r\n }\r\n\r\n config = {\r\n placeholder: \"Search\",\r\n isSearchable: false,\r\n isClearable: true,\r\n isMulti: false,\r\n textKey: \"name\",\r\n valueKey: \"id\",\r\n isDisabledKey: \"isDisabled\",\r\n filterDebounce: 500,\r\n initFetch: true,\r\n pageable: true,\r\n pageSize: 15,\r\n preselectFirstItemAsDefault: false,\r\n };\r\n\r\n actions = {\r\n find: null,\r\n mapItem: null,\r\n onOpen: () => {},\r\n onClose: () => {},\r\n onChange: (selected) => selected,\r\n fetchOriginalItem: null,\r\n };\r\n\r\n constructor({ actions, ...config }, initialItems = null) {\r\n makeObservable(this);\r\n\r\n this.config = extend({}, this.config, config);\r\n this.actions = extend({}, this.actions, actions);\r\n\r\n this.loaderStore = new MrbLoaderStore();\r\n\r\n if (initialItems) {\r\n this.originalItems = new DropdownItemsResult(initialItems, 1, initialItems.length, initialItems.length);\r\n }\r\n\r\n reaction(\r\n () => this.searchTerm,\r\n (searchTerm) => {\r\n runInAction(() => {\r\n if (!searchTerm) {\r\n this.filteredItems = null;\r\n return;\r\n }\r\n this.filter(searchTerm);\r\n });\r\n },\r\n {\r\n delay: this.config.filterDebounce,\r\n }\r\n );\r\n\r\n this.initialize();\r\n }\r\n\r\n async initialize() {\r\n const tasks = [];\r\n if (this.config.initFetch) {\r\n tasks.push(this.initializeOriginalItems());\r\n }\r\n tasks.push(this.fetchOriginalItem());\r\n await Promise.all(tasks);\r\n }\r\n\r\n async initializeOriginalItems() {\r\n if (!this.isInitialized) {\r\n await this.filter();\r\n runInAction(() => {\r\n this.onPostInitializeOriginalItems();\r\n this.setIsInitialized(true);\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n onPostInitializeOriginalItems() {\r\n if (this.value) {\r\n const selectedOption = find(this.options, (option) => option.value === this.value);\r\n if (selectedOption) {\r\n this.setSelectedOption(selectedOption);\r\n }\r\n } else if (this.config.preselectFirstItemAsDefault) {\r\n this.setSelectedOption(head(this.options));\r\n }\r\n }\r\n\r\n @action.bound\r\n async fetchOriginalItem() {\r\n if (isFunction(this.actions.fetchOriginalItem)) {\r\n this.loaderStore.suspend();\r\n const item = await this.actions.fetchOriginalItem();\r\n runInAction(() => {\r\n if (item) {\r\n const option = this.mapDropdownItem(item);\r\n this.setValue(option.value);\r\n }\r\n this.loaderStore.resume();\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n setPageNumber(pageNumber) {\r\n this.pageNumber = pageNumber;\r\n }\r\n\r\n mapDropdownItems(items) {\r\n if (items && items.length > 0) {\r\n return map(items, (item) => this.mapDropdownItem(item));\r\n }\r\n\r\n return [];\r\n }\r\n\r\n mapDropdownItem(item) {\r\n if (isFunction(this.actions.mapItem)) {\r\n return this.actions.mapItem(item);\r\n }\r\n if (isString(item)) {\r\n return {\r\n label: item,\r\n value: item,\r\n isDisabled: false,\r\n item: item,\r\n };\r\n } else if (isObject(item)) {\r\n return {\r\n label: item[this.config.textKey],\r\n value: item[this.config.valueKey],\r\n isDisabled: item[this.config.isDisabledKey],\r\n item: item,\r\n };\r\n }\r\n\r\n return item;\r\n }\r\n\r\n @action.bound\r\n setValue(value) {\r\n this._value = value;\r\n }\r\n\r\n addSelectedItem(item) {\r\n if (isArray(item) && this.config.isMulti) {\r\n const options = this.mapDropdownItems(item);\r\n if (this.selectedOption && isArray(this.selectedOption)) {\r\n this.setSelectedOption([...this.selectedOption, ...options]);\r\n } else {\r\n this.setSelectedOption(options);\r\n }\r\n } else {\r\n const option = this.mapDropdownItem(item);\r\n if (this.config.isMulti) {\r\n if (this.selectedOption && isArray(this.selectedOption)) {\r\n this.setSelectedOption([...this.selectedOption, option]);\r\n } else {\r\n this.setSelectedOption([option]);\r\n }\r\n } else {\r\n this.setSelectedOption(option);\r\n }\r\n }\r\n }\r\n\r\n setSelectedItem(item) {\r\n if (isArray(item)) {\r\n this.setSelectedOption(this.mapDropdownItems(item));\r\n } else {\r\n this.setSelectedOption(this.mapDropdownItem(item));\r\n }\r\n }\r\n\r\n @action.bound\r\n setSelectedOption(option) {\r\n this.selectedOption = option;\r\n let value = null;\r\n if (this.config.isMulti) {\r\n value = map(this.selectedOption, (option) => option.value);\r\n } else {\r\n value = !isNil(this.selectedOption) ? this.selectedOption.value : null;\r\n }\r\n this.setValue(value);\r\n }\r\n\r\n @action.bound\r\n setSearchTerm(searchTerm) {\r\n this.searchTerm = searchTerm;\r\n }\r\n\r\n @action.bound\r\n onOpen(event) {\r\n this.actions.onOpen(event);\r\n if (!this.initFetch) {\r\n this.initializeOriginalItems();\r\n }\r\n }\r\n\r\n @action.bound\r\n onClose(event) {\r\n this.actions.onClose(event);\r\n }\r\n\r\n @action.bound\r\n async filter(searchTerm) {\r\n if (isFunction(this.actions.find)) {\r\n await this.filterDataSource(searchTerm);\r\n } else {\r\n await this.filterInMemory(searchTerm);\r\n }\r\n }\r\n\r\n @action.bound\r\n async loadNextPage() {\r\n if (this.loaderStore.loading) {\r\n return;\r\n }\r\n const dropdownItemsResult = this.filteredItems || this.originalItems;\r\n let searchPhrase = dropdownItemsResult.searchPhrase;\r\n if (dropdownItemsResult.pageNumber < dropdownItemsResult.totalPages) {\r\n if (searchPhrase === \"\") {\r\n searchPhrase = undefined;\r\n }\r\n this.loaderStore.suspend();\r\n\r\n const data = await this.actions.find(\r\n searchPhrase,\r\n dropdownItemsResult.pageNumber + 1,\r\n this.config.pageSize\r\n );\r\n runInAction(() => {\r\n dropdownItemsResult.appendNextPage(data.item, data.page);\r\n this.loaderStore.resume();\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n async filterDataSource(searchTerm) {\r\n if (searchTerm === \"\") {\r\n searchTerm = undefined;\r\n }\r\n this.loaderStore.suspend();\r\n\r\n const data = await this.actions.find(searchTerm, 1, this.config.pageSize);\r\n runInAction(() => {\r\n if (searchTerm) {\r\n if (data.item && data.page && data.recordsPerPage && data.totalRecords) {\r\n this.filteredItems = new DropdownItemsResult(\r\n data.item,\r\n data.page,\r\n data.recordsPerPage,\r\n data.totalRecords,\r\n searchTerm\r\n );\r\n } else {\r\n this.filteredItems = new DropdownItemsResult(data, 1, data.length, data.length, searchTerm);\r\n }\r\n } else {\r\n if (data.item && data.page && data.recordsPerPage && data.totalRecords) {\r\n this.originalItems = new DropdownItemsResult(\r\n data.item,\r\n data.page,\r\n data.recordsPerPage,\r\n data.totalRecords\r\n );\r\n } else {\r\n this.originalItems = new DropdownItemsResult(data, 1, data.length, data.length, searchTerm);\r\n }\r\n }\r\n this.loaderStore.resume();\r\n });\r\n }\r\n\r\n filterInMemory(searchTerm) {\r\n let items = [];\r\n if (!searchTerm) {\r\n items = this.originalItems.items;\r\n } else {\r\n items = filter(this.originalItems.items, (item) => {\r\n return item[this.config.textKey].toLowerCase().indexOf(searchTerm.toLowerCase()) !== -1;\r\n });\r\n }\r\n runInAction(() => {\r\n this.filteredItems = new DropdownItemsResult(items, 1, items.length, items.length, searchTerm);\r\n });\r\n }\r\n\r\n @action.bound\r\n onChange(selectedOption) {\r\n if (selectedOption?.isDisabled) {\r\n return;\r\n }\r\n\r\n this.setSelectedOption(selectedOption);\r\n this.actions.onChange(selectedOption);\r\n }\r\n\r\n @action.bound\r\n setIsInitialized(isInitialized) {\r\n this.isInitialized = isInitialized;\r\n }\r\n\r\n clear() {\r\n this.setSelectedOption(null);\r\n }\r\n\r\n clearOptions() {\r\n this.originalItems = null;\r\n }\r\n}\r\n\r\nexport default MrbBaseSelectStore;\r\n","import { runInAction } from \"mobx\";\r\nimport { MrbBaseSelectStore } from \"./\";\r\nimport { extend, isFunction } from \"lodash\";\r\n\r\nconst defaultConfig = {\r\n virtualized: false,\r\n createOptionPosition: \"last\",\r\n formatCreateLabel: (value) => `Create \"${value}\"`,\r\n isOptionDisabled: () => {},\r\n};\r\n\r\nclass MrbSelectStore extends MrbBaseSelectStore {\r\n isCreatable = false;\r\n\r\n constructor(config, initialItems) {\r\n super(extend({}, defaultConfig, config), initialItems);\r\n\r\n this.isCreatable = isFunction(this.actions.createOption);\r\n this.createOption = this.createOption.bind(this);\r\n }\r\n\r\n async createOption(value) {\r\n this.loaderStore.suspend();\r\n const createdItem = await this.actions.createOption(value);\r\n runInAction(() => {\r\n if (this.config.isMulti) {\r\n this.addSelectedItem(createdItem);\r\n } else {\r\n this.setSelectedItem(createdItem);\r\n }\r\n this.loaderStore.resume();\r\n });\r\n }\r\n}\r\n\r\nexport default MrbSelectStore;\r\n","import { action, observable, makeObservable, reaction } from \"mobx\";\r\nimport { MrbBaseSelectStore } from \"./\";\r\nimport { findIndex } from \"lodash\";\r\n\r\nclass MrbSimpleSelectStore extends MrbBaseSelectStore {\r\n @observable isOpen = false;\r\n @observable focusedIndex = 0;\r\n valueContainerRef = null;\r\n\r\n constructor(config, initialItems) {\r\n super(config, initialItems);\r\n makeObservable(this);\r\n\r\n reaction(\r\n () => this.isOpen,\r\n (isOpen) => {\r\n if (isOpen) {\r\n this.onOpen();\r\n } else {\r\n this.onClose();\r\n }\r\n }\r\n );\r\n\r\n this.toggleFocusPosition = this.toggleFocusPosition.bind(this);\r\n }\r\n\r\n onOpen() {\r\n if (this.selectedOption) {\r\n const index = findIndex(\r\n this.options,\r\n (option) => option.value === this.selectedOption.value\r\n );\r\n if (index !== -1) {\r\n this.setFocusedIndex(index);\r\n }\r\n }\r\n this.registerKeyDownEventListener();\r\n super.onOpen();\r\n }\r\n\r\n onClose() {\r\n this.removeKeyDownEventListener();\r\n this.resetFocusedIndex();\r\n super.onClose();\r\n }\r\n\r\n @action.bound\r\n setIsOpen(value) {\r\n this.isOpen = value;\r\n }\r\n\r\n @action.bound\r\n setFocusedIndex(value) {\r\n this.focusedIndex = value;\r\n }\r\n\r\n resetFocusedIndex() {\r\n this.setFocusedIndex(0);\r\n }\r\n\r\n close = () => {\r\n this.setIsOpen(false);\r\n };\r\n\r\n toggleIsOpen = () => {\r\n this.setIsOpen(!this.isOpen);\r\n };\r\n\r\n setValueContainerRef = (ref) => {\r\n this.valueContainerRef = ref;\r\n };\r\n\r\n onChange(selectedOption) {\r\n super.onChange(selectedOption);\r\n this.close();\r\n }\r\n\r\n onFocus = (event) => {\r\n this.setIsOpen(true);\r\n };\r\n\r\n onBlur = (event) => {\r\n this.close();\r\n };\r\n\r\n registerKeyDownEventListener() {\r\n document.addEventListener(\"keydown\", this.toggleFocusPosition);\r\n }\r\n\r\n removeKeyDownEventListener() {\r\n document.removeEventListener(\"keydown\", this.toggleFocusPosition);\r\n }\r\n\r\n toggleFocusPosition(event) {\r\n if (event.key === \"ArrowDown\") {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (this.focusedIndex === this.options.length - 1) {\r\n this.setFocusedIndex(0);\r\n } else {\r\n this.setFocusedIndex(this.focusedIndex + 1);\r\n }\r\n } else if (event.key === \"ArrowUp\") {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (this.focusedIndex === 0) {\r\n this.setFocusedIndex(this.options.length - 1);\r\n } else {\r\n this.setFocusedIndex(this.focusedIndex - 1);\r\n }\r\n } else if (event.key === \"Enter\") {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n if (this.focusedIndex <= this.options.length - 1) {\r\n this.onChange(this.options[this.focusedIndex]);\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default MrbSimpleSelectStore;\r\n","import { override } from \"mobx\";\r\nimport { MrbSelectStore } from \"../\";\r\nimport { merge } from \"lodash\";\r\nimport { arrayDifference } from \"../../../../common/utils\";\r\n\r\nconst DefaultConfig = {\r\n fetchOnChange: true,\r\n};\r\n\r\nclass MrbQuerySelectStore extends MrbSelectStore {\r\n queryUtility = null;\r\n key = null;\r\n\r\n @override get value() {\r\n return this.queryUtility.filter[this.key];\r\n }\r\n\r\n constructor(config, queryUtility, key, initialItems) {\r\n super(merge({}, DefaultConfig, config), initialItems);\r\n if (!queryUtility) {\r\n throw new Error(\"queryUtility must be provided.\");\r\n }\r\n this.queryUtility = queryUtility;\r\n if (!key) {\r\n throw new Error(\"key must be provided.\");\r\n }\r\n this.key = key;\r\n }\r\n\r\n @override\r\n setValue(value) {\r\n this.queryUtility.filter.set(this.key, value);\r\n }\r\n\r\n @override\r\n onChange(selectedOption) {\r\n const oldValue = this.value;\r\n super.onChange(selectedOption);\r\n\r\n if (this.config.fetchOnChange) {\r\n if (this.config.isMulti) {\r\n if (arrayDifference(oldValue, this.value).length > 0) {\r\n this.queryUtility.fetch();\r\n }\r\n } else if (oldValue !== this.value) {\r\n this.queryUtility.fetch();\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default MrbQuerySelectStore;\r\n","import { override } from \"mobx\";\r\nimport { MrbSimpleSelectStore } from \"../\";\r\nimport { isArray, arrayDifference, isEmpty, isFunction, isBoolean, merge } from \"lodash\";\r\n\r\nconst DefaultConfig = {\r\n fetchOnChange: true,\r\n};\r\n\r\nclass MrbQuerySimpleSelectStore extends MrbSimpleSelectStore {\r\n queryUtility = null;\r\n key = null;\r\n\r\n @override get value() {\r\n return this.queryUtility.filter[this.key];\r\n }\r\n\r\n constructor(config, queryUtility, key, initialItems) {\r\n super(merge({}, DefaultConfig, config), initialItems);\r\n if (!queryUtility) {\r\n throw new Error(\"queryUtility must be provided.\");\r\n }\r\n this.queryUtility = queryUtility;\r\n if (!key) {\r\n throw new Error(\"key must be provided.\");\r\n }\r\n this.key = key;\r\n }\r\n\r\n @override\r\n setValue(value) {\r\n this.queryUtility.filter.set(this.key, value);\r\n }\r\n\r\n @override\r\n onChange(selectedOption) {\r\n const oldValue = this.value;\r\n super.onChange(selectedOption);\r\n\r\n if (\r\n (isFunction(this.config.fetchOnChange) && this.config.fetchOnChange(selectedOption)) ||\r\n (isBoolean(this.config.fetchOnChange) && this.config.fetchOnChange)\r\n ) {\r\n if (isArray(oldValue) && isArray(this.value)) {\r\n if (arrayDifference(oldValue, this.value).length > 0) {\r\n this.queryUtility.fetch();\r\n }\r\n } else if (oldValue !== this.value && (!isEmpty(oldValue) || !isEmpty(this.value))) {\r\n this.queryUtility.fetch();\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default MrbQuerySimpleSelectStore;\r\n","import { action, override } from \"mobx\";\r\nimport { MrbSelectStore } from \"../\";\r\nimport { arrayDifference } from \"../../../../common/utils\";\r\nimport { isArray, isEmpty, isString } from \"lodash\";\r\n\r\nclass MrbFieldSelectStore extends MrbSelectStore {\r\n formField = null;\r\n\r\n @override get value() {\r\n return this.formField.value;\r\n }\r\n\r\n constructor(config, formField, initialItems = null) {\r\n super(config, initialItems);\r\n if (!formField) {\r\n throw new Error(\"formField must be provided\");\r\n }\r\n this.formField = formField;\r\n }\r\n\r\n @override\r\n setValue(value) {\r\n if (isArray(this.value) && isArray(value)) {\r\n if (arrayDifference(this.value, value).length > 0) {\r\n this.setFormValue(value);\r\n }\r\n } else if (isString(value)) {\r\n if (this.value !== value && (!isEmpty(this.value) || !isEmpty(value))) {\r\n this.setFormValue(value);\r\n }\r\n } else if (this.value !== value) {\r\n this.setFormValue(value);\r\n }\r\n }\r\n\r\n @action.bound\r\n setFormValue(value) {\r\n this.formField.onChange(value);\r\n }\r\n}\r\n\r\nexport default MrbFieldSelectStore;\r\n","import { action, override } from \"mobx\";\r\nimport { MrbSimpleSelectStore } from \"../\";\r\nimport { arrayDifference } from \"../../../../common/utils\";\r\nimport { isArray, isEmpty } from \"lodash\";\r\n\r\nclass MrbFieldSimpleSelectStore extends MrbSimpleSelectStore {\r\n formField = null;\r\n\r\n @override get value() {\r\n return this.formField.value;\r\n }\r\n\r\n constructor(config, formField, initialItems = null) {\r\n super(config, initialItems);\r\n if (!formField) {\r\n throw new Error(\"formField must be provided\");\r\n }\r\n this.formField = formField;\r\n }\r\n\r\n @override\r\n setValue(value) {\r\n if (isArray(this.formField.value) && isArray(value)) {\r\n if (arrayDifference(this.formField.value, value).length > 0) {\r\n this.setFormValue(value);\r\n }\r\n } else if (\r\n this.formField.value !== value &&\r\n (!isEmpty(this.formField.value) || !isEmpty(value))\r\n ) {\r\n this.setFormValue(value);\r\n }\r\n }\r\n\r\n @action.bound\r\n setFormValue(value) {\r\n this.formField.onChange(value);\r\n }\r\n}\r\n\r\nexport default MrbFieldSimpleSelectStore;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport Select from \"react-select\";\r\nimport Creatable from \"react-select/creatable\";\r\nimport { mergeOrOverrideCss } from \"../../common/utils\";\r\nimport { MrbSelectVirtualizedList } from \"./\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbSelect({\r\n store,\r\n disabled,\r\n placeholder,\r\n autoFocus,\r\n classNameExtend,\r\n classNameOverride,\r\n onChange,\r\n value,\r\n formatOptionLabel,\r\n ...props\r\n}) {\r\n const {\r\n isCreatable,\r\n config,\r\n onOpen,\r\n onClose,\r\n options,\r\n setSelectRef,\r\n setSearchTerm,\r\n loaderStore,\r\n createOption,\r\n selectedOption,\r\n loadNextPage,\r\n } = store;\r\n\r\n function onChangeFn(selected) {\r\n if (onChange) {\r\n onChange(selected);\r\n } else {\r\n store.onChange(selected);\r\n }\r\n }\r\n\r\n const className = mergeOrOverrideCss(null, classNameOverride, classNameExtend);\r\n\r\n const components = props.components || {};\r\n if (!components.MenuList && config.virtualized) {\r\n components.MenuList = MrbSelectVirtualizedList;\r\n }\r\n\r\n const SelectComponent = isCreatable ? Creatable : Select;\r\n\r\n return (\r\n true}\r\n onCreateOption={createOption}\r\n createOptionPosition={config.createOptionPosition}\r\n formatCreateLabel={config.formatCreateLabel}\r\n isSearchable={config.isSearchable}\r\n formatOptionLabel={formatOptionLabel}\r\n isClearable={config.isClearable}\r\n isMulti={config.isMulti}\r\n isLoading={loaderStore.loading}\r\n onMenuOpen={onOpen}\r\n onMenuClose={onClose}\r\n onChange={onChangeFn}\r\n onMenuScrollToBottom={loadNextPage}\r\n placeholder={placeholder || config.placeholder}\r\n components={components}\r\n isOptionDisabled={config.isOptionDisabled}\r\n classNamePrefix=\"react-select\"\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nMrbSelect.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n placeholder: PropTypes.string,\r\n disabled: PropTypes.bool,\r\n autoFocus: PropTypes.bool,\r\n classNameExtend: PropTypes.string,\r\n classNameOverride: PropTypes.string,\r\n onChange: PropTypes.func,\r\n value: PropTypes.string,\r\n formatOptionLabel: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbSelect);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldLayout } from \"../layout/content/form\";\r\nimport { MrbSelect } from \"./\";\r\nimport { isNil } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbFieldSelect({\r\n store,\r\n showLabel = true,\r\n disabled,\r\n labelRender,\r\n validationRender,\r\n fieldClassNameExtend,\r\n fieldClassNameOverride,\r\n t = (i) => i,\r\n ...props\r\n}) {\r\n const { formField } = store;\r\n\r\n if (isNil(formField)) {\r\n throw new Error(\"Form field must be provided.\");\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nMrbFieldSelect.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n classNameOverride: PropTypes.string,\r\n classNameExtend: PropTypes.string,\r\n labelRender: PropTypes.any,\r\n validationRender: PropTypes.any,\r\n fieldClassNameExtend: PropTypes.string,\r\n fieldClassNameOverride: PropTypes.string,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbFieldSelect);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\n\r\nfunction MrbSimpleSelectOption({ option, t }) {\r\n return
    {t(option.label)}
    ;\r\n}\r\n\r\nMrbSimpleSelectOption.propTypes = {\r\n option: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default MrbSimpleSelectOption;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbNotifyOutsideClick } from \"../../notify-outside-click\";\r\nimport { MrbSimpleSelectOption } from \"./\";\r\nimport { mergeCss } from \"../../../common/utils\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbSimpleSelectPanel({ store, optionRender = (props) => , t }) {\r\n const { close, options, onChange, valueContainerRef, focusedIndex, setFocusedIndex } = store;\r\n return (\r\n \r\n {options && options.length > 0 ? (\r\n map(options, (option, index) => (\r\n setFocusedIndex(index)}\r\n onMouseDown={() => onChange(option)}\r\n >\r\n {optionRender({ option, index, t })}\r\n \r\n ))\r\n ) : (\r\n
    \r\n

    No Results

    \r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nMrbSimpleSelectPanel.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n optionRender: PropTypes.func,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbSimpleSelectPanel);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbSimpleSelectPanel } from \"./\";\r\nimport { observer } from \"mobx-react\";\r\nimport { mergeCss } from \"../../../common/utils\";\r\n\r\nfunction MrbSimpleSelectPanelContainer({\r\n dropdownClassNameExtend,\r\n store,\r\n optionRender,\r\n t,\r\n}) {\r\n const { isOpen } = store;\r\n return (\r\n \r\n {isOpen && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nMrbSimpleSelectPanelContainer.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n optionRender: PropTypes.func,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbSimpleSelectPanelContainer);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\n\r\nfunction MrbSimpleSelectValue({ selectedOption, t }) {\r\n return {t(selectedOption.label)};\r\n}\r\n\r\nMrbSimpleSelectValue.propTypes = {\r\n selectedOption: PropTypes.object,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default MrbSimpleSelectValue;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbSimpleSelectValue } from \"./\";\r\nimport { mergeCss } from \"../../../common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbSimpleSelectValueContainer({\r\n store,\r\n valueRender = (props) => ,\r\n showDropdownIndicator = true,\r\n t,\r\n}) {\r\n const {\r\n toggleIsOpen,\r\n setValueContainerRef,\r\n selectedOption,\r\n config: { placeholder },\r\n onFocus,\r\n onBlur,\r\n } = store;\r\n\r\n return (\r\n \r\n {selectedOption ? (\r\n valueRender({ selectedOption, t })\r\n ) : (\r\n {placeholder}\r\n )}\r\n {showDropdownIndicator && }\r\n \r\n );\r\n}\r\n\r\nMrbSimpleSelectValueContainer.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n showDropdownIndicator: PropTypes.bool,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst DropdownIndicator = observer(function ({ store }) {\r\n return (\r\n
    \r\n );\r\n});\r\n\r\nexport default observer(MrbSimpleSelectValueContainer);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport {\r\n MrbSimpleSelectPanelContainer,\r\n MrbSimpleSelectValueContainer,\r\n} from \"./components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { mergeOrOverrideCss } from \"../../common/utils\";\r\n\r\nfunction MrbSimpleSelect({\r\n store,\r\n t = (i) => i,\r\n optionRender,\r\n valueRender,\r\n showDropdownIndicator,\r\n classNameOverride,\r\n classNameExtend,\r\n dropdownClassNameExtend,\r\n}) {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nMrbSimpleSelect.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n optionRender: PropTypes.func,\r\n showDropdownIndicator: PropTypes.bool,\r\n};\r\n\r\nexport default observer(MrbSimpleSelect);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { mergeOrOverrideCss } from \"../../common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbCheckbox({\r\n id,\r\n label,\r\n value,\r\n onChange,\r\n t = (i) => i,\r\n disabled,\r\n labelRender = null,\r\n classNameExtend,\r\n classNameOverride,\r\n}) {\r\n return (\r\n \r\n \r\n {labelRender ? (\r\n labelRender({ id, t })\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nMrbCheckbox.propTypes = {\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n label: PropTypes.string,\r\n t: PropTypes.func,\r\n labelRender: PropTypes.func,\r\n};\r\n\r\nMrbCheckbox.defaultProps = {\r\n disabled: false,\r\n};\r\n\r\nexport default observer(MrbCheckbox);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbCheckbox } from \"./\";\r\nimport { isSome, renderIf } from \"../../common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbFieldCheckbox({ field, t = (i) => i, ...props }) {\r\n return (\r\n \r\n {renderIf(isSome(field.errorMessage))(\r\n
    \r\n

    \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n {field.errorMessage}\r\n \r\n

    \r\n
    \r\n )}\r\n \r\n
    \r\n );\r\n}\r\n\r\nMrbFieldCheckbox.propTypes = {\r\n field: PropTypes.any,\r\n};\r\n\r\nexport default observer(MrbFieldCheckbox);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { mergeOrOverrideCss } from \"../../common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbToggle({\r\n id,\r\n label,\r\n value,\r\n onChange,\r\n t = (i) => i,\r\n disabled,\r\n labelRender = null,\r\n classNameExtend,\r\n classNameOverride,\r\n labelClassNameExtend,\r\n labelClassNameOverride,\r\n}) {\r\n return (\r\n \r\n
    \r\n \r\n \r\n {labelRender ? (\r\n labelRender({ id, t })\r\n ) : (\r\n \r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nMrbToggle.propTypes = {\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.bool,\r\n disabled: PropTypes.bool,\r\n label: PropTypes.string,\r\n t: PropTypes.func,\r\n labelRender: PropTypes.func,\r\n classNameExtend: PropTypes.string,\r\n classNameOverride: PropTypes.string,\r\n labelClassNameExtend: PropTypes.string,\r\n labelClassNameOverride: PropTypes.string,\r\n};\r\n\r\nMrbToggle.defaultProps = {\r\n disabled: false,\r\n};\r\n\r\nexport default observer(MrbToggle);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbToggle } from \"./\";\r\nimport { isSome, renderIf } from \"../../common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbFieldToggle({ field, t = (i) => i, ...props }) {\r\n return (\r\n \r\n {renderIf(isSome(field.errorMessage))(\r\n
    \r\n

    \r\n {\" \"}\r\n \r\n \r\n \r\n \r\n \r\n {field.errorMessage}\r\n \r\n

    \r\n
    \r\n )}\r\n \r\n
    \r\n );\r\n}\r\n\r\nMrbFieldToggle.propTypes = {\r\n field: PropTypes.any,\r\n labelRender: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbFieldToggle);\r\n","const timeGroup = {\r\n hour: \"Hour\",\r\n day: \"Day\",\r\n week: \"Week\",\r\n month: \"Month\",\r\n};\r\n\r\nexport default timeGroup;\r\n","const timeRangeType = {\r\n today: \"today\",\r\n yesterday: \"yesterday\",\r\n last3Days: \"last-3-days\",\r\n thisWeek: \"this-week\",\r\n lastWeek: \"last-week\",\r\n thisMonth: \"this-month\",\r\n lastMonth: \"last-month\",\r\n custom: \"custom\",\r\n};\r\n\r\nexport default timeRangeType;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { Line } from \"react-chartjs-2\";\r\nimport { observer } from \"mobx-react\";\r\nimport { DeviceActivityEmptyState } from \"administration/analytics/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\n\r\nfunction createChartjsParams(canvas, data, labels, config) {\r\n const ctx = canvas.getContext(\"2d\");\r\n const height = canvas.getAttribute(\"height\");\r\n const gradient = ctx.createLinearGradient(0, 0, 0, height);\r\n gradient.addColorStop(0, \"rgba(51,157,255, 0.5)\");\r\n gradient.addColorStop(0.5, \"rgba(51,157,255, 0.25)\");\r\n gradient.addColorStop(1, \"rgba(51,157,255, 0)\");\r\n return {\r\n labels: labels,\r\n datasets: [\r\n {\r\n label: config.label,\r\n data: data,\r\n fill: config.fill,\r\n backgroundColor: gradient,\r\n borderColor: \"#339dff\",\r\n lineTension: 0.3,\r\n },\r\n ],\r\n };\r\n}\r\n\r\nfunction LineChartTemplate({ store, loaderRenderer }) {\r\n const { data, labels, config, loaderStore } = store;\r\n return (\r\n \r\n {() => (\r\n
    \r\n {data.length > 0 ? (\r\n createChartjsParams(canvas, data, labels, config)}\r\n options={config.options}\r\n />\r\n ) : (\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nLineChartTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n loaderRenderer: PropTypes.func,\r\n};\r\n\r\nexport default observer(LineChartTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { Doughnut } from \"react-chartjs-2\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction createChartjsParams(data, labels, config) {\r\n return {\r\n labels: labels,\r\n datasets: [\r\n {\r\n label: config.label,\r\n data: data,\r\n fill: config.fill,\r\n backgroundColor: config.backgroundColor,\r\n borderColor: config.borderColor,\r\n borderWidth: config.borderWidth,\r\n },\r\n ],\r\n };\r\n}\r\n\r\nfunction DoughnutChartTemplate({ store, loaderRenderer = null, emptyStateRenderer = null }) {\r\n const { data, labels, config, loaderStore } = store;\r\n return (\r\n \r\n {() => (\r\n
    \r\n {data.length > 0 ? (\r\n
    \r\n createChartjsParams(data, labels, config)} options={config.options} />\r\n
    \r\n ) : (\r\n emptyStateRenderer()\r\n )}\r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nDoughnutChartTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n loaderRenderer: PropTypes.func,\r\n emptyStateRenderer: PropTypes.func,\r\n};\r\n\r\nexport default observer(DoughnutChartTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFileUpload, MrbImage } from \"mrb/components/media\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport coverPlaceholder from \"themes/assets/images/placeholder-template.svg\";\r\nimport { observer } from \"mobx-react\";\r\nimport { UploadedImageLoader, ImageUploadNote } from \"common/components\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nfunction CoverImageUploadTemplate({\r\n coverImageUploadViewStore,\r\n classNameExtendUpload,\r\n showInfo,\r\n isFullWidthFooterButtons,\r\n}) {\r\n const { fileUploadStore, imageUrl, loaderStore } = coverImageUploadViewStore;\r\n return (\r\n \r\n }\r\n >\r\n {() => (\r\n \r\n
    \r\n
    \r\n {imageUrl && }\r\n {!imageUrl && }\r\n
    \r\n
    \r\n
    \r\n )}\r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nconst UploadFooter = observer(function UploadFooter({ store, isFullWidthFooterButtons }) {\r\n const { imageUrl, uploadImage, remove, loaderStore } = store;\r\n\r\n return (\r\n \r\n {imageUrl ? (\r\n
    \r\n \r\n \r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n );\r\n});\r\n\r\nCoverImageUploadTemplate.propTypes = {\r\n coverImageUploadViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default observer(CoverImageUploadTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbImage } from \"mrb/components/media\";\r\nimport defaultCoverPlaceholder from \"themes/assets/images/placeholder-template.svg\";\r\n\r\nfunction ImageTemplate({ src, placeholder, ...rest }) {\r\n placeholder = placeholder || defaultCoverPlaceholder;\r\n\r\n return ;\r\n}\r\n\r\nImageTemplate.propTypes = {\r\n src: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n};\r\n\r\nexport default ImageTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldLayout } from \"mrb/components/layout\";\r\nimport { mergeOrOverrideCss } from \"mrb/common/utils\";\r\nimport CurrencyInput from \"react-currency-input-field\";\r\nimport { isNil } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction CurrencyInputFieldTemplate({\r\n field,\r\n t = (i) => i,\r\n showLabel = true,\r\n disabled,\r\n labelRender = null,\r\n validationRender = null,\r\n classNameExtend,\r\n classNameOverride,\r\n fieldClassNameExtend,\r\n fieldClassNameOverride,\r\n ...restOfProps\r\n}) {\r\n const { placeholder, onChange, ...otherProps } = field.bind();\r\n\r\n if (otherProps.value && typeof otherProps.value === \"string\")\r\n otherProps.value = otherProps.value.replace(/\\s+/g, \" \");\r\n if (otherProps.value == null) otherProps.value = \"\";\r\n\r\n return (\r\n \r\n onChange(value)}\r\n {...otherProps}\r\n {...restOfProps}\r\n disabled={isNil(disabled) ? otherProps.disabled : disabled}\r\n placeholder={t(placeholder)}\r\n />\r\n \r\n );\r\n}\r\n\r\nCurrencyInputFieldTemplate.propTypes = {\r\n field: PropTypes.object.isRequired,\r\n showLabel: PropTypes.bool,\r\n t: PropTypes.func,\r\n labelRender: PropTypes.func,\r\n validationRender: PropTypes.func,\r\n classNameExtend: PropTypes.string,\r\n classNameOverride: PropTypes.string,\r\n fieldClassNameExtend: PropTypes.string,\r\n fieldClassNameOverride: PropTypes.string,\r\n};\r\n\r\nexport default observer(CurrencyInputFieldTemplate);\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst CoverImageUploadLoaderTemplate = (props) => (\r\n \r\n \r\n \r\n \r\n);\r\n\r\nexport default CoverImageUploadLoaderTemplate;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst AddStationsOrPodcastsLoaderTemplate = ({\r\n props,\r\n podcast,\r\n podcastGroup,\r\n}) => {\r\n const screenwidth = window.innerWidth;\r\n let loaderHeight;\r\n let loaderWidth;\r\n\r\n if (screenwidth > 1200) {\r\n loaderWidth = screenwidth - 690;\r\n } else if (screenwidth > 988) {\r\n loaderWidth = screenwidth - 200;\r\n } else {\r\n loaderWidth = screenwidth - 64;\r\n }\r\n\r\n if (screenwidth > 766 && podcast && podcastGroup) {\r\n loaderHeight = 410;\r\n } else if (screenwidth > 766 && podcast) {\r\n loaderHeight = 810;\r\n } else if (screenwidth > 766) {\r\n loaderHeight = 875;\r\n } else {\r\n loaderHeight = 700;\r\n }\r\n\r\n return (\r\n \r\n {screenwidth > 766 ? (\r\n podcast ? (\r\n podcastGroup ? (\r\n \r\n ) : (\r\n \r\n )\r\n ) : (\r\n \r\n )\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default AddStationsOrPodcastsLoaderTemplate;\r\n\r\nconst StationsOrPodcastLoaderLrg = () => {\r\n const items = [];\r\n let y = 0;\r\n\r\n for (let i = 0; i < 7; i++) {\r\n items.push(\r\n \r\n \r\n \r\n \r\n );\r\n\r\n y += 75;\r\n }\r\n\r\n return (\r\n \r\n {items}\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst StationsLoader = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst PodcastsLoader = () => {\r\n const items = [];\r\n let y = 0;\r\n\r\n for (let i = 0; i < 7; i++) {\r\n if (i === 1) {\r\n items.push(\r\n \r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n } else if (i === 3) {\r\n items.push(\r\n \r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n } else if (i === 4) {\r\n items.push(\r\n \r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n } else if (i === 5) {\r\n items.push(\r\n \r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n } else if (i === 6) {\r\n items.push(\r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n \r\n );\r\n } else {\r\n items.push(\r\n \r\n {/* prettier-ignore */}\r\n 5 ? y + 30 : y} rx=\"3\" ry=\"3\" width=\"10%\" height=\"10\" />\r\n {/* prettier-ignore */}\r\n 5 ? y + 50 : y + 20} rx=\"6\" ry=\"6\" width=\"48%\" height=\"40\" />\r\n {/* prettier-ignore */}\r\n 5 ? y + 30 : y} rx=\"3\" ry=\"3\" width=\"10%\" height=\"10\" />\r\n {/* prettier-ignore */}\r\n 5 ? y + 50 : y + 20} rx=\"6\" ry=\"6\" width=\"48%\" height=\"40\" />\r\n \r\n );\r\n }\r\n\r\n y += 96;\r\n }\r\n\r\n return {items};\r\n};\r\n\r\nconst PodcastGroupLoader = () => {\r\n const items = [];\r\n let y = 0;\r\n\r\n for (let i = 0; i < 4; i++) {\r\n if (i === 2) {\r\n items.push(\r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n \r\n );\r\n } else {\r\n items.push(\r\n \r\n {/* prettier-ignore */}\r\n 5 ? y + 30 : y} rx=\"3\" ry=\"3\" width=\"10%\" height=\"10\" />\r\n {/* prettier-ignore */}\r\n 5 ? y + 50 : y + 20} rx=\"6\" ry=\"6\" width=\"100%\" height=\"40\" />\r\n {/* prettier-ignore */}\r\n 5 ? y + 30 : y} rx=\"3\" ry=\"3\" width=\"10%\" height=\"10\" />\r\n {/* prettier-ignore */}\r\n 5 ? y + 50 : y + 20} rx=\"6\" ry=\"6\" width=\"100%\" height=\"40\" />\r\n \r\n );\r\n }\r\n y += 96;\r\n }\r\n\r\n return {items};\r\n};\r\n\r\nconst BoxList = ({ y = 0 }) => {\r\n const box = [];\r\n let x = 0;\r\n\r\n for (let j = 0; j < 6; j++) {\r\n box.push(\r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n x += 37;\r\n }\r\n return {box};\r\n};\r\n\r\nconst ToggleList = ({ y = 0 }) => {\r\n const box = [];\r\n let x = 0;\r\n\r\n for (let j = 0; j < 5; j++) {\r\n box.push(\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n x += 77;\r\n }\r\n return {box};\r\n};\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst PreviewContentLoaderTemplate = ({ props, row = 3 }) => {\r\n const screenwidth = window.innerWidth;\r\n const loaderHeight = row * 63 + 30;\r\n let loaderWidth;\r\n\r\n if (screenwidth > 1200) {\r\n loaderWidth = screenwidth - 690;\r\n } else if (screenwidth > 988) {\r\n loaderWidth = screenwidth - 200;\r\n } else {\r\n loaderWidth = screenwidth - 64;\r\n }\r\n\r\n const items = [];\r\n let y = 0;\r\n\r\n for (let i = 0; i < row; i++) {\r\n if (i + 1 === row) {\r\n items.push(\r\n \r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n } else {\r\n items.push(\r\n \r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n }\r\n\r\n y += 70;\r\n }\r\n\r\n return (\r\n \r\n {items}\r\n \r\n );\r\n};\r\n\r\nexport default PreviewContentLoaderTemplate;\r\n","import React, { useState, useCallback } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst UploadedImageLoaderTemplate = (props) => {\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n\r\n let cardHeight;\r\n switch (props.size) {\r\n case \"c-upload__upload--sml\":\r\n cardHeight = 235;\r\n break;\r\n case \"c-upload--tny\":\r\n cardHeight = 300;\r\n break;\r\n case \"c-upload--base\":\r\n cardHeight = 450;\r\n break;\r\n default:\r\n cardHeight = 360;\r\n break;\r\n }\r\n\r\n const ref = useCallback((node) => {\r\n if (node !== null) setLoaderWidth(node.getBoundingClientRect().width);\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default UploadedImageLoaderTemplate;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst DescriptionLoaderTemplate = (props) => {\r\n const screenwidth = window.innerWidth;\r\n let loaderWidth;\r\n\r\n if (screenwidth > 1200) {\r\n loaderWidth = screenwidth - 690;\r\n } else if (screenwidth > 988) {\r\n loaderWidth = screenwidth - 200;\r\n } else {\r\n loaderWidth = screenwidth - 64;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DescriptionLoaderTemplate;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst FormInputsLoaderTemplate = ({ containerWidth, col = 2, row = 5, noBackground, button }) => {\r\n return (\r\n
    \r\n {noBackground ? (\r\n \r\n \r\n \r\n ) : (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nconst InputLoader = ({ containerWidth, col, row }) => {\r\n const items = [];\r\n // prettier-ignore\r\n const viewWidth = containerWidth === \"base\" ? 1440 : containerWidth === \"sml\" ? 768 : containerWidth === \"tny\" ? 550 : 1920;\r\n const colItems = 100 / col;\r\n\r\n const smlSpace = colItems;\r\n const lrgSpace = 50;\r\n\r\n let x = 0;\r\n let x2 = 0;\r\n\r\n let y = 10;\r\n let y2 = 30;\r\n\r\n for (let i = 0; i < row; i++) {\r\n for (let j = 0; j < col; j++) {\r\n items.push(\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n\r\n x += col > 2 ? smlSpace : lrgSpace;\r\n x2 += col > 2 ? smlSpace : lrgSpace;\r\n }\r\n\r\n x = 0;\r\n x2 = 0;\r\n\r\n y += 75;\r\n y2 += 75;\r\n }\r\n return (\r\n \r\n {items}\r\n \r\n );\r\n};\r\n\r\nexport default FormInputsLoaderTemplate;\r\n\r\nconst Button = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst ChangePasswordLoaderTemplate = (props) => {\r\n const screewidth = window.innerWidth;\r\n // prettier-ignore\r\n const contentWidth = screewidth > 1439 ? 520 : screewidth > 767 ? 320 : screewidth;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ChangePasswordLoaderTemplate;\r\n\r\nconst PasswordHeader = ({ contentWidth }) => {\r\n const headerHeight = 100;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst PasswordPreview = ({ contentWidth }) => {\r\n const contentHeight = 270;\r\n\r\n const items = [];\r\n let y = 40;\r\n\r\n for (let i = 0; i < 3; i++) {\r\n let textWidth = i === 0 ? 120 : i === 1 ? 180 : 240;\r\n\r\n items.push(\r\n \r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n\r\n y += 34;\r\n }\r\n\r\n return (\r\n \r\n \r\n {items}\r\n \r\n \r\n\r\n \r\n \r\n );\r\n};\r\n","import React, { useCallback, useState } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst ToggleActionsLoaderTemplate = ({\r\n smallWidth,\r\n sidebarLrg,\r\n rows = 1,\r\n setHeight,\r\n setY = 40,\r\n backgroundColor = \"#262729\",\r\n foregroundColor = \"#2b2b2b\",\r\n ...props\r\n}) => {\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n\r\n const ref = useCallback((node) => {\r\n if (node !== null) {\r\n setLoaderWidth(node.getBoundingClientRect().width);\r\n }\r\n }, []);\r\n\r\n const items = [];\r\n let y = 0;\r\n\r\n for (let i = 0; i < rows; i++) {\r\n let textWidth = Math.random() * (150 - 100) + 100;\r\n if (i + 1 === rows) {\r\n items.push(\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n } else {\r\n items.push(\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n );\r\n }\r\n\r\n y += setY;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {items}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ToggleActionsLoaderTemplate;\r\n","import React, { useCallback, useState } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst UploadAlbumTrackTemplate = () => {\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n const [uploadLoaderWidth, setUploadLoaderWidth] = useState(0);\r\n\r\n const ref = useCallback((node) => {\r\n if (node !== null) {\r\n setLoaderWidth(node.getBoundingClientRect().width);\r\n }\r\n }, []);\r\n\r\n const uploadRef = useCallback((node) => {\r\n if (node !== null) {\r\n setUploadLoaderWidth(node.getBoundingClientRect().width);\r\n }\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n\r\n
    \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default UploadAlbumTrackTemplate;\r\n","import React from \"react\";\r\nimport { MrbFieldSelect } from \"mrb/components\";\r\nimport { components } from \"react-select\";\r\n\r\nfunction StripeAccountFieldSelectTemplate({ isOptionDisabled, ...props }) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction AccountOption(props) {\r\n const { item } = props.data;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction AccountSelectedValue(props) {\r\n const { item } = props.data;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction AccountLabel({ account }) {\r\n let label;\r\n if (account.email) {\r\n label = `${account.id} (${account.email})`;\r\n } else {\r\n label = account.id;\r\n }\r\n return label;\r\n}\r\n\r\nexport default StripeAccountFieldSelectTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeOrOverrideCss } from \"mrb/common/utils\";\r\n\r\nfunction StripeAccountLinkTemplate({ accountId, classNameOverride, classNameExtend, t }) {\r\n let url = `https://dashboard.stripe.com/connect/accounts/${accountId}/activity`;\r\n\r\n return (\r\n
    \r\n

    {accountId}

    \r\n event.stopPropagation()}\r\n >\r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nStripeAccountLinkTemplate.propTypes = {\r\n accountId: PropTypes.string.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default StripeAccountLinkTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction StripeFieldValidationTemplate({ field }) {\r\n const { error } = field;\r\n if (!error) {\r\n return null;\r\n }\r\n\r\n return (\r\n

    \r\n {error.message}\r\n

    \r\n );\r\n}\r\n\r\nStripeFieldValidationTemplate.propTypes = {\r\n field: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default observer(StripeFieldValidationTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { CardElement } from \"@stripe/react-stripe-js\";\r\nimport { StripeFieldValidation } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nconst cardStyle = {\r\n style: {\r\n base: {\r\n iconColor: \"#f5f5f5\",\r\n color: \"#F5F5F5\",\r\n fontFamily: \"Roboto, Open Sans, Segoe UI, sans-serif\",\r\n fontSize: \"14px\",\r\n \":-webkit-autofill\": {\r\n color: \"#fce883\",\r\n },\r\n \"::placeholder\": {\r\n color: \"rgba(245, 245, 245, 0.4)\",\r\n },\r\n },\r\n },\r\n};\r\n\r\nfunction StripeCreditCardFieldTemplate({ field, label, t = (i) => i }) {\r\n return (\r\n \r\n {label && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nStripeCreditCardFieldTemplate.propTypes = {\r\n field: PropTypes.object.isRequired,\r\n label: PropTypes.string,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(StripeCreditCardFieldTemplate);\r\n","import React, { useState } from \"react\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { MrbNotifyOutsideClick } from \"mrb/components/notify-outside-click\";\r\n\r\nexport const PopoverTemplate = ({ trigger, isDisabled, contentList, contentClassName, children }) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleIsOpen = () => {\r\n setIsOpen(!isOpen);\r\n };\r\n\r\n return (\r\n
    \r\n setIsOpen(false)}>\r\n
    \r\n {trigger}\r\n
    \r\n\r\n {isOpen && (\r\n
    \r\n {children\r\n ? children\r\n : contentList.length > 0 &&\r\n contentList.map((item) => {\r\n return (\r\n {\r\n item.action(event);\r\n setIsOpen(false);\r\n }}\r\n key={Math.random()}\r\n className={mergeCss(\r\n \"c-popover__item\",\r\n item.className,\r\n item.disabled && \"isDisabled\"\r\n )}\r\n >\r\n {item.icon && }\r\n {item.title}\r\n
    \r\n );\r\n })}\r\n
    \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default PopoverTemplate;\r\n","import React from \"react\";\r\n\r\nconst StatusTagTemplate = ({ isActive }) => {\r\n return (\r\n
    \r\n \r\n {isActive ? \"Active\" : \"Inactive\"}\r\n
    \r\n );\r\n};\r\n\r\nexport default StatusTagTemplate;\r\n","import React, { useState } from \"react\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\n\r\nconst AccordionTemplate = (props) => {\r\n const { title, children, className, customStyle, handleRemoveCard, showClose, additionalContent } = props;\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleIsOpen = () => {\r\n setIsOpen((prevIsOpen) => !prevIsOpen);\r\n };\r\n\r\n return (\r\n
    \r\n
    \r\n {title}\r\n\r\n
    \r\n \r\n {showClose && (\r\n \r\n )}\r\n
    \r\n
    \r\n\r\n {isOpen && (\r\n
    \r\n {additionalContent}\r\n\r\n
    {children}
    \r\n
    \r\n )}\r\n
    \r\n );\r\n};\r\n\r\nexport default AccordionTemplate;\r\n","import React from \"react\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nconst ProgressbarTemplate = (props) => {\r\n const { value, total, displayValue, status } = props;\r\n\r\n const percentage = (value / total).toFixed(2);\r\n const totalWidthValue = percentage * 100;\r\n const widthValue = `calc(${totalWidthValue}%)`;\r\n\r\n const downloadStatus = {\r\n new: \"new\",\r\n downloading: \"downloading\",\r\n finished: \"finished\",\r\n canceled: \"canceled\",\r\n failed: \"failed\",\r\n };\r\n\r\n const statusClass = () => {\r\n switch (status) {\r\n case downloadStatus.downloading:\r\n return \"in-progress\";\r\n case downloadStatus.finished:\r\n return \"is-finished\";\r\n case downloadStatus.failed:\r\n return \"is-failed\";\r\n default:\r\n return \"\";\r\n }\r\n };\r\n\r\n return (\r\n
    \r\n

    {displayValue}

    \r\n\r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default ProgressbarTemplate;\r\n","import React from \"react\";\r\nimport { createPortal } from \"react-dom\";\r\n\r\nconst FloatingCardTemplate = ({ children }) => {\r\n return createPortal(
    {children}
    , document.body);\r\n};\r\n\r\nexport default FloatingCardTemplate;\r\n","import React, { useState } from \"react\";\r\nimport { mergeOrOverrideCss } from \"mrb/common/utils\";\r\nimport { Popover } from \"react-tiny-popover\";\r\n\r\nconst CustomDropdownTemplate = ({\r\n trigger,\r\n isDisabled,\r\n children,\r\n contentClassNameOverride,\r\n contentClassNameExtend,\r\n triggerClassNameOverride,\r\n triggerClassNameExtend,\r\n onOpen,\r\n onClose,\r\n}) => {\r\n const [isOpen, setIsOpen] = useState(false);\r\n\r\n const handleIsOpen = () => {\r\n const value = !isOpen;\r\n setIsOpen(value);\r\n if (value && onOpen) {\r\n onOpen();\r\n } else if (!value && onClose) {\r\n onClose();\r\n }\r\n };\r\n\r\n const triggerClassName = mergeOrOverrideCss(\r\n \"c-dropdown__trigger\",\r\n triggerClassNameOverride,\r\n triggerClassNameExtend\r\n );\r\n const contentClassName = mergeOrOverrideCss(\r\n \"c-dropdown__content\",\r\n contentClassNameOverride,\r\n contentClassNameExtend\r\n );\r\n\r\n return (\r\n handleIsOpen()}\r\n boundaryInset={15}\r\n containerClassName={contentClassName}\r\n content={children}\r\n >\r\n
    \r\n {trigger}\r\n
    \r\n \r\n );\r\n};\r\n\r\nexport default CustomDropdownTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PremiumInfoWidget, PastDueSubscriptionWidget, PremiumInfoTrialWidget } from \"application/payment/components\";\r\nimport { ContentPolicyWidget } from \"application/common/components\";\r\nimport { head } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction ApplicationWidgetPanelTemplate({ rootStore, isContentPolicyVisible = true, t }) {\r\n const { userStore, premiumSubscriptionStore } = rootStore;\r\n if (userStore.isAdministrator) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {!premiumSubscriptionStore.subscriptionExist && }\r\n \r\n\r\n {isContentPolicyVisible && }\r\n \r\n );\r\n}\r\n\r\nApplicationWidgetPanelTemplate.propTypes = {\r\n rootStore: PropTypes.object.isRequired,\r\n isContentPolicyVisible: PropTypes.bool,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst SubscriptionInfoWidgets = observer(function SubscriptionInfoWidgets({ premiumSubscriptionStore, t }) {\r\n const pastDueSubscriptions = premiumSubscriptionStore.premiumPastDueSubscriptions;\r\n if (pastDueSubscriptions && pastDueSubscriptions.length > 0) {\r\n return ;\r\n }\r\n const trialSubscriptions = premiumSubscriptionStore.premiumTrialSubscriptions;\r\n if (trialSubscriptions && trialSubscriptions.length > 0) {\r\n return ;\r\n }\r\n\r\n return null;\r\n});\r\n\r\nexport default observer(ApplicationWidgetPanelTemplate);\r\n","import React from \"react\";\r\n\r\nfunction AppStartupLoaderTemplate() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default AppStartupLoaderTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbMenu } from \"mrb/components/menu\";\r\nimport { MrbNotifyOutsideClick } from \"mrb/components/notify-outside-click\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport logo from \"themes/assets/images/logo-spa.svg\";\r\nimport { observer } from \"mobx-react\";\r\nimport { ApplicationWidgetPanel, AdministrationWidgetPanel } from \"common/components\";\r\nimport { version } from \"../../../../../package.json\";\r\n\r\nconst APP_VERSION = `version ${version}`;\r\n\r\nfunction MainSidebarTemplate({ mainSidebarViewStore, t }) {\r\n const { rootStore, logout, user } = mainSidebarViewStore;\r\n const { menuStore } = rootStore;\r\n\r\n return (\r\n \r\n {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n menuStore.toggleMenuOpen();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n\r\n
    \r\n
    \r\n \"Naki\r\n
    \r\n
    \r\n \r\n\r\n
    \r\n \r\n\r\n \r\n\r\n
    \r\n \r\n \r\n
    \r\n\r\n

    {APP_VERSION}

    \r\n\r\n {/* Uncomment this to test session expired */}\r\n {/* \r\n rootStore.authenticationStore.setToken(null)\r\n }\r\n >\r\n Clear Token\r\n */}\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nconst UserInfo = observer(function UserInfo({ user }) {\r\n if (!user) {\r\n return null;\r\n }\r\n let displayName = null;\r\n if (user.userProfile) {\r\n displayName = `${user.userProfile.firstName}`;\r\n } else {\r\n displayName = user.userName;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n Hi, {displayName}\r\n
    \r\n );\r\n});\r\n\r\nMainSidebarTemplate.propTypes = {\r\n mainSidebarViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default defaultTemplate(MainSidebarTemplate);\r\n","import React from \"react\";\r\n\r\nfunction TableNoDataOverlayTemplate() {\r\n return (\r\n
    \r\n \r\n

    \r\n Ooops! Someone cut the cable.\r\n

    \r\n

    There is no data.

    \r\n
    \r\n );\r\n}\r\n\r\nexport default TableNoDataOverlayTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { DragDropContext, Droppable, Draggable } from \"react-beautiful-dnd\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction DragDropListTemplate({\r\n droppableId = \"droppable\",\r\n itemRender,\r\n items,\r\n generateItemKey = (item) => item.id,\r\n onDragEnd,\r\n}) {\r\n return (\r\n \r\n \r\n {(provided) => (\r\n
    \r\n {map(items, (item, index) => (\r\n \r\n {(provided) => (\r\n \r\n {itemRender(item)}\r\n
    \r\n )}\r\n \r\n ))}\r\n {provided.placeholder}\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nDragDropListTemplate.propTypes = {\r\n droppableId: PropTypes.string,\r\n items: PropTypes.array.isRequired,\r\n itemRender: PropTypes.any.isRequired,\r\n generateItemKey: PropTypes.func,\r\n onDragEnd: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(DragDropListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbToggle } from \"mrb/components/checkbox\";\r\nimport { MrbFieldRadioButtons } from \"mrb/components/radio\";\r\nimport { observer } from \"mobx-react\";\r\nimport { head } from \"lodash\";\r\n\r\nfunction ShuffleWeightPickerTemplate({\r\n field,\r\n shuffleDisabled,\r\n shuffleWeightOptions,\r\n t,\r\n}) {\r\n function onChange(event) {\r\n if (!event.target.checked) {\r\n field.set(shuffleDisabled.id);\r\n } else {\r\n field.set(head(shuffleWeightOptions).value);\r\n }\r\n }\r\n\r\n const toggleId = `${field.id}-weight-toggle`;\r\n return (\r\n
    \r\n
    \r\n {shuffleDisabled && (\r\n
    \r\n \r\n {t(\"Shuffle\")}\r\n \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nShuffleWeightPickerTemplate.propTypes = {\r\n field: PropTypes.object.isRequired,\r\n shuffleWeightOptions: PropTypes.array.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(ShuffleWeightPickerTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { action, observable, makeObservable } from \"mobx\";\r\nimport { observer } from \"mobx-react\";\r\nimport { Editor } from \"react-draft-wysiwyg\";\r\nimport { EditorState, convertToRaw, ContentState } from \"draft-js\";\r\nimport draftToHtml from \"draftjs-to-html\";\r\nimport htmlToDraft from \"html-to-draftjs\";\r\nimport { isFunction } from \"lodash\";\r\nimport \"../../../../../../node_modules/react-draft-wysiwyg/dist/react-draft-wysiwyg.css\";\r\n\r\n@observer\r\nclass RichTextEditorTemplate extends React.Component {\r\n @observable.ref editorState = EditorState.createEmpty();\r\n\r\n constructor(props) {\r\n super();\r\n makeObservable(this);\r\n this.onChange = props.onChange;\r\n if (props.value) {\r\n const content = htmlToDraft(props.value);\r\n if (content) {\r\n const contentState = ContentState.createFromBlockArray(\r\n content.contentBlocks\r\n );\r\n const editorState = EditorState.createWithContent(contentState);\r\n this.setEditorState(editorState);\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n setEditorState(editorState) {\r\n this.editorState = editorState;\r\n }\r\n\r\n @action.bound\r\n onEditorStateChange(editorState) {\r\n this.setEditorState(editorState);\r\n if (isFunction(this.onChange)) {\r\n this.onChange(\r\n draftToHtml(convertToRaw(editorState.getCurrentContent()))\r\n );\r\n }\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nRichTextEditorTemplate.propTypes = {\r\n field: PropTypes.object,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default RichTextEditorTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldLayout } from \"mrb/components/layout/content/form\";\r\nimport { RichTextEditor } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction FieldRichTextEditorTemplate({\r\n field,\r\n t,\r\n showLabel = true,\r\n disabled,\r\n labelRender = null,\r\n validationRender = null,\r\n classNameExtend,\r\n classNameOverride,\r\n ...restOfProps\r\n}) {\r\n const { placeholder, onChange, ...otherProps } = field.bind();\r\n if (otherProps.value && typeof otherProps.value === \"string\")\r\n otherProps.value = otherProps.value.replace(/\\s+/g, \" \");\r\n if (otherProps.value == null) otherProps.value = \"\";\r\n\r\n const onChangeFn = function (value) {\r\n value = value.replace(/\\n$/, \"\");\r\n if (value === \"

    \") {\r\n value = null;\r\n }\r\n if (otherProps.value !== value) {\r\n onChange(value);\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nFieldRichTextEditorTemplate.propTypes = {\r\n field: PropTypes.object.isRequired,\r\n showLabel: PropTypes.bool,\r\n t: PropTypes.func,\r\n labelRender: PropTypes.func,\r\n validationRender: PropTypes.func,\r\n classNameExtend: PropTypes.string,\r\n};\r\n\r\nexport default observer(FieldRichTextEditorTemplate);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\n\r\nfunction HTMLRenderTemplate({ children, className = null }) {\r\n if (!children) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nHTMLRenderTemplate.propTypes = {\r\n children: PropTypes.string,\r\n className: PropTypes.string,\r\n};\r\n\r\nexport default HTMLRenderTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { join, map } from \"lodash\";\r\n\r\nfunction GenresTemplate({ genres }) {\r\n if (genres && genres.length > 0) {\r\n return (\r\n

    \r\n {join(\r\n map(genres, (genre) => genre.name),\r\n \", \"\r\n )}\r\n

    \r\n );\r\n }\r\n return null;\r\n}\r\n\r\nGenresTemplate.propTypes = {\r\n genres: PropTypes.array,\r\n};\r\n\r\nexport default GenresTemplate;\r\n","import React from \"react\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nconst PremiumBadgeTemplate = ({ isPremium, isPremiumSubscriptionValid = false, premiumSize, iconSize }) => {\r\n return (\r\n \r\n {isPremium && !isPremiumSubscriptionValid && (\r\n \r\n 545 ? `u-icon--${iconSize}` : \"u-icon--base\"\r\n )}\r\n >
    \r\n Premium\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default PremiumBadgeTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction PasswordFieldInfoTemplate({ passwordFieldInfoViewStore }) {\r\n const {\r\n isMiniumLengthValid,\r\n containsSpecialCharacter,\r\n containsNumericCharacter,\r\n } = passwordFieldInfoViewStore;\r\n\r\n return (\r\n
    \r\n
    \r\n

    \r\n Example: keepMyData$af3\r\n

    \r\n

    \r\n {\" \"}\r\n \r\n At least 8 characters\r\n

    \r\n

    \r\n {\" \"}\r\n \r\n At least one numeric character\r\n

    \r\n

    \r\n {\" \"}\r\n \r\n At least one non-alphanumeric character\r\n

    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nPasswordFieldInfoTemplate.propTypes = {\r\n passwordFieldInfoViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default observer(PasswordFieldInfoTemplate);\r\n","import React from \"react\";\r\n\r\nfunction ImageUploadNoteTemplate({ showInfo }) {\r\n return (\r\n \r\n \r\n

    \r\n Click here to upload or
    drag and drop image\r\n

    \r\n {showInfo && (\r\n
      \r\n
    • • Upload jpg, png, or gif files
    • \r\n
    • • Max. file size is 20MB
    • \r\n
    • • 400px x 400px file size is recommended
    • \r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nexport default ImageUploadNoteTemplate;\r\n","import React from \"react\";\r\nimport Joyride from \"react-joyride\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nconst customStyles = {\r\n options: {\r\n arrowColor: \"#393c42\",\r\n backgroundColor: \"#393c42\",\r\n textColor: \"#f5f5f5\",\r\n zIndex: 1000,\r\n },\r\n tooltip: {\r\n width: \"310px\",\r\n },\r\n tooltipFooter: {\r\n marginTop: \"0px\",\r\n },\r\n buttonClose: {\r\n height: \"8px\",\r\n width: \"14px\",\r\n padding: \"0px\",\r\n position: \"absolute\",\r\n right: \"4px\",\r\n top: \"4px\",\r\n borderRadius: \"100%\",\r\n },\r\n tooltipContent: {\r\n padding: \"10px 0px 14px\",\r\n textAlign: \"left\",\r\n fontSize: \"14px\",\r\n },\r\n buttonSkip: {\r\n padding: 0,\r\n color: \"#ececec\",\r\n opacity: 0.7,\r\n fontSize: \"14px\",\r\n },\r\n buttonBack: {\r\n padding: \"8px 12px\",\r\n fontSize: \"14px\",\r\n color: \"#339dff\",\r\n },\r\n buttonNext: {\r\n padding: \"8px 12px\",\r\n fontSize: \"14px\",\r\n backgroundColor: \"#339dff\",\r\n },\r\n};\r\n\r\nfunction JoyrideOnboardingTemplate({ joyrideViewStore }) {\r\n const { steps, run, handleJoyrideCallback, stepIndex } = joyrideViewStore;\r\n\r\n return (\r\n \r\n {!joyrideViewStore.isTutorialPassed && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nJoyrideOnboardingTemplate.propTypes = {\r\n joyrideViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default observer(JoyrideOnboardingTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { ContentSyncWidget } from \"administration/content-sync/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction AdministrationWidgetPanelTemplate({ rootStore, t }) {\r\n const { userStore } = rootStore;\r\n if (!userStore.isAdministrator) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nAdministrationWidgetPanelTemplate.propTypes = {\r\n rootStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(AdministrationWidgetPanelTemplate);\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\n\r\nclass MrbBaseAppStore {\r\n @observable.ref app = null;\r\n\r\n @computed get apiClient() {\r\n return this._getApiClient(this.app);\r\n }\r\n\r\n get applicationExists() {\r\n return this.app !== undefined && this.app !== null;\r\n }\r\n\r\n constructor(rootStore) {\r\n makeObservable(this);\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @action.bound\r\n setApp(app) {\r\n this.app = app;\r\n }\r\n\r\n createApplicationService(Type) {\r\n return new Type(this.apiClient);\r\n }\r\n\r\n register(params) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n _getApiClient() {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n}\r\n\r\nexport default MrbBaseAppStore;\r\n","import {\r\n action,\r\n computed,\r\n observable,\r\n reaction,\r\n runInAction,\r\n makeObservable,\r\n} from \"mobx\";\r\n\r\nclass MrbBaseUserStore {\r\n @observable.ref applicationUser = null;\r\n @observable.ref permissions = {};\r\n _resolveUserPromise = null;\r\n\r\n @observable isInitialized = false;\r\n\r\n @computed get user() {\r\n return this.applicationUser;\r\n }\r\n\r\n /**\r\n * @constructor\r\n * @param {Core.Stores.RootStore} rootStore - The instance of the RootStore object.\r\n * @description Initializes a new instance of the MrbUserStore.\r\n */\r\n constructor(rootStore) {\r\n makeObservable(this);\r\n this.rootStore = rootStore;\r\n\r\n reaction(\r\n () => this.applicationUser,\r\n () => {\r\n this.resetPermissions();\r\n }\r\n );\r\n\r\n this.hasPermission = this.hasPermission.bind(this);\r\n }\r\n\r\n async initialize() {\r\n if (!this.isInitialized) {\r\n if (this.rootStore.authenticationStore.isAuthenticated) {\r\n await this.resolveUser();\r\n }\r\n runInAction(() => {\r\n this.isInitialized = true;\r\n });\r\n }\r\n }\r\n\r\n resolveUser() {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n removeUser() {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n hasPermission(authorization) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n /**\r\n * @function\r\n * @protected\r\n * @description Reset authenticated user permissions.\r\n */\r\n @action.bound\r\n resetPermissions() {\r\n this.permissions = {};\r\n }\r\n}\r\n\r\nexport default MrbBaseUserStore;\r\n","import { action, computed, reaction, observable, makeObservable } from \"mobx\";\r\nimport { mrbCacheManager } from \"../../cache\";\r\n\r\nclass MrbBaseAuthenticationStore {\r\n /**\r\n * @protected\r\n * @description User authentication token instance.\r\n */\r\n @observable.ref token = null;\r\n\r\n @observable.ref signInRedirect = null;\r\n\r\n /**\r\n * @readonly\r\n * @public\r\n * @description Determine whether an user is authenticated.\r\n */\r\n @computed get isAuthenticated() {\r\n return this.isTokenValid(this.token);\r\n }\r\n\r\n /**\r\n * @constructor\r\n * @param {Core.Stores.RootStore} rootStore - The instance of the RootStore object.\r\n * @description Initializes a new instance of the MrbBaseAuthenticationStore.\r\n */\r\n constructor(rootStore) {\r\n makeObservable(this);\r\n this.rootStore = rootStore;\r\n reaction(\r\n () => this.isAuthenticated,\r\n async (isAuthenticated) => {\r\n await this.onIsAuthenticatedChange(isAuthenticated);\r\n }\r\n );\r\n }\r\n\r\n @action.bound\r\n async onIsAuthenticatedChange(isAuthenticated) {\r\n const { userStore } = this.rootStore;\r\n if (isAuthenticated) {\r\n await userStore.resolveUser();\r\n } else {\r\n userStore.removeUser();\r\n await this.onUnauthenticated();\r\n }\r\n }\r\n\r\n onUnauthenticated() {\r\n this.rootStore.routerStore.goToLogin();\r\n mrbCacheManager.clear();\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * @function\r\n * @public\r\n * @description Initialize authentication store and underlying services.\r\n */\r\n @action.bound\r\n initialize() {\r\n this.syncToken();\r\n }\r\n\r\n syncToken() {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n @action.bound\r\n setToken(token) {\r\n this.token = token;\r\n }\r\n\r\n @action.bound\r\n setSignInRedirect(state) {\r\n this.signInRedirect = state;\r\n }\r\n\r\n resetSignInRedirect() {\r\n this.setSignInRedirect(null);\r\n }\r\n\r\n getSignInRedirect() {\r\n if (this.signInRedirect) {\r\n return this.signInRedirect;\r\n }\r\n\r\n return this.rootStore.routerStore.initialState;\r\n }\r\n\r\n login(username, password, options) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n logout() {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n isTokenValid(token) {\r\n return !!token;\r\n }\r\n}\r\n\r\nexport default MrbBaseAuthenticationStore;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldLayout } from \"../layout/content/form\";\r\nimport { mergeOrOverrideCss } from \"../../common/utils\";\r\nimport { isNil } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbFieldInput({\r\n field,\r\n t = (i) => i,\r\n showLabel = true,\r\n disabled,\r\n labelRender,\r\n validationRender,\r\n infoRenderer,\r\n infoLabelRenderer,\r\n classNameExtend,\r\n classNameOverride,\r\n ...restOfProps\r\n}) {\r\n const { placeholder, ...otherProps } = field.bind();\r\n\r\n if (otherProps.value && typeof otherProps.value === \"string\")\r\n otherProps.value = otherProps.value.replace(/\\s+/g, \" \");\r\n if (otherProps.value == null) otherProps.value = \"\";\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nMrbFieldInput.propTypes = {\r\n field: PropTypes.object.isRequired,\r\n showLabel: PropTypes.bool,\r\n t: PropTypes.func,\r\n labelRender: PropTypes.func,\r\n validationRender: PropTypes.func,\r\n infoRenderer: PropTypes.func,\r\n infoLabelRenderer: PropTypes.func,\r\n classNameExtend: PropTypes.string,\r\n};\r\n\r\nexport default observer(MrbFieldInput);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldLayout } from \"../layout/content/form\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbFieldTextArea({\r\n field,\r\n rows = 3,\r\n t = (i) => i,\r\n showLabel = true,\r\n labelRender = null,\r\n validationRender = null,\r\n classNameExtend = \"\"\r\n}) {\r\n const { placeholder, ...otherProps } = field.bind();\r\n\r\n if (otherProps.value) {\r\n otherProps.value = otherProps.value.replace(/\\s+/g, \" \");\r\n } else {\r\n otherProps.value = \"\";\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nMrbFieldTextArea.propTypes = {\r\n field: PropTypes.object.isRequired,\r\n rows: PropTypes.number,\r\n showLabel: PropTypes.bool,\r\n labelRender: PropTypes.func,\r\n validationRender: PropTypes.func,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbFieldTextArea);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbQuerySearchInput({\r\n queryUtility,\r\n propertyName = \"search\",\r\n placeholder = \"Search\",\r\n className = \"c-input c-input--search c-input--base\",\r\n t = (i) => i,\r\n searchButtonLabel = \"Search\",\r\n showSearchButton = true,\r\n autoFocus = false,\r\n maxLength = null,\r\n}) {\r\n const onChange = (event) => {\r\n queryUtility.filter.set(propertyName, event.target.value);\r\n };\r\n\r\n const onKeyPress = (event) => {\r\n if (event.key === \"Enter\") {\r\n queryUtility.fetch();\r\n }\r\n };\r\n\r\n const onInlineReset = () => {\r\n queryUtility.filter.set(propertyName, null);\r\n\r\n queryUtility.fetch();\r\n };\r\n\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n {queryUtility.filter[propertyName] && queryUtility.filter[propertyName] !== \"\" && (\r\n \r\n \r\n \r\n )}\r\n
    \r\n {showSearchButton && (\r\n
    \r\n \r\n {t(searchButtonLabel)}\r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nMrbQuerySearchInput.propTypes = {\r\n queryUtility: PropTypes.object.isRequired,\r\n propertyName: PropTypes.string,\r\n placeholder: PropTypes.string,\r\n className: PropTypes.string,\r\n t: PropTypes.func,\r\n searchButtonLabel: PropTypes.string,\r\n showSearchButton: PropTypes.bool,\r\n autoFocus: PropTypes.bool,\r\n maxLength: PropTypes.number,\r\n};\r\n\r\nexport default observer(MrbQuerySearchInput);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport NumericInput from \"react-numeric-input\";\r\n\r\nfunction MrbNumericInput({\r\n onChange,\r\n value,\r\n placeholder,\r\n t = (i) => i,\r\n ...rest\r\n}) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nMrbNumericInput.propTypes = {\r\n onChange: PropTypes.func,\r\n value: PropTypes.any,\r\n placeholder: PropTypes.string,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default MrbNumericInput;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbFieldLayout } from \"../layout/content/form\";\r\nimport { mergeOrOverrideCss } from \"../../common/utils\";\r\nimport { MrbNumericInput } from \"./\";\r\nimport { isNil } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbFieldNumericInput({\r\n field,\r\n t = (i) => i,\r\n showLabel = true,\r\n disabled,\r\n labelRender = null,\r\n validationRender = null,\r\n classNameExtend,\r\n classNameOverride,\r\n fieldClassNameExtend,\r\n fieldClassNameOverride,\r\n ...restOfProps\r\n}) {\r\n const { placeholder, ...otherProps } = field.bind();\r\n\r\n if (otherProps.value && typeof otherProps.value === \"string\")\r\n otherProps.value = otherProps.value.replace(/\\s+/g, \" \");\r\n if (otherProps.value == null) otherProps.value = \"\";\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nMrbFieldNumericInput.propTypes = {\r\n field: PropTypes.object.isRequired,\r\n showLabel: PropTypes.bool,\r\n t: PropTypes.func,\r\n labelRender: PropTypes.func,\r\n validationRender: PropTypes.func,\r\n classNameExtend: PropTypes.string,\r\n classNameOverride: PropTypes.string,\r\n fieldClassNameExtend: PropTypes.string,\r\n fieldClassNameOverride: PropTypes.string,\r\n};\r\n\r\nexport default observer(MrbFieldNumericInput);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { map } from \"lodash\";\r\n\r\nfunction MrbBasicSelect({ items, onSelect, value, panelRender = null }) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nMrbBasicSelect.propTypes = {\r\n items: PropTypes.array.isRequired,\r\n value: PropTypes.any,\r\n onSelect: PropTypes.func,\r\n panelRender: PropTypes.func,\r\n};\r\n\r\nexport default MrbBasicSelect;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbApplicationFormatter } from \"../../../common\";\r\nimport { forEach, map, merge, isFunction, isNull, isUndefined } from \"lodash\";\r\n\r\nconst DefaultConfig = {\r\n actions: {},\r\n paging: true,\r\n hidePagerIfUnderLimit: true,\r\n onDataChange: null,\r\n mapper: (i) => i,\r\n generateKey: null,\r\n formatter: new MrbApplicationFormatter(),\r\n};\r\n\r\nclass MrbBaseGridViewStore {\r\n @observable dataInitialized = false;\r\n @observable initialized = false;\r\n\r\n originalData = [];\r\n @observable.ref data = [];\r\n\r\n @computed get hasData() {\r\n return this.data.length > 0;\r\n }\r\n\r\n @computed get pageNumber() {\r\n return this.queryUtility.filter.pageNumber;\r\n }\r\n\r\n @computed get pageSize() {\r\n return this.queryUtility.filter.pageSize;\r\n }\r\n\r\n @computed get orderBy() {\r\n return this.queryUtility.filter.orderBy;\r\n }\r\n\r\n @computed get orderDirection() {\r\n return this.queryUtility.filter.orderDirection;\r\n }\r\n\r\n @computed get recordCount() {\r\n return this.queryUtility.recordCount;\r\n }\r\n\r\n @computed get hasItems() {\r\n return this.data && this.data.length > 0;\r\n }\r\n\r\n constructor(rootStore, queryUtility, loaderStore, config = {}) {\r\n makeObservable(this);\r\n this.rootStore = rootStore;\r\n this.queryUtility = queryUtility;\r\n this.loaderStore = loaderStore;\r\n if (config.actions) {\r\n // Remove not allowed actions based on user permissions\r\n config.actions = this._filterActionsWithPermission(config.actions);\r\n }\r\n this.config = merge({}, DefaultConfig, config);\r\n\r\n this.formatValue = this.formatValue.bind(this);\r\n this.generateCellKey = this.generateCellKey.bind(this);\r\n }\r\n\r\n @action.bound\r\n setData(data) {\r\n let items = data.item ? data.item : data;\r\n items = map(items, this.config.mapper);\r\n this.originalData = items;\r\n this.data = items;\r\n\r\n if (data.item) {\r\n this.queryUtility.handleResponse(data);\r\n }\r\n\r\n this.dataInitialized = true;\r\n if (isFunction(this.config.onDataChange)) {\r\n this.config.onDataChange();\r\n }\r\n }\r\n\r\n generateCellKey(item, index) {\r\n if (isFunction(this.config.generateKey)) {\r\n return this.config.generateKey(item, index);\r\n } else if (item.hasOwnProperty(\"id\")) {\r\n return item.id;\r\n } else {\r\n if (process.env.NODE_ENV === \"development\") {\r\n console.warn(\r\n \"MrbBaseGridViewStore: Using an index as the key is not recommended since it can negatively impact performances. Define custom generateKey() function.\"\r\n );\r\n }\r\n return index;\r\n }\r\n }\r\n\r\n @action.bound\r\n suspend(params) {\r\n this.loaderStore.suspend(params);\r\n this.rootStore.mainLoaderStore.suspend();\r\n }\r\n\r\n @action.bound\r\n resume() {\r\n this.loaderStore.resume();\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n\r\n @action.bound\r\n setPage(page) {\r\n this.queryUtility.changePage(page);\r\n }\r\n\r\n @action.bound\r\n setPageSize(pageSize) {\r\n this.queryUtility.changePageSize(pageSize);\r\n }\r\n\r\n @action.bound\r\n setSort(sort) {\r\n this.queryUtility.changeOrder(sort);\r\n }\r\n\r\n @action.bound\r\n resetGridItems() {\r\n this.data = [...this.originalData];\r\n }\r\n\r\n _filterActionsWithPermission(actions) {\r\n const result = {};\r\n forEach(actions, (action, key) => {\r\n if (!action.authorization || this.rootStore.userStore.hasPermission(action.authorization)) {\r\n result[key] = action;\r\n }\r\n });\r\n return result;\r\n }\r\n\r\n formatValue(value, format) {\r\n if (isNull(value) || isUndefined(value)) {\r\n return \"-\";\r\n }\r\n if (!this.config.formatter) {\r\n return value;\r\n }\r\n if (format) {\r\n if (isFunction(format)) {\r\n return format(value);\r\n }\r\n const { type, ...options } = format;\r\n return this.config.formatter.format(type, value, options);\r\n }\r\n return value;\r\n }\r\n\r\n destroy() {\r\n this.loaderStore.destroy();\r\n }\r\n}\r\n\r\nexport default MrbBaseGridViewStore;\r\n","export * from \"./baasic\";\r\nexport * from \"./core\";\r\nexport * from \"./components\";\r\nexport * from \"./notifications\";\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction DeviceHardwareCellTemplate({ data }) {\r\n if (isNil(data.deviceHardware)) {\r\n return \"-\";\r\n }\r\n\r\n return {deviceHardwareFormatter(data.deviceHardware, data.deviceFirmware)};\r\n}\r\n\r\nDeviceHardwareCellTemplate.propTypes = {\r\n data: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction deviceHardwareFormatter(deviceHardware, deviceFirmware) {\r\n let hardware = null;\r\n switch (deviceHardware) {\r\n case \"venice6\":\r\n hardware = \"Venice 6.5\";\r\n break;\r\n case \"venicex\":\r\n hardware = \"Venice X\";\r\n break;\r\n default:\r\n hardware = deviceHardware;\r\n break;\r\n }\r\n\r\n if (deviceFirmware) {\r\n return `${hardware} (${deviceFirmware})`;\r\n }\r\n\r\n return deviceHardware;\r\n}\r\n\r\nexport default DeviceHardwareCellTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction UserDeviceActivityContentCellTemplate({ data }) {\r\n let contentTitle = null;\r\n let isPremium = false;\r\n if (!isNil(data.station)) {\r\n contentTitle = data.station.title;\r\n isPremium = data.station.isPremium;\r\n } else if (!isNil(data.podcast)) {\r\n contentTitle = data.podcast.title;\r\n isPremium = data.podcast.isPremium;\r\n } else if (!isNil(data.nakiNigunAlbum)) {\r\n contentTitle = data.nakiNigunAlbum.title;\r\n isPremium = data.nakiNigunAlbum.isPremium;\r\n } else {\r\n return \"-\";\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {contentTitle}\r\n {isPremium && }\r\n
    \r\n );\r\n}\r\n\r\nUserDeviceActivityContentCellTemplate.propTypes = {\r\n data: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction ContentTypeIcon({ data }) {\r\n let icon = null;\r\n if (!isNil(data.station)) {\r\n icon = \"stations\";\r\n } else if (!isNil(data.podcast)) {\r\n icon = \"podcasts\";\r\n } else if (!isNil(data.nakiNigunAlbum)) {\r\n icon = \"nigun\";\r\n } else {\r\n return null;\r\n }\r\n\r\n return ;\r\n}\r\n\r\nexport default UserDeviceActivityContentCellTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction UserPayoutEventListContentCellTemplate({ data }) {\r\n let contentTitle = null;\r\n let isPremium = false;\r\n if (!isNil(data.station)) {\r\n contentTitle = data.station.title;\r\n isPremium = data.station.isPremium;\r\n } else if (!isNil(data.podcast)) {\r\n contentTitle = data.podcast.title;\r\n isPremium = data.podcast.isPremium;\r\n } else if (!isNil(data.nakiNigunAlbum)) {\r\n contentTitle = data.nakiNigunAlbum.title;\r\n isPremium = data.nakiNigunAlbum.isPremium;\r\n } else {\r\n return \"-\";\r\n }\r\n let shuffle = null;\r\n if (data.shuffle) {\r\n shuffle = `(${data.shuffle.title})`;\r\n }\r\n const label = [contentTitle, shuffle].join(\" \");\r\n\r\n return (\r\n
    \r\n \r\n {label}\r\n {isPremium && }\r\n
    \r\n );\r\n}\r\n\r\nUserPayoutEventListContentCellTemplate.propTypes = {\r\n data: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction ContentTypeIcon({ data }) {\r\n let icon = null;\r\n if (!isNil(data.station)) {\r\n icon = \"stations\";\r\n } else if (!isNil(data.podcast)) {\r\n icon = \"podcasts\";\r\n } else if (!isNil(data.nakiNigunAlbum)) {\r\n icon = \"nigun\";\r\n } else {\r\n return null;\r\n }\r\n\r\n return ;\r\n}\r\n\r\nexport default UserPayoutEventListContentCellTemplate;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst TopTrendingListLoaderTemplate = (props) => {\r\n const { row = 10, noButton, userActivity = false, ...rest } = props;\r\n const screenwidth = window.innerWidth;\r\n const items = [];\r\n let loaderWidth;\r\n\r\n if (screenwidth > 1199) {\r\n loaderWidth = 387;\r\n } else if (userActivity && screenwidth > 990) {\r\n loaderWidth = screenwidth;\r\n } else if (screenwidth > 990) {\r\n loaderWidth = screenwidth / 2 - 200;\r\n } else if (userActivity && screenwidth > 766) {\r\n loaderWidth = screenwidth;\r\n } else if (screenwidth > 766) {\r\n loaderWidth = screenwidth / 2;\r\n } else {\r\n loaderWidth = screenwidth;\r\n }\r\n\r\n let y = 0;\r\n\r\n for (let i = 0; i < row; i++) {\r\n let textWidth = Math.random() * (150 - 100) + 100;\r\n items.push(\r\n \r\n {!userActivity &&\r\n \r\n }\r\n \r\n \r\n {noButton && !userActivity && }\r\n \r\n \r\n );\r\n\r\n y += 38;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {items}\r\n {!noButton && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default TopTrendingListLoaderTemplate;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst AnalyticsGraphLoaderTemplate = (props) => {\r\n const screenwidth = window.innerWidth;\r\n let loaderWidth;\r\n let col;\r\n\r\n if (screenwidth > 1199) {\r\n loaderWidth = screenwidth - 690;\r\n col = Math.floor(loaderWidth / 10);\r\n } else if (screenwidth > 990) {\r\n loaderWidth = screenwidth - 250;\r\n col = Math.floor(loaderWidth / 6);\r\n } else {\r\n loaderWidth = screenwidth;\r\n col = Math.floor(loaderWidth / 4);\r\n }\r\n\r\n let itemX = [];\r\n let itemY = [];\r\n\r\n let labelY = [];\r\n let labelX = [];\r\n\r\n let y = 0;\r\n let y2 = 24;\r\n let x = -70;\r\n let x2 = 70;\r\n\r\n for (let i = 0; i < 7; i++) {\r\n itemY.push(\r\n \r\n \r\n \r\n );\r\n\r\n y += 63;\r\n }\r\n\r\n for (let i = 0; i < 10; i++) {\r\n itemX.push(\r\n \r\n \r\n \r\n );\r\n x -= col;\r\n }\r\n\r\n for (let i = 0; i < 8; i++) {\r\n labelY.push(\r\n \r\n \r\n \r\n );\r\n y2 += 50;\r\n }\r\n\r\n for (let i = 0; i < 16; i++) {\r\n labelX.push(\r\n \r\n \r\n \r\n );\r\n x2 += col;\r\n }\r\n\r\n return (\r\n \r\n {itemY}\r\n {itemX}\r\n {labelY}\r\n {labelX}\r\n \r\n );\r\n};\r\n\r\nexport default AnalyticsGraphLoaderTemplate;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst TopTrendingListViewMoreLoaderTemplate = (props) => {\r\n const { row = 12, loadMore, noButton, ...rest } = props;\r\n const screenwidth = window.innerWidth;\r\n const items = [];\r\n let loaderWidth;\r\n let loaderSml = false;\r\n\r\n if (screenwidth > 766) {\r\n loaderWidth = 768;\r\n } else {\r\n loaderWidth = screenwidth;\r\n }\r\n\r\n if (screenwidth < 543) {\r\n loaderSml = true;\r\n }\r\n\r\n let y = loadMore ? 24 : 24;\r\n let imgY = loadMore ? 12 : 12;\r\n\r\n for (let i = 0; i < row; i++) {\r\n let textWidth = Math.random() * (120 - 100) + loaderSml ? 100 : 50;\r\n let textWidth2 = Math.random() * (150 - 100) + loaderSml ? 200 : 50;\r\n items.push(\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n\r\n {noButton &&\r\n \r\n \r\n {loaderSml &&\r\n \r\n }\r\n \r\n }\r\n \r\n {loaderSml &&\r\n \r\n }\r\n \r\n \r\n );\r\n\r\n y += 95;\r\n imgY += 95;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {items}\r\n {!noButton && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default TopTrendingListViewMoreLoaderTemplate\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst AnalyticsStatsLoaderTemplate = (props) => {\r\n const { newDevices, isPremium, ...rest } = props;\r\n const screenWidth = window.innerWidth;\r\n\r\n let loaderWidth;\r\n let circleLoaderHeight;\r\n\r\n const items = [];\r\n let y = 0;\r\n\r\n if (screenWidth > 1440) {\r\n circleLoaderHeight = 220;\r\n loaderWidth = Math.floor((screenWidth - 760) / 2);\r\n } else if (screenWidth > 1199) {\r\n loaderWidth = Math.floor((screenWidth - 760) / 2);\r\n } else if (screenWidth > 991) {\r\n loaderWidth = Math.floor((screenWidth - 200) / 2);\r\n } else if (screenWidth > 767) {\r\n loaderWidth = Math.floor(screenWidth / 2);\r\n circleLoaderHeight = 120;\r\n } else {\r\n loaderWidth = screenWidth;\r\n circleLoaderHeight = 200;\r\n }\r\n\r\n for (let i = 0; i < 3; i++) {\r\n items.push(\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n\r\n y += 86;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {newDevices ? : isPremium ? : items}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default AnalyticsStatsLoaderTemplate;\r\n\r\nconst NewDevices = () => {\r\n const screenWidth = window.innerWidth;\r\n let circleWidth = null;\r\n let y1 = 10;\r\n let y2 = 55;\r\n let y3 = 85;\r\n let circleY = 60;\r\n\r\n if (screenWidth > 1440) {\r\n circleWidth = 80;\r\n y1 = 65;\r\n y2 = 110;\r\n y3 = 140;\r\n circleY = 100;\r\n } else if (screenWidth > 1199) {\r\n circleWidth = 60;\r\n } else {\r\n circleWidth = 60;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n );\r\n};\r\n\r\nconst PremiumAnalyticsLoader = () => {\r\n const items = [];\r\n let y = 6;\r\n\r\n for (let i = 0; i < 3; i++) {\r\n if (i === 1) {\r\n items.push(\r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n items.push(\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n y += i === 1 ? 126 : 96;\r\n }\r\n\r\n return (\r\n \r\n {items}\r\n \r\n )\r\n}","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst PortalDetailedActivityLoaderTemplate = (props) => {\r\n const { cardWidth = 425, row = 4 } = props;\r\n\r\n const items = [];\r\n let y = 0;\r\n\r\n for (let i = 0; i < row; i++) {\r\n if (i === 3) {\r\n items.push(\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n } else {\r\n items.push(\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n y += 70;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {items}\r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default PortalDetailedActivityLoaderTemplate;\r\n\r\nconst CircleLoader = () => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst StatsWidgetLoaderTemplate = (props) => {\r\n const { row = 3, statsPreview, className } = props;\r\n const screenwidth = window.innerWidth;\r\n const items = [];\r\n let loaderWidth;\r\n\r\n if (screenwidth > 1199) {\r\n loaderWidth = 387;\r\n } else if (screenwidth > 990) {\r\n loaderWidth = screenwidth / 2 - 40;\r\n } else if (screenwidth > 766) {\r\n loaderWidth = screenwidth / 2 + 60;\r\n } else {\r\n loaderWidth = screenwidth;\r\n }\r\n\r\n let y = 0;\r\n\r\n for (let i = 0; i < row; i++) {\r\n if (i === 1) {\r\n items.push(\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n } else {\r\n items.push(\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n y += 76;\r\n }\r\n\r\n return (\r\n \r\n {statsPreview ? :\r\n \r\n {items}\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default StatsWidgetLoaderTemplate;\r\n\r\n\r\nconst StatsPreviewLoader = (props) => {\r\n const { row } = props;\r\n const items = [];\r\n\r\n let y = 8;\r\n\r\n for (let i = 0; i < row; i++) {\r\n if (i === 1) {\r\n items.push(\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n } else {\r\n items.push(\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n y += 64;\r\n }\r\n return (\r\n \r\n {items}\r\n \r\n )\r\n}","import React from 'react'\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst AnalyticsPremiumListLoaderTemplate = (props) => {\r\n const { podcastGruop } = props;\r\n\r\n return (\r\n \r\n {podcastGruop &&\r\n \r\n \r\n \r\n \r\n }\r\n \r\n \r\n )\r\n}\r\n\r\nexport default AnalyticsPremiumListLoaderTemplate\r\n\r\nconst AnalyticsGruopLoaderCard = (props) => {\r\n const { col = 5, row = 6, podcastGruop, ...rest } = props;\r\n\r\n const screenwidth = window.innerWidth;\r\n\r\n let loaderWidth = null;\r\n\r\n if (screenwidth > 1199) {\r\n loaderWidth = screenwidth - 690;\r\n } else if (screenwidth > 990) {\r\n loaderWidth = screenwidth - 250;\r\n } else {\r\n loaderWidth = screenwidth;\r\n }\r\n\r\n const listItems = [];\r\n const headerItems = [];\r\n let y = 0;\r\n let x = 0;\r\n\r\n for (let i = 0; i < row; i++) {\r\n for (let j = 0; j < col; j++) {\r\n headerItems.push(\r\n \r\n \r\n \r\n )\r\n listItems.push(\r\n \r\n \r\n \r\n )\r\n\r\n x += j === 0 ? 30 : j === 3 ? 21.7 : 20;\r\n }\r\n\r\n x = 0;\r\n y += 35;\r\n }\r\n\r\n return (\r\n
    \r\n {podcastGruop &&\r\n
    \r\n \r\n \r\n \r\n
    \r\n }\r\n
    \r\n \r\n {podcastGruop &&\r\n \r\n {headerItems}\r\n < rect x={`0`} y={22} rx=\"4\" ry=\"4\" width=\"100%\" height=\"1\" />\r\n \r\n }\r\n {listItems}\r\n {podcastGruop &&\r\n \r\n \r\n\r\n {/* TOTAL */}\r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n
    \r\n
    \r\n )\r\n}","import React, { useCallback, useState } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst ContentStatsListLoaderTemplate = (props) => {\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n\r\n const ref = useCallback((node) => {\r\n if (node !== null) setLoaderWidth(node.getBoundingClientRect().width);\r\n }, []);\r\n\r\n const loaderList = [];\r\n let y = 0;\r\n\r\n for (let i = 0; i < 10; i++) {\r\n loaderList.push(\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n\r\n y += 74;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {loaderList}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ContentStatsListLoaderTemplate;\r\n","import React from 'react'\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst UserAccountSummaryLoaderTemplate = (props) => {\r\n const { row = 3 } = props;\r\n const screenWidth = window.innerWidth;\r\n let loaderWidth;\r\n\r\n const items = [];\r\n let y = 8;\r\n\r\n if (screenWidth > 1440) {\r\n loaderWidth = Math.floor((screenWidth - 760) / 2);\r\n } else if (screenWidth > 1199) {\r\n loaderWidth = Math.floor((screenWidth - 760) / 2);\r\n } else if (screenWidth > 991) {\r\n loaderWidth = Math.floor((screenWidth - 200) / 2);\r\n } else if (screenWidth > 767) {\r\n loaderWidth = Math.floor(screenWidth / 2);\r\n } else {\r\n loaderWidth = screenWidth;\r\n }\r\n\r\n for (let i = 0; i < row; i++) {\r\n let textWidth = Math.random() * (170 - 100) + 100;\r\n let secondTextWidth = Math.random() * (170 - 100) + 100;\r\n\r\n items.push(\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n\r\n y += 57;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {items}\r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default UserAccountSummaryLoaderTemplate\r\n","import React from 'react'\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst UserDeviceActivitySummaryLoaderTemplate = (props) => {\r\n\r\n const screenWidth = window.innerWidth;\r\n let loaderWidth;\r\n\r\n if (screenWidth > 1440) {\r\n loaderWidth = Math.floor((screenWidth - 760) / 2);\r\n } else if (screenWidth > 1199) {\r\n loaderWidth = Math.floor((screenWidth - 760) / 2);\r\n } else if (screenWidth > 991) {\r\n loaderWidth = Math.floor((screenWidth - 200) / 2);\r\n } else if (screenWidth > 767) {\r\n loaderWidth = Math.floor(screenWidth / 2);\r\n } else {\r\n loaderWidth = screenWidth;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n\r\nexport default UserDeviceActivitySummaryLoaderTemplate\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { UserAccountSummaryLoader } from \"administration/analytics/components\";\r\n\r\nfunction UserAccountSummaryTemplate({ userDeviceActivityViewStore, t }) {\r\n const { userPortalSummary, loaderStore } = userDeviceActivityViewStore;\r\n return (\r\n
    \r\n

    Summary

    \r\n }>\r\n {() => (\r\n
    \r\n {userPortalSummary && (\r\n
    \r\n
    \r\n
    \r\n

    User

    \r\n

    \r\n \r\n {userPortalSummary.firstName} {userPortalSummary.lastName}\r\n {\" \"}\r\n

    \r\n
    \r\n
    \r\n

    Registration Date

    \r\n

    \r\n {dateFormatter.format(userPortalSummary.dateOfRegistration, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n

    \r\n
    \r\n
    \r\n

    Registered Devices

    \r\n

    {userPortalSummary.numberOfDevices}

    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nUserAccountSummaryTemplate.propTypes = {\r\n userDeviceActivityViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction SubscriptionInfo({ subscription }) {\r\n return (\r\n \r\n
    \r\n

    Premium Subscription

    \r\n {subscription ? (\r\n \r\n {subscription.subscriptionStatus.name}\r\n

    \r\n ) : (\r\n

    -

    \r\n )}\r\n
    \r\n {subscription && (\r\n \r\n
    \r\n

    Subscription Start Date

    \r\n

    \r\n {subscription && subscription.startDate\r\n ? dateFormatter.format(subscription.startDate, {\r\n format: applicationDefaults.formats.date,\r\n })\r\n : \"-\"}\r\n

    \r\n
    \r\n
    \r\n

    Subscription End Date

    \r\n

    \r\n {subscription && subscription.endDate\r\n ? dateFormatter.format(subscription.endDate, {\r\n format: applicationDefaults.formats.date,\r\n })\r\n : \"-\"}\r\n

    \r\n
    \r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nexport default observer(UserAccountSummaryTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { DoughnutChart } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { UserDeviceActivitySummaryLoader } from \"administration/analytics/components\";\r\n\r\nfunction UserContentListSummaryTemplate({ userDeviceActivityViewStore, t }) {\r\n const { userDeviceActivitySummaryViewStore } = userDeviceActivityViewStore;\r\n const { chartStore } = userDeviceActivitySummaryViewStore;\r\n return (\r\n
    \r\n

    Device Activity (Overall)

    \r\n
    \r\n }\r\n emptyStateRenderer={() => }\r\n />\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nUserContentListSummaryTemplate.propTypes = {\r\n userDeviceActivityViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction EmptyState() {\r\n return (\r\n
    \r\n \r\n

    No activity data

    \r\n

    The user has no active devices.

    \r\n
    \r\n );\r\n}\r\n\r\nexport default observer(UserContentListSummaryTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { TopTrendingListLoader } from \"administration/analytics/components\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { map } from \"lodash\";\r\n\r\nfunction UserContentPlaybackSummaryTemplate({ userDeviceActivityViewStore, t }) {\r\n const { userDeviceActivitySummaryViewStore } = userDeviceActivityViewStore;\r\n const { loaderStore } = userDeviceActivitySummaryViewStore;\r\n return (\r\n
    \r\n

    Top Stations & Podcasts (Overall)

    \r\n
    \r\n }\r\n >\r\n {() => }\r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nUserContentPlaybackSummaryTemplate.propTypes = {\r\n userDeviceActivityViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst PlaybacksList = observer(function PlaybacksList({ userDeviceActivitySummaryViewStore }) {\r\n const { contentPlaybacks } = userDeviceActivitySummaryViewStore;\r\n return (\r\n
    \r\n {contentPlaybacks.length > 0 ? (\r\n \r\n {map(contentPlaybacks, (item, index) => (\r\n \r\n ))}\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n );\r\n});\r\n\r\nfunction PlaybackItem({ index, item }) {\r\n let title, route, isPremium, params;\r\n if (item.station) {\r\n title = item.station.title;\r\n isPremium = item.station.isPremium;\r\n route = \"master.administration.analytics.station-activity\";\r\n params = { id: item.station.id };\r\n } else if (item.podcast) {\r\n title = item.podcast.title;\r\n isPremium = item.podcast.isPremium;\r\n route = \"master.administration.analytics.podcast-activity\";\r\n params = { id: item.podcast.id };\r\n }\r\n return (\r\n
    \r\n
    \r\n {index + 1}.\r\n \r\n \r\n {title}\r\n {isPremium && }\r\n \r\n
    \r\n {numberFormatter.format(item.playbacks)}\r\n
    \r\n );\r\n}\r\n\r\nfunction EmptyState() {\r\n return (\r\n
    \r\n \r\n

    No activity data

    \r\n

    The user has no detected plays.

    \r\n
    \r\n );\r\n}\r\n\r\nexport default observer(UserContentPlaybackSummaryTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { timeRangeType } from \"administration/analytics/constants\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { observer } from \"mobx-react\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nfunction AnalyticsCounterTemplate({\r\n filteredBy,\r\n currentCycleNumber,\r\n previousCycleNumber = 0,\r\n classNameExtend,\r\n timeRangeLabelRenderer,\r\n}) {\r\n const diff = currentCycleNumber - previousCycleNumber;\r\n const trend = Math.sign(diff);\r\n let indicatorClass = null;\r\n if (trend > 0) {\r\n indicatorClass = \"increase\";\r\n } else if (trend < 0) {\r\n indicatorClass = \"decrease\";\r\n } else {\r\n indicatorClass = \"neutral\";\r\n }\r\n\r\n return (\r\n
    \r\n \r\n \r\n {numberFormatter.format(Math.abs(diff))}\r\n

    \r\n

    \r\n {timeRangeLabelRenderer ? (\r\n timeRangeLabelRenderer({ filteredBy })\r\n ) : (\r\n \r\n )}\r\n

    \r\n
    \r\n );\r\n}\r\n\r\nfunction Sign({ number }) {\r\n if (number > 0) {\r\n return \"+\";\r\n } else if (number < 0) {\r\n return \"-\";\r\n }\r\n\r\n return null;\r\n}\r\n\r\nfunction TimeRangeLabel({ filteredBy }) {\r\n if (filteredBy.range === timeRangeType.today) {\r\n return \"Today\";\r\n } else if (filteredBy.range === timeRangeType.yesterday) {\r\n return \"Yesterday\";\r\n } else if (filteredBy.range === timeRangeType.last3Days) {\r\n return \"Last 3 days\";\r\n } else if (filteredBy.range === timeRangeType.thisWeek) {\r\n return \"This Week\";\r\n } else if (filteredBy.range === timeRangeType.lastWeek) {\r\n return \"Last Week\";\r\n } else if (filteredBy.range === timeRangeType.thisMonth) {\r\n return \"This Month\";\r\n } else if (filteredBy.range === timeRangeType.lastMonth) {\r\n return \"Last Month\";\r\n } else {\r\n const fromDate = dateFormatter.format(filteredBy.from, {\r\n format: applicationDefaults.formats.date,\r\n timeZone: filteredBy.timeZone,\r\n });\r\n const toDate = dateFormatter.format(filteredBy.to, {\r\n format: applicationDefaults.formats.date,\r\n timeZone: filteredBy.timeZone,\r\n });\r\n return `${fromDate} - ${toDate}`;\r\n }\r\n}\r\n\r\nAnalyticsCounterTemplate.propTypes = {\r\n filteredBy: PropTypes.object.isRequired,\r\n currentCycleNumber: PropTypes.number.isRequired,\r\n previousCycleNumber: PropTypes.number,\r\n timeRangeLabelRenderer: PropTypes.func,\r\n};\r\n\r\nexport default observer(AnalyticsCounterTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { isNil } from \"lodash\";\r\nfunction TrendingIndicatorTemplate({\r\n showIncreaseNumber = true,\r\n currentCycleNumber,\r\n previousCycleNumber,\r\n classNameExtend,\r\n indicatorClassNameExtend,\r\n}) {\r\n let indicatorClass = null;\r\n if (isNil(previousCycleNumber)) {\r\n indicatorClass = \"up\";\r\n } else {\r\n const diff = previousCycleNumber - currentCycleNumber;\r\n const trend = Math.sign(diff);\r\n if (trend > 0) {\r\n indicatorClass = \"up\";\r\n } else if (trend < 0) {\r\n indicatorClass = \"down\";\r\n } else {\r\n indicatorClass = \"neutral\";\r\n }\r\n }\r\n\r\n return (\r\n \r\n {showIncreaseNumber && (\r\n \r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nfunction TrendingNumber({ currentCycleNumber, previousCycleNumber, classNameExtend }) {\r\n if (isNil(previousCycleNumber)) {\r\n return null;\r\n }\r\n const diff = previousCycleNumber - currentCycleNumber;\r\n const trend = Math.sign(diff);\r\n let indicatorClass = null;\r\n if (trend > 0) {\r\n indicatorClass = \"positive\";\r\n } else if (trend < 0) {\r\n indicatorClass = \"negative\";\r\n } else {\r\n indicatorClass = \"neutral\";\r\n }\r\n return (\r\n \r\n {trend === 0 ? null : trend > 0 ? \"+\" : \"-\"}\r\n {diff === 0 ? null : Math.abs(diff)}\r\n \r\n );\r\n}\r\n\r\nTrendingIndicatorTemplate.propTypes = {\r\n showIncreaseNumber: PropTypes.bool,\r\n classNameExtend: PropTypes.string,\r\n indicatorClassNameExtend: PropTypes.string,\r\n currentCycleNumber: PropTypes.number.isRequired,\r\n previousCycleNumber: PropTypes.number,\r\n};\r\n\r\nexport default TrendingIndicatorTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { TrendingIndicator } from \"administration/analytics/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { StatsWidgetLoader } from \"administration/analytics/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { StatsWidgetEmptyState } from \"common/components/empty-state\";\r\n\r\nfunction StatsWidgetTemplate({ store, t }) {\r\n const { item, currentPeriodLabel, previousPeriodLabel, filter, options, loaderStore } = store;\r\n return (\r\n \r\n }>\r\n {() => (\r\n \r\n {item ? (\r\n
    \r\n
    \r\n
    \r\n

    \r\n Total # of playbacks in {currentPeriodLabel}\r\n

    \r\n

    {numberFormatter.format(item.currentCycleScore)}

    \r\n
    \r\n
    \r\n

    \r\n {\" \"}\r\n {currentPeriodLabel} chart position\r\n

    \r\n

    {item.currentCyclePosition ? item.currentCyclePosition : \"Unlisted\"}

    \r\n
    \r\n
    \r\n

    \r\n {previousPeriodLabel} chart position\r\n

    \r\n

    {item.previousCyclePosition ? item.previousCyclePosition : \"Unlisted\"}

    \r\n
    \r\n
    \r\n {item.currentCyclePosition && item.previousCyclePosition && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n View More\r\n \r\n
    \r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nStatsWidgetTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(StatsWidgetTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbSimpleSelect } from \"mrb/components/select\";\r\nimport { MrbDatePicker } from \"mrb/components/date-picker\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction AnalyticsTimeRangeTemplate({ analyticsTimeRangeViewStore, t }) {\r\n const {\r\n timeRangeSelectStore,\r\n maxDate,\r\n isDateRangeDisabled,\r\n queryUtility,\r\n setFromDate,\r\n setToDate,\r\n applyFilter,\r\n datePickerOptions,\r\n } = analyticsTimeRangeViewStore;\r\n return (\r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n -\r\n \r\n\r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nAnalyticsTimeRangeTemplate.propTypes = {\r\n analyticsTimeRangeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(AnalyticsTimeRangeTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { LineChart } from \"common/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { AnalyticsGraphLoader } from \"administration/analytics/components\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction DeviceActivitySummaryTemplate({ deviceActivitySummaryViewStore, t }) {\r\n const {\r\n deviceActivityChartStore,\r\n rootStore: { routerStore },\r\n } = deviceActivitySummaryViewStore;\r\n\r\n return (\r\n
    \r\n \r\n Active devices\r\n \r\n \r\n
    \r\n } />\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nDeviceActivitySummaryTemplate.propTypes = {\r\n deviceActivitySummaryViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(DeviceActivitySummaryTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\nimport { map } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { TopTrendingEmptyState, TopTrendingListLoader, TrendingIndicator } from \"administration/analytics/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { MrbRadioButtons } from \"baasic-react-bootstrap/src\";\r\n\r\nfunction TopTrendingPodcastsTemplate({ topTrendingPodcastsViewStore, t }) {\r\n const {\r\n data,\r\n loaderStore,\r\n filterOptions,\r\n selectedFilterOption,\r\n setFilterOption,\r\n rootStore: { routerStore },\r\n } = topTrendingPodcastsViewStore;\r\n\r\n return (\r\n
    \r\n \r\n Top 10 trending podcasts\r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n }>\r\n {() => (\r\n
    \r\n {data && data.length > 0 ? (\r\n
    \r\n {map(data, (item) => (\r\n
    \r\n
    \r\n \r\n \r\n {item.currentCyclePosition}.\r\n \r\n {item.podcast ? (\r\n \r\n {item.podcast.title}\r\n \r\n ) : (\r\n Unknown podcast\r\n )}\r\n \r\n
    \r\n

    \r\n {numberFormatter.format(item.currentCycleScore)}\r\n

    \r\n
    \r\n ))}\r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n )}\r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nTopTrendingPodcastsTemplate.propTypes = {\r\n topTrendingPodcastsViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(TopTrendingPodcastsTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\nimport { map } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { TopTrendingEmptyState, TopTrendingListLoader, TrendingIndicator } from \"administration/analytics/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { MrbRadioButtons } from \"baasic-react-bootstrap/src\";\r\nfunction TopTrendingStationsTemplate({ topTrendingStationsViewStore, t }) {\r\n const {\r\n data,\r\n loaderStore,\r\n filterOptions,\r\n selectedFilterOption,\r\n setFilterOption,\r\n rootStore: { routerStore },\r\n } = topTrendingStationsViewStore;\r\n\r\n return (\r\n
    \r\n \r\n Top 10 trending stations\r\n \r\n \r\n
    \r\n \r\n
    \r\n {/*

    Top 10 trending stations

    */}\r\n
    \r\n }>\r\n {() => (\r\n
    \r\n {data && data.length > 0 ? (\r\n
    \r\n {map(data, (item) => (\r\n
    \r\n
    \r\n \r\n \r\n {item.currentCyclePosition}.\r\n \r\n {item.station ? (\r\n \r\n {item.station.title}\r\n \r\n ) : (\r\n Unknown station\r\n )}\r\n \r\n
    \r\n

    \r\n {numberFormatter.format(item.currentCycleScore)}\r\n

    \r\n
    \r\n ))}\r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n )}\r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nTopTrendingStationsTemplate.propTypes = {\r\n topTrendingStationsViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(TopTrendingStationsTemplate);\r\n","import React from 'react'\r\n\r\nconst DeviceActivityEmptyStateTemplate = () => {\r\n return (\r\n
    \r\n \r\n

    No results found

    \r\n

    Try adjusting your search to find what you are looking for.

    \r\n
    \r\n )\r\n}\r\n\r\nexport default DeviceActivityEmptyStateTemplate\r\n","import React from \"react\";\r\n\r\nconst TopTrendingEmptyStateTemplate = () => {\r\n return (\r\n
    \r\n \r\n

    No trending list

    \r\n

    Try adjusting your search to find what you are looking for.

    \r\n
    \r\n );\r\n};\r\n\r\nexport default TopTrendingEmptyStateTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { TrendingIndicator } from \"administration/analytics/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { Image } from \"common/components\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction TrendingListItemTemplate({ item }) {\r\n return (\r\n
    \r\n
    \r\n {item.currentCyclePosition}.\r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {item.routeParams ? (\r\n \r\n {item.title}\r\n \r\n ) : (\r\n {item.title || \"Unknown\"}\r\n )}\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n \r\n {isNil(item.previousCyclePosition) ? \"Unlisted\" : item.previousCyclePosition}\r\n \r\n PP\r\n
    \r\n\r\n
    \r\n

    {numberFormatter.format(item.score)}

    \r\n P\r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nTrendingListItemTemplate.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default TrendingListItemTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { AnalyticsCounter, AnalyticsStatsLoader } from \"administration/analytics/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\n\r\nfunction PortalUserDeviceTemplate({ portalViewStore, t }) {\r\n const {\r\n data,\r\n loaderStore,\r\n rootStore: { routerStore },\r\n } = portalViewStore;\r\n\r\n return (\r\n
    \r\n

    Users & Devices

    \r\n
    \r\n }>\r\n {() => (\r\n \r\n {data && (\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    \r\n Premium users\r\n \r\n

    \r\n

    \r\n {numberFormatter.format(data.subscriptions.total)}\r\n

    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    \r\n Registered devices\r\n \r\n

    \r\n

    \r\n {numberFormatter.format(data.registeredUserDevices.total)}{\" \"}\r\n

    \r\n
    \r\n\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n

    \r\n Portal users\r\n \r\n

    \r\n

    \r\n {numberFormatter.format(data.registeredUsers.total)}\r\n

    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nPortalUserDeviceTemplate.propTypes = {\r\n portalViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(PortalUserDeviceTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\nimport {\r\n AnalyticsCounter,\r\n AnalyticsStatsLoader,\r\n PercentageIncreaseDonutChart,\r\n} from \"administration/analytics/components\";\r\nimport { calculatePercantageIncrease, numberFormatter } from \"common/utils\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { timeRangeType } from \"administration/analytics/constants\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\n\r\nfunction PortalNewDevicesTemplate({ portalViewStore, t }) {\r\n const {\r\n data,\r\n loaderStore,\r\n rootStore: { routerStore },\r\n } = portalViewStore;\r\n\r\n return (\r\n
    \r\n \r\n Connected devices\r\n \r\n \r\n
    \r\n }>\r\n {() => (\r\n \r\n {data && (\r\n \r\n
    \r\n }\r\n />\r\n

    \r\n Total of{\" \"}\r\n \r\n {numberFormatter.format(data.connectedDevices.total)}\r\n {\" \"}\r\n devices\r\n

    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nPortalNewDevicesTemplate.propTypes = {\r\n portalViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction TimeRangeLabel({ filteredBy }) {\r\n if (filteredBy.range === timeRangeType.today) {\r\n return \"new devics today\";\r\n } else if (filteredBy.range === timeRangeType.yesterday) {\r\n return \"new devices yesterday\";\r\n } else if (filteredBy.range === timeRangeType.last3Days) {\r\n return \"new devices in the last 3 days\";\r\n } else if (filteredBy.range === timeRangeType.thisWeek) {\r\n return \"new devices this week\";\r\n } else if (filteredBy.range === timeRangeType.lastWeek) {\r\n return \"new devices in the last week\";\r\n } else if (filteredBy.range === timeRangeType.thisMonth) {\r\n return \"new devices this month\";\r\n } else if (filteredBy.range === timeRangeType.lastMonth) {\r\n return \"new devices in the last month\";\r\n } else {\r\n const fromDate = dateFormatter.format(filteredBy.from, {\r\n format: applicationDefaults.formats.date,\r\n timeZone: filteredBy.timeZone,\r\n });\r\n const toDate = dateFormatter.format(filteredBy.to, {\r\n format: applicationDefaults.formats.date,\r\n timeZone: filteredBy.timeZone,\r\n });\r\n return `new devices ${fromDate} - ${toDate}`;\r\n }\r\n}\r\n\r\nexport default observer(PortalNewDevicesTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { AnalyticsLayout } from \"administration/analytics/layouts\";\r\nimport {\r\n AnalyticsCounter,\r\n AnalyticsGraphLoader,\r\n PercentageIncreaseDonutChart,\r\n PortalDetailedActivityLoader,\r\n} from \"administration/analytics/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { calculatePercantageIncrease, numberFormatter } from \"common/utils\";\r\nimport { LineChart } from \"common/components\";\r\nimport { timeRangeLabelParser } from \"administration/analytics/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction PortalDetailedActivityTemplate({ store, activityLabel, totalLabel, nameFieldRenderer, t }) {\r\n const { analyticsTimeRangeViewStore, chartStore } = store;\r\n return (\r\n \r\n
    \r\n
    \r\n

    {activityLabel || \"Activity\"}

    \r\n
    \r\n } />\r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nPortalDetailedActivityTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n nameFieldRenderer: PropTypes.func,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst Summary = observer(function Summary({ store, totalLabel, nameFieldRenderer }) {\r\n const { summaryData, loaderStore } = store;\r\n\r\n return (\r\n
    \r\n

    Summary

    \r\n }>\r\n {() => (\r\n
    \r\n {summaryData && (\r\n
    \r\n {nameFieldRenderer && (\r\n
    {nameFieldRenderer({ summaryData })}
    \r\n )}\r\n
    \r\n
    \r\n
    \r\n

    {totalLabel || \"Total\"}

    \r\n

    {numberFormatter.format(summaryData.total)}

    \r\n
    \r\n
    \r\n

    \r\n {timeRangeLabelParser.createCurrentCycleLabel(\r\n summaryData.filteredBy.range,\r\n summaryData.filteredBy.from,\r\n summaryData.filteredBy.to,\r\n summaryData.filteredBy.timeZone\r\n )}\r\n

    \r\n

    {numberFormatter.format(summaryData.currentCycleTotal)}

    \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n {timeRangeLabelParser.createPreviousCycleLabel(\r\n summaryData.filteredBy.range,\r\n summaryData.filteredBy.previousCycleFrom,\r\n summaryData.filteredBy.previousCycleTo,\r\n summaryData.filteredBy.timeZone\r\n )}{\" \"}\r\n (Previous period)\r\n

    \r\n

    {numberFormatter.format(summaryData.previousCycleTotal)}

    \r\n
    \r\n \r\n
    \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n});\r\n\r\nexport default observer(PortalDetailedActivityTemplate);\r\n","import React from \"react\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nfunction PercentageIncreaseDonutChartTemplate(props) {\r\n const { value, chartSize } = props;\r\n const graphValue = Math.abs(value);\r\n const sign = Math.sign(value);\r\n\r\n return (\r\n
    \r\n \r\n = 0 ? \"#99ceff\" : \"#cf6679\"}`}\r\n strokeWidth=\"1.5\"\r\n >\r\n\r\n = 0 ? \"#339dff\" : \"#cf6679\"}`}\r\n strokeWidth=\"5\"\r\n strokeDasharray={`${graphValue} ${100 - graphValue}`}\r\n strokeDashoffset=\"25\"\r\n >\r\n\r\n \r\n \r\n {numberFormatter.format(value)}%\r\n \r\n \r\n {sign >= 0 ? \"increase\" : \"decrease\"}\r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default PercentageIncreaseDonutChartTemplate;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPageContentHeader } from \"mrb/components/layout\";\r\nimport { MrbGrid } from \"mrb/components/grid\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport { ContentStatsListLoader, PodcastListenersCell } from \"administration/analytics/components\";\r\n\r\nfunction PodcastListenersListTemplate({ podcastListenersListViewStore, t }) {\r\n const { gridStore } = podcastListenersListViewStore;\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Position\r\n \r\n Title\r\n \r\n # of Devices\r\n
    \r\n }\r\n cellRender={(props) => }\r\n />\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nPodcastListenersListTemplate.propTypes = {\r\n podcastListenersListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(PodcastListenersListTemplate);\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPageContentHeader } from \"mrb/components/layout\";\r\nimport { MrbGrid } from \"mrb/components/grid\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport { ContentStatsListLoader, NakiNigunListenersCell } from \"administration/analytics/components\";\r\n\r\nfunction NakiNigunListTemplate({ nakiNigunListenersListViewStore, t }) {\r\n const { gridStore } = nakiNigunListenersListViewStore;\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Position\r\n \r\n Title\r\n \r\n # of Devices\r\n
    \r\n }\r\n cellRender={(props) => }\r\n />\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nNakiNigunListTemplate.propTypes = {\r\n nakiNigunListenersListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(NakiNigunListTemplate);\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPageContentHeader } from \"mrb/components/layout\";\r\nimport { MrbGrid } from \"mrb/components/grid\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport { ContentStatsListLoader, StationListenersCell } from \"administration/analytics/components\";\r\n\r\nfunction StationListenersListTemplate({ stationListenersListViewStore, t }) {\r\n const { gridStore } = stationListenersListViewStore;\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n Position\r\n \r\n Title\r\n \r\n # of Devices\r\n
    \r\n }\r\n cellRender={(props) => }\r\n />\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nStationListenersListTemplate.propTypes = {\r\n stationListenersListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(StationListenersListTemplate);\r\n","import React from \"react\";\r\nimport { Image } from \"common/components\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction PodcastListenersCellTemplate({ item }) {\r\n return (\r\n
    \r\n
    \r\n {item.position}.\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n {isNil(item.podcastGroupId) ? (\r\n
    \r\n \r\n {item.title}\r\n \r\n {item.isPremium ? : null}\r\n
    \r\n ) : (\r\n
    \r\n
    \r\n \r\n {item.title}\r\n \r\n {item.isPremium ? (\r\n \r\n ) : null}\r\n
    \r\n
    {item.podcastGroupTitle}
    \r\n
    \r\n )}\r\n
    \r\n\r\n
    {numberFormatter.format(item.total)}
    \r\n
    \r\n );\r\n}\r\n\r\nexport default PodcastListenersCellTemplate;\r\n","import React from \"react\";\r\nimport { Image } from \"common/components\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\n\r\nfunction StationListenersCellTemplate({ item }) {\r\n return (\r\n
    \r\n
    \r\n {item.position}.\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n {item.title}\r\n \r\n {item.isPremium ? : null}\r\n
    \r\n
    \r\n\r\n
    {numberFormatter.format(item.total)}
    \r\n
    \r\n );\r\n}\r\n\r\nexport default StationListenersCellTemplate;\r\n","import React from \"react\";\r\nimport { Image } from \"common/components\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\n\r\nfunction NakiNigunListenersCellTemplate({ item }) {\r\n return (\r\n
    \r\n
    \r\n {item.position}.\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n \r\n {item.title}\r\n \r\n {item.isPremium ? : null}\r\n
    \r\n
    {item.artistName}
    \r\n
    \r\n
    \r\n
    {numberFormatter.format(item.total)}
    \r\n
    \r\n );\r\n}\r\n\r\nexport default NakiNigunListenersCellTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\nimport { map } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { TopTrendingEmptyState, TopTrendingListLoader, TrendingIndicator } from \"administration/analytics/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { MrbRadioButtons } from \"baasic-react-bootstrap/src\";\r\n\r\nfunction TopTrendingNakiNigunAlbumsTemplate({ topTrendingNakiNigunAlbumsViewStore, t }) {\r\n const {\r\n data,\r\n loaderStore,\r\n filterOptions,\r\n selectedFilterOption,\r\n setFilterOption,\r\n rootStore: { routerStore },\r\n } = topTrendingNakiNigunAlbumsViewStore;\r\n\r\n return (\r\n
    \r\n \r\n Top 10 trending albums\r\n \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n }>\r\n {() => (\r\n
    \r\n {data && data.length > 0 ? (\r\n
    \r\n {map(data, (item) => (\r\n
    \r\n
    \r\n \r\n \r\n {item.currentCyclePosition}.\r\n \r\n {item.nakiNigunAlbum ? (\r\n \r\n {item.nakiNigunAlbum.title}\r\n \r\n ) : (\r\n Unknown album\r\n )}\r\n \r\n
    \r\n

    \r\n {numberFormatter.format(item.currentCycleScore)}\r\n

    \r\n
    \r\n ))}\r\n
    \r\n ) : (\r\n \r\n )}\r\n
    \r\n )}\r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nTopTrendingNakiNigunAlbumsTemplate.propTypes = {\r\n topTrendingNakiNigunAlbumsViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(TopTrendingNakiNigunAlbumsTemplate);\r\n","import React from \"react\";\r\nimport { DeviceHardwareCellTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction DeviceHardwareCell(props) {\r\n return ;\r\n}\r\n\r\nexport default DeviceHardwareCell;\r\n","import React from \"react\";\r\nimport { UserDeviceActivityContentCellTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction UserDeviceActivityContentCell(props) {\r\n return ;\r\n}\r\n\r\nexport default UserDeviceActivityContentCell;\r\n","import React from \"react\";\r\nimport { UserPayoutEventListContentCellTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction UserPayoutEventListContentCell(props) {\r\n return ;\r\n}\r\n\r\nexport default UserPayoutEventListContentCell;\r\n","import React from \"react\";\r\nimport { TopTrendingListLoaderTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction TopTrendingListLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default TopTrendingListLoader;\r\n","import React from \"react\";\r\nimport { AnalyticsGraphLoaderTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction AnalyticsGraphLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default AnalyticsGraphLoader;\r\n","import React from \"react\";\r\nimport { TopTrendingListViewMoreLoaderTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction TopTrendingListViewMoreLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default TopTrendingListViewMoreLoader;\r\n","import React from \"react\";\r\nimport { AnalyticsStatsLoaderTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction AnalyticsStatsLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default AnalyticsStatsLoader;\r\n","import React from \"react\";\r\nimport { PortalDetailedActivityLoaderTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction PortalDetailedActivityLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default PortalDetailedActivityLoader;\r\n","import React from \"react\";\r\nimport { StatsWidgetLoaderTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction StatsWidgetLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default StatsWidgetLoader;\r\n","import React from \"react\";\r\nimport { AnalyticsPremiumListLoaderTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction AnalyticsPremiumListLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default AnalyticsPremiumListLoader;\r\n","import React from \"react\";\r\nimport { ContentStatsListLoaderTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction ContentStatsListLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ContentStatsListLoader;\r\n","import React from \"react\";\r\nimport { UserAccountSummaryLoaderTemplate } from \"themes/administration/analytics/components\";\r\n\r\nclass UserAccountSummaryLoader extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserAccountSummaryLoader;\r\n","import React from \"react\";\r\nimport { UserDeviceActivitySummaryLoaderTemplate } from \"themes/administration/analytics/components\";\r\n\r\nclass UserDeviceActivitySummaryLoader extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserDeviceActivitySummaryLoader;\r\n","import React from \"react\";\r\nimport { UserAccountSummaryTemplate } from \"themes/administration/analytics/components\";\r\n\r\nclass UserAccountSummary extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserAccountSummary;\r\n","import React from \"react\";\r\nimport { UserContentListSummaryTemplate } from \"themes/administration/analytics/components\";\r\n\r\nclass UserContentListSummary extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserContentListSummary;\r\n","import React from \"react\";\r\nimport { UserDeviceActivitySummaryTemplate } from \"themes/administration/analytics/components\";\r\n\r\nclass UserDeviceActivitySummary extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserDeviceActivitySummary;\r\n","import React from \"react\";\r\nimport { AnalyticsCounterTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction AnalyticsCounter(props) {\r\n return ;\r\n}\r\n\r\nexport default AnalyticsCounter;\r\n","import React from \"react\";\r\nimport { TrendingIndicatorTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction TrendingIndicator(props) {\r\n return ;\r\n}\r\n\r\nexport default TrendingIndicator;\r\n","import React from \"react\";\r\nimport { StatsWidgetTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction StatsWidget(props) {\r\n return ;\r\n}\r\n\r\nexport default StatsWidget;\r\n","import React from \"react\";\r\nimport { AnalyticsTimeRangeTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction AnalyticsTimeRange(props) {\r\n return ;\r\n}\r\n\r\nexport default AnalyticsTimeRange;\r\n","import React from \"react\";\r\nimport { DeviceActivitySummaryTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction DeviceActivitySummary(props) {\r\n return ;\r\n}\r\n\r\nexport default DeviceActivitySummary;\r\n","import React from \"react\";\r\nimport { TopTrendingPodcastsTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction TopTrendingPodcasts(props) {\r\n return ;\r\n}\r\n\r\nexport default TopTrendingPodcasts;\r\n","import React from \"react\";\r\nimport { TopTrendingStationsTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction TopTrendingStations(props) {\r\n return ;\r\n}\r\n\r\nexport default TopTrendingStations;\r\n","import React from \"react\";\r\nimport { DeviceActivityEmptyStateTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction DeviceActivityEmptyState(props) {\r\n return ;\r\n}\r\n\r\nexport default DeviceActivityEmptyState;\r\n","import React from \"react\";\r\nimport { TopTrendingEmptyStateTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction TopTrendingEmptyState(props) {\r\n return ;\r\n}\r\n\r\nexport default TopTrendingEmptyState;\r\n","import React from \"react\";\r\nimport { TrendingListItemTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction TrendingListItem(props) {\r\n return ;\r\n}\r\n\r\nexport default TrendingListItem;\r\n","import React from \"react\";\r\nimport { PortalUserDeviceTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction PortalUserDevice(props) {\r\n return ;\r\n}\r\n\r\nexport default PortalUserDevice;","import React from \"react\";\r\nimport { PortalNewDevicesTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction PortalNewDevices(props) {\r\n return ;\r\n}\r\n\r\nexport default PortalNewDevices;","import React from \"react\";\r\nimport { PortalDetailedActivityTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction PortalDetailedActivity(props) {\r\n return ;\r\n}\r\n\r\nexport default PortalDetailedActivity;\r\n","import React from \"react\";\r\nimport { PercentageIncreaseDonutChartTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction PercentageIncreaseDonutChart(props) {\r\n return ;\r\n}\r\n\r\nexport default PercentageIncreaseDonutChart;\r\n","import React from \"react\";\r\nimport { PodcastListenersListTemplate } from \"themes/administration/analytics/components\";\r\nimport { PodcastListenersListViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { observer } from \"mobx-react\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new PodcastListenersListViewStore(rootStore, componentProps),\r\n \"podcastListenersListViewStore\"\r\n)\r\n@observer\r\nclass PodcastListenersList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastListenersList;\r\n","import React from \"react\";\r\nimport { StationListenersListTemplate } from \"themes/administration/analytics/components\";\r\nimport { StationListenersListViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { observer } from \"mobx-react\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new StationListenersListViewStore(rootStore, componentProps),\r\n \"stationListenersListViewStore\"\r\n)\r\n@observer\r\nclass StationListenersList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default StationListenersList;\r\n","import React from \"react\";\r\nimport { NakiNigunListenersListTemplate } from \"themes/administration/analytics/components\";\r\nimport { NakiNigunListenersListViewStore } from \"administration/analytics/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { observer } from \"mobx-react\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new NakiNigunListenersListViewStore(rootStore, componentProps),\r\n \"nakiNigunListenersListViewStore\"\r\n)\r\n@observer\r\nclass NakiNigunListenersList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunListenersList;\r\n","import React from \"react\";\r\nimport { PodcastListenersCellTemplate } from \"themes/administration/analytics/components\";\r\n\r\nclass PodcastListenersCell extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PodcastListenersCell;\r\n","import React from \"react\";\r\nimport { StationListenersCellTemplate } from \"themes/administration/analytics/components\";\r\n\r\nclass StationListenersCell extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default StationListenersCell;\r\n","import React from \"react\";\r\nimport { NakiNigunListenersCellTemplate } from \"themes/administration/analytics/components\";\r\n\r\nclass NakiNigunListenersCell extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default NakiNigunListenersCell;\r\n","import React from \"react\";\r\nimport { TopTrendingNakiNigunAlbumsTemplate } from \"themes/administration/analytics/components\";\r\n\r\nfunction TopTrendingNakiNigunAlbums(props) {\r\n return ;\r\n}\r\n\r\nexport default TopTrendingNakiNigunAlbums;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { RouterContext } from \"mobx-state-router\";\r\nimport { ApplicationRouterView } from \"./infrastructure/router\";\r\nimport { RootContext } from \"./contexts\";\r\nimport { isNil, isBoolean, isFunction } from \"lodash\";\r\n\r\n@observer\r\nclass MrbApp extends React.Component {\r\n async componentDidMount() {\r\n await this.props.rootStore.applicationStartupStore.initialize();\r\n }\r\n\r\n render() {\r\n const { applicationStartupStore, routerStore } = this.props.rootStore;\r\n if (\r\n !applicationStartupStore.isInitialized ||\r\n (isBoolean(this.props.suspendRendering) && this.props.suspendRendering)\r\n ) {\r\n if (!isNil(this.props.loaderRenderer) && isFunction(this.props.loaderRenderer)) {\r\n return this.props.loaderRenderer();\r\n }\r\n return
    Application is loading
    ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n}\r\n\r\nexport default MrbApp;\r\n","import { observe, reaction } from \"mobx\";\r\nimport { each, isFunction } from \"lodash\";\r\nimport { MrbContentLoaderStore } from \"../../../components/loader\";\r\n\r\nclass MrbBaseViewStore {\r\n observeDisposers = [];\r\n eventDisposers = [];\r\n reactDisposers = [];\r\n\r\n loaderStore = null;\r\n\r\n constructor(rootStore) {\r\n this.rootStore = rootStore;\r\n this.loaderStore = new MrbContentLoaderStore();\r\n }\r\n\r\n onInit() {\r\n return Promise.resolve();\r\n }\r\n\r\n async initialize() {\r\n this.loaderStore.suspend();\r\n await this.onInit();\r\n this.loaderStore.resume();\r\n }\r\n\r\n observe(target, propertyName = null, listener) {\r\n const disposer = observe(target, propertyName, listener);\r\n this.observeDisposers.push(disposer);\r\n }\r\n\r\n reaction(target, listener, options = {}) {\r\n const disposer = reaction(target, listener, options);\r\n this.reactDisposers.push(disposer);\r\n return disposer;\r\n }\r\n\r\n addEvent(eventName, func) {\r\n const disposer = this.rootStore.eventHandler.addEvent(eventName, func);\r\n this.eventDisposers.push(disposer);\r\n return disposer;\r\n }\r\n\r\n onDestroy() {}\r\n\r\n destroy() {\r\n this.loaderStore.destroy();\r\n this.onDestroy();\r\n each(\r\n this.observeDisposers,\r\n (disposer) => isFunction(disposer) && disposer()\r\n );\r\n each(\r\n this.eventDisposers,\r\n (disposer) => isFunction(disposer) && disposer()\r\n );\r\n each(\r\n this.reactDisposers,\r\n (disposer) => isFunction(disposer) && disposer()\r\n );\r\n }\r\n}\r\n\r\nexport default MrbBaseViewStore;\r\n","import { action, observable, observe, reaction } from \"mobx\";\r\nimport { each, isFunction } from \"lodash\";\r\n\r\nclass MrbBaseRouteStore {\r\n observeDisposers = [];\r\n reactDisposers = [];\r\n\r\n @observable isRouteExitBlocked = observable.box(false);\r\n\r\n constructor(rootStore, parentRouteStore) {\r\n this.rootStore = rootStore;\r\n this.parentRouteStore = parentRouteStore;\r\n }\r\n\r\n @action.bound\r\n onBeforeEnter() {\r\n return Promise.resolve();\r\n }\r\n\r\n @action.bound\r\n onEnter() {\r\n return Promise.resolve();\r\n }\r\n\r\n @action.bound\r\n onBeforeExit() {\r\n return this._resolveRouteExitBlocking();\r\n }\r\n\r\n @action.bound\r\n onExit() {\r\n each(\r\n this.observeDisposers,\r\n (disposer) => isFunction(disposer) && disposer()\r\n );\r\n each(\r\n this.reactDisposers,\r\n (disposer) => isFunction(disposer) && disposer()\r\n );\r\n return Promise.resolve();\r\n }\r\n\r\n @action.bound\r\n setIsRouteExitBlocked(value) {\r\n this.isRouteExitBlocked.set(value);\r\n }\r\n\r\n _resolveRouteExitBlocking() {\r\n if (this.isRouteExitBlocked.get()) {\r\n return new Promise((resolve, reject) => {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Do you want to leave page?\",\r\n description: \"Any unsaved change will be lost.\",\r\n yesLabel: \"Leave page\",\r\n onConfirm: () => {\r\n resolve();\r\n return Promise.resolve();\r\n },\r\n onCancel: () => {\r\n reject();\r\n return Promise.resolve();\r\n },\r\n noLabel: \"Cancel\",\r\n });\r\n });\r\n }\r\n }\r\n\r\n observe(target, propertyName = null, listener) {\r\n const disposer = observe(target, propertyName, listener);\r\n this.observeDisposers.push(disposer);\r\n }\r\n\r\n react(target, listener, options = {}) {\r\n const disposer = reaction(target, listener, options);\r\n this.reactDisposers.push(disposer);\r\n return disposer;\r\n }\r\n}\r\n\r\nexport default MrbBaseRouteStore;\r\n","import { MrbBaseViewStore } from \"./\";\r\nimport { action, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { httpStatusCodes } from \"../../constants\";\r\nimport { isBoolean, isFunction, isNil, isUndefined, isString, isEmpty } from \"lodash\";\r\nimport MobxReactFormDevTools from \"mobx-react-form-devtools\";\r\n\r\nclass MrbBaseEditViewStore extends MrbBaseViewStore {\r\n id = null;\r\n name = null;\r\n form = null;\r\n\r\n @observable item = null;\r\n\r\n get isEdit() {\r\n return !isNil(this.id) && !isUndefined(this.id);\r\n }\r\n\r\n constructor(\r\n rootStore,\r\n {\r\n id,\r\n name,\r\n title,\r\n form,\r\n FormClass,\r\n redirectOnCreateSuccess = true,\r\n redirectOnUpdateSuccess = true,\r\n successCreateNotification,\r\n successUpdateNotification,\r\n autoFocusField = null,\r\n navigateBack = null,\r\n }\r\n ) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.id = id;\r\n this.name = name;\r\n this.title = title;\r\n this.redirectOnCreateSuccess = redirectOnCreateSuccess;\r\n this.redirectOnUpdateSuccess = redirectOnUpdateSuccess;\r\n this.successCreateNotification = successCreateNotification;\r\n this.successUpdateNotification = successUpdateNotification;\r\n this.navigateBack = this._createNavigateBackAction(navigateBack);\r\n\r\n this.form =\r\n form ||\r\n new FormClass({\r\n onSuccess: (form) => {\r\n const item = form.values();\r\n if (this.isEdit) {\r\n return this.updateResource(item);\r\n } else {\r\n return this.createResource(item);\r\n }\r\n },\r\n onInit: (form) => {\r\n if (autoFocusField) {\r\n form.$(autoFocusField).focus();\r\n }\r\n },\r\n });\r\n\r\n if (process.env.NODE_ENV === \"development\") {\r\n MobxReactFormDevTools.register({ [this.name]: this.form });\r\n MobxReactFormDevTools.select(this.name);\r\n }\r\n\r\n this.onClickCancel = this.onClickCancel.bind(this);\r\n }\r\n\r\n onInit() {\r\n return this.initializeResource();\r\n }\r\n\r\n async initializeResource() {\r\n if (this.id) {\r\n try {\r\n await this.getResource(this.id);\r\n return true;\r\n } catch (err) {\r\n if (err.statusCode === httpStatusCodes.NotFound) {\r\n await this.rootStore.routerStore.goToNotFound();\r\n return false;\r\n } else {\r\n throw err;\r\n }\r\n }\r\n } else {\r\n this.resetForm();\r\n }\r\n }\r\n\r\n @action.bound\r\n resetForm() {\r\n this.form.clear();\r\n }\r\n\r\n @action.bound\r\n async createResource(data) {\r\n this.form.setFieldsDisabled(true);\r\n try {\r\n const result = await this.create(data);\r\n this.form.setFieldsDisabled(false);\r\n this.onCreateSuccess(result);\r\n } catch (err) {\r\n this.form.setFieldsDisabled(false);\r\n this.onCreateError(err);\r\n }\r\n }\r\n\r\n @action.bound\r\n async updateResource(data) {\r\n this.form.setFieldsDisabled(true);\r\n try {\r\n const result = await this.update({ id: this.id, ...data });\r\n this.form.setFieldsDisabled(false);\r\n this.onUpdateSuccess(result);\r\n } catch (err) {\r\n this.form.setFieldsDisabled(false);\r\n this.onUpdateError(err);\r\n }\r\n }\r\n\r\n get(id) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n create(data) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n update(data) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n async getResource(id) {\r\n const item = await this.get(id);\r\n runInAction(() => {\r\n this.setItem(item);\r\n this.updateForm(item);\r\n });\r\n }\r\n\r\n @action.bound\r\n setItem(item) {\r\n this.item = item;\r\n }\r\n\r\n @action.bound\r\n updateForm(values) {\r\n this.form.set(values);\r\n }\r\n\r\n @action.bound\r\n onCreateSuccess(result) {\r\n this.notifySuccessCreate();\r\n\r\n if (isBoolean(this.redirectOnCreateSuccess) && this.redirectOnCreateSuccess) {\r\n this.rootStore.routerStore.goBack();\r\n } else if (isFunction(this.redirectOnCreateSuccess)) {\r\n this.redirectOnCreateSuccess(result);\r\n }\r\n }\r\n\r\n @action.bound\r\n onUpdateSuccess(result) {\r\n this.notifySuccessUpdate();\r\n\r\n if (isBoolean(this.redirectOnUpdateSuccess) && this.redirectOnUpdateSuccess) {\r\n this.rootStore.routerStore.goBack();\r\n } else if (isFunction(this.redirectOnUpdateSuccess)) {\r\n this.redirectOnUpdateSuccess(result);\r\n }\r\n }\r\n\r\n notifySuccessCreate() {\r\n if (isString(this.successCreateNotification) && !isEmpty(this.successCreateNotification)) {\r\n this.rootStore.notificationStore.success(this.successCreateNotification);\r\n }\r\n }\r\n\r\n notifySuccessUpdate() {\r\n if (isString(this.successUpdateNotification) && !isEmpty(this.successUpdateNotification)) {\r\n this.rootStore.notificationStore.success(this.successUpdateNotification);\r\n }\r\n }\r\n\r\n onCreateError(error) {\r\n throw error;\r\n }\r\n\r\n onUpdateError(error) {\r\n throw error;\r\n }\r\n\r\n onClickCancel() {\r\n this.rootStore.routerStore.goBack();\r\n }\r\n\r\n _createNavigateBackAction(action) {\r\n if (action && isString(action)) {\r\n const route = this.rootStore.routerStore.getRoute(action);\r\n if (route && (!route.authorization || this.rootStore.userStore.hasPermission(route.authorization))) {\r\n return {\r\n title: route.data ? route.data.title : \"Back\",\r\n routeName: route.name,\r\n };\r\n }\r\n }\r\n }\r\n\r\n destroy() {\r\n super.destroy();\r\n this.form.destroy();\r\n }\r\n}\r\n\r\nexport default MrbBaseEditViewStore;\r\n","import { action, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbQueryUtility } from \"../../filter\";\r\nimport { MrbBaseViewStore } from \"./\";\r\nimport { forEach, isString } from \"lodash\";\r\n\r\nclass MrbBaseListViewStore extends MrbBaseViewStore {\r\n @observable isReady = observable.box(false);\r\n @observable.ref gridStore = null;\r\n queryUtility = null;\r\n layoutActions = null;\r\n\r\n constructor(rootStore, { layoutActions, queryConfig, navigateBack }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n\r\n this.layoutActions = this._filterActionsWithPermission(layoutActions);\r\n this.navigateBack = this._createNavigateBackAction(navigateBack);\r\n\r\n const route = this.rootStore.routerStore.getCurrentRoute();\r\n if (route && route.data && route.data.title) {\r\n this.title = route.data.title;\r\n }\r\n\r\n this.queryUtility = new MrbQueryUtility(\r\n this.rootStore,\r\n async (filter) => {\r\n this.fetchResources(filter);\r\n },\r\n queryConfig || {}\r\n );\r\n\r\n this.fetchResources = this.fetchResources.bind(this);\r\n }\r\n\r\n async fetchResources(filter) {\r\n this.gridStore.suspend();\r\n try {\r\n const response = await this.find(filter);\r\n runInAction(() => {\r\n this.gridStore.setData(response);\r\n this.gridStore.resume();\r\n });\r\n } catch (err) {\r\n this.gridStore.resume();\r\n this.onFetchError(err);\r\n }\r\n }\r\n\r\n find(params) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n _filterActionsWithPermission(actions) {\r\n const result = {};\r\n forEach(actions, (action, key) => {\r\n if (!action.authorization || this.rootStore.userStore.hasPermission(action.authorization)) {\r\n result[key] = action;\r\n }\r\n });\r\n return result;\r\n }\r\n\r\n _createNavigateBackAction(action) {\r\n if (action && isString(action)) {\r\n const route = this.rootStore.routerStore.getRoute(action);\r\n if (route && (!route.authorization || this.rootStore.userStore.hasPermission(route.authorization))) {\r\n return {\r\n title: route.data ? route.data.title : \"Back\",\r\n routeName: route.name,\r\n };\r\n }\r\n }\r\n }\r\n\r\n onInit() {\r\n return this.queryUtility.initialize();\r\n }\r\n\r\n @action.bound\r\n setGridStore(gridStore) {\r\n this.gridStore = gridStore;\r\n }\r\n\r\n onFetchError(error) {\r\n throw error;\r\n }\r\n\r\n onDestroy() {\r\n this.gridStore.destroy();\r\n }\r\n}\r\n\r\nexport default MrbBaseListViewStore;\r\n","import { runInAction } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"./\";\r\n\r\nclass MrbBaseInfiniteScrollListViewStore extends MrbBaseListViewStore {\r\n async fetchResources(filter) {\r\n // Display grid (Skeleton loader) only during the first page load, and in other cases, during loading more data on scroll event,\r\n // display only top bar loader (mainLoaderStore)\r\n const isFirstPageLoad = filter.pageNumber === 1;\r\n if (isFirstPageLoad) {\r\n this.gridStore.suspend();\r\n } else {\r\n this.rootStore.mainLoaderStore.suspend();\r\n }\r\n try {\r\n const response = await this.find(filter);\r\n runInAction(() => {\r\n this.gridStore.setData(response);\r\n if (isFirstPageLoad) {\r\n this.gridStore.resume();\r\n } else {\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n });\r\n } catch (err) {\r\n if (isFirstPageLoad) {\r\n this.gridStore.resume();\r\n } else {\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n this.onFetchError(err);\r\n }\r\n }\r\n}\r\n\r\nexport default MrbBaseInfiniteScrollListViewStore;\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"./\";\r\nimport { httpStatusCodes } from \"../../constants\";\r\nimport { forEach, isString } from \"lodash\";\r\n\r\nclass MrbBasePreviewViewStore extends MrbBaseViewStore {\r\n @observable item = null;\r\n\r\n constructor(rootStore, { id, navigateBack, layoutActions = {} }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n\r\n this.id = id;\r\n this.layoutActions = this._filterActionsWithPermission(layoutActions);\r\n this.navigateBack = this._createNavigateBackAction(navigateBack);\r\n }\r\n\r\n onInit() {\r\n return this.initializeResource();\r\n }\r\n\r\n get(id) {\r\n throw new Error(\"Not implemented.\");\r\n }\r\n\r\n async initializeResource() {\r\n if (this.id) {\r\n try {\r\n await this.getResource(this.id);\r\n return true;\r\n } catch (err) {\r\n if (err.statusCode === httpStatusCodes.NotFound) {\r\n await this.rootStore.routerStore.goToNotFound();\r\n return false;\r\n } else {\r\n throw err;\r\n }\r\n }\r\n }\r\n }\r\n\r\n async getResource(id) {\r\n const item = await this.get(id);\r\n this.setItem(item);\r\n }\r\n\r\n @action.bound\r\n setItem(item) {\r\n this.item = item;\r\n }\r\n\r\n _filterActionsWithPermission = (actions) => {\r\n const result = {};\r\n forEach(actions, (action, key) => {\r\n if (\r\n !action.authorization ||\r\n this.rootStore.userStore.hasPermission(action.authorization)\r\n ) {\r\n result[key] = action;\r\n }\r\n });\r\n return result;\r\n };\r\n\r\n _createNavigateBackAction(action) {\r\n if (action && isString(action)) {\r\n const route = this.rootStore.routerStore.getRoute(action);\r\n if (\r\n route &&\r\n (!route.authorization ||\r\n this.rootStore.userStore.hasPermission(route.authorization))\r\n ) {\r\n return {\r\n title: route.data ? route.data.title : \"Back\",\r\n routeName: route.name,\r\n };\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default MrbBasePreviewViewStore;\r\n","import { action, observable, makeObservable, reaction } from \"mobx\";\r\nimport { moduleBuilder } from \"../../infrastructure\";\r\n\r\nclass MrbApplicationMainSectionStore {\r\n @observable isInitialized = false;\r\n\r\n constructor(rootStore) {\r\n makeObservable(this);\r\n this.rootStore = rootStore;\r\n\r\n reaction(\r\n () => this.rootStore.authenticationStore.isAuthenticated,\r\n (isAuthenticated) => {\r\n if (!isAuthenticated) {\r\n this.setIsInitialized();\r\n this.rootStore.menuStore.setMenu([]);\r\n }\r\n }\r\n );\r\n\r\n this.initialize = this.initialize.bind(this);\r\n }\r\n\r\n async initialize() {\r\n if (!this.isInitialized) {\r\n this.rootStore.authenticationStore.resetSignInRedirect();\r\n this.buildMenu();\r\n this.setIsInitialized(true);\r\n return Promise.resolve();\r\n }\r\n }\r\n\r\n buildMenu(modules) {\r\n const menu = moduleBuilder.buildMenus(\r\n this.rootStore.configuration.menus,\r\n { rootStore: this.rootStore },\r\n modules\r\n );\r\n this.rootStore.menuStore.setMenu(menu);\r\n }\r\n\r\n @action.bound\r\n setIsInitialized(isInitialized) {\r\n this.isInitialized = isInitialized;\r\n }\r\n\r\n async logout() {\r\n await this.rootStore.authenticationStore.logout();\r\n }\r\n}\r\n\r\nexport default MrbApplicationMainSectionStore;\r\n","import { MrbBaseRouteStore } from \"../base\";\r\nimport { makeObservable, computed } from \"mobx\";\r\n\r\nclass MainRouteStore extends MrbBaseRouteStore {\r\n @computed get isInitialized() {\r\n return this.rootStore.applicationMainSectionStore.isInitialized;\r\n }\r\n\r\n constructor(rootStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n }\r\n\r\n onBeforeEnter = async () => {\r\n await this.rootStore.applicationMainSectionStore.initialize();\r\n };\r\n}\r\n\r\nexport default MainRouteStore;\r\n","class ModuleStore {\r\n constructor(rootStore) {\r\n this.rootStore = rootStore;\r\n }\r\n}\r\n\r\nexport default ModuleStore;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { moduleBuilder } from \"../infrastructure\";\r\n\r\n/**\r\n * MrbApplicationStartupStore is responsible for initializing application infrastructure services (apiClient, application, routing and authentication).\r\n * @class\r\n * @memberof Core.Stores\r\n */\r\nclass MrbApplicationStartupStore {\r\n @observable _isInitialized = observable.box(false);\r\n\r\n /**\r\n * @computed\r\n * @readonly\r\n * @public\r\n * @description Determines whether an application services are initialized.\r\n */\r\n @computed get isInitialized() {\r\n return this._isInitialized.get();\r\n }\r\n\r\n /**\r\n * @constructor\r\n * @param {Core.Stores.RootStore} rootStore - The instance of the RootStore.\r\n * @description Initializes a new instance of the MrbApplicationStartupStore.\r\n */\r\n constructor(rootStore) {\r\n makeObservable(this);\r\n this.rootStore = rootStore;\r\n }\r\n\r\n /**\r\n * @function\r\n * @async\r\n * @public\r\n * @action\r\n * @description Initializes current application services. Function is called in App component within componentDidMount function.\r\n * Once when an application services are initialized, application is rendered.\r\n */\r\n @action initialize = async () => {\r\n if (!this.isInitialized) {\r\n // ApplicationStore must be initialized first since it is responsible for creating API client.\r\n this.rootStore.applicationStore.register(\r\n this.rootStore.applicationSettings\r\n );\r\n this.createModuleStores();\r\n // AuthenticationStore must be initialized before the RouterStore and the UserStore\r\n this.rootStore.authenticationStore.initialize();\r\n // UserStore must be initialized before the UserStore\r\n await this.rootStore.userStore.initialize();\r\n // RouterStore must be initialized before the MenuStore because the current route is tracked\r\n // inside of it\r\n this.rootStore.routerStore.initialize(\r\n this.rootStore.configuration.routes\r\n );\r\n this.rootStore.menuStore.initialize();\r\n await this.postInitialize();\r\n this.setIsInitialized();\r\n }\r\n return Promise.resolve();\r\n };\r\n\r\n postInitialize = () => {\r\n const currentPath = this.rootStore.routerStore.historyAdapter.history\r\n .location.pathname;\r\n //TODO check if neccessary isAuthenticated\r\n if (currentPath === \"\" || currentPath === \"/\") {\r\n const routerStore = this.rootStore.routerStore;\r\n if (this.rootStore.authenticationStore.isAuthenticated) {\r\n routerStore.goTo(routerStore.initialState);\r\n } else {\r\n routerStore.goTo(routerStore.loginState);\r\n }\r\n }\r\n return Promise.resolve();\r\n };\r\n\r\n createModuleStores = () => {\r\n const moduleContext = { rootStore: this };\r\n const moduleStores = moduleBuilder.buildStores(\r\n this.rootStore.configuration.stores,\r\n moduleContext\r\n );\r\n if (moduleStores) {\r\n this.rootStore.module = moduleStores;\r\n }\r\n };\r\n\r\n /**\r\n * @function\r\n * @private\r\n * @description Sets IsInitialized flag.\r\n */\r\n @action setIsInitialized = () => {\r\n this._isInitialized.set(true);\r\n };\r\n}\r\n\r\nexport default MrbApplicationStartupStore;\r\n","import { observable, action, makeObservable } from \"mobx\";\r\nimport { errorFormatterService } from \"../services\";\r\nimport { httpStatusCodes } from \"../constants\";\r\nimport { isObject, isUndefined, isFunction } from \"lodash\";\r\n\r\nclass MrbErrorStore {\r\n internalException = null;\r\n @observable.ref error = null;\r\n\r\n constructor(rootStore) {\r\n this.rootStore = rootStore;\r\n makeObservable(this);\r\n // We must initialize the MrbErrorStore early as possible so don't place it in application startup pipeline\r\n this.initialize();\r\n\r\n this.handleApiError = this.handleApiError.bind(this);\r\n }\r\n\r\n @action.bound\r\n setError(error) {\r\n this.error = error;\r\n }\r\n\r\n initialize() {\r\n this.initializeGlobalUnhadledRejectionListener();\r\n this.initializeGlobalErrorListener();\r\n }\r\n\r\n initializeGlobalUnhadledRejectionListener() {\r\n const self = this;\r\n // Catch all unhandled promise rejections\r\n window.addEventListener(\"unhandledrejection\", (event) => {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n\r\n const { reason } = event;\r\n\r\n if (isObject(reason)) {\r\n if (!isUndefined(reason.request) && !isUndefined(reason.statusCode)) {\r\n return this.handleApiError(self.rootStore, reason);\r\n }\r\n }\r\n\r\n return true;\r\n });\r\n }\r\n\r\n handleError(error, handlerFn = null) {\r\n if (isObject(error)) {\r\n if (!isUndefined(error.request) && !isUndefined(error.statusCode)) {\r\n if (\r\n error.statusCode === httpStatusCodes.Unauthorized ||\r\n error.statusCode === httpStatusCodes.Forbidden\r\n ) {\r\n //TODO: check if we need this\r\n this.rootStore.authenticationStore.syncToken();\r\n if (this.rootStore.authenticationStore.isAuthenticated) {\r\n return this.rootStore.routerStore.goToUnauthorized();\r\n } else {\r\n return this.rootStore.routerStore.goToLogin();\r\n }\r\n }\r\n }\r\n }\r\n if (isFunction(handlerFn)) {\r\n handlerFn(error);\r\n }\r\n }\r\n\r\n initializeGlobalErrorListener() {\r\n const self = this;\r\n window.addEventListener(\"error\", (event) => {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n self.setError({\r\n message: \"Something went wrong. Please contact support.\",\r\n });\r\n self.rootStore.routerStore.goTo(self.rootStore.routerStore.errorState);\r\n });\r\n }\r\n\r\n handleApiError(reason) {\r\n const { data, request, message, statusCode, headers, config } = reason;\r\n // This request is handled locally in AccountActivationRouteStore so it should never happen. Due to some bug in the\r\n // Baasic SDK, request promise is rejected twice. Explore what causes that issue and remove this chunk of code.\r\n if (request.url.includes(\"/register/activate/\")) {\r\n return;\r\n }\r\n\r\n if (statusCode === httpStatusCodes.Unauthorized || statusCode === httpStatusCodes.Forbidden) {\r\n //TODO: check if we need this\r\n this.rootStore.authenticationStore.syncToken();\r\n if (this.rootStore.authenticationStore.isAuthenticated) {\r\n return this.rootStore.routerStore.goToUnauthorized();\r\n } else {\r\n return this.rootStore.routerStore.goToLogin();\r\n }\r\n }\r\n\r\n const error = errorFormatterService.getErrorObject(data, message, statusCode, headers, config);\r\n\r\n this.rootStore.errorStore.setError(error);\r\n if (this.rootStore.routerStore.routerState.routeName !== this.rootStore.routerStore.errorState.routeName) {\r\n this.rootStore.routerStore.goTo(this.rootStore.routerStore.errorState);\r\n }\r\n }\r\n}\r\n\r\nexport default MrbErrorStore;\r\n","import {\r\n createRouterState,\r\n HistoryAdapter,\r\n browserHistory,\r\n} from \"mobx-state-router\";\r\nimport { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { moduleBuilder } from \"../infrastructure\";\r\nimport { getDefaultRouteDataMap, MrbRouter } from \"../infrastructure/router\";\r\nimport { isObject, find, forOwn, merge, some } from \"lodash\";\r\n\r\nclass MrbRouterStore {\r\n initialState = new createRouterState(\"master.administration.dashboard\");\r\n loginState = new createRouterState(\"master.public.membership.login\");\r\n errorState = new createRouterState(\"master.error\");\r\n unauthorizedState = new createRouterState(\"master.unauthorized\");\r\n notFoundState = new createRouterState(\"master.not-found\");\r\n\r\n router = null;\r\n historyAdapter = null;\r\n transitionData = {};\r\n\r\n // route data definition per route\r\n // map in format: : <{ title, crumbs: [{ title, route }]}>\r\n @observable.ref routeDataMap = observable.map([]);\r\n @observable isRouterInitialized = false;\r\n\r\n get routes() {\r\n return this.router.routes;\r\n }\r\n\r\n @computed get routerState() {\r\n return this.router.routerState;\r\n }\r\n\r\n constructor(rootStore) {\r\n makeObservable(this);\r\n this.rootStore = rootStore;\r\n }\r\n\r\n @action.bound\r\n initialize(configuredRoutes) {\r\n if (!this.isRouterInitialized) {\r\n const { routes, routerMaps } = moduleBuilder.buildRoutes(\r\n configuredRoutes\r\n );\r\n this.router = new MrbRouter(routes, this.notFoundState, {\r\n rootStore: this.rootStore,\r\n });\r\n this.routeDataMap = getDefaultRouteDataMap(routes);\r\n this.routerMaps = routerMaps;\r\n\r\n this.historyAdapter = new HistoryAdapter(\r\n this.router,\r\n browserHistory\r\n );\r\n this.historyAdapter.observeRouterStateChanges();\r\n\r\n this.isRouterInitialized = true;\r\n }\r\n }\r\n\r\n async goTo(route, params, queryParams, options = null) {\r\n let newRoute;\r\n let newParams;\r\n let newQueryParams;\r\n if (isObject(route)) {\r\n newRoute = route.routeName;\r\n newParams = route.params;\r\n newQueryParams = route.queryParams;\r\n } else {\r\n newRoute = route;\r\n newParams = params;\r\n newQueryParams = queryParams;\r\n }\r\n\r\n newParams = newParams || {};\r\n newQueryParams = newQueryParams || {};\r\n if (options) {\r\n this.transitionData = {\r\n ...this.transitionData,\r\n ...options,\r\n };\r\n }\r\n\r\n // if new params don't have application identifier, old state had it and we are still on 'master.app' route, just\r\n // reuse old identifier to avoid whole application initialization logic\r\n // if (_.startsWith(newRoute, 'master.app') && !newParams.applicationIdentifier && this.routerState.params.applicationIdentifier) {\r\n // newParams = {\r\n // ...newParams,\r\n // applicationIdentifier: this.routerState.params.applicationIdentifier\r\n // }\r\n // }\r\n\r\n const newState = await this.router.goTo(newRoute, {\r\n params: newParams,\r\n queryParams: newQueryParams,\r\n });\r\n this.transitionData = {};\r\n return newState;\r\n }\r\n\r\n goToNotFound() {\r\n return this.router.goToNotFound();\r\n }\r\n\r\n goToUnauthorized() {\r\n return this.goTo(this.unauthorizedState);\r\n }\r\n\r\n goToLogin() {\r\n return this.goTo(this.loginState);\r\n }\r\n\r\n goToDefaultRoute() {\r\n return this.goTo(this.initialState);\r\n }\r\n\r\n getCurrentRoute() {\r\n return this.router.getCurrentRoute();\r\n }\r\n\r\n getRoute(routeName) {\r\n return this.router.getRoute(routeName);\r\n }\r\n\r\n goBack() {\r\n this.historyAdapter.goBack();\r\n }\r\n\r\n setQueryParams(params) {\r\n return this.router.setRouterState(\r\n createRouterState(this.routerState.routeName, {\r\n params: this.routerState.params,\r\n queryParams: params,\r\n })\r\n );\r\n }\r\n\r\n setTransitionData(data) {\r\n this.transitionData = {\r\n ...this.transitionData,\r\n ...(data || {}),\r\n };\r\n }\r\n\r\n findRoute(name) {\r\n return find(this.router.routes, (route) => route.name === name);\r\n }\r\n\r\n setRouteTitle(routeTitleMap) {\r\n this.setRouteData(routeTitleMap, (value) => ({\r\n title: value,\r\n }));\r\n }\r\n\r\n setRouteNavigateBack(routeBackMap) {\r\n this.setRouteData(routeBackMap, (value) => ({\r\n back: value,\r\n }));\r\n }\r\n\r\n setRouteData(routeDataMap, getMergeObject) {\r\n forOwn(routeDataMap, (value, key) => {\r\n const routeData = this.routeDataMap.get(key) || {};\r\n const newRouteData = merge({}, routeData, getMergeObject(value));\r\n this.routeDataMap.set(key, newRouteData);\r\n });\r\n }\r\n\r\n getCurrentData() {\r\n return this.routeDataMap.get(this.routerState.routeName);\r\n }\r\n\r\n async routeChange({ fromState, toState, options }) {\r\n const { authenticationStore, userStore } = this.rootStore;\r\n if (\r\n fromState &&\r\n fromState.routeName === this.loginState.routeName &&\r\n toState.routeName === this.errorState.routeName\r\n ) {\r\n return Promise.reject(this.initialState);\r\n }\r\n\r\n if (options.isPublic === false) {\r\n if (\r\n !authenticationStore.isAuthenticated &&\r\n toState.routeName !== this.loginState.routeName\r\n ) {\r\n authenticationStore.setSignInRedirect(toState);\r\n return Promise.reject(this.loginState);\r\n }\r\n\r\n if (\r\n (options.authorization.length > 0 &&\r\n some(\r\n options.authorization,\r\n (a) => !userStore.hasPermission(a)\r\n )) ||\r\n !userStore.hasPermission()\r\n ) {\r\n return Promise.reject(this.unauthorizedState);\r\n }\r\n }\r\n\r\n return Promise.resolve();\r\n }\r\n\r\n setSystemRoute(name, routeName) {\r\n this[name] = createRouterState(routeName);\r\n }\r\n}\r\n\r\nexport default MrbRouterStore;\r\n","import { action, observable, runInAction, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"./\";\r\nimport { NavigationOptions } from \"../models\";\r\nimport { isFunction } from \"lodash\";\r\n\r\nclass MrbMainViewStore extends MrbBaseViewStore {\r\n @observable.ref navigationOptions = null;\r\n @observable isInitialized = false;\r\n\r\n constructor(rootStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n }\r\n\r\n initialize = async () => {\r\n await this.rootStore.userStore.resolveUser();\r\n runInAction(() => {\r\n this.isInitialized = true;\r\n });\r\n };\r\n\r\n @action setNavigationOptions = (navigationOptions) => {\r\n const opts = isFunction(navigationOptions)\r\n ? navigationOptions(this.rootStore)\r\n : navigationOptions;\r\n\r\n let options = null;\r\n if (opts && opts.title) {\r\n options = new NavigationOptions();\r\n if (isFunction(opts.title)) {\r\n const result = opts.title(this.rootStore);\r\n if (result instanceof Promise) {\r\n options.suspend();\r\n result.then((res) => {\r\n options.setTitle(res);\r\n options.resume();\r\n });\r\n } else {\r\n options.setTitle(result);\r\n }\r\n } else {\r\n options.setTitle(opts.title);\r\n }\r\n }\r\n\r\n this.navigationOptions = options;\r\n };\r\n}\r\n\r\nexport default MrbMainViewStore;\r\n","import { action, computed, observable, makeObservable, reaction } from \"mobx\";\r\nimport { MenuItem } from \"../models\";\r\nimport { each, orderBy, find, last, split, difference } from \"lodash\";\r\n\r\nclass MrbMenuStore {\r\n rawMenu = [];\r\n\r\n @observable isInitialized = false;\r\n\r\n @observable.ref menu = [];\r\n @observable.ref activePath = [];\r\n @observable.ref selectedPath = [];\r\n\r\n @observable isOpen = false;\r\n\r\n @computed get secondaryMenuVisible() {\r\n return this.selectedPath && this.selectedPath.length > 0;\r\n }\r\n\r\n @computed get secondaryMenu() {\r\n const path = this.selectedPath.length === 0 ? this.activePath : this.selectedPath;\r\n\r\n const parent = find(this.menu, (item) => item.isActiveByPath(path));\r\n return parent ? parent.subMenu : [];\r\n }\r\n\r\n @computed get activeMenuItem() {\r\n return last(this.activePath);\r\n }\r\n\r\n constructor(rootStore) {\r\n makeObservable(this);\r\n this.rootStore = rootStore;\r\n }\r\n\r\n initialize() {\r\n if (!this.isInitialized) {\r\n reaction(\r\n () => this.rootStore.routerStore.routerState,\r\n (activeRoute) => {\r\n this.syncMenuRoute(activeRoute);\r\n if (this.isOpen) {\r\n this.closeMenu();\r\n }\r\n }\r\n );\r\n this.setIsInitialized(true);\r\n }\r\n }\r\n\r\n @action.bound\r\n setIsInitialized(value) {\r\n this.isInitialized = value;\r\n }\r\n\r\n @action.bound\r\n setMenu(menu) {\r\n this.rawMenu = menu;\r\n this.menu = menu;\r\n\r\n const menuItems = [];\r\n each(menu, (item) => {\r\n const menuItem = new MenuItem(this, item);\r\n menuItems.push(menuItem);\r\n });\r\n this.menu = orderBy(menuItems, (item) => item.order, \"asc\");\r\n }\r\n\r\n //toggles menu open/close is-open, for mobile\r\n @action.bound\r\n toggleMenuOpen() {\r\n this.isOpen = !this.isOpen;\r\n }\r\n\r\n @action.bound\r\n setIsOpen(isOpen) {\r\n this.isOpen = isOpen;\r\n }\r\n\r\n @action.bound\r\n closeMenu() {\r\n this.setIsOpen(false);\r\n }\r\n\r\n @action.bound\r\n setActivePath(path) {\r\n this.activePath = path;\r\n }\r\n\r\n @action.bound\r\n setSelectedPath(path) {\r\n this.selectedPath = path;\r\n }\r\n\r\n @action.bound\r\n selectMenuItem(event, item) {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n let newPath = item.path;\r\n if (\r\n item.path.length < this.selectedPath.length ||\r\n (item.path.length === this.selectedPath.length && !last(item.path).canNavigate)\r\n ) {\r\n const subPath = this._getCommonSubPath(item.path, this.selectedPath);\r\n if (subPath && subPath.length > 0) {\r\n subPath.pop();\r\n newPath = subPath;\r\n }\r\n }\r\n\r\n if (this.selectedPath && this.selectedPath.length > 0) {\r\n each(this.selectedPath, (selectedMenuItem) => {\r\n selectedMenuItem.setIsSelected(false);\r\n });\r\n }\r\n each(newPath, (menuItem) => {\r\n menuItem.setIsSelected(true);\r\n });\r\n this.setSelectedPath(newPath);\r\n }\r\n\r\n @action.bound\r\n setActiveMenuItem(event, item) {\r\n if (event) {\r\n event.preventDefault();\r\n }\r\n if (this.activePath && this.activePath.length > 0) {\r\n each(this.activePath, (menuItem) => {\r\n menuItem.setIsActive(false);\r\n });\r\n }\r\n each(item.path, (menuItem) => {\r\n menuItem.setIsActive(true);\r\n });\r\n this.setActivePath(item.path);\r\n this.selectMenuItem(event, item);\r\n }\r\n\r\n @action.bound\r\n syncMenuRoute(activeRoute) {\r\n if (!this.menu || this.menu.length === 0) {\r\n return;\r\n }\r\n const activeItem = findActiveMenuItem(this.menu, activeRoute.routeName);\r\n if (activeItem) {\r\n this.setActiveMenuItem(null, activeItem);\r\n }\r\n }\r\n\r\n _getCommonSubPath(lhs, rhs) {\r\n const subPath = [];\r\n const minLength = Math.min(lhs.length, rhs.length);\r\n for (let index = 0; index < minLength; index++) {\r\n if (lhs[index].equals(rhs[index])) {\r\n subPath.push(lhs[index]);\r\n }\r\n }\r\n\r\n return subPath;\r\n }\r\n}\r\n\r\nfunction findActiveMenuItem(menu, route) {\r\n let bestMatch = {\r\n difference: 0,\r\n item: null,\r\n };\r\n\r\n for (let i = 0; i < menu.length; i++) {\r\n const item = menu[i];\r\n if (item.route) {\r\n const menuRoute = typeof item.route === \"function\" ? item.route() : item.route;\r\n if (menuRoute === route) {\r\n // return menu item that has exact route as specified route\r\n return item;\r\n } else {\r\n // find menu item that has 'closest' route match to specified route\r\n // e.g. master.platform.main.user.create doesn't have menu definition\r\n // so its closest match would be master.platform.main.user.list\r\n const difference = getDifference(menuRoute, route);\r\n if (difference >= 0 && difference <= bestMatch.difference) {\r\n bestMatch.item = item;\r\n bestMatch.difference = difference;\r\n }\r\n }\r\n }\r\n\r\n if (item.hasChildren) {\r\n const child = findActiveMenuItem(item.subMenu, route);\r\n if (child) {\r\n return child;\r\n }\r\n }\r\n }\r\n\r\n return bestMatch.item;\r\n}\r\n\r\nfunction getDifference(menuRoute, route) {\r\n let menuParts = split(menuRoute, \".\");\r\n let routeParts = split(route, \".\");\r\n\r\n const diff = routeParts.length - menuParts.length;\r\n if (diff < 0) return -1;\r\n\r\n return difference(menuParts.slice(0, -1), routeParts.slice(0, -(diff + 1))).length;\r\n}\r\n\r\nexport default MrbMenuStore;\r\n","import { errorFormatterService } from \"../services\";\r\n\r\nclass MrbNotificationStore {\r\n constructor(rootStore, notificationProvider) {\r\n this.rootStore = rootStore;\r\n this.notificationProvider = notificationProvider;\r\n }\r\n\r\n success(message, options = null) {\r\n if (this.notificationProvider) {\r\n return this.notificationProvider.success(message, options);\r\n }\r\n }\r\n\r\n warning(message, options = null) {\r\n if (this.notificationProvider) {\r\n return this.notificationProvider.warning(message, options);\r\n }\r\n }\r\n\r\n error(message, data = null, options = null) {\r\n if (data) {\r\n const { headers, config, status } = data;\r\n errorFormatterService.getErrorObject(\r\n data.data,\r\n data.message,\r\n status,\r\n headers,\r\n config\r\n );\r\n }\r\n if (this.notificationProvider) {\r\n return this.notificationProvider.error(message, options);\r\n }\r\n }\r\n\r\n info(message, options = null) {\r\n if (this.notificationProvider) {\r\n return this.notificationProvider.info(message, options);\r\n }\r\n }\r\n}\r\n\r\nexport default MrbNotificationStore;\r\n","import { MrbConfirmModalParams } from \"../../common/models\";\r\nimport { action, observable, makeObservable } from \"mobx\";\r\n\r\nclass MrbConfirmDialogStore {\r\n @observable.ref confirmModalParams = null;\r\n\r\n constructor(rootStore) {\r\n this.rootStore = rootStore;\r\n makeObservable(this);\r\n }\r\n\r\n @action.bound\r\n showConfirm(options) {\r\n this.confirmModalParams = new MrbConfirmModalParams(options);\r\n this.confirmModalParams.open();\r\n }\r\n}\r\n\r\nexport default MrbConfirmDialogStore;\r\n","import {\r\n MrbApplicationMainSectionStore,\r\n MrbApplicationStartupStore,\r\n MrbErrorStore,\r\n MrbMainViewStore,\r\n MrbMenuStore,\r\n MrbNotificationStore,\r\n MrbConfirmDialogStore,\r\n MrbRouterStore,\r\n} from \"./\";\r\nimport { MrbLoaderStore } from \"../../components/loader\";\r\nimport { merge, isFunction } from \"lodash\";\r\n\r\nconst defaultConfig = {\r\n applicationSettings: {},\r\n providers: {\r\n notificationProvider: null,\r\n },\r\n stores: {\r\n applicationStoreFactory: null,\r\n authenticationStoreFactory: null,\r\n applicationMainSectionStoreFactory: (context) => new MrbApplicationMainSectionStore(context.rootStore),\r\n errorStoreFactory: (context) => new MrbErrorStore(context.rootStore),\r\n applicationStartupStoreFactory: (context) => new MrbApplicationStartupStore(context.rootStore),\r\n routerStoreFactory: (context) => new MrbRouterStore(context.rootStore),\r\n userStoreFactory: null,\r\n mainViewStoreFactory: (context) => new MrbMainViewStore(context.rootStore),\r\n menuStoreFactory: (context) => new MrbMenuStore(context.rootStore),\r\n notificationStoreFactory: ({ rootStore, notificationProvider }) =>\r\n new MrbNotificationStore(rootStore, notificationProvider),\r\n mainLoaderStoreFactory: () => new MrbLoaderStore({ delay: 1000 }),\r\n confirmDialogStoreFactory: (context) => new MrbConfirmDialogStore(context.rootStore),\r\n },\r\n};\r\n\r\n/**\r\n * RootStore is main store used in the application.\r\n * @class\r\n * @memberof Core.Stores\r\n */\r\nclass MrbRootStore {\r\n currentRouteStores = new Map();\r\n\r\n get application() {\r\n return this.applicationStore.app;\r\n }\r\n\r\n get apiClient() {\r\n return this.applicationStore.apiClient;\r\n }\r\n\r\n get applicationSettings() {\r\n return this._config.applicationSettings;\r\n }\r\n\r\n /**\r\n * @constructor\r\n * @description Initializes a new instance of the RootStore class.\r\n * @param {object} modulesConfiguration - modules configuration object.\r\n */\r\n constructor(modulesConfiguration, config) {\r\n this.configuration = modulesConfiguration;\r\n this._config = merge({}, defaultConfig, config);\r\n\r\n const context = { rootStore: this };\r\n this.createStores(context, this._config.stores);\r\n this.createServices(context);\r\n }\r\n\r\n createStores(context, storesConfig) {\r\n if (!storesConfig) {\r\n throw new Error(\"Stores configuration is required in order to create core stores.\");\r\n }\r\n if (!storesConfig.applicationStoreFactory || !isFunction(storesConfig.applicationStoreFactory)) {\r\n throw new Error(\"ApplicationStoreFactory not provided.\");\r\n }\r\n this.applicationStore = storesConfig.applicationStoreFactory(context);\r\n\r\n if (!storesConfig.authenticationStoreFactory || !isFunction(storesConfig.authenticationStoreFactory)) {\r\n throw new Error(\"AuthenticationStoreFactory not provided.\");\r\n }\r\n this.authenticationStore = storesConfig.authenticationStoreFactory(context);\r\n\r\n if (\r\n !storesConfig.applicationMainSectionStoreFactory ||\r\n !isFunction(storesConfig.applicationMainSectionStoreFactory)\r\n ) {\r\n throw new Error(\"ApplicationMainSectionStoreFactory not provided.\");\r\n }\r\n this.applicationMainSectionStore = storesConfig.applicationMainSectionStoreFactory(context);\r\n\r\n if (!storesConfig.errorStoreFactory || !isFunction(storesConfig.errorStoreFactory)) {\r\n throw new Error(\"ErrorStoreFactory not provided.\");\r\n }\r\n this.errorStore = storesConfig.errorStoreFactory(context);\r\n\r\n if (!storesConfig.applicationStartupStoreFactory || !isFunction(storesConfig.applicationStartupStoreFactory)) {\r\n throw new Error(\"ApplicationStartupStoreFactory not provided.\");\r\n }\r\n this.applicationStartupStore = storesConfig.applicationStartupStoreFactory({\r\n ...context,\r\n notificationProvider: this._config.providers.notificationProvider,\r\n });\r\n\r\n if (!storesConfig.routerStoreFactory || !isFunction(storesConfig.routerStoreFactory)) {\r\n throw new Error(\"RouterStoreFactory not provided.\");\r\n }\r\n this.routerStore = storesConfig.routerStoreFactory(context);\r\n\r\n if (!storesConfig.userStoreFactory || !isFunction(storesConfig.userStoreFactory)) {\r\n throw new Error(\"UserStoreFactory not provided.\");\r\n }\r\n this.userStore = storesConfig.userStoreFactory(context);\r\n\r\n if (!storesConfig.mainViewStoreFactory || !isFunction(storesConfig.mainViewStoreFactory)) {\r\n throw new Error(\"MainViewStoreFactory not provided.\");\r\n }\r\n this.mainViewStore = storesConfig.mainViewStoreFactory(context);\r\n\r\n if (!storesConfig.menuStoreFactory || !isFunction(storesConfig.menuStoreFactory)) {\r\n throw new Error(\"MenuStoreFactory not provided.\");\r\n }\r\n this.menuStore = storesConfig.menuStoreFactory(context);\r\n\r\n if (!storesConfig.notificationStoreFactory || !isFunction(storesConfig.notificationStoreFactory)) {\r\n throw new Error(\"NotificationStoreFactory not provided.\");\r\n }\r\n this.notificationStore = storesConfig.notificationStoreFactory({\r\n ...context,\r\n notificationProvider: this._config.providers.notificationProvider,\r\n });\r\n\r\n if (!storesConfig.mainLoaderStoreFactory || !isFunction(storesConfig.mainLoaderStoreFactory)) {\r\n throw new Error(\"mainLoaderStoreFactory not provided.\");\r\n }\r\n this.mainLoaderStore = storesConfig.mainLoaderStoreFactory(context);\r\n\r\n if (!storesConfig.confirmDialogStoreFactory || !isFunction(storesConfig.confirmDialogStoreFactory)) {\r\n throw new Error(\"ConfirmDialogStoreFactory not provided.\");\r\n }\r\n this.confirmDialogStore = storesConfig.confirmDialogStoreFactory(context);\r\n }\r\n\r\n createServices(context) {\r\n return;\r\n }\r\n\r\n createCurrentRouteStore = (name, Store, parentName = null) => {\r\n let parentStore = null;\r\n if (parentName && this.currentRouteStores.has(parentName)) {\r\n parentStore = this.currentRouteStores.get(parentName);\r\n }\r\n const store = new Store(this, parentStore);\r\n this.currentRouteStores.set(name, store);\r\n return store;\r\n };\r\n\r\n getCurrentRouteStore = (name) => {\r\n return this.currentRouteStores.get(name);\r\n };\r\n\r\n removeCurrentRouteStore = (name) => {\r\n if (this.currentRouteStores.has(name)) {\r\n this.currentRouteStores.delete(name);\r\n }\r\n };\r\n\r\n createApplicationService = (Type) => {\r\n return this.applicationStore.createApplicationService(Type);\r\n };\r\n}\r\n\r\nexport default MrbRootStore;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbPrimaryMenuLevel } from \"./\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbMenu({ menuStore, t = (i) => i }) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nMrbMenu.propTypes = {\r\n menuStore: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default observer(MrbMenu);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbRouteLinkMenuItem } from \"./\";\r\nimport { mergeOrOverrideCss, mergeCss } from \"../../common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbMenuItem({ menuStore, item, t, classNameExtend, classNameOverride, tabIndex = 0, subMenuRenderer = null }) {\r\n const title = t(item.title);\r\n const baseCss = mergeOrOverrideCss(\"c-nav__link\", classNameOverride, classNameExtend);\r\n return (\r\n
  • \r\n {item.canNavigate ? (\r\n \r\n ) : (\r\n // expand collapse icon\r\n menuStore.selectMenuItem(event, item)}\r\n aria-label={title}\r\n className={mergeCss(baseCss, \"c-nav__link--expanded\", item.isActive ? \" is-active\" : null)}\r\n >\r\n \r\n {item.icon && }\r\n {title}\r\n \r\n \r\n \r\n )}\r\n {subMenuRenderer && item.isSelected && subMenuRenderer()}\r\n
  • \r\n );\r\n}\r\n\r\nMrbMenuItem.propTypes = {\r\n menuStore: PropTypes.object.isRequired,\r\n item: PropTypes.object.isRequired,\r\n classNameExtend: PropTypes.string,\r\n classNameOverride: PropTypes.string,\r\n t: PropTypes.func.isRequired,\r\n tabIndex: PropTypes.number,\r\n className: PropTypes.string,\r\n subMenuRenderer: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbMenuItem);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbMenuToggle({ menuStore }) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nMrbMenuToggle.propTypes = {\r\n menuStore: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default observer(MrbMenuToggle);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbMenuItem, MrbSecondaryMenuLevel } from \"./\";\r\nimport { observer } from \"mobx-react\";\r\nimport { map } from \"lodash\";\r\n\r\nfunction MrbPrimaryMenuLevel({ menuStore, t = (i) => i }) {\r\n const { menu } = menuStore;\r\n return (\r\n
      \r\n {map(menu, (item) => {\r\n return (\r\n }\r\n />\r\n );\r\n })}\r\n
    \r\n );\r\n}\r\n\r\nMrbPrimaryMenuLevel.propTypes = {\r\n menuStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(MrbPrimaryMenuLevel);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbRouterLink } from \"../../core/infrastructure/router\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbRouteLinkMenuItem({ item, className, tabIndex = 0, t = (i) => i }) {\r\n const title = t(item.title);\r\n return (\r\n item.isActive}\r\n onClick={item.onClick}\r\n activeClassName=\"is-active\"\r\n routeName={item.route}\r\n tabIndex={tabIndex}\r\n >\r\n \r\n {title}\r\n {!item.shouldHideChildren && item.hasChildren ? : null}\r\n \r\n );\r\n}\r\n\r\nMrbRouteLinkMenuItem.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n className: PropTypes.string,\r\n tabIndex: PropTypes.number,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(MrbRouteLinkMenuItem);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbMenuItem } from \"./\";\r\nimport { observer } from \"mobx-react\";\r\nimport { map } from \"lodash\";\r\n\r\nfunction MrbSecondaryMenuLevel({ menuStore, t }) {\r\n const { secondaryMenu } = menuStore;\r\n return (\r\n \r\n {secondaryMenu && secondaryMenu.length > 0 && (\r\n
      \r\n {map(secondaryMenu, (item) => {\r\n return (\r\n \r\n );\r\n })}\r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nMrbSecondaryMenuLevel.propTypes = {\r\n menuStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(MrbSecondaryMenuLevel);\r\n","import React from \"react\";\r\nimport { RootContext } from \"../contexts\";\r\n\r\nconst withRootStore = (Component) =>\r\n class WithRootStore extends React.Component {\r\n render() {\r\n return (\r\n \r\n {(rootStore) => (\r\n \r\n )}\r\n \r\n );\r\n }\r\n };\r\n\r\nexport default withRootStore;\r\n","import React from \"react\";\r\nimport { withRootStore } from \"./\";\r\n\r\nfunction withAuthorization(Component) {\r\n class AuthComponent extends React.Component {\r\n render() {\r\n const { rootStore, authorization, ...otherProps } = this.props;\r\n return authorization ? (\r\n rootStore.userStore.hasPermission(authorization) ? (\r\n \r\n ) : null\r\n ) : (\r\n \r\n );\r\n }\r\n }\r\n\r\n return withRootStore(AuthComponent);\r\n}\r\n\r\nexport default withAuthorization;\r\n","import React from \"react\";\r\nimport { isUndefined, isNull, isFunction } from \"lodash\";\r\nimport { withRootStore } from \"./\";\r\n\r\nfunction setCurrentView(getView, name = \"currentView\") {\r\n return function (Component) {\r\n class WrapComponent extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n this.initializeView(props);\r\n }\r\n\r\n view = null;\r\n\r\n initializeView({ rootStore, parentView, storeName, ...componentProps }) {\r\n const customStoreName =\r\n !isUndefined(storeName) && !isNull(storeName) && storeName !== \"\" ? storeName : name;\r\n const parent = parentView || rootStore;\r\n let propertyName = getPropertyName(parent, customStoreName);\r\n let currentView = typeof getView === \"function\" ? getView(rootStore, componentProps) : getView;\r\n currentView.store_path =\r\n parent && parent !== rootStore ? parent.store_path + \".\" + customStoreName : customStoreName;\r\n\r\n parent[propertyName] = currentView;\r\n\r\n this.view = {\r\n [name]: currentView, // this is used for passing in props so child always gets view under defined name\r\n propertyName: propertyName,\r\n parentView: parent,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n const currentView = this.view[name];\r\n if (currentView && currentView.initialize && isFunction(currentView.initialize)) {\r\n currentView.initialize();\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const currentView = this.view[name];\r\n if (currentView && currentView.destroy && isFunction(currentView.destroy)) {\r\n currentView.destroy();\r\n }\r\n\r\n if (this.view.parentView[this.view.propertyName]) {\r\n delete this.view.parentView[this.view.propertyName];\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n const currentView = this.view[name];\r\n if (currentView && currentView.onViewUpdate && typeof currentView.onViewUpdate === \"function\") {\r\n currentView.onViewUpdate(prevProps, this.props);\r\n }\r\n }\r\n\r\n render() {\r\n const { propertyName, parentView, ...other } = this.view; // eslint-disable-line\r\n const { rootStore, ...rest } = this.props; // eslint-disable-line\r\n const props = {\r\n parentView: parentView,\r\n [name]: this.view[name],\r\n ...rest,\r\n };\r\n\r\n return ;\r\n }\r\n }\r\n\r\n return withRootStore(WrapComponent);\r\n };\r\n}\r\n\r\nfunction getPropertyName(obj, name, idx = -1) {\r\n const propertyName = idx !== -1 ? name + \"_\" + idx : name;\r\n const property = obj[propertyName];\r\n if (property !== undefined && property !== null) {\r\n return getPropertyName(obj, name, idx + 1);\r\n }\r\n\r\n return propertyName;\r\n}\r\n\r\nexport default setCurrentView;\r\n","import { MrbBaseGridViewStore } from \"./\";\r\nimport { MrbContentLoaderStore } from \"../../loader\";\r\nimport { merge, isNil } from \"lodash\";\r\n\r\nconst DefaultConfig = {\r\n onCellClick: null,\r\n};\r\n\r\nclass MrbGridViewStore extends MrbBaseGridViewStore {\r\n constructor(rootStore, queryUtility, config = {}, components = {}) {\r\n super(\r\n rootStore,\r\n queryUtility,\r\n isNil(components.loaderStore) ? new MrbContentLoaderStore(config.loaderOptions) : components.loaderStore,\r\n merge({}, DefaultConfig, config)\r\n );\r\n }\r\n}\r\n\r\nexport default MrbGridViewStore;\r\n","import React from \"react\";\r\n\r\nfunction MrbGridEmptyState() {\r\n return
    There is no data.
    ;\r\n}\r\n\r\nexport default MrbGridEmptyState;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbGridEmptyState } from \"./components\";\r\nimport { MrbPager } from \"../pager\";\r\nimport { MrbContentLoader, MrbRectangleContentLoader } from \"../loader\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\nimport { mergeOrOverrideCss } from \"../../common/utils\";\r\n\r\nfunction MrbGrid({\r\n store,\r\n cellRender,\r\n pagerRender,\r\n t,\r\n classNameOverride,\r\n classNameExtend,\r\n emptyStateRender = () => ,\r\n loaderRender = () => (\r\n \r\n ),\r\n}) {\r\n const {\r\n dataInitialized,\r\n data,\r\n config: { actions, onCellClick },\r\n formatValue,\r\n loaderStore,\r\n generateCellKey,\r\n } = store;\r\n\r\n return (\r\n \r\n \r\n {() => (\r\n \r\n {dataInitialized && (\r\n \r\n {data && data.length > 0 ? (\r\n
    \r\n \r\n {map(data, (item, index) => (\r\n \r\n {cellRender({\r\n item,\r\n actions,\r\n onCellClick,\r\n valueFormatter:\r\n formatValue,\r\n t,\r\n })}\r\n \r\n ))}\r\n
    \r\n \r\n ) : (\r\n \r\n {emptyStateRender()}\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n )}\r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nMrbGrid.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n pagerRender: PropTypes.any,\r\n cellRender: PropTypes.func.isRequired,\r\n emptyStateRender: PropTypes.any,\r\n loaderRender: PropTypes.any,\r\n t: PropTypes.func,\r\n};\r\n\r\nconst PagerWrapper = observer(function PagerWrapper({ store, t, pagerRender }) {\r\n const renderer = pagerRender\r\n ? pagerRender\r\n : (props) => ;\r\n return (\r\n store.dataInitialized &&\r\n store.config.paging &&\r\n renderer({\r\n tableStore: store,\r\n hidePagerIfUnderLimit: store.config.hidePagerIfUnderLimit,\r\n t,\r\n })\r\n );\r\n});\r\n\r\nexport default observer(MrbGrid);\r\n","import { action, computed, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbBaseInfiniteScrollListViewStore } from \"mrb/core\";\r\nimport { MrbInfiniteScrollGridViewStore } from \"mrb/components/infinite-scroll-grid\";\r\nimport { ProducerPaymentReportFilter } from \"administration/producer/filters\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport moment from \"moment\";\r\n\r\nclass BaseProducerRevenueReportViewStore extends MrbBaseInfiniteScrollListViewStore {\r\n _abortController = null;\r\n maskUserNames = false;\r\n @observable.ref containerRef = null;\r\n @observable.ref summaryData = null;\r\n\r\n @computed get selectedDate() {\r\n return moment.tz(this.queryUtility.filter.monthOfYear, this.queryUtility.filter.timeZone).toISOString();\r\n }\r\n\r\n constructor(rootStore, { maskUserNames = false }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n ignoreQueryParams: [\"page\", \"timeZone\", \"rpp\", \"orderBy\", \"producerId\"],\r\n filter: new ProducerPaymentReportFilter(),\r\n pageSize: 30,\r\n embed: \"user,subscriptionPlan\",\r\n orderBy: \"producerPayment\",\r\n orderDirection: \"desc\",\r\n },\r\n });\r\n makeObservable(this);\r\n\r\n this.maskUserNames = maskUserNames;\r\n\r\n this.setGridStore(\r\n new MrbInfiniteScrollGridViewStore(this.rootStore, this.queryUtility, {\r\n generateKey: (item) => item.userId,\r\n })\r\n );\r\n\r\n this.applyFilter = this.applyFilter.bind(this);\r\n }\r\n\r\n async onInit() {\r\n await Promise.all([this.queryUtility.initialize(), this.fetchSummaryData(this.queryUtility.filter)]);\r\n }\r\n\r\n onFetchError(err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n\r\n @action.bound\r\n setFromDate(value) {\r\n const selectedDate = moment.utc(value).tz(this.queryUtility.filter.timeZone);\r\n this.queryUtility.filter.monthOfYear = selectedDate\r\n .startOf(\"month\")\r\n .format(applicationDefaults.formats.isoDate);\r\n }\r\n\r\n async fetchSummaryData(filter) {\r\n this.rootStore.mainLoaderStore.suspend();\r\n this.loaderStore.suspend();\r\n try {\r\n const data = await this.getSumaryData(filter);\r\n data.filteredBy = {\r\n date: filter.monthOfYear,\r\n timeZone: filter.timeZone,\r\n };\r\n runInAction(() => {\r\n this.setSummaryData(data);\r\n this.loaderStore.resume();\r\n this.rootStore.mainLoaderStore.resume();\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n runInAction(() => {\r\n this.loaderStore.resume();\r\n this.rootStore.mainLoaderStore.resume();\r\n });\r\n }\r\n }\r\n\r\n getSumaryData(params) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n @action.bound\r\n setSummaryData(data) {\r\n this.summaryData = data;\r\n }\r\n\r\n @action.bound\r\n setContainerRef(ref) {\r\n this.containerRef = ref;\r\n }\r\n\r\n async applyFilter() {\r\n await Promise.all([this.queryUtility.fetch(), this.fetchSummaryData(this.queryUtility.filter)]);\r\n }\r\n}\r\n\r\nexport default BaseProducerRevenueReportViewStore;\r\n","import { computed, observable, makeObservable, override, runInAction } from \"mobx\";\r\nimport { timeRangeType } from \"administration/analytics/constants\";\r\nimport { dateRangeFactory } from \"administration/analytics/models\";\r\nimport { MrbFilterParameters } from \"mrb/core/filter\";\r\nimport moment from \"moment\";\r\nimport \"moment-timezone\";\r\n\r\nclass AnalyticsFilter extends MrbFilterParameters {\r\n @observable _range;\r\n @observable from;\r\n @observable to;\r\n @observable timeZone;\r\n\r\n @computed get previousCycleFrom() {\r\n return dateRangeFactory.createPreviousCycleRangeFrom(this._range, this.from, this.to, this.timeZone);\r\n }\r\n\r\n @computed get previousCycleTo() {\r\n return dateRangeFactory.createPreviousCycleRangeTo(this._range, this.from, this.to, this.timeZone);\r\n }\r\n\r\n set range(value) {\r\n runInAction(() => {\r\n this._range = value;\r\n if (this._range !== timeRangeType.custom) {\r\n const range = dateRangeFactory.create(this._range, this.timeZone);\r\n this.from = range.from;\r\n this.to = range.to;\r\n }\r\n });\r\n }\r\n\r\n get range() {\r\n return this._range;\r\n }\r\n\r\n constructor() {\r\n super();\r\n makeObservable(this);\r\n this.reset();\r\n }\r\n\r\n @override\r\n reset() {\r\n super.reset();\r\n this.timeZone = moment.tz.guess();\r\n this.range = timeRangeType.thisWeek;\r\n }\r\n}\r\n\r\nexport default AnalyticsFilter;\r\n","import { observable, makeObservable } from \"mobx\";\r\nimport { AnalyticsFilter } from \"administration/analytics/filters\";\r\n\r\nclass UserDeviceActivityFilter extends AnalyticsFilter {\r\n @observable deviceIds = null;\r\n\r\n constructor() {\r\n super();\r\n makeObservable(this);\r\n this.reset();\r\n }\r\n}\r\n\r\nexport default UserDeviceActivityFilter;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\nimport { MrbQueryUtility } from \"mrb/core/filter\";\r\nimport { AnalyticsTimeRangeViewStore } from \"administration/analytics/stores\";\r\nimport { AnalyticsFilter } from \"administration/analytics/filters\";\r\nimport { timeRangeType } from \"administration/analytics/constants\";\r\nimport { merge } from \"lodash\";\r\n\r\nclass BaseAnalyticsViewStore extends MrbBaseViewStore {\r\n _abortController = null;\r\n _options = {\r\n filter: null,\r\n timeRangeOptions: {},\r\n };\r\n\r\n constructor(rootStore, options) {\r\n super(rootStore);\r\n this._options = merge(this._options, options);\r\n\r\n this.queryUtility = new MrbQueryUtility(\r\n this.rootStore,\r\n async (filter) => {\r\n this.fetchResources(filter);\r\n },\r\n {\r\n filter: this._options.filter || new AnalyticsFilter(),\r\n paramKeyMap: {\r\n _range: \"range\",\r\n },\r\n ignoreQueryParams: [\"page\", \"timeZone\", \"rpp\"],\r\n queryParamMap: {\r\n from: {\r\n toQuery: (value) => {\r\n if (this.queryUtility.filter.range === timeRangeType.custom) {\r\n return value;\r\n }\r\n return undefined;\r\n },\r\n },\r\n to: {\r\n toQuery: (value) => {\r\n if (this.queryUtility.filter.range === timeRangeType.custom) {\r\n return value;\r\n }\r\n return undefined;\r\n },\r\n },\r\n },\r\n }\r\n );\r\n\r\n this.createAnalyticsTimeRangeViewStore(this.rootStore, {\r\n queryUtility: this.queryUtility,\r\n ...this._options.timeRangeOptions,\r\n });\r\n }\r\n\r\n createAnalyticsTimeRangeViewStore(rootStore, params) {\r\n this.analyticsTimeRangeViewStore = new AnalyticsTimeRangeViewStore(rootStore, params);\r\n }\r\n\r\n onInit() {\r\n return this.queryUtility.initialize();\r\n }\r\n\r\n fetchResources(params) {\r\n this.abortExistingRequest();\r\n this._abortController = new AbortController();\r\n return this.fetch(params);\r\n }\r\n\r\n async fetch(params, abortController) {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n\r\n abortExistingRequest() {\r\n if (this._abortController) {\r\n this._abortController.abort();\r\n }\r\n }\r\n\r\n onDestroy() {\r\n this.analyticsTimeRangeViewStore.destroy();\r\n this.abortExistingRequest();\r\n }\r\n}\r\n\r\nexport default BaseAnalyticsViewStore;\r\n","import { action, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { BaseAnalyticsViewStore } from \"administration/analytics/stores\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\nimport { LineChartStore } from \"common/components/charts\";\r\nimport { spanDataSetToFullDateRange, createTimeRangeChartLabel } from \"administration/analytics/utils\";\r\nimport { map } from \"lodash\";\r\n\r\nclass BasePortalDetailedActivityViewStore extends BaseAnalyticsViewStore {\r\n @observable.ref summaryData = null;\r\n\r\n constructor(rootStore, { chartLabel }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n\r\n this.chartStore = new LineChartStore(this.rootStore, {\r\n label: chartLabel,\r\n actions: {\r\n preprocessData: (data) => {\r\n const spannedDataset = spanDataSetToFullDateRange(data, (periodStart, periodEnd) => {\r\n return {\r\n periodStartDate: periodStart,\r\n periodEndDate: periodEnd,\r\n count: 0,\r\n };\r\n });\r\n data.data = spannedDataset;\r\n return data;\r\n },\r\n mapLabels: (data) => createTimeRangeChartLabel(data),\r\n mapDataset: (data) => {\r\n return map(data.data, (item) => item.count);\r\n },\r\n find: async (params, abortController) => {\r\n const filter = this.createParams(params);\r\n return this.getActivityChartData(filter, abortController);\r\n },\r\n onError: (error) => {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load chart data.\",\r\n error\r\n );\r\n },\r\n },\r\n options: {\r\n plugins: {\r\n legend: {\r\n display: false,\r\n },\r\n },\r\n },\r\n });\r\n }\r\n\r\n createParams(filter) {\r\n const obj = {\r\n from: filter.from,\r\n to: filter.to,\r\n previousCycleFrom: filter.previousCycleFrom,\r\n previousCycleTo: filter.previousCycleTo,\r\n timeZone: filter.timeZone,\r\n };\r\n\r\n return obj;\r\n }\r\n\r\n getActivityChartData(filter, abortController) {\r\n throw new Error(\"Method not implemented\");\r\n }\r\n\r\n fetchSummary(filter, abortController) {\r\n throw new Error(\"Method not implemented\");\r\n }\r\n\r\n @action.bound\r\n setSummaryData(data) {\r\n this.summaryData = data;\r\n }\r\n\r\n fetch(filter, abortController) {\r\n return Promise.all([\r\n this._fetchSummary(filter, abortController),\r\n this.chartStore.generate(filter, abortController),\r\n ]);\r\n }\r\n\r\n async _fetchSummary(filter, abortController) {\r\n try {\r\n this.loaderStore.suspend();\r\n const params = {\r\n from: filter.from,\r\n to: filter.to,\r\n previousCycleFrom: filter.previousCycleFrom,\r\n previousCycleTo: filter.previousCycleTo,\r\n };\r\n const data = await this.fetchSummary(params, abortController);\r\n data.filteredBy = {\r\n range: filter.range,\r\n timeZone: filter.timeZone,\r\n ...params,\r\n };\r\n runInAction(() => {\r\n this.setSummaryData(data);\r\n this.loaderStore.resume();\r\n });\r\n } catch (error) {\r\n this.loaderStore.resume();\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load summary data.\",\r\n error\r\n );\r\n }\r\n }\r\n}\r\n\r\nexport default BasePortalDetailedActivityViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport {\r\n DeviceAnalyticsService,\r\n StationAnalyticsService,\r\n PodcastAnalyticsService,\r\n PortalAnalyticsService,\r\n NakiNigunAnalyticsService,\r\n} from \"common/services\";\r\n\r\nclass AnalyticsDashboardRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.deviceAnalyticsService = this.rootStore.createApplicationService(DeviceAnalyticsService);\r\n this.stationAnalyticsService = this.rootStore.createApplicationService(StationAnalyticsService);\r\n this.podcastAnalyticsService = this.rootStore.createApplicationService(PodcastAnalyticsService);\r\n this.nakiNigunAnalyticsService = this.rootStore.createApplicationService(NakiNigunAnalyticsService);\r\n this.portalAnalyticsService = this.rootStore.createApplicationService(PortalAnalyticsService);\r\n }\r\n\r\n async getDeviceActivity(filter, abortController) {\r\n const response = await this.deviceAnalyticsService.getDeviceActivity(filter, abortController);\r\n return response.data;\r\n }\r\n\r\n async getTrendingStations(filter, abortController) {\r\n const response = await this.stationAnalyticsService.getTrendingStations(filter, abortController);\r\n return response.data;\r\n }\r\n\r\n async getTrendingPodcasts(filter, abortController) {\r\n const response = await this.podcastAnalyticsService.getTrendingPodcasts(filter, abortController);\r\n return response.data;\r\n }\r\n\r\n async getTrendingNakiNigunAlbums(filter, abortController) {\r\n const response = await this.nakiNigunAnalyticsService.getTrendingNakiNigunAlbums(filter, abortController);\r\n return response.data;\r\n }\r\n\r\n async getPortalAnalytics(filter, abortController) {\r\n const response = await this.portalAnalyticsService.getPortalAnalytics(filter, abortController);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default AnalyticsDashboardRouteStore;\r\n","import { BaseAnalyticsViewStore } from \"administration/analytics/stores\";\r\nimport {\r\n DeviceActivitySummaryViewStore,\r\n TopTrendingPodcastsViewStore,\r\n TopTrendingStationsViewStore,\r\n TopTrendingNakiNigunAlbumsViewStore,\r\n PortalViewStore,\r\n} from \"administration/analytics/stores\";\r\n\r\nclass AnalyticsDashboardViewStore extends BaseAnalyticsViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n this.routeStore = routeStore;\r\n\r\n this.deviceActivitySummaryViewStore = new DeviceActivitySummaryViewStore(this.rootStore, {\r\n routeStore: this.routeStore,\r\n });\r\n this.topTrendingPodcastsViewStore = new TopTrendingPodcastsViewStore(this.rootStore, {\r\n routeStore: this.routeStore,\r\n });\r\n this.topTrendingStationsViewStore = new TopTrendingStationsViewStore(this.rootStore, {\r\n routeStore: this.routeStore,\r\n });\r\n this.topTrendingNakiNigunAlbumsViewStore = new TopTrendingNakiNigunAlbumsViewStore(this.rootStore, {\r\n routeStore: this.routeStore,\r\n });\r\n this.portalViewStore = new PortalViewStore(this.rootStore, {\r\n routeStore: this.routeStore,\r\n });\r\n }\r\n\r\n async fetch(params, abortController) {\r\n await Promise.all([\r\n this.deviceActivitySummaryViewStore.getResources(params, abortController),\r\n this.topTrendingPodcastsViewStore.getResources(params, abortController),\r\n this.topTrendingStationsViewStore.getResources(params, abortController),\r\n this.topTrendingNakiNigunAlbumsViewStore.getResources(params, abortController),\r\n this.portalViewStore.getResources(params, abortController),\r\n ]);\r\n }\r\n\r\n onDestroy() {\r\n super.onDestroy();\r\n this.deviceActivitySummaryViewStore.destroy();\r\n this.topTrendingPodcastsViewStore.destroy();\r\n this.topTrendingNakiNigunAlbumsViewStore.destroy();\r\n this.topTrendingStationsViewStore.destroy();\r\n this.portalViewStore.destroy();\r\n }\r\n}\r\n\r\nexport default AnalyticsDashboardViewStore;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\nimport { LineChartStore } from \"common/components/charts\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\nimport { spanDataSetToFullDateRange, createTimeRangeChartLabel } from \"administration/analytics/utils\";\r\nimport { map } from \"lodash\";\r\n\r\nclass DeviceActivitySummaryViewStore extends MrbBaseViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n this.routeStore = routeStore;\r\n\r\n this.deviceActivityChartStore = new LineChartStore(this.rootStore, {\r\n label: \"Active devices\",\r\n actions: {\r\n preprocessData: (data) => {\r\n const spannedDataset = spanDataSetToFullDateRange(data, (periodStart, periodEnd) => {\r\n return {\r\n periodStartDate: periodStart,\r\n periodEndDate: periodEnd,\r\n count: 0,\r\n };\r\n });\r\n data.data = spannedDataset;\r\n return data;\r\n },\r\n mapLabels: (data) => createTimeRangeChartLabel(data),\r\n mapDataset: (data) => {\r\n return map(data.data, (item) => item.count);\r\n },\r\n find: async (params, abortController) => {\r\n const filter = this.createParams(params);\r\n return this.routeStore.getDeviceActivity(filter, abortController);\r\n },\r\n onError: (error) => {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load device activity graph.\",\r\n error\r\n );\r\n },\r\n },\r\n options: {\r\n plugins: {\r\n legend: {\r\n display: false,\r\n },\r\n },\r\n },\r\n });\r\n }\r\n\r\n onInit() {\r\n return Promise.resolve();\r\n }\r\n\r\n createParams(filter) {\r\n const obj = {\r\n from: filter.from,\r\n to: filter.to,\r\n timeZone: filter.timeZone,\r\n };\r\n\r\n return obj;\r\n }\r\n\r\n async getResources(filter, abortController) {\r\n await this.deviceActivityChartStore.generate(filter, abortController);\r\n }\r\n}\r\n\r\nexport default DeviceActivitySummaryViewStore;\r\n","import { action, observable, makeObservable, runInAction, computed } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\n\r\nclass TopTrendingStationsViewStore extends MrbBaseViewStore {\r\n @observable.ref data = [];\r\n @observable selectedFilterOption = 1;\r\n\r\n filter = null;\r\n\r\n filterOptions = [\r\n { value: 1, label: \"Streams\" },\r\n { value: 2, label: \"Unique Listeners\" },\r\n ];\r\n\r\n @computed get uniqueListeners() {\r\n return this.selectedFilterOption === 2;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n onInit() {\r\n return Promise.resolve();\r\n }\r\n\r\n @action.bound\r\n setFilterOption(value) {\r\n this.selectedFilterOption = value;\r\n this.getResources(this.filter);\r\n }\r\n\r\n async getResources(filter, abortController) {\r\n this.filter = filter;\r\n try {\r\n this.loaderStore.suspend();\r\n const params = this.createParams(filter);\r\n const data = await this.routeStore.getTrendingStations(params, abortController);\r\n runInAction(() => {\r\n this.setData(data.item);\r\n this.loaderStore.resume();\r\n });\r\n } catch (error) {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load podcasts.\",\r\n error\r\n );\r\n this.loaderStore.resume();\r\n }\r\n }\r\n\r\n createParams(filter) {\r\n const obj = {\r\n from: filter.from,\r\n to: filter.to,\r\n previousCycleFrom: filter.previousCycleFrom,\r\n previousCycleTo: filter.previousCycleTo,\r\n timeZone: filter.timeZone,\r\n pageNumber: 1,\r\n pageSize: 10,\r\n uniqueListeners: this.uniqueListeners,\r\n };\r\n\r\n return obj;\r\n }\r\n\r\n @action.bound\r\n setData(data) {\r\n this.data = data;\r\n }\r\n}\r\n\r\nexport default TopTrendingStationsViewStore;\r\n","import { action, observable, makeObservable, runInAction, computed } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\n\r\nclass TopTrendingPodcastsViewStore extends MrbBaseViewStore {\r\n @observable.ref data = [];\r\n @observable selectedFilterOption = 1;\r\n\r\n filter = null;\r\n\r\n filterOptions = [\r\n { value: 1, label: \"Streams\" },\r\n { value: 2, label: \"Unique Listeners\" },\r\n ];\r\n\r\n @computed get uniqueListeners() {\r\n return this.selectedFilterOption === 2;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n onInit() {\r\n return Promise.resolve();\r\n }\r\n\r\n @action.bound\r\n setFilterOption(value) {\r\n this.selectedFilterOption = value;\r\n this.getResources(this.filter);\r\n }\r\n\r\n async getResources(filter, abortController) {\r\n this.filter = filter;\r\n try {\r\n this.loaderStore.suspend();\r\n const params = this.createParams(filter);\r\n const data = await this.routeStore.getTrendingPodcasts(params, abortController);\r\n runInAction(() => {\r\n this.setData(data.item);\r\n this.loaderStore.resume();\r\n });\r\n } catch (error) {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load podcasts.\",\r\n error\r\n );\r\n this.loaderStore.resume();\r\n }\r\n }\r\n\r\n createParams(filter) {\r\n const obj = {\r\n from: filter.from,\r\n to: filter.to,\r\n previousCycleFrom: filter.previousCycleFrom,\r\n previousCycleTo: filter.previousCycleTo,\r\n timeZone: filter.timeZone,\r\n pageNumber: 1,\r\n pageSize: 10,\r\n uniqueListeners: this.uniqueListeners,\r\n };\r\n\r\n return obj;\r\n }\r\n\r\n @action.bound\r\n setData(data) {\r\n this.data = data;\r\n }\r\n}\r\n\r\nexport default TopTrendingPodcastsViewStore;\r\n","import { action, observable, makeObservable, runInAction, computed } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\n\r\nclass TopTrendingNakiNigunAlbumsViewStore extends MrbBaseViewStore {\r\n @observable.ref data = [];\r\n @observable selectedFilterOption = 1;\r\n\r\n filter = null;\r\n\r\n filterOptions = [\r\n { value: 1, label: \"Streams\" },\r\n { value: 2, label: \"Unique Listeners\" },\r\n ];\r\n\r\n @computed get uniqueListeners() {\r\n return this.selectedFilterOption === 2;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n onInit() {\r\n return Promise.resolve();\r\n }\r\n\r\n @action.bound\r\n setFilterOption(value) {\r\n this.selectedFilterOption = value;\r\n this.getResources(this.filter);\r\n }\r\n\r\n async getResources(filter, abortController) {\r\n this.filter = filter;\r\n try {\r\n this.loaderStore.suspend();\r\n const params = this.createParams(filter);\r\n const data = await this.routeStore.getTrendingNakiNigunAlbums(params, abortController);\r\n runInAction(() => {\r\n this.setData(data.item);\r\n this.loaderStore.resume();\r\n });\r\n } catch (error) {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load Naki Nigun albums.\",\r\n error\r\n );\r\n this.loaderStore.resume();\r\n }\r\n }\r\n\r\n createParams(filter) {\r\n const obj = {\r\n from: filter.from,\r\n to: filter.to,\r\n previousCycleFrom: filter.previousCycleFrom,\r\n previousCycleTo: filter.previousCycleTo,\r\n timeZone: filter.timeZone,\r\n pageNumber: 1,\r\n pageSize: 10,\r\n uniqueListeners: this.uniqueListeners,\r\n };\r\n\r\n return obj;\r\n }\r\n\r\n @action.bound\r\n setData(data) {\r\n this.data = data;\r\n }\r\n}\r\n\r\nexport default TopTrendingNakiNigunAlbumsViewStore;\r\n","import { action, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\n\r\nclass PortalViewStore extends MrbBaseViewStore {\r\n @observable.ref data = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n onInit() {\r\n return Promise.resolve();\r\n }\r\n\r\n async getResources(filter, abortController) {\r\n try {\r\n this.loaderStore.suspend();\r\n const params = this.createParams(filter);\r\n const data = await this.routeStore.getPortalAnalytics(params, abortController);\r\n data.filteredBy = {\r\n range: filter.range,\r\n timeZone: filter.timeZone,\r\n ...params,\r\n };\r\n runInAction(() => {\r\n this.setData(data);\r\n this.loaderStore.resume();\r\n });\r\n } catch (error) {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load portal analytics.\",\r\n error\r\n );\r\n this.loaderStore.resume();\r\n }\r\n }\r\n\r\n createParams(filter) {\r\n const obj = {\r\n from: filter.from,\r\n to: filter.to,\r\n previousCycleFrom: filter.previousCycleFrom,\r\n previousCycleTo: filter.previousCycleTo,\r\n };\r\n\r\n return obj;\r\n }\r\n\r\n @action.bound\r\n setData(data) {\r\n this.data = data;\r\n }\r\n}\r\n\r\nexport default PortalViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { DeviceAnalyticsService } from \"common/services\";\r\n\r\nclass DeviceActivityRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(DeviceAnalyticsService);\r\n }\r\n\r\n async getDeviceActivity(filter, abortController) {\r\n const response = await this.service.getDeviceActivity(filter, abortController);\r\n return response.data;\r\n }\r\n\r\n async getDeviceActivitySummary(filter, abortController) {\r\n const response = await this.service.getDeviceActivitySummary(filter, abortController);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default DeviceActivityRouteStore;\r\n","import { BasePortalDetailedActivityViewStore } from \"administration/analytics/stores\";\r\n\r\nclass DeviceActivityViewStore extends BasePortalDetailedActivityViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n chartLabel: \"Active devices\",\r\n });\r\n this.routeStore = routeStore;\r\n }\r\n\r\n getActivityChartData(filter, abortController) {\r\n return this.routeStore.getDeviceActivity(filter, abortController);\r\n }\r\n\r\n fetchSummary(params, abortController) {\r\n return this.routeStore.getDeviceActivitySummary(params, abortController);\r\n }\r\n}\r\n\r\nexport default DeviceActivityViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PortalAnalyticsService } from \"common/services\";\r\n\r\nclass PremiumUsersActivityRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PortalAnalyticsService);\r\n }\r\n\r\n async getPremiumSubscriptionsActivity(filter, abortController) {\r\n const response = await this.service.getPremiumSubscriptionsActivity(filter, abortController);\r\n return response.data;\r\n }\r\n\r\n async getPremiumSubscriptionsSummary(filter, abortController) {\r\n const response = await this.service.getPremiumSubscriptionsSummary(filter, abortController);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default PremiumUsersActivityRouteStore;\r\n","import { BasePortalDetailedActivityViewStore } from \"administration/analytics/stores\";\r\n\r\nclass PremiumUsersActivityViewStore extends BasePortalDetailedActivityViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n chartLabel: \"Premium users\",\r\n });\r\n this.routeStore = routeStore;\r\n }\r\n\r\n getActivityChartData(params, abortController) {\r\n return this.routeStore.getPremiumSubscriptionsActivity(params, abortController);\r\n }\r\n\r\n fetchSummary(params, abortController) {\r\n return this.routeStore.getPremiumSubscriptionsSummary(params, abortController);\r\n }\r\n}\r\n\r\nexport default PremiumUsersActivityViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PortalAnalyticsService } from \"common/services\";\r\n\r\nclass RegisteredUsersActivityRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PortalAnalyticsService);\r\n }\r\n\r\n async getRegisteredUsersActivity(filter, abortController) {\r\n const response = await this.service.getRegisteredUsersActivity(filter, abortController);\r\n return response.data;\r\n }\r\n\r\n async getRegisteredUsersSummary(filter, abortController) {\r\n const response = await this.service.getRegisteredUsersSummary(filter, abortController);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default RegisteredUsersActivityRouteStore;\r\n","import { BasePortalDetailedActivityViewStore } from \"administration/analytics/stores\";\r\n\r\nclass RegisteredUsersActivityViewStore extends BasePortalDetailedActivityViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n chartLabel: \"Portal users\",\r\n });\r\n this.routeStore = routeStore;\r\n }\r\n\r\n getActivityChartData(params, abortController) {\r\n return this.routeStore.getRegisteredUsersActivity(params, abortController);\r\n }\r\n\r\n fetchSummary(params, abortController) {\r\n return this.routeStore.getRegisteredUsersSummary(params, abortController);\r\n }\r\n}\r\n\r\nexport default RegisteredUsersActivityViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PortalAnalyticsService } from \"common/services\";\r\n\r\nclass RegisteredUserDevicesActivityRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PortalAnalyticsService);\r\n }\r\n\r\n async getRegisteredUserDevicesActivity(filter, abortController) {\r\n const response = await this.service.getRegisteredUserDevicesActivity(filter, abortController);\r\n return response.data;\r\n }\r\n\r\n async getRegisteredUserDevicesSummary(filter, abortController) {\r\n const response = await this.service.getRegisteredUserDevicesSummary(filter, abortController);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default RegisteredUserDevicesActivityRouteStore;\r\n","import { BasePortalDetailedActivityViewStore } from \"administration/analytics/stores\";\r\nclass RegisteredUserDevicesActivityViewStore extends BasePortalDetailedActivityViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n chartLabel: \"Registered devices\",\r\n });\r\n this.routeStore = routeStore;\r\n }\r\n\r\n getActivityChartData(params, abortController) {\r\n return this.routeStore.getRegisteredUserDevicesActivity(params, abortController);\r\n }\r\n\r\n fetchSummary(params, abortController) {\r\n return this.routeStore.getRegisteredUserDevicesSummary(params, abortController);\r\n }\r\n}\r\n\r\nexport default RegisteredUserDevicesActivityViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PodcastAnalyticsService } from \"common/services\";\r\n\r\nclass PodcastActivityRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PodcastAnalyticsService);\r\n }\r\n\r\n async getPodcastActivity(stationId, filter, abortController) {\r\n const response = await this.service.getPodcastActivity(stationId, filter, abortController);\r\n return response.data;\r\n }\r\n\r\n async getPodcastSummary(stationId, filter, abortController) {\r\n const response = await this.service.getPodcastSummary(stationId, filter, abortController);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default PodcastActivityRouteStore;\r\n","import { BasePortalDetailedActivityViewStore } from \"administration/analytics/stores\";\r\n\r\nclass PodcastActivityViewStore extends BasePortalDetailedActivityViewStore {\r\n podcastId = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n chartLabel: \"Playbacks\",\r\n });\r\n this.routeStore = routeStore;\r\n\r\n this.podcastId = rootStore.routerStore.routerState.params.id;\r\n }\r\n\r\n getActivityChartData(filter, abortController) {\r\n return this.routeStore.getPodcastActivity(this.podcastId, filter, abortController);\r\n }\r\n\r\n fetchSummary(params, abortController) {\r\n params.embed = \"podcast\";\r\n return this.routeStore.getPodcastSummary(this.podcastId, params, abortController);\r\n }\r\n}\r\n\r\nexport default PodcastActivityViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { StationAnalyticsService } from \"common/services\";\r\n\r\nclass StationActivityRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(StationAnalyticsService);\r\n }\r\n\r\n async getStationActivity(stationId, filter, abortController) {\r\n const response = await this.service.getStationActivity(stationId, filter, abortController);\r\n return response.data;\r\n }\r\n\r\n async getStationSummary(stationId, filter, abortController) {\r\n const response = await this.service.getStationSummary(stationId, filter, abortController);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default StationActivityRouteStore;\r\n","import { BasePortalDetailedActivityViewStore } from \"administration/analytics/stores\";\r\n\r\nclass StationActivityViewStore extends BasePortalDetailedActivityViewStore {\r\n stationId = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n chartLabel: \"Playbacks\",\r\n });\r\n this.routeStore = routeStore;\r\n\r\n this.stationId = rootStore.routerStore.routerState.params.id;\r\n }\r\n\r\n getActivityChartData(params, abortController) {\r\n return this.routeStore.getStationActivity(this.stationId, params, abortController);\r\n }\r\n\r\n fetchSummary(params, abortController) {\r\n params.embed = \"station\";\r\n return this.routeStore.getStationSummary(this.stationId, params, abortController);\r\n }\r\n}\r\n\r\nexport default StationActivityViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { NakiNigunAnalyticsService } from \"common/services\";\r\n\r\nclass NakiNigunAlbumActivityRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(NakiNigunAnalyticsService);\r\n }\r\n\r\n async getNakiNigunAlbumActivity(nakiNigunAlbumId, filter, abortController) {\r\n const response = await this.service.getNakiNigunAlbumActivity(nakiNigunAlbumId, filter, abortController);\r\n return response.data;\r\n }\r\n\r\n async getNakiNigunAlbumSummary(nakiNigunAlbumId, filter, abortController) {\r\n const response = await this.service.getNakiNigunAlbumSummary(nakiNigunAlbumId, filter, abortController);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumActivityRouteStore;\r\n","import { BasePortalDetailedActivityViewStore } from \"administration/analytics/stores\";\r\n\r\nclass NakiNigunAlbumActivityViewStore extends BasePortalDetailedActivityViewStore {\r\n podcastId = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n chartLabel: \"Playbacks\",\r\n });\r\n this.routeStore = routeStore;\r\n\r\n this.nakiNigunAlbumId = rootStore.routerStore.routerState.params.id;\r\n }\r\n\r\n getActivityChartData(filter, abortController) {\r\n return this.routeStore.getNakiNigunAlbumActivity(this.nakiNigunAlbumId, filter, abortController);\r\n }\r\n\r\n fetchSummary(params, abortController) {\r\n params.embed = \"nakiNigunAlbum\";\r\n return this.routeStore.getNakiNigunAlbumSummary(this.nakiNigunAlbumId, params, abortController);\r\n }\r\n}\r\n\r\nexport default NakiNigunAlbumActivityViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PortalAnalyticsService } from \"common/services\";\r\n\r\nclass ConnectedDevicesActivityRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PortalAnalyticsService);\r\n }\r\n\r\n async getConnectedDevicesActivity(filter, abortController) {\r\n const response = await this.service.getConnectedDevicesActivity(filter, abortController);\r\n return response.data;\r\n }\r\n\r\n async getConnectedDevicesSummary(filter, abortController) {\r\n const response = await this.service.getConnectedDevicesSummary(filter, abortController);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default ConnectedDevicesActivityRouteStore;\r\n","import { BasePortalDetailedActivityViewStore } from \"administration/analytics/stores\";\r\n\r\nclass ConnectedDevicesActivityViewStore extends BasePortalDetailedActivityViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n chartLabel: \"New devices\",\r\n });\r\n this.routeStore = routeStore;\r\n }\r\n\r\n getActivityChartData(params, abortController) {\r\n return this.routeStore.getConnectedDevicesActivity(params, abortController);\r\n }\r\n\r\n fetchSummary(params, abortController) {\r\n return this.routeStore.getConnectedDevicesSummary(params, abortController);\r\n }\r\n}\r\n\r\nexport default ConnectedDevicesActivityViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { StationAnalyticsService, StationFileStreamService } from \"common/services\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\n\r\nclass TrendingStationListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(StationAnalyticsService);\r\n this.stationFileStreamService = this.rootStore.createApplicationService(StationFileStreamService);\r\n }\r\n\r\n async getTrendingStations(filter) {\r\n const response = await this.service.getTrendingStations(filter);\r\n return response.data;\r\n }\r\n\r\n createStationCoverImageUrl(coverImageId, width = null, height = null) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.stationFileStreamService.routeService.get(coverImageId),\r\n {\r\n width: width,\r\n height: height,\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport default TrendingStationListRouteStore;\r\n","import { MrbBaseInfiniteScrollListViewStore } from \"mrb/core\";\r\nimport { AnalyticsTimeRangeViewStore } from \"administration/analytics/stores\";\r\nimport { AnalyticsFilter } from \"administration/analytics/filters\";\r\nimport { timeRangeType } from \"administration/analytics/constants\";\r\nimport { MrbInfiniteScrollGridViewStore } from \"mrb/components/infinite-scroll-grid\";\r\nimport { action, observable, computed, makeObservable } from \"mobx\";\r\n\r\nclass TrendingStationListViewStore extends MrbBaseInfiniteScrollListViewStore {\r\n @observable selectedFilterOption = 1;\r\n\r\n filterOptions = [\r\n { value: 1, label: \"Streams\" },\r\n { value: 2, label: \"Unique Listeners\" },\r\n ];\r\n\r\n @computed get uniqueListeners() {\r\n return this.selectedFilterOption === 2;\r\n }\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n filter: new AnalyticsFilter(),\r\n paramKeyMap: {\r\n _range: \"range\",\r\n },\r\n ignoreQueryParams: [\"page\", \"timeZone\", \"rpp\"],\r\n queryParamMap: {\r\n from: {\r\n toQuery: (value) => {\r\n if (this.queryUtility.filter.range === timeRangeType.custom) {\r\n return value;\r\n }\r\n return undefined;\r\n },\r\n },\r\n to: {\r\n toQuery: (value) => {\r\n if (this.queryUtility.filter.range === timeRangeType.custom) {\r\n return value;\r\n }\r\n return undefined;\r\n },\r\n },\r\n },\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.analyticsTimeRangeViewStore = new AnalyticsTimeRangeViewStore(this.rootStore, {\r\n queryUtility: this.queryUtility,\r\n });\r\n\r\n this.setGridStore(\r\n new MrbInfiniteScrollGridViewStore(this.rootStore, this.queryUtility, {\r\n generateKey: (item) => item.id,\r\n mapper: (item) => {\r\n return {\r\n id: item.stationId,\r\n title: item.station ? item.station.title : \"Unknown station\",\r\n isPremium: item.station && item.station.isPremium,\r\n coverImageUrl: this.createCoverImageUrl(item.station),\r\n score: item.currentCycleScore,\r\n currentCyclePosition: item.currentCyclePosition,\r\n previousCyclePosition: item.previousCyclePosition,\r\n routeParams: item.station\r\n ? {\r\n route: \"master.administration.analytics.station-activity\",\r\n params: { id: item.station.id },\r\n queryParams: this.rootStore.routerStore.routerState.queryParams,\r\n }\r\n : null,\r\n };\r\n },\r\n })\r\n );\r\n\r\n this.createCoverImageUrl = this.createCoverImageUrl.bind(this);\r\n }\r\n\r\n find(params) {\r\n const filter = {\r\n from: params.from,\r\n to: params.to,\r\n previousCycleFrom: params.previousCycleFrom,\r\n previousCycleTo: params.previousCycleTo,\r\n timeZone: params.timeZone,\r\n pageNumber: params.pageNumber,\r\n pageSize: 30,\r\n uniqueListeners: this.uniqueListeners,\r\n };\r\n return this.routeStore.getTrendingStations(filter);\r\n }\r\n\r\n createCoverImageUrl(item) {\r\n if (item && item.coverImageId) {\r\n return this.routeStore.createStationCoverImageUrl(item.coverImageId, 150, 150);\r\n }\r\n return null;\r\n }\r\n\r\n @action.bound\r\n setFilterOption(value) {\r\n this.selectedFilterOption = value;\r\n this.analyticsTimeRangeViewStore.queryUtility.fetch();\r\n }\r\n}\r\n\r\nexport default TrendingStationListViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PodcastAnalyticsService, PodcastFileStreamService } from \"common/services\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\n\r\nclass TrendingPodcastListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PodcastAnalyticsService);\r\n this.PodcastFileStreamService = this.rootStore.createApplicationService(PodcastFileStreamService);\r\n }\r\n\r\n async getTrendingPodcasts(filter) {\r\n const response = await this.service.getTrendingPodcasts(filter);\r\n return response.data;\r\n }\r\n\r\n createPodcastCoverImageUrl(coverImageId, width = null, height = null) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.PodcastFileStreamService.routeService.get(coverImageId),\r\n {\r\n width: width,\r\n height: height,\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport default TrendingPodcastListRouteStore;\r\n","import { MrbBaseInfiniteScrollListViewStore } from \"mrb/core\";\r\nimport { AnalyticsTimeRangeViewStore } from \"administration/analytics/stores\";\r\nimport { AnalyticsFilter } from \"administration/analytics/filters\";\r\nimport { timeRangeType } from \"administration/analytics/constants\";\r\nimport { MrbInfiniteScrollGridViewStore } from \"mrb/components/infinite-scroll-grid\";\r\nimport { action, observable, computed, makeObservable } from \"mobx\";\r\n\r\nclass TrendingPodcastListViewStore extends MrbBaseInfiniteScrollListViewStore {\r\n @observable selectedFilterOption = 1;\r\n\r\n filterOptions = [\r\n { value: 1, label: \"Streams\" },\r\n { value: 2, label: \"Unique Listeners\" },\r\n ];\r\n\r\n @computed get uniqueListeners() {\r\n return this.selectedFilterOption === 2;\r\n }\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n filter: new AnalyticsFilter(),\r\n paramKeyMap: {\r\n _range: \"range\",\r\n },\r\n ignoreQueryParams: [\"page\", \"timeZone\", \"rpp\"],\r\n queryParamMap: {\r\n from: {\r\n toQuery: (value) => {\r\n if (this.queryUtility.filter.range === timeRangeType.custom) {\r\n return value;\r\n }\r\n return undefined;\r\n },\r\n },\r\n to: {\r\n toQuery: (value) => {\r\n if (this.queryUtility.filter.range === timeRangeType.custom) {\r\n return value;\r\n }\r\n return undefined;\r\n },\r\n },\r\n },\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n this.analyticsTimeRangeViewStore = new AnalyticsTimeRangeViewStore(this.rootStore, {\r\n queryUtility: this.queryUtility,\r\n });\r\n\r\n this.setGridStore(\r\n new MrbInfiniteScrollGridViewStore(this.rootStore, this.queryUtility, {\r\n generateKey: (item) => item.id,\r\n mapper: (item) => {\r\n return {\r\n id: item.podcastId,\r\n title: item.podcast ? item.podcast.title : \"Unknown podcast\",\r\n isPremium: item.podcast && item.podcast.isPremium,\r\n coverImageUrl: this.createCoverImageUrl(item.podcast),\r\n score: item.currentCycleScore,\r\n currentCyclePosition: item.currentCyclePosition,\r\n previousCyclePosition: item.previousCyclePosition,\r\n routeParams: item.podcast\r\n ? {\r\n route: \"master.administration.analytics.podcast-activity\",\r\n params: { id: item.podcast.id },\r\n queryParams: this.rootStore.routerStore.routerState.queryParams,\r\n }\r\n : null,\r\n };\r\n },\r\n })\r\n );\r\n\r\n this.createCoverImageUrl = this.createCoverImageUrl.bind(this);\r\n }\r\n\r\n find(params) {\r\n const filter = {\r\n from: params.from,\r\n to: params.to,\r\n previousCycleFrom: params.previousCycleFrom,\r\n previousCycleTo: params.previousCycleTo,\r\n timeZone: params.timeZone,\r\n pageNumber: params.pageNumber,\r\n pageSize: 30,\r\n uniqueListeners: this.uniqueListeners,\r\n };\r\n return this.routeStore.getTrendingPodcasts(filter);\r\n }\r\n\r\n createCoverImageUrl(item) {\r\n if (item && item.coverImageId) {\r\n return this.routeStore.createPodcastCoverImageUrl(item.coverImageId, 150, 150);\r\n }\r\n return null;\r\n }\r\n\r\n @action.bound\r\n setFilterOption(value) {\r\n this.selectedFilterOption = value;\r\n this.analyticsTimeRangeViewStore.queryUtility.fetch();\r\n }\r\n}\r\n\r\nexport default TrendingPodcastListViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { NakiNigunAnalyticsService, NakiNigunAlbumFileStreamService } from \"common/services\";\r\nimport { createBaasicAuthenticatedMediaVaultUrl } from \"mrb/baasic\";\r\n\r\nclass TrendingNakiNigunAlbumListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(NakiNigunAnalyticsService);\r\n this.NakiNigunAlbumFileStreamService = this.rootStore.createApplicationService(NakiNigunAlbumFileStreamService);\r\n }\r\n\r\n async getTrendingNakiNigunAlbums(filter) {\r\n const response = await this.service.getTrendingNakiNigunAlbums(filter);\r\n return response.data;\r\n }\r\n\r\n createNakiNigunAlbumCoverImageUrl(coverImageId, width = null, height = null) {\r\n return createBaasicAuthenticatedMediaVaultUrl(\r\n this.rootStore,\r\n this.NakiNigunAlbumFileStreamService.routeService.get(coverImageId),\r\n {\r\n width: width,\r\n height: height,\r\n }\r\n );\r\n }\r\n}\r\n\r\nexport default TrendingNakiNigunAlbumListRouteStore;\r\n","import { MrbBaseInfiniteScrollListViewStore } from \"mrb/core\";\r\nimport { AnalyticsTimeRangeViewStore } from \"administration/analytics/stores\";\r\nimport { AnalyticsFilter } from \"administration/analytics/filters\";\r\nimport { timeRangeType } from \"administration/analytics/constants\";\r\nimport { MrbInfiniteScrollGridViewStore } from \"mrb/components/infinite-scroll-grid\";\r\nimport { action, observable, computed, makeObservable } from \"mobx\";\r\n\r\nclass TrendingNakiNigunAlbumListViewStore extends MrbBaseInfiniteScrollListViewStore {\r\n @observable selectedFilterOption = 1;\r\n\r\n filterOptions = [\r\n { value: 1, label: \"Streams\" },\r\n { value: 2, label: \"Unique Listeners\" },\r\n ];\r\n\r\n @computed get uniqueListeners() {\r\n return this.selectedFilterOption === 2;\r\n }\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n filter: new AnalyticsFilter(),\r\n paramKeyMap: {\r\n _range: \"range\",\r\n },\r\n ignoreQueryParams: [\"page\", \"timeZone\", \"rpp\"],\r\n queryParamMap: {\r\n from: {\r\n toQuery: (value) => {\r\n if (this.queryUtility.filter.range === timeRangeType.custom) {\r\n return value;\r\n }\r\n return undefined;\r\n },\r\n },\r\n to: {\r\n toQuery: (value) => {\r\n if (this.queryUtility.filter.range === timeRangeType.custom) {\r\n return value;\r\n }\r\n return undefined;\r\n },\r\n },\r\n },\r\n },\r\n });\r\n makeObservable(this);\r\n\r\n this.routeStore = routeStore;\r\n\r\n this.analyticsTimeRangeViewStore = new AnalyticsTimeRangeViewStore(this.rootStore, {\r\n queryUtility: this.queryUtility,\r\n });\r\n\r\n this.setGridStore(\r\n new MrbInfiniteScrollGridViewStore(this.rootStore, this.queryUtility, {\r\n generateKey: (item) => item.id,\r\n mapper: (item) => {\r\n return {\r\n id: item.nakiNigunAlbumId,\r\n title: item.nakiNigunAlbum ? item.nakiNigunAlbum.title : \"Unknown album\",\r\n isPremium: item.nakiNigunAlbum && item.nakiNigunAlbum.isPremium,\r\n coverImageUrl: this.createCoverImageUrl(item.nakiNigunAlbum),\r\n score: item.currentCycleScore,\r\n currentCyclePosition: item.currentCyclePosition,\r\n previousCyclePosition: item.previousCyclePosition,\r\n routeParams: item.nakiNigunAlbum\r\n ? {\r\n route: \"master.administration.analytics.naki-nigun-album-activity\",\r\n params: { id: item.nakiNigunAlbum.id },\r\n queryParams: this.rootStore.routerStore.routerState.queryParams,\r\n }\r\n : null,\r\n };\r\n },\r\n })\r\n );\r\n\r\n this.createCoverImageUrl = this.createCoverImageUrl.bind(this);\r\n }\r\n\r\n find(params) {\r\n const filter = {\r\n from: params.from,\r\n to: params.to,\r\n previousCycleFrom: params.previousCycleFrom,\r\n previousCycleTo: params.previousCycleTo,\r\n timeZone: params.timeZone,\r\n pageNumber: params.pageNumber,\r\n pageSize: 30,\r\n uniqueListeners: this.uniqueListeners,\r\n };\r\n return this.routeStore.getTrendingNakiNigunAlbums(filter);\r\n }\r\n\r\n createCoverImageUrl(item) {\r\n if (item && item.coverImageId) {\r\n return this.routeStore.createNakiNigunAlbumCoverImageUrl(item.coverImageId, 150, 150);\r\n }\r\n return null;\r\n }\r\n\r\n @action.bound\r\n setFilterOption(value) {\r\n this.selectedFilterOption = value;\r\n this.analyticsTimeRangeViewStore.queryUtility.fetch();\r\n }\r\n}\r\n\r\nexport default TrendingNakiNigunAlbumListViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { DeviceAnalyticsService, DeviceService, PortalAnalyticsService } from \"common/services\";\r\n\r\nclass UserDeviceActivityRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = this.rootStore.createApplicationService(DeviceAnalyticsService);\r\n this.deviceService = this.rootStore.createApplicationService(DeviceService);\r\n this.portalAnalyticsService = this.rootStore.createApplicationService(PortalAnalyticsService);\r\n }\r\n\r\n async getUserDeviceActivitySummary(userId) {\r\n const response = await this.service.getUserActivitySummary(userId);\r\n return response.data;\r\n }\r\n\r\n async getUserPortalStatsSummary(userId) {\r\n const response = await this.portalAnalyticsService.getUserPortalStatsSummary(userId);\r\n return response.data;\r\n }\r\n\r\n async getUserDeviceActivity(filter) {\r\n const response = await this.service.getUserDeviceActivity(filter);\r\n return response.data;\r\n }\r\n\r\n async findUserDevices(filter) {\r\n const response = await this.deviceService.findUserDevice(filter);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default UserDeviceActivityRouteStore;\r\n","import { action, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { DoughnutChartStore } from \"common/components\";\r\nimport { map, sumBy } from \"lodash\";\r\n\r\nconst numberFormatter = new Intl.NumberFormat(\"en-US\", { maximumFractionDigits: 0 });\r\n\r\nclass UserDeviceActivitySummaryViewStore extends MrbBaseViewStore {\r\n @observable.ref contentPlaybacks = [];\r\n\r\n userId = null;\r\n\r\n constructor(rootStore, { userId, routeStore }) {\r\n super(rootStore);\r\n this.routeStore = routeStore;\r\n this.userId = userId;\r\n makeObservable(this);\r\n\r\n this.chartStore = new DoughnutChartStore(this.rootStore, {\r\n actions: {\r\n mapLabels: (data) => {\r\n return map(data, (item) => (item.device ? item.device.deviceName : \"Unregistered device\"));\r\n },\r\n mapDataset: (data) => {\r\n const total = sumBy(data, (item) => item.playbacks);\r\n return map(data, (item) => numberFormatter.format((item.playbacks / total) * 100));\r\n },\r\n },\r\n backgroundColor: [\"#456990\", \"#1b96c6\", \"#41e9b6\", \"#eeb868\", \"#ef767a\"],\r\n borderColor: [\"#456990\", \"#1b96c6\", \"#41e9b6\", \"#eeb868\", \"#ef767a\"],\r\n borderWidth: 1,\r\n options: {\r\n plugins: {\r\n tooltip: {\r\n callbacks: {\r\n label: function (context) {\r\n return `${context.label}: ${context.parsed}%`;\r\n },\r\n },\r\n },\r\n legend: {\r\n position: \"right\",\r\n onClick: null,\r\n labels: {\r\n color: \"#f5f5f5\",\r\n },\r\n },\r\n },\r\n },\r\n });\r\n\r\n this.loadData = this.loadData.bind(this);\r\n }\r\n\r\n loadData() {\r\n return this.getUserDeviceActivitySummary(this.userId);\r\n }\r\n\r\n async getUserDeviceActivitySummary(userId) {\r\n try {\r\n this.chartStore.suspend();\r\n this.loaderStore.suspend();\r\n this.rootStore.mainLoaderStore.suspend();\r\n const data = await this.routeStore.getUserDeviceActivitySummary(userId);\r\n runInAction(() => {\r\n this.chartStore.setDataSet(data.devicePlaybacks);\r\n this.setContentPlaybacks(data.contentPlaybacks);\r\n });\r\n } catch (err) {\r\n console.log(err);\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\"\r\n );\r\n } finally {\r\n this.chartStore.resume();\r\n this.loaderStore.resume();\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n }\r\n\r\n @action.bound\r\n setContentPlaybacks(data) {\r\n this.contentPlaybacks = data;\r\n }\r\n}\r\n\r\nexport default UserDeviceActivitySummaryViewStore;\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { AnalyticsTimeRangeViewStore, UserDeviceActivitySummaryViewStore } from \"administration/analytics/stores\";\r\nimport { DeviceHardwareCell, UserDeviceActivityContentCell } from \"administration/analytics/components\";\r\nimport { UserDeviceActivityFilter } from \"administration/analytics/filters\";\r\nimport { timeRangeType } from \"administration/analytics/constants\";\r\nimport { MrbTableViewStore } from \"mrb/components/table\";\r\nimport { MrbQuerySelectStore } from \"mrb/components/select\";\r\nimport { mrbDefaultFormats } from \"mrb/common/formatting\";\r\nimport { applicationDefaults } from \"common/constants\";\r\n\r\nclass UserDeviceActivityViewStore extends MrbBaseListViewStore {\r\n @observable.ref userPortalSummary = null;\r\n\r\n userId = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n const userId = rootStore.routerStore.routerState.params.userId;\r\n super(rootStore, {\r\n queryConfig: {\r\n filter: new UserDeviceActivityFilter(),\r\n orderBy: \"timeStamp\",\r\n orderDirection: \"desc\",\r\n paramKeyMap: {\r\n _range: \"range\",\r\n },\r\n ignoreQueryParams: [\"timeZone\", \"userId\"],\r\n queryParamMap: {\r\n from: {\r\n toQuery: (value) => {\r\n if (this.queryUtility.filter.range === timeRangeType.custom) {\r\n return value;\r\n }\r\n return undefined;\r\n },\r\n },\r\n to: {\r\n toQuery: (value) => {\r\n if (this.queryUtility.filter.range === timeRangeType.custom) {\r\n return value;\r\n }\r\n return undefined;\r\n },\r\n },\r\n },\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.userId = userId;\r\n\r\n this.analyticsTimeRangeViewStore = new AnalyticsTimeRangeViewStore(this.rootStore, {\r\n queryUtility: this.queryUtility,\r\n });\r\n\r\n this.deviceSelectStore = new MrbQuerySelectStore(\r\n {\r\n placeholder: \"Select devices\",\r\n isSearchable: false,\r\n virtualized: false,\r\n textKey: \"deviceName\",\r\n valueKey: \"id\",\r\n initFetch: true,\r\n isMulti: true,\r\n actions: {\r\n find: (searchTerm) => {\r\n const params = {\r\n searchQuery: searchTerm,\r\n userIds: userId,\r\n embed: \"device\",\r\n fields: \"id,deviceName,device\",\r\n };\r\n return this.routeStore.findUserDevices(params);\r\n },\r\n mapItem: (item) => {\r\n return {\r\n value: item.device.deviceIdentifier,\r\n label: item.deviceName,\r\n item: item,\r\n };\r\n },\r\n },\r\n },\r\n this.queryUtility,\r\n \"deviceIds\"\r\n );\r\n\r\n this.setGridStore(\r\n new MrbTableViewStore(this.rootStore, this.queryUtility, {\r\n columns: [\r\n {\r\n key: \"device.deviceName\",\r\n title: \"Device\",\r\n },\r\n {\r\n key: \"deviceHardware\",\r\n title: \"Device Hardware (Firmware)\",\r\n cell: DeviceHardwareCell,\r\n },\r\n {\r\n key: \"ipAddress\",\r\n title: \"IP Address\",\r\n },\r\n {\r\n key: \"\",\r\n title: \"Content\",\r\n cell: UserDeviceActivityContentCell,\r\n },\r\n {\r\n key: \"trackTitle\",\r\n title: \"Track\",\r\n },\r\n {\r\n key: \"shuffle.name\",\r\n title: \"Shuffle\",\r\n },\r\n {\r\n key: \"timeStamp\",\r\n title: \"Timestamp\",\r\n sortable: true,\r\n format: {\r\n type: mrbDefaultFormats.date,\r\n format: applicationDefaults.formats.dateTimeSeconds,\r\n },\r\n },\r\n ],\r\n })\r\n );\r\n\r\n this.userDeviceActivitySummaryViewStore = new UserDeviceActivitySummaryViewStore(this.rootStore, {\r\n userId: this.userId,\r\n routeStore: this.routeStore,\r\n });\r\n }\r\n\r\n async onInit() {\r\n await Promise.all([\r\n this.queryUtility.initialize(),\r\n this.getUserPortalStatsSummary(this.userId),\r\n this.userDeviceActivitySummaryViewStore.loadData(),\r\n ]);\r\n }\r\n\r\n find(params) {\r\n params.userId = this.userId;\r\n return this.routeStore.getUserDeviceActivity(params);\r\n }\r\n\r\n async getUserPortalStatsSummary(userId) {\r\n try {\r\n const data = await this.routeStore.getUserPortalStatsSummary(userId);\r\n this.setUserPortalSummary(data);\r\n } catch (err) {\r\n console.log(err);\r\n }\r\n }\r\n\r\n @action.bound\r\n setUserPortalSummary(item) {\r\n this.userPortalSummary = item;\r\n }\r\n\r\n onFetchError(err) {\r\n console.log(err);\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\"\r\n );\r\n }\r\n}\r\n\r\nexport default UserDeviceActivityViewStore;\r\n","import { action, computed, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { MrbQuerySimpleSelectStore } from \"mrb/components/select\";\r\nimport { timeRangeType } from \"administration/analytics/constants\";\r\nimport moment from \"moment\";\r\n\r\nconst defaultDropdownOptions = [\r\n { label: \"Custom\", value: timeRangeType.custom },\r\n { label: \"Today\", value: timeRangeType.today },\r\n { label: \"Yesterday\", value: timeRangeType.yesterday },\r\n { label: \"Last 3 days\", value: timeRangeType.last3Days },\r\n { label: \"This Week\", value: timeRangeType.thisWeek },\r\n { label: \"Last Week\", value: timeRangeType.lastWeek },\r\n { label: \"This Month\", value: timeRangeType.thisMonth },\r\n { label: \"Last Month\", value: timeRangeType.lastMonth },\r\n];\r\n\r\nclass AnalyticsTimeRangeViewStore extends MrbBaseViewStore {\r\n maxDate = null;\r\n\r\n @computed get isDateRangeDisabled() {\r\n return this.timeRangeSelectStore.value !== timeRangeType.custom;\r\n }\r\n\r\n constructor(rootStore, { queryUtility, selectableOptions, datePickerOptions = {} }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.queryUtility = queryUtility;\r\n this.datePickerOptions = datePickerOptions;\r\n this.maxDate = this.datePickerOptions.maxDate || moment().startOf(\"day\").toDate();\r\n\r\n this.timeRangeSelectStore = new MrbQuerySimpleSelectStore(\r\n {\r\n textKey: \"label\",\r\n valueKey: \"value\",\r\n fetchOnChange: (selectedOption) => selectedOption.value !== timeRangeType.custom,\r\n },\r\n this.queryUtility,\r\n \"range\",\r\n selectableOptions ? selectableOptions : defaultDropdownOptions\r\n );\r\n\r\n this.applyFilter = this.applyFilter.bind(this);\r\n }\r\n\r\n @action.bound\r\n setFromDate(value) {\r\n this.queryUtility.filter.set(\r\n \"from\",\r\n moment.utc(value).tz(this.queryUtility.filter.timeZone).startOf(\"day\").toISOString()\r\n );\r\n }\r\n\r\n @action.bound\r\n setToDate(value) {\r\n this.queryUtility.filter.set(\r\n \"to\",\r\n moment.utc(value).tz(this.queryUtility.filter.timeZone).endOf(\"day\").toISOString()\r\n );\r\n }\r\n\r\n applyFilter() {\r\n return this.queryUtility.fetch();\r\n }\r\n}\r\n\r\nexport default AnalyticsTimeRangeViewStore;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { AnalyticsFilter } from \"administration/analytics/filters\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { isNil } from \"lodash\";\r\n\r\nclass BaseStatsWidgetViewStore extends MrbBaseViewStore {\r\n @observable.ref item = null;\r\n @observable.ref filter = new AnalyticsFilter();\r\n options = null;\r\n\r\n @computed get currentPeriodLabel() {\r\n return dateFormatter.format(this.filter.from, {\r\n format: applicationDefaults.formats.monthFull,\r\n timeZone: this.filter.timeZone,\r\n });\r\n }\r\n\r\n @computed get previousPeriodLabel() {\r\n return dateFormatter.format(this.filter.previousCycleFrom, {\r\n format: \"MMMM, YYYY\",\r\n timeZone: this.filter.timeZone,\r\n });\r\n }\r\n\r\n constructor(rootStore, options) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.options = options;\r\n }\r\n\r\n onInit() {\r\n return this.fetchResource(this.filter);\r\n }\r\n\r\n async fetchResource(filter) {\r\n try {\r\n const item = await this.fetch(filter);\r\n this.setItem(item);\r\n } catch (err) {\r\n console.log(err);\r\n //TODO: error handling\r\n }\r\n }\r\n\r\n fetch(filter) {\r\n throw new Error(\"Method not implemented\");\r\n }\r\n\r\n @action.bound\r\n setItem(item) {\r\n if (!isNil(item)) {\r\n this.item = item;\r\n } else {\r\n this.item = {\r\n currentCycleScore: 0,\r\n currentCyclePosition: null,\r\n previousCyclePosition: null,\r\n };\r\n }\r\n }\r\n\r\n @action.bound\r\n setTimeRange(timeRange) {\r\n this.filter.range = timeRange;\r\n }\r\n\r\n @action.bound\r\n setParameters(params) {\r\n this.parameters = params;\r\n }\r\n}\r\n\r\nexport default BaseStatsWidgetViewStore;\r\n","import { MrbBaseViewStore } from \"mrb/core\";\r\nimport { action, makeObservable, observable } from \"mobx\";\r\n\r\nclass ContentStatsViewStore extends MrbBaseViewStore {\r\n @observable.ref selectedContentType = 0;\r\n contentTypeOptions = [\r\n {\r\n label: \"Podcasts\",\r\n value: 0,\r\n },\r\n {\r\n label: \"Stations\",\r\n value: 1,\r\n },\r\n {\r\n label: \"Naki Nigun\",\r\n value: 2,\r\n },\r\n ];\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n this.routeStore = routeStore;\r\n makeObservable(this);\r\n }\r\n\r\n @action.bound\r\n setSelectedContentType = (content) => {\r\n this.selectedContentType = content;\r\n };\r\n}\r\n\r\nexport default ContentStatsViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PodcastAnalyticsService } from \"common/services\";\r\n\r\nclass ContentStatsRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PodcastAnalyticsService);\r\n }\r\n\r\n async getPodcastListenersStats() {\r\n const response = await this.service.getPodcastListenersStats();\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default ContentStatsRouteStore;\r\n","import { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbGridViewStore } from \"mrb/components/grid\";\r\nimport { PodcastAnalyticsService } from \"common/services\";\r\nimport { computed, makeObservable } from \"mobx\";\r\n\r\nclass PodcastListenersListViewStore extends MrbBaseListViewStore {\r\n @computed get isInitalized() {\r\n return this.gridStore.dataInitialized;\r\n }\r\n\r\n constructor(rootStore, podcastListenersListViewStore) {\r\n super(rootStore, {});\r\n makeObservable(this);\r\n this.podcastListenersListViewStore = podcastListenersListViewStore;\r\n this.routeStore = this.podcastListenersListViewStore.routeStore;\r\n this.service = rootStore.createApplicationService(PodcastAnalyticsService);\r\n\r\n this.setGridStore(\r\n new MrbGridViewStore(this.rootStore, this.queryUtility, {\r\n generateKey: (item) => item.id,\r\n mapper: (item, i) => {\r\n return {\r\n ...item,\r\n coverImageUrl: this.createCoverImageUrl(item),\r\n position: i + 1,\r\n };\r\n },\r\n })\r\n );\r\n this.createCoverImageUrl = this.createCoverImageUrl.bind(this);\r\n }\r\n\r\n async onInit() {\r\n this.gridStore.suspend();\r\n const response = await this.service.getPodcastListenersStats();\r\n this.gridStore.setData(response.data);\r\n this.gridStore.resume();\r\n }\r\n\r\n createCoverImageUrl(item) {\r\n if (item && item.coverImageId) {\r\n return this.rootStore.coverImageFactory.createPodcastCoverImageUrl(item.coverImageId, 150, 150);\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport default PodcastListenersListViewStore;\r\n","import { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbGridViewStore } from \"mrb/components/grid\";\r\nimport { StationAnalyticsService } from \"common/services\";\r\nimport { computed, makeObservable } from \"mobx\";\r\n\r\nclass StationListenersListViewStore extends MrbBaseListViewStore {\r\n @computed get isInitalized() {\r\n return this.gridStore.dataInitialized;\r\n }\r\n\r\n constructor(rootStore, stationListenersListViewStore) {\r\n super(rootStore, {});\r\n makeObservable(this);\r\n this.stationListenersListViewStore = stationListenersListViewStore;\r\n this.routeStore = this.stationListenersListViewStore.routeStore;\r\n this.service = rootStore.createApplicationService(StationAnalyticsService);\r\n\r\n this.setGridStore(\r\n new MrbGridViewStore(this.rootStore, this.queryUtility, {\r\n generateKey: (item) => item.id,\r\n mapper: (item, i) => {\r\n return {\r\n ...item,\r\n coverImageUrl: this.createCoverImageUrl(item),\r\n position: i + 1,\r\n };\r\n },\r\n })\r\n );\r\n this.createCoverImageUrl = this.createCoverImageUrl.bind(this);\r\n }\r\n\r\n async onInit() {\r\n this.gridStore.suspend();\r\n const response = await this.service.getStationListenersStats();\r\n this.gridStore.setData(response.data);\r\n this.gridStore.resume();\r\n }\r\n\r\n createCoverImageUrl(item) {\r\n if (item && item.coverImageId) {\r\n return this.rootStore.coverImageFactory.createStationCoverImageUrl(item.coverImageId, 150, 150);\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport default StationListenersListViewStore;\r\n","import { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbGridViewStore } from \"mrb/components/grid\";\r\nimport { NakiNigunAnalyticsService } from \"common/services\";\r\nimport { computed, makeObservable } from \"mobx\";\r\n\r\nclass NakiNigunListenersListViewStore extends MrbBaseListViewStore {\r\n @computed get isInitalized() {\r\n return this.gridStore.dataInitialized;\r\n }\r\n\r\n constructor(rootStore, nakiNigunListenersListViewStore) {\r\n super(rootStore, {});\r\n makeObservable(this);\r\n this.nakiNigunListenersListViewStore = nakiNigunListenersListViewStore;\r\n this.routeStore = this.nakiNigunListenersListViewStore.routeStore;\r\n this.service = rootStore.createApplicationService(NakiNigunAnalyticsService);\r\n\r\n this.setGridStore(\r\n new MrbGridViewStore(this.rootStore, this.queryUtility, {\r\n generateKey: (item) => item.id,\r\n mapper: (item, i) => {\r\n return {\r\n ...item,\r\n coverImageUrl: this.createCoverImageUrl(item),\r\n position: i + 1,\r\n };\r\n },\r\n })\r\n );\r\n this.createCoverImageUrl = this.createCoverImageUrl.bind(this);\r\n }\r\n\r\n async onInit() {\r\n this.gridStore.suspend();\r\n const response = await this.service.getNakiNigunListenersStats();\r\n this.gridStore.setData(response.data);\r\n this.gridStore.resume();\r\n }\r\n\r\n createCoverImageUrl(item) {\r\n if (item && item.coverImageId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunAlbumCoverImageUrl(item.coverImageId, 150, 150);\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport default NakiNigunListenersListViewStore;\r\n","const baasicSystemRoles = {\r\n administratorRoleName: \"Administrators\",\r\n userRoleName: \"Users\",\r\n accountOwnerRoleName: \"AccountOwner\",\r\n anonymousRoleName: \"Anonymous\",\r\n};\r\n\r\nexport default baasicSystemRoles;\r\n","import { BaasicApp } from \"baasic-sdk-reactjs\";\r\nimport { localStorageHandler } from \"../common\";\r\n\r\nclass BaasicAppFactory {\r\n create = (apiKey, options = {}) => {\r\n return new BaasicApp(apiKey, {\r\n storageHandler: () => localStorageHandler,\r\n ...options,\r\n });\r\n };\r\n}\r\n\r\nconst baasicAppFactory = new BaasicAppFactory();\r\nexport default baasicAppFactory;\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { default as MrbBaseAppStore } from \"../core/stores/base/MrbBaseAppStore\";\r\n\r\nclass BaasicOptions {\r\n constructor(config) {\r\n this.useSSL = config.useSSL;\r\n this.apiRootUrl = config.appUrl;\r\n this.apiVersion = config.apiVersion;\r\n this.apiKey = config.apiKey;\r\n }\r\n}\r\n\r\nclass BaasicAppStore extends MrbBaseAppStore {\r\n @observable apps = observable.map();\r\n @observable applicationIdentifier = observable.box(null); // react to change of this property to detect application changes\r\n\r\n constructor(rootStore, baasicAppFactory) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.baasicAppFactory = baasicAppFactory;\r\n }\r\n\r\n setApp(app) {\r\n super.setApp(app);\r\n this.applicationIdentifier.set(app ? app.baasic.getApiKey() : null);\r\n }\r\n\r\n @action.bound\r\n register(applicationSettings) {\r\n let app = null;\r\n const { apiKey } = applicationSettings;\r\n if (!this.apps.has(apiKey)) {\r\n app = this.baasicAppFactory.create(\r\n apiKey,\r\n new BaasicOptions(applicationSettings)\r\n );\r\n\r\n this.apps.set(apiKey, app);\r\n } else {\r\n app = this.apps.get(apiKey);\r\n }\r\n\r\n this.setApp({ baasic: app });\r\n\r\n return app;\r\n }\r\n\r\n _getApiClient(app) {\r\n return app.baasic.apiClient;\r\n }\r\n}\r\n\r\nexport default BaasicAppStore;\r\n","import { default as MrbBaseAuthenticationStore } from \"../core/stores/base/MrbBaseAuthenticationStore\";\r\nimport { isNil } from \"lodash\";\r\n\r\n/**\r\n * Handles whether an user is authenticated and therefore is able to access application main services.\r\n * @class\r\n * @memberof Core.Stores\r\n */\r\nclass BaasicAuthenticationStore extends MrbBaseAuthenticationStore {\r\n /**\r\n * @function\r\n * @protected\r\n * @description Synchronize user authentication token with Baasic SDK instance.\r\n */\r\n syncToken() {\r\n const { application } = this.rootStore;\r\n const token =\r\n application && application.baasic\r\n ? application.baasic.getAccessToken() || null\r\n : null;\r\n this.setToken(token);\r\n }\r\n\r\n /**\r\n * @function\r\n * @public\r\n * @description Initialize authentication store and underlying services.\r\n */\r\n initialize() {\r\n this.initAuthEvents();\r\n super.initialize();\r\n }\r\n\r\n /**\r\n * @function\r\n * @protected\r\n * @description Initialize authentication events.\r\n */\r\n initAuthEvents() {\r\n const { application } = this.rootStore;\r\n document.addEventListener(\r\n application.baasic.tokenHandler.tokenExpiredEventName,\r\n () => {\r\n this.syncToken();\r\n }\r\n );\r\n\r\n document.addEventListener(\r\n application.baasic.tokenHandler.tokenUpdatedEventName,\r\n () => {\r\n this.syncToken();\r\n }\r\n );\r\n }\r\n\r\n async login(username, password, options = null) {\r\n const { application } = this.rootStore;\r\n await application.baasic.membershipModule.login.login({\r\n username,\r\n password,\r\n options: options,\r\n });\r\n }\r\n\r\n async logout() {\r\n const { application } = this.rootStore;\r\n const token = application.baasic.getAccessToken();\r\n await application.baasic.membershipModule.login.logout(\r\n token.token,\r\n token.type\r\n );\r\n this.resetSignInRedirect();\r\n }\r\n\r\n isTokenValid(token) {\r\n const isValid =\r\n !isNil(token) &&\r\n (token.expireTime === undefined ||\r\n token.expireTime === null ||\r\n token.expireTime - new Date().getTime() > 0);\r\n return isValid;\r\n }\r\n}\r\n\r\nexport default BaasicAuthenticationStore;\r\n","import { find, split, toLower } from \"lodash\";\r\n\r\nclass BaasicPermissionService {\r\n hasPermission = (user, authorization) => {\r\n let hasPermission = false;\r\n\r\n if (user) {\r\n if (user.permissions) {\r\n if (authorization) {\r\n const tokens = split(authorization, \".\");\r\n if (tokens.length > 0) {\r\n const section = toLower(tokens[0]);\r\n\r\n const sectionPermissions = find(\r\n user.permissions,\r\n (value, key) => toLower(key) === section\r\n );\r\n if (sectionPermissions) {\r\n if (tokens.length > 1) {\r\n const action = toLower(tokens[1]);\r\n for (\r\n var i = 0;\r\n i < sectionPermissions.length;\r\n i++\r\n ) {\r\n if (\r\n toLower(sectionPermissions[i]) ===\r\n action\r\n ) {\r\n hasPermission = true;\r\n break;\r\n }\r\n }\r\n } else {\r\n hasPermission = true;\r\n }\r\n }\r\n }\r\n } else {\r\n hasPermission = true;\r\n }\r\n }\r\n }\r\n\r\n return hasPermission;\r\n };\r\n}\r\n\r\nexport default BaasicPermissionService;\r\n","import { action, runInAction } from \"mobx\";\r\nimport { default as MrbBaseUserStore } from \"../core/stores/base/MrbBaseUserStore\";\r\nimport { BaasicPermissionService } from \"./\";\r\nimport { isNil, get, has, isArray, split, first } from \"lodash\";\r\n\r\n/**\r\n * Handles application authenticated user instance and provides authorization API for Baasic permissions.\r\n * @memberof Core.Stores\r\n */\r\nclass BaasicUserStore extends MrbBaseUserStore {\r\n /**\r\n * @constructor\r\n * @param {Core.Stores.RootStore} rootStore - The instance of the RootStore object.\r\n * @description Initializes a new instance of the BaasicUserStore.\r\n */\r\n constructor(rootStore) {\r\n super(rootStore);\r\n this.permissionService = new BaasicPermissionService();\r\n }\r\n\r\n resolveUser() {\r\n if (this.applicationUser) {\r\n return Promise.resolve();\r\n }\r\n return this.refreshUserAccount();\r\n }\r\n\r\n async refreshUserAccount() {\r\n if (this._resolveUserPromise) {\r\n return this._resolveUserPromise;\r\n }\r\n this._resolveUserPromise = this.resolveBaasicApplicationUser();\r\n const applicationUser = await this._resolveUserPromise;\r\n\r\n this._resolveUserPromise = null;\r\n runInAction(() => {\r\n this.applicationUser = applicationUser;\r\n });\r\n }\r\n\r\n /**\r\n * @function\r\n * @public\r\n * @description Remove stored authenticated user instance. Method will trigger application sign out event.\r\n */\r\n @action.bound\r\n removeUser() {\r\n const { application } = this.rootStore;\r\n\r\n this.applicationUser = null;\r\n if (application && application.baasic) {\r\n application.baasic.setUser(null);\r\n }\r\n }\r\n\r\n /**\r\n * @function\r\n * @async\r\n * @protected\r\n * @description Resolves authenticated user provided by Baasic SDK instance.\r\n */\r\n async resolveBaasicApplicationUser() {\r\n const {\r\n authenticationStore,\r\n application: { baasic: baasicApplication },\r\n } = this.rootStore;\r\n\r\n let user = null;\r\n if (authenticationStore.isAuthenticated) {\r\n const response =\r\n await baasicApplication.membershipModule.login.loadUserData({\r\n embed: \"permissions\",\r\n });\r\n\r\n user = {\r\n ...response.data,\r\n isApplicationUser: true,\r\n apiKey: baasicApplication.getApiKey(),\r\n };\r\n\r\n await this.getUserProfile(user, baasicApplication);\r\n }\r\n\r\n baasicApplication.setUser(user);\r\n return user;\r\n }\r\n\r\n /**\r\n * @function\r\n * @async\r\n * @protected\r\n * @param {Object} user - Instance of the authenticated user.\r\n * @param {Object} baasicApplication - Instance of Baasic SDK application.\r\n * @description Resolves authenticated user Baasic profile provided by the UserProfileModule.\r\n */\r\n async getUserProfile(user, baasicApplication) {\r\n try {\r\n const userProfile =\r\n await baasicApplication.userProfileModule.profile.get(user.id);\r\n if (userProfile && userProfile.data) {\r\n user.userProfile = userProfile.data;\r\n }\r\n } catch (ex) {\r\n // eslint-disable-line\r\n }\r\n }\r\n\r\n /**\r\n * @function\r\n * @public\r\n * @param {string} authorization - The Baasic authorization policy.\r\n * Baasic authorization policy must be in the following format: sectionAbrv.actionAbrv where sectionAbrv specifies Baasic authorization section abbreviation\r\n * and actionAbrv specifies Baasic authorization Action abbreviation.\r\n * @description Determines whether an authenticated user has valid permissions constrained by the provided authorization parameter.\r\n */\r\n hasPermission(authorization) {\r\n const permissionFunc = (policy) => {\r\n if (authorizationValid(policy) && has(this.permissions, policy)) {\r\n return get(this.permissions, policy);\r\n }\r\n\r\n const { user } = this.rootStore.userStore;\r\n const hasPermission = this.permissionService.hasPermission(\r\n user,\r\n policy\r\n );\r\n\r\n if (authorizationValid(policy)) {\r\n this.permissions[policy] = hasPermission;\r\n }\r\n\r\n return hasPermission;\r\n };\r\n\r\n let authorized = true;\r\n if (authorization) {\r\n if (typeof authorization === \"function\") {\r\n return authorization();\r\n }\r\n\r\n let requestedAuthorization;\r\n if (isArray(authorization)) {\r\n requestedAuthorization = authorization;\r\n } else if (typeof authorization === \"string\") {\r\n requestedAuthorization = [authorization];\r\n }\r\n\r\n let l = requestedAuthorization.length;\r\n let i = 0;\r\n while (authorized && i < l) {\r\n const accessPolicy = requestedAuthorization[i++];\r\n authorized = permissionFunc(accessPolicy);\r\n if (!authorized) {\r\n const section = first(split(accessPolicy, \".\"));\r\n if (section && section !== \"\") {\r\n authorized = permissionFunc(section + \".full\");\r\n }\r\n }\r\n }\r\n } else {\r\n authorized = permissionFunc(null);\r\n }\r\n\r\n return authorized;\r\n }\r\n}\r\n\r\nfunction authorizationValid(authorization) {\r\n return !isNil(authorization) && authorization;\r\n}\r\n\r\nexport default BaasicUserStore;\r\n","import * as uritemplate from \"uritemplate\";\r\n\r\nfunction createBaasicAuthenticatedMediaVaultUrl(\r\n rootStore,\r\n imageUrl,\r\n options = {}\r\n) {\r\n const baseUrl = rootStore.application.baasic.getApiUrl();\r\n const token = rootStore.authenticationStore.token;\r\n const params = {\r\n ...options,\r\n token: token ? token.tokenUrl : null,\r\n ttype: token ? token.type : null,\r\n };\r\n const url = `${baseUrl}${imageUrl}{?token,ttype,height,width}`;\r\n return uritemplate.parse(url).expand(params);\r\n}\r\n\r\nexport default createBaasicAuthenticatedMediaVaultUrl;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst HomeListSearchLoaderTemplate = ({ row = 3, props }) => {\r\n const screenwidth = window.innerWidth;\r\n // prettier-ignore\r\n const loaderWidth = screenwidth > 1199 ? screenwidth - 200 : screenwidth;\r\n\r\n const list = [];\r\n let y = 60;\r\n let y2 = 90;\r\n // prettier-ignore\r\n const x1 = screenwidth > 988 ? (screenwidth - 200) / 2 : screenwidth < 540 ? screenwidth : screenwidth / 2;\r\n // prettier-ignore\r\n const x2 = screenwidth > 988 ? (screenwidth - 50) / 2 : screenwidth < 540 ? screenwidth + 165 : (screenwidth + 165) / 2;\r\n\r\n for (let i = 0; i < row; i++) {\r\n list.push(\r\n \r\n \r\n \r\n \r\n\r\n {screenwidth > 426 && (\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n )}\r\n \r\n );\r\n\r\n y += 90;\r\n y2 += 90;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n\r\n {list}\r\n \r\n );\r\n};\r\n\r\nexport default HomeListSearchLoaderTemplate;\r\n","import React, { useRef, useState, useEffect } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst HomeListLoaderTemplate = ({\r\n row = 3,\r\n props,\r\n title,\r\n contentWidth,\r\n backgroundColor = \"#3C3D3E\",\r\n foregroundColor = \"#404143\",\r\n bulk,\r\n explorePremium\r\n}) => {\r\n const ref = useRef(null);\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n\r\n useEffect(() => {\r\n setLoaderWidth(ref.current.offsetWidth);\r\n }, []);\r\n\r\n const screenwidth = window.innerWidth;\r\n const outsideContent = screenwidth - contentWidth;\r\n\r\n const list = [];\r\n\r\n // prettier-ignore\r\n const cardSpace = screenwidth > 540 ? (title ? 206 : 200) : title ? 180 : 160;\r\n const cardSize = screenwidth > 540 ? 140 : 100;\r\n\r\n let x = 0;\r\n let y1 = title ? 36 : 0;\r\n // prettier-ignore\r\n let y2 = title ? screenwidth > 540 ? 190 : 150 : screenwidth > 540 ? 150 : 110;\r\n\r\n let col;\r\n let setX;\r\n\r\n if (screenwidth > 1050 && contentWidth) {\r\n col = Math.floor((outsideContent - 270) / 150);\r\n setX = Math.floor((outsideContent - 230) / col);\r\n } else if (screenwidth > 988) {\r\n if (contentWidth) {\r\n col = Math.floor((outsideContent - 270 + 120) / 150);\r\n setX = Math.floor((outsideContent - 230 + 120) / col);\r\n } else {\r\n col = Math.floor((screenwidth - 260) / 150);\r\n setX = Math.floor((screenwidth - 230) / col);\r\n }\r\n } else if (screenwidth > 540) {\r\n col = Math.floor((screenwidth - 32) / 150);\r\n setX = Math.floor(screenwidth / col / col) + 150;\r\n } else {\r\n col = Math.floor((screenwidth - 32) / 103);\r\n setX = Math.floor(screenwidth / col / col) + 100;\r\n }\r\n\r\n for (let i = 0; i < col; i++) {\r\n for (let j = 0; j < row; j++) {\r\n list.push(\r\n \r\n {/* prettier-ignore */}\r\n \r\n \r\n \r\n );\r\n y1 += bulk ? 215 : cardSpace;\r\n y2 += cardSpace;\r\n }\r\n y1 = title ? 36 : 0;\r\n // prettier-ignore\r\n y2 = title ? screenwidth > 540 ? 190 : 150 : screenwidth > 540 ? 150 : 110;\r\n\r\n x += setX;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {title && }\r\n {list}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default HomeListLoaderTemplate;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst HomePreviewStationsLoaderTemplate = (props) => {\r\n const screenwidth = window.innerWidth;\r\n let loaderWidth;\r\n\r\n if (screenwidth > 1200) {\r\n loaderWidth = 380;\r\n } else if (screenwidth > 990) {\r\n loaderWidth = screenwidth - 260;\r\n } else {\r\n loaderWidth = screenwidth;\r\n }\r\n\r\n const items = [];\r\n let row = 3;\r\n let y = 0;\r\n\r\n for (let i = 0; i < row; i++) {\r\n items.push(\r\n \r\n \r\n \r\n \r\n );\r\n\r\n y += 60;\r\n }\r\n\r\n return (\r\n \r\n {items}\r\n \r\n );\r\n};\r\n\r\nexport default HomePreviewStationsLoaderTemplate;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst HomePreviewSubPodcastListLoaderTemplate = (props) => {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nconst HomePreviewCollapsePanelLoaderTemplate = (props) => {\r\n const screenwidth = window.innerWidth;\r\n let loaderWidth;\r\n\r\n if (screenwidth > 1200) {\r\n loaderWidth = screenwidth - 690;\r\n } else if (screenwidth > 988) {\r\n loaderWidth = screenwidth - 200;\r\n } else {\r\n loaderWidth = screenwidth - 64;\r\n }\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n {screenwidth > 1198 &&
    }\r\n
    \r\n );\r\n};\r\n\r\nexport default HomePreviewSubPodcastListLoaderTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeOrOverrideCss } from \"baasic-react-bootstrap/src/common\";\r\n\r\nfunction HomeEmptyStateTemplate({ t, classNameOverride, classNameExtend }) {\r\n return (\r\n \r\n \r\n

    No results found

    \r\n

    Try adjusting your search to find what you are looking for.

    \r\n \r\n );\r\n}\r\n\r\nHomeEmptyStateTemplate.propTypes = {\r\n t: PropTypes.func.isRequired,\r\n classNameExtend: PropTypes.string,\r\n classNameOverride: PropTypes.string,\r\n};\r\n\r\nexport default HomeEmptyStateTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\n\r\nfunction ConnectDeviceModalTemplate({\r\n title = \"APPLICATION.HOME.CONNECT_DEVICE.TITLE\",\r\n description = \"APPLICATION.HOME.CONNECT_DEVICE.DESCRIPTION\",\r\n modalParams,\r\n t,\r\n}) {\r\n const { params } = modalParams;\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    {t(title)}

    \r\n
    \r\n
    \r\n

    {t(description)}

    \r\n
    \r\n
    \r\n \r\n

    OR

    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nConnectDeviceModalTemplate.propTypes = {\r\n title: PropTypes.string,\r\n description: PropTypes.string,\r\n modalParams: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default ConnectDeviceModalTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { useCanAccessContent, nakiRadioContentType } from \"application/common/content-access\";\r\nimport { Image } from \"common/components\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction HomeSearchResultGridCellTemplate({ item, onCellClick }) {\r\n let contentType;\r\n if (!isNil(item.stationId)) {\r\n contentType = nakiRadioContentType.station;\r\n } else if (!isNil(item.podcastId)) {\r\n contentType = nakiRadioContentType.podcast;\r\n }\r\n const contentAccessResult = useCanAccessContent(contentType, {\r\n isPremium: item.isPremium,\r\n isLegacySubscriptionValid: item.validLegacySubscription,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n });\r\n return (\r\n
    onCellClick(item)} className=\"c-home__preview__item c-home__preview__item--search\">\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n {item.title}{\" \"}\r\n {item.isPremium && !contentAccessResult.canAccessPremium && (\r\n \r\n )}\r\n
    \r\n {item.parentPodcastTitle && (\r\n
    \r\n {item.parentPodcastTitle}\r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nHomeSearchResultGridCellTemplate.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default HomeSearchResultGridCellTemplate;\r\n","import { podcastType } from \"common/constants\";\r\n\r\nfunction getContentActivityStatusIcon(item) {\r\n if (item.podcastType === podcastType.podcastGroup) {\r\n if (item.numberOfEnabledSubPodcasts === 0) {\r\n return \"c-home__status--disabled\";\r\n } else if (item.numberOfSubPodcasts === item.numberOfEnabledSubPodcasts) {\r\n return \"c-home__status--enabled\";\r\n } else if (item.numberOfSubPodcasts > item.numberOfEnabledSubPodcasts) {\r\n return \"c-home__status--mix\";\r\n }\r\n } else {\r\n if (item.isTurnedOn) {\r\n return \"c-home__status--enabled\";\r\n } else {\r\n return \"c-home__status--disabled\";\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nexport default getContentActivityStatusIcon;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { MrbCheckbox } from \"mrb/components/checkbox\";\r\nimport { getContentActivityStatusIcon } from \"application/home/utils\";\r\nimport { podcastType, podcastContentType } from \"common/constants\";\r\nimport { PremiumBadge, Image } from \"common/components\";\r\nimport { useCanAccessContent, nakiRadioContentType } from \"application/common/content-access\";\r\nimport { isNil } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction HomeGridCellTemplate({ onCellClick, goTo, item, homeManageSelectedItemsViewStore }) {\r\n const { isBulk, selectItem, selectedItems } = homeManageSelectedItemsViewStore;\r\n let contentType;\r\n if (!isNil(item.stationId)) {\r\n contentType = nakiRadioContentType.station;\r\n } else if (!isNil(item.podcastId)) {\r\n contentType = nakiRadioContentType.podcast;\r\n }\r\n const contentAccessResult = useCanAccessContent(contentType, {\r\n isPremium: item.isPremium,\r\n isLegacySubscriptionValid: item.validLegacySubscription,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n\r\n return (\r\n \r\n {isBulk && contentAccessResult.canAccess && item.podcastType !== podcastType.podcastGroup && (\r\n
    \r\n {}}\r\n value={\r\n selectedItems.find(\r\n (x) => x.stationId === item.stationId && x.podcastId === item.podcastId\r\n ) !== undefined\r\n }\r\n />\r\n
    \r\n )}\r\n {\r\n isBulk ? selectItem(item) : onCellClick(item);\r\n }}\r\n >\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n
    goTo(item)}>\r\n {item.title}\r\n
    \r\n \r\n );\r\n}\r\n\r\nHomeGridCellTemplate.propTypes = {\r\n onCellClick: PropTypes.func.isRequired,\r\n premiumSubscriptionStore: PropTypes.object.isRequired,\r\n goTo: PropTypes.func.isRequired,\r\n item: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default observer(HomeGridCellTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { HomeDeviceSelect, TogglePremium } from \"application/home/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction HomePreviewHeaderTemplate({ store, hideStatusButton, t }) {\r\n const {\r\n deviceSelectStore,\r\n goBack,\r\n rootStore: { userDeviceStore },\r\n } = store;\r\n\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n {userDeviceStore.deviceCount > 0 ? (\r\n \r\n \r\n {!hideStatusButton && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n ) : (\r\n {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }}\r\n >\r\n Connect Device\r\n \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nHomePreviewHeaderTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n hideStatusButton: PropTypes.bool,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst StatusToggle = observer(function StatusToggle({ store, t }) {\r\n const { item, updateTurnedOnStatus, statusToggleLoader, updatingStatus, isTurnedOn, contentAccessResult } = store;\r\n if (isNil(item)) {\r\n return null;\r\n }\r\n if (!contentAccessResult.canAccessOnSelectedDevice) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n {!isTurnedOn ? (\r\n updateTurnedOnStatus(true)}\r\n />\r\n ) : (\r\n updateTurnedOnStatus(false)}\r\n />\r\n )}\r\n \r\n );\r\n});\r\n\r\nexport default HomePreviewHeaderTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbSimpleSelect } from \"mrb/components/select\";\r\nimport { observer } from \"mobx-react\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nfunction HomeDeviceSelectTemplate({ store, userDeviceStore, t }) {\r\n return (\r\n }\r\n optionRender={(props) => }\r\n t={t}\r\n />\r\n );\r\n}\r\n\r\nHomeDeviceSelectTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n userDeviceStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst DeviceSelectValue = observer(function DeviceSelectValue({ selectedOption, userDeviceStore }) {\r\n const { isDeviceSyncEnabled, setIsDeviceSyncEnabled } = userDeviceStore;\r\n return (\r\n
    \r\n {\r\n setIsDeviceSyncEnabled(!isDeviceSyncEnabled);\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }}\r\n />\r\n
    {selectedOption.label}
    \r\n
    \r\n );\r\n});\r\n\r\nconst DeviceOption = observer(function DeviceOption({ option, userDeviceStore }) {\r\n const { isDeviceSyncEnabled } = userDeviceStore;\r\n const isMobile = option.item.device.systemType.abrv;\r\n const isDisabled = option.item.isDisabled;\r\n\r\n return (\r\n
    \r\n \r\n \r\n
    \r\n\r\n {option.label}\r\n \r\n );\r\n});\r\n\r\nexport default HomeDeviceSelectTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbSimpleSelect } from \"mrb/components/select\";\r\n\r\nfunction HomeOrderBySelectTemplate({ store, t }) {\r\n return (\r\n }\r\n dropdownClassNameExtend={\"c-select__dropdown--secondary\"}\r\n t={t}\r\n />\r\n );\r\n}\r\n\r\nHomeOrderBySelectTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction OrderBySelectValue({ selectedOption, t }) {\r\n return (\r\n \r\n Sort by\r\n {t(selectedOption.label)}\r\n \r\n );\r\n}\r\n\r\nexport default HomeOrderBySelectTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbRadioButtons } from \"mrb/components/radio\";\r\nimport { HomeDeviceSelect } from \"application/home/components\";\r\nimport { MrbQuerySearchInput } from \"mrb/components/input\";\r\nimport { JoyrideOnboarding, ApplicationWidgetPanel } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\n\r\nfunction HomePageHeaderTemplate({ homeViewStore, t }) {\r\n const {\r\n deviceSelectStore,\r\n contentTypeOptions,\r\n changeContentTypeFilter,\r\n queryUtility,\r\n homeGenericSearchViewStore,\r\n anyDevice,\r\n inSearchMode,\r\n rootStore,\r\n } = homeViewStore;\r\n\r\n return (\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n \r\n {t(\"APPLICATION.HOME.LIST.GENERIC_SEARCH.SEARCH_DESCRIPTION\")}\r\n \r\n
    \r\n
    \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n
    \r\n {anyDevice && !inSearchMode && (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n );\r\n}\r\n\r\nHomePageHeaderTemplate.propTypes = {\r\n homeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(HomePageHeaderTemplate);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbPage } from \"mrb/components/layout\";\r\nimport { getPageObject } from \"mrb/components/layout/utils\";\r\n\r\nfunction HomePageLayoutTemplate({ store, children, t, ...pageProps }) {\r\n const { header, content } = getPageObject(children);\r\n\r\n return (\r\n \r\n {header}\r\n {content.header}\r\n {content.sidebar}\r\n
    {content.children}
    \r\n {content.footer}\r\n
    \r\n );\r\n}\r\n\r\nHomePageLayoutTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n children: PropTypes.node.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default HomePageLayoutTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbCollapsiblePanel } from \"mrb/components/collapsible-panel\";\r\nimport { TogglePremium } from \"application/home/components\";\r\nimport { HTMLRender, Image } from \"common/components\";\r\nimport { PodcastUnavailableInApp } from \"application/common/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { applicationDefaults } from \"common/constants\";\r\n\r\nfunction HomeSubPodcastTemplate({ homeSubPodcastViewStore, t }) {\r\n const { subPodcast, isCollapsed, toggleCollapse, setPanelRef } = homeSubPodcastViewStore;\r\n\r\n return (\r\n {\r\n // Since our control is inside a collapse panel, we must prevent toggle button from triggering the collapse change event\r\n if (\r\n event.target.className &&\r\n (event.target.className.includes(\"c-toggle\") || event.target.className.includes(\"toggle-button\"))\r\n ) {\r\n return;\r\n }\r\n toggleCollapse();\r\n }}\r\n headerClassNameExtend=\"u-cursor--pointer\"\r\n headerRender={(props) => (\r\n \r\n )}\r\n >\r\n {() => (\r\n
    \r\n
    \r\n
    \r\n

    \r\n {t(\"APPLICATION.HOME.PODCAST.FIELDS.DESCRIPTION_LINK\")}\r\n

    \r\n {subPodcast.descriptionLink && (\r\n \r\n {subPodcast.descriptionLink}\r\n \r\n )}\r\n
    \r\n
    \r\n\r\n
    \r\n

    {t(\"APPLICATION.HOME.PODCAST.FIELDS.LOCATION\")}

    \r\n

    {subPodcast.location && subPodcast.location.name}

    \r\n
    \r\n\r\n
    \r\n

    {t(\"APPLICATION.HOME.PODCAST.FIELDS.LANGUAGE\")}

    \r\n

    {subPodcast.language && subPodcast.language.name}

    \r\n
    \r\n\r\n
    \r\n

    {t(\"APPLICATION.HOME.PODCAST.FIELDS.GENRES\")}

    \r\n {subPodcast.genres}\r\n
    \r\n\r\n
    \r\n

    \r\n {t(\"APPLICATION.HOME.PODCAST.FIELDS.DESCRIPTION\")}\r\n

    \r\n \r\n {subPodcast.alternativeDescription}\r\n \r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n}\r\n\r\nHomeSubPodcastTemplate.propTypes = {\r\n homeSubPodcastViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nconst SubPodcastPanelHeader = observer(function SubPodcastPanelHeader({ homeSubPodcastViewStore, isCollapsed, t }) {\r\n const {\r\n subPodcast,\r\n coverImageUrl,\r\n isTurnedOn,\r\n isDisabled,\r\n toggleSubPodcastStatus,\r\n contentAccessResult,\r\n rootStore: { premiumSubscriptionStore, userDeviceStore },\r\n } = homeSubPodcastViewStore;\r\n const isLegacySubscriptionValid = premiumSubscriptionStore.isLegacySubscriptionActive(\r\n subPodcast.legacySubscriptionExpirationDate\r\n );\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n

    \r\n {subPodcast.title}\r\n

    \r\n {!contentAccessResult.canAccessPremium && (\r\n \r\n )}\r\n
    \r\n {!contentAccessResult.canAccessOnSelectedDevice && }\r\n {isLegacySubscriptionValid && (\r\n

    \r\n Old subscription until:{\" \"}\r\n \r\n {dateFormatter.format(subPodcast.legacySubscriptionExpirationDate, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n \r\n

    \r\n )}\r\n
    \r\n \r\n\r\n {userDeviceStore.deviceCount > 0 && contentAccessResult.canAccessOnSelectedDevice && (\r\n
    \r\n \r\n {\r\n toggleSubPodcastStatus(!isTurnedOn);\r\n }}\r\n icon=\"u-icon u-icon--lrg u-icon--premium--white\"\r\n classNameOverride={mergeCss(\r\n \"c-btn c-btn--xsml c-btn--status c-btn--rounded\",\r\n isTurnedOn ? \"c-btn--status--enabled\" : \"c-btn--status--disabled\"\r\n )}\r\n />\r\n \r\n
    \r\n )}\r\n \r\n );\r\n});\r\n\r\nexport default observer(HomeSubPodcastTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport {\r\n HomeEmptyState,\r\n HomeGridCell,\r\n HomeOrderBySelect,\r\n HomeFeaturedContent,\r\n HomeListLoader,\r\n HomeManageSelectedItems,\r\n} from \"application/home/components\";\r\nimport { MrbRadioButtons } from \"mrb/components/radio\";\r\nimport { MrbInfiniteScrollGrid } from \"mrb/components/infinite-scroll-grid\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction HomeMainViewTemplate({ homeViewStore, t }) {\r\n const {\r\n gridStore,\r\n orderBySelectStore,\r\n goTo,\r\n rootStore: { premiumSubscriptionStore },\r\n homeFeaturedContentViewStore,\r\n homeManageSelectedItemsViewStore,\r\n } = homeViewStore;\r\n const { isBulk } = homeManageSelectedItemsViewStore;\r\n\r\n return (\r\n \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n\r\n }\r\n loaderRenderer={() => }\r\n cellRenderer={(props) => (\r\n \r\n )}\r\n emptyStateRenderer={() => }\r\n />\r\n
    \r\n );\r\n}\r\n\r\nHomeMainViewTemplate.propTypes = {\r\n homeViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst ContentFilter = observer(function ContentFilter({ homeViewStore, t }) {\r\n const { premiumDisabledOptions, selectedPremiumDisabledOption, changePremiumDisabledFilter } = homeViewStore;\r\n return (\r\n \r\n );\r\n});\r\n\r\nexport default observer(HomeMainViewTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport {\r\n HomeEmptyState,\r\n HomeSearchResultGridCell,\r\n HomeOrderBySelect,\r\n HomeListSearchLoader,\r\n HomeListLoader,\r\n} from \"application/home/components\";\r\nimport { MrbGrid } from \"mrb/components/grid\";\r\nimport { PremiumBadge, Image } from \"common/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { useCanAccessContent, nakiRadioContentType } from \"application/common/content-access\";\r\nimport { MrbPager } from \"mrb/components/pager\";\r\nimport { observer } from \"mobx-react\";\r\nimport { map } from \"lodash\";\r\n\r\nfunction HomeSearchResultsTemplate({ homeGenericSearchViewStore, t }) {\r\n const { gridStore, orderBySelectStore, queryUtility } = homeGenericSearchViewStore;\r\n\r\n return (\r\n \r\n }>\r\n {() => (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n\r\n {gridStore.hasItems && (\r\n
    \r\n
    \r\n

    Search results

    \r\n\r\n
    \r\n \r\n
    \r\n
    \r\n\r\n {/*
    \r\n \r\n
    */}\r\n
    \r\n )}\r\n\r\n }\r\n cellRender={(props) => }\r\n emptyStateRender={() => }\r\n pagerRender={(props) => (\r\n \r\n )}\r\n />\r\n
    \r\n );\r\n}\r\n\r\nHomeSearchResultsTemplate.propTypes = {\r\n homeGenericSearchViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst PodcastGroupsList = observer(function PodcastGroupsList({ homeGenericSearchViewStore, t }) {\r\n const {\r\n podcastGroups,\r\n onClickPodcastGroup,\r\n scrollFeaturedLeft,\r\n scrollFeaturedRight,\r\n isAppearsInScrollable,\r\n setAppearsInContainerRef,\r\n } = homeGenericSearchViewStore;\r\n return (\r\n \r\n {podcastGroups.length > 0 && (\r\n
    \r\n
    \r\n
    \r\n {t(\"APPLICATION.HOME.LIST.GENERIC_SEARCH.APPEARS_IN\")}\r\n
    \r\n {isAppearsInScrollable && (\r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n\r\n
    \r\n
    \r\n {map(podcastGroups, (podcastGroup) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n );\r\n});\r\n\r\nfunction PodcastGroup({ item, onClickPodcastGroup }) {\r\n const contentAccessResult = useCanAccessContent(nakiRadioContentType.podcast, {\r\n isPremium: item.isParentPodcastPremium,\r\n });\r\n return (\r\n
    onClickPodcastGroup(item)}>\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    {item.title}
    \r\n
    \r\n );\r\n}\r\n\r\nexport default observer(HomeSearchResultsTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbCheckbox } from \"mrb/components/checkbox\";\r\nimport { PremiumBadge, Image } from \"common/components\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { getContentActivityStatusIcon } from \"application/home/utils\";\r\nimport { useCanAccessContent, nakiRadioContentType } from \"application/common/content-access\";\r\nimport { HomeListLoader } from \"application/home/components\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { map, isNil } from \"lodash\";\r\nimport { podcastType, podcastContentType } from \"common/constants\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction HomeFeaturedContentTemplate({ homeFeaturedContentViewStore, homeManageSelectedItemsViewStore, t }) {\r\n const {\r\n items,\r\n loaderStore,\r\n onClickFeaturedItem,\r\n isFeaturedScrollable,\r\n scrollFeaturedLeft,\r\n scrollFeaturedRight,\r\n setFeaturedContainerRef,\r\n goTo,\r\n } = homeFeaturedContentViewStore;\r\n const { isBulk } = homeManageSelectedItemsViewStore;\r\n\r\n return (\r\n }>\r\n {() => (\r\n \r\n {items.length > 0 && (\r\n
    \r\n
    \r\n
    \r\n {t(\"APPLICATION.HOME.LIST.FEATURED\")}\r\n
    \r\n {isFeaturedScrollable && (\r\n
    \r\n \r\n \r\n
    \r\n )}\r\n
    \r\n\r\n
    \r\n
    \r\n {map(items, (item) => (\r\n \r\n ))}\r\n
    \r\n
    \r\n
    \r\n )}\r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nHomeFeaturedContentTemplate.propTypes = {\r\n homeFeaturedContentViewStore: PropTypes.object.isRequired,\r\n homeManageSelectedItemsViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst FeaturedItem = observer(function FeaturedItem({\r\n item,\r\n goTo,\r\n onClickFeaturedItem,\r\n homeManageSelectedItemsViewStore,\r\n}) {\r\n const { isBulk, selectItem, selectedItems } = homeManageSelectedItemsViewStore;\r\n let contentType;\r\n if (!isNil(item.stationId)) {\r\n contentType = nakiRadioContentType.station;\r\n } else if (!isNil(item.podcastId)) {\r\n contentType = nakiRadioContentType.podcast;\r\n }\r\n\r\n const contentAccessResult = useCanAccessContent(contentType, {\r\n isPremium: item.isPremium,\r\n isLegacySubscriptionValid: item.validLegacySubscription,\r\n unavailableInMobileApp: item.isVisibleInApp === false,\r\n unavailableInNakiTouch: item.isVisibleInEmbeddedApp === false,\r\n });\r\n return (\r\n \r\n {isBulk && contentAccessResult.canAccess && item.podcastType !== podcastType.podcastGroup && (\r\n
    \r\n {}}\r\n value={\r\n selectedItems.find(\r\n (x) => x.stationId === item.stationId && x.podcastId === item.podcastId\r\n ) !== undefined\r\n }\r\n />\r\n
    \r\n )}\r\n {\r\n isBulk ? selectItem(item) : onClickFeaturedItem(item);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n isBulk ? selectItem(item) : goTo(item);\r\n }}\r\n >\r\n {item.title}\r\n \r\n \r\n );\r\n});\r\n\r\nexport default observer(HomeFeaturedContentTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction TogglePremiumTemplate({ isPremium, canAccessPremiumContent, children, t }) {\r\n if (!isPremium) {\r\n return children;\r\n }\r\n\r\n return (\r\n \r\n {canAccessPremiumContent ? (\r\n {children}\r\n ) : (\r\n {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n }}\r\n >\r\n {t(\"APPLICATION.PREMIUM.GO_PREMIUM\")}\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nTogglePremiumTemplate.propTypes = {\r\n isPremium: PropTypes.bool.isRequired,\r\n canAccessPremiumContent: PropTypes.bool,\r\n t: PropTypes.func.isRequired,\r\n children: PropTypes.any,\r\n};\r\n\r\nexport default observer(TogglePremiumTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbButton } from \"baasic-react-bootstrap/src\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction HomeManageSelectedItemsTemplate({ homeManageSelectedItemsViewStore, t }) {\r\n const { isBulk, changeIsBulk, changeTurnOn, isUpdating } = homeManageSelectedItemsViewStore;\r\n\r\n return (\r\n
    \r\n {isBulk ? (\r\n
    \r\n
    \r\n changeTurnOn(true)}\r\n disabled={isUpdating || !homeManageSelectedItemsViewStore.isSelectedItemsAny}\r\n />\r\n changeTurnOn(false)}\r\n disabled={isUpdating || !homeManageSelectedItemsViewStore.isSelectedItemsAny}\r\n />\r\n
    \r\n \r\n
    \r\n ) : (\r\n
    \r\n \r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nHomeManageSelectedItemsTemplate.propTypes = {\r\n homeManageSelectedItemsViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default observer(HomeManageSelectedItemsTemplate);\r\n","import React from \"react\";\r\nimport { HomeListSearchLoaderTemplate } from \"themes/application/home/components\";\r\n\r\nfunction HomeListSearchLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default HomeListSearchLoader;\r\n","import React from \"react\";\r\nimport { HomeListLoaderTemplate } from \"themes/application/home/components\";\r\n\r\nfunction HomeListLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default HomeListLoader;\r\n","import React from \"react\";\r\nimport { HomePreviewStationsLoaderTemplate } from \"themes/application/home/components\";\r\n\r\nfunction HomePreviewStations(props) {\r\n return ;\r\n}\r\n\r\nexport default HomePreviewStations;\r\n","import React from \"react\";\r\nimport { HomePreviewSubPodcastListLoaderTemplate } from \"themes/application/home/components\";\r\n\r\nfunction HomePreviewSubPodcastListLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default HomePreviewSubPodcastListLoader;\r\n","import React from \"react\";\r\nimport { HomeEmptyStateTemplate } from \"themes/application/home/components\";\r\n\r\nfunction HomeEmptyState(props) {\r\n return ;\r\n}\r\n\r\nexport default HomeEmptyState;\r\n","import React from \"react\";\r\nimport { ConnectDeviceModalTemplate } from \"themes/application/home/components\";\r\n\r\nfunction ConnectDeviceModal(props) {\r\n return ;\r\n}\r\n\r\nexport default ConnectDeviceModal;\r\n","import React from \"react\";\r\nimport { HomeGridCellTemplate } from \"themes/application/home/components\";\r\n\r\nfunction HomeGridCell(props) {\r\n return ;\r\n}\r\n\r\nexport default HomeGridCell;\r\n","import React from \"react\";\r\nimport { HomePreviewHeaderTemplate } from \"themes/application/home/components\";\r\n\r\nfunction HomePreviewHeader(props) {\r\n return ;\r\n}\r\n\r\nexport default HomePreviewHeader;\r\n","import React from \"react\";\r\nimport { HomeDeviceSelectTemplate } from \"themes/application/home/components\";\r\n\r\nfunction HomeDeviceSelect(props) {\r\n return ;\r\n}\r\n\r\nexport default HomeDeviceSelect;\r\n","import React from \"react\";\r\nimport { HomeOrderBySelectTemplate } from \"themes/application/home/components\";\r\n\r\nfunction HomeOrderBySelect(props) {\r\n return ;\r\n}\r\n\r\nexport default HomeOrderBySelect;\r\n","import React from \"react\";\r\nimport { HomePageHeaderTemplate } from \"themes/application/home/components\";\r\n\r\nfunction HomePageHeader(props) {\r\n return ;\r\n}\r\n\r\nexport default HomePageHeader;\r\n","import React from \"react\";\r\nimport { HomePageLayoutTemplate } from \"themes/application/home/components\";\r\n\r\nfunction HomePageLayout(props) {\r\n return ;\r\n}\r\n\r\nexport default HomePageLayout;\r\n","import React from \"react\";\r\nimport { HomeSubPodcastTemplate } from \"themes/application/home/components\";\r\nimport { HomeSubPodcastViewStore } from \"application/home/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) =>\r\n new HomeSubPodcastViewStore(rootStore, componentProps),\r\n \"homeSubPodcastViewStore\"\r\n)\r\nclass HomeSubPodcast extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default HomeSubPodcast;\r\n","import React from \"react\";\r\nimport { HomeSearchResultGridCellTemplate } from \"themes/application/home/components\";\r\n\r\nfunction HomeSearchResultGridCell(props) {\r\n return ;\r\n}\r\n\r\nexport default HomeSearchResultGridCell;\r\n","import React from \"react\";\r\nimport { HomeSearchResultsTemplate } from \"themes/application/home/components\";\r\n\r\nfunction HomeSearchResults(props) {\r\n return ;\r\n}\r\n\r\nexport default HomeSearchResults;\r\n","import React from \"react\";\r\nimport { HomeFeaturedContentTemplate } from \"themes/application/home/components\";\r\nclass HomeFeaturedContent extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default HomeFeaturedContent;\r\n","import React from \"react\";\r\nimport { HomeMainViewTemplate } from \"themes/application/home/components\";\r\n\r\nfunction HomeMainView(props) {\r\n return ;\r\n}\r\n\r\nexport default HomeMainView;\r\n","import React from \"react\";\r\nimport { TogglePremiumTemplate } from \"themes/application/home/components\";\r\n\r\nfunction TogglePremium(props) {\r\n return ;\r\n}\r\n\r\nexport default TogglePremium;\r\n","import React from \"react\";\r\nimport { HomeManageSelectedItemsTemplate } from \"themes/application/home/components\";\r\n\r\nfunction HomeManageSelectedItems(props) {\r\n return ;\r\n}\r\n\r\nexport default HomeManageSelectedItems;","const httpStatusCodes = {\r\n CanceledRequest: -1, //Not a standardized status code, but it can be returned by Baasic SDK to describe canceled request\r\n Continue: 100,\r\n SwitchingProtocols: 101,\r\n OK: 200,\r\n Created: 201,\r\n Accepted: 202,\r\n NonAuthoritativeInformation: 203,\r\n NoContent: 204,\r\n ResetContent: 205,\r\n PartialContent: 206,\r\n MultipleChoices: 300,\r\n Ambiguous: 300,\r\n MovedPermanently: 301,\r\n Moved: 301,\r\n Found: 302,\r\n Redirect: 302,\r\n SeeOther: 303,\r\n RedirectMethod: 303,\r\n NotModified: 304,\r\n UseProxy: 305,\r\n Unused: 306,\r\n TemporaryRedirect: 307,\r\n RedirectKeepVerb: 307,\r\n BadRequest: 400,\r\n Unauthorized: 401,\r\n PaymentRequired: 402,\r\n Forbidden: 403,\r\n NotFound: 404,\r\n MethodNotAllowed: 405,\r\n NotAcceptable: 406,\r\n ProxyAuthenticationRequired: 407,\r\n RequestTimeout: 408,\r\n Conflict: 409,\r\n Gone: 410,\r\n LengthRequired: 411,\r\n PreconditionFailed: 412,\r\n RequestEntityTooLarge: 413,\r\n RequestUriTooLong: 414,\r\n UnsupportedMediaType: 415,\r\n RequestedRangeNotSatisfiable: 416,\r\n ExpectationFailed: 417,\r\n UpgradeRequired: 426,\r\n InternalServerError: 500,\r\n NotImplemented: 501,\r\n BadGateway: 502,\r\n ServiceUnavailable: 503,\r\n GatewayTimeout: 504,\r\n HttpVersionNotSupported: 505,\r\n};\r\n\r\nexport default httpStatusCodes;\r\n","import React from \"react\";\r\nimport { ProducerPaymentReportCellTemplate } from \"themes/common/components/producer\";\r\nimport { ProducerPayoutUserEventListViewStore } from \"administration/producer/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\nimport { observer } from \"mobx-react\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new ProducerPayoutUserEventListViewStore(rootStore, componentProps),\r\n \"producerPayoutUserEventListViewStore\"\r\n)\r\n@observer\r\nclass ProducerPaymentReportCell extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ProducerPaymentReportCell;\r\n","import React from \"react\";\r\nimport { ProducerPlaybackTimeCellTemplate } from \"themes/common/components/producer\";\r\n\r\nfunction ProducerPlaybackTimeCell(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerPlaybackTimeCell;\r\n","import React from \"react\";\r\nimport { UserEventPayoutCellTemplate } from \"themes/common/components/producer\";\r\n\r\nfunction UserEventPayoutCell(props) {\r\n return ;\r\n}\r\n\r\nexport default UserEventPayoutCell;\r\n","import React from \"react\";\r\nimport { ProducerPreviewReportPeriodCellTemplate } from \"themes/common/components/producer\";\r\n\r\nfunction ProducerPreviewReportPeriodCell(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerPreviewReportPeriodCell;\r\n","import React from \"react\";\r\nimport { ProducerPreviewReportPlaybackTimeCellTemplate } from \"themes/common/components/producer\";\r\n\r\nfunction ProducerPreviewReportPlaybackTimeCell(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerPreviewReportPlaybackTimeCell;\r\n","import React from \"react\";\r\nimport { ProducersDetailsListLoaderTemplate } from \"themes/common/components/producer\";\r\n\r\nfunction ProducersDetailsListLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducersDetailsListLoader;\r\n","import React from \"react\";\r\nimport { ProducerSummaryLoaderTemplate } from \"themes/common/components/producer\";\r\n\r\nfunction ProducerSummaryLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerSummaryLoader;\r\n","import React from \"react\";\r\nimport { ProducerFieldSelectTemplate } from \"themes/common/components/producer\";\r\n\r\nfunction ProducerFieldSelect(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerFieldSelect;\r\n","import React from \"react\";\r\nimport { ProducerLabelTemplate } from \"themes/common/components/producer\";\r\n\r\nfunction ProducerLabel(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerLabel;\r\n","import React from \"react\";\r\nimport { ProducerReportTemplate } from \"themes/common/components/producer\";\r\n\r\nfunction ProducerReport(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerReport;\r\n","import React from \"react\";\r\nimport { ProducerReportLayoutTemplate } from \"themes/common/components/producer\";\r\n\r\nfunction ProducerReportLayout(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerReportLayout;\r\n","import React from \"react\";\r\nimport { ProducerReportsTableTemplate } from \"themes/common/components\";\r\n\r\nclass ProducerReportsTable extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default ProducerReportsTable;\r\n","import React from \"react\";\r\nimport { ProducerAccountPreviewBalanceTemplate } from \"themes/common/components/producer\";\r\n\r\nfunction ProducerAccountPreviewBalance(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerAccountPreviewBalance;\r\n","import React from \"react\";\r\nimport { ProducerAccountPreviewRevenueTransactionTemplate } from \"themes/common/components/producer\";\r\n\r\nfunction ProducerAccountPreviewRevenueTransaction(props) {\r\n return ;\r\n}\r\n\r\nexport default ProducerAccountPreviewRevenueTransaction;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeOrOverrideCss } from \"mrb/common/utils\";\r\n\r\nfunction NakiNigunPremiumBadgeTemplate({ classNameOverride, iconSize }) {\r\n const className = mergeOrOverrideCss(\r\n \"u-icon u-icon--plan--sml u-icon--plan u-icon--plan--nigun\",\r\n classNameOverride,\r\n iconSize ? `u-icon--plan--${iconSize}` : \"u-icon--plan--base\"\r\n );\r\n return ;\r\n}\r\n\r\nNakiNigunPremiumBadgeTemplate.propTypes = {\r\n classNameExtend: PropTypes.string,\r\n classNameOverride: PropTypes.string,\r\n};\r\n\r\nexport default NakiNigunPremiumBadgeTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeOrOverrideCss } from \"mrb/common/utils\";\r\n\r\nfunction NakiRadioPremiumBadgeTemplate({ classNameOverride, iconSize }) {\r\n const className = mergeOrOverrideCss(\r\n \"u-icon u-icon--plan u-icon--plan--premium\",\r\n classNameOverride,\r\n iconSize ? `u-icon--plan--${iconSize}` : \"u-icon--plan--base\"\r\n );\r\n return ;\r\n}\r\n\r\nNakiRadioPremiumBadgeTemplate.propTypes = {\r\n classNameExtend: PropTypes.string,\r\n classNameOverride: PropTypes.string,\r\n};\r\n\r\nexport default NakiRadioPremiumBadgeTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeOrOverrideCss } from \"mrb/common/utils\";\r\n\r\nfunction NakiRadioFreeBadgeTemplate({ classNameOverride, iconSize }) {\r\n const className = mergeOrOverrideCss(\r\n \"u-icon u-icon--plan--sml u-icon--plan u-icon--plan--free\",\r\n classNameOverride,\r\n iconSize ? `u-icon--plan--${iconSize}` : \"u-icon--plan--base\"\r\n );\r\n return ;\r\n}\r\n\r\nNakiRadioFreeBadgeTemplate.propTypes = {\r\n classNameExtend: PropTypes.string,\r\n classNameOverride: PropTypes.string,\r\n};\r\n\r\nexport default NakiRadioFreeBadgeTemplate;\r\n","import React, { useRef, useState, useEffect } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst ExplorePremiumLoaderTemplate = ({ className }) => {\r\n const ref = useRef(null);\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n\r\n useEffect(() => {\r\n setLoaderWidth(ref.current.offsetWidth);\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n
    \r\n )\r\n}\r\n\r\nexport default ExplorePremiumLoaderTemplate\r\n\r\nconst ExplorePremiumItem = (props) => {\r\n const { loaderWidth } = props\r\n const screenwidth = window.innerWidth;\r\n\r\n let imgSize = 150;\r\n\r\n let imgX = \"38%\";\r\n let titleX = \"40%\";\r\n\r\n let titleY = 234;\r\n let loaderHeight = 290;\r\n let borderLineY = 274;\r\n let arrowY = 258;\r\n\r\n if (screenwidth > 1199) {\r\n imgSize = 220;\r\n } else if (screenwidth > 988) {\r\n imgX = \"20%\";\r\n titleX = \"26%\";\r\n imgSize = 220;\r\n } else if (screenwidth > 550) {\r\n imgX = \"31%\";\r\n titleX = \"34%\";\r\n imgSize = 220;\r\n } else {\r\n imgX = \"30%\";\r\n titleX = \"26%\";\r\n\r\n loaderHeight = 234;\r\n\r\n arrowY = arrowY - 56;\r\n titleY = titleY - 70;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {screenwidth > 1199 ?\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n :\r\n \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 React, { useRef, useState, useEffect } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst PaymentCardLoaderTemplate = (props) => {\r\n const ref = useRef(null);\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n const loaderHeight = 580;\r\n\r\n useEffect(() => {\r\n setLoaderWidth(ref.current.offsetWidth);\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n {/* Img */}\r\n \r\n\r\n {/* Price */}\r\n \r\n \r\n\r\n {/* Separator */}\r\n \r\n\r\n {/* info */}\r\n \r\n\r\n \r\n\r\n {/* Separator */}\r\n \r\n\r\n {/* Button */}\r\n \r\n\r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nconst InfoList = ({ start, list = 4 }) => {\r\n const infoList = [];\r\n let y = start;\r\n\r\n for (let i = 0; i < list; i++) {\r\n infoList.push(\r\n \r\n {/* Arrow */}\r\n \r\n {/* Text */}\r\n \r\n \r\n );\r\n\r\n y += 39;\r\n }\r\n\r\n return {infoList};\r\n};\r\n\r\nexport default PaymentCardLoaderTemplate;\r\n","import React, { useRef, useState, useEffect } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst SubscriptionPlanLoaderTemplate = (props) => {\r\n const ref = useRef(null);\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n\r\n useEffect(() => {\r\n setLoaderWidth(ref.current.offsetWidth);\r\n }, []);\r\n\r\n return (\r\n \r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
    \r\n
    \r\n );\r\n};\r\n\r\nexport default SubscriptionPlanLoaderTemplate;\r\n","import React, { useRef, useState, useEffect } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst PlanCardLoaderTemplate = (props) => {\r\n const ref = useRef(null);\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n\r\n useEffect(() => {\r\n setLoaderWidth(ref.current.offsetWidth);\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default PlanCardLoaderTemplate;\r\n","import React, { useRef, useState, useEffect } from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\nimport { PlanCardLoader } from \"application/payment/components\";\r\n\r\nconst ChangeSubscriptionPlanLoaderTemplate = () => {\r\n return (\r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ChangeSubscriptionPlanLoaderTemplate;\r\n\r\nconst ChangeSubscriptionInfoLoader = (props) => {\r\n const ref = useRef(null);\r\n const [loaderWidth, setLoaderWidth] = useState(0);\r\n const loaderHeight = 495;\r\n\r\n useEffect(() => {\r\n setLoaderWidth(ref.current.offsetWidth);\r\n }, []);\r\n\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n \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 React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { applicationErrorCodes } from \"common/constants\";\r\n\r\nfunction InvalidPaymentInfoTemplate({ subscription, paymentError, t }) {\r\n let message = null;\r\n if (paymentError) {\r\n if (paymentError.errorCode === applicationErrorCodes.payment.paymentFailedExpiredCreditCard) {\r\n message = (\r\n \r\n Your credit card has expired. In order to continue using {subscription.product.name} subscription,\r\n provide new credit card information.\r\n \r\n );\r\n } else if (paymentError.errorCode === applicationErrorCodes.payment.paymentFailedInvalidCreditCard) {\r\n message = (\r\n \r\n Your credit card is invalid. In order to continue using {subscription.product.name} subscription,\r\n provide new credit card information.\r\n \r\n );\r\n } else {\r\n message = (\r\n \r\n We are unable to process the credit card payment. In order to continue using{\" \"}\r\n {subscription.product.name} subscription, provide new credit card, or contact the\r\n support team.\r\n \r\n );\r\n }\r\n }\r\n\r\n if (!message) {\r\n return null;\r\n }\r\n\r\n return
    {message}
    ;\r\n}\r\n\r\nInvalidPaymentInfoTemplate.propTypes = {\r\n subscription: PropTypes.object.isRequired,\r\n paymentError: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default InvalidPaymentInfoTemplate;\r\n","import { PropTypes } from \"prop-types\";\r\nimport { isNil } from \"lodash\";\r\nimport moment from \"moment\";\r\n\r\nfunction PremiumTrialExpirationTemplate({ subscription, t }) {\r\n const todayDate = moment().startOf(\"day\");\r\n const diff = moment(subscription.trialPeriod.trialEndDate).startOf(\"day\").diff(todayDate, \"days\");\r\n\r\n if (isNil(subscription.nextBillingDate)) {\r\n return getTrialExpiresDescription(diff, subscription.product, t);\r\n }\r\n return getPremiumStartsDescription(diff, subscription.product, t);\r\n}\r\n\r\nPremiumTrialExpirationTemplate.propTypes = {\r\n subscription: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction getPremiumStartsDescription(daysDiff, product, t) {\r\n if (daysDiff === 1) {\r\n return t(\"APPLICATION.PREMIUM.PREMIUM_STARTS.DESCRIPTION_TOMORROW\", { subscriptionPlan: product.name });\r\n } else if (daysDiff === 0) {\r\n return t(\"APPLICATION.PREMIUM.PREMIUM_STARTS.DESCRIPTION_TODAY\", { subscriptionPlan: product.name });\r\n }\r\n return t(\"APPLICATION.PREMIUM.PREMIUM_STARTS.DESCRIPTION\", { daysNum: daysDiff, subscriptionPlan: product.name });\r\n}\r\n\r\nfunction getTrialExpiresDescription(daysDiff, product, t) {\r\n if (daysDiff === 1) {\r\n return t(\"APPLICATION.PREMIUM.TRIAL_WIDGET.DESCRIPTION_TOMORROW\", { subscriptionPlan: product.name });\r\n } else if (daysDiff === 0) {\r\n return t(\"APPLICATION.PREMIUM.TRIAL_WIDGET.DESCRIPTION_TODAY\", { subscriptionPlan: product.name });\r\n }\r\n return t(\"APPLICATION.PREMIUM.TRIAL_WIDGET.DESCRIPTION\", { daysNum: daysDiff, subscriptionPlan: product.name });\r\n}\r\n\r\nexport default PremiumTrialExpirationTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PremiumBadge, HTMLRender, Image } from \"common/components\";\r\nimport { MrbCollapsiblePanel } from \"mrb/components/collapsible-panel\";\r\nimport { PremiumContentSubListItem } from \"application/payment/components\";\r\nimport { HomeListLoader } from \"application/home/components\";\r\nimport { map } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\n\r\nfunction PremiumContentListItemTemplate({ premiumContentListItemViewStore, item, premiumContentListViewStore }) {\r\n const { goTo } = premiumContentListViewStore;\r\n const { isCollapsed, toggleCollapse, setPanelRef, hasSubContent } = premiumContentListItemViewStore;\r\n\r\n return (\r\n (\r\n \r\n )}\r\n >\r\n {() => (\r\n \r\n \r\n {item.premiumInfo}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nPremiumContentListItemTemplate.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n premiumContentListItemViewStore: PropTypes.object.isRequired,\r\n};\r\n\r\nconst SubItems = observer(function SubItems({ premiumContentViewStore }) {\r\n const { items, loaderStore, onClickSubItem } = premiumContentViewStore;\r\n return (\r\n (\r\n \r\n )}\r\n >\r\n {() => (\r\n
    \r\n {map(items, (item) => (\r\n \r\n ))}\r\n
    \r\n )}\r\n \r\n );\r\n});\r\n\r\nconst ContentItemPanelHeader = observer(function ContentItemPanelHeader({\r\n item,\r\n isCollapsed,\r\n onCellClick,\r\n hasSubContent,\r\n}) {\r\n return (\r\n \r\n
    \r\n {hasSubContent && (\r\n \r\n )}\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n
    \r\n onCellClick(item)}\r\n >\r\n {item.title}\r\n
    \r\n {item.alternativeDescription}\r\n
    \r\n \r\n \r\n );\r\n});\r\n\r\nexport default observer(PremiumContentListItemTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PremiumContentListItem, ExplorePremiumLoader } from \"application/payment/components\";\r\nimport { MrbInfiniteScrollGrid } from \"mrb/components/infinite-scroll-grid\";\r\nimport { MrbRadioButtons } from \"mrb/components/radio\";\r\nimport { isNil } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction PremiumContentListTemplate({ premiumContentListViewStore }) {\r\n const {\r\n gridStore,\r\n routeStore,\r\n premiumSubscriptionsViewStore: { selectedSubscriptionPlan },\r\n } = premiumContentListViewStore;\r\n if (isNil(selectedSubscriptionPlan)) {\r\n return null;\r\n }\r\n return (\r\n
    \r\n

    Explore {selectedSubscriptionPlan.name} Content

    \r\n \r\n\r\n }\r\n // loadMoreLoader={}\r\n classNameOverride=\"c-container--base\"\r\n store={gridStore}\r\n cellRenderer={(props) => (\r\n \r\n )}\r\n />\r\n
    \r\n );\r\n}\r\n\r\nconst ContentFilter = observer(function ContentFilter({ premiumContentListViewStore, t }) {\r\n const { contentTypeOptions, queryUtility, changeContentFilter } = premiumContentListViewStore;\r\n if (isNil(contentTypeOptions)) {\r\n return null;\r\n }\r\n if (contentTypeOptions.length <= 1) {\r\n return null;\r\n }\r\n return (\r\n
    \r\n \r\n
    \r\n );\r\n});\r\n\r\nPremiumContentListTemplate.propTypes = {\r\n premiumContentListViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(PremiumContentListTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { join, map } from \"lodash\";\r\n\r\nfunction PastDueSubscriptionWidgetTemplate({ subscriptions, t }) {\r\n const productNames = map(subscriptions, (subscription) => subscription.product.name);\r\n return (\r\n
    \r\n
    \r\n \r\n

    {t(\"APPLICATION.PREMIUM.PAST_DUE_WIDGET.TITLE\")}

    \r\n
    \r\n\r\n

    \r\n {t(\r\n productNames.length > 1\r\n ? \"APPLICATION.PREMIUM.PAST_DUE_WIDGET.DESCRIPTION_PLURAL\"\r\n : \"APPLICATION.PREMIUM.PAST_DUE_WIDGET.DESCRIPTION\",\r\n {\r\n subscriptionPlan: join(productNames, \" and \"),\r\n }\r\n )}\r\n

    \r\n\r\n \r\n {t(\"APPLICATION.PREMIUM.PAST_DUE_WIDGET.ACTION\")}\r\n \r\n
    \r\n );\r\n}\r\n\r\nPastDueSubscriptionWidgetTemplate.propTypes = {\r\n subscriptions: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default PastDueSubscriptionWidgetTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction CreditCardInfoTemplate({ creditCard, onClickUpdateCreditCard, t }) {\r\n if (isNil(creditCard)) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n #### #### #### {creditCard.last4Numbers} {\" \"}\r\n \r\n {t(`APPLICATION.PREMIUM.CREDIT_CARD_BRAND.${creditCard.brand.toUpperCase()}`)}\r\n \r\n {onClickUpdateCreditCard && (\r\n \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nCreditCardInfoTemplate.propTypes = {\r\n creditCard: PropTypes.object.isRequired,\r\n onClickUpdateCreditCard: PropTypes.func,\r\n secondary: PropTypes.bool,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default CreditCardInfoTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { PremiumTrialExpiration, SubscriptionPrice } from \"application/payment/components\";\r\nimport { isNil } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction PremiumTrialTermsInfoTemplate({ subscription, t }) {\r\n return (\r\n
    \r\n \r\n

    \r\n \r\n

    \r\n {isNil(subscription.nextBillingDate) ? (\r\n
    \r\n

    \r\n To continue using all {subscription.product.name} features after the trial period, activate\r\n subscription. You won't be charged until{\" \"}\r\n {dateFormatter.format(subscription.trialPeriod.trialEndDate, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n , cancel anytime.\r\n

    \r\n
    \r\n ) : (\r\n
    \r\n

    \r\n {subscription.product.name} subscription is activated and starting from{\" \"}\r\n {dateFormatter.format(subscription.trialPeriod.trialEndDate, {\r\n format: applicationDefaults.formats.date,\r\n })}{\" \"}\r\n we will charge your credit card .\r\n You can cancel your subscription to avoid payment.\r\n

    \r\n
    \r\n )}\r\n
    \r\n {isNil(subscription.nextBillingDate) && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nPremiumTrialTermsInfoTemplate.propTypes = {\r\n subscription: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default observer(PremiumTrialTermsInfoTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { UpdateCustomerPaymentMethod } from \"application/payment/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { isNil } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common\";\r\n\r\nfunction CustomerPaymentMethodInfoTemplate({ customerPaymentMethodInfoViewStore, t }) {\r\n const {\r\n customerPaymentMethod,\r\n setIsCreditCardFormVisible,\r\n isCreditCardFormVisible,\r\n rootStore: { premiumSubscriptionStore },\r\n } = customerPaymentMethodInfoViewStore;\r\n\r\n if (isNil(customerPaymentMethod)) {\r\n return null;\r\n }\r\n if (premiumSubscriptionStore.isInternalSubscriptionActive) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n

    Payment Method

    \r\n
    \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n\r\n {isCreditCardFormVisible && (\r\n \r\n \r\n setIsCreditCardFormVisible(!isCreditCardFormVisible)}\r\n label=\"Cancel\"\r\n />\r\n \r\n )}\r\n\r\n {!isCreditCardFormVisible && (\r\n \r\n
    \r\n setIsCreditCardFormVisible(!isCreditCardFormVisible)}\r\n label=\"Update Card\"\r\n />\r\n
    \r\n )}\r\n
    \r\n \r\n );\r\n}\r\n\r\nCustomerPaymentMethodInfoTemplate.propTypes = {\r\n customerPaymentMethodInfoViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nconst CreditCardPanel = observer(function CreditCardPanel({ creditCard, t }) {\r\n if (!creditCard) {\r\n return null;\r\n }\r\n\r\n return (\r\n
    \r\n #### #### #### {creditCard.last4Numbers} \r\n
    \r\n );\r\n});\r\n\r\nexport default observer(CustomerPaymentMethodInfoTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction PaymentSuccessModalTemplate({ modalParams, t }) {\r\n const { params, data = {} } = modalParams;\r\n let title, description;\r\n if (data.trialUpgraded) {\r\n const billingStartDate = dateFormatter.format(data.billingStartDate, {\r\n format: applicationDefaults.formats.longDate,\r\n });\r\n title = t(\"APPLICATION.PREMIUM.TRIAL.UPGRADE_SUCCESS.TITLE\");\r\n description = t(\"APPLICATION.PREMIUM.TRIAL.UPGRADE_SUCCESS.DESCRIPTION\", {\r\n startDate: billingStartDate,\r\n subscriptionPlan: data.subscriptionPlan,\r\n });\r\n } else {\r\n title = t(\"APPLICATION.PAYMENT.PAYMENT_SUCCESS.TITLE\");\r\n description = t(\"APPLICATION.PAYMENT.PAYMENT_SUCCESS.DESCRIPTION\", { subscriptionPlan: data.subscriptionPlan });\r\n }\r\n const buttonLabel = t(\"APPLICATION.PAYMENT.PAYMENT_SUCCESS.CONFIRM_BUTTON\", {\r\n subscriptionPlan: data.subscriptionPlan,\r\n });\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    {title}

    \r\n
    \r\n
    \r\n

    {description}

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nPaymentSuccessModalTemplate.propTypes = {\r\n modalParams: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(PaymentSuccessModalTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbModal } from \"mrb/components/modal\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\n\r\nfunction TrialActivatedModalModalTemplate({ modalParams, t }) {\r\n const { params, data } = modalParams;\r\n const trialEndDate = dateFormatter.format(data.trialEndDate, {\r\n format: applicationDefaults.formats.longDate,\r\n });\r\n const buttonLabel = t(\"APPLICATION.PREMIUM.TRIAL.ACTIVATE_SUCCESS.CONFIRM_BUTTON\", {\r\n subscriptionPlan: data.subscriptionPlan,\r\n });\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n

    {t(\"APPLICATION.PREMIUM.TRIAL.ACTIVATE_SUCCESS.TITLE\")}

    \r\n
    \r\n
    \r\n

    \r\n {t(\"APPLICATION.PREMIUM.TRIAL.ACTIVATE_SUCCESS.DESCRIPTION\", {\r\n endDate: trialEndDate,\r\n subscriptionPlan: data.subscriptionPlan,\r\n })}\r\n

    \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nTrialActivatedModalModalTemplate.propTypes = {\r\n modalParams: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(TrialActivatedModalModalTemplate);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { isFunction } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction TakePaymentHeaderTemplate({ onClickCancel, t = (i) => i, cancelLabel }) {\r\n return (\r\n
    \r\n \r\n \r\n \r\n \r\n Subscriptions\r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nTakePaymentHeaderTemplate.propTypes = {\r\n onClickCancel: PropTypes.func,\r\n t: PropTypes.func,\r\n cancelLabel: PropTypes.string,\r\n};\r\n\r\nconst EditPageActions = observer(function EditPageActions({ onClickCancel, cancelLabel = \"Cancel\", t }) {\r\n return (\r\n \r\n {onClickCancel && isFunction(onClickCancel) && (\r\n \r\n )}{\" \"}\r\n \r\n );\r\n});\r\n\r\nEditPageActions.propTypes = {\r\n onClickCancel: PropTypes.func,\r\n cancelLabel: PropTypes.string,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(TakePaymentHeaderTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { SubscriptionPrice } from \"application/payment/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { applicationDefaults, subscriptionStatuses, subscriptionPlans } from \"common/constants\";\r\nimport { isNil, isFunction, map } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { MrbContentLoader } from \"mrb/components/loader\";\r\nimport { PaymentCardLoader } from \"application/payment/components\";\r\n\r\nfunction SubscriptionPlanCardTemplate({\r\n loaderStore,\r\n subscriptionPlan,\r\n subscription,\r\n subscriptionExist,\r\n isPremiumTrialPeriodUsed,\r\n isInternalSubscriptionActive,\r\n isSubscriptionBundleActive,\r\n onClickExploreContent,\r\n footerRenderer,\r\n}) {\r\n let className = \"c-payment__card--\";\r\n let iconClassName = \"u-icon--subscription--\";\r\n\r\n if (subscriptionPlan.slug === subscriptionPlans.nakiRadioFree) {\r\n className += \"secondary\";\r\n iconClassName += \"tales\";\r\n } else if (subscriptionPlan.slug === subscriptionPlans.nakiNigun) {\r\n className += \"tertiary\";\r\n iconClassName += \"nigun\";\r\n } else if (subscriptionPlan.slug === subscriptionPlans.nakiRadioPremium) {\r\n className += \"primary\";\r\n iconClassName += \"premium\";\r\n }\r\n\r\n return (\r\n }>\r\n {() => (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n

    \r\n {subscriptionPlan.name}\r\n \r\n {subscriptionPlan.price === 0 ? (\r\n \"Free\"\r\n ) : (\r\n \r\n )}\r\n \r\n

    \r\n\r\n
    \r\n {map(subscriptionPlan.features, (feature) => {\r\n return (\r\n

    \r\n \r\n {feature.isStrong ? (\r\n {feature.description}\r\n ) : (\r\n feature.description\r\n )}\r\n

    \r\n );\r\n })}\r\n
    \r\n\r\n {isFunction(footerRenderer) ? (\r\n footerRenderer({\r\n subscriptionPlan,\r\n subscriptionExist,\r\n isPremiumTrialPeriodUsed,\r\n isInternalSubscriptionActive,\r\n onClickExploreContent,\r\n isSubscriptionBundleActive,\r\n })\r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nSubscriptionPlanCardTemplate.propTypes = {\r\n subscriptionPlan: PropTypes.object.isRequired,\r\n isPremiumTrialPeriodUsed: PropTypes.bool,\r\n isInternalSubscriptionActive: PropTypes.bool,\r\n isSubscriptionBundleActive: PropTypes.bool,\r\n subscription: PropTypes.object,\r\n subscriptionExist: PropTypes.bool.isRequired,\r\n footerRenderer: PropTypes.func,\r\n onClickExploreContent: PropTypes.func,\r\n};\r\n\r\nfunction Footer({\r\n subscription,\r\n subscriptionExist,\r\n isPremiumTrialPeriodUsed,\r\n isInternalSubscriptionActive,\r\n isSubscriptionBundleActive,\r\n subscriptionPlan,\r\n onClickExploreContent,\r\n}) {\r\n let actionButton;\r\n let subscriptionStatus = subscription ? subscription.subscriptionStatus.abrv : null;\r\n\r\n if (isSubscriptionBundleActive && subscriptionPlan.slug !== subscriptionPlans.nakiRadioPremium) {\r\n actionButton = (\r\n \r\n );\r\n } else {\r\n if (isSubscriptionBundleActive && subscriptionPlan.slug === subscriptionPlans.nakiRadioPremium) {\r\n subscriptionStatus = subscriptionStatuses.active;\r\n }\r\n\r\n switch (subscriptionStatus) {\r\n case subscriptionStatuses.active:\r\n actionButton = (\r\n \r\n \r\n {!isSubscriptionBundleActive && subscription.endDate\r\n ? `Active Plan until ${dateFormatter.format(subscription.endDate, {\r\n format: applicationDefaults.formats.date,\r\n })}`\r\n : \"Active Plan\"}\r\n \r\n );\r\n break;\r\n case subscriptionStatuses.pending:\r\n actionButton = (\r\n \r\n \r\n Starting from{\" \"}\r\n {dateFormatter.format(subscription.startDate, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n \r\n );\r\n break;\r\n case subscriptionStatuses.trial:\r\n if (isNil(subscription.endDate)) {\r\n actionButton = (\r\n \r\n \r\n Active plan\r\n \r\n );\r\n } else {\r\n actionButton = (\r\n \r\n Subscribe now\r\n \r\n );\r\n }\r\n break;\r\n default:\r\n actionButton = (\r\n \r\n );\r\n break;\r\n }\r\n }\r\n\r\n return (\r\n
    \r\n {actionButton}\r\n
    \r\n onClickExploreContent(subscriptionPlan)}\r\n >\r\n Explore {subscriptionPlan.name}\r\n

    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nfunction DefaultActionButton({ subscriptionPlan, isPremiumTrialPeriodUsed, subscriptionExist, isDisabled }) {\r\n return (\r\n \r\n {subscriptionPlan.price === 0 ? (\r\n
    Free
    \r\n ) : (\r\n \r\n {isPremiumTrialPeriodUsed ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n Free {applicationDefaults.trialPeriodDays}-day Trial\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nexport default SubscriptionPlanCardTemplate;\r\n","import { PropTypes } from \"prop-types\";\r\nimport { roundedCurrencyFormatter } from \"common/utils\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\n\r\nfunction SubscriptionPriceTemplate({ price, isRounded = false }) {\r\n const value = isRounded\r\n ? roundedCurrencyFormatter.format(price)\r\n : currencyFormatter.format(price, { currency: \"USD\" });\r\n\r\n return `${value}/month`;\r\n}\r\n\r\nSubscriptionPriceTemplate.propTypes = {\r\n price: PropTypes.number.isRequired,\r\n isRounded: PropTypes.bool,\r\n};\r\n\r\nexport default SubscriptionPriceTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction PaymentValidationTemplate({ store }) {\r\n const { error } = store;\r\n if (!error) {\r\n return null;\r\n }\r\n\r\n return (\r\n

    \r\n {error.message}\r\n

    \r\n );\r\n}\r\n\r\nPaymentValidationTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default observer(PaymentValidationTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\n\r\nfunction PremiumInfoWidgetTemplate({ t }) {\r\n return (\r\n
    \r\n
    \r\n \r\n

    {t(\"APPLICATION.PREMIUM.INFO_WIDGET.TITLE\")}

    \r\n
    \r\n\r\n

    {t(\"APPLICATION.PREMIUM.INFO_WIDGET.DESCRIPTION\")}

    \r\n\r\n \r\n {t(\"APPLICATION.PREMIUM.INFO_WIDGET.ACTION\")}\r\n \r\n
    \r\n );\r\n}\r\n\r\nPremiumInfoWidgetTemplate.propTypes = {\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default PremiumInfoWidgetTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { PremiumTrialExpiration } from \"application/payment/components\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction PremiumInfoTrialWidgetTemplate({ subscription, t }) {\r\n return (\r\n
    \r\n
    \r\n \r\n

    \r\n {isNil(subscription.nextBillingDate)\r\n ? t(\"APPLICATION.PREMIUM.TRIAL_WIDGET.TITLE\")\r\n : t(\"APPLICATION.PREMIUM.PREMIUM_STARTS.TITLE\")}\r\n

    \r\n
    \r\n\r\n

    \r\n {\" \"}\r\n {isNil(subscription.nextBillingDate)\r\n ? t(\"APPLICATION.PREMIUM.TRIAL_WIDGET.DESCRIPTION_TAKE_ACTION\")\r\n : t(\"APPLICATION.PREMIUM.PREMIUM_STARTS.DESCRIPTION_START_OF_BILLING\")}\r\n

    \r\n \r\n {t(\"APPLICATION.PREMIUM.TRIAL_WIDGET.MORE_INFO\")}\r\n \r\n
    \r\n );\r\n}\r\n\r\nPremiumInfoTrialWidgetTemplate.propTypes = {\r\n subscription: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default PremiumInfoTrialWidgetTemplate;\r\n","import React from \"react\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { applicationDefaults } from \"common/constants\";\r\n\r\nfunction PaymentInfoTemplate({ userSubscriptionInfoViewStore }) {\r\n const { isPremiumTrialPeriodUsed } = userSubscriptionInfoViewStore;\r\n return (\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n\r\n
    \r\n

    You will get:

    \r\n

    \r\n \r\n 250+ hours of quality content from world-class producers\r\n

    \r\n

    \r\n \r\n Story Shuffle compatible, exclusive Premium Shuffle included\r\n

    \r\n

    \r\n \r\n Pause / Resume, Fast Forward / Rewind compatible\r\n

    \r\n

    \r\n \r\n Cancel anytime\r\n

    \r\n

    \r\n \r\n Pricing: $10/month\r\n

    \r\n
    \r\n\r\n {isPremiumTrialPeriodUsed ? (\r\n \r\n $10/month\r\n \r\n ) : (\r\n \r\n Free {applicationDefaults.trialPeriodDays}-day Trial\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default PaymentInfoTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { useStripe, useElements, CardElement } from \"@stripe/react-stripe-js\";\r\nimport { defaultTemplate } from \"common/hoc\";\r\nimport { StripeCreditCardField } from \"common/components\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\n\r\nfunction UpdateCustomerPaymentMethodTemplate({ store, t }) {\r\n const stripe = useStripe();\r\n const elements = useElements();\r\n\r\n const { stripeField, isPaymentDisabled } = store;\r\n\r\n if (!stripe || !elements) {\r\n // Stripe.js has not loaded yet. Make sure to disable\r\n // form submission until Stripe.js has loaded.\r\n return
    loading
    ;\r\n }\r\n store.setStripe(stripe);\r\n\r\n const onSubmit = () => {\r\n // Get a reference to a mounted CardElement. Elements knows how\r\n // to find your CardElement because there can only ever be one of\r\n // each type of element.\r\n const cardElement = elements.getElement(CardElement);\r\n store.onFormSubmit(cardElement);\r\n };\r\n\r\n return (\r\n \r\n
    \r\n {\r\n onSubmit();\r\n event.preventDefault();\r\n event.stopPropagation();\r\n }}\r\n >\r\n
    \r\n \r\n
    \r\n\r\n
    \r\n\r\n
    \r\n \r\n
    \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nUpdateCustomerPaymentMethodTemplate.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nexport default defaultTemplate(UpdateCustomerPaymentMethodTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { PremiumBadge, Image } from \"common/components\";\r\nfunction PremiumContentSubListItemTemplate({ onCellClick, item }) {\r\n return (\r\n
    onCellClick(item)}>\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n\r\n
    {item.title}
    \r\n
    \r\n );\r\n}\r\n\r\nPremiumContentSubListItemTemplate.propTypes = {\r\n onCellClick: PropTypes.func.isRequired,\r\n item: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default PremiumContentSubListItemTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport {\r\n PremiumTrialTermsInfo,\r\n SubscriptionPrice,\r\n InvalidPaymentInfo,\r\n NakiRadioPremiumBadge,\r\n NakiNigunPremiumBadge,\r\n NakiRadioFreeBadge,\r\n} from \"application/payment/components\";\r\nimport { MrbRouterLink } from \"mrb/core/infrastructure/router\";\r\nimport { applicationDefaults, subscriptionPlans, subscriptionStatuses } from \"common/constants\";\r\nimport { isSubscriptionBundle } from \"common/utils\";\r\nimport { observer } from \"mobx-react\";\r\nimport { isNil } from \"lodash\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport moment from \"moment\";\r\n\r\nfunction UserSubscriptionInfoTemplate({ userSubscriptionsPreviewViewStore, t }) {\r\n const { activeSubscription, pendingSubscription, isSubscriptionBundleActive } = userSubscriptionsPreviewViewStore;\r\n return (\r\n
    \r\n
    \r\n \r\n {pendingSubscription && !isSubscriptionBundleActive ? (\r\n \r\n
    \r\n \r\n
    \r\n \r\n
    \r\n ) : null}\r\n
    \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nfunction SubscriptionHeader({ subscription }) {\r\n let premiumBadge = null;\r\n let activeClassName = \"\";\r\n switch (subscription.product.slug) {\r\n case subscriptionPlans.nakiRadioPremium:\r\n premiumBadge = ;\r\n activeClassName = \"primary\";\r\n break;\r\n case subscriptionPlans.nakiNigun:\r\n premiumBadge = ;\r\n activeClassName = \"tertiary\";\r\n break;\r\n default:\r\n premiumBadge = ;\r\n activeClassName = \"secondary\";\r\n break;\r\n }\r\n\r\n let subscriptionStatus = \"\";\r\n let isTrial = false;\r\n switch (subscription.subscriptionStatus.abrv) {\r\n case subscriptionStatuses.pastDue:\r\n subscriptionStatus = \"tertiary\";\r\n break;\r\n case subscriptionStatuses.active:\r\n subscriptionStatus = \"success\";\r\n break;\r\n case subscriptionStatuses.trial:\r\n isTrial = true;\r\n subscriptionStatus = \"secondary\";\r\n break;\r\n default:\r\n break;\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n {premiumBadge}\r\n\r\n
    \r\n

    {subscription.product.name}

    \r\n

    \r\n {isTrial || subscription.amount === 0 ? (\r\n Free\r\n ) : (\r\n \r\n )}\r\n

    \r\n

    \r\n {subscription.subscriptionStatus.name}\r\n

    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nconst SubscriptionDetails = observer(function SubscriptionDetails({ store, t }) {\r\n const {\r\n activeSubscription,\r\n pendingSubscription,\r\n rootStore: { premiumSubscriptionStore },\r\n } = store;\r\n const isPremiumSubscriptionTrial = activeSubscription.subscriptionStatus.abrv === subscriptionStatuses.trial;\r\n\r\n return (\r\n
    \r\n {activeSubscription.product.productCategory &&\r\n isSubscriptionBundle(activeSubscription.product.productCategory) &&\r\n activeSubscription.currentBillingCycle < 12 ? (\r\n \r\n \r\n
    \r\n \r\n
    \r\n ) : (\r\n \r\n {isNil(pendingSubscription) ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n {!premiumSubscriptionStore.isSubscriptionBundleActive &&
    }\r\n\r\n {isPremiumSubscriptionTrial && }\r\n {activeSubscription.latestInvalidPaymentTransaction &&\r\n activeSubscription.latestInvalidPaymentTransaction.error && (\r\n \r\n )}\r\n
    \r\n {activeSubscription.isInternal ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
    \r\n
    \r\n );\r\n});\r\n\r\nconst Discount = observer(function Discount({ userSubscriptionsPreviewViewStore, t }) {\r\n const { activeSubscription } = userSubscriptionsPreviewViewStore;\r\n let activeTo;\r\n\r\n if (isNil(activeSubscription.discount)) {\r\n return null;\r\n }\r\n\r\n if (activeSubscription.discount.activeTo) {\r\n activeTo = dateFormatter.format(activeSubscription.discount.activeTo, {\r\n format: \"MM/DD/YYYY\",\r\n });\r\n }\r\n\r\n return (\r\n
    \r\n
    \r\n

    Discount

    \r\n {activeSubscription.discount.amountOff ? (\r\n

    -${activeSubscription.discount.amountOff} off

    \r\n ) : (\r\n

    {activeSubscription.discount.percentOff}% off

    \r\n )}\r\n {activeTo ?

    Discount is valid until {activeTo}

    : null}\r\n
    \r\n
    \r\n );\r\n});\r\nUserSubscriptionInfoTemplate.propTypes = {\r\n userSubscriptionsPreviewViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func.isRequired,\r\n};\r\n\r\nfunction DefaultSubscriptionDetails({ subscription }) {\r\n const isPremiumSubscriptionTrial = subscription.subscriptionStatus.abrv === subscriptionStatuses.trial;\r\n\r\n return (\r\n \r\n {subscription.startDate && (\r\n
    \r\n Start Date:\r\n\r\n

    \r\n {dateFormatter.format(subscription.startDate, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n

    \r\n
    \r\n )}\r\n
    \r\n {isNil(subscription.endDate) ? (\r\n \r\n {!isNil(subscription.nextBillingDate) && (\r\n \r\n \r\n {isPremiumSubscriptionTrial ? \"Start Billing Date:\" : \"Next Billing Date:\"}\r\n \r\n

    \r\n {dateFormatter.format(subscription.nextBillingDate, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n

    \r\n
    \r\n )}\r\n
    \r\n ) : (\r\n \r\n End Date:\r\n

    \r\n {dateFormatter.format(subscription.endDate, {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n

    \r\n
    \r\n )}\r\n
    \r\n
    \r\n );\r\n}\r\n\r\nconst NakiBundleSubscriptionDetails = observer(function NakiBundleSubscriptionDetails({ activeSubscription }) {\r\n return (\r\n \r\n

    \r\n After{\" \"}\r\n {dateFormatter.format(moment(activeSubscription.startDate).add(12, \"M\"), {\r\n format: applicationDefaults.formats.date,\r\n })}\r\n , your subscription may be cancelled at any time. For technical support and device repair/replacement,\r\n please contact our support team at support@nakiradio.com.\r\n

    \r\n
    \r\n );\r\n});\r\n\r\nconst UpgradeSubscriptionDetails = observer(function UpgradeSubscriptionDetails({\r\n activeSubscription,\r\n pendingSubscription,\r\n isSubscriptionBundleActive,\r\n}) {\r\n return (\r\n \r\n

    \r\n Your {activeSubscription.product.name} subscription will remain active until{\" \"}\r\n \r\n {isSubscriptionBundleActive\r\n ? activeSubscription.endDate\r\n ? dateFormatter.format(activeSubscription.endDate, {\r\n format: applicationDefaults.formats.date,\r\n })\r\n : null\r\n : activeSubscription.endDate\r\n ? dateFormatter.format(activeSubscription.nextBillingDate, {\r\n format: applicationDefaults.formats.date,\r\n })\r\n : null}\r\n \r\n .\r\n

    \r\n

    \r\n Your {pendingSubscription.product.name} subscription starts on{\" \"}\r\n \r\n {pendingSubscription.startDate\r\n ? dateFormatter.format(pendingSubscription.startDate, {\r\n format: applicationDefaults.formats.date,\r\n })\r\n : null}\r\n \r\n , and we will charge you{\" \"}\r\n \r\n \r\n \r\n .\r\n

    \r\n
    \r\n );\r\n});\r\n\r\nconst InternalSubscriptionControls = observer(function InternalSubscriptionControls({ store, t }) {\r\n const { cancelSubscription } = store;\r\n\r\n return (\r\n
    \r\n {\" \"}\r\n
    \r\n );\r\n});\r\n\r\nconst SubscriptionControls = observer(function SubscriptionControls({ store, t }) {\r\n const {\r\n activeSubscription,\r\n pendingSubscription,\r\n cancelSubscription,\r\n renewSubscription,\r\n revertSubscription,\r\n endTrial,\r\n rootStore: { premiumSubscriptionStore },\r\n } = store;\r\n const isPremiumSubscriptionTrial = activeSubscription.subscriptionStatus.abrv === subscriptionStatuses.trial;\r\n\r\n if (premiumSubscriptionStore.isSubscriptionBundleActive) {\r\n if (activeSubscription.currentBillingCycle >= 12) {\r\n return (\r\n
    \r\n {\" \"}\r\n
    \r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n if (activeSubscription.product.slug === subscriptionPlans.nakiRadioFree) {\r\n return (\r\n
    \r\n \r\n Upgrade Plan\r\n \r\n
    \r\n );\r\n }\r\n\r\n if (isPremiumSubscriptionTrial) {\r\n if (isNil(activeSubscription.endDate)) {\r\n return (\r\n
    \r\n {\" \"}\r\n
    \r\n );\r\n }\r\n return (\r\n
    \r\n endTrial(activeSubscription.id)}\r\n />\r\n
    \r\n );\r\n }\r\n\r\n if (isNil(activeSubscription.endDate)) {\r\n return (\r\n
    \r\n \r\n Change Plan\r\n \r\n \r\n
    \r\n );\r\n } else if (!isNil(pendingSubscription)) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n});\r\n\r\nexport default observer(UserSubscriptionInfoTemplate);\r\n","import React from \"react\";\r\nimport { NakiNigunPremiumBadgeTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction NakiNigunPremiumBadge(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiNigunPremiumBadge;\r\n","import React from \"react\";\r\nimport { NakiRadioPremiumBadgeTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction NakiRadioPremiumBadge(props) {\r\n return ;\r\n}\r\n\r\nexport default NakiRadioPremiumBadge;\r\n","import React from \"react\";\r\nimport { NakiRadioFreeBadgeTemplate } from \"themes/application/payment/components\";\r\n\r\nconst NakiRadioFreeBadge = (props) => {\r\n return ;\r\n};\r\n\r\nexport default NakiRadioFreeBadge;\r\n","import React from \"react\";\r\nimport { ExplorePremiumLoaderTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction ExplorePremiumLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ExplorePremiumLoader;\r\n","import React from \"react\";\r\nimport { PaymentCardLoaderTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction PaymentCardLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default PaymentCardLoader;\r\n","import React from \"react\";\r\nimport { SubscriptionPlanLoaderTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction SubscriptionPlanLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default SubscriptionPlanLoader;\r\n","import React from \"react\";\r\nimport { PlanCardLoaderTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction PlanCardLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default PlanCardLoader;\r\n","import React from \"react\";\r\nimport { ChangeSubscriptionPlanLoaderTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction ChangeSubscriptionPlanLoader(props) {\r\n return ;\r\n}\r\n\r\nexport default ChangeSubscriptionPlanLoader;\r\n","import React from \"react\";\r\nimport { PremiumTrialExpirationTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction PremiumTrialExpiration(props) {\r\n return ;\r\n}\r\n\r\nexport default PremiumTrialExpiration;\r\n","import React from \"react\";\r\nimport { InvalidPaymentInfoTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction InvalidPaymentInfo(props) {\r\n return ;\r\n}\r\n\r\nexport default InvalidPaymentInfo;\r\n","import React from \"react\";\r\nimport { CreditCardInfoTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction CreditCardInfo(props) {\r\n return ;\r\n}\r\n\r\nexport default CreditCardInfo;\r\n","import React from \"react\";\r\nimport { PremiumContentListItemTemplate } from \"themes/application/payment/components\";\r\nimport { PremiumContentListItemViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new PremiumContentListItemViewStore(rootStore, componentProps),\r\n \"premiumContentListItemViewStore\"\r\n)\r\nclass PremiumContentListItem extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PremiumContentListItem;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { PremiumContentListTemplate } from \"themes/application/payment/components\";\r\nimport { PremiumContentListViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new PremiumContentListViewStore(rootStore, componentProps),\r\n \"premiumContentListViewStore\"\r\n)\r\n@observer\r\nclass PremiumContentList extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default PremiumContentList;\r\n","import React from \"react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { CustomerPaymentMethodInfoTemplate } from \"themes/application/payment/components\";\r\nimport { CustomerPaymentMethodInfoViewStore } from \"application/payment/stores\";\r\nimport { setCurrentView } from \"mrb/core\";\r\n\r\n@setCurrentView(\r\n (rootStore, componentProps) => new CustomerPaymentMethodInfoViewStore(rootStore, componentProps),\r\n \"customerPaymentMethodInfoViewStore\"\r\n)\r\n@observer\r\nclass CustomerPaymentMethodInfo extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default CustomerPaymentMethodInfo;\r\n","import React from \"react\";\r\nimport { PremiumTrialTermsInfoTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction PremiumTrialTermsInfo(props) {\r\n return ;\r\n}\r\n\r\nexport default PremiumTrialTermsInfo;\r\n","import React from \"react\";\r\nimport { PaymentSuccessModalTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction PaymentSuccessModal(props) {\r\n return ;\r\n}\r\n\r\nexport default PaymentSuccessModal;\r\n","import React from \"react\";\r\nimport { TrialActivatedModalTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction TrialActivatedModal(props) {\r\n return ;\r\n}\r\n\r\nexport default TrialActivatedModal;\r\n","import React from \"react\";\r\nimport { TakePaymentHeaderTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction TakePaymentHeader(props) {\r\n return ;\r\n}\r\n\r\nexport default TakePaymentHeader;\r\n","import React from \"react\";\r\nimport { PastDueSubscriptionWidgetTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction PastDueSubscriptionWidget(props) {\r\n return ;\r\n}\r\n\r\nexport default PastDueSubscriptionWidget;\r\n","import React from \"react\";\r\nimport { PremiumInfoWidgetTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction PremiumInfoWidget(props) {\r\n return ;\r\n}\r\n\r\nexport default PremiumInfoWidget;\r\n","import React from \"react\";\r\nimport { PremiumInfoTrialWidgetTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction PremiumInfoTrialWidget(props) {\r\n return ;\r\n}\r\n\r\nexport default PremiumInfoTrialWidget;\r\n","import React from \"react\";\r\nimport { SubscriptionPlanCardTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction SubscriptionPlanCard(props) {\r\n return ;\r\n}\r\n\r\nexport default SubscriptionPlanCard;\r\n","import React from \"react\";\r\nimport { SubscriptionPriceTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction SubscriptionPrice(props) {\r\n return ;\r\n}\r\n\r\nexport default SubscriptionPrice;\r\n","import React from \"react\";\r\nimport { PaymentInfoTemplate } from \"themes/application/payment/components\";\r\n\r\nconst PaymentInfo = (props) => {\r\n return ;\r\n};\r\n\r\nexport default PaymentInfo;\r\n","import React from \"react\";\r\nimport { UpdateCustomerPaymentMethodTemplate } from \"themes/application/payment/components\";\r\nimport { stripeProvider } from \"common/hoc\";\r\n\r\n@stripeProvider\r\nclass UpdateCustomerPaymentMethod extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UpdateCustomerPaymentMethod;\r\n","import React from \"react\";\r\nimport { PremiumContentSubListItemTemplate } from \"themes/application/payment/components\";\r\n\r\nfunction PremiumContentSubListItem(props) {\r\n return ;\r\n}\r\n\r\nexport default PremiumContentSubListItem;\r\n","import React from \"react\";\r\nimport { UserSubscriptionInfoTemplate } from \"themes/application/payment/components\";\r\n\r\nclass UserSubscriptionInfo extends React.Component {\r\n render() {\r\n return ;\r\n }\r\n}\r\n\r\nexport default UserSubscriptionInfo;\r\n","import { observable, action, makeObservable } from \"mobx\";\r\nimport { isFunction } from \"lodash\";\r\n\r\nclass MrbModalParams {\r\n @observable isOpen = false;\r\n @observable loading = false;\r\n @observable data = {};\r\n params = {};\r\n\r\n constructor(options = {}, params = {}) {\r\n makeObservable(this);\r\n this.params = params;\r\n if (options && isFunction(options.onClose)) {\r\n this.onClose = options.onClose;\r\n }\r\n }\r\n\r\n @action.bound\r\n open(data) {\r\n if (this.isOpen) {\r\n return;\r\n }\r\n this.data = data;\r\n\r\n this.setOpen(true);\r\n }\r\n\r\n @action.bound\r\n close() {\r\n if (!this.isOpen) {\r\n return;\r\n }\r\n\r\n this.setOpen(false);\r\n\r\n if (this.onClose) {\r\n this.onClose();\r\n }\r\n }\r\n\r\n @action.bound\r\n setOpen(value) {\r\n this.isOpen = value;\r\n }\r\n\r\n @action.bound\r\n setLoading(loading) {\r\n this.loading = loading;\r\n }\r\n}\r\n\r\nexport default MrbModalParams;\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { MrbModalParams } from \"./\";\r\nimport { isFunction } from \"lodash\";\r\n\r\nclass MrbConfirmModalParams extends MrbModalParams {\r\n @observable message = null;\r\n\r\n constructor({\r\n message,\r\n description,\r\n onConfirm,\r\n onCancel,\r\n yesLabel,\r\n noLabel,\r\n ...rest\r\n }) {\r\n super(rest);\r\n makeObservable(this);\r\n this.message = message;\r\n this.description = description;\r\n this.onConfirm = onConfirm;\r\n this.onCancel = onCancel;\r\n this.yesLabel = yesLabel;\r\n this.noLabel = noLabel;\r\n }\r\n\r\n @action.bound\r\n async confirm() {\r\n this.setLoading(true);\r\n await this.onConfirm(this.data);\r\n this.setLoading(false);\r\n this.close();\r\n }\r\n\r\n @action.bound\r\n cancel() {\r\n if (isFunction(this.onCancel)) {\r\n this.onCancel();\r\n }\r\n this.close();\r\n }\r\n}\r\n\r\nexport default MrbConfirmModalParams;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\nimport { map, isNil, isFunction } from \"lodash\";\r\n\r\nfunction MrbFileUploadValidation({ store, t = (i) => i }) {\r\n const {\r\n rejectedFiles,\r\n config: { errorsMap },\r\n } = store;\r\n return map(rejectedFiles, (rejectedFile) => {\r\n return (\r\n
    \r\n

    Unable to upload file: {rejectedFile.file.name}

    \r\n {map(rejectedFile.errors, (error) => {\r\n return (\r\n

    \r\n {getErrorMessage(error, errorsMap, t)}\r\n

    \r\n );\r\n })}\r\n
    \r\n );\r\n });\r\n}\r\n\r\nfunction getErrorMessage(error, errorsMap, t) {\r\n if (!isNil(errorsMap) && isFunction(errorsMap[error.code])) {\r\n return errorsMap[error.code](error, t);\r\n }\r\n return error.message;\r\n}\r\n\r\nMrbFileUploadValidation.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbFileUploadValidation);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport Dropzone from \"react-dropzone\";\r\nimport { MrbFileUploadValidation } from \"./\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbFileUpload({ store, children, t }) {\r\n const { onChange, disabled, setUploadInputRef, clear, config, onDropRejected } = store;\r\n return (\r\n \r\n {({ getRootProps, getInputProps }) => (\r\n
    \r\n
    \r\n \r\n {children}\r\n {config.showValidation && }\r\n
    \r\n
    \r\n )}\r\n \r\n );\r\n}\r\n\r\nMrbFileUpload.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default observer(MrbFileUpload);\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"../../core/stores\";\r\nimport { extend, isFunction } from \"lodash\";\r\n\r\nclass MrbFileUploadViewStore extends MrbBaseViewStore {\r\n @observable.ref files = [];\r\n @observable.ref rejectedFiles = [];\r\n @observable disabled = false;\r\n\r\n uploadInputRef = null;\r\n\r\n actions = {\r\n onChange: () => {},\r\n };\r\n\r\n config = {\r\n multiple: false,\r\n showValidation: true,\r\n errorsMap: null,\r\n };\r\n\r\n constructor(rootStore, { actions, ...config }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.config = extend({}, this.config, config);\r\n this.actions = extend({}, this.actions, actions);\r\n }\r\n\r\n @action.bound\r\n onChange(files) {\r\n this.files = files;\r\n this.actions.onChange(files);\r\n this.setRejectedFiles([]);\r\n }\r\n\r\n @action.bound\r\n setRejectedFiles(files) {\r\n this.rejectedFiles = files;\r\n }\r\n\r\n @action.bound\r\n onDropRejected(files) {\r\n this.setRejectedFiles(files);\r\n if (isFunction(this.actions.onFileRejected)) {\r\n this.actions.onFileRejected(files);\r\n }\r\n }\r\n\r\n @action.bound\r\n setDisabled(isDisabled) {\r\n this.disabled = isDisabled;\r\n }\r\n\r\n @action.bound\r\n setUploadInputRef(ref) {\r\n this.uploadInputRef = ref;\r\n }\r\n\r\n raiseBrowse() {\r\n if (this.uploadInputRef) {\r\n this.uploadInputRef.open();\r\n }\r\n }\r\n\r\n @action.bound\r\n clear() {\r\n this.files = [];\r\n }\r\n}\r\n\r\nexport default MrbFileUploadViewStore;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { action, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nclass MrbImage extends React.Component {\r\n @observable errored = false;\r\n @observable useCssImage = false;\r\n @observable isLoaded = false;\r\n\r\n constructor() {\r\n super();\r\n makeObservable(this);\r\n\r\n this.handleImageLoaded = this.handleImageLoaded.bind(this);\r\n }\r\n\r\n @action.bound\r\n onError() {\r\n if (!this.errored) {\r\n if (this.props.useCssImageFallback) {\r\n this.useCssImage = true;\r\n }\r\n this.errored = true;\r\n if (this.props.onError) {\r\n this.props.onError();\r\n }\r\n }\r\n }\r\n\r\n componentDidUpdate(prevProps) {\r\n if (prevProps.src !== this.props.src) {\r\n runInAction(() => {\r\n this.setIsLoaded(false);\r\n this.errored = false;\r\n });\r\n }\r\n }\r\n\r\n @action.bound\r\n setIsLoaded(value) {\r\n this.isLoaded = value;\r\n }\r\n\r\n handleImageLoaded() {\r\n this.setIsLoaded(true);\r\n }\r\n\r\n render() {\r\n const {\r\n className = \"\",\r\n alt = \"\",\r\n src,\r\n loadingPlaceholder,\r\n fallbackSrc,\r\n onClick,\r\n width,\r\n height,\r\n fallbackComponent,\r\n } = this.props;\r\n\r\n const imageStyle = !this.isLoaded ? { display: \"none\" } : {};\r\n\r\n return (\r\n \r\n {!this.errored ? (\r\n \r\n {!this.useCssImage ? (\r\n \r\n {!this.isLoaded && loadingPlaceholder && (\r\n \r\n )}\r\n \r\n \r\n ) : (\r\n
    \r\n )}\r\n
    \r\n ) : (\r\n \r\n {fallbackComponent ? (\r\n {fallbackComponent}\r\n ) : (\r\n \r\n {fallbackSrc ? (\r\n \r\n {!this.useCssImage ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n ) : null}\r\n \r\n )}\r\n \r\n )}\r\n
    \r\n );\r\n }\r\n}\r\n\r\nMrbImage.propTypes = {\r\n src: PropTypes.string.isRequired,\r\n fallbackSrc: PropTypes.string,\r\n useCssImage: PropTypes.bool,\r\n errored: PropTypes.bool,\r\n onError: PropTypes.func,\r\n className: PropTypes.string,\r\n alt: PropTypes.string,\r\n width: PropTypes.any,\r\n height: PropTypes.any,\r\n onClick: PropTypes.func,\r\n fallbackComponent: PropTypes.any,\r\n};\r\n\r\nexport default observer(MrbImage);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbButton } from \"../button\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbConfirmDialogPanel({\r\n message,\r\n onConfirm,\r\n onCancel,\r\n yesLabel = \"Yes\",\r\n noLabel = \"No\",\r\n description,\r\n t = (i) => i,\r\n loading,\r\n}) {\r\n return (\r\n
    \r\n
    \r\n

    {t(message)}

    \r\n
    \r\n
    \r\n {description &&

    {description}

    }\r\n
    \r\n
    \r\n \r\n \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nMrbConfirmDialogPanel.propTypes = {\r\n message: PropTypes.string.isRequired,\r\n onConfirm: PropTypes.func.isRequired,\r\n onCancel: PropTypes.func,\r\n yesLabel: PropTypes.string,\r\n noLabel: PropTypes.string,\r\n t: PropTypes.func,\r\n loading: PropTypes.bool,\r\n};\r\n\r\nexport default observer(MrbConfirmDialogPanel);\r\n","import React from \"react\";\r\nimport Modal from \"react-modal\";\r\nimport PropTypes from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\nimport { isFunction } from \"lodash\";\r\n\r\nModal.setAppElement(\"#root\");\r\nfunction MrbModal({\r\n modalParams,\r\n children,\r\n className = \"modal__content\",\r\n overlayClassName = \"modal__overlay\",\r\n shouldCloseOnOverlayClick = true,\r\n displayCloseIcon = true,\r\n ...other\r\n}) {\r\n return (\r\n \r\n {displayCloseIcon && (\r\n \r\n )}\r\n {isFunction(children)\r\n ? children({ modalParams: modalParams.params, modalData: modalParams.data })\r\n : children}\r\n \r\n );\r\n}\r\n\r\nMrbModal.propTypes = {\r\n modalParams: PropTypes.object,\r\n children: PropTypes.any,\r\n className: PropTypes.string,\r\n overlayClassName: PropTypes.string,\r\n shouldCloseOnOverlayClick: PropTypes.bool,\r\n displayCloseIcon: PropTypes.bool,\r\n};\r\n\r\nexport default observer(MrbModal);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { MrbModal, MrbConfirmDialogPanel } from \"./\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbConfirmDialog({ store, customStyles, t }) {\r\n const { confirmModalParams } = store;\r\n return (\r\n \r\n {confirmModalParams && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nMrbConfirmDialog.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n customStyles: PropTypes.object,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbConfirmDialog);\r\n","import React from \"react\";\r\n\r\nfunction MrbInfiniteScrollGridEmptyState() {\r\n return
    There is no data.
    ;\r\n}\r\n\r\nexport default MrbInfiniteScrollGridEmptyState;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbInfiniteScrollGridEmptyState } from \"./components\";\r\nimport { MrbContentLoader, MrbRectangleContentLoader } from \"../loader\";\r\nimport InfiniteScroll from \"react-infinite-scroller\";\r\nimport { map, isUndefined } from \"lodash\";\r\nimport { observer } from \"mobx-react\";\r\nimport { mergeOrOverrideCss } from \"../../common/utils\";\r\n\r\nfunction MrbInfiniteScrollGrid({\r\n store,\r\n cellRenderer,\r\n t,\r\n classNameOverride,\r\n classNameExtend,\r\n scrollParent,\r\n emptyStateRenderer = () => ,\r\n loadMoreLoader,\r\n loaderRenderer = () => ,\r\n}) {\r\n const {\r\n dataInitialized,\r\n data,\r\n config: { actions, onCellClick },\r\n formatValue,\r\n loaderStore,\r\n generateCellKey,\r\n hasMoreData,\r\n loadMore,\r\n } = store;\r\n return (\r\n \r\n {() => (\r\n \r\n {dataInitialized && (\r\n scrollParent : null}\r\n useWindow={isUndefined(scrollParent)}\r\n >\r\n {data && data.length > 0 ? (\r\n
    \r\n \r\n {map(data, (item, index) => (\r\n \r\n {cellRenderer({\r\n item,\r\n actions,\r\n onCellClick,\r\n valueFormatter: formatValue,\r\n index,\r\n t,\r\n })}\r\n \r\n ))}\r\n
    \r\n \r\n ) : (\r\n {emptyStateRenderer()}\r\n )}\r\n \r\n )}\r\n
    \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nMrbInfiniteScrollGrid.propTypes = {\r\n store: PropTypes.object.isRequired,\r\n pagerRenderer: PropTypes.any,\r\n cellRenderer: PropTypes.func.isRequired,\r\n emptyStateRenderer: PropTypes.any,\r\n loaderRenderer: PropTypes.any,\r\n loadMoreLoader: PropTypes.any,\r\n scrollParent: PropTypes.any,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbInfiniteScrollGrid);\r\n","import { action, computed, override, makeObservable, observable } from \"mobx\";\r\nimport { default as MrbBaseGridViewStore } from \"../grid/stores/MrbBaseGridViewStore\";\r\nimport { MrbContentLoaderStore } from \"../loader\";\r\nimport { concat, merge, map, isFunction, isNil } from \"lodash\";\r\n\r\nconst DefaultConfig = {\r\n onCellClick: null,\r\n};\r\n\r\nclass MrbInfiniteScrollGridViewStore extends MrbBaseGridViewStore {\r\n @observable isLoadingMoreData = false;\r\n\r\n @computed get hasMoreData() {\r\n return this.recordCount > this.data.length;\r\n }\r\n\r\n constructor(rootStore, queryUtility, config = {}, components = {}) {\r\n super(\r\n rootStore,\r\n queryUtility,\r\n isNil(components.loaderStore) ? new MrbContentLoaderStore(config.loaderOptions) : components.loaderStore,\r\n merge({}, DefaultConfig, config)\r\n );\r\n makeObservable(this);\r\n\r\n this.loadMore = this.loadMore.bind(this);\r\n }\r\n\r\n async loadMore() {\r\n if (!this.isLoadingMoreData && this.hasMoreData) {\r\n try {\r\n this.setIsLoadingMoreData(true);\r\n await this.queryUtility.changePage(this.pageNumber + 1);\r\n } finally {\r\n this.setIsLoadingMoreData(false);\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n setIsLoadingMoreData(isLoadingMoreData) {\r\n this.isLoadingMoreData = isLoadingMoreData;\r\n }\r\n\r\n @override\r\n setData(data) {\r\n let items = data.item ? data.item : data;\r\n items = map(items, this.config.mapper);\r\n this.originalData = items;\r\n if (this.pageNumber === 1) {\r\n this.data = items;\r\n } else {\r\n this.data = concat(this.data, items);\r\n }\r\n\r\n if (data.item) {\r\n this.queryUtility.handleResponse(data);\r\n }\r\n\r\n this.dataInitialized = true;\r\n if (isFunction(this.config.onDataChange)) {\r\n this.config.onDataChange();\r\n }\r\n }\r\n}\r\n\r\nexport default MrbInfiniteScrollGridViewStore;\r\n","const sortDirection = {\r\n asc: \"asc\",\r\n desc: \"desc\",\r\n};\r\n\r\nexport default sortDirection;\r\n","import { observable, action, makeObservable } from \"mobx\";\r\nimport { isNil } from \"lodash\";\r\n\r\nclass MrbFilterParameters {\r\n @observable pageNumber;\r\n @observable pageSize;\r\n @observable orderBy;\r\n @observable orderDirection;\r\n @observable embed;\r\n @observable search;\r\n @observable fields;\r\n\r\n constructor() {\r\n makeObservable(this);\r\n this.reset();\r\n }\r\n\r\n @action.bound\r\n reset() {\r\n this.pageNumber = 1;\r\n this.pageSize = 10;\r\n this.orderBy = null;\r\n this.orderDirection = null;\r\n this.embed = null;\r\n this.search = null;\r\n this.fields = null;\r\n }\r\n\r\n @action.bound\r\n set(key, value) {\r\n this[key] = value;\r\n }\r\n\r\n @action.bound\r\n toggle(key) {\r\n const property = this[key];\r\n const evalValue = !isNil(property) ? property : false;\r\n if (typeof evalValue === \"boolean\") {\r\n this[key] = !property;\r\n }\r\n }\r\n}\r\n\r\nexport default MrbFilterParameters;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { mergeOrOverrideCss } from \"../../common/utils\";\r\nimport { observer } from \"mobx-react\";\r\nimport { map } from \"lodash\";\r\n\r\nfunction MrbRadioButtons({\r\n id,\r\n value,\r\n onChange,\r\n options,\r\n t = (i) => i,\r\n disabled,\r\n rowView = true,\r\n labelRender = null,\r\n classNameExtend,\r\n classNameOverride,\r\n inputClassNameOverride,\r\n inputClassNameExtend,\r\n labelClassNameOverride,\r\n}) {\r\n const WrapElement = rowView ? React.Fragment : ({ children }) =>
    {children}
    ;\r\n return (\r\n
    \r\n {map(options, (option, index) => {\r\n const itemId = `${id}_${option.value}`;\r\n const isChecked = value === option.value;\r\n const defaultClass = `c-segmented ${\r\n index === 0 ? \" c-segmented--first\" : `${index === options.length - 1 ? \" c-segmented--last\" : \"\"}`\r\n }`;\r\n return (\r\n \r\n onChange(option.value)}\r\n disabled={disabled}\r\n type=\"radio\"\r\n tabIndex={0}\r\n className={`${mergeOrOverrideCss(\r\n defaultClass,\r\n inputClassNameOverride,\r\n inputClassNameExtend\r\n )} ${isChecked ? \"active\" : \"\"}`}\r\n />\r\n {labelRender ? (\r\n labelRender({ itemId, t })\r\n ) : (\r\n \r\n )}\r\n \r\n );\r\n })}\r\n
    \r\n );\r\n}\r\n\r\nMrbRadioButtons.propTypes = {\r\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,\r\n onChange: PropTypes.func.isRequired,\r\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n disabled: PropTypes.bool,\r\n t: PropTypes.func,\r\n labelRender: PropTypes.func,\r\n options: PropTypes.arrayOf(PropTypes.object).isRequired,\r\n};\r\n\r\nMrbRadioButtons.defaultProps = {\r\n disabled: false,\r\n};\r\n\r\nexport default observer(MrbRadioButtons);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbRadioButtons } from \"./\";\r\nimport { MrbFieldLayout } from \"../layout/content/form\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbFieldRadioButtons({\r\n field,\r\n t = (i) => i,\r\n showLabel = true,\r\n labelRender = null,\r\n validationRender = null,\r\n rowView = true,\r\n ...props\r\n}) {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nMrbFieldRadioButtons.propTypes = {\r\n field: PropTypes.object.isRequired,\r\n showLabel: PropTypes.bool,\r\n t: PropTypes.func,\r\n labelRender: PropTypes.func,\r\n validationRender: PropTypes.func,\r\n classNameExtend: PropTypes.string,\r\n};\r\n\r\nexport default observer(MrbFieldRadioButtons);\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction MrbTableHeader(props) {\r\n const {\r\n displayName,\r\n enableSorting,\r\n tableStore,\r\n column: { colId },\r\n } = props;\r\n return (\r\n
    tableStore.setSort(colId) : null}>\r\n {displayName}\r\n {tableStore.orderBy === colId ? (\r\n \r\n ) : null}\r\n
    \r\n );\r\n}\r\n\r\nMrbTableHeader.propTypes = {\r\n displayName: PropTypes.string,\r\n enableSorting: PropTypes.bool,\r\n tableStore: PropTypes.object,\r\n column: PropTypes.object,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbTableHeader);\r\n","import React from \"react\";\r\nimport { AgGridColumn } from \"@ag-grid-community/react\";\r\nimport { MrbTableHeader } from \"./\";\r\nimport { mergeCss } from \"../../../common/utils\";\r\nimport { isBoolean, isFunction } from \"lodash\";\r\n\r\nfunction mrbTableColumnRenderer(column, tableStore, HeaderComponent = MrbTableHeader, t = (i) => i) {\r\n if (isFunction(column.onCellClicked)) {\r\n column.cellClass = mergeCss(\"u-cursor--pointer\", column.cellClass);\r\n }\r\n return (\r\n tableStore.formatValue(params.value, params.colDef.format)}\r\n cellRendererFramework={column.cell}\r\n checkboxSelection={column.checkboxSelection}\r\n headerName={t(column.title)}\r\n key={column.key}\r\n field={column.key}\r\n minWidth={column.minWidth}\r\n width={column.width}\r\n headerCheckboxSelection={column.headerCheckboxSelection}\r\n maxWidth={column.maxWidth}\r\n sortable={isBoolean(column.sortable) ? column.sortable : false}\r\n format={column.format}\r\n onCellClicked={column.onCellClicked}\r\n cellClass={column.cellClass}\r\n suppressMovable={\r\n isBoolean(column.suppressMovable)\r\n ? column.suppressMovable\r\n : tableStore.config.defaultColumnDefinition.suppressMovable\r\n }\r\n keyCreator={column.keyCreator}\r\n headerComponentFramework={(props) =>\r\n React.createElement(HeaderComponent, {\r\n ...props,\r\n tableStore: tableStore,\r\n })\r\n }\r\n filter={isBoolean(column.filter) ? column.filter : tableStore.config.defaultColumnDefinition.filter}\r\n suppressSizeToFit={column.suppressSizeToFit}\r\n />\r\n );\r\n}\r\n\r\nexport default mrbTableColumnRenderer;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { map } from \"lodash\";\r\n\r\nfunction MrbTableActionColumn({\r\n tableStore,\r\n ActionsComponent,\r\n actions,\r\n data,\r\n t = (i) => i,\r\n}) {\r\n // Don't display actions for group data\r\n if (!data) {\r\n return null;\r\n }\r\n if (ActionsComponent) {\r\n return React.createElement(ActionsComponent, {\r\n tableStore,\r\n actions,\r\n item: data,\r\n t,\r\n });\r\n }\r\n\r\n return (\r\n \r\n {map(actions, (action, idx) => {\r\n const label = t(action.label);\r\n return (\r\n {\r\n //prevent row click event\r\n event.preventDefault();\r\n event.stopPropagation();\r\n action.onClick(data);\r\n }}\r\n aria-label={action.label}\r\n {...action.buttonProps}\r\n >\r\n {action.icon ? (\r\n \r\n ) : (\r\n label\r\n )}\r\n \r\n );\r\n })}\r\n \r\n );\r\n}\r\n\r\nMrbTableActionColumn.propTypes = {\r\n tableStore: PropTypes.object.isRequired,\r\n ActionsComponent: PropTypes.any,\r\n actions: PropTypes.object,\r\n data: PropTypes.object,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default MrbTableActionColumn;\r\n","import React from \"react\";\r\nimport { AgGridColumn } from \"@ag-grid-community/react\";\r\nimport { MrbTableActionColumn } from \"./\";\r\nimport { size, some, values, isFunction } from \"lodash\";\r\n\r\nfunction mrbTableActionColumnRenderer(\r\n tableStore,\r\n actions,\r\n ActionsComponent,\r\n t\r\n) {\r\n const actionCount = size(actions);\r\n return (\r\n 0 ? false : true)\r\n }\r\n cellRendererFramework={(cellProps) => (\r\n \r\n )}\r\n />\r\n );\r\n}\r\n\r\nfunction hasAction(actions) {\r\n return (\r\n actions && some(values(actions), (action) => isFunction(action.onClick))\r\n );\r\n}\r\n\r\nexport default mrbTableActionColumnRenderer;\r\n","import { MrbBaseGridViewStore } from \"../../grid/stores\";\r\nimport { MrbLoaderStore } from \"../../loader\";\r\nimport { merge, isNil } from \"lodash\";\r\n\r\nconst DefaultConfig = {\r\n onRowClick: null,\r\n columns: [],\r\n};\r\n\r\nclass MrbBaseTableViewStore extends MrbBaseGridViewStore {\r\n constructor(rootStore, queryUtility, config = {}, components = {}) {\r\n super(\r\n rootStore,\r\n queryUtility,\r\n isNil(components.loaderStore) ? new MrbLoaderStore(config.loaderOptions) : components.loaderStore,\r\n merge({}, DefaultConfig, config)\r\n );\r\n\r\n if (!this.config.columns || this.config.columns.length === 0) {\r\n throw new Error(\"Columns are not defined.\");\r\n }\r\n }\r\n}\r\n\r\nexport default MrbBaseTableViewStore;\r\n","import { action, reaction } from \"mobx\";\r\nimport { MrbBaseTableViewStore } from \"./\";\r\nimport { MrbApplicationFormatter } from \"../../../common\";\r\nimport { map, merge } from \"lodash\";\r\n\r\nconst DefaultConfig = {\r\n gridIdentifier: null,\r\n actionsColumn: {\r\n title: \"Actions\",\r\n columnId: \"gridActionsCol\",\r\n pinned: false,\r\n },\r\n onRowClick: null,\r\n rows: {\r\n rowClass: null,\r\n getRowClass: null,\r\n },\r\n columns: [],\r\n export: {\r\n suppressCsvExport: false,\r\n csvExportParams: {\r\n fileName: null,\r\n allColumns: false,\r\n processCellCallback: null,\r\n },\r\n },\r\n selection: {\r\n rowSelection: \"single\",\r\n checkboxSelection: false,\r\n headerCheckboxSelection: false,\r\n headerCheckboxSelectionFilteredOnly: true,\r\n suppressRowClickSelection: true,\r\n groupSelectsChildren: true,\r\n groupSelectsFiltered: true,\r\n //range selection\r\n suppressMultiRangeSelection: true,\r\n onRowSelected: () => {},\r\n onSelectionChanged: () => {},\r\n onRowDataChanged: () => {},\r\n },\r\n actions: {},\r\n paging: true,\r\n hidePagerIfUnderLimit: true,\r\n defaultColumnDefinition: {\r\n editable: false,\r\n resizable: true,\r\n suppressMovable: false,\r\n filter: false,\r\n filterParams: {\r\n buttons: [\"apply\", \"clear\", \"reset\"],\r\n },\r\n floatingFilter: false,\r\n },\r\n // eslint-disable-next-line\r\n onDataChange: () => {},\r\n mapper: (i) => i,\r\n formatter: new MrbApplicationFormatter(),\r\n autoSizeColumns: true,\r\n multiSortKey: \"ctrl\",\r\n};\r\n\r\nclass MrbTableViewStore extends MrbBaseTableViewStore {\r\n loaderDisposer = null;\r\n\r\n constructor(rootStore, queryUtility, config = {}, components = {}) {\r\n super(rootStore, queryUtility, merge({}, DefaultConfig, config), components);\r\n\r\n this.loaderDisposer = reaction(\r\n () => this.loaderStore.loading,\r\n (isLoading) => {\r\n if (isLoading) {\r\n this.showLoadingOverlay();\r\n } else {\r\n this.hideLoadingOverlay();\r\n }\r\n }\r\n );\r\n }\r\n\r\n setData(data) {\r\n let items = data.item ? data.item : data;\r\n items = map(items, this.config.mapper);\r\n this.originalData = items;\r\n this.data = items;\r\n\r\n if (data.item) {\r\n this.queryUtility.handleResponse(data);\r\n }\r\n this.gridApi.setRowData(this.data);\r\n\r\n this.dataInitialized = true;\r\n this.config.onDataChange();\r\n }\r\n\r\n showLoadingOverlay() {\r\n if (this.gridApi) {\r\n this.gridApi.showLoadingOverlay();\r\n }\r\n }\r\n\r\n hideLoadingOverlay() {\r\n if (this.gridApi) {\r\n if (this.data && this.data.length > 0) {\r\n this.gridApi.hideOverlay();\r\n } else {\r\n this.gridApi.showNoRowsOverlay();\r\n }\r\n }\r\n }\r\n\r\n @action.bound\r\n onSelectionChanged({ api }) {\r\n if (this.config.selection.onSelectionChanged) {\r\n this.config.selection.onSelectionChanged(api.getSelectedNodes());\r\n }\r\n }\r\n @action.bound\r\n onRowSelected({ node }) {\r\n if (this.config.selection.onRowSelected) {\r\n this.config.selection.onRowSelected(node);\r\n }\r\n }\r\n\r\n @action.bound\r\n onGridReady(params) {\r\n this.gridApi = params.api;\r\n this.gridColumnApi = params.columnApi;\r\n if (this.initialized) {\r\n this.resetGridItems();\r\n } else {\r\n this.initialized = true;\r\n }\r\n this.gridApi.hideOverlay();\r\n\r\n if (this.config.autoSizeColumns) {\r\n this.gridApi.sizeColumnsToFit();\r\n }\r\n }\r\n\r\n @action.bound\r\n isRowSelectable(params) {\r\n if (this.config.selection.isRowSelectable) {\r\n return this.config.selection.isRowSelectable(params.data);\r\n }\r\n }\r\n\r\n suspend() {\r\n super.suspend();\r\n this.rootStore.mainLoaderStore.suspend();\r\n }\r\n\r\n resume() {\r\n super.resume();\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n\r\n resetGridItems() {\r\n super.resetGridItems();\r\n this.gridApi.setRowData(this.data);\r\n }\r\n\r\n destroy() {\r\n super.destroy();\r\n if (this.loaderDisposer) {\r\n this.loaderDisposer();\r\n }\r\n }\r\n}\r\n\r\nexport default MrbTableViewStore;\r\n","import React from \"react\";\r\n\r\nfunction MrbTableLoadingOverlay() {\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default MrbTableLoadingOverlay;\r\n","import React from \"react\";\r\n\r\nfunction MrbTableNoDataOverlay() {\r\n return (\r\n
    \r\n

    \r\n Ooops! Someone cut the cable.\r\n

    \r\n

    There is no data.

    \r\n
    \r\n );\r\n}\r\n\r\nexport default MrbTableNoDataOverlay;\r\n","import React from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport { ModuleRegistry } from \"@ag-grid-community/core\";\r\nimport { ClientSideRowModelModule } from \"@ag-grid-community/client-side-row-model\";\r\nimport { InfiniteRowModelModule } from \"@ag-grid-community/infinite-row-model\";\r\nimport { AgGridReact } from \"@ag-grid-community/react\";\r\nimport { observer } from \"mobx-react\";\r\nimport { MrbPager } from \"../pager\";\r\nimport { mrbTableColumnRenderer, mrbTableActionColumnRenderer } from \"./columns\";\r\nimport { MrbTableLoadingOverlay, MrbTableNoDataOverlay } from \"./overlays\";\r\nimport { mergeCss } from \"../../common/utils\";\r\nimport { map, isFunction } from \"lodash\";\r\n\r\n// Note: this will register modules globally. See: https://www.ag-grid.com/documentation/javascript/modules/#providing-modules-globally\r\nModuleRegistry.registerModules([ClientSideRowModelModule, InfiniteRowModelModule]);\r\n\r\nfunction MrbTable({\r\n tableStore,\r\n ActionsComponent,\r\n HeaderComponent,\r\n className,\r\n pagerRender,\r\n t = (i) => i,\r\n loadingRender,\r\n emptyStateRender,\r\n ...props\r\n}) {\r\n const {\r\n onGridReady,\r\n onRowSelected,\r\n onSelectionChanged,\r\n rowDataChanged,\r\n processCellForClipboard,\r\n isRowSelectable,\r\n config: {\r\n selection,\r\n rows: { rowClass, getRowClass, getRowStyle },\r\n actions,\r\n columns,\r\n defaultColumnDefinition,\r\n onRowClick,\r\n multiSortKey,\r\n },\r\n getContextMenuItems,\r\n } = tableStore;\r\n\r\n return (\r\n
    \r\n \r\n {renderColumns(columns, tableStore, HeaderComponent, t)}\r\n {mrbTableActionColumnRenderer(tableStore, actions, ActionsComponent, t)}\r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nfunction renderColumns(columns, tableStore, HeaderComponent, t) {\r\n return map(columns, (column) => mrbTableColumnRenderer(column, tableStore, HeaderComponent, t));\r\n}\r\n\r\nconst PagerWrapper = observer(function PagerWrapper({ tableStore, t, pagerRender }) {\r\n const renderer = pagerRender ? pagerRender : (props) => ;\r\n return (\r\n tableStore.dataInitialized &&\r\n tableStore.config.paging &&\r\n renderer({\r\n tableStore,\r\n hidePagerIfUnderLimit: tableStore.config.hidePagerIfUnderLimit,\r\n t,\r\n })\r\n );\r\n});\r\n\r\nMrbTable.propTypes = {\r\n tableStore: PropTypes.object.isRequired,\r\n ActionsComponent: PropTypes.elementType,\r\n HeaderComponent: PropTypes.elementType,\r\n className: PropTypes.string,\r\n pagerRender: PropTypes.func,\r\n t: PropTypes.func,\r\n loadingRender: PropTypes.func,\r\n emptyStateRender: PropTypes.func,\r\n};\r\n\r\nexport default observer(MrbTable);\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { ProducerAnalyticsService } from \"common/services\";\r\n\r\nclass ProducerPaymentReportPreviewRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n this.service = rootStore.createApplicationService(ProducerAnalyticsService);\r\n }\r\n\r\n async getProducerPaymentSummary(producerId, options) {\r\n const response = await this.service.getProducerPaymentSummary(producerId, options);\r\n return response.data;\r\n }\r\n\r\n async findProducerReportItems(filter) {\r\n const response = await this.service.findProducerReportItems(filter);\r\n return response.data;\r\n }\r\n\r\n async findProducerReportPayoutUserEvents(params) {\r\n const response = await this.service.findProducerReportPayoutUserEvents(params);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default ProducerPaymentReportPreviewRouteStore;\r\n","import { BaseProducerRevenueReportViewStore } from \"common/stores/producer\";\r\n\r\nclass ProducerPaymentReportPreviewViewStore extends BaseProducerRevenueReportViewStore {\r\n producerId = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, { maskUserNames: false });\r\n this.routeStore = routeStore;\r\n this.producerId = this.rootStore.routerStore.routerState.params.id;\r\n }\r\n\r\n find(params) {\r\n params.producerId = this.producerId;\r\n return this.routeStore.findProducerReportItems(params);\r\n }\r\n\r\n getSumaryData(params) {\r\n return this.routeStore.getProducerPaymentSummary(this.producerId, params);\r\n }\r\n}\r\n\r\nexport default ProducerPaymentReportPreviewViewStore;\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbTableViewStore } from \"mrb/components\";\r\nimport { mrbDefaultFormats } from \"mrb/common/formatting\";\r\nimport { ProducerPayoutUserEventFilter } from \"administration/producer/filters\";\r\nimport { UserEventPayoutCell } from \"common/components/producer\";\r\nimport { UserPayoutEventListContentCell } from \"administration/analytics/components\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { convertSecondsToHMS } from \"common/utils\";\r\n\r\nclass ProducerPayoutUserEventListViewStore extends MrbBaseListViewStore {\r\n @observable.ref user = null;\r\n @observable isCollapsed = false;\r\n producerId = null;\r\n\r\n constructor(rootStore, { item, producerId, routeStore }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n ignoreQueryParams: true,\r\n disableUpdateQueryParams: true,\r\n filter: new ProducerPayoutUserEventFilter(),\r\n embed: \"producer,device,station,podcast,nakiNigunAlbum,shuffle\",\r\n orderBy: \"timeStamp\",\r\n orderDirection: \"desc\",\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.item = item;\r\n this.producerId = producerId;\r\n\r\n this.setGridStore(\r\n new MrbTableViewStore(this.rootStore, this.queryUtility, {\r\n columns: [\r\n {\r\n key: \"device.deviceName\",\r\n title: \"ADMINISTRATION.PRODUCER.PAYOUT_USER_EVENT.LIST.COLUMNS.DEVICE\",\r\n },\r\n {\r\n key: \"producer.name\",\r\n title: \"ADMINISTRATION.PRODUCER.PAYOUT_USER_EVENT.LIST.COLUMNS.PRODUCER\",\r\n },\r\n {\r\n key: \"\",\r\n title: \"ADMINISTRATION.PRODUCER.PAYOUT_USER_EVENT.LIST.COLUMNS.CONTENT_NAME\",\r\n cell: UserPayoutEventListContentCell,\r\n },\r\n {\r\n key: \"trackTitle\",\r\n title: \"ADMINISTRATION.PRODUCER.PAYOUT_USER_EVENT.LIST.COLUMNS.TRACK\",\r\n },\r\n {\r\n key: \"trackDuration\",\r\n title: \"ADMINISTRATION.PRODUCER.PAYOUT_USER_EVENT.LIST.COLUMNS.TRACK_DURATION\",\r\n format: (value) => convertSecondsToHMS(value),\r\n },\r\n {\r\n key: \"isAllowedForPayout\",\r\n title: \"ADMINISTRATION.PRODUCER.PAYOUT_USER_EVENT.LIST.COLUMNS.COLLECTED\",\r\n cell: UserEventPayoutCell,\r\n },\r\n {\r\n key: \"durationForPayout\",\r\n title: \"ADMINISTRATION.PRODUCER.PAYOUT_USER_EVENT.LIST.COLUMNS.DURATION_FOR_PAYOUT\",\r\n format: (value) => convertSecondsToHMS(value),\r\n },\r\n {\r\n key: \"durationForPayout\",\r\n title: \"ADMINISTRATION.PRODUCER.PAYOUT_USER_EVENT.LIST.COLUMNS.POINTS_FOR_PAYOUT\",\r\n },\r\n {\r\n key: \"timeStamp\",\r\n title: \"ADMINISTRATION.PRODUCER.PAYOUT_USER_EVENT.LIST.COLUMNS.TIMESTAMP\",\r\n sortable: true,\r\n format: {\r\n type: mrbDefaultFormats.date,\r\n format: applicationDefaults.formats.dateTimeSeconds,\r\n },\r\n },\r\n ],\r\n rows: {\r\n getRowClass: (params) => {\r\n const item = params.node.data;\r\n\r\n if (item && this.producerId === item.producerId && item.isAllowedForPayout) {\r\n return \"highlight\";\r\n }\r\n },\r\n },\r\n })\r\n );\r\n\r\n this.reaction(\r\n () => this.isCollapsed,\r\n (isCollapsed) => {\r\n if (isCollapsed) {\r\n this.queryUtility.initialize();\r\n }\r\n }\r\n );\r\n }\r\n\r\n onInit() {\r\n return Promise.resolve();\r\n }\r\n\r\n find(params) {\r\n params.userId = this.item.userId;\r\n params.from = this.item.subscriptionCycleStartDate;\r\n params.to = this.item.subscriptionCycleEndDate;\r\n params.producerId = this.rootStore.routerStore.routerState.params.id;\r\n return this.routeStore.findProducerReportPayoutUserEvents(params);\r\n }\r\n\r\n onFetchError(err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n\r\n @action.bound\r\n setUser(user) {\r\n this.user = user;\r\n }\r\n\r\n @action.bound\r\n setIsCollapsed(value) {\r\n this.isCollapsed = value;\r\n }\r\n}\r\n\r\nexport default ProducerPayoutUserEventListViewStore;\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class AdminProducerAccountBalanceEditForm extends LocalizedForm {\r\n constructor(hooks) {\r\n super(hooks);\r\n }\r\n\r\n setup() {\r\n return {\r\n fields: [\r\n {\r\n name: \"amount\",\r\n label: \"ADMINISTRATION.PRODUCER.ACCOUNT.EDIT.FIELDS.ACCOUNT_BALANCE_AMOUNT_LABEL\",\r\n placeholder: \"ADMINISTRATION.PRODUCER.ACCOUNT.EDIT.FIELDS.ACCOUNT_BALANCE_PLACEHOLDER\",\r\n rules: \"required|numeric\",\r\n },\r\n {\r\n name: \"notes\",\r\n label: \"ADMINISTRATION.PRODUCER.ACCOUNT.EDIT.FIELDS.ACCOUNT_BALANCE_NOTES_LABEL\",\r\n placeholder: \"ADMINISTRATION.PRODUCER.ACCOUNT.EDIT.FIELDS.ACCOUNT_BALANCE_NOTES_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class AdminProducerAccountsEditForm extends LocalizedForm {\r\n constructor(hooks) {\r\n super(hooks);\r\n }\r\n\r\n setup() {\r\n return {};\r\n }\r\n}\r\n","const AdminProducerAccountEditFields = [\r\n {\r\n name: \"userId\",\r\n label: \"ADMINISTRATION.PRODUCER.ACCOUNT.EDIT.FIELDS.USER_LABEL\",\r\n placeholder: \"ADMINISTRATION.PRODUCER.ACCOUNT.EDIT.FIELDS.USER_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n {\r\n name: \"stripeAccountId\",\r\n label: \"ADMINISTRATION.PRODUCER.ACCOUNT.EDIT.FIELDS.STRIPE_ACCOUNT_LABEL\",\r\n placeholder: \"ADMINISTRATION.PRODUCER.ACCOUNT.EDIT.FIELDS.STRIPE_ACCOUNT_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n {\r\n name: \"revenuePercentage\",\r\n label: \"ADMINISTRATION.PRODUCER.ACCOUNT.EDIT.FIELDS.REVENUE_PERCENTAGE_LABEL\",\r\n placeholder: \"ADMINISTRATION.PRODUCER.ACCOUNT.EDIT.FIELDS.REVENUE_PERCENTAGE_PLACEHOLDER\",\r\n rules: \"required|numeric|between:1,100\",\r\n },\r\n];\r\n\r\nexport default AdminProducerAccountEditFields;\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class AdminProducerForm extends LocalizedForm {\r\n constructor(hooks) {\r\n super(hooks);\r\n }\r\n\r\n setup() {\r\n return {\r\n fields: [\r\n {\r\n name: \"name\",\r\n label: \"ADMINISTRATION.PRODUCER.EDIT.FIELDS.NAME_LABEL\",\r\n placeholder: \"ADMINISTRATION.PRODUCER.EDIT.FIELDS.NAME_PLACEHOLDER\",\r\n rules: \"required|string\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { LocalizedForm } from \"common/localization\";\r\n\r\nexport default class AdminProducerAccountStripeAccountEditForm extends LocalizedForm {\r\n constructor(hooks) {\r\n super(hooks);\r\n }\r\n\r\n setup() {\r\n return {\r\n fields: [\r\n {\r\n name: \"stripeAccountId\",\r\n label: \"ADMINISTRATION.PRODUCER.ACCOUNT.EDIT.FIELDS.STRIPE_ACCOUNT_LABEL\",\r\n placeholder: \"ADMINISTRATION.PRODUCER.ACCOUNT.EDIT.FIELDS.STRIPE_ACCOUNT_PLACEHOLDER\",\r\n rules: \"string\",\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","import { computed, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { AdminProducerAccountBalanceEditForm } from \"administration/producer/forms\";\r\nimport { isFunction, isString } from \"lodash\";\r\n\r\nclass AdminProducerAccountBalanceEditViewStore extends MrbBaseViewStore {\r\n @computed get currentAccountBalance() {\r\n return this.producerUserAccount.accountBalance;\r\n }\r\n\r\n @computed get newAccountBalance() {\r\n let accountBalance = this.form.$(\"amount\").value || 0;\r\n if (isString(accountBalance)) {\r\n accountBalance = parseFloat(accountBalance);\r\n }\r\n\r\n return this.currentAccountBalance + accountBalance;\r\n }\r\n\r\n producerUserAccount = null;\r\n onSubmit = null;\r\n\r\n constructor(rootStore, { producerUserAccount, onSubmit }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.producerUserAccount = producerUserAccount;\r\n this.onSubmit = onSubmit;\r\n\r\n this.form = new AdminProducerAccountBalanceEditForm({\r\n onSuccess: (form) => {\r\n const item = form.values();\r\n if (isString(item.amount)) {\r\n item.amount = parseFloat(item.amount);\r\n }\r\n\r\n if (this.currentAccountBalance + item.amount < 0) {\r\n this.form.invalidate(\"Account balance cannot be less than 0.\");\r\n return;\r\n }\r\n return this.createResource(item);\r\n },\r\n });\r\n\r\n this.createResource = this.createResource.bind(this);\r\n }\r\n\r\n createResource(resource) {\r\n if (isFunction(this.onSubmit)) {\r\n this.onSubmit(resource);\r\n }\r\n }\r\n}\r\n\r\nexport default AdminProducerAccountBalanceEditViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { ProducerUserAccountService, ProducerService, UserAccountService } from \"common/services\";\r\n\r\nclass AdminProducerAccountEditRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.producerUserAccountService = rootStore.createApplicationService(ProducerUserAccountService);\r\n this.producerService = rootStore.createApplicationService(ProducerService);\r\n this.userAccountService = rootStore.createApplicationService(UserAccountService);\r\n }\r\n\r\n async getProducer(producerId) {\r\n const response = await this.producerService.get(producerId);\r\n return response.data;\r\n }\r\n\r\n async findUser(filter) {\r\n const response = await this.userAccountService.find(filter);\r\n return response.data;\r\n }\r\n\r\n async getUser(id) {\r\n const response = await this.userAccountService.get(id);\r\n return response.data;\r\n }\r\n\r\n async getStripeConnectAccounts() {\r\n const response = await this.producerUserAccountService.getStripeConnectAccounts();\r\n return response.data;\r\n }\r\n\r\n async getProducerAccountsSummary(producerId, abortSignal) {\r\n const response = await this.producerUserAccountService.getProducerAccountsSummary(producerId, abortSignal);\r\n return response.data;\r\n }\r\n\r\n async getAccountTotalBalance(accountId, abortSignal) {\r\n const response = await this.producerUserAccountService.getAccountTotalBalance(accountId, abortSignal);\r\n return response.data;\r\n }\r\n\r\n async getProducerTotalBalance(producerId, abortSignal) {\r\n const response = await this.producerUserAccountService.getProducerTotalBalance(producerId, abortSignal);\r\n return response.data;\r\n }\r\n\r\n async updateAccounts(producerId, accounts) {\r\n const response = await this.producerUserAccountService.updateAccounts(producerId, accounts);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default AdminProducerAccountEditRouteStore;\r\n","import { observable, action, makeObservable, computed, runInAction } from \"mobx\";\r\nimport { AdminProducerAccountsEditForm, AdminProducerAccountEditFields } from \"administration/producer/forms\";\r\nimport MobxReactFormDevTools from \"mobx-react-form-devtools\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { forEach, sumBy, map, filter, isNil } from \"lodash\";\r\nimport { applicationErrorCodes } from \"common/constants\";\r\nimport { UUID } from \"common/utils\";\r\nimport { localizationService } from \"common/localization\";\r\n\r\nclass AdminProducerAccountsViewStore extends MrbBaseViewStore {\r\n @observable.ref producerTotalBalance;\r\n @observable.ref producer;\r\n @observable.ref navigateBack;\r\n @observable.ref stripeConnectAccounts = [];\r\n @observable.ref accounts = [];\r\n\r\n producerId;\r\n\r\n @computed get selectedUsers() {\r\n const values = this.form.values();\r\n const usersIds = map(values, (value) => value.userId);\r\n return filter(usersIds, (userId) => userId !== \"\");\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n\r\n this.routeStore = routeStore;\r\n this.producerId = this.rootStore.routerStore.routerState.params.id;\r\n\r\n this.form = new AdminProducerAccountsEditForm({\r\n onSuccess: (form) => {\r\n const item = form.values();\r\n if (isNil(item)) {\r\n return this.updateResource([]);\r\n }\r\n const values = Object.values(item);\r\n if (values && values.length > 0) {\r\n const revenueShare = sumBy(values, (account) => account.revenuePercentage);\r\n if (revenueShare !== 100) {\r\n runInAction(() => {\r\n form.invalidate(\"Revenue share accross all accounts must be 100%.\");\r\n });\r\n return;\r\n }\r\n }\r\n return this.updateResource(values);\r\n },\r\n });\r\n\r\n if (process.env.NODE_ENV === \"development\") {\r\n MobxReactFormDevTools.register({ accounts: this.form });\r\n MobxReactFormDevTools.select(\"accounts\");\r\n }\r\n }\r\n\r\n async onInit() {\r\n await Promise.all([\r\n this.getStripeConnectAccounts(),\r\n this.getProducer(this.producerId),\r\n this.getProducerAccounts(this.producerId),\r\n ]);\r\n }\r\n\r\n @action.bound\r\n async getProducer(producerId) {\r\n try {\r\n const producer = await this.routeStore.getProducer(producerId);\r\n this.setProducer(producer);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load producer. Please contact the support team.\"\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n async getProducerAccounts(producerId) {\r\n try {\r\n const accounts = await this.routeStore.getProducerAccountsSummary(producerId);\r\n this.setAccounts(accounts);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load producer accounts. Please contact the support team.\"\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n async getProducerTotalBalance(producerId) {\r\n try {\r\n const totalBalance = await this.routeStore.getProducerTotalBalance(producerId);\r\n this.setProducerTotalBalance(totalBalance);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load producer total balance. Please contact the support team.\"\r\n );\r\n }\r\n }\r\n\r\n _createNavigateBackAction(producer) {\r\n return {\r\n title: producer.name,\r\n routeName: \"master.administration.producer.preview\",\r\n routeParams: { id: producer.id },\r\n };\r\n }\r\n\r\n @action.bound\r\n async getStripeConnectAccounts() {\r\n try {\r\n const accounts = await this.routeStore.getStripeConnectAccounts();\r\n this.setStripeConnectAccounts(accounts);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load Stripe Connect accounts. Please contact the support team.\"\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n setProducer(producer) {\r\n this.producer = producer;\r\n this.navigateBack = this._createNavigateBackAction(this.producer);\r\n }\r\n\r\n @action.bound\r\n setAccounts(accounts) {\r\n if (accounts && accounts.length > 0) {\r\n forEach(accounts, (account) => {\r\n const fields = [];\r\n forEach(AdminProducerAccountEditFields, (fieldDefinition) => {\r\n let field = {\r\n ...fieldDefinition,\r\n };\r\n\r\n field.value = account[fieldDefinition.name];\r\n\r\n fields.push(field);\r\n });\r\n fields.push({\r\n name: \"accountId\",\r\n rules: \"string\",\r\n value: account.producerUserAccountId,\r\n });\r\n this.form.add({\r\n key: UUID.create(),\r\n fields: fields,\r\n });\r\n });\r\n this.accounts = accounts;\r\n }\r\n }\r\n\r\n @action.bound\r\n setStripeConnectAccounts(accounts) {\r\n this.stripeConnectAccounts = accounts;\r\n }\r\n\r\n @action.bound\r\n addNewAccount() {\r\n this.form.add({\r\n fields: [...AdminProducerAccountEditFields],\r\n });\r\n }\r\n\r\n @action.bound\r\n setProducerTotalBalance(totalBalance) {\r\n this.producerTotalBalance = totalBalance;\r\n }\r\n\r\n @action.bound\r\n async updateResource(accounts) {\r\n try {\r\n await this.routeStore.updateAccounts(this.producerId, accounts);\r\n\r\n this.rootStore.routerStore.goTo(\"master.administration.producer.preview\", { id: this.producer.id });\r\n } catch (error) {\r\n if (error.data.errorCode === applicationErrorCodes.producer.userIsAdministrator) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.USER.EDIT.ERROR.ADMIN_SELECTED_AS_PRODUCER\"),\r\n error\r\n );\r\n } else if (error.data.errorCode === applicationErrorCodes.producer.duplicateUsersSelected) {\r\n this.rootStore.notificationStore.error(\r\n localizationService.t(\"ADMINISTRATION.USER.EDIT.ERROR.USER_SELECTED_MULTIPLE_TIMES\"),\r\n error\r\n );\r\n } else {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to update accounts. Please contact the support team.\"\r\n );\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default AdminProducerAccountsViewStore;\r\n","import { computed, action, makeObservable, observable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { MrbFieldSelectStore } from \"mrb/components/select\";\r\nimport { find, findIndex, isNil } from \"lodash\";\r\n\r\nclass AdminProducerAccountEditViewStore extends MrbBaseViewStore {\r\n @computed get currentAccountBalance() {\r\n if (this.selectedAccountExistingBalance != null) {\r\n return this.selectedAccountExistingBalance;\r\n }\r\n if (this.existingAccount) {\r\n return this.existingAccount.accountBalance;\r\n }\r\n\r\n return 0;\r\n }\r\n\r\n @computed get existingAccount() {\r\n if (this.form.has(\"accountId\")) {\r\n const accountId = this.form.$(\"accountId\").value;\r\n if (accountId) {\r\n return find(\r\n this.adminProducerAccountsViewStore.accounts,\r\n (account) => account.producerUserAccountId === accountId\r\n );\r\n }\r\n }\r\n\r\n return null;\r\n }\r\n\r\n @computed get producer() {\r\n return this.adminProducerAccountsViewStore.producer;\r\n }\r\n\r\n @observable.ref form;\r\n @observable.ref stripeAccountSelectStore;\r\n\r\n @observable selectedAccountExistingBalance;\r\n\r\n constructor(rootStore, { adminProducerAccountsViewStore, routeStore, form }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.adminProducerAccountsViewStore = adminProducerAccountsViewStore;\r\n this.routeStore = routeStore;\r\n this.setForm(form);\r\n }\r\n\r\n @action.bound\r\n setForm(form) {\r\n this.form = form;\r\n\r\n this.stripeAccountSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: false,\r\n virtualized: false,\r\n textKey: \"email\",\r\n actions: {\r\n find: () => {\r\n return this.adminProducerAccountsViewStore.stripeConnectAccounts;\r\n },\r\n },\r\n },\r\n this.form.$(\"stripeAccountId\")\r\n );\r\n\r\n this.userAccountSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: true,\r\n virtualized: false,\r\n initFetch: false,\r\n textKey: \"email\",\r\n isOptionDisabled: (option) => {\r\n const isUserAlreadySelected =\r\n findIndex(\r\n this.adminProducerAccountsViewStore.selectedUsers,\r\n (userId) => userId === option.value\r\n ) !== -1;\r\n if (isUserAlreadySelected) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n },\r\n actions: {\r\n find: (searchPhrase, pageNumber, pageSize) => {\r\n return this.routeStore.findUser({\r\n search: searchPhrase,\r\n pageNumber: pageNumber,\r\n pageSize: pageSize,\r\n embed: \"producerUserAccount,producerUserAccount.producer,membership\",\r\n orderBy: \"firstName,lastName\",\r\n orderDirection: \"asc,asc\",\r\n });\r\n },\r\n onChange: async (selected) => {\r\n if (!isNil(selected)) {\r\n const user = await this.routeStore.getUser(selected.value);\r\n if (user && user.producerUserAccount) {\r\n const balance = await this.routeStore.getAccountTotalBalance(\r\n user.producerUserAccount.id\r\n );\r\n this.selectedAccountExistingBalance = balance;\r\n } else {\r\n this.selectedAccountExistingBalance = 0;\r\n }\r\n if (user && user.producerUserAccount && user.producerUserAccount.stripeAccountId) {\r\n this.stripeAccountSelectStore.setFormValue(user.producerUserAccount.stripeAccountId);\r\n this.stripeAccountSelectStore.setSelectedItem({\r\n id: user.producerUserAccount.stripeAccountId,\r\n });\r\n } else {\r\n this.stripeAccountSelectStore.setFormValue(\"\");\r\n this.stripeAccountSelectStore.setSelectedItem();\r\n }\r\n } else {\r\n this.stripeAccountSelectStore.setFormValue(\"\");\r\n this.stripeAccountSelectStore.setSelectedItem();\r\n this.selectedAccountExistingBalance = 0;\r\n }\r\n },\r\n },\r\n },\r\n this.form.$(\"userId\")\r\n );\r\n\r\n if (this.existingAccount) {\r\n this.userAccountSelectStore.setSelectedItem({\r\n firstName: this.existingAccount.firstName,\r\n lastName: this.existingAccount.lastName,\r\n email: this.existingAccount.email,\r\n id: this.existingAccount.userId,\r\n producerUserAccount: {\r\n id: this.existingAccount.producerUserAccountId,\r\n producer: {\r\n id: this.producer.id,\r\n name: this.producer.name,\r\n },\r\n },\r\n });\r\n }\r\n }\r\n\r\n onViewUpdate(_, newProps) {\r\n /* eslint-disable */\r\n // return true only if both operands reference the same object.\r\n if (this.form == newProps.form) {\r\n return;\r\n }\r\n /* eslint-enable */\r\n this.setForm(newProps.form);\r\n }\r\n\r\n @action.bound\r\n removeAccount(event) {\r\n this.form.onDel(event);\r\n }\r\n}\r\n\r\nexport default AdminProducerAccountEditViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { ProducerAnalyticsService, ProducerUserAccountService } from \"common/services\";\r\n\r\nclass AdminProducerListRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(ProducerAnalyticsService);\r\n this.producerUserAccountService = rootStore.createApplicationService(ProducerUserAccountService);\r\n }\r\n\r\n async findContent(params) {\r\n const response = await this.service.findProducerPaymentSummary(params);\r\n return response.data;\r\n }\r\n\r\n async getProducersSummary(filter) {\r\n const response = await this.producerUserAccountService.getProducersSummary(filter);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default AdminProducerListRouteStore;\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbTableViewStore } from \"mrb/components\";\r\nimport { mrbDefaultFormats } from \"mrb/common/formatting\";\r\nimport { ProducerPaymentReportFilter } from \"administration/producer/filters\";\r\nimport { ProducerNameCell } from \"administration/producer/components\";\r\nimport { ProducerPlaybackTimeCell } from \"common/components/producer\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { localizationService } from \"common/localization\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport { timeRangeType } from \"administration/analytics/constants\";\r\nimport { dateRangeFactory } from \"administration/analytics/models\";\r\nimport moment from \"moment\";\r\nimport \"moment-timezone\";\r\n\r\nclass AdminProducerListViewStore extends MrbBaseListViewStore {\r\n @observable.ref producersSummary;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n layoutActions: {\r\n create: {\r\n onClick: () => this.rootStore.routerStore.goTo(\"master.administration.producer.create\"),\r\n label: \"ADMINISTRATION.PRODUCER.LIST.BUTTONS.ADD\",\r\n },\r\n },\r\n queryConfig: {\r\n filter: new ProducerPaymentReportFilter(),\r\n orderBy: \"currentMonthTotalProducerPayment\",\r\n orderDirection: \"desc\",\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n const now = moment().subtract(1, \"month\").startOf(\"month\");\r\n this.setTimeRange(now);\r\n\r\n const currentMonthLabel = dateFormatter.format(now, {\r\n format: applicationDefaults.formats.monthFull,\r\n timeZone: this.queryUtility.filter.timeZone,\r\n });\r\n this.setGridStore(\r\n new MrbTableViewStore(this.rootStore, this.queryUtility, {\r\n onRowClick: (node) => {\r\n this.rootStore.routerStore.goTo(\"master.administration.producer.preview\", {\r\n id: node.data.producerId,\r\n });\r\n },\r\n columns: [\r\n {\r\n key: \"producerName\",\r\n title: \"ADMINISTRATION.ANALYTICS.PREMIUM_CONTENT.LIST.COLUMNS.PRODUCER\",\r\n cell: ProducerNameCell,\r\n sortable: true,\r\n },\r\n {\r\n key: \"currentMonthTotalProducerPlaybacks\",\r\n title: localizationService.t(\r\n \"ADMINISTRATION.ANALYTICS.PREMIUM_CONTENT.LIST.COLUMNS.TOTAL_PLAYBACK_TIME\",\r\n { month: currentMonthLabel }\r\n ),\r\n sortable: true,\r\n cell: ProducerPlaybackTimeCell,\r\n },\r\n {\r\n key: \"currentMonthTotalProducerPlaybacks\",\r\n title: localizationService.t(\r\n \"ADMINISTRATION.ANALYTICS.PREMIUM_CONTENT.LIST.COLUMNS.TOTAL_PLAYBACK_POINTS\",\r\n { month: currentMonthLabel }\r\n ),\r\n format: (value) => numberFormatter.format(value),\r\n },\r\n {\r\n key: \"currentMonthTotalProducerPayment\",\r\n title: localizationService.t(\r\n \"ADMINISTRATION.ANALYTICS.PREMIUM_CONTENT.LIST.COLUMNS.TOTAL_PAYMENT\",\r\n { month: currentMonthLabel }\r\n ),\r\n sortable: true,\r\n format: {\r\n type: mrbDefaultFormats.currency,\r\n currency: \"USD\",\r\n },\r\n },\r\n ],\r\n actions: {\r\n edit: {\r\n onClick: (item) =>\r\n this.rootStore.routerStore.goTo(\"master.administration.producer.edit\", {\r\n id: item.producerId,\r\n }),\r\n label: \"ADMINISTRATION.PRODUCER.LIST.ACTIONS.EDIT\",\r\n buttonProps: {\r\n className: \"c-btn c-btn--sml c-btn--ghost u-mar--right--tny\",\r\n },\r\n },\r\n },\r\n })\r\n );\r\n }\r\n\r\n async onInit() {\r\n await Promise.all([this.queryUtility.initialize(), this.fetchProducersSummary()]);\r\n }\r\n\r\n find(params) {\r\n return this.routeStore.findContent(params);\r\n }\r\n\r\n onFetchError(err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\"\r\n );\r\n }\r\n\r\n @action.bound\r\n setTimeRange(date) {\r\n this.queryUtility.filter.monthOfYear = date.format(applicationDefaults.formats.isoDate);\r\n }\r\n\r\n async fetchProducersSummary() {\r\n try {\r\n const timeZone = moment.tz.guess();\r\n const range = dateRangeFactory.create(timeRangeType.today, timeZone);\r\n\r\n //size - The number of users with the highest balance to retrieve\r\n let filter = { size: 5, from: range.from, to: range.to };\r\n const data = await this.routeStore.getProducersSummary(filter);\r\n this.setProducersSummary(data);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n setProducersSummary(data) {\r\n this.producersSummary = data;\r\n }\r\n}\r\n\r\nexport default AdminProducerListViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { ProducerAnalyticsService, ProducerUserAccountService } from \"common/services\";\r\n\r\nclass AdminProducerPreviewRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(ProducerAnalyticsService);\r\n this.producerUserAccountService = rootStore.createApplicationService(ProducerUserAccountService);\r\n }\r\n\r\n async findProducerReports(params) {\r\n const response = await this.service.findProducerReports(params);\r\n return response.data;\r\n }\r\n\r\n async getProducerSummary(producerId) {\r\n const response = await this.service.getProducerSummary(producerId);\r\n return response.data;\r\n }\r\n\r\n async getProducerUserAccountsSummary(producerId) {\r\n const response = await this.producerUserAccountService.getProducerAccountsSummary(producerId);\r\n return response.data;\r\n }\r\n\r\n async getProducerMostPopularContent(producerId, options) {\r\n const response = await this.service.getProducerMostPopularContent(producerId, options);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default AdminProducerPreviewRouteStore;\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\n\r\nclass AdminProducerAccountsListViewStore extends MrbBaseViewStore {\r\n producerId = null;\r\n\r\n @observable.ref accounts = [];\r\n\r\n constructor(rootStore, { producerId, routeStore }) {\r\n super(rootStore);\r\n this.routeStore = routeStore;\r\n makeObservable(this);\r\n\r\n this.producerId = producerId;\r\n }\r\n\r\n onInit() {\r\n return this.getProducerAccounts(this.producerId);\r\n }\r\n\r\n @action.bound\r\n async getProducerAccounts(producerId) {\r\n try {\r\n const accounts = await this.routeStore.getProducerUserAccountsSummary(producerId);\r\n this.setAccounts(accounts);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load producer accounts. Please contact the support team.\"\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n setAccounts(accounts) {\r\n this.accounts = accounts;\r\n }\r\n @action.bound\r\n selectAccount(account) {\r\n this.rootStore.routerStore.goTo(\"master.administration.producer.account\", {\r\n id: account.producerUserAccountId,\r\n });\r\n }\r\n}\r\n\r\nexport default AdminProducerAccountsListViewStore;\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbTableViewStore } from \"mrb/components\";\r\nimport { mrbDefaultFormats } from \"mrb/common/formatting\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { LineChartStore } from \"common/components/charts\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\nimport { httpStatusCodes } from \"mrb/core/constants\";\r\nimport { ProducerPreviewReportPeriodCell, ProducerPreviewReportPlaybackTimeCell } from \"common/components/producer\";\r\nimport { map, orderBy, findIndex } from \"lodash\";\r\nimport { numberFormatter } from \"common/utils\";\r\nimport moment from \"moment\";\r\n\r\nclass AdminProducerPreviewViewStore extends MrbBaseListViewStore {\r\n @observable.ref summaryData = null;\r\n @observable.ref mostPopularContent = [];\r\n\r\n _id = null;\r\n range = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n orderBy: \"monthOfYear\",\r\n orderDirection: \"desc\",\r\n },\r\n navigateBack: \"master.administration.producer.list\",\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this._id = this.rootStore.routerStore.routerState.params.id;\r\n\r\n const from = moment.utc().subtract(1, \"year\").startOf(\"month\").format(applicationDefaults.formats.isoDate);\r\n const to = moment.utc().subtract(1, \"month\").startOf(\"month\").format(applicationDefaults.formats.isoDate);\r\n this.range = {\r\n from: from,\r\n to: to,\r\n };\r\n\r\n this.setGridStore(\r\n new MrbTableViewStore(this.rootStore, this.queryUtility, {\r\n onRowClick: (node) => {\r\n const monthOfYear = dateFormatter.format(node.data.monthOfYear, {\r\n format: applicationDefaults.formats.isoDate,\r\n timeZone: \"utc\",\r\n });\r\n this.rootStore.routerStore.goTo(\r\n \"master.administration.producer.preview.payment\",\r\n {\r\n id: node.data.producerId,\r\n },\r\n {\r\n monthOfYear: monthOfYear,\r\n }\r\n );\r\n },\r\n columns: [\r\n {\r\n key: \"monthOfYear\",\r\n title: \"Period\",\r\n sortable: true,\r\n cell: ProducerPreviewReportPeriodCell,\r\n },\r\n {\r\n key: \"totalProducerPlaybacks\",\r\n title: \"Playback Time\",\r\n cell: ProducerPreviewReportPlaybackTimeCell,\r\n },\r\n {\r\n key: \"totalProducerPlaybacks\",\r\n title: \"Playback Points\",\r\n sortable: true,\r\n format: (value) => numberFormatter.format(value),\r\n },\r\n {\r\n key: \"totalProducerPayment\",\r\n title: \"Revenue\",\r\n sortable: true,\r\n format: {\r\n type: mrbDefaultFormats.currency,\r\n currency: \"USD\",\r\n },\r\n },\r\n ],\r\n })\r\n );\r\n\r\n this.chartStore = new LineChartStore(this.rootStore, {\r\n label: \"Payout\",\r\n actions: {\r\n preprocessData: (data) => {\r\n return this.spanChartDataSetToFullRange(data);\r\n },\r\n mapLabels: (data) => {\r\n return map(data, (item) =>\r\n dateFormatter.format(item.monthOfYear, {\r\n format: applicationDefaults.formats.monthShort,\r\n })\r\n );\r\n },\r\n mapDataset: (data) => {\r\n return map(data, (item) => item.totalProducerPayment);\r\n },\r\n find: async (_, abortController) => {\r\n let params = {\r\n from: this.range.from,\r\n to: this.range.to,\r\n page: 1,\r\n rpp: 12, // 12 months\r\n producerIds: this._id,\r\n orderBy: \"monthOfYear\",\r\n orderDirection: \"asc\",\r\n };\r\n const response = await this.routeStore.findProducerReports(params);\r\n\r\n return response.item;\r\n },\r\n onError: (error) => {\r\n if (error && error.statusCode === httpStatusCodes.CanceledRequest) {\r\n return;\r\n }\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load chart data.\",\r\n error\r\n );\r\n },\r\n },\r\n options: {\r\n plugins: {\r\n legend: {\r\n display: false,\r\n },\r\n tooltip: {\r\n callbacks: {\r\n label: function (context) {\r\n const amount = currencyFormatter.format(context.formattedValue, {\r\n currency: \"USD\",\r\n });\r\n return `${context.dataset.label}: ${amount}`;\r\n },\r\n },\r\n },\r\n },\r\n scales: {\r\n y: {\r\n ticks: {\r\n callback: function (value) {\r\n return currencyFormatter.format(value, {\r\n currency: \"USD\",\r\n });\r\n },\r\n },\r\n },\r\n },\r\n },\r\n });\r\n\r\n this.spanChartDataSetToFullRange = this.spanChartDataSetToFullRange.bind(this);\r\n }\r\n\r\n async onInit() {\r\n await Promise.all([\r\n super.onInit(),\r\n this.chartStore.generate(),\r\n this.fetchSummaryData(this._id),\r\n this.fetchMostPopularContent(this._id),\r\n ]);\r\n }\r\n\r\n find(params) {\r\n params.producerIds = this._id;\r\n return this.routeStore.findProducerReports(params);\r\n }\r\n\r\n onFetchError(err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n\r\n spanChartDataSetToFullRange(data) {\r\n const min = moment.utc(this.range.from);\r\n const max = moment.utc(this.range.to);\r\n const periods = max.diff(min, \"month\") + 1;\r\n let currentPeriod = min;\r\n let missingPeriods = [];\r\n for (let period = 1; period <= periods; period++) {\r\n /* eslint-disable no-loop-func */\r\n const index = findIndex(data, (item) => moment.utc(item.monthOfYear).isSame(currentPeriod));\r\n if (index === -1) {\r\n missingPeriods.push({\r\n monthOfYear: currentPeriod.format(applicationDefaults.formats.isoDate),\r\n totalProducerPayment: 0,\r\n });\r\n }\r\n currentPeriod = moment.utc(currentPeriod).add(1, \"month\");\r\n }\r\n\r\n const result = orderBy([...data, ...missingPeriods], (x) => x.monthOfYear);\r\n return result;\r\n }\r\n\r\n async fetchMostPopularContent(id) {\r\n try {\r\n const data = await this.routeStore.getProducerMostPopularContent(id, { page: 1, rpp: 5 });\r\n this.setMostPopularContent(data);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n setMostPopularContent(data) {\r\n this.mostPopularContent = data;\r\n }\r\n\r\n async fetchSummaryData(id) {\r\n try {\r\n const data = await this.routeStore.getProducerSummary(id);\r\n this.setSummaryData(data);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n setSummaryData(data) {\r\n this.summaryData = data;\r\n }\r\n}\r\n\r\nexport default AdminProducerPreviewViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { ProducerService } from \"common/services\";\r\n\r\nclass AdminProducerEditRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.producerService = rootStore.createApplicationService(ProducerService);\r\n }\r\n\r\n async createProducer(resource) {\r\n const response = await this.producerService.create(resource);\r\n return response.data;\r\n }\r\n\r\n async getProducer(resource) {\r\n const response = await this.producerService.get(resource);\r\n return response.data;\r\n }\r\n async updateProducer(resource) {\r\n const response = await this.producerService.update(resource);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default AdminProducerEditRouteStore;\r\n","import { MrbBaseEditViewStore } from \"mrb/core\";\r\nimport { AdminProducerEditForm } from \"administration/producer/forms\";\r\nimport { makeObservable } from \"mobx\";\r\n\r\nclass AdminProducerEditViewStore extends MrbBaseEditViewStore {\r\n constructor(rootStore, { routeStore }) {\r\n const id = rootStore.routerStore.routerState.params.id;\r\n super(rootStore, {\r\n id: id,\r\n name: \"producer\",\r\n FormClass: AdminProducerEditForm,\r\n autoFocusField: \"name\",\r\n navigateBack: \"master.administration.producer.list\",\r\n successCreateNotification: null,\r\n successUpdateNotification: null,\r\n redirectOnCreateSuccess: ({ id }) =>\r\n this.rootStore.routerStore.goTo(\"master.administration.producer.preview\", { id: id }),\r\n redirectOnUpdateSuccess: () =>\r\n this.rootStore.routerStore.goTo(\"master.administration.producer.preview\", { id: this.id }),\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n get(id) {\r\n return this.routeStore.getProducer(id);\r\n }\r\n\r\n create(data) {\r\n return this.routeStore.createProducer(data);\r\n }\r\n\r\n async update(data) {\r\n await this.routeStore.updateProducer(data);\r\n }\r\n\r\n onCreateError(err) {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to create resource.\", err);\r\n }\r\n\r\n onUpdateError(err) {\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to update resource.\", err);\r\n }\r\n}\r\n\r\nexport default AdminProducerEditViewStore;\r\n","import { action, observable, makeObservable, runInAction } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { MrbTableViewStore } from \"mrb/components\";\r\nimport { mrbDefaultFormats } from \"mrb/common/formatting\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\nimport { MrbQueryUtility } from \"mrb/core/filter\";\r\nimport { isNil } from \"lodash\";\r\n\r\nclass AdminProducerAccountPreviewViewStore extends MrbBaseViewStore {\r\n _id = null;\r\n _producerId = null;\r\n @observable revenueGridStore = null;\r\n @observable balanceGridStore = null;\r\n @observable.ref summaryData = null;\r\n @observable.ref assignedProducers = null;\r\n @observable.ref navigateBack;\r\n revenueQueryUtility = null;\r\n balanceQueryUtility = null;\r\n @observable title = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this._id = this.rootStore.routerStore.routerState.params.id;\r\n this._producerId = this.rootStore.routerStore.routerState.params.producerId;\r\n\r\n this.revenueQueryUtility = new MrbQueryUtility(\r\n this.rootStore,\r\n async (filter) => {\r\n this.revenueFetchResources(filter);\r\n },\r\n {\r\n orderBy: \"dateCreated\",\r\n orderDirection: \"desc\",\r\n ignoreQueryParams: true,\r\n disableUpdateQueryParams: true,\r\n }\r\n );\r\n\r\n this.balanceQueryUtility = new MrbQueryUtility(\r\n this.rootStore,\r\n async (filter) => {\r\n this.balanceFetchResources(filter);\r\n },\r\n {\r\n orderBy: \"dateCreated\",\r\n orderDirection: \"desc\",\r\n ignoreQueryParams: true,\r\n disableUpdateQueryParams: true,\r\n }\r\n );\r\n this.revenueFetchResources = this.revenueFetchResources.bind(this);\r\n this.balanceFetchResources = this.balanceFetchResources.bind(this);\r\n\r\n this.setRevenueGridStore(\r\n new MrbTableViewStore(this.rootStore, this.revenueQueryUtility, {\r\n columns: [\r\n {\r\n key: \"dateCreated\",\r\n title: \"Date\",\r\n sortable: true,\r\n format: (value) =>\r\n dateFormatter.format(value, {\r\n format: applicationDefaults.formats.dateTime,\r\n }),\r\n },\r\n {\r\n key: \"stripeTransactionId\",\r\n title: \"Stripe Transaction Id\",\r\n },\r\n {\r\n key: \"amount\",\r\n title: \"Amount\",\r\n sortable: true,\r\n format: {\r\n type: mrbDefaultFormats.currency,\r\n currency: \"USD\",\r\n },\r\n },\r\n ],\r\n })\r\n );\r\n\r\n this.setBalanceGridStore(\r\n new MrbTableViewStore(this.rootStore, this.balanceQueryUtility, {\r\n columns: [\r\n {\r\n key: \"dateCreated\",\r\n title: \"Date\",\r\n sortable: true,\r\n format: (value) =>\r\n dateFormatter.format(value, {\r\n format: applicationDefaults.formats.dateTime,\r\n }),\r\n },\r\n {\r\n key: \"notes\",\r\n title: \"Notes\",\r\n },\r\n {\r\n key: \"amount\",\r\n title: \"Amount\",\r\n sortable: true,\r\n format: {\r\n type: mrbDefaultFormats.currency,\r\n currency: \"USD\",\r\n },\r\n cellClass: (item) => {\r\n if (item.value > 0) {\r\n return \"u-type--color--success\";\r\n } else if (item.value < 0) {\r\n return \"u-type--color--warning\";\r\n }\r\n },\r\n },\r\n {\r\n key: \"producer.name\",\r\n title: \"Producer\",\r\n cell: (params) => {\r\n if (!isNil(params.data.producerId)) {\r\n return (\r\n this._producerNavigation(params.data.producerId)}\r\n >\r\n {params.value}\r\n
    \r\n );\r\n } else {\r\n return null;\r\n }\r\n },\r\n },\r\n ],\r\n })\r\n );\r\n\r\n this.addToAccountBalanceModal = new MrbModalParams(null, {\r\n addToAccountBalance: this.addToAccountBalance,\r\n });\r\n\r\n this.updateStripeAccountModal = new MrbModalParams(null, {\r\n updateStripeAccount: this.updateStripeAccount,\r\n });\r\n }\r\n\r\n async revenueFetchResources(filter) {\r\n this.revenueGridStore.suspend();\r\n try {\r\n filter.producerUserAccountIds = this._id;\r\n const response = await this.fetchRevenueData(filter);\r\n runInAction(() => {\r\n this.revenueGridStore.setData(response);\r\n this.revenueGridStore.resume();\r\n });\r\n } catch (err) {\r\n this.revenueGridStore.resume();\r\n this.onFetchError(err);\r\n }\r\n }\r\n\r\n async balanceFetchResources(filter) {\r\n this.balanceGridStore.suspend();\r\n try {\r\n filter.producerUserAccountIds = this._id;\r\n const response = await this.fetchBalanceData(filter);\r\n runInAction(() => {\r\n this.balanceGridStore.setData(response);\r\n this.balanceGridStore.resume();\r\n });\r\n } catch (err) {\r\n this.balanceGridStore.resume();\r\n this.onFetchError(err);\r\n }\r\n }\r\n\r\n async onInit() {\r\n await Promise.all([\r\n this.revenueQueryUtility.initialize(),\r\n this.balanceQueryUtility.initialize(),\r\n this.fetchAccountSummaryData(this._id),\r\n this.fetchAssignedProducers(this._id),\r\n ]);\r\n }\r\n\r\n onFetchError(err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n\r\n async fetchRevenueData(filter) {\r\n try {\r\n return await this.routeStore.getAdminProducerAccountRevenueTransaction(filter);\r\n } catch (error) {\r\n this.onFetchError(error);\r\n }\r\n }\r\n\r\n async fetchBalanceData(filter) {\r\n try {\r\n return await this.routeStore.getAdminProducerAccountBalance(filter);\r\n } catch (error) {\r\n this.onFetchError(error);\r\n }\r\n }\r\n\r\n async get() {\r\n try {\r\n this._producer = await this.routeStore.get(this._producerId);\r\n } catch (error) {\r\n this.onFetchError(error);\r\n }\r\n }\r\n\r\n @action.bound\r\n setRevenueGridStore(revenueGridStore) {\r\n this.revenueGridStore = revenueGridStore;\r\n }\r\n\r\n @action.bound\r\n setBalanceGridStore(balanceGridStore) {\r\n this.balanceGridStore = balanceGridStore;\r\n }\r\n\r\n @action.bound\r\n setSummaryData(data) {\r\n this.summaryData = data;\r\n this.setTitle(this.summaryData);\r\n }\r\n\r\n @action.bound\r\n setAssignedProducers(data) {\r\n this.assignedProducers = data;\r\n }\r\n\r\n onDestroy() {\r\n this.revenueGridStore.destroy();\r\n this.balanceGridStore.destroy();\r\n }\r\n\r\n setTitle(data) {\r\n this.title = data.firstName + \" \" + data.lastName;\r\n }\r\n\r\n async fetchAccountSummaryData(accountId) {\r\n try {\r\n const data = await this.routeStore.getAdminProducerAccountSummary(accountId);\r\n this.setSummaryData(data);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n async fetchAssignedProducers(accountId) {\r\n try {\r\n const data = await this.routeStore.getAdminProducerAccountAssignedProducers(accountId);\r\n this.setAssignedProducers(data);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to load data. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n openAddToAccountBalanceModal() {\r\n this.addToAccountBalanceModal.open({\r\n producerUserAccount: {\r\n id: this.summaryData.producerUserAccountId,\r\n user: {\r\n id: this.summaryData.userId,\r\n firstName: this.summaryData.firstName,\r\n lastName: this.summaryData.lastName,\r\n },\r\n accountBalance: this.summaryData.accountBalance,\r\n },\r\n });\r\n }\r\n\r\n @action.bound\r\n openUpdateStripeAccountModal() {\r\n this.updateStripeAccountModal.open({\r\n producerUserAccount: {\r\n id: this.summaryData.producerUserAccountId,\r\n stripeAccountId: this.summaryData.stripeAccountId,\r\n },\r\n routeStore: this.routeStore,\r\n });\r\n }\r\n\r\n @action.bound\r\n async addToAccountBalance(resource) {\r\n try {\r\n resource.producerUserAccountId = this.summaryData.producerUserAccountId;\r\n await this.routeStore.addAccountBalance(resource);\r\n this.addToAccountBalanceModal.close();\r\n await this.refreshAccountBalance();\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to manually add balance. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n async updateStripeAccount(resource) {\r\n try {\r\n resource.id = this.summaryData.producerUserAccountId;\r\n await this.routeStore.updateStripeAccount(resource);\r\n this.updateStripeAccountModal.close();\r\n await this.refreshStripeAccount();\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to update stripe account. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n async refreshAccountBalance() {\r\n await Promise.all([this.balanceQueryUtility.fetch(), this.fetchAccountSummaryData(this._id)]);\r\n }\r\n\r\n @action.bound\r\n async refreshStripeAccount() {\r\n await Promise.all([this.fetchAccountSummaryData(this._id)]);\r\n }\r\n}\r\n\r\nexport default AdminProducerAccountPreviewViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { ProducerUserAccountService } from \"common/services\";\r\n\r\nclass AdminProducerAccountPreviewRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n this.producerUserAccountService = rootStore.createApplicationService(ProducerUserAccountService);\r\n }\r\n\r\n async getAdminProducerAccountBalance(filter) {\r\n const response = await this.producerUserAccountService.getAdminProducerAccountBalance(filter);\r\n return response.data;\r\n }\r\n\r\n async getAdminProducerAccountRevenueTransaction(filter) {\r\n const response = await this.producerUserAccountService.getAdminProducerAccountRevenueTransaction(filter);\r\n return response.data;\r\n }\r\n\r\n async getAdminProducerAccountSummary(accountId) {\r\n const response = await this.producerUserAccountService.getAdminProducerAccountSummary(accountId);\r\n return response.data;\r\n }\r\n\r\n async getAdminProducerAccountAssignedProducers(accountId) {\r\n const response = await this.producerUserAccountService.getAdminProducerAccountAssignedProducers(accountId);\r\n return response.data;\r\n }\r\n\r\n async addAccountBalance(resource) {\r\n const response = await this.producerUserAccountService.addAccountBalance(resource);\r\n return response.data;\r\n }\r\n\r\n async updateStripeAccount(resource) {\r\n const response = await this.producerUserAccountService.updateStripeAccount(resource);\r\n return response.data;\r\n }\r\n async getStripeConnectAccounts() {\r\n const response = await this.producerUserAccountService.getStripeConnectAccounts();\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default AdminProducerAccountPreviewRouteStore;\r\n","import { makeObservable, observable, action } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { AdminProducerAccountStripeAccountEditForm } from \"administration/producer/forms\";\r\nimport { isFunction } from \"lodash\";\r\nimport { MrbFieldSelectStore } from \"mrb/components/select\";\r\nimport { isNil } from \"lodash\";\r\n\r\nclass AdminProducerAccountStripeAccountEditViewStore extends MrbBaseViewStore {\r\n onSubmit = null;\r\n @observable.ref producerUserAccount = null;\r\n @observable.ref stripeAccountSelectStore;\r\n\r\n constructor(rootStore, { producerUserAccount, onSubmit, routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.onSubmit = onSubmit;\r\n this.routeStore = routeStore;\r\n\r\n this.setForm(\r\n new AdminProducerAccountStripeAccountEditForm({\r\n onSuccess: (form) => {\r\n const item = form.values();\r\n return this.createResource(item);\r\n },\r\n })\r\n );\r\n\r\n this.setProducerUserAccount(producerUserAccount);\r\n\r\n this.createResource = this.createResource.bind(this);\r\n }\r\n\r\n createResource(resource) {\r\n if (isFunction(this.onSubmit)) {\r\n this.onSubmit(resource);\r\n }\r\n }\r\n\r\n @action.bound\r\n setProducerUserAccount(producerUserAccount) {\r\n this.producerUserAccount = producerUserAccount;\r\n if (!isNil(producerUserAccount.stripeAccountId)) {\r\n this.form.$(\"stripeAccountId\").set(producerUserAccount.stripeAccountId);\r\n }\r\n }\r\n\r\n @action.bound\r\n setForm(form) {\r\n this.form = form;\r\n\r\n this.stripeAccountSelectStore = new MrbFieldSelectStore(\r\n {\r\n isSearchable: false,\r\n virtualized: false,\r\n textKey: \"email\",\r\n actions: {\r\n find: () => {\r\n return this.routeStore.getStripeConnectAccounts();\r\n },\r\n },\r\n },\r\n this.form.$(\"stripeAccountId\")\r\n );\r\n }\r\n}\r\n\r\nexport default AdminProducerAccountStripeAccountEditViewStore;\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { assignWith, omitBy, isUndefined, isNull, some, forOwn, forEach } from \"lodash\";\r\nimport { MrbFilterParameters, sortDirection } from \"./\";\r\n\r\nclass MrbQueryUtility {\r\n @observable filter;\r\n @observable recordCount;\r\n @observable totalPages;\r\n\r\n constructor(rootStore, fetchFunc, options = {}) {\r\n this.rootStore = rootStore;\r\n this.fetchFunc = fetchFunc;\r\n makeObservable(this);\r\n\r\n if (options.filter) {\r\n this.filter = options.filter;\r\n } else {\r\n this.filter = new MrbFilterParameters();\r\n }\r\n\r\n this.recordCount = 0;\r\n this.totalPages = 0;\r\n\r\n this._init(options);\r\n }\r\n\r\n _init = (options) => {\r\n if (options.onChangeOrder) {\r\n this.onChangeOrder = options.onChangeOrder;\r\n }\r\n\r\n if (options.onChangePage) {\r\n this.onChangePage = options.onChangePage;\r\n }\r\n\r\n if (options.onChangePageSize) {\r\n this.onChangePageSize = options.onChangePageSize;\r\n }\r\n\r\n if (options.embed) {\r\n this.filter.embed = options.embed;\r\n }\r\n\r\n if (options.fields) {\r\n this.filter.fields = options.fields;\r\n }\r\n\r\n if (options.onTransformQueryParams) {\r\n this.onTransformQueryParams = options.onTransformQueryParams;\r\n }\r\n\r\n if (options.queryParamMap) {\r\n this.queryParamMap = options.queryParamMap;\r\n }\r\n if (options.paramKeyMap) {\r\n this.paramKeyMap = options.paramKeyMap || {};\r\n }\r\n\r\n if (options.ignoreQueryParams) {\r\n this.ignoreQueryParams = options.ignoreQueryParams;\r\n }\r\n\r\n if (options.disableUpdateQueryParams) {\r\n this.disableUpdateQueryParams = options.disableUpdateQueryParams;\r\n }\r\n\r\n if (options.onResetFilter) {\r\n this.onResetFilter = options.onResetFilter;\r\n }\r\n if (options.pageSize) {\r\n this.filter.pageSize = options.pageSize;\r\n }\r\n if (options.orderBy) {\r\n this.filter.orderBy = options.orderBy;\r\n }\r\n if (options.orderDirection) {\r\n this.filter.orderDirection = options.orderDirection;\r\n }\r\n };\r\n\r\n @action initialize = (updateUrlParams = true, useDefaultFilter = false) => {\r\n this.updateFilter(useDefaultFilter);\r\n return this._reloadCollection(updateUrlParams);\r\n };\r\n\r\n fetch = (updateUrlParams = true) => {\r\n this.changePage(1, updateUrlParams);\r\n };\r\n\r\n @action changePage = (page, updateUrlParams = true) => {\r\n this.filter.pageNumber = page;\r\n\r\n if (this.onChangePage) {\r\n this.onChangePage(page);\r\n }\r\n\r\n return this._reloadCollection(updateUrlParams);\r\n };\r\n\r\n @action changePageSize = (pageSize, updateUrlParams = true) => {\r\n this.filter.pageSize = pageSize;\r\n this.filter.pageNumber = 1;\r\n\r\n if (this.onChangePageSize) {\r\n this.onChangePageSize(pageSize);\r\n }\r\n\r\n return this._reloadCollection(updateUrlParams);\r\n };\r\n\r\n @action changeOrder = (sort, updateUrlParams = true) => {\r\n let direction = sortDirection.asc;\r\n if (this.filter.orderBy === sort && this.filter.orderDirection === sortDirection.asc) {\r\n direction = sortDirection.desc;\r\n }\r\n if (this.filter.orderBy === sort && this.filter.orderDirection === sortDirection.desc) {\r\n sort = null;\r\n direction = null;\r\n }\r\n this.filter.orderBy = sort;\r\n this.filter.orderDirection = this.filter.orderBy === null ? null : direction;\r\n if (this.onChangeOrder) {\r\n this.onChangeOrder({ sort, direction });\r\n }\r\n\r\n return this._reloadCollection(updateUrlParams);\r\n };\r\n\r\n @action handleResponse = (response, updateUrlParams = false) => {\r\n this.filter.pageNumber = response.page;\r\n this.filter.pageSize = response.recordsPerPage;\r\n this.recordCount = response.totalRecords;\r\n this.totalPages = Math.ceil(this.recordCount / this.filter.pageSize);\r\n\r\n if (response.sort) {\r\n let params = response.sort.split(\"|\");\r\n\r\n this.filter.orderBy = params[0];\r\n this.filter.orderDirection = params[1];\r\n }\r\n\r\n if (updateUrlParams) {\r\n this.updateUrlParams();\r\n }\r\n };\r\n\r\n getFilterUrlParams = () => {\r\n const {\r\n pageNumber,\r\n pageSize,\r\n search,\r\n orderBy,\r\n orderDirection,\r\n /* eslint-disable */\r\n embed,\r\n fields,\r\n /* eslint-enable */\r\n ...others\r\n } = this.filter;\r\n\r\n let sortSlug;\r\n if (orderBy) {\r\n sortSlug = orderBy + \"|\" + orderDirection;\r\n }\r\n\r\n let queryParams = {\r\n page: pageNumber,\r\n rpp: pageSize,\r\n orderBy: sortSlug,\r\n search: search || undefined,\r\n ...others,\r\n };\r\n if (this.paramKeyMap) {\r\n forEach(this.paramKeyMap, (key, realKey) => {\r\n queryParams[key] = queryParams[realKey];\r\n delete queryParams[realKey];\r\n });\r\n }\r\n\r\n return this.getValidQueryParams(queryParams);\r\n };\r\n\r\n getValidQueryParams = (queryParams) => {\r\n return omitBy(queryParams, (param, key) => {\r\n const isEmpty = isUndefined(param) || isNull(param) || param === \"\";\r\n if (isEmpty) {\r\n return true;\r\n }\r\n\r\n return this.ignoreQueryParams ? some(this.ignoreQueryParams, (ignore) => ignore === key) : false;\r\n });\r\n };\r\n\r\n updateUrlParams = () => {\r\n if (this.disableUpdateQueryParams) return;\r\n\r\n const { routerStore } = this.rootStore;\r\n let queryParams = this.getFilterUrlParams();\r\n\r\n if (this.queryParamMap) {\r\n forOwn(queryParams, (value, key) => {\r\n const realKey = this.paramKeyMap && this.paramKeyMap[key] ? this.paramKeyMap[key] : key;\r\n const map = this.queryParamMap[realKey];\r\n if (map && map.toQuery) {\r\n queryParams[realKey] = map.toQuery(value);\r\n }\r\n });\r\n }\r\n\r\n routerStore.setQueryParams(queryParams);\r\n };\r\n\r\n removeUrlParams = (paramsToRemove = []) => {\r\n const { routerStore } = this.rootStore;\r\n let queryParams = this.getFilterUrlParams();\r\n\r\n if (paramsToRemove.length === 0) routerStore.setQueryParams();\r\n else {\r\n paramsToRemove.forEach((param) => {\r\n if (hasOwnProperty(queryParams, param)) {\r\n queryParams[param] = undefined;\r\n }\r\n });\r\n\r\n routerStore.setQueryParams(queryParams);\r\n }\r\n\r\n function hasOwnProperty(obj, prop) {\r\n var proto = obj.__proto__ || obj.constructor.prototype;\r\n return prop in obj && (!(prop in proto) || proto[prop] !== obj[prop]);\r\n }\r\n };\r\n\r\n updateFilter = (useDefault = false) => {\r\n if (useDefault) {\r\n this.filter.reset();\r\n return;\r\n }\r\n\r\n const { page, rpp, orderBy, search, ...others } = this.rootStore.routerStore.routerState.queryParams;\r\n\r\n this.filter.pageNumber = parseInt(page < 0 ? 1 : page) || this.filter.pageNumber;\r\n this.filter.pageSize = parseInt(rpp) || this.filter.pageSize;\r\n\r\n if (orderBy) {\r\n const params = orderBy.split(\"|\");\r\n this.filter.orderBy = params[0];\r\n if (params.length > 1) {\r\n this.filter.orderDirection = params[1];\r\n }\r\n }\r\n\r\n if (search) {\r\n this.filter.search = search;\r\n }\r\n\r\n if (others) {\r\n const mapParams = withoutProperties(others, this.ignoreQueryParams);\r\n\r\n const evaluateQueryParam = (queryParamKey, queryParamValue, filterValue) => {\r\n if (this.queryParamMap) {\r\n // custom mapping function for specified properties\r\n const map = this.queryParamMap[queryParamKey];\r\n if (map && map.fromQuery) {\r\n return map.fromQuery(queryParamValue);\r\n }\r\n }\r\n\r\n try {\r\n if (Array.isArray(filterValue) && typeof queryParamValue === \"string\") {\r\n return [queryParamValue];\r\n }\r\n /* eslint-disable */\r\n return eval(queryParamValue);\r\n } catch (ex) {\r\n return queryParamValue;\r\n }\r\n };\r\n\r\n assignWith(this.filter, mapParams, (objValue, srcValue, key) => {\r\n return isUndefined(srcValue) ? objValue : evaluateQueryParam(key, srcValue, objValue);\r\n });\r\n }\r\n };\r\n\r\n @action resetFilter(fetch = true) {\r\n this.filter.reset();\r\n\r\n if (this.onResetFilter) {\r\n this.onResetFilter(this.filter);\r\n }\r\n\r\n if (fetch) this.fetch();\r\n }\r\n\r\n _reloadCollection = (updateUrlParams = true) => {\r\n if (updateUrlParams) {\r\n this.updateUrlParams();\r\n }\r\n\r\n return this.fetchFunc(this.filter, { updateUrlParams });\r\n };\r\n}\r\n\r\nfunction withoutProperties(obj, properties) {\r\n return omitBy(obj, (param, key) => {\r\n return !isUndefined(properties) && !isNull(obj) ? some(properties, (ignore) => ignore === key) : false;\r\n });\r\n}\r\n\r\nexport default MrbQueryUtility;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { dateFormatter, currencyFormatter } from \"mrb/common/formatting\";\r\nimport { MrbTable } from \"mrb/components/table\";\r\nimport { TableNoDataOverlay } from \"common/components\";\r\nimport { observer } from \"mobx-react\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { producerPlaybackTimeConverter, numberFormatter } from \"common/utils\";\r\n\r\nfunction ProducerPaymentReportCellTemplate({\r\n item,\r\n producerPaymentReportPreviewViewStore,\r\n producerPayoutUserEventListViewStore,\r\n index,\r\n t,\r\n}) {\r\n const { gridStore, isCollapsed, setIsCollapsed } = producerPayoutUserEventListViewStore;\r\n const { summaryData, maskUserNames } = producerPaymentReportPreviewViewStore;\r\n return (\r\n
    \r\n
    setIsCollapsed(!isCollapsed)}>\r\n
    \r\n \r\n
    \r\n
    \r\n {maskUserNames\r\n ? t(\"COMMON.PRODUCER.REPORT.PLACEHOLDERS.USER\", { number: index + 1 })\r\n : `${item.user.firstName} ${item.user.lastName}`}\r\n
    \r\n
    \r\n {dateFormatter.format(item.subscriptionCycleStartDate, {\r\n format: applicationDefaults.formats.dateTime,\r\n })}\r\n
    \r\n
    \r\n {dateFormatter.format(item.subscriptionCycleEndDate, {\r\n format: applicationDefaults.formats.dateTime,\r\n })}\r\n
    \r\n
    \r\n \r\n
    \r\n
    {numberFormatter.format(item.producerPlaybacks)}
    \r\n
    \r\n \r\n
    \r\n
    \r\n {currencyFormatter.format(item.producerPayment, {\r\n currency: \"USD\",\r\n })}\r\n
    \r\n
    {item.subscriptionPlan.name}
    \r\n
    \r\n\r\n {isCollapsed && (\r\n \r\n )}\r\n
    \r\n );\r\n}\r\n\r\nProducerPaymentReportCellTemplate.propTypes = {\r\n item: PropTypes.object.isRequired,\r\n};\r\n\r\nfunction PlaybackTime({ reportVersion, value }) {\r\n const totalPlaybackTime = producerPlaybackTimeConverter(reportVersion, value);\r\n if (totalPlaybackTime) {\r\n return totalPlaybackTime;\r\n }\r\n\r\n return \"-\";\r\n}\r\n\r\nexport default observer(ProducerPaymentReportCellTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\n\r\nfunction UserEventPayoutCellTemplate({ data }) {\r\n if (data.isAllowedForPayout) {\r\n return ;\r\n }\r\n return \"-\";\r\n}\r\n\r\nUserEventPayoutCellTemplate.propTypes = {\r\n data: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default UserEventPayoutCellTemplate;\r\n","import { PropTypes } from \"prop-types\";\r\nimport { producerPlaybackTimeConverter } from \"common/utils\";\r\n\r\nfunction ProducerPlaybackTimeCellTemplate({ data }) {\r\n const { currentMonthReportVersion, currentMonthTotalProducerPlaybacks } = data;\r\n const value = producerPlaybackTimeConverter(currentMonthReportVersion, currentMonthTotalProducerPlaybacks);\r\n if (value) {\r\n return value;\r\n }\r\n\r\n return \"-\";\r\n}\r\n\r\nProducerPlaybackTimeCellTemplate.propTypes = {\r\n data: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default ProducerPlaybackTimeCellTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { isProducerReportComplete } from \"common/utils\";\r\n\r\nfunction ProducerPreviewReportPeriodCellTemplate({ data }) {\r\n const isCompleted = isProducerReportComplete(data.monthOfYear, data.periodEndDate);\r\n\r\n return (\r\n \r\n {dateFormatter.format(data.monthOfYear, {\r\n format: applicationDefaults.formats.monthShort,\r\n timeZone: \"utc\",\r\n })}\r\n {!isCompleted ? (In Progress) : null}\r\n \r\n );\r\n}\r\n\r\nProducerPreviewReportPeriodCellTemplate.propTypes = {\r\n data: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default ProducerPreviewReportPeriodCellTemplate;\r\n","import { PropTypes } from \"prop-types\";\r\nimport { producerPlaybackTimeConverter } from \"common/utils\";\r\n\r\nfunction ProducerPreviewReportPlaybackTimeCellTemplate({ data }) {\r\n const { reportVersion, totalProducerPlaybacks } = data;\r\n const value = producerPlaybackTimeConverter(reportVersion, totalProducerPlaybacks);\r\n if (value) {\r\n return value;\r\n }\r\n\r\n return \"-\";\r\n}\r\n\r\nProducerPreviewReportPlaybackTimeCellTemplate.propTypes = {\r\n data: PropTypes.object.isRequired,\r\n};\r\n\r\nexport default ProducerPreviewReportPlaybackTimeCellTemplate;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst ProducersDetailsListLoaderTemplate = (props) => {\r\n const { className, row = 11 } = props;\r\n const screenwidth = window.innerWidth;\r\n const items = [];\r\n\r\n let loaderWidth = null;\r\n let y = 0;\r\n\r\n if (screenwidth > 1199) {\r\n loaderWidth = screenwidth - 690;\r\n } else if (screenwidth > 990) {\r\n loaderWidth = screenwidth - 250;\r\n } else {\r\n loaderWidth = screenwidth;\r\n }\r\n\r\n for (let i = 0; i < row; i++) {\r\n items.push(\r\n \r\n \r\n \r\n );\r\n\r\n y += 67;\r\n }\r\n\r\n return (\r\n
    \r\n \r\n {items}\r\n \r\n
    \r\n );\r\n};\r\n\r\nexport default ProducersDetailsListLoaderTemplate;\r\n","import React from \"react\";\r\nimport ContentLoader from \"react-content-loader\";\r\n\r\nconst ProducerSummaryLoaderTemplate = (props) => {\r\n const { row = 3, statsPreview, className, isDetails } = props;\r\n const screenwidth = window.innerWidth;\r\n const items = [];\r\n let loaderWidth;\r\n\r\n if (screenwidth > 1199) {\r\n loaderWidth = 387;\r\n } else if (screenwidth > 990) {\r\n loaderWidth = screenwidth / 2 - 40;\r\n } else if (screenwidth > 766) {\r\n loaderWidth = screenwidth / 2 + 60;\r\n } else {\r\n loaderWidth = screenwidth;\r\n }\r\n\r\n let y = 0;\r\n\r\n for (let i = 0; i < row; i++) {\r\n if (i === 0) {\r\n items.push(\r\n \r\n \r\n \r\n\r\n {!isDetails && (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n\r\n y += 76;\r\n } else if (i === 1) {\r\n items.push(\r\n \r\n \r\n \r\n \r\n );\r\n\r\n y += 86;\r\n } else {\r\n items.push(\r\n \r\n \r\n \r\n \r\n );\r\n y += 76;\r\n }\r\n }\r\n\r\n return (\r\n \r\n {statsPreview ? : {items}}\r\n \r\n );\r\n};\r\n\r\nexport default ProducerSummaryLoaderTemplate;\r\n\r\nconst StatsPreviewLoader = (props) => {\r\n const { row } = props;\r\n const items = [];\r\n\r\n let y = 8;\r\n\r\n for (let i = 0; i < row; i++) {\r\n if (i === 1) {\r\n items.push(\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n } else {\r\n items.push(\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n y += 64;\r\n }\r\n return {items};\r\n};\r\n","import React from \"react\";\r\nimport { MrbFieldSelect } from \"mrb/components\";\r\nimport { ProducerLabel } from \"common/components/producer\";\r\nimport { components } from \"react-select\";\r\n\r\nfunction ProducerFieldSelectTemplate({ isOptionDisabled, ...props }) {\r\n return (\r\n \r\n );\r\n}\r\n\r\nfunction ProducerOption(props) {\r\n const { item } = props.data;\r\n const isUser = item && item.user !== null;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nfunction ProducerSelectedValue(props) {\r\n const { item } = props.data;\r\n const isUser = item && item.user !== null;\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ProducerFieldSelectTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\n\r\nfunction ProducerLabelTemplate({ name, isUser = false, user }) {\r\n let userName;\r\n if (user) {\r\n userName = `${user.firstName} ${user.lastName}`;\r\n }\r\n\r\n return (\r\n \r\n {name}\r\n {isUser && (\r\n \r\n \r\n {userName && userName !== name ? `(${userName})` : null}\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nProducerLabelTemplate.propTypes = {\r\n name: PropTypes.string.isRequired,\r\n isUser: PropTypes.bool,\r\n user: PropTypes.object,\r\n};\r\n\r\nexport default ProducerLabelTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbPage, MrbPageHeader } from \"mrb/components/layout\";\r\nimport { MrbDatePicker } from \"mrb/components/date-picker\";\r\nimport { MrbButton } from \"mrb/components/button\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction ProducerReportLayoutTemplate({ producerReportViewStore, backButtonRenderer, children, t }) {\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n {children}\r\n \r\n );\r\n}\r\n\r\nProducerReportLayoutTemplate.propTypes = {\r\n producerReportViewStore: PropTypes.object.isRequired,\r\n backButtonRenderer: PropTypes.any,\r\n children: PropTypes.any,\r\n};\r\n\r\nconst Header = observer(function Header({ producerReportViewStore, backButtonRenderer, t }) {\r\n const { summaryData, isDateRangeDisabled, queryUtility, setFromDate, applyFilter, selectedDate } =\r\n producerReportViewStore;\r\n return (\r\n \r\n {backButtonRenderer && (\r\n {summaryData ? backButtonRenderer({ summaryData }) :
    }
    \r\n )}\r\n
    \r\n
    \r\n \r\n\r\n \r\n
    \r\n
    \r\n
    \r\n );\r\n});\r\n\r\nexport default observer(ProducerReportLayoutTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbTable } from \"mrb/components/table\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction ProducerReportsTableTemplate({ title, gridStore, emptyStateRenderer, t }) {\r\n return (\r\n
    \r\n {title &&

    {t(title)}

    }\r\n \r\n
    \r\n );\r\n}\r\n\r\nProducerReportsTableTemplate.propTypes = {\r\n title: PropTypes.string,\r\n gridStore: PropTypes.object.isRequired,\r\n emptyStateRenderer: PropTypes.any,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(ProducerReportsTableTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { ProducerPaymentReportCell, ProducersDetailsListLoader } from \"common/components/producer\";\r\nimport { MrbInfiniteScrollGrid } from \"mrb/components/infinite-scroll-grid\";\r\n\r\nfunction ProducerReportTemplate({ producerReportViewStore, t }) {\r\n const { gridStore, routeStore, setContainerRef } = producerReportViewStore;\r\n return (\r\n
    \r\n

    {t(\"COMMON.PRODUCER.REPORT.TITLE\")}

    \r\n\r\n
    \r\n
    \r\n
    {t(\"COMMON.PRODUCER.REPORT.COLUMNS.USER\")}
    \r\n
    \r\n {t(\"COMMON.PRODUCER.REPORT.COLUMNS.SUBSCRIPTION_CYCLE_START_DATE\")}\r\n
    \r\n
    \r\n {t(\"COMMON.PRODUCER.REPORT.COLUMNS.SUBSCRIPTION_CYCLE_END_DATE\")}\r\n
    \r\n
    \r\n {t(\"COMMON.PRODUCER.REPORT.COLUMNS.PRODUCER_PLAYBACK_TIME\")}\r\n
    \r\n
    \r\n {t(\"COMMON.PRODUCER.REPORT.COLUMNS.PRODUCER_PLAYBACK_POINTS\")}\r\n
    \r\n
    \r\n {t(\"COMMON.PRODUCER.REPORT.COLUMNS.TOTAL_USER_PLAYBACK_TIME\")}\r\n
    \r\n
    {t(\"COMMON.PRODUCER.REPORT.COLUMNS.PRODUCER_PAYMENT\")}
    \r\n
    \r\n {t(\"COMMON.PRODUCER.REPORT.COLUMNS.SUBSCRIPTION_PLAN\")}\r\n
    \r\n
    \r\n
    \r\n }\r\n loadMoreLoader={}\r\n emptyStateRenderer={() => }\r\n classNameOverride=\"\"\r\n store={gridStore}\r\n t={t}\r\n cellRenderer={(props) => (\r\n \r\n )}\r\n />\r\n
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nProducerReportTemplate.propTypes = {\r\n producerReportViewStore: PropTypes.object.isRequired,\r\n t: PropTypes.func,\r\n};\r\n\r\nfunction EmptyState({ t }) {\r\n return (\r\n
    \r\n
    \r\n \r\n
    {t(\"COMMON.PRODUCER.REPORT.EMPTY_STATE.MESSAGE\")}
    \r\n
    \r\n
    \r\n );\r\n}\r\n\r\nexport default ProducerReportTemplate;\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbTable } from \"mrb/components/table\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction ProducerAccountPreviewBalanceTemplate({ title, gridStore, emptyStateRenderer, t }) {\r\n return (\r\n
    \r\n {title &&

    {t(title)}

    }\r\n \r\n
    \r\n );\r\n}\r\n\r\nProducerAccountPreviewBalanceTemplate.propTypes = {\r\n title: PropTypes.string,\r\n gridStore: PropTypes.object.isRequired,\r\n emptyStateRenderer: PropTypes.any,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(ProducerAccountPreviewBalanceTemplate);\r\n","import React from \"react\";\r\nimport { PropTypes } from \"prop-types\";\r\nimport { MrbTable } from \"mrb/components/table\";\r\nimport { mergeCss } from \"mrb/common/utils\";\r\nimport { observer } from \"mobx-react\";\r\n\r\nfunction ProducerAccountPreviewRevenueTransactionTemplate({ title, gridStore, emptyStateRenderer, t }) {\r\n return (\r\n
    \r\n {title &&

    {t(title)}

    }\r\n \r\n
    \r\n );\r\n}\r\n\r\nProducerAccountPreviewRevenueTransactionTemplate.propTypes = {\r\n title: PropTypes.string,\r\n gridStore: PropTypes.object.isRequired,\r\n emptyStateRenderer: PropTypes.any,\r\n t: PropTypes.func,\r\n};\r\n\r\nexport default observer(ProducerAccountPreviewRevenueTransactionTemplate);\r\n","const nakiRadioContentType = {\r\n podcast: \"podcast\",\r\n station: \"station\",\r\n nakiNigun: \"naki-nigun\",\r\n};\r\n\r\nexport default nakiRadioContentType;\r\n","class ContentAccessResult {\r\n canAccessOnSelectedDevice = true;\r\n canAccessPremium = true;\r\n\r\n get canAccess() {\r\n return this.canAccessOnSelectedDevice === true && this.canAccessPremium === true;\r\n }\r\n}\r\n\r\nexport default ContentAccessResult;\r\n","import { computed, makeObservable } from \"mobx\";\r\nimport { nakiRadioSystemTypes, subscriptionStatuses, subscriptionPlans } from \"common/constants\";\r\nimport { nakiRadioContentType, ContentAccessResult } from \"application/common/content-access\";\r\nimport { isNil, find } from \"lodash\";\r\n\r\nconst CONTENT_ACCESS_MAP = {};\r\nconst premiumContentAccess = [\r\n {\r\n contentType: nakiRadioContentType.podcast,\r\n deviceSystemType: nakiRadioSystemTypes.venice,\r\n },\r\n {\r\n contentType: nakiRadioContentType.station,\r\n deviceSystemType: nakiRadioSystemTypes.venice,\r\n },\r\n {\r\n contentType: nakiRadioContentType.nakiNigun,\r\n deviceSystemType: nakiRadioSystemTypes.venice,\r\n },\r\n {\r\n contentType: nakiRadioContentType.podcast,\r\n deviceSystemType: nakiRadioSystemTypes.mobile,\r\n },\r\n {\r\n contentType: nakiRadioContentType.station,\r\n deviceSystemType: nakiRadioSystemTypes.mobile,\r\n },\r\n {\r\n contentType: nakiRadioContentType.nakiNigun,\r\n deviceSystemType: nakiRadioSystemTypes.mobile,\r\n },\r\n {\r\n contentType: nakiRadioContentType.podcast,\r\n deviceSystemType: nakiRadioSystemTypes.mobile_embedded,\r\n },\r\n {\r\n contentType: nakiRadioContentType.station,\r\n deviceSystemType: nakiRadioSystemTypes.mobile_embedded,\r\n },\r\n {\r\n contentType: nakiRadioContentType.nakiNigun,\r\n deviceSystemType: nakiRadioSystemTypes.mobile_embedded,\r\n },\r\n];\r\nCONTENT_ACCESS_MAP[subscriptionPlans.nakiRadioPremium] = premiumContentAccess;\r\nCONTENT_ACCESS_MAP[subscriptionPlans.subscriptionBundleSolo] = premiumContentAccess;\r\nCONTENT_ACCESS_MAP[subscriptionPlans.subscriptionBundleDuo] = premiumContentAccess;\r\nCONTENT_ACCESS_MAP[subscriptionPlans.subscriptionBundleNaki23Black] = premiumContentAccess;\r\n\r\nCONTENT_ACCESS_MAP[subscriptionPlans.nakiNigun] = [\r\n {\r\n contentType: nakiRadioContentType.nakiNigun,\r\n deviceSystemType: nakiRadioSystemTypes.mobile,\r\n },\r\n {\r\n contentType: nakiRadioContentType.nakiNigun,\r\n deviceSystemType: nakiRadioSystemTypes.venice,\r\n },\r\n {\r\n contentType: nakiRadioContentType.nakiNigun,\r\n deviceSystemType: nakiRadioSystemTypes.mobile_embedded,\r\n },\r\n];\r\n\r\nclass ContentAccessValidator {\r\n @computed get selectedDevice() {\r\n return this.userDeviceStore.selectedDevice;\r\n }\r\n\r\n @computed get subscriptions() {\r\n return this.premiumSubscriptionStore.subscriptions;\r\n }\r\n\r\n constructor(rootStore) {\r\n makeObservable(this);\r\n this.rootStore = rootStore;\r\n this.userDeviceStore = this.rootStore.userDeviceStore;\r\n this.premiumSubscriptionStore = this.rootStore.premiumSubscriptionStore;\r\n }\r\n\r\n canAccessPodcast(options) {\r\n return this._canAccessContent(options, nakiRadioContentType.podcast);\r\n }\r\n\r\n canAccessStation(options) {\r\n return this._canAccessContent(options, nakiRadioContentType.station);\r\n }\r\n\r\n canAccessNakiNigun(options) {\r\n return this._canAccessContent(options, nakiRadioContentType.nakiNigun);\r\n }\r\n\r\n _canAccessContent(options, contentType) {\r\n if (!this._validateParameters(options)) {\r\n throw new Error(\"Invalid options parameters.\");\r\n }\r\n const result = new ContentAccessResult();\r\n if (options.unavailableInMobileApp || options.unavailableInNakiTouch) {\r\n if (!isNil(this.selectedDevice)) {\r\n const systemType = this.selectedDevice.device.systemType.abrv;\r\n const isUnavailable =\r\n (options.unavailableInMobileApp && systemType === nakiRadioSystemTypes.mobile) ||\r\n (options.unavailableInNakiTouch && systemType === nakiRadioSystemTypes.mobile_embedded);\r\n\r\n result.canAccessOnSelectedDevice = !isUnavailable;\r\n }\r\n }\r\n\r\n if (!options.isPremium) {\r\n result.canAccessPremium = true;\r\n } else {\r\n result.canAccessPremium = this._canAccessPremiumContent(options, contentType);\r\n }\r\n\r\n return result;\r\n }\r\n\r\n _canAccessPremiumContent(options, contentType) {\r\n if (isNil(this.selectedDevice)) {\r\n return false;\r\n }\r\n\r\n for (let subscription of this.subscriptions) {\r\n const isSubscriptionValid = this._validateSubscription(subscription);\r\n if (!isSubscriptionValid && !this._validateLegacySubscription(options)) {\r\n continue;\r\n }\r\n\r\n const subscriptionAccessRules = CONTENT_ACCESS_MAP[subscription.product.slug];\r\n if (subscriptionAccessRules) {\r\n const canAccess = find(\r\n subscriptionAccessRules,\r\n (rule) =>\r\n rule.contentType === contentType &&\r\n rule.deviceSystemType === this.selectedDevice.device.systemType.abrv\r\n );\r\n if (canAccess) {\r\n return true;\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n _validateParameters(options) {\r\n if (isNil(options)) {\r\n throw new Error(\"options parameter is required\");\r\n }\r\n\r\n return true;\r\n }\r\n\r\n _validateSubscription(subscription) {\r\n if (isNil(subscription)) {\r\n return false;\r\n }\r\n\r\n switch (subscription.subscriptionStatus.abrv) {\r\n case subscriptionStatuses.active:\r\n case subscriptionStatuses.pastDue:\r\n case subscriptionStatuses.trial:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n }\r\n\r\n _validateLegacySubscription(options) {\r\n if (isNil(options)) {\r\n return false;\r\n }\r\n if (!isNil(options.isLegacySubscriptionValid)) {\r\n return options.isLegacySubscriptionValid;\r\n }\r\n if (!isNil(options.legacySubscriptionExpirationDate)) {\r\n return this.premiumSubscriptionStore.isLegacySubscriptionActive(options.legacySubscriptionExpirationDate);\r\n }\r\n\r\n return false;\r\n }\r\n}\r\n\r\nexport default ContentAccessValidator;\r\n","import { useContext } from \"react\";\r\nimport { RootContext } from \"mrb/core/contexts\";\r\nimport { nakiRadioContentType } from \"application/common/content-access\";\r\nimport { isNil } from \"lodash\";\r\n\r\nfunction useCanAccessContent(contentType, options) {\r\n const rootStore = useContext(RootContext);\r\n if (isNil(contentType)) {\r\n throw new Error(\"Missing contentType parameter.\");\r\n }\r\n switch (contentType) {\r\n case nakiRadioContentType.podcast:\r\n return rootStore.contentAccessValidator.canAccessPodcast(options);\r\n case nakiRadioContentType.station:\r\n return rootStore.contentAccessValidator.canAccessStation(options);\r\n case nakiRadioContentType.nakiNigun:\r\n return rootStore.contentAccessValidator.canAccessNakiNigun(options);\r\n default:\r\n throw new Error(`Invalid contentType parameter: ${contentType}`);\r\n }\r\n}\r\n\r\nexport default useCanAccessContent;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\nimport { StripeField } from \"common/models\";\r\nimport { subscriptionPlans } from \"common/constants\";\r\nimport { isNil } from \"lodash\";\r\n\r\nclass BasePaymentViewStore extends MrbBaseViewStore {\r\n @observable.ref stripe = null;\r\n @observable.ref subscriptionPlan = null;\r\n stripeField = null;\r\n\r\n @computed get isPaymentDisabled() {\r\n if (this.paymentMethodExist) {\r\n return false;\r\n }\r\n return isNil(this.stripe) || isNil(this.stripeField) || !this.stripeField.isCompleted;\r\n }\r\n\r\n get paymentMethodExist() {\r\n return !isNil(this.rootStore.premiumSubscriptionStore.customerPaymentMethod);\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.stripeField = new StripeField();\r\n\r\n this.paymentSuccessModal = new MrbModalParams(null, {\r\n onClickExplorePremium: this.goToPremiumContent,\r\n });\r\n }\r\n\r\n @action.bound\r\n setSubscriptionPlan(plan) {\r\n this.subscriptionPlan = plan;\r\n }\r\n\r\n goToPremiumContent = () => {\r\n switch (this.subscriptionPlan.slug) {\r\n case subscriptionPlans.nakiTales:\r\n case subscriptionPlans.nakiRadioPremium:\r\n this.rootStore.routerStore.goTo(\"master.application.home.list\", null, {\r\n isPremium: true,\r\n });\r\n break;\r\n case subscriptionPlans.nakiNigun:\r\n this.rootStore.routerStore.goTo(\"master.application.naki-nigun.list\");\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n @action.bound\r\n async authorizePaymentRequest(clientSecret) {\r\n try {\r\n const result = await this.stripe.handleCardAction(clientSecret);\r\n if (result.error) {\r\n } else {\r\n await this.routeStore.confirmPayment({\r\n providerPaymentRequestId: result.paymentIntent.id,\r\n });\r\n }\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred while trying to complete payment. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n setStripe(stripe) {\r\n this.stripe = stripe;\r\n }\r\n}\r\n\r\nexport default BasePaymentViewStore;\r\n","import { override } from \"mobx\";\r\nimport { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PaymentService, ProductService } from \"common/services\";\r\n\r\nclass TakePaymentRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PaymentService);\r\n this.productService = rootStore.createApplicationService(ProductService);\r\n }\r\n\r\n @override\r\n onBeforeEnter(fromState, toState) {\r\n const subscriptionPlanId = toState.params.planId;\r\n const subscription =\r\n this.rootStore.premiumSubscriptionStore.getSubscriptionBySubscriptionPlan(subscriptionPlanId);\r\n if (subscription) {\r\n return Promise.reject(\"master.application.premium.subscriptions\");\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n async getSubscriptionPlan(planId) {\r\n const response = await this.productService.getSubscription(planId);\r\n return response.data;\r\n }\r\n\r\n async setupPaymentMethodRequest() {\r\n const response = await this.service.setupPaymentMethodRequest();\r\n return response.data;\r\n }\r\n\r\n preprocessPayment(planId) {\r\n return this.rootStore.premiumSubscriptionStore.preprocessPayment(planId);\r\n }\r\n\r\n postprocessPayment(subscriptionId) {\r\n return this.rootStore.premiumSubscriptionStore.postprocessPayment(subscriptionId);\r\n }\r\n\r\n subscribeUsingExistingPaymentMethod(planId) {\r\n return this.rootStore.premiumSubscriptionStore.subscribeUsingExistingPaymentMethod(planId);\r\n }\r\n}\r\n\r\nexport default TakePaymentRouteStore;\r\n","import { action, makeObservable } from \"mobx\";\r\nimport { BasePaymentViewStore } from \"application/payment/stores\";\r\nimport { currencyFormatter } from \"mrb/common/formatting\";\r\n\r\nclass TakePaymentViewStore extends BasePaymentViewStore {\r\n planId = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, { routeStore });\r\n makeObservable(this);\r\n this.planId = rootStore.routerStore.routerState.params.planId;\r\n\r\n this.onClickSubscribe = this.onClickSubscribe.bind(this);\r\n }\r\n\r\n async onInit() {\r\n return this.fetchSubscriptionPlan();\r\n }\r\n\r\n async fetchSubscriptionPlan() {\r\n try {\r\n const subscriptionPlan = await this.routeStore.getSubscriptionPlan(this.planId);\r\n this.setSubscriptionPlan(subscriptionPlan);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Please contact the support team.\", err);\r\n }\r\n }\r\n\r\n onClickSubscribe(cardElements) {\r\n if (this.paymentMethodExist) {\r\n this.subscribeUsingExistingPaymentMethod();\r\n } else {\r\n this.submitPayment(cardElements);\r\n }\r\n }\r\n\r\n @action.bound\r\n subscribeUsingExistingPaymentMethod() {\r\n const formattedPrice = currencyFormatter.format(this.subscriptionPlan.price, {\r\n currency: \"USD\",\r\n });\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Ready to start your subscription?\",\r\n description: `Your card will be charged ${formattedPrice} each month, cancel anytime.`,\r\n yesLabel: `Pay ${formattedPrice}`,\r\n onConfirm: async () => {\r\n try {\r\n await this.routeStore.subscribeUsingExistingPaymentMethod(this.planId);\r\n this.paymentSuccessModal.open({\r\n subscriptionPlan: this.subscriptionPlan.name,\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred while trying to process payment. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n },\r\n });\r\n }\r\n\r\n @action.bound\r\n submitPayment(cardElements) {\r\n const formattedPrice = currencyFormatter.format(this.subscriptionPlan.price, {\r\n currency: \"USD\",\r\n });\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Ready to start your subscription?\",\r\n description: `Your card will be charged ${formattedPrice} each month, cancel anytime.`,\r\n yesLabel: `Pay ${formattedPrice}`,\r\n onConfirm: async () => {\r\n try {\r\n const { user } = this.rootStore.userStore;\r\n this.stripeField.resetValidation();\r\n const result = await this.routeStore.preprocessPayment(this.planId);\r\n let payload = null;\r\n let paymentMethod = null;\r\n if (result.clientSecret) {\r\n payload = await this.stripe.confirmCardPayment(result.clientSecret, {\r\n payment_method: {\r\n card: cardElements,\r\n },\r\n receipt_email: user.email,\r\n });\r\n } else {\r\n const setupPaymentMethodResponse = await this.routeStore.setupPaymentMethodRequest();\r\n payload = await this.stripe.confirmCardSetup(setupPaymentMethodResponse.token, {\r\n payment_method: {\r\n card: cardElements,\r\n },\r\n });\r\n if (!payload.error) {\r\n paymentMethod = payload.setupIntent.payment_method;\r\n }\r\n }\r\n\r\n if (payload.error) {\r\n this.stripeField.setError(payload.error);\r\n const data = {\r\n undoChanges: true,\r\n paymentProviderSubscriptionId: result.paymentProviderSubscriptionId,\r\n };\r\n await this.routeStore.postprocessPayment(data);\r\n } else {\r\n const data = {\r\n paymentProviderPaymentMethodId: paymentMethod,\r\n paymentProviderSubscriptionId: result.paymentProviderSubscriptionId,\r\n };\r\n await this.routeStore.postprocessPayment(data);\r\n this.paymentSuccessModal.open({\r\n subscriptionPlan: this.subscriptionPlan.name,\r\n });\r\n }\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred while trying to process payment. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n },\r\n });\r\n }\r\n}\r\n\r\nexport default TakePaymentViewStore;\r\n","import { override } from \"mobx\";\r\nimport { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { subscriptionStatuses } from \"common/constants\";\r\nimport { PaymentService, ProductService } from \"common/services\";\r\nimport { isNil } from \"lodash\";\r\n\r\nclass UpgradeTrialRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PaymentService);\r\n this.productService = rootStore.createApplicationService(ProductService);\r\n }\r\n\r\n @override\r\n onBeforeEnter(fromState, toState) {\r\n const subscriptionId = toState.params.subscriptionId;\r\n const subscription = this.rootStore.premiumSubscriptionStore.getSubscription(subscriptionId);\r\n if (\r\n subscription &&\r\n subscription.subscriptionStatus.abrv === subscriptionStatuses.trial &&\r\n !isNil(subscription.endDate)\r\n ) {\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"master.application.premium.subscriptions\");\r\n }\r\n\r\n async getSubscriptionPlan(planId) {\r\n const response = await this.productService.getSubscription(planId);\r\n return response.data;\r\n }\r\n\r\n async setupPaymentMethodRequest() {\r\n const response = await this.service.setupPaymentMethodRequest();\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default UpgradeTrialRouteStore;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { applicationDefaults } from \"common/constants\";\r\nimport { BasePaymentViewStore } from \"application/payment/stores\";\r\nimport { dateFormatter, currencyFormatter } from \"mrb/common/formatting\";\r\n\r\nclass UpgradeTrialViewStore extends BasePaymentViewStore {\r\n @observable.ref subscriptionId = null;\r\n\r\n @computed get subscription() {\r\n return this.rootStore.premiumSubscriptionStore.getSubscription(this.subscriptionId);\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore, { routeStore });\r\n makeObservable(this);\r\n\r\n this.reaction(\r\n () => this.subscription,\r\n (subscription) => {\r\n this.setSubscriptionPlan(subscription.product);\r\n }\r\n );\r\n this.setSubscriptionId(rootStore.routerStore.routerState.params.subscriptionId);\r\n\r\n this.onClickSubscribe = this.onClickSubscribe.bind(this);\r\n }\r\n\r\n @action.bound\r\n upgradeTrialToFullSubscription(cardElements) {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Ready to start your subscription?\",\r\n description: `Starting from ${dateFormatter.format(this.subscription.trialPeriod.trialEndDate, {\r\n format: applicationDefaults.formats.date,\r\n })} your card will be charged ${currencyFormatter.format(this.subscription.product.price, {\r\n currency: \"USD\",\r\n })} each month. Cancel anytime.`,\r\n yesLabel: \"Subscribe\",\r\n onConfirm: async () => {\r\n if (this.paymentMethodExist) {\r\n await this.upgradeUsingExistingPaymentMethod();\r\n } else {\r\n await this.upgradeUsingNewCreditCard(cardElements);\r\n }\r\n },\r\n });\r\n }\r\n\r\n @action.bound\r\n async upgradeUsingNewCreditCard(cardElements) {\r\n this.stripeField.resetValidation();\r\n try {\r\n const setupPaymentMethodResponse = await this.routeStore.setupPaymentMethodRequest();\r\n const payload = await this.stripe.confirmCardSetup(setupPaymentMethodResponse.token, {\r\n payment_method: {\r\n card: cardElements,\r\n },\r\n });\r\n if (payload.error) {\r\n this.stripeField.setError(payload.error);\r\n } else {\r\n await this.rootStore.premiumSubscriptionStore.upgradeTrialSubscription(\r\n this.subscription.id,\r\n payload.setupIntent.payment_method\r\n );\r\n this.paymentSuccessModal.open({\r\n trialUpgraded: true,\r\n billingStartDate: this.subscription.trialPeriod.trialEndDate, //subscription will be charged at the last day of trial period,\r\n subscriptionPlan: this.subscriptionPlan.name,\r\n });\r\n }\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to process payment. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n @action.bound\r\n async upgradeUsingExistingPaymentMethod() {\r\n try {\r\n await this.rootStore.premiumSubscriptionStore.upgradeTrialSubscription(this.subscription.id, null);\r\n this.paymentSuccessModal.open({\r\n trialUpgraded: true,\r\n billingStartDate: this.subscription.trialPeriod.trialEndDate, //subscription will be charged at the last day of trial period,\r\n subscriptionPlan: this.subscriptionPlan.name,\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to process payment. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n }\r\n\r\n onClickSubscribe(cardElements) {\r\n this.upgradeTrialToFullSubscription(cardElements);\r\n }\r\n\r\n @action.bound\r\n setSubscriptionId(subscriptionId) {\r\n this.subscriptionId = subscriptionId;\r\n }\r\n}\r\n\r\nexport default UpgradeTrialViewStore;\r\n","import { override } from \"mobx\";\r\nimport { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PaymentService, ProductService } from \"common/services\";\r\n\r\nclass ActivateTrialRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PaymentService);\r\n this.productService = rootStore.createApplicationService(ProductService);\r\n }\r\n\r\n @override\r\n onBeforeEnter() {\r\n if (\r\n this.rootStore.premiumSubscriptionStore.subscriptionExist ||\r\n this.rootStore.premiumSubscriptionStore.isPremiumTrialPeriodUsed\r\n ) {\r\n return Promise.reject(\"master.application.premium.subscriptions\");\r\n }\r\n }\r\n\r\n async getSubscriptionPlan(planId) {\r\n const response = await this.productService.getSubscription(planId);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default ActivateTrialRouteStore;\r\n","import { action, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\n\r\nclass ActivateTrialViewStore extends MrbBaseViewStore {\r\n @observable isSubmitDisabled = false;\r\n @observable.ref subscriptionPlan = null;\r\n planId = null;\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.planId = rootStore.routerStore.routerState.params.planId;\r\n\r\n this.trialActivatedModal = new MrbModalParams(null, {\r\n onClickExplorePremium: this.goToPremiumContent,\r\n });\r\n }\r\n\r\n goToPremiumContent = () => {\r\n this.rootStore.routerStore.goTo(\"master.application.home.list\", null, {\r\n isPremium: true,\r\n });\r\n };\r\n\r\n onInit() {\r\n return this.fetchSubscriptionPlan();\r\n }\r\n\r\n async fetchSubscriptionPlan() {\r\n try {\r\n const subscriptionPlan = await this.routeStore.getSubscriptionPlan(this.planId);\r\n this.setSubscriptionPlan(subscriptionPlan);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Please contact the support team.\", err);\r\n }\r\n }\r\n\r\n @action.bound\r\n setSubscriptionPlan(plan) {\r\n this.subscriptionPlan = plan;\r\n }\r\n\r\n @action.bound\r\n activateTrial() {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Start trial?\",\r\n description: \"You won't be charged for the evaluation period.\",\r\n yesLabel: \"Start\",\r\n onConfirm: async () => {\r\n try {\r\n this.setIsSubmitDisabled(true);\r\n await this.rootStore.premiumSubscriptionStore.activateTrial(this.planId);\r\n this.trialActivatedModal.open({\r\n trialEndDate: this.rootStore.premiumSubscriptionStore.subscription.trialPeriod.trialEndDate,\r\n subscriptionPlan: this.subscriptionPlan.name,\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred while trying to activate trial period. Please contact the support team.\",\r\n err\r\n );\r\n } finally {\r\n this.setIsSubmitDisabled(false);\r\n }\r\n },\r\n });\r\n }\r\n\r\n @action.bound\r\n setIsSubmitDisabled(value) {\r\n this.isSubmitDisabled = value;\r\n }\r\n}\r\n\r\nexport default ActivateTrialViewStore;\r\n","import { override } from \"mobx\";\r\nimport { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PaymentService, ProductService } from \"common/services\";\r\n\r\nclass ChangeSubscriptionPlanRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PaymentService);\r\n this.productService = rootStore.createApplicationService(ProductService);\r\n }\r\n\r\n @override\r\n onBeforeEnter(fromState, toState) {\r\n const subscriptionPlanId = toState.params.planId;\r\n const subscription =\r\n this.rootStore.premiumSubscriptionStore.getSubscriptionBySubscriptionPlan(subscriptionPlanId);\r\n if (subscription) {\r\n return Promise.reject(\"master.application.premium.subscriptions\");\r\n }\r\n return Promise.resolve();\r\n }\r\n\r\n async getSubscriptionPlan(planId) {\r\n const response = await this.productService.getSubscription(planId);\r\n return response.data;\r\n }\r\n\r\n changeSubscriptionPlan(planId) {\r\n return this.rootStore.premiumSubscriptionStore.changeSubscriptionPlan(planId);\r\n }\r\n\r\n async getSubscriptionChangePreview(subscriptionId, planId) {\r\n const response = await this.service.getSubscriptionChangePreview(subscriptionId, planId);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default ChangeSubscriptionPlanRouteStore;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { MrbModalParams } from \"mrb/common/models\";\r\nimport { dateFormatter, currencyFormatter } from \"mrb/common/formatting\";\r\nimport { applicationDefaults, subscriptionPlans, subscriptionStatuses } from \"common/constants\";\r\nimport { cloneDeep, isNil } from \"lodash\";\r\n\r\nclass ChangeSubscriptionPlanViewStore extends MrbBaseViewStore {\r\n @observable.ref subscriptionChangePreview = null;\r\n @observable isChangePlanDisabled = false;\r\n planId = null;\r\n @observable.ref currentSubscription = null;\r\n\r\n @computed get customerPaymentMethod() {\r\n return this.rootStore.premiumSubscriptionStore.customerPaymentMethod;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.planId = rootStore.routerStore.routerState.params.planId;\r\n\r\n this.changePlan = this.changePlan.bind(this);\r\n\r\n this.changePlanSuccessModal = new MrbModalParams(null, {\r\n onClickExplorePremium: this.goToPremiumContent,\r\n });\r\n }\r\n\r\n async onInit() {\r\n this.currentSubscription = cloneDeep(this.rootStore.premiumSubscriptionStore.subscription);\r\n await this.fetchSubscriptionChangePreview();\r\n }\r\n\r\n goToPremiumContent = () => {\r\n switch (this.subscriptionChangePreview.newSubscriptionPlan.slug) {\r\n case subscriptionPlans.nakiTales:\r\n case subscriptionPlans.nakiRadioPremium:\r\n this.rootStore.routerStore.goTo(\"master.application.home.list\", null, {\r\n isPremium: true,\r\n });\r\n break;\r\n case subscriptionPlans.nakiNigun:\r\n this.rootStore.routerStore.goTo(\"master.application.naki-nigun.list\");\r\n break;\r\n default:\r\n break;\r\n }\r\n };\r\n\r\n async fetchSubscriptionChangePreview() {\r\n try {\r\n const preview = await this.routeStore.getSubscriptionChangePreview(\r\n this.currentSubscription.id,\r\n this.planId\r\n );\r\n this.setSubscriptionChangePreview(preview);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\"Unexpected error occurred. Please contact the support team.\", err);\r\n }\r\n }\r\n\r\n async changePlan() {\r\n const formattedSubscriptionPlanPrice = currencyFormatter.format(\r\n this.subscriptionChangePreview.newSubscriptionPlan.price,\r\n {\r\n currency: \"USD\",\r\n }\r\n );\r\n let description;\r\n if (\r\n this.currentSubscription.subscriptionStatus.abrv === subscriptionStatuses.trial &&\r\n !isNil(this.currentSubscription.endDate)\r\n ) {\r\n description = `Your trial subscription will expire on ${dateFormatter.format(\r\n this.currentSubscription.endDate,\r\n {\r\n format: applicationDefaults.formats.date,\r\n }\r\n )}.`;\r\n } else {\r\n description = `Your card will be charged ${formattedSubscriptionPlanPrice} each month, cancel anytime.`;\r\n }\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: `Change your subscription plan to ${this.subscriptionChangePreview.newSubscriptionPlan.name}?`,\r\n description: description,\r\n yesLabel: \"Change Plan\",\r\n onConfirm: async () => {\r\n this.setIsChangePlanDisabled(true);\r\n try {\r\n await this.routeStore.changeSubscriptionPlan(this.planId);\r\n this.changePlanSuccessModal.open({\r\n billingStartDate: this.subscriptionChangePreview.dateOfChange, //subscription will be charged at the last day of trial period,\r\n subscriptionPlan: this.subscriptionChangePreview.newSubscriptionPlan.name,\r\n });\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unexpected error occurred. Please contact the support team.\",\r\n err\r\n );\r\n } finally {\r\n this.setIsChangePlanDisabled(false);\r\n }\r\n },\r\n });\r\n }\r\n\r\n setIsChangePlanDisabled(value) {\r\n this.isChangePlanDisabled = value;\r\n }\r\n\r\n @action.bound\r\n setSubscriptionChangePreview(preview) {\r\n this.subscriptionChangePreview = preview;\r\n }\r\n}\r\n\r\nexport default ChangeSubscriptionPlanViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { ProductService } from \"common/services\";\r\n\r\nclass ChangeSubscriptionPlanPreviewRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.productService = rootStore.createApplicationService(ProductService);\r\n }\r\n\r\n async getAllSubscriptionProducts() {\r\n const response = await this.productService.getAllSubscriptions();\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default ChangeSubscriptionPlanPreviewRouteStore;\r\n","import { subscriptionPlans } from \"common/constants\";\r\n\r\nconst subscriptionPlansSortOrder = [\r\n subscriptionPlans.nakiRadioPremium,\r\n subscriptionPlans.nakiTales,\r\n subscriptionPlans.nakiNigun,\r\n subscriptionPlans.nakiRadioFree,\r\n];\r\n\r\nexport default subscriptionPlansSortOrder;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { subscriptionPlansSortOrder } from \"application/payment/utils\";\r\nimport { isNil, sortBy, indexOf } from \"lodash\";\r\n\r\nclass ChangeSubscriptionPlanPreviewViewStore extends MrbBaseViewStore {\r\n @observable.ref subscriptionPlans = [];\r\n\r\n @computed get subscription() {\r\n return this.rootStore.premiumSubscriptionStore.subscription;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n }\r\n\r\n async onInit() {\r\n if (!isNil(this.subscription)) {\r\n await this.fetchSubscriptionPlans();\r\n }\r\n }\r\n\r\n async fetchSubscriptionPlans() {\r\n const items = await this.routeStore.getAllSubscriptionProducts();\r\n const sortedSubscriptionPlans = sortBy(items, (subscriptionPlan) => {\r\n return indexOf(subscriptionPlansSortOrder, subscriptionPlan.slug);\r\n });\r\n this.setSubscriptionPlans(sortedSubscriptionPlans);\r\n }\r\n\r\n @action.bound\r\n setSubscriptionPlans(items) {\r\n this.subscriptionPlans = items;\r\n }\r\n}\r\n\r\nexport default ChangeSubscriptionPlanPreviewViewStore;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { StripeField } from \"common/models\";\r\nimport { logger } from \"common/utils\";\r\nimport { isNil, map, join } from \"lodash\";\r\n\r\nclass CustomerPaymentMethodInfoViewStore extends MrbBaseViewStore {\r\n @observable.ref stripe = null;\r\n @observable isCreditCardFormVisible = false;\r\n stripeField = null;\r\n\r\n @computed get isPaymentDisabled() {\r\n return isNil(this.stripe) || !this.stripeField.isCompleted;\r\n }\r\n\r\n @computed get creditCardExist() {\r\n return !isNil(this.rootStore.premiumSubscriptionStore.customerPaymentMethod);\r\n }\r\n\r\n @computed get customerPaymentMethod() {\r\n return this.rootStore.premiumSubscriptionStore.customerPaymentMethod;\r\n }\r\n\r\n constructor(rootStore) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.stripeField = new StripeField();\r\n\r\n this.reaction(\r\n () => this.isCreditCardFormVisible,\r\n (isVisible) => {\r\n if (!isVisible) {\r\n this.stripeField.reset();\r\n }\r\n }\r\n );\r\n }\r\n\r\n @action.bound\r\n setStripe(stripe) {\r\n this.stripe = stripe;\r\n }\r\n\r\n @action.bound\r\n onFormSubmit(cardElements) {\r\n if (this.rootStore.premiumSubscriptionStore.invalidPaymentExist) {\r\n return this.submitPaymentMethod(cardElements);\r\n } else if (!this.creditCardExist) {\r\n this.addPaymentMethod(cardElements);\r\n } else {\r\n return this.createNewPaymentMethod(cardElements);\r\n }\r\n }\r\n\r\n @action.bound\r\n addPaymentMethod(cardElements) {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Add your credit card information?\",\r\n description: \"New credit card will be used for subscription payments.\",\r\n yesLabel: \"Add Card\",\r\n onConfirm: async () => {\r\n this.stripeField.resetValidation();\r\n try {\r\n const setupPaymentMethodResponse =\r\n await this.rootStore.premiumSubscriptionStore.setupPaymentMethodRequest();\r\n const payload = await this.stripe.confirmCardSetup(setupPaymentMethodResponse.token, {\r\n payment_method: {\r\n card: cardElements,\r\n },\r\n });\r\n if (payload.error) {\r\n this.stripeField.setError(payload.error);\r\n } else {\r\n await this.rootStore.premiumSubscriptionStore.updateDefaultPaymentMethod(\r\n payload.setupIntent.payment_method\r\n );\r\n this.setIsCreditCardFormVisible(false); // close update payment method form\r\n }\r\n } catch (err) {\r\n logger.logError(err);\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to add credit card. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n },\r\n });\r\n }\r\n\r\n @action.bound\r\n createNewPaymentMethod(cardElements) {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Update your credit card information?\",\r\n description: \"New credit card will be used for subscription payments.\",\r\n yesLabel: \"Update Card\",\r\n onConfirm: async () => {\r\n this.stripeField.resetValidation();\r\n try {\r\n const setupPaymentMethodResponse =\r\n await this.rootStore.premiumSubscriptionStore.setupPaymentMethodRequest();\r\n const payload = await this.stripe.confirmCardSetup(setupPaymentMethodResponse.token, {\r\n payment_method: {\r\n card: cardElements,\r\n },\r\n });\r\n if (payload.error) {\r\n this.stripeField.setError(payload.error);\r\n } else {\r\n await this.rootStore.premiumSubscriptionStore.updateDefaultPaymentMethod(\r\n payload.setupIntent.payment_method\r\n );\r\n this.setIsCreditCardFormVisible(false); // close update payment method form\r\n }\r\n } catch (err) {\r\n logger.logError(err);\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to update credit card information. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n },\r\n });\r\n }\r\n\r\n @action.bound\r\n submitPaymentMethod(cardElements) {\r\n const invalidPaymentSubscriptions = this.rootStore.premiumSubscriptionStore.invalidPaymentSubscriptions;\r\n const productNames = map(invalidPaymentSubscriptions, (subscription) => subscription.product.name);\r\n const description = `New credit card will be charged immediately to cover ${join(\r\n productNames,\r\n \" and \"\r\n )} past due ${productNames.length === 1 ? \"subscription\" : \"subscriptions\"}.`;\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Update your credit card information?\",\r\n description: description,\r\n yesLabel: \"Update Card\",\r\n onConfirm: async () => {\r\n this.stripeField.resetValidation();\r\n try {\r\n let paymentMethod = null;\r\n for (let subscription of invalidPaymentSubscriptions) {\r\n const payload = await this.stripe.confirmCardPayment(\r\n subscription.latestInvalidPaymentTransaction.processorAuthorizationCode,\r\n {\r\n setup_future_usage: \"off_session\",\r\n payment_method: !isNil(paymentMethod)\r\n ? paymentMethod\r\n : {\r\n card: cardElements,\r\n },\r\n }\r\n );\r\n if (payload.error) {\r\n this.stripeField.setError(payload.error);\r\n break;\r\n } else if (isNil(paymentMethod)) {\r\n // setup new payment method only once, and use it afterward\r\n paymentMethod = payload.paymentIntent.payment_method;\r\n }\r\n }\r\n await this.rootStore.premiumSubscriptionStore.postprocessPaymentMethodUpdate(paymentMethod);\r\n this.setIsCreditCardFormVisible(false); // close update payment method form\r\n } catch (err) {\r\n logger.logError(err);\r\n this.rootStore.notificationStore.error(\r\n \"An unexpected error occurred while trying to update credit card information. Please contact the support team.\",\r\n err\r\n );\r\n }\r\n },\r\n });\r\n }\r\n\r\n @action.bound\r\n setIsCreditCardFormVisible(isCreditCardFormVisible) {\r\n this.isCreditCardFormVisible = isCreditCardFormVisible;\r\n }\r\n}\r\n\r\nexport default CustomerPaymentMethodInfoViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\nimport { PaymentService, ProductService, UserContentService, NakiNigunUserContentService } from \"common/services\";\r\n\r\nclass PremiumSubscriptionsRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n\r\n this.service = rootStore.createApplicationService(PaymentService);\r\n this.productService = rootStore.createApplicationService(ProductService);\r\n this.userContentService = this.rootStore.createApplicationService(UserContentService);\r\n this.nakiNigunUserContentService = this.rootStore.createApplicationService(NakiNigunUserContentService);\r\n }\r\n\r\n async getAllSubscriptionProducts() {\r\n const response = await this.productService.getAllSubscriptions();\r\n return response.data;\r\n }\r\n\r\n cancelSubscription(subscriptionId) {\r\n return this.rootStore.premiumSubscriptionStore.cancelSubscription(subscriptionId);\r\n }\r\n\r\n renewSubscription(subscriptionId) {\r\n return this.rootStore.premiumSubscriptionStore.renewSubscription(subscriptionId);\r\n }\r\n\r\n async setupPaymentMethodRequest() {\r\n const response = await this.service.setupPaymentMethodRequest();\r\n return response.data;\r\n }\r\n\r\n async findUserContent(params) {\r\n const response = await this.userContentService.findPremiumContentInfo(params);\r\n return response.data;\r\n }\r\n\r\n async getSubPodcasts(params) {\r\n const response = await this.userContentService.getSubPodcasts(params);\r\n return response.data;\r\n }\r\n\r\n async getPodcastVolumes(params) {\r\n const response = await this.userContentService.getPodcastVolumes(params);\r\n return response.data;\r\n }\r\n\r\n async getAlbumsByArtist(params) {\r\n const response = await this.nakiNigunUserContentService.getAlbumsByArtist(params);\r\n return response.data;\r\n }\r\n}\r\n\r\nexport default PremiumSubscriptionsRouteStore;\r\n","import { subscriptionPlans } from \"common/constants\";\r\n\r\nclass NakiRadioFreePlan {\r\n constructor() {\r\n this.id = \"-1\";\r\n this.name = \"NakiRadio Free\";\r\n this.slug = subscriptionPlans.nakiRadioFree;\r\n this.price = 0;\r\n this.features = [\r\n {\r\n description: \"The classic NakiRadio experience\",\r\n sortOrder: 1,\r\n },\r\n {\r\n description: \"More than 50 stations of music, stories and entertainment\",\r\n sortOrder: 2,\r\n },\r\n {\r\n description: \"Thousands of stories, inspirational speeches, and shiurim for all ages\",\r\n sortOrder: 3,\r\n },\r\n {\r\n description: \"Customize your NakiRadio with additional stations and podcasts\",\r\n sortOrder: 4,\r\n },\r\n ];\r\n }\r\n}\r\n\r\nexport default NakiRadioFreePlan;\r\n","import { action, computed, observable, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { NakiRadioFreePlan } from \"application/payment/models\";\r\nimport { subscriptionPlansSortOrder } from \"application/payment/utils\";\r\nimport { subscriptionStatuses } from \"common/constants\";\r\nimport { sortBy, indexOf, head } from \"lodash\";\r\n\r\nclass PremiumSubscriptionsViewStore extends MrbBaseViewStore {\r\n @observable.ref subscriptionPlans = [];\r\n @observable.ref selectedSubscriptionPlan = null;\r\n\r\n @computed get subscriptionExist() {\r\n return this.rootStore.premiumSubscriptionStore.subscriptionExist;\r\n }\r\n\r\n @computed get existingSubscriptions() {\r\n return this.rootStore.premiumSubscriptionStore.subscriptions;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n const route = this.rootStore.routerStore.getCurrentRoute();\r\n if (route && route.data && route.data.title) {\r\n this.title = route.data.title;\r\n }\r\n }\r\n\r\n async onInit() {\r\n await this.fetchSubscriptionPlans();\r\n this.setSelectedSubscriptionPlan(head(this.subscriptionPlans));\r\n }\r\n\r\n async fetchSubscriptionPlans() {\r\n const items = await this.routeStore.getAllSubscriptionProducts();\r\n this.setSubscriptionPlans(items);\r\n }\r\n\r\n @action.bound\r\n setSubscriptionPlans(items) {\r\n let hasActivePlan = false;\r\n for (let subscriptionPlan of items) {\r\n const subscription = this.rootStore.premiumSubscriptionStore.getSubscriptionBySubscriptionPlan(\r\n subscriptionPlan.id\r\n );\r\n if (subscription) {\r\n subscriptionPlan.subscription = subscription;\r\n hasActivePlan = true;\r\n }\r\n }\r\n const freePlan = new NakiRadioFreePlan();\r\n if (!hasActivePlan && !this.rootStore.premiumSubscriptionStore.subscriptionExist) {\r\n freePlan.subscription = {\r\n id: -1,\r\n subscriptionStatus: {\r\n abrv: subscriptionStatuses.active,\r\n },\r\n };\r\n }\r\n items.push(freePlan);\r\n const sortedSubscriptionPlans = sortBy(items, (subscriptionPlan) => {\r\n return indexOf(subscriptionPlansSortOrder, subscriptionPlan.slug);\r\n });\r\n this.subscriptionPlans = sortedSubscriptionPlans;\r\n }\r\n\r\n @action.bound\r\n setSelectedSubscriptionPlan(subscriptionPlan) {\r\n this.selectedSubscriptionPlan = subscriptionPlan;\r\n }\r\n}\r\n\r\nexport default PremiumSubscriptionsViewStore;\r\n","import { MrbBaseRouteStore } from \"mrb/core\";\r\n\r\nclass UserSubscriptionsPreviewRouteStore extends MrbBaseRouteStore {\r\n constructor(rootStore) {\r\n super(rootStore);\r\n }\r\n}\r\n\r\nexport default UserSubscriptionsPreviewRouteStore;\r\n","import { action, computed, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core/stores\";\r\nimport { applicationDefaults, subscriptionStatuses } from \"common/constants\";\r\nimport { dateFormatter } from \"mrb/common/formatting\";\r\nimport { NakiRadioFreePlan } from \"application/payment/models\";\r\n\r\nclass UserSubscriptionsPreviewViewStore extends MrbBaseViewStore {\r\n @computed get activeSubscription() {\r\n return this.preprocessSubscription(this.rootStore.premiumSubscriptionStore.subscription);\r\n }\r\n\r\n @computed get pendingSubscription() {\r\n return this.rootStore.premiumSubscriptionStore.pendingSubscription;\r\n }\r\n\r\n @computed get isSubscriptionBundleActive() {\r\n return this.rootStore.premiumSubscriptionStore.isSubscriptionBundleActive;\r\n }\r\n\r\n constructor(rootStore, { routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n\r\n const route = this.rootStore.routerStore.getCurrentRoute();\r\n if (route && route.data && route.data.title) {\r\n this.title = route.data.title;\r\n }\r\n }\r\n\r\n @action.bound\r\n setIsCanceling(isCanceling) {\r\n this.isCanceling = isCanceling;\r\n }\r\n\r\n @action.bound\r\n endTrial(subscriptionId) {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"End Premium trial?\",\r\n onConfirm: async () => {\r\n try {\r\n await this.rootStore.premiumSubscriptionStore.endTrialPeriod(subscriptionId);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\"Unable to end trial. Please contact the support team.\");\r\n }\r\n },\r\n yesLabel: \"End Trial\",\r\n noLabel: \"Cancel\",\r\n description:\r\n \"Your trial will end immediately, and you won't be able to access Premium features or activate trial anymore.\",\r\n });\r\n }\r\n\r\n @action.bound\r\n cancelSubscription() {\r\n let description;\r\n if (this.activeSubscription.isInternal) {\r\n description =\r\n \"Your subscription will end immediately, and you won't be able to access Premium features anymore.\";\r\n } else {\r\n description = `You'll still be able to access Premium content until ${dateFormatter.format(\r\n this.activeSubscription.nextBillingDate,\r\n {\r\n format: applicationDefaults.formats.date,\r\n }\r\n )}.`;\r\n }\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Cancel Subscription?\",\r\n onConfirm: async () => {\r\n try {\r\n await this.rootStore.premiumSubscriptionStore.cancelSubscription(this.activeSubscription.id);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unable to cancel subscription. Please contact the support team.\"\r\n );\r\n }\r\n },\r\n yesLabel: \"Cancel Subscription\",\r\n noLabel: \"Cancel\",\r\n description: description,\r\n });\r\n }\r\n\r\n @action.bound\r\n renewSubscription() {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Renew Subscription?\",\r\n onConfirm: async () => {\r\n try {\r\n await this.rootStore.premiumSubscriptionStore.renewSubscription(this.activeSubscription.id);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unable to renew subscription. Please contact the support team.\"\r\n );\r\n }\r\n },\r\n yesLabel: `Renew ${this.activeSubscription.product.name}`,\r\n noLabel: \"Cancel\",\r\n description: `Your ${this.activeSubscription.product.name} subscription won't be canceled and you can continue enjoying Premium content.`,\r\n });\r\n }\r\n\r\n @action.bound\r\n revertSubscription() {\r\n this.rootStore.confirmDialogStore.showConfirm({\r\n message: \"Revert Subscription?\",\r\n onConfirm: async () => {\r\n try {\r\n await this.rootStore.premiumSubscriptionStore.renewSubscription(this.activeSubscription.id);\r\n } catch (err) {\r\n this.rootStore.notificationStore.error(\r\n \"Unable to revert subscription. Please contact the support team.\"\r\n );\r\n }\r\n },\r\n yesLabel: `Revert to ${this.activeSubscription.product.name}`,\r\n noLabel: \"Cancel\",\r\n description: `Your ${this.activeSubscription.product.name} subscription won't be canceled and you can continue using Premium content.`,\r\n });\r\n }\r\n\r\n preprocessSubscription(subscription) {\r\n if (subscription) {\r\n return subscription;\r\n }\r\n\r\n return {\r\n id: \"-1\",\r\n amount: 0,\r\n product: new NakiRadioFreePlan(),\r\n subscriptionStatus: {\r\n name: \"Active\",\r\n abrv: subscriptionStatuses.active,\r\n },\r\n };\r\n }\r\n}\r\n\r\nexport default UserSubscriptionsPreviewViewStore;\r\n","import { observable, makeObservable } from \"mobx\";\r\nimport { MrbFilterParameters } from \"mrb/core/filter\";\r\n\r\nclass PremiumContentListFilter extends MrbFilterParameters {\r\n @observable contentType;\r\n\r\n constructor() {\r\n super();\r\n makeObservable(this);\r\n this.reset();\r\n }\r\n\r\n reset() {\r\n super.reset();\r\n this.contentType = 1;\r\n }\r\n}\r\n\r\nexport default PremiumContentListFilter;\r\n","import { action, computed, runInAction, makeObservable } from \"mobx\";\r\nimport { MrbBaseListViewStore } from \"mrb/core\";\r\nimport { MrbInfiniteScrollGridViewStore } from \"mrb/components/infinite-scroll-grid\";\r\nimport { PremiumContentListFilter } from \"application/payment/filters\";\r\nimport { podcastType } from \"common/constants\";\r\nimport { head, findIndex } from \"lodash\";\r\n\r\nclass PremiumContentListViewStore extends MrbBaseListViewStore {\r\n _contentTypeOptions = {\r\n \"naki-radio-premium\": [\r\n {\r\n label: \"Naki Tales\",\r\n value: 1,\r\n },\r\n {\r\n label: \"Naki Nigun\",\r\n value: 2,\r\n },\r\n ],\r\n \"naki-nigun-premium\": [\r\n {\r\n label: \"Naki Nigun\",\r\n value: 2,\r\n },\r\n ],\r\n \"naki-radio-free\": [\r\n {\r\n label: \"NakiRadio Free\",\r\n value: 3,\r\n },\r\n ],\r\n };\r\n\r\n @computed get contentTypeOptions() {\r\n if (this.premiumSubscriptionsViewStore.selectedSubscriptionPlan) {\r\n return this._contentTypeOptions[this.premiumSubscriptionsViewStore.selectedSubscriptionPlan.slug];\r\n }\r\n return [];\r\n }\r\n\r\n constructor(rootStore, { routeStore, premiumSubscriptionsViewStore }) {\r\n super(rootStore, {\r\n queryConfig: {\r\n orderBy: \"title\",\r\n orderDirection: \"asc\",\r\n disableUpdateQueryParams: true,\r\n filter: new PremiumContentListFilter(),\r\n },\r\n });\r\n makeObservable(this);\r\n this.routeStore = routeStore;\r\n this.premiumSubscriptionsViewStore = premiumSubscriptionsViewStore;\r\n\r\n this.setGridStore(\r\n new MrbInfiniteScrollGridViewStore(this.rootStore, this.queryUtility, {\r\n onCellClick: (item) => this.goTo(item),\r\n generateKey: (item) => item.stationId || item.podcastId || item.nakiNigunArtistId,\r\n mapper: (item) => {\r\n return {\r\n ...item,\r\n coverImageUrl: this.createCoverImageUrl(item),\r\n };\r\n },\r\n })\r\n );\r\n\r\n this.reaction(\r\n () => this.contentTypeOptions,\r\n (contentTypeOptions) => {\r\n const index = findIndex(\r\n contentTypeOptions,\r\n (option) => option.value === this.queryUtility.filter.contentType\r\n );\r\n if (index === -1) {\r\n this.changeContentFilter(head(contentTypeOptions).value);\r\n }\r\n }\r\n );\r\n\r\n this.createCoverImageUrl = this.createCoverImageUrl.bind(this);\r\n }\r\n\r\n async fetchResources(filter) {\r\n // Display grid (Skeleton loader) only during the first page load, and in other cases, during loading more data on scroll event,\r\n // display only top bar loader (mainLoaderStore)\r\n const isFirstPageLoad = filter.pageNumber === 1;\r\n if (isFirstPageLoad) {\r\n this.gridStore.suspend();\r\n } else {\r\n this.rootStore.mainLoaderStore.suspend();\r\n }\r\n try {\r\n const response = await this.find(filter);\r\n runInAction(() => {\r\n this.gridStore.setData(response);\r\n if (isFirstPageLoad) {\r\n this.gridStore.resume();\r\n } else {\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n });\r\n } catch (err) {\r\n if (isFirstPageLoad) {\r\n this.gridStore.resume();\r\n } else {\r\n this.rootStore.mainLoaderStore.resume();\r\n }\r\n this.onFetchError(err);\r\n }\r\n }\r\n\r\n find(params) {\r\n params.isPremium = true;\r\n return this.routeStore.findUserContent(params);\r\n }\r\n\r\n goTo = (item) => {\r\n if (item.stationId) {\r\n this.rootStore.routerStore.goTo(\"master.application.home.station\", {\r\n id: item.stationId,\r\n });\r\n } else if (item.podcastId) {\r\n if (item.podcastType === podcastType.podcast) {\r\n this.rootStore.routerStore.goTo(\"master.application.home.podcast\", {\r\n id: item.podcastId,\r\n });\r\n } else {\r\n this.rootStore.routerStore.goTo(\"master.application.home.podcast-group\", {\r\n id: item.podcastId,\r\n });\r\n }\r\n } else if (item.nakiNigunArtistId) {\r\n this.rootStore.routerStore.goTo(\"master.application.naki-nigun.artist\", {\r\n id: item.nakiNigunArtistId,\r\n });\r\n }\r\n };\r\n\r\n createCoverImageUrl(item) {\r\n if (item.coverImageId) {\r\n if (item.stationId) {\r\n return this.rootStore.coverImageFactory.createStationCoverImageUrl(item.coverImageId, 200, 200);\r\n } else if (item.podcastId) {\r\n return this.rootStore.coverImageFactory.createPodcastCoverImageUrl(item.coverImageId, 200, 200);\r\n } else if (item.nakiNigunArtistId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunArtistCoverImageUrl(item.coverImageId, 200, 200);\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n @action.bound\r\n changeContentFilter(value) {\r\n this.queryUtility.filter.set(\"contentType\", value);\r\n this.queryUtility.fetch();\r\n }\r\n}\r\n\r\nexport default PremiumContentListViewStore;\r\n","import React from \"react\";\r\nimport { observable, action, makeObservable } from \"mobx\";\r\nimport { MrbBaseViewStore } from \"mrb/core\";\r\nimport { podcastType } from \"common/constants\";\r\nimport { map, isNil } from \"lodash\";\r\n\r\nconst SUB_ITEM_TYPE = {\r\n SUB_PODCAST: \"sub-podcast\",\r\n PODCAST_VOLUME: \"podcast-volume\",\r\n NAKI_NIGUN_ALBUM: \"naki-nigun-album\",\r\n};\r\n\r\nclass PremiumContentListItemViewStore extends MrbBaseViewStore {\r\n @observable isCollapsed = false;\r\n panelRef = React.createRef();\r\n item = null;\r\n @observable.ref items = [];\r\n @observable isPopulated = false;\r\n\r\n get hasSubItems() {\r\n return (\r\n this.item.numberOfSubPodcasts > 0 || this.item.numberOfPodcastVolumes > 0 || this.item.numberOfAlbums > 0\r\n );\r\n }\r\n\r\n get hasSubContent() {\r\n return this.hasSubItems || this.item.premiumInfo;\r\n }\r\n\r\n constructor(rootStore, { item, routeStore }) {\r\n super(rootStore);\r\n makeObservable(this);\r\n this.item = item;\r\n this.routeStore = routeStore;\r\n\r\n this.reaction(\r\n () => this.isCollapsed,\r\n (isCollapsed) => {\r\n if (isCollapsed && this.panelRef) {\r\n // We need to execute scroll function asynchronously in order to take effect.\r\n setTimeout(() => {\r\n if (this.panelRef) {\r\n this.panelRef.scrollIntoView({\r\n behavior: \"smooth\",\r\n block: \"center\",\r\n });\r\n }\r\n });\r\n }\r\n }\r\n );\r\n\r\n this.onClickSubItem = this.onClickSubItem.bind(this);\r\n this.createCoverImageUrl = this.createCoverImageUrl.bind(this);\r\n }\r\n\r\n @action.bound\r\n async toggleCollapse() {\r\n this.isCollapsed = !this.isCollapsed;\r\n if (this.isCollapsed && !this.isPopulated && this.hasSubContent) {\r\n await this.getItems();\r\n }\r\n this.setIsPopulated(true);\r\n }\r\n\r\n @action.bound\r\n setIsPopulated(isPopulated) {\r\n this.isPopulated = isPopulated;\r\n }\r\n\r\n setPanelRef = (ref) => {\r\n this.panelRef = ref;\r\n };\r\n\r\n @action.bound\r\n setItems(items) {\r\n this.items = items;\r\n }\r\n\r\n async getNakiNigunArtistSubContent() {\r\n let items = await this.routeStore.getAlbumsByArtist(this.item.nakiNigunArtistId);\r\n items = map(items, (item) => {\r\n return {\r\n ...item,\r\n type: SUB_ITEM_TYPE.NAKI_NIGUN_ALBUM,\r\n coverImageUrl: this.createNakiNigunAlbumCoverImageUrl(item),\r\n };\r\n });\r\n this.setItems(items);\r\n }\r\n\r\n async getPodcastSubContent() {\r\n if (this.item.podcastType === podcastType.podcastGroup) {\r\n let items = await this.routeStore.getSubPodcasts(this.item.podcastId);\r\n items = map(items, (item) => {\r\n return {\r\n ...item,\r\n type: SUB_ITEM_TYPE.SUB_PODCAST,\r\n coverImageUrl: this.createCoverImageUrl(item),\r\n };\r\n });\r\n this.setItems(items);\r\n } else if (this.item.podcastType === podcastType.podcast) {\r\n let items = await this.routeStore.getPodcastVolumes(this.item.podcastId);\r\n items = map(items, (item) => {\r\n return {\r\n ...item,\r\n type: SUB_ITEM_TYPE.PODCAST_VOLUME,\r\n coverImageUrl: this.createCoverImageUrl(item),\r\n };\r\n });\r\n this.setItems(items);\r\n }\r\n }\r\n\r\n async getItems() {\r\n try {\r\n this.loaderStore.suspend();\r\n if (!isNil(this.item.nakiNigunArtistId)) {\r\n await this.getNakiNigunArtistSubContent();\r\n } else if (!isNil(this.item.podcastId)) {\r\n this.getPodcastSubContent();\r\n }\r\n await this.getPodcastSubContent();\r\n } catch (err) {\r\n console.log(err);\r\n this.rootStore.notificationStore.error(\"An unexpected error occurred while trying to fetch content.\", err);\r\n } finally {\r\n this.loaderStore.resume();\r\n }\r\n }\r\n\r\n onClickSubItem(subItem) {\r\n if (subItem.type === SUB_ITEM_TYPE.PODCAST_VOLUME) {\r\n this.rootStore.routerStore.goTo(\"master.application.home.podcast\", {\r\n id: this.item.podcastId,\r\n });\r\n } else if (subItem.type === SUB_ITEM_TYPE.SUB_PODCAST) {\r\n this.rootStore.routerStore.goTo(\"master.application.home.podcast-group\", {\r\n id: this.item.podcastId,\r\n });\r\n } else if (subItem.type === SUB_ITEM_TYPE.NAKI_NIGUN_ALBUM) {\r\n this.rootStore.routerStore.goTo(\"master.application.naki-nigun.artist\", {\r\n id: this.item.nakiNigunArtistId,\r\n });\r\n }\r\n }\r\n\r\n createNakiNigunAlbumCoverImageUrl(item) {\r\n if (item.coverImageId) {\r\n return this.rootStore.coverImageFactory.createNakiNigunAlbumCoverImageUrl(item.coverImageId, 200, 200);\r\n }\r\n return null;\r\n }\r\n\r\n createCoverImageUrl(item) {\r\n if (item.coverImageId) {\r\n return this.rootStore.coverImageFactory.createPodcastCoverImageUrl(item.coverImageId, 200, 200);\r\n } else if (item.podcastFileEntryId) {\r\n return this.rootStore.coverImageFactory.createPodcastCoverImageUrl(item.podcastFileEntryId, 200, 200);\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport default PremiumContentListItemViewStore;\r\n"],"sourceRoot":""}